2013-11-29 16:27:55 +00:00
|
|
|
# libm test inputs for gen-auto-libm-tests.c.
|
2015-01-02 16:28:19 +00:00
|
|
|
# Copyright (C) 1997-2015 Free Software Foundation, Inc.
|
2013-11-29 16:27:55 +00:00
|
|
|
# This file is part of the GNU C Library.
|
|
|
|
#
|
|
|
|
# The GNU C Library is free software; you can redistribute it and/or
|
|
|
|
# modify it under the terms of the GNU Lesser General Public
|
|
|
|
# License as published by the Free Software Foundation; either
|
|
|
|
# version 2.1 of the License, or (at your option) any later version.
|
|
|
|
#
|
|
|
|
# The GNU C Library is distributed in the hope that it will be useful,
|
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
# Lesser General Public License for more details.
|
|
|
|
#
|
|
|
|
# You should have received a copy of the GNU Lesser General Public
|
|
|
|
# License along with the GNU C Library; if not, see
|
|
|
|
# <http://www.gnu.org/licenses/>. */
|
|
|
|
|
2013-11-30 22:04:13 +00:00
|
|
|
acos 0
|
|
|
|
acos -0
|
|
|
|
acos 1
|
|
|
|
acos -1
|
|
|
|
acos 0.5
|
|
|
|
acos -0.5
|
|
|
|
acos 0.75
|
|
|
|
acos 2e-17
|
|
|
|
acos 0.0625
|
|
|
|
acos 0x0.ffffffp0
|
|
|
|
acos -0x0.ffffffp0
|
|
|
|
acos 0x0.ffffffff8p0
|
|
|
|
acos -0x0.ffffffff8p0
|
|
|
|
acos 0x0.ffffffffffffp0
|
|
|
|
acos -0x0.ffffffffffffp0
|
|
|
|
acos 0x0.ffffffffffffffffp0
|
|
|
|
acos -0x0.ffffffffffffffffp0
|
2015-02-26 21:06:34 +00:00
|
|
|
acos 0x1p-5
|
|
|
|
acos 0x1p-10
|
|
|
|
acos 0x1p-15
|
|
|
|
acos 0x1p-20
|
|
|
|
acos 0x1p-25
|
|
|
|
acos 0x1p-30
|
|
|
|
acos 0x1p-35
|
|
|
|
acos 0x1p-40
|
|
|
|
acos 0x1p-45
|
|
|
|
acos 0x1p-50
|
|
|
|
acos 0x1p-55
|
|
|
|
acos 0x1p-60
|
|
|
|
acos 0x1p-65
|
|
|
|
acos 0x1p-70
|
|
|
|
acos 0x1p-75
|
|
|
|
acos 0x1p-80
|
|
|
|
acos 0x1p-85
|
|
|
|
acos 0x1p-90
|
|
|
|
acos 0x1p-95
|
|
|
|
acos 0x1p-100
|
|
|
|
acos 0x1p-105
|
|
|
|
acos 0x1p-110
|
|
|
|
acos 0x1p-115
|
|
|
|
acos 0x1p-120
|
|
|
|
acos -0x1p-5
|
|
|
|
acos -0x1p-25
|
|
|
|
acos -0x1p-45
|
|
|
|
acos -0x1p-65
|
|
|
|
acos -0x1p-85
|
|
|
|
acos -0x1p-105
|
|
|
|
acos -0x1p-125
|
2015-03-25 00:30:10 +00:00
|
|
|
acos -0x2.0089a4p-4
|
|
|
|
acos 0xf.04aeep-4
|
|
|
|
acos 0x5.dd258006121b8p-4
|
|
|
|
acos -0x2.35f051e70dbc4p-4
|
|
|
|
acos 0xe.9a5c0d7fabb9aa1p-4
|
|
|
|
acos 0xe.17513589de79b75p-4
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
acos 0x3.e57821d368ebap-4
|
|
|
|
acos 0x2.0bee8p-4
|
Add more libm-test coverage of [a-c]* real functions.
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).
* 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.
2013-12-20 21:03:39 +00:00
|
|
|
acos min
|
|
|
|
acos -min
|
|
|
|
acos min_subnorm
|
|
|
|
acos -min_subnorm
|
2013-11-30 22:04:13 +00:00
|
|
|
|
|
|
|
acosh 1
|
Add more libm-test coverage of [a-c]* real functions.
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).
* 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.
2013-12-20 21:03:39 +00:00
|
|
|
acosh 1.625
|
2013-11-30 22:04:13 +00:00
|
|
|
acosh 7
|
Add more libm-test coverage of [a-c]* real functions.
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).
* 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.
2013-12-20 21:03:39 +00:00
|
|
|
acosh 100
|
|
|
|
acosh 1e5
|
2015-02-25 00:01:15 +00:00
|
|
|
acosh 0x1p8
|
|
|
|
acosh 0x1p9
|
|
|
|
acosh 0x1p10
|
|
|
|
acosh 0x1p11
|
|
|
|
acosh 0x1p12
|
|
|
|
acosh 0x1p13
|
|
|
|
acosh 0x1p24
|
|
|
|
acosh 0x1p25
|
|
|
|
acosh 0x1p26
|
|
|
|
acosh 0x1p27
|
|
|
|
acosh 0x1p28
|
|
|
|
acosh 0x1p29
|
|
|
|
acosh 0x1p30
|
|
|
|
acosh 0x1p31
|
|
|
|
acosh 0x1p32
|
|
|
|
acosh 0x1p33
|
|
|
|
acosh 0x1p48
|
|
|
|
acosh 0x1p49
|
|
|
|
acosh 0x1p50
|
|
|
|
acosh 0x1p51
|
|
|
|
acosh 0x1p52
|
|
|
|
acosh 0x1p53
|
|
|
|
acosh 0x1p54
|
|
|
|
acosh 0x1p55
|
|
|
|
acosh 0x1p56
|
|
|
|
acosh 0x1p57
|
|
|
|
acosh 0x1p58
|
|
|
|
acosh 0x1p59
|
|
|
|
acosh 0x1p100
|
|
|
|
acosh 0x1p500
|
|
|
|
acosh 0x1p5000
|
2015-03-25 22:21:20 +00:00
|
|
|
acosh 0x1.80a368p+0
|
|
|
|
acosh 0x1.0b9d3e9fc19fbp+0
|
|
|
|
acosh 0x1.11eab6p+0
|
Add further tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64. (This process
must eventually converge, when my random test generation stops finding
inputs that increase the listed ulps, except maybe for any cases
uncovered where the errors exceed the maximum allowed 9ulp error and
so indicate actual libm bugs needing fixing.)
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of acosh, atanh, clog,
clog10, csqrt, erfc, exp2, expm1, log10, log2 and sinh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-05 22:59:41 +00:00
|
|
|
acosh 0x1.0fffaap+0
|
Add more tests of acosh, atanh, cos, csqrt, erfc, sin, sincos.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64.
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of acosh, atanh, cos,
csqrt, erfc, sin and sincos.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-06 17:30:18 +00:00
|
|
|
acosh 0x1.068e0eca105a6p+0
|
Add more tests of various libm functions.
This patch adds more tests of various libm functions found through
random test generation to give increased ulps on 32-bit x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acosh, asin, asinh,
atanh, cabs, carg, cbrt, cosh, csqrt, erf, erfc, exp, exp10,
expm1, hypot, log, log10, log1p, log2, pow, sinh, tan and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-11 00:58:28 +00:00
|
|
|
acosh 0x2.8d4288p+0
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
acosh 0x1.5d71a6p+36
|
|
|
|
acosh 0x1.476a3c43d7edep+288
|
|
|
|
acosh 0xc.84cb1dbbd1b1p+0
|
|
|
|
acosh 0x1.0722362c26ba5p+0
|
2015-09-11 15:03:10 +00:00
|
|
|
acosh 0x1.73515p+0
|
|
|
|
acosh 0x1.1b836p+0
|
|
|
|
acosh 0x1.07c956p+0
|
Add more libm-test coverage of [a-c]* real functions.
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).
* 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.
2013-12-20 21:03:39 +00:00
|
|
|
acosh max no-test-inline
|
2013-11-30 22:04:13 +00:00
|
|
|
|
|
|
|
asin 0
|
|
|
|
asin -0
|
|
|
|
asin 0.5
|
|
|
|
asin -0.5
|
|
|
|
asin 1.0
|
|
|
|
asin -1.0
|
|
|
|
asin 0.75
|
|
|
|
asin 0x0.ffffffp0
|
|
|
|
asin -0x0.ffffffp0
|
|
|
|
asin 0x0.ffffffff8p0
|
|
|
|
asin -0x0.ffffffff8p0
|
|
|
|
asin 0x0.ffffffffffffp0
|
|
|
|
asin -0x0.ffffffffffffp0
|
|
|
|
asin 0x0.ffffffffffffffffp0
|
|
|
|
asin -0x0.ffffffffffffffffp0
|
2015-03-25 17:53:58 +00:00
|
|
|
asin -0x2.18915cp-4
|
|
|
|
asin -0x3.746774p-4
|
|
|
|
asin -0x3.1c54d10e5c844p-4
|
|
|
|
asin 0xf.c9675fa6fe69f12p-4
|
2015-03-25 21:57:04 +00:00
|
|
|
asin -0xa.fc5afp-4
|
Add more tests of various libm functions.
This patch adds more tests of various libm functions found through
random test generation to give increased ulps on 32-bit x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acosh, asin, asinh,
atanh, cabs, carg, cbrt, cosh, csqrt, erf, erfc, exp, exp10,
expm1, hypot, log, log10, log1p, log2, pow, sinh, tan and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-11 00:58:28 +00:00
|
|
|
asin 0xd.805e5p-4
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
asin -0x2.1a02dcp-4
|
2015-02-26 17:18:54 +00:00
|
|
|
asin min
|
|
|
|
asin -min
|
|
|
|
asin min_subnorm
|
|
|
|
asin -min_subnorm
|
2013-11-30 22:04:13 +00:00
|
|
|
|
|
|
|
asinh 0
|
|
|
|
asinh -0
|
|
|
|
asinh 0.75
|
Add more libm-test coverage of [a-c]* real functions.
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).
* 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.
2013-12-20 21:03:39 +00:00
|
|
|
asinh 1
|
|
|
|
asinh 10
|
|
|
|
asinh 100
|
|
|
|
asinh 1e6
|
2015-02-25 11:13:41 +00:00
|
|
|
asinh 0x1p8
|
|
|
|
asinh 0x1p9
|
|
|
|
asinh 0x1p10
|
|
|
|
asinh 0x1p11
|
|
|
|
asinh 0x1p12
|
|
|
|
asinh 0x1p13
|
|
|
|
asinh 0x1p24
|
|
|
|
asinh 0x1p25
|
|
|
|
asinh 0x1p26
|
|
|
|
asinh 0x1p27
|
|
|
|
asinh 0x1p28
|
|
|
|
asinh 0x1p29
|
|
|
|
asinh 0x1p30
|
|
|
|
asinh 0x1p31
|
|
|
|
asinh 0x1p32
|
|
|
|
asinh 0x1p33
|
|
|
|
asinh 0x1p48
|
|
|
|
asinh 0x1p49
|
|
|
|
asinh 0x1p50
|
|
|
|
asinh 0x1p51
|
|
|
|
asinh 0x1p52
|
|
|
|
asinh 0x1p53
|
|
|
|
asinh 0x1p54
|
|
|
|
asinh 0x1p55
|
|
|
|
asinh 0x1p56
|
|
|
|
asinh 0x1p57
|
|
|
|
asinh 0x1p58
|
|
|
|
asinh 0x1p59
|
Add more libm-test coverage of [a-c]* real functions.
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).
* 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.
2013-12-20 21:03:39 +00:00
|
|
|
asinh 0x1p100
|
2015-02-25 11:13:41 +00:00
|
|
|
asinh 0x1p500
|
|
|
|
asinh 0x1p5000
|
|
|
|
asinh 0x1p-8
|
|
|
|
asinh 0x1p-9
|
|
|
|
asinh 0x1p-10
|
|
|
|
asinh 0x1p-11
|
|
|
|
asinh 0x1p-12
|
|
|
|
asinh 0x1p-13
|
|
|
|
asinh 0x1p-24
|
|
|
|
asinh 0x1p-25
|
|
|
|
asinh 0x1p-26
|
|
|
|
asinh 0x1p-27
|
|
|
|
asinh 0x1p-28
|
|
|
|
asinh 0x1p-29
|
|
|
|
asinh 0x1p-30
|
|
|
|
asinh 0x1p-31
|
|
|
|
asinh 0x1p-32
|
|
|
|
asinh 0x1p-33
|
|
|
|
asinh 0x1p-48
|
|
|
|
asinh 0x1p-49
|
|
|
|
asinh 0x1p-50
|
|
|
|
asinh 0x1p-51
|
|
|
|
asinh 0x1p-52
|
|
|
|
asinh 0x1p-53
|
|
|
|
asinh 0x1p-54
|
|
|
|
asinh 0x1p-55
|
|
|
|
asinh 0x1p-56
|
|
|
|
asinh 0x1p-57
|
|
|
|
asinh 0x1p-58
|
|
|
|
asinh 0x1p-59
|
|
|
|
asinh 0x1p-100
|
2015-03-25 22:21:20 +00:00
|
|
|
asinh -0x3.d26bb4p-4
|
|
|
|
asinh -0x3.bdeef4p-4
|
|
|
|
asinh -0x7.fc7fc8p-8
|
|
|
|
asinh -0x3.b94a52e6913c2p-4
|
|
|
|
asinh 0x7.d8e5a8p-4
|
|
|
|
asinh -0x7.63a06320c42e4p-4
|
|
|
|
asinh 0x6.f4a93p-4
|
|
|
|
asinh -0x7.88bcc8p-4
|
Add more tests of various libm functions.
This patch adds more tests of various libm functions found through
random test generation to give increased ulps on 32-bit x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acosh, asin, asinh,
atanh, cabs, carg, cbrt, cosh, csqrt, erf, erfc, exp, exp10,
expm1, hypot, log, log10, log1p, log2, pow, sinh, tan and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-11 00:58:28 +00:00
|
|
|
asinh -0x3.11c35p-4
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
asinh -0x4.39534p-4
|
|
|
|
asinh -0xd.d62e8p+92
|
|
|
|
asinh -0x4.cfb9805a53a2065p-4
|
2015-06-18 23:27:41 +00:00
|
|
|
asinh 0x1p-500
|
|
|
|
asinh 0x1p-5000
|
|
|
|
asinh min
|
|
|
|
asinh -min
|
|
|
|
asinh min_subnorm
|
|
|
|
asinh -min_subnorm
|
Add more libm-test coverage of [a-c]* real functions.
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).
* 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.
2013-12-20 21:03:39 +00:00
|
|
|
asinh max no-test-inline
|
|
|
|
asinh -max no-test-inline
|
2013-11-30 22:04:13 +00:00
|
|
|
|
|
|
|
atan 0
|
|
|
|
atan -0
|
|
|
|
atan max
|
|
|
|
atan -max
|
|
|
|
atan 1
|
|
|
|
atan -1
|
|
|
|
atan 0.75
|
Add more libm-test coverage of [a-c]* real functions.
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).
* 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.
2013-12-20 21:03:39 +00:00
|
|
|
atan 0x1p-5
|
|
|
|
atan 2.5
|
|
|
|
atan 10
|
|
|
|
atan 1e6
|
2015-05-14 23:51:09 +00:00
|
|
|
atan 0x1p31
|
Fix atan / atan2 missing underflows (bug 15319).
This patch fixes bug 15319, missing underflows from atan / atan2 when
the result of atan is very close to its small argument (or that of
atan2 is very close to the ratio of its arguments, which may be an
exact division).
The usual approach of doing an underflowing computation if the
computed result is subnormal is followed. For 32-bit x86, there are
extra complications: the inline __ieee754_atan2 in bits/mathinline.h
needs to be disabled for float and double because other libm functions
using it generally rely on getting proper underflow exceptions from
it, while the out-of-line functions have to remove excess range and
precision from the underflowing result so as to return an exact 0 in
the case where errno should be set for underflow to 0. (The failures
I saw without that are similar to those Carlos reported for other
functions, where I haven't seen a response to
<https://sourceware.org/ml/libc-alpha/2015-01/msg00485.html>
confirming if my diagnosis is correct. Arguably all libm functions
with float and double returns should remove excess range and
precision, but that's a separate matter.)
The x86_64 long double case reported in a comment in bug 15319 is not
a bug (it's an argument of LDBL_MIN, and x86_64 is an after-rounding
architecture so the correct IEEE result is not to raise underflow in
the given rounding mode, in addition to treating the result as an
exact LDBL_MIN being within the newly clarified documentation of
accuracy goals). I'm presuming that the fpatan instruction can be
trusted to raise appropriate exceptions when the (long double) result
underflows (after rounding) and so no changes are needed for x86 /
x86_64 long double functions here; empirically this is the case for
the cases covered in the testsuite, on my system.
Tested for x86_64, x86, powerpc and mips64. Only 32-bit x86 needs
ulps updates (for the changes to inlines meaning some functions no
longer get excess precision from their __ieee754_atan2* calls).
[BZ #15319]
* sysdeps/i386/fpu/e_atan2.S (dbl_min): New object.
(MO): New macro.
(__ieee754_atan2): For results with small absolute value, force
underflow exception and remove excess range and precision from
return value.
* sysdeps/i386/fpu/e_atan2f.S (flt_min): New object.
(MO): New macro.
(__ieee754_atan2f): For results with small absolute value, force
underflow exception and remove excess range and precision from
return value.
* sysdeps/i386/fpu/s_atan.S (dbl_min): New object.
(MO): New macro.
(__atan): For results with small absolute value, force underflow
exception and remove excess range and precision from return value.
* sysdeps/i386/fpu/s_atanf.S (flt_min): New object.
(MO): New macro.
(__atanf): For results with small absolute value, force underflow
exception and remove excess range and precision from return value.
* sysdeps/ieee754/dbl-64/e_atan2.c: Include <float.h> and
<math.h>.
(__ieee754_atan2): Force underflow exception for results with
small absolute value.
* sysdeps/ieee754/dbl-64/s_atan.c: Include <float.h> and
<math_private.h>.
(atan): Force underflow exception for results with small absolute
value.
* sysdeps/ieee754/flt-32/s_atanf.c: Include <float.h>.
(__atanf): Force underflow exception for results with small
absolute value.
* sysdeps/ieee754/ldbl-128/s_atanl.c: Include <float.h> and
<math.h>.
(__atanl): Force underflow exception for results with small
absolute value.
* sysdeps/ieee754/ldbl-128ibm/s_atanl.c: Include <float.h>.
(__atanl): Force underflow exception for results with small
absolute value.
* sysdeps/x86/fpu/bits/mathinline.h
[!__SSE2_MATH__ && !__x86_64__ && __LIBC_INTERNAL_MATH_INLINES]
(__ieee754_atan2): Only define inline for long double.
* sysdeps/x86_64/fpu/multiarch/e_atan2.c
[HAVE_FMA4_SUPPORT || HAVE_AVX_SUPPORT]: Include <math.h>.
* math/auto-libm-test-in: Do not mark underflow exceptions as
possibly missing for bug 15319. Add more tests of atan2.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (casin_test_data): Do not mark underflow
exceptions as possibly missing for bug 15319.
(casinh_test_data): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
2015-02-18 21:10:49 +00:00
|
|
|
atan 0x1p-100
|
|
|
|
atan 0x1p-600
|
|
|
|
atan 0x1p-10000
|
2015-04-08 17:14:12 +00:00
|
|
|
atan -0x3.b02d84p-4
|
|
|
|
atan -0x3.3fb708p-4
|
2015-04-08 21:00:03 +00:00
|
|
|
atan -0x2.3249ap+0
|
|
|
|
atan -0x1.363f46p+0
|
|
|
|
atan -0x1.ad4c0ap+0
|
Add more tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64.
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of atan, clog, clog10,
cos, csqrt, erf, erfc, exp2, lgamma, log1p, sin, sincos, tanh and
tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-02 21:06:33 +00:00
|
|
|
atan -0x3.eb8e18p+0
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
atan 0x3.53c188p+0
|
Fix atan / atan2 missing underflows (bug 15319).
This patch fixes bug 15319, missing underflows from atan / atan2 when
the result of atan is very close to its small argument (or that of
atan2 is very close to the ratio of its arguments, which may be an
exact division).
The usual approach of doing an underflowing computation if the
computed result is subnormal is followed. For 32-bit x86, there are
extra complications: the inline __ieee754_atan2 in bits/mathinline.h
needs to be disabled for float and double because other libm functions
using it generally rely on getting proper underflow exceptions from
it, while the out-of-line functions have to remove excess range and
precision from the underflowing result so as to return an exact 0 in
the case where errno should be set for underflow to 0. (The failures
I saw without that are similar to those Carlos reported for other
functions, where I haven't seen a response to
<https://sourceware.org/ml/libc-alpha/2015-01/msg00485.html>
confirming if my diagnosis is correct. Arguably all libm functions
with float and double returns should remove excess range and
precision, but that's a separate matter.)
The x86_64 long double case reported in a comment in bug 15319 is not
a bug (it's an argument of LDBL_MIN, and x86_64 is an after-rounding
architecture so the correct IEEE result is not to raise underflow in
the given rounding mode, in addition to treating the result as an
exact LDBL_MIN being within the newly clarified documentation of
accuracy goals). I'm presuming that the fpatan instruction can be
trusted to raise appropriate exceptions when the (long double) result
underflows (after rounding) and so no changes are needed for x86 /
x86_64 long double functions here; empirically this is the case for
the cases covered in the testsuite, on my system.
Tested for x86_64, x86, powerpc and mips64. Only 32-bit x86 needs
ulps updates (for the changes to inlines meaning some functions no
longer get excess precision from their __ieee754_atan2* calls).
[BZ #15319]
* sysdeps/i386/fpu/e_atan2.S (dbl_min): New object.
(MO): New macro.
(__ieee754_atan2): For results with small absolute value, force
underflow exception and remove excess range and precision from
return value.
* sysdeps/i386/fpu/e_atan2f.S (flt_min): New object.
(MO): New macro.
(__ieee754_atan2f): For results with small absolute value, force
underflow exception and remove excess range and precision from
return value.
* sysdeps/i386/fpu/s_atan.S (dbl_min): New object.
(MO): New macro.
(__atan): For results with small absolute value, force underflow
exception and remove excess range and precision from return value.
* sysdeps/i386/fpu/s_atanf.S (flt_min): New object.
(MO): New macro.
(__atanf): For results with small absolute value, force underflow
exception and remove excess range and precision from return value.
* sysdeps/ieee754/dbl-64/e_atan2.c: Include <float.h> and
<math.h>.
(__ieee754_atan2): Force underflow exception for results with
small absolute value.
* sysdeps/ieee754/dbl-64/s_atan.c: Include <float.h> and
<math_private.h>.
(atan): Force underflow exception for results with small absolute
value.
* sysdeps/ieee754/flt-32/s_atanf.c: Include <float.h>.
(__atanf): Force underflow exception for results with small
absolute value.
* sysdeps/ieee754/ldbl-128/s_atanl.c: Include <float.h> and
<math.h>.
(__atanl): Force underflow exception for results with small
absolute value.
* sysdeps/ieee754/ldbl-128ibm/s_atanl.c: Include <float.h>.
(__atanl): Force underflow exception for results with small
absolute value.
* sysdeps/x86/fpu/bits/mathinline.h
[!__SSE2_MATH__ && !__x86_64__ && __LIBC_INTERNAL_MATH_INLINES]
(__ieee754_atan2): Only define inline for long double.
* sysdeps/x86_64/fpu/multiarch/e_atan2.c
[HAVE_FMA4_SUPPORT || HAVE_AVX_SUPPORT]: Include <math.h>.
* math/auto-libm-test-in: Do not mark underflow exceptions as
possibly missing for bug 15319. Add more tests of atan2.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (casin_test_data): Do not mark underflow
exceptions as possibly missing for bug 15319.
(casinh_test_data): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
2015-02-18 21:10:49 +00:00
|
|
|
atan min
|
|
|
|
atan -min
|
|
|
|
atan min_subnorm
|
|
|
|
atan -min_subnorm
|
2013-11-30 22:04:13 +00:00
|
|
|
|
2013-12-16 21:18:07 +00:00
|
|
|
# atan2 (0,x) == 0 for x > 0.
|
|
|
|
atan2 0 1
|
|
|
|
# atan2 (-0,x) == -0 for x > 0.
|
|
|
|
atan2 -0 1
|
|
|
|
atan2 0 0
|
|
|
|
atan2 -0 0
|
|
|
|
# atan2 (+0,x) == +pi for x < 0.
|
|
|
|
atan2 0 -1
|
|
|
|
# atan2 (-0,x) == -pi for x < 0.
|
|
|
|
atan2 -0 -1
|
|
|
|
atan2 0 -0
|
|
|
|
atan2 -0 -0
|
|
|
|
# atan2 (y,+0) == pi/2 for y > 0.
|
|
|
|
atan2 1 0
|
|
|
|
# atan2 (y,-0) == pi/2 for y > 0.
|
|
|
|
atan2 1 -0
|
|
|
|
# atan2 (y,+0) == -pi/2 for y < 0.
|
|
|
|
atan2 -1 0
|
|
|
|
# atan2 (y,-0) == -pi/2 for y < 0.
|
|
|
|
atan2 -1 -0
|
|
|
|
atan2 max max
|
Add more libm-test coverage of [a-c]* real functions.
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).
* 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.
2013-12-20 21:03:39 +00:00
|
|
|
atan2 max -max
|
|
|
|
atan2 -max max
|
|
|
|
atan2 -max -max
|
2013-12-16 21:18:07 +00:00
|
|
|
atan2 max min
|
|
|
|
atan2 -max -min
|
Add more libm-test coverage of [a-c]* real functions.
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).
* 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.
2013-12-20 21:03:39 +00:00
|
|
|
atan2 -max min
|
|
|
|
atan2 max -min
|
|
|
|
atan2 max min_subnorm
|
|
|
|
atan2 -max -min_subnorm
|
|
|
|
atan2 -max min_subnorm
|
|
|
|
atan2 max -min_subnorm
|
2013-12-16 21:18:07 +00:00
|
|
|
atan2 0.75 1
|
|
|
|
atan2 -0.75 1.0
|
|
|
|
atan2 0.75 -1.0
|
|
|
|
atan2 -0.75 -1.0
|
|
|
|
atan2 0.390625 .00029
|
|
|
|
atan2 1.390625 0.9296875
|
|
|
|
atan2 -0.00756827042671106339 -.001792735857538728036
|
|
|
|
atan2 0x1.00000000000001p0 0x1.00000000000001p0
|
2015-04-08 17:32:17 +00:00
|
|
|
atan2 0x4.c3841p-4 0x2.f2f308p+0
|
|
|
|
atan2 -0xe.cf143p-40 0xd.3de7ap-36
|
|
|
|
atan2 0x5.576cf8p-4 0x2.21e65p+0
|
|
|
|
atan2 -0x4.29411p-4 0x1.f4755cp+0
|
|
|
|
atan2 -0xa.b4101p+20 -0xf.9c4c8p-4
|
|
|
|
atan2 0x4.251bb8p-4 0x7.40ac68p+0
|
|
|
|
atan2 0x1.47239ep+68 0xa.3ac3cp+68
|
|
|
|
atan2 -0x6.b0794p-4 0x3.8ff10cp+0
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
atan2 -0x7.15e7af0a1780cp-724 0xf.fffffp+124
|
Add more libm-test coverage of [a-c]* real functions.
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).
* 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.
2013-12-20 21:03:39 +00:00
|
|
|
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
|
Fix atan / atan2 missing underflows (bug 15319).
This patch fixes bug 15319, missing underflows from atan / atan2 when
the result of atan is very close to its small argument (or that of
atan2 is very close to the ratio of its arguments, which may be an
exact division).
The usual approach of doing an underflowing computation if the
computed result is subnormal is followed. For 32-bit x86, there are
extra complications: the inline __ieee754_atan2 in bits/mathinline.h
needs to be disabled for float and double because other libm functions
using it generally rely on getting proper underflow exceptions from
it, while the out-of-line functions have to remove excess range and
precision from the underflowing result so as to return an exact 0 in
the case where errno should be set for underflow to 0. (The failures
I saw without that are similar to those Carlos reported for other
functions, where I haven't seen a response to
<https://sourceware.org/ml/libc-alpha/2015-01/msg00485.html>
confirming if my diagnosis is correct. Arguably all libm functions
with float and double returns should remove excess range and
precision, but that's a separate matter.)
The x86_64 long double case reported in a comment in bug 15319 is not
a bug (it's an argument of LDBL_MIN, and x86_64 is an after-rounding
architecture so the correct IEEE result is not to raise underflow in
the given rounding mode, in addition to treating the result as an
exact LDBL_MIN being within the newly clarified documentation of
accuracy goals). I'm presuming that the fpatan instruction can be
trusted to raise appropriate exceptions when the (long double) result
underflows (after rounding) and so no changes are needed for x86 /
x86_64 long double functions here; empirically this is the case for
the cases covered in the testsuite, on my system.
Tested for x86_64, x86, powerpc and mips64. Only 32-bit x86 needs
ulps updates (for the changes to inlines meaning some functions no
longer get excess precision from their __ieee754_atan2* calls).
[BZ #15319]
* sysdeps/i386/fpu/e_atan2.S (dbl_min): New object.
(MO): New macro.
(__ieee754_atan2): For results with small absolute value, force
underflow exception and remove excess range and precision from
return value.
* sysdeps/i386/fpu/e_atan2f.S (flt_min): New object.
(MO): New macro.
(__ieee754_atan2f): For results with small absolute value, force
underflow exception and remove excess range and precision from
return value.
* sysdeps/i386/fpu/s_atan.S (dbl_min): New object.
(MO): New macro.
(__atan): For results with small absolute value, force underflow
exception and remove excess range and precision from return value.
* sysdeps/i386/fpu/s_atanf.S (flt_min): New object.
(MO): New macro.
(__atanf): For results with small absolute value, force underflow
exception and remove excess range and precision from return value.
* sysdeps/ieee754/dbl-64/e_atan2.c: Include <float.h> and
<math.h>.
(__ieee754_atan2): Force underflow exception for results with
small absolute value.
* sysdeps/ieee754/dbl-64/s_atan.c: Include <float.h> and
<math_private.h>.
(atan): Force underflow exception for results with small absolute
value.
* sysdeps/ieee754/flt-32/s_atanf.c: Include <float.h>.
(__atanf): Force underflow exception for results with small
absolute value.
* sysdeps/ieee754/ldbl-128/s_atanl.c: Include <float.h> and
<math.h>.
(__atanl): Force underflow exception for results with small
absolute value.
* sysdeps/ieee754/ldbl-128ibm/s_atanl.c: Include <float.h>.
(__atanl): Force underflow exception for results with small
absolute value.
* sysdeps/x86/fpu/bits/mathinline.h
[!__SSE2_MATH__ && !__x86_64__ && __LIBC_INTERNAL_MATH_INLINES]
(__ieee754_atan2): Only define inline for long double.
* sysdeps/x86_64/fpu/multiarch/e_atan2.c
[HAVE_FMA4_SUPPORT || HAVE_AVX_SUPPORT]: Include <math.h>.
* math/auto-libm-test-in: Do not mark underflow exceptions as
possibly missing for bug 15319. Add more tests of atan2.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (casin_test_data): Do not mark underflow
exceptions as possibly missing for bug 15319.
(casinh_test_data): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
2015-02-18 21:10:49 +00:00
|
|
|
atan2 1 max
|
|
|
|
atan2 -1 max
|
|
|
|
atan2 min max
|
|
|
|
atan2 -min max
|
|
|
|
atan2 min_subnorm max
|
|
|
|
atan2 -min_subnorm max
|
|
|
|
atan2 min 1
|
|
|
|
atan2 -min 1
|
|
|
|
atan2 min_subnorm 1
|
|
|
|
atan2 -min_subnorm 1
|
|
|
|
atan2 min -1
|
|
|
|
atan2 -min -1
|
|
|
|
atan2 min_subnorm -1
|
|
|
|
atan2 -min_subnorm -1
|
2013-12-16 21:18:07 +00:00
|
|
|
|
2013-11-30 22:04:13 +00:00
|
|
|
atanh 0
|
|
|
|
atanh -0
|
|
|
|
atanh 0.75
|
Add more libm-test coverage of [a-c]* real functions.
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).
* 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.
2013-12-20 21:03:39 +00:00
|
|
|
atanh -0.75
|
|
|
|
atanh 0.25
|
|
|
|
atanh 0x1p-5
|
|
|
|
atanh 0x1p-10
|
|
|
|
atanh 0x1.2345p-20
|
2015-02-27 17:48:37 +00:00
|
|
|
atanh 0x1p-8
|
|
|
|
atanh 0x1p-9
|
|
|
|
atanh 0x1p-10
|
|
|
|
atanh 0x1p-11
|
|
|
|
atanh 0x1p-12
|
|
|
|
atanh 0x1p-13
|
|
|
|
atanh 0x1p-24
|
|
|
|
atanh 0x1p-25
|
|
|
|
atanh 0x1p-26
|
|
|
|
atanh 0x1p-27
|
|
|
|
atanh 0x1p-28
|
|
|
|
atanh 0x1p-29
|
|
|
|
atanh 0x1p-30
|
|
|
|
atanh 0x1p-31
|
|
|
|
atanh 0x1p-32
|
|
|
|
atanh 0x1p-33
|
|
|
|
atanh 0x1p-48
|
|
|
|
atanh 0x1p-49
|
|
|
|
atanh 0x1p-50
|
|
|
|
atanh 0x1p-51
|
|
|
|
atanh 0x1p-52
|
|
|
|
atanh 0x1p-53
|
|
|
|
atanh 0x1p-54
|
|
|
|
atanh 0x1p-55
|
|
|
|
atanh 0x1p-56
|
|
|
|
atanh 0x1p-57
|
|
|
|
atanh 0x1p-58
|
|
|
|
atanh 0x1p-59
|
|
|
|
atanh 0x1p-100
|
2015-05-19 23:05:22 +00:00
|
|
|
atanh -0x1p-100
|
|
|
|
atanh 0x1p-600
|
|
|
|
atanh -0x1p-600
|
|
|
|
atanh 0x1p-10000
|
|
|
|
atanh -0x1p-10000
|
2015-03-25 22:21:20 +00:00
|
|
|
atanh -0x6.e6c77p-20
|
|
|
|
atanh 0x3.2ca824p-4
|
|
|
|
atanh -0x1.cc1d66p-4
|
|
|
|
atanh -0xf.cd3809ca8fd28p-4 no-test-inline
|
|
|
|
atanh -0x1.04f386p-4
|
|
|
|
atanh -0x2.084568p-4
|
|
|
|
atanh -0x3.e0a5d8p-4
|
|
|
|
atanh 0x3.dfb1f5db0ceccp-4
|
|
|
|
atanh 0x2.251b2a64c85dep-4
|
2015-04-08 21:13:35 +00:00
|
|
|
atanh -0x2.e3458cp-4
|
|
|
|
atanh 0x3.91d9f3c80c72d7acp-4
|
Add further tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64. (This process
must eventually converge, when my random test generation stops finding
inputs that increase the listed ulps, except maybe for any cases
uncovered where the errors exceed the maximum allowed 9ulp error and
so indicate actual libm bugs needing fixing.)
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of acosh, atanh, clog,
clog10, csqrt, erfc, exp2, expm1, log10, log2 and sinh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-05 22:59:41 +00:00
|
|
|
atanh -0x2.6c52c26567198p-4
|
Add more tests of acosh, atanh, cos, csqrt, erfc, sin, sincos.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64.
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of acosh, atanh, cos,
csqrt, erfc, sin and sincos.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-06 17:30:18 +00:00
|
|
|
atanh 0x3.a274ecp-4
|
|
|
|
atanh -0x3.f0f519a687b64p-8
|
Add more tests of various libm functions.
This patch adds more tests of various libm functions found through
random test generation to give increased ulps on 32-bit x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acosh, asin, asinh,
atanh, cabs, carg, cbrt, cosh, csqrt, erf, erfc, exp, exp10,
expm1, hypot, log, log10, log1p, log2, pow, sinh, tan and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-11 00:58:28 +00:00
|
|
|
atanh 0x6.fd4ec8p-4
|
|
|
|
atanh -0x2.6cb2a8p-4
|
|
|
|
atanh -0xc.21df7c7f51508p-4
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
atanh 0x5.8be99p-40
|
|
|
|
atanh 0x3.cbed35fe733d8p-4
|
2015-09-11 15:03:10 +00:00
|
|
|
atanh -0x5.c18b6p-4
|
|
|
|
atanh -0x7.c88a5p-8
|
2015-05-15 22:07:57 +00:00
|
|
|
atanh 0x1p-500
|
|
|
|
atanh 0x1p-5000
|
|
|
|
atanh min
|
|
|
|
atanh -min
|
|
|
|
atanh min_subnorm
|
|
|
|
atanh -min_subnorm
|
2013-11-30 22:04:13 +00:00
|
|
|
|
2013-12-19 21:28:30 +00:00
|
|
|
# cabs (x,y) == cabs (y,x).
|
|
|
|
cabs 0.75 12.390625
|
|
|
|
# cabs (x,y) == cabs (-x,y).
|
|
|
|
cabs -12.390625 0.75
|
|
|
|
# cabs (x,y) == cabs (-y,x).
|
|
|
|
cabs -0.75 12.390625
|
|
|
|
# cabs (x,y) == cabs (-x,-y).
|
|
|
|
cabs -12.390625 -0.75
|
|
|
|
# cabs (x,y) == cabs (-y,-x).
|
|
|
|
cabs -0.75 -12.390625
|
|
|
|
# cabs (x,0) == fabs (x).
|
|
|
|
cabs -0.75 0
|
|
|
|
cabs 0.75 0
|
|
|
|
cabs -1.0 0
|
|
|
|
cabs 1.0 0
|
|
|
|
cabs -5.7e7 0
|
|
|
|
cabs 5.7e7 0
|
|
|
|
cabs 0.75 1.25
|
2015-04-08 17:46:07 +00:00
|
|
|
cabs -0x1.34be3p-4 -0xc.56623p+0
|
|
|
|
cabs -0x1.2b0ff8p+28 -0x2.549fc4p+16
|
|
|
|
cabs -0x1.0932cp-80 -0x2.51109p-24
|
|
|
|
cabs -0x1.055fb2p+48 0x9.1ce86p+24
|
|
|
|
cabs -0x1.26a566p+120 0x4.017b28p+92
|
|
|
|
cabs -0x1.0eda54p+28 0xb.09476p+0
|
Add more tests of various libm functions.
This patch adds more tests of various libm functions found through
random test generation to give increased ulps on 32-bit x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acosh, asin, asinh,
atanh, cabs, carg, cbrt, cosh, csqrt, erf, erfc, exp, exp10,
expm1, hypot, log, log10, log1p, log2, pow, sinh, tan and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-11 00:58:28 +00:00
|
|
|
cabs -0x1.133b84p+84 -0xa.7d925f57f60cp+768
|
|
|
|
cabs -0 -0x3.4e5d7877324cp+0
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
cabs -0xa.f59b8p+4 0xa.21a95p+20
|
2013-12-19 21:28:30 +00:00
|
|
|
|
|
|
|
# carg (x + i 0) == 0 for x > 0.
|
|
|
|
carg 2.0 0
|
|
|
|
# carg (x - i 0) == -0 for x > 0.
|
|
|
|
carg 2.0 -0
|
|
|
|
carg 0 0
|
|
|
|
carg 0 -0
|
|
|
|
# carg (x + i 0) == +pi for x < 0.
|
|
|
|
carg -2.0 0
|
|
|
|
# carg (x - i 0) == -pi for x < 0.
|
|
|
|
carg -2.0 -0
|
|
|
|
carg -0 0
|
|
|
|
carg -0 -0
|
|
|
|
# carg (+0 + i y) == pi/2 for y > 0.
|
|
|
|
carg 0 2.0
|
|
|
|
# carg (-0 + i y) == pi/2 for y > 0.
|
|
|
|
carg -0 2.0
|
|
|
|
# carg (+0 + i y) == -pi/2 for y < 0.
|
|
|
|
carg 0 -2.0
|
|
|
|
# carg (-0 + i y) == -pi/2 for y < 0.
|
|
|
|
carg -0 -2.0
|
2015-04-08 17:32:17 +00:00
|
|
|
carg 0x2.f2f308p+0 0x4.c3841p-4
|
|
|
|
carg 0xd.3de7ap-36 -0xe.cf143p-40
|
|
|
|
carg 0x2.21e65p+0 0x5.576cf8p-4
|
|
|
|
carg 0x1.f4755cp+0 -0x4.29411p-4
|
|
|
|
carg -0xf.9c4c8p-4 -0xa.b4101p+20
|
|
|
|
carg 0x7.40ac68p+0 0x4.251bb8p-4
|
|
|
|
carg 0xa.3ac3cp+68 0x1.47239ep+68
|
|
|
|
carg 0x3.8ff10cp+0 -0x6.b0794p-4
|
Add more tests of various libm functions.
This patch adds more tests of various libm functions found through
random test generation to give increased ulps on 32-bit x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acosh, asin, asinh,
atanh, cabs, carg, cbrt, cosh, csqrt, erf, erfc, exp, exp10,
expm1, hypot, log, log10, log1p, log2, pow, sinh, tan and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-11 00:58:28 +00:00
|
|
|
carg -0x3.973cc4p+72 -0xf.fffffp+124
|
|
|
|
carg 0x8p-152 0x4p-1076
|
2013-12-19 21:28:30 +00:00
|
|
|
|
2013-11-30 22:04:13 +00:00
|
|
|
cbrt 0.0
|
|
|
|
cbrt -0
|
|
|
|
cbrt -0.001
|
|
|
|
cbrt 8
|
|
|
|
cbrt -27.0
|
|
|
|
cbrt 0.9921875
|
|
|
|
cbrt 0.75
|
|
|
|
cbrt 0x1p16383
|
|
|
|
cbrt 0x1p-16383
|
Add more libm-test coverage of [a-c]* real functions.
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).
* 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.
2013-12-20 21:03:39 +00:00
|
|
|
cbrt 1e5
|
2015-04-08 17:56:15 +00:00
|
|
|
cbrt 0x3.132634p+0
|
|
|
|
cbrt -0xc.8d0442f2f0d1p-492
|
|
|
|
cbrt -0xa.6b142p+40
|
|
|
|
cbrt -0x1.f28ab85f3580ap-128
|
Add more tests of various libm functions.
This patch adds more tests of various libm functions found through
random test generation to give increased ulps on 32-bit x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acosh, asin, asinh,
atanh, cabs, carg, cbrt, cosh, csqrt, erf, erfc, exp, exp10,
expm1, hypot, log, log10, log1p, log2, pow, sinh, tan and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-11 00:58:28 +00:00
|
|
|
cbrt -0x2.b5cd28p-36
|
|
|
|
cbrt -0x1.d6a8bep-20
|
|
|
|
cbrt -0x3.593ed8p-72
|
|
|
|
cbrt 0x1.bd0098p-104
|
|
|
|
cbrt -0x3.300d34p+0
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
cbrt 0x6.247f5p-4
|
2015-09-11 15:03:10 +00:00
|
|
|
cbrt -0x3.48648028cb464p+0
|
Add more libm-test coverage of [a-c]* real functions.
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).
* 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.
2013-12-20 21:03:39 +00:00
|
|
|
cbrt max
|
|
|
|
cbrt -max
|
|
|
|
cbrt min
|
|
|
|
cbrt -min
|
|
|
|
cbrt min_subnorm
|
|
|
|
cbrt -min_subnorm
|
2013-11-30 22:04:13 +00:00
|
|
|
|
Move various TEST_c_c tests from libm-test.inc to auto-libm-test-inc.
This patch moves tests of ccos, ccosh, cexp, clog, csqrt, ctan and
ctanh to auto-libm-test-in, adding the required support to
gen-auto-libm-tests. Other TEST_c_c functions aren't moved for now
(although the relevant table entries are put in gen-auto-libm-tests
for it to know how to handle them): clog10 because of a known MPC bug
causing it to hang for at least some pure imaginary inputs (fixed in
SVN, but I'd rather not rely on unreleased versions of MPFR or MPC
even if relying on very recent releases); the inverse trig and
hyperbolic functions because of known slowness in special cases; and
csin / csinh because of observed slowness that I need to investigate
and report to the MPC maintainers. Slowness can be bypassed by moving
to incremental generation (only for new / changed tests) rather than
regenerating the whole of auto-libm-test-out every time, but that
needs implementing. (This patch takes the time for running
gen-auto-libm-tests from about one second to seven, on my system,
which I think is reasonable. The slow functions would make it take
several minutes at least, which seems unreasonable.)
Tested x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add tests of ccos, ccosh, cexp, clog,
csqrt, ctan and ctanh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (TEST_COND_x86_64): New macro.
(TEST_COND_x86): Likewise.
(ccos_test_data): Use AUTO_TESTS_c_c.
(ccosh_test_data): Likewise.
(cexp_test_data): Likewise.
(clog_test_data): Likewise.
(csqrt_test_data): Likewise.
(ctan_test_data): Likewise.
(ctan_tonearest_test_data): Likewise.
(ctan_towardzero_test_data): Likewise.
(ctan_downward_test_data): Likewise.
(ctan_upward_test_data): Likewise.
(ctanh_test_data): Likewise.
(ctanh_tonearest_test_data): Likewise.
(ctanh_towardzero_test_data): Likewise.
(ctanh_downward_test_data): Likewise.
(ctanh_upward_test_data): Likewise.
* math/gen-auto-libm-tests.c (func_calc_method): Add value
mpc_c_c.
(func_calc_desc): Add mpc_c_c union field.
(FUNC_mpc_c_c): New macro.
(test_functions): Add cacos, cacosh, casin, casinh, catan, catanh,
ccos, ccosh, cexp, clog, clog10, csin, csinh, csqrt, ctan and
ctanh.
(special_fill_min_subnorm_p120): New function.
(special_real_inputs): Add min_subnorm_p120.
(calc_generic_results): Handle mpc_c_c.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-20 12:32:44 +00:00
|
|
|
ccos 0.0 0.0
|
|
|
|
ccos -0 0.0
|
|
|
|
ccos 0.0 -0
|
|
|
|
ccos -0 -0
|
|
|
|
|
|
|
|
ccos 0.75 1.25
|
|
|
|
ccos -2 -3
|
|
|
|
|
|
|
|
ccos 0.75 89.5
|
|
|
|
ccos 0.75 -89.5
|
|
|
|
ccos -0.75 89.5
|
|
|
|
ccos -0.75 -89.5
|
|
|
|
ccos 0.75 710.5
|
|
|
|
ccos 0.75 -710.5
|
|
|
|
ccos -0.75 710.5
|
|
|
|
ccos -0.75 -710.5
|
|
|
|
ccos 0.75 11357.25
|
|
|
|
ccos 0.75 -11357.25
|
|
|
|
ccos -0.75 11357.25
|
|
|
|
ccos -0.75 -11357.25
|
|
|
|
|
|
|
|
ccos 0x1p-149 180
|
|
|
|
ccos 0x1p-1074 1440
|
|
|
|
ccos 0x1p-16434 22730
|
|
|
|
|
|
|
|
ccos min_subnorm_p120 0x1p-120
|
|
|
|
ccos 0x1p-120 min_subnorm_p120
|
|
|
|
|
Fix cexp, ccos, ccosh, csin, csinh spurious underflows (bug 18594).
cexp, ccos, ccosh, csin and csinh have spurious underflows in cases
where they compute sin of the smallest normal, that produces an
underflow exception (depending on which sin implementation is in use)
but the final result does not underflow. ctan and ctanh may also have
such underflows, or they may be latent (the issue there is that
e.g. ctan (DBL_MIN) should, rounded upwards, be the next double value
above DBL_MIN, which under glibc's accuracy goals may not have an
underflow exception, but the intermediate computation of sin (DBL_MIN)
would legitimately underflow on before-rounding architectures).
This patch fixes all those functions so they use plain comparisons (>
DBL_MIN etc.) instead of comparing the result of fpclassify with
FP_SUBNORMAL (in all these cases, we already know the number being
compared is finite). Note that in the case of csin / csinf / csinl,
there is no need for fabs calls in the comparison because the real
part has already been reduced to its absolute value.
As the patch fixes the failures that previously obstructed moving
tests of cexp to use ALL_RM_TEST, those tests are moved to ALL_RM_TEST
by the patch (two functions remain yet to be converted).
Tested for x86_64 and x86 and ulps updated accordingly.
[BZ #18594]
* math/s_ccosh.c (__ccosh): Compare with least normal value
instead of comparing class with FP_SUBNORMAL.
* math/s_ccoshf.c (__ccoshf): Likewise.
* math/s_ccoshl.c (__ccoshl): Likewise.
* math/s_cexp.c (__cexp): Likewise.
* math/s_cexpf.c (__cexpf): Likewise.
* math/s_cexpl.c (__cexpl): Likewise.
* math/s_csin.c (__csin): Likewise.
* math/s_csinf.c (__csinf): Likewise.
* math/s_csinh.c (__csinh): Likewise.
* math/s_csinhf.c (__csinhf): Likewise.
* math/s_csinhl.c (__csinhl): Likewise.
* math/s_csinl.c (__csinl): Likewise.
* math/s_ctan.c (__ctan): Likewise.
* math/s_ctanf.c (__ctanf): Likewise.
* math/s_ctanh.c (__ctanh): Likewise.
* math/s_ctanhf.c (__ctanhf): Likewise.
* math/s_ctanhl.c (__ctanhl): Likewise.
* math/s_ctanl.c (__ctanl): Likewise.
* math/auto-libm-test-in: Add more tests of ccos, ccosh, cexp,
csin, csinh, ctan and ctanh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (cexp_test): Use ALL_RM_TEST.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-06-24 21:04:51 +00:00
|
|
|
ccos min 1
|
|
|
|
ccos -min 1
|
|
|
|
ccos min_subnorm 80
|
|
|
|
ccos -min_subnorm 80
|
|
|
|
|
Move various TEST_c_c tests from libm-test.inc to auto-libm-test-inc.
This patch moves tests of ccos, ccosh, cexp, clog, csqrt, ctan and
ctanh to auto-libm-test-in, adding the required support to
gen-auto-libm-tests. Other TEST_c_c functions aren't moved for now
(although the relevant table entries are put in gen-auto-libm-tests
for it to know how to handle them): clog10 because of a known MPC bug
causing it to hang for at least some pure imaginary inputs (fixed in
SVN, but I'd rather not rely on unreleased versions of MPFR or MPC
even if relying on very recent releases); the inverse trig and
hyperbolic functions because of known slowness in special cases; and
csin / csinh because of observed slowness that I need to investigate
and report to the MPC maintainers. Slowness can be bypassed by moving
to incremental generation (only for new / changed tests) rather than
regenerating the whole of auto-libm-test-out every time, but that
needs implementing. (This patch takes the time for running
gen-auto-libm-tests from about one second to seven, on my system,
which I think is reasonable. The slow functions would make it take
several minutes at least, which seems unreasonable.)
Tested x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add tests of ccos, ccosh, cexp, clog,
csqrt, ctan and ctanh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (TEST_COND_x86_64): New macro.
(TEST_COND_x86): Likewise.
(ccos_test_data): Use AUTO_TESTS_c_c.
(ccosh_test_data): Likewise.
(cexp_test_data): Likewise.
(clog_test_data): Likewise.
(csqrt_test_data): Likewise.
(ctan_test_data): Likewise.
(ctan_tonearest_test_data): Likewise.
(ctan_towardzero_test_data): Likewise.
(ctan_downward_test_data): Likewise.
(ctan_upward_test_data): Likewise.
(ctanh_test_data): Likewise.
(ctanh_tonearest_test_data): Likewise.
(ctanh_towardzero_test_data): Likewise.
(ctanh_downward_test_data): Likewise.
(ctanh_upward_test_data): Likewise.
* math/gen-auto-libm-tests.c (func_calc_method): Add value
mpc_c_c.
(func_calc_desc): Add mpc_c_c union field.
(FUNC_mpc_c_c): New macro.
(test_functions): Add cacos, cacosh, casin, casinh, catan, catanh,
ccos, ccosh, cexp, clog, clog10, csin, csinh, csqrt, ctan and
ctanh.
(special_fill_min_subnorm_p120): New function.
(special_real_inputs): Add min_subnorm_p120.
(calc_generic_results): Handle mpc_c_c.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-20 12:32:44 +00:00
|
|
|
ccosh 0.0 0.0
|
|
|
|
ccosh -0 0.0
|
|
|
|
ccosh 0.0 -0
|
|
|
|
ccosh -0 -0
|
|
|
|
|
|
|
|
ccosh 0.75 1.25
|
|
|
|
ccosh -2 -3
|
|
|
|
|
|
|
|
ccosh 89.5 0.75
|
|
|
|
ccosh -89.5 0.75
|
|
|
|
ccosh 89.5 -0.75
|
|
|
|
ccosh -89.5 -0.75
|
|
|
|
ccosh 710.5 0.75
|
|
|
|
ccosh -710.5 0.75
|
|
|
|
ccosh 710.5 -0.75
|
|
|
|
ccosh -710.5 -0.75
|
|
|
|
ccosh 11357.25 0.75
|
|
|
|
ccosh -11357.25 0.75
|
|
|
|
ccosh 11357.25 -0.75
|
|
|
|
ccosh -11357.25 -0.75
|
|
|
|
|
|
|
|
ccosh 180 0x1p-149
|
|
|
|
ccosh 1440 0x1p-1074
|
|
|
|
ccosh 22730 0x1p-16434
|
|
|
|
|
|
|
|
ccosh min_subnorm_p120 0x1p-120
|
|
|
|
ccosh 0x1p-120 min_subnorm_p120
|
|
|
|
|
Fix cexp, ccos, ccosh, csin, csinh spurious underflows (bug 18594).
cexp, ccos, ccosh, csin and csinh have spurious underflows in cases
where they compute sin of the smallest normal, that produces an
underflow exception (depending on which sin implementation is in use)
but the final result does not underflow. ctan and ctanh may also have
such underflows, or they may be latent (the issue there is that
e.g. ctan (DBL_MIN) should, rounded upwards, be the next double value
above DBL_MIN, which under glibc's accuracy goals may not have an
underflow exception, but the intermediate computation of sin (DBL_MIN)
would legitimately underflow on before-rounding architectures).
This patch fixes all those functions so they use plain comparisons (>
DBL_MIN etc.) instead of comparing the result of fpclassify with
FP_SUBNORMAL (in all these cases, we already know the number being
compared is finite). Note that in the case of csin / csinf / csinl,
there is no need for fabs calls in the comparison because the real
part has already been reduced to its absolute value.
As the patch fixes the failures that previously obstructed moving
tests of cexp to use ALL_RM_TEST, those tests are moved to ALL_RM_TEST
by the patch (two functions remain yet to be converted).
Tested for x86_64 and x86 and ulps updated accordingly.
[BZ #18594]
* math/s_ccosh.c (__ccosh): Compare with least normal value
instead of comparing class with FP_SUBNORMAL.
* math/s_ccoshf.c (__ccoshf): Likewise.
* math/s_ccoshl.c (__ccoshl): Likewise.
* math/s_cexp.c (__cexp): Likewise.
* math/s_cexpf.c (__cexpf): Likewise.
* math/s_cexpl.c (__cexpl): Likewise.
* math/s_csin.c (__csin): Likewise.
* math/s_csinf.c (__csinf): Likewise.
* math/s_csinh.c (__csinh): Likewise.
* math/s_csinhf.c (__csinhf): Likewise.
* math/s_csinhl.c (__csinhl): Likewise.
* math/s_csinl.c (__csinl): Likewise.
* math/s_ctan.c (__ctan): Likewise.
* math/s_ctanf.c (__ctanf): Likewise.
* math/s_ctanh.c (__ctanh): Likewise.
* math/s_ctanhf.c (__ctanhf): Likewise.
* math/s_ctanhl.c (__ctanhl): Likewise.
* math/s_ctanl.c (__ctanl): Likewise.
* math/auto-libm-test-in: Add more tests of ccos, ccosh, cexp,
csin, csinh, ctan and ctanh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (cexp_test): Use ALL_RM_TEST.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-06-24 21:04:51 +00:00
|
|
|
ccosh 1 min
|
|
|
|
ccosh 1 -min
|
|
|
|
ccosh 80 min_subnorm
|
|
|
|
ccosh 80 -min_subnorm
|
|
|
|
|
Move various TEST_c_c tests from libm-test.inc to auto-libm-test-inc.
This patch moves tests of ccos, ccosh, cexp, clog, csqrt, ctan and
ctanh to auto-libm-test-in, adding the required support to
gen-auto-libm-tests. Other TEST_c_c functions aren't moved for now
(although the relevant table entries are put in gen-auto-libm-tests
for it to know how to handle them): clog10 because of a known MPC bug
causing it to hang for at least some pure imaginary inputs (fixed in
SVN, but I'd rather not rely on unreleased versions of MPFR or MPC
even if relying on very recent releases); the inverse trig and
hyperbolic functions because of known slowness in special cases; and
csin / csinh because of observed slowness that I need to investigate
and report to the MPC maintainers. Slowness can be bypassed by moving
to incremental generation (only for new / changed tests) rather than
regenerating the whole of auto-libm-test-out every time, but that
needs implementing. (This patch takes the time for running
gen-auto-libm-tests from about one second to seven, on my system,
which I think is reasonable. The slow functions would make it take
several minutes at least, which seems unreasonable.)
Tested x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add tests of ccos, ccosh, cexp, clog,
csqrt, ctan and ctanh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (TEST_COND_x86_64): New macro.
(TEST_COND_x86): Likewise.
(ccos_test_data): Use AUTO_TESTS_c_c.
(ccosh_test_data): Likewise.
(cexp_test_data): Likewise.
(clog_test_data): Likewise.
(csqrt_test_data): Likewise.
(ctan_test_data): Likewise.
(ctan_tonearest_test_data): Likewise.
(ctan_towardzero_test_data): Likewise.
(ctan_downward_test_data): Likewise.
(ctan_upward_test_data): Likewise.
(ctanh_test_data): Likewise.
(ctanh_tonearest_test_data): Likewise.
(ctanh_towardzero_test_data): Likewise.
(ctanh_downward_test_data): Likewise.
(ctanh_upward_test_data): Likewise.
* math/gen-auto-libm-tests.c (func_calc_method): Add value
mpc_c_c.
(func_calc_desc): Add mpc_c_c union field.
(FUNC_mpc_c_c): New macro.
(test_functions): Add cacos, cacosh, casin, casinh, catan, catanh,
ccos, ccosh, cexp, clog, clog10, csin, csinh, csqrt, ctan and
ctanh.
(special_fill_min_subnorm_p120): New function.
(special_real_inputs): Add min_subnorm_p120.
(calc_generic_results): Handle mpc_c_c.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-20 12:32:44 +00:00
|
|
|
cexp 0 0
|
|
|
|
cexp -0 0
|
|
|
|
cexp 0 -0
|
|
|
|
cexp -0 -0
|
|
|
|
|
|
|
|
cexp 0.75 1.25
|
|
|
|
cexp -2.0 -3.0
|
|
|
|
|
|
|
|
cexp 0 0x1p65
|
|
|
|
cexp 0 -0x1p65
|
|
|
|
cexp 50 0x1p127
|
|
|
|
|
|
|
|
cexp 0 1e22
|
|
|
|
cexp 0 0x1p1023
|
|
|
|
cexp 500 0x1p1023
|
|
|
|
|
|
|
|
cexp 0 0x1p16383
|
|
|
|
cexp -10000 0x1p16383
|
|
|
|
|
|
|
|
cexp 88.75 0.75
|
|
|
|
cexp -95 0.75
|
|
|
|
cexp 709.8125 0.75
|
|
|
|
cexp -720 0.75
|
|
|
|
cexp 11356.5625 0.75
|
|
|
|
cexp -11370 0.75
|
|
|
|
|
|
|
|
cexp 180 0x1p-149
|
|
|
|
cexp 1440 0x1p-1074
|
|
|
|
cexp 22730 0x1p-16434
|
|
|
|
|
|
|
|
cexp 1e6 0
|
|
|
|
cexp 1e6 min
|
|
|
|
cexp 1e6 -min
|
|
|
|
|
Fix cexp, ccos, ccosh, csin, csinh spurious underflows (bug 18594).
cexp, ccos, ccosh, csin and csinh have spurious underflows in cases
where they compute sin of the smallest normal, that produces an
underflow exception (depending on which sin implementation is in use)
but the final result does not underflow. ctan and ctanh may also have
such underflows, or they may be latent (the issue there is that
e.g. ctan (DBL_MIN) should, rounded upwards, be the next double value
above DBL_MIN, which under glibc's accuracy goals may not have an
underflow exception, but the intermediate computation of sin (DBL_MIN)
would legitimately underflow on before-rounding architectures).
This patch fixes all those functions so they use plain comparisons (>
DBL_MIN etc.) instead of comparing the result of fpclassify with
FP_SUBNORMAL (in all these cases, we already know the number being
compared is finite). Note that in the case of csin / csinf / csinl,
there is no need for fabs calls in the comparison because the real
part has already been reduced to its absolute value.
As the patch fixes the failures that previously obstructed moving
tests of cexp to use ALL_RM_TEST, those tests are moved to ALL_RM_TEST
by the patch (two functions remain yet to be converted).
Tested for x86_64 and x86 and ulps updated accordingly.
[BZ #18594]
* math/s_ccosh.c (__ccosh): Compare with least normal value
instead of comparing class with FP_SUBNORMAL.
* math/s_ccoshf.c (__ccoshf): Likewise.
* math/s_ccoshl.c (__ccoshl): Likewise.
* math/s_cexp.c (__cexp): Likewise.
* math/s_cexpf.c (__cexpf): Likewise.
* math/s_cexpl.c (__cexpl): Likewise.
* math/s_csin.c (__csin): Likewise.
* math/s_csinf.c (__csinf): Likewise.
* math/s_csinh.c (__csinh): Likewise.
* math/s_csinhf.c (__csinhf): Likewise.
* math/s_csinhl.c (__csinhl): Likewise.
* math/s_csinl.c (__csinl): Likewise.
* math/s_ctan.c (__ctan): Likewise.
* math/s_ctanf.c (__ctanf): Likewise.
* math/s_ctanh.c (__ctanh): Likewise.
* math/s_ctanhf.c (__ctanhf): Likewise.
* math/s_ctanhl.c (__ctanhl): Likewise.
* math/s_ctanl.c (__ctanl): Likewise.
* math/auto-libm-test-in: Add more tests of ccos, ccosh, cexp,
csin, csinh, ctan and ctanh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (cexp_test): Use ALL_RM_TEST.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-06-24 21:04:51 +00:00
|
|
|
cexp 1 min
|
|
|
|
cexp 1 -min
|
|
|
|
cexp 80 min_subnorm
|
|
|
|
cexp 80 -min_subnorm
|
|
|
|
|
2015-06-18 20:51:17 +00:00
|
|
|
cexp min min_subnorm
|
|
|
|
cexp min -min_subnorm
|
Move various TEST_c_c tests from libm-test.inc to auto-libm-test-inc.
This patch moves tests of ccos, ccosh, cexp, clog, csqrt, ctan and
ctanh to auto-libm-test-in, adding the required support to
gen-auto-libm-tests. Other TEST_c_c functions aren't moved for now
(although the relevant table entries are put in gen-auto-libm-tests
for it to know how to handle them): clog10 because of a known MPC bug
causing it to hang for at least some pure imaginary inputs (fixed in
SVN, but I'd rather not rely on unreleased versions of MPFR or MPC
even if relying on very recent releases); the inverse trig and
hyperbolic functions because of known slowness in special cases; and
csin / csinh because of observed slowness that I need to investigate
and report to the MPC maintainers. Slowness can be bypassed by moving
to incremental generation (only for new / changed tests) rather than
regenerating the whole of auto-libm-test-out every time, but that
needs implementing. (This patch takes the time for running
gen-auto-libm-tests from about one second to seven, on my system,
which I think is reasonable. The slow functions would make it take
several minutes at least, which seems unreasonable.)
Tested x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add tests of ccos, ccosh, cexp, clog,
csqrt, ctan and ctanh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (TEST_COND_x86_64): New macro.
(TEST_COND_x86): Likewise.
(ccos_test_data): Use AUTO_TESTS_c_c.
(ccosh_test_data): Likewise.
(cexp_test_data): Likewise.
(clog_test_data): Likewise.
(csqrt_test_data): Likewise.
(ctan_test_data): Likewise.
(ctan_tonearest_test_data): Likewise.
(ctan_towardzero_test_data): Likewise.
(ctan_downward_test_data): Likewise.
(ctan_upward_test_data): Likewise.
(ctanh_test_data): Likewise.
(ctanh_tonearest_test_data): Likewise.
(ctanh_towardzero_test_data): Likewise.
(ctanh_downward_test_data): Likewise.
(ctanh_upward_test_data): Likewise.
* math/gen-auto-libm-tests.c (func_calc_method): Add value
mpc_c_c.
(func_calc_desc): Add mpc_c_c union field.
(FUNC_mpc_c_c): New macro.
(test_functions): Add cacos, cacosh, casin, casinh, catan, catanh,
ccos, ccosh, cexp, clog, clog10, csin, csinh, csqrt, ctan and
ctanh.
(special_fill_min_subnorm_p120): New function.
(special_real_inputs): Add min_subnorm_p120.
(calc_generic_results): Handle mpc_c_c.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-20 12:32:44 +00:00
|
|
|
|
|
|
|
clog 0.75 1.25
|
|
|
|
clog -2 -3
|
|
|
|
|
2015-04-08 17:32:17 +00:00
|
|
|
clog 0x2.f2f308p+0 0x4.c3841p-4
|
|
|
|
clog 0xd.3de7ap-36 -0xe.cf143p-40
|
|
|
|
clog 0x2.21e65p+0 0x5.576cf8p-4
|
|
|
|
clog 0x1.f4755cp+0 -0x4.29411p-4
|
|
|
|
clog -0xf.9c4c8p-4 -0xa.b4101p+20
|
|
|
|
clog 0x7.40ac68p+0 0x4.251bb8p-4
|
|
|
|
clog 0xa.3ac3cp+68 0x1.47239ep+68
|
|
|
|
clog 0x3.8ff10cp+0 -0x6.b0794p-4
|
|
|
|
|
2015-04-09 22:14:00 +00:00
|
|
|
clog 0xa.a39ffp-4 -0x2.360c38p-4
|
|
|
|
clog 0x6.9a4569067b6ecp-4 0xb.0a30d15e7d798p-4
|
|
|
|
clog -0x1.105436p+0 -0x6.66396df3cc7ap-4
|
|
|
|
clog -0x2.c90b952282392dep-4 0x1.43cda16634cc7046p+0
|
|
|
|
|
Add more tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64.
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of atan, clog, clog10,
cos, csqrt, erf, erfc, exp2, lgamma, log1p, sin, sincos, tanh and
tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-02 21:06:33 +00:00
|
|
|
clog -0x9.93d164127d9fp-4 0x7.c5c8d8p-4
|
|
|
|
clog -0xa.5920ap-4 -0x6.2cda5p-4
|
|
|
|
clog 0xd.d05c38ebb1b4p+60 -0x3.c22fdp+44
|
|
|
|
|
Add further tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64. (This process
must eventually converge, when my random test generation stops finding
inputs that increase the listed ulps, except maybe for any cases
uncovered where the errors exceed the maximum allowed 9ulp error and
so indicate actual libm bugs needing fixing.)
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of acosh, atanh, clog,
clog10, csqrt, erfc, exp2, expm1, log10, log2 and sinh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-05 22:59:41 +00:00
|
|
|
clog -0xa.19f8ec252c58d5p-4 0x7.d10cdec29a141538p-4
|
|
|
|
clog -0xa.7ac41a0b417cb8fp-4 -0x6.c5a32eaeedd4p-4
|
|
|
|
clog 0x3.c16p-136 0x8p-152
|
|
|
|
clog -0x1.0a69de710590dp+0 -0x7.bc7e121e2b0d1088p-4
|
|
|
|
|
Move various TEST_c_c tests from libm-test.inc to auto-libm-test-inc.
This patch moves tests of ccos, ccosh, cexp, clog, csqrt, ctan and
ctanh to auto-libm-test-in, adding the required support to
gen-auto-libm-tests. Other TEST_c_c functions aren't moved for now
(although the relevant table entries are put in gen-auto-libm-tests
for it to know how to handle them): clog10 because of a known MPC bug
causing it to hang for at least some pure imaginary inputs (fixed in
SVN, but I'd rather not rely on unreleased versions of MPFR or MPC
even if relying on very recent releases); the inverse trig and
hyperbolic functions because of known slowness in special cases; and
csin / csinh because of observed slowness that I need to investigate
and report to the MPC maintainers. Slowness can be bypassed by moving
to incremental generation (only for new / changed tests) rather than
regenerating the whole of auto-libm-test-out every time, but that
needs implementing. (This patch takes the time for running
gen-auto-libm-tests from about one second to seven, on my system,
which I think is reasonable. The slow functions would make it take
several minutes at least, which seems unreasonable.)
Tested x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add tests of ccos, ccosh, cexp, clog,
csqrt, ctan and ctanh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (TEST_COND_x86_64): New macro.
(TEST_COND_x86): Likewise.
(ccos_test_data): Use AUTO_TESTS_c_c.
(ccosh_test_data): Likewise.
(cexp_test_data): Likewise.
(clog_test_data): Likewise.
(csqrt_test_data): Likewise.
(ctan_test_data): Likewise.
(ctan_tonearest_test_data): Likewise.
(ctan_towardzero_test_data): Likewise.
(ctan_downward_test_data): Likewise.
(ctan_upward_test_data): Likewise.
(ctanh_test_data): Likewise.
(ctanh_tonearest_test_data): Likewise.
(ctanh_towardzero_test_data): Likewise.
(ctanh_downward_test_data): Likewise.
(ctanh_upward_test_data): Likewise.
* math/gen-auto-libm-tests.c (func_calc_method): Add value
mpc_c_c.
(func_calc_desc): Add mpc_c_c union field.
(FUNC_mpc_c_c): New macro.
(test_functions): Add cacos, cacosh, casin, casinh, catan, catanh,
ccos, ccosh, cexp, clog, clog10, csin, csinh, csqrt, ctan and
ctanh.
(special_fill_min_subnorm_p120): New function.
(special_real_inputs): Add min_subnorm_p120.
(calc_generic_results): Handle mpc_c_c.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-20 12:32:44 +00:00
|
|
|
clog 0x1.fffffep+127 0x1.fffffep+127
|
|
|
|
clog 0x1.fffffep+127 1.0
|
|
|
|
clog 0x1p-149 0x1p-149
|
|
|
|
clog 0x1p-147 0x1p-147
|
|
|
|
clog 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023
|
|
|
|
clog 0x1.fffffffffffffp+1023 0x1p+1023
|
|
|
|
clog 0x1p-1074 0x1p-1074
|
|
|
|
clog 0x1p-1073 0x1p-1073
|
|
|
|
clog 0x1.fp+16383 0x1.fp+16383
|
|
|
|
clog 0x1.fp+16383 0x1p+16383
|
|
|
|
clog 0x1p-16440 0x1p-16441
|
|
|
|
|
|
|
|
clog 0x1p-149 0x1.fp+127
|
|
|
|
clog -0x1p-149 0x1.fp+127
|
|
|
|
clog 0x1p-149 -0x1.fp+127
|
|
|
|
clog -0x1p-149 -0x1.fp+127
|
|
|
|
clog -0x1.fp+127 0x1p-149
|
|
|
|
clog -0x1.fp+127 -0x1p-149
|
|
|
|
clog 0x1.fp+127 0x1p-149
|
|
|
|
clog 0x1.fp+127 -0x1p-149
|
|
|
|
clog 0x1p-1074 0x1.fp+1023
|
|
|
|
clog -0x1p-1074 0x1.fp+1023
|
|
|
|
clog 0x1p-1074 -0x1.fp+1023
|
|
|
|
clog -0x1p-1074 -0x1.fp+1023
|
|
|
|
clog -0x1.fp+1023 0x1p-1074
|
|
|
|
clog -0x1.fp+1023 -0x1p-1074
|
|
|
|
clog 0x1.fp+1023 0x1p-1074
|
|
|
|
clog 0x1.fp+1023 -0x1p-1074
|
|
|
|
clog 0x1p-16445 0x1.fp+16383
|
|
|
|
clog -0x1p-16445 0x1.fp+16383
|
|
|
|
clog 0x1p-16445 -0x1.fp+16383
|
|
|
|
clog -0x1p-16445 -0x1.fp+16383
|
|
|
|
clog -0x1.fp+16383 0x1p-16445
|
|
|
|
clog -0x1.fp+16383 -0x1p-16445
|
|
|
|
clog 0x1.fp+16383 0x1p-16445
|
|
|
|
clog 0x1.fp+16383 -0x1p-16445
|
|
|
|
clog 0x1p-16494 0x1.fp+16383
|
|
|
|
clog -0x1p-16494 0x1.fp+16383
|
|
|
|
clog 0x1p-16494 -0x1.fp+16383
|
|
|
|
clog -0x1p-16494 -0x1.fp+16383
|
|
|
|
clog -0x1.fp+16383 0x1p-16494
|
|
|
|
clog -0x1.fp+16383 -0x1p-16494
|
|
|
|
clog 0x1.fp+16383 0x1p-16494
|
|
|
|
clog 0x1.fp+16383 -0x1p-16494
|
|
|
|
|
|
|
|
clog 1.0 0x1.234566p-10
|
|
|
|
clog -1.0 0x1.234566p-20
|
|
|
|
clog 0x1.234566p-30 1.0
|
|
|
|
clog -0x1.234566p-40 -1.0
|
|
|
|
clog 0x1.234566p-50 1.0
|
|
|
|
clog 0x1.234566p-60 1.0
|
|
|
|
clog 0x1p-62 1.0
|
|
|
|
clog 0x1p-63 1.0
|
|
|
|
clog 0x1p-64 1.0
|
|
|
|
clog 0x1p-510 1.0
|
|
|
|
clog 0x1p-511 1.0
|
|
|
|
clog 0x1p-512 1.0
|
|
|
|
clog 0x1p-8190 1.0
|
|
|
|
clog 0x1p-8191 1.0
|
|
|
|
clog 0x1p-8192 1.0
|
|
|
|
|
|
|
|
clog 0x1.000566p0 0x1.234p-10
|
|
|
|
clog 0x1.000566p0 0x1.234p-100
|
|
|
|
clog -0x1.0000000123456p0 0x1.2345678p-30
|
|
|
|
clog -0x1.0000000123456p0 0x1.2345678p-1000
|
|
|
|
clog 0x1.00000000000000123456789abcp0 0x1.23456789p-60
|
|
|
|
clog 0x1.00000000000000123456789abcp0 0x1.23456789p-1000
|
|
|
|
|
|
|
|
clog 0x0.ffffffp0 0x0.ffffffp-100
|
|
|
|
clog 0x0.fffffffffffff8p0 0x0.fffffffffffff8p-1000
|
|
|
|
clog 0x0.ffffffffffffffffp0 0x0.ffffffffffffffffp-15000
|
|
|
|
|
|
|
|
clog 0x1a6p-10 0x3a5p-10
|
|
|
|
clog 0xf2p-10 0x3e3p-10
|
|
|
|
clog 0x4d4ep-15 0x6605p-15
|
|
|
|
clog 0x2818p-15 0x798fp-15
|
|
|
|
clog 0x9b57bp-20 0xcb7b4p-20
|
|
|
|
clog 0x2731p-20 0xfffd0p-20
|
|
|
|
clog 0x2ede88p-23 0x771c3fp-23
|
|
|
|
clog 0x11682p-23 0x7ffed1p-23
|
|
|
|
clog 0xa1f2c1p-24 0xc643aep-24
|
|
|
|
clog 0x659feap-24 0xeaf6f9p-24
|
|
|
|
clog 0x4447d7175p-35 0x6c445e00ap-35
|
|
|
|
clog 0x2dd46725bp-35 0x7783a1284p-35
|
|
|
|
clog 0x164c74eea876p-45 0x16f393482f77p-45
|
|
|
|
clog 0xfe961079616p-45 0x1bc37e09e6d1p-45
|
|
|
|
clog 0xa4722f19346cp-51 0x7f9631c5e7f07p-51
|
|
|
|
clog 0x10673dd0f2481p-51 0x7ef1d17cefbd2p-51
|
|
|
|
clog 0x8ecbf810c4ae6p-52 0xd479468b09a37p-52
|
|
|
|
clog 0x5b06b680ea2ccp-52 0xef452b965da9fp-52
|
|
|
|
clog 0x659b70ab7971bp-53 0x1f5d111e08abecp-53
|
|
|
|
clog 0x15cfbd1990d1ffp-53 0x176a3973e09a9ap-53
|
|
|
|
clog 0x1367a310575591p-54 0x3cfcc0a0541f60p-54
|
|
|
|
clog 0x55cb6d0c83af5p-55 0x7fe33c0c7c4e90p-55
|
|
|
|
clog 0x298c62cb546588a7p-63 0x7911b1dfcc4ecdaep-63
|
|
|
|
clog 0x4d9c37e2b5cb4533p-63 0x65c98be2385a042ep-63
|
|
|
|
clog 0x602fd5037c4792efp-64 0xed3e2086dcca80b8p-64
|
|
|
|
clog 0x6b10b4f3520217b6p-64 0xe8893cbb449253a1p-64
|
|
|
|
clog 0x81b7efa81fc35ad1p-65 0x1ef4b835f1c79d812p-65
|
|
|
|
clog 0x3f96469050f650869c2p-75 0x6f16b2c9c8b05988335p-75
|
|
|
|
clog 0x3157fc1d73233e580c8p-75 0x761b52ccd435d7c7f5fp-75
|
|
|
|
clog 0x155f8afc4c48685bf63610p-85 0x17d0cf2652cdbeb1294e19p-85
|
|
|
|
clog 0x13836d58a13448d750b4b9p-85 0x195ca7bc3ab4f9161edbe6p-85
|
|
|
|
clog 0x1df515eb171a808b9e400266p-95 0x7c71eb0cd4688dfe98581c77p-95
|
|
|
|
clog 0xe33f66c9542ca25cc43c867p-95 0x7f35a68ebd3704a43c465864p-95
|
|
|
|
clog 0x6771f22c64ed551b857c128b4cp-105 0x1f570e7a13cc3cf2f44fd793ea1p-105
|
|
|
|
clog 0x15d8ab6ed05ca514086ac3a1e84p-105 0x1761e480aa094c0b10b34b09ce9p-105
|
|
|
|
clog 0x187190c1a334497bdbde5a95f48p-106 0x3b25f08062d0a095c4cfbbc338dp-106
|
|
|
|
clog 0x6241ef0da53f539f02fad67dabp-106 0x3fb46641182f7efd9caa769dac0p-106
|
|
|
|
clog 0x3e1d0a105ac4ebeacd9c6952d34cp-112 0xf859b3d1b06d005dcbb5516d5479p-112
|
|
|
|
clog 0x47017a2e36807acb1e5214b209dep-112 0xf5f4a550c9d75e3bb1839d865f0dp-112
|
|
|
|
clog 0x148f818cb7a9258fca942ade2a0cap-113 0x18854a34780b8333ec53310ad7001p-113
|
|
|
|
clog 0xfd95243681c055c2632286921092p-113 0x1bccabcd29ca2152860ec29e34ef7p-113
|
|
|
|
clog 0xdb85c467ee2aadd5f425fe0f4b8dp-114 0x3e83162a0f95f1dcbf97dddf410eap-114
|
|
|
|
clog 0x1415bcaf2105940d49a636e98ae59p-115 0x7e6a150adfcd1b0921d44b31f40f4p-115
|
|
|
|
|
2014-02-19 14:26:29 +00:00
|
|
|
clog10 0.75 1.25
|
|
|
|
clog10 -2 -3
|
|
|
|
|
2015-04-08 17:32:17 +00:00
|
|
|
clog10 0x2.f2f308p+0 0x4.c3841p-4
|
|
|
|
clog10 0xd.3de7ap-36 -0xe.cf143p-40
|
|
|
|
clog10 0x2.21e65p+0 0x5.576cf8p-4
|
|
|
|
clog10 0x1.f4755cp+0 -0x4.29411p-4
|
|
|
|
clog10 -0xf.9c4c8p-4 -0xa.b4101p+20
|
|
|
|
clog10 0x7.40ac68p+0 0x4.251bb8p-4
|
|
|
|
clog10 0xa.3ac3cp+68 0x1.47239ep+68
|
|
|
|
clog10 0x3.8ff10cp+0 -0x6.b0794p-4
|
|
|
|
|
2015-04-09 22:14:00 +00:00
|
|
|
clog10 0x2.83f8ap+0 -0xb.0b529p-4
|
|
|
|
clog10 -0x2.eb21fcp-4 -0x6.59bbc8p-4
|
|
|
|
clog10 -0x3.3f7fc4p-4 0xb.ba599p-4
|
|
|
|
clog10 0x1.cd1ab2p-124 -0x8p-152
|
|
|
|
clog10 0xa.32054p-4 0x2.c7e71cp-4
|
|
|
|
clog10 -0x5.9ecf8c7b5a0f4p-4 0xa.a945e5f8761c8p-4
|
|
|
|
clog10 0x1.7a858p+0 -0x6.d940dp-4
|
|
|
|
clog10 -0x2.51320d99da5a2p-4 0x3.b8176p-4
|
|
|
|
clog10 -0x1.25c2d3e172df8p+0 0
|
|
|
|
clog10 0x1.0c684e35d0b2ap+0 -0x7.37df8a65c28fp-4
|
|
|
|
|
Add more tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64.
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of atan, clog, clog10,
cos, csqrt, erf, erfc, exp2, lgamma, log1p, sin, sincos, tanh and
tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-02 21:06:33 +00:00
|
|
|
clog10 -0x9.93d164127d9fp-4 0x7.c5c8d8p-4
|
|
|
|
clog10 -0xa.5920ap-4 -0x6.2cda5p-4
|
|
|
|
clog10 0xd.d05c38ebb1b4p+60 -0x3.c22fdp+44
|
|
|
|
|
Add further tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64. (This process
must eventually converge, when my random test generation stops finding
inputs that increase the listed ulps, except maybe for any cases
uncovered where the errors exceed the maximum allowed 9ulp error and
so indicate actual libm bugs needing fixing.)
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of acosh, atanh, clog,
clog10, csqrt, erfc, exp2, expm1, log10, log2 and sinh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-05 22:59:41 +00:00
|
|
|
clog10 -0xa.19f8ec252c58d5p-4 0x7.d10cdec29a141538p-4
|
|
|
|
clog10 -0xa.7ac41a0b417cb8fp-4 -0x6.c5a32eaeedd4p-4
|
|
|
|
clog10 0x3.c16p-136 0x8p-152
|
|
|
|
clog10 -0x1.0a69de710590dp+0 -0x7.bc7e121e2b0d1088p-4
|
|
|
|
|
2014-02-19 14:26:29 +00:00
|
|
|
clog10 0x1.fffffep+127 0x1.fffffep+127
|
|
|
|
clog10 0x1.fffffep+127 1.0
|
|
|
|
clog10 0x1p-149 0x1p-149
|
|
|
|
clog10 0x1p-147 0x1p-147
|
|
|
|
clog10 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023
|
|
|
|
clog10 0x1.fffffffffffffp+1023 0x1p+1023
|
|
|
|
clog10 0x1p-1074 0x1p-1074
|
|
|
|
clog10 0x1p-1073 0x1p-1073
|
|
|
|
clog10 0x1.fp+16383 0x1.fp+16383
|
|
|
|
clog10 0x1.fp+16383 0x1p+16383
|
|
|
|
clog10 0x1p-16440 0x1p-16441
|
|
|
|
|
|
|
|
clog10 0x1p-149 0x1.fp+127
|
|
|
|
clog10 -0x1p-149 0x1.fp+127
|
|
|
|
clog10 0x1p-149 -0x1.fp+127
|
|
|
|
clog10 -0x1p-149 -0x1.fp+127
|
|
|
|
clog10 -0x1.fp+127 0x1p-149
|
|
|
|
clog10 -0x1.fp+127 -0x1p-149
|
|
|
|
clog10 0x1.fp+127 0x1p-149
|
|
|
|
clog10 0x1.fp+127 -0x1p-149
|
|
|
|
clog10 0x1p-1074 0x1.fp+1023
|
|
|
|
clog10 -0x1p-1074 0x1.fp+1023
|
|
|
|
clog10 0x1p-1074 -0x1.fp+1023
|
|
|
|
clog10 -0x1p-1074 -0x1.fp+1023
|
|
|
|
clog10 -0x1.fp+1023 0x1p-1074
|
|
|
|
clog10 -0x1.fp+1023 -0x1p-1074
|
|
|
|
clog10 0x1.fp+1023 0x1p-1074
|
|
|
|
clog10 0x1.fp+1023 -0x1p-1074
|
|
|
|
clog10 0x1p-16445 0x1.fp+16383
|
|
|
|
clog10 -0x1p-16445 0x1.fp+16383
|
|
|
|
clog10 0x1p-16445 -0x1.fp+16383
|
|
|
|
clog10 -0x1p-16445 -0x1.fp+16383
|
|
|
|
clog10 -0x1.fp+16383 0x1p-16445
|
|
|
|
clog10 -0x1.fp+16383 -0x1p-16445
|
|
|
|
clog10 0x1.fp+16383 0x1p-16445
|
|
|
|
clog10 0x1.fp+16383 -0x1p-16445
|
|
|
|
clog10 0x1p-16494 0x1.fp+16383
|
|
|
|
clog10 -0x1p-16494 0x1.fp+16383
|
|
|
|
clog10 0x1p-16494 -0x1.fp+16383
|
|
|
|
clog10 -0x1p-16494 -0x1.fp+16383
|
|
|
|
clog10 -0x1.fp+16383 0x1p-16494
|
|
|
|
clog10 -0x1.fp+16383 -0x1p-16494
|
|
|
|
clog10 0x1.fp+16383 0x1p-16494
|
|
|
|
clog10 0x1.fp+16383 -0x1p-16494
|
|
|
|
|
|
|
|
clog10 1.0 0x1.234566p-10
|
|
|
|
clog10 -1.0 0x1.234566p-20
|
|
|
|
clog10 0x1.234566p-30 1.0
|
|
|
|
clog10 -0x1.234566p-40 -1.0
|
|
|
|
clog10 0x1.234566p-50 1.0
|
|
|
|
clog10 0x1.234566p-60 1.0
|
|
|
|
clog10 0x1p-61 1.0
|
|
|
|
clog10 0x1p-62 1.0
|
|
|
|
clog10 0x1p-63 1.0
|
|
|
|
clog10 0x1p-509 1.0
|
|
|
|
clog10 0x1p-510 1.0
|
|
|
|
clog10 0x1p-511 1.0
|
|
|
|
clog10 0x1p-8189 1.0
|
|
|
|
clog10 0x1p-8190 1.0
|
|
|
|
clog10 0x1p-8191 1.0
|
|
|
|
|
|
|
|
clog10 0x1.000566p0 0x1.234p-10
|
|
|
|
clog10 0x1.000566p0 0x1.234p-100
|
|
|
|
clog10 -0x1.0000000123456p0 0x1.2345678p-30
|
|
|
|
clog10 -0x1.0000000123456p0 0x1.2345678p-1000
|
|
|
|
clog10 0x1.00000000000000123456789abcp0 0x1.23456789p-60
|
|
|
|
clog10 0x1.00000000000000123456789abcp0 0x1.23456789p-1000
|
|
|
|
|
|
|
|
clog10 0x0.ffffffp0 0x0.ffffffp-100
|
|
|
|
clog10 0x0.fffffffffffff8p0 0x0.fffffffffffff8p-1000
|
|
|
|
clog10 0x0.ffffffffffffffffp0 0x0.ffffffffffffffffp-15000
|
|
|
|
|
|
|
|
clog10 0x1a6p-10 0x3a5p-10
|
|
|
|
clog10 0xf2p-10 0x3e3p-10
|
|
|
|
clog10 0x4d4ep-15 0x6605p-15
|
|
|
|
clog10 0x2818p-15 0x798fp-15
|
|
|
|
clog10 0x9b57bp-20 0xcb7b4p-20
|
|
|
|
clog10 0x2731p-20 0xfffd0p-20
|
|
|
|
clog10 0x2ede88p-23 0x771c3fp-23
|
|
|
|
clog10 0x11682p-23 0x7ffed1p-23
|
|
|
|
clog10 0xa1f2c1p-24 0xc643aep-24
|
|
|
|
clog10 0x659feap-24 0xeaf6f9p-24
|
|
|
|
clog10 0x4447d7175p-35 0x6c445e00ap-35
|
|
|
|
clog10 0x2dd46725bp-35 0x7783a1284p-35
|
|
|
|
clog10 0x164c74eea876p-45 0x16f393482f77p-45
|
|
|
|
clog10 0xfe961079616p-45 0x1bc37e09e6d1p-45
|
|
|
|
clog10 0xa4722f19346cp-51 0x7f9631c5e7f07p-51
|
|
|
|
clog10 0x10673dd0f2481p-51 0x7ef1d17cefbd2p-51
|
|
|
|
clog10 0x8ecbf810c4ae6p-52 0xd479468b09a37p-52
|
|
|
|
clog10 0x5b06b680ea2ccp-52 0xef452b965da9fp-52
|
|
|
|
clog10 0x659b70ab7971bp-53 0x1f5d111e08abecp-53
|
|
|
|
clog10 0x15cfbd1990d1ffp-53 0x176a3973e09a9ap-53
|
|
|
|
clog10 0x1367a310575591p-54 0x3cfcc0a0541f60p-54
|
|
|
|
clog10 0x55cb6d0c83af5p-55 0x7fe33c0c7c4e90p-55
|
|
|
|
clog10 0x298c62cb546588a7p-63 0x7911b1dfcc4ecdaep-63
|
|
|
|
clog10 0x4d9c37e2b5cb4533p-63 0x65c98be2385a042ep-63
|
|
|
|
clog10 0x602fd5037c4792efp-64 0xed3e2086dcca80b8p-64
|
|
|
|
clog10 0x6b10b4f3520217b6p-64 0xe8893cbb449253a1p-64
|
|
|
|
clog10 0x81b7efa81fc35ad1p-65 0x1ef4b835f1c79d812p-65
|
|
|
|
clog10 0x3f96469050f650869c2p-75 0x6f16b2c9c8b05988335p-75
|
|
|
|
clog10 0x3157fc1d73233e580c8p-75 0x761b52ccd435d7c7f5fp-75
|
|
|
|
clog10 0x155f8afc4c48685bf63610p-85 0x17d0cf2652cdbeb1294e19p-85
|
|
|
|
clog10 0x13836d58a13448d750b4b9p-85 0x195ca7bc3ab4f9161edbe6p-85
|
|
|
|
clog10 0x1df515eb171a808b9e400266p-95 0x7c71eb0cd4688dfe98581c77p-95
|
|
|
|
clog10 0xe33f66c9542ca25cc43c867p-95 0x7f35a68ebd3704a43c465864p-95
|
|
|
|
clog10 0x6771f22c64ed551b857c128b4cp-105 0x1f570e7a13cc3cf2f44fd793ea1p-105
|
|
|
|
clog10 0x15d8ab6ed05ca514086ac3a1e84p-105 0x1761e480aa094c0b10b34b09ce9p-105
|
|
|
|
clog10 0x187190c1a334497bdbde5a95f48p-106 0x3b25f08062d0a095c4cfbbc338dp-106
|
|
|
|
clog10 0x6241ef0da53f539f02fad67dabp-106 0x3fb46641182f7efd9caa769dac0p-106
|
|
|
|
clog10 0x3e1d0a105ac4ebeacd9c6952d34cp-112 0xf859b3d1b06d005dcbb5516d5479p-112
|
|
|
|
clog10 0x47017a2e36807acb1e5214b209dep-112 0xf5f4a550c9d75e3bb1839d865f0dp-112
|
|
|
|
clog10 0x148f818cb7a9258fca942ade2a0cap-113 0x18854a34780b8333ec53310ad7001p-113
|
|
|
|
clog10 0xfd95243681c055c2632286921092p-113 0x1bccabcd29ca2152860ec29e34ef7p-113
|
|
|
|
clog10 0xdb85c467ee2aadd5f425fe0f4b8dp-114 0x3e83162a0f95f1dcbf97dddf410eap-114
|
|
|
|
clog10 0x1415bcaf2105940d49a636e98ae59p-115 0x7e6a150adfcd1b0921d44b31f40f4p-115
|
|
|
|
|
2013-11-30 22:04:13 +00:00
|
|
|
cos 0
|
|
|
|
cos -0
|
|
|
|
cos pi/3
|
|
|
|
cos 2pi/3
|
|
|
|
cos pi/2
|
|
|
|
cos 0.75
|
|
|
|
cos 0x1p65
|
|
|
|
cos -0x1p65
|
|
|
|
cos 0.80190127184058835
|
|
|
|
cos 0x1.442f74p+15
|
|
|
|
cos 1e22
|
|
|
|
cos 0x1p1023
|
|
|
|
cos 0x1p16383
|
|
|
|
cos 0x1p+120
|
|
|
|
cos 0x1p+127
|
|
|
|
cos 0x1.fffff8p+127
|
|
|
|
cos 0x1.fffffep+127
|
|
|
|
cos 0x1p+50
|
|
|
|
cos 0x1p+28
|
|
|
|
cos 0x1.000000cf4a2a2p0
|
|
|
|
cos 0x1.0000010b239a9p0
|
|
|
|
cos 0x1.00000162a932bp0
|
|
|
|
cos 0x1.000002d452a10p0
|
|
|
|
cos 0x1.000005bc7d86dp0
|
2014-02-27 15:42:09 +00:00
|
|
|
cos 0x1.200145a975ce6p32
|
2013-11-30 22:04:13 +00:00
|
|
|
cos 1
|
|
|
|
cos 2
|
|
|
|
cos 3
|
|
|
|
cos 4
|
|
|
|
cos 5
|
|
|
|
cos 6
|
|
|
|
cos 7
|
|
|
|
cos 8
|
|
|
|
cos 9
|
|
|
|
cos 10
|
Add more libm-test coverage of [a-c]* real functions.
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).
* 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.
2013-12-20 21:03:39 +00:00
|
|
|
cos max
|
|
|
|
cos -max
|
|
|
|
cos min
|
|
|
|
cos -min
|
|
|
|
cos min_subnorm
|
|
|
|
cos -min_subnorm
|
2015-05-01 22:41:00 +00:00
|
|
|
cos -0x3.3de320f6be87ep+1020
|
Add more tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64.
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of atan, clog, clog10,
cos, csqrt, erf, erfc, exp2, lgamma, log1p, sin, sincos, tanh and
tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-02 21:06:33 +00:00
|
|
|
cos 0xe.9f1e5bc3bb88p+112
|
Add more tests of acosh, atanh, cos, csqrt, erfc, sin, sincos.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64.
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of acosh, atanh, cos,
csqrt, erfc, sin and sincos.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-06 17:30:18 +00:00
|
|
|
cos 0x4.7857dp+68
|
2013-11-30 22:04:13 +00:00
|
|
|
|
|
|
|
cosh 0
|
|
|
|
cosh -0
|
|
|
|
cosh 0.75
|
|
|
|
cosh 709.8893558127259666434838436543941497802734375
|
|
|
|
cosh -709.8893558127259666434838436543941497802734375
|
|
|
|
cosh 22
|
|
|
|
cosh 23
|
|
|
|
cosh 24
|
Add more libm-test coverage of [a-c]* real functions.
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).
* 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.
2013-12-20 21:03:39 +00:00
|
|
|
cosh 0x1p-5
|
|
|
|
cosh 0x1p-20
|
|
|
|
cosh -1
|
|
|
|
cosh 50
|
2015-03-24 23:48:04 +00:00
|
|
|
cosh -0xb.60713p+0
|
2015-04-30 22:32:08 +00:00
|
|
|
cosh -0x3.cee48p+0
|
Add more tests of various libm functions.
This patch adds more tests of various libm functions found through
random test generation to give increased ulps on 32-bit x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acosh, asin, asinh,
atanh, cabs, carg, cbrt, cosh, csqrt, erf, erfc, exp, exp10,
expm1, hypot, log, log10, log1p, log2, pow, sinh, tan and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-11 00:58:28 +00:00
|
|
|
cosh 0x2.f5d128p+0
|
|
|
|
cosh -0xd.0c03p+0
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
cosh -0x3.d04328728b72cp-4
|
2015-09-11 15:03:10 +00:00
|
|
|
cosh 0x1.629188p+4
|
2014-01-03 17:08:10 +00:00
|
|
|
# GCC bug 59666: results on directed rounding may be incorrect.
|
|
|
|
cosh max no-test-inline xfail-rounding:ldbl-128ibm
|
|
|
|
cosh -max no-test-inline xfail-rounding:ldbl-128ibm
|
Fix cosh spurious underflows from expm1 (bug 16354), inaccurate results near 0 (bug 17061).
This patch fixes bug 16354, spurious underflows from cosh when a tiny
argument is passed to expm1 and expm1 correctly underflows although
the final result of cosh should be 1. As noted in that bug, some
cases are latent because of expm1 implementations not raising
underflow (bug 16353), but all the implementations are fixed
similarly. They already contained checks for tiny arguments, but the
checks were too late to avoid underflow from expm1 (although they
would avoid underflow from subsequent squaring of the result of
expm1); they are moved before the expm1 calls.
The thresholds used for considering arguments tiny are not
particularly consistent in how they relate to the precision of the
floating-point format in question. They are, however, all sufficient
to ensure that the round-to-nearest result of cosh is indeed 1 below
the threshold (although sometimes they are smaller than necessary).
But the previous logic did not return 1, but the previously computed 1
+ expm1(abs(x)) value. And the thresholds in the ldbl-128 and
ldbl-128ibm code (0x1p-71L - I suspect 0x3f8b was intended in the code
instead of 0x3fb8 - and (roughly) 0x1p-55L) are not sufficient for
that value to be 1. So by moving the test for tiny arguments, and
consequently returning 1 directly now the expm1 value hasn't been
computed by that point, this patch also fixes bug 17061, the (large
number of ulps) inaccuracy for small arguments in those
implementations. Tests for that bug are duly added.
Tested x86_64 and x86 and ulps updated accordingly. Also tested for
mips64 and powerpc32 to validate the ldbl-128 and ldbl-128ibm changes.
[BZ #16354]
[BZ #17061]
* sysdeps/ieee754/dbl-64/e_cosh.c (__ieee754_cosh): Check for
small arguments before calling __expm1.
* sysdeps/ieee754/flt-32/e_coshf.c (__ieee754_coshf): Check for
small arguments before calling __expm1f.
* sysdeps/ieee754/ldbl-128/e_coshl.c (__ieee754_coshl): Check for
small arguments before calling __expm1l.
* sysdeps/ieee754/ldbl-128ibm/e_coshl.c (__ieee754_coshl):
Likewise.
* sysdeps/ieee754/ldbl-96/e_coshl.c (__ieee754_coshl): Likewise.
* math/auto-libm-test-in: Add more cosh tests. Do not allow
spurious underflow for some cosh tests.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
2014-06-23 20:20:10 +00:00
|
|
|
cosh min
|
|
|
|
cosh -min
|
|
|
|
cosh min_subnorm
|
|
|
|
cosh -min_subnorm
|
|
|
|
cosh 0x1p-56
|
|
|
|
cosh -0x1p-56
|
|
|
|
cosh 0x1p-72
|
|
|
|
cosh -0x1p-72
|
Add more libm-test coverage of [a-c]* real functions.
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).
* 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.
2013-12-20 21:03:39 +00:00
|
|
|
# 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
|
2014-01-03 17:08:10 +00:00
|
|
|
# GCC bug 59666: results on directed rounding may be incorrect.
|
|
|
|
cosh 0x2.c679d1f73f0fap+8 xfail-rounding:ldbl-128ibm
|
|
|
|
cosh 0x2.c679d1f73f0fcp+8 xfail-rounding:ldbl-128ibm
|
|
|
|
cosh -0x2.c679d1f73f0fap+8 xfail-rounding:ldbl-128ibm
|
|
|
|
cosh -0x2.c679d1f73f0fcp+8 xfail-rounding:ldbl-128ibm
|
|
|
|
cosh 0x2.c679d1f73f0fb624d358b213a7p+8 xfail-rounding:ldbl-128ibm
|
|
|
|
cosh 0x2.c679d1f73f0fb624d358b213a8p+8 xfail-rounding:ldbl-128ibm
|
|
|
|
cosh -0x2.c679d1f73f0fb624d358b213a7p+8 xfail-rounding:ldbl-128ibm
|
|
|
|
cosh -0x2.c679d1f73f0fb624d358b213a8p+8 xfail-rounding:ldbl-128ibm
|
|
|
|
cosh 0x2.c5d37700c6bb03a4p+12 no-test-inline xfail-rounding:ldbl-128ibm
|
|
|
|
cosh 0x2.c5d37700c6bb03a8p+12 no-test-inline xfail-rounding:ldbl-128ibm
|
|
|
|
cosh -0x2.c5d37700c6bb03a4p+12 no-test-inline xfail-rounding:ldbl-128ibm
|
|
|
|
cosh -0x2.c5d37700c6bb03a8p+12 no-test-inline xfail-rounding:ldbl-128ibm
|
|
|
|
cosh 0x2.c5d37700c6bb03a6c24b6c9b494cp+12 no-test-inline xfail-rounding:ldbl-128ibm
|
|
|
|
cosh 0x2.c5d37700c6bb03a6c24b6c9b494ep+12 no-test-inline xfail-rounding:ldbl-128ibm
|
|
|
|
cosh -0x2.c5d37700c6bb03a6c24b6c9b494cp+12 no-test-inline xfail-rounding:ldbl-128ibm
|
|
|
|
cosh -0x2.c5d37700c6bb03a6c24b6c9b494ep+12 no-test-inline xfail-rounding:ldbl-128ibm
|
2013-11-30 22:04:13 +00:00
|
|
|
|
2014-06-23 20:15:14 +00:00
|
|
|
cpow 1 0 0 0 ignore-zero-inf-sign
|
|
|
|
cpow 2 0 10 0 ignore-zero-inf-sign
|
2013-12-20 12:35:10 +00:00
|
|
|
# Bug 14473: cpow results inaccurate.
|
|
|
|
cpow e 0 0 2pi xfail
|
2014-06-23 20:15:14 +00:00
|
|
|
cpow 2 3 4 0 xfail-rounding
|
2013-12-20 12:35:10 +00:00
|
|
|
|
2014-06-23 20:15:14 +00:00
|
|
|
cpow 0.75 1.25 0.75 1.25 xfail-rounding
|
|
|
|
cpow 0.75 1.25 1.0 1.0 xfail-rounding
|
2013-12-20 12:35:10 +00:00
|
|
|
cpow 0.75 1.25 1.0 0.0
|
|
|
|
cpow 0.75 1.25 0.0 1.0
|
|
|
|
|
2015-06-24 16:37:44 +00:00
|
|
|
csin 0.0 0.0
|
|
|
|
csin -0 0.0
|
|
|
|
csin 0.0 -0
|
|
|
|
csin -0 -0
|
|
|
|
|
|
|
|
csin 0.75 1.25
|
|
|
|
csin -2 -3
|
|
|
|
|
|
|
|
csin 0.75 89.5
|
|
|
|
csin 0.75 -89.5
|
|
|
|
csin -0.75 89.5
|
|
|
|
csin -0.75 -89.5
|
|
|
|
csin 0.75 710.5
|
|
|
|
csin 0.75 -710.5
|
|
|
|
csin -0.75 710.5
|
|
|
|
csin -0.75 -710.5
|
|
|
|
csin 0.75 11357.25
|
|
|
|
csin 0.75 -11357.25
|
|
|
|
csin -0.75 11357.25
|
|
|
|
csin -0.75 -11357.25
|
|
|
|
|
2015-06-24 16:20:48 +00:00
|
|
|
csin 0.75 1e6
|
|
|
|
csin 0.75 -1e6
|
|
|
|
csin -0.75 1e6
|
|
|
|
csin -0.75 -1e6
|
|
|
|
|
2015-06-24 16:37:44 +00:00
|
|
|
csin 0x1p-149 180
|
|
|
|
csin 0x1p-1074 1440
|
|
|
|
csin 0x1p-16434 22730
|
|
|
|
|
Fix cexp, ccos, ccosh, csin, csinh spurious underflows (bug 18594).
cexp, ccos, ccosh, csin and csinh have spurious underflows in cases
where they compute sin of the smallest normal, that produces an
underflow exception (depending on which sin implementation is in use)
but the final result does not underflow. ctan and ctanh may also have
such underflows, or they may be latent (the issue there is that
e.g. ctan (DBL_MIN) should, rounded upwards, be the next double value
above DBL_MIN, which under glibc's accuracy goals may not have an
underflow exception, but the intermediate computation of sin (DBL_MIN)
would legitimately underflow on before-rounding architectures).
This patch fixes all those functions so they use plain comparisons (>
DBL_MIN etc.) instead of comparing the result of fpclassify with
FP_SUBNORMAL (in all these cases, we already know the number being
compared is finite). Note that in the case of csin / csinf / csinl,
there is no need for fabs calls in the comparison because the real
part has already been reduced to its absolute value.
As the patch fixes the failures that previously obstructed moving
tests of cexp to use ALL_RM_TEST, those tests are moved to ALL_RM_TEST
by the patch (two functions remain yet to be converted).
Tested for x86_64 and x86 and ulps updated accordingly.
[BZ #18594]
* math/s_ccosh.c (__ccosh): Compare with least normal value
instead of comparing class with FP_SUBNORMAL.
* math/s_ccoshf.c (__ccoshf): Likewise.
* math/s_ccoshl.c (__ccoshl): Likewise.
* math/s_cexp.c (__cexp): Likewise.
* math/s_cexpf.c (__cexpf): Likewise.
* math/s_cexpl.c (__cexpl): Likewise.
* math/s_csin.c (__csin): Likewise.
* math/s_csinf.c (__csinf): Likewise.
* math/s_csinh.c (__csinh): Likewise.
* math/s_csinhf.c (__csinhf): Likewise.
* math/s_csinhl.c (__csinhl): Likewise.
* math/s_csinl.c (__csinl): Likewise.
* math/s_ctan.c (__ctan): Likewise.
* math/s_ctanf.c (__ctanf): Likewise.
* math/s_ctanh.c (__ctanh): Likewise.
* math/s_ctanhf.c (__ctanhf): Likewise.
* math/s_ctanhl.c (__ctanhl): Likewise.
* math/s_ctanl.c (__ctanl): Likewise.
* math/auto-libm-test-in: Add more tests of ccos, ccosh, cexp,
csin, csinh, ctan and ctanh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (cexp_test): Use ALL_RM_TEST.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-06-24 21:04:51 +00:00
|
|
|
csin min 1
|
|
|
|
csin -min 1
|
|
|
|
csin min_subnorm 80
|
|
|
|
csin -min_subnorm 80
|
|
|
|
|
2015-06-24 16:37:44 +00:00
|
|
|
csinh 0.0 0.0
|
|
|
|
csinh -0 0.0
|
|
|
|
csinh 0.0 -0
|
|
|
|
csinh -0 -0
|
|
|
|
|
|
|
|
csinh 0.75 1.25
|
|
|
|
csinh -2 -3
|
|
|
|
|
|
|
|
csinh 89.5 0.75
|
|
|
|
csinh -89.5 0.75
|
|
|
|
csinh 89.5 -0.75
|
|
|
|
csinh -89.5 -0.75
|
|
|
|
csinh 710.5 0.75
|
|
|
|
csinh -710.5 0.75
|
|
|
|
csinh 710.5 -0.75
|
|
|
|
csinh -710.5 -0.75
|
|
|
|
csinh 11357.25 0.75
|
|
|
|
csinh -11357.25 0.75
|
|
|
|
csinh 11357.25 -0.75
|
|
|
|
csinh -11357.25 -0.75
|
|
|
|
|
2015-06-24 16:20:48 +00:00
|
|
|
csinh 1e6 0.75
|
|
|
|
csinh -1e6 0.75
|
|
|
|
csinh 1e6 -0.75
|
|
|
|
csinh -1e6 -0.75
|
|
|
|
|
2015-06-24 16:37:44 +00:00
|
|
|
csinh 180 0x1p-149
|
|
|
|
csinh 1440 0x1p-1074
|
|
|
|
csinh 22730 0x1p-16434
|
|
|
|
|
Fix cexp, ccos, ccosh, csin, csinh spurious underflows (bug 18594).
cexp, ccos, ccosh, csin and csinh have spurious underflows in cases
where they compute sin of the smallest normal, that produces an
underflow exception (depending on which sin implementation is in use)
but the final result does not underflow. ctan and ctanh may also have
such underflows, or they may be latent (the issue there is that
e.g. ctan (DBL_MIN) should, rounded upwards, be the next double value
above DBL_MIN, which under glibc's accuracy goals may not have an
underflow exception, but the intermediate computation of sin (DBL_MIN)
would legitimately underflow on before-rounding architectures).
This patch fixes all those functions so they use plain comparisons (>
DBL_MIN etc.) instead of comparing the result of fpclassify with
FP_SUBNORMAL (in all these cases, we already know the number being
compared is finite). Note that in the case of csin / csinf / csinl,
there is no need for fabs calls in the comparison because the real
part has already been reduced to its absolute value.
As the patch fixes the failures that previously obstructed moving
tests of cexp to use ALL_RM_TEST, those tests are moved to ALL_RM_TEST
by the patch (two functions remain yet to be converted).
Tested for x86_64 and x86 and ulps updated accordingly.
[BZ #18594]
* math/s_ccosh.c (__ccosh): Compare with least normal value
instead of comparing class with FP_SUBNORMAL.
* math/s_ccoshf.c (__ccoshf): Likewise.
* math/s_ccoshl.c (__ccoshl): Likewise.
* math/s_cexp.c (__cexp): Likewise.
* math/s_cexpf.c (__cexpf): Likewise.
* math/s_cexpl.c (__cexpl): Likewise.
* math/s_csin.c (__csin): Likewise.
* math/s_csinf.c (__csinf): Likewise.
* math/s_csinh.c (__csinh): Likewise.
* math/s_csinhf.c (__csinhf): Likewise.
* math/s_csinhl.c (__csinhl): Likewise.
* math/s_csinl.c (__csinl): Likewise.
* math/s_ctan.c (__ctan): Likewise.
* math/s_ctanf.c (__ctanf): Likewise.
* math/s_ctanh.c (__ctanh): Likewise.
* math/s_ctanhf.c (__ctanhf): Likewise.
* math/s_ctanhl.c (__ctanhl): Likewise.
* math/s_ctanl.c (__ctanl): Likewise.
* math/auto-libm-test-in: Add more tests of ccos, ccosh, cexp,
csin, csinh, ctan and ctanh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (cexp_test): Use ALL_RM_TEST.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-06-24 21:04:51 +00:00
|
|
|
csinh 1 min
|
|
|
|
csinh 1 -min
|
|
|
|
csinh 80 min_subnorm
|
|
|
|
csinh 80 -min_subnorm
|
|
|
|
|
Move various TEST_c_c tests from libm-test.inc to auto-libm-test-inc.
This patch moves tests of ccos, ccosh, cexp, clog, csqrt, ctan and
ctanh to auto-libm-test-in, adding the required support to
gen-auto-libm-tests. Other TEST_c_c functions aren't moved for now
(although the relevant table entries are put in gen-auto-libm-tests
for it to know how to handle them): clog10 because of a known MPC bug
causing it to hang for at least some pure imaginary inputs (fixed in
SVN, but I'd rather not rely on unreleased versions of MPFR or MPC
even if relying on very recent releases); the inverse trig and
hyperbolic functions because of known slowness in special cases; and
csin / csinh because of observed slowness that I need to investigate
and report to the MPC maintainers. Slowness can be bypassed by moving
to incremental generation (only for new / changed tests) rather than
regenerating the whole of auto-libm-test-out every time, but that
needs implementing. (This patch takes the time for running
gen-auto-libm-tests from about one second to seven, on my system,
which I think is reasonable. The slow functions would make it take
several minutes at least, which seems unreasonable.)
Tested x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add tests of ccos, ccosh, cexp, clog,
csqrt, ctan and ctanh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (TEST_COND_x86_64): New macro.
(TEST_COND_x86): Likewise.
(ccos_test_data): Use AUTO_TESTS_c_c.
(ccosh_test_data): Likewise.
(cexp_test_data): Likewise.
(clog_test_data): Likewise.
(csqrt_test_data): Likewise.
(ctan_test_data): Likewise.
(ctan_tonearest_test_data): Likewise.
(ctan_towardzero_test_data): Likewise.
(ctan_downward_test_data): Likewise.
(ctan_upward_test_data): Likewise.
(ctanh_test_data): Likewise.
(ctanh_tonearest_test_data): Likewise.
(ctanh_towardzero_test_data): Likewise.
(ctanh_downward_test_data): Likewise.
(ctanh_upward_test_data): Likewise.
* math/gen-auto-libm-tests.c (func_calc_method): Add value
mpc_c_c.
(func_calc_desc): Add mpc_c_c union field.
(FUNC_mpc_c_c): New macro.
(test_functions): Add cacos, cacosh, casin, casinh, catan, catanh,
ccos, ccosh, cexp, clog, clog10, csin, csinh, csqrt, ctan and
ctanh.
(special_fill_min_subnorm_p120): New function.
(special_real_inputs): Add min_subnorm_p120.
(calc_generic_results): Handle mpc_c_c.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-20 12:32:44 +00:00
|
|
|
csqrt 0 0
|
|
|
|
csqrt 0 -0
|
|
|
|
csqrt -0 0
|
|
|
|
csqrt -0 -0
|
|
|
|
|
|
|
|
csqrt 16.0 -30.0
|
|
|
|
csqrt -1 0
|
|
|
|
csqrt 0 2
|
|
|
|
csqrt 119 120
|
|
|
|
csqrt 0.75 1.25
|
|
|
|
csqrt -2 -3
|
|
|
|
csqrt -2 3
|
|
|
|
# Principal square root should be returned (i.e., non-negative real part).
|
|
|
|
csqrt 0 -1
|
|
|
|
|
2015-04-30 22:51:29 +00:00
|
|
|
csqrt -0xe.6432ap-4 0xe.8175p-4
|
|
|
|
csqrt -0x4.d01448p-4 -0x7.c1915p+0
|
|
|
|
csqrt -0xd.e1d5fp-4 -0x1.054226p+4
|
|
|
|
csqrt 0x5.39e238p+0 -0x4.576278p-4
|
|
|
|
csqrt -0xe.735dbp+0 -0x5.26cb98p+40
|
|
|
|
csqrt -0x7.915fafbe9f588p-4 -0x2.5e01bcp+0
|
|
|
|
csqrt 0xe.229827fe17d08p-4 0xd.849ecp-4
|
|
|
|
csqrt -0x4.d0144005d7af4p-4 -0x7.c19148p+0
|
|
|
|
csqrt 0x8p-152 0x7.8p-148
|
|
|
|
csqrt -0x4.82773b736291p-4 -0x1.bcb7cep+0
|
|
|
|
csqrt 0xf.fffffp+124 0xe.7e0c2p+116
|
|
|
|
csqrt -0x4.15ca1p+0 -0x8p-152
|
|
|
|
csqrt 0xf.a24adp+28 0x8.0f148p+36
|
Add more tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64.
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of atan, clog, clog10,
cos, csqrt, erf, erfc, exp2, lgamma, log1p, sin, sincos, tanh and
tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-02 21:06:33 +00:00
|
|
|
csqrt 0x1.f9610ap+4 0x9.87716p+4
|
|
|
|
csqrt 0x5.9cc21p-4 -0x1.fb1ec91b40dcdp+0
|
Add further tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64. (This process
must eventually converge, when my random test generation stops finding
inputs that increase the listed ulps, except maybe for any cases
uncovered where the errors exceed the maximum allowed 9ulp error and
so indicate actual libm bugs needing fixing.)
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of acosh, atanh, clog,
clog10, csqrt, erfc, exp2, expm1, log10, log2 and sinh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-05 22:59:41 +00:00
|
|
|
csqrt -0x7.31291c9fdae04p-160 -0x8p-152
|
|
|
|
csqrt 0x1.d60caep+0 0x7.a7d468p+0
|
|
|
|
csqrt -0xb.e2bc1cd6eaa7p-180 0x8p-152
|
Add more tests of acosh, atanh, cos, csqrt, erfc, sin, sincos.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64.
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of acosh, atanh, cos,
csqrt, erfc, sin and sincos.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-06 17:30:18 +00:00
|
|
|
csqrt 0xd.25d559ac5baap-168 0x8p-152
|
2015-05-08 17:55:11 +00:00
|
|
|
csqrt -0x9.0a61a7b482d28p-168 -0x8p-152
|
Add more tests of various libm functions.
This patch adds more tests of various libm functions found through
random test generation to give increased ulps on 32-bit x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acosh, asin, asinh,
atanh, cabs, carg, cbrt, cosh, csqrt, erf, erfc, exp, exp10,
expm1, hypot, log, log10, log1p, log2, pow, sinh, tan and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-11 00:58:28 +00:00
|
|
|
csqrt 0x3.f768f58949e3fe6cp-4 0x2.0c2e89a5cff98p+0
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
csqrt 0x6.b1a2e79e9c9acp-164 0x8p-152
|
|
|
|
csqrt -0x8.ec8932bf5603p-172 0x8p-152
|
2015-09-11 15:03:10 +00:00
|
|
|
csqrt -0x1.9edb24c83e22cp-172 -0x8p-152
|
|
|
|
csqrt -0x1.65c7ac7c97a25p-176 -0x8p-152
|
2015-04-30 22:51:29 +00:00
|
|
|
|
Move various TEST_c_c tests from libm-test.inc to auto-libm-test-inc.
This patch moves tests of ccos, ccosh, cexp, clog, csqrt, ctan and
ctanh to auto-libm-test-in, adding the required support to
gen-auto-libm-tests. Other TEST_c_c functions aren't moved for now
(although the relevant table entries are put in gen-auto-libm-tests
for it to know how to handle them): clog10 because of a known MPC bug
causing it to hang for at least some pure imaginary inputs (fixed in
SVN, but I'd rather not rely on unreleased versions of MPFR or MPC
even if relying on very recent releases); the inverse trig and
hyperbolic functions because of known slowness in special cases; and
csin / csinh because of observed slowness that I need to investigate
and report to the MPC maintainers. Slowness can be bypassed by moving
to incremental generation (only for new / changed tests) rather than
regenerating the whole of auto-libm-test-out every time, but that
needs implementing. (This patch takes the time for running
gen-auto-libm-tests from about one second to seven, on my system,
which I think is reasonable. The slow functions would make it take
several minutes at least, which seems unreasonable.)
Tested x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add tests of ccos, ccosh, cexp, clog,
csqrt, ctan and ctanh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (TEST_COND_x86_64): New macro.
(TEST_COND_x86): Likewise.
(ccos_test_data): Use AUTO_TESTS_c_c.
(ccosh_test_data): Likewise.
(cexp_test_data): Likewise.
(clog_test_data): Likewise.
(csqrt_test_data): Likewise.
(ctan_test_data): Likewise.
(ctan_tonearest_test_data): Likewise.
(ctan_towardzero_test_data): Likewise.
(ctan_downward_test_data): Likewise.
(ctan_upward_test_data): Likewise.
(ctanh_test_data): Likewise.
(ctanh_tonearest_test_data): Likewise.
(ctanh_towardzero_test_data): Likewise.
(ctanh_downward_test_data): Likewise.
(ctanh_upward_test_data): Likewise.
* math/gen-auto-libm-tests.c (func_calc_method): Add value
mpc_c_c.
(func_calc_desc): Add mpc_c_c union field.
(FUNC_mpc_c_c): New macro.
(test_functions): Add cacos, cacosh, casin, casinh, catan, catanh,
ccos, ccosh, cexp, clog, clog10, csin, csinh, csqrt, ctan and
ctanh.
(special_fill_min_subnorm_p120): New function.
(special_real_inputs): Add min_subnorm_p120.
(calc_generic_results): Handle mpc_c_c.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-20 12:32:44 +00:00
|
|
|
csqrt 0x1.fffffep+127 0x1.fffffep+127
|
|
|
|
csqrt 0x1.fffffep+127 1.0
|
|
|
|
csqrt 0x1p-149 0x1p-149
|
|
|
|
csqrt 0x1p-147 0x1p-147
|
|
|
|
|
|
|
|
csqrt 0 0x1p-149
|
|
|
|
csqrt 0x1p-50 0x1p-149
|
|
|
|
csqrt 0x1p+127 0x1p-149
|
|
|
|
csqrt 0x1p-149 0x1p+127
|
|
|
|
csqrt 0x1.000002p-126 0x1.000002p-126
|
|
|
|
csqrt -0x1.000002p-126 -0x1.000002p-126
|
|
|
|
|
|
|
|
csqrt 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023
|
|
|
|
csqrt 0x1.fffffffffffffp+1023 0x1p+1023
|
|
|
|
csqrt 0x1p-1074 0x1p-1074
|
|
|
|
csqrt 0x1p-1073 0x1p-1073
|
|
|
|
|
|
|
|
csqrt 0 0x1p-1074
|
|
|
|
csqrt 0x1p-500 0x1p-1074
|
|
|
|
csqrt 0x1p+1023 0x1p-1074
|
|
|
|
csqrt 0x1p-1074 0x1p+1023
|
|
|
|
csqrt 0x1.0000000000001p-1022 0x1.0000000000001p-1022
|
|
|
|
csqrt -0x1.0000000000001p-1022 -0x1.0000000000001p-1022
|
|
|
|
|
|
|
|
csqrt 0x1.fp+16383 0x1.fp+16383
|
|
|
|
csqrt 0x1.fp+16383 0x1p+16383
|
|
|
|
csqrt 0x1p-16440 0x1p-16441
|
|
|
|
|
|
|
|
csqrt 0 0x1p-16445
|
|
|
|
csqrt 0x1p-5000 0x1p-16445
|
|
|
|
csqrt 0x1p+16383 0x1p-16445
|
|
|
|
csqrt 0x1p-16445 0x1p+16383
|
|
|
|
csqrt 0x1.0000000000000002p-16382 0x1.0000000000000002p-16382
|
|
|
|
csqrt -0x1.0000000000000002p-16382 -0x1.0000000000000002p-16382
|
|
|
|
|
|
|
|
csqrt 0 0x1p-16494
|
|
|
|
csqrt 0x1p-5000 0x1p-16494
|
|
|
|
csqrt 0x1p+16383 0x1p-16494
|
|
|
|
csqrt 0x1p-16494 0x1p+16383
|
|
|
|
csqrt 0x1.0000000000000000000000000001p-16382 0x1.0000000000000000000000000001p-16382
|
|
|
|
csqrt -0x1.0000000000000000000000000001p-16382 -0x1.0000000000000000000000000001p-16382
|
|
|
|
|
2015-06-23 16:01:54 +00:00
|
|
|
csqrt 0x0.ffp128 0x1.1p-61
|
|
|
|
csqrt -0x0.ffp128 0x1.1p-61
|
|
|
|
csqrt 0x0.ffp1024 0x1.1p-509
|
|
|
|
csqrt -0x0.ffp1024 0x1.1p-509
|
|
|
|
csqrt 0x0.ffp16384 0x1.1p-8189
|
|
|
|
csqrt -0x0.ffp16384 0x1.1p-8189
|
|
|
|
|
2015-08-17 23:02:54 +00:00
|
|
|
csqrt 0x1p-149 0x1.000002p-126
|
|
|
|
csqrt 0x1p-149 0x1.000004p-126
|
|
|
|
csqrt 0x1p-1074 0x1.0000000000001p-1022
|
|
|
|
csqrt 0x1p-1074 0x1.0000000000002p-1022
|
|
|
|
csqrt 0x1p-16445 0x1.0000000000000002p-16382
|
|
|
|
csqrt 0x1p-16445 0x1.0000000000000004p-16382
|
|
|
|
csqrt 0x1p-16494 0x1.0000000000000000000000000001p-16382
|
|
|
|
csqrt 0x1p-16494 0x1.0000000000000000000000000002p-16382
|
|
|
|
|
2015-08-19 22:42:01 +00:00
|
|
|
csqrt 1 min
|
|
|
|
csqrt 1 -min
|
|
|
|
csqrt -1 min
|
|
|
|
csqrt -1 -min
|
|
|
|
|
Move various TEST_c_c tests from libm-test.inc to auto-libm-test-inc.
This patch moves tests of ccos, ccosh, cexp, clog, csqrt, ctan and
ctanh to auto-libm-test-in, adding the required support to
gen-auto-libm-tests. Other TEST_c_c functions aren't moved for now
(although the relevant table entries are put in gen-auto-libm-tests
for it to know how to handle them): clog10 because of a known MPC bug
causing it to hang for at least some pure imaginary inputs (fixed in
SVN, but I'd rather not rely on unreleased versions of MPFR or MPC
even if relying on very recent releases); the inverse trig and
hyperbolic functions because of known slowness in special cases; and
csin / csinh because of observed slowness that I need to investigate
and report to the MPC maintainers. Slowness can be bypassed by moving
to incremental generation (only for new / changed tests) rather than
regenerating the whole of auto-libm-test-out every time, but that
needs implementing. (This patch takes the time for running
gen-auto-libm-tests from about one second to seven, on my system,
which I think is reasonable. The slow functions would make it take
several minutes at least, which seems unreasonable.)
Tested x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add tests of ccos, ccosh, cexp, clog,
csqrt, ctan and ctanh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (TEST_COND_x86_64): New macro.
(TEST_COND_x86): Likewise.
(ccos_test_data): Use AUTO_TESTS_c_c.
(ccosh_test_data): Likewise.
(cexp_test_data): Likewise.
(clog_test_data): Likewise.
(csqrt_test_data): Likewise.
(ctan_test_data): Likewise.
(ctan_tonearest_test_data): Likewise.
(ctan_towardzero_test_data): Likewise.
(ctan_downward_test_data): Likewise.
(ctan_upward_test_data): Likewise.
(ctanh_test_data): Likewise.
(ctanh_tonearest_test_data): Likewise.
(ctanh_towardzero_test_data): Likewise.
(ctanh_downward_test_data): Likewise.
(ctanh_upward_test_data): Likewise.
* math/gen-auto-libm-tests.c (func_calc_method): Add value
mpc_c_c.
(func_calc_desc): Add mpc_c_c union field.
(FUNC_mpc_c_c): New macro.
(test_functions): Add cacos, cacosh, casin, casinh, catan, catanh,
ccos, ccosh, cexp, clog, clog10, csin, csinh, csqrt, ctan and
ctanh.
(special_fill_min_subnorm_p120): New function.
(special_real_inputs): Add min_subnorm_p120.
(calc_generic_results): Handle mpc_c_c.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-20 12:32:44 +00:00
|
|
|
ctan 0 0
|
|
|
|
ctan 0 -0
|
|
|
|
ctan -0 0
|
|
|
|
ctan -0 -0
|
|
|
|
|
|
|
|
ctan 0.75 1.25
|
|
|
|
ctan -2 -3
|
|
|
|
|
|
|
|
ctan 1 45
|
|
|
|
ctan 1 47
|
|
|
|
ctan 1 355
|
|
|
|
ctan 1 365
|
2014-01-07 22:41:58 +00:00
|
|
|
# GCC bug 59666: results on directed rounding may be incorrect.
|
|
|
|
ctan 1 5680 xfail-rounding:ldbl-128ibm
|
|
|
|
ctan 1 5690 xfail-rounding:ldbl-128ibm
|
Move various TEST_c_c tests from libm-test.inc to auto-libm-test-inc.
This patch moves tests of ccos, ccosh, cexp, clog, csqrt, ctan and
ctanh to auto-libm-test-in, adding the required support to
gen-auto-libm-tests. Other TEST_c_c functions aren't moved for now
(although the relevant table entries are put in gen-auto-libm-tests
for it to know how to handle them): clog10 because of a known MPC bug
causing it to hang for at least some pure imaginary inputs (fixed in
SVN, but I'd rather not rely on unreleased versions of MPFR or MPC
even if relying on very recent releases); the inverse trig and
hyperbolic functions because of known slowness in special cases; and
csin / csinh because of observed slowness that I need to investigate
and report to the MPC maintainers. Slowness can be bypassed by moving
to incremental generation (only for new / changed tests) rather than
regenerating the whole of auto-libm-test-out every time, but that
needs implementing. (This patch takes the time for running
gen-auto-libm-tests from about one second to seven, on my system,
which I think is reasonable. The slow functions would make it take
several minutes at least, which seems unreasonable.)
Tested x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add tests of ccos, ccosh, cexp, clog,
csqrt, ctan and ctanh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (TEST_COND_x86_64): New macro.
(TEST_COND_x86): Likewise.
(ccos_test_data): Use AUTO_TESTS_c_c.
(ccosh_test_data): Likewise.
(cexp_test_data): Likewise.
(clog_test_data): Likewise.
(csqrt_test_data): Likewise.
(ctan_test_data): Likewise.
(ctan_tonearest_test_data): Likewise.
(ctan_towardzero_test_data): Likewise.
(ctan_downward_test_data): Likewise.
(ctan_upward_test_data): Likewise.
(ctanh_test_data): Likewise.
(ctanh_tonearest_test_data): Likewise.
(ctanh_towardzero_test_data): Likewise.
(ctanh_downward_test_data): Likewise.
(ctanh_upward_test_data): Likewise.
* math/gen-auto-libm-tests.c (func_calc_method): Add value
mpc_c_c.
(func_calc_desc): Add mpc_c_c union field.
(FUNC_mpc_c_c): New macro.
(test_functions): Add cacos, cacosh, casin, casinh, catan, catanh,
ccos, ccosh, cexp, clog, clog10, csin, csinh, csqrt, ctan and
ctanh.
(special_fill_min_subnorm_p120): New function.
(special_real_inputs): Add min_subnorm_p120.
(calc_generic_results): Handle mpc_c_c.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-20 12:32:44 +00:00
|
|
|
|
|
|
|
ctan 0x3.243f6cp-1 0
|
|
|
|
|
|
|
|
ctan 0x1p127 1
|
|
|
|
ctan 0x1p1023 1
|
|
|
|
ctan 0x1p16383 1
|
|
|
|
|
2014-01-07 22:41:58 +00:00
|
|
|
# GCC bug 59666: results on directed rounding may be incorrect.
|
|
|
|
ctan 50000 50000 xfail-rounding:ldbl-128ibm
|
|
|
|
ctan 50000 -50000 xfail-rounding:ldbl-128ibm
|
|
|
|
ctan -50000 50000 xfail-rounding:ldbl-128ibm
|
|
|
|
ctan -50000 -50000 xfail-rounding:ldbl-128ibm
|
Move various TEST_c_c tests from libm-test.inc to auto-libm-test-inc.
This patch moves tests of ccos, ccosh, cexp, clog, csqrt, ctan and
ctanh to auto-libm-test-in, adding the required support to
gen-auto-libm-tests. Other TEST_c_c functions aren't moved for now
(although the relevant table entries are put in gen-auto-libm-tests
for it to know how to handle them): clog10 because of a known MPC bug
causing it to hang for at least some pure imaginary inputs (fixed in
SVN, but I'd rather not rely on unreleased versions of MPFR or MPC
even if relying on very recent releases); the inverse trig and
hyperbolic functions because of known slowness in special cases; and
csin / csinh because of observed slowness that I need to investigate
and report to the MPC maintainers. Slowness can be bypassed by moving
to incremental generation (only for new / changed tests) rather than
regenerating the whole of auto-libm-test-out every time, but that
needs implementing. (This patch takes the time for running
gen-auto-libm-tests from about one second to seven, on my system,
which I think is reasonable. The slow functions would make it take
several minutes at least, which seems unreasonable.)
Tested x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add tests of ccos, ccosh, cexp, clog,
csqrt, ctan and ctanh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (TEST_COND_x86_64): New macro.
(TEST_COND_x86): Likewise.
(ccos_test_data): Use AUTO_TESTS_c_c.
(ccosh_test_data): Likewise.
(cexp_test_data): Likewise.
(clog_test_data): Likewise.
(csqrt_test_data): Likewise.
(ctan_test_data): Likewise.
(ctan_tonearest_test_data): Likewise.
(ctan_towardzero_test_data): Likewise.
(ctan_downward_test_data): Likewise.
(ctan_upward_test_data): Likewise.
(ctanh_test_data): Likewise.
(ctanh_tonearest_test_data): Likewise.
(ctanh_towardzero_test_data): Likewise.
(ctanh_downward_test_data): Likewise.
(ctanh_upward_test_data): Likewise.
* math/gen-auto-libm-tests.c (func_calc_method): Add value
mpc_c_c.
(func_calc_desc): Add mpc_c_c union field.
(FUNC_mpc_c_c): New macro.
(test_functions): Add cacos, cacosh, casin, casinh, catan, catanh,
ccos, ccosh, cexp, clog, clog10, csin, csinh, csqrt, ctan and
ctanh.
(special_fill_min_subnorm_p120): New function.
(special_real_inputs): Add min_subnorm_p120.
(calc_generic_results): Handle mpc_c_c.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-20 12:32:44 +00:00
|
|
|
|
|
|
|
ctan 0x1.921fb6p+0 0x1p-149
|
|
|
|
ctan 0x1.921fb54442d18p+0 0x1p-1074
|
|
|
|
ctan 0x1.921fb54442d1846ap+0 0x1p-16445
|
|
|
|
|
Fix cexp, ccos, ccosh, csin, csinh spurious underflows (bug 18594).
cexp, ccos, ccosh, csin and csinh have spurious underflows in cases
where they compute sin of the smallest normal, that produces an
underflow exception (depending on which sin implementation is in use)
but the final result does not underflow. ctan and ctanh may also have
such underflows, or they may be latent (the issue there is that
e.g. ctan (DBL_MIN) should, rounded upwards, be the next double value
above DBL_MIN, which under glibc's accuracy goals may not have an
underflow exception, but the intermediate computation of sin (DBL_MIN)
would legitimately underflow on before-rounding architectures).
This patch fixes all those functions so they use plain comparisons (>
DBL_MIN etc.) instead of comparing the result of fpclassify with
FP_SUBNORMAL (in all these cases, we already know the number being
compared is finite). Note that in the case of csin / csinf / csinl,
there is no need for fabs calls in the comparison because the real
part has already been reduced to its absolute value.
As the patch fixes the failures that previously obstructed moving
tests of cexp to use ALL_RM_TEST, those tests are moved to ALL_RM_TEST
by the patch (two functions remain yet to be converted).
Tested for x86_64 and x86 and ulps updated accordingly.
[BZ #18594]
* math/s_ccosh.c (__ccosh): Compare with least normal value
instead of comparing class with FP_SUBNORMAL.
* math/s_ccoshf.c (__ccoshf): Likewise.
* math/s_ccoshl.c (__ccoshl): Likewise.
* math/s_cexp.c (__cexp): Likewise.
* math/s_cexpf.c (__cexpf): Likewise.
* math/s_cexpl.c (__cexpl): Likewise.
* math/s_csin.c (__csin): Likewise.
* math/s_csinf.c (__csinf): Likewise.
* math/s_csinh.c (__csinh): Likewise.
* math/s_csinhf.c (__csinhf): Likewise.
* math/s_csinhl.c (__csinhl): Likewise.
* math/s_csinl.c (__csinl): Likewise.
* math/s_ctan.c (__ctan): Likewise.
* math/s_ctanf.c (__ctanf): Likewise.
* math/s_ctanh.c (__ctanh): Likewise.
* math/s_ctanhf.c (__ctanhf): Likewise.
* math/s_ctanhl.c (__ctanhl): Likewise.
* math/s_ctanl.c (__ctanl): Likewise.
* math/auto-libm-test-in: Add more tests of ccos, ccosh, cexp,
csin, csinh, ctan and ctanh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (cexp_test): Use ALL_RM_TEST.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-06-24 21:04:51 +00:00
|
|
|
# Bug 18595: underflow exception may be missing
|
|
|
|
ctan min 0 missing-underflow
|
|
|
|
ctan -min 0 missing-underflow
|
|
|
|
ctan min_subnorm 0 missing-underflow
|
|
|
|
ctan -min_subnorm 0 missing-underflow
|
|
|
|
|
Move various TEST_c_c tests from libm-test.inc to auto-libm-test-inc.
This patch moves tests of ccos, ccosh, cexp, clog, csqrt, ctan and
ctanh to auto-libm-test-in, adding the required support to
gen-auto-libm-tests. Other TEST_c_c functions aren't moved for now
(although the relevant table entries are put in gen-auto-libm-tests
for it to know how to handle them): clog10 because of a known MPC bug
causing it to hang for at least some pure imaginary inputs (fixed in
SVN, but I'd rather not rely on unreleased versions of MPFR or MPC
even if relying on very recent releases); the inverse trig and
hyperbolic functions because of known slowness in special cases; and
csin / csinh because of observed slowness that I need to investigate
and report to the MPC maintainers. Slowness can be bypassed by moving
to incremental generation (only for new / changed tests) rather than
regenerating the whole of auto-libm-test-out every time, but that
needs implementing. (This patch takes the time for running
gen-auto-libm-tests from about one second to seven, on my system,
which I think is reasonable. The slow functions would make it take
several minutes at least, which seems unreasonable.)
Tested x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add tests of ccos, ccosh, cexp, clog,
csqrt, ctan and ctanh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (TEST_COND_x86_64): New macro.
(TEST_COND_x86): Likewise.
(ccos_test_data): Use AUTO_TESTS_c_c.
(ccosh_test_data): Likewise.
(cexp_test_data): Likewise.
(clog_test_data): Likewise.
(csqrt_test_data): Likewise.
(ctan_test_data): Likewise.
(ctan_tonearest_test_data): Likewise.
(ctan_towardzero_test_data): Likewise.
(ctan_downward_test_data): Likewise.
(ctan_upward_test_data): Likewise.
(ctanh_test_data): Likewise.
(ctanh_tonearest_test_data): Likewise.
(ctanh_towardzero_test_data): Likewise.
(ctanh_downward_test_data): Likewise.
(ctanh_upward_test_data): Likewise.
* math/gen-auto-libm-tests.c (func_calc_method): Add value
mpc_c_c.
(func_calc_desc): Add mpc_c_c union field.
(FUNC_mpc_c_c): New macro.
(test_functions): Add cacos, cacosh, casin, casinh, catan, catanh,
ccos, ccosh, cexp, clog, clog10, csin, csinh, csqrt, ctan and
ctanh.
(special_fill_min_subnorm_p120): New function.
(special_real_inputs): Add min_subnorm_p120.
(calc_generic_results): Handle mpc_c_c.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-20 12:32:44 +00:00
|
|
|
ctanh 0 0
|
|
|
|
ctanh 0 -0
|
|
|
|
ctanh -0 0
|
|
|
|
ctanh -0 -0
|
|
|
|
|
|
|
|
ctanh 0 pi/4
|
|
|
|
|
|
|
|
ctanh 0.75 1.25
|
|
|
|
ctanh -2 -3
|
|
|
|
|
|
|
|
ctanh 45 1
|
|
|
|
ctanh 47 1
|
|
|
|
ctanh 355 1
|
|
|
|
ctanh 365 1
|
2014-01-07 22:41:58 +00:00
|
|
|
# GCC bug 59666: results on directed rounding may be incorrect.
|
|
|
|
ctanh 5680 1 xfail-rounding:ldbl-128ibm
|
|
|
|
ctanh 5690 1 xfail-rounding:ldbl-128ibm
|
Move various TEST_c_c tests from libm-test.inc to auto-libm-test-inc.
This patch moves tests of ccos, ccosh, cexp, clog, csqrt, ctan and
ctanh to auto-libm-test-in, adding the required support to
gen-auto-libm-tests. Other TEST_c_c functions aren't moved for now
(although the relevant table entries are put in gen-auto-libm-tests
for it to know how to handle them): clog10 because of a known MPC bug
causing it to hang for at least some pure imaginary inputs (fixed in
SVN, but I'd rather not rely on unreleased versions of MPFR or MPC
even if relying on very recent releases); the inverse trig and
hyperbolic functions because of known slowness in special cases; and
csin / csinh because of observed slowness that I need to investigate
and report to the MPC maintainers. Slowness can be bypassed by moving
to incremental generation (only for new / changed tests) rather than
regenerating the whole of auto-libm-test-out every time, but that
needs implementing. (This patch takes the time for running
gen-auto-libm-tests from about one second to seven, on my system,
which I think is reasonable. The slow functions would make it take
several minutes at least, which seems unreasonable.)
Tested x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add tests of ccos, ccosh, cexp, clog,
csqrt, ctan and ctanh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (TEST_COND_x86_64): New macro.
(TEST_COND_x86): Likewise.
(ccos_test_data): Use AUTO_TESTS_c_c.
(ccosh_test_data): Likewise.
(cexp_test_data): Likewise.
(clog_test_data): Likewise.
(csqrt_test_data): Likewise.
(ctan_test_data): Likewise.
(ctan_tonearest_test_data): Likewise.
(ctan_towardzero_test_data): Likewise.
(ctan_downward_test_data): Likewise.
(ctan_upward_test_data): Likewise.
(ctanh_test_data): Likewise.
(ctanh_tonearest_test_data): Likewise.
(ctanh_towardzero_test_data): Likewise.
(ctanh_downward_test_data): Likewise.
(ctanh_upward_test_data): Likewise.
* math/gen-auto-libm-tests.c (func_calc_method): Add value
mpc_c_c.
(func_calc_desc): Add mpc_c_c union field.
(FUNC_mpc_c_c): New macro.
(test_functions): Add cacos, cacosh, casin, casinh, catan, catanh,
ccos, ccosh, cexp, clog, clog10, csin, csinh, csqrt, ctan and
ctanh.
(special_fill_min_subnorm_p120): New function.
(special_real_inputs): Add min_subnorm_p120.
(calc_generic_results): Handle mpc_c_c.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-20 12:32:44 +00:00
|
|
|
|
|
|
|
ctanh 0 0x3.243f6cp-1
|
|
|
|
|
|
|
|
ctanh 1 0x1p127
|
|
|
|
ctanh 1 0x1p1023
|
|
|
|
ctanh 1 0x1p16383
|
|
|
|
|
2014-01-07 22:41:58 +00:00
|
|
|
# GCC bug 59666: results on directed rounding may be incorrect.
|
|
|
|
ctanh 50000 50000 xfail-rounding:ldbl-128ibm
|
|
|
|
ctanh 50000 -50000 xfail-rounding:ldbl-128ibm
|
|
|
|
ctanh -50000 50000 xfail-rounding:ldbl-128ibm
|
|
|
|
ctanh -50000 -50000 xfail-rounding:ldbl-128ibm
|
Move various TEST_c_c tests from libm-test.inc to auto-libm-test-inc.
This patch moves tests of ccos, ccosh, cexp, clog, csqrt, ctan and
ctanh to auto-libm-test-in, adding the required support to
gen-auto-libm-tests. Other TEST_c_c functions aren't moved for now
(although the relevant table entries are put in gen-auto-libm-tests
for it to know how to handle them): clog10 because of a known MPC bug
causing it to hang for at least some pure imaginary inputs (fixed in
SVN, but I'd rather not rely on unreleased versions of MPFR or MPC
even if relying on very recent releases); the inverse trig and
hyperbolic functions because of known slowness in special cases; and
csin / csinh because of observed slowness that I need to investigate
and report to the MPC maintainers. Slowness can be bypassed by moving
to incremental generation (only for new / changed tests) rather than
regenerating the whole of auto-libm-test-out every time, but that
needs implementing. (This patch takes the time for running
gen-auto-libm-tests from about one second to seven, on my system,
which I think is reasonable. The slow functions would make it take
several minutes at least, which seems unreasonable.)
Tested x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add tests of ccos, ccosh, cexp, clog,
csqrt, ctan and ctanh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (TEST_COND_x86_64): New macro.
(TEST_COND_x86): Likewise.
(ccos_test_data): Use AUTO_TESTS_c_c.
(ccosh_test_data): Likewise.
(cexp_test_data): Likewise.
(clog_test_data): Likewise.
(csqrt_test_data): Likewise.
(ctan_test_data): Likewise.
(ctan_tonearest_test_data): Likewise.
(ctan_towardzero_test_data): Likewise.
(ctan_downward_test_data): Likewise.
(ctan_upward_test_data): Likewise.
(ctanh_test_data): Likewise.
(ctanh_tonearest_test_data): Likewise.
(ctanh_towardzero_test_data): Likewise.
(ctanh_downward_test_data): Likewise.
(ctanh_upward_test_data): Likewise.
* math/gen-auto-libm-tests.c (func_calc_method): Add value
mpc_c_c.
(func_calc_desc): Add mpc_c_c union field.
(FUNC_mpc_c_c): New macro.
(test_functions): Add cacos, cacosh, casin, casinh, catan, catanh,
ccos, ccosh, cexp, clog, clog10, csin, csinh, csqrt, ctan and
ctanh.
(special_fill_min_subnorm_p120): New function.
(special_real_inputs): Add min_subnorm_p120.
(calc_generic_results): Handle mpc_c_c.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2013-12-20 12:32:44 +00:00
|
|
|
|
|
|
|
ctanh 0x1p-149 0x1.921fb6p+0
|
|
|
|
ctanh 0x1p-1074 0x1.921fb54442d18p+0
|
|
|
|
ctanh 0x1p-16445 0x1.921fb54442d1846ap+0
|
|
|
|
|
Fix cexp, ccos, ccosh, csin, csinh spurious underflows (bug 18594).
cexp, ccos, ccosh, csin and csinh have spurious underflows in cases
where they compute sin of the smallest normal, that produces an
underflow exception (depending on which sin implementation is in use)
but the final result does not underflow. ctan and ctanh may also have
such underflows, or they may be latent (the issue there is that
e.g. ctan (DBL_MIN) should, rounded upwards, be the next double value
above DBL_MIN, which under glibc's accuracy goals may not have an
underflow exception, but the intermediate computation of sin (DBL_MIN)
would legitimately underflow on before-rounding architectures).
This patch fixes all those functions so they use plain comparisons (>
DBL_MIN etc.) instead of comparing the result of fpclassify with
FP_SUBNORMAL (in all these cases, we already know the number being
compared is finite). Note that in the case of csin / csinf / csinl,
there is no need for fabs calls in the comparison because the real
part has already been reduced to its absolute value.
As the patch fixes the failures that previously obstructed moving
tests of cexp to use ALL_RM_TEST, those tests are moved to ALL_RM_TEST
by the patch (two functions remain yet to be converted).
Tested for x86_64 and x86 and ulps updated accordingly.
[BZ #18594]
* math/s_ccosh.c (__ccosh): Compare with least normal value
instead of comparing class with FP_SUBNORMAL.
* math/s_ccoshf.c (__ccoshf): Likewise.
* math/s_ccoshl.c (__ccoshl): Likewise.
* math/s_cexp.c (__cexp): Likewise.
* math/s_cexpf.c (__cexpf): Likewise.
* math/s_cexpl.c (__cexpl): Likewise.
* math/s_csin.c (__csin): Likewise.
* math/s_csinf.c (__csinf): Likewise.
* math/s_csinh.c (__csinh): Likewise.
* math/s_csinhf.c (__csinhf): Likewise.
* math/s_csinhl.c (__csinhl): Likewise.
* math/s_csinl.c (__csinl): Likewise.
* math/s_ctan.c (__ctan): Likewise.
* math/s_ctanf.c (__ctanf): Likewise.
* math/s_ctanh.c (__ctanh): Likewise.
* math/s_ctanhf.c (__ctanhf): Likewise.
* math/s_ctanhl.c (__ctanhl): Likewise.
* math/s_ctanl.c (__ctanl): Likewise.
* math/auto-libm-test-in: Add more tests of ccos, ccosh, cexp,
csin, csinh, ctan and ctanh.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (cexp_test): Use ALL_RM_TEST.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-06-24 21:04:51 +00:00
|
|
|
# Bug 18595: underflow exception may be missing
|
|
|
|
ctanh 0 min missing-underflow
|
|
|
|
ctanh 0 -min missing-underflow
|
|
|
|
ctanh 0 min_subnorm missing-underflow
|
|
|
|
ctanh 0 -min_subnorm missing-underflow
|
|
|
|
|
2013-12-03 16:22:49 +00:00
|
|
|
erf 0
|
|
|
|
erf -0
|
|
|
|
erf 0.125
|
|
|
|
erf 0.75
|
|
|
|
erf 1.25
|
|
|
|
erf 2.0
|
|
|
|
erf 4.125
|
|
|
|
erf 27.0
|
|
|
|
erf -27.0
|
|
|
|
erf -0x1.fffffffffffff8p-2
|
2014-05-14 12:34:03 +00:00
|
|
|
erf 0x1.c5bf94p-127
|
|
|
|
erf 0x3.8b7fa8p-128
|
|
|
|
erf -0x3.8b7f12369ded8p-1024
|
|
|
|
erf 0x3.8b7f12369ded5518p-16384
|
2014-06-24 20:56:56 +00:00
|
|
|
erf 26.0
|
|
|
|
erf 28.0
|
|
|
|
erf 100
|
|
|
|
erf 106
|
|
|
|
erf 106.5
|
|
|
|
erf 106.625
|
|
|
|
erf 107
|
|
|
|
erf 108
|
|
|
|
erf 1000
|
|
|
|
erf max
|
2013-12-03 16:22:49 +00:00
|
|
|
|
2015-05-01 17:49:44 +00:00
|
|
|
erf -0x1.ddaea4p+0
|
|
|
|
erf -0x1.2b1f68p+0
|
|
|
|
erf 0x1.44e722p+0
|
Add more tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64.
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of atan, clog, clog10,
cos, csqrt, erf, erfc, exp2, lgamma, log1p, sin, sincos, tanh and
tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-02 21:06:33 +00:00
|
|
|
erf -0x1.3a0d48p+0
|
Add more tests of various libm functions.
This patch adds more tests of various libm functions found through
random test generation to give increased ulps on 32-bit x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acosh, asin, asinh,
atanh, cabs, carg, cbrt, cosh, csqrt, erf, erfc, exp, exp10,
expm1, hypot, log, log10, log1p, log2, pow, sinh, tan and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-11 00:58:28 +00:00
|
|
|
erf -0x1.c975cap+0
|
|
|
|
erf -0x1.e6a006p+0
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
erf -0x1.4d32f4p-12
|
2015-05-01 17:49:44 +00:00
|
|
|
|
2013-12-03 16:22:49 +00:00
|
|
|
erfc 0.0
|
|
|
|
erfc -0
|
2015-05-15 00:16:10 +00:00
|
|
|
erfc 0x1p-55
|
|
|
|
erfc -0x1p-55
|
2013-12-03 16:22:49 +00:00
|
|
|
erfc 0.125
|
|
|
|
erfc 0.75
|
|
|
|
erfc 1.25
|
|
|
|
erfc 2.0
|
|
|
|
erfc 0x1.f7303cp+1
|
|
|
|
erfc 4.125
|
|
|
|
erfc 0x1.ffa002p+2
|
|
|
|
erfc 0x1.ffffc8p+2
|
|
|
|
erfc -0x1.fffffffffffff8p-2
|
2013-12-03 16:25:18 +00:00
|
|
|
erfc 26.0
|
|
|
|
erfc 27.0
|
|
|
|
erfc 28.0
|
2013-12-03 16:22:49 +00:00
|
|
|
erfc 0x1.ffff56789abcdef0123456789a8p+2
|
2013-12-03 16:25:18 +00:00
|
|
|
erfc 100
|
|
|
|
erfc 106
|
|
|
|
erfc 106.5
|
|
|
|
erfc 106.625
|
|
|
|
erfc 107
|
|
|
|
erfc 108
|
|
|
|
erfc 1000
|
|
|
|
erfc max
|
2013-12-03 16:22:49 +00:00
|
|
|
|
2015-05-01 17:49:44 +00:00
|
|
|
erfc 0x1.8a0c64p+0
|
|
|
|
erfc 0x1.8a0c62p+0
|
|
|
|
erfc 0x1.64dafap+0
|
|
|
|
erfc 0x6.88fb08p+0
|
|
|
|
erfc 0xd.361d9p-4
|
|
|
|
erfc 0x8.c66b44ca40038p+0
|
|
|
|
erfc 0x2.586f1cp+0
|
|
|
|
erfc 0xb.acb72p+0
|
|
|
|
erfc 0xb.227499103357d84p+0
|
Add more tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64.
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of atan, clog, clog10,
cos, csqrt, erf, erfc, exp2, lgamma, log1p, sin, sincos, tanh and
tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-02 21:06:33 +00:00
|
|
|
erfc 0xd.28abfp-4
|
|
|
|
erfc 0x1.5289fep+0
|
|
|
|
erfc 0x4.b48498p+0
|
Add further tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64. (This process
must eventually converge, when my random test generation stops finding
inputs that increase the listed ulps, except maybe for any cases
uncovered where the errors exceed the maximum allowed 9ulp error and
so indicate actual libm bugs needing fixing.)
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of acosh, atanh, clog,
clog10, csqrt, erfc, exp2, expm1, log10, log2 and sinh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-05 22:59:41 +00:00
|
|
|
erfc 0x2.f8646cp+0
|
Add more tests of acosh, atanh, cos, csqrt, erfc, sin, sincos.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64.
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of acosh, atanh, cos,
csqrt, erfc, sin and sincos.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-06 17:30:18 +00:00
|
|
|
erfc 0x1.514548p+0
|
Add more tests of various libm functions.
This patch adds more tests of various libm functions found through
random test generation to give increased ulps on 32-bit x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acosh, asin, asinh,
atanh, cabs, carg, cbrt, cosh, csqrt, erf, erfc, exp, exp10,
expm1, hypot, log, log10, log1p, log2, pow, sinh, tan and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-11 00:58:28 +00:00
|
|
|
erfc 0x2.36c504p+0
|
|
|
|
erfc 0x1.65e31p+0
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
erfc 0xd.44cd3p-4
|
|
|
|
erfc 0xd.47425b3cafa48p-4
|
2015-09-11 15:03:10 +00:00
|
|
|
erfc 0x1.2f644ep+0
|
2015-05-01 17:49:44 +00:00
|
|
|
|
2013-12-03 16:22:49 +00:00
|
|
|
exp 0
|
|
|
|
exp -0
|
|
|
|
exp 1
|
|
|
|
exp 2
|
|
|
|
exp 3
|
|
|
|
exp 0.75
|
|
|
|
exp 50.0
|
|
|
|
exp 88.72269439697265625
|
|
|
|
exp 709.75
|
2014-01-07 22:41:58 +00:00
|
|
|
# GCC bug 59666: results on directed rounding may be incorrect.
|
2014-03-24 12:18:45 +00:00
|
|
|
exp 1000.0 xfail-rounding:ldbl-128ibm
|
|
|
|
exp 710 xfail-rounding:ldbl-128ibm
|
2013-12-03 16:22:49 +00:00
|
|
|
exp -1234
|
2014-01-07 22:41:58 +00:00
|
|
|
# GCC bug 59666: results on directed rounding may be incorrect.
|
2014-03-24 12:18:45 +00:00
|
|
|
exp 0x2.c679d1f73f0fb628p+8 xfail-rounding:ldbl-128ibm
|
|
|
|
exp 1e5 xfail-rounding:ldbl-128ibm
|
|
|
|
exp max xfail-rounding:ldbl-128ibm
|
2013-12-03 21:49:56 +00:00
|
|
|
exp -7.4444006192138124e+02
|
|
|
|
exp -0x1.75f113c30b1c8p+9
|
2013-12-03 16:22:49 +00:00
|
|
|
exp -max
|
2014-02-11 12:47:47 +00:00
|
|
|
exp -11342.8125
|
2015-06-21 17:48:04 +00:00
|
|
|
exp -0x2.c5b2319c4843acc0p12
|
2014-03-27 18:41:14 +00:00
|
|
|
exp 0x1p-10
|
|
|
|
exp -0x1p-10
|
|
|
|
exp 0x1p-20
|
|
|
|
exp -0x1p-20
|
|
|
|
exp 0x1p-30
|
|
|
|
exp -0x1p-30
|
|
|
|
exp 0x1p-40
|
|
|
|
exp -0x1p-40
|
|
|
|
exp 0x1p-50
|
|
|
|
exp -0x1p-50
|
|
|
|
exp 0x1p-60
|
|
|
|
exp -0x1p-60
|
|
|
|
exp 0x1p-100
|
|
|
|
exp -0x1p-100
|
|
|
|
exp min
|
|
|
|
exp -min
|
|
|
|
exp min_subnorm
|
|
|
|
exp -min_subnorm
|
2013-12-03 16:22:49 +00:00
|
|
|
|
2015-05-01 20:33:04 +00:00
|
|
|
exp -0x1.760cd14774bd9p+0
|
|
|
|
exp 0x1.4bed28p+0
|
Add more tests of various libm functions.
This patch adds more tests of various libm functions found through
random test generation to give increased ulps on 32-bit x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acosh, asin, asinh,
atanh, cabs, carg, cbrt, cosh, csqrt, erf, erfc, exp, exp10,
expm1, hypot, log, log10, log1p, log2, pow, sinh, tan and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-11 00:58:28 +00:00
|
|
|
exp -0x1.f1cf36p+8
|
|
|
|
exp 0x3.248524p+0
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
exp 0x1.f0b362p+0
|
|
|
|
exp 0xd.89746a799ac4eedp+0
|
2015-05-01 20:33:04 +00:00
|
|
|
|
2013-12-03 16:22:49 +00:00
|
|
|
exp10 0
|
|
|
|
exp10 -0
|
|
|
|
exp10 3
|
|
|
|
exp10 -1
|
|
|
|
exp10 36
|
|
|
|
exp10 -36
|
|
|
|
exp10 305
|
|
|
|
exp10 -305
|
2014-01-03 17:08:10 +00:00
|
|
|
# GCC bug 59666: results on directed rounding may be incorrect.
|
2014-03-24 12:18:45 +00:00
|
|
|
exp10 4932 xfail-rounding:ldbl-128ibm
|
2015-06-21 17:48:04 +00:00
|
|
|
exp10 -4932
|
|
|
|
exp10 -0x1.343793004f503232p12
|
2014-01-03 17:08:10 +00:00
|
|
|
# GCC bug 59666: results on directed rounding may be incorrect.
|
2014-03-24 12:18:45 +00:00
|
|
|
exp10 1e5 xfail-rounding:ldbl-128ibm
|
2013-12-03 16:22:49 +00:00
|
|
|
exp10 -1e5
|
2014-01-03 17:08:10 +00:00
|
|
|
# GCC bug 59666: results on directed rounding may be incorrect.
|
2014-03-24 12:18:45 +00:00
|
|
|
exp10 1e6 xfail-rounding:ldbl-128ibm
|
2013-12-03 16:22:49 +00:00
|
|
|
exp10 -1e6
|
2014-01-03 17:08:10 +00:00
|
|
|
# GCC bug 59666: results on directed rounding may be incorrect.
|
2014-03-24 12:18:45 +00:00
|
|
|
exp10 max xfail-rounding:ldbl-128ibm
|
2013-12-03 16:22:49 +00:00
|
|
|
exp10 -max
|
|
|
|
exp10 0.75
|
2014-01-03 17:08:10 +00:00
|
|
|
# GCC bug 59666: results on directed rounding may be incorrect.
|
2014-03-24 12:18:45 +00:00
|
|
|
exp10 0x1.348e45573a1dd72cp+8 xfail-rounding:ldbl-128ibm
|
2014-06-25 11:33:22 +00:00
|
|
|
exp10 0x1p-10
|
|
|
|
exp10 -0x1p-10
|
|
|
|
exp10 0x1p-20
|
|
|
|
exp10 -0x1p-20
|
|
|
|
exp10 0x1p-30
|
|
|
|
exp10 -0x1p-30
|
|
|
|
exp10 0x1p-40
|
|
|
|
exp10 -0x1p-40
|
|
|
|
exp10 0x1p-50
|
|
|
|
exp10 -0x1p-50
|
|
|
|
exp10 0x1p-60
|
|
|
|
exp10 -0x1p-60
|
|
|
|
exp10 0x1p-100
|
|
|
|
exp10 -0x1p-100
|
|
|
|
exp10 min
|
|
|
|
exp10 -min
|
|
|
|
exp10 min_subnorm
|
|
|
|
exp10 -min_subnorm
|
2013-12-03 16:22:49 +00:00
|
|
|
|
2015-05-01 20:33:04 +00:00
|
|
|
exp10 0xd.f73d6p-4
|
|
|
|
exp10 0x1.cc6776p+0
|
|
|
|
exp10 0x5.b00bcd891ffe56fp+0
|
Add more tests of various libm functions.
This patch adds more tests of various libm functions found through
random test generation to give increased ulps on 32-bit x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acosh, asin, asinh,
atanh, cabs, carg, cbrt, cosh, csqrt, erf, erfc, exp, exp10,
expm1, hypot, log, log10, log1p, log2, pow, sinh, tan and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-11 00:58:28 +00:00
|
|
|
exp10 0xe.8b349p+4
|
2015-05-01 20:33:04 +00:00
|
|
|
|
2013-12-03 16:22:49 +00:00
|
|
|
exp2 0
|
|
|
|
exp2 -0
|
|
|
|
exp2 10
|
|
|
|
exp2 -1
|
|
|
|
exp2 1e6
|
2013-12-03 20:50:51 +00:00
|
|
|
exp2 -1e6
|
2013-12-03 16:22:49 +00:00
|
|
|
exp2 max
|
2013-12-03 20:50:51 +00:00
|
|
|
exp2 -max
|
2013-12-03 16:22:49 +00:00
|
|
|
exp2 0.75
|
|
|
|
exp2 100.5
|
2015-06-23 14:35:18 +00:00
|
|
|
exp2 -116.5
|
|
|
|
exp2 -123.5
|
|
|
|
exp2 -124.5
|
|
|
|
exp2 -125.5
|
2013-12-03 16:22:49 +00:00
|
|
|
exp2 127
|
|
|
|
exp2 -149
|
|
|
|
exp2 1000.25
|
2015-06-23 14:35:18 +00:00
|
|
|
exp2 -1019.5
|
|
|
|
exp2 -1020.5
|
|
|
|
exp2 -1021.5
|
2013-12-03 16:22:49 +00:00
|
|
|
exp2 1023
|
2013-12-03 20:50:51 +00:00
|
|
|
exp2 -1074
|
2013-12-03 16:22:49 +00:00
|
|
|
exp2 16383
|
2013-12-03 20:50:51 +00:00
|
|
|
exp2 -16400
|
2015-02-12 19:02:45 +00:00
|
|
|
exp2 0x1p-10
|
|
|
|
exp2 -0x1p-10
|
|
|
|
exp2 0x1p-20
|
|
|
|
exp2 -0x1p-20
|
|
|
|
exp2 0x1p-30
|
|
|
|
exp2 -0x1p-30
|
|
|
|
exp2 0x1p-40
|
|
|
|
exp2 -0x1p-40
|
|
|
|
exp2 0x1p-50
|
|
|
|
exp2 -0x1p-50
|
|
|
|
exp2 0x1p-60
|
|
|
|
exp2 -0x1p-60
|
|
|
|
exp2 0x1p-100
|
|
|
|
exp2 -0x1p-100
|
|
|
|
exp2 min
|
|
|
|
exp2 -min
|
|
|
|
exp2 min_subnorm
|
|
|
|
exp2 -min_subnorm
|
2013-12-03 16:22:49 +00:00
|
|
|
|
2015-05-01 20:33:04 +00:00
|
|
|
exp2 0xb.71754p-4
|
|
|
|
exp2 0xd.d77dp+0
|
|
|
|
exp2 0xc.122c4p-4
|
|
|
|
exp2 -0x1.567cc8p+0
|
|
|
|
exp2 -0x1.bbbd76p+0
|
|
|
|
exp2 -0x1.3045fep+8
|
Add more tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64.
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of atan, clog, clog10,
cos, csqrt, erf, erfc, exp2, lgamma, log1p, sin, sincos, tanh and
tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-02 21:06:33 +00:00
|
|
|
exp2 0xa.87b8bp+0
|
Add further tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64. (This process
must eventually converge, when my random test generation stops finding
inputs that increase the listed ulps, except maybe for any cases
uncovered where the errors exceed the maximum allowed 9ulp error and
so indicate actual libm bugs needing fixing.)
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of acosh, atanh, clog,
clog10, csqrt, erfc, exp2, expm1, log10, log2 and sinh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-05 22:59:41 +00:00
|
|
|
exp2 -0xe.2ce69p-4
|
|
|
|
exp2 -0xc.1bf12p-16
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
exp2 -0x4.8ce878p-4
|
2015-05-01 20:33:04 +00:00
|
|
|
|
2013-12-03 16:22:49 +00:00
|
|
|
expm1 0
|
|
|
|
expm1 -0
|
|
|
|
expm1 1
|
|
|
|
expm1 0.75
|
|
|
|
expm1 50.0
|
|
|
|
expm1 127.0
|
|
|
|
expm1 500.0
|
2014-01-03 17:08:10 +00:00
|
|
|
# GCC bug 59666: results on directed rounding may be incorrect.
|
|
|
|
expm1 11356.25 xfail-rounding:ldbl-128ibm
|
2013-12-03 16:22:49 +00:00
|
|
|
expm1 -10.0
|
|
|
|
expm1 -16.0
|
|
|
|
expm1 -17.0
|
|
|
|
expm1 -18.0
|
|
|
|
expm1 -36.0
|
|
|
|
expm1 -37.0
|
|
|
|
expm1 -38.0
|
|
|
|
expm1 -44.0
|
|
|
|
expm1 -45.0
|
|
|
|
expm1 -46.0
|
|
|
|
expm1 -73.0
|
|
|
|
expm1 -74.0
|
|
|
|
expm1 -75.0
|
|
|
|
expm1 -78.0
|
|
|
|
expm1 -79.0
|
|
|
|
expm1 -80.0
|
|
|
|
expm1 -100.0
|
|
|
|
expm1 -1000.0
|
|
|
|
expm1 -10000.0
|
|
|
|
expm1 -100000.0
|
2014-01-03 17:08:10 +00:00
|
|
|
# GCC bug 59666: results on directed rounding may be incorrect.
|
|
|
|
expm1 100000.0 xfail-rounding:ldbl-128ibm
|
|
|
|
expm1 max xfail-rounding:ldbl-128ibm
|
2013-12-03 16:22:49 +00:00
|
|
|
expm1 -max
|
2013-12-19 13:36:10 +00:00
|
|
|
expm1 0x1p-2
|
|
|
|
expm1 -0x1p-2
|
|
|
|
expm1 0x1p-10
|
|
|
|
expm1 -0x1p-10
|
|
|
|
expm1 0x1p-20
|
|
|
|
expm1 -0x1p-20
|
|
|
|
expm1 0x1p-29
|
|
|
|
expm1 -0x1p-29
|
|
|
|
expm1 0x1p-32
|
|
|
|
expm1 -0x1p-32
|
|
|
|
expm1 0x1p-50
|
|
|
|
expm1 -0x1p-50
|
|
|
|
expm1 0x1p-64
|
|
|
|
expm1 -0x1p-64
|
|
|
|
expm1 0x1p-100
|
|
|
|
expm1 -0x1p-100
|
2015-03-25 00:05:13 +00:00
|
|
|
expm1 0xe.4152ac57cd1ea7ap-60
|
|
|
|
expm1 0x6.660247486aed8p-4
|
|
|
|
expm1 0x6.289a78p-4
|
|
|
|
expm1 0x6.1b4d318238d4a2a8p-4
|
2015-05-01 20:33:04 +00:00
|
|
|
expm1 0x5.fb8dc64e91a74p-4
|
Add further tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64. (This process
must eventually converge, when my random test generation stops finding
inputs that increase the listed ulps, except maybe for any cases
uncovered where the errors exceed the maximum allowed 9ulp error and
so indicate actual libm bugs needing fixing.)
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of acosh, atanh, clog,
clog10, csqrt, erfc, exp2, expm1, log10, log2 and sinh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-05 22:59:41 +00:00
|
|
|
expm1 0x3.735f497c4e67535cp-4
|
Add more tests of various libm functions.
This patch adds more tests of various libm functions found through
random test generation to give increased ulps on 32-bit x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acosh, asin, asinh,
atanh, cabs, carg, cbrt, cosh, csqrt, erf, erfc, exp, exp10,
expm1, hypot, log, log10, log1p, log2, pow, sinh, tan and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-11 00:58:28 +00:00
|
|
|
expm1 -0x7.d6c50b469d404p+0
|
2015-09-11 15:03:10 +00:00
|
|
|
expm1 0x4.857de8p+4
|
2015-06-22 21:06:19 +00:00
|
|
|
expm1 0x4.0000000000000028p-16384
|
|
|
|
expm1 min
|
|
|
|
expm1 -min
|
|
|
|
expm1 min_subnorm
|
|
|
|
expm1 -min_subnorm
|
2013-12-03 16:22:49 +00:00
|
|
|
|
Move tests of fma from libm-test.inc to auto-libm-test-in.
This patch moves tests of fma to auto-libm-test-in, adding the
required support to gen-auto-libm-tests.
Because fma can have exact zero results depending on the rounding
mode, results of fma cannot always be determined from a single value
computed in higher precision with a sticky bit. Thus, this patch adds
support for recomputing results with the original MPFR/MPC function in
the case where an exact zero is involved. (This also affects some
results for cpow; when we start testing cpow in all rounding modes, I
think it will be most appropriate to make those tests use
IGNORE_ZERO_INF_SIGN, since ISO C does not attempt to determine signs
of zero results, or special caes in general, for cpow, and I think
signs of zero for cpow are beyond the scope of glibc's accuracy
goals.)
Simply treating the existing test inputs for fma like those for other
functions (i.e., as representing the given value rounded up or down to
any of the supported floating-point formats) increases the size of
auto-libm-test-out by about 16MB (i.e., about half the file is fma
test data). While rounded versions of tests are perfectly reasonable
test inputs for fma, in this case having them seems excessive, so this
patch allows functions to specify in gen-auto-libm-tests that the
given test inputs are only to be interpreted exactly, not as
corresponding to values rounded up and down. This reduces the size of
the generated test data for fma to a more reasonable 2MB.
A consequence of this patch is that fma is now tested for correct
presence or absence of "inexact" exceptions, where previously this
wasn't tested because I didn't want to try to add that test coverage
manually to all the existing tests. As far as I know, the existing
fma implementations are already correct in this regard.
This patch provides the first cases where the gen-auto-libm-tests
support for distinguishing before-rounding/after-rounding underflow
actually produces separate entries in auto-libm-test-out (for
functions without exactly determined results, the affected cases are
all considered underflow-optional, so this only affects functions like
fma with exactly determined results). I didn't see any signs of
problems with this logic in the output.
Tested x86_64 and x86.
* math/auto-libm-test-in: Add tests of fma.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (fma_test_data): Use AUTO_TESTS_fff_f.
(fma_towardzero_test_data): Likewise.
(fma_downward_test_data): Likewise.
(fma_upward_test_data): Likewise.
* math/gen-auto-libm-tests.c (rounding_mode_desc): Add field
mpc_mode.
(rounding_modes): Add values for new field.
(func_calc_method): Add value mpfr_fff_f.
(func_calc_desc): Add mpfr_fff_f union field.
(test_function): Add field exact_args.
(FUNC): Add macro argument EXACT_ARGS.
(FUNC_mpfr_f_f): Update call to FUNC.
(FUNC_mpfr_f_f): Likewise.
(FUNC_mpfr_ff_f): Likewise.
(FUNC_mpfr_if_f): Likewise.
(FUNC_mpc_c_f): Likewise.
(FUNC_mpc_c_c): Likewise.
(test_functions): Add fma. Update calls to FUNC.
(handle_input_arg): Add argument exact_args.
(add_test): Update call to handle_input_arg.
(calc_generic_results): Add argument mode. Handle mpfr_fff_f.
(output_for_one_input_case): Update call to calc_generic_results.
Recalculate exact zero results in each rounding mode.
2014-02-18 21:48:51 +00:00
|
|
|
fma 1.0 2.0 3.0
|
|
|
|
fma 1.25 0.75 0.0625
|
|
|
|
|
|
|
|
fma 0 0 0
|
|
|
|
fma 0 0 -0
|
|
|
|
fma 0 -0 0
|
|
|
|
fma 0 -0 -0
|
|
|
|
fma -0 0 0
|
|
|
|
fma -0 0 -0
|
|
|
|
fma -0 -0 0
|
|
|
|
fma -0 -0 -0
|
|
|
|
fma 1.0 0 0
|
|
|
|
fma 1.0 0 -0
|
|
|
|
fma 1.0 -0 0
|
|
|
|
fma 1.0 -0 -0
|
|
|
|
fma -1.0 0 0
|
|
|
|
fma -1.0 0 -0
|
|
|
|
fma -1.0 -0 0
|
|
|
|
fma -1.0 -0 -0
|
|
|
|
fma 0 1.0 0
|
|
|
|
fma 0 1.0 -0
|
|
|
|
fma 0 -1.0 0
|
|
|
|
fma 0 -1.0 -0
|
|
|
|
fma -0 1.0 0
|
|
|
|
fma -0 1.0 -0
|
|
|
|
fma -0 -1.0 0
|
|
|
|
fma -0 -1.0 -0
|
|
|
|
|
|
|
|
fma 1.0 1.0 -1.0
|
|
|
|
fma 1.0 -1.0 1.0
|
|
|
|
fma -1.0 1.0 1.0
|
|
|
|
fma -1.0 -1.0 -1.0
|
|
|
|
|
2015-02-06 15:44:07 +00:00
|
|
|
fma 0 0 1
|
|
|
|
fma 0 0 2
|
|
|
|
fma 0 0 max
|
|
|
|
fma 0 1 1
|
|
|
|
fma 1 0 1
|
|
|
|
fma 0 1 2
|
|
|
|
fma 1 0 2
|
|
|
|
fma 0 1 max
|
|
|
|
fma 1 0 max
|
|
|
|
|
Move tests of fma from libm-test.inc to auto-libm-test-in.
This patch moves tests of fma to auto-libm-test-in, adding the
required support to gen-auto-libm-tests.
Because fma can have exact zero results depending on the rounding
mode, results of fma cannot always be determined from a single value
computed in higher precision with a sticky bit. Thus, this patch adds
support for recomputing results with the original MPFR/MPC function in
the case where an exact zero is involved. (This also affects some
results for cpow; when we start testing cpow in all rounding modes, I
think it will be most appropriate to make those tests use
IGNORE_ZERO_INF_SIGN, since ISO C does not attempt to determine signs
of zero results, or special caes in general, for cpow, and I think
signs of zero for cpow are beyond the scope of glibc's accuracy
goals.)
Simply treating the existing test inputs for fma like those for other
functions (i.e., as representing the given value rounded up or down to
any of the supported floating-point formats) increases the size of
auto-libm-test-out by about 16MB (i.e., about half the file is fma
test data). While rounded versions of tests are perfectly reasonable
test inputs for fma, in this case having them seems excessive, so this
patch allows functions to specify in gen-auto-libm-tests that the
given test inputs are only to be interpreted exactly, not as
corresponding to values rounded up and down. This reduces the size of
the generated test data for fma to a more reasonable 2MB.
A consequence of this patch is that fma is now tested for correct
presence or absence of "inexact" exceptions, where previously this
wasn't tested because I didn't want to try to add that test coverage
manually to all the existing tests. As far as I know, the existing
fma implementations are already correct in this regard.
This patch provides the first cases where the gen-auto-libm-tests
support for distinguishing before-rounding/after-rounding underflow
actually produces separate entries in auto-libm-test-out (for
functions without exactly determined results, the affected cases are
all considered underflow-optional, so this only affects functions like
fma with exactly determined results). I didn't see any signs of
problems with this logic in the output.
Tested x86_64 and x86.
* math/auto-libm-test-in: Add tests of fma.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (fma_test_data): Use AUTO_TESTS_fff_f.
(fma_towardzero_test_data): Likewise.
(fma_downward_test_data): Likewise.
(fma_upward_test_data): Likewise.
* math/gen-auto-libm-tests.c (rounding_mode_desc): Add field
mpc_mode.
(rounding_modes): Add values for new field.
(func_calc_method): Add value mpfr_fff_f.
(func_calc_desc): Add mpfr_fff_f union field.
(test_function): Add field exact_args.
(FUNC): Add macro argument EXACT_ARGS.
(FUNC_mpfr_f_f): Update call to FUNC.
(FUNC_mpfr_f_f): Likewise.
(FUNC_mpfr_ff_f): Likewise.
(FUNC_mpfr_if_f): Likewise.
(FUNC_mpc_c_f): Likewise.
(FUNC_mpc_c_c): Likewise.
(test_functions): Add fma. Update calls to FUNC.
(handle_input_arg): Add argument exact_args.
(add_test): Update call to handle_input_arg.
(calc_generic_results): Add argument mode. Handle mpfr_fff_f.
(output_for_one_input_case): Update call to calc_generic_results.
Recalculate exact zero results in each rounding mode.
2014-02-18 21:48:51 +00:00
|
|
|
# Bug 6801: errno setting may be missing.
|
|
|
|
fma min min 0 missing-errno
|
|
|
|
fma min min -0 missing-errno
|
|
|
|
fma min -min 0 missing-errno
|
|
|
|
fma min -min -0 missing-errno
|
|
|
|
fma -min min 0 missing-errno
|
|
|
|
fma -min min -0 missing-errno
|
|
|
|
fma -min -min 0 missing-errno
|
|
|
|
fma -min -min -0 missing-errno
|
|
|
|
|
|
|
|
# Bug 6801: errno setting may be missing.
|
|
|
|
# Bug 13304: results on directed rounding may be incorrect.
|
|
|
|
fma max max min missing-errno xfail-rounding:ldbl-128ibm
|
|
|
|
fma max max -min missing-errno xfail-rounding:ldbl-128ibm
|
|
|
|
fma max -max min missing-errno xfail-rounding:ldbl-128ibm
|
|
|
|
fma max -max -min missing-errno xfail-rounding:ldbl-128ibm
|
|
|
|
fma -max max min missing-errno xfail-rounding:ldbl-128ibm
|
|
|
|
fma -max max -min missing-errno xfail-rounding:ldbl-128ibm
|
|
|
|
fma -max -max min missing-errno xfail-rounding:ldbl-128ibm
|
|
|
|
fma -max -max -min missing-errno xfail-rounding:ldbl-128ibm
|
|
|
|
|
|
|
|
fma 0x1.7ff8p+13 0x1.000002p+0 0x1.ffffp-24
|
|
|
|
fma 0x1.fffp+0 0x1.00001p+0 -0x1.fffp+0
|
|
|
|
fma 0x1.9abcdep+127 0x0.9abcdep-126 -0x1.f08948p+0
|
|
|
|
fma 0x1.9abcdep+100 0x0.9abcdep-126 -0x1.f08948p-27
|
|
|
|
fma 0x1.fffffep+127 0x1.001p+0 -0x1.fffffep+127
|
|
|
|
fma -0x1.fffffep+127 0x1.fffffep+0 0x1.fffffep+127
|
|
|
|
fma 0x1.fffffep+127 2.0 -0x1.fffffep+127
|
|
|
|
fma 0x1.4p-126 0x1.000004p-1 0x1p-128
|
|
|
|
fma -0x1.4p-126 0x1.000004p-1 -0x1p-128
|
|
|
|
fma 0x1.fffff8p-126 0x1.000002p-1 0x1p-149
|
|
|
|
fma -0x1.fffff8p-126 0x1.000002p-1 -0x1p-149
|
|
|
|
fma 0x1p-149 0x1p-1 0x0.fffffep-126
|
|
|
|
fma -0x1p-149 0x1p-1 -0x0.fffffep-126
|
|
|
|
fma 0x1p-149 0x1.1p-1 0x0.fffffep-126
|
|
|
|
fma -0x1p-149 0x1.1p-1 -0x0.fffffep-126
|
|
|
|
fma 0x1p-149 0x1p-149 0x1p127
|
|
|
|
fma 0x1p-149 -0x1p-149 0x1p127
|
|
|
|
fma 0x1p-149 0x1p-149 -0x1p127
|
|
|
|
fma 0x1p-149 -0x1p-149 -0x1p127
|
|
|
|
fma 0x1p-149 0x1p-149 0x1p-126
|
|
|
|
fma 0x1p-149 -0x1p-149 0x1p-126
|
|
|
|
fma 0x1p-149 0x1p-149 -0x1p-126
|
|
|
|
fma 0x1p-149 -0x1p-149 -0x1p-126
|
|
|
|
fma 0x1p-149 0x1p-149 0x0.fffffep-126
|
|
|
|
fma 0x1p-149 -0x1p-149 0x0.fffffep-126
|
|
|
|
fma 0x1p-149 0x1p-149 -0x0.fffffep-126
|
|
|
|
fma 0x1p-149 -0x1p-149 -0x0.fffffep-126
|
|
|
|
fma 0x1p-149 0x1p-149 0x1p-149
|
|
|
|
# Bug 6801: errno setting may be missing.
|
|
|
|
fma 0x1p-149 -0x1p-149 0x1p-149 missing-errno
|
|
|
|
fma 0x1p-149 0x1p-149 -0x1p-149 missing-errno
|
|
|
|
fma 0x1p-149 -0x1p-149 -0x1p-149
|
|
|
|
fma 0x0.fffp0 0x0.fffp0 -0x0.ffep0
|
|
|
|
fma 0x0.fffp0 -0x0.fffp0 0x0.ffep0
|
|
|
|
fma -0x0.fffp0 0x0.fffp0 0x0.ffep0
|
|
|
|
fma -0x0.fffp0 -0x0.fffp0 -0x0.ffep0
|
|
|
|
fma 0x1.000002p-126 0x1.000002p-26 0x1p127
|
|
|
|
fma 0x1.000002p-126 -0x1.000002p-26 0x1p127
|
|
|
|
fma 0x1.000002p-126 0x1.000002p-26 -0x1p127
|
|
|
|
fma 0x1.000002p-126 -0x1.000002p-26 -0x1p127
|
|
|
|
fma 0x1.000002p-126 0x1.000002p-26 0x1p103
|
|
|
|
fma 0x1.000002p-126 -0x1.000002p-26 0x1p103
|
|
|
|
fma 0x1.000002p-126 0x1.000002p-26 -0x1p103
|
|
|
|
fma 0x1.000002p-126 -0x1.000002p-26 -0x1p103
|
|
|
|
|
|
|
|
fma 0x1.7fp+13 0x1.0000000000001p+0 0x1.ffep-48
|
|
|
|
fma 0x1.fffp+0 0x1.0000000000001p+0 -0x1.fffp+0
|
|
|
|
fma 0x1.0000002p+0 0x1.ffffffcp-1 0x1p-300
|
|
|
|
fma 0x1.0000002p+0 0x1.ffffffcp-1 -0x1p-300
|
|
|
|
fma 0x1.deadbeef2feedp+1023 0x0.deadbeef2feedp-1022 -0x1.a05f8c01a4bfbp+1
|
|
|
|
fma 0x1.deadbeef2feedp+900 0x0.deadbeef2feedp-1022 -0x1.a05f8c01a4bfbp-122
|
|
|
|
fma 0x1.fffffffffffffp+1023 0x1.001p+0 -0x1.fffffffffffffp+1023
|
|
|
|
fma -0x1.fffffffffffffp+1023 0x1.fffffffffffffp+0 0x1.fffffffffffffp+1023
|
|
|
|
fma 0x1.fffffffffffffp+1023 2.0 -0x1.fffffffffffffp+1023
|
|
|
|
# Bug 6801: errno setting may be missing.
|
|
|
|
fma 0x1.6a09e667f3bccp-538 0x1.6a09e667f3bccp-538 0.0 missing-errno
|
|
|
|
fma 0x1.deadbeef2feedp-495 0x1.deadbeef2feedp-495 -0x1.bf86a5786a574p-989
|
|
|
|
fma 0x1.deadbeef2feedp-503 0x1.deadbeef2feedp-503 -0x1.bf86a5786a574p-1005
|
|
|
|
fma 0x1p-537 0x1p-538 0x1p-1074
|
|
|
|
fma 0x1.7fffff8p-968 0x1p-106 0x0.000001p-1022
|
|
|
|
fma 0x1.4000004p-967 0x1p-106 0x0.000001p-1022
|
|
|
|
fma 0x1.4p-967 -0x1p-106 -0x0.000001p-1022
|
|
|
|
fma -0x1.19cab66d73e17p-959 0x1.c7108a8c5ff51p-107 -0x0.80b0ad65d9b64p-1022
|
|
|
|
fma -0x1.d2eaed6e8e9d3p-979 -0x1.4e066c62ac9ddp-63 -0x0.9245e6b003454p-1022
|
|
|
|
fma 0x1.153d650bb9f06p-907 0x1.2d01230d48407p-125 -0x0.b278d5acfc3cp-1022
|
|
|
|
fma -0x1.fffffffffffffp-711 0x1.fffffffffffffp-275 0x1.fffffe00007ffp-983
|
|
|
|
fma 0x1.4p-1022 0x1.0000000000002p-1 0x1p-1024
|
|
|
|
fma -0x1.4p-1022 0x1.0000000000002p-1 -0x1p-1024
|
|
|
|
fma 0x1.ffffffffffffcp-1022 0x1.0000000000001p-1 0x1p-1074
|
|
|
|
fma -0x1.ffffffffffffcp-1022 0x1.0000000000001p-1 -0x1p-1074
|
|
|
|
fma 0x1p-1074 0x1p-1 0x0.fffffffffffffp-1022
|
|
|
|
fma -0x1p-1074 0x1p-1 -0x0.fffffffffffffp-1022
|
|
|
|
fma 0x1p-1074 0x1.1p-1 0x0.fffffffffffffp-1022
|
|
|
|
fma -0x1p-1074 0x1.1p-1 -0x0.fffffffffffffp-1022
|
|
|
|
fma 0x1p-1074 0x1p-1074 0x1p1023
|
|
|
|
fma 0x1p-1074 -0x1p-1074 0x1p1023
|
|
|
|
fma 0x1p-1074 0x1p-1074 -0x1p1023
|
|
|
|
fma 0x1p-1074 -0x1p-1074 -0x1p1023
|
|
|
|
fma 0x1p-1074 0x1p-1074 0x1p-1022
|
|
|
|
fma 0x1p-1074 -0x1p-1074 0x1p-1022
|
|
|
|
fma 0x1p-1074 0x1p-1074 -0x1p-1022
|
|
|
|
fma 0x1p-1074 -0x1p-1074 -0x1p-1022
|
|
|
|
fma 0x1p-1074 0x1p-1074 0x0.fffffffffffffp-1022
|
|
|
|
fma 0x1p-1074 -0x1p-1074 0x0.fffffffffffffp-1022
|
|
|
|
fma 0x1p-1074 0x1p-1074 -0x0.fffffffffffffp-1022
|
|
|
|
fma 0x1p-1074 -0x1p-1074 -0x0.fffffffffffffp-1022
|
|
|
|
fma 0x1p-1074 0x1p-1074 0x1p-1074
|
|
|
|
# Bug 6801: errno setting may be missing.
|
|
|
|
fma 0x1p-1074 -0x1p-1074 0x1p-1074 missing-errno
|
|
|
|
fma 0x1p-1074 0x1p-1074 -0x1p-1074 missing-errno
|
|
|
|
fma 0x1p-1074 -0x1p-1074 -0x1p-1074
|
|
|
|
fma 0x0.fffffffffffff8p0 0x0.fffffffffffff8p0 -0x0.fffffffffffffp0
|
|
|
|
fma 0x0.fffffffffffff8p0 -0x0.fffffffffffff8p0 0x0.fffffffffffffp0
|
|
|
|
fma -0x0.fffffffffffff8p0 0x0.fffffffffffff8p0 0x0.fffffffffffffp0
|
|
|
|
fma -0x0.fffffffffffff8p0 -0x0.fffffffffffff8p0 -0x0.fffffffffffffp0
|
|
|
|
fma 0x1.0000000000001p-1022 0x1.0000000000001p-55 0x1p1023
|
|
|
|
fma 0x1.0000000000001p-1022 -0x1.0000000000001p-55 0x1p1023
|
|
|
|
fma 0x1.0000000000001p-1022 0x1.0000000000001p-55 -0x1p1023
|
|
|
|
fma 0x1.0000000000001p-1022 -0x1.0000000000001p-55 -0x1p1023
|
|
|
|
fma 0x1.0000000000001p-1022 0x1.0000000000001p-55 0x1p970
|
|
|
|
fma 0x1.0000000000001p-1022 -0x1.0000000000001p-55 0x1p970
|
|
|
|
fma 0x1.0000000000001p-1022 0x1.0000000000001p-55 -0x1p970
|
|
|
|
fma 0x1.0000000000001p-1022 -0x1.0000000000001p-55 -0x1p970
|
|
|
|
|
|
|
|
fma -0x8.03fcp+3696 0xf.fffffffffffffffp-6140 0x8.3ffffffffffffffp-2450
|
|
|
|
fma 0x9.fcp+2033 -0x8.000e1f000ff800fp-3613 -0xf.fffffffffffc0ffp-1579
|
|
|
|
fma 0xc.7fc000003ffffffp-1194 0x8.1e0003fffffffffp+15327 -0x8.fffep+14072
|
|
|
|
fma -0x8.0001fc000000003p+1798 0xcp-2230 0x8.f7e000000000007p-468
|
|
|
|
fma 0xc.0000000000007ffp+10130 -0x8.000000000000001p+4430 0xc.07000000001ffffp+14513
|
|
|
|
fma 0xb.ffffp-4777 0x8.000000fffffffffp-11612 -0x0.3800fff8p-16385
|
|
|
|
fma 0x1.4p-16382 0x1.0000000000000004p-1 0x1p-16384
|
|
|
|
fma -0x1.4p-16382 0x1.0000000000000004p-1 -0x1p-16384
|
|
|
|
fma 0x1.fffffffffffffff8p-16382 0x1.0000000000000002p-1 0x1p-16445
|
|
|
|
fma -0x1.fffffffffffffff8p-16382 0x1.0000000000000002p-1 -0x1p-16445
|
|
|
|
fma 0x1p-16445 0x1p-1 0x0.fffffffffffffffep-16382
|
|
|
|
fma -0x1p-16445 0x1p-1 -0x0.fffffffffffffffep-16382
|
|
|
|
fma 0x1p-16445 0x1.1p-1 0x0.fffffffffffffffep-16382
|
|
|
|
fma -0x1p-16445 0x1.1p-1 -0x0.fffffffffffffffep-16382
|
|
|
|
fma 0x1p-16445 0x1p-16445 0x1p16383
|
|
|
|
fma 0x1p-16445 -0x1p-16445 0x1p16383
|
|
|
|
fma 0x1p-16445 0x1p-16445 -0x1p16383
|
|
|
|
fma 0x1p-16445 -0x1p-16445 -0x1p16383
|
|
|
|
fma 0x1p-16445 0x1p-16445 0x1p-16382
|
|
|
|
fma 0x1p-16445 -0x1p-16445 0x1p-16382
|
|
|
|
fma 0x1p-16445 0x1p-16445 -0x1p-16382
|
|
|
|
fma 0x1p-16445 -0x1p-16445 -0x1p-16382
|
|
|
|
fma 0x1p-16445 0x1p-16445 0x0.fffffffffffffffep-16382
|
|
|
|
fma 0x1p-16445 -0x1p-16445 0x0.fffffffffffffffep-16382
|
|
|
|
fma 0x1p-16445 0x1p-16445 -0x0.fffffffffffffffep-16382
|
|
|
|
fma 0x1p-16445 -0x1p-16445 -0x0.fffffffffffffffep-16382
|
|
|
|
fma 0x1p-16445 0x1p-16445 0x1p-16445
|
|
|
|
# Bug 6801: errno setting may be missing.
|
|
|
|
fma 0x1p-16445 -0x1p-16445 0x1p-16445 missing-errno
|
|
|
|
fma 0x1p-16445 0x1p-16445 -0x1p-16445 missing-errno
|
|
|
|
fma 0x1p-16445 -0x1p-16445 -0x1p-16445
|
|
|
|
fma 0x0.ffffffffffffffffp0 0x0.ffffffffffffffffp0 -0x0.fffffffffffffffep0
|
|
|
|
fma 0x0.ffffffffffffffffp0 -0x0.ffffffffffffffffp0 0x0.fffffffffffffffep0
|
|
|
|
fma -0x0.ffffffffffffffffp0 0x0.ffffffffffffffffp0 0x0.fffffffffffffffep0
|
|
|
|
fma -0x0.ffffffffffffffffp0 -0x0.ffffffffffffffffp0 -0x0.fffffffffffffffep0
|
|
|
|
fma 0x1.0000000000000002p-16382 0x1.0000000000000002p-66 0x1p16383
|
|
|
|
fma 0x1.0000000000000002p-16382 -0x1.0000000000000002p-66 0x1p16383
|
|
|
|
fma 0x1.0000000000000002p-16382 0x1.0000000000000002p-66 -0x1p16383
|
|
|
|
fma 0x1.0000000000000002p-16382 -0x1.0000000000000002p-66 -0x1p16383
|
|
|
|
fma 0x1.0000000000000002p-16382 0x1.0000000000000002p-66 0x1p16319
|
|
|
|
fma 0x1.0000000000000002p-16382 -0x1.0000000000000002p-66 0x1p16319
|
|
|
|
fma 0x1.0000000000000002p-16382 0x1.0000000000000002p-66 -0x1p16319
|
|
|
|
fma 0x1.0000000000000002p-16382 -0x1.0000000000000002p-66 -0x1p16319
|
|
|
|
|
|
|
|
fma 0x1.bb2de33e02ccbbfa6e245a7c1f71p-2584 -0x1.6b500daf0580d987f1bc0cadfcddp-13777 0x1.613cd91d9fed34b33820e5ab9d8dp-16378
|
|
|
|
fma -0x1.f949b880cacb0f0c61540105321dp-5954 -0x1.3876cec84b4140f3bd6198731b7ep-10525 -0x0.a5dc1c6cfbc498c54fb0b504bf19p-16382
|
|
|
|
fma -0x1.0000fffffffffp-16221 0x1.0000001fffff8007fep-239 0x0.ff87ffffffffffffe000003fffffp-16382
|
|
|
|
fma -0x1.ac79c9376ef447f3827c9e9de008p-2228 -0x1.5ba830022b6139e21fbe7270cad8p-6314 0x1.e8282b6a26bb6a9daf5c8e73e9f9p-8616
|
|
|
|
fma -0x1.c69749ec574caaa2ab8e97ddb9f3p+2652 0x1.f34235ff9d095449c29b4831b62dp+3311 0x1.fbe4302df23354dbd0c4d3cfe606p+5879
|
|
|
|
fma -0x1.ca8835fc6ecfb5398625fc891be5p-1686 0x1.621e1972bbe2180e5be9dd7d8df5p-7671 -0x1.7d2d21b73b52cf20dec2a83902a4p-9395
|
|
|
|
fma -0x1.55cff679ec49c2541fab41fc843ep-11819 0x1.e60e9f464f9e8df0509647c7c971p+12325 0x1.eaa2a7649d765c2f564f7a5beca7p+454
|
|
|
|
fma 0x1.f0e7b1454908576f2537d863cf9bp+11432 0x1.cdce52f09d4ca76e68706f34b5d5p-1417 -0x1.2e986187c70f146235ea2066e486p+9979
|
|
|
|
fma 0x1.f102f7da4a57a3a4aab620e29452p-3098 -0x1.cc06a4ff40248f9e2dcc4b6afd84p-11727 0x1.d512a11126b5ac8ed8973b8580c8p-14849
|
|
|
|
fma -0x1.fc47ac7434b993cd8dcb2b431f25p-3816 0x1.fbc9750da8468852d84558e1db6dp-5773 -0x1.00a98abf783f75c40fe5b7a37d86p-9607
|
|
|
|
fma 0x1.00000000000007ffffffffffffffp-9045 -0x1.ffffffffffff80000001ffffffffp+4773 -0x1.f8p-4316
|
|
|
|
fma 0x1.4e922764c90701d4a2f21d01893dp-8683 -0x1.955a12e2d7c9447c27fa022fc865p+212 -0x1.e9634462eaef96528b90b6944578p-8521
|
|
|
|
fma 0x1.801181509c03bdbef10d6165588cp-15131 0x1.ad86f8e57d3d40bfa8007780af63p-368 -0x1.6e9df0dab1c9f1d7a6043c390741p-15507
|
|
|
|
fma 0x1.ffffffffffffffp0 0x1.000000000000008p0 -0x1p-1000
|
|
|
|
fma 0x1.4p-16382 0x1.0000000000000000000000000002p-1 0x1p-16384
|
|
|
|
fma -0x1.4p-16382 0x1.0000000000000000000000000002p-1 -0x1p-16384
|
|
|
|
fma 0x1.fffffffffffffffffffffffffffcp-16382 0x1.0000000000000000000000000001p-1 0x1p-16494
|
|
|
|
fma -0x1.fffffffffffffffffffffffffffcp-16382 0x1.0000000000000000000000000001p-1 -0x1p-16494
|
|
|
|
fma 0x1p-16494 0x1p-1 0x0.ffffffffffffffffffffffffffffp-16382
|
|
|
|
fma -0x1p-16494 0x1p-1 -0x0.ffffffffffffffffffffffffffffp-16382
|
|
|
|
fma 0x1p-16494 0x1.1p-1 0x0.ffffffffffffffffffffffffffffp-16382
|
|
|
|
fma -0x1p-16494 0x1.1p-1 -0x0.ffffffffffffffffffffffffffffp-16382
|
|
|
|
fma 0x1p-16494 0x1p-16494 0x1p16383
|
|
|
|
fma 0x1p-16494 -0x1p-16494 0x1p16383
|
|
|
|
fma 0x1p-16494 0x1p-16494 -0x1p16383
|
|
|
|
fma 0x1p-16494 -0x1p-16494 -0x1p16383
|
|
|
|
fma 0x1p-16494 0x1p-16494 0x1p-16382
|
|
|
|
fma 0x1p-16494 -0x1p-16494 0x1p-16382
|
|
|
|
fma 0x1p-16494 0x1p-16494 -0x1p-16382
|
|
|
|
fma 0x1p-16494 -0x1p-16494 -0x1p-16382
|
|
|
|
fma 0x1p-16494 0x1p-16494 0x0.ffffffffffffffffffffffffffffp-16382
|
|
|
|
fma 0x1p-16494 -0x1p-16494 0x0.ffffffffffffffffffffffffffffp-16382
|
|
|
|
fma 0x1p-16494 0x1p-16494 -0x0.ffffffffffffffffffffffffffffp-16382
|
|
|
|
fma 0x1p-16494 -0x1p-16494 -0x0.ffffffffffffffffffffffffffffp-16382
|
|
|
|
fma 0x1p-16494 0x1p-16494 0x1p-16494
|
|
|
|
# Bug 6801: errno setting may be missing.
|
|
|
|
fma 0x1p-16494 -0x1p-16494 0x1p-16494 missing-errno
|
|
|
|
fma 0x1p-16494 0x1p-16494 -0x1p-16494 missing-errno
|
|
|
|
fma 0x1p-16494 -0x1p-16494 -0x1p-16494
|
|
|
|
fma 0x0.ffffffffffffffffffffffffffff8p0 0x0.ffffffffffffffffffffffffffff8p0 -0x0.ffffffffffffffffffffffffffffp0
|
|
|
|
fma 0x0.ffffffffffffffffffffffffffff8p0 -0x0.ffffffffffffffffffffffffffff8p0 0x0.ffffffffffffffffffffffffffffp0
|
|
|
|
fma -0x0.ffffffffffffffffffffffffffff8p0 0x0.ffffffffffffffffffffffffffff8p0 0x0.ffffffffffffffffffffffffffffp0
|
|
|
|
fma -0x0.ffffffffffffffffffffffffffff8p0 -0x0.ffffffffffffffffffffffffffff8p0 -0x0.ffffffffffffffffffffffffffffp0
|
|
|
|
fma 0x1.0000000000000000000000000001p-16382 0x1.0000000000000000000000000001p-66 0x1p16383
|
|
|
|
fma 0x1.0000000000000000000000000001p-16382 -0x1.0000000000000000000000000001p-66 0x1p16383
|
|
|
|
fma 0x1.0000000000000000000000000001p-16382 0x1.0000000000000000000000000001p-66 -0x1p16383
|
|
|
|
fma 0x1.0000000000000000000000000001p-16382 -0x1.0000000000000000000000000001p-66 -0x1p16383
|
|
|
|
fma 0x1.0000000000000000000000000001p-16382 0x1.0000000000000000000000000001p-66 0x1p16319
|
|
|
|
fma 0x1.0000000000000000000000000001p-16382 -0x1.0000000000000000000000000001p-66 0x1p16319
|
|
|
|
fma 0x1.0000000000000000000000000001p-16382 0x1.0000000000000000000000000001p-66 -0x1p16319
|
|
|
|
fma 0x1.0000000000000000000000000001p-16382 -0x1.0000000000000000000000000001p-66 -0x1p16319
|
|
|
|
|
Fix fma spurious underflows (bug 18824).
Various fma implementations have logic that, when computing fma (x, y,
z) where z is large (so care needs taking to avoid internal overflow)
but x * y is small, scale x * y up instead of down to avoid internal
underflows resulting from scaling down. (In these cases, x * y is
small enough that only its sign actually matters rather than the exact
value.)
The threshold for scaling up instead of down was correct for "if the
unscaled values were multiplied, the low part of the multiplication
could underflow", and the scaling was sufficient to ensure that the
low part of the multiplication did not underflow (given that cases of
very small x * y - less than half the least subnormal - were
previously dealt with). However, the choice in the functions wasn't
between scaling up or no scaling, but between scaling up and scaling
down (scaling down actually being needed when x * y isn't so small
compared to z and so the exact value does matter). Thus a larger
threshold is needed to ensure that scaling down doesn't produce values
the multiplication of whose low parts underflows. This patch
increases the thresholds accordingly.
Tested for x86_64, x86 and mips64 (with the MIPS version of s_fmal.c
removed so that the ldbl-128 version gets tested instead of the
soft-fp one).
[BZ #18824]
* sysdeps/ieee754/dbl-64/s_fma.c (__fma): Increase threshold for
scaling x * y up instead of down.
* sysdeps/ieee754/ldbl-128/s_fmal.c (__fmal): Likewise.
* sysdeps/ieee754/ldbl-96/s_fmal.c (__fmal): Likewise.
* math/auto-libm-test-in: Add more tests of fma.
* math/auto-libm-test-out: Regenerated.
2015-08-14 17:15:06 +00:00
|
|
|
# Bug 6801: errno setting may be missing.
|
|
|
|
fma 0x1.fffffep-126 0x1.fffffep25 0x1.fffffep127 missing-errno
|
|
|
|
fma 0x1.fffffep-126 -0x1.fffffep25 0x1.fffffep127
|
|
|
|
fma 0x1.fffffep-126 0x1.fffffep25 -0x1.fffffep127
|
|
|
|
fma 0x1.fffffep-126 -0x1.fffffep25 -0x1.fffffep127 missing-errno
|
|
|
|
fma 0x1.fffffffffffffp-1022 0x1.fffffffffffffp54 0x1.fffffffffffffp1023 missing-errno
|
|
|
|
fma 0x1.fffffffffffffp-1022 -0x1.fffffffffffffp54 0x1.fffffffffffffp1023
|
|
|
|
fma 0x1.fffffffffffffp-1022 0x1.fffffffffffffp54 -0x1.fffffffffffffp1023
|
|
|
|
fma 0x1.fffffffffffffp-1022 -0x1.fffffffffffffp54 -0x1.fffffffffffffp1023 missing-errno
|
|
|
|
fma 0x1.fffffffffffffffep-16382 0x1.fffffffffffffffep65 0x1.fffffffffffffffep16383 missing-errno
|
|
|
|
fma 0x1.fffffffffffffffep-16382 -0x1.fffffffffffffffep65 0x1.fffffffffffffffep16383
|
|
|
|
fma 0x1.fffffffffffffffep-16382 0x1.fffffffffffffffep65 -0x1.fffffffffffffffep16383
|
|
|
|
fma 0x1.fffffffffffffffep-16382 -0x1.fffffffffffffffep65 -0x1.fffffffffffffffep16383 missing-errno
|
|
|
|
fma 0x1.ffffffffffffffffffffffffffffp-16382 0x1.ffffffffffffffffffffffffffffp114 0x1.ffffffffffffffffffffffffffffp16383 missing-errno
|
|
|
|
fma 0x1.ffffffffffffffffffffffffffffp-16382 -0x1.ffffffffffffffffffffffffffffp114 0x1.ffffffffffffffffffffffffffffp16383
|
|
|
|
fma 0x1.ffffffffffffffffffffffffffffp-16382 0x1.ffffffffffffffffffffffffffffp114 -0x1.ffffffffffffffffffffffffffffp16383
|
|
|
|
fma 0x1.ffffffffffffffffffffffffffffp-16382 -0x1.ffffffffffffffffffffffffffffp114 -0x1.ffffffffffffffffffffffffffffp16383 missing-errno
|
|
|
|
|
2013-12-17 13:42:13 +00:00
|
|
|
hypot 0 0
|
|
|
|
hypot 0 -0
|
|
|
|
hypot -0 0
|
|
|
|
hypot -0 -0
|
2013-12-16 21:18:07 +00:00
|
|
|
# hypot (x,y) == hypot (+-x, +-y).
|
|
|
|
hypot 0.7 12.4
|
|
|
|
hypot -0.7 12.4
|
|
|
|
hypot 0.7 -12.4
|
|
|
|
hypot -0.7 -12.4
|
|
|
|
hypot 12.4 0.7
|
|
|
|
hypot -12.4 0.7
|
|
|
|
hypot 12.4 -0.7
|
|
|
|
hypot -12.4 -0.7
|
|
|
|
# hypot (x,0) == fabs (x).
|
|
|
|
hypot 0.75 0
|
|
|
|
hypot -0.75 0
|
|
|
|
hypot -5.7e7 0
|
|
|
|
hypot 0.75 1.25
|
|
|
|
hypot 1.0 0x1p-61
|
|
|
|
hypot 0x1p+0 0x1.fp-129
|
2013-12-17 13:43:40 +00:00
|
|
|
hypot 0x1.23456789abcdef0123456789ab8p-500 0x1.23456789abcdef0123456789ab8p-500
|
2013-12-16 21:18:07 +00:00
|
|
|
hypot 0x3p125 0x4p125 no-test-inline:flt-32
|
|
|
|
hypot 0x1.234566p-126 0x1.234566p-126 no-test-inline:flt-32
|
|
|
|
hypot 0x3p1021 0x4p1021 no-test-inline:dbl-64
|
|
|
|
hypot 0x1p+0 0x0.3ep-1022 no-test-inline:dbl-64
|
|
|
|
hypot 0x3p16381 0x4p16381 no-test-inline
|
|
|
|
hypot 0x1p-149 0x1p-149
|
|
|
|
hypot 0x1p-1074 0x1p-1074
|
2013-12-17 13:42:13 +00:00
|
|
|
hypot 0x1p-16445 0x1p-16445 no-test-inline
|
|
|
|
hypot 0x1p-16494 0x1p-16494 no-test-inline
|
|
|
|
hypot 0x0.fffffep-126 0x0.fp-127
|
|
|
|
hypot 0x0.fffffep-126 0x0.fp-130
|
|
|
|
hypot 0x0.fffffffffffffp-1022 0x0.fp-1023
|
|
|
|
hypot 0x0.fffffffffffffp-1022 0x0.fp-1026
|
2013-12-18 11:46:16 +00:00
|
|
|
hypot 0x0.ffffffp-16382 0x0.fp-16383 no-test-inline
|
|
|
|
hypot 0x0.ffffffp-16382 0x0.fp-16386 no-test-inline
|
|
|
|
hypot 0 min_subnorm no-test-inline
|
2013-12-16 21:18:07 +00:00
|
|
|
|
Add more tests of various libm functions.
This patch adds more tests of various libm functions found through
random test generation to give increased ulps on 32-bit x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acosh, asin, asinh,
atanh, cabs, carg, cbrt, cosh, csqrt, erf, erfc, exp, exp10,
expm1, hypot, log, log10, log1p, log2, pow, sinh, tan and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-11 00:58:28 +00:00
|
|
|
hypot -0x1.fa7deap+0 0x1.a761bab383ac8p+0
|
|
|
|
|
2013-12-03 16:22:49 +00:00
|
|
|
j0 -1.0
|
|
|
|
j0 0.0
|
|
|
|
j0 0.125
|
|
|
|
j0 0.75
|
|
|
|
j0 1.0
|
|
|
|
j0 1.5
|
|
|
|
j0 2.0
|
|
|
|
j0 8.0
|
|
|
|
j0 10.0
|
|
|
|
j0 4.0
|
|
|
|
j0 -4.0
|
|
|
|
j0 0x1.d7ce3ap+107
|
|
|
|
j0 -0x1.001000001p+593
|
|
|
|
j0 0x1p1023
|
|
|
|
j0 0x1p16382
|
|
|
|
j0 0x1p16383
|
|
|
|
|
|
|
|
j1 -1.0
|
|
|
|
j1 0.0
|
|
|
|
j1 0.125
|
|
|
|
j1 0.75
|
|
|
|
j1 1.0
|
|
|
|
j1 1.5
|
|
|
|
j1 2.0
|
|
|
|
j1 8.0
|
|
|
|
j1 10.0
|
|
|
|
j1 0x1.3ffp+74
|
|
|
|
j1 0x1.ff00000000002p+840
|
|
|
|
j1 0x1p1023
|
|
|
|
j1 0x1p16382
|
|
|
|
j1 0x1p16383
|
2015-06-29 17:51:32 +00:00
|
|
|
j1 0x1p-100
|
|
|
|
j1 0x1p-600
|
|
|
|
j1 0x1p-10000
|
2015-06-29 16:52:16 +00:00
|
|
|
# Bug 18611: errno setting may be missing.
|
|
|
|
j1 min missing-errno
|
|
|
|
j1 -min missing-errno
|
|
|
|
j1 min_subnorm missing-errno
|
|
|
|
j1 -min_subnorm missing-errno
|
2013-12-03 16:22:49 +00:00
|
|
|
|
2013-12-18 17:59:29 +00:00
|
|
|
# jn (0, x) == j0 (x).
|
|
|
|
jn 0 -1.0
|
|
|
|
jn 0 0.0
|
|
|
|
jn 0 0.125
|
|
|
|
jn 0 0.75
|
|
|
|
jn 0 1.0
|
|
|
|
jn 0 1.5
|
|
|
|
jn 0 2.0
|
|
|
|
jn 0 8.0
|
|
|
|
jn 0 10.0
|
|
|
|
jn 0 4.0
|
|
|
|
jn 0 -4.0
|
|
|
|
|
|
|
|
# jn (1, x) == j1 (x).
|
|
|
|
jn 1 -1.0
|
|
|
|
jn 1 0.0
|
|
|
|
jn 1 0.125
|
|
|
|
jn 1 0.75
|
|
|
|
jn 1 1.0
|
|
|
|
jn 1 1.5
|
|
|
|
jn 1 2.0
|
|
|
|
jn 1 8.0
|
|
|
|
jn 1 10.0
|
2015-06-29 16:52:16 +00:00
|
|
|
# Bug 18611: errno setting may be missing.
|
|
|
|
jn 1 min missing-errno
|
|
|
|
jn 1 -min missing-errno
|
|
|
|
jn 1 min_subnorm missing-errno
|
|
|
|
jn 1 -min_subnorm missing-errno
|
2013-12-18 17:59:29 +00:00
|
|
|
|
|
|
|
jn 3 -1.0
|
|
|
|
jn 3 0.0
|
|
|
|
jn 3 0.125
|
|
|
|
jn 3 0.75
|
|
|
|
jn 3 1.0
|
|
|
|
jn 3 2.0
|
|
|
|
jn 3 10.0
|
|
|
|
|
|
|
|
jn 10 -1.0
|
|
|
|
jn 10 0.0
|
|
|
|
jn 10 0.125
|
|
|
|
jn 10 0.75
|
|
|
|
jn 10 1.0
|
|
|
|
jn 10 2.0
|
|
|
|
jn 10 10.0
|
|
|
|
|
|
|
|
jn 2 2.4048255576957729
|
|
|
|
jn 3 2.4048255576957729
|
|
|
|
jn 4 2.4048255576957729
|
|
|
|
jn 5 2.4048255576957729
|
|
|
|
jn 6 2.4048255576957729
|
|
|
|
jn 7 2.4048255576957729
|
|
|
|
jn 8 2.4048255576957729
|
|
|
|
jn 9 2.4048255576957729
|
|
|
|
|
|
|
|
jn 2 0x1.ffff62p+99
|
|
|
|
jn 2 0x1p127
|
|
|
|
jn 2 0x1p1023
|
|
|
|
jn 2 0x1p16383
|
|
|
|
|
2015-06-29 16:52:16 +00:00
|
|
|
# Bug 18611: errno setting may be missing.
|
|
|
|
jn 10 min missing-errno
|
|
|
|
jn 10 -min missing-errno
|
|
|
|
jn 10 min_subnorm missing-errno
|
|
|
|
jn 10 -min_subnorm missing-errno
|
|
|
|
|
2013-12-08 23:56:28 +00:00
|
|
|
lgamma max
|
|
|
|
lgamma 1
|
|
|
|
lgamma 3
|
|
|
|
lgamma 0.5
|
|
|
|
lgamma 0.7
|
|
|
|
lgamma 1.2
|
2015-05-15 17:21:08 +00:00
|
|
|
lgamma 0x3.8p56
|
2013-12-08 23:56:28 +00:00
|
|
|
lgamma 0x1p-5
|
|
|
|
lgamma -0x1p-5
|
|
|
|
lgamma 0x1p-10
|
|
|
|
lgamma -0x1p-10
|
|
|
|
lgamma 0x1p-15
|
|
|
|
lgamma -0x1p-15
|
|
|
|
lgamma 0x1p-20
|
|
|
|
lgamma -0x1p-20
|
|
|
|
lgamma 0x1p-25
|
|
|
|
lgamma -0x1p-25
|
|
|
|
lgamma 0x1p-30
|
|
|
|
lgamma -0x1p-30
|
|
|
|
lgamma 0x1p-40
|
|
|
|
lgamma -0x1p-40
|
|
|
|
lgamma 0x1p-50
|
|
|
|
lgamma -0x1p-50
|
|
|
|
lgamma 0x1p-60
|
|
|
|
lgamma -0x1p-60
|
|
|
|
lgamma 0x1p-64
|
|
|
|
lgamma -0x1p-64
|
|
|
|
lgamma 0x1p-70
|
|
|
|
lgamma -0x1p-70
|
|
|
|
lgamma 0x1p-100
|
|
|
|
lgamma -0x1p-100
|
|
|
|
lgamma 0x1p-126
|
|
|
|
lgamma -0x1p-126
|
|
|
|
lgamma 0x1p-149
|
|
|
|
lgamma -0x1p-149
|
|
|
|
lgamma 0x1p-200
|
|
|
|
lgamma -0x1p-200
|
|
|
|
lgamma 0x1p-500
|
|
|
|
lgamma -0x1p-500
|
|
|
|
lgamma 0x1p-1000
|
|
|
|
lgamma -0x1p-1000
|
|
|
|
lgamma 0x1p-1022
|
|
|
|
lgamma -0x1p-1022
|
|
|
|
lgamma 0x1p-1074
|
|
|
|
lgamma -0x1p-1074
|
|
|
|
lgamma 0x1p-5000
|
|
|
|
lgamma -0x1p-5000
|
|
|
|
lgamma 0x1p-10000
|
|
|
|
lgamma -0x1p-10000
|
|
|
|
lgamma 0x1p-16382
|
|
|
|
lgamma -0x1p-16382
|
|
|
|
lgamma 0x1p-16445
|
|
|
|
lgamma -0x1p-16445
|
|
|
|
lgamma 0x1p-16494
|
|
|
|
lgamma -0x1p-16494
|
|
|
|
|
Fix lgamma (negative) inaccuracy (bug 2542, bug 2543, bug 2558).
The existing implementations of lgamma functions (except for the ia64
versions) use the reflection formula for negative arguments. This
suffers large inaccuracy from cancellation near zeros of lgamma (near
where the gamma function is +/- 1).
This patch fixes this inaccuracy. For arguments above -2, there are
no zeros and no large cancellation, while for sufficiently large
negative arguments the zeros are so close to integers that even for
integers +/- 1ulp the log(gamma(1-x)) term dominates and cancellation
is not significant. Thus, it is only necessary to take special care
about cancellation for arguments around a limited number of zeros.
Accordingly, this patch uses precomputed tables of relevant zeros,
expressed as the sum of two floating-point values. The log of the
ratio of two sines can be computed accurately using log1p in cases
where log would lose accuracy. The log of the ratio of two gamma(1-x)
values can be computed using Stirling's approximation (the difference
between two values of that approximation to lgamma being computable
without computing the two values and then subtracting), with
appropriate adjustments (which don't reduce accuracy too much) in
cases where 1-x is too small to use Stirling's approximation directly.
In the interval from -3 to -2, using the ratios of sines and of
gamma(1-x) can still produce too much cancellation between those two
parts of the computation (and that interval is also the worst interval
for computing the ratio between gamma(1-x) values, which computation
becomes more accurate, while being less critical for the final result,
for larger 1-x). Because this can result in errors slightly above
those accepted in glibc, this interval is instead dealt with by
polynomial approximations. Separate polynomial approximations to
(|gamma(x)|-1)(x-n)/(x-x0) are used for each interval of length 1/8
from -3 to -2, where n (-3 or -2) is the nearest integer to the
1/8-interval and x0 is the zero of lgamma in the relevant half-integer
interval (-3 to -2.5 or -2.5 to -2).
Together, the two approaches are intended to give sufficient accuracy
for all negative arguments in the problem range. Outside that range,
the previous implementation continues to be used.
Tested for x86_64, x86, mips64 and powerpc. The mips64 and powerpc
testing shows up pre-existing problems for ldbl-128 and ldbl-128ibm
with large negative arguments giving spurious "invalid" exceptions
(exposed by newly added tests for cases this patch doesn't affect the
logic for); I'll address those problems separately.
[BZ #2542]
[BZ #2543]
[BZ #2558]
* sysdeps/ieee754/dbl-64/e_lgamma_r.c (__ieee754_lgamma_r): Call
__lgamma_neg for arguments from -28.0 to -2.0.
* sysdeps/ieee754/flt-32/e_lgammaf_r.c (__ieee754_lgammaf_r): Call
__lgamma_negf for arguments from -15.0 to -2.0.
* sysdeps/ieee754/ldbl-128/e_lgammal_r.c (__ieee754_lgammal_r):
Call __lgamma_negl for arguments from -48.0 or -50.0 to -2.0.
* sysdeps/ieee754/ldbl-96/e_lgammal_r.c (__ieee754_lgammal_r):
Call __lgamma_negl for arguments from -33.0 to -2.0.
* sysdeps/ieee754/dbl-64/lgamma_neg.c: New file.
* sysdeps/ieee754/dbl-64/lgamma_product.c: Likewise.
* sysdeps/ieee754/flt-32/lgamma_negf.c: Likewise.
* sysdeps/ieee754/flt-32/lgamma_productf.c: Likewise.
* sysdeps/ieee754/ldbl-128/lgamma_negl.c: Likewise.
* sysdeps/ieee754/ldbl-128/lgamma_productl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/lgamma_negl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/lgamma_productl.c: Likewise.
* sysdeps/ieee754/ldbl-96/lgamma_negl.c: Likewise.
* sysdeps/ieee754/ldbl-96/lgamma_product.c: Likewise.
* sysdeps/ieee754/ldbl-96/lgamma_productl.c: Likewise.
* sysdeps/generic/math_private.h (__lgamma_negf): New prototype.
(__lgamma_neg): Likewise.
(__lgamma_negl): Likewise.
(__lgamma_product): Likewise.
(__lgamma_productl): Likewise.
* math/Makefile (libm-calls): Add lgamma_neg and lgamma_product.
* math/auto-libm-test-in: Add more tests of lgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-10 22:27:58 +00:00
|
|
|
lgamma -0x1.fa471547c2fe5p+1
|
|
|
|
lgamma -0x1.9260dcp+1
|
|
|
|
|
|
|
|
lgamma -0xffffffp-1
|
|
|
|
lgamma -0x1fffffffffffffp-1
|
|
|
|
lgamma -0xffffffffffffffffp-1
|
|
|
|
lgamma -0x3ffffffffffffffffffffffffffp-1
|
|
|
|
lgamma -0x1ffffffffffffffffffffffffffffp-1
|
|
|
|
|
2015-09-11 15:34:25 +00:00
|
|
|
lgamma -0x100000000.8p0
|
|
|
|
lgamma -0x100000001.8p0
|
|
|
|
|
Fix lgamma (negative) inaccuracy (bug 2542, bug 2543, bug 2558).
The existing implementations of lgamma functions (except for the ia64
versions) use the reflection formula for negative arguments. This
suffers large inaccuracy from cancellation near zeros of lgamma (near
where the gamma function is +/- 1).
This patch fixes this inaccuracy. For arguments above -2, there are
no zeros and no large cancellation, while for sufficiently large
negative arguments the zeros are so close to integers that even for
integers +/- 1ulp the log(gamma(1-x)) term dominates and cancellation
is not significant. Thus, it is only necessary to take special care
about cancellation for arguments around a limited number of zeros.
Accordingly, this patch uses precomputed tables of relevant zeros,
expressed as the sum of two floating-point values. The log of the
ratio of two sines can be computed accurately using log1p in cases
where log would lose accuracy. The log of the ratio of two gamma(1-x)
values can be computed using Stirling's approximation (the difference
between two values of that approximation to lgamma being computable
without computing the two values and then subtracting), with
appropriate adjustments (which don't reduce accuracy too much) in
cases where 1-x is too small to use Stirling's approximation directly.
In the interval from -3 to -2, using the ratios of sines and of
gamma(1-x) can still produce too much cancellation between those two
parts of the computation (and that interval is also the worst interval
for computing the ratio between gamma(1-x) values, which computation
becomes more accurate, while being less critical for the final result,
for larger 1-x). Because this can result in errors slightly above
those accepted in glibc, this interval is instead dealt with by
polynomial approximations. Separate polynomial approximations to
(|gamma(x)|-1)(x-n)/(x-x0) are used for each interval of length 1/8
from -3 to -2, where n (-3 or -2) is the nearest integer to the
1/8-interval and x0 is the zero of lgamma in the relevant half-integer
interval (-3 to -2.5 or -2.5 to -2).
Together, the two approaches are intended to give sufficient accuracy
for all negative arguments in the problem range. Outside that range,
the previous implementation continues to be used.
Tested for x86_64, x86, mips64 and powerpc. The mips64 and powerpc
testing shows up pre-existing problems for ldbl-128 and ldbl-128ibm
with large negative arguments giving spurious "invalid" exceptions
(exposed by newly added tests for cases this patch doesn't affect the
logic for); I'll address those problems separately.
[BZ #2542]
[BZ #2543]
[BZ #2558]
* sysdeps/ieee754/dbl-64/e_lgamma_r.c (__ieee754_lgamma_r): Call
__lgamma_neg for arguments from -28.0 to -2.0.
* sysdeps/ieee754/flt-32/e_lgammaf_r.c (__ieee754_lgammaf_r): Call
__lgamma_negf for arguments from -15.0 to -2.0.
* sysdeps/ieee754/ldbl-128/e_lgammal_r.c (__ieee754_lgammal_r):
Call __lgamma_negl for arguments from -48.0 or -50.0 to -2.0.
* sysdeps/ieee754/ldbl-96/e_lgammal_r.c (__ieee754_lgammal_r):
Call __lgamma_negl for arguments from -33.0 to -2.0.
* sysdeps/ieee754/dbl-64/lgamma_neg.c: New file.
* sysdeps/ieee754/dbl-64/lgamma_product.c: Likewise.
* sysdeps/ieee754/flt-32/lgamma_negf.c: Likewise.
* sysdeps/ieee754/flt-32/lgamma_productf.c: Likewise.
* sysdeps/ieee754/ldbl-128/lgamma_negl.c: Likewise.
* sysdeps/ieee754/ldbl-128/lgamma_productl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/lgamma_negl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/lgamma_productl.c: Likewise.
* sysdeps/ieee754/ldbl-96/lgamma_negl.c: Likewise.
* sysdeps/ieee754/ldbl-96/lgamma_product.c: Likewise.
* sysdeps/ieee754/ldbl-96/lgamma_productl.c: Likewise.
* sysdeps/generic/math_private.h (__lgamma_negf): New prototype.
(__lgamma_neg): Likewise.
(__lgamma_negl): Likewise.
(__lgamma_product): Likewise.
(__lgamma_productl): Likewise.
* math/Makefile (libm-calls): Add lgamma_neg and lgamma_product.
* math/auto-libm-test-in: Add more tests of lgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-10 22:27:58 +00:00
|
|
|
lgamma -0.25
|
|
|
|
lgamma -0.5
|
|
|
|
lgamma -0.75
|
|
|
|
lgamma -1.25
|
|
|
|
lgamma -1.5
|
|
|
|
lgamma -1.75
|
|
|
|
lgamma -0x2.08p0
|
|
|
|
lgamma -0x2.1p0
|
|
|
|
lgamma -0x2.18p0
|
|
|
|
lgamma -0x2.2p0
|
|
|
|
lgamma -0x2.28p0
|
|
|
|
lgamma -0x2.3p0
|
|
|
|
lgamma -0x2.38p0
|
|
|
|
lgamma -0x2.4p0
|
|
|
|
lgamma -0x2.48p0
|
|
|
|
lgamma -0x2.5p0
|
|
|
|
lgamma -0x2.58p0
|
|
|
|
lgamma -0x2.6p0
|
|
|
|
lgamma -0x2.68p0
|
|
|
|
lgamma -0x2.7p0
|
|
|
|
lgamma -0x2.78p0
|
|
|
|
lgamma -0x2.8p0
|
|
|
|
lgamma -0x2.88p0
|
|
|
|
lgamma -0x2.9p0
|
|
|
|
lgamma -0x2.98p0
|
|
|
|
lgamma -0x2.ap0
|
|
|
|
lgamma -0x2.a8p0
|
|
|
|
lgamma -0x2.bp0
|
|
|
|
lgamma -0x2.b8p0
|
|
|
|
lgamma -0x2.cp0
|
|
|
|
lgamma -0x2.c8p0
|
|
|
|
lgamma -0x2.dp0
|
|
|
|
lgamma -0x2.d8p0
|
|
|
|
lgamma -0x2.ep0
|
|
|
|
lgamma -0x2.e8p0
|
|
|
|
lgamma -0x2.fp0
|
|
|
|
lgamma -0x2.f8p0
|
|
|
|
lgamma -0x3.08p0
|
|
|
|
lgamma -0x3.1p0
|
|
|
|
lgamma -0x3.18p0
|
|
|
|
lgamma -0x3.2p0
|
|
|
|
lgamma -0x3.28p0
|
|
|
|
lgamma -0x3.3p0
|
|
|
|
lgamma -0x3.38p0
|
|
|
|
lgamma -0x3.4p0
|
|
|
|
lgamma -0x3.48p0
|
|
|
|
lgamma -0x3.5p0
|
|
|
|
lgamma -0x3.58p0
|
|
|
|
lgamma -0x3.6p0
|
|
|
|
lgamma -0x3.68p0
|
|
|
|
lgamma -0x3.7p0
|
|
|
|
lgamma -0x3.78p0
|
|
|
|
lgamma -0x3.8p0
|
|
|
|
lgamma -0x3.88p0
|
|
|
|
lgamma -0x3.9p0
|
|
|
|
lgamma -0x3.98p0
|
|
|
|
lgamma -0x3.ap0
|
|
|
|
lgamma -0x3.a8p0
|
|
|
|
lgamma -0x3.bp0
|
|
|
|
lgamma -0x3.b8p0
|
|
|
|
lgamma -0x3.cp0
|
|
|
|
lgamma -0x3.c8p0
|
|
|
|
lgamma -0x3.dp0
|
|
|
|
lgamma -0x3.d8p0
|
|
|
|
lgamma -0x3.ep0
|
|
|
|
lgamma -0x3.e8p0
|
|
|
|
lgamma -0x3.fp0
|
|
|
|
lgamma -0x3.f8p0
|
|
|
|
lgamma -4.25
|
|
|
|
lgamma -4.5
|
|
|
|
lgamma -4.75
|
|
|
|
lgamma -5.25
|
|
|
|
lgamma -5.5
|
|
|
|
lgamma -5.75
|
|
|
|
lgamma -6.25
|
|
|
|
lgamma -6.5
|
|
|
|
lgamma -6.75
|
|
|
|
lgamma -7.25
|
|
|
|
lgamma -7.5
|
|
|
|
lgamma -7.75
|
|
|
|
lgamma -8.25
|
|
|
|
lgamma -8.5
|
|
|
|
lgamma -8.75
|
|
|
|
lgamma -9.25
|
|
|
|
lgamma -9.5
|
|
|
|
lgamma -9.75
|
|
|
|
lgamma -10.25
|
|
|
|
lgamma -10.5
|
|
|
|
lgamma -10.75
|
|
|
|
lgamma -11.25
|
|
|
|
lgamma -11.5
|
|
|
|
lgamma -11.75
|
|
|
|
lgamma -12.25
|
|
|
|
lgamma -12.5
|
|
|
|
lgamma -12.75
|
|
|
|
lgamma -13.25
|
|
|
|
lgamma -13.5
|
|
|
|
lgamma -13.75
|
|
|
|
lgamma -14.25
|
|
|
|
lgamma -14.5
|
|
|
|
lgamma -14.75
|
|
|
|
lgamma -15.25
|
|
|
|
lgamma -15.5
|
|
|
|
lgamma -15.75
|
|
|
|
lgamma -16.25
|
|
|
|
lgamma -16.5
|
|
|
|
lgamma -16.75
|
|
|
|
lgamma -17.25
|
|
|
|
lgamma -17.5
|
|
|
|
lgamma -17.75
|
|
|
|
lgamma -18.25
|
|
|
|
lgamma -18.5
|
|
|
|
lgamma -18.75
|
|
|
|
lgamma -19.25
|
|
|
|
lgamma -19.5
|
|
|
|
lgamma -19.75
|
|
|
|
lgamma -20.25
|
|
|
|
lgamma -20.5
|
|
|
|
lgamma -20.75
|
|
|
|
lgamma -21.25
|
|
|
|
lgamma -21.5
|
|
|
|
lgamma -21.75
|
|
|
|
lgamma -22.25
|
|
|
|
lgamma -22.5
|
|
|
|
lgamma -22.75
|
|
|
|
lgamma -23.25
|
|
|
|
lgamma -23.5
|
|
|
|
lgamma -23.75
|
|
|
|
lgamma -24.25
|
|
|
|
lgamma -24.5
|
|
|
|
lgamma -24.75
|
|
|
|
lgamma -25.25
|
|
|
|
lgamma -25.5
|
|
|
|
lgamma -25.75
|
|
|
|
lgamma -26.25
|
|
|
|
lgamma -26.5
|
|
|
|
lgamma -26.75
|
|
|
|
lgamma -27.25
|
|
|
|
lgamma -27.5
|
|
|
|
lgamma -27.75
|
|
|
|
lgamma -28.25
|
|
|
|
lgamma -28.5
|
|
|
|
lgamma -28.75
|
|
|
|
lgamma -29.25
|
|
|
|
lgamma -29.5
|
|
|
|
lgamma -29.75
|
|
|
|
lgamma -30.25
|
|
|
|
lgamma -30.5
|
|
|
|
lgamma -30.75
|
|
|
|
lgamma -31.25
|
|
|
|
lgamma -31.5
|
|
|
|
lgamma -31.75
|
|
|
|
lgamma -32.25
|
|
|
|
lgamma -32.5
|
|
|
|
lgamma -32.75
|
|
|
|
lgamma -33.25
|
|
|
|
lgamma -33.5
|
|
|
|
lgamma -33.75
|
|
|
|
lgamma -34.25
|
|
|
|
lgamma -34.5
|
|
|
|
lgamma -34.75
|
|
|
|
lgamma -35.25
|
|
|
|
lgamma -35.5
|
|
|
|
lgamma -35.75
|
|
|
|
lgamma -36.25
|
|
|
|
lgamma -36.5
|
|
|
|
lgamma -36.75
|
|
|
|
lgamma -37.25
|
|
|
|
lgamma -37.5
|
|
|
|
lgamma -37.75
|
|
|
|
lgamma -38.25
|
|
|
|
lgamma -38.5
|
|
|
|
lgamma -38.75
|
|
|
|
lgamma -39.25
|
|
|
|
lgamma -39.5
|
|
|
|
lgamma -39.75
|
|
|
|
lgamma -40.25
|
|
|
|
lgamma -40.5
|
|
|
|
lgamma -40.75
|
|
|
|
lgamma -41.25
|
|
|
|
lgamma -41.5
|
|
|
|
lgamma -41.75
|
|
|
|
lgamma -42.25
|
|
|
|
lgamma -42.5
|
|
|
|
lgamma -42.75
|
|
|
|
lgamma -43.25
|
|
|
|
lgamma -43.5
|
|
|
|
lgamma -43.75
|
|
|
|
lgamma -44.25
|
|
|
|
lgamma -44.5
|
|
|
|
lgamma -44.75
|
|
|
|
lgamma -45.25
|
|
|
|
lgamma -45.5
|
|
|
|
lgamma -45.75
|
|
|
|
lgamma -46.25
|
|
|
|
lgamma -46.5
|
|
|
|
lgamma -46.75
|
|
|
|
lgamma -47.25
|
|
|
|
lgamma -47.5
|
|
|
|
lgamma -47.75
|
|
|
|
lgamma -48.25
|
|
|
|
lgamma -48.5
|
|
|
|
lgamma -48.75
|
|
|
|
lgamma -49.25
|
|
|
|
lgamma -49.5
|
|
|
|
lgamma -49.75
|
|
|
|
lgamma -50.25
|
|
|
|
lgamma -50.5
|
|
|
|
lgamma -50.75
|
|
|
|
lgamma -51.25
|
|
|
|
lgamma -51.5
|
|
|
|
lgamma -51.75
|
|
|
|
lgamma -52.25
|
|
|
|
lgamma -52.5
|
|
|
|
lgamma -52.75
|
|
|
|
lgamma -53.25
|
|
|
|
lgamma -53.5
|
|
|
|
lgamma -53.75
|
|
|
|
lgamma -54.25
|
|
|
|
lgamma -54.5
|
|
|
|
lgamma -54.75
|
|
|
|
lgamma -55.25
|
|
|
|
lgamma -55.5
|
|
|
|
lgamma -55.75
|
|
|
|
lgamma -56.25
|
|
|
|
lgamma -56.5
|
|
|
|
lgamma -56.75
|
|
|
|
lgamma -57.25
|
|
|
|
lgamma -57.5
|
|
|
|
lgamma -57.75
|
|
|
|
lgamma -58.25
|
|
|
|
lgamma -58.5
|
|
|
|
lgamma -58.75
|
|
|
|
lgamma -59.25
|
|
|
|
lgamma -59.5
|
|
|
|
lgamma -59.75
|
|
|
|
lgamma -60.25
|
|
|
|
lgamma -60.5
|
|
|
|
lgamma -60.75
|
|
|
|
|
|
|
|
# Integers +/- 1ulp for ldbl-128 (gen-auto-libm-tests will round these
|
|
|
|
# to produce integers +/- 1ulp for other formats).
|
|
|
|
lgamma -0xf.fffffffffffffffffffffffffff8p-4
|
|
|
|
lgamma -0x1.0000000000000000000000000001p+0
|
|
|
|
lgamma -0x1.ffffffffffffffffffffffffffffp+0
|
|
|
|
lgamma -0x2.0000000000000000000000000002p+0
|
|
|
|
lgamma -0x2.fffffffffffffffffffffffffffep+0
|
|
|
|
lgamma -0x3.0000000000000000000000000002p+0
|
|
|
|
lgamma -0x3.fffffffffffffffffffffffffffep+0
|
|
|
|
lgamma -0x4.0000000000000000000000000004p+0
|
|
|
|
lgamma -0x4.fffffffffffffffffffffffffffcp+0
|
|
|
|
lgamma -0x5.0000000000000000000000000004p+0
|
|
|
|
lgamma -0x5.fffffffffffffffffffffffffffcp+0
|
|
|
|
lgamma -0x6.0000000000000000000000000004p+0
|
|
|
|
lgamma -0x6.fffffffffffffffffffffffffffcp+0
|
|
|
|
lgamma -0x7.0000000000000000000000000004p+0
|
|
|
|
lgamma -0x7.fffffffffffffffffffffffffffcp+0
|
|
|
|
lgamma -0x8.0000000000000000000000000008p+0
|
|
|
|
lgamma -0x8.fffffffffffffffffffffffffff8p+0
|
|
|
|
lgamma -0x9.0000000000000000000000000008p+0
|
|
|
|
lgamma -0x9.fffffffffffffffffffffffffff8p+0
|
|
|
|
lgamma -0xa.0000000000000000000000000008p+0
|
|
|
|
lgamma -0xa.fffffffffffffffffffffffffff8p+0
|
|
|
|
lgamma -0xb.0000000000000000000000000008p+0
|
|
|
|
lgamma -0xb.fffffffffffffffffffffffffff8p+0
|
|
|
|
lgamma -0xc.0000000000000000000000000008p+0
|
|
|
|
lgamma -0xc.fffffffffffffffffffffffffff8p+0
|
|
|
|
lgamma -0xd.0000000000000000000000000008p+0
|
|
|
|
lgamma -0xd.fffffffffffffffffffffffffff8p+0
|
|
|
|
lgamma -0xe.0000000000000000000000000008p+0
|
|
|
|
lgamma -0xe.fffffffffffffffffffffffffff8p+0
|
|
|
|
lgamma -0xf.0000000000000000000000000008p+0
|
|
|
|
lgamma -0xf.fffffffffffffffffffffffffff8p+0
|
|
|
|
lgamma -0x1.0000000000000000000000000001p+4
|
|
|
|
lgamma -0x1.0fffffffffffffffffffffffffffp+4
|
|
|
|
lgamma -0x1.1000000000000000000000000001p+4
|
|
|
|
lgamma -0x1.1fffffffffffffffffffffffffffp+4
|
|
|
|
lgamma -0x1.2000000000000000000000000001p+4
|
|
|
|
lgamma -0x1.2fffffffffffffffffffffffffffp+4
|
|
|
|
lgamma -0x1.3000000000000000000000000001p+4
|
|
|
|
lgamma -0x1.3fffffffffffffffffffffffffffp+4
|
|
|
|
lgamma -0x1.4000000000000000000000000001p+4
|
|
|
|
lgamma -0x1.4fffffffffffffffffffffffffffp+4
|
|
|
|
lgamma -0x1.5000000000000000000000000001p+4
|
|
|
|
lgamma -0x1.5fffffffffffffffffffffffffffp+4
|
|
|
|
lgamma -0x1.6000000000000000000000000001p+4
|
|
|
|
lgamma -0x1.6fffffffffffffffffffffffffffp+4
|
|
|
|
lgamma -0x1.7000000000000000000000000001p+4
|
|
|
|
lgamma -0x1.7fffffffffffffffffffffffffffp+4
|
|
|
|
lgamma -0x1.8000000000000000000000000001p+4
|
|
|
|
lgamma -0x1.8fffffffffffffffffffffffffffp+4
|
|
|
|
lgamma -0x1.9000000000000000000000000001p+4
|
|
|
|
lgamma -0x1.9fffffffffffffffffffffffffffp+4
|
|
|
|
lgamma -0x1.a000000000000000000000000001p+4
|
|
|
|
lgamma -0x1.afffffffffffffffffffffffffffp+4
|
|
|
|
lgamma -0x1.b000000000000000000000000001p+4
|
|
|
|
lgamma -0x1.bfffffffffffffffffffffffffffp+4
|
|
|
|
lgamma -0x1.c000000000000000000000000001p+4
|
|
|
|
lgamma -0x1.cfffffffffffffffffffffffffffp+4
|
|
|
|
lgamma -0x1.d000000000000000000000000001p+4
|
|
|
|
lgamma -0x1.dfffffffffffffffffffffffffffp+4
|
|
|
|
lgamma -0x1.e000000000000000000000000001p+4
|
|
|
|
lgamma -0x1.efffffffffffffffffffffffffffp+4
|
|
|
|
lgamma -0x1.f000000000000000000000000001p+4
|
|
|
|
lgamma -0x1.ffffffffffffffffffffffffffffp+4
|
|
|
|
lgamma -0x2.0000000000000000000000000002p+4
|
|
|
|
lgamma -0x2.0ffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x2.1000000000000000000000000002p+4
|
|
|
|
lgamma -0x2.1ffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x2.2000000000000000000000000002p+4
|
|
|
|
lgamma -0x2.2ffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x2.3000000000000000000000000002p+4
|
|
|
|
lgamma -0x2.3ffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x2.4000000000000000000000000002p+4
|
|
|
|
lgamma -0x2.4ffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x2.5000000000000000000000000002p+4
|
|
|
|
lgamma -0x2.5ffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x2.6000000000000000000000000002p+4
|
|
|
|
lgamma -0x2.6ffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x2.7000000000000000000000000002p+4
|
|
|
|
lgamma -0x2.7ffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x2.8000000000000000000000000002p+4
|
|
|
|
lgamma -0x2.8ffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x2.9000000000000000000000000002p+4
|
|
|
|
lgamma -0x2.9ffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x2.a000000000000000000000000002p+4
|
|
|
|
lgamma -0x2.affffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x2.b000000000000000000000000002p+4
|
|
|
|
lgamma -0x2.bffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x2.c000000000000000000000000002p+4
|
|
|
|
lgamma -0x2.cffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x2.d000000000000000000000000002p+4
|
|
|
|
lgamma -0x2.dffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x2.e000000000000000000000000002p+4
|
|
|
|
lgamma -0x2.effffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x2.f000000000000000000000000002p+4
|
|
|
|
lgamma -0x2.fffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x3.0000000000000000000000000002p+4
|
|
|
|
lgamma -0x3.0ffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x3.1000000000000000000000000002p+4
|
|
|
|
lgamma -0x3.1ffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x3.2000000000000000000000000002p+4
|
|
|
|
lgamma -0x3.2ffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x3.3000000000000000000000000002p+4
|
|
|
|
lgamma -0x3.3ffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x3.4000000000000000000000000002p+4
|
|
|
|
lgamma -0x3.4ffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x3.5000000000000000000000000002p+4
|
|
|
|
lgamma -0x3.5ffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x3.6000000000000000000000000002p+4
|
|
|
|
lgamma -0x3.6ffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x3.7000000000000000000000000002p+4
|
|
|
|
lgamma -0x3.7ffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x3.8000000000000000000000000002p+4
|
|
|
|
lgamma -0x3.8ffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x3.9000000000000000000000000002p+4
|
|
|
|
lgamma -0x3.9ffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x3.a000000000000000000000000002p+4
|
|
|
|
lgamma -0x3.affffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x3.b000000000000000000000000002p+4
|
|
|
|
lgamma -0x3.bffffffffffffffffffffffffffep+4
|
|
|
|
lgamma -0x3.c000000000000000000000000002p+4
|
|
|
|
|
|
|
|
# Zeroes of lgamma, until the point where they just duplicate integers
|
|
|
|
# +/- 1ulp.
|
|
|
|
lgamma -0x2.74ff92c01f0d82abec9f315f1a0712c334804d9cp+0
|
|
|
|
lgamma -0x2.bf6821437b20197995a4b4641eaebf4b00b482ap+0
|
|
|
|
lgamma -0x3.24c1b793cb35efb8be699ad3d9ba65454cb7fac8p+0
|
|
|
|
lgamma -0x3.f48e2a8f85fca170d4561291236cc320a4887d1cp+0
|
|
|
|
lgamma -0x4.0a139e16656030c39f0b0de18112ac17bfd6be9p+0
|
|
|
|
lgamma -0x4.fdd5de9bbabf3510d0aa4076988501d7d7812528p+0
|
|
|
|
lgamma -0x5.021a95fc2db6432a4c56e595394decc6af0430d8p+0
|
|
|
|
lgamma -0x5.ffa4bd647d0357dd4ed62cbd31edf8e3f8e5deb8p+0
|
|
|
|
lgamma -0x6.005ac9625f233b607c2d96d16385cb86ac56934p+0
|
|
|
|
lgamma -0x6.fff2fddae1bbff3d626b65c23fd21f40300a3ba8p+0
|
|
|
|
lgamma -0x7.000cff7b7f87adf4482dcdb98782ab2661ca58bp+0
|
|
|
|
lgamma -0x7.fffe5fe05673c3ca9e82b522b0ca9d2e8837cd2p+0
|
|
|
|
lgamma -0x8.0001a01459fc9f60cb3cec1cec8576677ca538ep+0
|
|
|
|
lgamma -0x8.ffffd1c425e80ffc864e95749259e7e20210e8p+0
|
|
|
|
lgamma -0x9.00002e3bb47d86d6d843fedc351deb7ad09ec5fp+0
|
|
|
|
lgamma -0x9.fffffb606bdfdcd062ae77a50547c69d2eb6f34p+0
|
|
|
|
lgamma -0xa.0000049f93bb9927b45d95e15441e03086db914p+0
|
|
|
|
lgamma -0xa.ffffff9466e9f1b36dacd2adbd18d05a4e45806p+0
|
|
|
|
lgamma -0xb.0000006b9915315d965a6ffea40e4bea39000ddp+0
|
|
|
|
lgamma -0xb.fffffff7089387387de41acc3d3c978bd839c8cp+0
|
|
|
|
lgamma -0xc.00000008f76c7731567c0f0250f387920df5676p+0
|
|
|
|
lgamma -0xc.ffffffff4f6dcf617f97a5ffc757d548d2890cdp+0
|
|
|
|
lgamma -0xd.00000000b092309c06683dd1b903e3700857a16p+0
|
|
|
|
lgamma -0xd.fffffffff36345ab9e184a3e09d1176dc48e47fp+0
|
|
|
|
lgamma -0xe.000000000c9cba545e94e75ec5718f753e2501ep+0
|
|
|
|
lgamma -0xe.ffffffffff28c060c6604ef30371f89d37357cap+0
|
|
|
|
lgamma -0xf.0000000000d73f9f399bd0e420f85e9ee31b0b9p+0
|
|
|
|
lgamma -0xf.fffffffffff28c060c6621f512e72e4d113626ap+0
|
|
|
|
lgamma -0x1.000000000000d73f9f399da1424bf93b91f177dp+4
|
|
|
|
lgamma -0x1.0ffffffffffff3569c47e7a93e1c46a08a2e008ap+4
|
|
|
|
lgamma -0x1.1000000000000ca963b8185688876ca5a3a64ec2p+4
|
|
|
|
lgamma -0x1.1fffffffffffff4bec3ce234132d08b2b726187cp+4
|
|
|
|
lgamma -0x1.20000000000000b413c31dcbeca4c3b2ffacbb4ap+4
|
|
|
|
lgamma -0x1.2ffffffffffffff685b25cbf5f545ced932e3848p+4
|
|
|
|
lgamma -0x1.30000000000000097a4da340a0ab81b7b1f1f002p+4
|
|
|
|
lgamma -0x1.3fffffffffffffff86af516ff7f76bd67e720d58p+4
|
|
|
|
lgamma -0x1.40000000000000007950ae9008089413ccc8a354p+4
|
|
|
|
lgamma -0x1.4ffffffffffffffffa391c4248c2a39cfdd49d4ap+4
|
|
|
|
lgamma -0x1.500000000000000005c6e3bdb73d5c62f55ed532p+4
|
|
|
|
lgamma -0x1.5fffffffffffffffffbcc71a49201eb5aeb96c74p+4
|
|
|
|
lgamma -0x1.6000000000000000004338e5b6dfe14a513fb4dp+4
|
|
|
|
lgamma -0x1.6ffffffffffffffffffd13c97d9d38fcc4d08d7p+4
|
|
|
|
lgamma -0x1.70000000000000000002ec368262c7033b2f6f32p+4
|
|
|
|
lgamma -0x1.7fffffffffffffffffffe0d30fe68d0a88335b4cp+4
|
|
|
|
lgamma -0x1.800000000000000000001f2cf01972f577cca4b4p+4
|
|
|
|
lgamma -0x1.8ffffffffffffffffffffec0c3322e9a0572b1bcp+4
|
|
|
|
lgamma -0x1.90000000000000000000013f3ccdd165fa8d4e44p+4
|
|
|
|
lgamma -0x1.9ffffffffffffffffffffff3b8bd01cad8d32e38p+4
|
|
|
|
lgamma -0x1.a0000000000000000000000c4742fe35272cd1c8p+4
|
|
|
|
lgamma -0x1.afffffffffffffffffffffff8b9538f48cc5737ep+4
|
|
|
|
lgamma -0x1.b00000000000000000000000746ac70b733a8c82p+4
|
|
|
|
lgamma -0x1.bffffffffffffffffffffffffbd79d7672bde8b2p+4
|
|
|
|
lgamma -0x1.c00000000000000000000000042862898d42174ep+4
|
|
|
|
lgamma -0x1.cfffffffffffffffffffffffffdb4c0ce9794ea6p+4
|
|
|
|
lgamma -0x1.d000000000000000000000000024b3f31686b15ap+4
|
|
|
|
lgamma -0x1.dffffffffffffffffffffffffffec6cd3afb82ap+4
|
|
|
|
lgamma -0x1.e0000000000000000000000000013932c5047d6p+4
|
|
|
|
|
2015-05-01 22:17:19 +00:00
|
|
|
lgamma 0x8.8d2d5p+0
|
|
|
|
lgamma 0x1.6a324ap+52
|
|
|
|
lgamma 0x9.62f59p+0
|
|
|
|
lgamma 0xa.d55d6b4d78e28p+0
|
|
|
|
lgamma 0x8.d6315p+0
|
|
|
|
lgamma 0xb.2e679p+0
|
|
|
|
lgamma 0xb.01191p+0
|
Add more tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64.
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of atan, clog, clog10,
cos, csqrt, erf, erfc, exp2, lgamma, log1p, sin, sincos, tanh and
tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-02 21:06:33 +00:00
|
|
|
lgamma 0xb.26fdap+0
|
2015-05-08 17:55:11 +00:00
|
|
|
lgamma 0xb.4ad0ap+0
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
lgamma 0xe.7a678p+20
|
Fix lgamma (negative) inaccuracy (bug 2542, bug 2543, bug 2558).
The existing implementations of lgamma functions (except for the ia64
versions) use the reflection formula for negative arguments. This
suffers large inaccuracy from cancellation near zeros of lgamma (near
where the gamma function is +/- 1).
This patch fixes this inaccuracy. For arguments above -2, there are
no zeros and no large cancellation, while for sufficiently large
negative arguments the zeros are so close to integers that even for
integers +/- 1ulp the log(gamma(1-x)) term dominates and cancellation
is not significant. Thus, it is only necessary to take special care
about cancellation for arguments around a limited number of zeros.
Accordingly, this patch uses precomputed tables of relevant zeros,
expressed as the sum of two floating-point values. The log of the
ratio of two sines can be computed accurately using log1p in cases
where log would lose accuracy. The log of the ratio of two gamma(1-x)
values can be computed using Stirling's approximation (the difference
between two values of that approximation to lgamma being computable
without computing the two values and then subtracting), with
appropriate adjustments (which don't reduce accuracy too much) in
cases where 1-x is too small to use Stirling's approximation directly.
In the interval from -3 to -2, using the ratios of sines and of
gamma(1-x) can still produce too much cancellation between those two
parts of the computation (and that interval is also the worst interval
for computing the ratio between gamma(1-x) values, which computation
becomes more accurate, while being less critical for the final result,
for larger 1-x). Because this can result in errors slightly above
those accepted in glibc, this interval is instead dealt with by
polynomial approximations. Separate polynomial approximations to
(|gamma(x)|-1)(x-n)/(x-x0) are used for each interval of length 1/8
from -3 to -2, where n (-3 or -2) is the nearest integer to the
1/8-interval and x0 is the zero of lgamma in the relevant half-integer
interval (-3 to -2.5 or -2.5 to -2).
Together, the two approaches are intended to give sufficient accuracy
for all negative arguments in the problem range. Outside that range,
the previous implementation continues to be used.
Tested for x86_64, x86, mips64 and powerpc. The mips64 and powerpc
testing shows up pre-existing problems for ldbl-128 and ldbl-128ibm
with large negative arguments giving spurious "invalid" exceptions
(exposed by newly added tests for cases this patch doesn't affect the
logic for); I'll address those problems separately.
[BZ #2542]
[BZ #2543]
[BZ #2558]
* sysdeps/ieee754/dbl-64/e_lgamma_r.c (__ieee754_lgamma_r): Call
__lgamma_neg for arguments from -28.0 to -2.0.
* sysdeps/ieee754/flt-32/e_lgammaf_r.c (__ieee754_lgammaf_r): Call
__lgamma_negf for arguments from -15.0 to -2.0.
* sysdeps/ieee754/ldbl-128/e_lgammal_r.c (__ieee754_lgammal_r):
Call __lgamma_negl for arguments from -48.0 or -50.0 to -2.0.
* sysdeps/ieee754/ldbl-96/e_lgammal_r.c (__ieee754_lgammal_r):
Call __lgamma_negl for arguments from -33.0 to -2.0.
* sysdeps/ieee754/dbl-64/lgamma_neg.c: New file.
* sysdeps/ieee754/dbl-64/lgamma_product.c: Likewise.
* sysdeps/ieee754/flt-32/lgamma_negf.c: Likewise.
* sysdeps/ieee754/flt-32/lgamma_productf.c: Likewise.
* sysdeps/ieee754/ldbl-128/lgamma_negl.c: Likewise.
* sysdeps/ieee754/ldbl-128/lgamma_productl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/lgamma_negl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/lgamma_productl.c: Likewise.
* sysdeps/ieee754/ldbl-96/lgamma_negl.c: Likewise.
* sysdeps/ieee754/ldbl-96/lgamma_product.c: Likewise.
* sysdeps/ieee754/ldbl-96/lgamma_productl.c: Likewise.
* sysdeps/generic/math_private.h (__lgamma_negf): New prototype.
(__lgamma_neg): Likewise.
(__lgamma_negl): Likewise.
(__lgamma_product): Likewise.
(__lgamma_productl): Likewise.
* math/Makefile (libm-calls): Add lgamma_neg and lgamma_product.
* math/auto-libm-test-in: Add more tests of lgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-10 22:27:58 +00:00
|
|
|
lgamma -0x2.dea4ccp-4
|
|
|
|
lgamma -0x2.dd306p-4
|
|
|
|
lgamma -0x1.bdc8bp+0
|
|
|
|
lgamma -0x4.0a82e8p-4
|
2015-09-11 15:03:10 +00:00
|
|
|
lgamma -0x1.bca67ap+0
|
|
|
|
lgamma -0x3.46446bb6a23aap+0
|
|
|
|
lgamma -0x3.f3d2c40911814p+0
|
2015-05-01 22:17:19 +00:00
|
|
|
|
2013-12-05 13:54:50 +00:00
|
|
|
log 1
|
|
|
|
log e
|
|
|
|
log 1/e
|
|
|
|
log 2
|
|
|
|
log 10
|
|
|
|
log 0.75
|
2013-12-18 11:38:27 +00:00
|
|
|
log min
|
|
|
|
log min_subnorm
|
2013-12-05 13:54:50 +00:00
|
|
|
|
2015-05-01 21:08:37 +00:00
|
|
|
log 0xb.0d5dfp-4
|
|
|
|
log 0x1.6c3f6p+0
|
|
|
|
log 0xa.ae688p-4
|
|
|
|
log 0x1.017f8ap+44
|
Add more tests of various libm functions.
This patch adds more tests of various libm functions found through
random test generation to give increased ulps on 32-bit x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acosh, asin, asinh,
atanh, cabs, carg, cbrt, cosh, csqrt, erf, erfc, exp, exp10,
expm1, hypot, log, log10, log1p, log2, pow, sinh, tan and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-11 00:58:28 +00:00
|
|
|
log 0x1.0b5c1ep+36
|
|
|
|
log 0x2.1b17c2887e938p+928
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
log 0x1.929d9cp+0
|
2015-05-01 21:08:37 +00:00
|
|
|
|
2013-12-05 13:54:50 +00:00
|
|
|
log10 1
|
|
|
|
log10 0.1
|
|
|
|
log10 10.0
|
|
|
|
log10 100.0
|
|
|
|
log10 10000.0
|
|
|
|
log10 e
|
|
|
|
log10 0.75
|
2013-12-18 11:38:27 +00:00
|
|
|
log10 min
|
|
|
|
log10 min_subnorm
|
2013-12-05 13:54:50 +00:00
|
|
|
|
2015-05-01 21:08:37 +00:00
|
|
|
log10 0x9.ad6e3p-4
|
|
|
|
log10 0x1.7163aep+0
|
|
|
|
log10 0xa.9d0d4p-4
|
|
|
|
log10 0x1.251ec6p+0
|
|
|
|
log10 0x1.022e82p+0
|
Add further tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64. (This process
must eventually converge, when my random test generation stops finding
inputs that increase the listed ulps, except maybe for any cases
uncovered where the errors exceed the maximum allowed 9ulp error and
so indicate actual libm bugs needing fixing.)
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of acosh, atanh, clog,
clog10, csqrt, erfc, exp2, expm1, log10, log2 and sinh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-05 22:59:41 +00:00
|
|
|
log10 0x9.b3727e3feb538p-4
|
2015-05-08 17:55:11 +00:00
|
|
|
log10 0xf.bf1b2p-4
|
Add more tests of various libm functions.
This patch adds more tests of various libm functions found through
random test generation to give increased ulps on 32-bit x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acosh, asin, asinh,
atanh, cabs, carg, cbrt, cosh, csqrt, erf, erfc, exp, exp10,
expm1, hypot, log, log10, log1p, log2, pow, sinh, tan and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-11 00:58:28 +00:00
|
|
|
log10 0x1.6b5f7ap+96
|
2015-05-01 21:08:37 +00:00
|
|
|
|
2013-12-05 13:54:50 +00:00
|
|
|
log1p 0
|
|
|
|
log1p -0
|
|
|
|
log1p e-1
|
|
|
|
log1p -0.25
|
|
|
|
log1p -0.875
|
2015-05-14 23:38:07 +00:00
|
|
|
log1p min
|
|
|
|
log1p min_subnorm
|
|
|
|
log1p -min
|
|
|
|
log1p -min_subnorm
|
2014-05-14 12:38:56 +00:00
|
|
|
log1p 0x1p10
|
|
|
|
log1p 0x1p20
|
|
|
|
log1p 0x1p30
|
|
|
|
log1p 0x1p50
|
|
|
|
log1p 0x1p60
|
|
|
|
log1p 0x1p100
|
|
|
|
log1p 0x1p1000
|
|
|
|
log1p max
|
2013-12-05 13:54:50 +00:00
|
|
|
|
2015-05-01 21:08:37 +00:00
|
|
|
log1p 0x7.2a4368p-4
|
|
|
|
log1p 0x6.d3a118p-4
|
|
|
|
log1p 0x5.03f228p+0
|
|
|
|
log1p 0x7.264963888ac9p-4
|
|
|
|
log1p 0x8.786bdp-4
|
|
|
|
log1p 0x7.89dc17790eeb4p-4
|
|
|
|
log1p 0x9.81ccf8887c24a7bp-4
|
|
|
|
log1p 0xa.5028608bd65f38dp-4
|
|
|
|
log1p 0x5.bf78873e20a2d468p-4
|
Add more tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64.
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of atan, clog, clog10,
cos, csqrt, erf, erfc, exp2, lgamma, log1p, sin, sincos, tanh and
tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-02 21:06:33 +00:00
|
|
|
log1p 0x7.aa5198p-4
|
Add more tests of various libm functions.
This patch adds more tests of various libm functions found through
random test generation to give increased ulps on 32-bit x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acosh, asin, asinh,
atanh, cabs, carg, cbrt, cosh, csqrt, erf, erfc, exp, exp10,
expm1, hypot, log, log10, log1p, log2, pow, sinh, tan and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-11 00:58:28 +00:00
|
|
|
log1p 0x2.564fap+0
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
log1p 0x7.fc242a2235222ef8p-4
|
2015-05-01 21:08:37 +00:00
|
|
|
|
2013-12-05 13:54:50 +00:00
|
|
|
log2 1
|
|
|
|
log2 e
|
|
|
|
log2 2.0
|
|
|
|
log2 16.0
|
|
|
|
log2 256.0
|
|
|
|
log2 0.75
|
Add more tests of log2.
In testing for x86_64 on an AMD processor, I observed libm test
failures of the form:
testing long double (without inline functions)
Failure: Test: log2_downward (0x2.b7e151628aed4p+0)
Result:
is: 1.44269504088896356633e+00 0xb.8aa3b295c17f67600000p-3
should be: 1.44269504088896356622e+00 0xb.8aa3b295c17f67500000p-3
difference: 1.08420217248550443400e-19 0x8.00000000000000000000p-66
ulp : 1.0000
max.ulp : 0.0000
Maximal error of `log2_downward'
is : 1 ulp
accepted: 0 ulp
These issues arise because the maximum ulps when regenerating on one
processor are not the same as on another processor, so regeneration on
several processors may be needed when updating libm-test-ulps to avoid
failures for some users testing glibc - but such regeneration on
multiple processors is inconvenient. Causes can be: on x86 and, for
x86_64, for long double, variation in results of x87 instructions for
transcendental operations between processors; on x86, variation in
compiler excess precision between compiler versions and
configurations; on any processor where the compiler may contract
expressions using fused multiply-add, variation in what contraction
occurs.
Although it's hard to be sure libm-test-ulps covers all ulps that may
be seen in any configuration for the given architecture, in practice
it helps simply to add wider test coverage to make it more likely
that, when testing on one processor, the ulps seen are the biggest
that can be seen for that function on that processor, and hopefully
they are also the biggest that can be seen for that function in other
configurations for that architecture. Thus, this patch adds some
tests of log2 that increase the ulps I see on x86_64 on an Intel
processor, so that hopefully future from-scratch regenerations on that
processor will produce ulps big enough not to have errors from testing
on AMD processors. These tests were found by randomly generating
inputs and seeing what produced ulps larger than those currently in
libm-test-ulps. Of course such increases also improve the accuracy of
the empirical table of known ulps generated from libm-test-ulps files
that goes in the manual.
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of log2.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-03-24 23:06:28 +00:00
|
|
|
log2 0x1.28d3b4p+0
|
|
|
|
log2 0xe.d99dap-4
|
|
|
|
log2 0x1.63d202d04392cp+0
|
|
|
|
log2 0xf.d9ce0b1a50e08p-4
|
|
|
|
log2 0x1.07465bdc7e41b52ep+0
|
|
|
|
log2 0xf.4dfb4p-48
|
2015-05-01 21:08:37 +00:00
|
|
|
log2 0x1.0a588ep+0
|
|
|
|
log2 0xb.e77c6p-4
|
Add further tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64. (This process
must eventually converge, when my random test generation stops finding
inputs that increase the listed ulps, except maybe for any cases
uncovered where the errors exceed the maximum allowed 9ulp error and
so indicate actual libm bugs needing fixing.)
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of acosh, atanh, clog,
clog10, csqrt, erfc, exp2, expm1, log10, log2 and sinh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-05 22:59:41 +00:00
|
|
|
log2 0x1.4fe37ep+0
|
Add more tests of various libm functions.
This patch adds more tests of various libm functions found through
random test generation to give increased ulps on 32-bit x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acosh, asin, asinh,
atanh, cabs, carg, cbrt, cosh, csqrt, erf, erfc, exp, exp10,
expm1, hypot, log, log10, log1p, log2, pow, sinh, tan and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-11 00:58:28 +00:00
|
|
|
log2 0x3.9b0754p+8
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
log2 0xb.e132ap-4
|
2013-12-18 11:38:27 +00:00
|
|
|
log2 min
|
|
|
|
log2 min_subnorm
|
2013-12-05 13:54:50 +00:00
|
|
|
|
2013-12-16 21:18:07 +00:00
|
|
|
pow 0 0
|
|
|
|
pow 0 -0
|
|
|
|
pow -0 0
|
|
|
|
pow -0 -0
|
|
|
|
|
|
|
|
pow 10 0
|
|
|
|
pow 10 -0
|
|
|
|
pow -10 0
|
|
|
|
pow -10 -0
|
|
|
|
|
|
|
|
pow 1 1
|
|
|
|
pow 1 -1
|
|
|
|
pow 1 1.25
|
|
|
|
pow 1 -1.25
|
|
|
|
pow 1 0x1p62
|
|
|
|
pow 1 0x1p63
|
|
|
|
pow 1 0x1p64
|
|
|
|
pow 1 0x1p72
|
|
|
|
pow 1 min_subnorm
|
|
|
|
pow 1 -min_subnorm
|
|
|
|
|
|
|
|
# pow (x, +-0) == 1.
|
|
|
|
pow 32.75 0
|
|
|
|
pow 32.75 -0
|
|
|
|
pow -32.75 0
|
|
|
|
pow -32.75 -0
|
|
|
|
pow 0x1p72 0
|
|
|
|
pow 0x1p72 -0
|
|
|
|
pow 0x1p-72 0
|
|
|
|
pow 0x1p-72 -0
|
|
|
|
|
|
|
|
pow 0x1p72 0x1p72
|
|
|
|
pow 10 -0x1p72
|
|
|
|
pow max max
|
|
|
|
pow 10 -max
|
|
|
|
|
|
|
|
pow 0 1
|
|
|
|
pow 0 11
|
|
|
|
|
|
|
|
pow -0 1
|
|
|
|
pow -0 11
|
|
|
|
|
|
|
|
pow 0 2
|
|
|
|
pow 0 11.1
|
|
|
|
|
|
|
|
pow -0 2
|
|
|
|
pow -0 11.1
|
|
|
|
|
|
|
|
# pow (+0, y) == +0 for y an odd integer > 0.
|
|
|
|
pow 0.0 27
|
|
|
|
pow 0.0 0xffffff
|
|
|
|
pow 0.0 0x1.fffffffffffffp+52
|
|
|
|
pow 0.0 0x1.fffffffffffffffep+63
|
|
|
|
pow 0.0 0x1.ffffffffffffffffffffffffff8p+105
|
|
|
|
pow 0.0 0x1.ffffffffffffffffffffffffffffp+112
|
|
|
|
|
|
|
|
# pow (-0, y) == -0 for y an odd integer > 0.
|
|
|
|
pow -0 27
|
|
|
|
pow -0 0xffffff
|
|
|
|
pow -0 0x1fffffe
|
|
|
|
pow -0 0x1.fffffffffffffp+52
|
|
|
|
pow -0 0x1.fffffffffffffp+53
|
|
|
|
pow -0 0x1.fffffffffffffffep+63
|
|
|
|
pow -0 0x1.fffffffffffffffep+64
|
|
|
|
pow -0 0x1.ffffffffffffffffffffffffff8p+105
|
|
|
|
pow -0 0x1.ffffffffffffffffffffffffff8p+106
|
|
|
|
pow -0 0x1.ffffffffffffffffffffffffffffp+112
|
|
|
|
pow -0 0x1.ffffffffffffffffffffffffffffp+113
|
|
|
|
|
|
|
|
# pow (+0, y) == +0 for y > 0 and not an odd integer.
|
|
|
|
pow 0.0 4
|
|
|
|
pow 0.0 0x1p24
|
|
|
|
pow 0.0 0x1p127
|
|
|
|
pow 0.0 max
|
|
|
|
pow 0.0 min_subnorm
|
|
|
|
|
|
|
|
# pow (-0, y) == +0 for y > 0 and not an odd integer.
|
|
|
|
pow -0 4
|
|
|
|
pow -0 0x1p24
|
|
|
|
pow -0 0x1p127
|
|
|
|
pow -0 max
|
|
|
|
pow -0 min_subnorm
|
|
|
|
|
|
|
|
pow 16 0.25
|
|
|
|
pow 0x1p64 0.125
|
|
|
|
pow 2 4
|
|
|
|
pow 256 8
|
|
|
|
|
|
|
|
pow 0.75 1.25
|
|
|
|
|
|
|
|
pow -7.49321e+133 -9.80818e+16
|
|
|
|
|
|
|
|
pow -1.0 -0xffffff
|
|
|
|
pow -1.0 -0x1fffffe
|
|
|
|
pow -1.0 -0x1.fffffffffffffp+52
|
|
|
|
pow -1.0 -0x1.fffffffffffffp+53
|
|
|
|
pow -1.0 -0x1.fffffffffffffffep+63
|
|
|
|
pow -1.0 -0x1.fffffffffffffffep+64
|
|
|
|
pow -1.0 -0x1.ffffffffffffffffffffffffff8p+105
|
|
|
|
pow -1.0 -0x1.ffffffffffffffffffffffffff8p+106
|
|
|
|
pow -1.0 -0x1.ffffffffffffffffffffffffffffp+112
|
|
|
|
pow -1.0 -0x1.ffffffffffffffffffffffffffffp+113
|
|
|
|
pow -1.0 -max
|
|
|
|
|
|
|
|
pow -1.0 0xffffff
|
|
|
|
pow -1.0 0x1fffffe
|
|
|
|
pow -1.0 0x1.fffffffffffffp+52
|
|
|
|
pow -1.0 0x1.fffffffffffffp+53
|
|
|
|
pow -1.0 0x1.fffffffffffffffep+63
|
|
|
|
pow -1.0 0x1.fffffffffffffffep+64
|
|
|
|
pow -1.0 0x1.ffffffffffffffffffffffffff8p+105
|
|
|
|
pow -1.0 0x1.ffffffffffffffffffffffffff8p+106
|
|
|
|
pow -1.0 0x1.ffffffffffffffffffffffffffffp+112
|
|
|
|
pow -1.0 0x1.ffffffffffffffffffffffffffffp+113
|
|
|
|
pow -1.0 max
|
|
|
|
|
|
|
|
pow -2.0 126
|
|
|
|
pow -2.0 127
|
|
|
|
pow -2.0 -126
|
|
|
|
pow -2.0 -127
|
|
|
|
|
|
|
|
pow -2.0 -0xffffff
|
|
|
|
pow -2.0 -0x1fffffe
|
|
|
|
pow -2.0 -0x1.fffffffffffffp+52
|
|
|
|
pow -2.0 -0x1.fffffffffffffp+53
|
|
|
|
pow -2.0 -0x1.fffffffffffffffep+63
|
|
|
|
pow -2.0 -0x1.fffffffffffffffep+64
|
|
|
|
pow -2.0 -0x1.ffffffffffffffffffffffffff8p+105
|
|
|
|
pow -2.0 -0x1.ffffffffffffffffffffffffff8p+106
|
|
|
|
pow -2.0 -0x1.ffffffffffffffffffffffffffffp+112
|
|
|
|
pow -2.0 -0x1.ffffffffffffffffffffffffffffp+113
|
|
|
|
pow -2.0 -max
|
|
|
|
|
|
|
|
pow -2.0 0xffffff
|
|
|
|
pow -2.0 0x1fffffe
|
|
|
|
pow -2.0 0x1.fffffffffffffp+52
|
|
|
|
pow -2.0 0x1.fffffffffffffp+53
|
|
|
|
pow -2.0 0x1.fffffffffffffffep+63
|
|
|
|
pow -2.0 0x1.fffffffffffffffep+64
|
|
|
|
pow -2.0 0x1.ffffffffffffffffffffffffff8p+105
|
|
|
|
pow -2.0 0x1.ffffffffffffffffffffffffff8p+106
|
|
|
|
pow -2.0 0x1.ffffffffffffffffffffffffffffp+112
|
|
|
|
pow -2.0 0x1.ffffffffffffffffffffffffffffp+113
|
|
|
|
pow -2.0 max
|
|
|
|
|
|
|
|
pow -max -2
|
|
|
|
pow -max -3
|
|
|
|
pow -max 2
|
|
|
|
pow -max 3
|
|
|
|
|
|
|
|
pow -max -0xffffff
|
|
|
|
pow -max -0x1fffffe
|
|
|
|
pow -max -0x1.fffffffffffffp+52
|
|
|
|
pow -max -0x1.fffffffffffffp+53
|
|
|
|
pow -max -0x1.fffffffffffffffep+63
|
|
|
|
pow -max -0x1.fffffffffffffffep+64
|
|
|
|
pow -max -0x1.ffffffffffffffffffffffffff8p+105
|
|
|
|
pow -max -0x1.ffffffffffffffffffffffffff8p+106
|
|
|
|
pow -max -0x1.ffffffffffffffffffffffffffffp+112
|
|
|
|
pow -max -0x1.ffffffffffffffffffffffffffffp+113
|
|
|
|
pow -max -max
|
|
|
|
|
|
|
|
pow -max 0xffffff
|
|
|
|
pow -max 0x1fffffe
|
|
|
|
pow -max 0x1.fffffffffffffp+52
|
|
|
|
pow -max 0x1.fffffffffffffp+53
|
|
|
|
pow -max 0x1.fffffffffffffffep+63
|
|
|
|
pow -max 0x1.fffffffffffffffep+64
|
|
|
|
pow -max 0x1.ffffffffffffffffffffffffff8p+105
|
|
|
|
pow -max 0x1.ffffffffffffffffffffffffff8p+106
|
|
|
|
pow -max 0x1.ffffffffffffffffffffffffffffp+112
|
|
|
|
pow -max 0x1.ffffffffffffffffffffffffffffp+113
|
|
|
|
pow -max max
|
|
|
|
|
2014-06-23 20:12:33 +00:00
|
|
|
pow -0x1p65 2
|
|
|
|
pow -0x1p65 3
|
|
|
|
pow -0x1p65 4
|
|
|
|
pow -0x1p65 5
|
|
|
|
pow -0x1p43 3
|
|
|
|
pow -0x1p43 4
|
|
|
|
pow -0x1p43 5
|
|
|
|
pow -0x1p33 4
|
|
|
|
pow -0x1p33 5
|
|
|
|
pow -0x1p26 5
|
|
|
|
pow -0x1p-65 -2
|
|
|
|
pow -0x1p-65 -3
|
|
|
|
pow -0x1p-65 -4
|
|
|
|
pow -0x1p-65 -5
|
|
|
|
pow -0x1p-43 -3
|
|
|
|
pow -0x1p-43 -4
|
|
|
|
pow -0x1p-43 -5
|
|
|
|
pow -0x1p-33 -4
|
|
|
|
pow -0x1p-33 -5
|
|
|
|
pow -0x1p-26 -5
|
|
|
|
|
|
|
|
pow -0x1p513 2
|
|
|
|
pow -0x1p513 3
|
|
|
|
pow -0x1p513 4
|
|
|
|
pow -0x1p513 5
|
|
|
|
pow -0x1p342 3
|
|
|
|
pow -0x1p342 4
|
|
|
|
pow -0x1p342 5
|
|
|
|
pow -0x1p257 4
|
|
|
|
pow -0x1p257 5
|
|
|
|
pow -0x1p205 5
|
|
|
|
pow -0x1p-513 -2
|
|
|
|
pow -0x1p-513 -3
|
|
|
|
pow -0x1p-513 -4
|
|
|
|
pow -0x1p-513 -5
|
|
|
|
pow -0x1p-342 -3
|
|
|
|
pow -0x1p-342 -4
|
|
|
|
pow -0x1p-342 -5
|
|
|
|
pow -0x1p-257 -4
|
|
|
|
pow -0x1p-257 -5
|
|
|
|
pow -0x1p-205 -5
|
|
|
|
|
|
|
|
pow -0x1p8192 2
|
|
|
|
pow -0x1p8192 3
|
|
|
|
pow -0x1p8192 4
|
|
|
|
pow -0x1p8192 5
|
|
|
|
pow -0x1p5462 3
|
|
|
|
pow -0x1p5462 4
|
|
|
|
pow -0x1p5462 5
|
|
|
|
pow -0x1p4097 4
|
|
|
|
pow -0x1p4097 5
|
|
|
|
pow -0x1p3277 5
|
|
|
|
pow -0x1p64 257
|
|
|
|
pow -0x1p-8192 -2
|
|
|
|
pow -0x1p-8192 -3
|
|
|
|
pow -0x1p-8192 -4
|
|
|
|
pow -0x1p-8192 -5
|
|
|
|
pow -0x1p-5462 -3
|
|
|
|
pow -0x1p-5462 -4
|
|
|
|
pow -0x1p-5462 -5
|
|
|
|
pow -0x1p-4097 -4
|
|
|
|
pow -0x1p-4097 -5
|
|
|
|
pow -0x1p-3277 -5
|
|
|
|
pow -0x1p-64 -257
|
|
|
|
|
2013-12-16 21:18:07 +00:00
|
|
|
pow -0.5 126
|
|
|
|
pow -0.5 127
|
|
|
|
pow -0.5 -126
|
|
|
|
pow -0.5 -127
|
|
|
|
|
|
|
|
pow -0.5 -0xffffff
|
|
|
|
pow -0.5 -0x1fffffe
|
|
|
|
pow -0.5 -0x1.fffffffffffffp+52
|
|
|
|
pow -0.5 -0x1.fffffffffffffp+53
|
|
|
|
pow -0.5 -0x1.fffffffffffffffep+63
|
|
|
|
pow -0.5 -0x1.fffffffffffffffep+64
|
|
|
|
pow -0.5 -0x1.ffffffffffffffffffffffffff8p+105
|
|
|
|
pow -0.5 -0x1.ffffffffffffffffffffffffff8p+106
|
|
|
|
pow -0.5 -0x1.ffffffffffffffffffffffffffffp+112
|
|
|
|
pow -0.5 -0x1.ffffffffffffffffffffffffffffp+113
|
|
|
|
pow -0.5 -max
|
|
|
|
|
|
|
|
pow -0.5 0xffffff
|
|
|
|
pow -0.5 0x1fffffe
|
|
|
|
pow -0.5 0x1.fffffffffffffp+52
|
|
|
|
pow -0.5 0x1.fffffffffffffp+53
|
|
|
|
pow -0.5 0x1.fffffffffffffffep+63
|
|
|
|
pow -0.5 0x1.fffffffffffffffep+64
|
|
|
|
pow -0.5 0x1.ffffffffffffffffffffffffff8p+105
|
|
|
|
pow -0.5 0x1.ffffffffffffffffffffffffff8p+106
|
|
|
|
pow -0.5 0x1.ffffffffffffffffffffffffffffp+112
|
|
|
|
pow -0.5 0x1.ffffffffffffffffffffffffffffp+113
|
|
|
|
pow -0.5 max
|
|
|
|
|
|
|
|
pow -min -2
|
|
|
|
pow -min -3
|
|
|
|
pow -min 1
|
|
|
|
pow -min 2
|
|
|
|
pow -min 3
|
|
|
|
|
|
|
|
pow -min -0xffffff
|
|
|
|
pow -min -0x1fffffe
|
|
|
|
pow -min -0x1.fffffffffffffp+52
|
|
|
|
pow -min -0x1.fffffffffffffp+53
|
|
|
|
pow -min -0x1.fffffffffffffffep+63
|
|
|
|
pow -min -0x1.fffffffffffffffep+64
|
|
|
|
pow -min -0x1.ffffffffffffffffffffffffff8p+105
|
|
|
|
pow -min -0x1.ffffffffffffffffffffffffff8p+106
|
|
|
|
pow -min -0x1.ffffffffffffffffffffffffffffp+112
|
|
|
|
pow -min -0x1.ffffffffffffffffffffffffffffp+113
|
|
|
|
pow -min -max
|
|
|
|
|
|
|
|
pow -min 0xffffff
|
|
|
|
pow -min 0x1fffffe
|
|
|
|
pow -min 0x1.fffffffffffffp+52
|
|
|
|
pow -min 0x1.fffffffffffffp+53
|
|
|
|
pow -min 0x1.fffffffffffffffep+63
|
|
|
|
pow -min 0x1.fffffffffffffffep+64
|
|
|
|
pow -min 0x1.ffffffffffffffffffffffffff8p+105
|
|
|
|
pow -min 0x1.ffffffffffffffffffffffffff8p+106
|
|
|
|
pow -min 0x1.ffffffffffffffffffffffffffffp+112
|
|
|
|
pow -min 0x1.ffffffffffffffffffffffffffffp+113
|
|
|
|
pow -min max
|
|
|
|
|
|
|
|
pow 0x0.ffffffp0 10
|
|
|
|
pow 0x0.ffffffp0 100
|
|
|
|
pow 0x0.ffffffp0 1000
|
|
|
|
pow 0x0.ffffffp0 0x1p24
|
|
|
|
pow 0x0.ffffffp0 0x1p30
|
|
|
|
pow 0x0.ffffffp0 0x1.234566p30
|
|
|
|
pow 0x0.ffffffp0 -10
|
|
|
|
pow 0x0.ffffffp0 -100
|
|
|
|
pow 0x0.ffffffp0 -1000
|
|
|
|
pow 0x0.ffffffp0 -0x1p24
|
|
|
|
pow 0x0.ffffffp0 -0x1p30
|
|
|
|
pow 0x0.ffffffp0 -0x1.234566p30
|
|
|
|
pow 0x1.000002p0 0x1p24
|
|
|
|
pow 0x1.000002p0 0x1.234566p29
|
|
|
|
pow 0x1.000002p0 -0x1.234566p29
|
|
|
|
|
|
|
|
pow 0x0.fffffffffffff8p0 0x1.23456789abcdfp62
|
|
|
|
pow 0x0.fffffffffffff8p0 -0x1.23456789abcdfp62
|
|
|
|
pow 0x1.0000000000001p0 0x1.23456789abcdfp61
|
|
|
|
pow 0x1.0000000000001p0 -0x1.23456789abcdfp61
|
|
|
|
|
|
|
|
pow 0x0.ffffffffffffffffp0 0x1.23456789abcdef0ep77
|
|
|
|
pow 0x0.ffffffffffffffffp0 -0x1.23456789abcdef0ep77
|
|
|
|
pow 0x1.0000000000000002p0 0x1.23456789abcdef0ep76
|
|
|
|
pow 0x1.0000000000000002p0 -0x1.23456789abcdef0ep76
|
|
|
|
|
|
|
|
pow 0x0.ffffffffffffffffffffffffffff8p0 0x1.23456789abcdef0123456789abcdp126
|
|
|
|
pow 0x0.ffffffffffffffffffffffffffff8p0 -0x1.23456789abcdef0123456789abcdp126
|
|
|
|
pow 0x1.0000000000000000000000000001p0 0x1.23456789abcdef0123456789abcdp125
|
|
|
|
pow 0x1.0000000000000000000000000001p0 -0x1.23456789abcdef0123456789abcdp125
|
|
|
|
|
2015-08-05 15:01:58 +00:00
|
|
|
pow -0x0.ffffffp0 10
|
|
|
|
pow -0x0.ffffffp0 100
|
|
|
|
pow -0x0.ffffffp0 1000
|
|
|
|
pow -0x0.ffffffp0 0x1p24
|
|
|
|
pow -0x0.ffffffp0 0x1p30
|
|
|
|
pow -0x0.ffffffp0 0x1.234566p30
|
|
|
|
pow -0x0.ffffffp0 -10
|
|
|
|
pow -0x0.ffffffp0 -100
|
|
|
|
pow -0x0.ffffffp0 -1000
|
|
|
|
pow -0x0.ffffffp0 -0x1p24
|
|
|
|
pow -0x0.ffffffp0 -0x1p30
|
|
|
|
pow -0x0.ffffffp0 -0x1.234566p30
|
|
|
|
pow -0x1.000002p0 0x1p24
|
|
|
|
pow -0x1.000002p0 0x1.234566p29
|
|
|
|
pow -0x1.000002p0 -0x1.234566p29
|
|
|
|
|
|
|
|
pow -0x0.fffffffffffff8p0 0x1.23456789abcdfp62
|
|
|
|
pow -0x0.fffffffffffff8p0 -0x1.23456789abcdfp62
|
|
|
|
pow -0x1.0000000000001p0 0x1.23456789abcdfp61
|
|
|
|
pow -0x1.0000000000001p0 -0x1.23456789abcdfp61
|
|
|
|
|
|
|
|
pow -0x0.ffffffffffffffffp0 0x1.23456789abcdef0ep77
|
|
|
|
pow -0x0.ffffffffffffffffp0 -0x1.23456789abcdef0ep77
|
|
|
|
pow -0x1.0000000000000002p0 0x1.23456789abcdef0ep76
|
|
|
|
pow -0x1.0000000000000002p0 -0x1.23456789abcdef0ep76
|
|
|
|
|
|
|
|
pow -0x0.ffffffffffffffffffffffffffff8p0 0x1.23456789abcdef0123456789abcdp126
|
|
|
|
pow -0x0.ffffffffffffffffffffffffffff8p0 -0x1.23456789abcdef0123456789abcdp126
|
|
|
|
pow -0x1.0000000000000000000000000001p0 0x1.23456789abcdef0123456789abcdp125
|
|
|
|
pow -0x1.0000000000000000000000000001p0 -0x1.23456789abcdef0123456789abcdp125
|
|
|
|
|
|
|
|
pow 0x1.000002p0 0x1p30
|
|
|
|
pow -0x1.000002p0 0x1p30
|
|
|
|
pow 0x1.000002p0 max
|
|
|
|
pow -0x1.000002p0 max
|
|
|
|
pow 0x1.00000ep0 0x1p30
|
|
|
|
pow -0x1.00000ep0 0x1p30
|
|
|
|
pow 0x1.00000ep0 max
|
|
|
|
pow -0x1.00000ep0 max
|
|
|
|
|
2013-12-16 21:18:07 +00:00
|
|
|
pow 1e4932 0.75
|
|
|
|
pow 1e4928 0.75
|
|
|
|
pow 1e4924 0.75
|
|
|
|
pow 1e4920 0.75
|
|
|
|
pow 10.0 4932.0
|
|
|
|
pow 10.0 4931.0
|
|
|
|
pow 10.0 4930.0
|
|
|
|
pow 10.0 4929.0
|
|
|
|
pow 10.0 -4931.0
|
|
|
|
pow 10.0 -4930.0
|
|
|
|
pow 10.0 -4929.0
|
|
|
|
pow 1e27 182.0
|
|
|
|
pow 1e27 -182.0
|
|
|
|
|
|
|
|
pow min_subnorm min_subnorm
|
|
|
|
pow min_subnorm -min_subnorm
|
|
|
|
pow max min_subnorm
|
|
|
|
pow max -min_subnorm
|
|
|
|
pow 0.99 min_subnorm
|
|
|
|
pow 0.99 -min_subnorm
|
|
|
|
pow 1.01 min_subnorm
|
|
|
|
pow 1.01 -min_subnorm
|
|
|
|
|
|
|
|
pow 2.0 -100000.0
|
|
|
|
|
|
|
|
pow 1.0625 1.125
|
|
|
|
pow 1.5 1.03125
|
2015-03-10 17:53:40 +00:00
|
|
|
pow 0x1.7d1a0a6f2p+681 1.5
|
2015-05-01 22:31:24 +00:00
|
|
|
pow 0x1.ce78f2p+0 -0x2.7f1f78p+4
|
Add more tests of various libm functions.
This patch adds more tests of various libm functions found through
random test generation to give increased ulps on 32-bit x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acosh, asin, asinh,
atanh, cabs, carg, cbrt, cosh, csqrt, erf, erfc, exp, exp10,
expm1, hypot, log, log10, log1p, log2, pow, sinh, tan and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-11 00:58:28 +00:00
|
|
|
pow 0xf.fffffp+124 -0x5.b5b648p+0
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
pow 0x1.430d4cp+0 0x5.0e462p+4
|
2013-12-16 21:18:07 +00:00
|
|
|
|
2013-12-05 13:54:50 +00:00
|
|
|
sin 0
|
|
|
|
sin -0
|
|
|
|
sin pi/6
|
|
|
|
sin -pi/6
|
|
|
|
sin pi/2
|
|
|
|
sin -pi/2
|
|
|
|
sin 0.75
|
|
|
|
sin 0x1p65
|
|
|
|
sin -0x1p65
|
|
|
|
sin 0x1.7f4134p+103
|
|
|
|
sin 0.80190127184058835
|
|
|
|
sin 2.522464e-1
|
|
|
|
sin 1e22
|
|
|
|
sin 0x1p1023
|
|
|
|
sin 0x1p16383
|
|
|
|
sin 0x1p+120
|
|
|
|
sin 0x1p+127
|
|
|
|
sin 0x1.fffff8p+127
|
|
|
|
sin 0x1.fffffep+127
|
|
|
|
sin 0x1p+50
|
|
|
|
sin 0x1p+28
|
|
|
|
sin 0.93340582292648832662962377071381
|
|
|
|
sin 2.3328432680770916363144351635128
|
|
|
|
sin 3.7439477503636453548097051680088
|
|
|
|
sin 3.9225160069792437411706487182528
|
|
|
|
sin 4.0711651639931289992091478779912
|
|
|
|
sin 4.7858438478542097982426639646292
|
|
|
|
sin 5.9840767662578002727968851104379
|
|
|
|
sin 1
|
|
|
|
sin 2
|
|
|
|
sin 3
|
|
|
|
sin 4
|
|
|
|
sin 5
|
|
|
|
sin 6
|
|
|
|
sin 7
|
|
|
|
sin 8
|
|
|
|
sin 9
|
|
|
|
sin 10
|
2014-02-27 15:42:09 +00:00
|
|
|
sin 0x1.2001469775ce6p32
|
2015-05-01 22:41:00 +00:00
|
|
|
sin -0x3.3de320f6be87ep+1020
|
Add more tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64.
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of atan, clog, clog10,
cos, csqrt, erf, erfc, exp2, lgamma, log1p, sin, sincos, tanh and
tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-02 21:06:33 +00:00
|
|
|
sin 0xe.9f1e5bc3bb88p+112
|
Add more tests of acosh, atanh, cos, csqrt, erfc, sin, sincos.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64.
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of acosh, atanh, cos,
csqrt, erfc, sin and sincos.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-06 17:30:18 +00:00
|
|
|
sin 0x4.7857dp+68
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
sin 0x6.287cc8749212e72p+0
|
2015-06-23 22:24:20 +00:00
|
|
|
sin min
|
|
|
|
sin -min
|
|
|
|
sin min_subnorm
|
|
|
|
sin -min_subnorm
|
2013-12-05 13:54:50 +00:00
|
|
|
|
2013-12-19 17:21:01 +00:00
|
|
|
sincos 0
|
|
|
|
sincos -0
|
|
|
|
sincos pi/2
|
|
|
|
sincos pi/6
|
|
|
|
sincos pi/3
|
|
|
|
sincos 0.75
|
|
|
|
sincos 0x1p65
|
|
|
|
sincos -0x1p65
|
|
|
|
sincos 0.80190127184058835
|
|
|
|
sincos 1e22
|
|
|
|
sincos 0x1p1023
|
|
|
|
sincos 0x1p16383
|
|
|
|
sincos 0x1p+120
|
|
|
|
sincos 0x1p+127
|
|
|
|
sincos 0x1.fffff8p+127
|
|
|
|
sincos 0x1.fffffep+127
|
|
|
|
sincos 0x1p+50
|
|
|
|
sincos 0x1p+28
|
2015-05-01 22:41:00 +00:00
|
|
|
sincos -0x3.3de320f6be87ep+1020
|
Add more tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64.
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of atan, clog, clog10,
cos, csqrt, erf, erfc, exp2, lgamma, log1p, sin, sincos, tanh and
tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-02 21:06:33 +00:00
|
|
|
sincos 0xe.9f1e5bc3bb88p+112
|
Add more tests of acosh, atanh, cos, csqrt, erfc, sin, sincos.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64.
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of acosh, atanh, cos,
csqrt, erfc, sin and sincos.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-06 17:30:18 +00:00
|
|
|
sincos 0x4.7857dp+68
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
sincos 0x6.287cc8749212e72p+0
|
2015-06-23 22:24:20 +00:00
|
|
|
sincos min
|
|
|
|
sincos -min
|
|
|
|
sincos min_subnorm
|
|
|
|
sincos -min_subnorm
|
2013-12-19 17:21:01 +00:00
|
|
|
|
2013-12-05 13:54:50 +00:00
|
|
|
sinh 0
|
|
|
|
sinh -0
|
|
|
|
sinh 0.75
|
2013-12-19 13:36:10 +00:00
|
|
|
sinh 0x8p-32
|
2015-08-10 15:25:10 +00:00
|
|
|
sinh 0x1p-5
|
|
|
|
sinh -0x1p-5
|
|
|
|
sinh 0x1p-10
|
|
|
|
sinh -0x1p-10
|
|
|
|
sinh 0x1p-20
|
|
|
|
sinh -0x1p-20
|
|
|
|
sinh 0x1p-30
|
|
|
|
sinh -0x1p-30
|
|
|
|
sinh 0x1p-40
|
|
|
|
sinh -0x1p-40
|
|
|
|
sinh 0x1p-50
|
|
|
|
sinh -0x1p-50
|
|
|
|
sinh 0x1p-60
|
|
|
|
sinh -0x1p-60
|
|
|
|
sinh 0x1p-70
|
|
|
|
sinh -0x1p-70
|
|
|
|
sinh 0x1p-100
|
|
|
|
sinh -0x1p-100
|
|
|
|
sinh 0x1p-1000
|
|
|
|
sinh -0x1p-1000
|
|
|
|
sinh 0x1p-10000
|
|
|
|
sinh -0x1p-10000
|
2013-12-05 13:54:50 +00:00
|
|
|
sinh 22
|
|
|
|
sinh 23
|
|
|
|
sinh 24
|
2015-03-24 23:48:04 +00:00
|
|
|
sinh -0x7.55d7f8p-4
|
|
|
|
sinh -0x3.f392f8p-4
|
|
|
|
sinh 0x1.c56446p+0
|
|
|
|
sinh 0x6.cac622d51eebcp-4
|
|
|
|
sinh -0x5.c4cb02389c094p+0
|
|
|
|
sinh -0x1.646850f515ef2p+0
|
|
|
|
sinh -0x7.a8c5f68c81fae5dp-4
|
|
|
|
sinh 0x3.4a037p-4
|
|
|
|
sinh -0x3.eba6dbcbeceb2p-4
|
|
|
|
sinh -0x2.55f63p+0
|
2015-04-30 22:32:08 +00:00
|
|
|
sinh -0x3.ca68c96337692p-4
|
|
|
|
sinh -0x3.92da05a85024b314p-4
|
|
|
|
sinh -0x3.3e6292ed442d450cp-4
|
|
|
|
sinh 0x7.6e259d2436fc4p-4
|
Add further tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64. (This process
must eventually converge, when my random test generation stops finding
inputs that increase the listed ulps, except maybe for any cases
uncovered where the errors exceed the maximum allowed 9ulp error and
so indicate actual libm bugs needing fixing.)
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of acosh, atanh, clog,
clog10, csqrt, erfc, exp2, expm1, log10, log2 and sinh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-05 22:59:41 +00:00
|
|
|
sinh 0x3.d6e088p-4
|
|
|
|
sinh -0x7.688eap-4
|
2015-05-08 17:55:11 +00:00
|
|
|
sinh -0xd.dce79p-4
|
Add more tests of various libm functions.
This patch adds more tests of various libm functions found through
random test generation to give increased ulps on 32-bit x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acosh, asin, asinh,
atanh, cabs, carg, cbrt, cosh, csqrt, erf, erfc, exp, exp10,
expm1, hypot, log, log10, log1p, log2, pow, sinh, tan and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-11 00:58:28 +00:00
|
|
|
sinh 0x8.a3127p+4
|
|
|
|
sinh 0x1.c0709p-12
|
2015-08-06 23:01:09 +00:00
|
|
|
sinh min
|
|
|
|
sinh -min
|
|
|
|
sinh min_subnorm
|
|
|
|
sinh -min_subnorm
|
2013-12-05 13:54:50 +00:00
|
|
|
|
2013-11-29 16:27:55 +00:00
|
|
|
sqrt 0
|
|
|
|
sqrt -0
|
|
|
|
sqrt 2209
|
|
|
|
sqrt 4
|
|
|
|
sqrt 2
|
|
|
|
sqrt 0.25
|
|
|
|
sqrt 6642.25
|
|
|
|
sqrt 15190.5625
|
|
|
|
sqrt 0.75
|
2013-11-29 16:31:16 +00:00
|
|
|
sqrt 0x1.fffffffffffffp+1023
|
|
|
|
sqrt 0x1.ffffffffffffbp+1023
|
|
|
|
sqrt 0x1.ffffffffffff7p+1023
|
|
|
|
sqrt 0x1.ffffffffffff3p+1023
|
|
|
|
sqrt 0x1.fffffffffffefp+1023
|
|
|
|
sqrt 0x1.fffffffffffebp+1023
|
|
|
|
sqrt 0x1.fffffffffffe7p+1023
|
|
|
|
sqrt 0x1.fffffffffffe3p+1023
|
|
|
|
sqrt 0x1.fffffffffffdfp+1023
|
|
|
|
sqrt 0x1.fffffffffffdbp+1023
|
|
|
|
sqrt 0x1.fffffffffffd7p+1023
|
|
|
|
sqrt 0x1.0000000000003p-1022
|
|
|
|
sqrt 0x1.0000000000007p-1022
|
|
|
|
sqrt 0x1.000000000000bp-1022
|
|
|
|
sqrt 0x1.000000000000fp-1022
|
|
|
|
sqrt 0x1.0000000000013p-1022
|
|
|
|
sqrt 0x1.0000000000017p-1022
|
|
|
|
sqrt 0x1.000000000001bp-1022
|
|
|
|
sqrt 0x1.000000000001fp-1022
|
|
|
|
sqrt 0x1.0000000000023p-1022
|
|
|
|
sqrt 0x1.0000000000027p-1022
|
|
|
|
sqrt 0x1.000000000002bp-1022
|
|
|
|
sqrt 0x1.000000000002fp-1022
|
|
|
|
sqrt 0x1.0000000000033p-1022
|
|
|
|
sqrt 0x1.0000000000037p-1022
|
|
|
|
sqrt 0x1.7167bc36eaa3bp+6
|
|
|
|
sqrt 0x1.7570994273ad7p+6
|
|
|
|
sqrt 0x1.7dae969442fe6p+6
|
|
|
|
sqrt 0x1.7f8444fcf67e5p+6
|
|
|
|
sqrt 0x1.8364650e63a54p+6
|
|
|
|
sqrt 0x1.85bedd274edd8p+6
|
|
|
|
sqrt 0x1.8609cf496ab77p+6
|
|
|
|
sqrt 0x1.873849c70a375p+6
|
|
|
|
sqrt 0x1.8919c962cbaaep+6
|
|
|
|
sqrt 0x1.8de4493e22dc6p+6
|
|
|
|
sqrt 0x1.924829a17a288p+6
|
|
|
|
sqrt 0x1.92702cd992f12p+6
|
|
|
|
sqrt 0x1.92b763a8311fdp+6
|
|
|
|
sqrt 0x1.947da013c7293p+6
|
|
|
|
sqrt 0x1.9536091c494d2p+6
|
|
|
|
sqrt 0x1.61b04c6p-1019
|
|
|
|
sqrt 0x1.93789f1p-1018
|
|
|
|
sqrt 0x1.a1989b4p-1018
|
|
|
|
sqrt 0x1.f93bc9p-1018
|
|
|
|
sqrt 0x1.2f675e3p-1017
|
|
|
|
sqrt 0x1.a158508p-1017
|
|
|
|
sqrt 0x1.cd31f078p-1017
|
|
|
|
sqrt 0x1.33b43b08p-1016
|
|
|
|
sqrt 0x1.6e66a858p-1016
|
|
|
|
sqrt 0x1.8661cbf8p-1016
|
|
|
|
sqrt 0x1.bbb221b4p-1016
|
|
|
|
sqrt 0x1.c4942f3cp-1016
|
|
|
|
sqrt 0x1.dbb258c8p-1016
|
|
|
|
sqrt 0x1.57103ea4p-1015
|
|
|
|
sqrt 0x1.9b294f88p-1015
|
|
|
|
sqrt 0x1.0000000000001p+0
|
|
|
|
sqrt 0x1.fffffffffffffp-1
|
2013-12-05 13:54:50 +00:00
|
|
|
|
|
|
|
tan 0
|
|
|
|
tan -0
|
|
|
|
tan pi/4
|
|
|
|
tan 0.75
|
|
|
|
tan 0x1p65
|
|
|
|
tan -0x1p65
|
2015-05-15 17:47:29 +00:00
|
|
|
tan 0x1p-27
|
|
|
|
tan -0x1p-27
|
2013-12-05 13:54:50 +00:00
|
|
|
tan 0xc.9p-4
|
|
|
|
tan 0xc.908p-4
|
|
|
|
tan 0xc.90cp-4
|
|
|
|
tan 0xc.90ep-4
|
|
|
|
tan 0xc.90fp-4
|
|
|
|
tan 0xc.90f8p-4
|
|
|
|
tan 0xc.90fcp-4
|
|
|
|
tan 0xc.90fdp-4
|
|
|
|
tan 0xc.90fd8p-4
|
|
|
|
tan 0xc.90fdap-4
|
|
|
|
tan 0xc.ap-4
|
|
|
|
tan 0xc.98p-4
|
|
|
|
tan 0xc.94p-4
|
|
|
|
tan 0xc.92p-4
|
|
|
|
tan 0xc.91p-4
|
|
|
|
tan 0xc.90fep-4
|
|
|
|
tan 0xc.90fdcp-4
|
|
|
|
tan 0xc.90fdbp-4
|
|
|
|
tan -0xc.9p-4
|
|
|
|
tan -0xc.908p-4
|
|
|
|
tan -0xc.90cp-4
|
|
|
|
tan -0xc.90ep-4
|
|
|
|
tan -0xc.90fp-4
|
|
|
|
tan -0xc.90f8p-4
|
|
|
|
tan -0xc.90fcp-4
|
|
|
|
tan -0xc.90fdp-4
|
|
|
|
tan -0xc.90fd8p-4
|
|
|
|
tan -0xc.90fdap-4
|
|
|
|
tan -0xc.ap-4
|
|
|
|
tan -0xc.98p-4
|
|
|
|
tan -0xc.94p-4
|
|
|
|
tan -0xc.92p-4
|
|
|
|
tan -0xc.91p-4
|
|
|
|
tan -0xc.90fep-4
|
|
|
|
tan -0xc.90fdcp-4
|
|
|
|
tan -0xc.90fdbp-4
|
|
|
|
tan 1e22
|
|
|
|
tan 0x1p1023
|
|
|
|
tan 0x1p16383
|
|
|
|
tan 1
|
|
|
|
tan 2
|
|
|
|
tan 3
|
|
|
|
tan 4
|
|
|
|
tan 5
|
|
|
|
tan 6
|
|
|
|
tan 7
|
|
|
|
tan 8
|
|
|
|
tan 9
|
|
|
|
tan 10
|
2015-05-01 22:54:39 +00:00
|
|
|
tan -0x1.062a48p+0
|
|
|
|
tan -0x1.4f69cp+0
|
Add more tests of various libm functions.
This patch adds more tests of various libm functions found through
random test generation to give increased ulps on 32-bit x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acosh, asin, asinh,
atanh, cabs, carg, cbrt, cosh, csqrt, erf, erfc, exp, exp10,
expm1, hypot, log, log10, log1p, log2, pow, sinh, tan and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-11 00:58:28 +00:00
|
|
|
tan 0x1.6ca7e8p+0
|
|
|
|
tan -0x1.b569cp+0
|
|
|
|
tan -0x2.12bafcp+0
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
tan 0x2.091d68p+0
|
|
|
|
tan -0x5.302ab9b18593264p+0
|
|
|
|
tan 0x1.1ad374p+0
|
2015-08-07 23:10:35 +00:00
|
|
|
tan min
|
|
|
|
tan -min
|
|
|
|
tan min_subnorm
|
|
|
|
tan -min_subnorm
|
2013-12-05 13:54:50 +00:00
|
|
|
|
|
|
|
tanh 0
|
|
|
|
tanh -0
|
|
|
|
tanh 0.75
|
|
|
|
tanh -0.75
|
|
|
|
tanh 1.0
|
|
|
|
tanh -1.0
|
2015-08-10 20:35:30 +00:00
|
|
|
tanh 2
|
|
|
|
tanh -2
|
|
|
|
tanh 3
|
|
|
|
tanh -3
|
|
|
|
tanh 4
|
|
|
|
tanh -4
|
|
|
|
tanh 5
|
|
|
|
tanh -5
|
|
|
|
tanh 6
|
|
|
|
tanh -6
|
|
|
|
tanh 7
|
|
|
|
tanh -7
|
|
|
|
tanh 8
|
|
|
|
tanh -8
|
|
|
|
tanh 9
|
|
|
|
tanh -9
|
|
|
|
tanh 10
|
|
|
|
tanh -10
|
|
|
|
tanh 15
|
|
|
|
tanh -15
|
|
|
|
tanh 20
|
|
|
|
tanh -20
|
|
|
|
tanh 22
|
|
|
|
tanh -22
|
|
|
|
tanh 25
|
|
|
|
tanh -25
|
|
|
|
tanh 30
|
|
|
|
tanh -30
|
|
|
|
tanh 35
|
|
|
|
tanh -35
|
|
|
|
tanh 40
|
|
|
|
tanh -40
|
|
|
|
tanh 45
|
|
|
|
tanh -45
|
|
|
|
tanh 50
|
|
|
|
tanh -50
|
2013-12-05 13:54:50 +00:00
|
|
|
tanh 0x1p-57
|
2015-05-01 23:06:44 +00:00
|
|
|
tanh 0xe.6c659p-4
|
|
|
|
tanh 0x8.c259ep-4
|
|
|
|
tanh 0x6.5821dp-4
|
|
|
|
tanh 0x8.7c9e5p-4
|
|
|
|
tanh -0x3.b60d7cp-4
|
|
|
|
tanh 0x7.b9985p-4
|
|
|
|
tanh 0x7.a18e8p-4
|
|
|
|
tanh -0x2.6082fp-4
|
|
|
|
tanh 0xe.05031p-16
|
|
|
|
tanh 0x3.c80eaa7adaa3p-4
|
Add more tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64.
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of atan, clog, clog10,
cos, csqrt, erf, erfc, exp2, lgamma, log1p, sin, sincos, tanh and
tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-02 21:06:33 +00:00
|
|
|
tanh 0x2.00f9857616524p-4
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
tanh -0xe.9e035p+0
|
|
|
|
tanh -0x3.c0d8b54c5a488p-4
|
2015-08-13 16:40:39 +00:00
|
|
|
tanh min
|
|
|
|
tanh -min
|
|
|
|
tanh min_subnorm
|
|
|
|
tanh -min_subnorm
|
2013-12-05 13:54:50 +00:00
|
|
|
|
|
|
|
tgamma 0.5
|
|
|
|
tgamma -0.5
|
|
|
|
|
|
|
|
tgamma 1
|
|
|
|
tgamma 2
|
|
|
|
tgamma 3
|
|
|
|
tgamma 4
|
|
|
|
tgamma 5
|
|
|
|
tgamma 6
|
|
|
|
tgamma 7
|
|
|
|
tgamma 8
|
|
|
|
tgamma 9
|
|
|
|
tgamma 10
|
|
|
|
|
|
|
|
tgamma 0.7
|
|
|
|
tgamma 1.2
|
|
|
|
|
|
|
|
tgamma 1.5
|
|
|
|
tgamma 2.5
|
|
|
|
tgamma 3.5
|
|
|
|
tgamma 4.5
|
|
|
|
tgamma 5.5
|
|
|
|
tgamma 6.5
|
|
|
|
tgamma 7.5
|
|
|
|
tgamma 8.5
|
|
|
|
tgamma 9.5
|
|
|
|
tgamma -1.5
|
|
|
|
tgamma -2.5
|
|
|
|
tgamma -3.5
|
|
|
|
tgamma -4.5
|
|
|
|
tgamma -5.5
|
|
|
|
tgamma -6.5
|
|
|
|
tgamma -7.5
|
|
|
|
tgamma -8.5
|
|
|
|
tgamma -9.5
|
|
|
|
tgamma 0x1p-24
|
|
|
|
tgamma -0x1p-24
|
|
|
|
tgamma 0x1p-53
|
|
|
|
tgamma -0x1p-53
|
|
|
|
tgamma 0x1p-64
|
|
|
|
tgamma -0x1p-64
|
|
|
|
tgamma 0x1p-106
|
|
|
|
tgamma -0x1p-106
|
|
|
|
tgamma 0x1p-113
|
|
|
|
tgamma -0x1p-113
|
|
|
|
tgamma 0x1p-127
|
|
|
|
tgamma -0x1p-127
|
Improve tgamma accuracy (bug 18613).
In non-default rounding modes, tgamma can be slightly less accurate
than permitted by glibc's accuracy goals.
Part of the problem is error accumulation, addressed in this patch by
setting round-to-nearest for internal computations. However, there
was also a bug in the code dealing with computing pow (x + n, x + n)
where x + n is not exactly representable, providing another source of
error even in round-to-nearest mode; it was necessary to address both
bugs to get errors for all testcases within glibc's accuracy goals.
Given this second fix, accuracy in round-to-nearest mode is also
improved (hence regeneration of ulps for tgamma should be from scratch
- truncate libm-test-ulps or at least remove existing tgamma entries -
so that the expected ulps can be reduced).
Some additional complications also arose. Certain tgamma tests should
strictly, according to IEEE semantics, overflow or not depending on
the rounding mode; this is beyond the scope of glibc's accuracy goals
for any function without exactly-determined results, but
gen-auto-libm-tests doesn't handle being lax there as it does for
underflow. (libm-test.inc also doesn't handle being lax about whether
the result in cases very close to the overflow threshold is infinity
or a finite value close to overflow, but that doesn't cause problems
in this case though I've seen it cause problems with random test
generation for some functions.) Thus, spurious-overflow markings,
with a comment, are added to auto-libm-test-in (no bug in Bugzilla
because the issue is with the testsuite, not a user-visible bug in
glibc). And on x86, after the patch I saw ERANGE issues as previously
reported by Carlos (see my commentary in
<https://sourceware.org/ml/libc-alpha/2015-01/msg00485.html>), which
needed addressing by ensuring excess range and precision were
eliminated at various points if FLT_EVAL_METHOD != 0.
I also noticed and fixed a cosmetic issue where 1.0f was used in long
double functions and should have been 1.0L.
This completes the move of all functions to testing in all rounding
modes with ALL_RM_TEST, so gen-libm-have-vector-test.sh is updated to
remove the workaround for some functions not using ALL_RM_TEST.
Tested for x86_64, x86, mips64 and powerpc.
[BZ #18613]
* sysdeps/ieee754/dbl-64/e_gamma_r.c (gamma_positive): Take log of
X_ADJ not X when adjusting exponent.
(__ieee754_gamma_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed.
* sysdeps/ieee754/flt-32/e_gammaf_r.c (gammaf_positive): Take log
of X_ADJ not X when adjusting exponent.
(__ieee754_gammaf_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed.
* sysdeps/ieee754/ldbl-128/e_gammal_r.c (gammal_positive): Take
log of X_ADJ not X when adjusting exponent.
(__ieee754_gammal_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed. Use 1.0L not 1.0f as numerator of division.
* sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c (gammal_positive): Take
log of X_ADJ not X when adjusting exponent.
(__ieee754_gammal_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed. Use 1.0L not 1.0f as numerator of division.
* sysdeps/ieee754/ldbl-96/e_gammal_r.c (gammal_positive): Take log
of X_ADJ not X when adjusting exponent.
(__ieee754_gammal_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed. Use 1.0L not 1.0f as numerator of division.
* math/libm-test.inc (tgamma_test_data): Remove one test. Moved
to auto-libm-test-in.
(tgamma_test): Use ALL_RM_TEST.
* math/auto-libm-test-in: Add one test of tgamma. Mark some other
tests of tgamma with spurious-overflow.
* math/auto-libm-test-out: Regenerated.
* math/gen-libm-have-vector-test.sh: Do not check for START.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-06-29 23:29:35 +00:00
|
|
|
# IEEE semantics mean overflow very close to the threshold depends on
|
|
|
|
# the rounding mode; gen-auto-libm-tests does not reflect that glibc
|
|
|
|
# does not try to achieve this.
|
|
|
|
tgamma 0x1p-128 spurious-overflow:flt-32
|
2013-12-05 13:54:50 +00:00
|
|
|
tgamma -0x1p-128
|
|
|
|
tgamma 0x1p-149
|
|
|
|
tgamma -0x1p-149
|
|
|
|
tgamma 0x1p-1023
|
|
|
|
tgamma -0x1p-1023
|
Improve tgamma accuracy (bug 18613).
In non-default rounding modes, tgamma can be slightly less accurate
than permitted by glibc's accuracy goals.
Part of the problem is error accumulation, addressed in this patch by
setting round-to-nearest for internal computations. However, there
was also a bug in the code dealing with computing pow (x + n, x + n)
where x + n is not exactly representable, providing another source of
error even in round-to-nearest mode; it was necessary to address both
bugs to get errors for all testcases within glibc's accuracy goals.
Given this second fix, accuracy in round-to-nearest mode is also
improved (hence regeneration of ulps for tgamma should be from scratch
- truncate libm-test-ulps or at least remove existing tgamma entries -
so that the expected ulps can be reduced).
Some additional complications also arose. Certain tgamma tests should
strictly, according to IEEE semantics, overflow or not depending on
the rounding mode; this is beyond the scope of glibc's accuracy goals
for any function without exactly-determined results, but
gen-auto-libm-tests doesn't handle being lax there as it does for
underflow. (libm-test.inc also doesn't handle being lax about whether
the result in cases very close to the overflow threshold is infinity
or a finite value close to overflow, but that doesn't cause problems
in this case though I've seen it cause problems with random test
generation for some functions.) Thus, spurious-overflow markings,
with a comment, are added to auto-libm-test-in (no bug in Bugzilla
because the issue is with the testsuite, not a user-visible bug in
glibc). And on x86, after the patch I saw ERANGE issues as previously
reported by Carlos (see my commentary in
<https://sourceware.org/ml/libc-alpha/2015-01/msg00485.html>), which
needed addressing by ensuring excess range and precision were
eliminated at various points if FLT_EVAL_METHOD != 0.
I also noticed and fixed a cosmetic issue where 1.0f was used in long
double functions and should have been 1.0L.
This completes the move of all functions to testing in all rounding
modes with ALL_RM_TEST, so gen-libm-have-vector-test.sh is updated to
remove the workaround for some functions not using ALL_RM_TEST.
Tested for x86_64, x86, mips64 and powerpc.
[BZ #18613]
* sysdeps/ieee754/dbl-64/e_gamma_r.c (gamma_positive): Take log of
X_ADJ not X when adjusting exponent.
(__ieee754_gamma_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed.
* sysdeps/ieee754/flt-32/e_gammaf_r.c (gammaf_positive): Take log
of X_ADJ not X when adjusting exponent.
(__ieee754_gammaf_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed.
* sysdeps/ieee754/ldbl-128/e_gammal_r.c (gammal_positive): Take
log of X_ADJ not X when adjusting exponent.
(__ieee754_gammal_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed. Use 1.0L not 1.0f as numerator of division.
* sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c (gammal_positive): Take
log of X_ADJ not X when adjusting exponent.
(__ieee754_gammal_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed. Use 1.0L not 1.0f as numerator of division.
* sysdeps/ieee754/ldbl-96/e_gammal_r.c (gammal_positive): Take log
of X_ADJ not X when adjusting exponent.
(__ieee754_gammal_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed. Use 1.0L not 1.0f as numerator of division.
* math/libm-test.inc (tgamma_test_data): Remove one test. Moved
to auto-libm-test-in.
(tgamma_test): Use ALL_RM_TEST.
* math/auto-libm-test-in: Add one test of tgamma. Mark some other
tests of tgamma with spurious-overflow.
* math/auto-libm-test-out: Regenerated.
* math/gen-libm-have-vector-test.sh: Do not check for START.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-06-29 23:29:35 +00:00
|
|
|
tgamma 0x1p-1024 spurious-overflow:dbl-64 spurious-overflow:ldbl-128ibm
|
2013-12-05 13:54:50 +00:00
|
|
|
tgamma -0x1p-1024
|
|
|
|
tgamma 0x1p-1074
|
|
|
|
tgamma -0x1p-1074
|
|
|
|
tgamma 0x1p-16383
|
|
|
|
tgamma -0x1p-16383
|
Improve tgamma accuracy (bug 18613).
In non-default rounding modes, tgamma can be slightly less accurate
than permitted by glibc's accuracy goals.
Part of the problem is error accumulation, addressed in this patch by
setting round-to-nearest for internal computations. However, there
was also a bug in the code dealing with computing pow (x + n, x + n)
where x + n is not exactly representable, providing another source of
error even in round-to-nearest mode; it was necessary to address both
bugs to get errors for all testcases within glibc's accuracy goals.
Given this second fix, accuracy in round-to-nearest mode is also
improved (hence regeneration of ulps for tgamma should be from scratch
- truncate libm-test-ulps or at least remove existing tgamma entries -
so that the expected ulps can be reduced).
Some additional complications also arose. Certain tgamma tests should
strictly, according to IEEE semantics, overflow or not depending on
the rounding mode; this is beyond the scope of glibc's accuracy goals
for any function without exactly-determined results, but
gen-auto-libm-tests doesn't handle being lax there as it does for
underflow. (libm-test.inc also doesn't handle being lax about whether
the result in cases very close to the overflow threshold is infinity
or a finite value close to overflow, but that doesn't cause problems
in this case though I've seen it cause problems with random test
generation for some functions.) Thus, spurious-overflow markings,
with a comment, are added to auto-libm-test-in (no bug in Bugzilla
because the issue is with the testsuite, not a user-visible bug in
glibc). And on x86, after the patch I saw ERANGE issues as previously
reported by Carlos (see my commentary in
<https://sourceware.org/ml/libc-alpha/2015-01/msg00485.html>), which
needed addressing by ensuring excess range and precision were
eliminated at various points if FLT_EVAL_METHOD != 0.
I also noticed and fixed a cosmetic issue where 1.0f was used in long
double functions and should have been 1.0L.
This completes the move of all functions to testing in all rounding
modes with ALL_RM_TEST, so gen-libm-have-vector-test.sh is updated to
remove the workaround for some functions not using ALL_RM_TEST.
Tested for x86_64, x86, mips64 and powerpc.
[BZ #18613]
* sysdeps/ieee754/dbl-64/e_gamma_r.c (gamma_positive): Take log of
X_ADJ not X when adjusting exponent.
(__ieee754_gamma_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed.
* sysdeps/ieee754/flt-32/e_gammaf_r.c (gammaf_positive): Take log
of X_ADJ not X when adjusting exponent.
(__ieee754_gammaf_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed.
* sysdeps/ieee754/ldbl-128/e_gammal_r.c (gammal_positive): Take
log of X_ADJ not X when adjusting exponent.
(__ieee754_gammal_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed. Use 1.0L not 1.0f as numerator of division.
* sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c (gammal_positive): Take
log of X_ADJ not X when adjusting exponent.
(__ieee754_gammal_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed. Use 1.0L not 1.0f as numerator of division.
* sysdeps/ieee754/ldbl-96/e_gammal_r.c (gammal_positive): Take log
of X_ADJ not X when adjusting exponent.
(__ieee754_gammal_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed. Use 1.0L not 1.0f as numerator of division.
* math/libm-test.inc (tgamma_test_data): Remove one test. Moved
to auto-libm-test-in.
(tgamma_test): Use ALL_RM_TEST.
* math/auto-libm-test-in: Add one test of tgamma. Mark some other
tests of tgamma with spurious-overflow.
* math/auto-libm-test-out: Regenerated.
* math/gen-libm-have-vector-test.sh: Do not check for START.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-06-29 23:29:35 +00:00
|
|
|
tgamma 0x1p-16384 spurious-overflow:ldbl-96-intel spurious-overflow:ldbl-96-m68k spurious-overflow:ldbl-128
|
2013-12-05 13:54:50 +00:00
|
|
|
tgamma -0x1p-16384
|
|
|
|
tgamma 0x1p-16445
|
|
|
|
tgamma -0x1p-16445
|
|
|
|
tgamma 0x1p-16494
|
|
|
|
tgamma -0x1p-16494
|
|
|
|
tgamma 0x8.00001p0
|
|
|
|
tgamma 0x7.fffff8p0
|
|
|
|
tgamma 0x7.000008p0
|
|
|
|
tgamma 0x6.fffff8p0
|
|
|
|
tgamma 0x6.000008p0
|
|
|
|
tgamma 0x5.fffff8p0
|
|
|
|
tgamma 0x5.000008p0
|
|
|
|
tgamma 0x4.fffff8p0
|
|
|
|
tgamma 0x4.000008p0
|
|
|
|
tgamma 0x3.fffffcp0
|
|
|
|
tgamma 0x3.000004p0
|
|
|
|
tgamma 0x2.fffffcp0
|
|
|
|
tgamma 0x2.000004p0
|
|
|
|
tgamma 0x1.fffffep0
|
|
|
|
tgamma 0x1.000002p0
|
|
|
|
tgamma 0x0.ffffffp0
|
|
|
|
tgamma -0x0.ffffffp0
|
|
|
|
tgamma -0x1.000002p0
|
|
|
|
tgamma -0x1.fffffep0
|
|
|
|
tgamma -0x2.000004p0
|
|
|
|
tgamma -0x2.fffffcp0
|
|
|
|
tgamma -0x3.000004p0
|
|
|
|
tgamma -0x3.fffffcp0
|
|
|
|
tgamma -0x4.000008p0
|
|
|
|
tgamma -0x4.fffff8p0
|
|
|
|
tgamma -0x5.000008p0
|
|
|
|
tgamma -0x5.fffff8p0
|
|
|
|
tgamma -0x6.000008p0
|
|
|
|
tgamma -0x6.fffff8p0
|
|
|
|
tgamma -0x7.000008p0
|
|
|
|
tgamma -0x7.fffff8p0
|
|
|
|
tgamma -0x8.00001p0
|
|
|
|
tgamma -0x9.fffffp0
|
|
|
|
tgamma -0xa.00001p0
|
|
|
|
tgamma -0x13.ffffep0
|
|
|
|
tgamma -0x14.00002p0
|
|
|
|
tgamma -0x1d.ffffep0
|
|
|
|
tgamma -0x1e.00002p0
|
|
|
|
tgamma -0x27.ffffcp0
|
|
|
|
tgamma -0x28.00004p0
|
|
|
|
tgamma -0x28.ffffcp0
|
|
|
|
tgamma -0x29.00004p0
|
2013-12-05 14:01:41 +00:00
|
|
|
tgamma -0x29.ffffcp0
|
|
|
|
tgamma -0x2a.00004p0
|
2013-12-05 13:54:50 +00:00
|
|
|
tgamma 0x8.0000000000008p0
|
|
|
|
tgamma 0x7.ffffffffffffcp0
|
|
|
|
tgamma 0x7.0000000000004p0
|
|
|
|
tgamma 0x6.ffffffffffffcp0
|
|
|
|
tgamma 0x6.0000000000004p0
|
|
|
|
tgamma 0x5.ffffffffffffcp0
|
|
|
|
tgamma 0x5.0000000000004p0
|
|
|
|
tgamma 0x4.ffffffffffffcp0
|
|
|
|
tgamma 0x4.0000000000004p0
|
|
|
|
tgamma 0x3.ffffffffffffep0
|
|
|
|
tgamma 0x3.0000000000002p0
|
|
|
|
tgamma 0x2.ffffffffffffep0
|
|
|
|
tgamma 0x2.0000000000002p0
|
|
|
|
tgamma 0x1.fffffffffffffp0
|
|
|
|
tgamma 0x1.0000000000001p0
|
|
|
|
tgamma 0x0.fffffffffffff8p0
|
|
|
|
tgamma -0x0.fffffffffffff8p0
|
|
|
|
tgamma -0x1.0000000000001p0
|
|
|
|
tgamma -0x1.fffffffffffffp0
|
|
|
|
tgamma -0x2.0000000000002p0
|
|
|
|
tgamma -0x2.ffffffffffffep0
|
|
|
|
tgamma -0x3.0000000000002p0
|
|
|
|
tgamma -0x3.ffffffffffffep0
|
|
|
|
tgamma -0x4.0000000000004p0
|
|
|
|
tgamma -0x4.ffffffffffffcp0
|
|
|
|
tgamma -0x5.0000000000004p0
|
|
|
|
tgamma -0x5.ffffffffffffcp0
|
|
|
|
tgamma -0x6.0000000000004p0
|
|
|
|
tgamma -0x6.ffffffffffffcp0
|
|
|
|
tgamma -0x7.0000000000004p0
|
|
|
|
tgamma -0x7.ffffffffffffcp0
|
|
|
|
tgamma -0x8.0000000000008p0
|
|
|
|
tgamma -0x9.ffffffffffff8p0
|
|
|
|
tgamma -0xa.0000000000008p0
|
|
|
|
tgamma -0x13.ffffffffffffp0
|
|
|
|
tgamma -0x14.000000000001p0
|
|
|
|
tgamma -0x1d.ffffffffffffp0
|
|
|
|
tgamma -0x1e.000000000001p0
|
|
|
|
tgamma -0x27.fffffffffffep0
|
|
|
|
tgamma -0x28.000000000002p0
|
|
|
|
tgamma -0x28.fffffffffffep0
|
|
|
|
tgamma -0x29.000000000002p0
|
2013-12-05 14:01:41 +00:00
|
|
|
tgamma -0x29.fffffffffffep0
|
|
|
|
tgamma -0x2a.000000000002p0
|
|
|
|
tgamma -0x31.fffffffffffep0
|
|
|
|
tgamma -0x32.000000000002p0
|
|
|
|
tgamma -0x63.fffffffffffcp0
|
|
|
|
tgamma -0x64.000000000004p0
|
|
|
|
tgamma -0x95.fffffffffff8p0
|
|
|
|
tgamma -0x96.000000000008p0
|
|
|
|
tgamma -0xb4.fffffffffff8p0
|
|
|
|
tgamma -0xb5.000000000008p0
|
|
|
|
tgamma -0xb5.fffffffffff8p0
|
|
|
|
tgamma -0xb6.000000000008p0
|
|
|
|
tgamma -0xb6.fffffffffff8p0
|
|
|
|
tgamma -0xb7.000000000008p0
|
|
|
|
tgamma -0xb7.fffffffffff8p0
|
|
|
|
tgamma -0xb8.000000000008p0
|
2013-12-05 13:54:50 +00:00
|
|
|
tgamma 0x8.00000000000000000000000004p0
|
|
|
|
tgamma 0x7.fffffffffffffffffffffffffep0
|
|
|
|
tgamma 0x7.00000000000000000000000002p0
|
|
|
|
tgamma 0x6.fffffffffffffffffffffffffep0
|
|
|
|
tgamma 0x6.00000000000000000000000002p0
|
|
|
|
tgamma 0x5.fffffffffffffffffffffffffep0
|
|
|
|
tgamma 0x5.00000000000000000000000002p0
|
|
|
|
tgamma 0x4.fffffffffffffffffffffffffep0
|
|
|
|
tgamma 0x4.00000000000000000000000002p0
|
|
|
|
tgamma 0x3.ffffffffffffffffffffffffffp0
|
|
|
|
tgamma 0x3.00000000000000000000000001p0
|
|
|
|
tgamma 0x2.ffffffffffffffffffffffffffp0
|
|
|
|
tgamma 0x2.00000000000000000000000001p0
|
|
|
|
tgamma 0x1.ffffffffffffffffffffffffff8p0
|
|
|
|
tgamma 0x1.000000000000000000000000008p0
|
|
|
|
tgamma 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0x1.000000000000000000000000008p0
|
|
|
|
tgamma -0x1.ffffffffffffffffffffffffff8p0
|
|
|
|
tgamma -0x2.00000000000000000000000001p0
|
|
|
|
tgamma -0x2.ffffffffffffffffffffffffffp0
|
|
|
|
tgamma -0x3.00000000000000000000000001p0
|
|
|
|
tgamma -0x3.ffffffffffffffffffffffffffp0
|
|
|
|
tgamma -0x4.00000000000000000000000002p0
|
|
|
|
tgamma -0x4.fffffffffffffffffffffffffep0
|
|
|
|
tgamma -0x5.00000000000000000000000002p0
|
|
|
|
tgamma -0x5.fffffffffffffffffffffffffep0
|
|
|
|
tgamma -0x6.00000000000000000000000002p0
|
|
|
|
tgamma -0x6.fffffffffffffffffffffffffep0
|
|
|
|
tgamma -0x7.00000000000000000000000002p0
|
|
|
|
tgamma -0x7.fffffffffffffffffffffffffep0
|
|
|
|
tgamma -0x8.00000000000000000000000004p0
|
|
|
|
tgamma -0x9.fffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0xa.00000000000000000000000004p0
|
|
|
|
tgamma -0x13.fffffffffffffffffffffffff8p0
|
|
|
|
tgamma -0x14.00000000000000000000000008p0
|
|
|
|
tgamma -0x1d.fffffffffffffffffffffffff8p0
|
|
|
|
tgamma -0x1e.00000000000000000000000008p0
|
|
|
|
tgamma -0x27.fffffffffffffffffffffffffp0
|
|
|
|
tgamma -0x28.0000000000000000000000001p0
|
|
|
|
tgamma -0x28.fffffffffffffffffffffffffp0
|
|
|
|
tgamma -0x29.0000000000000000000000001p0
|
2013-12-05 14:01:41 +00:00
|
|
|
tgamma -0x29.fffffffffffffffffffffffffp0
|
|
|
|
tgamma -0x2a.0000000000000000000000001p0
|
|
|
|
tgamma -0x31.fffffffffffffffffffffffffp0
|
|
|
|
tgamma -0x32.0000000000000000000000001p0
|
|
|
|
tgamma -0x63.ffffffffffffffffffffffffep0
|
|
|
|
tgamma -0x64.0000000000000000000000002p0
|
|
|
|
tgamma -0x95.ffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0x96.0000000000000000000000004p0
|
|
|
|
tgamma -0xb4.ffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0xb5.0000000000000000000000004p0
|
|
|
|
tgamma -0xb5.ffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0xb6.0000000000000000000000004p0
|
|
|
|
tgamma -0xb6.ffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0xb7.0000000000000000000000004p0
|
|
|
|
tgamma -0xb7.ffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0xb8.0000000000000000000000004p0
|
|
|
|
tgamma -0xbb.ffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0xbc.0000000000000000000000004p0
|
|
|
|
tgamma -0xbc.ffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0xbd.0000000000000000000000004p0
|
|
|
|
tgamma -0xbd.ffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0xbe.0000000000000000000000004p0
|
|
|
|
tgamma -0xbe.ffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0xbf.0000000000000000000000004p0
|
2013-12-05 13:54:50 +00:00
|
|
|
tgamma 0x8.000000000000001p0
|
|
|
|
tgamma 0x7.fffffffffffffff8p0
|
|
|
|
tgamma 0x7.0000000000000008p0
|
|
|
|
tgamma 0x6.fffffffffffffff8p0
|
|
|
|
tgamma 0x6.0000000000000008p0
|
|
|
|
tgamma 0x5.fffffffffffffff8p0
|
|
|
|
tgamma 0x5.0000000000000008p0
|
|
|
|
tgamma 0x4.fffffffffffffff8p0
|
|
|
|
tgamma 0x4.0000000000000008p0
|
|
|
|
tgamma 0x3.fffffffffffffffcp0
|
|
|
|
tgamma 0x3.0000000000000004p0
|
|
|
|
tgamma 0x2.fffffffffffffffcp0
|
|
|
|
tgamma 0x2.0000000000000004p0
|
|
|
|
tgamma 0x1.fffffffffffffffep0
|
|
|
|
tgamma 0x1.0000000000000002p0
|
|
|
|
tgamma 0x0.ffffffffffffffffp0
|
|
|
|
tgamma -0x0.ffffffffffffffffp0
|
|
|
|
tgamma -0x1.0000000000000002p0
|
|
|
|
tgamma -0x1.fffffffffffffffep0
|
|
|
|
tgamma -0x2.0000000000000004p0
|
|
|
|
tgamma -0x2.fffffffffffffffcp0
|
|
|
|
tgamma -0x3.0000000000000004p0
|
|
|
|
tgamma -0x3.fffffffffffffffcp0
|
|
|
|
tgamma -0x4.0000000000000008p0
|
|
|
|
tgamma -0x4.fffffffffffffff8p0
|
|
|
|
tgamma -0x5.0000000000000008p0
|
|
|
|
tgamma -0x5.fffffffffffffff8p0
|
|
|
|
tgamma -0x6.0000000000000008p0
|
|
|
|
tgamma -0x6.fffffffffffffff8p0
|
|
|
|
tgamma -0x7.0000000000000008p0
|
|
|
|
tgamma -0x7.fffffffffffffff8p0
|
|
|
|
tgamma -0x8.000000000000001p0
|
|
|
|
tgamma -0x9.fffffffffffffffp0
|
|
|
|
tgamma -0xa.000000000000001p0
|
|
|
|
tgamma -0x13.ffffffffffffffep0
|
|
|
|
tgamma -0x14.000000000000002p0
|
|
|
|
tgamma -0x1d.ffffffffffffffep0
|
|
|
|
tgamma -0x1e.000000000000002p0
|
|
|
|
tgamma -0x27.ffffffffffffffcp0
|
|
|
|
tgamma -0x28.000000000000004p0
|
|
|
|
tgamma -0x28.ffffffffffffffcp0
|
|
|
|
tgamma -0x29.000000000000004p0
|
2013-12-05 14:01:41 +00:00
|
|
|
tgamma -0x29.ffffffffffffffcp0
|
|
|
|
tgamma -0x2a.000000000000004p0
|
|
|
|
tgamma -0x31.ffffffffffffffcp0
|
|
|
|
tgamma -0x32.000000000000004p0
|
|
|
|
tgamma -0x63.ffffffffffffff8p0
|
|
|
|
tgamma -0x64.000000000000008p0
|
|
|
|
tgamma -0x95.ffffffffffffffp0
|
|
|
|
tgamma -0x96.00000000000001p0
|
|
|
|
tgamma -0xb4.ffffffffffffffp0
|
|
|
|
tgamma -0xb5.00000000000001p0
|
|
|
|
tgamma -0xb5.ffffffffffffffp0
|
|
|
|
tgamma -0xb6.00000000000001p0
|
|
|
|
tgamma -0xb6.ffffffffffffffp0
|
|
|
|
tgamma -0xb7.00000000000001p0
|
|
|
|
tgamma -0xb7.ffffffffffffffp0
|
|
|
|
tgamma -0xb8.00000000000001p0
|
|
|
|
tgamma -0xbb.ffffffffffffffp0
|
|
|
|
tgamma -0xbc.00000000000001p0
|
|
|
|
tgamma -0xbc.ffffffffffffffp0
|
|
|
|
tgamma -0xbd.00000000000001p0
|
|
|
|
tgamma -0xbd.ffffffffffffffp0
|
|
|
|
tgamma -0xbe.00000000000001p0
|
|
|
|
tgamma -0xbe.ffffffffffffffp0
|
|
|
|
tgamma -0xbf.00000000000001p0
|
|
|
|
tgamma -0xf9.ffffffffffffffp0
|
|
|
|
tgamma -0xfa.00000000000001p0
|
|
|
|
tgamma -0x1f3.fffffffffffffep0
|
|
|
|
tgamma -0x1f4.00000000000002p0
|
|
|
|
tgamma -0x2ed.fffffffffffffcp0
|
|
|
|
tgamma -0x2ee.00000000000004p0
|
|
|
|
tgamma -0x3e7.fffffffffffffcp0
|
|
|
|
tgamma -0x3e8.00000000000004p0
|
|
|
|
tgamma -0x4e1.fffffffffffff8p0
|
|
|
|
tgamma -0x4e2.00000000000008p0
|
|
|
|
tgamma -0x5db.fffffffffffff8p0
|
|
|
|
tgamma -0x5dc.00000000000008p0
|
|
|
|
tgamma -0x6d5.fffffffffffff8p0
|
|
|
|
tgamma -0x6d6.00000000000008p0
|
|
|
|
tgamma -0x6e2.fffffffffffff8p0
|
|
|
|
tgamma -0x6e3.00000000000008p0
|
|
|
|
tgamma -0x6e3.fffffffffffff8p0
|
|
|
|
tgamma -0x6e4.00000000000008p0
|
|
|
|
tgamma -0x6e4.fffffffffffff8p0
|
|
|
|
tgamma -0x6e5.00000000000008p0
|
|
|
|
tgamma -0x6e5.fffffffffffff8p0
|
|
|
|
tgamma -0x6e6.00000000000008p0
|
2013-12-05 13:54:50 +00:00
|
|
|
tgamma 0x8.0000000000000000000000000008p0
|
|
|
|
tgamma 0x7.fffffffffffffffffffffffffffcp0
|
|
|
|
tgamma 0x7.0000000000000000000000000004p0
|
|
|
|
tgamma 0x6.fffffffffffffffffffffffffffcp0
|
|
|
|
tgamma 0x6.0000000000000000000000000004p0
|
|
|
|
tgamma 0x5.fffffffffffffffffffffffffffcp0
|
|
|
|
tgamma 0x5.0000000000000000000000000004p0
|
|
|
|
tgamma 0x4.fffffffffffffffffffffffffffcp0
|
|
|
|
tgamma 0x4.0000000000000000000000000004p0
|
|
|
|
tgamma 0x3.fffffffffffffffffffffffffffep0
|
|
|
|
tgamma 0x3.0000000000000000000000000002p0
|
|
|
|
tgamma 0x2.fffffffffffffffffffffffffffep0
|
|
|
|
tgamma 0x2.0000000000000000000000000002p0
|
|
|
|
tgamma 0x1.ffffffffffffffffffffffffffffp0
|
|
|
|
tgamma 0x1.0000000000000000000000000001p0
|
|
|
|
tgamma 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
tgamma -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
tgamma -0x1.0000000000000000000000000001p0
|
|
|
|
tgamma -0x1.ffffffffffffffffffffffffffffp0
|
|
|
|
tgamma -0x2.0000000000000000000000000002p0
|
|
|
|
tgamma -0x2.fffffffffffffffffffffffffffep0
|
|
|
|
tgamma -0x3.0000000000000000000000000002p0
|
|
|
|
tgamma -0x3.fffffffffffffffffffffffffffep0
|
|
|
|
tgamma -0x4.0000000000000000000000000004p0
|
|
|
|
tgamma -0x4.fffffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0x5.0000000000000000000000000004p0
|
|
|
|
tgamma -0x5.fffffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0x6.0000000000000000000000000004p0
|
|
|
|
tgamma -0x6.fffffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0x7.0000000000000000000000000004p0
|
|
|
|
tgamma -0x7.fffffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0x8.0000000000000000000000000008p0
|
|
|
|
tgamma -0x9.fffffffffffffffffffffffffff8p0
|
|
|
|
tgamma -0xa.0000000000000000000000000008p0
|
|
|
|
tgamma -0x13.fffffffffffffffffffffffffffp0
|
|
|
|
tgamma -0x14.000000000000000000000000001p0
|
|
|
|
tgamma -0x1d.fffffffffffffffffffffffffffp0
|
|
|
|
tgamma -0x1e.000000000000000000000000001p0
|
|
|
|
tgamma -0x27.ffffffffffffffffffffffffffep0
|
|
|
|
tgamma -0x28.000000000000000000000000002p0
|
|
|
|
tgamma -0x28.ffffffffffffffffffffffffffep0
|
|
|
|
tgamma -0x29.000000000000000000000000002p0
|
2013-12-05 14:01:41 +00:00
|
|
|
tgamma -0x29.ffffffffffffffffffffffffffep0
|
|
|
|
tgamma -0x2a.000000000000000000000000002p0
|
|
|
|
tgamma -0x31.ffffffffffffffffffffffffffep0
|
|
|
|
tgamma -0x32.000000000000000000000000002p0
|
|
|
|
tgamma -0x63.ffffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0x64.000000000000000000000000004p0
|
|
|
|
tgamma -0x95.ffffffffffffffffffffffffff8p0
|
|
|
|
tgamma -0x96.000000000000000000000000008p0
|
|
|
|
tgamma -0xb4.ffffffffffffffffffffffffff8p0
|
|
|
|
tgamma -0xb5.000000000000000000000000008p0
|
|
|
|
tgamma -0xb5.ffffffffffffffffffffffffff8p0
|
|
|
|
tgamma -0xb6.000000000000000000000000008p0
|
|
|
|
tgamma -0xb6.ffffffffffffffffffffffffff8p0
|
|
|
|
tgamma -0xb7.000000000000000000000000008p0
|
|
|
|
tgamma -0xb7.ffffffffffffffffffffffffff8p0
|
|
|
|
tgamma -0xb8.000000000000000000000000008p0
|
|
|
|
tgamma -0xbb.ffffffffffffffffffffffffff8p0
|
|
|
|
tgamma -0xbc.000000000000000000000000008p0
|
|
|
|
tgamma -0xbc.ffffffffffffffffffffffffff8p0
|
|
|
|
tgamma -0xbd.000000000000000000000000008p0
|
|
|
|
tgamma -0xbd.ffffffffffffffffffffffffff8p0
|
|
|
|
tgamma -0xbe.000000000000000000000000008p0
|
|
|
|
tgamma -0xbe.ffffffffffffffffffffffffff8p0
|
|
|
|
tgamma -0xbf.000000000000000000000000008p0
|
|
|
|
tgamma -0xf9.ffffffffffffffffffffffffff8p0
|
|
|
|
tgamma -0xfa.000000000000000000000000008p0
|
|
|
|
tgamma -0x1f3.ffffffffffffffffffffffffffp0
|
|
|
|
tgamma -0x1f4.00000000000000000000000001p0
|
|
|
|
tgamma -0x2ed.fffffffffffffffffffffffffep0
|
|
|
|
tgamma -0x2ee.00000000000000000000000002p0
|
|
|
|
tgamma -0x3e7.fffffffffffffffffffffffffep0
|
|
|
|
tgamma -0x3e8.00000000000000000000000002p0
|
|
|
|
tgamma -0x4e1.fffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0x4e2.00000000000000000000000004p0
|
|
|
|
tgamma -0x5db.fffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0x5dc.00000000000000000000000004p0
|
|
|
|
tgamma -0x6d5.fffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0x6d6.00000000000000000000000004p0
|
|
|
|
tgamma -0x6e2.fffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0x6e3.00000000000000000000000004p0
|
|
|
|
tgamma -0x6e3.fffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0x6e4.00000000000000000000000004p0
|
|
|
|
tgamma -0x6e4.fffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0x6e5.00000000000000000000000004p0
|
|
|
|
tgamma -0x6e5.fffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0x6e6.00000000000000000000000004p0
|
|
|
|
tgamma -0x6eb.fffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0x6ec.00000000000000000000000004p0
|
|
|
|
tgamma -0x6ec.fffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0x6ed.00000000000000000000000004p0
|
|
|
|
tgamma -0x6ed.fffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0x6ee.00000000000000000000000004p0
|
|
|
|
tgamma -0x6ee.fffffffffffffffffffffffffcp0
|
|
|
|
tgamma -0x6ef.00000000000000000000000004p0
|
2013-12-05 13:54:50 +00:00
|
|
|
tgamma -0x1.0a32a2p+5
|
2013-12-05 14:01:41 +00:00
|
|
|
tgamma -0x1.5800000080001p+7
|
2013-12-05 13:54:50 +00:00
|
|
|
tgamma 18.5
|
|
|
|
tgamma 19.5
|
|
|
|
tgamma 23.5
|
|
|
|
tgamma 29.5
|
|
|
|
tgamma 30.5
|
|
|
|
tgamma 31.5
|
|
|
|
tgamma 32.5
|
|
|
|
tgamma 33.5
|
|
|
|
tgamma 34.5
|
|
|
|
tgamma 0x2.30a43cp+4
|
|
|
|
tgamma 0x2.30a44p+4
|
|
|
|
tgamma 0xa.b9fd72b0fb238p+4
|
|
|
|
tgamma 0xa.b9fd72b0fb24p+4
|
|
|
|
tgamma 0xa.b9fd72b0fb23a9ddbf0d3804f4p+4
|
|
|
|
tgamma 0xa.b9fd72b0fb23a9ddbf0d3804f8p+4
|
|
|
|
tgamma 0x6.db8c603359a97108p+8
|
|
|
|
tgamma 0x6.db8c603359a9711p+8
|
|
|
|
tgamma 0x6.db8c603359a971081bc4a2e9dfdp+8
|
|
|
|
tgamma 0x6.db8c603359a971081bc4a2e9dfd4p+8
|
2013-12-05 14:01:41 +00:00
|
|
|
tgamma 1e3
|
|
|
|
tgamma -100000.5
|
Improve tgamma accuracy (bug 18613).
In non-default rounding modes, tgamma can be slightly less accurate
than permitted by glibc's accuracy goals.
Part of the problem is error accumulation, addressed in this patch by
setting round-to-nearest for internal computations. However, there
was also a bug in the code dealing with computing pow (x + n, x + n)
where x + n is not exactly representable, providing another source of
error even in round-to-nearest mode; it was necessary to address both
bugs to get errors for all testcases within glibc's accuracy goals.
Given this second fix, accuracy in round-to-nearest mode is also
improved (hence regeneration of ulps for tgamma should be from scratch
- truncate libm-test-ulps or at least remove existing tgamma entries -
so that the expected ulps can be reduced).
Some additional complications also arose. Certain tgamma tests should
strictly, according to IEEE semantics, overflow or not depending on
the rounding mode; this is beyond the scope of glibc's accuracy goals
for any function without exactly-determined results, but
gen-auto-libm-tests doesn't handle being lax there as it does for
underflow. (libm-test.inc also doesn't handle being lax about whether
the result in cases very close to the overflow threshold is infinity
or a finite value close to overflow, but that doesn't cause problems
in this case though I've seen it cause problems with random test
generation for some functions.) Thus, spurious-overflow markings,
with a comment, are added to auto-libm-test-in (no bug in Bugzilla
because the issue is with the testsuite, not a user-visible bug in
glibc). And on x86, after the patch I saw ERANGE issues as previously
reported by Carlos (see my commentary in
<https://sourceware.org/ml/libc-alpha/2015-01/msg00485.html>), which
needed addressing by ensuring excess range and precision were
eliminated at various points if FLT_EVAL_METHOD != 0.
I also noticed and fixed a cosmetic issue where 1.0f was used in long
double functions and should have been 1.0L.
This completes the move of all functions to testing in all rounding
modes with ALL_RM_TEST, so gen-libm-have-vector-test.sh is updated to
remove the workaround for some functions not using ALL_RM_TEST.
Tested for x86_64, x86, mips64 and powerpc.
[BZ #18613]
* sysdeps/ieee754/dbl-64/e_gamma_r.c (gamma_positive): Take log of
X_ADJ not X when adjusting exponent.
(__ieee754_gamma_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed.
* sysdeps/ieee754/flt-32/e_gammaf_r.c (gammaf_positive): Take log
of X_ADJ not X when adjusting exponent.
(__ieee754_gammaf_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed.
* sysdeps/ieee754/ldbl-128/e_gammal_r.c (gammal_positive): Take
log of X_ADJ not X when adjusting exponent.
(__ieee754_gammal_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed. Use 1.0L not 1.0f as numerator of division.
* sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c (gammal_positive): Take
log of X_ADJ not X when adjusting exponent.
(__ieee754_gammal_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed. Use 1.0L not 1.0f as numerator of division.
* sysdeps/ieee754/ldbl-96/e_gammal_r.c (gammal_positive): Take log
of X_ADJ not X when adjusting exponent.
(__ieee754_gammal_r): Do intermediate computations in
round-to-nearest then adjust overflowing and underflowing results
as needed. Use 1.0L not 1.0f as numerator of division.
* math/libm-test.inc (tgamma_test_data): Remove one test. Moved
to auto-libm-test-in.
(tgamma_test): Use ALL_RM_TEST.
* math/auto-libm-test-in: Add one test of tgamma. Mark some other
tests of tgamma with spurious-overflow.
* math/auto-libm-test-out: Regenerated.
* math/gen-libm-have-vector-test.sh: Do not check for START.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-06-29 23:29:35 +00:00
|
|
|
tgamma max
|
2013-12-05 13:54:50 +00:00
|
|
|
|
2015-05-01 23:15:07 +00:00
|
|
|
tgamma -0x3.06644cp+0
|
|
|
|
tgamma -0x6.fe4636e0c5064p+0
|
|
|
|
tgamma -0x7.a13d7a2945cd5718p+0
|
Add more tests of libm functions.
This patch adds more randomly-generated tests of various libm
functions that are observed to increase ulps on x86_64.
Tested for x86_64 and x86 and ulps updated accordingly.
* math/auto-libm-test-in: Add more tests of atan, clog, clog10,
cos, csqrt, erf, erfc, exp2, lgamma, log1p, sin, sincos, tanh and
tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-05-02 21:06:33 +00:00
|
|
|
tgamma -0x1.4a5caap+4
|
Add more tests of various libm functions.
This patch adds more tests of various libm functions found through
random test generation to give increased ulps on 32-bit x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acosh, asin, asinh,
atanh, cabs, carg, cbrt, cosh, csqrt, erf, erfc, exp, exp10,
expm1, hypot, log, log10, log1p, log2, pow, sinh, tan and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-11 00:58:28 +00:00
|
|
|
tgamma -0x9.2d3a5p+0
|
|
|
|
tgamma -0xb.0f63ep+0
|
|
|
|
tgamma -0x5.f0e02p+8
|
Add more random libm-test inputs.
This patch adds more test inputs to various libm functions found
through random generation to have larger ulps errors than previously
listed in libm-test-ulp, on at least one of x86_64 and x86.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, cbrt, cosh, csqrt, erf, erfc,
exp, exp2, lgamma, log, log1p, log2, pow, sin, sincos, tan, tanh
and tgamma.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-08-13 23:23:23 +00:00
|
|
|
tgamma -0xb.3123bp+0
|
|
|
|
tgamma -0x9.6d538p+0
|
|
|
|
tgamma -0xc.c2439p+0
|
|
|
|
tgamma -0xc.372f043322128p+0
|
|
|
|
tgamma -0xa.ccfcep+0
|
|
|
|
tgamma -0x9.418c8p+0
|
|
|
|
tgamma -0x6.ce9158p+0
|
|
|
|
tgamma -0xd.cbf53d0e7d06p+0
|
2015-05-01 23:15:07 +00:00
|
|
|
|
2013-12-05 13:54:50 +00:00
|
|
|
y0 0.125
|
|
|
|
y0 0.75
|
|
|
|
y0 1.0
|
|
|
|
y0 1.5
|
|
|
|
y0 2.0
|
|
|
|
y0 8.0
|
|
|
|
y0 10.0
|
|
|
|
y0 0x1.3ffp+74
|
|
|
|
y0 0x1.ff00000000002p+840
|
|
|
|
y0 0x1p1023
|
|
|
|
y0 0x1p16382
|
|
|
|
y0 0x1p16383
|
|
|
|
y0 0x1p-10
|
|
|
|
y0 0x1p-20
|
|
|
|
y0 0x1p-30
|
|
|
|
y0 0x1p-40
|
|
|
|
y0 0x1p-50
|
|
|
|
y0 0x1p-60
|
|
|
|
y0 0x1p-70
|
|
|
|
y0 0x1p-80
|
|
|
|
y0 0x1p-90
|
|
|
|
y0 0x1p-100
|
|
|
|
y0 0x1p-110
|
2014-06-23 20:17:13 +00:00
|
|
|
y0 min
|
|
|
|
y0 min_subnorm
|
2013-12-05 13:54:50 +00:00
|
|
|
|
|
|
|
y1 0.125
|
|
|
|
y1 0.75
|
|
|
|
y1 1.0
|
|
|
|
y1 1.5
|
|
|
|
y1 2.0
|
|
|
|
y1 8.0
|
|
|
|
y1 10.0
|
|
|
|
y1 0x1.27e204p+99
|
|
|
|
y1 0x1.001000001p+593
|
|
|
|
y1 0x1p1023
|
|
|
|
y1 0x1p16382
|
|
|
|
y1 0x1p16383
|
|
|
|
y1 0x1p-10
|
|
|
|
y1 0x1p-20
|
|
|
|
y1 0x1p-30
|
|
|
|
y1 0x1p-40
|
|
|
|
y1 0x1p-50
|
|
|
|
y1 0x1p-60
|
|
|
|
y1 0x1p-70
|
|
|
|
y1 0x1p-80
|
|
|
|
y1 0x1p-90
|
|
|
|
y1 0x1p-100
|
|
|
|
y1 0x1p-110
|
2014-06-23 20:17:13 +00:00
|
|
|
y1 min
|
|
|
|
y1 min_subnorm
|
2013-12-18 17:59:29 +00:00
|
|
|
|
|
|
|
# yn (0, x) == y0 (x).
|
|
|
|
yn 0 0.125
|
|
|
|
yn 0 0.75
|
|
|
|
yn 0 1.0
|
|
|
|
yn 0 1.5
|
|
|
|
yn 0 2.0
|
|
|
|
yn 0 8.0
|
|
|
|
yn 0 10.0
|
|
|
|
|
|
|
|
# yn (1, x) == y1 (x).
|
|
|
|
yn 1 0.125
|
|
|
|
yn 1 0.75
|
|
|
|
yn 1 1.0
|
|
|
|
yn 1 1.5
|
|
|
|
yn 1 2.0
|
|
|
|
yn 1 8.0
|
|
|
|
yn 1 10.0
|
|
|
|
|
|
|
|
# yn (-1, x) == -y1 (x).
|
|
|
|
yn -1 1.0
|
|
|
|
|
|
|
|
# yn (3, x).
|
|
|
|
yn 3 0.125
|
|
|
|
yn 3 0.75
|
|
|
|
yn 3 1.0
|
|
|
|
yn 3 2.0
|
|
|
|
yn 3 10.0
|
|
|
|
|
|
|
|
# yn (10, x).
|
|
|
|
yn 10 0.125
|
|
|
|
yn 10 0.75
|
|
|
|
yn 10 1.0
|
|
|
|
yn 10 2.0
|
|
|
|
yn 10 10.0
|
|
|
|
|
|
|
|
yn -10 1.0
|
|
|
|
|
|
|
|
yn 10 min
|
|
|
|
|
|
|
|
yn 2 0x1.ffff62p+99
|
|
|
|
yn 2 0x1p127
|
|
|
|
yn 2 0x1p1023
|
|
|
|
yn 2 0x1p16383
|
2014-06-23 20:17:13 +00:00
|
|
|
|
|
|
|
yn 0 min
|
|
|
|
yn 0 min_subnorm
|
|
|
|
yn 1 min
|
|
|
|
yn 1 min_subnorm
|
|
|
|
yn -1 min
|
|
|
|
yn -1 min_subnorm
|
|
|
|
yn 2 min
|
|
|
|
yn 2 min_subnorm
|
|
|
|
yn -2 min
|
|
|
|
yn -2 min_subnorm
|
|
|
|
yn 17 min
|
|
|
|
yn 17 min_subnorm
|
|
|
|
yn -17 min
|
|
|
|
yn -17 min_subnorm
|
|
|
|
yn 42 min
|
|
|
|
yn 42 min_subnorm
|
|
|
|
yn -42 min
|
|
|
|
yn -42 min_subnorm
|