X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Finifcns_nstdsums.cpp;h=62c6c62f2737cf6b87a34db73bc51060103c1ff5;hp=975a81e685ddb18863f4ce6f0625455aef0d36b4;hb=97ef604e;hpb=6304288112f2418a2f0a14076363646ec3ce2fa3 diff --git a/ginac/inifcns_nstdsums.cpp b/ginac/inifcns_nstdsums.cpp index 975a81e6..62c6c62f 100644 --- a/ginac/inifcns_nstdsums.cpp +++ b/ginac/inifcns_nstdsums.cpp @@ -1136,6 +1136,7 @@ G_numeric(const std::vector& x, const std::vector& s, // check for convergence and necessary accelerations bool need_trafo = false; bool need_hoelder = false; + bool have_trailing_zero = false; std::size_t depth = 0; for (std::size_t i = 0; i < x.size(); ++i) { if (!zerop(x[i])) { @@ -1149,14 +1150,16 @@ G_numeric(const std::vector& x, const std::vector& s, need_hoelder = true; } } - if (zerop(x[x.size() - 1])) + if (zerop(x[x.size() - 1])) { + have_trailing_zero = true; need_trafo = true; + } if (depth == 1 && x.size() == 2 && !need_trafo) return - Li_projection(2, y/x[1], cln::float_format(Digits)); // do acceleration transformation (hoelder convolution [BBB]) - if (need_hoelder) + if (need_hoelder && !have_trailing_zero) return G_do_hoelder(x, s, y); // convergence transformation