]> sourceware.org Git - glibc.git/commitdiff
Fix sin, sincos missing underflows (bug 16526, bug 16538).
authorJoseph Myers <joseph@codesourcery.com>
Tue, 23 Jun 2015 22:24:20 +0000 (22:24 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Tue, 23 Jun 2015 22:24:20 +0000 (22:24 +0000)
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.

12 files changed:
ChangeLog
NEWS
math/auto-libm-test-in
math/auto-libm-test-out
sysdeps/ieee754/dbl-64/s_sin.c
sysdeps/ieee754/flt-32/k_sinf.c
sysdeps/ieee754/ldbl-128/k_sincosl.c
sysdeps/ieee754/ldbl-128/k_sinl.c
sysdeps/ieee754/ldbl-128ibm/k_sincosl.c
sysdeps/ieee754/ldbl-128ibm/k_sinl.c
sysdeps/ieee754/ldbl-96/k_sinl.c
sysdeps/powerpc/fpu/k_sinf.c

index 2f07bc101b8e1299795e36a66c5a4acc4a6234d2..53766d829d7b23f1acbb06e10ee15d5c97797051 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>.
diff --git a/NEWS b/NEWS
index da4ed7e1fc92eda2891900ac8ec4fe9ba79b7866..aacd894c82a09e5ec9d16e00982a0c750bbce077 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -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.
index d1502ad107a64acfa0b386ec1c6984dba24196f2..654558348049cf25b398c4c8d5da92ddfdcda518 100644 (file)
@@ -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
index 89a4ffc6b216ea7b89bf3076028b76584eb9a15d..f3672dbc4658f10ced97d712635ca9d6e0179840 100644 (file)
@@ -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
index ea89ad5cb2f881c8815c991e947d153467a27d5f..eff120e88d34e8120e1f0a8e33c8e98276c3cee8 100644 (file)
@@ -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)
     {
index 0bafd83cf0480cca1a002bfeafeb2e389f6a8514..0c98a2ae91d756e047cb00fcbfad87680ce8cc60 100644 (file)
@@ -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)));
index 2f66dee6d87c5aa502f926527dbff789c5e317da..7b5c4b0e812135106603a0a44cea40cadc5d4027 100644 (file)
@@ -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)))))))));
index b15521badfe589e6a313916e26e463d8a6fe0b2b..04d539ff1abe5acf89d7bc4c39921142beebd241 100644 (file)
@@ -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)))))))));
index f831e3f1f380abc21eb5b5f3284e549e4cf1d966..0a76e1c7e79614285f5950c2efd2d5296f315f2e 100644 (file)
@@ -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)))))))));
index d6602fe36514bb48620d27b11a30007a9c39a958..2050cd2b497d495dea49cc5fd40fc876ec4194cb 100644 (file)
@@ -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)))))))));
index 179262a735e073879c480e487e5f4b924febe2bd..b7b5ae359db721cfeba2b10b81a8f648dd8c0841 100644 (file)
@@ -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)))))))));
index 64df0c91429808272cfe629bb1263804c52a0929..e2850dfc2c9e9fe1274ad784afe86091118324e4 100644 (file)
@@ -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;
This page took 0.54465 seconds and 5 git commands to generate.