X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Finifcns.cpp;h=dad9d9e7702b1424300204de0acdc47c967f962b;hp=c49fc7021aa5694c1862d8ff743ac9f7936b60e6;hb=f79727f9acf4f78ff71cbe324c333c234c211cb5;hpb=aa378587448168767c40dcfc4c819d2893fc24a5 diff --git a/ginac/inifcns.cpp b/ginac/inifcns.cpp index c49fc702..dad9d9e7 100644 --- a/ginac/inifcns.cpp +++ b/ginac/inifcns.cpp @@ -190,8 +190,14 @@ static ex abs_eval(const ex & arg) { if (is_exactly_a(arg)) return abs(ex_to(arg)); - else - return abs(arg).hold(); + + if (arg.info(info_flags::nonnegative)) + return arg; + + if (is_ex_the_function(arg, abs)) + return arg; + + return abs(arg).hold(); } static void abs_print_latex(const ex & arg, const print_context & c)