X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=check%2Fexam_inifcns.cpp;h=994aa3444d6cf6e16ed2fd321897a433d3de4f17;hp=ba1ba9a6b26acd22044f0ef4e6a7086ea4c52d39;hb=d916416984a857e80962239a0ee93e7216f803bb;hpb=10365850aa3803337bfea1fc201b81b6752096d4 diff --git a/check/exam_inifcns.cpp b/check/exam_inifcns.cpp index ba1ba9a6..994aa344 100644 --- a/check/exam_inifcns.cpp +++ b/check/exam_inifcns.cpp @@ -219,11 +219,35 @@ static unsigned inifcns_consist_zeta() return result; } +static unsigned inifcns_consist_abs() +{ + unsigned result = 0; + realsymbol a("a"), b("b"), x("x"), y("y"); + possymbol p("p"); + + if (!abs(exp(x+I*y)).eval().is_equal(exp(x))) + ++result; + + if (!abs(pow(p,a+I*b)).eval().is_equal(pow(p,a))) + ++result; + + // also checks that abs(p)=p + if (!abs(pow(p,a+I*b)).eval().is_equal(pow(p,a))) + ++result; + + if (!abs(pow(x+I*y,a)).eval().is_equal(pow(abs(x+I*y),a))) + ++result; + + // it is not necessary a simplification if the following is really evaluated + if (!abs(pow(x+I*y,a+I*b)).eval().is_equal(abs(pow(x+I*y,a+I*b)))) + ++result; + +} + static unsigned inifcns_consist_various() { unsigned result = 0; symbol n; - ex e; if ( binomial(n, 0) != 1 ) { clog << "ERROR: binomial(n,0) != 1" << endl; @@ -243,6 +267,7 @@ unsigned exam_inifcns() result += inifcns_consist_gamma(); cout << '.' << flush; result += inifcns_consist_psi(); cout << '.' << flush; result += inifcns_consist_zeta(); cout << '.' << flush; + result += inifcns_consist_abs(); cout << '.' << flush; result += inifcns_consist_various(); cout << '.' << flush; return result;