diff options
author | Joseph Myers <joseph@codesourcery.com> | 2015-08-07 23:10:35 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2015-08-07 23:10:35 +0000 |
commit | 37550cb3d6591a8f443467707ec80b4ab5c2e157 (patch) | |
tree | 934ef1da0ab3a2cd9d0a23b1645392914e95afcc /math | |
parent | db2bcbcb631f1c1aa023ef9f23a968e1ac288423 (diff) | |
download | glibc-37550cb3d6591a8f443467707ec80b4ab5c2e157.zip glibc-37550cb3d6591a8f443467707ec80b4ab5c2e157.tar.gz glibc-37550cb3d6591a8f443467707ec80b4ab5c2e157.tar.bz2 |
Fix tan missing underflows (bug 16517).
Similar to various other bugs in this area, some tan implementations
do not raise the underflow exception for subnormal arguments, when the
result is tiny and inexact. This patch forces the exception in a
similar way to previous fixes.
Tested for x86_64, x86, mips64 and powerpc.
[BZ #16517]
* sysdeps/ieee754/dbl-64/s_tan.c: Include <float.h>.
(tan): Force underflow exception for arguments with small absolute
value.
* sysdeps/ieee754/flt-32/k_tanf.c: Include <float.h>.
(__kernel_tanf): Force underflow exception for arguments with
small absolute value.
* sysdeps/ieee754/ldbl-128/k_tanl.c: Include <float.h>.
(__kernel_tanl): Force underflow exception for arguments with
small absolute value.
* sysdeps/ieee754/ldbl-128ibm/k_tanl.c: Include <float.h>.
(__kernel_tanl): Force underflow exception for arguments with
small absolute value.
* sysdeps/ieee754/ldbl-96/k_tanl.c: Include <float.h>.
(__kernel_tanl): Force underflow exception for arguments with
small absolute value.
* math/auto-libm-test-in: Add more tests of tan.
* math/auto-libm-test-out: Regenerated.
Diffstat (limited to 'math')
-rw-r--r-- | math/auto-libm-test-in | 4 | ||||
-rw-r--r-- | math/auto-libm-test-out | 316 |
2 files changed, 320 insertions, 0 deletions
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in index cc9b7fd..bb6d30e 100644 --- a/math/auto-libm-test-in +++ b/math/auto-libm-test-in @@ -2659,6 +2659,10 @@ tan 9 tan 10 tan -0x1.062a48p+0 tan -0x1.4f69cp+0 +tan min +tan -min +tan min_subnorm +tan -min_subnorm tanh 0 tanh -0 diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out index 81abc0c..a310394 100644 --- a/math/auto-libm-test-out +++ b/math/auto-libm-test-out @@ -201183,6 +201183,322 @@ tan -0x1.4f69cp+0 = tan tonearest ldbl-128ibm -0x1.4f69cp+0L : -0x3.c00d4280aa7bede62d35d88621p+0L : inexact-ok = tan towardzero ldbl-128ibm -0x1.4f69cp+0L : -0x3.c00d4280aa7bede62d35d8862p+0L : inexact-ok = tan upward ldbl-128ibm -0x1.4f69cp+0L : -0x3.c00d4280aa7bede62d35d8862p+0L : inexact-ok +tan min += tan downward flt-32 0x4p-128f : 0x4p-128f : inexact-ok underflow-ok errno-erange-ok += tan tonearest flt-32 0x4p-128f : 0x4p-128f : inexact-ok underflow-ok errno-erange-ok += tan towardzero flt-32 0x4p-128f : 0x4p-128f : inexact-ok underflow-ok errno-erange-ok += tan upward flt-32 0x4p-128f : 0x4.000008p-128f : inexact-ok underflow-ok errno-erange-ok += tan downward dbl-64 0x4p-128 : 0x4p-128 : inexact-ok += tan tonearest dbl-64 0x4p-128 : 0x4p-128 : inexact-ok += tan towardzero dbl-64 0x4p-128 : 0x4p-128 : inexact-ok += tan upward dbl-64 0x4p-128 : 0x4.0000000000004p-128 : inexact-ok += tan downward ldbl-96-intel 0x4p-128L : 0x4p-128L : inexact-ok += tan tonearest ldbl-96-intel 0x4p-128L : 0x4p-128L : inexact-ok += tan towardzero ldbl-96-intel 0x4p-128L : 0x4p-128L : inexact-ok += tan upward ldbl-96-intel 0x4p-128L : 0x4.0000000000000008p-128L : inexact-ok += tan downward ldbl-96-m68k 0x4p-128L : 0x4p-128L : inexact-ok += tan tonearest ldbl-96-m68k 0x4p-128L : 0x4p-128L : inexact-ok += tan towardzero ldbl-96-m68k 0x4p-128L : 0x4p-128L : inexact-ok += tan upward ldbl-96-m68k 0x4p-128L : 0x4.0000000000000008p-128L : inexact-ok += tan downward ldbl-128 0x4p-128L : 0x4p-128L : inexact-ok += tan tonearest ldbl-128 0x4p-128L : 0x4p-128L : inexact-ok += tan towardzero ldbl-128 0x4p-128L : 0x4p-128L : inexact-ok += tan upward ldbl-128 0x4p-128L : 0x4.0000000000000000000000000004p-128L : inexact-ok += tan downward ldbl-128ibm 0x4p-128L : 0x4p-128L : inexact-ok += tan tonearest ldbl-128ibm 0x4p-128L : 0x4p-128L : inexact-ok += tan towardzero ldbl-128ibm 0x4p-128L : 0x4p-128L : inexact-ok += tan upward ldbl-128ibm 0x4p-128L : 0x4.00000000000000000000000002p-128L : inexact-ok += tan downward dbl-64 0x4p-1024 : 0x4p-1024 : inexact-ok underflow-ok errno-erange-ok += tan tonearest dbl-64 0x4p-1024 : 0x4p-1024 : inexact-ok underflow-ok errno-erange-ok += tan towardzero dbl-64 0x4p-1024 : 0x4p-1024 : inexact-ok underflow-ok errno-erange-ok += tan upward dbl-64 0x4p-1024 : 0x4.0000000000004p-1024 : inexact-ok underflow-ok errno-erange-ok += tan downward ldbl-96-intel 0x4p-1024L : 0x4p-1024L : inexact-ok += tan tonearest ldbl-96-intel 0x4p-1024L : 0x4p-1024L : inexact-ok += tan towardzero ldbl-96-intel 0x4p-1024L : 0x4p-1024L : inexact-ok += tan upward ldbl-96-intel 0x4p-1024L : 0x4.0000000000000008p-1024L : inexact-ok += tan downward ldbl-96-m68k 0x4p-1024L : 0x4p-1024L : inexact-ok += tan tonearest ldbl-96-m68k 0x4p-1024L : 0x4p-1024L : inexact-ok += tan towardzero ldbl-96-m68k 0x4p-1024L : 0x4p-1024L : inexact-ok += tan upward ldbl-96-m68k 0x4p-1024L : 0x4.0000000000000008p-1024L : inexact-ok += tan downward ldbl-128 0x4p-1024L : 0x4p-1024L : inexact-ok += tan tonearest ldbl-128 0x4p-1024L : 0x4p-1024L : inexact-ok += tan towardzero ldbl-128 0x4p-1024L : 0x4p-1024L : inexact-ok += tan upward ldbl-128 0x4p-1024L : 0x4.0000000000000000000000000004p-1024L : inexact-ok += tan downward ldbl-128ibm 0x4p-1024L : 0x4p-1024L : inexact-ok underflow errno-erange-ok += tan tonearest ldbl-128ibm 0x4p-1024L : 0x4p-1024L : inexact-ok underflow errno-erange-ok += tan towardzero ldbl-128ibm 0x4p-1024L : 0x4p-1024L : inexact-ok underflow errno-erange-ok += tan upward ldbl-128ibm 0x4p-1024L : 0x4.0000000000004p-1024L : inexact-ok underflow errno-erange-ok += tan downward ldbl-96-intel 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok += tan tonearest ldbl-96-intel 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok += tan towardzero ldbl-96-intel 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok += tan upward ldbl-96-intel 0x4p-16384L : 0x4.0000000000000008p-16384L : inexact-ok underflow-ok errno-erange-ok += tan downward ldbl-96-m68k 0x4p-16384L : 0x4p-16384L : inexact-ok += tan tonearest ldbl-96-m68k 0x4p-16384L : 0x4p-16384L : inexact-ok += tan towardzero ldbl-96-m68k 0x4p-16384L : 0x4p-16384L : inexact-ok += tan upward ldbl-96-m68k 0x4p-16384L : 0x4.0000000000000008p-16384L : inexact-ok += tan downward ldbl-128 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok += tan tonearest ldbl-128 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok += tan towardzero ldbl-128 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok += tan upward ldbl-128 0x4p-16384L : 0x4.0000000000000000000000000004p-16384L : inexact-ok underflow-ok errno-erange-ok += tan downward ldbl-96-intel 0x2p-16384L : 0x2p-16384L : inexact-ok underflow errno-erange-ok += tan tonearest ldbl-96-intel 0x2p-16384L : 0x2p-16384L : inexact-ok underflow errno-erange-ok += tan towardzero ldbl-96-intel 0x2p-16384L : 0x2p-16384L : inexact-ok underflow errno-erange-ok += tan upward ldbl-96-intel 0x2p-16384L : 0x2.0000000000000008p-16384L : inexact-ok underflow errno-erange-ok += tan downward ldbl-96-m68k 0x2p-16384L : 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok += tan tonearest ldbl-96-m68k 0x2p-16384L : 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok += tan towardzero ldbl-96-m68k 0x2p-16384L : 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok += tan upward ldbl-96-m68k 0x2p-16384L : 0x2.0000000000000004p-16384L : inexact-ok underflow-ok errno-erange-ok += tan downward ldbl-128 0x2p-16384L : 0x2p-16384L : inexact-ok underflow errno-erange-ok += tan tonearest ldbl-128 0x2p-16384L : 0x2p-16384L : inexact-ok underflow errno-erange-ok += tan towardzero ldbl-128 0x2p-16384L : 0x2p-16384L : inexact-ok underflow errno-erange-ok += tan upward ldbl-128 0x2p-16384L : 0x2.0000000000000000000000000004p-16384L : inexact-ok underflow errno-erange-ok += tan downward dbl-64 0x8p-972 : 0x8p-972 : inexact-ok += tan tonearest dbl-64 0x8p-972 : 0x8p-972 : inexact-ok += tan towardzero dbl-64 0x8p-972 : 0x8p-972 : inexact-ok += tan upward dbl-64 0x8p-972 : 0x8.0000000000008p-972 : inexact-ok += tan downward ldbl-96-intel 0x8p-972L : 0x8p-972L : inexact-ok += tan tonearest ldbl-96-intel 0x8p-972L : 0x8p-972L : inexact-ok += tan towardzero ldbl-96-intel 0x8p-972L : 0x8p-972L : inexact-ok += tan upward ldbl-96-intel 0x8p-972L : 0x8.000000000000001p-972L : inexact-ok += tan downward ldbl-96-m68k 0x8p-972L : 0x8p-972L : inexact-ok += tan tonearest ldbl-96-m68k 0x8p-972L : 0x8p-972L : inexact-ok += tan towardzero ldbl-96-m68k 0x8p-972L : 0x8p-972L : inexact-ok += tan upward ldbl-96-m68k 0x8p-972L : 0x8.000000000000001p-972L : inexact-ok += tan downward ldbl-128 0x8p-972L : 0x8p-972L : inexact-ok += tan tonearest ldbl-128 0x8p-972L : 0x8p-972L : inexact-ok += tan towardzero ldbl-128 0x8p-972L : 0x8p-972L : inexact-ok += tan upward ldbl-128 0x8p-972L : 0x8.0000000000000000000000000008p-972L : inexact-ok += tan downward ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok errno-erange-ok += tan tonearest ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok errno-erange-ok += tan towardzero ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok errno-erange-ok += tan upward ldbl-128ibm 0x8p-972L : 0x8.00000000000000000000000004p-972L : inexact-ok underflow-ok errno-erange-ok +tan -min += tan downward flt-32 -0x4p-128f : -0x4.000008p-128f : inexact-ok underflow-ok errno-erange-ok += tan tonearest flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok errno-erange-ok += tan towardzero flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok errno-erange-ok += tan upward flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok errno-erange-ok += tan downward dbl-64 -0x4p-128 : -0x4.0000000000004p-128 : inexact-ok += tan tonearest dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok += tan towardzero dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok += tan upward dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok += tan downward ldbl-96-intel -0x4p-128L : -0x4.0000000000000008p-128L : inexact-ok += tan tonearest ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok += tan towardzero ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok += tan upward ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok += tan downward ldbl-96-m68k -0x4p-128L : -0x4.0000000000000008p-128L : inexact-ok += tan tonearest ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok += tan towardzero ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok += tan upward ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok += tan downward ldbl-128 -0x4p-128L : -0x4.0000000000000000000000000004p-128L : inexact-ok += tan tonearest ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok += tan towardzero ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok += tan upward ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok += tan downward ldbl-128ibm -0x4p-128L : -0x4.00000000000000000000000002p-128L : inexact-ok += tan tonearest ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok += tan towardzero ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok += tan upward ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok += tan downward dbl-64 -0x4p-1024 : -0x4.0000000000004p-1024 : inexact-ok underflow-ok errno-erange-ok += tan tonearest dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok errno-erange-ok += tan towardzero dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok errno-erange-ok += tan upward dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok errno-erange-ok += tan downward ldbl-96-intel -0x4p-1024L : -0x4.0000000000000008p-1024L : inexact-ok += tan tonearest ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok += tan towardzero ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok += tan upward ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok += tan downward ldbl-96-m68k -0x4p-1024L : -0x4.0000000000000008p-1024L : inexact-ok += tan tonearest ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok += tan towardzero ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok += tan upward ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok += tan downward ldbl-128 -0x4p-1024L : -0x4.0000000000000000000000000004p-1024L : inexact-ok += tan tonearest ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok += tan towardzero ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok += tan upward ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok += tan downward ldbl-128ibm -0x4p-1024L : -0x4.0000000000004p-1024L : inexact-ok underflow errno-erange-ok += tan tonearest ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow errno-erange-ok += tan towardzero ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow errno-erange-ok += tan upward ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow errno-erange-ok += tan downward ldbl-96-intel -0x4p-16384L : -0x4.0000000000000008p-16384L : inexact-ok underflow-ok errno-erange-ok += tan tonearest ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok += tan towardzero ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok += tan upward ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok += tan downward ldbl-96-m68k -0x4p-16384L : -0x4.0000000000000008p-16384L : inexact-ok += tan tonearest ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok += tan towardzero ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok += tan upward ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok += tan downward ldbl-128 -0x4p-16384L : -0x4.0000000000000000000000000004p-16384L : inexact-ok underflow-ok errno-erange-ok += tan tonearest ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok += tan towardzero ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok += tan upward ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok += tan downward ldbl-96-intel -0x2p-16384L : -0x2.0000000000000008p-16384L : inexact-ok underflow errno-erange-ok += tan tonearest ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow errno-erange-ok += tan towardzero ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow errno-erange-ok += tan upward ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow errno-erange-ok += tan downward ldbl-96-m68k -0x2p-16384L : -0x2.0000000000000004p-16384L : inexact-ok underflow-ok errno-erange-ok += tan tonearest ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok += tan towardzero ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok += tan upward ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok += tan downward ldbl-128 -0x2p-16384L : -0x2.0000000000000000000000000004p-16384L : inexact-ok underflow errno-erange-ok += tan tonearest ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow errno-erange-ok += tan towardzero ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow errno-erange-ok += tan upward ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow errno-erange-ok += tan downward dbl-64 -0x8p-972 : -0x8.0000000000008p-972 : inexact-ok += tan tonearest dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok += tan towardzero dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok += tan upward dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok += tan downward ldbl-96-intel -0x8p-972L : -0x8.000000000000001p-972L : inexact-ok += tan tonearest ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok += tan towardzero ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok += tan upward ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok += tan downward ldbl-96-m68k -0x8p-972L : -0x8.000000000000001p-972L : inexact-ok += tan tonearest ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok += tan towardzero ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok += tan upward ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok += tan downward ldbl-128 -0x8p-972L : -0x8.0000000000000000000000000008p-972L : inexact-ok += tan tonearest ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok += tan towardzero ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok += tan upward ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok += tan downward ldbl-128ibm -0x8p-972L : -0x8.00000000000000000000000004p-972L : inexact-ok underflow-ok errno-erange-ok += tan tonearest ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok errno-erange-ok += tan towardzero ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok errno-erange-ok += tan upward ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok errno-erange-ok +tan min_subnorm += tan downward flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok += tan tonearest flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok += tan towardzero flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok += tan upward flt-32 0x8p-152f : 0x1p-148f : inexact-ok underflow errno-erange-ok += tan downward dbl-64 0x8p-152 : 0x8p-152 : inexact-ok += tan tonearest dbl-64 0x8p-152 : 0x8p-152 : inexact-ok += tan towardzero dbl-64 0x8p-152 : 0x8p-152 : inexact-ok += tan upward dbl-64 0x8p-152 : 0x8.0000000000008p-152 : inexact-ok += tan downward ldbl-96-intel 0x8p-152L : 0x8p-152L : inexact-ok += tan tonearest ldbl-96-intel 0x8p-152L : 0x8p-152L : inexact-ok += tan towardzero ldbl-96-intel 0x8p-152L : 0x8p-152L : inexact-ok += tan upward ldbl-96-intel 0x8p-152L : 0x8.000000000000001p-152L : inexact-ok += tan downward ldbl-96-m68k 0x8p-152L : 0x8p-152L : inexact-ok += tan tonearest ldbl-96-m68k 0x8p-152L : 0x8p-152L : inexact-ok += tan towardzero ldbl-96-m68k 0x8p-152L : 0x8p-152L : inexact-ok += tan upward ldbl-96-m68k 0x8p-152L : 0x8.000000000000001p-152L : inexact-ok += tan downward ldbl-128 0x8p-152L : 0x8p-152L : inexact-ok += tan tonearest ldbl-128 0x8p-152L : 0x8p-152L : inexact-ok += tan towardzero ldbl-128 0x8p-152L : 0x8p-152L : inexact-ok += tan upward ldbl-128 0x8p-152L : 0x8.0000000000000000000000000008p-152L : inexact-ok += tan downward ldbl-128ibm 0x8p-152L : 0x8p-152L : inexact-ok += tan tonearest ldbl-128ibm 0x8p-152L : 0x8p-152L : inexact-ok += tan towardzero ldbl-128ibm 0x8p-152L : 0x8p-152L : inexact-ok += tan upward ldbl-128ibm 0x8p-152L : 0x8.00000000000000000000000004p-152L : inexact-ok += tan downward dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow errno-erange-ok += tan tonearest dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow errno-erange-ok += tan towardzero dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow errno-erange-ok += tan upward dbl-64 0x4p-1076 : 0x8p-1076 : inexact-ok underflow errno-erange-ok += tan downward ldbl-96-intel 0x4p-1076L : 0x4p-1076L : inexact-ok += tan tonearest ldbl-96-intel 0x4p-1076L : 0x4p-1076L : inexact-ok += tan towardzero ldbl-96-intel 0x4p-1076L : 0x4p-1076L : inexact-ok += tan upward ldbl-96-intel 0x4p-1076L : 0x4.0000000000000008p-1076L : inexact-ok += tan downward ldbl-96-m68k 0x4p-1076L : 0x4p-1076L : inexact-ok += tan tonearest ldbl-96-m68k 0x4p-1076L : 0x4p-1076L : inexact-ok += tan towardzero ldbl-96-m68k 0x4p-1076L : 0x4p-1076L : inexact-ok += tan upward ldbl-96-m68k 0x4p-1076L : 0x4.0000000000000008p-1076L : inexact-ok += tan downward ldbl-128 0x4p-1076L : 0x4p-1076L : inexact-ok += tan tonearest ldbl-128 0x4p-1076L : 0x4p-1076L : inexact-ok += tan towardzero ldbl-128 0x4p-1076L : 0x4p-1076L : inexact-ok += tan upward ldbl-128 0x4p-1076L : 0x4.0000000000000000000000000004p-1076L : inexact-ok += tan downward ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow errno-erange-ok += tan tonearest ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow errno-erange-ok += tan towardzero ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow errno-erange-ok += tan upward ldbl-128ibm 0x4p-1076L : 0x8p-1076L : inexact-ok underflow errno-erange-ok += tan downward ldbl-96-intel 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok += tan tonearest ldbl-96-intel 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok += tan towardzero ldbl-96-intel 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok += tan upward ldbl-96-intel 0x8p-16448L : 0x1p-16444L : inexact-ok underflow errno-erange-ok += tan downward ldbl-96-m68k 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok += tan tonearest ldbl-96-m68k 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok += tan towardzero ldbl-96-m68k 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok += tan upward ldbl-96-m68k 0x8p-16448L : 0xcp-16448L : inexact-ok underflow errno-erange-ok += tan downward ldbl-128 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok += tan tonearest ldbl-128 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok += tan towardzero ldbl-128 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok += tan upward ldbl-128 0x8p-16448L : 0x8.000000000004p-16448L : inexact-ok underflow errno-erange-ok += tan downward ldbl-96-m68k 0x4p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok += tan tonearest ldbl-96-m68k 0x4p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok += tan towardzero ldbl-96-m68k 0x4p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok += tan upward ldbl-96-m68k 0x4p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok += tan downward ldbl-128 0x4p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok += tan tonearest ldbl-128 0x4p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok += tan towardzero ldbl-128 0x4p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok += tan upward ldbl-128 0x4p-16448L : 0x4.000000000004p-16448L : inexact-ok underflow errno-erange-ok += tan downward ldbl-128 0x4p-16496L : 0x4p-16496L : inexact-ok underflow errno-erange-ok += tan tonearest ldbl-128 0x4p-16496L : 0x4p-16496L : inexact-ok underflow errno-erange-ok += tan towardzero ldbl-128 0x4p-16496L : 0x4p-16496L : inexact-ok underflow errno-erange-ok += tan upward ldbl-128 0x4p-16496L : 0x8p-16496L : inexact-ok underflow errno-erange-ok +tan -min_subnorm += tan downward flt-32 -0x8p-152f : -0x1p-148f : inexact-ok underflow errno-erange-ok += tan tonearest flt-32 -0x8p-152f : -0x8p-152f : inexact-ok underflow errno-erange-ok += tan towardzero flt-32 -0x8p-152f : -0x8p-152f : inexact-ok underflow errno-erange-ok += tan upward flt-32 -0x8p-152f : -0x8p-152f : inexact-ok underflow errno-erange-ok += tan downward dbl-64 -0x8p-152 : -0x8.0000000000008p-152 : inexact-ok += tan tonearest dbl-64 -0x8p-152 : -0x8p-152 : inexact-ok += tan towardzero dbl-64 -0x8p-152 : -0x8p-152 : inexact-ok += tan upward dbl-64 -0x8p-152 : -0x8p-152 : inexact-ok += tan downward ldbl-96-intel -0x8p-152L : -0x8.000000000000001p-152L : inexact-ok += tan tonearest ldbl-96-intel -0x8p-152L : -0x8p-152L : inexact-ok += tan towardzero ldbl-96-intel -0x8p-152L : -0x8p-152L : inexact-ok += tan upward ldbl-96-intel -0x8p-152L : -0x8p-152L : inexact-ok += tan downward ldbl-96-m68k -0x8p-152L : -0x8.000000000000001p-152L : inexact-ok += tan tonearest ldbl-96-m68k -0x8p-152L : -0x8p-152L : inexact-ok += tan towardzero ldbl-96-m68k -0x8p-152L : -0x8p-152L : inexact-ok += tan upward ldbl-96-m68k -0x8p-152L : -0x8p-152L : inexact-ok += tan downward ldbl-128 -0x8p-152L : -0x8.0000000000000000000000000008p-152L : inexact-ok += tan tonearest ldbl-128 -0x8p-152L : -0x8p-152L : inexact-ok += tan towardzero ldbl-128 -0x8p-152L : -0x8p-152L : inexact-ok += tan upward ldbl-128 -0x8p-152L : -0x8p-152L : inexact-ok += tan downward ldbl-128ibm -0x8p-152L : -0x8.00000000000000000000000004p-152L : inexact-ok += tan tonearest ldbl-128ibm -0x8p-152L : -0x8p-152L : inexact-ok += tan towardzero ldbl-128ibm -0x8p-152L : -0x8p-152L : inexact-ok += tan upward ldbl-128ibm -0x8p-152L : -0x8p-152L : inexact-ok += tan downward dbl-64 -0x4p-1076 : -0x8p-1076 : inexact-ok underflow errno-erange-ok += tan tonearest dbl-64 -0x4p-1076 : -0x4p-1076 : inexact-ok underflow errno-erange-ok += tan towardzero dbl-64 -0x4p-1076 : -0x4p-1076 : inexact-ok underflow errno-erange-ok += tan upward dbl-64 -0x4p-1076 : -0x4p-1076 : inexact-ok underflow errno-erange-ok += tan downward ldbl-96-intel -0x4p-1076L : -0x4.0000000000000008p-1076L : inexact-ok += tan tonearest ldbl-96-intel -0x4p-1076L : -0x4p-1076L : inexact-ok += tan towardzero ldbl-96-intel -0x4p-1076L : -0x4p-1076L : inexact-ok += tan upward ldbl-96-intel -0x4p-1076L : -0x4p-1076L : inexact-ok += tan downward ldbl-96-m68k -0x4p-1076L : -0x4.0000000000000008p-1076L : inexact-ok += tan tonearest ldbl-96-m68k -0x4p-1076L : -0x4p-1076L : inexact-ok += tan towardzero ldbl-96-m68k -0x4p-1076L : -0x4p-1076L : inexact-ok += tan upward ldbl-96-m68k -0x4p-1076L : -0x4p-1076L : inexact-ok += tan downward ldbl-128 -0x4p-1076L : -0x4.0000000000000000000000000004p-1076L : inexact-ok += tan tonearest ldbl-128 -0x4p-1076L : -0x4p-1076L : inexact-ok += tan towardzero ldbl-128 -0x4p-1076L : -0x4p-1076L : inexact-ok += tan upward ldbl-128 -0x4p-1076L : -0x4p-1076L : inexact-ok += tan downward ldbl-128ibm -0x4p-1076L : -0x8p-1076L : inexact-ok underflow errno-erange-ok += tan tonearest ldbl-128ibm -0x4p-1076L : -0x4p-1076L : inexact-ok underflow errno-erange-ok += tan towardzero ldbl-128ibm -0x4p-1076L : -0x4p-1076L : inexact-ok underflow errno-erange-ok += tan upward ldbl-128ibm -0x4p-1076L : -0x4p-1076L : inexact-ok underflow errno-erange-ok += tan downward ldbl-96-intel -0x8p-16448L : -0x1p-16444L : inexact-ok underflow errno-erange-ok += tan tonearest ldbl-96-intel -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok += tan towardzero ldbl-96-intel -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok += tan upward ldbl-96-intel -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok += tan downward ldbl-96-m68k -0x8p-16448L : -0xcp-16448L : inexact-ok underflow errno-erange-ok += tan tonearest ldbl-96-m68k -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok += tan towardzero ldbl-96-m68k -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok += tan upward ldbl-96-m68k -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok += tan downward ldbl-128 -0x8p-16448L : -0x8.000000000004p-16448L : inexact-ok underflow errno-erange-ok += tan tonearest ldbl-128 -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok += tan towardzero ldbl-128 -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok += tan upward ldbl-128 -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok += tan downward ldbl-96-m68k -0x4p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok += tan tonearest ldbl-96-m68k -0x4p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok += tan towardzero ldbl-96-m68k -0x4p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok += tan upward ldbl-96-m68k -0x4p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok += tan downward ldbl-128 -0x4p-16448L : -0x4.000000000004p-16448L : inexact-ok underflow errno-erange-ok += tan tonearest ldbl-128 -0x4p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok += tan towardzero ldbl-128 -0x4p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok += tan upward ldbl-128 -0x4p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok += tan downward ldbl-128 -0x4p-16496L : -0x8p-16496L : inexact-ok underflow errno-erange-ok += tan tonearest ldbl-128 -0x4p-16496L : -0x4p-16496L : inexact-ok underflow errno-erange-ok += tan towardzero ldbl-128 -0x4p-16496L : -0x4p-16496L : inexact-ok underflow errno-erange-ok += tan upward ldbl-128 -0x4p-16496L : -0x4p-16496L : inexact-ok underflow errno-erange-ok tanh 0 = tanh downward flt-32 0x0p+0f : 0x0p+0f : inexact-ok = tanh tonearest flt-32 0x0p+0f : 0x0p+0f : inexact-ok |