From bb2670b06c0f98ef1a4fcb193826d65363a302dd Mon Sep 17 00:00:00 2001 From: Richard Kreckel Date: Sat, 26 Jan 2002 16:29:42 +0000 Subject: [PATCH] * numeric::print(): Treat imaginary numbers correctly. --- ginac/numeric.cpp | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/ginac/numeric.cpp b/ginac/numeric.cpp index f2a834d2..55d5d556 100644 --- a/ginac/numeric.cpp +++ b/ginac/numeric.cpp @@ -403,25 +403,19 @@ void numeric::print(const print_context & c, unsigned level) const } else { if (cln::zerop(r)) { // case 2, imaginary: y*I or -y*I - if ((precedence() <= level) && (i < 0)) { - if (i == -1) { - c.s << par_open+imag_sym+par_close; - } else { + if (i==1) + c.s << imag_sym; + else { + if (precedence()<=level) c.s << par_open; + if (i == -1) + c.s << "-" << imag_sym; + else { print_real_number(c, i); - c.s << mul_sym+imag_sym+par_close; - } - } else { - if (i == 1) { - c.s << imag_sym; - } else { - if (i == -1) { - c.s << "-" << imag_sym; - } else { - print_real_number(c, i); - c.s << mul_sym+imag_sym; - } + c.s << mul_sym+imag_sym; } + if (precedence()<=level) + c.s << par_close; } } else { // case 3, complex: x+y*I or x-y*I or -x+y*I or -x-y*I -- 2.44.0