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.
This commit is contained in:
Joseph Myers 2015-06-23 22:24:20 +00:00
parent 8b1bab5ffa
commit ad39cce0da
12 changed files with 762 additions and 32 deletions

View File

@ -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>.

28
NEWS
View File

@ -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.

View 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

View 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

View 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)
{

View 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)));

View 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)))))))));

View 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)))))))));

View 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)))))))));

View 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)))))))));

View 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)))))))));

View 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;