X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?a=blobdiff_plain;f=ginac%2Fpower.cpp;h=be7c2d371f61a12f1ec72697bd21f7d0ff41fa3b;hb=89779632ca81383a8fa44244d7825947638e7fbd;hp=a6decf3cb39804eb1c255dd64d2ecebb317861ad;hpb=1ebd5f62696a5144e8249127d958bd1d3004857f;p=ginac.git diff --git a/ginac/power.cpp b/ginac/power.cpp index a6decf3c..be7c2d37 100644 --- a/ginac/power.cpp +++ b/ginac/power.cpp @@ -33,6 +33,7 @@ #include "constant.h" #include "inifcns.h" // for log() in power::derivative() #include "matrix.h" +#include "indexed.h" #include "symbol.h" #include "print.h" #include "archive.h" @@ -169,39 +170,27 @@ void power::print(const print_context & c, unsigned level) const } else { + bool is_tex = is_a(c); + if (exponent.is_equal(_ex1_2)) { - if (is_a(c)) - c.s << "\\sqrt{"; - else - c.s << "sqrt("; + c.s << (is_tex ? "\\sqrt{" : "sqrt("); basis.print(c); - if (is_a(c)) - c.s << '}'; - else - c.s << ')'; + c.s << (is_tex ? '}' : ')'); } else { - if (precedence() <= level) { - if (is_a(c)) - c.s << "{("; - else - c.s << "("; - } + if (precedence() <= level) + c.s << (is_tex ? "{(" : "("); basis.print(c, precedence()); if (is_a(c)) c.s << "**"; else c.s << '^'; - if (is_a(c)) + if (is_tex) c.s << '{'; exponent.print(c, precedence()); - if (is_a(c)) + if (is_tex) c.s << '}'; - if (precedence() <= level) { - if (is_a(c)) - c.s << ")}"; - else - c.s << ')'; - } + if (precedence() <= level) + c.s << (is_tex ? ")}" : ")"); } } }