- vp::iterator it;
- int error = 0;
-
-// cout << endl << "Calculating ";
- for (int sum=2; sum<=3; sum++) {
- for (int nn=1; nn<sum; nn++) {
- vp& da = pp[nn-1][sum-nn-1];
- for (it = da.begin(); it!=da.end(); it++) {
-// cout << "S(" << nn << "," << sum-nn << "," << it->x << ") " << flush;
- ex res = S(nn,sum-nn,it->x).evalf();
- if (!is_a<numeric>(res)) {
- if ((it->x != -1) || ((sum-nn) == 1)) {
- clog << "S(" << nn << "," << sum-nn << "," << it->x << ") didn't give numerical result!" << endl;
- result++;
- }
- }
- else {
- ex reldiff = abs((it->res-res)/it->res);
- if ((!is_a<numeric>(res)) || (reldiff > numeric("1E-10"))) {
- clog << "S(" << nn << "," << sum-nn << "," << it->x << ") seems to be wrong:" << endl;
- clog << "GiNaC : " << res << endl;
- clog << "Reference : " << it->res << endl;
- clog << "Abs. Difference : " << it->res-res << endl;
- clog << "Rel. Difference : " << reldiff << endl;
- result++;
- }
- }
- }
+ res.append(H(lst(2,1),numeric(1)/2).hold() - (zeta(3)/8 - pow(log(2),3)/6));
+ res.append(H(lst(2,1,3),numeric(1)/3).hold() - Li(lst(2,1,3),lst(numeric(1)/3,1,1)).hold());
+ res.append(H(lst(2,1,3),numeric(98)/100).hold() - Li(lst(2,1,3),lst(numeric(98)/100,1,1)).hold());
+ res.append(H(lst(2,1,3),numeric(245)/100).hold() - Li(lst(2,1,3),lst(numeric(245)/100,1,1)).hold());
+ res.append(H(lst(4,1,1,1),numeric(1)/3).hold() - S(3,4,numeric(1)/3).hold());
+ res.append(H(lst(4,1,1,1),numeric(98)/100).hold() - S(3,4,numeric(98)/100).hold());
+ res.append(H(lst(4,1,1,1),numeric(245)/100).hold() - S(3,4,numeric(245)/100).hold());
+ res.append(H(lst(2,2,3),almostone).hold() - zeta(lst(2,2,3)));
+ res.append(H(lst(-3,-1,2,1),almostone).hold() - zeta(lst(3,1,2,1),lst(-1,1,-1,1)));
+ res.append(H(lst(-2,1,3),numeric(1)/3).hold() - -Li(lst(2,1,3),lst(-numeric(1)/3,-1,1)).hold());
+ res.append(H(lst(-2,1,3),numeric(98)/100).hold() - -Li(lst(2,1,3),lst(-numeric(98)/100,-1,1)).hold());
+ res.append(H(lst(-2,1,3),numeric(245)/100).hold() - -Li(lst(2,1,3),lst(-numeric(245)/100,-1,1)).hold());
+ res.append(H(lst(-3,1,-2,0,0),numeric(3)/10).hold() - convert_H_to_Li(lst(-3,1,-2,0,0),numeric(3)/10).eval());
+
+ for (lst::const_iterator it = res.begin(); it != res.end(); it++) {
+ ex diff = abs((*it).evalf());
+ if (diff > prec) {
+ clog << *it << " seems to be wrong: " << diff << endl;
+ result++;