summaryrefslogtreecommitdiff
path: root/math/auto-libm-test-in
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2013-12-20 21:03:39 +0000
committerJoseph Myers <joseph@codesourcery.com>2013-12-20 21:03:39 +0000
commit31e3a40588f6b215f2583c12ba29ff5cea63d2ef (patch)
tree725953dd081236e773cf669b7d74d6b79557666a /math/auto-libm-test-in
parent6165840feae41dba93b85d0cfad23f3d226fad30 (diff)
downloadglibc-31e3a40588f6b215f2583c12ba29ff5cea63d2ef.tar.gz
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 'math/auto-libm-test-in')
-rw-r--r--math/auto-libm-test-in121
1 files changed, 121 insertions, 0 deletions
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 947b2af11a..532b17e4a8 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -33,9 +33,17 @@ acos 0x0.ffffffffffffp0
acos -0x0.ffffffffffffp0
acos 0x0.ffffffffffffffffp0
acos -0x0.ffffffffffffffffp0
+acos min
+acos -min
+acos min_subnorm
+acos -min_subnorm
acosh 1
+acosh 1.625
acosh 7
+acosh 100
+acosh 1e5
+acosh max no-test-inline
asin 0
asin -0
@@ -52,10 +60,27 @@ asin 0x0.ffffffffffffp0
asin -0x0.ffffffffffffp0
asin 0x0.ffffffffffffffffp0
asin -0x0.ffffffffffffffffp0
+# Bug 16351: underflow exception may be missing.
+asin min missing-underflow
+asin -min missing-underflow
+asin min_subnorm missing-underflow
+asin -min_subnorm missing-underflow
asinh 0
asinh -0
asinh 0.75
+asinh 1
+asinh 10
+asinh 100
+asinh 1e6
+asinh 0x1p100
+# Bug 16350: underflow exception may be missing.
+asinh min missing-underflow
+asinh -min missing-underflow
+asinh min_subnorm missing-underflow
+asinh -min_subnorm missing-underflow
+asinh max no-test-inline
+asinh -max no-test-inline
atan 0
atan -0
@@ -64,10 +89,18 @@ atan -max
atan 1
atan -1
atan 0.75
+atan 0x1p-5
+atan 2.5
+atan 10
+atan 1e6
# Bug 15319: underflow exception may be missing.
atan 0x1p-100 missing-underflow
atan 0x1p-600 missing-underflow
atan 0x1p-10000 missing-underflow
+atan min missing-underflow
+atan -min missing-underflow
+atan min_subnorm missing-underflow
+atan -min_subnorm missing-underflow
# atan2 (0,x) == 0 for x > 0.
atan2 0 1
@@ -90,8 +123,17 @@ atan2 -1 0
# atan2 (y,-0) == -pi/2 for y < 0.
atan2 -1 -0
atan2 max max
+atan2 max -max
+atan2 -max max
+atan2 -max -max
atan2 max min
atan2 -max -min
+atan2 -max min
+atan2 max -min
+atan2 max min_subnorm
+atan2 -max -min_subnorm
+atan2 -max min_subnorm
+atan2 max -min_subnorm
atan2 0.75 1
atan2 -0.75 1.0
atan2 0.75 -1.0
@@ -100,10 +142,43 @@ atan2 0.390625 .00029
atan2 1.390625 0.9296875
atan2 -0.00756827042671106339 -.001792735857538728036
atan2 0x1.00000000000001p0 0x1.00000000000001p0
+atan2 min min
+atan2 min -min
+atan2 -min min
+atan2 -min -min
+atan2 min_subnorm min_subnorm
+atan2 min_subnorm -min_subnorm
+atan2 -min_subnorm min_subnorm
+atan2 -min_subnorm -min_subnorm
+atan2 1 -max
+atan2 -1 -max
+atan2 min -max
+atan2 -min -max
+atan2 min_subnorm -max
+atan2 -min_subnorm -max
+# Bug 15319: underflow exception may be missing.
+# Bug 16349: errno setting may be missing.
+atan2 1 max missing-underflow
+atan2 -1 max missing-underflow
+atan2 min max missing-underflow missing-errno
+atan2 -min max missing-underflow missing-errno
+atan2 min_subnorm max missing-underflow missing-errno
+atan2 -min_subnorm max missing-underflow missing-errno
atanh 0
atanh -0
atanh 0.75
+atanh -0.75
+atanh 0.25
+atanh 0x1p-5
+atanh 0x1p-10
+atanh 0x1.2345p-20
+# Bug 16352: underflow exception may be missing.
+# Bug 16357: spurious underflow may occur.
+atanh min missing-underflow spurious-underflow:ldbl-96-intel:x86
+atanh -min missing-underflow spurious-underflow:ldbl-96-intel:x86
+atanh min_subnorm missing-underflow
+atanh -min_subnorm missing-underflow
# cabs (x,y) == cabs (y,x).
cabs 0.75 12.390625
@@ -154,6 +229,13 @@ cbrt 0.9921875
cbrt 0.75
cbrt 0x1p16383
cbrt 0x1p-16383
+cbrt 1e5
+cbrt max
+cbrt -max
+cbrt min
+cbrt -min
+cbrt min_subnorm
+cbrt -min_subnorm
ccos 0.0 0.0
ccos -0 0.0
@@ -402,6 +484,12 @@ cos 7
cos 8
cos 9
cos 10
+cos max
+cos -max
+cos min
+cos -min
+cos min_subnorm
+cos -min_subnorm
cosh 0
cosh -0
@@ -411,6 +499,39 @@ cosh -709.8893558127259666434838436543941497802734375
cosh 22
cosh 23
cosh 24
+cosh 0x1p-5
+cosh 0x1p-20
+cosh -1
+cosh 50
+cosh max no-test-inline
+cosh -max no-test-inline
+# Bug 16354: spurious underflow may occur.
+cosh min spurious-underflow
+cosh -min spurious-underflow
+cosh min_subnorm spurious-underflow
+cosh -min_subnorm spurious-underflow
+# Test values either side of overflow for each floating-point format.
+cosh 0x5.96a7ep+4
+cosh 0x5.96a7e8p+4
+cosh -0x5.96a7ep+4
+cosh -0x5.96a7e8p+4
+cosh 0x2.c679d1f73f0fap+8
+cosh 0x2.c679d1f73f0fcp+8
+cosh -0x2.c679d1f73f0fap+8
+cosh -0x2.c679d1f73f0fcp+8
+# Bug 16356: bad results from expl (and so coshl) in round-upward mode.
+cosh 0x2.c679d1f73f0fb624d358b213a7p+8 xfail-rounding:ldbl-96-intel:x86 xfail-rounding:ldbl-96-intel:x86_64
+cosh 0x2.c679d1f73f0fb624d358b213a8p+8 xfail-rounding:ldbl-96-intel:x86 xfail-rounding:ldbl-96-intel:x86_64
+cosh -0x2.c679d1f73f0fb624d358b213a7p+8 xfail-rounding:ldbl-96-intel:x86 xfail-rounding:ldbl-96-intel:x86_64
+cosh -0x2.c679d1f73f0fb624d358b213a8p+8 xfail-rounding:ldbl-96-intel:x86 xfail-rounding:ldbl-96-intel:x86_64
+cosh 0x2.c5d37700c6bb03a4p+12 no-test-inline
+cosh 0x2.c5d37700c6bb03a8p+12 no-test-inline
+cosh -0x2.c5d37700c6bb03a4p+12 no-test-inline
+cosh -0x2.c5d37700c6bb03a8p+12 no-test-inline
+cosh 0x2.c5d37700c6bb03a6c24b6c9b494cp+12 no-test-inline
+cosh 0x2.c5d37700c6bb03a6c24b6c9b494ep+12 no-test-inline
+cosh -0x2.c5d37700c6bb03a6c24b6c9b494cp+12 no-test-inline
+cosh -0x2.c5d37700c6bb03a6c24b6c9b494ep+12 no-test-inline
cpow 1 0 0 0
cpow 2 0 10 0