diff options
author | Joseph Myers <joseph@codesourcery.com> | 2013-12-20 21:03:39 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2013-12-20 21:03:39 +0000 |
commit | 31e3a40588f6b215f2583c12ba29ff5cea63d2ef (patch) | |
tree | 725953dd081236e773cf669b7d74d6b79557666a /sysdeps/i386/fpu | |
parent | 6165840feae41dba93b85d0cfad23f3d226fad30 (diff) | |
download | glibc-31e3a40588f6b215f2583c12ba29ff5cea63d2ef.zip glibc-31e3a40588f6b215f2583c12ba29ff5cea63d2ef.tar.gz glibc-31e3a40588f6b215f2583c12ba29ff5cea63d2ef.tar.bz2 |
Add more libm-test coverage of [a-c]* real functions.
Various libm functions have inadequate test coverage in libm-test.inc
/ auto-libm-test-in - failing to cover all the usual special cases
(infinities, NaNs, zero, large and small finite values, subnormals) as
well as a reasonable range of ordinary inputs and, where appropriate,
inputs close to the thresholds for underflow and overflow.
This patch improves test coverage for real functions [a-c]* (with the
expectation of adding more coverage for other functions later).
Tested x86_64 and x86 and ulps updated accordingly (and eight glibc
bugs and one C11 DR filed for issues found in the process).
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cbrt, cos and cosh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acosh_test_data): Add more tests.
(atanh_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
Diffstat (limited to 'sysdeps/i386/fpu')
-rw-r--r-- | sysdeps/i386/fpu/libm-test-ulps | 483 |
1 files changed, 477 insertions, 6 deletions
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps index 50bbe77..dc53d94 100644 --- a/sysdeps/i386/fpu/libm-test-ulps +++ b/sysdeps/i386/fpu/libm-test-ulps @@ -121,9 +121,28 @@ ildouble: 1 ldouble: 1 # asin_downward +Test "asin_downward (-0x4p-1024)": +double: 1 +idouble: 1 +Test "asin_downward (-0x4p-1076)": +double: 1 +idouble: 1 +Test "asin_downward (-0x4p-128)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "asin_downward (-0x8p-152)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 Test "asin_downward (-0x8p-4)": ildouble: 1 ldouble: 1 +Test "asin_downward (-0x8p-972)": +double: 1 +idouble: 1 Test "asin_downward (-0xf.fffffff8p-4)": ildouble: 1 ldouble: 1 @@ -159,6 +178,44 @@ double: 1 float: 1 idouble: 1 ifloat: 1 +Test "asin_towardzero (-0x2p-16384)": +ildouble: 1 +ldouble: 1 +Test "asin_towardzero (-0x4p-1024)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "asin_towardzero (-0x4p-1076)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "asin_towardzero (-0x4p-128)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "asin_towardzero (-0x4p-16384)": +ildouble: 1 +ldouble: 1 +Test "asin_towardzero (-0x8p-152)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "asin_towardzero (-0x8p-16448)": +ildouble: 1 +ldouble: 1 +Test "asin_towardzero (-0x8p-972)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 Test "asin_towardzero (-1.0)": float: 1 ifloat: 1 @@ -181,6 +238,34 @@ double: 1 float: 1 idouble: 1 ifloat: 1 +Test "asin_upward (-0x2p-16384)": +ildouble: 1 +ldouble: 1 +Test "asin_upward (-0x4p-1024)": +ildouble: 1 +ldouble: 1 +Test "asin_upward (-0x4p-1076)": +ildouble: 1 +ldouble: 1 +Test "asin_upward (-0x4p-128)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "asin_upward (-0x4p-16384)": +ildouble: 1 +ldouble: 1 +Test "asin_upward (-0x8p-152)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "asin_upward (-0x8p-16448)": +ildouble: 1 +ldouble: 1 +Test "asin_upward (-0x8p-972)": +ildouble: 1 +ldouble: 1 Test "asin_upward (-0xf.fffffff8p-4)": ildouble: 1 ldouble: 1 @@ -201,13 +286,58 @@ float: 1 ifloat: 1 ildouble: 1 ldouble: 1 +Test "asin_upward (0x2p-16384)": +ildouble: 1 +ldouble: 1 +Test "asin_upward (0x4p-1024)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "asin_upward (0x4p-1076)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "asin_upward (0x4p-128)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "asin_upward (0x4p-16384)": +ildouble: 1 +ldouble: 1 +Test "asin_upward (0x8p-152)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "asin_upward (0x8p-16448)": +ildouble: 1 +ldouble: 1 Test "asin_upward (0x8p-4)": ildouble: 1 ldouble: 1 +Test "asin_upward (0x8p-972)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 Test "asin_upward (1.0)": double: 1 idouble: 1 +# asinh +Test "asinh (0x1p+100)": +ldouble: 1 +Test "asinh (0xf.424p+16)": +ildouble: 1 +ldouble: 1 + # atan2 Test "atan2 (-0x1.effe81f852716ffep-8, -0x7.57d1de0e5124664p-12)": ildouble: 1 @@ -217,9 +347,18 @@ ildouble: 1 ldouble: 1 # atanh +Test "atanh (-0xcp-4)": +ildouble: 2 +ldouble: 1 Test "atanh (0.75)": ildouble: 2 ldouble: 1 +Test "atanh (0x4p-12)": +ildouble: 1 +Test "atanh (0x4p-4)": +ldouble: 1 +Test "atanh (0x8p-8)": +ildouble: 1 Test "atanh (0xcp-4)": ildouble: 2 ldouble: 1 @@ -4206,15 +4345,26 @@ ldouble: 1 Test "cbrt (-0x4.18937p-12)": ildouble: 1 ldouble: 1 +Test "cbrt (-0xf.fffffffffffffffp+16380)": +ildouble: 1 +ldouble: 1 Test "cbrt (-27.0)": ildouble: 1 ldouble: 1 Test "cbrt (0.75)": ildouble: 1 ldouble: 1 +Test "cbrt (0x1.86ap+16)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 Test "cbrt (0xcp-4)": ildouble: 1 ldouble: 1 +Test "cbrt (0xf.fffffffffffffffp+16380)": +ildouble: 1 +ldouble: 1 # ccos Test "Real part of: ccos (-0.75 + 710.5 i)": @@ -6274,6 +6424,48 @@ idouble: 2 ifloat: 1 # cos_downward +Test "cos_downward (-0x2p-16384)": +ildouble: 1 +ldouble: 1 +Test "cos_downward (-0x4p-1024)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (-0x4p-1076)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (-0x4p-128)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (-0x4p-16384)": +ildouble: 1 +ldouble: 1 +Test "cos_downward (-0x8p-152)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (-0x8p-16448)": +ildouble: 1 +ldouble: 1 +Test "cos_downward (-0x8p-972)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (-0xf.ffffffffffff8p+1020)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (-0xf.fffffp+124)": +double: 1 +idouble: 1 Test "cos_downward (0x1.000000cf4a2a2p+0)": double: 1 idouble: 1 @@ -6367,6 +6559,9 @@ idouble: 1 Test "cos_downward (0x2p+0)": ildouble: 1 ldouble: 1 +Test "cos_downward (0x2p-16384)": +ildouble: 1 +ldouble: 1 Test "cos_downward (0x3p+0)": double: 1 idouble: 1 @@ -6378,12 +6573,43 @@ ldouble: 1 Test "cos_downward (0x4p+48)": double: 1 idouble: 1 +Test "cos_downward (0x4p-1024)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (0x4p-1076)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (0x4p-128)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (0x4p-16384)": +ildouble: 1 +ldouble: 1 Test "cos_downward (0x8p+0)": ildouble: 2 ldouble: 2 Test "cos_downward (0x8p+1020)": ildouble: 1 ldouble: 1 +Test "cos_downward (0x8p-152)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_downward (0x8p-16448)": +ildouble: 1 +ldouble: 1 +Test "cos_downward (0x8p-972)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 Test "cos_downward (0x9p+0)": double: 1 idouble: 1 @@ -6416,6 +6642,9 @@ double: 1 idouble: 1 ildouble: 1 ldouble: 1 +Test "cos_downward (0xf.fffffffffffffffp+16380)": +ildouble: 1 +ldouble: 1 Test "cos_downward (0xf.fffffp+124)": double: 1 idouble: 1 @@ -6457,6 +6686,43 @@ ildouble: 1 ldouble: 1 # cos_towardzero +Test "cos_towardzero (-0x2p-16384)": +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (-0x4p-1024)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (-0x4p-1076)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (-0x4p-128)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (-0x4p-16384)": +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (-0x8p-152)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (-0x8p-16448)": +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (-0x8p-972)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (-0xf.fffffp+124)": +double: 1 +idouble: 1 Test "cos_towardzero (0x1.000000cf4a2a2p+0)": double: 1 idouble: 1 @@ -6516,12 +6782,33 @@ idouble: 1 Test "cos_towardzero (0x2p+0)": double: 1 idouble: 1 +Test "cos_towardzero (0x2p-16384)": +ildouble: 1 +ldouble: 1 Test "cos_towardzero (0x4p+0)": double: 1 idouble: 1 Test "cos_towardzero (0x4p+48)": double: 1 idouble: 1 +Test "cos_towardzero (0x4p-1024)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (0x4p-1076)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (0x4p-128)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (0x4p-16384)": +ildouble: 1 +ldouble: 1 Test "cos_towardzero (0x8p+0)": double: 1 idouble: 1 @@ -6530,6 +6817,19 @@ ldouble: 1 Test "cos_towardzero (0x8p+1020)": double: 1 idouble: 1 +Test "cos_towardzero (0x8p-152)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (0x8p-16448)": +ildouble: 1 +ldouble: 1 +Test "cos_towardzero (0x8p-972)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 Test "cos_towardzero (0xa.217bap+12)": ildouble: 1 ldouble: 1 @@ -6584,6 +6884,12 @@ ldouble: 1 Test "cos_upward (-0x2p+64)": double: 1 idouble: 1 +Test "cos_upward (-0xf.ffffffffffff8p+1020)": +ildouble: 1 +ldouble: 1 +Test "cos_upward (-0xf.fffffffffffffffp+16380)": +ildouble: 1 +ldouble: 1 Test "cos_upward (0x1.000004p+0)": double: 1 idouble: 1 @@ -6714,6 +7020,9 @@ idouble: 1 Test "cos_upward (0xf.ffffffffffff8p+1020)": ildouble: 1 ldouble: 1 +Test "cos_upward (0xf.fffffffffffffffp+16380)": +ildouble: 2 +ldouble: 2 Test "cos_upward (1)": float: 1 ifloat: 1 @@ -6744,21 +7053,72 @@ ildouble: 1 ldouble: 1 # cosh +Test "cosh (-0x1p+0)": +ldouble: 1 +Test "cosh (-0x2.c5d374p+12)": +ldouble: 2 +Test "cosh (-0x2.c5d37700c6bbp+12)": +ldouble: 1 Test "cosh (-0x2.c5e3acp+8)": ildouble: 1 Test "cosh (-0x2.c5e3bp+8)": ildouble: 1 +Test "cosh (-0x2.c679d1f73f0fap+8)": +ildouble: 1 +Test "cosh (-0x2.c679d1f73f0fb624p+8)": +ildouble: 1 +Test "cosh (-0x2.c679d1f73f0fb628p+8)": +ildouble: 1 +Test "cosh (-0x2.c679d1f73f0fcp+8)": +ildouble: 1 +Test "cosh (-0x2.c679dp+8)": +ildouble: 1 Test "cosh (0x1.6p+4)": ldouble: 1 +Test "cosh (0x2.c5d374p+12)": +ldouble: 2 +Test "cosh (0x2.c5d37700c6bbp+12)": +ldouble: 1 # cosh_downward +Test "cosh_downward (-0x1p+0)": +ldouble: 1 +Test "cosh_downward (-0x2.c5d374p+12)": +ldouble: 1 +Test "cosh_downward (-0x2.c5d37700c6bb03a4p+12)": +ldouble: 3 +Test "cosh_downward (-0x2.c5d37700c6bbp+12)": +ldouble: 2 Test "cosh_downward (-0x2.c5e3acd2922a6p+8)": ildouble: 1 Test "cosh_downward (-0x2.c5e3bp+8)": ildouble: 1 +Test "cosh_downward (-0x2.c679d1f73f0fap+8)": +ildouble: 2 +Test "cosh_downward (-0x2.c679d1f73f0fcp+8)": +ildouble: 1 +Test "cosh_downward (-0x2.c679dp+8)": +double: 1 +ildouble: 1 +Test "cosh_downward (-0x5.96a7ep+4)": +double: 1 +ildouble: 2 +ldouble: 1 Test "cosh_downward (0x1.6p+4)": ildouble: 1 ldouble: 2 +Test "cosh_downward (0x2.c5d374p+12)": +ldouble: 1 +Test "cosh_downward (0x2.c5d37700c6bb03a4p+12)": +ldouble: 3 +Test "cosh_downward (0x2.c5d37700c6bbp+12)": +ldouble: 2 +Test "cosh_downward (0x2.c679dp+8)": +double: 1 +Test "cosh_downward (0x5.96a7ep+4)": +double: 1 +ildouble: 1 +ldouble: 1 Test "cosh_downward (22)": double: 1 float: 1 @@ -6780,21 +7140,68 @@ ildouble: 1 ldouble: 1 # cosh_tonearest +Test "cosh_tonearest (-0x1p+0)": +ldouble: 1 +Test "cosh_tonearest (-0x2.c5d374p+12)": +ldouble: 2 +Test "cosh_tonearest (-0x2.c5d37700c6bbp+12)": +ldouble: 1 Test "cosh_tonearest (-0x2.c5e3acp+8)": ildouble: 1 Test "cosh_tonearest (-0x2.c5e3bp+8)": ildouble: 1 +Test "cosh_tonearest (-0x2.c679d1f73f0fap+8)": +ildouble: 1 +Test "cosh_tonearest (-0x2.c679d1f73f0fb624p+8)": +ildouble: 1 +Test "cosh_tonearest (-0x2.c679d1f73f0fb628p+8)": +ildouble: 1 +Test "cosh_tonearest (-0x2.c679d1f73f0fcp+8)": +ildouble: 1 +Test "cosh_tonearest (-0x2.c679dp+8)": +ildouble: 1 Test "cosh_tonearest (0x1.6p+4)": ldouble: 1 +Test "cosh_tonearest (0x2.c5d374p+12)": +ldouble: 2 +Test "cosh_tonearest (0x2.c5d37700c6bbp+12)": +ldouble: 1 Test "cosh_tonearest (22)": ldouble: 1 # cosh_towardzero +Test "cosh_towardzero (-0x1p+0)": +ildouble: 1 +ldouble: 1 +Test "cosh_towardzero (-0x2.c5d374p+12)": +ldouble: 1 +Test "cosh_towardzero (-0x2.c5d37700c6bb03a4p+12)": +ldouble: 3 +Test "cosh_towardzero (-0x2.c5d37700c6bbp+12)": +ldouble: 2 Test "cosh_towardzero (-0x2.c5e3acd2922a6p+8)": ildouble: 1 +Test "cosh_towardzero (-0x2.c679dp+8)": +double: 1 +ildouble: 1 +Test "cosh_towardzero (-0x5.96a7ep+4)": +double: 1 +ldouble: 1 Test "cosh_towardzero (0x1.6p+4)": ildouble: 1 ldouble: 2 +Test "cosh_towardzero (0x2.c5d374p+12)": +ldouble: 1 +Test "cosh_towardzero (0x2.c5d37700c6bb03a4p+12)": +ldouble: 3 +Test "cosh_towardzero (0x2.c5d37700c6bbp+12)": +ldouble: 2 +Test "cosh_towardzero (0x2.c679dp+8)": +double: 1 +Test "cosh_towardzero (0x5.96a7ep+4)": +double: 1 +ildouble: 1 +ldouble: 1 Test "cosh_towardzero (22)": double: 1 float: 1 @@ -6816,6 +7223,12 @@ ildouble: 1 ldouble: 1 # cosh_upward +Test "cosh_upward (-0x2.c5d374p+12)": +ldouble: 2 +Test "cosh_upward (-0x2.c5d37700c6bb03a4p+12)": +ldouble: 3 +Test "cosh_upward (-0x2.c5d37700c6bbp+12)": +ldouble: 3 Test "cosh_upward (-0x2.c5e3acd2922a6p+8)": double: 1 ildouble: 1 @@ -6824,6 +7237,36 @@ Test "cosh_upward (-0x2.c5e3acp+8)": ildouble: 1 Test "cosh_upward (-0x2.c5e3bp+8)": ildouble: 1 +Test "cosh_upward (-0x2.c679d1f73f0fap+8)": +double: 1 +ildouble: 1 +Test "cosh_upward (-0x2.c679d1f73f0fcp+8)": +ildouble: 1 +Test "cosh_upward (-0x2p-16384)": +ildouble: 1 +Test "cosh_upward (-0x4p-1024)": +idouble: 1 +ildouble: 1 +Test "cosh_upward (-0x4p-1076)": +idouble: 1 +ildouble: 1 +Test "cosh_upward (-0x4p-128)": +idouble: 1 +ifloat: 1 +ildouble: 1 +Test "cosh_upward (-0x4p-16384)": +ildouble: 1 +Test "cosh_upward (-0x5.96a7ep+4)": +ildouble: 1 +Test "cosh_upward (-0x8p-152)": +idouble: 1 +ifloat: 1 +ildouble: 1 +Test "cosh_upward (-0x8p-16448)": +ildouble: 1 +Test "cosh_upward (-0x8p-972)": +idouble: 1 +ildouble: 1 Test "cosh_upward (0x1.6p+4)": ildouble: 1 ldouble: 1 @@ -6832,6 +7275,12 @@ ildouble: 2 ldouble: 1 Test "cosh_upward (0x1.8p+4)": ildouble: 1 +Test "cosh_upward (0x2.c5d374p+12)": +ldouble: 2 +Test "cosh_upward (0x2.c5d37700c6bb03a4p+12)": +ldouble: 3 +Test "cosh_upward (0x2.c5d37700c6bbp+12)": +ldouble: 3 Test "cosh_upward (0x2.c5e3acd2922a6p+8)": double: 1 ildouble: 2 @@ -6840,6 +7289,21 @@ Test "cosh_upward (0x2.c5e3acp+8)": ildouble: 1 Test "cosh_upward (0x2.c5e3bp+8)": ildouble: 1 +Test "cosh_upward (0x2.c679d1f73f0fap+8)": +double: 1 +ildouble: 1 +Test "cosh_upward (0x2.c679d1f73f0fcp+8)": +ildouble: 1 +Test "cosh_upward (0x2.c679d4p+8)": +ildouble: 1 +Test "cosh_upward (0x2.c679dp+8)": +ildouble: 1 +Test "cosh_upward (0x3.2p+4)": +ildouble: 1 +Test "cosh_upward (0x5.96a7e8p+4)": +ildouble: 1 +Test "cosh_upward (0x5.96a7ep+4)": +ildouble: 1 Test "cosh_upward (22)": ildouble: 2 ldouble: 1 @@ -13805,6 +14269,10 @@ ifloat: 1 ildouble: 1 ldouble: 1 +Function: "asinh": +ildouble: 1 +ldouble: 1 + Function: "atan2": ildouble: 1 ldouble: 1 @@ -13894,6 +14362,8 @@ ildouble: 1 ldouble: 1 Function: "cbrt": +double: 1 +idouble: 1 ildouble: 1 ldouble: 1 @@ -14011,19 +14481,19 @@ ldouble: 2 Function: "cosh": ildouble: 1 -ldouble: 1 +ldouble: 2 Function: "cosh_downward": double: 1 float: 1 idouble: 1 ifloat: 1 -ildouble: 1 -ldouble: 2 +ildouble: 2 +ldouble: 3 Function: "cosh_tonearest": ildouble: 1 -ldouble: 1 +ldouble: 2 Function: "cosh_towardzero": double: 1 @@ -14031,13 +14501,14 @@ float: 1 idouble: 1 ifloat: 1 ildouble: 1 -ldouble: 2 +ldouble: 3 Function: "cosh_upward": double: 1 idouble: 1 +ifloat: 1 ildouble: 2 -ldouble: 1 +ldouble: 3 Function: Real part of "cpow": double: 2 |