about summary refs log tree commit diff
path: root/math/auto-libm-test-out-tan
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-03-15 22:00:54 +0000
committerJoseph Myers <joseph@codesourcery.com>2017-03-15 22:00:54 +0000
commite4e52ff059f46472145433d2bd003d5383f89e82 (patch)
treec5044e3b2e2f98778087319e79d308bd817e9a75 /math/auto-libm-test-out-tan
parent5d20a49aaccef5ef7adac93d5ca159f6b7ba0105 (diff)
downloadglibc-e4e52ff059f46472145433d2bd003d5383f89e82.tar.gz
glibc-e4e52ff059f46472145433d2bd003d5383f89e82.tar.xz
glibc-e4e52ff059f46472145433d2bd003d5383f89e82.zip
Improve float range reduction accuracy near pi/2 (bug 21094).
Bug 21094 reports 3ulp errors of cosf and tanf for certain arguments
near pi/2 arising from the use of an insufficiently accurate range
reduction.  (To be clear, this is a quality-of-implementation issue
relating to the apparent intent of those particular cosf and tanf
implementations; 3ulp is within the general glibc accuracy goals, so
not inherently a bug.)

This patch fixes that error by making a wider range of cases use the
existing more accurate range reduction for arguments close to pi/2.
The wider range of values is still narrow enough for the "z -=
pio2_2;" in the more accurate case to be exact, as the code expects.

