Questions on new libm tests
H. J. Lu
hjl@lucon.org
Tue Apr 11 22:59:00 GMT 2006
I'd like to contribute some new libm tests. I am enclosing the new
double test result here. I have 3 questions:
1. The current way ulp computation doesn't support denormalized
numbers. Should we skip those tests?
2. I don't have patches for all those failures. Should I hold off those
tests?
3. What is maximum ulp allowed in libm-test-ulps?
H.J.
-----
testing double (without inline functions)
Failure: Test: atan2 (0X1.FFFFFFFFFFFFFP-1022, 0X1P+1) == 0X0.FFFFFFFFFFFFFP-1022
Result:
is: 2.22507385850720138309e-308 0x1.00000000000000000000p-1022
should be: 2.22507385850720088902e-308 0x0.fffffffffffff0000000p-1022
difference: 4.94065645841246544177e-324 0x0.00000000000010000000p-1022
ulp : inf
max.ulp : 0.0000
Maximal error of `atan2'
is : inf ulp
accepted: 0 ulp
Failure: Test: acosh (0X1.01FB0B7471C13P+0) == 0X1.FD303BDCD51D2P-4
Result:
is: 1.24313577497850602516e-01 0x1.fd303bdcd51d40000000p-4
should be: 1.24313577497850574760e-01 0x1.fd303bdcd51d20000000p-4
difference: 2.77555756156289135106e-17 0x1.00000000000000000000p-55
ulp : 2.0000
max.ulp : 0.0000
Maximal error of `acosh'
is : 2 ulp
accepted: 0 ulp
Failure: Test: asinh (-0X1.0A1A86A1A87P-1) == -0X1.FEC35B3E7215AP-2
Result:
is: -4.98792100607280408653e-01 -0x1.fec35b3e7215c0000000p-2
should be: -4.98792100607280297631e-01 -0x1.fec35b3e7215a0000000p-2
difference: 1.11022302462515654042e-16 0x1.00000000000000000000p-53
ulp : 2.0000
max.ulp : 0.0000
Maximal error of `asinh'
is : 2 ulp
accepted: 0 ulp
Failure: Test: atanh (0X1.C56B0B96CDF91P-2) == 0X1.E71D3517D3E02P-2
Result:
is: 4.75697354869197397420e-01 0x1.e71d3517d3e000000000p-2
should be: 4.75697354869197508442e-01 0x1.e71d3517d3e020000000p-2
difference: 1.11022302462515654042e-16 0x1.00000000000000000000p-53
ulp : 2.0000
max.ulp : 0.0000
Maximal error of `atanh'
is : 2 ulp
accepted: 0 ulp
Failure: Test: tanh (-0X1.D95F582C6D0B6P-3) == -0X1.D11E67E06147DP-3
Result:
is: -2.27108775649103339367e-01 -0x1.d11e67e06147b0000000p-3
should be: -2.27108775649103394878e-01 -0x1.d11e67e06147d0000000p-3
difference: 5.55111512312578270212e-17 0x1.00000000000000000000p-54
ulp : 2.0000
max.ulp : 0.0000
Maximal error of `tanh'
is : 2 ulp
accepted: 0 ulp
Failure: Test: expm1 (0X1.672A28295E9C9P-2) == 0X1.AE35F07F55B87P-2
Result:
is: 4.20127637645628215779e-01 0x1.ae35f07f55b880000000p-2
should be: 4.20127637645628160268e-01 0x1.ae35f07f55b870000000p-2
difference: 5.55111512312578270212e-17 0x1.00000000000000000000p-54
ulp : 1.0000
max.ulp : 0.0000
Failure: Test: log1p (0X1.9800000000004P-2) == 0X1.5767717455A6FP-2
Result:
is: 3.35355541921138033956e-01 0x1.5767717455a700000000p-2
should be: 3.35355541921137978445e-01 0x1.5767717455a6f0000000p-2
difference: 5.55111512312578270212e-17 0x1.00000000000000000000p-54
ulp : 1.0000
max.ulp : 0.0000
Maximal error of `log1p'
is : 1 ulp
accepted: 0 ulp
Failure: Test: scalb (-0X1.5555555555556P-2, 1022) == -0X0.5555555555556P-1022
Result:
is: -1.49807761238526342276e+307 -0x1.55555555555560000000p+1020
should be: -7.41691286169067457074e-309 -0x0.55555555555560000000p-1022
difference: 1.49807761238526342276e+307 0x1.55555555555560000000p+1020
ulp : inf
max.ulp : 0.0000
Maximal error of `scalb'
is : inf ulp
accepted: 0 ulp
Failure: Test: scalbln (-0X1.5555555555556P-2, 4294966274) == -0X0.5555555555556P-1022
Result:
is: -inf -inf
should be: -7.41691286169067457074e-309 -0x0.55555555555560000000p-1022
Failure: Test: cbrt (-0X1.7B95A68B6D5B2P-101) == -0X1.6FCB97ED7355EP-34
Result:
is: -8.36269662114097413030e-11 -0x1.6fcb97ed7355b0000000p-34
should be: -8.36269662114097800771e-11 -0x1.6fcb97ed7355e0000000p-34
difference: 3.87740912134231722596e-26 0x1.80000000000000000000p-85
ulp : 3.0000
max.ulp : 0.0000
Maximal error of `cbrt'
is : 3 ulp
accepted: 1 ulp
Failure: Test: erf (0X1.B1C23A062D3A9P-13) == 0X1.E971BBC2C41E9P-13
Result:
is: 2.33385215402850303493e-04 0x1.e971bbc2c41e80000000p-13
should be: 2.33385215402850330598e-04 0x1.e971bbc2c41e90000000p-13
difference: 2.71050543121376108502e-20 0x1.00000000000000000000p-65
ulp : 1.0000
max.ulp : 0.0000
Failure: Test: erfc (0X1.3FFFFFFFFFF0CP+0) == 0X1.3BCD133AA1397P-4
Result:
is: 7.70998717435546349064e-02 0x1.3bcd133aa139b0000000p-4
should be: 7.70998717435545793952e-02 0x1.3bcd133aa13970000000p-4
difference: 5.55111512312578270212e-17 0x1.00000000000000000000p-54
ulp : 4.0000
max.ulp : 0.0000
Maximal error of `erfc'
is : 4 ulp
accepted: 1 ulp
Failure: Test: gamma (-0X1.FA471547C2FE5P+1) == -0X1.DDC0336980B58P-52
Result:
is: -4.44089209850062616169e-16 -0x1.00000000000000000000p-51
should be: -4.14382750757704980224e-16 -0x1.ddc0336980b580000000p-52
difference: 2.97064590923576359454e-17 0x1.11fe64b3fa5400000000p-55
ulp : 602518571185320.0000
max.ulp : 0.0000
Maximal error of `gamma'
is : 602518571185320 ulp
accepted: 0 ulp
Failure: Test: lgamma (-0X1.FA471547C2FE5P+1) == -0X1.DDC0336980B58P-52
Result:
is: -4.44089209850062616169e-16 -0x1.00000000000000000000p-51
should be: -4.14382750757704980224e-16 -0x1.ddc0336980b580000000p-52
difference: 2.97064590923576359454e-17 0x1.11fe64b3fa5400000000p-55
ulp : 602518571185320.0000
max.ulp : 0.0000
Failure: Test: lgamma (-0X1.FA471547C2FE5P+1) == -0X1.DDC0336980B58P-52
Result:
is: -4.44089209850062616169e-16 -0x1.00000000000000000000p-51
should be: -4.14382750757704980224e-16 -0x1.ddc0336980b580000000p-52
difference: 2.97064590923576359454e-17 0x1.11fe64b3fa5400000000p-55
ulp : 602518571185320.0000
max.ulp : 0.0000
Maximal error of `lgamma'
is : 602518571185320 ulp
accepted: 1 ulp
Failure: Test: tgamma (-0X1.5800000080001P+7) == -0X1.B98C532C7745AP-1009
Result:
is: -3.14392714488304993290e-304 -0x1.b98c532c77b0b0000000p-1009
should be: -3.14392714488235661572e-304 -0x1.b98c532c7745a0000000p-1009
difference: 6.93317182526304526479e-317 0x0.0000000d620000000000p-1022
ulp : 1713.0000
max.ulp : 0.0000
Maximal error of `tgamma'
is : 1713 ulp
accepted: 1 ulp
Failure: Test: lround (0X1.FFFFFFFFFFFFBP+53) == 18014398509481974
Result:
is: 18014394214514678
should be: 18014398509481974
Failure: Test: nexttoward (-0X1P+0, -0X8.00346DC5D6388P-3) == -0X1.0000000000001P+0
Result:
is: -9.99999999999999888978e-01 -0x1.fffffffffffff0000000p-1
should be: -1.00000000000000022204e+00 -0x1.00000000000010000000p+0
difference: 3.33066907387546962127e-16 0x1.80000000000000000000p-52
ulp : 1.5000
max.ulp : 0.0000
Maximal error of `nexttoward'
is : 2 ulp
accepted: 0 ulp
Failure: Test: j0 (-0X1.001000001P+593) == 0X1.FFFFD6F053A8BP-298
Result:
is: 0.00000000000000000000e+00 0x0.00000000000000000000p+0
should be: 3.92726996635420636080e-90 0x1.ffffd6f053a8b0000000p-298
difference: 3.92726996635420636080e-90 0x1.ffffd6f053a8b0000000p-298
ulp : 9007188232452747.0000
max.ulp : 0.0000
Maximal error of `j0'
is : 9007188232452747 ulp
accepted: 2 ulp
Failure: Test: j1 (0X1.FF00000000002P+840) == 0X1.FFFFB6BCBBC66P-422
Result:
is: 0.00000000000000000000e+00 0x0.00000000000000000000p+0
should be: 1.84659169169933146950e-127 0x1.ffffb6bcbbc660000000p-422
difference: 1.84659169169933146950e-127 0x1.ffffb6bcbbc660000000p-422
ulp : 9007179588418662.0000
max.ulp : 0.0000
Maximal error of `j1'
is : 9007179588418662 ulp
accepted: 1 ulp
Failure: Test: jn (16381, -0X1.2947602EE574P+17) == 0X1.82C6C5A295941P+903
Result:
is: 2.04613189330115621475e-03 0x1.0c30cb214bbf30000000p-9
should be: 1.02165942491467882820e+272 0x1.82c6c5a2959410000000p+903
difference: 1.02165942491467882820e+272 0x1.82c6c5a2959410000000p+903
ulp : 6804243321805121.0000
max.ulp : 0.0000
Maximal error of `jn'
is : 6804243321805121 ulp
accepted: 4 ulp
Failure: Test: y0 (0X1.FF00000000002P+840) == 0X1.FFFFB6BCBBC66P-422
Result:
is: 0.00000000000000000000e+00 0x0.00000000000000000000p+0
should be: 1.84659169169933146950e-127 0x1.ffffb6bcbbc660000000p-422
difference: 1.84659169169933146950e-127 0x1.ffffb6bcbbc660000000p-422
ulp : 9007179588418662.0000
max.ulp : 0.0000
Maximal error of `y0'
is : 9007179588418662 ulp
accepted: 2 ulp
Failure: Test: y1 (0X1.001000001P+593) == 0X1.FFFFD6F053A8BP-298
Result:
is: 0.00000000000000000000e+00 0x0.00000000000000000000p+0
should be: 3.92726996635420636080e-90 0x1.ffffd6f053a8b0000000p-298
difference: 3.92726996635420636080e-90 0x1.ffffd6f053a8b0000000p-298
ulp : 9007188232452747.0000
max.ulp : 0.0000
Maximal error of `y1'
is : 9007188232452747 ulp
accepted: 3 ulp
Failure: Test: yn (2, 0X1.B12ED58FD5169P+1) == -0X1.6541FD948522FP-58
Result:
is: 2.77555756156289135106e-17 0x1.00000000000000000000p-55
should be: -4.84174570521208065845e-18 -0x1.6541fd948522f0000000p-58
difference: 3.25973213208409949394e-17 0x1.2ca83fb290a460000000p-55
ulp : 42313742272713264.0000
max.ulp : 0.0000
Maximal error of `yn'
is : 42313742272713264 ulp
accepted: 3 ulp
Test suite completed:
2874 test cases plus 2561 tests for exception flags executed.
43 errors occurred.
More information about the Libc-alpha
mailing list