X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Fintegral.cpp;h=18fedb2e2d302550c812ea79691cf008f00ab457;hp=2f54b503bb9ef5b160b60e1f9193faf0c89b30b0;hb=bc80f7d97d0dc2c74606b8c2e64e50530a685ba0;hpb=3ac17e18ada69428fe170c10abcc5f33a30f0676 diff --git a/ginac/integral.cpp b/ginac/integral.cpp index 2f54b503..18fedb2e 100644 --- a/ginac/integral.cpp +++ b/ginac/integral.cpp @@ -279,7 +279,7 @@ ex adaptivesimpson(const ex & x, const ex & a_in, const ex & b_in, const ex & f, fbvec[i] = subsvalue(x, b, f); svec[i] = hvec[i]*(favec[i]+4*fcvec[i]+fbvec[i])/3; lvec[i] = 1; - errorvec[i] = error*svec[i]; + errorvec[i] = error*abs(svec[i]); while (i>0) { ex fd = subsvalue(x, avec[i]+hvec[i]/2, f); @@ -292,7 +292,7 @@ ex adaptivesimpson(const ex & x, const ex & a_in, const ex & b_in, const ex & f, ex nu4 = fbvec[i]; ex nu5 = hvec[i]; // hopefully prevents a crash if the function is zero sometimes. - ex nu6 = max(errorvec[i], (s1+s2)*error); + ex nu6 = max(errorvec[i], abs(s1+s2)*error); ex nu7 = svec[i]; int nu8 = lvec[i]; --i; @@ -436,7 +436,7 @@ unsigned integral::return_type() const return f.return_type(); } -const basic* integral::return_type_tinfo() const +tinfo_t integral::return_type_tinfo() const { return f.return_type_tinfo(); }