Tested for x86_64, x86 and mips64; no ulps updates needed (but at
least on mips64, the larger ulps were seen if the tests were added
without the substantive fix).

	[BZ #21094]
	* sysdeps/ieee754/flt-32/e_rem_pio2f.c (__ieee754_rem_pio2f): Use
	24+24+24-bit pi for wider range of values around pi/2.
	* math/auto-libm-test-in: Add more tests of cos and tan.
	* math/auto-libm-test-out-cos: Regenerated.
	* math/auto-libm-test-out-tan: Likewise.
Diffstat (limited to 'math/auto-libm-test-out-tan')
-rw-r--r--math/auto-libm-test-out-tan290
1 files changed, 290 insertions, 0 deletions
diff --git a/math/auto-libm-test-out-tan b/math/auto-libm-test-out-tan
index 9f3e6cbce0..7d00d03e1d 100644
--- a/math/auto-libm-test-out-tan
+++ b/math/auto-libm-test-out-tan
@@ -2242,6 +2242,296 @@ tan -0x1.0d55b8p+0
 = tan tonearest ibm128 -0x1.0d55b8p+0 : -0x1.c074f83e72236f1900dbba65f78p+0 : inexact-ok
 = tan towardzero ibm128 -0x1.0d55b8p+0 : -0x1.c074f83e72236f1900dbba65f78p+0 : inexact-ok
 = tan upward ibm128 -0x1.0d55b8p+0 : -0x1.c074f83e72236f1900dbba65f78p+0 : inexact-ok
+tan 1.57079697
+= tan downward binary32 0x1.921fc2p+0 : -0x1.41acc2p+20 : inexact-ok
+= tan tonearest binary32 0x1.921fc2p+0 : -0x1.41acc2p+20 : inexact-ok
+= tan towardzero binary32 0x1.921fc2p+0 : -0x1.41accp+20 : inexact-ok
+= tan upward binary32 0x1.921fc2p+0 : -0x1.41accp+20 : inexact-ok
+= tan downward binary64 0x1.921fc2p+0 : -0x1.41acc1f2aebdcp+20 : inexact-ok
+= tan tonearest binary64 0x1.921fc2p+0 : -0x1.41acc1f2aebdcp+20 : inexact-ok
+= tan towardzero binary64 0x1.921fc2p+0 : -0x1.41acc1f2aebdbp+20 : inexact-ok
+= tan upward binary64 0x1.921fc2p+0 : -0x1.41acc1f2aebdbp+20 : inexact-ok
+= tan downward intel96 0x1.921fc2p+0 : -0x1.41acc1f2aebdbbd2p+20 : inexact-ok
+= tan tonearest intel96 0x1.921fc2p+0 : -0x1.41acc1f2aebdbbdp+20 : inexact-ok
+= tan towardzero intel96 0x1.921fc2p+0 : -0x1.41acc1f2aebdbbdp+20 : inexact-ok
+= tan upward intel96 0x1.921fc2p+0 : -0x1.41acc1f2aebdbbdp+20 : inexact-ok
+= tan downward m68k96 0x1.921fc2p+0 : -0x1.41acc1f2aebdbbd2p+20 : inexact-ok
+= tan tonearest m68k96 0x1.921fc2p+0 : -0x1.41acc1f2aebdbbdp+20 : inexact-ok
+= tan towardzero m68k96 0x1.921fc2p+0 : -0x1.41acc1f2aebdbbdp+20 : inexact-ok
+= tan upward m68k96 0x1.921fc2p+0 : -0x1.41acc1f2aebdbbdp+20 : inexact-ok
+= tan downward binary128 0x1.921fc2p+0 : -0x1.41acc1f2aebdbbd0c10fd22cc56ap+20 : inexact-ok
+= tan tonearest binary128 0x1.921fc2p+0 : -0x1.41acc1f2aebdbbd0c10fd22cc56ap+20 : inexact-ok
+= tan towardzero binary128 0x1.921fc2p+0 : -0x1.41acc1f2aebdbbd0c10fd22cc569p+20 : inexact-ok
+= tan upward binary128 0x1.921fc2p+0 : -0x1.41acc1f2aebdbbd0c10fd22cc569p+20 : inexact-ok
+= tan downward ibm128 0x1.921fc2p+0 : -0x1.41acc1f2aebdbbd0c10fd22cc58p+20 : inexact-ok
+= tan tonearest ibm128 0x1.921fc2p+0 : -0x1.41acc1f2aebdbbd0c10fd22cc58p+20 : inexact-ok
+= tan towardzero ibm128 0x1.921fc2p+0 : -0x1.41acc1f2aebdbbd0c10fd22cc5p+20 : inexact-ok
+= tan upward ibm128 0x1.921fc2p+0 : -0x1.41acc1f2aebdbbd0c10fd22cc5p+20 : inexact-ok
+= tan downward binary32 0x1.921fcp+0 : -0x1.7d9d38p+20 : inexact-ok
+= tan tonearest binary32 0x1.921fcp+0 : -0x1.7d9d38p+20 : inexact-ok
+= tan towardzero binary32 0x1.921fcp+0 : -0x1.7d9d36p+20 : inexact-ok
+= tan upward binary32 0x1.921fcp+0 : -0x1.7d9d36p+20 : inexact-ok
+= tan downward binary64 0x1.921fcp+0 : -0x1.7d9d370b14024p+20 : inexact-ok
+= tan tonearest binary64 0x1.921fcp+0 : -0x1.7d9d370b14023p+20 : inexact-ok
+= tan towardzero binary64 0x1.921fcp+0 : -0x1.7d9d370b14023p+20 : inexact-ok
+= tan upward binary64 0x1.921fcp+0 : -0x1.7d9d370b14023p+20 : inexact-ok
+= tan downward intel96 0x1.921fcp+0 : -0x1.7d9d370b140234d4p+20 : inexact-ok
+= tan tonearest intel96 0x1.921fcp+0 : -0x1.7d9d370b140234d4p+20 : inexact-ok
+= tan towardzero intel96 0x1.921fcp+0 : -0x1.7d9d370b140234d2p+20 : inexact-ok
+= tan upward intel96 0x1.921fcp+0 : -0x1.7d9d370b140234d2p+20 : inexact-ok
+= tan downward m68k96 0x1.921fcp+0 : -0x1.7d9d370b140234d4p+20 : inexact-ok
+= tan tonearest m68k96 0x1.921fcp+0 : -0x1.7d9d370b140234d4p+20 : inexact-ok
+= tan towardzero m68k96 0x1.921fcp+0 : -0x1.7d9d370b140234d2p+20 : inexact-ok
+= tan upward m68k96 0x1.921fcp+0 : -0x1.7d9d370b140234d2p+20 : inexact-ok
+= tan downward binary128 0x1.921fcp+0 : -0x1.7d9d370b140234d37501f83845c3p+20 : inexact-ok
+= tan tonearest binary128 0x1.921fcp+0 : -0x1.7d9d370b140234d37501f83845c2p+20 : inexact-ok
+= tan towardzero binary128 0x1.921fcp+0 : -0x1.7d9d370b140234d37501f83845c2p+20 : inexact-ok
+= tan upward binary128 0x1.921fcp+0 : -0x1.7d9d370b140234d37501f83845c2p+20 : inexact-ok
+= tan downward ibm128 0x1.921fcp+0 : -0x1.7d9d370b140234d37501f83846p+20 : inexact-ok
+= tan tonearest ibm128 0x1.921fcp+0 : -0x1.7d9d370b140234d37501f83846p+20 : inexact-ok
+= tan towardzero ibm128 0x1.921fcp+0 : -0x1.7d9d370b140234d37501f838458p+20 : inexact-ok
+= tan upward ibm128 0x1.921fcp+0 : -0x1.7d9d370b140234d37501f838458p+20 : inexact-ok
+= tan downward binary64 0x1.921fc00ece4f1p+0 : -0x1.7b91a083509cfp+20 : inexact-ok
+= tan tonearest binary64 0x1.921fc00ece4f1p+0 : -0x1.7b91a083509cfp+20 : inexact-ok
+= tan towardzero binary64 0x1.921fc00ece4f1p+0 : -0x1.7b91a083509cep+20 : inexact-ok
+= tan upward binary64 0x1.921fc00ece4f1p+0 : -0x1.7b91a083509cep+20 : inexact-ok
+= tan downward intel96 0x1.921fc00ece4f1p+0 : -0x1.7b91a083509ce99ap+20 : inexact-ok
+= tan tonearest intel96 0x1.921fc00ece4f1p+0 : -0x1.7b91a083509ce99ap+20 : inexact-ok
+= tan towardzero intel96 0x1.921fc00ece4f1p+0 : -0x1.7b91a083509ce998p+20 : inexact-ok
+= tan upward intel96 0x1.921fc00ece4f1p+0 : -0x1.7b91a083509ce998p+20 : inexact-ok
+= tan downward m68k96 0x1.921fc00ece4f1p+0 : -0x1.7b91a083509ce99ap+20 : inexact-ok
+= tan tonearest m68k96 0x1.921fc00ece4f1p+0 : -0x1.7b91a083509ce99ap+20 : inexact-ok
+= tan towardzero m68k96 0x1.921fc00ece4f1p+0 : -0x1.7b91a083509ce998p+20 : inexact-ok
+= tan upward m68k96 0x1.921fc00ece4f1p+0 : -0x1.7b91a083509ce998p+20 : inexact-ok
+= tan downward binary128 0x1.921fc00ece4f1p+0 : -0x1.7b91a083509ce99968d2431cf3a5p+20 : inexact-ok
+= tan tonearest binary128 0x1.921fc00ece4f1p+0 : -0x1.7b91a083509ce99968d2431cf3a4p+20 : inexact-ok
+= tan towardzero binary128 0x1.921fc00ece4f1p+0 : -0x1.7b91a083509ce99968d2431cf3a4p+20 : inexact-ok
+= tan upward binary128 0x1.921fc00ece4f1p+0 : -0x1.7b91a083509ce99968d2431cf3a4p+20 : inexact-ok
+= tan downward ibm128 0x1.921fc00ece4f1p+0 : -0x1.7b91a083509ce99968d2431cf4p+20 : inexact-ok
+= tan tonearest ibm128 0x1.921fc00ece4f1p+0 : -0x1.7b91a083509ce99968d2431cf38p+20 : inexact-ok
+= tan towardzero ibm128 0x1.921fc00ece4f1p+0 : -0x1.7b91a083509ce99968d2431cf38p+20 : inexact-ok
+= tan upward ibm128 0x1.921fc00ece4f1p+0 : -0x1.7b91a083509ce99968d2431cf38p+20 : inexact-ok
+= tan downward binary64 0x1.921fc00ece4fp+0 : -0x1.7b91a08583657p+20 : inexact-ok
+= tan tonearest binary64 0x1.921fc00ece4fp+0 : -0x1.7b91a08583657p+20 : inexact-ok
+= tan towardzero binary64 0x1.921fc00ece4fp+0 : -0x1.7b91a08583656p+20 : inexact-ok
+= tan upward binary64 0x1.921fc00ece4fp+0 : -0x1.7b91a08583656p+20 : inexact-ok
+= tan downward intel96 0x1.921fc00ece4fp+0 : -0x1.7b91a08583656dbap+20 : inexact-ok
+= tan tonearest intel96 0x1.921fc00ece4fp+0 : -0x1.7b91a08583656db8p+20 : inexact-ok
+= tan towardzero intel96 0x1.921fc00ece4fp+0 : -0x1.7b91a08583656db8p+20 : inexact-ok
+= tan upward intel96 0x1.921fc00ece4fp+0 : -0x1.7b91a08583656db8p+20 : inexact-ok
+= tan downward m68k96 0x1.921fc00ece4fp+0 : -0x1.7b91a08583656dbap+20 : inexact-ok
+= tan tonearest m68k96 0x1.921fc00ece4fp+0 : -0x1.7b91a08583656db8p+20 : inexact-ok
+= tan towardzero m68k96 0x1.921fc00ece4fp+0 : -0x1.7b91a08583656db8p+20 : inexact-ok
+= tan upward m68k96 0x1.921fc00ece4fp+0 : -0x1.7b91a08583656db8p+20 : inexact-ok
+= tan downward binary128 0x1.921fc00ece4fp+0 : -0x1.7b91a08583656db8b65798b4bbacp+20 : inexact-ok
+= tan tonearest binary128 0x1.921fc00ece4fp+0 : -0x1.7b91a08583656db8b65798b4bbabp+20 : inexact-ok
+= tan towardzero binary128 0x1.921fc00ece4fp+0 : -0x1.7b91a08583656db8b65798b4bbabp+20 : inexact-ok
+= tan upward binary128 0x1.921fc00ece4fp+0 : -0x1.7b91a08583656db8b65798b4bbabp+20 : inexact-ok
+= tan downward ibm128 0x1.921fc00ece4fp+0 : -0x1.7b91a08583656db8b65798b4bcp+20 : inexact-ok
+= tan tonearest ibm128 0x1.921fc00ece4fp+0 : -0x1.7b91a08583656db8b65798b4bb8p+20 : inexact-ok
+= tan towardzero ibm128 0x1.921fc00ece4fp+0 : -0x1.7b91a08583656db8b65798b4bb8p+20 : inexact-ok
+= tan upward ibm128 0x1.921fc00ece4fp+0 : -0x1.7b91a08583656db8b65798b4bb8p+20 : inexact-ok
+= tan downward intel96 0x1.921fc00ece4f02f4p+0 : -0x1.7b91a0851b85eb56p+20 : inexact-ok
+= tan tonearest intel96 0x1.921fc00ece4f02f4p+0 : -0x1.7b91a0851b85eb56p+20 : inexact-ok
+= tan towardzero intel96 0x1.921fc00ece4f02f4p+0 : -0x1.7b91a0851b85eb54p+20 : inexact-ok
+= tan upward intel96 0x1.921fc00ece4f02f4p+0 : -0x1.7b91a0851b85eb54p+20 : inexact-ok
+= tan downward m68k96 0x1.921fc00ece4f02f4p+0 : -0x1.7b91a0851b85eb56p+20 : inexact-ok
+= tan tonearest m68k96 0x1.921fc00ece4f02f4p+0 : -0x1.7b91a0851b85eb56p+20 : inexact-ok
+= tan towardzero m68k96 0x1.921fc00ece4f02f4p+0 : -0x1.7b91a0851b85eb54p+20 : inexact-ok
+= tan upward m68k96 0x1.921fc00ece4f02f4p+0 : -0x1.7b91a0851b85eb54p+20 : inexact-ok
+= tan downward binary128 0x1.921fc00ece4f02f4p+0 : -0x1.7b91a0851b85eb5571b2cd0ca17p+20 : inexact-ok
+= tan tonearest binary128 0x1.921fc00ece4f02f4p+0 : -0x1.7b91a0851b85eb5571b2cd0ca16fp+20 : inexact-ok
+= tan towardzero binary128 0x1.921fc00ece4f02f4p+0 : -0x1.7b91a0851b85eb5571b2cd0ca16fp+20 : inexact-ok
+= tan upward binary128 0x1.921fc00ece4f02f4p+0 : -0x1.7b91a0851b85eb5571b2cd0ca16fp+20 : inexact-ok
+= tan downward ibm128 0x1.921fc00ece4f02f4p+0 : -0x1.7b91a0851b85eb5571b2cd0ca18p+20 : inexact-ok
+= tan tonearest ibm128 0x1.921fc00ece4f02f4p+0 : -0x1.7b91a0851b85eb5571b2cd0ca18p+20 : inexact-ok
+= tan towardzero ibm128 0x1.921fc00ece4f02f4p+0 : -0x1.7b91a0851b85eb5571b2cd0ca1p+20 : inexact-ok
+= tan upward ibm128 0x1.921fc00ece4f02f4p+0 : -0x1.7b91a0851b85eb5571b2cd0ca1p+20 : inexact-ok
+= tan downward intel96 0x1.921fc00ece4f02f2p+0 : -0x1.7b91a0851bcc4466p+20 : inexact-ok
+= tan tonearest intel96 0x1.921fc00ece4f02f2p+0 : -0x1.7b91a0851bcc4466p+20 : inexact-ok
+= tan towardzero intel96 0x1.921fc00ece4f02f2p+0 : -0x1.7b91a0851bcc4464p+20 : inexact-ok
+= tan upward intel96 0x1.921fc00ece4f02f2p+0 : -0x1.7b91a0851bcc4464p+20 : inexact-ok
+= tan downward m68k96 0x1.921fc00ece4f02f2p+0 : -0x1.7b91a0851bcc4466p+20 : inexact-ok
+= tan tonearest m68k96 0x1.921fc00ece4f02f2p+0 : -0x1.7b91a0851bcc4466p+20 : inexact-ok
+= tan towardzero m68k96 0x1.921fc00ece4f02f2p+0 : -0x1.7b91a0851bcc4464p+20 : inexact-ok
+= tan upward m68k96 0x1.921fc00ece4f02f2p+0 : -0x1.7b91a0851bcc4464p+20 : inexact-ok
+= tan downward binary128 0x1.921fc00ece4f02f2p+0 : -0x1.7b91a0851bcc4465f5de57e1e183p+20 : inexact-ok
+= tan tonearest binary128 0x1.921fc00ece4f02f2p+0 : -0x1.7b91a0851bcc4465f5de57e1e183p+20 : inexact-ok
+= tan towardzero binary128 0x1.921fc00ece4f02f2p+0 : -0x1.7b91a0851bcc4465f5de57e1e182p+20 : inexact-ok
+= tan upward binary128 0x1.921fc00ece4f02f2p+0 : -0x1.7b91a0851bcc4465f5de57e1e182p+20 : inexact-ok
+= tan downward ibm128 0x1.921fc00ece4f02f2p+0 : -0x1.7b91a0851bcc4465f5de57e1e2p+20 : inexact-ok
+= tan tonearest ibm128 0x1.921fc00ece4f02f2p+0 : -0x1.7b91a0851bcc4465f5de57e1e18p+20 : inexact-ok
+= tan towardzero ibm128 0x1.921fc00ece4f02f2p+0 : -0x1.7b91a0851bcc4465f5de57e1e18p+20 : inexact-ok
+= tan upward ibm128 0x1.921fc00ece4f02f2p+0 : -0x1.7b91a0851bcc4465f5de57e1e18p+20 : inexact-ok
+= tan downward binary128 0x1.921fc00ece4f02f278ade6ad9e8ap+0 : -0x1.7b91a0851bbbafa14cf22c61e332p+20 : inexact-ok
+= tan tonearest binary128 0x1.921fc00ece4f02f278ade6ad9e8ap+0 : -0x1.7b91a0851bbbafa14cf22c61e331p+20 : inexact-ok
+= tan towardzero binary128 0x1.921fc00ece4f02f278ade6ad9e8ap+0 : -0x1.7b91a0851bbbafa14cf22c61e331p+20 : inexact-ok
+= tan upward binary128 0x1.921fc00ece4f02f278ade6ad9e8ap+0 : -0x1.7b91a0851bbbafa14cf22c61e331p+20 : inexact-ok
+= tan downward binary128 0x1.921fc00ece4f02f278ade6ad9e89p+0 : -0x1.7b91a0851bbbafa14cf22c850fbap+20 : inexact-ok
+= tan tonearest binary128 0x1.921fc00ece4f02f278ade6ad9e89p+0 : -0x1.7b91a0851bbbafa14cf22c850fb9p+20 : inexact-ok
+= tan towardzero binary128 0x1.921fc00ece4f02f278ade6ad9e89p+0 : -0x1.7b91a0851bbbafa14cf22c850fb9p+20 : inexact-ok
+= tan upward binary128 0x1.921fc00ece4f02f278ade6ad9e89p+0 : -0x1.7b91a0851bbbafa14cf22c850fb9p+20 : inexact-ok
+= tan downward binary128 0x1.921fc00ece4f02f278ade6ad9fp+0 : -0x1.7b91a0851bbbafa14cf21c2b5c63p+20 : inexact-ok
+= tan tonearest binary128 0x1.921fc00ece4f02f278ade6ad9fp+0 : -0x1.7b91a0851bbbafa14cf21c2b5c63p+20 : inexact-ok
+= tan towardzero binary128 0x1.921fc00ece4f02f278ade6ad9fp+0 : -0x1.7b91a0851bbbafa14cf21c2b5c62p+20 : inexact-ok
+= tan upward binary128 0x1.921fc00ece4f02f278ade6ad9fp+0 : -0x1.7b91a0851bbbafa14cf21c2b5c62p+20 : inexact-ok
+= tan downward ibm128 0x1.921fc00ece4f02f278ade6ad9fp+0 : -0x1.7b91a0851bbbafa14cf21c2b5c8p+20 : inexact-ok
+= tan tonearest ibm128 0x1.921fc00ece4f02f278ade6ad9fp+0 : -0x1.7b91a0851bbbafa14cf21c2b5c8p+20 : inexact-ok
+= tan towardzero ibm128 0x1.921fc00ece4f02f278ade6ad9fp+0 : -0x1.7b91a0851bbbafa14cf21c2b5cp+20 : inexact-ok
+= tan upward ibm128 0x1.921fc00ece4f02f278ade6ad9fp+0 : -0x1.7b91a0851bbbafa14cf21c2b5cp+20 : inexact-ok
+= tan downward binary128 0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0x1.7b91a0851bbbafa14cf22dc1a084p+20 : inexact-ok
+= tan tonearest binary128 0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0x1.7b91a0851bbbafa14cf22dc1a084p+20 : inexact-ok
+= tan towardzero binary128 0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0x1.7b91a0851bbbafa14cf22dc1a083p+20 : inexact-ok
+= tan upward binary128 0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0x1.7b91a0851bbbafa14cf22dc1a083p+20 : inexact-ok
+= tan downward ibm128 0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0x1.7b91a0851bbbafa14cf22dc1a1p+20 : inexact-ok
+= tan tonearest ibm128 0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0x1.7b91a0851bbbafa14cf22dc1a08p+20 : inexact-ok
+= tan towardzero ibm128 0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0x1.7b91a0851bbbafa14cf22dc1a08p+20 : inexact-ok
+= tan upward ibm128 0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0x1.7b91a0851bbbafa14cf22dc1a08p+20 : inexact-ok
+tan -1.57079697
+= tan downward binary32 -0x1.921fcp+0 : 0x1.7d9d36p+20 : inexact-ok
+= tan tonearest binary32 -0x1.921fcp+0 : 0x1.7d9d38p+20 : inexact-ok
+= tan towardzero binary32 -0x1.921fcp+0 : 0x1.7d9d36p+20 : inexact-ok
+= tan upward binary32 -0x1.921fcp+0 : 0x1.7d9d38p+20 : inexact-ok
+= tan downward binary64 -0x1.921fcp+0 : 0x1.7d9d370b14023p+20 : inexact-ok
+= tan tonearest binary64 -0x1.921fcp+0 : 0x1.7d9d370b14023p+20 : inexact-ok
+= tan towardzero binary64 -0x1.921fcp+0 : 0x1.7d9d370b14023p+20 : inexact-ok
+= tan upward binary64 -0x1.921fcp+0 : 0x1.7d9d370b14024p+20 : inexact-ok
+= tan downward intel96 -0x1.921fcp+0 : 0x1.7d9d370b140234d2p+20 : inexact-ok
+= tan tonearest intel96 -0x1.921fcp+0 : 0x1.7d9d370b140234d4p+20 : inexact-ok
+= tan towardzero intel96 -0x1.921fcp+0 : 0x1.7d9d370b140234d2p+20 : inexact-ok
+= tan upward intel96 -0x1.921fcp+0 : 0x1.7d9d370b140234d4p+20 : inexact-ok
+= tan downward m68k96 -0x1.921fcp+0 : 0x1.7d9d370b140234d2p+20 : inexact-ok
+= tan tonearest m68k96 -0x1.921fcp+0 : 0x1.7d9d370b140234d4p+20 : inexact-ok
+= tan towardzero m68k96 -0x1.921fcp+0 : 0x1.7d9d370b140234d2p+20 : inexact-ok
+= tan upward m68k96 -0x1.921fcp+0 : 0x1.7d9d370b140234d4p+20 : inexact-ok
+= tan downward binary128 -0x1.921fcp+0 : 0x1.7d9d370b140234d37501f83845c2p+20 : inexact-ok
+= tan tonearest binary128 -0x1.921fcp+0 : 0x1.7d9d370b140234d37501f83845c2p+20 : inexact-ok
+= tan towardzero binary128 -0x1.921fcp+0 : 0x1.7d9d370b140234d37501f83845c2p+20 : inexact-ok
+= tan upward binary128 -0x1.921fcp+0 : 0x1.7d9d370b140234d37501f83845c3p+20 : inexact-ok
+= tan downward ibm128 -0x1.921fcp+0 : 0x1.7d9d370b140234d37501f838458p+20 : inexact-ok
+= tan tonearest ibm128 -0x1.921fcp+0 : 0x1.7d9d370b140234d37501f83846p+20 : inexact-ok
+= tan towardzero ibm128 -0x1.921fcp+0 : 0x1.7d9d370b140234d37501f838458p+20 : inexact-ok
+= tan upward ibm128 -0x1.921fcp+0 : 0x1.7d9d370b140234d37501f83846p+20 : inexact-ok
+= tan downward binary32 -0x1.921fc2p+0 : 0x1.41accp+20 : inexact-ok
+= tan tonearest binary32 -0x1.921fc2p+0 : 0x1.41acc2p+20 : inexact-ok
+= tan towardzero binary32 -0x1.921fc2p+0 : 0x1.41accp+20 : inexact-ok
+= tan upward binary32 -0x1.921fc2p+0 : 0x1.41acc2p+20 : inexact-ok
+= tan downward binary64 -0x1.921fc2p+0 : 0x1.41acc1f2aebdbp+20 : inexact-ok
+= tan tonearest binary64 -0x1.921fc2p+0 : 0x1.41acc1f2aebdcp+20 : inexact-ok
+= tan towardzero binary64 -0x1.921fc2p+0 : 0x1.41acc1f2aebdbp+20 : inexact-ok
+= tan upward binary64 -0x1.921fc2p+0 : 0x1.41acc1f2aebdcp+20 : inexact-ok
+= tan downward intel96 -0x1.921fc2p+0 : 0x1.41acc1f2aebdbbdp+20 : inexact-ok
+= tan tonearest intel96 -0x1.921fc2p+0 : 0x1.41acc1f2aebdbbdp+20 : inexact-ok
+= tan towardzero intel96 -0x1.921fc2p+0 : 0x1.41acc1f2aebdbbdp+20 : inexact-ok
+= tan upward intel96 -0x1.921fc2p+0 : 0x1.41acc1f2aebdbbd2p+20 : inexact-ok
+= tan downward m68k96 -0x1.921fc2p+0 : 0x1.41acc1f2aebdbbdp+20 : inexact-ok
+= tan tonearest m68k96 -0x1.921fc2p+0 : 0x1.41acc1f2aebdbbdp+20 : inexact-ok
+= tan towardzero m68k96 -0x1.921fc2p+0 : 0x1.41acc1f2aebdbbdp+20 : inexact-ok
+= tan upward m68k96 -0x1.921fc2p+0 : 0x1.41acc1f2aebdbbd2p+20 : inexact-ok
+= tan downward binary128 -0x1.921fc2p+0 : 0x1.41acc1f2aebdbbd0c10fd22cc569p+20 : inexact-ok
+= tan tonearest binary128 -0x1.921fc2p+0 : 0x1.41acc1f2aebdbbd0c10fd22cc56ap+20 : inexact-ok
+= tan towardzero binary128 -0x1.921fc2p+0 : 0x1.41acc1f2aebdbbd0c10fd22cc569p+20 : inexact-ok
+= tan upward binary128 -0x1.921fc2p+0 : 0x1.41acc1f2aebdbbd0c10fd22cc56ap+20 : inexact-ok
+= tan downward ibm128 -0x1.921fc2p+0 : 0x1.41acc1f2aebdbbd0c10fd22cc5p+20 : inexact-ok
+= tan tonearest ibm128 -0x1.921fc2p+0 : 0x1.41acc1f2aebdbbd0c10fd22cc58p+20 : inexact-ok
+= tan towardzero ibm128 -0x1.921fc2p+0 : 0x1.41acc1f2aebdbbd0c10fd22cc5p+20 : inexact-ok
+= tan upward ibm128 -0x1.921fc2p+0 : 0x1.41acc1f2aebdbbd0c10fd22cc58p+20 : inexact-ok
+= tan downward binary64 -0x1.921fc00ece4fp+0 : 0x1.7b91a08583656p+20 : inexact-ok
+= tan tonearest binary64 -0x1.921fc00ece4fp+0 : 0x1.7b91a08583657p+20 : inexact-ok
+= tan towardzero binary64 -0x1.921fc00ece4fp+0 : 0x1.7b91a08583656p+20 : inexact-ok
+= tan upward binary64 -0x1.921fc00ece4fp+0 : 0x1.7b91a08583657p+20 : inexact-ok
+= tan downward intel96 -0x1.921fc00ece4fp+0 : 0x1.7b91a08583656db8p+20 : inexact-ok
+= tan tonearest intel96 -0x1.921fc00ece4fp+0 : 0x1.7b91a08583656db8p+20 : inexact-ok
+= tan towardzero intel96 -0x1.921fc00ece4fp+0 : 0x1.7b91a08583656db8p+20 : inexact-ok
+= tan upward intel96 -0x1.921fc00ece4fp+0 : 0x1.7b91a08583656dbap+20 : inexact-ok
+= tan downward m68k96 -0x1.921fc00ece4fp+0 : 0x1.7b91a08583656db8p+20 : inexact-ok
+= tan tonearest m68k96 -0x1.921fc00ece4fp+0 : 0x1.7b91a08583656db8p+20 : inexact-ok
+= tan towardzero m68k96 -0x1.921fc00ece4fp+0 : 0x1.7b91a08583656db8p+20 : inexact-ok
+= tan upward m68k96 -0x1.921fc00ece4fp+0 : 0x1.7b91a08583656dbap+20 : inexact-ok
+= tan downward binary128 -0x1.921fc00ece4fp+0 : 0x1.7b91a08583656db8b65798b4bbabp+20 : inexact-ok
+= tan tonearest binary128 -0x1.921fc00ece4fp+0 : 0x1.7b91a08583656db8b65798b4bbabp+20 : inexact-ok
+= tan towardzero binary128 -0x1.921fc00ece4fp+0 : 0x1.7b91a08583656db8b65798b4bbabp+20 : inexact-ok
+= tan upward binary128 -0x1.921fc00ece4fp+0 : 0x1.7b91a08583656db8b65798b4bbacp+20 : inexact-ok
+= tan downward ibm128 -0x1.921fc00ece4fp+0 : 0x1.7b91a08583656db8b65798b4bb8p+20 : inexact-ok
+= tan tonearest ibm128 -0x1.921fc00ece4fp+0 : 0x1.7b91a08583656db8b65798b4bb8p+20 : inexact-ok
+= tan towardzero ibm128 -0x1.921fc00ece4fp+0 : 0x1.7b91a08583656db8b65798b4bb8p+20 : inexact-ok
+= tan upward ibm128 -0x1.921fc00ece4fp+0 : 0x1.7b91a08583656db8b65798b4bcp+20 : inexact-ok
+= tan downward binary64 -0x1.921fc00ece4f1p+0 : 0x1.7b91a083509cep+20 : inexact-ok
+= tan tonearest binary64 -0x1.921fc00ece4f1p+0 : 0x1.7b91a083509cfp+20 : inexact-ok
+= tan towardzero binary64 -0x1.921fc00ece4f1p+0 : 0x1.7b91a083509cep+20 : inexact-ok
+= tan upward binary64 -0x1.921fc00ece4f1p+0 : 0x1.7b91a083509cfp+20 : inexact-ok
+= tan downward intel96 -0x1.921fc00ece4f1p+0 : 0x1.7b91a083509ce998p+20 : inexact-ok
+= tan tonearest intel96 -0x1.921fc00ece4f1p+0 : 0x1.7b91a083509ce99ap+20 : inexact-ok
+= tan towardzero intel96 -0x1.921fc00ece4f1p+0 : 0x1.7b91a083509ce998p+20 : inexact-ok
+= tan upward intel96 -0x1.921fc00ece4f1p+0 : 0x1.7b91a083509ce99ap+20 : inexact-ok
+= tan downward m68k96 -0x1.921fc00ece4f1p+0 : 0x1.7b91a083509ce998p+20 : inexact-ok
+= tan tonearest m68k96 -0x1.921fc00ece4f1p+0 : 0x1.7b91a083509ce99ap+20 : inexact-ok
+= tan towardzero m68k96 -0x1.921fc00ece4f1p+0 : 0x1.7b91a083509ce998p+20 : inexact-ok
+= tan upward m68k96 -0x1.921fc00ece4f1p+0 : 0x1.7b91a083509ce99ap+20 : inexact-ok
+= tan downward binary128 -0x1.921fc00ece4f1p+0 : 0x1.7b91a083509ce99968d2431cf3a4p+20 : inexact-ok
+= tan tonearest binary128 -0x1.921fc00ece4f1p+0 : 0x1.7b91a083509ce99968d2431cf3a4p+20 : inexact-ok
+= tan towardzero binary128 -0x1.921fc00ece4f1p+0 : 0x1.7b91a083509ce99968d2431cf3a4p+20 : inexact-ok
+= tan upward binary128 -0x1.921fc00ece4f1p+0 : 0x1.7b91a083509ce99968d2431cf3a5p+20 : inexact-ok
+= tan downward ibm128 -0x1.921fc00ece4f1p+0 : 0x1.7b91a083509ce99968d2431cf38p+20 : inexact-ok
+= tan tonearest ibm128 -0x1.921fc00ece4f1p+0 : 0x1.7b91a083509ce99968d2431cf38p+20 : inexact-ok
+= tan towardzero ibm128 -0x1.921fc00ece4f1p+0 : 0x1.7b91a083509ce99968d2431cf38p+20 : inexact-ok
+= tan upward ibm128 -0x1.921fc00ece4f1p+0 : 0x1.7b91a083509ce99968d2431cf4p+20 : inexact-ok
+= tan downward intel96 -0x1.921fc00ece4f02f2p+0 : 0x1.7b91a0851bcc4464p+20 : inexact-ok
+= tan tonearest intel96 -0x1.921fc00ece4f02f2p+0 : 0x1.7b91a0851bcc4466p+20 : inexact-ok
+= tan towardzero intel96 -0x1.921fc00ece4f02f2p+0 : 0x1.7b91a0851bcc4464p+20 : inexact-ok
+= tan upward intel96 -0x1.921fc00ece4f02f2p+0 : 0x1.7b91a0851bcc4466p+20 : inexact-ok
+= tan downward m68k96 -0x1.921fc00ece4f02f2p+0 : 0x1.7b91a0851bcc4464p+20 : inexact-ok
+= tan tonearest m68k96 -0x1.921fc00ece4f02f2p+0 : 0x1.7b91a0851bcc4466p+20 : inexact-ok
+= tan towardzero m68k96 -0x1.921fc00ece4f02f2p+0 : 0x1.7b91a0851bcc4464p+20 : inexact-ok
+= tan upward m68k96 -0x1.921fc00ece4f02f2p+0 : 0x1.7b91a0851bcc4466p+20 : inexact-ok
+= tan downward binary128 -0x1.921fc00ece4f02f2p+0 : 0x1.7b91a0851bcc4465f5de57e1e182p+20 : inexact-ok
+= tan tonearest binary128 -0x1.921fc00ece4f02f2p+0 : 0x1.7b91a0851bcc4465f5de57e1e183p+20 : inexact-ok
+= tan towardzero binary128 -0x1.921fc00ece4f02f2p+0 : 0x1.7b91a0851bcc4465f5de57e1e182p+20 : inexact-ok
+= tan upward binary128 -0x1.921fc00ece4f02f2p+0 : 0x1.7b91a0851bcc4465f5de57e1e183p+20 : inexact-ok
+= tan downward ibm128 -0x1.921fc00ece4f02f2p+0 : 0x1.7b91a0851bcc4465f5de57e1e18p+20 : inexact-ok
+= tan tonearest ibm128 -0x1.921fc00ece4f02f2p+0 : 0x1.7b91a0851bcc4465f5de57e1e18p+20 : inexact-ok
+= tan towardzero ibm128 -0x1.921fc00ece4f02f2p+0 : 0x1.7b91a0851bcc4465f5de57e1e18p+20 : inexact-ok
+= tan upward ibm128 -0x1.921fc00ece4f02f2p+0 : 0x1.7b91a0851bcc4465f5de57e1e2p+20 : inexact-ok
+= tan downward intel96 -0x1.921fc00ece4f02f4p+0 : 0x1.7b91a0851b85eb54p+20 : inexact-ok
+= tan tonearest intel96 -0x1.921fc00ece4f02f4p+0 : 0x1.7b91a0851b85eb56p+20 : inexact-ok
+= tan towardzero intel96 -0x1.921fc00ece4f02f4p+0 : 0x1.7b91a0851b85eb54p+20 : inexact-ok
+= tan upward intel96 -0x1.921fc00ece4f02f4p+0 : 0x1.7b91a0851b85eb56p+20 : inexact-ok
+= tan downward m68k96 -0x1.921fc00ece4f02f4p+0 : 0x1.7b91a0851b85eb54p+20 : inexact-ok
+= tan tonearest m68k96 -0x1.921fc00ece4f02f4p+0 : 0x1.7b91a0851b85eb56p+20 : inexact-ok
+= tan towardzero m68k96 -0x1.921fc00ece4f02f4p+0 : 0x1.7b91a0851b85eb54p+20 : inexact-ok
+= tan upward m68k96 -0x1.921fc00ece4f02f4p+0 : 0x1.7b91a0851b85eb56p+20 : inexact-ok
+= tan downward binary128 -0x1.921fc00ece4f02f4p+0 : 0x1.7b91a0851b85eb5571b2cd0ca16fp+20 : inexact-ok
+= tan tonearest binary128 -0x1.921fc00ece4f02f4p+0 : 0x1.7b91a0851b85eb5571b2cd0ca16fp+20 : inexact-ok
+= tan towardzero binary128 -0x1.921fc00ece4f02f4p+0 : 0x1.7b91a0851b85eb5571b2cd0ca16fp+20 : inexact-ok
+= tan upward binary128 -0x1.921fc00ece4f02f4p+0 : 0x1.7b91a0851b85eb5571b2cd0ca17p+20 : inexact-ok
+= tan downward ibm128 -0x1.921fc00ece4f02f4p+0 : 0x1.7b91a0851b85eb5571b2cd0ca1p+20 : inexact-ok
+= tan tonearest ibm128 -0x1.921fc00ece4f02f4p+0 : 0x1.7b91a0851b85eb5571b2cd0ca18p+20 : inexact-ok
+= tan towardzero ibm128 -0x1.921fc00ece4f02f4p+0 : 0x1.7b91a0851b85eb5571b2cd0ca1p+20 : inexact-ok
+= tan upward ibm128 -0x1.921fc00ece4f02f4p+0 : 0x1.7b91a0851b85eb5571b2cd0ca18p+20 : inexact-ok
+= tan downward binary128 -0x1.921fc00ece4f02f278ade6ad9e89p+0 : 0x1.7b91a0851bbbafa14cf22c850fb9p+20 : inexact-ok
+= tan tonearest binary128 -0x1.921fc00ece4f02f278ade6ad9e89p+0 : 0x1.7b91a0851bbbafa14cf22c850fb9p+20 : inexact-ok
+= tan towardzero binary128 -0x1.921fc00ece4f02f278ade6ad9e89p+0 : 0x1.7b91a0851bbbafa14cf22c850fb9p+20 : inexact-ok
+= tan upward binary128 -0x1.921fc00ece4f02f278ade6ad9e89p+0 : 0x1.7b91a0851bbbafa14cf22c850fbap+20 : inexact-ok
+= tan downward binary128 -0x1.921fc00ece4f02f278ade6ad9e8ap+0 : 0x1.7b91a0851bbbafa14cf22c61e331p+20 : inexact-ok
+= tan tonearest binary128 -0x1.921fc00ece4f02f278ade6ad9e8ap+0 : 0x1.7b91a0851bbbafa14cf22c61e331p+20 : inexact-ok
+= tan towardzero binary128 -0x1.921fc00ece4f02f278ade6ad9e8ap+0 : 0x1.7b91a0851bbbafa14cf22c61e331p+20 : inexact-ok
+= tan upward binary128 -0x1.921fc00ece4f02f278ade6ad9e8ap+0 : 0x1.7b91a0851bbbafa14cf22c61e332p+20 : inexact-ok
+= tan downward binary128 -0x1.921fc00ece4f02f278ade6ad9e8p+0 : 0x1.7b91a0851bbbafa14cf22dc1a083p+20 : inexact-ok
+= tan tonearest binary128 -0x1.921fc00ece4f02f278ade6ad9e8p+0 : 0x1.7b91a0851bbbafa14cf22dc1a084p+20 : inexact-ok
+= tan towardzero binary128 -0x1.921fc00ece4f02f278ade6ad9e8p+0 : 0x1.7b91a0851bbbafa14cf22dc1a083p+20 : inexact-ok
+= tan upward binary128 -0x1.921fc00ece4f02f278ade6ad9e8p+0 : 0x1.7b91a0851bbbafa14cf22dc1a084p+20 : inexact-ok
+= tan downward ibm128 -0x1.921fc00ece4f02f278ade6ad9e8p+0 : 0x1.7b91a0851bbbafa14cf22dc1a08p+20 : inexact-ok
+= tan tonearest ibm128 -0x1.921fc00ece4f02f278ade6ad9e8p+0 : 0x1.7b91a0851bbbafa14cf22dc1a08p+20 : inexact-ok
+= tan towardzero ibm128 -0x1.921fc00ece4f02f278ade6ad9e8p+0 : 0x1.7b91a0851bbbafa14cf22dc1a08p+20 : inexact-ok
+= tan upward ibm128 -0x1.921fc00ece4f02f278ade6ad9e8p+0 : 0x1.7b91a0851bbbafa14cf22dc1a1p+20 : inexact-ok
+= tan downward binary128 -0x1.921fc00ece4f02f278ade6ad9fp+0 : 0x1.7b91a0851bbbafa14cf21c2b5c62p+20 : inexact-ok
+= tan tonearest binary128 -0x1.921fc00ece4f02f278ade6ad9fp+0 : 0x1.7b91a0851bbbafa14cf21c2b5c63p+20 : inexact-ok
+= tan towardzero binary128 -0x1.921fc00ece4f02f278ade6ad9fp+0 : 0x1.7b91a0851bbbafa14cf21c2b5c62p+20 : inexact-ok
+= tan upward binary128 -0x1.921fc00ece4f02f278ade6ad9fp+0 : 0x1.7b91a0851bbbafa14cf21c2b5c63p+20 : inexact-ok
+= tan downward ibm128 -0x1.921fc00ece4f02f278ade6ad9fp+0 : 0x1.7b91a0851bbbafa14cf21c2b5cp+20 : inexact-ok
+= tan tonearest ibm128 -0x1.921fc00ece4f02f278ade6ad9fp+0 : 0x1.7b91a0851bbbafa14cf21c2b5c8p+20 : inexact-ok
+= tan towardzero ibm128 -0x1.921fc00ece4f02f278ade6ad9fp+0 : 0x1.7b91a0851bbbafa14cf21c2b5cp+20 : inexact-ok
+= tan upward ibm128 -0x1.921fc00ece4f02f278ade6ad9fp+0 : 0x1.7b91a0851bbbafa14cf21c2b5c8p+20 : inexact-ok
 tan 0x1p-5
 = tan downward binary32 0x8p-8 : 0x8.00aabp-8 : inexact-ok
 = tan tonearest binary32 0x8p-8 : 0x8.00aacp-8 : inexact-ok