From: Richard Kreckel Date: Fri, 21 Dec 2001 20:32:23 +0000 (+0000) Subject: * Fix thinkos in print_csrc context. X-Git-Tag: release_1-0-3~1 X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=commitdiff_plain;h=216d88c993aada2bffffa32100c23fc7fb4c1844 * Fix thinkos in print_csrc context. (Cebix: read the implementations of ex::compare() and basic::compare()!!!) --- diff --git a/ginac/add.cpp b/ginac/add.cpp index 3a7a9126..90d7891b 100644 --- a/ginac/add.cpp +++ b/ginac/add.cpp @@ -121,16 +121,16 @@ void add::print(const print_context & c, unsigned level) const while (it != itend) { // If the coefficient is -1, it is replaced by a single minus sign - if (it->coeff.compare(_num1) == 0) { + if (it->coeff.is_equal(_ex1)) { it->rest.print(c, precedence()); - } else if (it->coeff.compare(_num_1) == 0) { + } else if (it->coeff.is_equal(_ex_1)) { c.s << "-"; it->rest.print(c, precedence()); - } else if (ex_to(it->coeff).numer().compare(_num1) == 0) { + } else if (ex_to(it->coeff).numer().is_equal(_num1)) { it->rest.print(c, precedence()); c.s << "/"; ex_to(it->coeff).denom().print(c, precedence()); - } else if (ex_to(it->coeff).numer().compare(_num_1) == 0) { + } else if (ex_to(it->coeff).numer().is_equal(_num_1)) { c.s << "-"; it->rest.print(c, precedence()); c.s << "/"; @@ -143,7 +143,7 @@ void add::print(const print_context & c, unsigned level) const // Separator is "+", except if the following expression would have a leading minus sign ++it; - if (it != itend && !(it->coeff.compare(_num0) < 0 || (it->coeff.compare(_num1) == 0 && is_exactly_a(it->rest) && it->rest.compare(_num0) < 0))) + if (it != itend && !(it->coeff.info(info_flags::negative) || (it->coeff.is_equal(_num1) && is_exactly_a(it->rest) && it->rest.info(info_flags::negative)))) c.s << "+"; } diff --git a/ginac/mul.cpp b/ginac/mul.cpp index 51668803..81d648a5 100644 --- a/ginac/mul.cpp +++ b/ginac/mul.cpp @@ -141,7 +141,7 @@ void mul::print(const print_context & c, unsigned level) const while (it != itend) { // If the first argument is a negative integer power, it gets printed as "1.0/" - if (it == seq.begin() && ex_to(it->coeff).is_integer() && it->coeff.compare(_num0) < 0) { + if (it == seq.begin() && ex_to(it->coeff).is_integer() && it->coeff.info(info_flags::negative)) { if (is_a(c)) c.s << "recip("; else @@ -149,7 +149,7 @@ void mul::print(const print_context & c, unsigned level) const } // If the exponent is 1 or -1, it is left out - if (it->coeff.compare(_ex1) == 0 || it->coeff.compare(_num_1) == 0) + if (it->coeff.is_equal(_ex1) || it->coeff.is_equal(_ex_1)) it->rest.print(c, precedence()); else { // Outer parens around ex needed for broken gcc-2.95 parser: @@ -159,7 +159,7 @@ void mul::print(const print_context & c, unsigned level) const // Separator is "/" for negative integer powers, "*" otherwise ++it; if (it != itend) { - if (ex_to(it->coeff).is_integer() && it->coeff.compare(_num0) < 0) + if (ex_to(it->coeff).is_integer() && it->coeff.info(info_flags::negative)) c.s << "/"; else c.s << "*"; diff --git a/ginac/power.cpp b/ginac/power.cpp index 72ec5aa3..abbee766 100644 --- a/ginac/power.cpp +++ b/ginac/power.cpp @@ -139,7 +139,7 @@ void power::print(const print_context & c, unsigned level) const c.s << ')'; // ^-1 is printed as "1.0/" or with the recip() function of CLN - } else if (exponent.compare(_num_1) == 0) { + } else if (exponent.is_equal(_ex_1)) { if (is_a(c)) c.s << "recip("; else