- if (!overall_coeff.is_equal(exONE())) {
- overall_coeff.print(os,precedence);
- first=false;
+ // first print the overall numeric coefficient:
+ if (ex_to_numeric(overall_coeff).csgn()==-1) os << '-';
+ if (!overall_coeff.is_equal(exONE()) &&
+ !overall_coeff.is_equal(exMINUSONE())) {
+ if (ex_to_numeric(overall_coeff).csgn()==-1)
+ (numMINUSONE()*overall_coeff).print(os, precedence);
+ else
+ overall_coeff.print(os, precedence);
+ os << '*';