From e4e52ff059f46472145433d2bd003d5383f89e82 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Wed, 15 Mar 2017 22:00:54 +0000 Subject: 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. --- ChangeLog | 9 ++ math/auto-libm-test-in | 4 + math/auto-libm-test-out-cos | 290 +++++++++++++++++++++++++++++++++++ math/auto-libm-test-out-tan | 290 +++++++++++++++++++++++++++++++++++ sysdeps/ieee754/flt-32/e_rem_pio2f.c | 4 +- 5 files changed, 595 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index f8b2e60..f1f9ceb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2017-03-15 Joseph Myers + + [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. + 2017-03-15 John David Anglin * sysdeps/hppa/dl-machine.h (DL_STACK_END): Define. diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in index c8267aa..6a47044 100644 --- a/math/auto-libm-test-in +++ b/math/auto-libm-test-in @@ -4324,6 +4324,8 @@ cos -0x1.02e34cp+0 cos 0xf.f0274p+4 cos 0x3.042d88p+0 cos 0x1.8475e5afd4481p+0 +cos 1.57079697 +cos -1.57079697 cosh 0 cosh -0 @@ -7236,6 +7238,8 @@ tan 0x2.091d68p+0 tan -0x5.302ab9b18593264p+0 tan 0x1.1ad374p+0 tan -0x1.0d55b8p+0 +tan 1.57079697 +tan -1.57079697 tan 0x1p-5 tan 0x1p-10 tan 0x1p-15 diff --git a/math/auto-libm-test-out-cos b/math/auto-libm-test-out-cos index 329ae93..072e04f 100644 --- a/math/auto-libm-test-out-cos +++ b/math/auto-libm-test-out-cos @@ -2933,3 +2933,293 @@ cos 0x1.8475e5afd4481p+0 = cos tonearest ibm128 0x1.8475e5afd4481p+0 : 0xd.a82683a33cbebfffffffa29668p-8 : inexact-ok = cos towardzero ibm128 0x1.8475e5afd4481p+0 : 0xd.a82683a33cbebfffffffa29668p-8 : inexact-ok = cos upward ibm128 0x1.8475e5afd4481p+0 : 0xd.a82683a33cbebfffffffa2966cp-8 : inexact-ok +cos 1.57079697 += cos downward binary32 0x1.921fc2p+0 : -0xc.bbbd3p-24 : inexact-ok += cos tonearest binary32 0x1.921fc2p+0 : -0xc.bbbd3p-24 : inexact-ok += cos towardzero binary32 0x1.921fc2p+0 : -0xc.bbbd2p-24 : inexact-ok += cos upward binary32 0x1.921fc2p+0 : -0xc.bbbd2p-24 : inexact-ok += cos downward binary64 0x1.921fc2p+0 : -0xc.bbbd2e7b951e8p-24 : inexact-ok += cos tonearest binary64 0x1.921fc2p+0 : -0xc.bbbd2e7b951e8p-24 : inexact-ok += cos towardzero binary64 0x1.921fc2p+0 : -0xc.bbbd2e7b951ep-24 : inexact-ok += cos upward binary64 0x1.921fc2p+0 : -0xc.bbbd2e7b951ep-24 : inexact-ok += cos downward intel96 0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b2p-24 : inexact-ok += cos tonearest intel96 0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b2p-24 : inexact-ok += cos towardzero intel96 0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1p-24 : inexact-ok += cos upward intel96 0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1p-24 : inexact-ok += cos downward m68k96 0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b2p-24 : inexact-ok += cos tonearest m68k96 0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b2p-24 : inexact-ok += cos towardzero m68k96 0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1p-24 : inexact-ok += cos upward m68k96 0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1p-24 : inexact-ok += cos downward binary128 0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1e4cc9f460a12p-24 : inexact-ok += cos tonearest binary128 0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1e4cc9f460a12p-24 : inexact-ok += cos towardzero binary128 0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1e4cc9f460a118p-24 : inexact-ok += cos upward binary128 0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1e4cc9f460a118p-24 : inexact-ok += cos downward ibm128 0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1e4cc9f460a4p-24 : inexact-ok += cos tonearest ibm128 0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1e4cc9f460ap-24 : inexact-ok += cos towardzero ibm128 0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1e4cc9f460ap-24 : inexact-ok += cos upward ibm128 0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1e4cc9f460ap-24 : inexact-ok += cos downward binary32 0x1.921fcp+0 : -0xa.bbbd3p-24 : inexact-ok += cos tonearest binary32 0x1.921fcp+0 : -0xa.bbbd3p-24 : inexact-ok += cos towardzero binary32 0x1.921fcp+0 : -0xa.bbbd2p-24 : inexact-ok += cos upward binary32 0x1.921fcp+0 : -0xa.bbbd2p-24 : inexact-ok += cos downward binary64 0x1.921fcp+0 : -0xa.bbbd2e7b95a88p-24 : inexact-ok += cos tonearest binary64 0x1.921fcp+0 : -0xa.bbbd2e7b95a88p-24 : inexact-ok += cos towardzero binary64 0x1.921fcp+0 : -0xa.bbbd2e7b95a8p-24 : inexact-ok += cos upward binary64 0x1.921fcp+0 : -0xa.bbbd2e7b95a8p-24 : inexact-ok += cos downward intel96 0x1.921fcp+0 : -0xa.bbbd2e7b95a85c7p-24 : inexact-ok += cos tonearest intel96 0x1.921fcp+0 : -0xa.bbbd2e7b95a85c6p-24 : inexact-ok += cos towardzero intel96 0x1.921fcp+0 : -0xa.bbbd2e7b95a85c6p-24 : inexact-ok += cos upward intel96 0x1.921fcp+0 : -0xa.bbbd2e7b95a85c6p-24 : inexact-ok += cos downward m68k96 0x1.921fcp+0 : -0xa.bbbd2e7b95a85c7p-24 : inexact-ok += cos tonearest m68k96 0x1.921fcp+0 : -0xa.bbbd2e7b95a85c6p-24 : inexact-ok += cos towardzero m68k96 0x1.921fcp+0 : -0xa.bbbd2e7b95a85c6p-24 : inexact-ok += cos upward m68k96 0x1.921fcp+0 : -0xa.bbbd2e7b95a85c6p-24 : inexact-ok += cos downward binary128 0x1.921fcp+0 : -0xa.bbbd2e7b95a85c638e746a5f4f68p-24 : inexact-ok += cos tonearest binary128 0x1.921fcp+0 : -0xa.bbbd2e7b95a85c638e746a5f4f6p-24 : inexact-ok += cos towardzero binary128 0x1.921fcp+0 : -0xa.bbbd2e7b95a85c638e746a5f4f6p-24 : inexact-ok += cos upward binary128 0x1.921fcp+0 : -0xa.bbbd2e7b95a85c638e746a5f4f6p-24 : inexact-ok += cos downward ibm128 0x1.921fcp+0 : -0xa.bbbd2e7b95a85c638e746a5f5p-24 : inexact-ok += cos tonearest ibm128 0x1.921fcp+0 : -0xa.bbbd2e7b95a85c638e746a5f5p-24 : inexact-ok += cos towardzero ibm128 0x1.921fcp+0 : -0xa.bbbd2e7b95a85c638e746a5f4cp-24 : inexact-ok += cos upward ibm128 0x1.921fcp+0 : -0xa.bbbd2e7b95a85c638e746a5f4cp-24 : inexact-ok += cos downward binary64 0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a58p-24 : inexact-ok += cos tonearest binary64 0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a5p-24 : inexact-ok += cos towardzero binary64 0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a5p-24 : inexact-ok += cos upward binary64 0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a5p-24 : inexact-ok += cos downward intel96 0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502fp-24 : inexact-ok += cos tonearest intel96 0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502fp-24 : inexact-ok += cos towardzero intel96 0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ep-24 : inexact-ok += cos upward intel96 0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ep-24 : inexact-ok += cos downward m68k96 0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502fp-24 : inexact-ok += cos tonearest m68k96 0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502fp-24 : inexact-ok += cos towardzero m68k96 0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ep-24 : inexact-ok += cos upward m68k96 0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ep-24 : inexact-ok += cos downward binary128 0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ede0fd607f3948p-24 : inexact-ok += cos tonearest binary128 0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ede0fd607f394p-24 : inexact-ok += cos towardzero binary128 0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ede0fd607f394p-24 : inexact-ok += cos upward binary128 0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ede0fd607f394p-24 : inexact-ok += cos downward ibm128 0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ede0fd607f3cp-24 : inexact-ok += cos tonearest ibm128 0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ede0fd607f38p-24 : inexact-ok += cos towardzero ibm128 0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ede0fd607f38p-24 : inexact-ok += cos upward ibm128 0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ede0fd607f38p-24 : inexact-ok += cos downward binary64 0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a58p-24 : inexact-ok += cos tonearest binary64 0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a5p-24 : inexact-ok += cos towardzero binary64 0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a5p-24 : inexact-ok += cos upward binary64 0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a5p-24 : inexact-ok += cos downward intel96 0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502fp-24 : inexact-ok += cos tonearest intel96 0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502fp-24 : inexact-ok += cos towardzero intel96 0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ep-24 : inexact-ok += cos upward intel96 0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ep-24 : inexact-ok += cos downward m68k96 0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502fp-24 : inexact-ok += cos tonearest m68k96 0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502fp-24 : inexact-ok += cos towardzero m68k96 0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ep-24 : inexact-ok += cos upward m68k96 0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ep-24 : inexact-ok += cos downward binary128 0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ede4a0f9b11c3p-24 : inexact-ok += cos tonearest binary128 0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ede4a0f9b11c28p-24 : inexact-ok += cos towardzero binary128 0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ede4a0f9b11c28p-24 : inexact-ok += cos upward binary128 0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ede4a0f9b11c28p-24 : inexact-ok += cos downward ibm128 0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ede4a0f9b12p-24 : inexact-ok += cos tonearest ibm128 0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ede4a0f9b11cp-24 : inexact-ok += cos towardzero ibm128 0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ede4a0f9b11cp-24 : inexact-ok += cos upward ibm128 0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ede4a0f9b11cp-24 : inexact-ok += cos downward intel96 0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502fp-24 : inexact-ok += cos tonearest intel96 0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502fp-24 : inexact-ok += cos towardzero intel96 0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ep-24 : inexact-ok += cos upward intel96 0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ep-24 : inexact-ok += cos downward m68k96 0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502fp-24 : inexact-ok += cos tonearest m68k96 0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502fp-24 : inexact-ok += cos towardzero m68k96 0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ep-24 : inexact-ok += cos upward m68k96 0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ep-24 : inexact-ok += cos downward binary128 0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ede3f507aaa7d8p-24 : inexact-ok += cos tonearest binary128 0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ede3f507aaa7d8p-24 : inexact-ok += cos towardzero binary128 0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ede3f507aaa7dp-24 : inexact-ok += cos upward binary128 0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ede3f507aaa7dp-24 : inexact-ok += cos downward ibm128 0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ede3f507aaa8p-24 : inexact-ok += cos tonearest ibm128 0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ede3f507aaa8p-24 : inexact-ok += cos towardzero ibm128 0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ede3f507aaa4p-24 : inexact-ok += cos upward ibm128 0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ede3f507aaa4p-24 : inexact-ok += cos downward intel96 0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502fp-24 : inexact-ok += cos tonearest intel96 0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502fp-24 : inexact-ok += cos towardzero intel96 0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ep-24 : inexact-ok += cos upward intel96 0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ep-24 : inexact-ok += cos downward m68k96 0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502fp-24 : inexact-ok += cos tonearest m68k96 0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502fp-24 : inexact-ok += cos towardzero m68k96 0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ep-24 : inexact-ok += cos upward m68k96 0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ep-24 : inexact-ok += cos downward binary128 0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ede3f57c1dce18p-24 : inexact-ok += cos tonearest binary128 0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ede3f57c1dce1p-24 : inexact-ok += cos towardzero binary128 0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ede3f57c1dce1p-24 : inexact-ok += cos upward binary128 0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ede3f57c1dce1p-24 : inexact-ok += cos downward ibm128 0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ede3f57c1ddp-24 : inexact-ok += cos tonearest ibm128 0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ede3f57c1ddp-24 : inexact-ok += cos towardzero ibm128 0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ede3f57c1dccp-24 : inexact-ok += cos upward ibm128 0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ede3f57c1dccp-24 : inexact-ok += cos downward binary128 0x1.921fc00ece4f02f278ade6ad9e8ap+0 : -0xa.ca8b7d7e881db0d49193eaab43cp-24 : inexact-ok += cos tonearest binary128 0x1.921fc00ece4f02f278ade6ad9e8ap+0 : -0xa.ca8b7d7e881db0d49193eaab43cp-24 : inexact-ok += cos towardzero binary128 0x1.921fc00ece4f02f278ade6ad9e8ap+0 : -0xa.ca8b7d7e881db0d49193eaab43b8p-24 : inexact-ok += cos upward binary128 0x1.921fc00ece4f02f278ade6ad9e8ap+0 : -0xa.ca8b7d7e881db0d49193eaab43b8p-24 : inexact-ok += cos downward binary128 0x1.921fc00ece4f02f278ade6ad9e89p+0 : -0xa.ca8b7d7e881db0d49193e9ab43cp-24 : inexact-ok += cos tonearest binary128 0x1.921fc00ece4f02f278ade6ad9e89p+0 : -0xa.ca8b7d7e881db0d49193e9ab43cp-24 : inexact-ok += cos towardzero binary128 0x1.921fc00ece4f02f278ade6ad9e89p+0 : -0xa.ca8b7d7e881db0d49193e9ab43b8p-24 : inexact-ok += cos upward binary128 0x1.921fc00ece4f02f278ade6ad9e89p+0 : -0xa.ca8b7d7e881db0d49193e9ab43b8p-24 : inexact-ok += cos downward binary128 0x1.921fc00ece4f02f278ade6ad9fp+0 : -0xa.ca8b7d7e881db0d4919460ab43cp-24 : inexact-ok += cos tonearest binary128 0x1.921fc00ece4f02f278ade6ad9fp+0 : -0xa.ca8b7d7e881db0d4919460ab43cp-24 : inexact-ok += cos towardzero binary128 0x1.921fc00ece4f02f278ade6ad9fp+0 : -0xa.ca8b7d7e881db0d4919460ab43b8p-24 : inexact-ok += cos upward binary128 0x1.921fc00ece4f02f278ade6ad9fp+0 : -0xa.ca8b7d7e881db0d4919460ab43b8p-24 : inexact-ok += cos downward ibm128 0x1.921fc00ece4f02f278ade6ad9fp+0 : -0xa.ca8b7d7e881db0d4919460ab44p-24 : inexact-ok += cos tonearest ibm128 0x1.921fc00ece4f02f278ade6ad9fp+0 : -0xa.ca8b7d7e881db0d4919460ab44p-24 : inexact-ok += cos towardzero ibm128 0x1.921fc00ece4f02f278ade6ad9fp+0 : -0xa.ca8b7d7e881db0d4919460ab4p-24 : inexact-ok += cos upward ibm128 0x1.921fc00ece4f02f278ade6ad9fp+0 : -0xa.ca8b7d7e881db0d4919460ab4p-24 : inexact-ok += cos downward binary128 0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0xa.ca8b7d7e881db0d49193e0ab43cp-24 : inexact-ok += cos tonearest binary128 0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0xa.ca8b7d7e881db0d49193e0ab43cp-24 : inexact-ok += cos towardzero binary128 0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0xa.ca8b7d7e881db0d49193e0ab43b8p-24 : inexact-ok += cos upward binary128 0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0xa.ca8b7d7e881db0d49193e0ab43b8p-24 : inexact-ok += cos downward ibm128 0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0xa.ca8b7d7e881db0d49193e0ab44p-24 : inexact-ok += cos tonearest ibm128 0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0xa.ca8b7d7e881db0d49193e0ab44p-24 : inexact-ok += cos towardzero ibm128 0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0xa.ca8b7d7e881db0d49193e0ab4p-24 : inexact-ok += cos upward ibm128 0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0xa.ca8b7d7e881db0d49193e0ab4p-24 : inexact-ok +cos -1.57079697 += cos downward binary32 -0x1.921fcp+0 : -0xa.bbbd3p-24 : inexact-ok += cos tonearest binary32 -0x1.921fcp+0 : -0xa.bbbd3p-24 : inexact-ok += cos towardzero binary32 -0x1.921fcp+0 : -0xa.bbbd2p-24 : inexact-ok += cos upward binary32 -0x1.921fcp+0 : -0xa.bbbd2p-24 : inexact-ok += cos downward binary64 -0x1.921fcp+0 : -0xa.bbbd2e7b95a88p-24 : inexact-ok += cos tonearest binary64 -0x1.921fcp+0 : -0xa.bbbd2e7b95a88p-24 : inexact-ok += cos towardzero binary64 -0x1.921fcp+0 : -0xa.bbbd2e7b95a8p-24 : inexact-ok += cos upward binary64 -0x1.921fcp+0 : -0xa.bbbd2e7b95a8p-24 : inexact-ok += cos downward intel96 -0x1.921fcp+0 : -0xa.bbbd2e7b95a85c7p-24 : inexact-ok += cos tonearest intel96 -0x1.921fcp+0 : -0xa.bbbd2e7b95a85c6p-24 : inexact-ok += cos towardzero intel96 -0x1.921fcp+0 : -0xa.bbbd2e7b95a85c6p-24 : inexact-ok += cos upward intel96 -0x1.921fcp+0 : -0xa.bbbd2e7b95a85c6p-24 : inexact-ok += cos downward m68k96 -0x1.921fcp+0 : -0xa.bbbd2e7b95a85c7p-24 : inexact-ok += cos tonearest m68k96 -0x1.921fcp+0 : -0xa.bbbd2e7b95a85c6p-24 : inexact-ok += cos towardzero m68k96 -0x1.921fcp+0 : -0xa.bbbd2e7b95a85c6p-24 : inexact-ok += cos upward m68k96 -0x1.921fcp+0 : -0xa.bbbd2e7b95a85c6p-24 : inexact-ok += cos downward binary128 -0x1.921fcp+0 : -0xa.bbbd2e7b95a85c638e746a5f4f68p-24 : inexact-ok += cos tonearest binary128 -0x1.921fcp+0 : -0xa.bbbd2e7b95a85c638e746a5f4f6p-24 : inexact-ok += cos towardzero binary128 -0x1.921fcp+0 : -0xa.bbbd2e7b95a85c638e746a5f4f6p-24 : inexact-ok += cos upward binary128 -0x1.921fcp+0 : -0xa.bbbd2e7b95a85c638e746a5f4f6p-24 : inexact-ok += cos downward ibm128 -0x1.921fcp+0 : -0xa.bbbd2e7b95a85c638e746a5f5p-24 : inexact-ok += cos tonearest ibm128 -0x1.921fcp+0 : -0xa.bbbd2e7b95a85c638e746a5f5p-24 : inexact-ok += cos towardzero ibm128 -0x1.921fcp+0 : -0xa.bbbd2e7b95a85c638e746a5f4cp-24 : inexact-ok += cos upward ibm128 -0x1.921fcp+0 : -0xa.bbbd2e7b95a85c638e746a5f4cp-24 : inexact-ok += cos downward binary32 -0x1.921fc2p+0 : -0xc.bbbd3p-24 : inexact-ok += cos tonearest binary32 -0x1.921fc2p+0 : -0xc.bbbd3p-24 : inexact-ok += cos towardzero binary32 -0x1.921fc2p+0 : -0xc.bbbd2p-24 : inexact-ok += cos upward binary32 -0x1.921fc2p+0 : -0xc.bbbd2p-24 : inexact-ok += cos downward binary64 -0x1.921fc2p+0 : -0xc.bbbd2e7b951e8p-24 : inexact-ok += cos tonearest binary64 -0x1.921fc2p+0 : -0xc.bbbd2e7b951e8p-24 : inexact-ok += cos towardzero binary64 -0x1.921fc2p+0 : -0xc.bbbd2e7b951ep-24 : inexact-ok += cos upward binary64 -0x1.921fc2p+0 : -0xc.bbbd2e7b951ep-24 : inexact-ok += cos downward intel96 -0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b2p-24 : inexact-ok += cos tonearest intel96 -0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b2p-24 : inexact-ok += cos towardzero intel96 -0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1p-24 : inexact-ok += cos upward intel96 -0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1p-24 : inexact-ok += cos downward m68k96 -0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b2p-24 : inexact-ok += cos tonearest m68k96 -0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b2p-24 : inexact-ok += cos towardzero m68k96 -0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1p-24 : inexact-ok += cos upward m68k96 -0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1p-24 : inexact-ok += cos downward binary128 -0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1e4cc9f460a12p-24 : inexact-ok += cos tonearest binary128 -0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1e4cc9f460a12p-24 : inexact-ok += cos towardzero binary128 -0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1e4cc9f460a118p-24 : inexact-ok += cos upward binary128 -0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1e4cc9f460a118p-24 : inexact-ok += cos downward ibm128 -0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1e4cc9f460a4p-24 : inexact-ok += cos tonearest ibm128 -0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1e4cc9f460ap-24 : inexact-ok += cos towardzero ibm128 -0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1e4cc9f460ap-24 : inexact-ok += cos upward ibm128 -0x1.921fc2p+0 : -0xc.bbbd2e7b951e5b1e4cc9f460ap-24 : inexact-ok += cos downward binary64 -0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a58p-24 : inexact-ok += cos tonearest binary64 -0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a5p-24 : inexact-ok += cos towardzero binary64 -0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a5p-24 : inexact-ok += cos upward binary64 -0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a5p-24 : inexact-ok += cos downward intel96 -0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502fp-24 : inexact-ok += cos tonearest intel96 -0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502fp-24 : inexact-ok += cos towardzero intel96 -0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ep-24 : inexact-ok += cos upward intel96 -0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ep-24 : inexact-ok += cos downward m68k96 -0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502fp-24 : inexact-ok += cos tonearest m68k96 -0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502fp-24 : inexact-ok += cos towardzero m68k96 -0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ep-24 : inexact-ok += cos upward m68k96 -0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ep-24 : inexact-ok += cos downward binary128 -0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ede4a0f9b11c3p-24 : inexact-ok += cos tonearest binary128 -0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ede4a0f9b11c28p-24 : inexact-ok += cos towardzero binary128 -0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ede4a0f9b11c28p-24 : inexact-ok += cos upward binary128 -0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ede4a0f9b11c28p-24 : inexact-ok += cos downward ibm128 -0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ede4a0f9b12p-24 : inexact-ok += cos tonearest ibm128 -0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ede4a0f9b11cp-24 : inexact-ok += cos towardzero ibm128 -0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ede4a0f9b11cp-24 : inexact-ok += cos upward ibm128 -0x1.921fc00ece4fp+0 : -0xa.ca8b7d7b95a502ede4a0f9b11cp-24 : inexact-ok += cos downward binary64 -0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a58p-24 : inexact-ok += cos tonearest binary64 -0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a5p-24 : inexact-ok += cos towardzero binary64 -0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a5p-24 : inexact-ok += cos upward binary64 -0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a5p-24 : inexact-ok += cos downward intel96 -0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502fp-24 : inexact-ok += cos tonearest intel96 -0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502fp-24 : inexact-ok += cos towardzero intel96 -0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ep-24 : inexact-ok += cos upward intel96 -0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ep-24 : inexact-ok += cos downward m68k96 -0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502fp-24 : inexact-ok += cos tonearest m68k96 -0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502fp-24 : inexact-ok += cos towardzero m68k96 -0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ep-24 : inexact-ok += cos upward m68k96 -0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ep-24 : inexact-ok += cos downward binary128 -0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ede0fd607f3948p-24 : inexact-ok += cos tonearest binary128 -0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ede0fd607f394p-24 : inexact-ok += cos towardzero binary128 -0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ede0fd607f394p-24 : inexact-ok += cos upward binary128 -0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ede0fd607f394p-24 : inexact-ok += cos downward ibm128 -0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ede0fd607f3cp-24 : inexact-ok += cos tonearest ibm128 -0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ede0fd607f38p-24 : inexact-ok += cos towardzero ibm128 -0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ede0fd607f38p-24 : inexact-ok += cos upward ibm128 -0x1.921fc00ece4f1p+0 : -0xa.ca8b7d8b95a502ede0fd607f38p-24 : inexact-ok += cos downward intel96 -0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502fp-24 : inexact-ok += cos tonearest intel96 -0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502fp-24 : inexact-ok += cos towardzero intel96 -0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ep-24 : inexact-ok += cos upward intel96 -0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ep-24 : inexact-ok += cos downward m68k96 -0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502fp-24 : inexact-ok += cos tonearest m68k96 -0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502fp-24 : inexact-ok += cos towardzero m68k96 -0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ep-24 : inexact-ok += cos upward m68k96 -0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ep-24 : inexact-ok += cos downward binary128 -0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ede3f57c1dce18p-24 : inexact-ok += cos tonearest binary128 -0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ede3f57c1dce1p-24 : inexact-ok += cos towardzero binary128 -0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ede3f57c1dce1p-24 : inexact-ok += cos upward binary128 -0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ede3f57c1dce1p-24 : inexact-ok += cos downward ibm128 -0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ede3f57c1ddp-24 : inexact-ok += cos tonearest ibm128 -0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ede3f57c1ddp-24 : inexact-ok += cos towardzero ibm128 -0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ede3f57c1dccp-24 : inexact-ok += cos upward ibm128 -0x1.921fc00ece4f02f2p+0 : -0xa.ca8b7d7e87a502ede3f57c1dccp-24 : inexact-ok += cos downward intel96 -0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502fp-24 : inexact-ok += cos tonearest intel96 -0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502fp-24 : inexact-ok += cos towardzero intel96 -0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ep-24 : inexact-ok += cos upward intel96 -0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ep-24 : inexact-ok += cos downward m68k96 -0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502fp-24 : inexact-ok += cos tonearest m68k96 -0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502fp-24 : inexact-ok += cos towardzero m68k96 -0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ep-24 : inexact-ok += cos upward m68k96 -0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ep-24 : inexact-ok += cos downward binary128 -0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ede3f507aaa7d8p-24 : inexact-ok += cos tonearest binary128 -0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ede3f507aaa7d8p-24 : inexact-ok += cos towardzero binary128 -0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ede3f507aaa7dp-24 : inexact-ok += cos upward binary128 -0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ede3f507aaa7dp-24 : inexact-ok += cos downward ibm128 -0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ede3f507aaa8p-24 : inexact-ok += cos tonearest ibm128 -0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ede3f507aaa8p-24 : inexact-ok += cos towardzero ibm128 -0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ede3f507aaa4p-24 : inexact-ok += cos upward ibm128 -0x1.921fc00ece4f02f4p+0 : -0xa.ca8b7d7e89a502ede3f507aaa4p-24 : inexact-ok += cos downward binary128 -0x1.921fc00ece4f02f278ade6ad9e89p+0 : -0xa.ca8b7d7e881db0d49193e9ab43cp-24 : inexact-ok += cos tonearest binary128 -0x1.921fc00ece4f02f278ade6ad9e89p+0 : -0xa.ca8b7d7e881db0d49193e9ab43cp-24 : inexact-ok += cos towardzero binary128 -0x1.921fc00ece4f02f278ade6ad9e89p+0 : -0xa.ca8b7d7e881db0d49193e9ab43b8p-24 : inexact-ok += cos upward binary128 -0x1.921fc00ece4f02f278ade6ad9e89p+0 : -0xa.ca8b7d7e881db0d49193e9ab43b8p-24 : inexact-ok += cos downward binary128 -0x1.921fc00ece4f02f278ade6ad9e8ap+0 : -0xa.ca8b7d7e881db0d49193eaab43cp-24 : inexact-ok += cos tonearest binary128 -0x1.921fc00ece4f02f278ade6ad9e8ap+0 : -0xa.ca8b7d7e881db0d49193eaab43cp-24 : inexact-ok += cos towardzero binary128 -0x1.921fc00ece4f02f278ade6ad9e8ap+0 : -0xa.ca8b7d7e881db0d49193eaab43b8p-24 : inexact-ok += cos upward binary128 -0x1.921fc00ece4f02f278ade6ad9e8ap+0 : -0xa.ca8b7d7e881db0d49193eaab43b8p-24 : inexact-ok += cos downward binary128 -0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0xa.ca8b7d7e881db0d49193e0ab43cp-24 : inexact-ok += cos tonearest binary128 -0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0xa.ca8b7d7e881db0d49193e0ab43cp-24 : inexact-ok += cos towardzero binary128 -0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0xa.ca8b7d7e881db0d49193e0ab43b8p-24 : inexact-ok += cos upward binary128 -0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0xa.ca8b7d7e881db0d49193e0ab43b8p-24 : inexact-ok += cos downward ibm128 -0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0xa.ca8b7d7e881db0d49193e0ab44p-24 : inexact-ok += cos tonearest ibm128 -0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0xa.ca8b7d7e881db0d49193e0ab44p-24 : inexact-ok += cos towardzero ibm128 -0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0xa.ca8b7d7e881db0d49193e0ab4p-24 : inexact-ok += cos upward ibm128 -0x1.921fc00ece4f02f278ade6ad9e8p+0 : -0xa.ca8b7d7e881db0d49193e0ab4p-24 : inexact-ok += cos downward binary128 -0x1.921fc00ece4f02f278ade6ad9fp+0 : -0xa.ca8b7d7e881db0d4919460ab43cp-24 : inexact-ok += cos tonearest binary128 -0x1.921fc00ece4f02f278ade6ad9fp+0 : -0xa.ca8b7d7e881db0d4919460ab43cp-24 : inexact-ok += cos towardzero binary128 -0x1.921fc00ece4f02f278ade6ad9fp+0 : -0xa.ca8b7d7e881db0d4919460ab43b8p-24 : inexact-ok += cos upward binary128 -0x1.921fc00ece4f02f278ade6ad9fp+0 : -0xa.ca8b7d7e881db0d4919460ab43b8p-24 : inexact-ok += cos downward ibm128 -0x1.921fc00ece4f02f278ade6ad9fp+0 : -0xa.ca8b7d7e881db0d4919460ab44p-24 : inexact-ok += cos tonearest ibm128 -0x1.921fc00ece4f02f278ade6ad9fp+0 : -0xa.ca8b7d7e881db0d4919460ab44p-24 : inexact-ok += cos towardzero ibm128 -0x1.921fc00ece4f02f278ade6ad9fp+0 : -0xa.ca8b7d7e881db0d4919460ab4p-24 : inexact-ok += cos upward ibm128 -0x1.921fc00ece4f02f278ade6ad9fp+0 : -0xa.ca8b7d7e881db0d4919460ab4p-24 : inexact-ok diff --git a/math/auto-libm-test-out-tan b/math/auto-libm-test-out-tan index 9f3e6cb..7d00d03 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 diff --git a/sysdeps/ieee754/flt-32/e_rem_pio2f.c b/sysdeps/ieee754/flt-32/e_rem_pio2f.c index 0928373..c4d28c8 100644 --- a/sysdeps/ieee754/flt-32/e_rem_pio2f.c +++ b/sysdeps/ieee754/flt-32/e_rem_pio2f.c @@ -100,7 +100,7 @@ int32_t __ieee754_rem_pio2f(float x, float *y) if(ix<0x4016cbe4) { /* |x| < 3pi/4, special case with n=+-1 */ if(hx>0) { z = x - pio2_1; - if((ix&0xfffffff0)!=0x3fc90fd0) { /* 24+24 bit pi OK */ + if((ix&0xffffffc0)!=0x3fc90fc0) { /* 24+24 bit pi OK */ y[0] = z - pio2_1t; y[1] = (z-y[0])-pio2_1t; } else { /* near pi/2, use 24+24+24 bit pi */ @@ -111,7 +111,7 @@ int32_t __ieee754_rem_pio2f(float x, float *y) return 1; } else { /* negative x */ z = x + pio2_1; - if((ix&0xfffffff0)!=0x3fc90fd0) { /* 24+24 bit pi OK */ + if((ix&0xffffffc0)!=0x3fc90fc0) { /* 24+24 bit pi OK */ y[0] = z + pio2_1t; y[1] = (z-y[0])+pio2_1t; } else { /* near pi/2, use 24+24+24 bit pi */ -- cgit v1.1