diff options
author | Joseph Myers <joseph@codesourcery.com> | 2015-06-23 22:24:20 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2015-06-23 22:24:20 +0000 |
commit | ad39cce0da0161dba69781c53349acf2e23f156c (patch) | |
tree | 1c7b29a8fe9358aa720485ca439db53d6749b379 | |
parent | 8b1bab5ffa235bc494c33fdbe4c9994202936cfc (diff) | |
download | glibc-ad39cce0da0161dba69781c53349acf2e23f156c.zip glibc-ad39cce0da0161dba69781c53349acf2e23f156c.tar.gz glibc-ad39cce0da0161dba69781c53349acf2e23f156c.tar.bz2 |
Fix sin, sincos missing underflows (bug 16526, bug 16538).
Similar to various other bugs in this area, some sin and sincos
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 #16526]
[BZ #16538]
* sysdeps/ieee754/dbl-64/s_sin.c: Include <float.h>.
(__sin): Force underflow exception for arguments with small
absolute value.
* sysdeps/ieee754/flt-32/k_sinf.c: Include <float.h>.
(__kernel_sinf): Force underflow exception for arguments with
small absolute value.
* sysdeps/ieee754/ldbl-128/k_sincosl.c: Include <float.h>.
(__kernel_sincosl): Force underflow exception for arguments with
small absolute value.
* sysdeps/ieee754/ldbl-128/k_sinl.c: Include <float.h>.
(__kernel_sinl): Force underflow exception for arguments with
small absolute value.
* sysdeps/ieee754/ldbl-128ibm/k_sincosl.c: Include <float.h>.
(__kernel_sincosl): Force underflow exception for arguments with
small absolute value.
* sysdeps/ieee754/ldbl-128ibm/k_sinl.c: Include <float.h>.
(__kernel_sinl): Force underflow exception for arguments with
small absolute value.
* sysdeps/ieee754/ldbl-96/k_sinl.c: Include <float.h>.
(__kernel_sinl): Force underflow exception for arguments with
small absolute value.
* sysdeps/powerpc/fpu/k_sinf.c: Include <float.h>.
(__kernel_sinf): Force underflow exception for arguments with
small absolute value.
* math/auto-libm-test-in: Add more tests of sin and sincos.
* math/auto-libm-test-out: Regenerated.
-rw-r--r-- | ChangeLog | 29 | ||||
-rw-r--r-- | NEWS | 28 | ||||
-rw-r--r-- | math/auto-libm-test-in | 8 | ||||
-rw-r--r-- | math/auto-libm-test-out | 632 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_sin.c | 10 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/k_sinf.c | 11 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/k_sincosl.c | 20 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/k_sinl.c | 10 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128ibm/k_sincosl.c | 20 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128ibm/k_sinl.c | 10 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/k_sinl.c | 10 | ||||
-rw-r--r-- | sysdeps/powerpc/fpu/k_sinf.c | 6 |
12 files changed, 762 insertions, 32 deletions
@@ -1,5 +1,34 @@ 2015-06-23 Joseph Myers <joseph@codesourcery.com> + [BZ #16526] + [BZ #16538] + * sysdeps/ieee754/dbl-64/s_sin.c: Include <float.h>. + (__sin): Force underflow exception for arguments with small + absolute value. + * sysdeps/ieee754/flt-32/k_sinf.c: Include <float.h>. + (__kernel_sinf): Force underflow exception for arguments with + small absolute value. + * sysdeps/ieee754/ldbl-128/k_sincosl.c: Include <float.h>. + (__kernel_sincosl): Force underflow exception for arguments with + small absolute value. + * sysdeps/ieee754/ldbl-128/k_sinl.c: Include <float.h>. + (__kernel_sinl): Force underflow exception for arguments with + small absolute value. + * sysdeps/ieee754/ldbl-128ibm/k_sincosl.c: Include <float.h>. + (__kernel_sincosl): Force underflow exception for arguments with + small absolute value. + * sysdeps/ieee754/ldbl-128ibm/k_sinl.c: Include <float.h>. + (__kernel_sinl): Force underflow exception for arguments with + small absolute value. + * sysdeps/ieee754/ldbl-96/k_sinl.c: Include <float.h>. + (__kernel_sinl): Force underflow exception for arguments with + small absolute value. + * sysdeps/powerpc/fpu/k_sinf.c: Include <float.h>. + (__kernel_sinf): Force underflow exception for arguments with + small absolute value. + * math/auto-libm-test-in: Add more tests of sin and sincos. + * math/auto-libm-test-out: Regenerated. + [BZ #18245] [BZ #18583] * sysdeps/ieee754/k_standardl.c: Include <fenv.h>. @@ -11,20 +11,20 @@ Version 2.22 438, 4719, 6792, 13028, 13064, 14094, 14841, 14906, 14958, 15319, 15467, 15790, 15969, 16159, 16339, 16350, 16351, 16352, 16353, 16361, 16512, - 16560, 16704, 16783, 16850, 17053, 17090, 17195, 17269, 17293, 17322, - 17403, 17523, 17542, 17569, 17581, 17588, 17596, 17620, 17621, 17628, - 17631, 17692, 17711, 17715, 17776, 17779, 17792, 17836, 17912, 17916, - 17930, 17932, 17944, 17949, 17964, 17965, 17967, 17969, 17977, 17978, - 17987, 17991, 17996, 17998, 17999, 18007, 18019, 18020, 18029, 18030, - 18032, 18034, 18036, 18038, 18039, 18042, 18043, 18046, 18047, 18049, - 18068, 18080, 18093, 18100, 18104, 18110, 18111, 18116, 18125, 18128, - 18138, 18185, 18196, 18197, 18206, 18210, 18211, 18217, 18219, 18220, - 18221, 18234, 18244, 18245, 18247, 18287, 18319, 18324, 18333, 18346, - 18371, 18397, 18409, 18410, 18412, 18418, 18422, 18434, 18444, 18468, - 18469, 18470, 18479, 18483, 18495, 18496, 18497, 18498, 18507, 18512, - 18513, 18519, 18520, 18522, 18527, 18528, 18529, 18530, 18532, 18533, - 18534, 18536, 18539, 18540, 18542, 18544, 18545, 18546, 18547, 18553, - 18558, 18569, 18583. + 16526, 16538, 16560, 16704, 16783, 16850, 17053, 17090, 17195, 17269, + 17293, 17322, 17403, 17523, 17542, 17569, 17581, 17588, 17596, 17620, + 17621, 17628, 17631, 17692, 17711, 17715, 17776, 17779, 17792, 17836, + 17912, 17916, 17930, 17932, 17944, 17949, 17964, 17965, 17967, 17969, + 17977, 17978, 17987, 17991, 17996, 17998, 17999, 18007, 18019, 18020, + 18029, 18030, 18032, 18034, 18036, 18038, 18039, 18042, 18043, 18046, + 18047, 18049, 18068, 18080, 18093, 18100, 18104, 18110, 18111, 18116, + 18125, 18128, 18138, 18185, 18196, 18197, 18206, 18210, 18211, 18217, + 18219, 18220, 18221, 18234, 18244, 18245, 18247, 18287, 18319, 18324, + 18333, 18346, 18371, 18397, 18409, 18410, 18412, 18418, 18422, 18434, + 18444, 18468, 18469, 18470, 18479, 18483, 18495, 18496, 18497, 18498, + 18507, 18512, 18513, 18519, 18520, 18522, 18527, 18528, 18529, 18530, + 18532, 18533, 18534, 18536, 18539, 18540, 18542, 18544, 18545, 18546, + 18547, 18553, 18558, 18569, 18583. * Cache information can be queried via sysconf() function on s390 e.g. with _SC_LEVEL1_ICACHE_SIZE as argument. diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in index d1502ad..6545583 100644 --- a/math/auto-libm-test-in +++ b/math/auto-libm-test-in @@ -2317,6 +2317,10 @@ sin 0x1.2001469775ce6p32 sin -0x3.3de320f6be87ep+1020 sin 0xe.9f1e5bc3bb88p+112 sin 0x4.7857dp+68 +sin min +sin -min +sin min_subnorm +sin -min_subnorm sincos 0 sincos -0 @@ -2339,6 +2343,10 @@ sincos 0x1p+28 sincos -0x3.3de320f6be87ep+1020 sincos 0xe.9f1e5bc3bb88p+112 sincos 0x4.7857dp+68 +sincos min +sincos -min +sincos min_subnorm +sincos -min_subnorm sinh 0 sinh -0 diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out index 89a4ffc..f3672db 100644 --- a/math/auto-libm-test-out +++ b/math/auto-libm-test-out @@ -181969,6 +181969,322 @@ sin 0x4.7857dp+68 = sin tonearest ldbl-128ibm 0x4.7857dp+68L : -0x1.ffb679ba994b76173f9040638p-4L : inexact-ok = sin towardzero ldbl-128ibm 0x4.7857dp+68L : -0x1.ffb679ba994b76173f9040637f8p-4L : inexact-ok = sin upward ldbl-128ibm 0x4.7857dp+68L : -0x1.ffb679ba994b76173f9040637f8p-4L : inexact-ok +sin min += sin downward flt-32 0x4p-128f : 0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok += sin tonearest flt-32 0x4p-128f : 0x4p-128f : inexact-ok underflow-ok errno-erange-ok += sin towardzero flt-32 0x4p-128f : 0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok += sin upward flt-32 0x4p-128f : 0x4p-128f : inexact-ok underflow-ok errno-erange-ok += sin downward dbl-64 0x4p-128 : 0x3.ffffffffffffep-128 : inexact-ok += sin tonearest dbl-64 0x4p-128 : 0x4p-128 : inexact-ok += sin towardzero dbl-64 0x4p-128 : 0x3.ffffffffffffep-128 : inexact-ok += sin upward dbl-64 0x4p-128 : 0x4p-128 : inexact-ok += sin downward ldbl-96-intel 0x4p-128L : 0x3.fffffffffffffffcp-128L : inexact-ok += sin tonearest ldbl-96-intel 0x4p-128L : 0x4p-128L : inexact-ok += sin towardzero ldbl-96-intel 0x4p-128L : 0x3.fffffffffffffffcp-128L : inexact-ok += sin upward ldbl-96-intel 0x4p-128L : 0x4p-128L : inexact-ok += sin downward ldbl-96-m68k 0x4p-128L : 0x3.fffffffffffffffcp-128L : inexact-ok += sin tonearest ldbl-96-m68k 0x4p-128L : 0x4p-128L : inexact-ok += sin towardzero ldbl-96-m68k 0x4p-128L : 0x3.fffffffffffffffcp-128L : inexact-ok += sin upward ldbl-96-m68k 0x4p-128L : 0x4p-128L : inexact-ok += sin downward ldbl-128 0x4p-128L : 0x3.fffffffffffffffffffffffffffep-128L : inexact-ok += sin tonearest ldbl-128 0x4p-128L : 0x4p-128L : inexact-ok += sin towardzero ldbl-128 0x4p-128L : 0x3.fffffffffffffffffffffffffffep-128L : inexact-ok += sin upward ldbl-128 0x4p-128L : 0x4p-128L : inexact-ok += sin downward ldbl-128ibm 0x4p-128L : 0x3.ffffffffffffffffffffffffffp-128L : inexact-ok += sin tonearest ldbl-128ibm 0x4p-128L : 0x4p-128L : inexact-ok += sin towardzero ldbl-128ibm 0x4p-128L : 0x3.ffffffffffffffffffffffffffp-128L : inexact-ok += sin upward ldbl-128ibm 0x4p-128L : 0x4p-128L : inexact-ok += sin downward dbl-64 0x4p-1024 : 0x3.ffffffffffffcp-1024 : inexact-ok underflow-ok errno-erange-ok += sin tonearest dbl-64 0x4p-1024 : 0x4p-1024 : inexact-ok underflow-ok errno-erange-ok += sin towardzero dbl-64 0x4p-1024 : 0x3.ffffffffffffcp-1024 : inexact-ok underflow-ok errno-erange-ok += sin upward dbl-64 0x4p-1024 : 0x4p-1024 : inexact-ok underflow-ok errno-erange-ok += sin downward ldbl-96-intel 0x4p-1024L : 0x3.fffffffffffffffcp-1024L : inexact-ok += sin tonearest ldbl-96-intel 0x4p-1024L : 0x4p-1024L : inexact-ok += sin towardzero ldbl-96-intel 0x4p-1024L : 0x3.fffffffffffffffcp-1024L : inexact-ok += sin upward ldbl-96-intel 0x4p-1024L : 0x4p-1024L : inexact-ok += sin downward ldbl-96-m68k 0x4p-1024L : 0x3.fffffffffffffffcp-1024L : inexact-ok += sin tonearest ldbl-96-m68k 0x4p-1024L : 0x4p-1024L : inexact-ok += sin towardzero ldbl-96-m68k 0x4p-1024L : 0x3.fffffffffffffffcp-1024L : inexact-ok += sin upward ldbl-96-m68k 0x4p-1024L : 0x4p-1024L : inexact-ok += sin downward ldbl-128 0x4p-1024L : 0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok += sin tonearest ldbl-128 0x4p-1024L : 0x4p-1024L : inexact-ok += sin towardzero ldbl-128 0x4p-1024L : 0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok += sin upward ldbl-128 0x4p-1024L : 0x4p-1024L : inexact-ok += sin downward ldbl-128ibm 0x4p-1024L : 0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok += sin tonearest ldbl-128ibm 0x4p-1024L : 0x4p-1024L : inexact-ok underflow errno-erange-ok += sin towardzero ldbl-128ibm 0x4p-1024L : 0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok += sin upward ldbl-128ibm 0x4p-1024L : 0x4p-1024L : inexact-ok underflow errno-erange-ok += sin downward ldbl-96-intel 0x4p-16384L : 0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok += sin tonearest ldbl-96-intel 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok += sin towardzero ldbl-96-intel 0x4p-16384L : 0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok += sin upward ldbl-96-intel 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok += sin downward ldbl-96-m68k 0x4p-16384L : 0x3.fffffffffffffffcp-16384L : inexact-ok += sin tonearest ldbl-96-m68k 0x4p-16384L : 0x4p-16384L : inexact-ok += sin towardzero ldbl-96-m68k 0x4p-16384L : 0x3.fffffffffffffffcp-16384L : inexact-ok += sin upward ldbl-96-m68k 0x4p-16384L : 0x4p-16384L : inexact-ok += sin downward ldbl-128 0x4p-16384L : 0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok += sin tonearest ldbl-128 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok += sin towardzero ldbl-128 0x4p-16384L : 0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok += sin upward ldbl-128 0x4p-16384L : 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok += sin downward ldbl-96-intel 0x2p-16384L : 0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok += sin tonearest ldbl-96-intel 0x2p-16384L : 0x2p-16384L : inexact-ok underflow errno-erange-ok += sin towardzero ldbl-96-intel 0x2p-16384L : 0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok += sin upward ldbl-96-intel 0x2p-16384L : 0x2p-16384L : inexact-ok underflow errno-erange-ok += sin downward ldbl-96-m68k 0x2p-16384L : 0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok += sin tonearest ldbl-96-m68k 0x2p-16384L : 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok += sin towardzero ldbl-96-m68k 0x2p-16384L : 0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok += sin upward ldbl-96-m68k 0x2p-16384L : 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok += sin downward ldbl-128 0x2p-16384L : 0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok += sin tonearest ldbl-128 0x2p-16384L : 0x2p-16384L : inexact-ok underflow errno-erange-ok += sin towardzero ldbl-128 0x2p-16384L : 0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok += sin upward ldbl-128 0x2p-16384L : 0x2p-16384L : inexact-ok underflow errno-erange-ok += sin downward dbl-64 0x8p-972 : 0x7.ffffffffffffcp-972 : inexact-ok += sin tonearest dbl-64 0x8p-972 : 0x8p-972 : inexact-ok += sin towardzero dbl-64 0x8p-972 : 0x7.ffffffffffffcp-972 : inexact-ok += sin upward dbl-64 0x8p-972 : 0x8p-972 : inexact-ok += sin downward ldbl-96-intel 0x8p-972L : 0x7.fffffffffffffff8p-972L : inexact-ok += sin tonearest ldbl-96-intel 0x8p-972L : 0x8p-972L : inexact-ok += sin towardzero ldbl-96-intel 0x8p-972L : 0x7.fffffffffffffff8p-972L : inexact-ok += sin upward ldbl-96-intel 0x8p-972L : 0x8p-972L : inexact-ok += sin downward ldbl-96-m68k 0x8p-972L : 0x7.fffffffffffffff8p-972L : inexact-ok += sin tonearest ldbl-96-m68k 0x8p-972L : 0x8p-972L : inexact-ok += sin towardzero ldbl-96-m68k 0x8p-972L : 0x7.fffffffffffffff8p-972L : inexact-ok += sin upward ldbl-96-m68k 0x8p-972L : 0x8p-972L : inexact-ok += sin downward ldbl-128 0x8p-972L : 0x7.fffffffffffffffffffffffffffcp-972L : inexact-ok += sin tonearest ldbl-128 0x8p-972L : 0x8p-972L : inexact-ok += sin towardzero ldbl-128 0x8p-972L : 0x7.fffffffffffffffffffffffffffcp-972L : inexact-ok += sin upward ldbl-128 0x8p-972L : 0x8p-972L : inexact-ok += sin downward ldbl-128ibm 0x8p-972L : 0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok += sin tonearest ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok errno-erange-ok += sin towardzero ldbl-128ibm 0x8p-972L : 0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok += sin upward ldbl-128ibm 0x8p-972L : 0x8p-972L : inexact-ok underflow-ok errno-erange-ok +sin -min += sin downward flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok errno-erange-ok += sin tonearest flt-32 -0x4p-128f : -0x4p-128f : inexact-ok underflow-ok errno-erange-ok += sin towardzero flt-32 -0x4p-128f : -0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok += sin upward flt-32 -0x4p-128f : -0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok += sin downward dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok += sin tonearest dbl-64 -0x4p-128 : -0x4p-128 : inexact-ok += sin towardzero dbl-64 -0x4p-128 : -0x3.ffffffffffffep-128 : inexact-ok += sin upward dbl-64 -0x4p-128 : -0x3.ffffffffffffep-128 : inexact-ok += sin downward ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok += sin tonearest ldbl-96-intel -0x4p-128L : -0x4p-128L : inexact-ok += sin towardzero ldbl-96-intel -0x4p-128L : -0x3.fffffffffffffffcp-128L : inexact-ok += sin upward ldbl-96-intel -0x4p-128L : -0x3.fffffffffffffffcp-128L : inexact-ok += sin downward ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok += sin tonearest ldbl-96-m68k -0x4p-128L : -0x4p-128L : inexact-ok += sin towardzero ldbl-96-m68k -0x4p-128L : -0x3.fffffffffffffffcp-128L : inexact-ok += sin upward ldbl-96-m68k -0x4p-128L : -0x3.fffffffffffffffcp-128L : inexact-ok += sin downward ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok += sin tonearest ldbl-128 -0x4p-128L : -0x4p-128L : inexact-ok += sin towardzero ldbl-128 -0x4p-128L : -0x3.fffffffffffffffffffffffffffep-128L : inexact-ok += sin upward ldbl-128 -0x4p-128L : -0x3.fffffffffffffffffffffffffffep-128L : inexact-ok += sin downward ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok += sin tonearest ldbl-128ibm -0x4p-128L : -0x4p-128L : inexact-ok += sin towardzero ldbl-128ibm -0x4p-128L : -0x3.ffffffffffffffffffffffffffp-128L : inexact-ok += sin upward ldbl-128ibm -0x4p-128L : -0x3.ffffffffffffffffffffffffffp-128L : inexact-ok += sin downward dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok errno-erange-ok += sin tonearest dbl-64 -0x4p-1024 : -0x4p-1024 : inexact-ok underflow-ok errno-erange-ok += sin towardzero dbl-64 -0x4p-1024 : -0x3.ffffffffffffcp-1024 : inexact-ok underflow-ok errno-erange-ok += sin upward dbl-64 -0x4p-1024 : -0x3.ffffffffffffcp-1024 : inexact-ok underflow-ok errno-erange-ok += sin downward ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok += sin tonearest ldbl-96-intel -0x4p-1024L : -0x4p-1024L : inexact-ok += sin towardzero ldbl-96-intel -0x4p-1024L : -0x3.fffffffffffffffcp-1024L : inexact-ok += sin upward ldbl-96-intel -0x4p-1024L : -0x3.fffffffffffffffcp-1024L : inexact-ok += sin downward ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok += sin tonearest ldbl-96-m68k -0x4p-1024L : -0x4p-1024L : inexact-ok += sin towardzero ldbl-96-m68k -0x4p-1024L : -0x3.fffffffffffffffcp-1024L : inexact-ok += sin upward ldbl-96-m68k -0x4p-1024L : -0x3.fffffffffffffffcp-1024L : inexact-ok += sin downward ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok += sin tonearest ldbl-128 -0x4p-1024L : -0x4p-1024L : inexact-ok += sin towardzero ldbl-128 -0x4p-1024L : -0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok += sin upward ldbl-128 -0x4p-1024L : -0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok += sin downward ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow errno-erange-ok += sin tonearest ldbl-128ibm -0x4p-1024L : -0x4p-1024L : inexact-ok underflow errno-erange-ok += sin towardzero ldbl-128ibm -0x4p-1024L : -0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok += sin upward ldbl-128ibm -0x4p-1024L : -0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok += sin downward ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok += sin tonearest ldbl-96-intel -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok += sin towardzero ldbl-96-intel -0x4p-16384L : -0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok += sin upward ldbl-96-intel -0x4p-16384L : -0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok += sin downward ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok += sin tonearest ldbl-96-m68k -0x4p-16384L : -0x4p-16384L : inexact-ok += sin towardzero ldbl-96-m68k -0x4p-16384L : -0x3.fffffffffffffffcp-16384L : inexact-ok += sin upward ldbl-96-m68k -0x4p-16384L : -0x3.fffffffffffffffcp-16384L : inexact-ok += sin downward ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok += sin tonearest ldbl-128 -0x4p-16384L : -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok += sin towardzero ldbl-128 -0x4p-16384L : -0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok += sin upward ldbl-128 -0x4p-16384L : -0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok += sin downward ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow errno-erange-ok += sin tonearest ldbl-96-intel -0x2p-16384L : -0x2p-16384L : inexact-ok underflow errno-erange-ok += sin towardzero ldbl-96-intel -0x2p-16384L : -0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok += sin upward ldbl-96-intel -0x2p-16384L : -0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok += sin downward ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok += sin tonearest ldbl-96-m68k -0x2p-16384L : -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok += sin towardzero ldbl-96-m68k -0x2p-16384L : -0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok += sin upward ldbl-96-m68k -0x2p-16384L : -0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok += sin downward ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow errno-erange-ok += sin tonearest ldbl-128 -0x2p-16384L : -0x2p-16384L : inexact-ok underflow errno-erange-ok += sin towardzero ldbl-128 -0x2p-16384L : -0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok += sin upward ldbl-128 -0x2p-16384L : -0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok += sin downward dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok += sin tonearest dbl-64 -0x8p-972 : -0x8p-972 : inexact-ok += sin towardzero dbl-64 -0x8p-972 : -0x7.ffffffffffffcp-972 : inexact-ok += sin upward dbl-64 -0x8p-972 : -0x7.ffffffffffffcp-972 : inexact-ok += sin downward ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok += sin tonearest ldbl-96-intel -0x8p-972L : -0x8p-972L : inexact-ok += sin towardzero ldbl-96-intel -0x8p-972L : -0x7.fffffffffffffff8p-972L : inexact-ok += sin upward ldbl-96-intel -0x8p-972L : -0x7.fffffffffffffff8p-972L : inexact-ok += sin downward ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok += sin tonearest ldbl-96-m68k -0x8p-972L : -0x8p-972L : inexact-ok += sin towardzero ldbl-96-m68k -0x8p-972L : -0x7.fffffffffffffff8p-972L : inexact-ok += sin upward ldbl-96-m68k -0x8p-972L : -0x7.fffffffffffffff8p-972L : inexact-ok += sin downward ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok += sin tonearest ldbl-128 -0x8p-972L : -0x8p-972L : inexact-ok += sin towardzero ldbl-128 -0x8p-972L : -0x7.fffffffffffffffffffffffffffcp-972L : inexact-ok += sin upward ldbl-128 -0x8p-972L : -0x7.fffffffffffffffffffffffffffcp-972L : inexact-ok += sin downward ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok errno-erange-ok += sin tonearest ldbl-128ibm -0x8p-972L : -0x8p-972L : inexact-ok underflow-ok errno-erange-ok += sin towardzero ldbl-128ibm -0x8p-972L : -0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok += sin upward ldbl-128ibm -0x8p-972L : -0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok +sin min_subnorm += sin downward flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow errno-erange-ok += sin tonearest flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok += sin towardzero flt-32 0x8p-152f : 0x0p+0f : inexact-ok underflow errno-erange-ok += sin upward flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow errno-erange-ok += sin downward dbl-64 0x8p-152 : 0x7.ffffffffffffcp-152 : inexact-ok += sin tonearest dbl-64 0x8p-152 : 0x8p-152 : inexact-ok += sin towardzero dbl-64 0x8p-152 : 0x7.ffffffffffffcp-152 : inexact-ok += sin upward dbl-64 0x8p-152 : 0x8p-152 : inexact-ok += sin downward ldbl-96-intel 0x8p-152L : 0x7.fffffffffffffff8p-152L : inexact-ok += sin tonearest ldbl-96-intel 0x8p-152L : 0x8p-152L : inexact-ok += sin towardzero ldbl-96-intel 0x8p-152L : 0x7.fffffffffffffff8p-152L : inexact-ok += sin upward ldbl-96-intel 0x8p-152L : 0x8p-152L : inexact-ok += sin downward ldbl-96-m68k 0x8p-152L : 0x7.fffffffffffffff8p-152L : inexact-ok += sin tonearest ldbl-96-m68k 0x8p-152L : 0x8p-152L : inexact-ok += sin towardzero ldbl-96-m68k 0x8p-152L : 0x7.fffffffffffffff8p-152L : inexact-ok += sin upward ldbl-96-m68k 0x8p-152L : 0x8p-152L : inexact-ok += sin downward ldbl-128 0x8p-152L : 0x7.fffffffffffffffffffffffffffcp-152L : inexact-ok += sin tonearest ldbl-128 0x8p-152L : 0x8p-152L : inexact-ok += sin towardzero ldbl-128 0x8p-152L : 0x7.fffffffffffffffffffffffffffcp-152L : inexact-ok += sin upward ldbl-128 0x8p-152L : 0x8p-152L : inexact-ok += sin downward ldbl-128ibm 0x8p-152L : 0x7.fffffffffffffffffffffffffep-152L : inexact-ok += sin tonearest ldbl-128ibm 0x8p-152L : 0x8p-152L : inexact-ok += sin towardzero ldbl-128ibm 0x8p-152L : 0x7.fffffffffffffffffffffffffep-152L : inexact-ok += sin upward ldbl-128ibm 0x8p-152L : 0x8p-152L : inexact-ok += sin downward dbl-64 0x4p-1076 : 0x0p+0 : inexact-ok underflow errno-erange-ok += sin tonearest dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow errno-erange-ok += sin towardzero dbl-64 0x4p-1076 : 0x0p+0 : inexact-ok underflow errno-erange-ok += sin upward dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow errno-erange-ok += sin downward ldbl-96-intel 0x4p-1076L : 0x3.fffffffffffffffcp-1076L : inexact-ok += sin tonearest ldbl-96-intel 0x4p-1076L : 0x4p-1076L : inexact-ok += sin towardzero ldbl-96-intel 0x4p-1076L : 0x3.fffffffffffffffcp-1076L : inexact-ok += sin upward ldbl-96-intel 0x4p-1076L : 0x4p-1076L : inexact-ok += sin downward ldbl-96-m68k 0x4p-1076L : 0x3.fffffffffffffffcp-1076L : inexact-ok += sin tonearest ldbl-96-m68k 0x4p-1076L : 0x4p-1076L : inexact-ok += sin towardzero ldbl-96-m68k 0x4p-1076L : 0x3.fffffffffffffffcp-1076L : inexact-ok += sin upward ldbl-96-m68k 0x4p-1076L : 0x4p-1076L : inexact-ok += sin downward ldbl-128 0x4p-1076L : 0x3.fffffffffffffffffffffffffffep-1076L : inexact-ok += sin tonearest ldbl-128 0x4p-1076L : 0x4p-1076L : inexact-ok += sin towardzero ldbl-128 0x4p-1076L : 0x3.fffffffffffffffffffffffffffep-1076L : inexact-ok += sin upward ldbl-128 0x4p-1076L : 0x4p-1076L : inexact-ok += sin downward ldbl-128ibm 0x4p-1076L : 0x0p+0L : inexact-ok underflow errno-erange-ok += sin tonearest ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow errno-erange-ok += sin towardzero ldbl-128ibm 0x4p-1076L : 0x0p+0L : inexact-ok underflow errno-erange-ok += sin upward ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow errno-erange-ok += sin downward ldbl-96-intel 0x8p-16448L : 0x0p+0L : inexact-ok underflow errno-erange-ok += sin tonearest ldbl-96-intel 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok += sin towardzero ldbl-96-intel 0x8p-16448L : 0x0p+0L : inexact-ok underflow errno-erange-ok += sin upward ldbl-96-intel 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok += sin downward ldbl-96-m68k 0x8p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok += sin tonearest ldbl-96-m68k 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok += sin towardzero ldbl-96-m68k 0x8p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok += sin upward ldbl-96-m68k 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok += sin downward ldbl-128 0x8p-16448L : 0x7.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok += sin tonearest ldbl-128 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok += sin towardzero ldbl-128 0x8p-16448L : 0x7.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok += sin upward ldbl-128 0x8p-16448L : 0x8p-16448L : inexact-ok underflow errno-erange-ok += sin downward ldbl-96-m68k 0x4p-16448L : 0x0p+0L : inexact-ok underflow errno-erange-ok += sin tonearest ldbl-96-m68k 0x4p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok += sin towardzero ldbl-96-m68k 0x4p-16448L : 0x0p+0L : inexact-ok underflow errno-erange-ok += sin upward ldbl-96-m68k 0x4p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok += sin downward ldbl-128 0x4p-16448L : 0x3.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok += sin tonearest ldbl-128 0x4p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok += sin towardzero ldbl-128 0x4p-16448L : 0x3.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok += sin upward ldbl-128 0x4p-16448L : 0x4p-16448L : inexact-ok underflow errno-erange-ok += sin downward ldbl-128 0x4p-16496L : 0x0p+0L : inexact-ok underflow errno-erange-ok += sin tonearest ldbl-128 0x4p-16496L : 0x4p-16496L : inexact-ok underflow errno-erange-ok += sin towardzero ldbl-128 0x4p-16496L : 0x0p+0L : inexact-ok underflow errno-erange-ok += sin upward ldbl-128 0x4p-16496L : 0x4p-16496L : inexact-ok underflow errno-erange-ok +sin -min_subnorm += sin downward flt-32 -0x8p-152f : -0x8p-152f : inexact-ok underflow errno-erange-ok += sin tonearest flt-32 -0x8p-152f : -0x8p-152f : inexact-ok underflow errno-erange-ok += sin towardzero flt-32 -0x8p-152f : -0x0p+0f : inexact-ok underflow errno-erange-ok += sin upward flt-32 -0x8p-152f : -0x0p+0f : inexact-ok underflow errno-erange-ok += sin downward dbl-64 -0x8p-152 : -0x8p-152 : inexact-ok += sin tonearest dbl-64 -0x8p-152 : -0x8p-152 : inexact-ok += sin towardzero dbl-64 -0x8p-152 : -0x7.ffffffffffffcp-152 : inexact-ok += sin upward dbl-64 -0x8p-152 : -0x7.ffffffffffffcp-152 : inexact-ok += sin downward ldbl-96-intel -0x8p-152L : -0x8p-152L : inexact-ok += sin tonearest ldbl-96-intel -0x8p-152L : -0x8p-152L : inexact-ok += sin towardzero ldbl-96-intel -0x8p-152L : -0x7.fffffffffffffff8p-152L : inexact-ok += sin upward ldbl-96-intel -0x8p-152L : -0x7.fffffffffffffff8p-152L : inexact-ok += sin downward ldbl-96-m68k -0x8p-152L : -0x8p-152L : inexact-ok += sin tonearest ldbl-96-m68k -0x8p-152L : -0x8p-152L : inexact-ok += sin towardzero ldbl-96-m68k -0x8p-152L : -0x7.fffffffffffffff8p-152L : inexact-ok += sin upward ldbl-96-m68k -0x8p-152L : -0x7.fffffffffffffff8p-152L : inexact-ok += sin downward ldbl-128 -0x8p-152L : -0x8p-152L : inexact-ok += sin tonearest ldbl-128 -0x8p-152L : -0x8p-152L : inexact-ok += sin towardzero ldbl-128 -0x8p-152L : -0x7.fffffffffffffffffffffffffffcp-152L : inexact-ok += sin upward ldbl-128 -0x8p-152L : -0x7.fffffffffffffffffffffffffffcp-152L : inexact-ok += sin downward ldbl-128ibm -0x8p-152L : -0x8p-152L : inexact-ok += sin tonearest ldbl-128ibm -0x8p-152L : -0x8p-152L : inexact-ok += sin towardzero ldbl-128ibm -0x8p-152L : -0x7.fffffffffffffffffffffffffep-152L : inexact-ok += sin upward ldbl-128ibm -0x8p-152L : -0x7.fffffffffffffffffffffffffep-152L : inexact-ok += sin downward dbl-64 -0x4p-1076 : -0x4p-1076 : inexact-ok underflow errno-erange-ok += sin tonearest dbl-64 -0x4p-1076 : -0x4p-1076 : inexact-ok underflow errno-erange-ok += sin towardzero dbl-64 -0x4p-1076 : -0x0p+0 : inexact-ok underflow errno-erange-ok += sin upward dbl-64 -0x4p-1076 : -0x0p+0 : inexact-ok underflow errno-erange-ok += sin downward ldbl-96-intel -0x4p-1076L : -0x4p-1076L : inexact-ok += sin tonearest ldbl-96-intel -0x4p-1076L : -0x4p-1076L : inexact-ok += sin towardzero ldbl-96-intel -0x4p-1076L : -0x3.fffffffffffffffcp-1076L : inexact-ok += sin upward ldbl-96-intel -0x4p-1076L : -0x3.fffffffffffffffcp-1076L : inexact-ok += sin downward ldbl-96-m68k -0x4p-1076L : -0x4p-1076L : inexact-ok += sin tonearest ldbl-96-m68k -0x4p-1076L : -0x4p-1076L : inexact-ok += sin towardzero ldbl-96-m68k -0x4p-1076L : -0x3.fffffffffffffffcp-1076L : inexact-ok += sin upward ldbl-96-m68k -0x4p-1076L : -0x3.fffffffffffffffcp-1076L : inexact-ok += sin downward ldbl-128 -0x4p-1076L : -0x4p-1076L : inexact-ok += sin tonearest ldbl-128 -0x4p-1076L : -0x4p-1076L : inexact-ok += sin towardzero ldbl-128 -0x4p-1076L : -0x3.fffffffffffffffffffffffffffep-1076L : inexact-ok += sin upward ldbl-128 -0x4p-1076L : -0x3.fffffffffffffffffffffffffffep-1076L : inexact-ok += sin downward ldbl-128ibm -0x4p-1076L : -0x4p-1076L : inexact-ok underflow errno-erange-ok += sin tonearest ldbl-128ibm -0x4p-1076L : -0x4p-1076L : inexact-ok underflow errno-erange-ok += sin towardzero ldbl-128ibm -0x4p-1076L : -0x0p+0L : inexact-ok underflow errno-erange-ok += sin upward ldbl-128ibm -0x4p-1076L : -0x0p+0L : inexact-ok underflow errno-erange-ok += sin downward ldbl-96-intel -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok += sin tonearest ldbl-96-intel -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok += sin towardzero ldbl-96-intel -0x8p-16448L : -0x0p+0L : inexact-ok underflow errno-erange-ok += sin upward ldbl-96-intel -0x8p-16448L : -0x0p+0L : inexact-ok underflow errno-erange-ok += sin downward ldbl-96-m68k -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok += sin tonearest ldbl-96-m68k -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok += sin towardzero ldbl-96-m68k -0x8p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok += sin upward ldbl-96-m68k -0x8p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok += sin downward ldbl-128 -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok += sin tonearest ldbl-128 -0x8p-16448L : -0x8p-16448L : inexact-ok underflow errno-erange-ok += sin towardzero ldbl-128 -0x8p-16448L : -0x7.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok += sin upward ldbl-128 -0x8p-16448L : -0x7.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok += sin downward ldbl-96-m68k -0x4p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok += sin tonearest ldbl-96-m68k -0x4p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok += sin towardzero ldbl-96-m68k -0x4p-16448L : -0x0p+0L : inexact-ok underflow errno-erange-ok += sin upward ldbl-96-m68k -0x4p-16448L : -0x0p+0L : inexact-ok underflow errno-erange-ok += sin downward ldbl-128 -0x4p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok += sin tonearest ldbl-128 -0x4p-16448L : -0x4p-16448L : inexact-ok underflow errno-erange-ok += sin towardzero ldbl-128 -0x4p-16448L : -0x3.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok += sin upward ldbl-128 -0x4p-16448L : -0x3.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok += sin downward ldbl-128 -0x4p-16496L : -0x4p-16496L : inexact-ok underflow errno-erange-ok += sin tonearest ldbl-128 -0x4p-16496L : -0x4p-16496L : inexact-ok underflow errno-erange-ok += sin towardzero ldbl-128 -0x4p-16496L : -0x0p+0L : inexact-ok underflow errno-erange-ok += sin upward ldbl-128 -0x4p-16496L : -0x0p+0L : inexact-ok underflow errno-erange-ok sincos 0 = sincos downward flt-32 0x0p+0f : 0x0p+0f 0x1p+0f : inexact-ok = sincos tonearest flt-32 0x0p+0f : 0x0p+0f 0x1p+0f : inexact-ok @@ -183142,6 +183458,322 @@ sincos 0x4.7857dp+68 = sincos tonearest ldbl-128ibm 0x4.7857dp+68L : -0x1.ffb679ba994b76173f9040638p-4L -0xf.dfe902135fc1c18492e869a3f8p-4L : inexact-ok = sincos towardzero ldbl-128ibm 0x4.7857dp+68L : -0x1.ffb679ba994b76173f9040637f8p-4L -0xf.dfe902135fc1c18492e869a3f8p-4L : inexact-ok = sincos upward ldbl-128ibm 0x4.7857dp+68L : -0x1.ffb679ba994b76173f9040637f8p-4L -0xf.dfe902135fc1c18492e869a3f8p-4L : inexact-ok +sincos min += sincos downward flt-32 0x4p-128f : 0x3.fffff8p-128f 0xf.fffffp-4f : inexact-ok underflow-ok errno-erange-ok += sincos tonearest flt-32 0x4p-128f : 0x4p-128f 0x1p+0f : inexact-ok underflow-ok errno-erange-ok += sincos towardzero flt-32 0x4p-128f : 0x3.fffff8p-128f 0xf.fffffp-4f : inexact-ok underflow-ok errno-erange-ok += sincos upward flt-32 0x4p-128f : 0x4p-128f 0x1p+0f : inexact-ok underflow-ok errno-erange-ok += sincos downward dbl-64 0x4p-128 : 0x3.ffffffffffffep-128 0xf.ffffffffffff8p-4 : inexact-ok += sincos tonearest dbl-64 0x4p-128 : 0x4p-128 0x1p+0 : inexact-ok += sincos towardzero dbl-64 0x4p-128 : 0x3.ffffffffffffep-128 0xf.ffffffffffff8p-4 : inexact-ok += sincos upward dbl-64 0x4p-128 : 0x4p-128 0x1p+0 : inexact-ok += sincos downward ldbl-96-intel 0x4p-128L : 0x3.fffffffffffffffcp-128L 0xf.fffffffffffffffp-4L : inexact-ok += sincos tonearest ldbl-96-intel 0x4p-128L : 0x4p-128L 0x1p+0L : inexact-ok += sincos towardzero ldbl-96-intel 0x4p-128L : 0x3.fffffffffffffffcp-128L 0xf.fffffffffffffffp-4L : inexact-ok += sincos upward ldbl-96-intel 0x4p-128L : 0x4p-128L 0x1p+0L : inexact-ok += sincos downward ldbl-96-m68k 0x4p-128L : 0x3.fffffffffffffffcp-128L 0xf.fffffffffffffffp-4L : inexact-ok += sincos tonearest ldbl-96-m68k 0x4p-128L : 0x4p-128L 0x1p+0L : inexact-ok += sincos towardzero ldbl-96-m68k 0x4p-128L : 0x3.fffffffffffffffcp-128L 0xf.fffffffffffffffp-4L : inexact-ok += sincos upward ldbl-96-m68k 0x4p-128L : 0x4p-128L 0x1p+0L : inexact-ok += sincos downward ldbl-128 0x4p-128L : 0x3.fffffffffffffffffffffffffffep-128L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += sincos tonearest ldbl-128 0x4p-128L : 0x4p-128L 0x1p+0L : inexact-ok += sincos towardzero ldbl-128 0x4p-128L : 0x3.fffffffffffffffffffffffffffep-128L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += sincos upward ldbl-128 0x4p-128L : 0x4p-128L 0x1p+0L : inexact-ok += sincos downward ldbl-128ibm 0x4p-128L : 0x3.ffffffffffffffffffffffffffp-128L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok += sincos tonearest ldbl-128ibm 0x4p-128L : 0x4p-128L 0x1p+0L : inexact-ok += sincos towardzero ldbl-128ibm 0x4p-128L : 0x3.ffffffffffffffffffffffffffp-128L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok += sincos upward ldbl-128ibm 0x4p-128L : 0x4p-128L 0x1p+0L : inexact-ok += sincos downward dbl-64 0x4p-1024 : 0x3.ffffffffffffcp-1024 0xf.ffffffffffff8p-4 : inexact-ok underflow-ok errno-erange-ok += sincos tonearest dbl-64 0x4p-1024 : 0x4p-1024 0x1p+0 : inexact-ok underflow-ok errno-erange-ok += sincos towardzero dbl-64 0x4p-1024 : 0x3.ffffffffffffcp-1024 0xf.ffffffffffff8p-4 : inexact-ok underflow-ok errno-erange-ok += sincos upward dbl-64 0x4p-1024 : 0x4p-1024 0x1p+0 : inexact-ok underflow-ok errno-erange-ok += sincos downward ldbl-96-intel 0x4p-1024L : 0x3.fffffffffffffffcp-1024L 0xf.fffffffffffffffp-4L : inexact-ok += sincos tonearest ldbl-96-intel 0x4p-1024L : 0x4p-1024L 0x1p+0L : inexact-ok += sincos towardzero ldbl-96-intel 0x4p-1024L : 0x3.fffffffffffffffcp-1024L 0xf.fffffffffffffffp-4L : inexact-ok += sincos upward ldbl-96-intel 0x4p-1024L : 0x4p-1024L 0x1p+0L : inexact-ok += sincos downward ldbl-96-m68k 0x4p-1024L : 0x3.fffffffffffffffcp-1024L 0xf.fffffffffffffffp-4L : inexact-ok += sincos tonearest ldbl-96-m68k 0x4p-1024L : 0x4p-1024L 0x1p+0L : inexact-ok += sincos towardzero ldbl-96-m68k 0x4p-1024L : 0x3.fffffffffffffffcp-1024L 0xf.fffffffffffffffp-4L : inexact-ok += sincos upward ldbl-96-m68k 0x4p-1024L : 0x4p-1024L 0x1p+0L : inexact-ok += sincos downward ldbl-128 0x4p-1024L : 0x3.fffffffffffffffffffffffffffep-1024L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += sincos tonearest ldbl-128 0x4p-1024L : 0x4p-1024L 0x1p+0L : inexact-ok += sincos towardzero ldbl-128 0x4p-1024L : 0x3.fffffffffffffffffffffffffffep-1024L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += sincos upward ldbl-128 0x4p-1024L : 0x4p-1024L 0x1p+0L : inexact-ok += sincos downward ldbl-128ibm 0x4p-1024L : 0x3.ffffffffffffcp-1024L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow errno-erange-ok += sincos tonearest ldbl-128ibm 0x4p-1024L : 0x4p-1024L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos towardzero ldbl-128ibm 0x4p-1024L : 0x3.ffffffffffffcp-1024L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow errno-erange-ok += sincos upward ldbl-128ibm 0x4p-1024L : 0x4p-1024L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos downward ldbl-96-intel 0x4p-16384L : 0x3.fffffffffffffff8p-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow-ok errno-erange-ok += sincos tonearest ldbl-96-intel 0x4p-16384L : 0x4p-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok += sincos towardzero ldbl-96-intel 0x4p-16384L : 0x3.fffffffffffffff8p-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow-ok errno-erange-ok += sincos upward ldbl-96-intel 0x4p-16384L : 0x4p-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok += sincos downward ldbl-96-m68k 0x4p-16384L : 0x3.fffffffffffffffcp-16384L 0xf.fffffffffffffffp-4L : inexact-ok += sincos tonearest ldbl-96-m68k 0x4p-16384L : 0x4p-16384L 0x1p+0L : inexact-ok += sincos towardzero ldbl-96-m68k 0x4p-16384L : 0x3.fffffffffffffffcp-16384L 0xf.fffffffffffffffp-4L : inexact-ok += sincos upward ldbl-96-m68k 0x4p-16384L : 0x4p-16384L 0x1p+0L : inexact-ok += sincos downward ldbl-128 0x4p-16384L : 0x3.fffffffffffffffffffffffffffcp-16384L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow-ok errno-erange-ok += sincos tonearest ldbl-128 0x4p-16384L : 0x4p-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok += sincos towardzero ldbl-128 0x4p-16384L : 0x3.fffffffffffffffffffffffffffcp-16384L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow-ok errno-erange-ok += sincos upward ldbl-128 0x4p-16384L : 0x4p-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok += sincos downward ldbl-96-intel 0x2p-16384L : 0x1.fffffffffffffff8p-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok += sincos tonearest ldbl-96-intel 0x2p-16384L : 0x2p-16384L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos towardzero ldbl-96-intel 0x2p-16384L : 0x1.fffffffffffffff8p-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok += sincos upward ldbl-96-intel 0x2p-16384L : 0x2p-16384L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos downward ldbl-96-m68k 0x2p-16384L : 0x1.fffffffffffffffcp-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow-ok errno-erange-ok += sincos tonearest ldbl-96-m68k 0x2p-16384L : 0x2p-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok += sincos towardzero ldbl-96-m68k 0x2p-16384L : 0x1.fffffffffffffffcp-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow-ok errno-erange-ok += sincos upward ldbl-96-m68k 0x2p-16384L : 0x2p-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok += sincos downward ldbl-128 0x2p-16384L : 0x1.fffffffffffffffffffffffffffcp-16384L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok += sincos tonearest ldbl-128 0x2p-16384L : 0x2p-16384L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos towardzero ldbl-128 0x2p-16384L : 0x1.fffffffffffffffffffffffffffcp-16384L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok += sincos upward ldbl-128 0x2p-16384L : 0x2p-16384L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos downward dbl-64 0x8p-972 : 0x7.ffffffffffffcp-972 0xf.ffffffffffff8p-4 : inexact-ok += sincos tonearest dbl-64 0x8p-972 : 0x8p-972 0x1p+0 : inexact-ok += sincos towardzero dbl-64 0x8p-972 : 0x7.ffffffffffffcp-972 0xf.ffffffffffff8p-4 : inexact-ok += sincos upward dbl-64 0x8p-972 : 0x8p-972 0x1p+0 : inexact-ok += sincos downward ldbl-96-intel 0x8p-972L : 0x7.fffffffffffffff8p-972L 0xf.fffffffffffffffp-4L : inexact-ok += sincos tonearest ldbl-96-intel 0x8p-972L : 0x8p-972L 0x1p+0L : inexact-ok += sincos towardzero ldbl-96-intel 0x8p-972L : 0x7.fffffffffffffff8p-972L 0xf.fffffffffffffffp-4L : inexact-ok += sincos upward ldbl-96-intel 0x8p-972L : 0x8p-972L 0x1p+0L : inexact-ok += sincos downward ldbl-96-m68k 0x8p-972L : 0x7.fffffffffffffff8p-972L 0xf.fffffffffffffffp-4L : inexact-ok += sincos tonearest ldbl-96-m68k 0x8p-972L : 0x8p-972L 0x1p+0L : inexact-ok += sincos towardzero ldbl-96-m68k 0x8p-972L : 0x7.fffffffffffffff8p-972L 0xf.fffffffffffffffp-4L : inexact-ok += sincos upward ldbl-96-m68k 0x8p-972L : 0x8p-972L 0x1p+0L : inexact-ok += sincos downward ldbl-128 0x8p-972L : 0x7.fffffffffffffffffffffffffffcp-972L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += sincos tonearest ldbl-128 0x8p-972L : 0x8p-972L 0x1p+0L : inexact-ok += sincos towardzero ldbl-128 0x8p-972L : 0x7.fffffffffffffffffffffffffffcp-972L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += sincos upward ldbl-128 0x8p-972L : 0x8p-972L 0x1p+0L : inexact-ok += sincos downward ldbl-128ibm 0x8p-972L : 0x7.fffffffffffffffffffffffffcp-972L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow-ok errno-erange-ok += sincos tonearest ldbl-128ibm 0x8p-972L : 0x8p-972L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok += sincos towardzero ldbl-128ibm 0x8p-972L : 0x7.fffffffffffffffffffffffffcp-972L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow-ok errno-erange-ok += sincos upward ldbl-128ibm 0x8p-972L : 0x8p-972L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok +sincos -min += sincos downward flt-32 -0x4p-128f : -0x4p-128f 0xf.fffffp-4f : inexact-ok underflow-ok errno-erange-ok += sincos tonearest flt-32 -0x4p-128f : -0x4p-128f 0x1p+0f : inexact-ok underflow-ok errno-erange-ok += sincos towardzero flt-32 -0x4p-128f : -0x3.fffff8p-128f 0xf.fffffp-4f : inexact-ok underflow-ok errno-erange-ok += sincos upward flt-32 -0x4p-128f : -0x3.fffff8p-128f 0x1p+0f : inexact-ok underflow-ok errno-erange-ok += sincos downward dbl-64 -0x4p-128 : -0x4p-128 0xf.ffffffffffff8p-4 : inexact-ok += sincos tonearest dbl-64 -0x4p-128 : -0x4p-128 0x1p+0 : inexact-ok += sincos towardzero dbl-64 -0x4p-128 : -0x3.ffffffffffffep-128 0xf.ffffffffffff8p-4 : inexact-ok += sincos upward dbl-64 -0x4p-128 : -0x3.ffffffffffffep-128 0x1p+0 : inexact-ok += sincos downward ldbl-96-intel -0x4p-128L : -0x4p-128L 0xf.fffffffffffffffp-4L : inexact-ok += sincos tonearest ldbl-96-intel -0x4p-128L : -0x4p-128L 0x1p+0L : inexact-ok += sincos towardzero ldbl-96-intel -0x4p-128L : -0x3.fffffffffffffffcp-128L 0xf.fffffffffffffffp-4L : inexact-ok += sincos upward ldbl-96-intel -0x4p-128L : -0x3.fffffffffffffffcp-128L 0x1p+0L : inexact-ok += sincos downward ldbl-96-m68k -0x4p-128L : -0x4p-128L 0xf.fffffffffffffffp-4L : inexact-ok += sincos tonearest ldbl-96-m68k -0x4p-128L : -0x4p-128L 0x1p+0L : inexact-ok += sincos towardzero ldbl-96-m68k -0x4p-128L : -0x3.fffffffffffffffcp-128L 0xf.fffffffffffffffp-4L : inexact-ok += sincos upward ldbl-96-m68k -0x4p-128L : -0x3.fffffffffffffffcp-128L 0x1p+0L : inexact-ok += sincos downward ldbl-128 -0x4p-128L : -0x4p-128L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += sincos tonearest ldbl-128 -0x4p-128L : -0x4p-128L 0x1p+0L : inexact-ok += sincos towardzero ldbl-128 -0x4p-128L : -0x3.fffffffffffffffffffffffffffep-128L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += sincos upward ldbl-128 -0x4p-128L : -0x3.fffffffffffffffffffffffffffep-128L 0x1p+0L : inexact-ok += sincos downward ldbl-128ibm -0x4p-128L : -0x4p-128L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok += sincos tonearest ldbl-128ibm -0x4p-128L : -0x4p-128L 0x1p+0L : inexact-ok += sincos towardzero ldbl-128ibm -0x4p-128L : -0x3.ffffffffffffffffffffffffffp-128L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok += sincos upward ldbl-128ibm -0x4p-128L : -0x3.ffffffffffffffffffffffffffp-128L 0x1p+0L : inexact-ok += sincos downward dbl-64 -0x4p-1024 : -0x4p-1024 0xf.ffffffffffff8p-4 : inexact-ok underflow-ok errno-erange-ok += sincos tonearest dbl-64 -0x4p-1024 : -0x4p-1024 0x1p+0 : inexact-ok underflow-ok errno-erange-ok += sincos towardzero dbl-64 -0x4p-1024 : -0x3.ffffffffffffcp-1024 0xf.ffffffffffff8p-4 : inexact-ok underflow-ok errno-erange-ok += sincos upward dbl-64 -0x4p-1024 : -0x3.ffffffffffffcp-1024 0x1p+0 : inexact-ok underflow-ok errno-erange-ok += sincos downward ldbl-96-intel -0x4p-1024L : -0x4p-1024L 0xf.fffffffffffffffp-4L : inexact-ok += sincos tonearest ldbl-96-intel -0x4p-1024L : -0x4p-1024L 0x1p+0L : inexact-ok += sincos towardzero ldbl-96-intel -0x4p-1024L : -0x3.fffffffffffffffcp-1024L 0xf.fffffffffffffffp-4L : inexact-ok += sincos upward ldbl-96-intel -0x4p-1024L : -0x3.fffffffffffffffcp-1024L 0x1p+0L : inexact-ok += sincos downward ldbl-96-m68k -0x4p-1024L : -0x4p-1024L 0xf.fffffffffffffffp-4L : inexact-ok += sincos tonearest ldbl-96-m68k -0x4p-1024L : -0x4p-1024L 0x1p+0L : inexact-ok += sincos towardzero ldbl-96-m68k -0x4p-1024L : -0x3.fffffffffffffffcp-1024L 0xf.fffffffffffffffp-4L : inexact-ok += sincos upward ldbl-96-m68k -0x4p-1024L : -0x3.fffffffffffffffcp-1024L 0x1p+0L : inexact-ok += sincos downward ldbl-128 -0x4p-1024L : -0x4p-1024L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += sincos tonearest ldbl-128 -0x4p-1024L : -0x4p-1024L 0x1p+0L : inexact-ok += sincos towardzero ldbl-128 -0x4p-1024L : -0x3.fffffffffffffffffffffffffffep-1024L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += sincos upward ldbl-128 -0x4p-1024L : -0x3.fffffffffffffffffffffffffffep-1024L 0x1p+0L : inexact-ok += sincos downward ldbl-128ibm -0x4p-1024L : -0x4p-1024L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow errno-erange-ok += sincos tonearest ldbl-128ibm -0x4p-1024L : -0x4p-1024L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos towardzero ldbl-128ibm -0x4p-1024L : -0x3.ffffffffffffcp-1024L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow errno-erange-ok += sincos upward ldbl-128ibm -0x4p-1024L : -0x3.ffffffffffffcp-1024L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos downward ldbl-96-intel -0x4p-16384L : -0x4p-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow-ok errno-erange-ok += sincos tonearest ldbl-96-intel -0x4p-16384L : -0x4p-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok += sincos towardzero ldbl-96-intel -0x4p-16384L : -0x3.fffffffffffffff8p-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow-ok errno-erange-ok += sincos upward ldbl-96-intel -0x4p-16384L : -0x3.fffffffffffffff8p-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok += sincos downward ldbl-96-m68k -0x4p-16384L : -0x4p-16384L 0xf.fffffffffffffffp-4L : inexact-ok += sincos tonearest ldbl-96-m68k -0x4p-16384L : -0x4p-16384L 0x1p+0L : inexact-ok += sincos towardzero ldbl-96-m68k -0x4p-16384L : -0x3.fffffffffffffffcp-16384L 0xf.fffffffffffffffp-4L : inexact-ok += sincos upward ldbl-96-m68k -0x4p-16384L : -0x3.fffffffffffffffcp-16384L 0x1p+0L : inexact-ok += sincos downward ldbl-128 -0x4p-16384L : -0x4p-16384L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow-ok errno-erange-ok += sincos tonearest ldbl-128 -0x4p-16384L : -0x4p-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok += sincos towardzero ldbl-128 -0x4p-16384L : -0x3.fffffffffffffffffffffffffffcp-16384L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow-ok errno-erange-ok += sincos upward ldbl-128 -0x4p-16384L : -0x3.fffffffffffffffffffffffffffcp-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok += sincos downward ldbl-96-intel -0x2p-16384L : -0x2p-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok += sincos tonearest ldbl-96-intel -0x2p-16384L : -0x2p-16384L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos towardzero ldbl-96-intel -0x2p-16384L : -0x1.fffffffffffffff8p-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok += sincos upward ldbl-96-intel -0x2p-16384L : -0x1.fffffffffffffff8p-16384L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos downward ldbl-96-m68k -0x2p-16384L : -0x2p-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow-ok errno-erange-ok += sincos tonearest ldbl-96-m68k -0x2p-16384L : -0x2p-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok += sincos towardzero ldbl-96-m68k -0x2p-16384L : -0x1.fffffffffffffffcp-16384L 0xf.fffffffffffffffp-4L : inexact-ok underflow-ok errno-erange-ok += sincos upward ldbl-96-m68k -0x2p-16384L : -0x1.fffffffffffffffcp-16384L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok += sincos downward ldbl-128 -0x2p-16384L : -0x2p-16384L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok += sincos tonearest ldbl-128 -0x2p-16384L : -0x2p-16384L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos towardzero ldbl-128 -0x2p-16384L : -0x1.fffffffffffffffffffffffffffcp-16384L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok += sincos upward ldbl-128 -0x2p-16384L : -0x1.fffffffffffffffffffffffffffcp-16384L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos downward dbl-64 -0x8p-972 : -0x8p-972 0xf.ffffffffffff8p-4 : inexact-ok += sincos tonearest dbl-64 -0x8p-972 : -0x8p-972 0x1p+0 : inexact-ok += sincos towardzero dbl-64 -0x8p-972 : -0x7.ffffffffffffcp-972 0xf.ffffffffffff8p-4 : inexact-ok += sincos upward dbl-64 -0x8p-972 : -0x7.ffffffffffffcp-972 0x1p+0 : inexact-ok += sincos downward ldbl-96-intel -0x8p-972L : -0x8p-972L 0xf.fffffffffffffffp-4L : inexact-ok += sincos tonearest ldbl-96-intel -0x8p-972L : -0x8p-972L 0x1p+0L : inexact-ok += sincos towardzero ldbl-96-intel -0x8p-972L : -0x7.fffffffffffffff8p-972L 0xf.fffffffffffffffp-4L : inexact-ok += sincos upward ldbl-96-intel -0x8p-972L : -0x7.fffffffffffffff8p-972L 0x1p+0L : inexact-ok += sincos downward ldbl-96-m68k -0x8p-972L : -0x8p-972L 0xf.fffffffffffffffp-4L : inexact-ok += sincos tonearest ldbl-96-m68k -0x8p-972L : -0x8p-972L 0x1p+0L : inexact-ok += sincos towardzero ldbl-96-m68k -0x8p-972L : -0x7.fffffffffffffff8p-972L 0xf.fffffffffffffffp-4L : inexact-ok += sincos upward ldbl-96-m68k -0x8p-972L : -0x7.fffffffffffffff8p-972L 0x1p+0L : inexact-ok += sincos downward ldbl-128 -0x8p-972L : -0x8p-972L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += sincos tonearest ldbl-128 -0x8p-972L : -0x8p-972L 0x1p+0L : inexact-ok += sincos towardzero ldbl-128 -0x8p-972L : -0x7.fffffffffffffffffffffffffffcp-972L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += sincos upward ldbl-128 -0x8p-972L : -0x7.fffffffffffffffffffffffffffcp-972L 0x1p+0L : inexact-ok += sincos downward ldbl-128ibm -0x8p-972L : -0x8p-972L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow-ok errno-erange-ok += sincos tonearest ldbl-128ibm -0x8p-972L : -0x8p-972L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok += sincos towardzero ldbl-128ibm -0x8p-972L : -0x7.fffffffffffffffffffffffffcp-972L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow-ok errno-erange-ok += sincos upward ldbl-128ibm -0x8p-972L : -0x7.fffffffffffffffffffffffffcp-972L 0x1p+0L : inexact-ok underflow-ok errno-erange-ok +sincos min_subnorm += sincos downward flt-32 0x8p-152f : 0x0p+0f 0xf.fffffp-4f : inexact-ok underflow errno-erange-ok += sincos tonearest flt-32 0x8p-152f : 0x8p-152f 0x1p+0f : inexact-ok underflow errno-erange-ok += sincos towardzero flt-32 0x8p-152f : 0x0p+0f 0xf.fffffp-4f : inexact-ok underflow errno-erange-ok += sincos upward flt-32 0x8p-152f : 0x8p-152f 0x1p+0f : inexact-ok underflow errno-erange-ok += sincos downward dbl-64 0x8p-152 : 0x7.ffffffffffffcp-152 0xf.ffffffffffff8p-4 : inexact-ok += sincos tonearest dbl-64 0x8p-152 : 0x8p-152 0x1p+0 : inexact-ok += sincos towardzero dbl-64 0x8p-152 : 0x7.ffffffffffffcp-152 0xf.ffffffffffff8p-4 : inexact-ok += sincos upward dbl-64 0x8p-152 : 0x8p-152 0x1p+0 : inexact-ok += sincos downward ldbl-96-intel 0x8p-152L : 0x7.fffffffffffffff8p-152L 0xf.fffffffffffffffp-4L : inexact-ok += sincos tonearest ldbl-96-intel 0x8p-152L : 0x8p-152L 0x1p+0L : inexact-ok += sincos towardzero ldbl-96-intel 0x8p-152L : 0x7.fffffffffffffff8p-152L 0xf.fffffffffffffffp-4L : inexact-ok += sincos upward ldbl-96-intel 0x8p-152L : 0x8p-152L 0x1p+0L : inexact-ok += sincos downward ldbl-96-m68k 0x8p-152L : 0x7.fffffffffffffff8p-152L 0xf.fffffffffffffffp-4L : inexact-ok += sincos tonearest ldbl-96-m68k 0x8p-152L : 0x8p-152L 0x1p+0L : inexact-ok += sincos towardzero ldbl-96-m68k 0x8p-152L : 0x7.fffffffffffffff8p-152L 0xf.fffffffffffffffp-4L : inexact-ok += sincos upward ldbl-96-m68k 0x8p-152L : 0x8p-152L 0x1p+0L : inexact-ok += sincos downward ldbl-128 0x8p-152L : 0x7.fffffffffffffffffffffffffffcp-152L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += sincos tonearest ldbl-128 0x8p-152L : 0x8p-152L 0x1p+0L : inexact-ok += sincos towardzero ldbl-128 0x8p-152L : 0x7.fffffffffffffffffffffffffffcp-152L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += sincos upward ldbl-128 0x8p-152L : 0x8p-152L 0x1p+0L : inexact-ok += sincos downward ldbl-128ibm 0x8p-152L : 0x7.fffffffffffffffffffffffffep-152L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok += sincos tonearest ldbl-128ibm 0x8p-152L : 0x8p-152L 0x1p+0L : inexact-ok += sincos towardzero ldbl-128ibm 0x8p-152L : 0x7.fffffffffffffffffffffffffep-152L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok += sincos upward ldbl-128ibm 0x8p-152L : 0x8p-152L 0x1p+0L : inexact-ok += sincos downward dbl-64 0x4p-1076 : 0x0p+0 0xf.ffffffffffff8p-4 : inexact-ok underflow errno-erange-ok += sincos tonearest dbl-64 0x4p-1076 : 0x4p-1076 0x1p+0 : inexact-ok underflow errno-erange-ok += sincos towardzero dbl-64 0x4p-1076 : 0x0p+0 0xf.ffffffffffff8p-4 : inexact-ok underflow errno-erange-ok += sincos upward dbl-64 0x4p-1076 : 0x4p-1076 0x1p+0 : inexact-ok underflow errno-erange-ok += sincos downward ldbl-96-intel 0x4p-1076L : 0x3.fffffffffffffffcp-1076L 0xf.fffffffffffffffp-4L : inexact-ok += sincos tonearest ldbl-96-intel 0x4p-1076L : 0x4p-1076L 0x1p+0L : inexact-ok += sincos towardzero ldbl-96-intel 0x4p-1076L : 0x3.fffffffffffffffcp-1076L 0xf.fffffffffffffffp-4L : inexact-ok += sincos upward ldbl-96-intel 0x4p-1076L : 0x4p-1076L 0x1p+0L : inexact-ok += sincos downward ldbl-96-m68k 0x4p-1076L : 0x3.fffffffffffffffcp-1076L 0xf.fffffffffffffffp-4L : inexact-ok += sincos tonearest ldbl-96-m68k 0x4p-1076L : 0x4p-1076L 0x1p+0L : inexact-ok += sincos towardzero ldbl-96-m68k 0x4p-1076L : 0x3.fffffffffffffffcp-1076L 0xf.fffffffffffffffp-4L : inexact-ok += sincos upward ldbl-96-m68k 0x4p-1076L : 0x4p-1076L 0x1p+0L : inexact-ok += sincos downward ldbl-128 0x4p-1076L : 0x3.fffffffffffffffffffffffffffep-1076L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += sincos tonearest ldbl-128 0x4p-1076L : 0x4p-1076L 0x1p+0L : inexact-ok += sincos towardzero ldbl-128 0x4p-1076L : 0x3.fffffffffffffffffffffffffffep-1076L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += sincos upward ldbl-128 0x4p-1076L : 0x4p-1076L 0x1p+0L : inexact-ok += sincos downward ldbl-128ibm 0x4p-1076L : 0x0p+0L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow errno-erange-ok += sincos tonearest ldbl-128ibm 0x4p-1076L : 0x4p-1076L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos towardzero ldbl-128ibm 0x4p-1076L : 0x0p+0L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow errno-erange-ok += sincos upward ldbl-128ibm 0x4p-1076L : 0x4p-1076L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos downward ldbl-96-intel 0x8p-16448L : 0x0p+0L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok += sincos tonearest ldbl-96-intel 0x8p-16448L : 0x8p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos towardzero ldbl-96-intel 0x8p-16448L : 0x0p+0L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok += sincos upward ldbl-96-intel 0x8p-16448L : 0x8p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos downward ldbl-96-m68k 0x8p-16448L : 0x4p-16448L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok += sincos tonearest ldbl-96-m68k 0x8p-16448L : 0x8p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos towardzero ldbl-96-m68k 0x8p-16448L : 0x4p-16448L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok += sincos upward ldbl-96-m68k 0x8p-16448L : 0x8p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos downward ldbl-128 0x8p-16448L : 0x7.fffffffffffcp-16448L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok += sincos tonearest ldbl-128 0x8p-16448L : 0x8p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos towardzero ldbl-128 0x8p-16448L : 0x7.fffffffffffcp-16448L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok += sincos upward ldbl-128 0x8p-16448L : 0x8p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos downward ldbl-96-m68k 0x4p-16448L : 0x0p+0L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok += sincos tonearest ldbl-96-m68k 0x4p-16448L : 0x4p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos towardzero ldbl-96-m68k 0x4p-16448L : 0x0p+0L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok += sincos upward ldbl-96-m68k 0x4p-16448L : 0x4p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos downward ldbl-128 0x4p-16448L : 0x3.fffffffffffcp-16448L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok += sincos tonearest ldbl-128 0x4p-16448L : 0x4p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos towardzero ldbl-128 0x4p-16448L : 0x3.fffffffffffcp-16448L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok += sincos upward ldbl-128 0x4p-16448L : 0x4p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos downward ldbl-128 0x4p-16496L : 0x0p+0L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok += sincos tonearest ldbl-128 0x4p-16496L : 0x4p-16496L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos towardzero ldbl-128 0x4p-16496L : 0x0p+0L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok += sincos upward ldbl-128 0x4p-16496L : 0x4p-16496L 0x1p+0L : inexact-ok underflow errno-erange-ok +sincos -min_subnorm += sincos downward flt-32 -0x8p-152f : -0x8p-152f 0xf.fffffp-4f : inexact-ok underflow errno-erange-ok += sincos tonearest flt-32 -0x8p-152f : -0x8p-152f 0x1p+0f : inexact-ok underflow errno-erange-ok += sincos towardzero flt-32 -0x8p-152f : -0x0p+0f 0xf.fffffp-4f : inexact-ok underflow errno-erange-ok += sincos upward flt-32 -0x8p-152f : -0x0p+0f 0x1p+0f : inexact-ok underflow errno-erange-ok += sincos downward dbl-64 -0x8p-152 : -0x8p-152 0xf.ffffffffffff8p-4 : inexact-ok += sincos tonearest dbl-64 -0x8p-152 : -0x8p-152 0x1p+0 : inexact-ok += sincos towardzero dbl-64 -0x8p-152 : -0x7.ffffffffffffcp-152 0xf.ffffffffffff8p-4 : inexact-ok += sincos upward dbl-64 -0x8p-152 : -0x7.ffffffffffffcp-152 0x1p+0 : inexact-ok += sincos downward ldbl-96-intel -0x8p-152L : -0x8p-152L 0xf.fffffffffffffffp-4L : inexact-ok += sincos tonearest ldbl-96-intel -0x8p-152L : -0x8p-152L 0x1p+0L : inexact-ok += sincos towardzero ldbl-96-intel -0x8p-152L : -0x7.fffffffffffffff8p-152L 0xf.fffffffffffffffp-4L : inexact-ok += sincos upward ldbl-96-intel -0x8p-152L : -0x7.fffffffffffffff8p-152L 0x1p+0L : inexact-ok += sincos downward ldbl-96-m68k -0x8p-152L : -0x8p-152L 0xf.fffffffffffffffp-4L : inexact-ok += sincos tonearest ldbl-96-m68k -0x8p-152L : -0x8p-152L 0x1p+0L : inexact-ok += sincos towardzero ldbl-96-m68k -0x8p-152L : -0x7.fffffffffffffff8p-152L 0xf.fffffffffffffffp-4L : inexact-ok += sincos upward ldbl-96-m68k -0x8p-152L : -0x7.fffffffffffffff8p-152L 0x1p+0L : inexact-ok += sincos downward ldbl-128 -0x8p-152L : -0x8p-152L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += sincos tonearest ldbl-128 -0x8p-152L : -0x8p-152L 0x1p+0L : inexact-ok += sincos towardzero ldbl-128 -0x8p-152L : -0x7.fffffffffffffffffffffffffffcp-152L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += sincos upward ldbl-128 -0x8p-152L : -0x7.fffffffffffffffffffffffffffcp-152L 0x1p+0L : inexact-ok += sincos downward ldbl-128ibm -0x8p-152L : -0x8p-152L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok += sincos tonearest ldbl-128ibm -0x8p-152L : -0x8p-152L 0x1p+0L : inexact-ok += sincos towardzero ldbl-128ibm -0x8p-152L : -0x7.fffffffffffffffffffffffffep-152L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok += sincos upward ldbl-128ibm -0x8p-152L : -0x7.fffffffffffffffffffffffffep-152L 0x1p+0L : inexact-ok += sincos downward dbl-64 -0x4p-1076 : -0x4p-1076 0xf.ffffffffffff8p-4 : inexact-ok underflow errno-erange-ok += sincos tonearest dbl-64 -0x4p-1076 : -0x4p-1076 0x1p+0 : inexact-ok underflow errno-erange-ok += sincos towardzero dbl-64 -0x4p-1076 : -0x0p+0 0xf.ffffffffffff8p-4 : inexact-ok underflow errno-erange-ok += sincos upward dbl-64 -0x4p-1076 : -0x0p+0 0x1p+0 : inexact-ok underflow errno-erange-ok += sincos downward ldbl-96-intel -0x4p-1076L : -0x4p-1076L 0xf.fffffffffffffffp-4L : inexact-ok += sincos tonearest ldbl-96-intel -0x4p-1076L : -0x4p-1076L 0x1p+0L : inexact-ok += sincos towardzero ldbl-96-intel -0x4p-1076L : -0x3.fffffffffffffffcp-1076L 0xf.fffffffffffffffp-4L : inexact-ok += sincos upward ldbl-96-intel -0x4p-1076L : -0x3.fffffffffffffffcp-1076L 0x1p+0L : inexact-ok += sincos downward ldbl-96-m68k -0x4p-1076L : -0x4p-1076L 0xf.fffffffffffffffp-4L : inexact-ok += sincos tonearest ldbl-96-m68k -0x4p-1076L : -0x4p-1076L 0x1p+0L : inexact-ok += sincos towardzero ldbl-96-m68k -0x4p-1076L : -0x3.fffffffffffffffcp-1076L 0xf.fffffffffffffffp-4L : inexact-ok += sincos upward ldbl-96-m68k -0x4p-1076L : -0x3.fffffffffffffffcp-1076L 0x1p+0L : inexact-ok += sincos downward ldbl-128 -0x4p-1076L : -0x4p-1076L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += sincos tonearest ldbl-128 -0x4p-1076L : -0x4p-1076L 0x1p+0L : inexact-ok += sincos towardzero ldbl-128 -0x4p-1076L : -0x3.fffffffffffffffffffffffffffep-1076L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok += sincos upward ldbl-128 -0x4p-1076L : -0x3.fffffffffffffffffffffffffffep-1076L 0x1p+0L : inexact-ok += sincos downward ldbl-128ibm -0x4p-1076L : -0x4p-1076L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow errno-erange-ok += sincos tonearest ldbl-128ibm -0x4p-1076L : -0x4p-1076L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos towardzero ldbl-128ibm -0x4p-1076L : -0x0p+0L 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok underflow errno-erange-ok += sincos upward ldbl-128ibm -0x4p-1076L : -0x0p+0L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos downward ldbl-96-intel -0x8p-16448L : -0x8p-16448L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok += sincos tonearest ldbl-96-intel -0x8p-16448L : -0x8p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos towardzero ldbl-96-intel -0x8p-16448L : -0x0p+0L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok += sincos upward ldbl-96-intel -0x8p-16448L : -0x0p+0L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos downward ldbl-96-m68k -0x8p-16448L : -0x8p-16448L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok += sincos tonearest ldbl-96-m68k -0x8p-16448L : -0x8p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos towardzero ldbl-96-m68k -0x8p-16448L : -0x4p-16448L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok += sincos upward ldbl-96-m68k -0x8p-16448L : -0x4p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos downward ldbl-128 -0x8p-16448L : -0x8p-16448L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok += sincos tonearest ldbl-128 -0x8p-16448L : -0x8p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos towardzero ldbl-128 -0x8p-16448L : -0x7.fffffffffffcp-16448L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok += sincos upward ldbl-128 -0x8p-16448L : -0x7.fffffffffffcp-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos downward ldbl-96-m68k -0x4p-16448L : -0x4p-16448L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok += sincos tonearest ldbl-96-m68k -0x4p-16448L : -0x4p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos towardzero ldbl-96-m68k -0x4p-16448L : -0x0p+0L 0xf.fffffffffffffffp-4L : inexact-ok underflow errno-erange-ok += sincos upward ldbl-96-m68k -0x4p-16448L : -0x0p+0L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos downward ldbl-128 -0x4p-16448L : -0x4p-16448L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok += sincos tonearest ldbl-128 -0x4p-16448L : -0x4p-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos towardzero ldbl-128 -0x4p-16448L : -0x3.fffffffffffcp-16448L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok += sincos upward ldbl-128 -0x4p-16448L : -0x3.fffffffffffcp-16448L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos downward ldbl-128 -0x4p-16496L : -0x4p-16496L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok += sincos tonearest ldbl-128 -0x4p-16496L : -0x4p-16496L 0x1p+0L : inexact-ok underflow errno-erange-ok += sincos towardzero ldbl-128 -0x4p-16496L : -0x0p+0L 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok underflow errno-erange-ok += sincos upward ldbl-128 -0x4p-16496L : -0x0p+0L 0x1p+0L : inexact-ok underflow errno-erange-ok sinh 0 = sinh downward flt-32 0x0p+0f : 0x0p+0f : inexact-ok = sinh tonearest flt-32 0x0p+0f : 0x0p+0f : inexact-ok diff --git a/sysdeps/ieee754/dbl-64/s_sin.c b/sysdeps/ieee754/dbl-64/s_sin.c index ea89ad5..eff120e 100644 --- a/sysdeps/ieee754/dbl-64/s_sin.c +++ b/sysdeps/ieee754/dbl-64/s_sin.c @@ -48,6 +48,7 @@ #include <errno.h> +#include <float.h> #include "endian.h" #include "mydefs.h" #include "usncs.h" @@ -295,7 +296,14 @@ __sin (double x) m = u.i[HIGH_HALF]; k = 0x7fffffff & m; /* no sign */ if (k < 0x3e500000) /* if x->0 =>sin(x)=x */ - retval = x; + { + if (fabs (x) < DBL_MIN) + { + double force_underflow = x * x; + math_force_eval (force_underflow); + } + retval = x; + } /*---------------------------- 2^-26 < |x|< 0.25 ----------------------*/ else if (k < 0x3fd00000) { diff --git a/sysdeps/ieee754/flt-32/k_sinf.c b/sysdeps/ieee754/flt-32/k_sinf.c index 0bafd83..0c98a2a 100644 --- a/sysdeps/ieee754/flt-32/k_sinf.c +++ b/sysdeps/ieee754/flt-32/k_sinf.c @@ -17,6 +17,7 @@ static char rcsid[] = "$NetBSD: k_sinf.c,v 1.4 1995/05/10 20:46:33 jtc Exp $"; #endif +#include <float.h> #include <math.h> #include <math_private.h> @@ -36,7 +37,15 @@ float __kernel_sinf(float x, float y, int iy) GET_FLOAT_WORD(ix,x); ix &= 0x7fffffff; /* high word of x */ if(ix<0x32000000) /* |x| < 2**-27 */ - {if((int)x==0) return x;} /* generate inexact */ + { + if (fabsf (x) < FLT_MIN) + { + float force_underflow = x * x; + math_force_eval (force_underflow); + } + if ((int) x == 0) + return x; /* generate inexact */ + } z = x*x; v = z*x; r = S2+z*(S3+z*(S4+z*(S5+z*S6))); diff --git a/sysdeps/ieee754/ldbl-128/k_sincosl.c b/sysdeps/ieee754/ldbl-128/k_sincosl.c index 2f66dee..7b5c4b0 100644 --- a/sysdeps/ieee754/ldbl-128/k_sincosl.c +++ b/sysdeps/ieee754/ldbl-128/k_sincosl.c @@ -17,6 +17,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <float.h> #include <math.h> #include <math_private.h> @@ -109,12 +110,19 @@ __kernel_sincosl(long double x, long double y, long double *sinx, long double *c /* Argument is small enough to approximate it by a Chebyshev polynomial of degree 16(17). */ if (tix < 0x3fc60000) /* |x| < 2^-57 */ - if (!((int)x)) /* generate inexact */ - { - *sinx = x; - *cosx = ONE; - return; - } + { + if (fabsl (x) < LDBL_MIN) + { + long double force_underflow = x * x; + math_force_eval (force_underflow); + } + if (!((int)x)) /* generate inexact */ + { + *sinx = x; + *cosx = ONE; + return; + } + } z = x * x; *sinx = x + (x * (z*(SIN1+z*(SIN2+z*(SIN3+z*(SIN4+ z*(SIN5+z*(SIN6+z*(SIN7+z*SIN8))))))))); diff --git a/sysdeps/ieee754/ldbl-128/k_sinl.c b/sysdeps/ieee754/ldbl-128/k_sinl.c index b15521b..04d539f 100644 --- a/sysdeps/ieee754/ldbl-128/k_sinl.c +++ b/sysdeps/ieee754/ldbl-128/k_sinl.c @@ -17,6 +17,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <float.h> #include <math.h> #include <math_private.h> @@ -90,7 +91,14 @@ __kernel_sinl(long double x, long double y, int iy) /* Argument is small enough to approximate it by a Chebyshev polynomial of degree 17. */ if (tix < 0x3fc60000) /* |x| < 2^-57 */ - if (!((int)x)) return x; /* generate inexact */ + { + if (fabsl (x) < LDBL_MIN) + { + long double force_underflow = x * x; + math_force_eval (force_underflow); + } + if (!((int)x)) return x; /* generate inexact */ + } z = x * x; return x + (x * (z*(SIN1+z*(SIN2+z*(SIN3+z*(SIN4+ z*(SIN5+z*(SIN6+z*(SIN7+z*SIN8))))))))); diff --git a/sysdeps/ieee754/ldbl-128ibm/k_sincosl.c b/sysdeps/ieee754/ldbl-128ibm/k_sincosl.c index f831e3f..0a76e1c 100644 --- a/sysdeps/ieee754/ldbl-128ibm/k_sincosl.c +++ b/sysdeps/ieee754/ldbl-128ibm/k_sincosl.c @@ -17,6 +17,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <float.h> #include <math.h> #include <math_private.h> @@ -112,12 +113,19 @@ __kernel_sincosl(long double x, long double y, long double *sinx, long double *c /* Argument is small enough to approximate it by a Chebyshev polynomial of degree 16(17). */ if (tix < 0x3c600000) /* |x| < 2^-57 */ - if (!((int)x)) /* generate inexact */ - { - *sinx = x; - *cosx = ONE; - return; - } + { + if (fabsl (x) < LDBL_MIN) + { + long double force_underflow = x * x; + math_force_eval (force_underflow); + } + if (!((int)x)) /* generate inexact */ + { + *sinx = x; + *cosx = ONE; + return; + } + } z = x * x; *sinx = x + (x * (z*(SIN1+z*(SIN2+z*(SIN3+z*(SIN4+ z*(SIN5+z*(SIN6+z*(SIN7+z*SIN8))))))))); diff --git a/sysdeps/ieee754/ldbl-128ibm/k_sinl.c b/sysdeps/ieee754/ldbl-128ibm/k_sinl.c index d6602fe..2050cd2 100644 --- a/sysdeps/ieee754/ldbl-128ibm/k_sinl.c +++ b/sysdeps/ieee754/ldbl-128ibm/k_sinl.c @@ -17,6 +17,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <float.h> #include <math.h> #include <math_private.h> @@ -93,7 +94,14 @@ __kernel_sinl(long double x, long double y, int iy) /* Argument is small enough to approximate it by a Chebyshev polynomial of degree 17. */ if (tix < 0x3c600000) /* |x| < 2^-57 */ - if (!((int)x)) return x; /* generate inexact */ + { + if (fabsl (x) < LDBL_MIN) + { + long double force_underflow = x * x; + math_force_eval (force_underflow); + } + if (!((int)x)) return x; /* generate inexact */ + } z = x * x; return x + (x * (z*(SIN1+z*(SIN2+z*(SIN3+z*(SIN4+ z*(SIN5+z*(SIN6+z*(SIN7+z*SIN8))))))))); diff --git a/sysdeps/ieee754/ldbl-96/k_sinl.c b/sysdeps/ieee754/ldbl-96/k_sinl.c index 179262a..b7b5ae3 100644 --- a/sysdeps/ieee754/ldbl-96/k_sinl.c +++ b/sysdeps/ieee754/ldbl-96/k_sinl.c @@ -20,6 +20,7 @@ /* The polynomials have not been optimized for extended-precision and may contain more terms than needed. */ +#include <float.h> #include <math.h> #include <math_private.h> @@ -94,7 +95,14 @@ __kernel_sinl(long double x, long double y, int iy) /* Argument is small enough to approximate it by a Chebyshev polynomial of degree 17. */ if (absx < 0x1p-33L) - if (!((int)x)) return x; /* generate inexact */ + { + if (fabsl (x) < LDBL_MIN) + { + long double force_underflow = x * x; + math_force_eval (force_underflow); + } + if (!((int)x)) return x; /* generate inexact */ + } z = x * x; return x + (x * (z*(SIN1+z*(SIN2+z*(SIN3+z*(SIN4+ z*(SIN5+z*(SIN6+z*(SIN7+z*SIN8))))))))); diff --git a/sysdeps/powerpc/fpu/k_sinf.c b/sysdeps/powerpc/fpu/k_sinf.c index 64df0c9..e2850df 100644 --- a/sysdeps/powerpc/fpu/k_sinf.c +++ b/sysdeps/powerpc/fpu/k_sinf.c @@ -17,6 +17,7 @@ License along with the GNU C Library; see the file COPYING.LIB. If not, see <http://www.gnu.org/licenses/>. */ +#include <float.h> #include <math.h> #include <fenv.h> #include <math_private.h> @@ -40,7 +41,10 @@ __kernel_sinf (float x, float y, int iy) ix = __builtin_fabsf (x); if (ix < twom27) { /* |x| < 2**-27 */ - __feraiseexcept (FE_INEXACT); + if (ix < FLT_MIN && ix != 0.0f) + __feraiseexcept (FE_UNDERFLOW|FE_INEXACT); + else + __feraiseexcept (FE_INEXACT); return x; } z = x * x; |