X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?a=blobdiff_plain;f=ginac%2Finifcns.cpp;h=4d1c978b716a6b2c2ba456acd26a2d7dfcf66b02;hb=9161d9595342942ebaa532b6b068db94325d1ee7;hp=0daa97989abf8260202a0db99cfb572f576379ec;hpb=7cad9b41c97f0b042ba4af8080e82c8ad4804560;p=ginac.git diff --git a/ginac/inifcns.cpp b/ginac/inifcns.cpp index 0daa9798..4d1c978b 100644 --- a/ginac/inifcns.cpp +++ b/ginac/inifcns.cpp @@ -82,7 +82,8 @@ static ex csgn_eval(const ex & arg) if (is_ex_exactly_of_type(arg, numeric)) return csgn(ex_to_numeric(arg)); - else if (is_ex_exactly_of_type(arg, mul)) { + else if (is_ex_of_type(arg, mul) && + is_ex_of_type(arg.op(arg.nops()-1),numeric)) { numeric oc = ex_to_numeric(arg.op(arg.nops()-1)); if (oc.is_real()) { if (oc > 0) @@ -101,7 +102,7 @@ static ex csgn_eval(const ex & arg) return -csgn(I*arg/oc).hold(); } } - + return csgn(arg).hold(); } @@ -474,15 +475,15 @@ ex lsolve(const ex &eqns, const ex &symbols) for (unsigned c=0; c