[GiNaC-devel] sporadic make check failure in exam_inifcns_nstdsums

Richard B. Kreckel kreckel at in.terlu.de
Fri Jan 14 22:39:59 CET 2022


Hi Stefan,

A recent FTBFS for GiNaC-1.8.2 on Debian's mipsel port [1] turned up a
little issue with the precision goal not being 100% reproducible.

The recursive calls in GiNaC::map_trafo_H_1overx::operator() assemble
symbolic functions before evalf()'ing and these are not deterministic.
This makes numeric results slightly differ between calls.

As a result, regression test suite exam_inifcns_nstdsums.cpp fails in
about 1.6% of all cases. It only ever seems to affect
    H(lst{-2,1,3},numeric(245)/100) -
-Li(lst{2,1,3},lst{-numeric(245)/100,-1,1})
in inifcns_test_HLi(), exam_inifcns_nstdsums.cpp:148.

I tortured my computer with 1365 calls and here is a histogram of
numerical differences between the H and the Li results:
[0.00000...1.0e-18[    4
    okay
[1.0e-18...1.0e-17[    530
  okay
[2.0e-17...3.0e-17[    503
  okay
[3.0e-17...4.0e-17[    232
  okay
[4.0e-17...5.0e-17[    74
   okay
[5.0e-17...6.0e-17[    18   FAILURE!
[6.0e-17...7.0e-17[    2
    FAILURE!
[7.0e-17...8.0e-17[    2
    FAILURE!
>= 8e-17               -    N/A

Would it make sense to raise prec to 10*pow(10,-Digits)?
If so, for which tests?
Or do you have a better idea?

All my best,
  -richard.

[1]
<https://buildd.debian.org/status/fetch.php?pkg=ginac&arch=mipsel&ver=1.8.2-1&stamp=1641065269>
-- 
Richard B. Kreckel
<https://in.terlu.de/~kreckel/>


More information about the GiNaC-devel mailing list