return result;
}
+static unsigned check_G_y_one_bug()
+{
+ exvector exprs;
+ exprs.push_back(G(lst(-1,-1, 1,-1, 0), 1));
+ exprs.push_back(G(lst(-1, 0, 1,-1, 0), 1));
+ exprs.push_back(G(lst(-1, 1,-1,-1, 0), 1));
+ exprs.push_back(G(lst(-1, 1,-1, 0, 0), 1));
+ exprs.push_back(G(lst(-1, 1,-1, 1, 0), 1));
+ exprs.push_back(G(lst(-1, 1, 0,-1, 0), 1));
+ exprs.push_back(G(lst(-1, 1, 1,-1, 0), 1));
+ exprs.push_back(G(lst( 0,-1, 1,-1, 0), 1));
+ exprs.push_back(G(lst( 0, 1, 1,-1, 0), 1));
+ unsigned err = 0;
+ for (exvector::const_iterator ep = exprs.begin(); ep != exprs.end(); ++ep) {
+ try {
+ ex val = ep->evalf();
+ if (!is_a<numeric>(val)) {
+ clog << "evalf(" << *ep << ") is not a number: " << val << endl;
+ ++err;
+ }
+ } catch (std::exception& oops) {
+ clog << "evalf(" << *ep << "): got an exception" << oops.what() << endl;
+ ++err;
+ }
+ }
+ return err;
+}
unsigned exam_inifcns_nstdsums(void)
{
result += inifcns_test_HLi();
result += inifcns_test_LiG();
result += inifcns_test_legacy();
+ result += check_G_y_one_bug();
return result;
}
need_hoelder = true;
}
}
- if (zerop(x[x.size() - 1])) {
- have_trailing_zero = true;
+ have_trailing_zero = zerop(x.back());
+ if (have_trailing_zero) {
need_trafo = true;
+ if (y != 1) {
+ need_hoelder = false;
+ }
}
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 && !have_trailing_zero)
+ if (need_hoelder)
return G_do_hoelder(x, s, y);
// convergence transformation