This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Add more libm-test coverage of [a-c]* real functions
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>
- Date: Fri, 20 Dec 2013 18:50:19 +0000
- Subject: Add more libm-test coverage of [a-c]* real functions
- Authentication-results: sourceware.org; auth=none
Various libm functions have inadequate test coverage in libm-test.inc
/ auto-libm-test-in - failing to cover all the usual special cases
(infinities, NaNs, zero, large and small finite values, subnormals) as
well as a reasonable range of ordinary inputs and, where appropriate,
inputs close to the thresholds for underflow and overflow.
This patch improves test coverage for real functions [a-c]* (with the
expectation of adding more coverage for other functions later).
Tested x86_64 and x86 and ulps updated accordingly (and eight glibc
bugs and one C11 DR filed for issues found in the process).
(auto-libm-test-out diffs omitted below.)
2013-12-20 Joseph Myers <joseph@codesourcery.com>
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cbrt, cos and cosh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acosh_test_data): Add more tests.
(atanh_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 947b2af..532b17e 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -33,9 +33,17 @@ acos 0x0.ffffffffffffp0
acos -0x0.ffffffffffffp0
acos 0x0.ffffffffffffffffp0
acos -0x0.ffffffffffffffffp0
+acos min
+acos -min
+acos min_subnorm
+acos -min_subnorm
acosh 1
+acosh 1.625
acosh 7
+acosh 100
+acosh 1e5
+acosh max no-test-inline
asin 0
asin -0
@@ -52,10 +60,27 @@ asin 0x0.ffffffffffffp0
asin -0x0.ffffffffffffp0
asin 0x0.ffffffffffffffffp0
asin -0x0.ffffffffffffffffp0
+# Bug 16351: underflow exception may be missing.
+asin min missing-underflow
+asin -min missing-underflow
+asin min_subnorm missing-underflow
+asin -min_subnorm missing-underflow
asinh 0
asinh -0
asinh 0.75
+asinh 1
+asinh 10
+asinh 100
+asinh 1e6
+asinh 0x1p100
+# Bug 16350: underflow exception may be missing.
+asinh min missing-underflow
+asinh -min missing-underflow
+asinh min_subnorm missing-underflow
+asinh -min_subnorm missing-underflow
+asinh max no-test-inline
+asinh -max no-test-inline
atan 0
atan -0
@@ -64,10 +89,18 @@ atan -max
atan 1
atan -1
atan 0.75
+atan 0x1p-5
+atan 2.5
+atan 10
+atan 1e6
# Bug 15319: underflow exception may be missing.
atan 0x1p-100 missing-underflow
atan 0x1p-600 missing-underflow
atan 0x1p-10000 missing-underflow
+atan min missing-underflow
+atan -min missing-underflow
+atan min_subnorm missing-underflow
+atan -min_subnorm missing-underflow
# atan2 (0,x) == 0 for x > 0.
atan2 0 1
@@ -90,8 +123,17 @@ atan2 -1 0
# atan2 (y,-0) == -pi/2 for y < 0.
atan2 -1 -0
atan2 max max
+atan2 max -max
+atan2 -max max
+atan2 -max -max
atan2 max min
atan2 -max -min
+atan2 -max min
+atan2 max -min
+atan2 max min_subnorm
+atan2 -max -min_subnorm
+atan2 -max min_subnorm
+atan2 max -min_subnorm
atan2 0.75 1
atan2 -0.75 1.0
atan2 0.75 -1.0
@@ -100,10 +142,43 @@ atan2 0.390625 .00029
atan2 1.390625 0.9296875
atan2 -0.00756827042671106339 -.001792735857538728036
atan2 0x1.00000000000001p0 0x1.00000000000001p0
+atan2 min min
+atan2 min -min
+atan2 -min min
+atan2 -min -min
+atan2 min_subnorm min_subnorm
+atan2 min_subnorm -min_subnorm
+atan2 -min_subnorm min_subnorm
+atan2 -min_subnorm -min_subnorm
+atan2 1 -max
+atan2 -1 -max
+atan2 min -max
+atan2 -min -max
+atan2 min_subnorm -max
+atan2 -min_subnorm -max
+# Bug 15319: underflow exception may be missing.
+# Bug 16349: errno setting may be missing.
+atan2 1 max missing-underflow
+atan2 -1 max missing-underflow
+atan2 min max missing-underflow missing-errno
+atan2 -min max missing-underflow missing-errno
+atan2 min_subnorm max missing-underflow missing-errno
+atan2 -min_subnorm max missing-underflow missing-errno
atanh 0
atanh -0
atanh 0.75
+atanh -0.75
+atanh 0.25
+atanh 0x1p-5
+atanh 0x1p-10
+atanh 0x1.2345p-20
+# Bug 16352: underflow exception may be missing.
+# Bug 16357: spurious underflow may occur.
+atanh min missing-underflow spurious-underflow:ldbl-96-intel:x86
+atanh -min missing-underflow spurious-underflow:ldbl-96-intel:x86
+atanh min_subnorm missing-underflow
+atanh -min_subnorm missing-underflow
# cabs (x,y) == cabs (y,x).
cabs 0.75 12.390625
@@ -154,6 +229,13 @@ cbrt 0.9921875
cbrt 0.75
cbrt 0x1p16383
cbrt 0x1p-16383
+cbrt 1e5
+cbrt max
+cbrt -max
+cbrt min
+cbrt -min
+cbrt min_subnorm
+cbrt -min_subnorm
ccos 0.0 0.0
ccos -0 0.0
@@ -402,6 +484,12 @@ cos 7
cos 8
cos 9
cos 10
+cos max
+cos -max
+cos min
+cos -min
+cos min_subnorm
+cos -min_subnorm
cosh 0
cosh -0
@@ -411,6 +499,39 @@ cosh -709.8893558127259666434838436543941497802734375
cosh 22
cosh 23
cosh 24
+cosh 0x1p-5
+cosh 0x1p-20
+cosh -1
+cosh 50
+cosh max no-test-inline
+cosh -max no-test-inline
+# Bug 16354: spurious underflow may occur.
+cosh min spurious-underflow
+cosh -min spurious-underflow
+cosh min_subnorm spurious-underflow
+cosh -min_subnorm spurious-underflow
+# Test values either side of overflow for each floating-point format.
+cosh 0x5.96a7ep+4
+cosh 0x5.96a7e8p+4
+cosh -0x5.96a7ep+4
+cosh -0x5.96a7e8p+4
+cosh 0x2.c679d1f73f0fap+8
+cosh 0x2.c679d1f73f0fcp+8
+cosh -0x2.c679d1f73f0fap+8
+cosh -0x2.c679d1f73f0fcp+8
+# Bug 16356: bad results from expl (and so coshl) in round-upward mode.
+cosh 0x2.c679d1f73f0fb624d358b213a7p+8 xfail-rounding:ldbl-96-intel:x86 xfail-rounding:ldbl-96-intel:x86_64
+cosh 0x2.c679d1f73f0fb624d358b213a8p+8 xfail-rounding:ldbl-96-intel:x86 xfail-rounding:ldbl-96-intel:x86_64
+cosh -0x2.c679d1f73f0fb624d358b213a7p+8 xfail-rounding:ldbl-96-intel:x86 xfail-rounding:ldbl-96-intel:x86_64
+cosh -0x2.c679d1f73f0fb624d358b213a8p+8 xfail-rounding:ldbl-96-intel:x86 xfail-rounding:ldbl-96-intel:x86_64
+cosh 0x2.c5d37700c6bb03a4p+12 no-test-inline
+cosh 0x2.c5d37700c6bb03a8p+12 no-test-inline
+cosh -0x2.c5d37700c6bb03a4p+12 no-test-inline
+cosh -0x2.c5d37700c6bb03a8p+12 no-test-inline
+cosh 0x2.c5d37700c6bb03a6c24b6c9b494cp+12 no-test-inline
+cosh 0x2.c5d37700c6bb03a6c24b6c9b494ep+12 no-test-inline
+cosh -0x2.c5d37700c6bb03a6c24b6c9b494cp+12 no-test-inline
+cosh -0x2.c5d37700c6bb03a6c24b6c9b494ep+12 no-test-inline
cpow 1 0 0 0
cpow 2 0 10 0
diff --git a/math/libm-test.inc b/math/libm-test.inc
index abe12db..5235149 100644
--- a/math/libm-test.inc
+++ b/math/libm-test.inc
@@ -1727,6 +1727,13 @@ static const struct test_f_f_data acosh_test_data[] =
TEST_f_f (acosh, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
/* x < 1: */
+ TEST_f_f (acosh, 0.75L, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (acosh, min_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (acosh, min_subnorm_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (acosh, plus_zero, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (acosh, minus_zero, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (acosh, -min_subnorm_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (acosh, -min_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
TEST_f_f (acosh, -1.125L, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
TEST_f_f (acosh, -max_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
@@ -1866,6 +1873,8 @@ static const struct test_f_f_data atanh_test_data[] =
TEST_f_f (atanh, -1.125L, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
TEST_f_f (atanh, max_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
TEST_f_f (atanh, -max_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (atanh, plus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_f (atanh, minus_infty, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
AUTO_TESTS_f_f (atanh, tonearest),
};
@@ -5915,12 +5924,18 @@ static const struct test_f_f_data ceil_test_data[] =
/* Bug 15479: spurious "inexact" exception may occur. */
TEST_f_f (ceil, M_PIl, 4.0),
TEST_f_f (ceil, -M_PIl, -3.0),
+ TEST_f_f (ceil, min_subnorm_value, 1.0),
+ TEST_f_f (ceil, min_value, 1.0),
TEST_f_f (ceil, 0.1, 1.0),
TEST_f_f (ceil, 0.25, 1.0),
TEST_f_f (ceil, 0.625, 1.0),
+ TEST_f_f (ceil, max_value, max_value),
+ TEST_f_f (ceil, -min_subnorm_value, minus_zero),
+ TEST_f_f (ceil, -min_value, minus_zero),
TEST_f_f (ceil, -0.1, minus_zero),
TEST_f_f (ceil, -0.25, minus_zero),
TEST_f_f (ceil, -0.625, minus_zero),
+ TEST_f_f (ceil, -max_value, -max_value),
#ifdef TEST_LDOUBLE
/* The result can only be represented in long double. */
@@ -6403,6 +6418,21 @@ static const struct test_ff_f_data copysign_test_data[] =
TEST_ff_f (copysign, qnan_value, minus_zero, -qnan_value, NO_INEXACT_EXCEPTION|TEST_NAN_SIGN),
TEST_ff_f (copysign, -qnan_value, 0, qnan_value, NO_INEXACT_EXCEPTION|TEST_NAN_SIGN),
TEST_ff_f (copysign, -qnan_value, minus_zero, -qnan_value, NO_INEXACT_EXCEPTION|TEST_NAN_SIGN),
+
+ TEST_ff_f (copysign, min_value, min_subnorm_value, min_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, min_value, -min_subnorm_value, -min_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, -min_value, min_subnorm_value, min_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, -min_value, -min_subnorm_value, -min_value, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (copysign, min_subnorm_value, max_value, min_subnorm_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, min_subnorm_value, -max_value, -min_subnorm_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, -min_subnorm_value, max_value, min_subnorm_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, -min_subnorm_value, -max_value, -min_subnorm_value, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (copysign, max_value, min_value, max_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, max_value, -min_value, -max_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, -max_value, min_value, max_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, -max_value, -min_value, -max_value, NO_INEXACT_EXCEPTION),
};
static void
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
index 50bbe77..dc53d94 100644
--- a/sysdeps/i386/fpu/libm-test-ulps
+++ b/sysdeps/i386/fpu/libm-test-ulps
@@ -121,9 +121,28 @@ ildouble: 1
ldouble: 1
# asin_downward
+Test "asin_downward (-0x4p-1024)":
+double: 1
+idouble: 1
+Test "asin_downward (-0x4p-1076)":
+double: 1
+idouble: 1
+Test "asin_downward (-0x4p-128)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "asin_downward (-0x8p-152)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
Test "asin_downward (-0x8p-4)":
ildouble: 1
ldouble: 1
+Test "asin_downward (-0x8p-972)":
+double: 1
+idouble: 1
Test "asin_downward (-0xf.fffffff8p-4)":
ildouble: 1
ldouble: 1
@@ -159,6 +178,44 @@ double: 1
float: 1
idouble: 1
ifloat: 1
+Test "asin_towardzero (-0x2p-16384)":
+ildouble: 1
+ldouble: 1
+Test "asin_towardzero (-0x4p-1024)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "asin_towardzero (-0x4p-1076)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "asin_towardzero (-0x4p-128)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "asin_towardzero (-0x4p-16384)":
+ildouble: 1
+ldouble: 1
+Test "asin_towardzero (-0x8p-152)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "asin_towardzero (-0x8p-16448)":
+ildouble: 1
+ldouble: 1
+Test "asin_towardzero (-0x8p-972)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
Test "asin_towardzero (-1.0)":
float: 1
ifloat: 1
@@ -181,6 +238,34 @@ double: 1
float: 1
idouble: 1
ifloat: 1
+Test "asin_upward (-0x2p-16384)":
+ildouble: 1
+ldouble: 1
+Test "asin_upward (-0x4p-1024)":
+ildouble: 1
+ldouble: 1
+Test "asin_upward (-0x4p-1076)":
+ildouble: 1
+ldouble: 1
+Test "asin_upward (-0x4p-128)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "asin_upward (-0x4p-16384)":
+ildouble: 1
+ldouble: 1
+Test "asin_upward (-0x8p-152)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "asin_upward (-0x8p-16448)":
+ildouble: 1
+ldouble: 1
+Test "asin_upward (-0x8p-972)":
+ildouble: 1
+ldouble: 1
Test "asin_upward (-0xf.fffffff8p-4)":
ildouble: 1
ldouble: 1
@@ -201,13 +286,58 @@ float: 1
ifloat: 1
ildouble: 1
ldouble: 1
+Test "asin_upward (0x2p-16384)":
+ildouble: 1
+ldouble: 1
+Test "asin_upward (0x4p-1024)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "asin_upward (0x4p-1076)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "asin_upward (0x4p-128)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "asin_upward (0x4p-16384)":
+ildouble: 1
+ldouble: 1
+Test "asin_upward (0x8p-152)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "asin_upward (0x8p-16448)":
+ildouble: 1
+ldouble: 1
Test "asin_upward (0x8p-4)":
ildouble: 1
ldouble: 1
+Test "asin_upward (0x8p-972)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
Test "asin_upward (1.0)":
double: 1
idouble: 1
+# asinh
+Test "asinh (0x1p+100)":
+ldouble: 1
+Test "asinh (0xf.424p+16)":
+ildouble: 1
+ldouble: 1
+
# atan2
Test "atan2 (-0x1.effe81f852716ffep-8, -0x7.57d1de0e5124664p-12)":
ildouble: 1
@@ -217,9 +347,18 @@ ildouble: 1
ldouble: 1
# atanh
+Test "atanh (-0xcp-4)":
+ildouble: 2
+ldouble: 1
Test "atanh (0.75)":
ildouble: 2
ldouble: 1
+Test "atanh (0x4p-12)":
+ildouble: 1
+Test "atanh (0x4p-4)":
+ldouble: 1
+Test "atanh (0x8p-8)":
+ildouble: 1
Test "atanh (0xcp-4)":
ildouble: 2
ldouble: 1
@@ -4206,15 +4345,26 @@ ldouble: 1
Test "cbrt (-0x4.18937p-12)":
ildouble: 1
ldouble: 1
+Test "cbrt (-0xf.fffffffffffffffp+16380)":
+ildouble: 1
+ldouble: 1
Test "cbrt (-27.0)":
ildouble: 1
ldouble: 1
Test "cbrt (0.75)":
ildouble: 1
ldouble: 1
+Test "cbrt (0x1.86ap+16)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
Test "cbrt (0xcp-4)":
ildouble: 1
ldouble: 1
+Test "cbrt (0xf.fffffffffffffffp+16380)":
+ildouble: 1
+ldouble: 1
# ccos
Test "Real part of: ccos (-0.75 + 710.5 i)":
@@ -6274,6 +6424,48 @@ idouble: 2
ifloat: 1
# cos_downward
+Test "cos_downward (-0x2p-16384)":
+ildouble: 1
+ldouble: 1
+Test "cos_downward (-0x4p-1024)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_downward (-0x4p-1076)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_downward (-0x4p-128)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_downward (-0x4p-16384)":
+ildouble: 1
+ldouble: 1
+Test "cos_downward (-0x8p-152)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_downward (-0x8p-16448)":
+ildouble: 1
+ldouble: 1
+Test "cos_downward (-0x8p-972)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_downward (-0xf.ffffffffffff8p+1020)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_downward (-0xf.fffffp+124)":
+double: 1
+idouble: 1
Test "cos_downward (0x1.000000cf4a2a2p+0)":
double: 1
idouble: 1
@@ -6367,6 +6559,9 @@ idouble: 1
Test "cos_downward (0x2p+0)":
ildouble: 1
ldouble: 1
+Test "cos_downward (0x2p-16384)":
+ildouble: 1
+ldouble: 1
Test "cos_downward (0x3p+0)":
double: 1
idouble: 1
@@ -6378,12 +6573,43 @@ ldouble: 1
Test "cos_downward (0x4p+48)":
double: 1
idouble: 1
+Test "cos_downward (0x4p-1024)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_downward (0x4p-1076)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_downward (0x4p-128)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_downward (0x4p-16384)":
+ildouble: 1
+ldouble: 1
Test "cos_downward (0x8p+0)":
ildouble: 2
ldouble: 2
Test "cos_downward (0x8p+1020)":
ildouble: 1
ldouble: 1
+Test "cos_downward (0x8p-152)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_downward (0x8p-16448)":
+ildouble: 1
+ldouble: 1
+Test "cos_downward (0x8p-972)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
Test "cos_downward (0x9p+0)":
double: 1
idouble: 1
@@ -6416,6 +6642,9 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
+Test "cos_downward (0xf.fffffffffffffffp+16380)":
+ildouble: 1
+ldouble: 1
Test "cos_downward (0xf.fffffp+124)":
double: 1
idouble: 1
@@ -6457,6 +6686,43 @@ ildouble: 1
ldouble: 1
# cos_towardzero
+Test "cos_towardzero (-0x2p-16384)":
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (-0x4p-1024)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (-0x4p-1076)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (-0x4p-128)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (-0x4p-16384)":
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (-0x8p-152)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (-0x8p-16448)":
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (-0x8p-972)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (-0xf.fffffp+124)":
+double: 1
+idouble: 1
Test "cos_towardzero (0x1.000000cf4a2a2p+0)":
double: 1
idouble: 1
@@ -6516,12 +6782,33 @@ idouble: 1
Test "cos_towardzero (0x2p+0)":
double: 1
idouble: 1
+Test "cos_towardzero (0x2p-16384)":
+ildouble: 1
+ldouble: 1
Test "cos_towardzero (0x4p+0)":
double: 1
idouble: 1
Test "cos_towardzero (0x4p+48)":
double: 1
idouble: 1
+Test "cos_towardzero (0x4p-1024)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (0x4p-1076)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (0x4p-128)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (0x4p-16384)":
+ildouble: 1
+ldouble: 1
Test "cos_towardzero (0x8p+0)":
double: 1
idouble: 1
@@ -6530,6 +6817,19 @@ ldouble: 1
Test "cos_towardzero (0x8p+1020)":
double: 1
idouble: 1
+Test "cos_towardzero (0x8p-152)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (0x8p-16448)":
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (0x8p-972)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
Test "cos_towardzero (0xa.217bap+12)":
ildouble: 1
ldouble: 1
@@ -6584,6 +6884,12 @@ ldouble: 1
Test "cos_upward (-0x2p+64)":
double: 1
idouble: 1
+Test "cos_upward (-0xf.ffffffffffff8p+1020)":
+ildouble: 1
+ldouble: 1
+Test "cos_upward (-0xf.fffffffffffffffp+16380)":
+ildouble: 1
+ldouble: 1
Test "cos_upward (0x1.000004p+0)":
double: 1
idouble: 1
@@ -6714,6 +7020,9 @@ idouble: 1
Test "cos_upward (0xf.ffffffffffff8p+1020)":
ildouble: 1
ldouble: 1
+Test "cos_upward (0xf.fffffffffffffffp+16380)":
+ildouble: 2
+ldouble: 2
Test "cos_upward (1)":
float: 1
ifloat: 1
@@ -6744,21 +7053,72 @@ ildouble: 1
ldouble: 1
# cosh
+Test "cosh (-0x1p+0)":
+ldouble: 1
+Test "cosh (-0x2.c5d374p+12)":
+ldouble: 2
+Test "cosh (-0x2.c5d37700c6bbp+12)":
+ldouble: 1
Test "cosh (-0x2.c5e3acp+8)":
ildouble: 1
Test "cosh (-0x2.c5e3bp+8)":
ildouble: 1
+Test "cosh (-0x2.c679d1f73f0fap+8)":
+ildouble: 1
+Test "cosh (-0x2.c679d1f73f0fb624p+8)":
+ildouble: 1
+Test "cosh (-0x2.c679d1f73f0fb628p+8)":
+ildouble: 1
+Test "cosh (-0x2.c679d1f73f0fcp+8)":
+ildouble: 1
+Test "cosh (-0x2.c679dp+8)":
+ildouble: 1
Test "cosh (0x1.6p+4)":
ldouble: 1
+Test "cosh (0x2.c5d374p+12)":
+ldouble: 2
+Test "cosh (0x2.c5d37700c6bbp+12)":
+ldouble: 1
# cosh_downward
+Test "cosh_downward (-0x1p+0)":
+ldouble: 1
+Test "cosh_downward (-0x2.c5d374p+12)":
+ldouble: 1
+Test "cosh_downward (-0x2.c5d37700c6bb03a4p+12)":
+ldouble: 3
+Test "cosh_downward (-0x2.c5d37700c6bbp+12)":
+ldouble: 2
Test "cosh_downward (-0x2.c5e3acd2922a6p+8)":
ildouble: 1
Test "cosh_downward (-0x2.c5e3bp+8)":
ildouble: 1
+Test "cosh_downward (-0x2.c679d1f73f0fap+8)":
+ildouble: 2
+Test "cosh_downward (-0x2.c679d1f73f0fcp+8)":
+ildouble: 1
+Test "cosh_downward (-0x2.c679dp+8)":
+double: 1
+ildouble: 1
+Test "cosh_downward (-0x5.96a7ep+4)":
+double: 1
+ildouble: 2
+ldouble: 1
Test "cosh_downward (0x1.6p+4)":
ildouble: 1
ldouble: 2
+Test "cosh_downward (0x2.c5d374p+12)":
+ldouble: 1
+Test "cosh_downward (0x2.c5d37700c6bb03a4p+12)":
+ldouble: 3
+Test "cosh_downward (0x2.c5d37700c6bbp+12)":
+ldouble: 2
+Test "cosh_downward (0x2.c679dp+8)":
+double: 1
+Test "cosh_downward (0x5.96a7ep+4)":
+double: 1
+ildouble: 1
+ldouble: 1
Test "cosh_downward (22)":
double: 1
float: 1
@@ -6780,21 +7140,68 @@ ildouble: 1
ldouble: 1
# cosh_tonearest
+Test "cosh_tonearest (-0x1p+0)":
+ldouble: 1
+Test "cosh_tonearest (-0x2.c5d374p+12)":
+ldouble: 2
+Test "cosh_tonearest (-0x2.c5d37700c6bbp+12)":
+ldouble: 1
Test "cosh_tonearest (-0x2.c5e3acp+8)":
ildouble: 1
Test "cosh_tonearest (-0x2.c5e3bp+8)":
ildouble: 1
+Test "cosh_tonearest (-0x2.c679d1f73f0fap+8)":
+ildouble: 1
+Test "cosh_tonearest (-0x2.c679d1f73f0fb624p+8)":
+ildouble: 1
+Test "cosh_tonearest (-0x2.c679d1f73f0fb628p+8)":
+ildouble: 1
+Test "cosh_tonearest (-0x2.c679d1f73f0fcp+8)":
+ildouble: 1
+Test "cosh_tonearest (-0x2.c679dp+8)":
+ildouble: 1
Test "cosh_tonearest (0x1.6p+4)":
ldouble: 1
+Test "cosh_tonearest (0x2.c5d374p+12)":
+ldouble: 2
+Test "cosh_tonearest (0x2.c5d37700c6bbp+12)":
+ldouble: 1
Test "cosh_tonearest (22)":
ldouble: 1
# cosh_towardzero
+Test "cosh_towardzero (-0x1p+0)":
+ildouble: 1
+ldouble: 1
+Test "cosh_towardzero (-0x2.c5d374p+12)":
+ldouble: 1
+Test "cosh_towardzero (-0x2.c5d37700c6bb03a4p+12)":
+ldouble: 3
+Test "cosh_towardzero (-0x2.c5d37700c6bbp+12)":
+ldouble: 2
Test "cosh_towardzero (-0x2.c5e3acd2922a6p+8)":
ildouble: 1
+Test "cosh_towardzero (-0x2.c679dp+8)":
+double: 1
+ildouble: 1
+Test "cosh_towardzero (-0x5.96a7ep+4)":
+double: 1
+ldouble: 1
Test "cosh_towardzero (0x1.6p+4)":
ildouble: 1
ldouble: 2
+Test "cosh_towardzero (0x2.c5d374p+12)":
+ldouble: 1
+Test "cosh_towardzero (0x2.c5d37700c6bb03a4p+12)":
+ldouble: 3
+Test "cosh_towardzero (0x2.c5d37700c6bbp+12)":
+ldouble: 2
+Test "cosh_towardzero (0x2.c679dp+8)":
+double: 1
+Test "cosh_towardzero (0x5.96a7ep+4)":
+double: 1
+ildouble: 1
+ldouble: 1
Test "cosh_towardzero (22)":
double: 1
float: 1
@@ -6816,6 +7223,12 @@ ildouble: 1
ldouble: 1
# cosh_upward
+Test "cosh_upward (-0x2.c5d374p+12)":
+ldouble: 2
+Test "cosh_upward (-0x2.c5d37700c6bb03a4p+12)":
+ldouble: 3
+Test "cosh_upward (-0x2.c5d37700c6bbp+12)":
+ldouble: 3
Test "cosh_upward (-0x2.c5e3acd2922a6p+8)":
double: 1
ildouble: 1
@@ -6824,6 +7237,36 @@ Test "cosh_upward (-0x2.c5e3acp+8)":
ildouble: 1
Test "cosh_upward (-0x2.c5e3bp+8)":
ildouble: 1
+Test "cosh_upward (-0x2.c679d1f73f0fap+8)":
+double: 1
+ildouble: 1
+Test "cosh_upward (-0x2.c679d1f73f0fcp+8)":
+ildouble: 1
+Test "cosh_upward (-0x2p-16384)":
+ildouble: 1
+Test "cosh_upward (-0x4p-1024)":
+idouble: 1
+ildouble: 1
+Test "cosh_upward (-0x4p-1076)":
+idouble: 1
+ildouble: 1
+Test "cosh_upward (-0x4p-128)":
+idouble: 1
+ifloat: 1
+ildouble: 1
+Test "cosh_upward (-0x4p-16384)":
+ildouble: 1
+Test "cosh_upward (-0x5.96a7ep+4)":
+ildouble: 1
+Test "cosh_upward (-0x8p-152)":
+idouble: 1
+ifloat: 1
+ildouble: 1
+Test "cosh_upward (-0x8p-16448)":
+ildouble: 1
+Test "cosh_upward (-0x8p-972)":
+idouble: 1
+ildouble: 1
Test "cosh_upward (0x1.6p+4)":
ildouble: 1
ldouble: 1
@@ -6832,6 +7275,12 @@ ildouble: 2
ldouble: 1
Test "cosh_upward (0x1.8p+4)":
ildouble: 1
+Test "cosh_upward (0x2.c5d374p+12)":
+ldouble: 2
+Test "cosh_upward (0x2.c5d37700c6bb03a4p+12)":
+ldouble: 3
+Test "cosh_upward (0x2.c5d37700c6bbp+12)":
+ldouble: 3
Test "cosh_upward (0x2.c5e3acd2922a6p+8)":
double: 1
ildouble: 2
@@ -6840,6 +7289,21 @@ Test "cosh_upward (0x2.c5e3acp+8)":
ildouble: 1
Test "cosh_upward (0x2.c5e3bp+8)":
ildouble: 1
+Test "cosh_upward (0x2.c679d1f73f0fap+8)":
+double: 1
+ildouble: 1
+Test "cosh_upward (0x2.c679d1f73f0fcp+8)":
+ildouble: 1
+Test "cosh_upward (0x2.c679d4p+8)":
+ildouble: 1
+Test "cosh_upward (0x2.c679dp+8)":
+ildouble: 1
+Test "cosh_upward (0x3.2p+4)":
+ildouble: 1
+Test "cosh_upward (0x5.96a7e8p+4)":
+ildouble: 1
+Test "cosh_upward (0x5.96a7ep+4)":
+ildouble: 1
Test "cosh_upward (22)":
ildouble: 2
ldouble: 1
@@ -13805,6 +14269,10 @@ ifloat: 1
ildouble: 1
ldouble: 1
+Function: "asinh":
+ildouble: 1
+ldouble: 1
+
Function: "atan2":
ildouble: 1
ldouble: 1
@@ -13894,6 +14362,8 @@ ildouble: 1
ldouble: 1
Function: "cbrt":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
@@ -14011,19 +14481,19 @@ ldouble: 2
Function: "cosh":
ildouble: 1
-ldouble: 1
+ldouble: 2
Function: "cosh_downward":
double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 1
-ldouble: 2
+ildouble: 2
+ldouble: 3
Function: "cosh_tonearest":
ildouble: 1
-ldouble: 1
+ldouble: 2
Function: "cosh_towardzero":
double: 1
@@ -14031,13 +14501,14 @@ float: 1
idouble: 1
ifloat: 1
ildouble: 1
-ldouble: 2
+ldouble: 3
Function: "cosh_upward":
double: 1
idouble: 1
+ifloat: 1
ildouble: 2
-ldouble: 1
+ldouble: 3
Function: Real part of "cpow":
double: 2
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index 6ff7008..6404c74 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -112,6 +112,21 @@ ldouble: 1
Test "acos_upward (-0x1p+0)":
double: 1
idouble: 1
+Test "acos_upward (-0x4p-1024)":
+double: 1
+idouble: 1
+Test "acos_upward (-0x4p-1076)":
+double: 1
+idouble: 1
+Test "acos_upward (-0x4p-128)":
+double: 1
+idouble: 1
+Test "acos_upward (-0x8p-152)":
+double: 1
+idouble: 1
+Test "acos_upward (-0x8p-972)":
+double: 1
+idouble: 1
Test "acos_upward (0.5)":
ildouble: 1
ldouble: 1
@@ -127,6 +142,21 @@ idouble: 1
Test "acos_upward (0x1.70ef56p-56)":
double: 1
idouble: 1
+Test "acos_upward (0x4p-1024)":
+double: 1
+idouble: 1
+Test "acos_upward (0x4p-1076)":
+double: 1
+idouble: 1
+Test "acos_upward (0x4p-128)":
+double: 1
+idouble: 1
+Test "acos_upward (0x8p-152)":
+double: 1
+idouble: 1
+Test "acos_upward (0x8p-972)":
+double: 1
+idouble: 1
Test "acos_upward (0xcp-4)":
ildouble: 1
ldouble: 1
@@ -134,6 +164,14 @@ Test "acos_upward (0xf.fffffffffffffffp-4)":
ildouble: 1
ldouble: 1
+# acosh
+Test "acosh (0x6.4p+4)":
+double: 1
+idouble: 1
+Test "acosh (0xf.ffffffffffff8p+1020)":
+double: 1
+idouble: 1
+
# asin_downward
Test "asin_downward (-0.5)":
double: 1
@@ -187,9 +225,47 @@ ldouble: 1
Test "asin_towardzero (-0.5)":
double: 1
idouble: 1
+Test "asin_towardzero (-0x2p-16384)":
+ildouble: 1
+ldouble: 1
+Test "asin_towardzero (-0x4p-1024)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "asin_towardzero (-0x4p-1076)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "asin_towardzero (-0x4p-128)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "asin_towardzero (-0x4p-16384)":
+ildouble: 1
+ldouble: 1
+Test "asin_towardzero (-0x8p-152)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "asin_towardzero (-0x8p-16448)":
+ildouble: 1
+ldouble: 1
Test "asin_towardzero (-0x8p-4)":
float: 1
ifloat: 1
+Test "asin_towardzero (-0x8p-972)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
Test "asin_towardzero (-1.0)":
float: 1
ifloat: 1
@@ -208,11 +284,49 @@ ildouble: 1
ldouble: 1
# asin_upward
+Test "asin_upward (-0x2p-16384)":
+ildouble: 1
+ldouble: 1
+Test "asin_upward (-0x4p-1024)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "asin_upward (-0x4p-1076)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "asin_upward (-0x4p-128)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "asin_upward (-0x4p-16384)":
+ildouble: 1
+ldouble: 1
+Test "asin_upward (-0x8p-152)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "asin_upward (-0x8p-16448)":
+ildouble: 1
+ldouble: 1
Test "asin_upward (-0x8p-4)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "asin_upward (-0x8p-972)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
Test "asin_upward (-0xf.fffffff8p-4)":
double: 1
idouble: 1
@@ -246,9 +360,64 @@ ldouble: 1
Test "asin_upward (0x1p+0)":
double: 1
idouble: 1
+Test "asin_upward (0x2p-16384)":
+ildouble: 1
+ldouble: 1
+Test "asin_upward (0x4p-1024)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "asin_upward (0x4p-1076)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "asin_upward (0x4p-128)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "asin_upward (0x4p-16384)":
+ildouble: 1
+ldouble: 1
+Test "asin_upward (0x8p-152)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "asin_upward (0x8p-16448)":
+ildouble: 1
+ldouble: 1
Test "asin_upward (0x8p-4)":
ildouble: 1
ldouble: 1
+Test "asin_upward (0x8p-972)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+
+# asinh
+Test "asinh (-0xf.ffffffffffff8p+1020)":
+double: 1
+idouble: 1
+Test "asinh (0x1p+100)":
+ildouble: 1
+ldouble: 1
+Test "asinh (0xap+0)":
+float: 1
+ifloat: 1
+Test "asinh (0xf.424p+16)":
+ildouble: 1
+ldouble: 1
+Test "asinh (0xf.ffffffffffff8p+1020)":
+double: 1
+idouble: 1
# atan2
Test "atan2 (-0.75, -1.0)":
@@ -269,6 +438,9 @@ ifloat: 1
Test "atan2 (-0xf.fffffp+124, -0x4p-128)":
float: 1
ifloat: 1
+Test "atan2 (-0xf.fffffp+124, -0x8p-152)":
+float: 1
+ifloat: 1
Test "atan2 (-max_value, -min_value)":
float: 1
ifloat: 1
@@ -281,16 +453,30 @@ ifloat: 1
Test "atan2 (0xcp-4, -0x1p+0)":
float: 1
ifloat: 1
+Test "atan2 (0xf.fffffp+124, -0x4p-128)":
+float: 1
+ifloat: 1
+Test "atan2 (0xf.fffffp+124, -0x8p-152)":
+float: 1
+ifloat: 1
Test "atan2 (1.390625, 0.9296875)":
float: 1
ifloat: 1
# atanh
+Test "atanh (-0xcp-4)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
Test "atanh (0.75)":
float: 1
ifloat: 1
ildouble: 1
ldouble: 1
+Test "atanh (0x4p-4)":
+ildouble: 1
+ldouble: 1
Test "atanh (0xcp-4)":
float: 1
ifloat: 1
@@ -7148,6 +7334,48 @@ idouble: 2
ifloat: 1
# cos_downward
+Test "cos_downward (-0x2p-16384)":
+ildouble: 1
+ldouble: 1
+Test "cos_downward (-0x4p-1024)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_downward (-0x4p-1076)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_downward (-0x4p-128)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_downward (-0x4p-16384)":
+ildouble: 1
+ldouble: 1
+Test "cos_downward (-0x8p-152)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_downward (-0x8p-16448)":
+ildouble: 1
+ldouble: 1
+Test "cos_downward (-0x8p-972)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_downward (-0xf.ffffffffffff8p+1020)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_downward (-0xf.fffffp+124)":
+double: 1
+idouble: 1
Test "cos_downward (0x1.000000cf4a2a2p+0)":
double: 1
idouble: 1
@@ -7241,6 +7469,9 @@ idouble: 1
Test "cos_downward (0x2p+0)":
ildouble: 1
ldouble: 1
+Test "cos_downward (0x2p-16384)":
+ildouble: 1
+ldouble: 1
Test "cos_downward (0x3p+0)":
double: 1
idouble: 1
@@ -7252,12 +7483,43 @@ ldouble: 1
Test "cos_downward (0x4p+48)":
double: 1
idouble: 1
+Test "cos_downward (0x4p-1024)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_downward (0x4p-1076)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_downward (0x4p-128)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_downward (0x4p-16384)":
+ildouble: 1
+ldouble: 1
Test "cos_downward (0x8p+0)":
ildouble: 2
ldouble: 2
Test "cos_downward (0x8p+1020)":
ildouble: 1
ldouble: 1
+Test "cos_downward (0x8p-152)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_downward (0x8p-16448)":
+ildouble: 1
+ldouble: 1
+Test "cos_downward (0x8p-972)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
Test "cos_downward (0x9p+0)":
double: 1
idouble: 1
@@ -7290,6 +7552,9 @@ double: 1
idouble: 1
ildouble: 1
ldouble: 1
+Test "cos_downward (0xf.fffffffffffffffp+16380)":
+ildouble: 1
+ldouble: 1
Test "cos_downward (0xf.fffffp+124)":
double: 1
idouble: 1
@@ -7331,6 +7596,43 @@ ildouble: 1
ldouble: 1
# cos_towardzero
+Test "cos_towardzero (-0x2p-16384)":
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (-0x4p-1024)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (-0x4p-1076)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (-0x4p-128)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (-0x4p-16384)":
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (-0x8p-152)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (-0x8p-16448)":
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (-0x8p-972)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (-0xf.fffffp+124)":
+double: 1
+idouble: 1
Test "cos_towardzero (0x1.000000cf4a2a2p+0)":
double: 1
idouble: 1
@@ -7390,12 +7692,33 @@ idouble: 1
Test "cos_towardzero (0x2p+0)":
double: 1
idouble: 1
+Test "cos_towardzero (0x2p-16384)":
+ildouble: 1
+ldouble: 1
Test "cos_towardzero (0x4p+0)":
double: 1
idouble: 1
Test "cos_towardzero (0x4p+48)":
double: 1
idouble: 1
+Test "cos_towardzero (0x4p-1024)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (0x4p-1076)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (0x4p-128)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (0x4p-16384)":
+ildouble: 1
+ldouble: 1
Test "cos_towardzero (0x8p+0)":
double: 1
idouble: 1
@@ -7404,6 +7727,19 @@ ldouble: 1
Test "cos_towardzero (0x8p+1020)":
double: 1
idouble: 1
+Test "cos_towardzero (0x8p-152)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (0x8p-16448)":
+ildouble: 1
+ldouble: 1
+Test "cos_towardzero (0x8p-972)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
Test "cos_towardzero (0xa.217bap+12)":
ildouble: 1
ldouble: 1
@@ -7458,6 +7794,12 @@ ldouble: 1
Test "cos_upward (-0x2p+64)":
double: 1
idouble: 1
+Test "cos_upward (-0xf.ffffffffffff8p+1020)":
+ildouble: 1
+ldouble: 1
+Test "cos_upward (-0xf.fffffffffffffffp+16380)":
+ildouble: 1
+ldouble: 1
Test "cos_upward (0x1.000004p+0)":
double: 1
idouble: 1
@@ -7588,6 +7930,9 @@ idouble: 1
Test "cos_upward (0xf.ffffffffffff8p+1020)":
ildouble: 1
ldouble: 1
+Test "cos_upward (0xf.fffffffffffffffp+16380)":
+ildouble: 2
+ldouble: 2
Test "cos_upward (1)":
float: 1
ifloat: 1
@@ -7618,20 +7963,59 @@ ildouble: 1
ldouble: 1
# cosh
+Test "cosh (-0x1p+0)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "cosh (-0x2.c5d374p+12)":
+ldouble: 2
+Test "cosh (-0x2.c5d37700c6bbp+12)":
+ldouble: 1
Test "cosh (-0x2.c5e3acp+8)":
double: 1
idouble: 1
+Test "cosh (-0x2.c679dp+8)":
+double: 1
+idouble: 1
Test "cosh (0x1.6p+4)":
ildouble: 1
ldouble: 1
+Test "cosh (0x2.c5d374p+12)":
+ldouble: 2
+Test "cosh (0x2.c5d37700c6bbp+12)":
+ldouble: 1
Test "cosh (0x2.c5e3acp+8)":
double: 1
idouble: 1
+Test "cosh (0x2.c679dp+8)":
+double: 1
+idouble: 1
# cosh_downward
+Test "cosh_downward (-0x1p+0)":
+ildouble: 1
+ldouble: 1
+Test "cosh_downward (-0x2.c5d374p+12)":
+ldouble: 1
+Test "cosh_downward (-0x2.c5d37700c6bb03a4p+12)":
+ldouble: 3
+Test "cosh_downward (-0x2.c5d37700c6bbp+12)":
+ldouble: 2
Test "cosh_downward (-0x2.c5e3bp+8)":
double: 1
idouble: 1
+Test "cosh_downward (-0x2.c679d1f73f0fap+8)":
+double: 1
+idouble: 1
+Test "cosh_downward (-0x2.c679dp+8)":
+double: 1
+idouble: 1
+Test "cosh_downward (-0x5.96a7ep+4)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
Test "cosh_downward (0x1.6p+4)":
double: 1
idouble: 1
@@ -7640,9 +8024,26 @@ ldouble: 2
Test "cosh_downward (0x1.7p+4)":
double: 1
idouble: 1
+Test "cosh_downward (0x2.c5d374p+12)":
+ldouble: 1
+Test "cosh_downward (0x2.c5d37700c6bb03a4p+12)":
+ldouble: 3
+Test "cosh_downward (0x2.c5d37700c6bbp+12)":
+ldouble: 2
Test "cosh_downward (0x2.c5e3bp+8)":
double: 1
idouble: 1
+Test "cosh_downward (0x2.c679d1f73f0fap+8)":
+double: 1
+idouble: 1
+Test "cosh_downward (0x2.c679dp+8)":
+double: 1
+idouble: 1
+Test "cosh_downward (0x5.96a7ep+4)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
Test "cosh_downward (22)":
float: 1
ifloat: 1
@@ -7660,23 +8061,62 @@ ildouble: 1
ldouble: 1
# cosh_tonearest
+Test "cosh_tonearest (-0x1p+0)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "cosh_tonearest (-0x2.c5d374p+12)":
+ldouble: 2
+Test "cosh_tonearest (-0x2.c5d37700c6bbp+12)":
+ldouble: 1
Test "cosh_tonearest (-0x2.c5e3acp+8)":
double: 1
idouble: 1
+Test "cosh_tonearest (-0x2.c679dp+8)":
+double: 1
+idouble: 1
Test "cosh_tonearest (0x1.6p+4)":
ildouble: 1
ldouble: 1
+Test "cosh_tonearest (0x2.c5d374p+12)":
+ldouble: 2
+Test "cosh_tonearest (0x2.c5d37700c6bbp+12)":
+ldouble: 1
Test "cosh_tonearest (0x2.c5e3acp+8)":
double: 1
idouble: 1
+Test "cosh_tonearest (0x2.c679dp+8)":
+double: 1
+idouble: 1
Test "cosh_tonearest (22)":
ildouble: 1
ldouble: 1
# cosh_towardzero
+Test "cosh_towardzero (-0x1p+0)":
+ildouble: 1
+ldouble: 1
+Test "cosh_towardzero (-0x2.c5d374p+12)":
+ldouble: 1
+Test "cosh_towardzero (-0x2.c5d37700c6bb03a4p+12)":
+ldouble: 3
+Test "cosh_towardzero (-0x2.c5d37700c6bbp+12)":
+ldouble: 2
Test "cosh_towardzero (-0x2.c5e3bp+8)":
double: 1
idouble: 1
+Test "cosh_towardzero (-0x2.c679d1f73f0fap+8)":
+double: 1
+idouble: 1
+Test "cosh_towardzero (-0x2.c679dp+8)":
+double: 1
+idouble: 1
+Test "cosh_towardzero (-0x5.96a7ep+4)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
Test "cosh_towardzero (0x1.6p+4)":
double: 1
idouble: 1
@@ -7685,9 +8125,26 @@ ldouble: 2
Test "cosh_towardzero (0x1.7p+4)":
double: 1
idouble: 1
+Test "cosh_towardzero (0x2.c5d374p+12)":
+ldouble: 1
+Test "cosh_towardzero (0x2.c5d37700c6bb03a4p+12)":
+ldouble: 3
+Test "cosh_towardzero (0x2.c5d37700c6bbp+12)":
+ldouble: 2
Test "cosh_towardzero (0x2.c5e3bp+8)":
double: 1
idouble: 1
+Test "cosh_towardzero (0x2.c679d1f73f0fap+8)":
+double: 1
+idouble: 1
+Test "cosh_towardzero (0x2.c679dp+8)":
+double: 1
+idouble: 1
+Test "cosh_towardzero (0x5.96a7ep+4)":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
Test "cosh_towardzero (22)":
float: 1
ifloat: 1
@@ -7705,12 +8162,35 @@ ildouble: 1
ldouble: 1
# cosh_upward
+Test "cosh_upward (-0x1p+0)":
+float: 1
+ifloat: 1
+Test "cosh_upward (-0x2.c5d374p+12)":
+ldouble: 2
+Test "cosh_upward (-0x2.c5d37700c6bb03a4p+12)":
+ldouble: 3
+Test "cosh_upward (-0x2.c5d37700c6bbp+12)":
+ldouble: 3
Test "cosh_upward (-0x2.c5e3acd2922a6p+8)":
ildouble: 1
ldouble: 1
Test "cosh_upward (-0x2.c5e3bp+8)":
double: 1
idouble: 1
+Test "cosh_upward (-0x2.c679d1f73f0fap+8)":
+double: 1
+idouble: 1
+Test "cosh_upward (-0x2.c679dp+8)":
+double: 1
+idouble: 1
+Test "cosh_upward (-0x5.96a7e8p+4)":
+double: 1
+idouble: 1
+Test "cosh_upward (-0x5.96a7ep+4)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
Test "cosh_upward (0x1.6p+4)":
ildouble: 1
ldouble: 1
@@ -7720,12 +8200,35 @@ ldouble: 1
Test "cosh_upward (0x1.8p+4)":
double: 1
idouble: 1
+Test "cosh_upward (0x2.c5d374p+12)":
+ldouble: 2
+Test "cosh_upward (0x2.c5d37700c6bb03a4p+12)":
+ldouble: 3
+Test "cosh_upward (0x2.c5d37700c6bbp+12)":
+ldouble: 3
Test "cosh_upward (0x2.c5e3acd2922a6p+8)":
ildouble: 1
ldouble: 1
Test "cosh_upward (0x2.c5e3bp+8)":
double: 1
idouble: 1
+Test "cosh_upward (0x2.c679d1f73f0fap+8)":
+double: 1
+idouble: 1
+Test "cosh_upward (0x2.c679dp+8)":
+double: 1
+idouble: 1
+Test "cosh_upward (0x3.2p+4)":
+double: 1
+idouble: 1
+Test "cosh_upward (0x5.96a7e8p+4)":
+double: 1
+idouble: 1
+Test "cosh_upward (0x5.96a7ep+4)":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
Test "cosh_upward (22)":
ildouble: 1
ldouble: 1
@@ -15346,6 +15849,10 @@ idouble: 1
ildouble: 1
ldouble: 1
+Function: "acosh":
+double: 1
+idouble: 1
+
Function: "asin_downward":
double: 1
float: 1
@@ -15370,6 +15877,14 @@ ifloat: 1
ildouble: 1
ldouble: 1
+Function: "asinh":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+
Function: "atan2":
float: 1
ifloat: 1
@@ -15592,9 +16107,11 @@ ldouble: 2
Function: "cosh":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 1
-ldouble: 1
+ldouble: 2
Function: "cosh_downward":
double: 1
@@ -15602,13 +16119,15 @@ float: 1
idouble: 1
ifloat: 1
ildouble: 2
-ldouble: 2
+ldouble: 3
Function: "cosh_tonearest":
double: 1
+float: 1
idouble: 1
+ifloat: 1
ildouble: 1
-ldouble: 1
+ldouble: 2
Function: "cosh_towardzero":
double: 1
@@ -15616,13 +16135,15 @@ float: 1
idouble: 1
ifloat: 1
ildouble: 2
-ldouble: 2
+ldouble: 3
Function: "cosh_upward":
double: 1
+float: 2
idouble: 1
+ifloat: 2
ildouble: 1
-ldouble: 1
+ldouble: 3
Function: Real part of "cpow":
double: 2
--
Joseph S. Myers
joseph@codesourcery.com