2013-11-29 16:27:55 +00:00
|
|
|
# libm test inputs for gen-auto-libm-tests.c.
|
2024-01-01 18:12:26 +00:00
|
|
|
# Copyright (C) 1997-2024 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
|
Prefer https to http for gnu.org and fsf.org URLs
Also, change sources.redhat.com to sourceware.org.
This patch was automatically generated by running the following shell
script, which uses GNU sed, and which avoids modifying files imported
from upstream:
sed -ri '
s,(http|ftp)(://(.*\.)?(gnu|fsf|sourceware)\.org($|[^.]|\.[^a-z])),https\2,g
s,(http|ftp)(://(.*\.)?)sources\.redhat\.com($|[^.]|\.[^a-z]),https\2sourceware.org\4,g
' \
$(find $(git ls-files) -prune -type f \
! -name '*.po' \
! -name 'ChangeLog*' \
! -path COPYING ! -path COPYING.LIB \
! -path manual/fdl-1.3.texi ! -path manual/lgpl-2.1.texi \
! -path manual/texinfo.tex ! -path scripts/config.guess \
! -path scripts/config.sub ! -path scripts/install-sh \
! -path scripts/mkinstalldirs ! -path scripts/move-if-change \
! -path INSTALL ! -path locale/programs/charmap-kw.h \
! -path po/libc.pot ! -path sysdeps/gnu/errlist.c \
! '(' -name configure \
-execdir test -f configure.ac -o -f configure.in ';' ')' \
! '(' -name preconfigure \
-execdir test -f preconfigure.ac ';' ')' \
-print)
and then by running 'make dist-prepare' to regenerate files built
from the altered files, and then executing the following to cleanup:
chmod a+x sysdeps/unix/sysv/linux/riscv/configure
# Omit irrelevant whitespace and comment-only changes,
# perhaps from a slightly-different Autoconf version.
git checkout -f \
sysdeps/csky/configure \
sysdeps/hppa/configure \
sysdeps/riscv/configure \
sysdeps/unix/sysv/linux/csky/configure
# Omit changes that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/powerpc/powerpc64/ppc-mcount.S: trailing lines
git checkout -f \
sysdeps/powerpc/powerpc64/ppc-mcount.S \
sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
# Omit change that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S: last line does not end in newline
git checkout -f sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
2019-09-07 05:40:42 +00:00
|
|
|
# <https://www.gnu.org/licenses/>. */
|
2013-11-29 16:27:55 +00:00
|
|
|
|
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
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
acos 0x0.fffffffffffff8p0
|
|
|
|
acos -0x0.fffffffffffff8p0
|
2013-11-30 22:04:13 +00:00
|
|
|
acos 0x0.ffffffffffffffffp0
|
|
|
|
acos -0x0.ffffffffffffffffp0
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
acos 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
acos -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
acos 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
acos -0x0.ffffffffffffffffffffffffffff8p0
|
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 random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
acos -0x1.da00d8p-4
|
2021-02-26 07:00:03 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary64)
|
|
|
|
acos 0x1.fffff3634acd6p-1
|
|
|
|
# the next value generates larger error bounds on x86_64 (ldbl-96)
|
|
|
|
acos 0xf.fe00271d507ee5dp-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
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
acosh 0x1.000002p0
|
2020-03-17 18:46:29 +00:00
|
|
|
acosh 0x1.0000000000001p0
|
|
|
|
acosh 0x1.0000000000000002p0
|
|
|
|
acosh 0x1.000000000000000000000000008p0
|
|
|
|
acosh 0x1.0000000000000000000000000001p0
|
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 random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
acosh 0x1.1808eep+0
|
|
|
|
acosh 0x1.1052c4p+0
|
2021-02-26 07:00:03 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (ldbl-96)
|
|
|
|
acosh 0x1.1ecbdf374bce01cap+0
|
|
|
|
# the next value generates larger error bounds on x86_64 (binary128)
|
|
|
|
acosh 0x1.0f97586eba090200118df0902f99p+0
|
2020-03-17 18:46:29 +00:00
|
|
|
acosh max
|
2013-11-30 22:04:13 +00:00
|
|
|
|
Add narrowing add functions.
This patch adds the narrowing add functions from TS 18661-1 to glibc's
libm: fadd, faddl, daddl, f32addf64, f32addf32x, f32xaddf64 for all
configurations; f32addf64x, f32addf128, f64addf64x, f64addf128,
f32xaddf64x, f32xaddf128, f64xaddf128 for configurations with
_Float64x and _Float128; __nldbl_daddl for ldbl-opt. As discussed for
the build infrastructure patch, tgmath.h support is deliberately
deferred, and FP_FAST_* macros are not applicable without optimized
function implementations.
Function implementations are added for all relevant pairs of formats
(including certain cases of a format and itself where more than one
type has that format). The main implementations use round-to-odd, or
a trivial computation in the case where both formats are the same or
where the wider format is IBM long double (in which case we don't
attempt to be correctly rounding). The sysdeps/ieee754/soft-fp
implementations use soft-fp, and are used automatically for
configurations without exceptions and rounding modes by virtue of
existing Implies files. As previously discussed, optimized versions
for particular architectures are possible, but not included.
i386 gets a special version of f32xaddf64 to avoid problems with
double rounding (similar to the existing fdim version), since this
function must round just once without an intermediate rounding to long
double. (No such special version is needed for any other function,
because the nontrivial functions use round-to-odd, which does the
intermediate computation with the rounding mode set to round-to-zero,
and double rounding is OK except in round-to-nearest mode, so is OK
for that intermediate round-to-zero computation.) mul and div will
need slightly different special versions for i386 (using round-to-odd
on long double instead of precision control) because of the
possibility of inexact intermediate results in the subnormal range for
double.
To reduce duplication among the different function implementations,
math-narrow.h gets macros CHECK_NARROW_ADD, NARROW_ADD_ROUND_TO_ODD
and NARROW_ADD_TRIVIAL.
In the trivial cases and for any architecture-specific optimized
implementations, the overhead of the errno setting might be
significant, but I think that's best handled through compiler built-in
functions rather than providing separate no-errno versions in glibc
(and likewise there are no __*_finite entry points for these function
provided, __*_finite effectively being no-errno versions at present in
most cases).
Tested for x86_64 and x86, with both GCC 6 and GCC 7. Tested for
mips64 (all three ABIs, both hard and soft float) and powerpc with GCC
7. Tested with build-many-glibcs.py with both GCC 6 and GCC 7.
* math/Makefile (libm-narrow-fns): Add add.
(libm-test-funcs-narrow): Likewise.
* math/Versions (GLIBC_2.28): Add narrowing add functions.
* math/bits/mathcalls-narrow.h (add): Use __MATHCALL_NARROW .
* math/gen-auto-libm-tests.c (test_functions): Add add.
* math/math-narrow.h (CHECK_NARROW_ADD): New macro.
(NARROW_ADD_ROUND_TO_ODD): Likewise.
(NARROW_ADD_TRIVIAL): Likewise.
* sysdeps/ieee754/float128/float128_private.h (__faddl): New
macro.
(__daddl): Likewise.
* sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add fadd and
dadd.
(CFLAGS-nldbl-dadd.c): New variable.
(CFLAGS-nldbl-fadd.c): Likewise.
* sysdeps/ieee754/ldbl-opt/Versions (GLIBC_2.28): Add
__nldbl_daddl.
* sysdeps/ieee754/ldbl-opt/nldbl-compat.h (__nldbl_daddl): New
prototype.
* manual/arith.texi (Misc FP Arithmetic): Document fadd, faddl,
daddl, fMaddfN, fMaddfNx, fMxaddfN and fMxaddfNx.
* math/auto-libm-test-in: Add tests of add.
* math/auto-libm-test-out-narrow-add: New generated file.
* math/libm-test-narrow-add.inc: New file.
* sysdeps/i386/fpu/s_f32xaddf64.c: Likewise.
* sysdeps/ieee754/dbl-64/s_f32xaddf64.c: Likewise.
* sysdeps/ieee754/dbl-64/s_fadd.c: Likewise.
* sysdeps/ieee754/float128/s_f32addf128.c: Likewise.
* sysdeps/ieee754/float128/s_f64addf128.c: Likewise.
* sysdeps/ieee754/float128/s_f64xaddf128.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_daddl.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_f64xaddf128.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_faddl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/s_daddl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/s_faddl.c: Likewise.
* sysdeps/ieee754/ldbl-96/s_daddl.c: Likewise.
* sysdeps/ieee754/ldbl-96/s_faddl.c: Likewise.
* sysdeps/ieee754/ldbl-opt/nldbl-dadd.c: Likewise.
* sysdeps/ieee754/ldbl-opt/nldbl-fadd.c: Likewise.
* sysdeps/ieee754/soft-fp/s_daddl.c: Likewise.
* sysdeps/ieee754/soft-fp/s_fadd.c: Likewise.
* sysdeps/ieee754/soft-fp/s_faddl.c: Likewise.
* sysdeps/powerpc/fpu/libm-test-ulps: Update.
* sysdeps/mach/hurd/i386/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2018-02-10 02:08:43 +00:00
|
|
|
add 0 0
|
|
|
|
add 0 -0
|
|
|
|
add -0 0
|
|
|
|
add -0 -0
|
|
|
|
add max max
|
|
|
|
add max -max
|
|
|
|
add -max max
|
|
|
|
add -max -max
|
|
|
|
add min min missing-underflow:arg-ibm128
|
|
|
|
add min -min missing-underflow:arg-ibm128
|
|
|
|
add -min min missing-underflow:arg-ibm128
|
|
|
|
add -min -min missing-underflow:arg-ibm128
|
|
|
|
add min_subnorm min_subnorm missing-underflow:arg-ibm128
|
|
|
|
add min_subnorm -min_subnorm missing-underflow:arg-ibm128
|
|
|
|
add -min_subnorm min_subnorm missing-underflow:arg-ibm128
|
|
|
|
add -min_subnorm -min_subnorm missing-underflow:arg-ibm128
|
|
|
|
add 1 2
|
|
|
|
add 1 -2
|
|
|
|
add -1 2
|
|
|
|
add -1 -2
|
|
|
|
add 100.5 0.75
|
|
|
|
add 100.5 -0.75
|
|
|
|
add -100.5 0.75
|
|
|
|
add -100.5 -0.75
|
|
|
|
add 1 0x1p-23
|
|
|
|
add 1 0x1.7fp-23
|
|
|
|
add 1 0x1.8p-23
|
|
|
|
add 1 0x1.81p-23
|
|
|
|
add 1 0x1p-24
|
|
|
|
add 1 0x1.1p-24
|
|
|
|
add 1 0x0.fp-24
|
|
|
|
add 1 min
|
|
|
|
add 1 -min
|
|
|
|
add 1 min_subnorm
|
|
|
|
add 1 -min_subnorm
|
|
|
|
add -1 min
|
|
|
|
add -1 -min
|
|
|
|
add -1 min_subnorm
|
|
|
|
add -1 -min_subnorm
|
|
|
|
# Cases where larger argument is half way between two values of a
|
|
|
|
# floating-point format, so that double rounding would sometimes yield
|
|
|
|
# the wrong result.
|
|
|
|
add 0x1.000001p0 min
|
|
|
|
add 0x1.000001p0 -min
|
|
|
|
add 0x1.000001p0 min_subnorm
|
|
|
|
add 0x1.000001p0 -min_subnorm
|
|
|
|
add -0x1.000001p0 min
|
|
|
|
add -0x1.000001p0 -min
|
|
|
|
add -0x1.000001p0 min_subnorm
|
|
|
|
add -0x1.000001p0 -min_subnorm
|
|
|
|
add 0x1.00000000000008p0 min
|
|
|
|
add 0x1.00000000000008p0 -min
|
|
|
|
add 0x1.00000000000008p0 min_subnorm
|
|
|
|
add 0x1.00000000000008p0 -min_subnorm
|
|
|
|
add -0x1.00000000000008p0 min
|
|
|
|
add -0x1.00000000000008p0 -min
|
|
|
|
add -0x1.00000000000008p0 min_subnorm
|
|
|
|
add -0x1.00000000000008p0 -min_subnorm
|
|
|
|
add 0x1.0000000000000001p0 min
|
|
|
|
add 0x1.0000000000000001p0 -min
|
|
|
|
add 0x1.0000000000000001p0 min_subnorm
|
|
|
|
add 0x1.0000000000000001p0 -min_subnorm
|
|
|
|
add -0x1.0000000000000001p0 min
|
|
|
|
add -0x1.0000000000000001p0 -min
|
|
|
|
add -0x1.0000000000000001p0 min_subnorm
|
|
|
|
add -0x1.0000000000000001p0 -min_subnorm
|
|
|
|
# Two values representable in the same format with sum very close to
|
|
|
|
# half way between two representable values. In particular, verify
|
|
|
|
# that there is no intermediate rounding to 64 bits when adding two
|
|
|
|
# double values.
|
|
|
|
add 1 0x1.000002p-24
|
|
|
|
add 1 -0x1.000002p-24
|
|
|
|
add 1 0x0.ffffffp-24
|
|
|
|
add 1 -0x0.ffffffp-24
|
|
|
|
add 0x1.000002p0 0x1.000002p-24
|
|
|
|
add 0x1.000002p0 -0x1.000002p-24
|
|
|
|
add 0x1.000002p0 0x0.ffffffp-24
|
|
|
|
add 0x1.000002p0 -0x0.ffffffp-24
|
|
|
|
add 1 0x1.0000000000001p-53
|
|
|
|
add 1 -0x1.0000000000001p-53
|
|
|
|
add 1 0x0.fffffffffffff8p-53
|
|
|
|
add 1 -0x0.fffffffffffff8p-53
|
|
|
|
add 0x1.0000000000001p0 0x1.0000000000001p-53
|
|
|
|
add 0x1.0000000000001p0 -0x1.0000000000001p-53
|
|
|
|
add 0x1.0000000000001p0 0x0.fffffffffffff8p-53
|
|
|
|
add 0x1.0000000000001p0 -0x0.fffffffffffff8p-53
|
|
|
|
add 1 0x1.0000000000000002p-64
|
|
|
|
add 1 -0x1.0000000000000002p-64
|
|
|
|
add 1 0x0.ffffffffffffffffp-64
|
|
|
|
add 1 -0x0.ffffffffffffffffp-64
|
|
|
|
add 0x1.0000000000000002p0 0x1.0000000000000002p-64
|
|
|
|
add 0x1.0000000000000002p0 -0x1.0000000000000002p-64
|
|
|
|
add 0x1.0000000000000002p0 0x0.ffffffffffffffffp-64
|
|
|
|
add 0x1.0000000000000002p0 -0x0.ffffffffffffffffp-64
|
|
|
|
|
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
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
asin 0x0.fffffffffffff8p0
|
|
|
|
asin -0x0.fffffffffffff8p0
|
2013-11-30 22:04:13 +00:00
|
|
|
asin 0x0.ffffffffffffffffp0
|
|
|
|
asin -0x0.ffffffffffffffffp0
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
asin 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
asin -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
asin 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
asin -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
asin 0x1p-5
|
|
|
|
asin 0x1p-10
|
|
|
|
asin 0x1p-15
|
|
|
|
asin 0x1p-20
|
|
|
|
asin 0x1p-25
|
|
|
|
asin 0x1p-30
|
|
|
|
asin 0x1p-35
|
|
|
|
asin 0x1p-40
|
|
|
|
asin 0x1p-45
|
|
|
|
asin 0x1p-50
|
|
|
|
asin 0x1p-55
|
|
|
|
asin 0x1p-60
|
|
|
|
asin 0x1p-100
|
|
|
|
asin 0x1p-600
|
|
|
|
asin 0x1p-10000
|
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
|
Add more random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
asin -0x8.1c120ac3e495p-4
|
|
|
|
asin -0xb.36dacp-4
|
2021-02-26 07:00:03 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary64)
|
|
|
|
asin 0x1.f6041ffe89d7dp-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
|
Add more random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
asinh -0x5.cabae7a011e33d9p-4
|
|
|
|
asinh -0x6.e26358p-4
|
|
|
|
asinh 0x6.c92c08p-4
|
2015-06-18 23:27:41 +00:00
|
|
|
asinh 0x1p-500
|
|
|
|
asinh 0x1p-5000
|
2020-03-30 13:55:55 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary32)
|
|
|
|
asinh 0xf.96c69p-8
|
2020-11-25 18:03:33 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary64)
|
|
|
|
asinh 0x1.023cfeab10a13p-2
|
2021-02-26 07:00:03 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary128)
|
|
|
|
asinh -0x5.a95683e302a71be88a35649b24ep-4
|
2015-06-18 23:27:41 +00:00
|
|
|
asinh min
|
|
|
|
asinh -min
|
|
|
|
asinh min_subnorm
|
|
|
|
asinh -min_subnorm
|
2020-03-17 18:46:29 +00:00
|
|
|
asinh max
|
|
|
|
asinh -max
|
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
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
atan 0x1p-10
|
|
|
|
atan 0x1p-15
|
|
|
|
atan 0x1p-20
|
|
|
|
atan 0x1p-25
|
|
|
|
atan 0x1p-30
|
|
|
|
atan 0x1p-35
|
|
|
|
atan 0x1p-40
|
|
|
|
atan 0x1p-45
|
|
|
|
atan 0x1p-50
|
|
|
|
atan 0x1p-55
|
|
|
|
atan 0x1p-60
|
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 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
|
Add more random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
atan -0x1.58c83p+0
|
2021-02-26 07:00:03 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary32)
|
|
|
|
atan 0x1.626772p-1
|
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 random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
atan2 0x3.f16f1p+0 -0x1.546056p+0
|
|
|
|
atan2 -0x1.9e657cp-24 0x7.40bb4p-52
|
2021-02-26 07:00:03 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary32)
|
|
|
|
atan2 -0x1.f9cf48p+49 0x1.f60598p+51
|
2022-01-12 20:26:35 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary64)
|
|
|
|
atan2 0x1.bcab29da0e947p-54 0x1.bc41f4d2294b8p-54
|
|
|
|
# the next value generates larger error bounds on x86_64 (binary64)
|
|
|
|
atan2 0x1.a11891ec004d4p-348 0x1.814830510be26p-348
|
|
|
|
# the next value generates larger error bounds on x86_64 (binary64)
|
|
|
|
atan2 0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588
|
|
|
|
# the next value generates larger error bounds on x86_64 (binary64)
|
|
|
|
atan2 0x1.a83f842ef3f73p-633 0x1.a799d8a6677ep-633
|
2021-02-26 07:00:03 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary128)
|
|
|
|
atan2 0x1.41df5aa214612c7e019fa6ade88p-13316 0x5.e53b26a270a29eb9f77ef8ef7af8p-13316
|
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
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
atan2 min min_subnorm
|
|
|
|
atan2 min -min_subnorm
|
|
|
|
atan2 -min min_subnorm
|
|
|
|
atan2 -min -min_subnorm
|
|
|
|
atan2 min_subnorm min
|
|
|
|
atan2 min_subnorm -min
|
|
|
|
atan2 -min_subnorm min
|
|
|
|
atan2 -min_subnorm -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 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
|
2017-01-09 22:40:59 +00:00
|
|
|
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 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
|
2020-03-17 18:46:29 +00:00
|
|
|
atanh 0x0.ffffffp0
|
|
|
|
atanh -0x0.ffffffp0
|
|
|
|
atanh 0x0.ffffffff8p0
|
|
|
|
atanh -0x0.ffffffff8p0
|
|
|
|
atanh 0x0.ffffffffffffp0
|
|
|
|
atanh -0x0.ffffffffffffp0
|
|
|
|
atanh 0x0.fffffffffffff8p0
|
|
|
|
atanh -0x0.fffffffffffff8p0
|
|
|
|
atanh 0x0.ffffffffffffffffp0
|
|
|
|
atanh -0x0.ffffffffffffffffp0
|
|
|
|
atanh 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
atanh -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
atanh 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
atanh -0x0.ffffffffffffffffffffffffffff8p0
|
2015-03-25 22:21:20 +00:00
|
|
|
atanh -0x6.e6c77p-20
|
|
|
|
atanh 0x3.2ca824p-4
|
|
|
|
atanh -0x1.cc1d66p-4
|
2020-03-17 18:46:29 +00:00
|
|
|
atanh -0xf.cd3809ca8fd28p-4
|
2015-03-25 22:21:20 +00:00
|
|
|
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
|
Add more random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
atanh -0x2.c72b7cp-4
|
|
|
|
atanh -0x3.98eaf4p-4
|
|
|
|
atanh 0x2.c1085p-4
|
2015-05-15 22:07:57 +00:00
|
|
|
atanh 0x1p-500
|
|
|
|
atanh 0x1p-5000
|
2022-02-15 20:51:46 +00:00
|
|
|
# the next value generates larger error bounds in libmvec/avx512 on x86_64
|
|
|
|
# (binary32)
|
|
|
|
atanh 0x1.f80094p-8
|
2021-02-26 07:00:03 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary128)
|
|
|
|
atanh 0x2.c02a24f3472c7840afbd8cfb68bap-4
|
2015-05-15 22:07:57 +00:00
|
|
|
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
|
Add more random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
cabs -0x1.30ed4cp+0 0x1.e9d956p+56
|
|
|
|
cabs -0x1.250366p-36 -0x5.a5046p-4
|
|
|
|
cabs -0x1.88858cp+84 0x5.bd9198p+36
|
2013-12-19 21:28:30 +00:00
|
|
|
|
2017-02-17 17:44:23 +00:00
|
|
|
cacos 0 0
|
|
|
|
cacos -0 0
|
|
|
|
cacos -0 -0
|
|
|
|
cacos 0 -0
|
|
|
|
|
|
|
|
cacos 0 -1.5
|
|
|
|
cacos -0 -1.5
|
|
|
|
cacos 0 -1.0
|
|
|
|
cacos -0 -1.0
|
|
|
|
cacos 0 -0.5
|
|
|
|
cacos -0 -0.5
|
|
|
|
cacos 0 0.5
|
|
|
|
cacos -0 0.5
|
|
|
|
cacos 0 1.0
|
|
|
|
cacos -0 1.0
|
|
|
|
cacos 0 1.5
|
|
|
|
cacos -0 1.5
|
|
|
|
|
|
|
|
cacos -1.5 0
|
|
|
|
cacos -1.5 -0
|
|
|
|
cacos -1.0 0
|
|
|
|
cacos -1.0 -0
|
|
|
|
cacos -0.5 0
|
|
|
|
cacos -0.5 -0
|
|
|
|
cacos 0.5 0
|
|
|
|
cacos 0.5 -0
|
|
|
|
cacos 1.0 0
|
|
|
|
cacos 1.0 -0
|
|
|
|
cacos 1.5 0
|
|
|
|
cacos 1.5 -0
|
|
|
|
|
|
|
|
cacos 0x1p50 1.0
|
|
|
|
cacos 0x1p50 -1.0
|
|
|
|
cacos -0x1p50 1.0
|
|
|
|
cacos -0x1p50 -1.0
|
|
|
|
cacos 1.0 0x1p50
|
|
|
|
cacos -1.0 0x1p50
|
|
|
|
cacos 1.0 -0x1p50
|
|
|
|
cacos -1.0 -0x1p50
|
|
|
|
cacos 0x1p500 1.0
|
|
|
|
cacos 0x1p500 -1.0
|
|
|
|
cacos -0x1p500 1.0
|
|
|
|
cacos -0x1p500 -1.0
|
|
|
|
cacos 1.0 0x1p500
|
|
|
|
cacos -1.0 0x1p500
|
|
|
|
cacos 1.0 -0x1p500
|
|
|
|
cacos -1.0 -0x1p500
|
|
|
|
cacos 0x1p5000 1.0
|
|
|
|
cacos 0x1p5000 -1.0
|
|
|
|
cacos -0x1p5000 1.0
|
|
|
|
cacos -0x1p5000 -1.0
|
|
|
|
cacos 1.0 0x1p5000
|
|
|
|
cacos -1.0 0x1p5000
|
|
|
|
cacos 1.0 -0x1p5000
|
|
|
|
cacos -1.0 -0x1p5000
|
|
|
|
|
|
|
|
cacos 0x1.fp127 0x1.fp127
|
|
|
|
cacos 0x1.fp1023 0x1.fp1023
|
|
|
|
cacos 0x1.fp16383 0x1.fp16383
|
|
|
|
|
|
|
|
cacos 0x1.fp-129 1.5
|
|
|
|
cacos 0x1.fp-129 -1.5
|
|
|
|
cacos -0x1.fp-129 1.5
|
|
|
|
cacos -0x1.fp-129 -1.5
|
|
|
|
cacos 1.5 0x1.fp-129
|
|
|
|
cacos -1.5 0x1.fp-129
|
|
|
|
cacos 1.5 -0x1.fp-129
|
|
|
|
cacos -1.5 -0x1.fp-129
|
|
|
|
cacos 0x1.fp-1025 1.5
|
|
|
|
cacos 0x1.fp-1025 -1.5
|
|
|
|
cacos -0x1.fp-1025 1.5
|
|
|
|
cacos -0x1.fp-1025 -1.5
|
|
|
|
cacos 1.5 0x1.fp-1025
|
|
|
|
cacos -1.5 0x1.fp-1025
|
|
|
|
cacos 1.5 -0x1.fp-1025
|
|
|
|
cacos -1.5 -0x1.fp-1025
|
|
|
|
cacos 0x1.fp-16385 1.5
|
|
|
|
cacos 0x1.fp-16385 -1.5
|
|
|
|
cacos -0x1.fp-16385 1.5
|
|
|
|
cacos -0x1.fp-16385 -1.5
|
|
|
|
cacos 1.5 0x1.fp-16385
|
|
|
|
cacos -1.5 0x1.fp-16385
|
|
|
|
cacos 1.5 -0x1.fp-16385
|
|
|
|
cacos -1.5 -0x1.fp-16385
|
|
|
|
|
|
|
|
cacos 0.5 1.0
|
|
|
|
cacos 0.5 -1.0
|
|
|
|
cacos -0.5 1.0
|
|
|
|
cacos -0.5 -1.0
|
|
|
|
cacos 1.0 0.5
|
|
|
|
cacos -1.0 0.5
|
|
|
|
cacos 1.0 -0.5
|
|
|
|
cacos -1.0 -0.5
|
|
|
|
cacos 0.25 1.0
|
|
|
|
cacos 0.25 -1.0
|
|
|
|
cacos -0.25 1.0
|
|
|
|
cacos -0.25 -1.0
|
|
|
|
cacos 1.0 0.25
|
|
|
|
cacos -1.0 0.25
|
|
|
|
cacos 1.0 -0.25
|
|
|
|
cacos -1.0 -0.25
|
|
|
|
cacos 0x1.fp-10 1.0
|
|
|
|
cacos 0x1.fp-10 -1.0
|
|
|
|
cacos -0x1.fp-10 1.0
|
|
|
|
cacos -0x1.fp-10 -1.0
|
|
|
|
cacos 1.0 0x1.fp-10
|
|
|
|
cacos -1.0 0x1.fp-10
|
|
|
|
cacos 1.0 -0x1.fp-10
|
|
|
|
cacos -1.0 -0x1.fp-10
|
|
|
|
cacos 0x1.fp-30 1.0
|
|
|
|
cacos 0x1.fp-30 -1.0
|
|
|
|
cacos -0x1.fp-30 1.0
|
|
|
|
cacos -0x1.fp-30 -1.0
|
|
|
|
cacos 1.0 0x1.fp-30
|
|
|
|
cacos -1.0 0x1.fp-30
|
|
|
|
cacos 1.0 -0x1.fp-30
|
|
|
|
cacos -1.0 -0x1.fp-30
|
|
|
|
cacos 0x1.fp-100 1.0
|
|
|
|
cacos 0x1.fp-100 -1.0
|
|
|
|
cacos -0x1.fp-100 1.0
|
|
|
|
cacos -0x1.fp-100 -1.0
|
|
|
|
cacos 1.0 0x1.fp-100
|
|
|
|
cacos -1.0 0x1.fp-100
|
|
|
|
cacos 1.0 -0x1.fp-100
|
|
|
|
cacos -1.0 -0x1.fp-100
|
|
|
|
cacos 0x1.fp-129 1.0
|
|
|
|
cacos 0x1.fp-129 -1.0
|
|
|
|
cacos -0x1.fp-129 1.0
|
|
|
|
cacos -0x1.fp-129 -1.0
|
|
|
|
cacos 1.0 0x1.fp-129
|
|
|
|
cacos -1.0 0x1.fp-129
|
|
|
|
cacos 1.0 -0x1.fp-129
|
|
|
|
cacos -1.0 -0x1.fp-129
|
|
|
|
cacos 0x1.fp-1000 1.0
|
|
|
|
cacos 0x1.fp-1000 -1.0
|
|
|
|
cacos -0x1.fp-1000 1.0
|
|
|
|
cacos -0x1.fp-1000 -1.0
|
|
|
|
cacos 1.0 0x1.fp-1000
|
|
|
|
cacos -1.0 0x1.fp-1000
|
|
|
|
cacos 1.0 -0x1.fp-1000
|
|
|
|
cacos -1.0 -0x1.fp-1000
|
|
|
|
cacos 0x1.fp-1025 1.0
|
|
|
|
cacos 0x1.fp-1025 -1.0
|
|
|
|
cacos -0x1.fp-1025 1.0
|
|
|
|
cacos -0x1.fp-1025 -1.0
|
|
|
|
cacos 1.0 0x1.fp-1025
|
|
|
|
cacos -1.0 0x1.fp-1025
|
|
|
|
cacos 1.0 -0x1.fp-1025
|
|
|
|
cacos -1.0 -0x1.fp-1025
|
|
|
|
cacos 0x1.fp-10000 1.0
|
|
|
|
cacos 0x1.fp-10000 -1.0
|
|
|
|
cacos -0x1.fp-10000 1.0
|
|
|
|
cacos -0x1.fp-10000 -1.0
|
|
|
|
cacos 1.0 0x1.fp-10000
|
|
|
|
cacos -1.0 0x1.fp-10000
|
|
|
|
cacos 1.0 -0x1.fp-10000
|
|
|
|
cacos -1.0 -0x1.fp-10000
|
|
|
|
cacos 0x1.fp-16385 1.0
|
|
|
|
cacos 0x1.fp-16385 -1.0
|
|
|
|
cacos -0x1.fp-16385 1.0
|
|
|
|
cacos -0x1.fp-16385 -1.0
|
|
|
|
cacos 1.0 0x1.fp-16385
|
|
|
|
cacos -1.0 0x1.fp-16385
|
|
|
|
cacos 1.0 -0x1.fp-16385
|
|
|
|
cacos -1.0 -0x1.fp-16385
|
|
|
|
|
|
|
|
cacos 0x1p-23 0x1.000002p0
|
|
|
|
cacos 0x1p-23 -0x1.000002p0
|
|
|
|
cacos -0x1p-23 0x1.000002p0
|
|
|
|
cacos -0x1p-23 -0x1.000002p0
|
|
|
|
cacos 0x1.000002p0 0x1p-23
|
|
|
|
cacos -0x1.000002p0 0x1p-23
|
|
|
|
cacos 0x1.000002p0 -0x1p-23
|
|
|
|
cacos -0x1.000002p0 -0x1p-23
|
|
|
|
cacos 0x1.fp-129 0x1.000002p0
|
|
|
|
cacos 0x1.fp-129 -0x1.000002p0
|
|
|
|
cacos -0x1.fp-129 0x1.000002p0
|
|
|
|
cacos -0x1.fp-129 -0x1.000002p0
|
|
|
|
cacos 0x1.000002p0 0x1.fp-129
|
|
|
|
cacos -0x1.000002p0 0x1.fp-129
|
|
|
|
cacos 0x1.000002p0 -0x1.fp-129
|
|
|
|
cacos -0x1.000002p0 -0x1.fp-129
|
|
|
|
cacos 0.0 0x1.000002p0
|
|
|
|
cacos 0.0 -0x1.000002p0
|
|
|
|
cacos -0.0 0x1.000002p0
|
|
|
|
cacos -0.0 -0x1.000002p0
|
|
|
|
cacos 0x1.000002p0 0.0
|
|
|
|
cacos -0x1.000002p0 0.0
|
|
|
|
cacos 0x1.000002p0 -0.0
|
|
|
|
cacos -0x1.000002p0 -0.0
|
|
|
|
cacos 0x1p-52 0x1.0000000000001p0
|
|
|
|
cacos 0x1p-52 -0x1.0000000000001p0
|
|
|
|
cacos -0x1p-52 0x1.0000000000001p0
|
|
|
|
cacos -0x1p-52 -0x1.0000000000001p0
|
|
|
|
cacos 0x1.0000000000001p0 0x1p-52
|
|
|
|
cacos -0x1.0000000000001p0 0x1p-52
|
|
|
|
cacos 0x1.0000000000001p0 -0x1p-52
|
|
|
|
cacos -0x1.0000000000001p0 -0x1p-52
|
|
|
|
cacos 0x1.fp-1025 0x1.0000000000001p0
|
|
|
|
cacos 0x1.fp-1025 -0x1.0000000000001p0
|
|
|
|
cacos -0x1.fp-1025 0x1.0000000000001p0
|
|
|
|
cacos -0x1.fp-1025 -0x1.0000000000001p0
|
|
|
|
cacos 0x1.0000000000001p0 0x1.fp-1025
|
|
|
|
cacos -0x1.0000000000001p0 0x1.fp-1025
|
|
|
|
cacos 0x1.0000000000001p0 -0x1.fp-1025
|
|
|
|
cacos -0x1.0000000000001p0 -0x1.fp-1025
|
|
|
|
cacos 0.0 0x1.0000000000001p0
|
|
|
|
cacos 0.0 -0x1.0000000000001p0
|
|
|
|
cacos -0.0 0x1.0000000000001p0
|
|
|
|
cacos -0.0 -0x1.0000000000001p0
|
|
|
|
cacos 0x1.0000000000001p0 0.0
|
|
|
|
cacos -0x1.0000000000001p0 0.0
|
|
|
|
cacos 0x1.0000000000001p0 -0.0
|
|
|
|
cacos -0x1.0000000000001p0 -0.0
|
|
|
|
cacos 0x1p-63 0x1.0000000000000002p0
|
|
|
|
cacos 0x1p-63 -0x1.0000000000000002p0
|
|
|
|
cacos -0x1p-63 0x1.0000000000000002p0
|
|
|
|
cacos -0x1p-63 -0x1.0000000000000002p0
|
|
|
|
cacos 0x1.0000000000000002p0 0x1p-63
|
|
|
|
cacos -0x1.0000000000000002p0 0x1p-63
|
|
|
|
cacos 0x1.0000000000000002p0 -0x1p-63
|
|
|
|
cacos -0x1.0000000000000002p0 -0x1p-63
|
|
|
|
cacos 0x1.fp-16385 0x1.0000000000000002p0
|
|
|
|
cacos 0x1.fp-16385 -0x1.0000000000000002p0
|
|
|
|
cacos -0x1.fp-16385 0x1.0000000000000002p0
|
|
|
|
cacos -0x1.fp-16385 -0x1.0000000000000002p0
|
|
|
|
cacos 0x1.0000000000000002p0 0x1.fp-16385
|
|
|
|
cacos -0x1.0000000000000002p0 0x1.fp-16385
|
|
|
|
cacos 0x1.0000000000000002p0 -0x1.fp-16385
|
|
|
|
cacos -0x1.0000000000000002p0 -0x1.fp-16385
|
|
|
|
cacos 0.0 0x1.0000000000000002p0
|
|
|
|
cacos 0.0 -0x1.0000000000000002p0
|
|
|
|
cacos -0.0 0x1.0000000000000002p0
|
|
|
|
cacos -0.0 -0x1.0000000000000002p0
|
|
|
|
cacos 0x1.0000000000000002p0 0.0
|
|
|
|
cacos -0x1.0000000000000002p0 0.0
|
|
|
|
cacos 0x1.0000000000000002p0 -0.0
|
|
|
|
cacos -0x1.0000000000000002p0 -0.0
|
|
|
|
cacos 0x1p-106 0x1.000000000000000000000000008p0
|
|
|
|
cacos 0x1p-106 -0x1.000000000000000000000000008p0
|
|
|
|
cacos -0x1p-106 0x1.000000000000000000000000008p0
|
|
|
|
cacos -0x1p-106 -0x1.000000000000000000000000008p0
|
|
|
|
cacos 0x1.000000000000000000000000008p0 0x1p-106
|
|
|
|
cacos -0x1.000000000000000000000000008p0 0x1p-106
|
|
|
|
cacos 0x1.000000000000000000000000008p0 -0x1p-106
|
|
|
|
cacos -0x1.000000000000000000000000008p0 -0x1p-106
|
|
|
|
cacos 0x1.fp-1025 0x1.000000000000000000000000008p0
|
|
|
|
cacos 0x1.fp-1025 -0x1.000000000000000000000000008p0
|
|
|
|
cacos -0x1.fp-1025 0x1.000000000000000000000000008p0
|
|
|
|
cacos -0x1.fp-1025 -0x1.000000000000000000000000008p0
|
|
|
|
cacos 0x1.000000000000000000000000008p0 0x1.fp-1025
|
|
|
|
cacos -0x1.000000000000000000000000008p0 0x1.fp-1025
|
|
|
|
cacos 0x1.000000000000000000000000008p0 -0x1.fp-1025
|
|
|
|
cacos -0x1.000000000000000000000000008p0 -0x1.fp-1025
|
|
|
|
cacos 0.0 0x1.000000000000000000000000008p0
|
|
|
|
cacos 0.0 -0x1.000000000000000000000000008p0
|
|
|
|
cacos -0.0 0x1.000000000000000000000000008p0
|
|
|
|
cacos -0.0 -0x1.000000000000000000000000008p0
|
|
|
|
cacos 0x1.000000000000000000000000008p0 0.0
|
|
|
|
cacos -0x1.000000000000000000000000008p0 0.0
|
|
|
|
cacos 0x1.000000000000000000000000008p0 -0.0
|
|
|
|
cacos -0x1.000000000000000000000000008p0 -0.0
|
|
|
|
cacos 0x1p-113 0x1.0000000000000000000000000001p0
|
|
|
|
cacos 0x1p-113 -0x1.0000000000000000000000000001p0
|
|
|
|
cacos -0x1p-113 0x1.0000000000000000000000000001p0
|
|
|
|
cacos -0x1p-113 -0x1.0000000000000000000000000001p0
|
|
|
|
cacos 0x1.0000000000000000000000000001p0 0x1p-113
|
|
|
|
cacos -0x1.0000000000000000000000000001p0 0x1p-113
|
|
|
|
cacos 0x1.0000000000000000000000000001p0 -0x1p-113
|
|
|
|
cacos -0x1.0000000000000000000000000001p0 -0x1p-113
|
|
|
|
cacos 0x1.fp-16385 0x1.0000000000000000000000000001p0
|
|
|
|
cacos 0x1.fp-16385 -0x1.0000000000000000000000000001p0
|
|
|
|
cacos -0x1.fp-16385 0x1.0000000000000000000000000001p0
|
|
|
|
cacos -0x1.fp-16385 -0x1.0000000000000000000000000001p0
|
|
|
|
cacos 0x1.0000000000000000000000000001p0 0x1.fp-16385
|
|
|
|
cacos -0x1.0000000000000000000000000001p0 0x1.fp-16385
|
|
|
|
cacos 0x1.0000000000000000000000000001p0 -0x1.fp-16385
|
|
|
|
cacos -0x1.0000000000000000000000000001p0 -0x1.fp-16385
|
|
|
|
cacos 0.0 0x1.0000000000000000000000000001p0
|
|
|
|
cacos 0.0 -0x1.0000000000000000000000000001p0
|
|
|
|
cacos -0.0 0x1.0000000000000000000000000001p0
|
|
|
|
cacos -0.0 -0x1.0000000000000000000000000001p0
|
|
|
|
cacos 0x1.0000000000000000000000000001p0 0.0
|
|
|
|
cacos -0x1.0000000000000000000000000001p0 0.0
|
|
|
|
cacos 0x1.0000000000000000000000000001p0 -0.0
|
|
|
|
cacos -0x1.0000000000000000000000000001p0 -0.0
|
|
|
|
|
|
|
|
cacos 0x1p-23 0x0.ffffffp0
|
|
|
|
cacos 0x1p-23 -0x0.ffffffp0
|
|
|
|
cacos -0x1p-23 0x0.ffffffp0
|
|
|
|
cacos -0x1p-23 -0x0.ffffffp0
|
|
|
|
cacos 0x0.ffffffp0 0x1p-23
|
|
|
|
cacos -0x0.ffffffp0 0x1p-23
|
|
|
|
cacos 0x0.ffffffp0 -0x1p-23
|
|
|
|
cacos -0x0.ffffffp0 -0x1p-23
|
|
|
|
cacos 0x1.fp-129 0x0.ffffffp0
|
|
|
|
cacos 0x1.fp-129 -0x0.ffffffp0
|
|
|
|
cacos -0x1.fp-129 0x0.ffffffp0
|
|
|
|
cacos -0x1.fp-129 -0x0.ffffffp0
|
|
|
|
cacos 0x0.ffffffp0 0x1.fp-129
|
|
|
|
cacos -0x0.ffffffp0 0x1.fp-129
|
|
|
|
cacos 0x0.ffffffp0 -0x1.fp-129
|
|
|
|
cacos -0x0.ffffffp0 -0x1.fp-129
|
|
|
|
cacos 0.0 0x0.ffffffp0
|
|
|
|
cacos 0.0 -0x0.ffffffp0
|
|
|
|
cacos -0.0 0x0.ffffffp0
|
|
|
|
cacos -0.0 -0x0.ffffffp0
|
|
|
|
cacos 0x0.ffffffp0 0.0
|
|
|
|
cacos -0x0.ffffffp0 0.0
|
|
|
|
cacos 0x0.ffffffp0 -0.0
|
|
|
|
cacos -0x0.ffffffp0 -0.0
|
|
|
|
cacos 0x1p-23 0.5
|
|
|
|
cacos 0x1p-23 -0.5
|
|
|
|
cacos -0x1p-23 0.5
|
|
|
|
cacos -0x1p-23 -0.5
|
|
|
|
cacos 0.5 0x1p-23
|
|
|
|
cacos -0.5 0x1p-23
|
|
|
|
cacos 0.5 -0x1p-23
|
|
|
|
cacos -0.5 -0x1p-23
|
|
|
|
cacos 0x1.fp-129 0.5
|
|
|
|
cacos 0x1.fp-129 -0.5
|
|
|
|
cacos -0x1.fp-129 0.5
|
|
|
|
cacos -0x1.fp-129 -0.5
|
|
|
|
cacos 0.5 0x1.fp-129
|
|
|
|
cacos -0.5 0x1.fp-129
|
|
|
|
cacos 0.5 -0x1.fp-129
|
|
|
|
cacos -0.5 -0x1.fp-129
|
|
|
|
cacos 0x1p-23 0x1p-23
|
|
|
|
cacos 0x1p-23 -0x1p-23
|
|
|
|
cacos -0x1p-23 0x1p-23
|
|
|
|
cacos -0x1p-23 -0x1p-23
|
|
|
|
cacos 0x1.fp-129 0x1p-23
|
|
|
|
cacos 0x1.fp-129 -0x1p-23
|
|
|
|
cacos -0x1.fp-129 0x1p-23
|
|
|
|
cacos -0x1.fp-129 -0x1p-23
|
|
|
|
cacos 0x1p-23 0x1.fp-129
|
|
|
|
cacos -0x1p-23 0x1.fp-129
|
|
|
|
cacos 0x1p-23 -0x1.fp-129
|
|
|
|
cacos -0x1p-23 -0x1.fp-129
|
|
|
|
cacos 0.0 0x1p-23
|
|
|
|
cacos 0.0 -0x1p-23
|
|
|
|
cacos -0.0 0x1p-23
|
|
|
|
cacos -0.0 -0x1p-23
|
|
|
|
cacos 0x1p-23 0.0
|
|
|
|
cacos -0x1p-23 0.0
|
|
|
|
cacos 0x1p-23 -0.0
|
|
|
|
cacos -0x1p-23 -0.0
|
|
|
|
cacos 0x1.fp-129 0x1.fp-129
|
|
|
|
cacos 0x1.fp-129 -0x1.fp-129
|
|
|
|
cacos -0x1.fp-129 0x1.fp-129
|
|
|
|
cacos -0x1.fp-129 -0x1.fp-129
|
|
|
|
cacos 0x1p-52 0x0.fffffffffffff8p0
|
|
|
|
cacos 0x1p-52 -0x0.fffffffffffff8p0
|
|
|
|
cacos -0x1p-52 0x0.fffffffffffff8p0
|
|
|
|
cacos -0x1p-52 -0x0.fffffffffffff8p0
|
|
|
|
cacos 0x0.fffffffffffff8p0 0x1p-52
|
|
|
|
cacos -0x0.fffffffffffff8p0 0x1p-52
|
|
|
|
cacos 0x0.fffffffffffff8p0 -0x1p-52
|
|
|
|
cacos -0x0.fffffffffffff8p0 -0x1p-52
|
|
|
|
cacos 0x1.fp-1025 0x0.fffffffffffff8p0
|
|
|
|
cacos 0x1.fp-1025 -0x0.fffffffffffff8p0
|
|
|
|
cacos -0x1.fp-1025 0x0.fffffffffffff8p0
|
|
|
|
cacos -0x1.fp-1025 -0x0.fffffffffffff8p0
|
|
|
|
cacos 0x0.fffffffffffff8p0 0x1.fp-1025
|
|
|
|
cacos -0x0.fffffffffffff8p0 0x1.fp-1025
|
|
|
|
cacos 0x0.fffffffffffff8p0 -0x1.fp-1025
|
|
|
|
cacos -0x0.fffffffffffff8p0 -0x1.fp-1025
|
|
|
|
cacos 0.0 0x0.fffffffffffff8p0
|
|
|
|
cacos 0.0 -0x0.fffffffffffff8p0
|
|
|
|
cacos -0.0 0x0.fffffffffffff8p0
|
|
|
|
cacos -0.0 -0x0.fffffffffffff8p0
|
|
|
|
cacos 0x0.fffffffffffff8p0 0.0
|
|
|
|
cacos -0x0.fffffffffffff8p0 0.0
|
|
|
|
cacos 0x0.fffffffffffff8p0 -0.0
|
|
|
|
cacos -0x0.fffffffffffff8p0 -0.0
|
|
|
|
cacos 0x1p-52 0.5
|
|
|
|
cacos 0x1p-52 -0.5
|
|
|
|
cacos -0x1p-52 0.5
|
|
|
|
cacos -0x1p-52 -0.5
|
|
|
|
cacos 0.5 0x1p-52
|
|
|
|
cacos -0.5 0x1p-52
|
|
|
|
cacos 0.5 -0x1p-52
|
|
|
|
cacos -0.5 -0x1p-52
|
|
|
|
cacos 0x1.fp-1025 0.5
|
|
|
|
cacos 0x1.fp-1025 -0.5
|
|
|
|
cacos -0x1.fp-1025 0.5
|
|
|
|
cacos -0x1.fp-1025 -0.5
|
|
|
|
cacos 0.5 0x1.fp-1025
|
|
|
|
cacos -0.5 0x1.fp-1025
|
|
|
|
cacos 0.5 -0x1.fp-1025
|
|
|
|
cacos -0.5 -0x1.fp-1025
|
|
|
|
cacos 0x1p-52 0x1p-52
|
|
|
|
cacos 0x1p-52 -0x1p-52
|
|
|
|
cacos -0x1p-52 0x1p-52
|
|
|
|
cacos -0x1p-52 -0x1p-52
|
|
|
|
cacos 0x1.fp-1025 0x1p-52
|
|
|
|
cacos 0x1.fp-1025 -0x1p-52
|
|
|
|
cacos -0x1.fp-1025 0x1p-52
|
|
|
|
cacos -0x1.fp-1025 -0x1p-52
|
|
|
|
cacos 0x1p-52 0x1.fp-1025
|
|
|
|
cacos -0x1p-52 0x1.fp-1025
|
|
|
|
cacos 0x1p-52 -0x1.fp-1025
|
|
|
|
cacos -0x1p-52 -0x1.fp-1025
|
|
|
|
cacos 0.0 0x1p-52
|
|
|
|
cacos 0.0 -0x1p-52
|
|
|
|
cacos -0.0 0x1p-52
|
|
|
|
cacos -0.0 -0x1p-52
|
|
|
|
cacos 0x1p-52 0.0
|
|
|
|
cacos -0x1p-52 0.0
|
|
|
|
cacos 0x1p-52 -0.0
|
|
|
|
cacos -0x1p-52 -0.0
|
|
|
|
cacos 0x1.fp-1025 0x1.fp-1025
|
|
|
|
cacos 0x1.fp-1025 -0x1.fp-1025
|
|
|
|
cacos -0x1.fp-1025 0x1.fp-1025
|
|
|
|
cacos -0x1.fp-1025 -0x1.fp-1025
|
|
|
|
cacos 0x1p-63 0x0.ffffffffffffffffp0
|
|
|
|
cacos 0x1p-63 -0x0.ffffffffffffffffp0
|
|
|
|
cacos -0x1p-63 0x0.ffffffffffffffffp0
|
|
|
|
cacos -0x1p-63 -0x0.ffffffffffffffffp0
|
|
|
|
cacos 0x0.ffffffffffffffffp0 0x1p-63
|
|
|
|
cacos -0x0.ffffffffffffffffp0 0x1p-63
|
|
|
|
cacos 0x0.ffffffffffffffffp0 -0x1p-63
|
|
|
|
cacos -0x0.ffffffffffffffffp0 -0x1p-63
|
|
|
|
cacos 0x1.fp-16385 0x0.ffffffffffffffffp0
|
|
|
|
cacos 0x1.fp-16385 -0x0.ffffffffffffffffp0
|
|
|
|
cacos -0x1.fp-16385 0x0.ffffffffffffffffp0
|
|
|
|
cacos -0x1.fp-16385 -0x0.ffffffffffffffffp0
|
|
|
|
cacos 0x0.ffffffffffffffffp0 0x1.fp-16385
|
|
|
|
cacos -0x0.ffffffffffffffffp0 0x1.fp-16385
|
|
|
|
cacos 0x0.ffffffffffffffffp0 -0x1.fp-16385
|
|
|
|
cacos -0x0.ffffffffffffffffp0 -0x1.fp-16385
|
|
|
|
cacos 0.0 0x0.ffffffffffffffffp0
|
|
|
|
cacos 0.0 -0x0.ffffffffffffffffp0
|
|
|
|
cacos -0.0 0x0.ffffffffffffffffp0
|
|
|
|
cacos -0.0 -0x0.ffffffffffffffffp0
|
|
|
|
cacos 0x0.ffffffffffffffffp0 0.0
|
|
|
|
cacos -0x0.ffffffffffffffffp0 0.0
|
|
|
|
cacos 0x0.ffffffffffffffffp0 -0.0
|
|
|
|
cacos -0x0.ffffffffffffffffp0 -0.0
|
|
|
|
cacos 0x1p-63 0.5
|
|
|
|
cacos 0x1p-63 -0.5
|
|
|
|
cacos -0x1p-63 0.5
|
|
|
|
cacos -0x1p-63 -0.5
|
|
|
|
cacos 0.5 0x1p-63
|
|
|
|
cacos -0.5 0x1p-63
|
|
|
|
cacos 0.5 -0x1p-63
|
|
|
|
cacos -0.5 -0x1p-63
|
|
|
|
cacos 0x1.fp-16385 0.5
|
|
|
|
cacos 0x1.fp-16385 -0.5
|
|
|
|
cacos -0x1.fp-16385 0.5
|
|
|
|
cacos -0x1.fp-16385 -0.5
|
|
|
|
cacos 0.5 0x1.fp-16385
|
|
|
|
cacos -0.5 0x1.fp-16385
|
|
|
|
cacos 0.5 -0x1.fp-16385
|
|
|
|
cacos -0.5 -0x1.fp-16385
|
|
|
|
cacos 0x1p-63 0x1p-63
|
|
|
|
cacos 0x1p-63 -0x1p-63
|
|
|
|
cacos -0x1p-63 0x1p-63
|
|
|
|
cacos -0x1p-63 -0x1p-63
|
|
|
|
cacos 0x1.fp-16385 0x1p-63
|
|
|
|
cacos 0x1.fp-16385 -0x1p-63
|
|
|
|
cacos -0x1.fp-16385 0x1p-63
|
|
|
|
cacos -0x1.fp-16385 -0x1p-63
|
|
|
|
cacos 0x1p-63 0x1.fp-16385
|
|
|
|
cacos -0x1p-63 0x1.fp-16385
|
|
|
|
cacos 0x1p-63 -0x1.fp-16385
|
|
|
|
cacos -0x1p-63 -0x1.fp-16385
|
|
|
|
cacos 0.0 0x1p-63
|
|
|
|
cacos 0.0 -0x1p-63
|
|
|
|
cacos -0.0 0x1p-63
|
|
|
|
cacos -0.0 -0x1p-63
|
|
|
|
cacos 0x1p-63 0.0
|
|
|
|
cacos -0x1p-63 0.0
|
|
|
|
cacos 0x1p-63 -0.0
|
|
|
|
cacos -0x1p-63 -0.0
|
|
|
|
cacos 0x1.fp-16385 0x1.fp-16385
|
|
|
|
cacos 0x1.fp-16385 -0x1.fp-16385
|
|
|
|
cacos -0x1.fp-16385 0x1.fp-16385
|
|
|
|
cacos -0x1.fp-16385 -0x1.fp-16385
|
|
|
|
cacos 0x1p-105 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacos 0x1p-105 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacos -0x1p-105 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacos -0x1p-105 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacos 0x0.ffffffffffffffffffffffffffcp0 0x1p-105
|
|
|
|
cacos -0x0.ffffffffffffffffffffffffffcp0 0x1p-105
|
|
|
|
cacos 0x0.ffffffffffffffffffffffffffcp0 -0x1p-105
|
|
|
|
cacos -0x0.ffffffffffffffffffffffffffcp0 -0x1p-105
|
|
|
|
cacos 0x1.fp-1025 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacos 0x1.fp-1025 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacos -0x1.fp-1025 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacos -0x1.fp-1025 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacos 0x0.ffffffffffffffffffffffffffcp0 0x1.fp-1025
|
|
|
|
cacos -0x0.ffffffffffffffffffffffffffcp0 0x1.fp-1025
|
|
|
|
cacos 0x0.ffffffffffffffffffffffffffcp0 -0x1.fp-1025
|
|
|
|
cacos -0x0.ffffffffffffffffffffffffffcp0 -0x1.fp-1025
|
|
|
|
cacos 0.0 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacos 0.0 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacos -0.0 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacos -0.0 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacos 0x0.ffffffffffffffffffffffffffcp0 0.0
|
|
|
|
cacos -0x0.ffffffffffffffffffffffffffcp0 0.0
|
|
|
|
cacos 0x0.ffffffffffffffffffffffffffcp0 -0.0
|
|
|
|
cacos -0x0.ffffffffffffffffffffffffffcp0 -0.0
|
|
|
|
cacos 0x1p-105 0.5
|
|
|
|
cacos 0x1p-105 -0.5
|
|
|
|
cacos -0x1p-105 0.5
|
|
|
|
cacos -0x1p-105 -0.5
|
|
|
|
cacos 0.5 0x1p-105
|
|
|
|
cacos -0.5 0x1p-105
|
|
|
|
cacos 0.5 -0x1p-105
|
|
|
|
cacos -0.5 -0x1p-105
|
|
|
|
cacos 0x1p-105 0x1p-105
|
|
|
|
cacos 0x1p-105 -0x1p-105
|
|
|
|
cacos -0x1p-105 0x1p-105
|
|
|
|
cacos -0x1p-105 -0x1p-105
|
|
|
|
cacos 0x1.fp-1025 0x1p-105
|
|
|
|
cacos 0x1.fp-1025 -0x1p-105
|
|
|
|
cacos -0x1.fp-1025 0x1p-105
|
|
|
|
cacos -0x1.fp-1025 -0x1p-105
|
|
|
|
cacos 0x1p-105 0x1.fp-1025
|
|
|
|
cacos -0x1p-105 0x1.fp-1025
|
|
|
|
cacos 0x1p-105 -0x1.fp-1025
|
|
|
|
cacos -0x1p-105 -0x1.fp-1025
|
|
|
|
cacos 0.0 0x1p-105
|
|
|
|
cacos 0.0 -0x1p-105
|
|
|
|
cacos -0.0 0x1p-105
|
|
|
|
cacos -0.0 -0x1p-105
|
|
|
|
cacos 0x1p-105 0.0
|
|
|
|
cacos -0x1p-105 0.0
|
|
|
|
cacos 0x1p-105 -0.0
|
|
|
|
cacos -0x1p-105 -0.0
|
|
|
|
cacos 0x1p-112 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacos 0x1p-112 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacos -0x1p-112 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacos -0x1p-112 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacos 0x0.ffffffffffffffffffffffffffff8p0 0x1p-112
|
|
|
|
cacos -0x0.ffffffffffffffffffffffffffff8p0 0x1p-112
|
|
|
|
cacos 0x0.ffffffffffffffffffffffffffff8p0 -0x1p-112
|
|
|
|
cacos -0x0.ffffffffffffffffffffffffffff8p0 -0x1p-112
|
|
|
|
cacos 0x1.fp-16385 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacos 0x1.fp-16385 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacos -0x1.fp-16385 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacos -0x1.fp-16385 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacos 0x0.ffffffffffffffffffffffffffff8p0 0x1.fp-16385
|
|
|
|
cacos -0x0.ffffffffffffffffffffffffffff8p0 0x1.fp-16385
|
|
|
|
cacos 0x0.ffffffffffffffffffffffffffff8p0 -0x1.fp-16385
|
|
|
|
cacos -0x0.ffffffffffffffffffffffffffff8p0 -0x1.fp-16385
|
|
|
|
cacos 0.0 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacos 0.0 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacos -0.0 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacos -0.0 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacos 0x0.ffffffffffffffffffffffffffff8p0 0.0
|
|
|
|
cacos -0x0.ffffffffffffffffffffffffffff8p0 0.0
|
|
|
|
cacos 0x0.ffffffffffffffffffffffffffff8p0 -0.0
|
|
|
|
cacos -0x0.ffffffffffffffffffffffffffff8p0 -0.0
|
|
|
|
cacos 0x1p-112 0.5
|
|
|
|
cacos 0x1p-112 -0.5
|
|
|
|
cacos -0x1p-112 0.5
|
|
|
|
cacos -0x1p-112 -0.5
|
|
|
|
cacos 0.5 0x1p-112
|
|
|
|
cacos -0.5 0x1p-112
|
|
|
|
cacos 0.5 -0x1p-112
|
|
|
|
cacos -0.5 -0x1p-112
|
|
|
|
cacos 0x1p-112 0x1p-112
|
|
|
|
cacos 0x1p-112 -0x1p-112
|
|
|
|
cacos -0x1p-112 0x1p-112
|
|
|
|
cacos -0x1p-112 -0x1p-112
|
|
|
|
cacos 0x1.fp-16385 0x1p-112
|
|
|
|
cacos 0x1.fp-16385 -0x1p-112
|
|
|
|
cacos -0x1.fp-16385 0x1p-112
|
|
|
|
cacos -0x1.fp-16385 -0x1p-112
|
|
|
|
cacos 0x1p-112 0x1.fp-16385
|
|
|
|
cacos -0x1p-112 0x1.fp-16385
|
|
|
|
cacos 0x1p-112 -0x1.fp-16385
|
|
|
|
cacos -0x1p-112 -0x1.fp-16385
|
|
|
|
cacos 0.0 0x1p-112
|
|
|
|
cacos 0.0 -0x1p-112
|
|
|
|
cacos -0.0 0x1p-112
|
|
|
|
cacos -0.0 -0x1p-112
|
|
|
|
cacos 0x1p-112 0.0
|
|
|
|
cacos -0x1p-112 0.0
|
|
|
|
cacos 0x1p-112 -0.0
|
|
|
|
cacos -0x1p-112 -0.0
|
|
|
|
|
|
|
|
cacos 0.75 1.25
|
|
|
|
cacos -2 -3
|
|
|
|
|
|
|
|
cacosh 0 0
|
|
|
|
cacosh -0 0
|
|
|
|
cacosh 0 -0
|
|
|
|
cacosh -0 -0
|
|
|
|
|
|
|
|
cacosh 0 -1.5
|
|
|
|
cacosh -0 -1.5
|
|
|
|
cacosh 0 -1.0
|
|
|
|
cacosh -0 -1.0
|
|
|
|
cacosh 0 -0.5
|
|
|
|
cacosh -0 -0.5
|
|
|
|
cacosh 0 0.5
|
|
|
|
cacosh -0 0.5
|
|
|
|
cacosh 0 1.0
|
|
|
|
cacosh -0 1.0
|
|
|
|
cacosh 0 1.5
|
|
|
|
cacosh -0 1.5
|
|
|
|
|
|
|
|
cacosh -1.5 0
|
|
|
|
cacosh -1.5 -0
|
|
|
|
cacosh -1.0 0
|
|
|
|
cacosh -1.0 -0
|
|
|
|
cacosh -0.5 0
|
|
|
|
cacosh -0.5 -0
|
|
|
|
cacosh 0.5 0
|
|
|
|
cacosh 0.5 -0
|
|
|
|
cacosh 1.0 0
|
|
|
|
cacosh 1.0 -0
|
|
|
|
cacosh 1.5 0
|
|
|
|
cacosh 1.5 -0
|
|
|
|
|
|
|
|
cacosh 0x1p50 1.0
|
|
|
|
cacosh 0x1p50 -1.0
|
|
|
|
cacosh -0x1p50 1.0
|
|
|
|
cacosh -0x1p50 -1.0
|
|
|
|
cacosh 1.0 0x1p50
|
|
|
|
cacosh -1.0 0x1p50
|
|
|
|
cacosh 1.0 -0x1p50
|
|
|
|
cacosh -1.0 -0x1p50
|
|
|
|
cacosh 0x1p500 1.0
|
|
|
|
cacosh 0x1p500 -1.0
|
|
|
|
cacosh -0x1p500 1.0
|
|
|
|
cacosh -0x1p500 -1.0
|
|
|
|
cacosh 1.0 0x1p500
|
|
|
|
cacosh -1.0 0x1p500
|
|
|
|
cacosh 1.0 -0x1p500
|
|
|
|
cacosh -1.0 -0x1p500
|
|
|
|
cacosh 0x1p5000 1.0
|
|
|
|
cacosh 0x1p5000 -1.0
|
|
|
|
cacosh -0x1p5000 1.0
|
|
|
|
cacosh -0x1p5000 -1.0
|
|
|
|
cacosh 1.0 0x1p5000
|
|
|
|
cacosh -1.0 0x1p5000
|
|
|
|
cacosh 1.0 -0x1p5000
|
|
|
|
cacosh -1.0 -0x1p5000
|
|
|
|
cacosh 0x1.fp127 0x1.fp127
|
|
|
|
cacosh 0x1.fp1023 0x1.fp1023
|
|
|
|
cacosh 0x1.fp16383 0x1.fp16383
|
|
|
|
cacosh 0x1.fp-129 1.5
|
|
|
|
cacosh 0x1.fp-129 -1.5
|
|
|
|
cacosh -0x1.fp-129 1.5
|
|
|
|
cacosh -0x1.fp-129 -1.5
|
|
|
|
cacosh 1.5 0x1.fp-129
|
|
|
|
cacosh -1.5 0x1.fp-129
|
|
|
|
cacosh 1.5 -0x1.fp-129
|
|
|
|
cacosh -1.5 -0x1.fp-129
|
|
|
|
cacosh 0x1.fp-1025 1.5
|
|
|
|
cacosh 0x1.fp-1025 -1.5
|
|
|
|
cacosh -0x1.fp-1025 1.5
|
|
|
|
cacosh -0x1.fp-1025 -1.5
|
|
|
|
cacosh 1.5 0x1.fp-1025
|
|
|
|
cacosh -1.5 0x1.fp-1025
|
|
|
|
cacosh 1.5 -0x1.fp-1025
|
|
|
|
cacosh -1.5 -0x1.fp-1025
|
|
|
|
cacosh 0x1.fp-16385 1.5
|
|
|
|
cacosh 0x1.fp-16385 -1.5
|
|
|
|
cacosh -0x1.fp-16385 1.5
|
|
|
|
cacosh -0x1.fp-16385 -1.5
|
|
|
|
cacosh 1.5 0x1.fp-16385
|
|
|
|
cacosh -1.5 0x1.fp-16385
|
|
|
|
cacosh 1.5 -0x1.fp-16385
|
|
|
|
cacosh -1.5 -0x1.fp-16385
|
|
|
|
cacosh 0.5 1.0
|
|
|
|
cacosh 0.5 -1.0
|
|
|
|
cacosh -0.5 1.0
|
|
|
|
cacosh -0.5 -1.0
|
|
|
|
cacosh 1.0 0.5
|
|
|
|
cacosh -1.0 0.5
|
|
|
|
cacosh 1.0 -0.5
|
|
|
|
cacosh -1.0 -0.5
|
|
|
|
cacosh 0.25 1.0
|
|
|
|
cacosh 0.25 -1.0
|
|
|
|
cacosh -0.25 1.0
|
|
|
|
cacosh -0.25 -1.0
|
|
|
|
cacosh 1.0 0.25
|
|
|
|
cacosh -1.0 0.25
|
|
|
|
cacosh 1.0 -0.25
|
|
|
|
cacosh -1.0 -0.25
|
|
|
|
cacosh 0x1.fp-10 1.0
|
|
|
|
cacosh 0x1.fp-10 -1.0
|
|
|
|
cacosh -0x1.fp-10 1.0
|
|
|
|
cacosh -0x1.fp-10 -1.0
|
|
|
|
cacosh 1.0 0x1.fp-10
|
|
|
|
cacosh -1.0 0x1.fp-10
|
|
|
|
cacosh 1.0 -0x1.fp-10
|
|
|
|
cacosh -1.0 -0x1.fp-10
|
|
|
|
cacosh 0x1.fp-30 1.0
|
|
|
|
cacosh 0x1.fp-30 -1.0
|
|
|
|
cacosh -0x1.fp-30 1.0
|
|
|
|
cacosh -0x1.fp-30 -1.0
|
|
|
|
cacosh 1.0 0x1.fp-30
|
|
|
|
cacosh -1.0 0x1.fp-30
|
|
|
|
cacosh 1.0 -0x1.fp-30
|
|
|
|
cacosh -1.0 -0x1.fp-30
|
|
|
|
cacosh 0x1.fp-100 1.0
|
|
|
|
cacosh 0x1.fp-100 -1.0
|
|
|
|
cacosh -0x1.fp-100 1.0
|
|
|
|
cacosh -0x1.fp-100 -1.0
|
|
|
|
cacosh 1.0 0x1.fp-100
|
|
|
|
cacosh -1.0 0x1.fp-100
|
|
|
|
cacosh 1.0 -0x1.fp-100
|
|
|
|
cacosh -1.0 -0x1.fp-100
|
|
|
|
cacosh 0x1.fp-129 1.0
|
|
|
|
cacosh 0x1.fp-129 -1.0
|
|
|
|
cacosh -0x1.fp-129 1.0
|
|
|
|
cacosh -0x1.fp-129 -1.0
|
|
|
|
cacosh 1.0 0x1.fp-129
|
|
|
|
cacosh -1.0 0x1.fp-129
|
|
|
|
cacosh 1.0 -0x1.fp-129
|
|
|
|
cacosh -1.0 -0x1.fp-129
|
|
|
|
cacosh 0x1.fp-1000 1.0
|
|
|
|
cacosh 0x1.fp-1000 -1.0
|
|
|
|
cacosh -0x1.fp-1000 1.0
|
|
|
|
cacosh -0x1.fp-1000 -1.0
|
|
|
|
cacosh 1.0 0x1.fp-1000
|
|
|
|
cacosh -1.0 0x1.fp-1000
|
|
|
|
cacosh 1.0 -0x1.fp-1000
|
|
|
|
cacosh -1.0 -0x1.fp-1000
|
|
|
|
cacosh 0x1.fp-1025 1.0
|
|
|
|
cacosh 0x1.fp-1025 -1.0
|
|
|
|
cacosh -0x1.fp-1025 1.0
|
|
|
|
cacosh -0x1.fp-1025 -1.0
|
|
|
|
cacosh 1.0 0x1.fp-1025
|
|
|
|
cacosh -1.0 0x1.fp-1025
|
|
|
|
cacosh 1.0 -0x1.fp-1025
|
|
|
|
cacosh -1.0 -0x1.fp-1025
|
|
|
|
cacosh 0x1.fp-10000 1.0
|
|
|
|
cacosh 0x1.fp-10000 -1.0
|
|
|
|
cacosh -0x1.fp-10000 1.0
|
|
|
|
cacosh -0x1.fp-10000 -1.0
|
|
|
|
cacosh 1.0 0x1.fp-10000
|
|
|
|
cacosh -1.0 0x1.fp-10000
|
|
|
|
cacosh 1.0 -0x1.fp-10000
|
|
|
|
cacosh -1.0 -0x1.fp-10000
|
|
|
|
cacosh 0x1.fp-16385 1.0
|
|
|
|
cacosh 0x1.fp-16385 -1.0
|
|
|
|
cacosh -0x1.fp-16385 1.0
|
|
|
|
cacosh -0x1.fp-16385 -1.0
|
|
|
|
cacosh 1.0 0x1.fp-16385
|
|
|
|
cacosh -1.0 0x1.fp-16385
|
|
|
|
cacosh 1.0 -0x1.fp-16385
|
|
|
|
cacosh -1.0 -0x1.fp-16385
|
|
|
|
cacosh 0x1p-23 0x1.000002p0
|
|
|
|
cacosh 0x1p-23 -0x1.000002p0
|
|
|
|
cacosh -0x1p-23 0x1.000002p0
|
|
|
|
cacosh -0x1p-23 -0x1.000002p0
|
|
|
|
cacosh 0x1.000002p0 0x1p-23
|
|
|
|
cacosh -0x1.000002p0 0x1p-23
|
|
|
|
cacosh 0x1.000002p0 -0x1p-23
|
|
|
|
cacosh -0x1.000002p0 -0x1p-23
|
|
|
|
cacosh 0x1.fp-129 0x1.000002p0
|
|
|
|
cacosh 0x1.fp-129 -0x1.000002p0
|
|
|
|
cacosh -0x1.fp-129 0x1.000002p0
|
|
|
|
cacosh -0x1.fp-129 -0x1.000002p0
|
|
|
|
cacosh 0x1.000002p0 0x1.fp-129
|
|
|
|
cacosh -0x1.000002p0 0x1.fp-129
|
|
|
|
cacosh 0x1.000002p0 -0x1.fp-129
|
|
|
|
cacosh -0x1.000002p0 -0x1.fp-129
|
|
|
|
cacosh 0.0 0x1.000002p0
|
|
|
|
cacosh 0.0 -0x1.000002p0
|
|
|
|
cacosh -0.0 0x1.000002p0
|
|
|
|
cacosh -0.0 -0x1.000002p0
|
|
|
|
cacosh 0x1.000002p0 0.0
|
|
|
|
cacosh -0x1.000002p0 0.0
|
|
|
|
cacosh 0x1.000002p0 -0.0
|
|
|
|
cacosh -0x1.000002p0 -0.0
|
|
|
|
cacosh 0x1p-52 0x1.0000000000001p0
|
|
|
|
cacosh 0x1p-52 -0x1.0000000000001p0
|
|
|
|
cacosh -0x1p-52 0x1.0000000000001p0
|
|
|
|
cacosh -0x1p-52 -0x1.0000000000001p0
|
|
|
|
cacosh 0x1.0000000000001p0 0x1p-52
|
|
|
|
cacosh -0x1.0000000000001p0 0x1p-52
|
|
|
|
cacosh 0x1.0000000000001p0 -0x1p-52
|
|
|
|
cacosh -0x1.0000000000001p0 -0x1p-52
|
|
|
|
cacosh 0x1.fp-1025 0x1.0000000000001p0
|
|
|
|
cacosh 0x1.fp-1025 -0x1.0000000000001p0
|
|
|
|
cacosh -0x1.fp-1025 0x1.0000000000001p0
|
|
|
|
cacosh -0x1.fp-1025 -0x1.0000000000001p0
|
|
|
|
cacosh 0x1.0000000000001p0 0x1.fp-1025
|
|
|
|
cacosh -0x1.0000000000001p0 0x1.fp-1025
|
|
|
|
cacosh 0x1.0000000000001p0 -0x1.fp-1025
|
|
|
|
cacosh -0x1.0000000000001p0 -0x1.fp-1025
|
|
|
|
cacosh 0.0 0x1.0000000000001p0
|
|
|
|
cacosh 0.0 -0x1.0000000000001p0
|
|
|
|
cacosh -0.0 0x1.0000000000001p0
|
|
|
|
cacosh -0.0 -0x1.0000000000001p0
|
|
|
|
cacosh 0x1.0000000000001p0 0.0
|
|
|
|
cacosh -0x1.0000000000001p0 0.0
|
|
|
|
cacosh 0x1.0000000000001p0 -0.0
|
|
|
|
cacosh -0x1.0000000000001p0 -0.0
|
|
|
|
cacosh 0x1p-63 0x1.0000000000000002p0
|
|
|
|
cacosh 0x1p-63 -0x1.0000000000000002p0
|
|
|
|
cacosh -0x1p-63 0x1.0000000000000002p0
|
|
|
|
cacosh -0x1p-63 -0x1.0000000000000002p0
|
|
|
|
cacosh 0x1.0000000000000002p0 0x1p-63
|
|
|
|
cacosh -0x1.0000000000000002p0 0x1p-63
|
|
|
|
cacosh 0x1.0000000000000002p0 -0x1p-63
|
|
|
|
cacosh -0x1.0000000000000002p0 -0x1p-63
|
|
|
|
cacosh 0x1.fp-16385 0x1.0000000000000002p0
|
|
|
|
cacosh 0x1.fp-16385 -0x1.0000000000000002p0
|
|
|
|
cacosh -0x1.fp-16385 0x1.0000000000000002p0
|
|
|
|
cacosh -0x1.fp-16385 -0x1.0000000000000002p0
|
|
|
|
cacosh 0x1.0000000000000002p0 0x1.fp-16385
|
|
|
|
cacosh -0x1.0000000000000002p0 0x1.fp-16385
|
|
|
|
cacosh 0x1.0000000000000002p0 -0x1.fp-16385
|
|
|
|
cacosh -0x1.0000000000000002p0 -0x1.fp-16385
|
|
|
|
cacosh 0.0 0x1.0000000000000002p0
|
|
|
|
cacosh 0.0 -0x1.0000000000000002p0
|
|
|
|
cacosh -0.0 0x1.0000000000000002p0
|
|
|
|
cacosh -0.0 -0x1.0000000000000002p0
|
|
|
|
cacosh 0x1.0000000000000002p0 0.0
|
|
|
|
cacosh -0x1.0000000000000002p0 0.0
|
|
|
|
cacosh 0x1.0000000000000002p0 -0.0
|
|
|
|
cacosh -0x1.0000000000000002p0 -0.0
|
|
|
|
cacosh 0x1p-106 0x1.000000000000000000000000008p0
|
|
|
|
cacosh 0x1p-106 -0x1.000000000000000000000000008p0
|
|
|
|
cacosh -0x1p-106 0x1.000000000000000000000000008p0
|
|
|
|
cacosh -0x1p-106 -0x1.000000000000000000000000008p0
|
|
|
|
cacosh 0x1.000000000000000000000000008p0 0x1p-106
|
|
|
|
cacosh -0x1.000000000000000000000000008p0 0x1p-106
|
|
|
|
cacosh 0x1.000000000000000000000000008p0 -0x1p-106
|
|
|
|
cacosh -0x1.000000000000000000000000008p0 -0x1p-106
|
|
|
|
cacosh 0x1.fp-1025 0x1.000000000000000000000000008p0
|
|
|
|
cacosh 0x1.fp-1025 -0x1.000000000000000000000000008p0
|
|
|
|
cacosh -0x1.fp-1025 0x1.000000000000000000000000008p0
|
|
|
|
cacosh -0x1.fp-1025 -0x1.000000000000000000000000008p0
|
|
|
|
cacosh 0x1.000000000000000000000000008p0 0x1.fp-1025
|
|
|
|
cacosh -0x1.000000000000000000000000008p0 0x1.fp-1025
|
|
|
|
cacosh 0x1.000000000000000000000000008p0 -0x1.fp-1025
|
|
|
|
cacosh -0x1.000000000000000000000000008p0 -0x1.fp-1025
|
|
|
|
cacosh 0.0 0x1.000000000000000000000000008p0
|
|
|
|
cacosh 0.0 -0x1.000000000000000000000000008p0
|
|
|
|
cacosh -0.0 0x1.000000000000000000000000008p0
|
|
|
|
cacosh -0.0 -0x1.000000000000000000000000008p0
|
|
|
|
cacosh 0x1.000000000000000000000000008p0 0.0
|
|
|
|
cacosh -0x1.000000000000000000000000008p0 0.0
|
|
|
|
cacosh 0x1.000000000000000000000000008p0 -0.0
|
|
|
|
cacosh -0x1.000000000000000000000000008p0 -0.0
|
|
|
|
cacosh 0x1p-113 0x1.0000000000000000000000000001p0
|
|
|
|
cacosh 0x1p-113 -0x1.0000000000000000000000000001p0
|
|
|
|
cacosh -0x1p-113 0x1.0000000000000000000000000001p0
|
|
|
|
cacosh -0x1p-113 -0x1.0000000000000000000000000001p0
|
|
|
|
cacosh 0x1.0000000000000000000000000001p0 0x1p-113
|
|
|
|
cacosh -0x1.0000000000000000000000000001p0 0x1p-113
|
|
|
|
cacosh 0x1.0000000000000000000000000001p0 -0x1p-113
|
|
|
|
cacosh -0x1.0000000000000000000000000001p0 -0x1p-113
|
|
|
|
cacosh 0x1.fp-16385 0x1.0000000000000000000000000001p0
|
|
|
|
cacosh 0x1.fp-16385 -0x1.0000000000000000000000000001p0
|
|
|
|
cacosh -0x1.fp-16385 0x1.0000000000000000000000000001p0
|
|
|
|
cacosh -0x1.fp-16385 -0x1.0000000000000000000000000001p0
|
|
|
|
cacosh 0x1.0000000000000000000000000001p0 0x1.fp-16385
|
|
|
|
cacosh -0x1.0000000000000000000000000001p0 0x1.fp-16385
|
|
|
|
cacosh 0x1.0000000000000000000000000001p0 -0x1.fp-16385
|
|
|
|
cacosh -0x1.0000000000000000000000000001p0 -0x1.fp-16385
|
|
|
|
cacosh 0.0 0x1.0000000000000000000000000001p0
|
|
|
|
cacosh 0.0 -0x1.0000000000000000000000000001p0
|
|
|
|
cacosh -0.0 0x1.0000000000000000000000000001p0
|
|
|
|
cacosh -0.0 -0x1.0000000000000000000000000001p0
|
|
|
|
cacosh 0x1.0000000000000000000000000001p0 0.0
|
|
|
|
cacosh -0x1.0000000000000000000000000001p0 0.0
|
|
|
|
cacosh 0x1.0000000000000000000000000001p0 -0.0
|
|
|
|
cacosh -0x1.0000000000000000000000000001p0 -0.0
|
|
|
|
cacosh 0x1p-23 0x0.ffffffp0
|
|
|
|
cacosh 0x1p-23 -0x0.ffffffp0
|
|
|
|
cacosh -0x1p-23 0x0.ffffffp0
|
|
|
|
cacosh -0x1p-23 -0x0.ffffffp0
|
|
|
|
cacosh 0x0.ffffffp0 0x1p-23
|
|
|
|
cacosh -0x0.ffffffp0 0x1p-23
|
|
|
|
cacosh 0x0.ffffffp0 -0x1p-23
|
|
|
|
cacosh -0x0.ffffffp0 -0x1p-23
|
|
|
|
cacosh 0x1.fp-129 0x0.ffffffp0
|
|
|
|
cacosh 0x1.fp-129 -0x0.ffffffp0
|
|
|
|
cacosh -0x1.fp-129 0x0.ffffffp0
|
|
|
|
cacosh -0x1.fp-129 -0x0.ffffffp0
|
|
|
|
cacosh 0x0.ffffffp0 0x1.fp-129
|
|
|
|
cacosh -0x0.ffffffp0 0x1.fp-129
|
|
|
|
cacosh 0x0.ffffffp0 -0x1.fp-129
|
|
|
|
cacosh -0x0.ffffffp0 -0x1.fp-129
|
|
|
|
cacosh 0.0 0x0.ffffffp0
|
|
|
|
cacosh 0.0 -0x0.ffffffp0
|
|
|
|
cacosh -0.0 0x0.ffffffp0
|
|
|
|
cacosh -0.0 -0x0.ffffffp0
|
|
|
|
cacosh 0x0.ffffffp0 0.0
|
|
|
|
cacosh -0x0.ffffffp0 0.0
|
|
|
|
cacosh 0x0.ffffffp0 -0.0
|
|
|
|
cacosh -0x0.ffffffp0 -0.0
|
|
|
|
cacosh 0x1p-23 0.5
|
|
|
|
cacosh 0x1p-23 -0.5
|
|
|
|
cacosh -0x1p-23 0.5
|
|
|
|
cacosh -0x1p-23 -0.5
|
|
|
|
cacosh 0.5 0x1p-23
|
|
|
|
cacosh -0.5 0x1p-23
|
|
|
|
cacosh 0.5 -0x1p-23
|
|
|
|
cacosh -0.5 -0x1p-23
|
|
|
|
cacosh 0x1.fp-129 0.5
|
|
|
|
cacosh 0x1.fp-129 -0.5
|
|
|
|
cacosh -0x1.fp-129 0.5
|
|
|
|
cacosh -0x1.fp-129 -0.5
|
|
|
|
cacosh 0.5 0x1.fp-129
|
|
|
|
cacosh -0.5 0x1.fp-129
|
|
|
|
cacosh 0.5 -0x1.fp-129
|
|
|
|
cacosh -0.5 -0x1.fp-129
|
|
|
|
cacosh 0x1p-23 0x1p-23
|
|
|
|
cacosh 0x1p-23 -0x1p-23
|
|
|
|
cacosh -0x1p-23 0x1p-23
|
|
|
|
cacosh -0x1p-23 -0x1p-23
|
|
|
|
cacosh 0x1.fp-129 0x1p-23
|
|
|
|
cacosh 0x1.fp-129 -0x1p-23
|
|
|
|
cacosh -0x1.fp-129 0x1p-23
|
|
|
|
cacosh -0x1.fp-129 -0x1p-23
|
|
|
|
cacosh 0x1p-23 0x1.fp-129
|
|
|
|
cacosh -0x1p-23 0x1.fp-129
|
|
|
|
cacosh 0x1p-23 -0x1.fp-129
|
|
|
|
cacosh -0x1p-23 -0x1.fp-129
|
|
|
|
cacosh 0.0 0x1p-23
|
|
|
|
cacosh 0.0 -0x1p-23
|
|
|
|
cacosh -0.0 0x1p-23
|
|
|
|
cacosh -0.0 -0x1p-23
|
|
|
|
cacosh 0x1p-23 0.0
|
|
|
|
cacosh -0x1p-23 0.0
|
|
|
|
cacosh 0x1p-23 -0.0
|
|
|
|
cacosh -0x1p-23 -0.0
|
|
|
|
cacosh 0x1.fp-129 0x1.fp-129
|
|
|
|
cacosh 0x1.fp-129 -0x1.fp-129
|
|
|
|
cacosh -0x1.fp-129 0x1.fp-129
|
|
|
|
cacosh -0x1.fp-129 -0x1.fp-129
|
|
|
|
cacosh 0x1p-52 0x0.fffffffffffff8p0
|
|
|
|
cacosh 0x1p-52 -0x0.fffffffffffff8p0
|
|
|
|
cacosh -0x1p-52 0x0.fffffffffffff8p0
|
|
|
|
cacosh -0x1p-52 -0x0.fffffffffffff8p0
|
|
|
|
cacosh 0x0.fffffffffffff8p0 0x1p-52
|
|
|
|
cacosh -0x0.fffffffffffff8p0 0x1p-52
|
|
|
|
cacosh 0x0.fffffffffffff8p0 -0x1p-52
|
|
|
|
cacosh -0x0.fffffffffffff8p0 -0x1p-52
|
|
|
|
cacosh 0x1.fp-1025 0x0.fffffffffffff8p0
|
|
|
|
cacosh 0x1.fp-1025 -0x0.fffffffffffff8p0
|
|
|
|
cacosh -0x1.fp-1025 0x0.fffffffffffff8p0
|
|
|
|
cacosh -0x1.fp-1025 -0x0.fffffffffffff8p0
|
|
|
|
cacosh 0x0.fffffffffffff8p0 0x1.fp-1025
|
|
|
|
cacosh -0x0.fffffffffffff8p0 0x1.fp-1025
|
|
|
|
cacosh 0x0.fffffffffffff8p0 -0x1.fp-1025
|
|
|
|
cacosh -0x0.fffffffffffff8p0 -0x1.fp-1025
|
|
|
|
cacosh 0.0 0x0.fffffffffffff8p0
|
|
|
|
cacosh 0.0 -0x0.fffffffffffff8p0
|
|
|
|
cacosh -0.0 0x0.fffffffffffff8p0
|
|
|
|
cacosh -0.0 -0x0.fffffffffffff8p0
|
|
|
|
cacosh 0x0.fffffffffffff8p0 0.0
|
|
|
|
cacosh -0x0.fffffffffffff8p0 0.0
|
|
|
|
cacosh 0x0.fffffffffffff8p0 -0.0
|
|
|
|
cacosh -0x0.fffffffffffff8p0 -0.0
|
|
|
|
cacosh 0x1p-52 0.5
|
|
|
|
cacosh 0x1p-52 -0.5
|
|
|
|
cacosh -0x1p-52 0.5
|
|
|
|
cacosh -0x1p-52 -0.5
|
|
|
|
cacosh 0.5 0x1p-52
|
|
|
|
cacosh -0.5 0x1p-52
|
|
|
|
cacosh 0.5 -0x1p-52
|
|
|
|
cacosh -0.5 -0x1p-52
|
|
|
|
cacosh 0x1.fp-1025 0.5
|
|
|
|
cacosh 0x1.fp-1025 -0.5
|
|
|
|
cacosh -0x1.fp-1025 0.5
|
|
|
|
cacosh -0x1.fp-1025 -0.5
|
|
|
|
cacosh 0.5 0x1.fp-1025
|
|
|
|
cacosh -0.5 0x1.fp-1025
|
|
|
|
cacosh 0.5 -0x1.fp-1025
|
|
|
|
cacosh -0.5 -0x1.fp-1025
|
|
|
|
cacosh 0x1p-52 0x1p-52
|
|
|
|
cacosh 0x1p-52 -0x1p-52
|
|
|
|
cacosh -0x1p-52 0x1p-52
|
|
|
|
cacosh -0x1p-52 -0x1p-52
|
|
|
|
cacosh 0x1.fp-1025 0x1p-52
|
|
|
|
cacosh 0x1.fp-1025 -0x1p-52
|
|
|
|
cacosh -0x1.fp-1025 0x1p-52
|
|
|
|
cacosh -0x1.fp-1025 -0x1p-52
|
|
|
|
cacosh 0x1p-52 0x1.fp-1025
|
|
|
|
cacosh -0x1p-52 0x1.fp-1025
|
|
|
|
cacosh 0x1p-52 -0x1.fp-1025
|
|
|
|
cacosh -0x1p-52 -0x1.fp-1025
|
|
|
|
cacosh 0.0 0x1p-52
|
|
|
|
cacosh 0.0 -0x1p-52
|
|
|
|
cacosh -0.0 0x1p-52
|
|
|
|
cacosh -0.0 -0x1p-52
|
|
|
|
cacosh 0x1p-52 0.0
|
|
|
|
cacosh -0x1p-52 0.0
|
|
|
|
cacosh 0x1p-52 -0.0
|
|
|
|
cacosh -0x1p-52 -0.0
|
|
|
|
cacosh 0x1.fp-1025 0x1.fp-1025
|
|
|
|
cacosh 0x1.fp-1025 -0x1.fp-1025
|
|
|
|
cacosh -0x1.fp-1025 0x1.fp-1025
|
|
|
|
cacosh -0x1.fp-1025 -0x1.fp-1025
|
|
|
|
cacosh 0x1p-63 0x0.ffffffffffffffffp0
|
|
|
|
cacosh 0x1p-63 -0x0.ffffffffffffffffp0
|
|
|
|
cacosh -0x1p-63 0x0.ffffffffffffffffp0
|
|
|
|
cacosh -0x1p-63 -0x0.ffffffffffffffffp0
|
|
|
|
cacosh 0x0.ffffffffffffffffp0 0x1p-63
|
|
|
|
cacosh -0x0.ffffffffffffffffp0 0x1p-63
|
|
|
|
cacosh 0x0.ffffffffffffffffp0 -0x1p-63
|
|
|
|
cacosh -0x0.ffffffffffffffffp0 -0x1p-63
|
|
|
|
cacosh 0x1.fp-16385 0x0.ffffffffffffffffp0
|
|
|
|
cacosh 0x1.fp-16385 -0x0.ffffffffffffffffp0
|
|
|
|
cacosh -0x1.fp-16385 0x0.ffffffffffffffffp0
|
|
|
|
cacosh -0x1.fp-16385 -0x0.ffffffffffffffffp0
|
|
|
|
cacosh 0x0.ffffffffffffffffp0 0x1.fp-16385
|
|
|
|
cacosh -0x0.ffffffffffffffffp0 0x1.fp-16385
|
|
|
|
cacosh 0x0.ffffffffffffffffp0 -0x1.fp-16385
|
|
|
|
cacosh -0x0.ffffffffffffffffp0 -0x1.fp-16385
|
|
|
|
cacosh 0.0 0x0.ffffffffffffffffp0
|
|
|
|
cacosh 0.0 -0x0.ffffffffffffffffp0
|
|
|
|
cacosh -0.0 0x0.ffffffffffffffffp0
|
|
|
|
cacosh -0.0 -0x0.ffffffffffffffffp0
|
|
|
|
cacosh 0x0.ffffffffffffffffp0 0.0
|
|
|
|
cacosh -0x0.ffffffffffffffffp0 0.0
|
|
|
|
cacosh 0x0.ffffffffffffffffp0 -0.0
|
|
|
|
cacosh -0x0.ffffffffffffffffp0 -0.0
|
|
|
|
cacosh 0x1p-63 0.5
|
|
|
|
cacosh 0x1p-63 -0.5
|
|
|
|
cacosh -0x1p-63 0.5
|
|
|
|
cacosh -0x1p-63 -0.5
|
|
|
|
cacosh 0.5 0x1p-63
|
|
|
|
cacosh -0.5 0x1p-63
|
|
|
|
cacosh 0.5 -0x1p-63
|
|
|
|
cacosh -0.5 -0x1p-63
|
|
|
|
cacosh 0x1.fp-16385 0.5
|
|
|
|
cacosh 0x1.fp-16385 -0.5
|
|
|
|
cacosh -0x1.fp-16385 0.5
|
|
|
|
cacosh -0x1.fp-16385 -0.5
|
|
|
|
cacosh 0.5 0x1.fp-16385
|
|
|
|
cacosh -0.5 0x1.fp-16385
|
|
|
|
cacosh 0.5 -0x1.fp-16385
|
|
|
|
cacosh -0.5 -0x1.fp-16385
|
|
|
|
cacosh 0x1p-63 0x1p-63
|
|
|
|
cacosh 0x1p-63 -0x1p-63
|
|
|
|
cacosh -0x1p-63 0x1p-63
|
|
|
|
cacosh -0x1p-63 -0x1p-63
|
|
|
|
cacosh 0x1.fp-16385 0x1p-63
|
|
|
|
cacosh 0x1.fp-16385 -0x1p-63
|
|
|
|
cacosh -0x1.fp-16385 0x1p-63
|
|
|
|
cacosh -0x1.fp-16385 -0x1p-63
|
|
|
|
cacosh 0x1p-63 0x1.fp-16385
|
|
|
|
cacosh -0x1p-63 0x1.fp-16385
|
|
|
|
cacosh 0x1p-63 -0x1.fp-16385
|
|
|
|
cacosh -0x1p-63 -0x1.fp-16385
|
|
|
|
cacosh 0.0 0x1p-63
|
|
|
|
cacosh 0.0 -0x1p-63
|
|
|
|
cacosh -0.0 0x1p-63
|
|
|
|
cacosh -0.0 -0x1p-63
|
|
|
|
cacosh 0x1p-63 0.0
|
|
|
|
cacosh -0x1p-63 0.0
|
|
|
|
cacosh 0x1p-63 -0.0
|
|
|
|
cacosh -0x1p-63 -0.0
|
|
|
|
cacosh 0x1.fp-16385 0x1.fp-16385
|
|
|
|
cacosh 0x1.fp-16385 -0x1.fp-16385
|
|
|
|
cacosh -0x1.fp-16385 0x1.fp-16385
|
|
|
|
cacosh -0x1.fp-16385 -0x1.fp-16385
|
|
|
|
cacosh 0x1p-105 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacosh 0x1p-105 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacosh -0x1p-105 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacosh -0x1p-105 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacosh 0x0.ffffffffffffffffffffffffffcp0 0x1p-105
|
|
|
|
cacosh -0x0.ffffffffffffffffffffffffffcp0 0x1p-105
|
|
|
|
cacosh 0x0.ffffffffffffffffffffffffffcp0 -0x1p-105
|
|
|
|
cacosh -0x0.ffffffffffffffffffffffffffcp0 -0x1p-105
|
|
|
|
cacosh 0x1.fp-1025 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacosh 0x1.fp-1025 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacosh -0x1.fp-1025 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacosh -0x1.fp-1025 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacosh 0x0.ffffffffffffffffffffffffffcp0 0x1.fp-1025
|
|
|
|
cacosh -0x0.ffffffffffffffffffffffffffcp0 0x1.fp-1025
|
|
|
|
cacosh 0x0.ffffffffffffffffffffffffffcp0 -0x1.fp-1025
|
|
|
|
cacosh -0x0.ffffffffffffffffffffffffffcp0 -0x1.fp-1025
|
|
|
|
cacosh 0.0 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacosh 0.0 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacosh -0.0 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacosh -0.0 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
cacosh 0x0.ffffffffffffffffffffffffffcp0 0.0
|
|
|
|
cacosh -0x0.ffffffffffffffffffffffffffcp0 0.0
|
|
|
|
cacosh 0x0.ffffffffffffffffffffffffffcp0 -0.0
|
|
|
|
cacosh -0x0.ffffffffffffffffffffffffffcp0 -0.0
|
|
|
|
cacosh 0x1p-105 0.5
|
|
|
|
cacosh 0x1p-105 -0.5
|
|
|
|
cacosh -0x1p-105 0.5
|
|
|
|
cacosh -0x1p-105 -0.5
|
|
|
|
cacosh 0.5 0x1p-105
|
|
|
|
cacosh -0.5 0x1p-105
|
|
|
|
cacosh 0.5 -0x1p-105
|
|
|
|
cacosh -0.5 -0x1p-105
|
|
|
|
cacosh 0x1p-105 0x1p-105
|
|
|
|
cacosh 0x1p-105 -0x1p-105
|
|
|
|
cacosh -0x1p-105 0x1p-105
|
|
|
|
cacosh -0x1p-105 -0x1p-105
|
|
|
|
cacosh 0x1.fp-1025 0x1p-105
|
|
|
|
cacosh 0x1.fp-1025 -0x1p-105
|
|
|
|
cacosh -0x1.fp-1025 0x1p-105
|
|
|
|
cacosh -0x1.fp-1025 -0x1p-105
|
|
|
|
cacosh 0x1p-105 0x1.fp-1025
|
|
|
|
cacosh -0x1p-105 0x1.fp-1025
|
|
|
|
cacosh 0x1p-105 -0x1.fp-1025
|
|
|
|
cacosh -0x1p-105 -0x1.fp-1025
|
|
|
|
cacosh 0.0 0x1p-105
|
|
|
|
cacosh 0.0 -0x1p-105
|
|
|
|
cacosh -0.0 0x1p-105
|
|
|
|
cacosh -0.0 -0x1p-105
|
|
|
|
cacosh 0x1p-105 0.0
|
|
|
|
cacosh -0x1p-105 0.0
|
|
|
|
cacosh 0x1p-105 -0.0
|
|
|
|
cacosh -0x1p-105 -0.0
|
|
|
|
cacosh 0x1p-112 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacosh 0x1p-112 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacosh -0x1p-112 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacosh -0x1p-112 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacosh 0x0.ffffffffffffffffffffffffffff8p0 0x1p-112
|
|
|
|
cacosh -0x0.ffffffffffffffffffffffffffff8p0 0x1p-112
|
|
|
|
cacosh 0x0.ffffffffffffffffffffffffffff8p0 -0x1p-112
|
|
|
|
cacosh -0x0.ffffffffffffffffffffffffffff8p0 -0x1p-112
|
|
|
|
cacosh 0x1.fp-16385 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacosh 0x1.fp-16385 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacosh -0x1.fp-16385 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacosh -0x1.fp-16385 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacosh 0x0.ffffffffffffffffffffffffffff8p0 0x1.fp-16385
|
|
|
|
cacosh -0x0.ffffffffffffffffffffffffffff8p0 0x1.fp-16385
|
|
|
|
cacosh 0x0.ffffffffffffffffffffffffffff8p0 -0x1.fp-16385
|
|
|
|
cacosh -0x0.ffffffffffffffffffffffffffff8p0 -0x1.fp-16385
|
|
|
|
cacosh 0.0 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacosh 0.0 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacosh -0.0 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacosh -0.0 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
cacosh 0x0.ffffffffffffffffffffffffffff8p0 0.0
|
|
|
|
cacosh -0x0.ffffffffffffffffffffffffffff8p0 0.0
|
|
|
|
cacosh 0x0.ffffffffffffffffffffffffffff8p0 -0.0
|
|
|
|
cacosh -0x0.ffffffffffffffffffffffffffff8p0 -0.0
|
|
|
|
cacosh 0x1p-112 0.5
|
|
|
|
cacosh 0x1p-112 -0.5
|
|
|
|
cacosh -0x1p-112 0.5
|
|
|
|
cacosh -0x1p-112 -0.5
|
|
|
|
cacosh 0.5 0x1p-112
|
|
|
|
cacosh -0.5 0x1p-112
|
|
|
|
cacosh 0.5 -0x1p-112
|
|
|
|
cacosh -0.5 -0x1p-112
|
|
|
|
cacosh 0x1p-112 0x1p-112
|
|
|
|
cacosh 0x1p-112 -0x1p-112
|
|
|
|
cacosh -0x1p-112 0x1p-112
|
|
|
|
cacosh -0x1p-112 -0x1p-112
|
|
|
|
cacosh 0x1.fp-16385 0x1p-112
|
|
|
|
cacosh 0x1.fp-16385 -0x1p-112
|
|
|
|
cacosh -0x1.fp-16385 0x1p-112
|
|
|
|
cacosh -0x1.fp-16385 -0x1p-112
|
|
|
|
cacosh 0x1p-112 0x1.fp-16385
|
|
|
|
cacosh -0x1p-112 0x1.fp-16385
|
|
|
|
cacosh 0x1p-112 -0x1.fp-16385
|
|
|
|
cacosh -0x1p-112 -0x1.fp-16385
|
|
|
|
cacosh 0.0 0x1p-112
|
|
|
|
cacosh 0.0 -0x1p-112
|
|
|
|
cacosh -0.0 0x1p-112
|
|
|
|
cacosh -0.0 -0x1p-112
|
|
|
|
cacosh 0x1p-112 0.0
|
|
|
|
cacosh -0x1p-112 0.0
|
|
|
|
cacosh 0x1p-112 -0.0
|
|
|
|
cacosh -0x1p-112 -0.0
|
|
|
|
|
|
|
|
cacosh 0.75 1.25
|
|
|
|
cacosh -2 -3
|
|
|
|
|
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
|
Add more random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
carg -0x1.0a512ap-120 0xf.54681p-108
|
|
|
|
carg -0x3.be0054531569p-4 -0xb.0c5a9p-4
|
|
|
|
carg -0x1.0236b6p-20 0x2.a6e504p+108
|
|
|
|
carg 0x9.27b5fd9157b6c92b151371ca23d8p+0 0x1.d8759b9024992p+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
|
|
|
carg 0x8p-152 0x4p-1076
|
2013-12-19 21:28:30 +00:00
|
|
|
|
2017-02-17 18:14:02 +00:00
|
|
|
casin 0 0
|
|
|
|
casin -0 0
|
|
|
|
casin 0 -0
|
|
|
|
casin -0 -0
|
|
|
|
|
|
|
|
casin 0 -1.5
|
|
|
|
casin -0 -1.5
|
|
|
|
casin 0 -1.0
|
|
|
|
casin -0 -1.0
|
|
|
|
casin 0 -0.5
|
|
|
|
casin -0 -0.5
|
|
|
|
casin 0 0.5
|
|
|
|
casin -0 0.5
|
|
|
|
casin 0 1.0
|
|
|
|
casin -0 1.0
|
|
|
|
casin 0 1.5
|
|
|
|
casin -0 1.5
|
|
|
|
|
|
|
|
casin -1.5 0
|
|
|
|
casin -1.5 -0
|
|
|
|
casin -1.0 0
|
|
|
|
casin -1.0 -0
|
|
|
|
casin -0.5 0
|
|
|
|
casin -0.5 -0
|
|
|
|
casin 0.5 0
|
|
|
|
casin 0.5 -0
|
|
|
|
casin 1.0 0
|
|
|
|
casin 1.0 -0
|
|
|
|
casin 1.5 0
|
|
|
|
casin 1.5 -0
|
|
|
|
|
|
|
|
casin 0x1p50 1.0
|
|
|
|
casin 0x1p50 -1.0
|
|
|
|
casin -0x1p50 1.0
|
|
|
|
casin -0x1p50 -1.0
|
|
|
|
casin 1.0 0x1p50
|
|
|
|
casin -1.0 0x1p50
|
|
|
|
casin 1.0 -0x1p50
|
|
|
|
casin -1.0 -0x1p50
|
|
|
|
casin 0x1p500 1.0
|
|
|
|
casin 0x1p500 -1.0
|
|
|
|
casin -0x1p500 1.0
|
|
|
|
casin -0x1p500 -1.0
|
|
|
|
casin 1.0 0x1p500
|
|
|
|
casin -1.0 0x1p500
|
|
|
|
casin 1.0 -0x1p500
|
|
|
|
casin -1.0 -0x1p500
|
|
|
|
casin 0x1p5000 1.0
|
|
|
|
casin 0x1p5000 -1.0
|
|
|
|
casin -0x1p5000 1.0
|
|
|
|
casin -0x1p5000 -1.0
|
|
|
|
casin 1.0 0x1p5000
|
|
|
|
casin -1.0 0x1p5000
|
|
|
|
casin 1.0 -0x1p5000
|
|
|
|
casin -1.0 -0x1p5000
|
|
|
|
|
|
|
|
casin 0x1.fp127 0x1.fp127
|
|
|
|
casin 0x1.fp1023 0x1.fp1023
|
|
|
|
casin 0x1.fp16383 0x1.fp16383
|
|
|
|
|
|
|
|
casin 0x1.fp-129 1.5
|
|
|
|
casin 0x1.fp-129 -1.5
|
|
|
|
casin -0x1.fp-129 1.5
|
|
|
|
casin -0x1.fp-129 -1.5
|
|
|
|
casin 1.5 0x1.fp-129
|
|
|
|
casin -1.5 0x1.fp-129
|
|
|
|
casin 1.5 -0x1.fp-129
|
|
|
|
casin -1.5 -0x1.fp-129
|
|
|
|
casin 0x1.fp-1025 1.5
|
|
|
|
casin 0x1.fp-1025 -1.5
|
|
|
|
casin -0x1.fp-1025 1.5
|
|
|
|
casin -0x1.fp-1025 -1.5
|
|
|
|
casin 1.5 0x1.fp-1025
|
|
|
|
casin -1.5 0x1.fp-1025
|
|
|
|
casin 1.5 -0x1.fp-1025
|
|
|
|
casin -1.5 -0x1.fp-1025
|
|
|
|
casin 0x1.fp-16385 1.5
|
|
|
|
casin 0x1.fp-16385 -1.5
|
|
|
|
casin -0x1.fp-16385 1.5
|
|
|
|
casin -0x1.fp-16385 -1.5
|
|
|
|
casin 1.5 0x1.fp-16385
|
|
|
|
casin -1.5 0x1.fp-16385
|
|
|
|
casin 1.5 -0x1.fp-16385
|
|
|
|
casin -1.5 -0x1.fp-16385
|
|
|
|
|
|
|
|
casin 0.5 1.0
|
|
|
|
casin 0.5 -1.0
|
|
|
|
casin -0.5 1.0
|
|
|
|
casin -0.5 -1.0
|
|
|
|
casin 1.0 0.5
|
|
|
|
casin -1.0 0.5
|
|
|
|
casin 1.0 -0.5
|
|
|
|
casin -1.0 -0.5
|
|
|
|
casin 0.25 1.0
|
|
|
|
casin 0.25 -1.0
|
|
|
|
casin -0.25 1.0
|
|
|
|
casin -0.25 -1.0
|
|
|
|
casin 1.0 0.25
|
|
|
|
casin -1.0 0.25
|
|
|
|
casin 1.0 -0.25
|
|
|
|
casin -1.0 -0.25
|
|
|
|
casin 0x1.fp-10 1.0
|
|
|
|
casin 0x1.fp-10 -1.0
|
|
|
|
casin -0x1.fp-10 1.0
|
|
|
|
casin -0x1.fp-10 -1.0
|
|
|
|
casin 1.0 0x1.fp-10
|
|
|
|
casin -1.0 0x1.fp-10
|
|
|
|
casin 1.0 -0x1.fp-10
|
|
|
|
casin -1.0 -0x1.fp-10
|
|
|
|
casin 0x1.fp-30 1.0
|
|
|
|
casin 0x1.fp-30 -1.0
|
|
|
|
casin -0x1.fp-30 1.0
|
|
|
|
casin -0x1.fp-30 -1.0
|
|
|
|
casin 1.0 0x1.fp-30
|
|
|
|
casin -1.0 0x1.fp-30
|
|
|
|
casin 1.0 -0x1.fp-30
|
|
|
|
casin -1.0 -0x1.fp-30
|
|
|
|
casin 0x1.fp-100 1.0
|
|
|
|
casin 0x1.fp-100 -1.0
|
|
|
|
casin -0x1.fp-100 1.0
|
|
|
|
casin -0x1.fp-100 -1.0
|
|
|
|
casin 1.0 0x1.fp-100
|
|
|
|
casin -1.0 0x1.fp-100
|
|
|
|
casin 1.0 -0x1.fp-100
|
|
|
|
casin -1.0 -0x1.fp-100
|
|
|
|
casin 0x1.fp-129 1.0
|
|
|
|
casin 0x1.fp-129 -1.0
|
|
|
|
casin -0x1.fp-129 1.0
|
|
|
|
casin -0x1.fp-129 -1.0
|
|
|
|
casin 1.0 0x1.fp-129
|
|
|
|
casin -1.0 0x1.fp-129
|
|
|
|
casin 1.0 -0x1.fp-129
|
|
|
|
casin -1.0 -0x1.fp-129
|
|
|
|
casin 0x1.fp-1000 1.0
|
|
|
|
casin 0x1.fp-1000 -1.0
|
|
|
|
casin -0x1.fp-1000 1.0
|
|
|
|
casin -0x1.fp-1000 -1.0
|
|
|
|
casin 1.0 0x1.fp-1000
|
|
|
|
casin -1.0 0x1.fp-1000
|
|
|
|
casin 1.0 -0x1.fp-1000
|
|
|
|
casin -1.0 -0x1.fp-1000
|
|
|
|
casin 0x1.fp-1025 1.0
|
|
|
|
casin 0x1.fp-1025 -1.0
|
|
|
|
casin -0x1.fp-1025 1.0
|
|
|
|
casin -0x1.fp-1025 -1.0
|
|
|
|
casin 1.0 0x1.fp-1025
|
|
|
|
casin -1.0 0x1.fp-1025
|
|
|
|
casin 1.0 -0x1.fp-1025
|
|
|
|
casin -1.0 -0x1.fp-1025
|
|
|
|
casin 0x1.fp-10000 1.0
|
|
|
|
casin 0x1.fp-10000 -1.0
|
|
|
|
casin -0x1.fp-10000 1.0
|
|
|
|
casin -0x1.fp-10000 -1.0
|
|
|
|
casin 1.0 0x1.fp-10000
|
|
|
|
casin -1.0 0x1.fp-10000
|
|
|
|
casin 1.0 -0x1.fp-10000
|
|
|
|
casin -1.0 -0x1.fp-10000
|
|
|
|
casin 0x1.fp-16385 1.0
|
|
|
|
casin 0x1.fp-16385 -1.0
|
|
|
|
casin -0x1.fp-16385 1.0
|
|
|
|
casin -0x1.fp-16385 -1.0
|
|
|
|
casin 1.0 0x1.fp-16385
|
|
|
|
casin -1.0 0x1.fp-16385
|
|
|
|
casin 1.0 -0x1.fp-16385
|
|
|
|
casin -1.0 -0x1.fp-16385
|
|
|
|
|
|
|
|
casin 0x1p-23 0x1.000002p0
|
|
|
|
casin 0x1p-23 -0x1.000002p0
|
|
|
|
casin -0x1p-23 0x1.000002p0
|
|
|
|
casin -0x1p-23 -0x1.000002p0
|
|
|
|
casin 0x1.000002p0 0x1p-23
|
|
|
|
casin -0x1.000002p0 0x1p-23
|
|
|
|
casin 0x1.000002p0 -0x1p-23
|
|
|
|
casin -0x1.000002p0 -0x1p-23
|
|
|
|
casin 0x1.fp-129 0x1.000002p0
|
|
|
|
casin 0x1.fp-129 -0x1.000002p0
|
|
|
|
casin -0x1.fp-129 0x1.000002p0
|
|
|
|
casin -0x1.fp-129 -0x1.000002p0
|
|
|
|
casin 0x1.000002p0 0x1.fp-129
|
|
|
|
casin -0x1.000002p0 0x1.fp-129
|
|
|
|
casin 0x1.000002p0 -0x1.fp-129
|
|
|
|
casin -0x1.000002p0 -0x1.fp-129
|
|
|
|
casin 0.0 0x1.000002p0
|
|
|
|
casin 0.0 -0x1.000002p0
|
|
|
|
casin -0.0 0x1.000002p0
|
|
|
|
casin -0.0 -0x1.000002p0
|
|
|
|
casin 0x1.000002p0 0.0
|
|
|
|
casin -0x1.000002p0 0.0
|
|
|
|
casin 0x1.000002p0 -0.0
|
|
|
|
casin -0x1.000002p0 -0.0
|
|
|
|
casin 0x1p-52 0x1.0000000000001p0
|
|
|
|
casin 0x1p-52 -0x1.0000000000001p0
|
|
|
|
casin -0x1p-52 0x1.0000000000001p0
|
|
|
|
casin -0x1p-52 -0x1.0000000000001p0
|
|
|
|
casin 0x1.0000000000001p0 0x1p-52
|
|
|
|
casin -0x1.0000000000001p0 0x1p-52
|
|
|
|
casin 0x1.0000000000001p0 -0x1p-52
|
|
|
|
casin -0x1.0000000000001p0 -0x1p-52
|
|
|
|
casin 0x1.fp-1025 0x1.0000000000001p0
|
|
|
|
casin 0x1.fp-1025 -0x1.0000000000001p0
|
|
|
|
casin -0x1.fp-1025 0x1.0000000000001p0
|
|
|
|
casin -0x1.fp-1025 -0x1.0000000000001p0
|
|
|
|
casin 0x1.0000000000001p0 0x1.fp-1025
|
|
|
|
casin -0x1.0000000000001p0 0x1.fp-1025
|
|
|
|
casin 0x1.0000000000001p0 -0x1.fp-1025
|
|
|
|
casin -0x1.0000000000001p0 -0x1.fp-1025
|
|
|
|
casin 0.0 0x1.0000000000001p0
|
|
|
|
casin 0.0 -0x1.0000000000001p0
|
|
|
|
casin -0.0 0x1.0000000000001p0
|
|
|
|
casin -0.0 -0x1.0000000000001p0
|
|
|
|
casin 0x1.0000000000001p0 0.0
|
|
|
|
casin -0x1.0000000000001p0 0.0
|
|
|
|
casin 0x1.0000000000001p0 -0.0
|
|
|
|
casin -0x1.0000000000001p0 -0.0
|
|
|
|
casin 0x1p-63 0x1.0000000000000002p0
|
|
|
|
casin 0x1p-63 -0x1.0000000000000002p0
|
|
|
|
casin -0x1p-63 0x1.0000000000000002p0
|
|
|
|
casin -0x1p-63 -0x1.0000000000000002p0
|
|
|
|
casin 0x1.0000000000000002p0 0x1p-63
|
|
|
|
casin -0x1.0000000000000002p0 0x1p-63
|
|
|
|
casin 0x1.0000000000000002p0 -0x1p-63
|
|
|
|
casin -0x1.0000000000000002p0 -0x1p-63
|
|
|
|
casin 0x1.fp-16385 0x1.0000000000000002p0
|
|
|
|
casin 0x1.fp-16385 -0x1.0000000000000002p0
|
|
|
|
casin -0x1.fp-16385 0x1.0000000000000002p0
|
|
|
|
casin -0x1.fp-16385 -0x1.0000000000000002p0
|
|
|
|
casin 0x1.0000000000000002p0 0x1.fp-16385
|
|
|
|
casin -0x1.0000000000000002p0 0x1.fp-16385
|
|
|
|
casin 0x1.0000000000000002p0 -0x1.fp-16385
|
|
|
|
casin -0x1.0000000000000002p0 -0x1.fp-16385
|
|
|
|
casin 0.0 0x1.0000000000000002p0
|
|
|
|
casin 0.0 -0x1.0000000000000002p0
|
|
|
|
casin -0.0 0x1.0000000000000002p0
|
|
|
|
casin -0.0 -0x1.0000000000000002p0
|
|
|
|
casin 0x1.0000000000000002p0 0.0
|
|
|
|
casin -0x1.0000000000000002p0 0.0
|
|
|
|
casin 0x1.0000000000000002p0 -0.0
|
|
|
|
casin -0x1.0000000000000002p0 -0.0
|
|
|
|
casin 0x1p-106 0x1.000000000000000000000000008p0
|
|
|
|
casin 0x1p-106 -0x1.000000000000000000000000008p0
|
|
|
|
casin -0x1p-106 0x1.000000000000000000000000008p0
|
|
|
|
casin -0x1p-106 -0x1.000000000000000000000000008p0
|
|
|
|
casin 0x1.000000000000000000000000008p0 0x1p-106
|
|
|
|
casin -0x1.000000000000000000000000008p0 0x1p-106
|
|
|
|
casin 0x1.000000000000000000000000008p0 -0x1p-106
|
|
|
|
casin -0x1.000000000000000000000000008p0 -0x1p-106
|
|
|
|
casin 0x1.fp-1025 0x1.000000000000000000000000008p0
|
|
|
|
casin 0x1.fp-1025 -0x1.000000000000000000000000008p0
|
|
|
|
casin -0x1.fp-1025 0x1.000000000000000000000000008p0
|
|
|
|
casin -0x1.fp-1025 -0x1.000000000000000000000000008p0
|
|
|
|
casin 0x1.000000000000000000000000008p0 0x1.fp-1025
|
|
|
|
casin -0x1.000000000000000000000000008p0 0x1.fp-1025
|
|
|
|
casin 0x1.000000000000000000000000008p0 -0x1.fp-1025
|
|
|
|
casin -0x1.000000000000000000000000008p0 -0x1.fp-1025
|
|
|
|
casin 0.0 0x1.000000000000000000000000008p0
|
|
|
|
casin 0.0 -0x1.000000000000000000000000008p0
|
|
|
|
casin -0.0 0x1.000000000000000000000000008p0
|
|
|
|
casin -0.0 -0x1.000000000000000000000000008p0
|
|
|
|
casin 0x1.000000000000000000000000008p0 0.0
|
|
|
|
casin -0x1.000000000000000000000000008p0 0.0
|
|
|
|
casin 0x1.000000000000000000000000008p0 -0.0
|
|
|
|
casin -0x1.000000000000000000000000008p0 -0.0
|
|
|
|
casin 0x1p-113 0x1.0000000000000000000000000001p0
|
|
|
|
casin 0x1p-113 -0x1.0000000000000000000000000001p0
|
|
|
|
casin -0x1p-113 0x1.0000000000000000000000000001p0
|
|
|
|
casin -0x1p-113 -0x1.0000000000000000000000000001p0
|
|
|
|
casin 0x1.0000000000000000000000000001p0 0x1p-113
|
|
|
|
casin -0x1.0000000000000000000000000001p0 0x1p-113
|
|
|
|
casin 0x1.0000000000000000000000000001p0 -0x1p-113
|
|
|
|
casin -0x1.0000000000000000000000000001p0 -0x1p-113
|
|
|
|
casin 0x1.fp-16385 0x1.0000000000000000000000000001p0
|
|
|
|
casin 0x1.fp-16385 -0x1.0000000000000000000000000001p0
|
|
|
|
casin -0x1.fp-16385 0x1.0000000000000000000000000001p0
|
|
|
|
casin -0x1.fp-16385 -0x1.0000000000000000000000000001p0
|
|
|
|
casin 0x1.0000000000000000000000000001p0 0x1.fp-16385
|
|
|
|
casin -0x1.0000000000000000000000000001p0 0x1.fp-16385
|
|
|
|
casin 0x1.0000000000000000000000000001p0 -0x1.fp-16385
|
|
|
|
casin -0x1.0000000000000000000000000001p0 -0x1.fp-16385
|
|
|
|
casin 0.0 0x1.0000000000000000000000000001p0
|
|
|
|
casin 0.0 -0x1.0000000000000000000000000001p0
|
|
|
|
casin -0.0 0x1.0000000000000000000000000001p0
|
|
|
|
casin -0.0 -0x1.0000000000000000000000000001p0
|
|
|
|
casin 0x1.0000000000000000000000000001p0 0.0
|
|
|
|
casin -0x1.0000000000000000000000000001p0 0.0
|
|
|
|
casin 0x1.0000000000000000000000000001p0 -0.0
|
|
|
|
casin -0x1.0000000000000000000000000001p0 -0.0
|
|
|
|
|
|
|
|
casin 0x1p-23 0x0.ffffffp0
|
|
|
|
casin 0x1p-23 -0x0.ffffffp0
|
|
|
|
casin -0x1p-23 0x0.ffffffp0
|
|
|
|
casin -0x1p-23 -0x0.ffffffp0
|
|
|
|
casin 0x0.ffffffp0 0x1p-23
|
|
|
|
casin -0x0.ffffffp0 0x1p-23
|
|
|
|
casin 0x0.ffffffp0 -0x1p-23
|
|
|
|
casin -0x0.ffffffp0 -0x1p-23
|
|
|
|
casin 0x1.fp-129 0x0.ffffffp0
|
|
|
|
casin 0x1.fp-129 -0x0.ffffffp0
|
|
|
|
casin -0x1.fp-129 0x0.ffffffp0
|
|
|
|
casin -0x1.fp-129 -0x0.ffffffp0
|
|
|
|
casin 0x0.ffffffp0 0x1.fp-129
|
|
|
|
casin -0x0.ffffffp0 0x1.fp-129
|
|
|
|
casin 0x0.ffffffp0 -0x1.fp-129
|
|
|
|
casin -0x0.ffffffp0 -0x1.fp-129
|
|
|
|
casin 0.0 0x0.ffffffp0
|
|
|
|
casin 0.0 -0x0.ffffffp0
|
|
|
|
casin -0.0 0x0.ffffffp0
|
|
|
|
casin -0.0 -0x0.ffffffp0
|
|
|
|
casin 0x0.ffffffp0 0.0
|
|
|
|
casin -0x0.ffffffp0 0.0
|
|
|
|
casin 0x0.ffffffp0 -0.0
|
|
|
|
casin -0x0.ffffffp0 -0.0
|
|
|
|
casin 0x1p-23 0.5
|
|
|
|
casin 0x1p-23 -0.5
|
|
|
|
casin -0x1p-23 0.5
|
|
|
|
casin -0x1p-23 -0.5
|
|
|
|
casin 0.5 0x1p-23
|
|
|
|
casin -0.5 0x1p-23
|
|
|
|
casin 0.5 -0x1p-23
|
|
|
|
casin -0.5 -0x1p-23
|
|
|
|
casin 0x1.fp-129 0.5
|
|
|
|
casin 0x1.fp-129 -0.5
|
|
|
|
casin -0x1.fp-129 0.5
|
|
|
|
casin -0x1.fp-129 -0.5
|
|
|
|
casin 0.5 0x1.fp-129
|
|
|
|
casin -0.5 0x1.fp-129
|
|
|
|
casin 0.5 -0x1.fp-129
|
|
|
|
casin -0.5 -0x1.fp-129
|
|
|
|
casin 0x1p-23 0x1p-23
|
|
|
|
casin 0x1p-23 -0x1p-23
|
|
|
|
casin -0x1p-23 0x1p-23
|
|
|
|
casin -0x1p-23 -0x1p-23
|
|
|
|
casin 0x1.fp-129 0x1p-23
|
|
|
|
casin 0x1.fp-129 -0x1p-23
|
|
|
|
casin -0x1.fp-129 0x1p-23
|
|
|
|
casin -0x1.fp-129 -0x1p-23
|
|
|
|
casin 0x1p-23 0x1.fp-129
|
|
|
|
casin -0x1p-23 0x1.fp-129
|
|
|
|
casin 0x1p-23 -0x1.fp-129
|
|
|
|
casin -0x1p-23 -0x1.fp-129
|
|
|
|
casin 0.0 0x1p-23
|
|
|
|
casin 0.0 -0x1p-23
|
|
|
|
casin -0.0 0x1p-23
|
|
|
|
casin -0.0 -0x1p-23
|
|
|
|
casin 0x1p-23 0.0
|
|
|
|
casin -0x1p-23 0.0
|
|
|
|
casin 0x1p-23 -0.0
|
|
|
|
casin -0x1p-23 -0.0
|
|
|
|
casin 0x1.fp-129 0x1.fp-129
|
|
|
|
casin 0x1.fp-129 -0x1.fp-129
|
|
|
|
casin -0x1.fp-129 0x1.fp-129
|
|
|
|
casin -0x1.fp-129 -0x1.fp-129
|
|
|
|
casin 0x1p-52 0x0.fffffffffffff8p0
|
|
|
|
casin 0x1p-52 -0x0.fffffffffffff8p0
|
|
|
|
casin -0x1p-52 0x0.fffffffffffff8p0
|
|
|
|
casin -0x1p-52 -0x0.fffffffffffff8p0
|
|
|
|
casin 0x0.fffffffffffff8p0 0x1p-52
|
|
|
|
casin -0x0.fffffffffffff8p0 0x1p-52
|
|
|
|
casin 0x0.fffffffffffff8p0 -0x1p-52
|
|
|
|
casin -0x0.fffffffffffff8p0 -0x1p-52
|
|
|
|
casin 0x1.fp-1025 0x0.fffffffffffff8p0
|
|
|
|
casin 0x1.fp-1025 -0x0.fffffffffffff8p0
|
|
|
|
casin -0x1.fp-1025 0x0.fffffffffffff8p0
|
|
|
|
casin -0x1.fp-1025 -0x0.fffffffffffff8p0
|
|
|
|
casin 0x0.fffffffffffff8p0 0x1.fp-1025
|
|
|
|
casin -0x0.fffffffffffff8p0 0x1.fp-1025
|
|
|
|
casin 0x0.fffffffffffff8p0 -0x1.fp-1025
|
|
|
|
casin -0x0.fffffffffffff8p0 -0x1.fp-1025
|
|
|
|
casin 0.0 0x0.fffffffffffff8p0
|
|
|
|
casin 0.0 -0x0.fffffffffffff8p0
|
|
|
|
casin -0.0 0x0.fffffffffffff8p0
|
|
|
|
casin -0.0 -0x0.fffffffffffff8p0
|
|
|
|
casin 0x0.fffffffffffff8p0 0.0
|
|
|
|
casin -0x0.fffffffffffff8p0 0.0
|
|
|
|
casin 0x0.fffffffffffff8p0 -0.0
|
|
|
|
casin -0x0.fffffffffffff8p0 -0.0
|
|
|
|
casin 0x1p-52 0.5
|
|
|
|
casin 0x1p-52 -0.5
|
|
|
|
casin -0x1p-52 0.5
|
|
|
|
casin -0x1p-52 -0.5
|
|
|
|
casin 0.5 0x1p-52
|
|
|
|
casin -0.5 0x1p-52
|
|
|
|
casin 0.5 -0x1p-52
|
|
|
|
casin -0.5 -0x1p-52
|
|
|
|
casin 0x1.fp-1025 0.5
|
|
|
|
casin 0x1.fp-1025 -0.5
|
|
|
|
casin -0x1.fp-1025 0.5
|
|
|
|
casin -0x1.fp-1025 -0.5
|
|
|
|
casin 0.5 0x1.fp-1025
|
|
|
|
casin -0.5 0x1.fp-1025
|
|
|
|
casin 0.5 -0x1.fp-1025
|
|
|
|
casin -0.5 -0x1.fp-1025
|
|
|
|
casin 0x1p-52 0x1p-52
|
|
|
|
casin 0x1p-52 -0x1p-52
|
|
|
|
casin -0x1p-52 0x1p-52
|
|
|
|
casin -0x1p-52 -0x1p-52
|
|
|
|
casin 0x1.fp-1025 0x1p-52
|
|
|
|
casin 0x1.fp-1025 -0x1p-52
|
|
|
|
casin -0x1.fp-1025 0x1p-52
|
|
|
|
casin -0x1.fp-1025 -0x1p-52
|
|
|
|
casin 0x1p-52 0x1.fp-1025
|
|
|
|
casin -0x1p-52 0x1.fp-1025
|
|
|
|
casin 0x1p-52 -0x1.fp-1025
|
|
|
|
casin -0x1p-52 -0x1.fp-1025
|
|
|
|
casin 0.0 0x1p-52
|
|
|
|
casin 0.0 -0x1p-52
|
|
|
|
casin -0.0 0x1p-52
|
|
|
|
casin -0.0 -0x1p-52
|
|
|
|
casin 0x1p-52 0.0
|
|
|
|
casin -0x1p-52 0.0
|
|
|
|
casin 0x1p-52 -0.0
|
|
|
|
casin -0x1p-52 -0.0
|
|
|
|
casin 0x1.fp-1025 0x1.fp-1025
|
|
|
|
casin 0x1.fp-1025 -0x1.fp-1025
|
|
|
|
casin -0x1.fp-1025 0x1.fp-1025
|
|
|
|
casin -0x1.fp-1025 -0x1.fp-1025
|
|
|
|
casin 0x1p-63 0x0.ffffffffffffffffp0
|
|
|
|
casin 0x1p-63 -0x0.ffffffffffffffffp0
|
|
|
|
casin -0x1p-63 0x0.ffffffffffffffffp0
|
|
|
|
casin -0x1p-63 -0x0.ffffffffffffffffp0
|
|
|
|
casin 0x0.ffffffffffffffffp0 0x1p-63
|
|
|
|
casin -0x0.ffffffffffffffffp0 0x1p-63
|
|
|
|
casin 0x0.ffffffffffffffffp0 -0x1p-63
|
|
|
|
casin -0x0.ffffffffffffffffp0 -0x1p-63
|
|
|
|
casin 0x1.fp-16385 0x0.ffffffffffffffffp0
|
|
|
|
casin 0x1.fp-16385 -0x0.ffffffffffffffffp0
|
|
|
|
casin -0x1.fp-16385 0x0.ffffffffffffffffp0
|
|
|
|
casin -0x1.fp-16385 -0x0.ffffffffffffffffp0
|
|
|
|
casin 0x0.ffffffffffffffffp0 0x1.fp-16385
|
|
|
|
casin -0x0.ffffffffffffffffp0 0x1.fp-16385
|
|
|
|
casin 0x0.ffffffffffffffffp0 -0x1.fp-16385
|
|
|
|
casin -0x0.ffffffffffffffffp0 -0x1.fp-16385
|
|
|
|
casin 0.0 0x0.ffffffffffffffffp0
|
|
|
|
casin 0.0 -0x0.ffffffffffffffffp0
|
|
|
|
casin -0.0 0x0.ffffffffffffffffp0
|
|
|
|
casin -0.0 -0x0.ffffffffffffffffp0
|
|
|
|
casin 0x0.ffffffffffffffffp0 0.0
|
|
|
|
casin -0x0.ffffffffffffffffp0 0.0
|
|
|
|
casin 0x0.ffffffffffffffffp0 -0.0
|
|
|
|
casin -0x0.ffffffffffffffffp0 -0.0
|
|
|
|
casin 0x1p-63 0.5
|
|
|
|
casin 0x1p-63 -0.5
|
|
|
|
casin -0x1p-63 0.5
|
|
|
|
casin -0x1p-63 -0.5
|
|
|
|
casin 0.5 0x1p-63
|
|
|
|
casin -0.5 0x1p-63
|
|
|
|
casin 0.5 -0x1p-63
|
|
|
|
casin -0.5 -0x1p-63
|
|
|
|
casin 0x1.fp-16385 0.5
|
|
|
|
casin 0x1.fp-16385 -0.5
|
|
|
|
casin -0x1.fp-16385 0.5
|
|
|
|
casin -0x1.fp-16385 -0.5
|
|
|
|
casin 0.5 0x1.fp-16385
|
|
|
|
casin -0.5 0x1.fp-16385
|
|
|
|
casin 0.5 -0x1.fp-16385
|
|
|
|
casin -0.5 -0x1.fp-16385
|
|
|
|
casin 0x1p-63 0x1p-63
|
|
|
|
casin 0x1p-63 -0x1p-63
|
|
|
|
casin -0x1p-63 0x1p-63
|
|
|
|
casin -0x1p-63 -0x1p-63
|
|
|
|
casin 0x1.fp-16385 0x1p-63
|
|
|
|
casin 0x1.fp-16385 -0x1p-63
|
|
|
|
casin -0x1.fp-16385 0x1p-63
|
|
|
|
casin -0x1.fp-16385 -0x1p-63
|
|
|
|
casin 0x1p-63 0x1.fp-16385
|
|
|
|
casin -0x1p-63 0x1.fp-16385
|
|
|
|
casin 0x1p-63 -0x1.fp-16385
|
|
|
|
casin -0x1p-63 -0x1.fp-16385
|
|
|
|
casin 0.0 0x1p-63
|
|
|
|
casin 0.0 -0x1p-63
|
|
|
|
casin -0.0 0x1p-63
|
|
|
|
casin -0.0 -0x1p-63
|
|
|
|
casin 0x1p-63 0.0
|
|
|
|
casin -0x1p-63 0.0
|
|
|
|
casin 0x1p-63 -0.0
|
|
|
|
casin -0x1p-63 -0.0
|
|
|
|
casin 0x1.fp-16385 0x1.fp-16385
|
|
|
|
casin 0x1.fp-16385 -0x1.fp-16385
|
|
|
|
casin -0x1.fp-16385 0x1.fp-16385
|
|
|
|
casin -0x1.fp-16385 -0x1.fp-16385
|
|
|
|
casin 0x1p-105 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casin 0x1p-105 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casin -0x1p-105 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casin -0x1p-105 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casin 0x0.ffffffffffffffffffffffffffcp0 0x1p-105
|
|
|
|
casin -0x0.ffffffffffffffffffffffffffcp0 0x1p-105
|
|
|
|
casin 0x0.ffffffffffffffffffffffffffcp0 -0x1p-105
|
|
|
|
casin -0x0.ffffffffffffffffffffffffffcp0 -0x1p-105
|
|
|
|
casin 0x1.fp-1025 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casin 0x1.fp-1025 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casin -0x1.fp-1025 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casin -0x1.fp-1025 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casin 0x0.ffffffffffffffffffffffffffcp0 0x1.fp-1025
|
|
|
|
casin -0x0.ffffffffffffffffffffffffffcp0 0x1.fp-1025
|
|
|
|
casin 0x0.ffffffffffffffffffffffffffcp0 -0x1.fp-1025
|
|
|
|
casin -0x0.ffffffffffffffffffffffffffcp0 -0x1.fp-1025
|
|
|
|
casin 0.0 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casin 0.0 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casin -0.0 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casin -0.0 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casin 0x0.ffffffffffffffffffffffffffcp0 0.0
|
|
|
|
casin -0x0.ffffffffffffffffffffffffffcp0 0.0
|
|
|
|
casin 0x0.ffffffffffffffffffffffffffcp0 -0.0
|
|
|
|
casin -0x0.ffffffffffffffffffffffffffcp0 -0.0
|
|
|
|
casin 0x1p-105 0.5
|
|
|
|
casin 0x1p-105 -0.5
|
|
|
|
casin -0x1p-105 0.5
|
|
|
|
casin -0x1p-105 -0.5
|
|
|
|
casin 0.5 0x1p-105
|
|
|
|
casin -0.5 0x1p-105
|
|
|
|
casin 0.5 -0x1p-105
|
|
|
|
casin -0.5 -0x1p-105
|
|
|
|
casin 0x1p-105 0x1p-105
|
|
|
|
casin 0x1p-105 -0x1p-105
|
|
|
|
casin -0x1p-105 0x1p-105
|
|
|
|
casin -0x1p-105 -0x1p-105
|
|
|
|
casin 0x1.fp-1025 0x1p-105
|
|
|
|
casin 0x1.fp-1025 -0x1p-105
|
|
|
|
casin -0x1.fp-1025 0x1p-105
|
|
|
|
casin -0x1.fp-1025 -0x1p-105
|
|
|
|
casin 0x1p-105 0x1.fp-1025
|
|
|
|
casin -0x1p-105 0x1.fp-1025
|
|
|
|
casin 0x1p-105 -0x1.fp-1025
|
|
|
|
casin -0x1p-105 -0x1.fp-1025
|
|
|
|
casin 0.0 0x1p-105
|
|
|
|
casin 0.0 -0x1p-105
|
|
|
|
casin -0.0 0x1p-105
|
|
|
|
casin -0.0 -0x1p-105
|
|
|
|
casin 0x1p-105 0.0
|
|
|
|
casin -0x1p-105 0.0
|
|
|
|
casin 0x1p-105 -0.0
|
|
|
|
casin -0x1p-105 -0.0
|
|
|
|
casin 0x1p-112 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casin 0x1p-112 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casin -0x1p-112 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casin -0x1p-112 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casin 0x0.ffffffffffffffffffffffffffff8p0 0x1p-112
|
|
|
|
casin -0x0.ffffffffffffffffffffffffffff8p0 0x1p-112
|
|
|
|
casin 0x0.ffffffffffffffffffffffffffff8p0 -0x1p-112
|
|
|
|
casin -0x0.ffffffffffffffffffffffffffff8p0 -0x1p-112
|
|
|
|
casin 0x1.fp-16385 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casin 0x1.fp-16385 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casin -0x1.fp-16385 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casin -0x1.fp-16385 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casin 0x0.ffffffffffffffffffffffffffff8p0 0x1.fp-16385
|
|
|
|
casin -0x0.ffffffffffffffffffffffffffff8p0 0x1.fp-16385
|
|
|
|
casin 0x0.ffffffffffffffffffffffffffff8p0 -0x1.fp-16385
|
|
|
|
casin -0x0.ffffffffffffffffffffffffffff8p0 -0x1.fp-16385
|
|
|
|
casin 0.0 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casin 0.0 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casin -0.0 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casin -0.0 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casin 0x0.ffffffffffffffffffffffffffff8p0 0.0
|
|
|
|
casin -0x0.ffffffffffffffffffffffffffff8p0 0.0
|
|
|
|
casin 0x0.ffffffffffffffffffffffffffff8p0 -0.0
|
|
|
|
casin -0x0.ffffffffffffffffffffffffffff8p0 -0.0
|
|
|
|
casin 0x1p-112 0.5
|
|
|
|
casin 0x1p-112 -0.5
|
|
|
|
casin -0x1p-112 0.5
|
|
|
|
casin -0x1p-112 -0.5
|
|
|
|
casin 0.5 0x1p-112
|
|
|
|
casin -0.5 0x1p-112
|
|
|
|
casin 0.5 -0x1p-112
|
|
|
|
casin -0.5 -0x1p-112
|
|
|
|
casin 0x1p-112 0x1p-112
|
|
|
|
casin 0x1p-112 -0x1p-112
|
|
|
|
casin -0x1p-112 0x1p-112
|
|
|
|
casin -0x1p-112 -0x1p-112
|
|
|
|
casin 0x1.fp-16385 0x1p-112
|
|
|
|
casin 0x1.fp-16385 -0x1p-112
|
|
|
|
casin -0x1.fp-16385 0x1p-112
|
|
|
|
casin -0x1.fp-16385 -0x1p-112
|
|
|
|
casin 0x1p-112 0x1.fp-16385
|
|
|
|
casin -0x1p-112 0x1.fp-16385
|
|
|
|
casin 0x1p-112 -0x1.fp-16385
|
|
|
|
casin -0x1p-112 -0x1.fp-16385
|
|
|
|
casin 0.0 0x1p-112
|
|
|
|
casin 0.0 -0x1p-112
|
|
|
|
casin -0.0 0x1p-112
|
|
|
|
casin -0.0 -0x1p-112
|
|
|
|
casin 0x1p-112 0.0
|
|
|
|
casin -0x1p-112 0.0
|
|
|
|
casin 0x1p-112 -0.0
|
|
|
|
casin -0x1p-112 -0.0
|
|
|
|
|
|
|
|
casin 0.75 1.25
|
|
|
|
casin -2 -3
|
|
|
|
|
|
|
|
casinh 0 0
|
|
|
|
casinh -0 0
|
|
|
|
casinh 0 -0
|
|
|
|
casinh -0 -0
|
|
|
|
|
|
|
|
casinh 0 -1.5
|
|
|
|
casinh -0 -1.5
|
|
|
|
casinh 0 -1.0
|
|
|
|
casinh -0 -1.0
|
|
|
|
casinh 0 -0.5
|
|
|
|
casinh -0 -0.5
|
|
|
|
casinh 0 0.5
|
|
|
|
casinh -0 0.5
|
|
|
|
casinh 0 1.0
|
|
|
|
casinh -0 1.0
|
|
|
|
casinh 0 1.5
|
|
|
|
casinh -0 1.5
|
|
|
|
|
|
|
|
casinh -1.5 0
|
|
|
|
casinh -1.5 -0
|
|
|
|
casinh -1.0 0
|
|
|
|
casinh -1.0 -0
|
|
|
|
casinh -0.5 0
|
|
|
|
casinh -0.5 -0
|
|
|
|
casinh 0.5 0
|
|
|
|
casinh 0.5 -0
|
|
|
|
casinh 1.0 0
|
|
|
|
casinh 1.0 -0
|
|
|
|
casinh 1.5 0
|
|
|
|
casinh 1.5 -0
|
|
|
|
|
|
|
|
casinh 0x1p50 1.0
|
|
|
|
casinh 0x1p50 -1.0
|
|
|
|
casinh -0x1p50 1.0
|
|
|
|
casinh -0x1p50 -1.0
|
|
|
|
casinh 1.0 0x1p50
|
|
|
|
casinh -1.0 0x1p50
|
|
|
|
casinh 1.0 -0x1p50
|
|
|
|
casinh -1.0 -0x1p50
|
|
|
|
casinh 0x1p500 1.0
|
|
|
|
casinh 0x1p500 -1.0
|
|
|
|
casinh -0x1p500 1.0
|
|
|
|
casinh -0x1p500 -1.0
|
|
|
|
casinh 1.0 0x1p500
|
|
|
|
casinh -1.0 0x1p500
|
|
|
|
casinh 1.0 -0x1p500
|
|
|
|
casinh -1.0 -0x1p500
|
|
|
|
casinh 0x1p5000 1.0
|
|
|
|
casinh 0x1p5000 -1.0
|
|
|
|
casinh -0x1p5000 1.0
|
|
|
|
casinh -0x1p5000 -1.0
|
|
|
|
casinh 1.0 0x1p5000
|
|
|
|
casinh -1.0 0x1p5000
|
|
|
|
casinh 1.0 -0x1p5000
|
|
|
|
casinh -1.0 -0x1p5000
|
|
|
|
|
|
|
|
casinh 0x1.fp127 0x1.fp127
|
|
|
|
casinh 0x1.fp1023 0x1.fp1023
|
|
|
|
casinh 0x1.fp16383 0x1.fp16383
|
|
|
|
|
|
|
|
casinh 0x1.fp-129 1.5
|
|
|
|
casinh 0x1.fp-129 -1.5
|
|
|
|
casinh -0x1.fp-129 1.5
|
|
|
|
casinh -0x1.fp-129 -1.5
|
|
|
|
casinh 1.5 0x1.fp-129
|
|
|
|
casinh -1.5 0x1.fp-129
|
|
|
|
casinh 1.5 -0x1.fp-129
|
|
|
|
casinh -1.5 -0x1.fp-129
|
|
|
|
casinh 0x1.fp-1025 1.5
|
|
|
|
casinh 0x1.fp-1025 -1.5
|
|
|
|
casinh -0x1.fp-1025 1.5
|
|
|
|
casinh -0x1.fp-1025 -1.5
|
|
|
|
casinh 1.5 0x1.fp-1025
|
|
|
|
casinh -1.5 0x1.fp-1025
|
|
|
|
casinh 1.5 -0x1.fp-1025
|
|
|
|
casinh -1.5 -0x1.fp-1025
|
|
|
|
casinh 0x1.fp-16385 1.5
|
|
|
|
casinh 0x1.fp-16385 -1.5
|
|
|
|
casinh -0x1.fp-16385 1.5
|
|
|
|
casinh -0x1.fp-16385 -1.5
|
|
|
|
casinh 1.5 0x1.fp-16385
|
|
|
|
casinh -1.5 0x1.fp-16385
|
|
|
|
casinh 1.5 -0x1.fp-16385
|
|
|
|
casinh -1.5 -0x1.fp-16385
|
|
|
|
|
|
|
|
casinh 0.5 1.0
|
|
|
|
casinh 0.5 -1.0
|
|
|
|
casinh -0.5 1.0
|
|
|
|
casinh -0.5 -1.0
|
|
|
|
casinh 1.0 0.5
|
|
|
|
casinh -1.0 0.5
|
|
|
|
casinh 1.0 -0.5
|
|
|
|
casinh -1.0 -0.5
|
|
|
|
casinh 0.25 1.0
|
|
|
|
casinh 0.25 -1.0
|
|
|
|
casinh -0.25 1.0
|
|
|
|
casinh -0.25 -1.0
|
|
|
|
casinh 1.0 0.25
|
|
|
|
casinh -1.0 0.25
|
|
|
|
casinh 1.0 -0.25
|
|
|
|
casinh -1.0 -0.25
|
|
|
|
casinh 0x1.fp-10 1.0
|
|
|
|
casinh 0x1.fp-10 -1.0
|
|
|
|
casinh -0x1.fp-10 1.0
|
|
|
|
casinh -0x1.fp-10 -1.0
|
|
|
|
casinh 1.0 0x1.fp-10
|
|
|
|
casinh -1.0 0x1.fp-10
|
|
|
|
casinh 1.0 -0x1.fp-10
|
|
|
|
casinh -1.0 -0x1.fp-10
|
|
|
|
casinh 0x1.fp-30 1.0
|
|
|
|
casinh 0x1.fp-30 -1.0
|
|
|
|
casinh -0x1.fp-30 1.0
|
|
|
|
casinh -0x1.fp-30 -1.0
|
|
|
|
casinh 1.0 0x1.fp-30
|
|
|
|
casinh -1.0 0x1.fp-30
|
|
|
|
casinh 1.0 -0x1.fp-30
|
|
|
|
casinh -1.0 -0x1.fp-30
|
|
|
|
casinh 0x1.fp-100 1.0
|
|
|
|
casinh 0x1.fp-100 -1.0
|
|
|
|
casinh -0x1.fp-100 1.0
|
|
|
|
casinh -0x1.fp-100 -1.0
|
|
|
|
casinh 1.0 0x1.fp-100
|
|
|
|
casinh -1.0 0x1.fp-100
|
|
|
|
casinh 1.0 -0x1.fp-100
|
|
|
|
casinh -1.0 -0x1.fp-100
|
|
|
|
casinh 0x1.fp-129 1.0
|
|
|
|
casinh 0x1.fp-129 -1.0
|
|
|
|
casinh -0x1.fp-129 1.0
|
|
|
|
casinh -0x1.fp-129 -1.0
|
|
|
|
casinh 1.0 0x1.fp-129
|
|
|
|
casinh -1.0 0x1.fp-129
|
|
|
|
casinh 1.0 -0x1.fp-129
|
|
|
|
casinh -1.0 -0x1.fp-129
|
|
|
|
casinh 0x1.fp-1000 1.0
|
|
|
|
casinh 0x1.fp-1000 -1.0
|
|
|
|
casinh -0x1.fp-1000 1.0
|
|
|
|
casinh -0x1.fp-1000 -1.0
|
|
|
|
casinh 1.0 0x1.fp-1000
|
|
|
|
casinh -1.0 0x1.fp-1000
|
|
|
|
casinh 1.0 -0x1.fp-1000
|
|
|
|
casinh -1.0 -0x1.fp-1000
|
|
|
|
casinh 0x1.fp-1025 1.0
|
|
|
|
casinh 0x1.fp-1025 -1.0
|
|
|
|
casinh -0x1.fp-1025 1.0
|
|
|
|
casinh -0x1.fp-1025 -1.0
|
|
|
|
casinh 1.0 0x1.fp-1025
|
|
|
|
casinh -1.0 0x1.fp-1025
|
|
|
|
casinh 1.0 -0x1.fp-1025
|
|
|
|
casinh -1.0 -0x1.fp-1025
|
|
|
|
casinh 0x1.fp-10000 1.0
|
|
|
|
casinh 0x1.fp-10000 -1.0
|
|
|
|
casinh -0x1.fp-10000 1.0
|
|
|
|
casinh -0x1.fp-10000 -1.0
|
|
|
|
casinh 1.0 0x1.fp-10000
|
|
|
|
casinh -1.0 0x1.fp-10000
|
|
|
|
casinh 1.0 -0x1.fp-10000
|
|
|
|
casinh -1.0 -0x1.fp-10000
|
|
|
|
casinh 0x1.fp-16385 1.0
|
|
|
|
casinh 0x1.fp-16385 -1.0
|
|
|
|
casinh -0x1.fp-16385 1.0
|
|
|
|
casinh -0x1.fp-16385 -1.0
|
|
|
|
casinh 1.0 0x1.fp-16385
|
|
|
|
casinh -1.0 0x1.fp-16385
|
|
|
|
casinh 1.0 -0x1.fp-16385
|
|
|
|
casinh -1.0 -0x1.fp-16385
|
|
|
|
|
|
|
|
casinh 0x1p-23 0x1.000002p0
|
|
|
|
casinh 0x1p-23 -0x1.000002p0
|
|
|
|
casinh -0x1p-23 0x1.000002p0
|
|
|
|
casinh -0x1p-23 -0x1.000002p0
|
|
|
|
casinh 0x1.000002p0 0x1p-23
|
|
|
|
casinh -0x1.000002p0 0x1p-23
|
|
|
|
casinh 0x1.000002p0 -0x1p-23
|
|
|
|
casinh -0x1.000002p0 -0x1p-23
|
|
|
|
casinh 0x1.fp-129 0x1.000002p0
|
|
|
|
casinh 0x1.fp-129 -0x1.000002p0
|
|
|
|
casinh -0x1.fp-129 0x1.000002p0
|
|
|
|
casinh -0x1.fp-129 -0x1.000002p0
|
|
|
|
casinh 0x1.000002p0 0x1.fp-129
|
|
|
|
casinh -0x1.000002p0 0x1.fp-129
|
|
|
|
casinh 0x1.000002p0 -0x1.fp-129
|
|
|
|
casinh -0x1.000002p0 -0x1.fp-129
|
|
|
|
casinh 0.0 0x1.000002p0
|
|
|
|
casinh 0.0 -0x1.000002p0
|
|
|
|
casinh -0.0 0x1.000002p0
|
|
|
|
casinh -0.0 -0x1.000002p0
|
|
|
|
casinh 0x1.000002p0 0.0
|
|
|
|
casinh -0x1.000002p0 0.0
|
|
|
|
casinh 0x1.000002p0 -0.0
|
|
|
|
casinh -0x1.000002p0 -0.0
|
|
|
|
casinh 0x1p-52 0x1.0000000000001p0
|
|
|
|
casinh 0x1p-52 -0x1.0000000000001p0
|
|
|
|
casinh -0x1p-52 0x1.0000000000001p0
|
|
|
|
casinh -0x1p-52 -0x1.0000000000001p0
|
|
|
|
casinh 0x1.0000000000001p0 0x1p-52
|
|
|
|
casinh -0x1.0000000000001p0 0x1p-52
|
|
|
|
casinh 0x1.0000000000001p0 -0x1p-52
|
|
|
|
casinh -0x1.0000000000001p0 -0x1p-52
|
|
|
|
casinh 0x1.fp-1025 0x1.0000000000001p0
|
|
|
|
casinh 0x1.fp-1025 -0x1.0000000000001p0
|
|
|
|
casinh -0x1.fp-1025 0x1.0000000000001p0
|
|
|
|
casinh -0x1.fp-1025 -0x1.0000000000001p0
|
|
|
|
casinh 0x1.0000000000001p0 0x1.fp-1025
|
|
|
|
casinh -0x1.0000000000001p0 0x1.fp-1025
|
|
|
|
casinh 0x1.0000000000001p0 -0x1.fp-1025
|
|
|
|
casinh -0x1.0000000000001p0 -0x1.fp-1025
|
|
|
|
casinh 0.0 0x1.0000000000001p0
|
|
|
|
casinh 0.0 -0x1.0000000000001p0
|
|
|
|
casinh -0.0 0x1.0000000000001p0
|
|
|
|
casinh -0.0 -0x1.0000000000001p0
|
|
|
|
casinh 0x1.0000000000001p0 0.0
|
|
|
|
casinh -0x1.0000000000001p0 0.0
|
|
|
|
casinh 0x1.0000000000001p0 -0.0
|
|
|
|
casinh -0x1.0000000000001p0 -0.0
|
|
|
|
casinh 0x1p-63 0x1.0000000000000002p0
|
|
|
|
casinh 0x1p-63 -0x1.0000000000000002p0
|
|
|
|
casinh -0x1p-63 0x1.0000000000000002p0
|
|
|
|
casinh -0x1p-63 -0x1.0000000000000002p0
|
|
|
|
casinh 0x1.0000000000000002p0 0x1p-63
|
|
|
|
casinh -0x1.0000000000000002p0 0x1p-63
|
|
|
|
casinh 0x1.0000000000000002p0 -0x1p-63
|
|
|
|
casinh -0x1.0000000000000002p0 -0x1p-63
|
|
|
|
casinh 0x1.fp-16385 0x1.0000000000000002p0
|
|
|
|
casinh 0x1.fp-16385 -0x1.0000000000000002p0
|
|
|
|
casinh -0x1.fp-16385 0x1.0000000000000002p0
|
|
|
|
casinh -0x1.fp-16385 -0x1.0000000000000002p0
|
|
|
|
casinh 0x1.0000000000000002p0 0x1.fp-16385
|
|
|
|
casinh -0x1.0000000000000002p0 0x1.fp-16385
|
|
|
|
casinh 0x1.0000000000000002p0 -0x1.fp-16385
|
|
|
|
casinh -0x1.0000000000000002p0 -0x1.fp-16385
|
|
|
|
casinh 0.0 0x1.0000000000000002p0
|
|
|
|
casinh 0.0 -0x1.0000000000000002p0
|
|
|
|
casinh -0.0 0x1.0000000000000002p0
|
|
|
|
casinh -0.0 -0x1.0000000000000002p0
|
|
|
|
casinh 0x1.0000000000000002p0 0.0
|
|
|
|
casinh -0x1.0000000000000002p0 0.0
|
|
|
|
casinh 0x1.0000000000000002p0 -0.0
|
|
|
|
casinh -0x1.0000000000000002p0 -0.0
|
|
|
|
casinh 0x1p-106 0x1.000000000000000000000000008p0
|
|
|
|
casinh 0x1p-106 -0x1.000000000000000000000000008p0
|
|
|
|
casinh -0x1p-106 0x1.000000000000000000000000008p0
|
|
|
|
casinh -0x1p-106 -0x1.000000000000000000000000008p0
|
|
|
|
casinh 0x1.000000000000000000000000008p0 0x1p-106
|
|
|
|
casinh -0x1.000000000000000000000000008p0 0x1p-106
|
|
|
|
casinh 0x1.000000000000000000000000008p0 -0x1p-106
|
|
|
|
casinh -0x1.000000000000000000000000008p0 -0x1p-106
|
|
|
|
casinh 0x1.fp-1025 0x1.000000000000000000000000008p0
|
|
|
|
casinh 0x1.fp-1025 -0x1.000000000000000000000000008p0
|
|
|
|
casinh -0x1.fp-1025 0x1.000000000000000000000000008p0
|
|
|
|
casinh -0x1.fp-1025 -0x1.000000000000000000000000008p0
|
|
|
|
casinh 0x1.000000000000000000000000008p0 0x1.fp-1025
|
|
|
|
casinh -0x1.000000000000000000000000008p0 0x1.fp-1025
|
|
|
|
casinh 0x1.000000000000000000000000008p0 -0x1.fp-1025
|
|
|
|
casinh -0x1.000000000000000000000000008p0 -0x1.fp-1025
|
|
|
|
casinh 0.0 0x1.000000000000000000000000008p0
|
|
|
|
casinh 0.0 -0x1.000000000000000000000000008p0
|
|
|
|
casinh -0.0 0x1.000000000000000000000000008p0
|
|
|
|
casinh -0.0 -0x1.000000000000000000000000008p0
|
|
|
|
casinh 0x1.000000000000000000000000008p0 0.0
|
|
|
|
casinh -0x1.000000000000000000000000008p0 0.0
|
|
|
|
casinh 0x1.000000000000000000000000008p0 -0.0
|
|
|
|
casinh -0x1.000000000000000000000000008p0 -0.0
|
|
|
|
casinh 0x1p-113 0x1.0000000000000000000000000001p0
|
|
|
|
casinh 0x1p-113 -0x1.0000000000000000000000000001p0
|
|
|
|
casinh -0x1p-113 0x1.0000000000000000000000000001p0
|
|
|
|
casinh -0x1p-113 -0x1.0000000000000000000000000001p0
|
|
|
|
casinh 0x1.0000000000000000000000000001p0 0x1p-113
|
|
|
|
casinh -0x1.0000000000000000000000000001p0 0x1p-113
|
|
|
|
casinh 0x1.0000000000000000000000000001p0 -0x1p-113
|
|
|
|
casinh -0x1.0000000000000000000000000001p0 -0x1p-113
|
|
|
|
casinh 0x1.fp-16385 0x1.0000000000000000000000000001p0
|
|
|
|
casinh 0x1.fp-16385 -0x1.0000000000000000000000000001p0
|
|
|
|
casinh -0x1.fp-16385 0x1.0000000000000000000000000001p0
|
|
|
|
casinh -0x1.fp-16385 -0x1.0000000000000000000000000001p0
|
|
|
|
casinh 0x1.0000000000000000000000000001p0 0x1.fp-16385
|
|
|
|
casinh -0x1.0000000000000000000000000001p0 0x1.fp-16385
|
|
|
|
casinh 0x1.0000000000000000000000000001p0 -0x1.fp-16385
|
|
|
|
casinh -0x1.0000000000000000000000000001p0 -0x1.fp-16385
|
|
|
|
casinh 0.0 0x1.0000000000000000000000000001p0
|
|
|
|
casinh 0.0 -0x1.0000000000000000000000000001p0
|
|
|
|
casinh -0.0 0x1.0000000000000000000000000001p0
|
|
|
|
casinh -0.0 -0x1.0000000000000000000000000001p0
|
|
|
|
casinh 0x1.0000000000000000000000000001p0 0.0
|
|
|
|
casinh -0x1.0000000000000000000000000001p0 0.0
|
|
|
|
casinh 0x1.0000000000000000000000000001p0 -0.0
|
|
|
|
casinh -0x1.0000000000000000000000000001p0 -0.0
|
|
|
|
|
|
|
|
casinh 0x1p-23 0x0.ffffffp0
|
|
|
|
casinh 0x1p-23 -0x0.ffffffp0
|
|
|
|
casinh -0x1p-23 0x0.ffffffp0
|
|
|
|
casinh -0x1p-23 -0x0.ffffffp0
|
|
|
|
casinh 0x0.ffffffp0 0x1p-23
|
|
|
|
casinh -0x0.ffffffp0 0x1p-23
|
|
|
|
casinh 0x0.ffffffp0 -0x1p-23
|
|
|
|
casinh -0x0.ffffffp0 -0x1p-23
|
|
|
|
casinh 0x1.fp-129 0x0.ffffffp0
|
|
|
|
casinh 0x1.fp-129 -0x0.ffffffp0
|
|
|
|
casinh -0x1.fp-129 0x0.ffffffp0
|
|
|
|
casinh -0x1.fp-129 -0x0.ffffffp0
|
|
|
|
casinh 0x0.ffffffp0 0x1.fp-129
|
|
|
|
casinh -0x0.ffffffp0 0x1.fp-129
|
|
|
|
casinh 0x0.ffffffp0 -0x1.fp-129
|
|
|
|
casinh -0x0.ffffffp0 -0x1.fp-129
|
|
|
|
casinh 0.0 0x0.ffffffp0
|
|
|
|
casinh 0.0 -0x0.ffffffp0
|
|
|
|
casinh -0.0 0x0.ffffffp0
|
|
|
|
casinh -0.0 -0x0.ffffffp0
|
|
|
|
casinh 0x0.ffffffp0 0.0
|
|
|
|
casinh -0x0.ffffffp0 0.0
|
|
|
|
casinh 0x0.ffffffp0 -0.0
|
|
|
|
casinh -0x0.ffffffp0 -0.0
|
|
|
|
casinh 0x1p-23 0.5
|
|
|
|
casinh 0x1p-23 -0.5
|
|
|
|
casinh -0x1p-23 0.5
|
|
|
|
casinh -0x1p-23 -0.5
|
|
|
|
casinh 0.5 0x1p-23
|
|
|
|
casinh -0.5 0x1p-23
|
|
|
|
casinh 0.5 -0x1p-23
|
|
|
|
casinh -0.5 -0x1p-23
|
|
|
|
casinh 0x1.fp-129 0.5
|
|
|
|
casinh 0x1.fp-129 -0.5
|
|
|
|
casinh -0x1.fp-129 0.5
|
|
|
|
casinh -0x1.fp-129 -0.5
|
|
|
|
casinh 0.5 0x1.fp-129
|
|
|
|
casinh -0.5 0x1.fp-129
|
|
|
|
casinh 0.5 -0x1.fp-129
|
|
|
|
casinh -0.5 -0x1.fp-129
|
|
|
|
casinh 0x1p-23 0x1p-23
|
|
|
|
casinh 0x1p-23 -0x1p-23
|
|
|
|
casinh -0x1p-23 0x1p-23
|
|
|
|
casinh -0x1p-23 -0x1p-23
|
|
|
|
casinh 0x1.fp-129 0x1p-23
|
|
|
|
casinh 0x1.fp-129 -0x1p-23
|
|
|
|
casinh -0x1.fp-129 0x1p-23
|
|
|
|
casinh -0x1.fp-129 -0x1p-23
|
|
|
|
casinh 0x1p-23 0x1.fp-129
|
|
|
|
casinh -0x1p-23 0x1.fp-129
|
|
|
|
casinh 0x1p-23 -0x1.fp-129
|
|
|
|
casinh -0x1p-23 -0x1.fp-129
|
|
|
|
casinh 0.0 0x1p-23
|
|
|
|
casinh 0.0 -0x1p-23
|
|
|
|
casinh -0.0 0x1p-23
|
|
|
|
casinh -0.0 -0x1p-23
|
|
|
|
casinh 0x1p-23 0.0
|
|
|
|
casinh -0x1p-23 0.0
|
|
|
|
casinh 0x1p-23 -0.0
|
|
|
|
casinh -0x1p-23 -0.0
|
|
|
|
casinh 0x1.fp-129 0x1.fp-129
|
|
|
|
casinh 0x1.fp-129 -0x1.fp-129
|
|
|
|
casinh -0x1.fp-129 0x1.fp-129
|
|
|
|
casinh -0x1.fp-129 -0x1.fp-129
|
|
|
|
casinh 0x1p-52 0x0.fffffffffffff8p0
|
|
|
|
casinh 0x1p-52 -0x0.fffffffffffff8p0
|
|
|
|
casinh -0x1p-52 0x0.fffffffffffff8p0
|
|
|
|
casinh -0x1p-52 -0x0.fffffffffffff8p0
|
|
|
|
casinh 0x0.fffffffffffff8p0 0x1p-52
|
|
|
|
casinh -0x0.fffffffffffff8p0 0x1p-52
|
|
|
|
casinh 0x0.fffffffffffff8p0 -0x1p-52
|
|
|
|
casinh -0x0.fffffffffffff8p0 -0x1p-52
|
|
|
|
casinh 0x1.fp-1025 0x0.fffffffffffff8p0
|
|
|
|
casinh 0x1.fp-1025 -0x0.fffffffffffff8p0
|
|
|
|
casinh -0x1.fp-1025 0x0.fffffffffffff8p0
|
|
|
|
casinh -0x1.fp-1025 -0x0.fffffffffffff8p0
|
|
|
|
casinh 0x0.fffffffffffff8p0 0x1.fp-1025
|
|
|
|
casinh -0x0.fffffffffffff8p0 0x1.fp-1025
|
|
|
|
casinh 0x0.fffffffffffff8p0 -0x1.fp-1025
|
|
|
|
casinh -0x0.fffffffffffff8p0 -0x1.fp-1025
|
|
|
|
casinh 0.0 0x0.fffffffffffff8p0
|
|
|
|
casinh 0.0 -0x0.fffffffffffff8p0
|
|
|
|
casinh -0.0 0x0.fffffffffffff8p0
|
|
|
|
casinh -0.0 -0x0.fffffffffffff8p0
|
|
|
|
casinh 0x0.fffffffffffff8p0 0.0
|
|
|
|
casinh -0x0.fffffffffffff8p0 0.0
|
|
|
|
casinh 0x0.fffffffffffff8p0 -0.0
|
|
|
|
casinh -0x0.fffffffffffff8p0 -0.0
|
|
|
|
casinh 0x1p-52 0.5
|
|
|
|
casinh 0x1p-52 -0.5
|
|
|
|
casinh -0x1p-52 0.5
|
|
|
|
casinh -0x1p-52 -0.5
|
|
|
|
casinh 0.5 0x1p-52
|
|
|
|
casinh -0.5 0x1p-52
|
|
|
|
casinh 0.5 -0x1p-52
|
|
|
|
casinh -0.5 -0x1p-52
|
|
|
|
casinh 0x1.fp-1025 0.5
|
|
|
|
casinh 0x1.fp-1025 -0.5
|
|
|
|
casinh -0x1.fp-1025 0.5
|
|
|
|
casinh -0x1.fp-1025 -0.5
|
|
|
|
casinh 0.5 0x1.fp-1025
|
|
|
|
casinh -0.5 0x1.fp-1025
|
|
|
|
casinh 0.5 -0x1.fp-1025
|
|
|
|
casinh -0.5 -0x1.fp-1025
|
|
|
|
casinh 0x1p-52 0x1p-52
|
|
|
|
casinh 0x1p-52 -0x1p-52
|
|
|
|
casinh -0x1p-52 0x1p-52
|
|
|
|
casinh -0x1p-52 -0x1p-52
|
|
|
|
casinh 0x1.fp-1025 0x1p-52
|
|
|
|
casinh 0x1.fp-1025 -0x1p-52
|
|
|
|
casinh -0x1.fp-1025 0x1p-52
|
|
|
|
casinh -0x1.fp-1025 -0x1p-52
|
|
|
|
casinh 0x1p-52 0x1.fp-1025
|
|
|
|
casinh -0x1p-52 0x1.fp-1025
|
|
|
|
casinh 0x1p-52 -0x1.fp-1025
|
|
|
|
casinh -0x1p-52 -0x1.fp-1025
|
|
|
|
casinh 0.0 0x1p-52
|
|
|
|
casinh 0.0 -0x1p-52
|
|
|
|
casinh -0.0 0x1p-52
|
|
|
|
casinh -0.0 -0x1p-52
|
|
|
|
casinh 0x1p-52 0.0
|
|
|
|
casinh -0x1p-52 0.0
|
|
|
|
casinh 0x1p-52 -0.0
|
|
|
|
casinh -0x1p-52 -0.0
|
|
|
|
casinh 0x1.fp-1025 0x1.fp-1025
|
|
|
|
casinh 0x1.fp-1025 -0x1.fp-1025
|
|
|
|
casinh -0x1.fp-1025 0x1.fp-1025
|
|
|
|
casinh -0x1.fp-1025 -0x1.fp-1025
|
|
|
|
casinh 0x1p-63 0x0.ffffffffffffffffp0
|
|
|
|
casinh 0x1p-63 -0x0.ffffffffffffffffp0
|
|
|
|
casinh -0x1p-63 0x0.ffffffffffffffffp0
|
|
|
|
casinh -0x1p-63 -0x0.ffffffffffffffffp0
|
|
|
|
casinh 0x0.ffffffffffffffffp0 0x1p-63
|
|
|
|
casinh -0x0.ffffffffffffffffp0 0x1p-63
|
|
|
|
casinh 0x0.ffffffffffffffffp0 -0x1p-63
|
|
|
|
casinh -0x0.ffffffffffffffffp0 -0x1p-63
|
|
|
|
casinh 0x1.fp-16385 0x0.ffffffffffffffffp0
|
|
|
|
casinh 0x1.fp-16385 -0x0.ffffffffffffffffp0
|
|
|
|
casinh -0x1.fp-16385 0x0.ffffffffffffffffp0
|
|
|
|
casinh -0x1.fp-16385 -0x0.ffffffffffffffffp0
|
|
|
|
casinh 0x0.ffffffffffffffffp0 0x1.fp-16385
|
|
|
|
casinh -0x0.ffffffffffffffffp0 0x1.fp-16385
|
|
|
|
casinh 0x0.ffffffffffffffffp0 -0x1.fp-16385
|
|
|
|
casinh -0x0.ffffffffffffffffp0 -0x1.fp-16385
|
|
|
|
casinh 0.0 0x0.ffffffffffffffffp0
|
|
|
|
casinh 0.0 -0x0.ffffffffffffffffp0
|
|
|
|
casinh -0.0 0x0.ffffffffffffffffp0
|
|
|
|
casinh -0.0 -0x0.ffffffffffffffffp0
|
|
|
|
casinh 0x0.ffffffffffffffffp0 0.0
|
|
|
|
casinh -0x0.ffffffffffffffffp0 0.0
|
|
|
|
casinh 0x0.ffffffffffffffffp0 -0.0
|
|
|
|
casinh -0x0.ffffffffffffffffp0 -0.0
|
|
|
|
casinh 0x1p-63 0.5
|
|
|
|
casinh 0x1p-63 -0.5
|
|
|
|
casinh -0x1p-63 0.5
|
|
|
|
casinh -0x1p-63 -0.5
|
|
|
|
casinh 0.5 0x1p-63
|
|
|
|
casinh -0.5 0x1p-63
|
|
|
|
casinh 0.5 -0x1p-63
|
|
|
|
casinh -0.5 -0x1p-63
|
|
|
|
casinh 0x1.fp-16385 0.5
|
|
|
|
casinh 0x1.fp-16385 -0.5
|
|
|
|
casinh -0x1.fp-16385 0.5
|
|
|
|
casinh -0x1.fp-16385 -0.5
|
|
|
|
casinh 0.5 0x1.fp-16385
|
|
|
|
casinh -0.5 0x1.fp-16385
|
|
|
|
casinh 0.5 -0x1.fp-16385
|
|
|
|
casinh -0.5 -0x1.fp-16385
|
|
|
|
casinh 0x1p-63 0x1p-63
|
|
|
|
casinh 0x1p-63 -0x1p-63
|
|
|
|
casinh -0x1p-63 0x1p-63
|
|
|
|
casinh -0x1p-63 -0x1p-63
|
|
|
|
casinh 0x1.fp-16385 0x1p-63
|
|
|
|
casinh 0x1.fp-16385 -0x1p-63
|
|
|
|
casinh -0x1.fp-16385 0x1p-63
|
|
|
|
casinh -0x1.fp-16385 -0x1p-63
|
|
|
|
casinh 0x1p-63 0x1.fp-16385
|
|
|
|
casinh -0x1p-63 0x1.fp-16385
|
|
|
|
casinh 0x1p-63 -0x1.fp-16385
|
|
|
|
casinh -0x1p-63 -0x1.fp-16385
|
|
|
|
casinh 0.0 0x1p-63
|
|
|
|
casinh 0.0 -0x1p-63
|
|
|
|
casinh -0.0 0x1p-63
|
|
|
|
casinh -0.0 -0x1p-63
|
|
|
|
casinh 0x1p-63 0.0
|
|
|
|
casinh -0x1p-63 0.0
|
|
|
|
casinh 0x1p-63 -0.0
|
|
|
|
casinh -0x1p-63 -0.0
|
|
|
|
casinh 0x1.fp-16385 0x1.fp-16385
|
|
|
|
casinh 0x1.fp-16385 -0x1.fp-16385
|
|
|
|
casinh -0x1.fp-16385 0x1.fp-16385
|
|
|
|
casinh -0x1.fp-16385 -0x1.fp-16385
|
|
|
|
casinh 0x1p-105 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casinh 0x1p-105 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casinh -0x1p-105 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casinh -0x1p-105 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casinh 0x0.ffffffffffffffffffffffffffcp0 0x1p-105
|
|
|
|
casinh -0x0.ffffffffffffffffffffffffffcp0 0x1p-105
|
|
|
|
casinh 0x0.ffffffffffffffffffffffffffcp0 -0x1p-105
|
|
|
|
casinh -0x0.ffffffffffffffffffffffffffcp0 -0x1p-105
|
|
|
|
casinh 0x1.fp-1025 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casinh 0x1.fp-1025 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casinh -0x1.fp-1025 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casinh -0x1.fp-1025 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casinh 0x0.ffffffffffffffffffffffffffcp0 0x1.fp-1025
|
|
|
|
casinh -0x0.ffffffffffffffffffffffffffcp0 0x1.fp-1025
|
|
|
|
casinh 0x0.ffffffffffffffffffffffffffcp0 -0x1.fp-1025
|
|
|
|
casinh -0x0.ffffffffffffffffffffffffffcp0 -0x1.fp-1025
|
|
|
|
casinh 0.0 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casinh 0.0 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casinh -0.0 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casinh -0.0 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
casinh 0x0.ffffffffffffffffffffffffffcp0 0.0
|
|
|
|
casinh -0x0.ffffffffffffffffffffffffffcp0 0.0
|
|
|
|
casinh 0x0.ffffffffffffffffffffffffffcp0 -0.0
|
|
|
|
casinh -0x0.ffffffffffffffffffffffffffcp0 -0.0
|
|
|
|
casinh 0x1p-105 0.5
|
|
|
|
casinh 0x1p-105 -0.5
|
|
|
|
casinh -0x1p-105 0.5
|
|
|
|
casinh -0x1p-105 -0.5
|
|
|
|
casinh 0.5 0x1p-105
|
|
|
|
casinh -0.5 0x1p-105
|
|
|
|
casinh 0.5 -0x1p-105
|
|
|
|
casinh -0.5 -0x1p-105
|
|
|
|
casinh 0x1p-105 0x1p-105
|
|
|
|
casinh 0x1p-105 -0x1p-105
|
|
|
|
casinh -0x1p-105 0x1p-105
|
|
|
|
casinh -0x1p-105 -0x1p-105
|
|
|
|
casinh 0x1.fp-1025 0x1p-105
|
|
|
|
casinh 0x1.fp-1025 -0x1p-105
|
|
|
|
casinh -0x1.fp-1025 0x1p-105
|
|
|
|
casinh -0x1.fp-1025 -0x1p-105
|
|
|
|
casinh 0x1p-105 0x1.fp-1025
|
|
|
|
casinh -0x1p-105 0x1.fp-1025
|
|
|
|
casinh 0x1p-105 -0x1.fp-1025
|
|
|
|
casinh -0x1p-105 -0x1.fp-1025
|
|
|
|
casinh 0.0 0x1p-105
|
|
|
|
casinh 0.0 -0x1p-105
|
|
|
|
casinh -0.0 0x1p-105
|
|
|
|
casinh -0.0 -0x1p-105
|
|
|
|
casinh 0x1p-105 0.0
|
|
|
|
casinh -0x1p-105 0.0
|
|
|
|
casinh 0x1p-105 -0.0
|
|
|
|
casinh -0x1p-105 -0.0
|
|
|
|
casinh 0x1p-112 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casinh 0x1p-112 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casinh -0x1p-112 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casinh -0x1p-112 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casinh 0x0.ffffffffffffffffffffffffffff8p0 0x1p-112
|
|
|
|
casinh -0x0.ffffffffffffffffffffffffffff8p0 0x1p-112
|
|
|
|
casinh 0x0.ffffffffffffffffffffffffffff8p0 -0x1p-112
|
|
|
|
casinh -0x0.ffffffffffffffffffffffffffff8p0 -0x1p-112
|
|
|
|
casinh 0x1.fp-16385 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casinh 0x1.fp-16385 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casinh -0x1.fp-16385 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casinh -0x1.fp-16385 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casinh 0x0.ffffffffffffffffffffffffffff8p0 0x1.fp-16385
|
|
|
|
casinh -0x0.ffffffffffffffffffffffffffff8p0 0x1.fp-16385
|
|
|
|
casinh 0x0.ffffffffffffffffffffffffffff8p0 -0x1.fp-16385
|
|
|
|
casinh -0x0.ffffffffffffffffffffffffffff8p0 -0x1.fp-16385
|
|
|
|
casinh 0.0 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casinh 0.0 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casinh -0.0 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casinh -0.0 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
casinh 0x0.ffffffffffffffffffffffffffff8p0 0.0
|
|
|
|
casinh -0x0.ffffffffffffffffffffffffffff8p0 0.0
|
|
|
|
casinh 0x0.ffffffffffffffffffffffffffff8p0 -0.0
|
|
|
|
casinh -0x0.ffffffffffffffffffffffffffff8p0 -0.0
|
|
|
|
casinh 0x1p-112 0.5
|
|
|
|
casinh 0x1p-112 -0.5
|
|
|
|
casinh -0x1p-112 0.5
|
|
|
|
casinh -0x1p-112 -0.5
|
|
|
|
casinh 0.5 0x1p-112
|
|
|
|
casinh -0.5 0x1p-112
|
|
|
|
casinh 0.5 -0x1p-112
|
|
|
|
casinh -0.5 -0x1p-112
|
|
|
|
casinh 0x1p-112 0x1p-112
|
|
|
|
casinh 0x1p-112 -0x1p-112
|
|
|
|
casinh -0x1p-112 0x1p-112
|
|
|
|
casinh -0x1p-112 -0x1p-112
|
|
|
|
casinh 0x1.fp-16385 0x1p-112
|
|
|
|
casinh 0x1.fp-16385 -0x1p-112
|
|
|
|
casinh -0x1.fp-16385 0x1p-112
|
|
|
|
casinh -0x1.fp-16385 -0x1p-112
|
|
|
|
casinh 0x1p-112 0x1.fp-16385
|
|
|
|
casinh -0x1p-112 0x1.fp-16385
|
|
|
|
casinh 0x1p-112 -0x1.fp-16385
|
|
|
|
casinh -0x1p-112 -0x1.fp-16385
|
|
|
|
casinh 0.0 0x1p-112
|
|
|
|
casinh 0.0 -0x1p-112
|
|
|
|
casinh -0.0 0x1p-112
|
|
|
|
casinh -0.0 -0x1p-112
|
|
|
|
casinh 0x1p-112 0.0
|
|
|
|
casinh -0x1p-112 0.0
|
|
|
|
casinh 0x1p-112 -0.0
|
|
|
|
casinh -0x1p-112 -0.0
|
|
|
|
|
|
|
|
casinh 0.75 1.25
|
|
|
|
casinh -2 -3
|
|
|
|
|
2017-02-17 18:42:37 +00:00
|
|
|
catan 0 0
|
|
|
|
catan -0 0
|
|
|
|
catan 0 -0
|
|
|
|
catan -0 -0
|
|
|
|
|
|
|
|
catan 1.0 0
|
|
|
|
catan 1.0 -0
|
|
|
|
catan -1.0 0
|
|
|
|
catan -1.0 -0
|
|
|
|
|
|
|
|
catan 0x1p50 0.0
|
|
|
|
catan 0x1p50 -0.0
|
|
|
|
catan -0x1p50 0.0
|
|
|
|
catan -0x1p50 -0.0
|
|
|
|
catan 0.0 0x1p50
|
|
|
|
catan -0.0 0x1p50
|
|
|
|
catan 0.0 -0x1p50
|
|
|
|
catan -0.0 -0x1p50
|
|
|
|
catan 0x1p500 0.0
|
|
|
|
catan 0x1p500 -0.0
|
|
|
|
catan -0x1p500 0.0
|
|
|
|
catan -0x1p500 -0.0
|
|
|
|
catan 0.0 0x1p500
|
|
|
|
catan -0.0 0x1p500
|
|
|
|
catan 0.0 -0x1p500
|
|
|
|
catan -0.0 -0x1p500
|
|
|
|
catan 0x1p5000 0.0
|
|
|
|
catan 0x1p5000 -0.0
|
|
|
|
catan -0x1p5000 0.0
|
|
|
|
catan -0x1p5000 -0.0
|
|
|
|
catan 0.0 0x1p5000
|
|
|
|
catan -0.0 0x1p5000
|
|
|
|
catan 0.0 -0x1p5000
|
|
|
|
catan -0.0 -0x1p5000
|
|
|
|
catan 0x1p63 0.5
|
|
|
|
catan 0x1p63 -0.5
|
|
|
|
catan -0x1p63 0.5
|
|
|
|
catan -0x1p63 -0.5
|
|
|
|
catan 0.5 0x1p63
|
|
|
|
catan -0.5 0x1p63
|
|
|
|
catan 0.5 -0x1p63
|
|
|
|
catan -0.5 -0x1p63
|
|
|
|
catan 0x1p511 0.5
|
|
|
|
catan 0x1p511 -0.5
|
|
|
|
catan -0x1p511 0.5
|
|
|
|
catan -0x1p511 -0.5
|
|
|
|
catan 0.5 0x1p511
|
|
|
|
catan -0.5 0x1p511
|
|
|
|
catan 0.5 -0x1p511
|
|
|
|
catan -0.5 -0x1p511
|
|
|
|
catan 0x1p8191 0.5
|
|
|
|
catan 0x1p8191 -0.5
|
|
|
|
catan -0x1p8191 0.5
|
|
|
|
catan -0x1p8191 -0.5
|
|
|
|
catan 0.5 0x1p8191
|
|
|
|
catan -0.5 0x1p8191
|
|
|
|
catan 0.5 -0x1p8191
|
|
|
|
catan -0.5 -0x1p8191
|
|
|
|
catan 0x1p100 0.0
|
|
|
|
catan 0x1p100 -0.0
|
|
|
|
catan -0x1p100 0.0
|
|
|
|
catan -0x1p100 -0.0
|
|
|
|
catan 0.0 0x1p100
|
|
|
|
catan -0.0 0x1p100
|
|
|
|
catan 0.0 -0x1p100
|
|
|
|
catan -0.0 -0x1p100
|
|
|
|
catan 0x1.fp127 0.0
|
|
|
|
catan 0x1.fp127 -0.0
|
|
|
|
catan -0x1.fp127 0.0
|
|
|
|
catan -0x1.fp127 -0.0
|
|
|
|
catan 0.0 0x1.fp127
|
|
|
|
catan -0.0 0x1.fp127
|
|
|
|
catan 0.0 -0x1.fp127
|
|
|
|
catan -0.0 -0x1.fp127
|
|
|
|
catan 0x1.fp127 0x1.fp127
|
|
|
|
catan 0x1.fp127 -0x1.fp127
|
|
|
|
catan -0x1.fp127 0x1.fp127
|
|
|
|
catan -0x1.fp127 -0x1.fp127
|
|
|
|
catan 0x1p900 0.0
|
|
|
|
catan 0x1p900 -0.0
|
|
|
|
catan -0x1p900 0.0
|
|
|
|
catan -0x1p900 -0.0
|
|
|
|
catan 0.0 0x1p900
|
|
|
|
catan -0.0 0x1p900
|
|
|
|
catan 0.0 -0x1p900
|
|
|
|
catan -0.0 -0x1p900
|
|
|
|
catan 0x1.fp1023 0.0
|
|
|
|
catan 0x1.fp1023 -0.0
|
|
|
|
catan -0x1.fp1023 0.0
|
|
|
|
catan -0x1.fp1023 -0.0
|
|
|
|
catan 0.0 0x1.fp1023
|
|
|
|
catan -0.0 0x1.fp1023
|
|
|
|
catan 0.0 -0x1.fp1023
|
|
|
|
catan -0.0 -0x1.fp1023
|
|
|
|
catan 0x1.fp1023 0x1.fp1023
|
|
|
|
catan 0x1.fp1023 -0x1.fp1023
|
|
|
|
catan -0x1.fp1023 0x1.fp1023
|
|
|
|
catan -0x1.fp1023 -0x1.fp1023
|
|
|
|
catan 0x1p10000 0.0
|
|
|
|
catan 0x1p10000 -0.0
|
|
|
|
catan -0x1p10000 0.0
|
|
|
|
catan -0x1p10000 -0.0
|
|
|
|
catan 0.0 0x1p10000
|
|
|
|
catan -0.0 0x1p10000
|
|
|
|
catan 0.0 -0x1p10000
|
|
|
|
catan -0.0 -0x1p10000
|
|
|
|
catan 0x1.fp16383 0.0
|
|
|
|
catan 0x1.fp16383 -0.0
|
|
|
|
catan -0x1.fp16383 0.0
|
|
|
|
catan -0x1.fp16383 -0.0
|
|
|
|
catan 0.0 0x1.fp16383
|
|
|
|
catan -0.0 0x1.fp16383
|
|
|
|
catan 0.0 -0x1.fp16383
|
|
|
|
catan -0.0 -0x1.fp16383
|
2017-03-16 13:18:46 +00:00
|
|
|
catan 0x1.fp16383 0x1.fp16383 xfail-rounding:ibm128-libgcc
|
|
|
|
catan 0x1.fp16383 -0x1.fp16383 xfail-rounding:ibm128-libgcc
|
|
|
|
catan -0x1.fp16383 0x1.fp16383 xfail-rounding:ibm128-libgcc
|
|
|
|
catan -0x1.fp16383 -0x1.fp16383 xfail-rounding:ibm128-libgcc
|
2017-02-17 18:42:37 +00:00
|
|
|
catan 0x1p-13 1.0
|
|
|
|
catan 0x1p-13 -1.0
|
|
|
|
catan -0x1p-13 1.0
|
|
|
|
catan -0x1p-13 -1.0
|
|
|
|
catan 1.0 0x1p-13
|
|
|
|
catan -1.0 0x1p-13
|
|
|
|
catan 1.0 -0x1p-13
|
|
|
|
catan -1.0 -0x1p-13
|
|
|
|
catan 0x1p-27 1.0
|
|
|
|
catan 0x1p-27 -1.0
|
|
|
|
catan -0x1p-27 1.0
|
|
|
|
catan -0x1p-27 -1.0
|
|
|
|
catan 1.0 0x1p-27
|
|
|
|
catan -1.0 0x1p-27
|
|
|
|
catan 1.0 -0x1p-27
|
|
|
|
catan -1.0 -0x1p-27
|
|
|
|
catan 0x1p-33 1.0
|
|
|
|
catan 0x1p-33 -1.0
|
|
|
|
catan -0x1p-33 1.0
|
|
|
|
catan -0x1p-33 -1.0
|
|
|
|
catan 1.0 0x1p-33
|
|
|
|
catan -1.0 0x1p-33
|
|
|
|
catan 1.0 -0x1p-33
|
|
|
|
catan -1.0 -0x1p-33
|
|
|
|
catan 0x1p-54 1.0
|
|
|
|
catan 0x1p-54 -1.0
|
|
|
|
catan -0x1p-54 1.0
|
|
|
|
catan -0x1p-54 -1.0
|
|
|
|
catan 1.0 0x1p-54
|
|
|
|
catan -1.0 0x1p-54
|
|
|
|
catan 1.0 -0x1p-54
|
|
|
|
catan -1.0 -0x1p-54
|
|
|
|
catan 0x1p-57 1.0
|
|
|
|
catan 0x1p-57 -1.0
|
|
|
|
catan -0x1p-57 1.0
|
|
|
|
catan -0x1p-57 -1.0
|
|
|
|
catan 1.0 0x1p-57
|
|
|
|
catan -1.0 0x1p-57
|
|
|
|
catan 1.0 -0x1p-57
|
|
|
|
catan -1.0 -0x1p-57
|
|
|
|
catan 0x1p-13 0x1.000002p0
|
|
|
|
catan 0x1p-13 -0x1.000002p0
|
|
|
|
catan -0x1p-13 0x1.000002p0
|
|
|
|
catan -0x1p-13 -0x1.000002p0
|
|
|
|
catan 0x1.000002p0 0x1p-13
|
|
|
|
catan -0x1.000002p0 0x1p-13
|
|
|
|
catan 0x1.000002p0 -0x1p-13
|
|
|
|
catan -0x1.000002p0 -0x1p-13
|
|
|
|
catan 0x1p-13 0x0.ffffffp0
|
|
|
|
catan 0x1p-13 -0x0.ffffffp0
|
|
|
|
catan -0x1p-13 0x0.ffffffp0
|
|
|
|
catan -0x1p-13 -0x0.ffffffp0
|
|
|
|
catan 0x0.ffffffp0 0x1p-13
|
|
|
|
catan -0x0.ffffffp0 0x1p-13
|
|
|
|
catan 0x0.ffffffp0 -0x1p-13
|
|
|
|
catan -0x0.ffffffp0 -0x1p-13
|
|
|
|
catan 0x1p-27 0x1.0000000000001p0
|
|
|
|
catan 0x1p-27 -0x1.0000000000001p0
|
|
|
|
catan -0x1p-27 0x1.0000000000001p0
|
|
|
|
catan -0x1p-27 -0x1.0000000000001p0
|
|
|
|
catan 0x1.0000000000001p0 0x1p-27
|
|
|
|
catan -0x1.0000000000001p0 0x1p-27
|
|
|
|
catan 0x1.0000000000001p0 -0x1p-27
|
|
|
|
catan -0x1.0000000000001p0 -0x1p-27
|
|
|
|
catan 0x1p-27 0x0.fffffffffffff8p0
|
|
|
|
catan 0x1p-27 -0x0.fffffffffffff8p0
|
|
|
|
catan -0x1p-27 0x0.fffffffffffff8p0
|
|
|
|
catan -0x1p-27 -0x0.fffffffffffff8p0
|
|
|
|
catan 0x0.fffffffffffff8p0 0x1p-27
|
|
|
|
catan -0x0.fffffffffffff8p0 0x1p-27
|
|
|
|
catan 0x0.fffffffffffff8p0 -0x1p-27
|
|
|
|
catan -0x0.fffffffffffff8p0 -0x1p-27
|
|
|
|
catan 0x1p-33 0x1.0000000000000002p0
|
|
|
|
catan 0x1p-33 -0x1.0000000000000002p0
|
|
|
|
catan -0x1p-33 0x1.0000000000000002p0
|
|
|
|
catan -0x1p-33 -0x1.0000000000000002p0
|
|
|
|
catan 0x1.0000000000000002p0 0x1p-33
|
|
|
|
catan -0x1.0000000000000002p0 0x1p-33
|
|
|
|
catan 0x1.0000000000000002p0 -0x1p-33
|
|
|
|
catan -0x1.0000000000000002p0 -0x1p-33
|
|
|
|
catan 0x1p-33 0x0.ffffffffffffffffp0
|
|
|
|
catan 0x1p-33 -0x0.ffffffffffffffffp0
|
|
|
|
catan -0x1p-33 0x0.ffffffffffffffffp0
|
|
|
|
catan -0x1p-33 -0x0.ffffffffffffffffp0
|
|
|
|
catan 0x0.ffffffffffffffffp0 0x1p-33
|
|
|
|
catan -0x0.ffffffffffffffffp0 0x1p-33
|
|
|
|
catan 0x0.ffffffffffffffffp0 -0x1p-33
|
|
|
|
catan -0x0.ffffffffffffffffp0 -0x1p-33
|
|
|
|
catan 0x1p-54 0x1.000000000000000000000000008p0
|
|
|
|
catan 0x1p-54 -0x1.000000000000000000000000008p0
|
|
|
|
catan -0x1p-54 0x1.000000000000000000000000008p0
|
|
|
|
catan -0x1p-54 -0x1.000000000000000000000000008p0
|
|
|
|
catan 0x1.000000000000000000000000008p0 0x1p-54
|
|
|
|
catan -0x1.000000000000000000000000008p0 0x1p-54
|
|
|
|
catan 0x1.000000000000000000000000008p0 -0x1p-54
|
|
|
|
catan -0x1.000000000000000000000000008p0 -0x1p-54
|
|
|
|
catan 0x1p-54 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
catan 0x1p-54 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
catan -0x1p-54 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
catan -0x1p-54 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
catan 0x0.ffffffffffffffffffffffffffcp0 0x1p-54
|
|
|
|
catan -0x0.ffffffffffffffffffffffffffcp0 0x1p-54
|
|
|
|
catan 0x0.ffffffffffffffffffffffffffcp0 -0x1p-54
|
|
|
|
catan -0x0.ffffffffffffffffffffffffffcp0 -0x1p-54
|
|
|
|
catan 0x1p-57 0x1.0000000000000000000000000001p0
|
|
|
|
catan 0x1p-57 -0x1.0000000000000000000000000001p0
|
|
|
|
catan -0x1p-57 0x1.0000000000000000000000000001p0
|
|
|
|
catan -0x1p-57 -0x1.0000000000000000000000000001p0
|
|
|
|
catan 0x1.0000000000000000000000000001p0 0x1p-57
|
|
|
|
catan -0x1.0000000000000000000000000001p0 0x1p-57
|
|
|
|
catan 0x1.0000000000000000000000000001p0 -0x1p-57
|
|
|
|
catan -0x1.0000000000000000000000000001p0 -0x1p-57
|
|
|
|
catan 0x1p-57 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
catan 0x1p-57 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
catan -0x1p-57 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
catan -0x1p-57 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
catan 0x0.ffffffffffffffffffffffffffff8p0 0x1p-57
|
|
|
|
catan -0x0.ffffffffffffffffffffffffffff8p0 0x1p-57
|
|
|
|
catan 0x0.ffffffffffffffffffffffffffff8p0 -0x1p-57
|
|
|
|
catan -0x0.ffffffffffffffffffffffffffff8p0 -0x1p-57
|
|
|
|
catan 1.0 0x1p-64
|
|
|
|
catan 1.0 -0x1p-64
|
|
|
|
catan -1.0 0x1p-64
|
|
|
|
catan -1.0 -0x1p-64
|
|
|
|
catan 0x1p-64 1.0
|
|
|
|
catan -0x1p-64 1.0
|
|
|
|
catan 0x1p-64 -1.0
|
|
|
|
catan -0x1p-64 -1.0
|
|
|
|
catan 1.0 0x1.3p-73
|
|
|
|
catan 1.0 -0x1.3p-73
|
|
|
|
catan -1.0 0x1.3p-73
|
|
|
|
catan -1.0 -0x1.3p-73
|
|
|
|
catan 0x1.3p-73 1.0
|
|
|
|
catan -0x1.3p-73 1.0
|
|
|
|
catan 0x1.3p-73 -1.0
|
|
|
|
catan -0x1.3p-73 -1.0
|
|
|
|
catan 1.0 0x1p-124
|
|
|
|
catan 1.0 -0x1p-124
|
|
|
|
catan -1.0 0x1p-124
|
|
|
|
catan -1.0 -0x1p-124
|
|
|
|
catan 0x1p-124 1.0
|
|
|
|
catan -0x1p-124 1.0
|
|
|
|
catan 0x1p-124 -1.0
|
|
|
|
catan -0x1p-124 -1.0
|
|
|
|
catan 0x1.000002p0 0x1p-126
|
|
|
|
catan 0x1.000002p0 -0x1p-126
|
|
|
|
catan -0x1.000002p0 0x1p-126
|
|
|
|
catan -0x1.000002p0 -0x1p-126
|
|
|
|
catan 0x1p-126 0x1.000002p0
|
|
|
|
catan -0x1p-126 0x1.000002p0
|
|
|
|
catan 0x1p-126 -0x1.000002p0
|
|
|
|
catan -0x1p-126 -0x1.000002p0
|
|
|
|
catan 0x0.ffffffp0 0x1p-126
|
|
|
|
catan 0x0.ffffffp0 -0x1p-126
|
|
|
|
catan -0x0.ffffffp0 0x1p-126
|
|
|
|
catan -0x0.ffffffp0 -0x1p-126
|
|
|
|
catan 0x1p-126 0x0.ffffffp0
|
|
|
|
catan -0x1p-126 0x0.ffffffp0
|
|
|
|
catan 0x1p-126 -0x0.ffffffp0
|
|
|
|
catan -0x1p-126 -0x0.ffffffp0
|
|
|
|
catan 1.0 0x1p-512
|
|
|
|
catan 1.0 -0x1p-512
|
|
|
|
catan -1.0 0x1p-512
|
|
|
|
catan -1.0 -0x1p-512
|
|
|
|
catan 0x1p-512 1.0
|
|
|
|
catan -0x1p-512 1.0
|
|
|
|
catan 0x1p-512 -1.0
|
|
|
|
catan -0x1p-512 -1.0
|
|
|
|
catan 1.0 0x1.3p-536
|
|
|
|
catan 1.0 -0x1.3p-536
|
|
|
|
catan -1.0 0x1.3p-536
|
|
|
|
catan -1.0 -0x1.3p-536
|
|
|
|
catan 0x1.3p-536 1.0
|
|
|
|
catan -0x1.3p-536 1.0
|
|
|
|
catan 0x1.3p-536 -1.0
|
|
|
|
catan -0x1.3p-536 -1.0
|
|
|
|
catan 1.0 0x1p-1020
|
|
|
|
catan 1.0 -0x1p-1020
|
|
|
|
catan -1.0 0x1p-1020
|
|
|
|
catan -1.0 -0x1p-1020
|
|
|
|
catan 0x1p-1020 1.0
|
|
|
|
catan -0x1p-1020 1.0
|
|
|
|
catan 0x1p-1020 -1.0
|
|
|
|
catan -0x1p-1020 -1.0
|
|
|
|
catan 0x1.0000000000001p0 0x1p-1022
|
|
|
|
catan 0x1.0000000000001p0 -0x1p-1022
|
|
|
|
catan -0x1.0000000000001p0 0x1p-1022
|
|
|
|
catan -0x1.0000000000001p0 -0x1p-1022
|
|
|
|
catan 0x1p-1022 0x1.0000000000001p0
|
|
|
|
catan -0x1p-1022 0x1.0000000000001p0
|
|
|
|
catan 0x1p-1022 -0x1.0000000000001p0
|
|
|
|
catan -0x1p-1022 -0x1.0000000000001p0
|
|
|
|
catan 0x0.fffffffffffff8p0 0x1p-1022
|
|
|
|
catan 0x0.fffffffffffff8p0 -0x1p-1022
|
|
|
|
catan -0x0.fffffffffffff8p0 0x1p-1022
|
|
|
|
catan -0x0.fffffffffffff8p0 -0x1p-1022
|
|
|
|
catan 0x1p-1022 0x0.fffffffffffff8p0
|
|
|
|
catan -0x1p-1022 0x0.fffffffffffff8p0
|
|
|
|
catan 0x1p-1022 -0x0.fffffffffffff8p0
|
|
|
|
catan -0x1p-1022 -0x0.fffffffffffff8p0
|
|
|
|
catan 0x1.0000000000000002p0 0x1p-1022
|
|
|
|
catan 0x1.0000000000000002p0 -0x1p-1022
|
|
|
|
catan -0x1.0000000000000002p0 0x1p-1022
|
|
|
|
catan -0x1.0000000000000002p0 -0x1p-1022
|
|
|
|
catan 0x1p-1022 0x1.0000000000000002p0
|
|
|
|
catan -0x1p-1022 0x1.0000000000000002p0
|
|
|
|
catan 0x1p-1022 -0x1.0000000000000002p0
|
|
|
|
catan -0x1p-1022 -0x1.0000000000000002p0
|
|
|
|
catan 0x0.ffffffffffffffffp0 0x1p-1022
|
|
|
|
catan 0x0.ffffffffffffffffp0 -0x1p-1022
|
|
|
|
catan -0x0.ffffffffffffffffp0 0x1p-1022
|
|
|
|
catan -0x0.ffffffffffffffffp0 -0x1p-1022
|
|
|
|
catan 0x1p-1022 0x0.ffffffffffffffffp0
|
|
|
|
catan -0x1p-1022 0x0.ffffffffffffffffp0
|
|
|
|
catan 0x1p-1022 -0x0.ffffffffffffffffp0
|
|
|
|
catan -0x1p-1022 -0x0.ffffffffffffffffp0
|
|
|
|
catan 0x1.000000000000000000000000008p0 0x1p-1022
|
|
|
|
catan 0x1.000000000000000000000000008p0 -0x1p-1022
|
|
|
|
catan -0x1.000000000000000000000000008p0 0x1p-1022
|
|
|
|
catan -0x1.000000000000000000000000008p0 -0x1p-1022
|
|
|
|
catan 0x1p-1022 0x1.000000000000000000000000008p0
|
|
|
|
catan -0x1p-1022 0x1.000000000000000000000000008p0
|
|
|
|
catan 0x1p-1022 -0x1.000000000000000000000000008p0
|
|
|
|
catan -0x1p-1022 -0x1.000000000000000000000000008p0
|
|
|
|
catan 0x0.ffffffffffffffffffffffffffcp0 0x1p-1022
|
|
|
|
catan 0x0.ffffffffffffffffffffffffffcp0 -0x1p-1022
|
|
|
|
catan -0x0.ffffffffffffffffffffffffffcp0 0x1p-1022
|
|
|
|
catan -0x0.ffffffffffffffffffffffffffcp0 -0x1p-1022
|
|
|
|
catan 0x1p-1022 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
catan -0x1p-1022 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
catan 0x1p-1022 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
catan -0x1p-1022 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
catan 1.0 0x1p-8192
|
|
|
|
catan 1.0 -0x1p-8192
|
|
|
|
catan -1.0 0x1p-8192
|
|
|
|
catan -1.0 -0x1p-8192
|
|
|
|
catan 0x1p-8192 1.0
|
|
|
|
catan -0x1p-8192 1.0
|
|
|
|
catan 0x1p-8192 -1.0
|
|
|
|
catan -0x1p-8192 -1.0
|
|
|
|
catan 1.0 0x1.3p-8221
|
|
|
|
catan 1.0 -0x1.3p-8221
|
|
|
|
catan -1.0 0x1.3p-8221
|
|
|
|
catan -1.0 -0x1.3p-8221
|
|
|
|
catan 0x1.3p-8221 1.0
|
|
|
|
catan -0x1.3p-8221 1.0
|
|
|
|
catan 0x1.3p-8221 -1.0
|
|
|
|
catan -0x1.3p-8221 -1.0
|
|
|
|
catan 1.0 0x1.3p-8246
|
|
|
|
catan 1.0 -0x1.3p-8246
|
|
|
|
catan -1.0 0x1.3p-8246
|
|
|
|
catan -1.0 -0x1.3p-8246
|
|
|
|
catan 0x1.3p-8246 1.0
|
|
|
|
catan -0x1.3p-8246 1.0
|
|
|
|
catan 0x1.3p-8246 -1.0
|
|
|
|
catan -0x1.3p-8246 -1.0
|
|
|
|
catan 1.0 0x1p-16380
|
|
|
|
catan 1.0 -0x1p-16380
|
|
|
|
catan -1.0 0x1p-16380
|
|
|
|
catan -1.0 -0x1p-16380
|
|
|
|
catan 0x1p-16380 1.0
|
|
|
|
catan -0x1p-16380 1.0
|
|
|
|
catan 0x1p-16380 -1.0
|
|
|
|
catan -0x1p-16380 -1.0
|
|
|
|
catan 0x1.0000000000000002p0 0x1p-16382
|
|
|
|
catan 0x1.0000000000000002p0 -0x1p-16382
|
|
|
|
catan -0x1.0000000000000002p0 0x1p-16382
|
|
|
|
catan -0x1.0000000000000002p0 -0x1p-16382
|
|
|
|
catan 0x1p-16382 0x1.0000000000000002p0
|
|
|
|
catan -0x1p-16382 0x1.0000000000000002p0
|
|
|
|
catan 0x1p-16382 -0x1.0000000000000002p0
|
|
|
|
catan -0x1p-16382 -0x1.0000000000000002p0
|
|
|
|
catan 0x0.ffffffffffffffffp0 0x1p-16382
|
|
|
|
catan 0x0.ffffffffffffffffp0 -0x1p-16382
|
|
|
|
catan -0x0.ffffffffffffffffp0 0x1p-16382
|
|
|
|
catan -0x0.ffffffffffffffffp0 -0x1p-16382
|
|
|
|
catan 0x1p-16382 0x0.ffffffffffffffffp0
|
|
|
|
catan -0x1p-16382 0x0.ffffffffffffffffp0
|
|
|
|
catan 0x1p-16382 -0x0.ffffffffffffffffp0
|
|
|
|
catan -0x1p-16382 -0x0.ffffffffffffffffp0
|
|
|
|
catan 0x1.0000000000000000000000000001p0 0x1p-16382
|
|
|
|
catan 0x1.0000000000000000000000000001p0 -0x1p-16382
|
|
|
|
catan -0x1.0000000000000000000000000001p0 0x1p-16382
|
|
|
|
catan -0x1.0000000000000000000000000001p0 -0x1p-16382
|
|
|
|
catan 0x1p-16382 0x1.0000000000000000000000000001p0
|
|
|
|
catan -0x1p-16382 0x1.0000000000000000000000000001p0
|
|
|
|
catan 0x1p-16382 -0x1.0000000000000000000000000001p0
|
|
|
|
catan -0x1p-16382 -0x1.0000000000000000000000000001p0
|
|
|
|
catan 0x0.ffffffffffffffffffffffffffff8p0 0x1p-16382
|
|
|
|
catan 0x0.ffffffffffffffffffffffffffff8p0 -0x1p-16382
|
|
|
|
catan -0x0.ffffffffffffffffffffffffffff8p0 0x1p-16382
|
|
|
|
catan -0x0.ffffffffffffffffffffffffffff8p0 -0x1p-16382
|
|
|
|
catan 0x1p-16382 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
catan -0x1p-16382 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
catan 0x1p-16382 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
catan -0x1p-16382 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
|
|
|
|
catan 0.75 1.25
|
|
|
|
catan -2 -3
|
|
|
|
|
|
|
|
catanh 0 0
|
|
|
|
catanh -0 0
|
|
|
|
catanh 0 -0
|
|
|
|
catanh -0 -0
|
|
|
|
|
|
|
|
catanh 0 1.0
|
|
|
|
catanh -0 1.0
|
|
|
|
catanh 0 -1.0
|
|
|
|
catanh -0 -1.0
|
|
|
|
|
|
|
|
catanh 0x1p50 0.0
|
|
|
|
catanh 0x1p50 -0.0
|
|
|
|
catanh -0x1p50 0.0
|
|
|
|
catanh -0x1p50 -0.0
|
|
|
|
catanh 0.0 0x1p50
|
|
|
|
catanh -0.0 0x1p50
|
|
|
|
catanh 0.0 -0x1p50
|
|
|
|
catanh -0.0 -0x1p50
|
|
|
|
catanh 0x1p500 0.0
|
|
|
|
catanh 0x1p500 -0.0
|
|
|
|
catanh -0x1p500 0.0
|
|
|
|
catanh -0x1p500 -0.0
|
|
|
|
catanh 0.0 0x1p500
|
|
|
|
catanh -0.0 0x1p500
|
|
|
|
catanh 0.0 -0x1p500
|
|
|
|
catanh -0.0 -0x1p500
|
|
|
|
catanh 0x1p5000 0.0
|
|
|
|
catanh 0x1p5000 -0.0
|
|
|
|
catanh -0x1p5000 0.0
|
|
|
|
catanh -0x1p5000 -0.0
|
|
|
|
catanh 0.0 0x1p5000
|
|
|
|
catanh -0.0 0x1p5000
|
|
|
|
catanh 0.0 -0x1p5000
|
|
|
|
catanh -0.0 -0x1p5000
|
|
|
|
catanh 0x1p63 0.5
|
|
|
|
catanh 0x1p63 -0.5
|
|
|
|
catanh -0x1p63 0.5
|
|
|
|
catanh -0x1p63 -0.5
|
|
|
|
catanh 0.5 0x1p63
|
|
|
|
catanh -0.5 0x1p63
|
|
|
|
catanh 0.5 -0x1p63
|
|
|
|
catanh -0.5 -0x1p63
|
|
|
|
catanh 0x1p511 0.5
|
|
|
|
catanh 0x1p511 -0.5
|
|
|
|
catanh -0x1p511 0.5
|
|
|
|
catanh -0x1p511 -0.5
|
|
|
|
catanh 0.5 0x1p511
|
|
|
|
catanh -0.5 0x1p511
|
|
|
|
catanh 0.5 -0x1p511
|
|
|
|
catanh -0.5 -0x1p511
|
|
|
|
catanh 0x1p8191 0.5
|
|
|
|
catanh 0x1p8191 -0.5
|
|
|
|
catanh -0x1p8191 0.5
|
|
|
|
catanh -0x1p8191 -0.5
|
|
|
|
catanh 0.5 0x1p8191
|
|
|
|
catanh -0.5 0x1p8191
|
|
|
|
catanh 0.5 -0x1p8191
|
|
|
|
catanh -0.5 -0x1p8191
|
|
|
|
catanh 0x1p100 0.0
|
|
|
|
catanh 0x1p100 -0.0
|
|
|
|
catanh -0x1p100 0.0
|
|
|
|
catanh -0x1p100 -0.0
|
|
|
|
catanh 0.0 0x1p100
|
|
|
|
catanh -0.0 0x1p100
|
|
|
|
catanh 0.0 -0x1p100
|
|
|
|
catanh -0.0 -0x1p100
|
|
|
|
catanh 0x1.fp127 0.0
|
|
|
|
catanh 0x1.fp127 -0.0
|
|
|
|
catanh -0x1.fp127 0.0
|
|
|
|
catanh -0x1.fp127 -0.0
|
|
|
|
catanh 0.0 0x1.fp127
|
|
|
|
catanh -0.0 0x1.fp127
|
|
|
|
catanh 0.0 -0x1.fp127
|
|
|
|
catanh -0.0 -0x1.fp127
|
|
|
|
catanh 0x1.fp127 0x1.fp127
|
|
|
|
catanh 0x1.fp127 -0x1.fp127
|
|
|
|
catanh -0x1.fp127 0x1.fp127
|
|
|
|
catanh -0x1.fp127 -0x1.fp127
|
|
|
|
catanh 0x1p900 0.0
|
|
|
|
catanh 0x1p900 -0.0
|
|
|
|
catanh -0x1p900 0.0
|
|
|
|
catanh -0x1p900 -0.0
|
|
|
|
catanh 0.0 0x1p900
|
|
|
|
catanh -0.0 0x1p900
|
|
|
|
catanh 0.0 -0x1p900
|
|
|
|
catanh -0.0 -0x1p900
|
|
|
|
catanh 0x1.fp1023 0.0
|
|
|
|
catanh 0x1.fp1023 -0.0
|
|
|
|
catanh -0x1.fp1023 0.0
|
|
|
|
catanh -0x1.fp1023 -0.0
|
|
|
|
catanh 0.0 0x1.fp1023
|
|
|
|
catanh -0.0 0x1.fp1023
|
|
|
|
catanh 0.0 -0x1.fp1023
|
|
|
|
catanh -0.0 -0x1.fp1023
|
|
|
|
catanh 0x1.fp1023 0x1.fp1023
|
|
|
|
catanh 0x1.fp1023 -0x1.fp1023
|
|
|
|
catanh -0x1.fp1023 0x1.fp1023
|
|
|
|
catanh -0x1.fp1023 -0x1.fp1023
|
|
|
|
catanh 0x1p10000 0.0
|
|
|
|
catanh 0x1p10000 -0.0
|
|
|
|
catanh -0x1p10000 0.0
|
|
|
|
catanh -0x1p10000 -0.0
|
|
|
|
catanh 0.0 0x1p10000
|
|
|
|
catanh -0.0 0x1p10000
|
|
|
|
catanh 0.0 -0x1p10000
|
|
|
|
catanh -0.0 -0x1p10000
|
|
|
|
catanh 0x1.fp16383 0.0
|
|
|
|
catanh 0x1.fp16383 -0.0
|
|
|
|
catanh -0x1.fp16383 0.0
|
|
|
|
catanh -0x1.fp16383 -0.0
|
|
|
|
catanh 0.0 0x1.fp16383
|
|
|
|
catanh -0.0 0x1.fp16383
|
|
|
|
catanh 0.0 -0x1.fp16383
|
|
|
|
catanh -0.0 -0x1.fp16383
|
2017-03-16 13:18:46 +00:00
|
|
|
catanh 0x1.fp16383 0x1.fp16383 xfail-rounding:ibm128-libgcc
|
|
|
|
catanh 0x1.fp16383 -0x1.fp16383 xfail-rounding:ibm128-libgcc
|
|
|
|
catanh -0x1.fp16383 0x1.fp16383 xfail-rounding:ibm128-libgcc
|
|
|
|
catanh -0x1.fp16383 -0x1.fp16383 xfail-rounding:ibm128-libgcc
|
2017-02-17 18:42:37 +00:00
|
|
|
catanh 0x1p-13 1.0
|
|
|
|
catanh 0x1p-13 -1.0
|
|
|
|
catanh -0x1p-13 1.0
|
|
|
|
catanh -0x1p-13 -1.0
|
|
|
|
catanh 1.0 0x1p-13
|
|
|
|
catanh -1.0 0x1p-13
|
|
|
|
catanh 1.0 -0x1p-13
|
|
|
|
catanh -1.0 -0x1p-13
|
|
|
|
catanh 0x1p-27 1.0
|
|
|
|
catanh 0x1p-27 -1.0
|
|
|
|
catanh -0x1p-27 1.0
|
|
|
|
catanh -0x1p-27 -1.0
|
|
|
|
catanh 1.0 0x1p-27
|
|
|
|
catanh -1.0 0x1p-27
|
|
|
|
catanh 1.0 -0x1p-27
|
|
|
|
catanh -1.0 -0x1p-27
|
|
|
|
catanh 0x1p-33 1.0
|
|
|
|
catanh 0x1p-33 -1.0
|
|
|
|
catanh -0x1p-33 1.0
|
|
|
|
catanh -0x1p-33 -1.0
|
|
|
|
catanh 1.0 0x1p-33
|
|
|
|
catanh -1.0 0x1p-33
|
|
|
|
catanh 1.0 -0x1p-33
|
|
|
|
catanh -1.0 -0x1p-33
|
|
|
|
catanh 0x1p-54 1.0
|
|
|
|
catanh 0x1p-54 -1.0
|
|
|
|
catanh -0x1p-54 1.0
|
|
|
|
catanh -0x1p-54 -1.0
|
|
|
|
catanh 1.0 0x1p-54
|
|
|
|
catanh -1.0 0x1p-54
|
|
|
|
catanh 1.0 -0x1p-54
|
|
|
|
catanh -1.0 -0x1p-54
|
|
|
|
catanh 0x1p-57 1.0
|
|
|
|
catanh 0x1p-57 -1.0
|
|
|
|
catanh -0x1p-57 1.0
|
|
|
|
catanh -0x1p-57 -1.0
|
|
|
|
catanh 1.0 0x1p-57
|
|
|
|
catanh -1.0 0x1p-57
|
|
|
|
catanh 1.0 -0x1p-57
|
|
|
|
catanh -1.0 -0x1p-57
|
|
|
|
catanh 0x1p-13 0x1.000002p0
|
|
|
|
catanh 0x1p-13 -0x1.000002p0
|
|
|
|
catanh -0x1p-13 0x1.000002p0
|
|
|
|
catanh -0x1p-13 -0x1.000002p0
|
|
|
|
catanh 0x1.000002p0 0x1p-13
|
|
|
|
catanh -0x1.000002p0 0x1p-13
|
|
|
|
catanh 0x1.000002p0 -0x1p-13
|
|
|
|
catanh -0x1.000002p0 -0x1p-13
|
|
|
|
catanh 0x1p-13 0x0.ffffffp0
|
|
|
|
catanh 0x1p-13 -0x0.ffffffp0
|
|
|
|
catanh -0x1p-13 0x0.ffffffp0
|
|
|
|
catanh -0x1p-13 -0x0.ffffffp0
|
|
|
|
catanh 0x0.ffffffp0 0x1p-13
|
|
|
|
catanh -0x0.ffffffp0 0x1p-13
|
|
|
|
catanh 0x0.ffffffp0 -0x1p-13
|
|
|
|
catanh -0x0.ffffffp0 -0x1p-13
|
|
|
|
catanh 0x1p-27 0x1.0000000000001p0
|
|
|
|
catanh 0x1p-27 -0x1.0000000000001p0
|
|
|
|
catanh -0x1p-27 0x1.0000000000001p0
|
|
|
|
catanh -0x1p-27 -0x1.0000000000001p0
|
|
|
|
catanh 0x1.0000000000001p0 0x1p-27
|
|
|
|
catanh -0x1.0000000000001p0 0x1p-27
|
|
|
|
catanh 0x1.0000000000001p0 -0x1p-27
|
|
|
|
catanh -0x1.0000000000001p0 -0x1p-27
|
|
|
|
catanh 0x1p-27 0x0.fffffffffffff8p0
|
|
|
|
catanh 0x1p-27 -0x0.fffffffffffff8p0
|
|
|
|
catanh -0x1p-27 0x0.fffffffffffff8p0
|
|
|
|
catanh -0x1p-27 -0x0.fffffffffffff8p0
|
|
|
|
catanh 0x0.fffffffffffff8p0 0x1p-27
|
|
|
|
catanh -0x0.fffffffffffff8p0 0x1p-27
|
|
|
|
catanh 0x0.fffffffffffff8p0 -0x1p-27
|
|
|
|
catanh -0x0.fffffffffffff8p0 -0x1p-27
|
|
|
|
catanh 0x1p-33 0x1.0000000000000002p0
|
|
|
|
catanh 0x1p-33 -0x1.0000000000000002p0
|
|
|
|
catanh -0x1p-33 0x1.0000000000000002p0
|
|
|
|
catanh -0x1p-33 -0x1.0000000000000002p0
|
|
|
|
catanh 0x1.0000000000000002p0 0x1p-33
|
|
|
|
catanh -0x1.0000000000000002p0 0x1p-33
|
|
|
|
catanh 0x1.0000000000000002p0 -0x1p-33
|
|
|
|
catanh -0x1.0000000000000002p0 -0x1p-33
|
|
|
|
catanh 0x1p-33 0x0.ffffffffffffffffp0
|
|
|
|
catanh 0x1p-33 -0x0.ffffffffffffffffp0
|
|
|
|
catanh -0x1p-33 0x0.ffffffffffffffffp0
|
|
|
|
catanh -0x1p-33 -0x0.ffffffffffffffffp0
|
|
|
|
catanh 0x0.ffffffffffffffffp0 0x1p-33
|
|
|
|
catanh -0x0.ffffffffffffffffp0 0x1p-33
|
|
|
|
catanh 0x0.ffffffffffffffffp0 -0x1p-33
|
|
|
|
catanh -0x0.ffffffffffffffffp0 -0x1p-33
|
|
|
|
catanh 0x1p-54 0x1.000000000000000000000000008p0
|
|
|
|
catanh 0x1p-54 -0x1.000000000000000000000000008p0
|
|
|
|
catanh -0x1p-54 0x1.000000000000000000000000008p0
|
|
|
|
catanh -0x1p-54 -0x1.000000000000000000000000008p0
|
|
|
|
catanh 0x1.000000000000000000000000008p0 0x1p-54
|
|
|
|
catanh -0x1.000000000000000000000000008p0 0x1p-54
|
|
|
|
catanh 0x1.000000000000000000000000008p0 -0x1p-54
|
|
|
|
catanh -0x1.000000000000000000000000008p0 -0x1p-54
|
|
|
|
catanh 0x1p-54 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
catanh 0x1p-54 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
catanh -0x1p-54 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
catanh -0x1p-54 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
catanh 0x0.ffffffffffffffffffffffffffcp0 0x1p-54
|
|
|
|
catanh -0x0.ffffffffffffffffffffffffffcp0 0x1p-54
|
|
|
|
catanh 0x0.ffffffffffffffffffffffffffcp0 -0x1p-54
|
|
|
|
catanh -0x0.ffffffffffffffffffffffffffcp0 -0x1p-54
|
|
|
|
catanh 0x1p-57 0x1.0000000000000000000000000001p0
|
|
|
|
catanh 0x1p-57 -0x1.0000000000000000000000000001p0
|
|
|
|
catanh -0x1p-57 0x1.0000000000000000000000000001p0
|
|
|
|
catanh -0x1p-57 -0x1.0000000000000000000000000001p0
|
|
|
|
catanh 0x1.0000000000000000000000000001p0 0x1p-57
|
|
|
|
catanh -0x1.0000000000000000000000000001p0 0x1p-57
|
|
|
|
catanh 0x1.0000000000000000000000000001p0 -0x1p-57
|
|
|
|
catanh -0x1.0000000000000000000000000001p0 -0x1p-57
|
|
|
|
catanh 0x1p-57 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
catanh 0x1p-57 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
catanh -0x1p-57 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
catanh -0x1p-57 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
catanh 0x0.ffffffffffffffffffffffffffff8p0 0x1p-57
|
|
|
|
catanh -0x0.ffffffffffffffffffffffffffff8p0 0x1p-57
|
|
|
|
catanh 0x0.ffffffffffffffffffffffffffff8p0 -0x1p-57
|
|
|
|
catanh -0x0.ffffffffffffffffffffffffffff8p0 -0x1p-57
|
|
|
|
catanh 1.0 0x1p-64
|
|
|
|
catanh 1.0 -0x1p-64
|
|
|
|
catanh -1.0 0x1p-64
|
|
|
|
catanh -1.0 -0x1p-64
|
|
|
|
catanh 0x1p-64 1.0
|
|
|
|
catanh -0x1p-64 1.0
|
|
|
|
catanh 0x1p-64 -1.0
|
|
|
|
catanh -0x1p-64 -1.0
|
|
|
|
catanh 1.0 0x1.3p-73
|
|
|
|
catanh 1.0 -0x1.3p-73
|
|
|
|
catanh -1.0 0x1.3p-73
|
|
|
|
catanh -1.0 -0x1.3p-73
|
|
|
|
catanh 0x1.3p-73 1.0
|
|
|
|
catanh -0x1.3p-73 1.0
|
|
|
|
catanh 0x1.3p-73 -1.0
|
|
|
|
catanh -0x1.3p-73 -1.0
|
|
|
|
catanh 1.0 0x1p-124
|
|
|
|
catanh 1.0 -0x1p-124
|
|
|
|
catanh -1.0 0x1p-124
|
|
|
|
catanh -1.0 -0x1p-124
|
|
|
|
catanh 0x1p-124 1.0
|
|
|
|
catanh -0x1p-124 1.0
|
|
|
|
catanh 0x1p-124 -1.0
|
|
|
|
catanh -0x1p-124 -1.0
|
|
|
|
catanh 0x1.000002p0 0x1p-126
|
|
|
|
catanh 0x1.000002p0 -0x1p-126
|
|
|
|
catanh -0x1.000002p0 0x1p-126
|
|
|
|
catanh -0x1.000002p0 -0x1p-126
|
|
|
|
catanh 0x1p-126 0x1.000002p0
|
|
|
|
catanh -0x1p-126 0x1.000002p0
|
|
|
|
catanh 0x1p-126 -0x1.000002p0
|
|
|
|
catanh -0x1p-126 -0x1.000002p0
|
|
|
|
catanh 0x0.ffffffp0 0x1p-126
|
|
|
|
catanh 0x0.ffffffp0 -0x1p-126
|
|
|
|
catanh -0x0.ffffffp0 0x1p-126
|
|
|
|
catanh -0x0.ffffffp0 -0x1p-126
|
|
|
|
catanh 0x1p-126 0x0.ffffffp0
|
|
|
|
catanh -0x1p-126 0x0.ffffffp0
|
|
|
|
catanh 0x1p-126 -0x0.ffffffp0
|
|
|
|
catanh -0x1p-126 -0x0.ffffffp0
|
|
|
|
catanh 1.0 0x1p-512
|
|
|
|
catanh 1.0 -0x1p-512
|
|
|
|
catanh -1.0 0x1p-512
|
|
|
|
catanh -1.0 -0x1p-512
|
|
|
|
catanh 0x1p-512 1.0
|
|
|
|
catanh -0x1p-512 1.0
|
|
|
|
catanh 0x1p-512 -1.0
|
|
|
|
catanh -0x1p-512 -1.0
|
|
|
|
catanh 1.0 0x1.3p-536
|
|
|
|
catanh 1.0 -0x1.3p-536
|
|
|
|
catanh -1.0 0x1.3p-536
|
|
|
|
catanh -1.0 -0x1.3p-536
|
|
|
|
catanh 0x1.3p-536 1.0
|
|
|
|
catanh -0x1.3p-536 1.0
|
|
|
|
catanh 0x1.3p-536 -1.0
|
|
|
|
catanh -0x1.3p-536 -1.0
|
|
|
|
catanh 1.0 0x1p-1020
|
|
|
|
catanh 1.0 -0x1p-1020
|
|
|
|
catanh -1.0 0x1p-1020
|
|
|
|
catanh -1.0 -0x1p-1020
|
|
|
|
catanh 0x1p-1020 1.0
|
|
|
|
catanh -0x1p-1020 1.0
|
|
|
|
catanh 0x1p-1020 -1.0
|
|
|
|
catanh -0x1p-1020 -1.0
|
|
|
|
catanh 0x1.0000000000001p0 0x1p-1022
|
|
|
|
catanh 0x1.0000000000001p0 -0x1p-1022
|
|
|
|
catanh -0x1.0000000000001p0 0x1p-1022
|
|
|
|
catanh -0x1.0000000000001p0 -0x1p-1022
|
|
|
|
catanh 0x1p-1022 0x1.0000000000001p0
|
|
|
|
catanh -0x1p-1022 0x1.0000000000001p0
|
|
|
|
catanh 0x1p-1022 -0x1.0000000000001p0
|
|
|
|
catanh -0x1p-1022 -0x1.0000000000001p0
|
|
|
|
catanh 0x0.fffffffffffff8p0 0x1p-1022
|
|
|
|
catanh 0x0.fffffffffffff8p0 -0x1p-1022
|
|
|
|
catanh -0x0.fffffffffffff8p0 0x1p-1022
|
|
|
|
catanh -0x0.fffffffffffff8p0 -0x1p-1022
|
|
|
|
catanh 0x1p-1022 0x0.fffffffffffff8p0
|
|
|
|
catanh -0x1p-1022 0x0.fffffffffffff8p0
|
|
|
|
catanh 0x1p-1022 -0x0.fffffffffffff8p0
|
|
|
|
catanh -0x1p-1022 -0x0.fffffffffffff8p0
|
|
|
|
catanh 0x1.0000000000000002p0 0x1p-1022
|
|
|
|
catanh 0x1.0000000000000002p0 -0x1p-1022
|
|
|
|
catanh -0x1.0000000000000002p0 0x1p-1022
|
|
|
|
catanh -0x1.0000000000000002p0 -0x1p-1022
|
|
|
|
catanh 0x1p-1022 0x1.0000000000000002p0
|
|
|
|
catanh -0x1p-1022 0x1.0000000000000002p0
|
|
|
|
catanh 0x1p-1022 -0x1.0000000000000002p0
|
|
|
|
catanh -0x1p-1022 -0x1.0000000000000002p0
|
|
|
|
catanh 0x0.ffffffffffffffffp0 0x1p-1022
|
|
|
|
catanh 0x0.ffffffffffffffffp0 -0x1p-1022
|
|
|
|
catanh -0x0.ffffffffffffffffp0 0x1p-1022
|
|
|
|
catanh -0x0.ffffffffffffffffp0 -0x1p-1022
|
|
|
|
catanh 0x1p-1022 0x0.ffffffffffffffffp0
|
|
|
|
catanh -0x1p-1022 0x0.ffffffffffffffffp0
|
|
|
|
catanh 0x1p-1022 -0x0.ffffffffffffffffp0
|
|
|
|
catanh -0x1p-1022 -0x0.ffffffffffffffffp0
|
|
|
|
catanh 0x1.000000000000000000000000008p0 0x1p-1022
|
|
|
|
catanh 0x1.000000000000000000000000008p0 -0x1p-1022
|
|
|
|
catanh -0x1.000000000000000000000000008p0 0x1p-1022
|
|
|
|
catanh -0x1.000000000000000000000000008p0 -0x1p-1022
|
|
|
|
catanh 0x1p-1022 0x1.000000000000000000000000008p0
|
|
|
|
catanh -0x1p-1022 0x1.000000000000000000000000008p0
|
|
|
|
catanh 0x1p-1022 -0x1.000000000000000000000000008p0
|
|
|
|
catanh -0x1p-1022 -0x1.000000000000000000000000008p0
|
|
|
|
catanh 0x0.ffffffffffffffffffffffffffcp0 0x1p-1022
|
|
|
|
catanh 0x0.ffffffffffffffffffffffffffcp0 -0x1p-1022
|
|
|
|
catanh -0x0.ffffffffffffffffffffffffffcp0 0x1p-1022
|
|
|
|
catanh -0x0.ffffffffffffffffffffffffffcp0 -0x1p-1022
|
|
|
|
catanh 0x1p-1022 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
catanh -0x1p-1022 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
catanh 0x1p-1022 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
catanh -0x1p-1022 -0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
catanh 1.0 0x1p-8192
|
|
|
|
catanh 1.0 -0x1p-8192
|
|
|
|
catanh -1.0 0x1p-8192
|
|
|
|
catanh -1.0 -0x1p-8192
|
|
|
|
catanh 0x1p-8192 1.0
|
|
|
|
catanh -0x1p-8192 1.0
|
|
|
|
catanh 0x1p-8192 -1.0
|
|
|
|
catanh -0x1p-8192 -1.0
|
|
|
|
catanh 1.0 0x1.3p-8221
|
|
|
|
catanh 1.0 -0x1.3p-8221
|
|
|
|
catanh -1.0 0x1.3p-8221
|
|
|
|
catanh -1.0 -0x1.3p-8221
|
|
|
|
catanh 0x1.3p-8221 1.0
|
|
|
|
catanh -0x1.3p-8221 1.0
|
|
|
|
catanh 0x1.3p-8221 -1.0
|
|
|
|
catanh -0x1.3p-8221 -1.0
|
|
|
|
catanh 1.0 0x1.3p-8246
|
|
|
|
catanh 1.0 -0x1.3p-8246
|
|
|
|
catanh -1.0 0x1.3p-8246
|
|
|
|
catanh -1.0 -0x1.3p-8246
|
|
|
|
catanh 0x1.3p-8246 1.0
|
|
|
|
catanh -0x1.3p-8246 1.0
|
|
|
|
catanh 0x1.3p-8246 -1.0
|
|
|
|
catanh -0x1.3p-8246 -1.0
|
|
|
|
catanh 1.0 0x1p-16380
|
|
|
|
catanh 1.0 -0x1p-16380
|
|
|
|
catanh -1.0 0x1p-16380
|
|
|
|
catanh -1.0 -0x1p-16380
|
|
|
|
catanh 0x1p-16380 1.0
|
|
|
|
catanh -0x1p-16380 1.0
|
|
|
|
catanh 0x1p-16380 -1.0
|
|
|
|
catanh -0x1p-16380 -1.0
|
|
|
|
catanh 0x1.0000000000000002p0 0x1p-16382
|
|
|
|
catanh 0x1.0000000000000002p0 -0x1p-16382
|
|
|
|
catanh -0x1.0000000000000002p0 0x1p-16382
|
|
|
|
catanh -0x1.0000000000000002p0 -0x1p-16382
|
|
|
|
catanh 0x1p-16382 0x1.0000000000000002p0
|
|
|
|
catanh -0x1p-16382 0x1.0000000000000002p0
|
|
|
|
catanh 0x1p-16382 -0x1.0000000000000002p0
|
|
|
|
catanh -0x1p-16382 -0x1.0000000000000002p0
|
|
|
|
catanh 0x0.ffffffffffffffffp0 0x1p-16382
|
|
|
|
catanh 0x0.ffffffffffffffffp0 -0x1p-16382
|
|
|
|
catanh -0x0.ffffffffffffffffp0 0x1p-16382
|
|
|
|
catanh -0x0.ffffffffffffffffp0 -0x1p-16382
|
|
|
|
catanh 0x1p-16382 0x0.ffffffffffffffffp0
|
|
|
|
catanh -0x1p-16382 0x0.ffffffffffffffffp0
|
|
|
|
catanh 0x1p-16382 -0x0.ffffffffffffffffp0
|
|
|
|
catanh -0x1p-16382 -0x0.ffffffffffffffffp0
|
|
|
|
catanh 0x1.0000000000000000000000000001p0 0x1p-16382
|
|
|
|
catanh 0x1.0000000000000000000000000001p0 -0x1p-16382
|
|
|
|
catanh -0x1.0000000000000000000000000001p0 0x1p-16382
|
|
|
|
catanh -0x1.0000000000000000000000000001p0 -0x1p-16382
|
|
|
|
catanh 0x1p-16382 0x1.0000000000000000000000000001p0
|
|
|
|
catanh -0x1p-16382 0x1.0000000000000000000000000001p0
|
|
|
|
catanh 0x1p-16382 -0x1.0000000000000000000000000001p0
|
|
|
|
catanh -0x1p-16382 -0x1.0000000000000000000000000001p0
|
|
|
|
catanh 0x0.ffffffffffffffffffffffffffff8p0 0x1p-16382
|
|
|
|
catanh 0x0.ffffffffffffffffffffffffffff8p0 -0x1p-16382
|
|
|
|
catanh -0x0.ffffffffffffffffffffffffffff8p0 0x1p-16382
|
|
|
|
catanh -0x0.ffffffffffffffffffffffffffff8p0 -0x1p-16382
|
|
|
|
catanh 0x1p-16382 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
catanh -0x1p-16382 0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
catanh 0x1p-16382 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
catanh -0x1p-16382 -0x0.ffffffffffffffffffffffffffff8p0
|
|
|
|
|
|
|
|
catanh 0.75 1.25
|
|
|
|
catanh -2 -3
|
|
|
|
|
2013-11-30 22:04:13 +00:00
|
|
|
cbrt 0.0
|
|
|
|
cbrt -0
|
|
|
|
cbrt -0.001
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
cbrt 2
|
|
|
|
cbrt 4
|
2013-11-30 22:04:13 +00:00
|
|
|
cbrt 8
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
cbrt -10
|
2013-11-30 22:04:13 +00:00
|
|
|
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
|
2020-11-25 18:03:33 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary64)
|
|
|
|
cbrt -0x1.7cec1dab41272p-230
|
2017-01-04 23:29:42 +00:00
|
|
|
cbrt max xfail:ibm128-libgcc
|
|
|
|
cbrt -max xfail:ibm128-libgcc
|
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 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
|
2017-01-09 22:40:59 +00:00
|
|
|
ccos 0.75 11357.25
|
|
|
|
ccos 0.75 -11357.25
|
|
|
|
ccos -0.75 11357.25
|
|
|
|
ccos -0.75 -11357.25
|
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 0x1p-149 180
|
2017-01-09 22:40:59 +00:00
|
|
|
ccos 0x1p-1074 1440
|
|
|
|
ccos 0x1p-16434 22730
|
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 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
|
2017-01-09 22:40:59 +00:00
|
|
|
ccosh 11357.25 0.75
|
|
|
|
ccosh -11357.25 0.75
|
|
|
|
ccosh 11357.25 -0.75
|
|
|
|
ccosh -11357.25 -0.75
|
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 180 0x1p-149
|
2017-01-09 22:40:59 +00:00
|
|
|
ccosh 1440 0x1p-1074
|
|
|
|
ccosh 22730 0x1p-16434
|
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 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
|
2017-01-09 22:40:59 +00:00
|
|
|
cexp 11356.5625 0.75
|
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 -11370 0.75
|
|
|
|
|
|
|
|
cexp 180 0x1p-149
|
2017-01-09 22:40:59 +00:00
|
|
|
cexp 1440 0x1p-1074
|
|
|
|
cexp 22730 0x1p-16434
|
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
|
|
|
|
2017-01-09 22:40:59 +00:00
|
|
|
cexp 1e6 0
|
|
|
|
cexp 1e6 min
|
|
|
|
cexp 1e6 -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
|
|
|
|
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
|
|
|
|
|
Fix clog, clog10 inaccuracy (bug 19016).
For arguments with X^2 + Y^2 close to 1, clog and clog10 avoid large
errors from log(hypot) by computing X^2 + Y^2 - 1 in a way that avoids
cancellation error and then using log1p.
However, the thresholds for using that approach still result in log
being used on argument as large as sqrt(13/16) > 0.9, leading to
significant errors, in some cases above the 9ulp maximum allowed in
glibc libm. This patch arranges for the approach using log1p to be
used in any cases where |X|, |Y| < 1 and X^2 + Y^2 >= 0.5 (with the
existing allowance for cases where one of X and Y is very small),
adjusting the __x2y2m1 functions to work with the wider range of
inputs. This way, log only gets used on arguments below sqrt(1/2) (or
substantially above 1), where the error involved is much less.
Tested for x86_64, x86, mips64 and powerpc. For the ulps regeneration
I removed the existing clog and clog10 ulps before regenerating to
allow any reduced ulps to appear. Tests added include those found by
random test generation to produce large ulps either before or after
the patch, and some found by trying inputs close to the (0.75, 0.5)
threshold where the potential errors from using log are largest.
[BZ #19016]
* sysdeps/generic/math_private.h (__x2y2m1f): Update comment to
allow more cases with X^2 + Y^2 >= 0.5.
* sysdeps/ieee754/dbl-64/x2y2m1.c (__x2y2m1): Likewise. Add -1 as
normal element in sum instead of special-casing based on values of
arguments.
* sysdeps/ieee754/dbl-64/x2y2m1f.c (__x2y2m1f): Update comment.
* sysdeps/ieee754/ldbl-128/x2y2m1l.c (__x2y2m1l): Likewise. Add
-1 as normal element in sum instead of special-casing based on
values of arguments.
* sysdeps/ieee754/ldbl-128ibm/x2y2m1l.c (__x2y2m1l): Likewise.
* sysdeps/ieee754/ldbl-96/x2y2m1.c [FLT_EVAL_METHOD != 0]
(__x2y2m1): Update comment.
* sysdeps/ieee754/ldbl-96/x2y2m1l.c (__x2y2m1l): Likewise. Add -1
as normal element in sum instead of special-casing based on values
of arguments.
* math/s_clog.c (__clog): Handle more cases using log1p without
hypot.
* math/s_clog10.c (__clog10): Likewise.
* math/s_clog10f.c (__clog10f): Likewise.
* math/s_clog10l.c (__clog10l): Likewise.
* math/s_clogf.c (__clogf): Likewise.
* math/s_clogl.c (__clogl): Likewise.
* math/auto-libm-test-in: Add more tests of clog and clog10.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-28 22:11:22 +00:00
|
|
|
clog -0x2.7bdep-4 0x5.ab7a4p-4
|
|
|
|
clog -0xb.e1d3d0ff44358p-4 -0x7.54785e1b143f8p-4
|
|
|
|
clog 0x3.ba473p+0 0x7.eea9ap-4
|
|
|
|
clog 0x9.d02220baee4ep+36 0x2.b9a29cp+0
|
|
|
|
clog -0x5.1a5cf8p-4 -0xb.73012p-4
|
|
|
|
clog -0xa.ff292a609dbb8p-4 0x6.f73d4cp-4
|
|
|
|
clog -0x5.1a5cfc2301114p-4 -0xb.730118p-4
|
|
|
|
clog 0xb.ffffcp-4 0x7.ffff1p-4
|
|
|
|
clog 0xb.ffffp-4 0x7.ffffap-4
|
|
|
|
clog 0xb.ffffp-4 0x7.fffff8p-4
|
|
|
|
clog 0xb.ffffp-4 0x7.ffffp-4
|
|
|
|
clog 0xb.fffffp-4 0x7.ffff68p-4
|
|
|
|
clog 0xb.fffffp-4 0x7.ffffp-4
|
|
|
|
clog 0xb.ffff8p-4 0x7.ffffcp-4
|
|
|
|
clog 0xb.ffffp-4 0x7.ffffcp-4
|
|
|
|
clog 0xb.ffffp-4 0x7.ffffb8p-4
|
|
|
|
clog 0xb.ffffp-4 0x7.ffff7p-4
|
|
|
|
clog 0xb.ffffp-4 0x7.ffff5p-4
|
|
|
|
clog 0xb.fffffffffff7p-4 0x7.fffff8p-4
|
|
|
|
clog 0xb.fffffffffff08p-4 0x7.fffffffffffdp-4
|
|
|
|
clog 0xb.fffffffffff08p-4 0x7.fffffffffff9p-4
|
|
|
|
clog 0xb.fffffffffffp-4 0x7.fffffffffffdcp-4
|
|
|
|
clog 0xb.fffffp-4 0x7.ffffffffffff4p-4
|
|
|
|
clog 0xb.fffffffffffp-4 0x7.fffffffffffecp-4
|
|
|
|
clog 0xb.fffffffffff8p-4 0x7.fffff8p-4
|
|
|
|
clog 0x8p-152 -0x1.10233ap+0
|
|
|
|
clog 0xa.03634p-4 -0x4.7bb918p-20
|
|
|
|
clog -0x5.e23d2p-4 0x8.525df889c21ap-4
|
|
|
|
clog 0x9.8ce58p-4 -0x8p-152
|
|
|
|
clog 0x8p-152 0x9.2af75p-4
|
|
|
|
clog 0x9.97a15de8e59d8p-4 -0
|
|
|
|
clog -0x4.74556ec92eb4746p-4 0x1.1e7aa1d936f6efe6p+0
|
|
|
|
clog 0x9.97a15de8e59d8p-4 -0
|
|
|
|
clog -0x9.7f1d7p-64 0x9.db37dp-4
|
|
|
|
clog -0x8.5efc4p-4 -0x5.40310cp-4
|
|
|
|
clog -0x9.0b459p-4 0
|
|
|
|
clog -0x6.a9419e9b30e68p-4 -0x6.262c7p-4
|
|
|
|
clog 0x5.2767cdfdfbf2p-4 0x7.69ee98p-4
|
|
|
|
clog -0x9.f5563cb3227d8p-4 0
|
|
|
|
clog -0x9.5a284p-4 0x6.899578p-8
|
|
|
|
clog 0xa.3e62bp-4 0x1.18c03p-100
|
|
|
|
clog 0 -0x9.22a99p-4
|
|
|
|
clog 0 0x9.7915bp-4
|
|
|
|
clog 0x3.00d1ap-12 0x1.23ff6ap+0
|
|
|
|
|
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
|
2017-01-09 22:40:59 +00:00
|
|
|
clog 0x1.fp+1023 0x1p-1074
|
|
|
|
clog 0x1.fp+1023 -0x1p-1074
|
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 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
|
2017-01-09 22:40:59 +00:00
|
|
|
clog 0x1.fp+16383 0x1p-16445
|
|
|
|
clog 0x1.fp+16383 -0x1p-16445
|
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 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
|
2017-01-09 22:40:59 +00:00
|
|
|
clog 0x1.fp+16383 0x1p-16494
|
|
|
|
clog 0x1.fp+16383 -0x1p-16494
|
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 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
|
|
|
|
|
Fix clog, clog10 inaccuracy (bug 19016).
For arguments with X^2 + Y^2 close to 1, clog and clog10 avoid large
errors from log(hypot) by computing X^2 + Y^2 - 1 in a way that avoids
cancellation error and then using log1p.
However, the thresholds for using that approach still result in log
being used on argument as large as sqrt(13/16) > 0.9, leading to
significant errors, in some cases above the 9ulp maximum allowed in
glibc libm. This patch arranges for the approach using log1p to be
used in any cases where |X|, |Y| < 1 and X^2 + Y^2 >= 0.5 (with the
existing allowance for cases where one of X and Y is very small),
adjusting the __x2y2m1 functions to work with the wider range of
inputs. This way, log only gets used on arguments below sqrt(1/2) (or
substantially above 1), where the error involved is much less.
Tested for x86_64, x86, mips64 and powerpc. For the ulps regeneration
I removed the existing clog and clog10 ulps before regenerating to
allow any reduced ulps to appear. Tests added include those found by
random test generation to produce large ulps either before or after
the patch, and some found by trying inputs close to the (0.75, 0.5)
threshold where the potential errors from using log are largest.
[BZ #19016]
* sysdeps/generic/math_private.h (__x2y2m1f): Update comment to
allow more cases with X^2 + Y^2 >= 0.5.
* sysdeps/ieee754/dbl-64/x2y2m1.c (__x2y2m1): Likewise. Add -1 as
normal element in sum instead of special-casing based on values of
arguments.
* sysdeps/ieee754/dbl-64/x2y2m1f.c (__x2y2m1f): Update comment.
* sysdeps/ieee754/ldbl-128/x2y2m1l.c (__x2y2m1l): Likewise. Add
-1 as normal element in sum instead of special-casing based on
values of arguments.
* sysdeps/ieee754/ldbl-128ibm/x2y2m1l.c (__x2y2m1l): Likewise.
* sysdeps/ieee754/ldbl-96/x2y2m1.c [FLT_EVAL_METHOD != 0]
(__x2y2m1): Update comment.
* sysdeps/ieee754/ldbl-96/x2y2m1l.c (__x2y2m1l): Likewise. Add -1
as normal element in sum instead of special-casing based on values
of arguments.
* math/s_clog.c (__clog): Handle more cases using log1p without
hypot.
* math/s_clog10.c (__clog10): Likewise.
* math/s_clog10f.c (__clog10f): Likewise.
* math/s_clog10l.c (__clog10l): Likewise.
* math/s_clogf.c (__clogf): Likewise.
* math/s_clogl.c (__clogl): Likewise.
* math/auto-libm-test-in: Add more tests of clog and clog10.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-28 22:11:22 +00:00
|
|
|
clog10 -0x2.7bdep-4 0x5.ab7a4p-4
|
|
|
|
clog10 -0xb.e1d3d0ff44358p-4 -0x7.54785e1b143f8p-4
|
|
|
|
clog10 0x3.ba473p+0 0x7.eea9ap-4
|
|
|
|
clog10 0x9.d02220baee4ep+36 0x2.b9a29cp+0
|
|
|
|
clog10 -0x5.1a5cf8p-4 -0xb.73012p-4
|
|
|
|
clog10 -0xa.ff292a609dbb8p-4 0x6.f73d4cp-4
|
|
|
|
clog10 -0x5.1a5cfc2301114p-4 -0xb.730118p-4
|
|
|
|
clog10 0xb.ffffcp-4 0x7.ffff1p-4
|
|
|
|
clog10 0xb.ffffp-4 0x7.ffffap-4
|
|
|
|
clog10 0xb.ffffp-4 0x7.fffff8p-4
|
|
|
|
clog10 0xb.ffffp-4 0x7.ffffp-4
|
|
|
|
clog10 0xb.fffffp-4 0x7.ffff68p-4
|
|
|
|
clog10 0xb.fffffp-4 0x7.ffffp-4
|
|
|
|
clog10 0xb.ffff8p-4 0x7.ffffcp-4
|
|
|
|
clog10 0xb.ffffp-4 0x7.ffffcp-4
|
|
|
|
clog10 0xb.ffffp-4 0x7.ffffb8p-4
|
|
|
|
clog10 0xb.ffffp-4 0x7.ffff7p-4
|
|
|
|
clog10 0xb.ffffp-4 0x7.ffff5p-4
|
|
|
|
clog10 0xb.fffffffffff7p-4 0x7.fffff8p-4
|
|
|
|
clog10 0xb.fffffffffff08p-4 0x7.fffffffffffdp-4
|
|
|
|
clog10 0xb.fffffffffff08p-4 0x7.fffffffffff9p-4
|
|
|
|
clog10 0xb.fffffffffffp-4 0x7.fffffffffffdcp-4
|
|
|
|
clog10 0xb.fffffp-4 0x7.ffffffffffff4p-4
|
|
|
|
clog10 0xb.fffffffffffp-4 0x7.fffffffffffecp-4
|
|
|
|
clog10 0xb.fffffffffff8p-4 0x7.fffff8p-4
|
|
|
|
clog10 0x8p-152 -0x1.10233ap+0
|
|
|
|
clog10 0xa.03634p-4 -0x4.7bb918p-20
|
|
|
|
clog10 -0x5.e23d2p-4 0x8.525df889c21ap-4
|
|
|
|
clog10 0x9.8ce58p-4 -0x8p-152
|
|
|
|
clog10 0x8p-152 0x9.2af75p-4
|
|
|
|
clog10 0x9.97a15de8e59d8p-4 -0
|
|
|
|
clog10 -0x4.74556ec92eb4746p-4 0x1.1e7aa1d936f6efe6p+0
|
|
|
|
clog10 0x9.97a15de8e59d8p-4 -0
|
|
|
|
clog10 -0x9.7f1d7p-64 0x9.db37dp-4
|
|
|
|
clog10 -0x8.5efc4p-4 -0x5.40310cp-4
|
|
|
|
clog10 -0x9.0b459p-4 0
|
|
|
|
clog10 -0x6.a9419e9b30e68p-4 -0x6.262c7p-4
|
|
|
|
clog10 0x5.2767cdfdfbf2p-4 0x7.69ee98p-4
|
|
|
|
clog10 -0x9.f5563cb3227d8p-4 0
|
|
|
|
clog10 -0x9.5a284p-4 0x6.899578p-8
|
|
|
|
clog10 0xa.3e62bp-4 0x1.18c03p-100
|
|
|
|
clog10 0 -0x9.22a99p-4
|
|
|
|
clog10 0 0x9.7915bp-4
|
|
|
|
clog10 0x3.00d1ap-12 0x1.23ff6ap+0
|
|
|
|
|
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
|
2017-01-09 22:40:59 +00:00
|
|
|
clog10 0x1.fp+1023 0x1p-1074
|
|
|
|
clog10 0x1.fp+1023 -0x1p-1074
|
2014-02-19 14:26:29 +00:00
|
|
|
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
|
2017-01-09 22:40:59 +00:00
|
|
|
clog10 0x1.fp+16383 0x1p-16445
|
|
|
|
clog10 0x1.fp+16383 -0x1p-16445
|
2014-02-19 14:26:29 +00:00
|
|
|
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
|
2017-01-09 22:40:59 +00:00
|
|
|
clog10 0x1.fp+16383 0x1p-16494
|
|
|
|
clog10 0x1.fp+16383 -0x1p-16494
|
2014-02-19 14:26:29 +00:00
|
|
|
|
|
|
|
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
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
cos 0x1p-5
|
|
|
|
cos 0x1p-10
|
|
|
|
cos 0x1p-15
|
|
|
|
cos 0x1p-20
|
|
|
|
cos 0x1p-25
|
|
|
|
cos 0x1p-30
|
|
|
|
cos 0x1p-35
|
|
|
|
cos 0x1p-40
|
|
|
|
cos 0x1p-45
|
|
|
|
cos 0x1p-50
|
|
|
|
cos 0x1p-55
|
|
|
|
cos 0x1p-60
|
|
|
|
cos 0x1p-100
|
|
|
|
cos 0x1p-600
|
|
|
|
cos 0x1p-10000
|
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
|
Add more random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
cos -0x1.02e34cp+0
|
|
|
|
cos 0xf.f0274p+4
|
|
|
|
cos 0x3.042d88p+0
|
2016-07-18 17:03:09 +00:00
|
|
|
cos 0x1.8475e5afd4481p+0
|
2017-03-15 22:00:54 +00:00
|
|
|
cos 1.57079697
|
|
|
|
cos -1.57079697
|
2020-03-30 13:55:55 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary32)
|
|
|
|
cos 0x2.3c6ef4p-12
|
2021-02-26 07:00:03 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary128)
|
|
|
|
cos 0xe.6672d458b05edf50af4fab1a42p+40
|
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
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
cosh 0x1p-10
|
|
|
|
cosh 0x1p-15
|
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-20
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
cosh 0x1p-25
|
|
|
|
cosh 0x1p-30
|
|
|
|
cosh 0x1p-35
|
|
|
|
cosh 0x1p-40
|
|
|
|
cosh 0x1p-45
|
|
|
|
cosh 0x1p-50
|
|
|
|
cosh 0x1p-100
|
|
|
|
cosh 0x1p-600
|
|
|
|
cosh 0x1p-10000
|
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 -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
|
2020-03-17 18:46:29 +00:00
|
|
|
cosh max
|
|
|
|
cosh -max
|
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
|
2017-01-09 22:40:59 +00:00
|
|
|
cosh 0x2.c679d1f73f0fap+8
|
|
|
|
cosh 0x2.c679d1f73f0fcp+8
|
|
|
|
cosh -0x2.c679d1f73f0fap+8
|
|
|
|
cosh -0x2.c679d1f73f0fcp+8
|
2017-01-04 23:29:42 +00:00
|
|
|
cosh 0x2.c679d1f73f0fb624d358b213a7p+8 xfail-rounding:ibm128-libgcc
|
|
|
|
cosh 0x2.c679d1f73f0fb624d358b213a8p+8 xfail-rounding:ibm128-libgcc
|
|
|
|
cosh -0x2.c679d1f73f0fb624d358b213a7p+8 xfail-rounding:ibm128-libgcc
|
|
|
|
cosh -0x2.c679d1f73f0fb624d358b213a8p+8 xfail-rounding:ibm128-libgcc
|
2020-03-17 18:46:29 +00:00
|
|
|
cosh 0x2.c5d37700c6bb03a4p+12
|
|
|
|
cosh 0x2.c5d37700c6bb03a8p+12
|
|
|
|
cosh -0x2.c5d37700c6bb03a4p+12
|
|
|
|
cosh -0x2.c5d37700c6bb03a8p+12
|
|
|
|
cosh 0x2.c5d37700c6bb03a6c24b6c9b494cp+12
|
|
|
|
cosh 0x2.c5d37700c6bb03a6c24b6c9b494ep+12
|
|
|
|
cosh -0x2.c5d37700c6bb03a6c24b6c9b494cp+12
|
|
|
|
cosh -0x2.c5d37700c6bb03a6c24b6c9b494ep+12
|
2020-03-30 13:55:55 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary32)
|
|
|
|
cosh 0x5.8bfe6p+4
|
2020-11-25 18:03:33 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary64)
|
|
|
|
cosh 0x1.633c457f1e66bp+9
|
2021-02-26 07:00:03 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (ldbl-96)
|
|
|
|
cosh 0x2.c5d376167f4052f4p+12
|
|
|
|
# the next value generates larger error bounds on x86_64 (binary128)
|
|
|
|
cosh -0x2.c5d376eefcd4bbeb000452d84662p+12
|
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
|
2017-01-09 22:40:59 +00:00
|
|
|
csin 0.75 11357.25
|
|
|
|
csin 0.75 -11357.25
|
|
|
|
csin -0.75 11357.25
|
|
|
|
csin -0.75 -11357.25
|
2015-06-24 16:37:44 +00:00
|
|
|
|
2017-01-09 22:40:59 +00:00
|
|
|
csin 0.75 1e6
|
|
|
|
csin 0.75 -1e6
|
|
|
|
csin -0.75 1e6
|
|
|
|
csin -0.75 -1e6
|
2015-06-24 16:20:48 +00:00
|
|
|
|
2015-06-24 16:37:44 +00:00
|
|
|
csin 0x1p-149 180
|
2017-01-09 22:40:59 +00:00
|
|
|
csin 0x1p-1074 1440
|
|
|
|
csin 0x1p-16434 22730
|
2015-06-24 16:37:44 +00:00
|
|
|
|
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
|
|
|
|
|
2017-02-09 18:30:41 +00:00
|
|
|
csin min_subnorm min
|
|
|
|
csin min min_subnorm
|
|
|
|
|
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
|
2017-01-09 22:40:59 +00:00
|
|
|
csinh 11357.25 0.75
|
|
|
|
csinh -11357.25 0.75
|
|
|
|
csinh 11357.25 -0.75
|
|
|
|
csinh -11357.25 -0.75
|
2015-06-24 16:37:44 +00:00
|
|
|
|
2017-01-09 22:40:59 +00:00
|
|
|
csinh 1e6 0.75
|
|
|
|
csinh -1e6 0.75
|
|
|
|
csinh 1e6 -0.75
|
|
|
|
csinh -1e6 -0.75
|
2015-06-24 16:20:48 +00:00
|
|
|
|
2015-06-24 16:37:44 +00:00
|
|
|
csinh 180 0x1p-149
|
2017-01-09 22:40:59 +00:00
|
|
|
csinh 1440 0x1p-1074
|
|
|
|
csinh 22730 0x1p-16434
|
2015-06-24 16:37:44 +00:00
|
|
|
|
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
|
|
|
|
|
2017-02-09 18:30:41 +00:00
|
|
|
csinh min_subnorm min
|
|
|
|
csinh 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
|
|
|
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
|
Add more random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
csqrt 0x1.0221e29d5a3cdp-188 -0x8p-152
|
|
|
|
csqrt -0x2.927275f6febb6p-184 0x8p-152
|
|
|
|
csqrt -0x8p-152 -0x2.c832ff5b163af0dcp-2444
|
|
|
|
csqrt -0x8p-152 -0x1.818bccp+0
|
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
|
2017-01-09 22:40:59 +00:00
|
|
|
ctan 1 5680
|
|
|
|
ctan 1 5690
|
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
|
|
|
|
|
2017-01-09 22:40:59 +00:00
|
|
|
ctan 50000 50000
|
|
|
|
ctan 50000 -50000
|
|
|
|
ctan -50000 50000
|
|
|
|
ctan -50000 -50000
|
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
|
|
|
|
|
2015-09-15 17:46:08 +00:00
|
|
|
ctan min 0
|
|
|
|
ctan -min 0
|
|
|
|
ctan min_subnorm 0
|
|
|
|
ctan -min_subnorm 0
|
|
|
|
ctan 0 min
|
|
|
|
ctan 0 -min
|
|
|
|
ctan 0 min_subnorm
|
|
|
|
ctan 0 -min_subnorm
|
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
|
|
|
|
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
|
2017-01-09 22:40:59 +00:00
|
|
|
ctanh 5680 1
|
|
|
|
ctanh 5690 1
|
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
|
|
|
|
|
2017-01-09 22:40:59 +00:00
|
|
|
ctanh 50000 50000
|
|
|
|
ctanh 50000 -50000
|
|
|
|
ctanh -50000 50000
|
|
|
|
ctanh -50000 -50000
|
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
|
|
|
|
|
2015-09-15 17:46:08 +00:00
|
|
|
ctanh 0 min
|
|
|
|
ctanh 0 -min
|
|
|
|
ctanh 0 min_subnorm
|
|
|
|
ctanh 0 -min_subnorm
|
|
|
|
ctanh min 0
|
|
|
|
ctanh -min 0
|
|
|
|
ctanh min_subnorm 0
|
|
|
|
ctanh -min_subnorm 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
|
|
|
|
Add narrowing divide functions.
This patch adds the narrowing divide functions from TS 18661-1 to
glibc's libm: fdiv, fdivl, ddivl, f32divf64, f32divf32x, f32xdivf64
for all configurations; f32divf64x, f32divf128, f64divf64x,
f64divf128, f32xdivf64x, f32xdivf128, f64xdivf128 for configurations
with _Float64x and _Float128; __nldbl_ddivl for ldbl-opt.
The changes are mostly essentially the same as for the other narrowing
functions, so the description of those generally applies to this patch
as well.
Tested for x86_64, x86, mips64 (all three ABIs, both hard and soft
float) and powerpc, and with build-many-glibcs.py.
* math/Makefile (libm-narrow-fns): Add div.
(libm-test-funcs-narrow): Likewise.
* math/Versions (GLIBC_2.28): Add narrowing divide functions.
* math/bits/mathcalls-narrow.h (div): Use __MATHCALL_NARROW.
* math/gen-auto-libm-tests.c (test_functions): Add div.
* math/math-narrow.h (CHECK_NARROW_DIV): New macro.
(NARROW_DIV_ROUND_TO_ODD): Likewise.
(NARROW_DIV_TRIVIAL): Likewise.
* sysdeps/ieee754/float128/float128_private.h (__fdivl): New
macro.
(__ddivl): Likewise.
* sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add fdiv and
ddiv.
(CFLAGS-nldbl-ddiv.c): New variable.
(CFLAGS-nldbl-fdiv.c): Likewise.
* sysdeps/ieee754/ldbl-opt/Versions (GLIBC_2.28): Add
__nldbl_ddivl.
* sysdeps/ieee754/ldbl-opt/nldbl-compat.h (__nldbl_ddivl): New
prototype.
* manual/arith.texi (Misc FP Arithmetic): Document fdiv, fdivl,
ddivl, fMdivfN, fMdivfNx, fMxdivfN and fMxdivfNx.
* math/auto-libm-test-in: Add tests of div.
* math/auto-libm-test-out-narrow-div: New generated file.
* math/libm-test-narrow-div.inc: New file.
* sysdeps/i386/fpu/s_f32xdivf64.c: Likewise.
* sysdeps/ieee754/dbl-64/s_f32xdivf64.c: Likewise.
* sysdeps/ieee754/dbl-64/s_fdiv.c: Likewise.
* sysdeps/ieee754/float128/s_f32divf128.c: Likewise.
* sysdeps/ieee754/float128/s_f64divf128.c: Likewise.
* sysdeps/ieee754/float128/s_f64xdivf128.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_ddivl.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_f64xdivf128.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_fdivl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/s_ddivl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/s_fdivl.c: Likewise.
* sysdeps/ieee754/ldbl-96/s_ddivl.c: Likewise.
* sysdeps/ieee754/ldbl-96/s_fdivl.c: Likewise.
* sysdeps/ieee754/ldbl-opt/nldbl-ddiv.c: Likewise.
* sysdeps/ieee754/ldbl-opt/nldbl-fdiv.c: Likewise.
* sysdeps/ieee754/soft-fp/s_ddivl.c: Likewise.
* sysdeps/ieee754/soft-fp/s_fdiv.c: Likewise.
* sysdeps/ieee754/soft-fp/s_fdivl.c: Likewise.
* sysdeps/powerpc/fpu/libm-test-ulps: Update.
* sysdeps/mach/hurd/i386/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2018-05-17 00:40:52 +00:00
|
|
|
div 0 min
|
|
|
|
div 0 -min
|
|
|
|
div 0 min_subnorm
|
|
|
|
div 0 -min_subnorm
|
|
|
|
div 0 max
|
|
|
|
div 0 -max
|
|
|
|
div -0 min
|
|
|
|
div -0 -min
|
|
|
|
div -0 min_subnorm
|
|
|
|
div -0 -min_subnorm
|
|
|
|
div -0 max
|
|
|
|
div -0 -max
|
|
|
|
div max max xfail:ibm128-libgcc
|
|
|
|
div max -max xfail:ibm128-libgcc
|
|
|
|
div -max max xfail:ibm128-libgcc
|
|
|
|
div -max -max xfail:ibm128-libgcc
|
|
|
|
div min min
|
|
|
|
div min -min
|
|
|
|
div -min min
|
|
|
|
div -min -min
|
|
|
|
div min_subnorm min_subnorm
|
|
|
|
div min_subnorm -min_subnorm
|
|
|
|
div -min_subnorm min_subnorm
|
|
|
|
div -min_subnorm -min_subnorm
|
|
|
|
div max min xfail-rounding:ibm128-libgcc
|
|
|
|
div max -min xfail-rounding:ibm128-libgcc
|
|
|
|
div -max min xfail-rounding:ibm128-libgcc
|
|
|
|
div -max -min xfail-rounding:ibm128-libgcc
|
|
|
|
div max min_subnorm xfail-rounding:ibm128-libgcc
|
|
|
|
div max -min_subnorm xfail-rounding:ibm128-libgcc
|
|
|
|
div -max min_subnorm xfail-rounding:ibm128-libgcc
|
|
|
|
div -max -min_subnorm xfail-rounding:ibm128-libgcc
|
|
|
|
div min max xfail-rounding:ibm128-libgcc
|
|
|
|
div min -max xfail-rounding:ibm128-libgcc
|
|
|
|
div -min max xfail-rounding:ibm128-libgcc
|
|
|
|
div -min -max xfail-rounding:ibm128-libgcc
|
|
|
|
div min_subnorm max xfail-rounding:ibm128-libgcc
|
|
|
|
div min_subnorm -max xfail-rounding:ibm128-libgcc
|
|
|
|
div -min_subnorm max xfail-rounding:ibm128-libgcc
|
|
|
|
div -min_subnorm -max xfail-rounding:ibm128-libgcc
|
|
|
|
div 1 2
|
|
|
|
div 1 -2
|
|
|
|
div -1 2
|
|
|
|
div -1 -2
|
|
|
|
div 100.5 0.75
|
|
|
|
div 100.5 -0.75
|
|
|
|
div -100.5 0.75
|
|
|
|
div -100.5 -0.75
|
|
|
|
|
|
|
|
# Cases where the ratio of two values in a wider format is very close
|
|
|
|
# to half way between two representable values in a narrower format,
|
|
|
|
# so that double rounding would sometimes yield the wrong result. For
|
|
|
|
# a narrower format of width a and a wider format of width w, take
|
|
|
|
# b = w - a; these examples are of the form
|
|
|
|
# (1 + 2^-a + 2^-b + 2^(1-w)) / (1 + 2^-b). These examples have
|
|
|
|
# ratios of the form (1 + 2^-a) to the width of the wider format, but
|
|
|
|
# the mathematical value is slightly greater, so that rounding once
|
|
|
|
# should round the result up but double rounding would wrongly round
|
|
|
|
# the result down.
|
|
|
|
# a = 24, w = 53.
|
|
|
|
div 0x1.0000010800001p0 0x1.00000008p0
|
|
|
|
# a = 24, w = 64.
|
|
|
|
div 0x1.0000010001000002p0 0x1.0000000001p0
|
|
|
|
# a = 24, w = 113.
|
|
|
|
div 0x1.0000010000000000000000800001p0 0x1.00000000000000000000008p0
|
|
|
|
# a = 53, w = 64.
|
|
|
|
div 0x1.0020000000000802p0 0x1.002p0
|
|
|
|
# a = 53, w = 113.
|
|
|
|
div 0x1.0000000000000810000000000001p0 0x1.000000000000001p0
|
|
|
|
# a = 64, w = 113.
|
|
|
|
div 0x1.0000000000008001000000000001p0 0x1.0000000000008p0
|
|
|
|
# Similar, for double rounding to 64-bit of a division of 53-bit values.
|
|
|
|
div 0x1ffe1p0 0xfffp0
|
|
|
|
|
Fix f64xdivf128, f64xmulf128 spurious underflows (bug 28358)
As described in bug 28358, the round-to-odd computations used in the
libm functions that round their results to a narrower format can yield
spurious underflow exceptions in the following circumstances: the
narrowing only narrows the precision of the type and not the exponent
range (i.e., it's narrowing _Float128 to _Float64x on x86_64, x86 or
ia64), the architecture does after-rounding tininess detection (which
applies to all those architectures), the result is inexact, tiny
before rounding but not tiny after rounding (with the chosen rounding
mode) for _Float64x (which is possible for narrowing mul, div and fma,
not for narrowing add, sub or sqrt), so the underflow exception
resulting from the toward-zero computation in _Float128 is spurious
for _Float64x.
Fixed by making ROUND_TO_ODD call feclearexcept (FE_UNDERFLOW) in the
problem cases (as indicated by an extra argument to the macro); there
is never any need to preserve underflow exceptions from this part of
the computation, because the conversion of the round-to-odd value to
the narrower type will underflow in exactly the cases in which the
function should raise that exception, but it may be more efficient to
avoid the extra manipulation of the floating-point environment when
not needed.
Tested for x86_64 and x86, and with build-many-glibcs.py.
2021-09-21 21:54:37 +00:00
|
|
|
# Cases where there is underflow before rounding (for some format) but
|
|
|
|
# might not be after rounding, depending on the rounding mode.
|
|
|
|
div 0x1p-126 0x1.0000001p0
|
|
|
|
div 0x1p-126 -0x1.0000001p0
|
|
|
|
div -0x1p-126 0x1.0000001p0
|
|
|
|
div -0x1p-126 -0x1.0000001p0
|
2021-09-22 12:35:44 +00:00
|
|
|
div 0x1p-1022 0x1.00000000000001p0 missing-underflow:arg-ibm128
|
|
|
|
div 0x1p-1022 -0x1.00000000000001p0 missing-underflow:arg-ibm128
|
|
|
|
div -0x1p-1022 0x1.00000000000001p0 missing-underflow:arg-ibm128
|
|
|
|
div -0x1p-1022 -0x1.00000000000001p0 missing-underflow:arg-ibm128
|
|
|
|
div 0x1p-16382 0x1.00000000000000001p0 missing-underflow:arg-ibm128 xfail-rounding:ibm128-libgcc
|
|
|
|
div 0x1p-16382 -0x1.00000000000000001p0 missing-underflow:arg-ibm128 xfail-rounding:ibm128-libgcc
|
|
|
|
div -0x1p-16382 0x1.00000000000000001p0 missing-underflow:arg-ibm128 xfail-rounding:ibm128-libgcc
|
|
|
|
div -0x1p-16382 -0x1.00000000000000001p0 missing-underflow:arg-ibm128 xfail-rounding:ibm128-libgcc
|
Fix f64xdivf128, f64xmulf128 spurious underflows (bug 28358)
As described in bug 28358, the round-to-odd computations used in the
libm functions that round their results to a narrower format can yield
spurious underflow exceptions in the following circumstances: the
narrowing only narrows the precision of the type and not the exponent
range (i.e., it's narrowing _Float128 to _Float64x on x86_64, x86 or
ia64), the architecture does after-rounding tininess detection (which
applies to all those architectures), the result is inexact, tiny
before rounding but not tiny after rounding (with the chosen rounding
mode) for _Float64x (which is possible for narrowing mul, div and fma,
not for narrowing add, sub or sqrt), so the underflow exception
resulting from the toward-zero computation in _Float128 is spurious
for _Float64x.
Fixed by making ROUND_TO_ODD call feclearexcept (FE_UNDERFLOW) in the
problem cases (as indicated by an extra argument to the macro); there
is never any need to preserve underflow exceptions from this part of
the computation, because the conversion of the round-to-odd value to
the narrower type will underflow in exactly the cases in which the
function should raise that exception, but it may be more efficient to
avoid the extra manipulation of the floating-point environment when
not needed.
Tested for x86_64 and x86, and with build-many-glibcs.py.
2021-09-21 21:54:37 +00:00
|
|
|
|
2013-12-03 16:22:49 +00:00
|
|
|
erf 0
|
|
|
|
erf -0
|
|
|
|
erf 0.125
|
|
|
|
erf 0.75
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
erf 1
|
|
|
|
erf -1
|
2013-12-03 16:22:49 +00:00
|
|
|
erf 1.25
|
|
|
|
erf 2.0
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
erf -2
|
|
|
|
erf 3
|
|
|
|
erf -3
|
|
|
|
erf 4
|
|
|
|
erf -4
|
2013-12-03 16:22:49 +00:00
|
|
|
erf 4.125
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
erf 5
|
|
|
|
erf 6
|
|
|
|
erf 7
|
|
|
|
erf 8
|
|
|
|
erf 9
|
|
|
|
erf 10
|
|
|
|
erf -10
|
2013-12-03 16:22:49 +00:00
|
|
|
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
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
erf 0x3.8b7ee8p-128
|
|
|
|
erf 0x3.8b7f3cp-128
|
|
|
|
erf 0x3.8b7f12369decp-1024
|
|
|
|
erf 0x3.8b7f12369deeap-1024
|
|
|
|
erf 0x7.16fe246d3bdaa9e70ec1483562p-972
|
|
|
|
erf 0x7.16fe246d3bdaa9e70ec148358cp-972
|
|
|
|
erf 0x3.8b7f12369ded54c8p-16384
|
|
|
|
erf 0x3.8b7f12369ded551cp-16384
|
|
|
|
erf 0x1.c5bf891b4ef6aa64p-16384
|
|
|
|
erf 0x1.c5bf891b4ef6aa8ep-16384
|
|
|
|
erf 0x3.8b7f12369ded54f38760a41abb5cp-16384
|
|
|
|
erf 0x3.8b7f12369ded54f38760a41abb86p-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
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
erf 0x1p-5
|
|
|
|
erf -0x1p-5
|
|
|
|
erf 0x1p-10
|
|
|
|
erf 0x1p-15
|
|
|
|
erf 0x1p-20
|
|
|
|
erf 0x1p-25
|
|
|
|
erf 0x1p-30
|
|
|
|
erf 0x1p-35
|
|
|
|
erf 0x1p-40
|
|
|
|
erf 0x1p-45
|
|
|
|
erf 0x1p-50
|
|
|
|
erf 0x1p-55
|
|
|
|
erf 0x1p-60
|
|
|
|
erf 0x1p-100
|
|
|
|
erf 0x1p-600
|
|
|
|
erf 0x1p-10000
|
|
|
|
erf min
|
|
|
|
erf -min
|
|
|
|
erf min_subnorm
|
|
|
|
erf -min_subnorm
|
2014-06-24 20:56:56 +00:00
|
|
|
erf max
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
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
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
erfc 1
|
|
|
|
erfc -1
|
2013-12-03 16:22:49 +00:00
|
|
|
erfc 1.25
|
|
|
|
erfc 2.0
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
erfc -2
|
|
|
|
erfc 3
|
|
|
|
erfc -3
|
2013-12-03 16:22:49 +00:00
|
|
|
erfc 0x1.f7303cp+1
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
erfc 4
|
|
|
|
erfc -4
|
2013-12-03 16:22:49 +00:00
|
|
|
erfc 4.125
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
erfc 5
|
|
|
|
erfc -5
|
|
|
|
erfc 6
|
|
|
|
erfc -6
|
|
|
|
erfc 7
|
|
|
|
erfc -7
|
|
|
|
erfc 8
|
|
|
|
erfc -8
|
|
|
|
erfc 9
|
|
|
|
erfc -9
|
|
|
|
erfc 10
|
|
|
|
erfc -10
|
2013-12-03 16:22:49 +00:00
|
|
|
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
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
erfc 0x1p-5
|
|
|
|
erfc -0x1p-5
|
|
|
|
erfc 0x1p-10
|
|
|
|
erfc 0x1p-15
|
|
|
|
erfc 0x1p-20
|
|
|
|
erfc 0x1p-25
|
|
|
|
erfc 0x1p-30
|
|
|
|
erfc 0x1p-35
|
|
|
|
erfc 0x1p-40
|
|
|
|
erfc 0x1p-45
|
|
|
|
erfc 0x1p-50
|
|
|
|
erfc 0x1p-60
|
|
|
|
erfc 0x1p-100
|
|
|
|
erfc 0x1p-600
|
|
|
|
erfc 0x1p-10000
|
|
|
|
erfc 0x9.31cdfp+0
|
|
|
|
erfc 0x9.31cep+0
|
|
|
|
erfc 0x1.a8b12fc6e4891p+4
|
|
|
|
erfc 0x1.a8b12fc6e4892p+4
|
|
|
|
erfc 0x1.9d7adac608e8586300e6c8b99ep+4
|
|
|
|
erfc 0x1.9d7adac608e8586300e6c8b99e8p+4
|
|
|
|
erfc 0x6.a893032db905274p+4
|
|
|
|
erfc 0x6.a893032db9052748p+4
|
|
|
|
erfc 0x6.a8a0561d8bbe942p+4
|
|
|
|
erfc 0x6.a8a0561d8bbe9428p+4
|
|
|
|
erfc 0x6.a893032db905274042fb05c665dcp+4
|
|
|
|
erfc 0x6.a893032db905274042fb05c665ep+4
|
2020-03-30 13:55:55 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary32)
|
|
|
|
erfc 0xd.03d06p-4
|
2021-02-26 07:00:03 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (ldbl-96)
|
|
|
|
erfc 0x1.5cf2167efe9207d2p+0
|
|
|
|
# the next value generates larger error bounds on x86_64 (binary128)
|
|
|
|
erfc 0x1.5166e0efc44a9dfc79b8c8873a99p+0
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
erfc min
|
|
|
|
erfc -min
|
|
|
|
erfc min_subnorm
|
|
|
|
erfc -min_subnorm
|
2013-12-03 16:25:18 +00:00
|
|
|
erfc max
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
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
|
Add more random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
erfc 0x2.56af04p+0
|
|
|
|
erfc 0x2.b7f8cb76737d2af98dead7c4c5eep+0
|
|
|
|
erfc 0x2.dfb9b4p+0
|
|
|
|
erfc 0x1.e33c9ep+0
|
2020-11-25 18:03:33 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary64)
|
|
|
|
erfc 0x1.3ffcbf39febb4p+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
|
2017-01-09 22:40:59 +00:00
|
|
|
exp 1000.0
|
|
|
|
exp 710
|
2013-12-03 16:22:49 +00:00
|
|
|
exp -1234
|
2017-01-09 22:40:59 +00:00
|
|
|
exp 0x2.c679d1f73f0fb628p+8
|
|
|
|
exp 1e5
|
|
|
|
exp max
|
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
|
2015-09-14 22:40:05 +00:00
|
|
|
exp -0x2.c469d9p+8
|
|
|
|
exp -0x2.c46d96p+8
|
|
|
|
exp -0x2.c46727p+8
|
|
|
|
exp -0x2.c469dep+8
|
|
|
|
exp -0x2.c46c04p+8
|
|
|
|
exp -0x2.c46adep+8
|
|
|
|
exp -0x2.c471b3p+8
|
|
|
|
exp -0x2.c46993p+8
|
|
|
|
exp -0x2.c49fap+8
|
|
|
|
exp -0x2.c4ac1p+8
|
|
|
|
exp -0x2.c4d89p+8
|
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
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
exp 0x1p-600
|
|
|
|
exp -0x1p-600
|
|
|
|
exp 0x1p-10000
|
|
|
|
exp -0x1p-10000
|
|
|
|
exp 0x5.8b90b8p+4
|
|
|
|
exp 0x5.8b90cp+4
|
|
|
|
exp -0x5.75628p+4
|
|
|
|
exp -0x5.756278p+4
|
2017-01-09 22:40:59 +00:00
|
|
|
exp 0x2.c5c85fdf473dep+8
|
|
|
|
exp 0x2.c5c85fdf473ep+8
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
exp -0x2.c4657baf579a6p+8
|
|
|
|
exp -0x2.c4657baf579a4p+8
|
2017-01-04 23:29:42 +00:00
|
|
|
exp 0x2.c5c85fdf473de6ab278ece600fp+8 xfail-rounding:ibm128-libgcc
|
|
|
|
exp 0x2.c5c85fdf473de6ab278ece601p+8 xfail-rounding:ibm128-libgcc
|
|
|
|
exp -0x2.9fa8dcb9092a538b3f2ee2ca67p+8 xfail-rounding:ibm128-libgcc
|
|
|
|
exp -0x2.9fa8dcb9092a538b3f2ee2ca66p+8 xfail-rounding:ibm128-libgcc
|
2017-01-09 22:40:59 +00:00
|
|
|
exp 0x2.c5c85fdf473de6acp+12
|
|
|
|
exp 0x2.c5c85fdf473de6bp+12
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
exp -0x2.c5b2319c4843accp+12
|
|
|
|
exp -0x2.c5b2319c4843acbcp+12
|
|
|
|
exp -0x2.c5bd48bdc7c0c9b8p+12
|
|
|
|
exp -0x2.c5bd48bdc7c0c9b4p+12
|
2017-01-09 22:40:59 +00:00
|
|
|
exp 0x2.c5c85fdf473de6af278ece600fcap+12
|
|
|
|
exp 0x2.c5c85fdf473de6af278ece600fccp+12
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
exp -0x2.c5b2319c4843acbff21591e99cccp+12
|
|
|
|
exp -0x2.c5b2319c4843acbff21591e99ccap+12
|
2014-03-27 18:41:14 +00:00
|
|
|
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
|
Add more random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
exp -0x6.58b64p-4
|
2020-03-30 13:55:55 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary32)
|
|
|
|
exp 0x1.fefe02p-16
|
2020-11-25 18:03:33 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary64)
|
|
|
|
exp -0x1.0c4af1ad4ee36p+9
|
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
|
2017-01-09 22:40:59 +00:00
|
|
|
exp10 4932
|
2015-06-21 17:48:04 +00:00
|
|
|
exp10 -4932
|
|
|
|
exp10 -0x1.343793004f503232p12
|
2017-01-09 22:40:59 +00:00
|
|
|
exp10 1e5
|
2013-12-03 16:22:49 +00:00
|
|
|
exp10 -1e5
|
2017-01-09 22:40:59 +00:00
|
|
|
exp10 1e6
|
2013-12-03 16:22:49 +00:00
|
|
|
exp10 -1e6
|
2017-01-09 22:40:59 +00:00
|
|
|
exp10 max
|
2013-12-03 16:22:49 +00:00
|
|
|
exp10 -max
|
|
|
|
exp10 0.75
|
2017-01-09 22:40:59 +00:00
|
|
|
exp10 0x1.348e45573a1dd72cp+8
|
2015-09-15 16:50:02 +00:00
|
|
|
exp10 -0x1.33aa03p+8
|
|
|
|
exp10 -0x1.33ad17p+8
|
|
|
|
exp10 -0x1.33afcap+8
|
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
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
exp10 0x1p-600
|
|
|
|
exp10 -0x1p-600
|
|
|
|
exp10 0x1p-10000
|
|
|
|
exp10 -0x1p-10000
|
|
|
|
exp10 0x2.688268p+4
|
|
|
|
exp10 0x2.68826cp+4
|
|
|
|
exp10 -0x2.5ee064p+4
|
|
|
|
exp10 -0x2.5ee06p+4
|
|
|
|
exp10 0x1.34413509f79fep+8
|
|
|
|
exp10 0x1.34413509f79ffp+8
|
|
|
|
exp10 -0x1.33a7146f72a42p+8
|
|
|
|
exp10 -0x1.33a7146f72a41p+8
|
2017-01-04 23:29:42 +00:00
|
|
|
exp10 0x1.34413509f79fef2f625b0205a88p+8 xfail:ibm128-libgcc
|
|
|
|
exp10 0x1.34413509f79fef2f625b0205a9p+8 xfail:ibm128-libgcc
|
|
|
|
exp10 -0x1.23b2b470ae9318183ba772361cp+8 xfail-rounding:ibm128-libgcc
|
|
|
|
exp10 -0x1.23b2b470ae9318183ba772361b8p+8 xfail-rounding:ibm128-libgcc
|
2017-01-09 22:40:59 +00:00
|
|
|
exp10 0x1.34413509f79fef3p+12
|
|
|
|
exp10 0x1.34413509f79fef32p+12
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
exp10 -0x1.343793004f503232p+12
|
|
|
|
exp10 -0x1.343793004f50323p+12
|
|
|
|
exp10 -0x1.343c6405237810b2p+12
|
|
|
|
exp10 -0x1.343c6405237810bp+12
|
2017-01-09 22:40:59 +00:00
|
|
|
exp10 0x1.34413509f79fef311f12b35816f9p+12
|
|
|
|
exp10 0x1.34413509f79fef311f12b35816fap+12
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
exp10 -0x1.343793004f503231a589bac27c39p+12
|
|
|
|
exp10 -0x1.343793004f503231a589bac27c38p+12
|
2020-03-30 13:55:55 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary32)
|
|
|
|
exp10 -0xa.6f431p+0
|
2014-06-25 11:33:22 +00:00
|
|
|
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
|
Add more random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
exp10 0x3.495c78p+0
|
|
|
|
exp10 0xf.f33f6p+0
|
2015-05-01 20:33:04 +00:00
|
|
|
|
Implement C23 exp2m1, exp10m1
C23 adds various <math.h> function families originally defined in TS
18661-4. Add the exp2m1 and exp10m1 functions (exp2(x)-1 and
exp10(x)-1, like expm1).
As with other such functions, these use type-generic templates that
could be replaced with faster and more accurate type-specific
implementations in future. Test inputs are copied from those for
expm1, plus some additions close to the overflow threshold (copied
from exp2 and exp10) and also some near the underflow threshold.
exp2m1 has the unusual property of having an input (M_MAX_EXP) where
whether the function overflows (under IEEE semantics) depends on the
rounding mode. Although these could reasonably be XFAILed in the
testsuite (as we do in some cases for arguments very close to a
function's overflow threshold when an error of a few ulps in the
implementation can result in the implementation not agreeing with an
ideal one on whether overflow takes place - the testsuite isn't smart
enough to handle this automatically), since these functions aren't
required to be correctly rounding, I made the implementation check for
and handle this case specially.
The Makefile ordering expected by lint-makefiles for the new functions
is a bit peculiar, but I implemented it in this patch so that the test
passes; I don't know why log2 also needed moving in one Makefile
variable setting when it didn't in my previous patches, but the
failure showed a different place was expected for that function as
well.
The powerpc64le IFUNC setup seems not to be as self-contained as one
might hope; it shouldn't be necessary to add IFUNCs for new functions
such as these simply to get them building, but without setting up
IFUNCs for the new functions, there were undefined references to
__GI___expm1f128 (that IFUNC machinery results in no such function
being defined, but doesn't stop include/math.h from doing the
redirection resulting in the exp2m1f128 and exp10m1f128
implementations expecting to call it).
Tested for x86_64 and x86, and with build-many-glibcs.py.
2024-06-17 16:31:49 +00:00
|
|
|
exp10m1 0
|
|
|
|
exp10m1 -0
|
|
|
|
exp10m1 1
|
|
|
|
exp10m1 0.75
|
|
|
|
exp10m1 2
|
|
|
|
exp10m1 3
|
|
|
|
exp10m1 4
|
|
|
|
exp10m1 5
|
|
|
|
exp10m1 10
|
|
|
|
exp10m1 15
|
|
|
|
exp10m1 20
|
|
|
|
exp10m1 25
|
|
|
|
exp10m1 30
|
|
|
|
exp10m1 35
|
|
|
|
exp10m1 40
|
|
|
|
exp10m1 50.0
|
|
|
|
exp10m1 60
|
|
|
|
exp10m1 70
|
|
|
|
exp10m1 80
|
|
|
|
exp10m1 90
|
|
|
|
exp10m1 100
|
|
|
|
exp10m1 127.0
|
|
|
|
exp10m1 500.0
|
|
|
|
exp10m1 11356.25
|
|
|
|
exp10m1 -10.0
|
|
|
|
exp10m1 -16.0
|
|
|
|
exp10m1 -17.0
|
|
|
|
exp10m1 -18.0
|
|
|
|
exp10m1 -36.0
|
|
|
|
exp10m1 -37.0
|
|
|
|
exp10m1 -38.0
|
|
|
|
exp10m1 -44.0
|
|
|
|
exp10m1 -45.0
|
|
|
|
exp10m1 -46.0
|
|
|
|
exp10m1 -73.0
|
|
|
|
exp10m1 -74.0
|
|
|
|
exp10m1 -75.0
|
|
|
|
exp10m1 -78.0
|
|
|
|
exp10m1 -79.0
|
|
|
|
exp10m1 -80.0
|
|
|
|
exp10m1 -100.0
|
|
|
|
exp10m1 -1000.0
|
|
|
|
exp10m1 -10000.0
|
|
|
|
exp10m1 -100000.0
|
|
|
|
exp10m1 100000.0
|
|
|
|
exp10m1 max
|
|
|
|
exp10m1 -max
|
|
|
|
exp10m1 0x1p-2
|
|
|
|
exp10m1 -0x1p-2
|
|
|
|
exp10m1 0x1p-10
|
|
|
|
exp10m1 -0x1p-10
|
|
|
|
exp10m1 0x1p-20
|
|
|
|
exp10m1 -0x1p-20
|
|
|
|
exp10m1 0x1p-29
|
|
|
|
exp10m1 -0x1p-29
|
|
|
|
exp10m1 0x1p-32
|
|
|
|
exp10m1 -0x1p-32
|
|
|
|
exp10m1 0x1p-50
|
|
|
|
exp10m1 -0x1p-50
|
|
|
|
exp10m1 0x1p-64
|
|
|
|
exp10m1 -0x1p-64
|
|
|
|
exp10m1 0x1p-100
|
|
|
|
exp10m1 -0x1p-100
|
|
|
|
exp10m1 0x1p-600
|
|
|
|
exp10m1 -0x1p-600
|
|
|
|
exp10m1 0x1p-10000
|
|
|
|
exp10m1 -0x1p-10000
|
|
|
|
exp10m1 0xe.4152ac57cd1ea7ap-60
|
|
|
|
exp10m1 0x6.660247486aed8p-4
|
|
|
|
exp10m1 0x6.289a78p-4
|
|
|
|
exp10m1 0x6.1b4d318238d4a2a8p-4
|
|
|
|
exp10m1 0x5.fb8dc64e91a74p-4
|
|
|
|
exp10m1 0x3.735f497c4e67535cp-4
|
|
|
|
exp10m1 -0x7.d6c50b469d404p+0
|
|
|
|
exp10m1 0x4.857de8p+4
|
|
|
|
exp10m1 0x5.dfeb68p-4
|
|
|
|
exp10m1 0x4.0000000000000028p-16384
|
|
|
|
exp10m1 0x5.8b911eb6733469c8p-4
|
|
|
|
exp10m1 0x5.a343df0d680099a7a1a873a751a8p-4
|
|
|
|
exp10m1 min
|
|
|
|
exp10m1 -min
|
|
|
|
exp10m1 min_subnorm
|
|
|
|
exp10m1 -min_subnorm
|
|
|
|
exp10m1 0x2.688268p+4
|
|
|
|
exp10m1 0x2.68826cp+4
|
|
|
|
exp10m1 0x1.34413509f79fep+8
|
|
|
|
exp10m1 0x1.34413509f79ffp+8
|
|
|
|
exp10m1 0x1.34413509f79fef2f625b0205a88p+8 xfail:ibm128-libgcc
|
|
|
|
exp10m1 0x1.34413509f79fef2f625b0205a9p+8 xfail:ibm128-libgcc
|
|
|
|
exp10m1 0x1.34413509f79fef3p+12
|
|
|
|
exp10m1 0x1.34413509f79fef32p+12
|
|
|
|
exp10m1 0x1.34413509f79fef311f12b35816f9p+12
|
|
|
|
exp10m1 0x1.34413509f79fef311f12b35816fap+12
|
|
|
|
exp10m1 0x1p-128
|
|
|
|
exp10m1 0x1p-1024
|
|
|
|
exp10m1 0x1p-16384
|
|
|
|
exp10m1 -0x1p-128
|
|
|
|
exp10m1 -0x1p-1024
|
|
|
|
exp10m1 -0x1p-16384
|
2024-07-25 14:38:08 +00:00
|
|
|
# the next values yield large errors on x86_64 for binary32
|
|
|
|
exp10m1 0x1.e4fb5ap-2
|
|
|
|
exp10m1 0x1.cc3352p-2
|
|
|
|
exp10m1 0x1.c8a6e6p-2
|
|
|
|
exp10m1 -0x1.c03a7ep-8
|
|
|
|
# the next values yield large errors on x86_64 for binary64
|
|
|
|
exp10m1 0x1.e880c5bafbd41p-2
|
|
|
|
exp10m1 0x1.ce521eafe0f21p-2
|
|
|
|
exp10m1 0x1.ce21fffa5aed8p-2
|
|
|
|
exp10m1 -0x1.bcb951df89248p-15
|
|
|
|
# the next values yield large errors on x86_64 for intel96
|
|
|
|
exp10m1 0x2.6882b807049f54ap-4
|
|
|
|
exp10m1 -0x6.f6469fc524a1de1p-12
|
|
|
|
exp10m1 0x2.cf6c5a8ec5919c0cp-4
|
|
|
|
exp10m1 0x2.d08614068c3c5514p-4
|
|
|
|
exp10m1 0x2.c7fd02fd98797bf4p-4
|
|
|
|
exp10m1 -0x6.f36b2669aee2d2e8p-12
|
|
|
|
exp10m1 0x2.c83d897086a4e644p-4
|
|
|
|
exp10m1 0x2.b47fd78c73d7fa7cp-4
|
|
|
|
# the next values yield large errors on x86_64 for binary128
|
|
|
|
exp10m1 0xb.2ee9062818e91afe8e80fae1818p-4
|
|
|
|
exp10m1 0xb.2e822db54f357c3f65ad743758bp-4
|
|
|
|
exp10m1 0xb.2edd92a794cbc6f81f5f4f82c14p-4
|
|
|
|
exp10m1 0xb.2eca344f0d4f0af54bdbd5974858p-4
|
Implement C23 exp2m1, exp10m1
C23 adds various <math.h> function families originally defined in TS
18661-4. Add the exp2m1 and exp10m1 functions (exp2(x)-1 and
exp10(x)-1, like expm1).
As with other such functions, these use type-generic templates that
could be replaced with faster and more accurate type-specific
implementations in future. Test inputs are copied from those for
expm1, plus some additions close to the overflow threshold (copied
from exp2 and exp10) and also some near the underflow threshold.
exp2m1 has the unusual property of having an input (M_MAX_EXP) where
whether the function overflows (under IEEE semantics) depends on the
rounding mode. Although these could reasonably be XFAILed in the
testsuite (as we do in some cases for arguments very close to a
function's overflow threshold when an error of a few ulps in the
implementation can result in the implementation not agreeing with an
ideal one on whether overflow takes place - the testsuite isn't smart
enough to handle this automatically), since these functions aren't
required to be correctly rounding, I made the implementation check for
and handle this case specially.
The Makefile ordering expected by lint-makefiles for the new functions
is a bit peculiar, but I implemented it in this patch so that the test
passes; I don't know why log2 also needed moving in one Makefile
variable setting when it didn't in my previous patches, but the
failure showed a different place was expected for that function as
well.
The powerpc64le IFUNC setup seems not to be as self-contained as one
might hope; it shouldn't be necessary to add IFUNCs for new functions
such as these simply to get them building, but without setting up
IFUNCs for the new functions, there were undefined references to
__GI___expm1f128 (that IFUNC machinery results in no such function
being defined, but doesn't stop include/math.h from doing the
redirection resulting in the exp2m1f128 and exp10m1f128
implementations expecting to call it).
Tested for x86_64 and x86, and with build-many-glibcs.py.
2024-06-17 16:31:49 +00:00
|
|
|
|
2013-12-03 16:22:49 +00:00
|
|
|
exp2 0
|
|
|
|
exp2 -0
|
|
|
|
exp2 10
|
|
|
|
exp2 -1
|
2017-01-09 22:40:59 +00:00
|
|
|
exp2 1e6
|
2013-12-03 20:50:51 +00:00
|
|
|
exp2 -1e6
|
2017-01-09 22:40:59 +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
|
2017-01-09 22:40:59 +00:00
|
|
|
exp2 16383
|
2013-12-03 20:50:51 +00:00
|
|
|
exp2 -16400
|
2015-09-14 22:00:12 +00:00
|
|
|
exp2 -126.125
|
|
|
|
exp2 -126.25
|
|
|
|
exp2 -126.375
|
|
|
|
exp2 -126.5
|
|
|
|
exp2 -126.625
|
|
|
|
exp2 -126.75
|
|
|
|
exp2 -126.875
|
|
|
|
exp2 -1022.125
|
|
|
|
exp2 -1022.25
|
|
|
|
exp2 -1022.375
|
|
|
|
exp2 -1022.5
|
|
|
|
exp2 -1022.625
|
|
|
|
exp2 -1022.75
|
|
|
|
exp2 -1022.875
|
|
|
|
exp2 -0x3.fe4e8p+8
|
|
|
|
exp2 -0x3.fe513p+8
|
|
|
|
exp2 -16382.125
|
|
|
|
exp2 -16382.25
|
|
|
|
exp2 -16382.375
|
|
|
|
exp2 -16382.5
|
|
|
|
exp2 -16382.625
|
|
|
|
exp2 -16382.75
|
|
|
|
exp2 -16382.875
|
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
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
exp2 0x1p-600
|
|
|
|
exp2 -0x1p-600
|
|
|
|
exp2 0x1p-10000
|
|
|
|
exp2 -0x1p-10000
|
|
|
|
exp2 0x7.fffff8p+4
|
|
|
|
exp2 0x8.00001p+4
|
|
|
|
exp2 -0x7.e00008p+4
|
|
|
|
exp2 -0x7.dffff8p+4
|
2017-01-09 22:40:59 +00:00
|
|
|
exp2 0x3.ffffffffffffep+8
|
|
|
|
exp2 0x4.0000000000004p+8
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
exp2 -0x3.fe00000000002p+8
|
|
|
|
exp2 -0x3.fdffffffffffep+8
|
2017-01-04 23:29:42 +00:00
|
|
|
exp2 0x3.fffffffffffffffa3aae26b51fp+8 xfail-rounding:ibm128-libgcc
|
|
|
|
exp2 0x3.fffffffffffffffa3aae26b52p+8 xfail-rounding:ibm128-libgcc
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
exp2 -0x3.c9000000000000000000000001p+8
|
|
|
|
exp2 -0x3.c8ffffffffffffffffffffffffp+8
|
2017-01-09 22:40:59 +00:00
|
|
|
exp2 0x3.fffffffffffffffcp+12
|
|
|
|
exp2 0x4.0000000000000008p+12
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
exp2 -0x3.ffe0000000000004p+12
|
|
|
|
exp2 -0x3.ffdffffffffffffcp+12
|
2017-01-09 22:40:59 +00:00
|
|
|
exp2 -0x3.fff0000000000004p+12
|
|
|
|
exp2 -0x3.ffeffffffffffffcp+12
|
|
|
|
exp2 0x3.fffffffffffffffffffffffffffep+12
|
|
|
|
exp2 0x4.0000000000000000000000000004p+12
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
exp2 -0x3.ffe0000000000000000000000002p+12
|
|
|
|
exp2 -0x3.ffdffffffffffffffffffffffffep+12
|
2015-02-12 19:02:45 +00:00
|
|
|
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
|
Add more random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
exp2 0xf.93d18bf7be8d272p-4
|
2015-05-01 20:33:04 +00:00
|
|
|
|
Implement C23 exp2m1, exp10m1
C23 adds various <math.h> function families originally defined in TS
18661-4. Add the exp2m1 and exp10m1 functions (exp2(x)-1 and
exp10(x)-1, like expm1).
As with other such functions, these use type-generic templates that
could be replaced with faster and more accurate type-specific
implementations in future. Test inputs are copied from those for
expm1, plus some additions close to the overflow threshold (copied
from exp2 and exp10) and also some near the underflow threshold.
exp2m1 has the unusual property of having an input (M_MAX_EXP) where
whether the function overflows (under IEEE semantics) depends on the
rounding mode. Although these could reasonably be XFAILed in the
testsuite (as we do in some cases for arguments very close to a
function's overflow threshold when an error of a few ulps in the
implementation can result in the implementation not agreeing with an
ideal one on whether overflow takes place - the testsuite isn't smart
enough to handle this automatically), since these functions aren't
required to be correctly rounding, I made the implementation check for
and handle this case specially.
The Makefile ordering expected by lint-makefiles for the new functions
is a bit peculiar, but I implemented it in this patch so that the test
passes; I don't know why log2 also needed moving in one Makefile
variable setting when it didn't in my previous patches, but the
failure showed a different place was expected for that function as
well.
The powerpc64le IFUNC setup seems not to be as self-contained as one
might hope; it shouldn't be necessary to add IFUNCs for new functions
such as these simply to get them building, but without setting up
IFUNCs for the new functions, there were undefined references to
__GI___expm1f128 (that IFUNC machinery results in no such function
being defined, but doesn't stop include/math.h from doing the
redirection resulting in the exp2m1f128 and exp10m1f128
implementations expecting to call it).
Tested for x86_64 and x86, and with build-many-glibcs.py.
2024-06-17 16:31:49 +00:00
|
|
|
exp2m1 0
|
|
|
|
exp2m1 -0
|
|
|
|
exp2m1 1
|
|
|
|
exp2m1 0.75
|
|
|
|
exp2m1 2
|
|
|
|
exp2m1 3
|
|
|
|
exp2m1 4
|
|
|
|
exp2m1 5
|
|
|
|
exp2m1 10
|
|
|
|
exp2m1 15
|
|
|
|
exp2m1 20
|
|
|
|
exp2m1 25
|
|
|
|
exp2m1 30
|
|
|
|
exp2m1 35
|
|
|
|
exp2m1 40
|
|
|
|
exp2m1 50.0
|
|
|
|
exp2m1 60
|
|
|
|
exp2m1 70
|
|
|
|
exp2m1 80
|
|
|
|
exp2m1 90
|
|
|
|
exp2m1 100
|
|
|
|
exp2m1 127.0
|
|
|
|
exp2m1 500.0
|
|
|
|
exp2m1 11356.25
|
|
|
|
exp2m1 -10.0
|
|
|
|
exp2m1 -16.0
|
|
|
|
exp2m1 -17.0
|
|
|
|
exp2m1 -18.0
|
|
|
|
exp2m1 -36.0
|
|
|
|
exp2m1 -37.0
|
|
|
|
exp2m1 -38.0
|
|
|
|
exp2m1 -44.0
|
|
|
|
exp2m1 -45.0
|
|
|
|
exp2m1 -46.0
|
|
|
|
exp2m1 -73.0
|
|
|
|
exp2m1 -74.0
|
|
|
|
exp2m1 -75.0
|
|
|
|
exp2m1 -78.0
|
|
|
|
exp2m1 -79.0
|
|
|
|
exp2m1 -80.0
|
|
|
|
exp2m1 -100.0
|
|
|
|
exp2m1 -1000.0
|
|
|
|
exp2m1 -10000.0
|
|
|
|
exp2m1 -100000.0
|
|
|
|
exp2m1 100000.0
|
|
|
|
exp2m1 max
|
|
|
|
exp2m1 -max
|
|
|
|
exp2m1 0x1p-2
|
|
|
|
exp2m1 -0x1p-2
|
|
|
|
exp2m1 0x1p-10
|
|
|
|
exp2m1 -0x1p-10
|
|
|
|
exp2m1 0x1p-20
|
|
|
|
exp2m1 -0x1p-20
|
|
|
|
exp2m1 0x1p-29
|
|
|
|
exp2m1 -0x1p-29
|
|
|
|
exp2m1 0x1p-32
|
|
|
|
exp2m1 -0x1p-32
|
|
|
|
exp2m1 0x1p-50
|
|
|
|
exp2m1 -0x1p-50
|
|
|
|
exp2m1 0x1p-64
|
|
|
|
exp2m1 -0x1p-64
|
|
|
|
exp2m1 0x1p-100
|
|
|
|
exp2m1 -0x1p-100
|
|
|
|
exp2m1 0x1p-600
|
|
|
|
exp2m1 -0x1p-600
|
|
|
|
exp2m1 0x1p-10000
|
|
|
|
exp2m1 -0x1p-10000
|
|
|
|
exp2m1 0xe.4152ac57cd1ea7ap-60
|
|
|
|
exp2m1 0x6.660247486aed8p-4
|
|
|
|
exp2m1 0x6.289a78p-4
|
|
|
|
exp2m1 0x6.1b4d318238d4a2a8p-4
|
|
|
|
exp2m1 0x5.fb8dc64e91a74p-4
|
|
|
|
exp2m1 0x3.735f497c4e67535cp-4
|
|
|
|
exp2m1 -0x7.d6c50b469d404p+0
|
|
|
|
exp2m1 0x4.857de8p+4
|
|
|
|
exp2m1 0x5.dfeb68p-4
|
|
|
|
exp2m1 0x4.0000000000000028p-16384
|
|
|
|
exp2m1 0x5.8b911eb6733469c8p-4
|
|
|
|
exp2m1 0x5.a343df0d680099a7a1a873a751a8p-4
|
|
|
|
exp2m1 min
|
|
|
|
exp2m1 -min
|
|
|
|
exp2m1 min_subnorm
|
|
|
|
exp2m1 -min_subnorm
|
|
|
|
exp2m1 128
|
|
|
|
exp2m1 0x7.fffff8p+4
|
|
|
|
exp2m1 0x8.00001p+4
|
|
|
|
exp2m1 0x3.ffffffffffffep+8
|
|
|
|
exp2m1 0x4.0000000000004p+8
|
|
|
|
exp2m1 0x3.fffffffffffffffa3aae26b51fp+8 xfail-rounding:ibm128-libgcc
|
|
|
|
exp2m1 0x3.fffffffffffffffa3aae26b52p+8 xfail-rounding:ibm128-libgcc
|
|
|
|
exp2m1 0x3.fffffffffffffffcp+12
|
|
|
|
exp2m1 0x4.0000000000000008p+12
|
|
|
|
exp2m1 0x3.fffffffffffffffffffffffffffep+12
|
|
|
|
exp2m1 0x4.0000000000000000000000000004p+12
|
|
|
|
exp2m1 0x1p-125
|
|
|
|
exp2m1 0x1p-1021
|
|
|
|
exp2m1 0x1p-16381
|
|
|
|
exp2m1 -0x1p-125
|
|
|
|
exp2m1 -0x1p-1021
|
|
|
|
exp2m1 -0x1p-16381
|
2024-07-25 14:38:08 +00:00
|
|
|
# the next values yield large errors on x86_64 for binary32
|
|
|
|
exp2m1 0x1.9cac28p-1
|
|
|
|
exp2m1 -0x1.715546p-15
|
|
|
|
exp2m1 0x1.fffffep-1
|
|
|
|
exp2m1 -0x1.720d9ap-8
|
|
|
|
# the next values yield large errors on x86_64 for binary64
|
|
|
|
exp2m1 0x1.d047583a6c6dp-1
|
|
|
|
exp2m1 0x1.fff7be96c5276p-1
|
|
|
|
exp2m1 -0x1.715bd8586d057p-12
|
|
|
|
exp2m1 0x1.ffffb5c6996fp-1
|
|
|
|
# the next values yield large errors on x86_64 for intel96
|
|
|
|
exp2m1 0x9.58009dd25960a7bp-4
|
|
|
|
exp2m1 -0x1.7159454d13d4e3fap-12
|
|
|
|
exp2m1 0x9.5a4e825121e5782p-4
|
|
|
|
exp2m1 0x9.3e34e79efaa18cfp-4
|
|
|
|
exp2m1 0x9.3754a635820f937p-4
|
|
|
|
exp2m1 -0x1.71573dd150de9ccap-8
|
|
|
|
exp2m1 0x9.3d27303441ac81fp-4
|
|
|
|
exp2m1 0x8.fe7f91d947a1cfdp-4
|
|
|
|
# the next values yield large errors on x86_64 for binary128
|
|
|
|
exp2m1 0x9.1217d12087d76b2ca347683e4b5p-4
|
|
|
|
exp2m1 0x8.80db492a604297e1a3816aeec568p-4
|
|
|
|
exp2m1 0x8.872e307510a80e501665a37c218p-4
|
|
|
|
exp2m1 0x9.10b9251f0cc9bdc81d6ab13bb74p-4
|
Implement C23 exp2m1, exp10m1
C23 adds various <math.h> function families originally defined in TS
18661-4. Add the exp2m1 and exp10m1 functions (exp2(x)-1 and
exp10(x)-1, like expm1).
As with other such functions, these use type-generic templates that
could be replaced with faster and more accurate type-specific
implementations in future. Test inputs are copied from those for
expm1, plus some additions close to the overflow threshold (copied
from exp2 and exp10) and also some near the underflow threshold.
exp2m1 has the unusual property of having an input (M_MAX_EXP) where
whether the function overflows (under IEEE semantics) depends on the
rounding mode. Although these could reasonably be XFAILed in the
testsuite (as we do in some cases for arguments very close to a
function's overflow threshold when an error of a few ulps in the
implementation can result in the implementation not agreeing with an
ideal one on whether overflow takes place - the testsuite isn't smart
enough to handle this automatically), since these functions aren't
required to be correctly rounding, I made the implementation check for
and handle this case specially.
The Makefile ordering expected by lint-makefiles for the new functions
is a bit peculiar, but I implemented it in this patch so that the test
passes; I don't know why log2 also needed moving in one Makefile
variable setting when it didn't in my previous patches, but the
failure showed a different place was expected for that function as
well.
The powerpc64le IFUNC setup seems not to be as self-contained as one
might hope; it shouldn't be necessary to add IFUNCs for new functions
such as these simply to get them building, but without setting up
IFUNCs for the new functions, there were undefined references to
__GI___expm1f128 (that IFUNC machinery results in no such function
being defined, but doesn't stop include/math.h from doing the
redirection resulting in the exp2m1f128 and exp10m1f128
implementations expecting to call it).
Tested for x86_64 and x86, and with build-many-glibcs.py.
2024-06-17 16:31:49 +00:00
|
|
|
|
2013-12-03 16:22:49 +00:00
|
|
|
expm1 0
|
2023-11-16 13:24:18 +00:00
|
|
|
expm1 -0 no-mathvec
|
2013-12-03 16:22:49 +00:00
|
|
|
expm1 1
|
|
|
|
expm1 0.75
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
expm1 2
|
|
|
|
expm1 3
|
|
|
|
expm1 4
|
|
|
|
expm1 5
|
|
|
|
expm1 10
|
|
|
|
expm1 15
|
|
|
|
expm1 20
|
|
|
|
expm1 25
|
|
|
|
expm1 30
|
|
|
|
expm1 35
|
|
|
|
expm1 40
|
2013-12-03 16:22:49 +00:00
|
|
|
expm1 50.0
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
expm1 60
|
|
|
|
expm1 70
|
|
|
|
expm1 80
|
|
|
|
expm1 90
|
|
|
|
expm1 100
|
2013-12-03 16:22:49 +00:00
|
|
|
expm1 127.0
|
|
|
|
expm1 500.0
|
2017-01-09 22:40:59 +00:00
|
|
|
expm1 11356.25
|
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
|
2017-01-09 22:40:59 +00:00
|
|
|
expm1 100000.0
|
|
|
|
expm1 max
|
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
|
Improve test coverage of real libm functions [a-e]*.
This patch improves test coverage of the real libm functions [a-e]*,
ensuring that special cases and ranges of input values of potential
significance (such as close to overflow and underflow thresholds) are
more systematically covered.
This is a followup to
<https://sourceware.org/ml/libc-alpha/2013-12/msg00757.html> which
covered [a-c]* (however, I found more weaknesses in the coverage of
those functions when preparing this patch, hence the additional tests
being added for them here).
Addition of a test for acosh (-qNaN) is temporarily deferred, to be
included as part of a fix for bug 19032 which was discovered in the
course of adding these tests (and which illustrates the use of testing
-qNaN as well as +qNaN as input even to functions for which the sign
of a NaN isn't meant to be significant).
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
atan, atan2, atanh, cbrt, cos, cosh, erf, erfc, exp, exp10, exp2
and expm1.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (acos_test_data): Add more tests.
(asin_test_data): Likewise.
(asinh_test_data): Likewise.
(atan_test_data): Likewise.
(atanh_test_data): Likewise.
(atan2_test_data): Likewise.
(cbrt_test_data): Likewise.
(ceil_test_data): Likewise.
(copysign_test_data): Likewise.
(cos_test_data): Likewise.
(cosh_test_data): Likewise.
(erf_test_data): Likewise.
(erfc_test_data): Likewise.
(exp_test_data): Likewise.
(exp10_test_data): Likewise.
(exp2_test_data): Likewise.
(expm1_test_data): Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-30 18:06:02 +00:00
|
|
|
expm1 0x1p-600
|
|
|
|
expm1 -0x1p-600
|
|
|
|
expm1 0x1p-10000
|
2023-11-16 13:24:18 +00:00
|
|
|
expm1 -0x1p-10000 no-mathvec
|
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
|
Add more random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
expm1 0x5.dfeb68p-4
|
2015-06-22 21:06:19 +00:00
|
|
|
expm1 0x4.0000000000000028p-16384
|
2021-02-26 07:00:03 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (ldbl-96)
|
|
|
|
expm1 0x5.8b911eb6733469c8p-4
|
|
|
|
# the next value generates larger error bounds on x86_64 (binary128)
|
|
|
|
expm1 0x5.a343df0d680099a7a1a873a751a8p-4
|
2015-06-22 21:06:19 +00:00
|
|
|
expm1 min
|
2017-01-09 22:40:59 +00:00
|
|
|
expm1 -min
|
2015-06-22 21:06:19 +00:00
|
|
|
expm1 min_subnorm
|
2017-01-09 22:40:59 +00:00
|
|
|
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
|
Add narrowing fma functions
This patch adds the narrowing fused multiply-add functions from TS
18661-1 / TS 18661-3 / C2X to glibc's libm: ffma, ffmal, dfmal,
f32fmaf64, f32fmaf32x, f32xfmaf64 for all configurations; f32fmaf64x,
f32fmaf128, f64fmaf64x, f64fmaf128, f32xfmaf64x, f32xfmaf128,
f64xfmaf128 for configurations with _Float64x and _Float128;
__f32fmaieee128 and __f64fmaieee128 aliases in the powerpc64le case
(for calls to ffmal and dfmal when long double is IEEE binary128).
Corresponding tgmath.h macro support is also added.
The changes are mostly similar to those for the other narrowing
functions previously added, especially that for sqrt, so the
description of those generally applies to this patch as well. As with
sqrt, I reused the same test inputs in auto-libm-test-in as for
non-narrowing fma rather than adding extra or separate inputs for
narrowing fma. The tests in libm-test-narrow-fma.inc also follow
those for non-narrowing fma.
The non-narrowing fma has a known bug (bug 6801) that it does not set
errno on errors (overflow, underflow, Inf * 0, Inf - Inf). Rather
than fixing this or having narrowing fma check for errors when
non-narrowing does not (complicating the cases when narrowing fma can
otherwise be an alias for a non-narrowing function), this patch does
not attempt to check for errors from narrowing fma and set errno; the
CHECK_NARROW_FMA macro is still present, but as a placeholder that
does nothing, and this missing errno setting is considered to be
covered by the existing bug rather than needing a separate open bug.
missing-errno annotations are duly added to many of the
auto-libm-test-in test inputs for fma.
This completes adding all the new functions from TS 18661-1 to glibc,
so will be followed by corresponding stdc-predef.h changes to define
__STDC_IEC_60559_BFP__ and __STDC_IEC_60559_COMPLEX__, as the support
for TS 18661-1 will be at a similar level to that for C standard
floating-point facilities up to C11 (pragmas not implemented, but
library functions done). (There are still further changes to be done
to implement changes to the types of fromfp functions from N2548.)
Tested as followed: natively with the full glibc testsuite for x86_64
(GCC 11, 7, 6) and x86 (GCC 11); with build-many-glibcs.py with GCC
11, 7 and 6; cross testing of math/ tests for powerpc64le, powerpc32
hard float, mips64 (all three ABIs, both hard and soft float). The
different GCC versions are to cover the different cases in tgmath.h
and tgmath.h tests properly (GCC 6 has _Float* only as typedefs in
glibc headers, GCC 7 has proper _Float* support, GCC 8 adds
__builtin_tgmath).
2021-09-22 21:25:31 +00:00
|
|
|
fma 0 0 max xfail-rounding:ibm128-libgcc missing-errno
|
2015-02-06 15:44:07 +00:00
|
|
|
fma 0 1 1
|
|
|
|
fma 1 0 1
|
|
|
|
fma 0 1 2
|
|
|
|
fma 1 0 2
|
Add narrowing fma functions
This patch adds the narrowing fused multiply-add functions from TS
18661-1 / TS 18661-3 / C2X to glibc's libm: ffma, ffmal, dfmal,
f32fmaf64, f32fmaf32x, f32xfmaf64 for all configurations; f32fmaf64x,
f32fmaf128, f64fmaf64x, f64fmaf128, f32xfmaf64x, f32xfmaf128,
f64xfmaf128 for configurations with _Float64x and _Float128;
__f32fmaieee128 and __f64fmaieee128 aliases in the powerpc64le case
(for calls to ffmal and dfmal when long double is IEEE binary128).
Corresponding tgmath.h macro support is also added.
The changes are mostly similar to those for the other narrowing
functions previously added, especially that for sqrt, so the
description of those generally applies to this patch as well. As with
sqrt, I reused the same test inputs in auto-libm-test-in as for
non-narrowing fma rather than adding extra or separate inputs for
narrowing fma. The tests in libm-test-narrow-fma.inc also follow
those for non-narrowing fma.
The non-narrowing fma has a known bug (bug 6801) that it does not set
errno on errors (overflow, underflow, Inf * 0, Inf - Inf). Rather
than fixing this or having narrowing fma check for errors when
non-narrowing does not (complicating the cases when narrowing fma can
otherwise be an alias for a non-narrowing function), this patch does
not attempt to check for errors from narrowing fma and set errno; the
CHECK_NARROW_FMA macro is still present, but as a placeholder that
does nothing, and this missing errno setting is considered to be
covered by the existing bug rather than needing a separate open bug.
missing-errno annotations are duly added to many of the
auto-libm-test-in test inputs for fma.
This completes adding all the new functions from TS 18661-1 to glibc,
so will be followed by corresponding stdc-predef.h changes to define
__STDC_IEC_60559_BFP__ and __STDC_IEC_60559_COMPLEX__, as the support
for TS 18661-1 will be at a similar level to that for C standard
floating-point facilities up to C11 (pragmas not implemented, but
library functions done). (There are still further changes to be done
to implement changes to the types of fromfp functions from N2548.)
Tested as followed: natively with the full glibc testsuite for x86_64
(GCC 11, 7, 6) and x86 (GCC 11); with build-many-glibcs.py with GCC
11, 7 and 6; cross testing of math/ tests for powerpc64le, powerpc32
hard float, mips64 (all three ABIs, both hard and soft float). The
different GCC versions are to cover the different cases in tgmath.h
and tgmath.h tests properly (GCC 6 has _Float* only as typedefs in
glibc headers, GCC 7 has proper _Float* support, GCC 8 adds
__builtin_tgmath).
2021-09-22 21:25:31 +00:00
|
|
|
fma 0 1 max xfail-rounding:ibm128-libgcc missing-errno
|
|
|
|
fma 1 0 max xfail-rounding:ibm128-libgcc missing-errno
|
2015-02-06 15:44:07 +00:00
|
|
|
|
Add narrowing fma functions
This patch adds the narrowing fused multiply-add functions from TS
18661-1 / TS 18661-3 / C2X to glibc's libm: ffma, ffmal, dfmal,
f32fmaf64, f32fmaf32x, f32xfmaf64 for all configurations; f32fmaf64x,
f32fmaf128, f64fmaf64x, f64fmaf128, f32xfmaf64x, f32xfmaf128,
f64xfmaf128 for configurations with _Float64x and _Float128;
__f32fmaieee128 and __f64fmaieee128 aliases in the powerpc64le case
(for calls to ffmal and dfmal when long double is IEEE binary128).
Corresponding tgmath.h macro support is also added.
The changes are mostly similar to those for the other narrowing
functions previously added, especially that for sqrt, so the
description of those generally applies to this patch as well. As with
sqrt, I reused the same test inputs in auto-libm-test-in as for
non-narrowing fma rather than adding extra or separate inputs for
narrowing fma. The tests in libm-test-narrow-fma.inc also follow
those for non-narrowing fma.
The non-narrowing fma has a known bug (bug 6801) that it does not set
errno on errors (overflow, underflow, Inf * 0, Inf - Inf). Rather
than fixing this or having narrowing fma check for errors when
non-narrowing does not (complicating the cases when narrowing fma can
otherwise be an alias for a non-narrowing function), this patch does
not attempt to check for errors from narrowing fma and set errno; the
CHECK_NARROW_FMA macro is still present, but as a placeholder that
does nothing, and this missing errno setting is considered to be
covered by the existing bug rather than needing a separate open bug.
missing-errno annotations are duly added to many of the
auto-libm-test-in test inputs for fma.
This completes adding all the new functions from TS 18661-1 to glibc,
so will be followed by corresponding stdc-predef.h changes to define
__STDC_IEC_60559_BFP__ and __STDC_IEC_60559_COMPLEX__, as the support
for TS 18661-1 will be at a similar level to that for C standard
floating-point facilities up to C11 (pragmas not implemented, but
library functions done). (There are still further changes to be done
to implement changes to the types of fromfp functions from N2548.)
Tested as followed: natively with the full glibc testsuite for x86_64
(GCC 11, 7, 6) and x86 (GCC 11); with build-many-glibcs.py with GCC
11, 7 and 6; cross testing of math/ tests for powerpc64le, powerpc32
hard float, mips64 (all three ABIs, both hard and soft float). The
different GCC versions are to cover the different cases in tgmath.h
and tgmath.h tests properly (GCC 6 has _Float* only as typedefs in
glibc headers, GCC 7 has proper _Float* support, GCC 8 adds
__builtin_tgmath).
2021-09-22 21:25:31 +00:00
|
|
|
# Bug 6801: errno setting may be missing. This applies to both plain
|
|
|
|
# and narrowing fma, and is only commented here once.
|
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 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
|
|
|
|
|
Implement proper fmal for ldbl-128ibm (bug 13304).
ldbl-128ibm had an implementation of fmal that just did (x * y) + z in
most cases, with no attempt at actually being a fused operation.
This patch replaces it with a genuine fused operation. It is not
necessarily correctly rounding, but should produce a result at least
as accurate as the long double arithmetic operations in libgcc, which
I think is all that can reasonably be expected for such a non-IEEE
format where arithmetic is approximate rather than rounded according
to any particular rule for determining the exact result. Like the
libgcc arithmetic, it may produce spurious overflow and underflow
results, and it falls back to the libgcc multiplication in the case of
(finite, finite, zero).
This concludes the fixes for bug 13304; any subsequently found fma
issues should go in separate Bugzilla bugs. Various other pieces of
bug 13304 were fixed in past releases over the past several years.
Tested for powerpc.
[BZ #13304]
* sysdeps/ieee754/ldbl-128ibm/s_fmal.c: Include <fenv.h>,
<float.h>, <math_private.h> and <stdlib.h>.
(add_split): New function.
(mul_split): Likewise.
(ext_val): New typedef.
(store_ext_val): New function.
(mul_ext_val): New function.
(compare): New function.
(add_split_ext): New function.
(__fmal): After checking for Inf, NaN and zero, compute result as
an exact sum of scaled double values in round-to-nearest before
adding those up and adjusting for other rounding modes.
* math/auto-libm-test-in: Remove xfail-rounding:ldbl-128ibm from
tests of fma.
* math/auto-libm-test-out: Regenerated.
2016-05-19 20:10:56 +00:00
|
|
|
fma max max min missing-errno
|
|
|
|
fma max max -min missing-errno
|
|
|
|
fma max -max min missing-errno
|
|
|
|
fma max -max -min missing-errno
|
|
|
|
fma -max max min missing-errno
|
|
|
|
fma -max max -min missing-errno
|
|
|
|
fma -max -max min missing-errno
|
|
|
|
fma -max -max -min missing-errno
|
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 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
|
Add narrowing fma functions
This patch adds the narrowing fused multiply-add functions from TS
18661-1 / TS 18661-3 / C2X to glibc's libm: ffma, ffmal, dfmal,
f32fmaf64, f32fmaf32x, f32xfmaf64 for all configurations; f32fmaf64x,
f32fmaf128, f64fmaf64x, f64fmaf128, f32xfmaf64x, f32xfmaf128,
f64xfmaf128 for configurations with _Float64x and _Float128;
__f32fmaieee128 and __f64fmaieee128 aliases in the powerpc64le case
(for calls to ffmal and dfmal when long double is IEEE binary128).
Corresponding tgmath.h macro support is also added.
The changes are mostly similar to those for the other narrowing
functions previously added, especially that for sqrt, so the
description of those generally applies to this patch as well. As with
sqrt, I reused the same test inputs in auto-libm-test-in as for
non-narrowing fma rather than adding extra or separate inputs for
narrowing fma. The tests in libm-test-narrow-fma.inc also follow
those for non-narrowing fma.
The non-narrowing fma has a known bug (bug 6801) that it does not set
errno on errors (overflow, underflow, Inf * 0, Inf - Inf). Rather
than fixing this or having narrowing fma check for errors when
non-narrowing does not (complicating the cases when narrowing fma can
otherwise be an alias for a non-narrowing function), this patch does
not attempt to check for errors from narrowing fma and set errno; the
CHECK_NARROW_FMA macro is still present, but as a placeholder that
does nothing, and this missing errno setting is considered to be
covered by the existing bug rather than needing a separate open bug.
missing-errno annotations are duly added to many of the
auto-libm-test-in test inputs for fma.
This completes adding all the new functions from TS 18661-1 to glibc,
so will be followed by corresponding stdc-predef.h changes to define
__STDC_IEC_60559_BFP__ and __STDC_IEC_60559_COMPLEX__, as the support
for TS 18661-1 will be at a similar level to that for C standard
floating-point facilities up to C11 (pragmas not implemented, but
library functions done). (There are still further changes to be done
to implement changes to the types of fromfp functions from N2548.)
Tested as followed: natively with the full glibc testsuite for x86_64
(GCC 11, 7, 6) and x86 (GCC 11); with build-many-glibcs.py with GCC
11, 7 and 6; cross testing of math/ tests for powerpc64le, powerpc32
hard float, mips64 (all three ABIs, both hard and soft float). The
different GCC versions are to cover the different cases in tgmath.h
and tgmath.h tests properly (GCC 6 has _Float* only as typedefs in
glibc headers, GCC 7 has proper _Float* support, GCC 8 adds
__builtin_tgmath).
2021-09-22 21:25:31 +00:00
|
|
|
fma 0x1p-149 -0x1p-149 0x1p-126 missing-underflow:arg-ibm128
|
|
|
|
fma 0x1p-149 0x1p-149 -0x1p-126 missing-underflow:arg-ibm128
|
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 0x1p-149 -0x1p-149 -0x1p-126
|
Add narrowing fma functions
This patch adds the narrowing fused multiply-add functions from TS
18661-1 / TS 18661-3 / C2X to glibc's libm: ffma, ffmal, dfmal,
f32fmaf64, f32fmaf32x, f32xfmaf64 for all configurations; f32fmaf64x,
f32fmaf128, f64fmaf64x, f64fmaf128, f32xfmaf64x, f32xfmaf128,
f64xfmaf128 for configurations with _Float64x and _Float128;
__f32fmaieee128 and __f64fmaieee128 aliases in the powerpc64le case
(for calls to ffmal and dfmal when long double is IEEE binary128).
Corresponding tgmath.h macro support is also added.
The changes are mostly similar to those for the other narrowing
functions previously added, especially that for sqrt, so the
description of those generally applies to this patch as well. As with
sqrt, I reused the same test inputs in auto-libm-test-in as for
non-narrowing fma rather than adding extra or separate inputs for
narrowing fma. The tests in libm-test-narrow-fma.inc also follow
those for non-narrowing fma.
The non-narrowing fma has a known bug (bug 6801) that it does not set
errno on errors (overflow, underflow, Inf * 0, Inf - Inf). Rather
than fixing this or having narrowing fma check for errors when
non-narrowing does not (complicating the cases when narrowing fma can
otherwise be an alias for a non-narrowing function), this patch does
not attempt to check for errors from narrowing fma and set errno; the
CHECK_NARROW_FMA macro is still present, but as a placeholder that
does nothing, and this missing errno setting is considered to be
covered by the existing bug rather than needing a separate open bug.
missing-errno annotations are duly added to many of the
auto-libm-test-in test inputs for fma.
This completes adding all the new functions from TS 18661-1 to glibc,
so will be followed by corresponding stdc-predef.h changes to define
__STDC_IEC_60559_BFP__ and __STDC_IEC_60559_COMPLEX__, as the support
for TS 18661-1 will be at a similar level to that for C standard
floating-point facilities up to C11 (pragmas not implemented, but
library functions done). (There are still further changes to be done
to implement changes to the types of fromfp functions from N2548.)
Tested as followed: natively with the full glibc testsuite for x86_64
(GCC 11, 7, 6) and x86 (GCC 11); with build-many-glibcs.py with GCC
11, 7 and 6; cross testing of math/ tests for powerpc64le, powerpc32
hard float, mips64 (all three ABIs, both hard and soft float). The
different GCC versions are to cover the different cases in tgmath.h
and tgmath.h tests properly (GCC 6 has _Float* only as typedefs in
glibc headers, GCC 7 has proper _Float* support, GCC 8 adds
__builtin_tgmath).
2021-09-22 21:25:31 +00:00
|
|
|
fma 0x1p-149 0x1p-149 0x0.fffffep-126 missing-underflow:arg-ibm128
|
|
|
|
fma 0x1p-149 -0x1p-149 0x0.fffffep-126 missing-underflow:arg-ibm128
|
|
|
|
fma 0x1p-149 0x1p-149 -0x0.fffffep-126 missing-underflow:arg-ibm128
|
|
|
|
fma 0x1p-149 -0x1p-149 -0x0.fffffep-126 missing-underflow:arg-ibm128
|
|
|
|
fma 0x1p-149 0x1p-149 0x1p-149 missing-underflow:arg-ibm128
|
|
|
|
fma 0x1p-149 -0x1p-149 0x1p-149 missing-errno missing-underflow:arg-ibm128
|
|
|
|
fma 0x1p-149 0x1p-149 -0x1p-149 missing-errno missing-underflow:arg-ibm128
|
|
|
|
fma 0x1p-149 -0x1p-149 -0x1p-149 missing-underflow:arg-ibm128
|
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 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
|
Add narrowing fma functions
This patch adds the narrowing fused multiply-add functions from TS
18661-1 / TS 18661-3 / C2X to glibc's libm: ffma, ffmal, dfmal,
f32fmaf64, f32fmaf32x, f32xfmaf64 for all configurations; f32fmaf64x,
f32fmaf128, f64fmaf64x, f64fmaf128, f32xfmaf64x, f32xfmaf128,
f64xfmaf128 for configurations with _Float64x and _Float128;
__f32fmaieee128 and __f64fmaieee128 aliases in the powerpc64le case
(for calls to ffmal and dfmal when long double is IEEE binary128).
Corresponding tgmath.h macro support is also added.
The changes are mostly similar to those for the other narrowing
functions previously added, especially that for sqrt, so the
description of those generally applies to this patch as well. As with
sqrt, I reused the same test inputs in auto-libm-test-in as for
non-narrowing fma rather than adding extra or separate inputs for
narrowing fma. The tests in libm-test-narrow-fma.inc also follow
those for non-narrowing fma.
The non-narrowing fma has a known bug (bug 6801) that it does not set
errno on errors (overflow, underflow, Inf * 0, Inf - Inf). Rather
than fixing this or having narrowing fma check for errors when
non-narrowing does not (complicating the cases when narrowing fma can
otherwise be an alias for a non-narrowing function), this patch does
not attempt to check for errors from narrowing fma and set errno; the
CHECK_NARROW_FMA macro is still present, but as a placeholder that
does nothing, and this missing errno setting is considered to be
covered by the existing bug rather than needing a separate open bug.
missing-errno annotations are duly added to many of the
auto-libm-test-in test inputs for fma.
This completes adding all the new functions from TS 18661-1 to glibc,
so will be followed by corresponding stdc-predef.h changes to define
__STDC_IEC_60559_BFP__ and __STDC_IEC_60559_COMPLEX__, as the support
for TS 18661-1 will be at a similar level to that for C standard
floating-point facilities up to C11 (pragmas not implemented, but
library functions done). (There are still further changes to be done
to implement changes to the types of fromfp functions from N2548.)
Tested as followed: natively with the full glibc testsuite for x86_64
(GCC 11, 7, 6) and x86 (GCC 11); with build-many-glibcs.py with GCC
11, 7 and 6; cross testing of math/ tests for powerpc64le, powerpc32
hard float, mips64 (all three ABIs, both hard and soft float). The
different GCC versions are to cover the different cases in tgmath.h
and tgmath.h tests properly (GCC 6 has _Float* only as typedefs in
glibc headers, GCC 7 has proper _Float* support, GCC 8 adds
__builtin_tgmath).
2021-09-22 21:25:31 +00:00
|
|
|
fma 0x1.deadbeef2feedp+900 0x0.deadbeef2feedp-1022 -0x1.a05f8c01a4bfbp-122 missing-errno
|
|
|
|
fma 0x1.fffffffffffffp+1023 0x1.001p+0 -0x1.fffffffffffffp+1023 missing-errno
|
|
|
|
fma -0x1.fffffffffffffp+1023 0x1.fffffffffffffp+0 0x1.fffffffffffffp+1023 missing-errno
|
|
|
|
fma 0x1.fffffffffffffp+1023 2.0 -0x1.fffffffffffffp+1023 missing-errno
|
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 0x1.6a09e667f3bccp-538 0x1.6a09e667f3bccp-538 0.0 missing-errno
|
Add narrowing fma functions
This patch adds the narrowing fused multiply-add functions from TS
18661-1 / TS 18661-3 / C2X to glibc's libm: ffma, ffmal, dfmal,
f32fmaf64, f32fmaf32x, f32xfmaf64 for all configurations; f32fmaf64x,
f32fmaf128, f64fmaf64x, f64fmaf128, f32xfmaf64x, f32xfmaf128,
f64xfmaf128 for configurations with _Float64x and _Float128;
__f32fmaieee128 and __f64fmaieee128 aliases in the powerpc64le case
(for calls to ffmal and dfmal when long double is IEEE binary128).
Corresponding tgmath.h macro support is also added.
The changes are mostly similar to those for the other narrowing
functions previously added, especially that for sqrt, so the
description of those generally applies to this patch as well. As with
sqrt, I reused the same test inputs in auto-libm-test-in as for
non-narrowing fma rather than adding extra or separate inputs for
narrowing fma. The tests in libm-test-narrow-fma.inc also follow
those for non-narrowing fma.
The non-narrowing fma has a known bug (bug 6801) that it does not set
errno on errors (overflow, underflow, Inf * 0, Inf - Inf). Rather
than fixing this or having narrowing fma check for errors when
non-narrowing does not (complicating the cases when narrowing fma can
otherwise be an alias for a non-narrowing function), this patch does
not attempt to check for errors from narrowing fma and set errno; the
CHECK_NARROW_FMA macro is still present, but as a placeholder that
does nothing, and this missing errno setting is considered to be
covered by the existing bug rather than needing a separate open bug.
missing-errno annotations are duly added to many of the
auto-libm-test-in test inputs for fma.
This completes adding all the new functions from TS 18661-1 to glibc,
so will be followed by corresponding stdc-predef.h changes to define
__STDC_IEC_60559_BFP__ and __STDC_IEC_60559_COMPLEX__, as the support
for TS 18661-1 will be at a similar level to that for C standard
floating-point facilities up to C11 (pragmas not implemented, but
library functions done). (There are still further changes to be done
to implement changes to the types of fromfp functions from N2548.)
Tested as followed: natively with the full glibc testsuite for x86_64
(GCC 11, 7, 6) and x86 (GCC 11); with build-many-glibcs.py with GCC
11, 7 and 6; cross testing of math/ tests for powerpc64le, powerpc32
hard float, mips64 (all three ABIs, both hard and soft float). The
different GCC versions are to cover the different cases in tgmath.h
and tgmath.h tests properly (GCC 6 has _Float* only as typedefs in
glibc headers, GCC 7 has proper _Float* support, GCC 8 adds
__builtin_tgmath).
2021-09-22 21:25:31 +00:00
|
|
|
fma 0x1.deadbeef2feedp-495 0x1.deadbeef2feedp-495 -0x1.bf86a5786a574p-989 missing-errno
|
|
|
|
fma 0x1.deadbeef2feedp-503 0x1.deadbeef2feedp-503 -0x1.bf86a5786a574p-1005 missing-errno
|
|
|
|
fma 0x1p-537 0x1p-538 0x1p-1074 missing-errno
|
|
|
|
fma 0x1.7fffff8p-968 0x1p-106 0x0.000001p-1022 missing-errno
|
|
|
|
fma 0x1.4000004p-967 0x1p-106 0x0.000001p-1022 missing-errno
|
|
|
|
fma 0x1.4p-967 -0x1p-106 -0x0.000001p-1022 missing-errno
|
|
|
|
fma -0x1.19cab66d73e17p-959 0x1.c7108a8c5ff51p-107 -0x0.80b0ad65d9b64p-1022 missing-errno
|
|
|
|
fma -0x1.d2eaed6e8e9d3p-979 -0x1.4e066c62ac9ddp-63 -0x0.9245e6b003454p-1022 missing-errno
|
|
|
|
fma 0x1.153d650bb9f06p-907 0x1.2d01230d48407p-125 -0x0.b278d5acfc3cp-1022 missing-errno
|
|
|
|
fma -0x1.fffffffffffffp-711 0x1.fffffffffffffp-275 0x1.fffffe00007ffp-983 missing-errno
|
|
|
|
fma 0x1.4p-1022 0x1.0000000000002p-1 0x1p-1024 missing-errno
|
|
|
|
fma -0x1.4p-1022 0x1.0000000000002p-1 -0x1p-1024 missing-errno
|
|
|
|
fma 0x1.ffffffffffffcp-1022 0x1.0000000000001p-1 0x1p-1074 missing-errno
|
|
|
|
fma -0x1.ffffffffffffcp-1022 0x1.0000000000001p-1 -0x1p-1074 missing-errno
|
|
|
|
fma 0x1p-1074 0x1p-1 0x0.fffffffffffffp-1022 missing-errno
|
|
|
|
fma -0x1p-1074 0x1p-1 -0x0.fffffffffffffp-1022 missing-errno
|
|
|
|
fma 0x1p-1074 0x1.1p-1 0x0.fffffffffffffp-1022 missing-errno
|
|
|
|
fma -0x1p-1074 0x1.1p-1 -0x0.fffffffffffffp-1022 missing-errno
|
|
|
|
fma 0x1p-1074 0x1p-1074 0x1p1023 missing-errno
|
|
|
|
fma 0x1p-1074 -0x1p-1074 0x1p1023 missing-errno
|
|
|
|
fma 0x1p-1074 0x1p-1074 -0x1p1023 missing-errno
|
|
|
|
fma 0x1p-1074 -0x1p-1074 -0x1p1023 missing-errno
|
|
|
|
fma 0x1p-1074 0x1p-1074 0x1p-1022 missing-errno
|
|
|
|
fma 0x1p-1074 -0x1p-1074 0x1p-1022 missing-errno
|
|
|
|
fma 0x1p-1074 0x1p-1074 -0x1p-1022 missing-errno
|
|
|
|
fma 0x1p-1074 -0x1p-1074 -0x1p-1022 missing-errno
|
|
|
|
fma 0x1p-1074 0x1p-1074 0x0.fffffffffffffp-1022 missing-errno
|
|
|
|
fma 0x1p-1074 -0x1p-1074 0x0.fffffffffffffp-1022 missing-errno
|
|
|
|
fma 0x1p-1074 0x1p-1074 -0x0.fffffffffffffp-1022 missing-errno
|
|
|
|
fma 0x1p-1074 -0x1p-1074 -0x0.fffffffffffffp-1022 missing-errno
|
|
|
|
fma 0x1p-1074 0x1p-1074 0x1p-1074 missing-errno
|
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 0x1p-1074 -0x1p-1074 0x1p-1074 missing-errno
|
|
|
|
fma 0x1p-1074 0x1p-1074 -0x1p-1074 missing-errno
|
Add narrowing fma functions
This patch adds the narrowing fused multiply-add functions from TS
18661-1 / TS 18661-3 / C2X to glibc's libm: ffma, ffmal, dfmal,
f32fmaf64, f32fmaf32x, f32xfmaf64 for all configurations; f32fmaf64x,
f32fmaf128, f64fmaf64x, f64fmaf128, f32xfmaf64x, f32xfmaf128,
f64xfmaf128 for configurations with _Float64x and _Float128;
__f32fmaieee128 and __f64fmaieee128 aliases in the powerpc64le case
(for calls to ffmal and dfmal when long double is IEEE binary128).
Corresponding tgmath.h macro support is also added.
The changes are mostly similar to those for the other narrowing
functions previously added, especially that for sqrt, so the
description of those generally applies to this patch as well. As with
sqrt, I reused the same test inputs in auto-libm-test-in as for
non-narrowing fma rather than adding extra or separate inputs for
narrowing fma. The tests in libm-test-narrow-fma.inc also follow
those for non-narrowing fma.
The non-narrowing fma has a known bug (bug 6801) that it does not set
errno on errors (overflow, underflow, Inf * 0, Inf - Inf). Rather
than fixing this or having narrowing fma check for errors when
non-narrowing does not (complicating the cases when narrowing fma can
otherwise be an alias for a non-narrowing function), this patch does
not attempt to check for errors from narrowing fma and set errno; the
CHECK_NARROW_FMA macro is still present, but as a placeholder that
does nothing, and this missing errno setting is considered to be
covered by the existing bug rather than needing a separate open bug.
missing-errno annotations are duly added to many of the
auto-libm-test-in test inputs for fma.
This completes adding all the new functions from TS 18661-1 to glibc,
so will be followed by corresponding stdc-predef.h changes to define
__STDC_IEC_60559_BFP__ and __STDC_IEC_60559_COMPLEX__, as the support
for TS 18661-1 will be at a similar level to that for C standard
floating-point facilities up to C11 (pragmas not implemented, but
library functions done). (There are still further changes to be done
to implement changes to the types of fromfp functions from N2548.)
Tested as followed: natively with the full glibc testsuite for x86_64
(GCC 11, 7, 6) and x86 (GCC 11); with build-many-glibcs.py with GCC
11, 7 and 6; cross testing of math/ tests for powerpc64le, powerpc32
hard float, mips64 (all three ABIs, both hard and soft float). The
different GCC versions are to cover the different cases in tgmath.h
and tgmath.h tests properly (GCC 6 has _Float* only as typedefs in
glibc headers, GCC 7 has proper _Float* support, GCC 8 adds
__builtin_tgmath).
2021-09-22 21:25:31 +00:00
|
|
|
fma 0x1p-1074 -0x1p-1074 -0x1p-1074 missing-errno
|
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 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
|
Add narrowing fma functions
This patch adds the narrowing fused multiply-add functions from TS
18661-1 / TS 18661-3 / C2X to glibc's libm: ffma, ffmal, dfmal,
f32fmaf64, f32fmaf32x, f32xfmaf64 for all configurations; f32fmaf64x,
f32fmaf128, f64fmaf64x, f64fmaf128, f32xfmaf64x, f32xfmaf128,
f64xfmaf128 for configurations with _Float64x and _Float128;
__f32fmaieee128 and __f64fmaieee128 aliases in the powerpc64le case
(for calls to ffmal and dfmal when long double is IEEE binary128).
Corresponding tgmath.h macro support is also added.
The changes are mostly similar to those for the other narrowing
functions previously added, especially that for sqrt, so the
description of those generally applies to this patch as well. As with
sqrt, I reused the same test inputs in auto-libm-test-in as for
non-narrowing fma rather than adding extra or separate inputs for
narrowing fma. The tests in libm-test-narrow-fma.inc also follow
those for non-narrowing fma.
The non-narrowing fma has a known bug (bug 6801) that it does not set
errno on errors (overflow, underflow, Inf * 0, Inf - Inf). Rather
than fixing this or having narrowing fma check for errors when
non-narrowing does not (complicating the cases when narrowing fma can
otherwise be an alias for a non-narrowing function), this patch does
not attempt to check for errors from narrowing fma and set errno; the
CHECK_NARROW_FMA macro is still present, but as a placeholder that
does nothing, and this missing errno setting is considered to be
covered by the existing bug rather than needing a separate open bug.
missing-errno annotations are duly added to many of the
auto-libm-test-in test inputs for fma.
This completes adding all the new functions from TS 18661-1 to glibc,
so will be followed by corresponding stdc-predef.h changes to define
__STDC_IEC_60559_BFP__ and __STDC_IEC_60559_COMPLEX__, as the support
for TS 18661-1 will be at a similar level to that for C standard
floating-point facilities up to C11 (pragmas not implemented, but
library functions done). (There are still further changes to be done
to implement changes to the types of fromfp functions from N2548.)
Tested as followed: natively with the full glibc testsuite for x86_64
(GCC 11, 7, 6) and x86 (GCC 11); with build-many-glibcs.py with GCC
11, 7 and 6; cross testing of math/ tests for powerpc64le, powerpc32
hard float, mips64 (all three ABIs, both hard and soft float). The
different GCC versions are to cover the different cases in tgmath.h
and tgmath.h tests properly (GCC 6 has _Float* only as typedefs in
glibc headers, GCC 7 has proper _Float* support, GCC 8 adds
__builtin_tgmath).
2021-09-22 21:25:31 +00:00
|
|
|
fma 0x1.0000000000001p-1022 0x1.0000000000001p-55 0x1p1023 missing-errno
|
|
|
|
fma 0x1.0000000000001p-1022 -0x1.0000000000001p-55 0x1p1023 missing-errno
|
|
|
|
fma 0x1.0000000000001p-1022 0x1.0000000000001p-55 -0x1p1023 missing-errno
|
|
|
|
fma 0x1.0000000000001p-1022 -0x1.0000000000001p-55 -0x1p1023 missing-errno
|
|
|
|
fma 0x1.0000000000001p-1022 0x1.0000000000001p-55 0x1p970 missing-errno
|
|
|
|
fma 0x1.0000000000001p-1022 -0x1.0000000000001p-55 0x1p970 missing-errno
|
|
|
|
fma 0x1.0000000000001p-1022 0x1.0000000000001p-55 -0x1p970 missing-errno
|
|
|
|
fma 0x1.0000000000001p-1022 -0x1.0000000000001p-55 -0x1p970 missing-errno
|
|
|
|
|
|
|
|
fma -0x8.03fcp+3696 0xf.fffffffffffffffp-6140 0x8.3ffffffffffffffp-2450 missing-errno
|
|
|
|
fma 0x9.fcp+2033 -0x8.000e1f000ff800fp-3613 -0xf.fffffffffffc0ffp-1579 missing-errno
|
|
|
|
fma 0xc.7fc000003ffffffp-1194 0x8.1e0003fffffffffp+15327 -0x8.fffep+14072 missing-errno
|
|
|
|
fma -0x8.0001fc000000003p+1798 0xcp-2230 0x8.f7e000000000007p-468 missing-errno
|
|
|
|
fma 0xc.0000000000007ffp+10130 -0x8.000000000000001p+4430 0xc.07000000001ffffp+14513 missing-errno
|
|
|
|
fma 0xb.ffffp-4777 0x8.000000fffffffffp-11612 -0x0.3800fff8p-16385 missing-errno
|
|
|
|
fma 0x1.4p-16382 0x1.0000000000000004p-1 0x1p-16384 missing-errno
|
|
|
|
fma -0x1.4p-16382 0x1.0000000000000004p-1 -0x1p-16384 missing-errno
|
|
|
|
fma 0x1.fffffffffffffff8p-16382 0x1.0000000000000002p-1 0x1p-16445 missing-errno
|
|
|
|
fma -0x1.fffffffffffffff8p-16382 0x1.0000000000000002p-1 -0x1p-16445 missing-errno
|
|
|
|
fma 0x1p-16445 0x1p-1 0x0.fffffffffffffffep-16382 missing-errno
|
|
|
|
fma -0x1p-16445 0x1p-1 -0x0.fffffffffffffffep-16382 missing-errno
|
|
|
|
fma 0x1p-16445 0x1.1p-1 0x0.fffffffffffffffep-16382 missing-errno
|
|
|
|
fma -0x1p-16445 0x1.1p-1 -0x0.fffffffffffffffep-16382 missing-errno
|
|
|
|
fma 0x1p-16445 0x1p-16445 0x1p16383 missing-errno
|
|
|
|
fma 0x1p-16445 -0x1p-16445 0x1p16383 missing-errno
|
|
|
|
fma 0x1p-16445 0x1p-16445 -0x1p16383 missing-errno
|
|
|
|
fma 0x1p-16445 -0x1p-16445 -0x1p16383 missing-errno
|
|
|
|
fma 0x1p-16445 0x1p-16445 0x1p-16382 missing-errno
|
|
|
|
fma 0x1p-16445 -0x1p-16445 0x1p-16382 missing-errno
|
|
|
|
fma 0x1p-16445 0x1p-16445 -0x1p-16382 missing-errno
|
|
|
|
fma 0x1p-16445 -0x1p-16445 -0x1p-16382 missing-errno
|
|
|
|
fma 0x1p-16445 0x1p-16445 0x0.fffffffffffffffep-16382 missing-errno
|
|
|
|
fma 0x1p-16445 -0x1p-16445 0x0.fffffffffffffffep-16382 missing-errno
|
|
|
|
fma 0x1p-16445 0x1p-16445 -0x0.fffffffffffffffep-16382 missing-errno
|
|
|
|
fma 0x1p-16445 -0x1p-16445 -0x0.fffffffffffffffep-16382 missing-errno
|
|
|
|
fma 0x1p-16445 0x1p-16445 0x1p-16445 missing-errno
|
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 0x1p-16445 -0x1p-16445 0x1p-16445 missing-errno
|
|
|
|
fma 0x1p-16445 0x1p-16445 -0x1p-16445 missing-errno
|
Add narrowing fma functions
This patch adds the narrowing fused multiply-add functions from TS
18661-1 / TS 18661-3 / C2X to glibc's libm: ffma, ffmal, dfmal,
f32fmaf64, f32fmaf32x, f32xfmaf64 for all configurations; f32fmaf64x,
f32fmaf128, f64fmaf64x, f64fmaf128, f32xfmaf64x, f32xfmaf128,
f64xfmaf128 for configurations with _Float64x and _Float128;
__f32fmaieee128 and __f64fmaieee128 aliases in the powerpc64le case
(for calls to ffmal and dfmal when long double is IEEE binary128).
Corresponding tgmath.h macro support is also added.
The changes are mostly similar to those for the other narrowing
functions previously added, especially that for sqrt, so the
description of those generally applies to this patch as well. As with
sqrt, I reused the same test inputs in auto-libm-test-in as for
non-narrowing fma rather than adding extra or separate inputs for
narrowing fma. The tests in libm-test-narrow-fma.inc also follow
those for non-narrowing fma.
The non-narrowing fma has a known bug (bug 6801) that it does not set
errno on errors (overflow, underflow, Inf * 0, Inf - Inf). Rather
than fixing this or having narrowing fma check for errors when
non-narrowing does not (complicating the cases when narrowing fma can
otherwise be an alias for a non-narrowing function), this patch does
not attempt to check for errors from narrowing fma and set errno; the
CHECK_NARROW_FMA macro is still present, but as a placeholder that
does nothing, and this missing errno setting is considered to be
covered by the existing bug rather than needing a separate open bug.
missing-errno annotations are duly added to many of the
auto-libm-test-in test inputs for fma.
This completes adding all the new functions from TS 18661-1 to glibc,
so will be followed by corresponding stdc-predef.h changes to define
__STDC_IEC_60559_BFP__ and __STDC_IEC_60559_COMPLEX__, as the support
for TS 18661-1 will be at a similar level to that for C standard
floating-point facilities up to C11 (pragmas not implemented, but
library functions done). (There are still further changes to be done
to implement changes to the types of fromfp functions from N2548.)
Tested as followed: natively with the full glibc testsuite for x86_64
(GCC 11, 7, 6) and x86 (GCC 11); with build-many-glibcs.py with GCC
11, 7 and 6; cross testing of math/ tests for powerpc64le, powerpc32
hard float, mips64 (all three ABIs, both hard and soft float). The
different GCC versions are to cover the different cases in tgmath.h
and tgmath.h tests properly (GCC 6 has _Float* only as typedefs in
glibc headers, GCC 7 has proper _Float* support, GCC 8 adds
__builtin_tgmath).
2021-09-22 21:25:31 +00:00
|
|
|
fma 0x1p-16445 -0x1p-16445 -0x1p-16445 missing-errno
|
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 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
|
Add narrowing fma functions
This patch adds the narrowing fused multiply-add functions from TS
18661-1 / TS 18661-3 / C2X to glibc's libm: ffma, ffmal, dfmal,
f32fmaf64, f32fmaf32x, f32xfmaf64 for all configurations; f32fmaf64x,
f32fmaf128, f64fmaf64x, f64fmaf128, f32xfmaf64x, f32xfmaf128,
f64xfmaf128 for configurations with _Float64x and _Float128;
__f32fmaieee128 and __f64fmaieee128 aliases in the powerpc64le case
(for calls to ffmal and dfmal when long double is IEEE binary128).
Corresponding tgmath.h macro support is also added.
The changes are mostly similar to those for the other narrowing
functions previously added, especially that for sqrt, so the
description of those generally applies to this patch as well. As with
sqrt, I reused the same test inputs in auto-libm-test-in as for
non-narrowing fma rather than adding extra or separate inputs for
narrowing fma. The tests in libm-test-narrow-fma.inc also follow
those for non-narrowing fma.
The non-narrowing fma has a known bug (bug 6801) that it does not set
errno on errors (overflow, underflow, Inf * 0, Inf - Inf). Rather
than fixing this or having narrowing fma check for errors when
non-narrowing does not (complicating the cases when narrowing fma can
otherwise be an alias for a non-narrowing function), this patch does
not attempt to check for errors from narrowing fma and set errno; the
CHECK_NARROW_FMA macro is still present, but as a placeholder that
does nothing, and this missing errno setting is considered to be
covered by the existing bug rather than needing a separate open bug.
missing-errno annotations are duly added to many of the
auto-libm-test-in test inputs for fma.
This completes adding all the new functions from TS 18661-1 to glibc,
so will be followed by corresponding stdc-predef.h changes to define
__STDC_IEC_60559_BFP__ and __STDC_IEC_60559_COMPLEX__, as the support
for TS 18661-1 will be at a similar level to that for C standard
floating-point facilities up to C11 (pragmas not implemented, but
library functions done). (There are still further changes to be done
to implement changes to the types of fromfp functions from N2548.)
Tested as followed: natively with the full glibc testsuite for x86_64
(GCC 11, 7, 6) and x86 (GCC 11); with build-many-glibcs.py with GCC
11, 7 and 6; cross testing of math/ tests for powerpc64le, powerpc32
hard float, mips64 (all three ABIs, both hard and soft float). The
different GCC versions are to cover the different cases in tgmath.h
and tgmath.h tests properly (GCC 6 has _Float* only as typedefs in
glibc headers, GCC 7 has proper _Float* support, GCC 8 adds
__builtin_tgmath).
2021-09-22 21:25:31 +00:00
|
|
|
fma 0x1.0000000000000002p-16382 0x1.0000000000000002p-66 0x1p16383 missing-errno
|
|
|
|
fma 0x1.0000000000000002p-16382 -0x1.0000000000000002p-66 0x1p16383 missing-errno
|
|
|
|
fma 0x1.0000000000000002p-16382 0x1.0000000000000002p-66 -0x1p16383 missing-errno
|
|
|
|
fma 0x1.0000000000000002p-16382 -0x1.0000000000000002p-66 -0x1p16383 missing-errno
|
|
|
|
fma 0x1.0000000000000002p-16382 0x1.0000000000000002p-66 0x1p16319 missing-errno
|
|
|
|
fma 0x1.0000000000000002p-16382 -0x1.0000000000000002p-66 0x1p16319 missing-errno
|
|
|
|
fma 0x1.0000000000000002p-16382 0x1.0000000000000002p-66 -0x1p16319 missing-errno
|
|
|
|
fma 0x1.0000000000000002p-16382 -0x1.0000000000000002p-66 -0x1p16319 missing-errno
|
|
|
|
|
|
|
|
fma 0x1.bb2de33e02ccbbfa6e245a7c1f71p-2584 -0x1.6b500daf0580d987f1bc0cadfcddp-13777 0x1.613cd91d9fed34b33820e5ab9d8dp-16378 missing-errno
|
|
|
|
fma -0x1.f949b880cacb0f0c61540105321dp-5954 -0x1.3876cec84b4140f3bd6198731b7ep-10525 -0x0.a5dc1c6cfbc498c54fb0b504bf19p-16382 missing-errno
|
|
|
|
fma -0x1.0000fffffffffp-16221 0x1.0000001fffff8007fep-239 0x0.ff87ffffffffffffe000003fffffp-16382 missing-errno
|
|
|
|
fma -0x1.ac79c9376ef447f3827c9e9de008p-2228 -0x1.5ba830022b6139e21fbe7270cad8p-6314 0x1.e8282b6a26bb6a9daf5c8e73e9f9p-8616 missing-errno
|
|
|
|
fma -0x1.c69749ec574caaa2ab8e97ddb9f3p+2652 0x1.f34235ff9d095449c29b4831b62dp+3311 0x1.fbe4302df23354dbd0c4d3cfe606p+5879 missing-errno
|
|
|
|
fma -0x1.ca8835fc6ecfb5398625fc891be5p-1686 0x1.621e1972bbe2180e5be9dd7d8df5p-7671 -0x1.7d2d21b73b52cf20dec2a83902a4p-9395 missing-errno
|
|
|
|
fma -0x1.55cff679ec49c2541fab41fc843ep-11819 0x1.e60e9f464f9e8df0509647c7c971p+12325 0x1.eaa2a7649d765c2f564f7a5beca7p+454 missing-errno
|
|
|
|
fma 0x1.f0e7b1454908576f2537d863cf9bp+11432 0x1.cdce52f09d4ca76e68706f34b5d5p-1417 -0x1.2e986187c70f146235ea2066e486p+9979 missing-errno
|
|
|
|
fma 0x1.f102f7da4a57a3a4aab620e29452p-3098 -0x1.cc06a4ff40248f9e2dcc4b6afd84p-11727 0x1.d512a11126b5ac8ed8973b8580c8p-14849 missing-errno
|
|
|
|
fma -0x1.fc47ac7434b993cd8dcb2b431f25p-3816 0x1.fbc9750da8468852d84558e1db6dp-5773 -0x1.00a98abf783f75c40fe5b7a37d86p-9607 missing-errno
|
|
|
|
fma 0x1.00000000000007ffffffffffffffp-9045 -0x1.ffffffffffff80000001ffffffffp+4773 -0x1.f8p-4316 missing-errno
|
|
|
|
fma 0x1.4e922764c90701d4a2f21d01893dp-8683 -0x1.955a12e2d7c9447c27fa022fc865p+212 -0x1.e9634462eaef96528b90b6944578p-8521 missing-errno
|
|
|
|
fma 0x1.801181509c03bdbef10d6165588cp-15131 0x1.ad86f8e57d3d40bfa8007780af63p-368 -0x1.6e9df0dab1c9f1d7a6043c390741p-15507 missing-errno
|
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 0x1.ffffffffffffffp0 0x1.000000000000008p0 -0x1p-1000
|
Add narrowing fma functions
This patch adds the narrowing fused multiply-add functions from TS
18661-1 / TS 18661-3 / C2X to glibc's libm: ffma, ffmal, dfmal,
f32fmaf64, f32fmaf32x, f32xfmaf64 for all configurations; f32fmaf64x,
f32fmaf128, f64fmaf64x, f64fmaf128, f32xfmaf64x, f32xfmaf128,
f64xfmaf128 for configurations with _Float64x and _Float128;
__f32fmaieee128 and __f64fmaieee128 aliases in the powerpc64le case
(for calls to ffmal and dfmal when long double is IEEE binary128).
Corresponding tgmath.h macro support is also added.
The changes are mostly similar to those for the other narrowing
functions previously added, especially that for sqrt, so the
description of those generally applies to this patch as well. As with
sqrt, I reused the same test inputs in auto-libm-test-in as for
non-narrowing fma rather than adding extra or separate inputs for
narrowing fma. The tests in libm-test-narrow-fma.inc also follow
those for non-narrowing fma.
The non-narrowing fma has a known bug (bug 6801) that it does not set
errno on errors (overflow, underflow, Inf * 0, Inf - Inf). Rather
than fixing this or having narrowing fma check for errors when
non-narrowing does not (complicating the cases when narrowing fma can
otherwise be an alias for a non-narrowing function), this patch does
not attempt to check for errors from narrowing fma and set errno; the
CHECK_NARROW_FMA macro is still present, but as a placeholder that
does nothing, and this missing errno setting is considered to be
covered by the existing bug rather than needing a separate open bug.
missing-errno annotations are duly added to many of the
auto-libm-test-in test inputs for fma.
This completes adding all the new functions from TS 18661-1 to glibc,
so will be followed by corresponding stdc-predef.h changes to define
__STDC_IEC_60559_BFP__ and __STDC_IEC_60559_COMPLEX__, as the support
for TS 18661-1 will be at a similar level to that for C standard
floating-point facilities up to C11 (pragmas not implemented, but
library functions done). (There are still further changes to be done
to implement changes to the types of fromfp functions from N2548.)
Tested as followed: natively with the full glibc testsuite for x86_64
(GCC 11, 7, 6) and x86 (GCC 11); with build-many-glibcs.py with GCC
11, 7 and 6; cross testing of math/ tests for powerpc64le, powerpc32
hard float, mips64 (all three ABIs, both hard and soft float). The
different GCC versions are to cover the different cases in tgmath.h
and tgmath.h tests properly (GCC 6 has _Float* only as typedefs in
glibc headers, GCC 7 has proper _Float* support, GCC 8 adds
__builtin_tgmath).
2021-09-22 21:25:31 +00:00
|
|
|
fma 0x1.4p-16382 0x1.0000000000000000000000000002p-1 0x1p-16384 missing-errno
|
|
|
|
fma -0x1.4p-16382 0x1.0000000000000000000000000002p-1 -0x1p-16384 missing-errno
|
|
|
|
fma 0x1.fffffffffffffffffffffffffffcp-16382 0x1.0000000000000000000000000001p-1 0x1p-16494 missing-errno
|
|
|
|
fma -0x1.fffffffffffffffffffffffffffcp-16382 0x1.0000000000000000000000000001p-1 -0x1p-16494 missing-errno
|
|
|
|
fma 0x1p-16494 0x1p-1 0x0.ffffffffffffffffffffffffffffp-16382 missing-errno
|
|
|
|
fma -0x1p-16494 0x1p-1 -0x0.ffffffffffffffffffffffffffffp-16382 missing-errno
|
|
|
|
fma 0x1p-16494 0x1.1p-1 0x0.ffffffffffffffffffffffffffffp-16382 missing-errno
|
|
|
|
fma -0x1p-16494 0x1.1p-1 -0x0.ffffffffffffffffffffffffffffp-16382 missing-errno
|
|
|
|
fma 0x1p-16494 0x1p-16494 0x1p16383 missing-errno
|
|
|
|
fma 0x1p-16494 -0x1p-16494 0x1p16383 missing-errno
|
|
|
|
fma 0x1p-16494 0x1p-16494 -0x1p16383 missing-errno
|
|
|
|
fma 0x1p-16494 -0x1p-16494 -0x1p16383 missing-errno
|
|
|
|
fma 0x1p-16494 0x1p-16494 0x1p-16382 missing-errno
|
|
|
|
fma 0x1p-16494 -0x1p-16494 0x1p-16382 missing-errno
|
|
|
|
fma 0x1p-16494 0x1p-16494 -0x1p-16382 missing-errno
|
|
|
|
fma 0x1p-16494 -0x1p-16494 -0x1p-16382 missing-errno
|
|
|
|
fma 0x1p-16494 0x1p-16494 0x0.ffffffffffffffffffffffffffffp-16382 missing-errno
|
|
|
|
fma 0x1p-16494 -0x1p-16494 0x0.ffffffffffffffffffffffffffffp-16382 missing-errno
|
|
|
|
fma 0x1p-16494 0x1p-16494 -0x0.ffffffffffffffffffffffffffffp-16382 missing-errno
|
|
|
|
fma 0x1p-16494 -0x1p-16494 -0x0.ffffffffffffffffffffffffffffp-16382 missing-errno
|
|
|
|
fma 0x1p-16494 0x1p-16494 0x1p-16494 missing-errno
|
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 0x1p-16494 -0x1p-16494 0x1p-16494 missing-errno
|
|
|
|
fma 0x1p-16494 0x1p-16494 -0x1p-16494 missing-errno
|
Add narrowing fma functions
This patch adds the narrowing fused multiply-add functions from TS
18661-1 / TS 18661-3 / C2X to glibc's libm: ffma, ffmal, dfmal,
f32fmaf64, f32fmaf32x, f32xfmaf64 for all configurations; f32fmaf64x,
f32fmaf128, f64fmaf64x, f64fmaf128, f32xfmaf64x, f32xfmaf128,
f64xfmaf128 for configurations with _Float64x and _Float128;
__f32fmaieee128 and __f64fmaieee128 aliases in the powerpc64le case
(for calls to ffmal and dfmal when long double is IEEE binary128).
Corresponding tgmath.h macro support is also added.
The changes are mostly similar to those for the other narrowing
functions previously added, especially that for sqrt, so the
description of those generally applies to this patch as well. As with
sqrt, I reused the same test inputs in auto-libm-test-in as for
non-narrowing fma rather than adding extra or separate inputs for
narrowing fma. The tests in libm-test-narrow-fma.inc also follow
those for non-narrowing fma.
The non-narrowing fma has a known bug (bug 6801) that it does not set
errno on errors (overflow, underflow, Inf * 0, Inf - Inf). Rather
than fixing this or having narrowing fma check for errors when
non-narrowing does not (complicating the cases when narrowing fma can
otherwise be an alias for a non-narrowing function), this patch does
not attempt to check for errors from narrowing fma and set errno; the
CHECK_NARROW_FMA macro is still present, but as a placeholder that
does nothing, and this missing errno setting is considered to be
covered by the existing bug rather than needing a separate open bug.
missing-errno annotations are duly added to many of the
auto-libm-test-in test inputs for fma.
This completes adding all the new functions from TS 18661-1 to glibc,
so will be followed by corresponding stdc-predef.h changes to define
__STDC_IEC_60559_BFP__ and __STDC_IEC_60559_COMPLEX__, as the support
for TS 18661-1 will be at a similar level to that for C standard
floating-point facilities up to C11 (pragmas not implemented, but
library functions done). (There are still further changes to be done
to implement changes to the types of fromfp functions from N2548.)
Tested as followed: natively with the full glibc testsuite for x86_64
(GCC 11, 7, 6) and x86 (GCC 11); with build-many-glibcs.py with GCC
11, 7 and 6; cross testing of math/ tests for powerpc64le, powerpc32
hard float, mips64 (all three ABIs, both hard and soft float). The
different GCC versions are to cover the different cases in tgmath.h
and tgmath.h tests properly (GCC 6 has _Float* only as typedefs in
glibc headers, GCC 7 has proper _Float* support, GCC 8 adds
__builtin_tgmath).
2021-09-22 21:25:31 +00:00
|
|
|
fma 0x1p-16494 -0x1p-16494 -0x1p-16494 missing-errno
|
|
|
|
fma 0x0.ffffffffffffffffffffffffffff8p0 0x0.ffffffffffffffffffffffffffff8p0 -0x0.ffffffffffffffffffffffffffffp0 missing-errno
|
|
|
|
fma 0x0.ffffffffffffffffffffffffffff8p0 -0x0.ffffffffffffffffffffffffffff8p0 0x0.ffffffffffffffffffffffffffffp0 missing-errno
|
|
|
|
fma -0x0.ffffffffffffffffffffffffffff8p0 0x0.ffffffffffffffffffffffffffff8p0 0x0.ffffffffffffffffffffffffffffp0 missing-errno
|
|
|
|
fma -0x0.ffffffffffffffffffffffffffff8p0 -0x0.ffffffffffffffffffffffffffff8p0 -0x0.ffffffffffffffffffffffffffffp0 missing-errno
|
|
|
|
fma 0x1.0000000000000000000000000001p-16382 0x1.0000000000000000000000000001p-66 0x1p16383 missing-errno
|
|
|
|
fma 0x1.0000000000000000000000000001p-16382 -0x1.0000000000000000000000000001p-66 0x1p16383 missing-errno
|
|
|
|
fma 0x1.0000000000000000000000000001p-16382 0x1.0000000000000000000000000001p-66 -0x1p16383 missing-errno
|
|
|
|
fma 0x1.0000000000000000000000000001p-16382 -0x1.0000000000000000000000000001p-66 -0x1p16383 missing-errno
|
|
|
|
fma 0x1.0000000000000000000000000001p-16382 0x1.0000000000000000000000000001p-66 0x1p16319 missing-errno
|
|
|
|
fma 0x1.0000000000000000000000000001p-16382 -0x1.0000000000000000000000000001p-66 0x1p16319 missing-errno
|
|
|
|
fma 0x1.0000000000000000000000000001p-16382 0x1.0000000000000000000000000001p-66 -0x1p16319 missing-errno
|
|
|
|
fma 0x1.0000000000000000000000000001p-16382 -0x1.0000000000000000000000000001p-66 -0x1p16319 missing-errno
|
|
|
|
|
|
|
|
fma 0x1.fffffep-126 0x1.fffffep25 0x1.fffffep127 missing-errno xfail-rounding:ibm128-libgcc
|
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
|
|
|
fma 0x1.fffffep-126 -0x1.fffffep25 0x1.fffffep127
|
|
|
|
fma 0x1.fffffep-126 0x1.fffffep25 -0x1.fffffep127
|
Add narrowing fma functions
This patch adds the narrowing fused multiply-add functions from TS
18661-1 / TS 18661-3 / C2X to glibc's libm: ffma, ffmal, dfmal,
f32fmaf64, f32fmaf32x, f32xfmaf64 for all configurations; f32fmaf64x,
f32fmaf128, f64fmaf64x, f64fmaf128, f32xfmaf64x, f32xfmaf128,
f64xfmaf128 for configurations with _Float64x and _Float128;
__f32fmaieee128 and __f64fmaieee128 aliases in the powerpc64le case
(for calls to ffmal and dfmal when long double is IEEE binary128).
Corresponding tgmath.h macro support is also added.
The changes are mostly similar to those for the other narrowing
functions previously added, especially that for sqrt, so the
description of those generally applies to this patch as well. As with
sqrt, I reused the same test inputs in auto-libm-test-in as for
non-narrowing fma rather than adding extra or separate inputs for
narrowing fma. The tests in libm-test-narrow-fma.inc also follow
those for non-narrowing fma.
The non-narrowing fma has a known bug (bug 6801) that it does not set
errno on errors (overflow, underflow, Inf * 0, Inf - Inf). Rather
than fixing this or having narrowing fma check for errors when
non-narrowing does not (complicating the cases when narrowing fma can
otherwise be an alias for a non-narrowing function), this patch does
not attempt to check for errors from narrowing fma and set errno; the
CHECK_NARROW_FMA macro is still present, but as a placeholder that
does nothing, and this missing errno setting is considered to be
covered by the existing bug rather than needing a separate open bug.
missing-errno annotations are duly added to many of the
auto-libm-test-in test inputs for fma.
This completes adding all the new functions from TS 18661-1 to glibc,
so will be followed by corresponding stdc-predef.h changes to define
__STDC_IEC_60559_BFP__ and __STDC_IEC_60559_COMPLEX__, as the support
for TS 18661-1 will be at a similar level to that for C standard
floating-point facilities up to C11 (pragmas not implemented, but
library functions done). (There are still further changes to be done
to implement changes to the types of fromfp functions from N2548.)
Tested as followed: natively with the full glibc testsuite for x86_64
(GCC 11, 7, 6) and x86 (GCC 11); with build-many-glibcs.py with GCC
11, 7 and 6; cross testing of math/ tests for powerpc64le, powerpc32
hard float, mips64 (all three ABIs, both hard and soft float). The
different GCC versions are to cover the different cases in tgmath.h
and tgmath.h tests properly (GCC 6 has _Float* only as typedefs in
glibc headers, GCC 7 has proper _Float* support, GCC 8 adds
__builtin_tgmath).
2021-09-22 21:25:31 +00:00
|
|
|
fma 0x1.fffffep-126 -0x1.fffffep25 -0x1.fffffep127 missing-errno xfail-rounding:ibm128-libgcc
|
|
|
|
fma 0x1.fffffffffffffp-1022 0x1.fffffffffffffp54 0x1.fffffffffffffp1023 missing-errno xfail-rounding:ibm128-libgcc
|
|
|
|
fma 0x1.fffffffffffffp-1022 -0x1.fffffffffffffp54 0x1.fffffffffffffp1023 missing-errno
|
|
|
|
fma 0x1.fffffffffffffp-1022 0x1.fffffffffffffp54 -0x1.fffffffffffffp1023 missing-errno
|
|
|
|
fma 0x1.fffffffffffffp-1022 -0x1.fffffffffffffp54 -0x1.fffffffffffffp1023 missing-errno xfail-rounding:ibm128-libgcc
|
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
|
|
|
fma 0x1.fffffffffffffffep-16382 0x1.fffffffffffffffep65 0x1.fffffffffffffffep16383 missing-errno
|
Add narrowing fma functions
This patch adds the narrowing fused multiply-add functions from TS
18661-1 / TS 18661-3 / C2X to glibc's libm: ffma, ffmal, dfmal,
f32fmaf64, f32fmaf32x, f32xfmaf64 for all configurations; f32fmaf64x,
f32fmaf128, f64fmaf64x, f64fmaf128, f32xfmaf64x, f32xfmaf128,
f64xfmaf128 for configurations with _Float64x and _Float128;
__f32fmaieee128 and __f64fmaieee128 aliases in the powerpc64le case
(for calls to ffmal and dfmal when long double is IEEE binary128).
Corresponding tgmath.h macro support is also added.
The changes are mostly similar to those for the other narrowing
functions previously added, especially that for sqrt, so the
description of those generally applies to this patch as well. As with
sqrt, I reused the same test inputs in auto-libm-test-in as for
non-narrowing fma rather than adding extra or separate inputs for
narrowing fma. The tests in libm-test-narrow-fma.inc also follow
those for non-narrowing fma.
The non-narrowing fma has a known bug (bug 6801) that it does not set
errno on errors (overflow, underflow, Inf * 0, Inf - Inf). Rather
than fixing this or having narrowing fma check for errors when
non-narrowing does not (complicating the cases when narrowing fma can
otherwise be an alias for a non-narrowing function), this patch does
not attempt to check for errors from narrowing fma and set errno; the
CHECK_NARROW_FMA macro is still present, but as a placeholder that
does nothing, and this missing errno setting is considered to be
covered by the existing bug rather than needing a separate open bug.
missing-errno annotations are duly added to many of the
auto-libm-test-in test inputs for fma.
This completes adding all the new functions from TS 18661-1 to glibc,
so will be followed by corresponding stdc-predef.h changes to define
__STDC_IEC_60559_BFP__ and __STDC_IEC_60559_COMPLEX__, as the support
for TS 18661-1 will be at a similar level to that for C standard
floating-point facilities up to C11 (pragmas not implemented, but
library functions done). (There are still further changes to be done
to implement changes to the types of fromfp functions from N2548.)
Tested as followed: natively with the full glibc testsuite for x86_64
(GCC 11, 7, 6) and x86 (GCC 11); with build-many-glibcs.py with GCC
11, 7 and 6; cross testing of math/ tests for powerpc64le, powerpc32
hard float, mips64 (all three ABIs, both hard and soft float). The
different GCC versions are to cover the different cases in tgmath.h
and tgmath.h tests properly (GCC 6 has _Float* only as typedefs in
glibc headers, GCC 7 has proper _Float* support, GCC 8 adds
__builtin_tgmath).
2021-09-22 21:25:31 +00:00
|
|
|
fma 0x1.fffffffffffffffep-16382 -0x1.fffffffffffffffep65 0x1.fffffffffffffffep16383 missing-errno
|
|
|
|
fma 0x1.fffffffffffffffep-16382 0x1.fffffffffffffffep65 -0x1.fffffffffffffffep16383 missing-errno
|
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
|
|
|
fma 0x1.fffffffffffffffep-16382 -0x1.fffffffffffffffep65 -0x1.fffffffffffffffep16383 missing-errno
|
|
|
|
fma 0x1.ffffffffffffffffffffffffffffp-16382 0x1.ffffffffffffffffffffffffffffp114 0x1.ffffffffffffffffffffffffffffp16383 missing-errno
|
Add narrowing fma functions
This patch adds the narrowing fused multiply-add functions from TS
18661-1 / TS 18661-3 / C2X to glibc's libm: ffma, ffmal, dfmal,
f32fmaf64, f32fmaf32x, f32xfmaf64 for all configurations; f32fmaf64x,
f32fmaf128, f64fmaf64x, f64fmaf128, f32xfmaf64x, f32xfmaf128,
f64xfmaf128 for configurations with _Float64x and _Float128;
__f32fmaieee128 and __f64fmaieee128 aliases in the powerpc64le case
(for calls to ffmal and dfmal when long double is IEEE binary128).
Corresponding tgmath.h macro support is also added.
The changes are mostly similar to those for the other narrowing
functions previously added, especially that for sqrt, so the
description of those generally applies to this patch as well. As with
sqrt, I reused the same test inputs in auto-libm-test-in as for
non-narrowing fma rather than adding extra or separate inputs for
narrowing fma. The tests in libm-test-narrow-fma.inc also follow
those for non-narrowing fma.
The non-narrowing fma has a known bug (bug 6801) that it does not set
errno on errors (overflow, underflow, Inf * 0, Inf - Inf). Rather
than fixing this or having narrowing fma check for errors when
non-narrowing does not (complicating the cases when narrowing fma can
otherwise be an alias for a non-narrowing function), this patch does
not attempt to check for errors from narrowing fma and set errno; the
CHECK_NARROW_FMA macro is still present, but as a placeholder that
does nothing, and this missing errno setting is considered to be
covered by the existing bug rather than needing a separate open bug.
missing-errno annotations are duly added to many of the
auto-libm-test-in test inputs for fma.
This completes adding all the new functions from TS 18661-1 to glibc,
so will be followed by corresponding stdc-predef.h changes to define
__STDC_IEC_60559_BFP__ and __STDC_IEC_60559_COMPLEX__, as the support
for TS 18661-1 will be at a similar level to that for C standard
floating-point facilities up to C11 (pragmas not implemented, but
library functions done). (There are still further changes to be done
to implement changes to the types of fromfp functions from N2548.)
Tested as followed: natively with the full glibc testsuite for x86_64
(GCC 11, 7, 6) and x86 (GCC 11); with build-many-glibcs.py with GCC
11, 7 and 6; cross testing of math/ tests for powerpc64le, powerpc32
hard float, mips64 (all three ABIs, both hard and soft float). The
different GCC versions are to cover the different cases in tgmath.h
and tgmath.h tests properly (GCC 6 has _Float* only as typedefs in
glibc headers, GCC 7 has proper _Float* support, GCC 8 adds
__builtin_tgmath).
2021-09-22 21:25:31 +00:00
|
|
|
fma 0x1.ffffffffffffffffffffffffffffp-16382 -0x1.ffffffffffffffffffffffffffffp114 0x1.ffffffffffffffffffffffffffffp16383 missing-errno
|
|
|
|
fma 0x1.ffffffffffffffffffffffffffffp-16382 0x1.ffffffffffffffffffffffffffffp114 -0x1.ffffffffffffffffffffffffffffp16383 missing-errno
|
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
|
|
|
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
|
2020-03-17 18:46:29 +00:00
|
|
|
hypot 0x3p125 0x4p125
|
|
|
|
hypot 0x1.234566p-126 0x1.234566p-126
|
|
|
|
hypot 0x3p1021 0x4p1021
|
|
|
|
hypot 0x1p+0 0x0.3ep-1022
|
|
|
|
hypot 0x3p16381 0x4p16381
|
2013-12-16 21:18:07 +00:00
|
|
|
hypot 0x1p-149 0x1p-149
|
|
|
|
hypot 0x1p-1074 0x1p-1074
|
2020-03-17 18:46:29 +00:00
|
|
|
hypot 0x1p-16445 0x1p-16445
|
|
|
|
hypot 0x1p-16494 0x1p-16494
|
2013-12-17 13:42:13 +00:00
|
|
|
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
|
2020-03-17 18:46:29 +00:00
|
|
|
hypot 0x0.ffffffp-16382 0x0.fp-16383
|
|
|
|
hypot 0x0.ffffffp-16382 0x0.fp-16386
|
|
|
|
hypot 0 min
|
|
|
|
hypot 0 min_subnorm
|
|
|
|
hypot 0 -min
|
|
|
|
hypot 0 -min_subnorm
|
|
|
|
hypot min 0
|
|
|
|
hypot min_subnorm 0
|
|
|
|
hypot -min 0
|
|
|
|
hypot -min_subnorm 0
|
|
|
|
hypot min min
|
|
|
|
hypot min_subnorm min_subnorm
|
|
|
|
hypot min min_subnorm
|
Add more libm tests (fmod, fpclassify, frexp, hypot, ilogb, j0, j1, jn, log, log10, log2).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
2015-10-21 Joseph Myers <joseph@codesourcery.com>
* math/auto-libm-test-in: Add more tests of hypot, j0, j1, jn,
log, log10 and log2.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (fmod_test_data): Add more tests.
(fpclassify_test_data): Likewise.
(frexp_test_data): Likewise.
(hypot_test_data): Likewise.
(ilogb_test_data): Likewise.
2015-10-21 01:05:01 +00:00
|
|
|
hypot 0x1.fp127 0x1.fp127
|
2017-01-09 22:40:59 +00:00
|
|
|
hypot 0x1.fp1023 0x1.fp1023
|
2020-03-17 18:46:29 +00:00
|
|
|
hypot 0x1.fp16383 0x1.fp16383 xfail-rounding:ibm128-libgcc
|
2013-12-16 21:18:07 +00:00
|
|
|
|
Fix hypot missing underflows (bug 18803).
Similar to various other bugs in this area, hypot functions can fail
to raise the underflow exception when the result is tiny and inexact
but one or more low bits of the intermediate result that is scaled
down (or, in the i386 case, converted from a wider evaluation format)
are zero. This patch forces the exception in a similar way to
previous fixes.
Note that this issue cannot arise for implementations of hypotf using
double (or wider) for intermediate evaluation (if hypotf should
underflow, that means the double square root is being computed of some
number of the form N*2^-298, for 0 < N < 2^46, which is exactly
represented as a double, and whatever the rounding mode such a square
root cannot have a mantissa with all zeroes after the initial 23
bits). Thus no changes are made to hypotf implementations in this
patch, only to hypot and hypotl.
Tested for x86_64, x86, mips64 and powerpc.
[BZ #18803]
* sysdeps/i386/fpu/e_hypot.S: Use DEFINE_DBL_MIN.
(MO): New macro.
(__ieee754_hypot) [PIC]: Load PIC register.
(__ieee754_hypot): Use DBL_NARROW_EVAL_UFLOW_NONNEG instead of
DBL_NARROW_EVAL.
* sysdeps/ieee754/dbl-64/e_hypot.c (__ieee754_hypot): Use
math_check_force_underflow_nonneg in case where result might be
tiny.
* sysdeps/ieee754/ldbl-128/e_hypotl.c (__ieee754_hypotl):
Likewise.
* sysdeps/ieee754/ldbl-128ibm/e_hypotl.c (__ieee754_hypotl):
Likewise.
* sysdeps/ieee754/ldbl-96/e_hypotl.c (__ieee754_hypotl): Likewise.
* sysdeps/powerpc/fpu/e_hypot.c (__ieee754_hypot): Likewise.
* math/auto-libm-test-in: Add more tests of hypot.
* math/auto-libm-test-out: Regenerated.
2015-09-24 23:43:57 +00:00
|
|
|
hypot 0x1p-127 0x1p-149
|
|
|
|
hypot 0x1p-1023 0x1p-1074
|
|
|
|
hypot 0x1p-970 0x1p-1074
|
2020-03-17 18:46:29 +00:00
|
|
|
hypot 0x1p-16383 0x1p-16445
|
|
|
|
hypot 0x1p-16384 0x1p-16446
|
|
|
|
hypot 0x1p-16383 0x1p-16494
|
Fix hypot missing underflows (bug 18803).
Similar to various other bugs in this area, hypot functions can fail
to raise the underflow exception when the result is tiny and inexact
but one or more low bits of the intermediate result that is scaled
down (or, in the i386 case, converted from a wider evaluation format)
are zero. This patch forces the exception in a similar way to
previous fixes.
Note that this issue cannot arise for implementations of hypotf using
double (or wider) for intermediate evaluation (if hypotf should
underflow, that means the double square root is being computed of some
number of the form N*2^-298, for 0 < N < 2^46, which is exactly
represented as a double, and whatever the rounding mode such a square
root cannot have a mantissa with all zeroes after the initial 23
bits). Thus no changes are made to hypotf implementations in this
patch, only to hypot and hypotl.
Tested for x86_64, x86, mips64 and powerpc.
[BZ #18803]
* sysdeps/i386/fpu/e_hypot.S: Use DEFINE_DBL_MIN.
(MO): New macro.
(__ieee754_hypot) [PIC]: Load PIC register.
(__ieee754_hypot): Use DBL_NARROW_EVAL_UFLOW_NONNEG instead of
DBL_NARROW_EVAL.
* sysdeps/ieee754/dbl-64/e_hypot.c (__ieee754_hypot): Use
math_check_force_underflow_nonneg in case where result might be
tiny.
* sysdeps/ieee754/ldbl-128/e_hypotl.c (__ieee754_hypotl):
Likewise.
* sysdeps/ieee754/ldbl-128ibm/e_hypotl.c (__ieee754_hypotl):
Likewise.
* sysdeps/ieee754/ldbl-96/e_hypotl.c (__ieee754_hypotl): Likewise.
* sysdeps/powerpc/fpu/e_hypot.c (__ieee754_hypot): Likewise.
* math/auto-libm-test-in: Add more tests of hypot.
* math/auto-libm-test-out: Regenerated.
2015-09-24 23:43:57 +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
|
2023-02-12 07:01:18 +00:00
|
|
|
# the following inputs yield an error of 1 ulp on x86_64 in binary32
|
|
|
|
hypot -0x1.003222p-20 -0x1.6a2d58p-32
|
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
|
|
|
|
2013-12-03 16:22:49 +00:00
|
|
|
j0 -1.0
|
|
|
|
j0 0.0
|
Add more libm tests (fmod, fpclassify, frexp, hypot, ilogb, j0, j1, jn, log, log10, log2).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
2015-10-21 Joseph Myers <joseph@codesourcery.com>
* math/auto-libm-test-in: Add more tests of hypot, j0, j1, jn,
log, log10 and log2.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (fmod_test_data): Add more tests.
(fpclassify_test_data): Likewise.
(frexp_test_data): Likewise.
(hypot_test_data): Likewise.
(ilogb_test_data): Likewise.
2015-10-21 01:05:01 +00:00
|
|
|
j0 -0
|
|
|
|
j0 min
|
|
|
|
j0 -min
|
|
|
|
j0 min_subnorm
|
|
|
|
j0 -min_subnorm
|
|
|
|
j0 0x1p-5
|
|
|
|
j0 0x1p-10
|
|
|
|
j0 0x1p-15
|
|
|
|
j0 0x1p-20
|
|
|
|
j0 0x1p-25
|
|
|
|
j0 0x1p-30
|
|
|
|
j0 0x1p-35
|
|
|
|
j0 0x1p-40
|
|
|
|
j0 0x1p-45
|
|
|
|
j0 0x1p-50
|
|
|
|
j0 0x1p-55
|
|
|
|
j0 0x1p-60
|
|
|
|
j0 0x1p-100
|
|
|
|
j0 0x1p-600
|
|
|
|
j0 0x1p-10000
|
2013-12-03 16:22:49 +00:00
|
|
|
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
|
Fix the inaccuracy of j0f/j1f/y0f/y1f [BZ #14469, #14470, #14471, #14472]
For j0f/j1f/y0f/y1f, the largest error for all binary32
inputs is reduced to at most 9 ulps for all rounding modes.
The new code is enabled only when there is a cancellation at the very end of
the j0f/j1f/y0f/y1f computation, or for very large inputs, thus should not
give any visible slowdown on average. Two different algorithms are used:
* around the first 64 zeros of j0/j1/y0/y1, approximation polynomials of
degree 3 are used, computed using the Sollya tool (https://www.sollya.org/)
* for large inputs, an asymptotic formula from [1] is used
[1] Fast and Accurate Bessel Function Computation,
John Harrison, Proceedings of Arith 19, 2009.
Inputs yielding the new largest errors are added to auto-libm-test-in,
and ulps are regenerated for various targets (thanks Adhemerval Zanella).
Tested on x86_64 with --disable-multi-arch and on powerpc64le-linux-gnu.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2021-04-01 06:14:10 +00:00
|
|
|
# the next values yield large errors for binary32
|
|
|
|
# (cf BZ #27670 for the xfail entry)
|
2020-04-07 14:41:29 +00:00
|
|
|
j0 0x2.602774p+0 xfail-rounding:ibm128-libgcc
|
Fix the inaccuracy of j0f/j1f/y0f/y1f [BZ #14469, #14470, #14471, #14472]
For j0f/j1f/y0f/y1f, the largest error for all binary32
inputs is reduced to at most 9 ulps for all rounding modes.
The new code is enabled only when there is a cancellation at the very end of
the j0f/j1f/y0f/y1f computation, or for very large inputs, thus should not
give any visible slowdown on average. Two different algorithms are used:
* around the first 64 zeros of j0/j1/y0/y1, approximation polynomials of
degree 3 are used, computed using the Sollya tool (https://www.sollya.org/)
* for large inputs, an asymptotic formula from [1] is used
[1] Fast and Accurate Bessel Function Computation,
John Harrison, Proceedings of Arith 19, 2009.
Inputs yielding the new largest errors are added to auto-libm-test-in,
and ulps are regenerated for various targets (thanks Adhemerval Zanella).
Tested on x86_64 with --disable-multi-arch and on powerpc64le-linux-gnu.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2021-04-01 06:14:10 +00:00
|
|
|
j0 0x1.04c39cp+6
|
|
|
|
j0 0x1.4b7066p+7
|
2020-08-07 19:14:53 +00:00
|
|
|
# the next value exercises the flt-32 code path for x >= 2^127
|
|
|
|
j0 0x8.2f4ecp+124
|
2021-10-05 08:32:36 +00:00
|
|
|
# the next values gave an error > 9 ulps with glibc-2.34 (flt-32)
|
2021-10-06 13:47:52 +00:00
|
|
|
j0 0x1.31ec02p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.31e716p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.31f51ep+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.320226p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.31ed76p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.32083cp+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.32614ep+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.32dc02p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.32e304p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.32e00cp+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.32e504p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.32e12p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.32dc22p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.32dc24p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.32eb18p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.32fa0cp+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.335806p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.335a0cp+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.336p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.336c1cp+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.336336p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.33712ep+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.339506p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.33950cp+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.339d06p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.33b402p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.33b50ap+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.33c4p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.33c202p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.33c702p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.33c50ap+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.33c312p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.33c80ap+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.33cb04p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.33cfp+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.33d1p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.33d102p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.33d10cp+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.33d116p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.33d12cp+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.33d138p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.33d146p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.33d15p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
|
|
|
j0 0x1.33d152p+1 xfail:binary64 xfail:intel96 xfail:binary128 xfail:ibm128-libgcc
|
2013-12-03 16:22:49 +00:00
|
|
|
|
|
|
|
j1 -1.0
|
|
|
|
j1 0.0
|
Add more libm tests (fmod, fpclassify, frexp, hypot, ilogb, j0, j1, jn, log, log10, log2).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
2015-10-21 Joseph Myers <joseph@codesourcery.com>
* math/auto-libm-test-in: Add more tests of hypot, j0, j1, jn,
log, log10 and log2.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (fmod_test_data): Add more tests.
(fpclassify_test_data): Likewise.
(frexp_test_data): Likewise.
(hypot_test_data): Likewise.
(ilogb_test_data): Likewise.
2015-10-21 01:05:01 +00:00
|
|
|
j1 -0
|
2013-12-03 16:22:49 +00:00
|
|
|
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
|
Add more libm tests (fmod, fpclassify, frexp, hypot, ilogb, j0, j1, jn, log, log10, log2).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
2015-10-21 Joseph Myers <joseph@codesourcery.com>
* math/auto-libm-test-in: Add more tests of hypot, j0, j1, jn,
log, log10 and log2.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (fmod_test_data): Add more tests.
(fpclassify_test_data): Likewise.
(frexp_test_data): Likewise.
(hypot_test_data): Likewise.
(ilogb_test_data): Likewise.
2015-10-21 01:05:01 +00:00
|
|
|
j1 0x1p-5
|
|
|
|
j1 0x1p-10
|
|
|
|
j1 0x1p-15
|
|
|
|
j1 0x1p-20
|
|
|
|
j1 0x1p-25
|
|
|
|
j1 0x1p-30
|
|
|
|
j1 0x1p-35
|
|
|
|
j1 0x1p-40
|
|
|
|
j1 0x1p-45
|
|
|
|
j1 0x1p-50
|
|
|
|
j1 0x1p-55
|
|
|
|
j1 0x1p-60
|
2015-06-29 17:51:32 +00:00
|
|
|
j1 0x1p-100
|
|
|
|
j1 0x1p-600
|
|
|
|
j1 0x1p-10000
|
Fix the inaccuracy of j0f/j1f/y0f/y1f [BZ #14469, #14470, #14471, #14472]
For j0f/j1f/y0f/y1f, the largest error for all binary32
inputs is reduced to at most 9 ulps for all rounding modes.
The new code is enabled only when there is a cancellation at the very end of
the j0f/j1f/y0f/y1f computation, or for very large inputs, thus should not
give any visible slowdown on average. Two different algorithms are used:
* around the first 64 zeros of j0/j1/y0/y1, approximation polynomials of
degree 3 are used, computed using the Sollya tool (https://www.sollya.org/)
* for large inputs, an asymptotic formula from [1] is used
[1] Fast and Accurate Bessel Function Computation,
John Harrison, Proceedings of Arith 19, 2009.
Inputs yielding the new largest errors are added to auto-libm-test-in,
and ulps are regenerated for various targets (thanks Adhemerval Zanella).
Tested on x86_64 with --disable-multi-arch and on powerpc64le-linux-gnu.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2021-04-01 06:14:10 +00:00
|
|
|
# the next values yield large errors in the binary32 format
|
|
|
|
# (cf BZ #27670 for the xfail entries)
|
2020-04-07 14:41:29 +00:00
|
|
|
j1 0x3.ae4b2p+0 xfail-rounding:ibm128-libgcc
|
Fix the inaccuracy of j0f/j1f/y0f/y1f [BZ #14469, #14470, #14471, #14472]
For j0f/j1f/y0f/y1f, the largest error for all binary32
inputs is reduced to at most 9 ulps for all rounding modes.
The new code is enabled only when there is a cancellation at the very end of
the j0f/j1f/y0f/y1f computation, or for very large inputs, thus should not
give any visible slowdown on average. Two different algorithms are used:
* around the first 64 zeros of j0/j1/y0/y1, approximation polynomials of
degree 3 are used, computed using the Sollya tool (https://www.sollya.org/)
* for large inputs, an asymptotic formula from [1] is used
[1] Fast and Accurate Bessel Function Computation,
John Harrison, Proceedings of Arith 19, 2009.
Inputs yielding the new largest errors are added to auto-libm-test-in,
and ulps are regenerated for various targets (thanks Adhemerval Zanella).
Tested on x86_64 with --disable-multi-arch and on powerpc64le-linux-gnu.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2021-04-01 06:14:10 +00:00
|
|
|
j1 0x1.2f28eap+7 xfail-rounding:binary64 xfail-rounding:binary128 xfail-rounding:intel96 xfail-rounding:ibm128-libgcc
|
|
|
|
j1 0x1.a1d20ap+6 xfail-rounding:binary128 xfail-rounding:intel96 xfail-rounding:ibm128-libgcc
|
2015-10-23 21:37:33 +00:00
|
|
|
j1 min
|
|
|
|
j1 -min
|
|
|
|
j1 min_subnorm
|
|
|
|
j1 -min_subnorm
|
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
|
Add more libm tests (fmod, fpclassify, frexp, hypot, ilogb, j0, j1, jn, log, log10, log2).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
2015-10-21 Joseph Myers <joseph@codesourcery.com>
* math/auto-libm-test-in: Add more tests of hypot, j0, j1, jn,
log, log10 and log2.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (fmod_test_data): Add more tests.
(fpclassify_test_data): Likewise.
(frexp_test_data): Likewise.
(hypot_test_data): Likewise.
(ilogb_test_data): Likewise.
2015-10-21 01:05:01 +00:00
|
|
|
jn 0 -0
|
|
|
|
jn 0 min
|
|
|
|
jn 0 -min
|
|
|
|
jn 0 min_subnorm
|
|
|
|
jn 0 -min_subnorm
|
2013-12-18 17:59:29 +00:00
|
|
|
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
|
Add more libm tests (fmod, fpclassify, frexp, hypot, ilogb, j0, j1, jn, log, log10, log2).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
2015-10-21 Joseph Myers <joseph@codesourcery.com>
* math/auto-libm-test-in: Add more tests of hypot, j0, j1, jn,
log, log10 and log2.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (fmod_test_data): Add more tests.
(fpclassify_test_data): Likewise.
(frexp_test_data): Likewise.
(hypot_test_data): Likewise.
(ilogb_test_data): Likewise.
2015-10-21 01:05:01 +00:00
|
|
|
jn 1 -0
|
2013-12-18 17:59:29 +00:00
|
|
|
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-10-23 21:37:33 +00:00
|
|
|
jn 1 min
|
|
|
|
jn 1 -min
|
|
|
|
jn 1 min_subnorm
|
|
|
|
jn 1 -min_subnorm
|
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
|
|
|
|
|
Add more libm tests (fmod, fpclassify, frexp, hypot, ilogb, j0, j1, jn, log, log10, log2).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
2015-10-21 Joseph Myers <joseph@codesourcery.com>
* math/auto-libm-test-in: Add more tests of hypot, j0, j1, jn,
log, log10 and log2.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (fmod_test_data): Add more tests.
(fpclassify_test_data): Likewise.
(frexp_test_data): Likewise.
(hypot_test_data): Likewise.
(ilogb_test_data): Likewise.
2015-10-21 01:05:01 +00:00
|
|
|
jn -1 1
|
|
|
|
jn -2 1
|
|
|
|
jn -3 1
|
|
|
|
jn -4 1
|
|
|
|
jn -1 -1
|
|
|
|
jn -2 -1
|
|
|
|
jn -3 -1
|
|
|
|
jn -4 -1
|
|
|
|
|
2015-10-23 21:37:33 +00:00
|
|
|
jn 10 min
|
|
|
|
jn 10 -min
|
|
|
|
jn 10 min_subnorm
|
|
|
|
jn 10 -min_subnorm
|
2015-06-29 16:52:16 +00:00
|
|
|
|
2017-01-09 22:40:59 +00:00
|
|
|
lgamma max
|
2013-12-08 23:56:28 +00:00
|
|
|
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
|
2020-03-30 13:55:55 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary32)
|
|
|
|
lgamma -0x3.ec4298p+0
|
2013-12-08 23:56:28 +00:00
|
|
|
|
2015-10-01 17:15:54 +00:00
|
|
|
# Values +/- 10ulp from overflow threshold. (Values very close to
|
|
|
|
# overflow threshold produce results very close of that threshold,
|
|
|
|
# where a result inaccurate by a few ulp could differ from the ideal
|
|
|
|
# result in whether it overflows; +/- 10ulp is sufficient for overflow
|
|
|
|
# or its absence to be unambiguous under glibc's accuracy standards).
|
2016-06-08 19:41:05 +00:00
|
|
|
# This also means the ibm128 inputs are XFAILed for binary64 and
|
|
|
|
# the binary128 inputs for intel96 and m68k96, as too close to the
|
|
|
|
# threshold.
|
2015-10-01 17:15:54 +00:00
|
|
|
lgamma 0x3.12be0cp+120
|
|
|
|
lgamma 0x3.12be6p+120
|
|
|
|
lgamma 0x5.d53649e2d4674p+1012
|
2017-01-04 23:29:42 +00:00
|
|
|
lgamma 0x5.d53649e2d46c8p+1012 xfail-rounding:ibm128-libgcc
|
|
|
|
lgamma 0x5.d53649e2d469dbc1f01e99fd52p+1012 xfail:binary64 xfail-rounding:ibm128-libgcc
|
|
|
|
lgamma 0x5.d53649e2d469dbc1f01e99fd7cp+1012 xfail:binary64 xfail-rounding:ibm128-libgcc
|
2017-01-09 22:40:59 +00:00
|
|
|
lgamma 0x5.c6aa645fffef5f5p+16368
|
|
|
|
lgamma 0x5.c6aa645fffef5ff8p+16368
|
|
|
|
lgamma 0x5.c6aa645fffef5fa912b9b480f7acp+16368 xfail:intel96 xfail:m68k96
|
|
|
|
lgamma 0x5.c6aa645fffef5fa912b9b480f8p+16368 xfail:intel96 xfail:m68k96
|
2015-10-01 17:15:54 +00:00
|
|
|
|
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
|
|
|
|
|
2016-06-08 19:41:05 +00:00
|
|
|
# Integers +/- 1ulp for binary128 (gen-auto-libm-tests will round these
|
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
|
|
|
# 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
|
2015-10-23 22:46:05 +00:00
|
|
|
log 0x1.000002p0
|
|
|
|
log 0x1.0000000000001p0
|
|
|
|
log 0x1.0000000000000002p0
|
|
|
|
log 0x1.000000000000000000000000008p0
|
|
|
|
log 0x1.0000000000000000000000000001p0
|
|
|
|
log 0x0.ffffffp0
|
|
|
|
log 0x0.fffffffffffff8p0
|
|
|
|
log 0x0.ffffffffffffffffp0
|
|
|
|
log 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
log 0x0.ffffffffffffffffffffffffffff8p0
|
2013-12-18 11:38:27 +00:00
|
|
|
log min
|
|
|
|
log min_subnorm
|
Add more libm tests (fmod, fpclassify, frexp, hypot, ilogb, j0, j1, jn, log, log10, log2).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
2015-10-21 Joseph Myers <joseph@codesourcery.com>
* math/auto-libm-test-in: Add more tests of hypot, j0, j1, jn,
log, log10 and log2.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (fmod_test_data): Add more tests.
(fpclassify_test_data): Likewise.
(frexp_test_data): Likewise.
(hypot_test_data): Likewise.
(ilogb_test_data): Likewise.
2015-10-21 01:05:01 +00:00
|
|
|
log max
|
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
|
Add more random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
log 0x1.770072p+0
|
2020-11-25 18:03:33 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary64)
|
|
|
|
log 0x1.d405118796bd8p-1
|
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
|
2015-10-23 22:46:05 +00:00
|
|
|
log10 0x1.000002p0
|
|
|
|
log10 0x1.0000000000001p0
|
|
|
|
log10 0x1.0000000000000002p0
|
|
|
|
log10 0x1.000000000000000000000000008p0
|
|
|
|
log10 0x1.0000000000000000000000000001p0
|
|
|
|
log10 0x0.ffffffp0
|
|
|
|
log10 0x0.fffffffffffff8p0
|
|
|
|
log10 0x0.ffffffffffffffffp0
|
|
|
|
log10 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
log10 0x0.ffffffffffffffffffffffffffff8p0
|
2021-02-26 07:00:03 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary128)
|
|
|
|
log10 0x1.6a291ea0aa11fb374f1df8b3ac6bp+0
|
2013-12-18 11:38:27 +00:00
|
|
|
log10 min
|
|
|
|
log10 min_subnorm
|
Add more libm tests (fmod, fpclassify, frexp, hypot, ilogb, j0, j1, jn, log, log10, log2).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
2015-10-21 Joseph Myers <joseph@codesourcery.com>
* math/auto-libm-test-in: Add more tests of hypot, j0, j1, jn,
log, log10 and log2.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (fmod_test_data): Add more tests.
(fpclassify_test_data): Likewise.
(frexp_test_data): Likewise.
(hypot_test_data): Likewise.
(ilogb_test_data): Likewise.
2015-10-21 01:05:01 +00:00
|
|
|
log10 max
|
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
|
|
|
|
2024-06-17 13:48:13 +00:00
|
|
|
log10p1 0
|
|
|
|
log10p1 -0
|
|
|
|
log10p1 e-1
|
|
|
|
log10p1 -0.25
|
|
|
|
log10p1 -0.875
|
|
|
|
log10p1 0x1p-5
|
|
|
|
log10p1 0x1p-10
|
|
|
|
log10p1 0x1p-15
|
|
|
|
log10p1 0x1p-20
|
|
|
|
log10p1 0x1p-25
|
|
|
|
log10p1 0x1p-30
|
|
|
|
log10p1 0x1p-35
|
|
|
|
log10p1 0x1p-40
|
|
|
|
log10p1 0x1p-45
|
|
|
|
log10p1 0x1p-50
|
|
|
|
log10p1 0x1p-55
|
|
|
|
log10p1 0x1p-60
|
|
|
|
log10p1 0x1p-100
|
|
|
|
log10p1 0x1p-600
|
|
|
|
log10p1 0x1p-10000
|
|
|
|
log10p1 min
|
|
|
|
log10p1 min_subnorm
|
|
|
|
log10p1 -min
|
|
|
|
log10p1 -min_subnorm
|
|
|
|
log10p1 0x1p10
|
|
|
|
log10p1 0x1p20
|
|
|
|
log10p1 0x1p30
|
|
|
|
log10p1 0x1p50
|
|
|
|
log10p1 0x1p60
|
|
|
|
log10p1 0x1p100
|
|
|
|
log10p1 0x1p1000
|
|
|
|
log10p1 0x6.a0cf42befce9ed4085ef59254b48p-4
|
|
|
|
log10p1 max
|
|
|
|
log10p1 0x1p-125
|
|
|
|
log10p1 0x1p-1021
|
|
|
|
log10p1 0x1p-16381
|
|
|
|
log10p1 -0x1p-125
|
|
|
|
log10p1 -0x1p-1021
|
|
|
|
log10p1 -0x1p-16381
|
|
|
|
|
|
|
|
log10p1 0x7.2a4368p-4
|
|
|
|
log10p1 0x6.d3a118p-4
|
|
|
|
log10p1 0x5.03f228p+0
|
|
|
|
log10p1 0x7.264963888ac9p-4
|
|
|
|
log10p1 0x8.786bdp-4
|
|
|
|
log10p1 0x7.89dc17790eeb4p-4
|
|
|
|
log10p1 0x9.81ccf8887c24a7bp-4
|
|
|
|
log10p1 0xa.5028608bd65f38dp-4
|
|
|
|
log10p1 0x5.bf78873e20a2d468p-4
|
|
|
|
log10p1 0x7.aa5198p-4
|
|
|
|
log10p1 0x2.564fap+0
|
|
|
|
log10p1 0x7.fc242a2235222ef8p-4
|
|
|
|
log10p1 -0x4.f37d3c9ce0b14bdd86eb157df5d4p-4
|
|
|
|
log10p1 0x7.2eca50c4d93196362b4f37f6e8dcp-4
|
|
|
|
log10p1 -0x6.3fef3067427e43dfcde9e48f74bcp-4
|
|
|
|
log10p1 0x6.af53d00fd2845d4772260ef5adc4p-4
|
2024-07-25 14:38:08 +00:00
|
|
|
# the next values generate large errors on x86_64 for binary32
|
|
|
|
log10p1 0x1.ce84ep+0
|
|
|
|
log10p1 -0x1.c9bc9cp-3
|
|
|
|
log10p1 0x1.3b8ad4p+106
|
|
|
|
log10p1 -0x1.2611b2p-8
|
|
|
|
# the next values generate large errors on x86_64 for binary64
|
|
|
|
log10p1 -0x1.4c2971893052fp-1
|
|
|
|
log10p1 -0x1.000196a3d9e18p-2
|
|
|
|
log10p1 -0x1.26975ba3e6553p-43
|
|
|
|
log10p1 0x1.00d67bdd93083p+53
|
|
|
|
# the next values generate large errors on x86_64 for intel96
|
|
|
|
log10p1 0x4.a486e7fa771f839p-4
|
|
|
|
log10p1 0x4.f974ef417a9fe778p-4
|
|
|
|
log10p1 0x5.006dfbf1945a6648p-4
|
|
|
|
log10p1 0x4.f6e989b93bb1cd78p-4
|
|
|
|
log10p1 0x4.ab40181dbc47cdfp-4
|
|
|
|
log10p1 0x5.2876604a22752338p-4
|
|
|
|
log10p1 0x4.a422197a61a14128p-4
|
|
|
|
log10p1 0x5.48bb2c181e72e838p-4
|
|
|
|
# the next values generate large errors on x86_64 for binary128
|
|
|
|
log10p1 -0x6.eec527c6a8d6e31ca9f0dcdd747cp-4
|
|
|
|
log10p1 0xc.42dd6485aeceeca7f23b39ad0518p-4
|
|
|
|
log10p1 0xa.78451e366c2303f4f67b1178e628p-4
|
|
|
|
log10p1 -0x6.fe3adf062a38696216fa72657104p-4
|
2024-06-17 13:48:13 +00:00
|
|
|
|
2013-12-05 13:54:50 +00:00
|
|
|
log1p 0
|
2023-11-03 12:12:23 +00:00
|
|
|
log1p -0 no-mathvec
|
2013-12-05 13:54:50 +00:00
|
|
|
log1p e-1
|
|
|
|
log1p -0.25
|
|
|
|
log1p -0.875
|
2015-10-23 22:46:05 +00:00
|
|
|
log1p 0x1p-5
|
|
|
|
log1p 0x1p-10
|
|
|
|
log1p 0x1p-15
|
|
|
|
log1p 0x1p-20
|
|
|
|
log1p 0x1p-25
|
|
|
|
log1p 0x1p-30
|
|
|
|
log1p 0x1p-35
|
|
|
|
log1p 0x1p-40
|
|
|
|
log1p 0x1p-45
|
|
|
|
log1p 0x1p-50
|
|
|
|
log1p 0x1p-55
|
|
|
|
log1p 0x1p-60
|
|
|
|
log1p 0x1p-100
|
|
|
|
log1p 0x1p-600
|
|
|
|
log1p 0x1p-10000
|
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
|
2021-02-26 07:00:03 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary128)
|
|
|
|
log1p 0x6.a0cf42befce9ed4085ef59254b48p-4
|
2014-05-14 12:38:56 +00:00
|
|
|
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
|
Add more random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
log1p -0x4.f37d3c9ce0b14bdd86eb157df5d4p-4
|
|
|
|
log1p 0x7.2eca50c4d93196362b4f37f6e8dcp-4
|
|
|
|
log1p -0x6.3fef3067427e43dfcde9e48f74bcp-4
|
|
|
|
log1p 0x6.af53d00fd2845d4772260ef5adc4p-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
|
2015-10-23 22:46:05 +00:00
|
|
|
log2 0x1.000002p0
|
|
|
|
log2 0x1.0000000000001p0
|
|
|
|
log2 0x1.0000000000000002p0
|
|
|
|
log2 0x1.000000000000000000000000008p0
|
|
|
|
log2 0x1.0000000000000000000000000001p0
|
|
|
|
log2 0x0.ffffffp0
|
|
|
|
log2 0x0.fffffffffffff8p0
|
|
|
|
log2 0x0.ffffffffffffffffp0
|
|
|
|
log2 0x0.ffffffffffffffffffffffffffcp0
|
|
|
|
log2 0x0.ffffffffffffffffffffffffffff8p0
|
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
|
Add more random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
log2 0xb.5bf82dc51f02035p-4
|
|
|
|
log2 0xb.7704dc9beb05p-4
|
|
|
|
log2 0xb.56f63c18e93eecdp-4
|
2021-02-26 07:00:03 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary128)
|
|
|
|
log2 0xb.54170d5cfa8fd72a47d6bda19068p-4
|
2013-12-18 11:38:27 +00:00
|
|
|
log2 min
|
|
|
|
log2 min_subnorm
|
Add more libm tests (fmod, fpclassify, frexp, hypot, ilogb, j0, j1, jn, log, log10, log2).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
2015-10-21 Joseph Myers <joseph@codesourcery.com>
* math/auto-libm-test-in: Add more tests of hypot, j0, j1, jn,
log, log10 and log2.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (fmod_test_data): Add more tests.
(fpclassify_test_data): Likewise.
(frexp_test_data): Likewise.
(hypot_test_data): Likewise.
(ilogb_test_data): Likewise.
2015-10-21 01:05:01 +00:00
|
|
|
log2 max
|
2013-12-05 13:54:50 +00:00
|
|
|
|
2024-05-20 13:41:39 +00:00
|
|
|
log2p1 0
|
|
|
|
log2p1 -0
|
|
|
|
log2p1 e-1
|
|
|
|
log2p1 -0.25
|
|
|
|
log2p1 -0.875
|
|
|
|
log2p1 0x1p-5
|
|
|
|
log2p1 0x1p-10
|
|
|
|
log2p1 0x1p-15
|
|
|
|
log2p1 0x1p-20
|
|
|
|
log2p1 0x1p-25
|
|
|
|
log2p1 0x1p-30
|
|
|
|
log2p1 0x1p-35
|
|
|
|
log2p1 0x1p-40
|
|
|
|
log2p1 0x1p-45
|
|
|
|
log2p1 0x1p-50
|
|
|
|
log2p1 0x1p-55
|
|
|
|
log2p1 0x1p-60
|
|
|
|
log2p1 0x1p-100
|
|
|
|
log2p1 0x1p-600
|
|
|
|
log2p1 0x1p-10000
|
|
|
|
log2p1 min
|
|
|
|
log2p1 min_subnorm
|
|
|
|
log2p1 -min
|
|
|
|
log2p1 -min_subnorm
|
|
|
|
log2p1 0x1p10
|
|
|
|
log2p1 0x1p20
|
|
|
|
log2p1 0x1p30
|
|
|
|
log2p1 0x1p50
|
|
|
|
log2p1 0x1p60
|
|
|
|
log2p1 0x1p100
|
|
|
|
log2p1 0x1p1000
|
|
|
|
log2p1 0x6.a0cf42befce9ed4085ef59254b48p-4
|
|
|
|
log2p1 max
|
2024-07-25 14:38:08 +00:00
|
|
|
# the following inputs yield large errors on x86_64 for binary32
|
2024-07-22 06:54:23 +00:00
|
|
|
log2p1 0x1.a69b4ap-2
|
2024-07-25 14:38:08 +00:00
|
|
|
log2p1 -0x1.2516d6p-2
|
|
|
|
log2p1 -0x1.5ffeaep-15
|
|
|
|
log2p1 0x1.fa9f4cp+63
|
|
|
|
# the following inputs yield large errors on x86_64 for binary64
|
2024-07-22 06:54:23 +00:00
|
|
|
log2p1 0x1.a7b725780ff2cp-2
|
2024-07-25 14:38:08 +00:00
|
|
|
log2p1 -0x1.2bcacac1db278p-2
|
|
|
|
log2p1 -0x1.61d589bf42045p-30
|
|
|
|
log2p1 0x1.f7b1d1fa54e5ep+1023
|
|
|
|
# the following inputs yield large errors on x86_64 for intel96
|
2024-07-22 06:54:23 +00:00
|
|
|
log2p1 0x5.dda3a1f4c4020ebp-4
|
2024-07-25 14:38:08 +00:00
|
|
|
log2p1 0x4.a90a8d35a43eef98p-4
|
|
|
|
log2p1 0x4.cd0c83636c3eec48p-4
|
|
|
|
log2p1 0x4.a438707de6d1ba58p-4
|
|
|
|
log2p1 0x5.843d01be597f38fp-4
|
|
|
|
log2p1 0x4.a4fa45b26be621b8p-4
|
|
|
|
log2p1 0x5.86a6205c56dda348p-4
|
|
|
|
log2p1 0x4.a45c98a3ade2dcb8p-4
|
|
|
|
# the following inputs yield large errors on x86_64 for binary128
|
2024-07-22 06:54:23 +00:00
|
|
|
log2p1 -0x7.fff3a57fdd2666bcecba33bd89f4p-4
|
2024-07-25 14:38:08 +00:00
|
|
|
log2p1 0xf.ffea148f0646fb70b8e8c4dae998p-4
|
|
|
|
log2p1 -0x7.ffdfd0a8ad0496b2ee0e1c8e382cp-4
|
|
|
|
log2p1 0x6.a9a5ea3f87fe4bc20f7a0e83cf2cp-4
|
2024-05-20 13:41:39 +00:00
|
|
|
|
|
|
|
log2p1 0x7.2a4368p-4
|
|
|
|
log2p1 0x6.d3a118p-4
|
|
|
|
log2p1 0x5.03f228p+0
|
|
|
|
log2p1 0x7.264963888ac9p-4
|
|
|
|
log2p1 0x8.786bdp-4
|
|
|
|
log2p1 0x7.89dc17790eeb4p-4
|
|
|
|
log2p1 0x9.81ccf8887c24a7bp-4
|
|
|
|
log2p1 0xa.5028608bd65f38dp-4
|
|
|
|
log2p1 0x5.bf78873e20a2d468p-4
|
|
|
|
log2p1 0x7.aa5198p-4
|
|
|
|
log2p1 0x2.564fap+0
|
|
|
|
log2p1 0x7.fc242a2235222ef8p-4
|
|
|
|
log2p1 -0x4.f37d3c9ce0b14bdd86eb157df5d4p-4
|
|
|
|
log2p1 0x7.2eca50c4d93196362b4f37f6e8dcp-4
|
|
|
|
log2p1 -0x6.3fef3067427e43dfcde9e48f74bcp-4
|
|
|
|
log2p1 0x6.af53d00fd2845d4772260ef5adc4p-4
|
|
|
|
|
Add narrowing multiply functions.
This patch adds the narrowing multiply functions from TS 18661-1 to
glibc's libm: fmul, fmull, dmull, f32mulf64, f32mulf32x, f32xmulf64
for all configurations; f32mulf64x, f32mulf128, f64mulf64x,
f64mulf128, f32xmulf64x, f32xmulf128, f64xmulf128 for configurations
with _Float64x and _Float128; __nldbl_dmull for ldbl-opt.
The changes are mostly essentially the same as for the narrowing add
functions, so the description of those generally applies to this patch
as well. f32xmulf64 for i386 cannot use precision control as used for
add and subtract, because that would result in double rounding for
subnormal results, so that uses round-to-odd with long double
intermediate result instead. The soft-fp support involves adding a
new FP_TRUNC_COOKED since soft-fp multiplication uses cooked inputs
and outputs.
Tested for x86_64, x86, mips64 (all three ABIs, both hard and soft
float) and powerpc, and with build-many-glibcs.py.
* math/Makefile (libm-narrow-fns): Add mul.
(libm-test-funcs-narrow): Likewise.
* math/Versions (GLIBC_2.28): Add narrowing multiply functions.
* math/bits/mathcalls-narrow.h (mul): Use __MATHCALL_NARROW.
* math/gen-auto-libm-tests.c (test_functions): Add mul.
* math/math-narrow.h (CHECK_NARROW_MUL): New macro.
(NARROW_MUL_ROUND_TO_ODD): Likewise.
(NARROW_MUL_TRIVIAL): Likewise.
* soft-fp/op-common.h (FP_TRUNC_COOKED): Likewise.
* sysdeps/ieee754/float128/float128_private.h (__fmull): New
macro.
(__dmull): Likewise.
* sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add fmul and
dmul.
(CFLAGS-nldbl-dmul.c): New variable.
(CFLAGS-nldbl-fmul.c): Likewise.
* sysdeps/ieee754/ldbl-opt/Versions (GLIBC_2.28): Add
__nldbl_dmull.
* sysdeps/ieee754/ldbl-opt/nldbl-compat.h (__nldbl_dmull): New
prototype.
* manual/arith.texi (Misc FP Arithmetic): Document fmul, fmull,
dmull, fMmulfN, fMmulfNx, fMxmulfN and fMxmulfNx.
* math/auto-libm-test-in: Add tests of mul.
* math/auto-libm-test-out-narrow-mul: New generated file.
* math/libm-test-narrow-mul.inc: New file.
* sysdeps/i386/fpu/s_f32xmulf64.c: Likewise.
* sysdeps/ieee754/dbl-64/s_f32xmulf64.c: Likewise.
* sysdeps/ieee754/dbl-64/s_fmul.c: Likewise.
* sysdeps/ieee754/float128/s_f32mulf128.c: Likewise.
* sysdeps/ieee754/float128/s_f64mulf128.c: Likewise.
* sysdeps/ieee754/float128/s_f64xmulf128.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_dmull.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_f64xmulf128.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_fmull.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/s_dmull.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/s_fmull.c: Likewise.
* sysdeps/ieee754/ldbl-96/s_dmull.c: Likewise.
* sysdeps/ieee754/ldbl-96/s_fmull.c: Likewise.
* sysdeps/ieee754/ldbl-opt/nldbl-dmul.c: Likewise.
* sysdeps/ieee754/ldbl-opt/nldbl-fmul.c: Likewise.
* sysdeps/ieee754/soft-fp/s_dmull.c: Likewise.
* sysdeps/ieee754/soft-fp/s_fmul.c: Likewise.
* sysdeps/ieee754/soft-fp/s_fmull.c: Likewise.
* sysdeps/powerpc/fpu/libm-test-ulps: Update.
* sysdeps/mach/hurd/i386/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2018-05-16 00:05:28 +00:00
|
|
|
mul 0 0
|
|
|
|
mul 0 -0
|
|
|
|
mul -0 0
|
|
|
|
mul -0 -0
|
|
|
|
mul max max
|
|
|
|
mul max -max
|
|
|
|
mul -max max
|
|
|
|
mul -max -max
|
|
|
|
mul min min
|
|
|
|
mul min -min
|
|
|
|
mul -min min
|
|
|
|
mul -min -min
|
|
|
|
mul min_subnorm min_subnorm
|
|
|
|
mul min_subnorm -min_subnorm
|
|
|
|
mul -min_subnorm min_subnorm
|
|
|
|
mul -min_subnorm -min_subnorm
|
|
|
|
mul 1 2
|
|
|
|
mul 1 -2
|
|
|
|
mul -1 2
|
|
|
|
mul -1 -2
|
|
|
|
mul 100.5 0.75
|
|
|
|
mul 100.5 -0.75
|
|
|
|
mul -100.5 0.75
|
|
|
|
mul -100.5 -0.75
|
|
|
|
# Cases where the product of two values in a wider format is very
|
|
|
|
# close to half way between two representable values in a narrower
|
|
|
|
# format, so that double rounding would sometimes yield the wrong
|
|
|
|
# result. These examples have products of the form
|
|
|
|
# (2^a + 1)(2^b + 1)/2^(a+b), where a is the width of the narrower
|
|
|
|
# format, b is greater than the width of the wider format and factors
|
|
|
|
# have been rearranged between the terms so that both terms do fit
|
|
|
|
# within the wider format.
|
|
|
|
# a = 24, b = 54
|
|
|
|
mul 0x5000005p-24 0xccccccccccccdp-54
|
|
|
|
# a = 24, b = 65
|
|
|
|
mul 0x3000003p-24 0xaaaaaaaaaaaaaaabp-65
|
|
|
|
# a = 24, b = 114
|
|
|
|
mul 0x5000005p-24 0xcccccccccccccccccccccccccccdp-114
|
|
|
|
# a = 53, b = 65
|
|
|
|
mul 0x60000000000003p-53 0xaaaaaaaaaaaaaaabp-65
|
|
|
|
# a = 53, b = 114
|
|
|
|
mul 0xa0000000000005p-53 0xcccccccccccccccccccccccccccdp-114
|
|
|
|
# a = 64, b = 114
|
|
|
|
mul 0x50000000000000005p-64 0xcccccccccccccccccccccccccccdp-114
|
|
|
|
# Similar, for double rounding to 64 bit of a product of 53-bit values.
|
|
|
|
# This product equals 2^64 + 2^11 + 1.
|
|
|
|
mul 97689974585 188829449
|
|
|
|
|
Fix f64xdivf128, f64xmulf128 spurious underflows (bug 28358)
As described in bug 28358, the round-to-odd computations used in the
libm functions that round their results to a narrower format can yield
spurious underflow exceptions in the following circumstances: the
narrowing only narrows the precision of the type and not the exponent
range (i.e., it's narrowing _Float128 to _Float64x on x86_64, x86 or
ia64), the architecture does after-rounding tininess detection (which
applies to all those architectures), the result is inexact, tiny
before rounding but not tiny after rounding (with the chosen rounding
mode) for _Float64x (which is possible for narrowing mul, div and fma,
not for narrowing add, sub or sqrt), so the underflow exception
resulting from the toward-zero computation in _Float128 is spurious
for _Float64x.
Fixed by making ROUND_TO_ODD call feclearexcept (FE_UNDERFLOW) in the
problem cases (as indicated by an extra argument to the macro); there
is never any need to preserve underflow exceptions from this part of
the computation, because the conversion of the round-to-odd value to
the narrower type will underflow in exactly the cases in which the
function should raise that exception, but it may be more efficient to
avoid the extra manipulation of the floating-point environment when
not needed.
Tested for x86_64 and x86, and with build-many-glibcs.py.
2021-09-21 21:54:37 +00:00
|
|
|
# Cases where there is underflow before rounding (for some format) but
|
|
|
|
# might not be after rounding, depending on the rounding mode.
|
|
|
|
mul 0x0.ffffff8p-126 0x1.0000001p0
|
|
|
|
mul 0x0.ffffff8p-126 -0x1.0000001p0
|
|
|
|
mul -0x0.ffffff8p-126 0x1.0000001p0
|
|
|
|
mul -0x0.ffffff8p-126 -0x1.0000001p0
|
2021-09-22 12:35:44 +00:00
|
|
|
mul 0x0.fffffffffffffcp-1022 0x1.00000000000001p0 missing-underflow:arg-ibm128
|
|
|
|
mul 0x0.fffffffffffffcp-1022 -0x1.00000000000001p0 missing-underflow:arg-ibm128
|
|
|
|
mul -0x0.fffffffffffffcp-1022 0x1.00000000000001p0 missing-underflow:arg-ibm128
|
|
|
|
mul -0x0.fffffffffffffcp-1022 -0x1.00000000000001p0 missing-underflow:arg-ibm128
|
|
|
|
mul 0x0.ffffffffffffffff8p-16382 0x1.00000000000000001p0 missing-underflow:arg-ibm128
|
|
|
|
mul 0x0.ffffffffffffffff8p-16382 -0x1.00000000000000001p0 missing-underflow:arg-ibm128
|
|
|
|
mul -0x0.ffffffffffffffff8p-16382 0x1.00000000000000001p0 missing-underflow:arg-ibm128
|
|
|
|
mul -0x0.ffffffffffffffff8p-16382 -0x1.00000000000000001p0 missing-underflow:arg-ibm128
|
Fix f64xdivf128, f64xmulf128 spurious underflows (bug 28358)
As described in bug 28358, the round-to-odd computations used in the
libm functions that round their results to a narrower format can yield
spurious underflow exceptions in the following circumstances: the
narrowing only narrows the precision of the type and not the exponent
range (i.e., it's narrowing _Float128 to _Float64x on x86_64, x86 or
ia64), the architecture does after-rounding tininess detection (which
applies to all those architectures), the result is inexact, tiny
before rounding but not tiny after rounding (with the chosen rounding
mode) for _Float64x (which is possible for narrowing mul, div and fma,
not for narrowing add, sub or sqrt), so the underflow exception
resulting from the toward-zero computation in _Float128 is spurious
for _Float64x.
Fixed by making ROUND_TO_ODD call feclearexcept (FE_UNDERFLOW) in the
problem cases (as indicated by an extra argument to the macro); there
is never any need to preserve underflow exceptions from this part of
the computation, because the conversion of the round-to-odd value to
the narrower type will underflow in exactly the cases in which the
function should raise that exception, but it may be more efficient to
avoid the extra manipulation of the floating-point environment when
not needed.
Tested for x86_64 and x86, and with build-many-glibcs.py.
2021-09-21 21:54:37 +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
|
2017-01-09 22:40:59 +00:00
|
|
|
pow -0 0x1.fffffffffffffffep+64 xfail-rounding:ibm128-libgcc
|
|
|
|
pow -0 0x1.ffffffffffffffffffffffffff8p+105 xfail-rounding:ibm128-libgcc
|
|
|
|
pow -0 0x1.ffffffffffffffffffffffffff8p+106 xfail-rounding:ibm128-libgcc
|
|
|
|
pow -0 0x1.ffffffffffffffffffffffffffffp+112 xfail-rounding:ibm128-libgcc
|
|
|
|
pow -0 0x1.ffffffffffffffffffffffffffffp+113 xfail-rounding:ibm128-libgcc
|
2013-12-16 21:18:07 +00:00
|
|
|
|
|
|
|
# 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.
|
2015-11-10 17:34:13 +00:00
|
|
|
pow -0 0.5
|
2013-12-16 21:18:07 +00:00
|
|
|
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
|
2017-01-09 22:40:59 +00:00
|
|
|
pow -1.0 -0x1.fffffffffffffffep+64 xfail-rounding:ibm128-libgcc
|
|
|
|
pow -1.0 -0x1.ffffffffffffffffffffffffff8p+105 xfail-rounding:ibm128-libgcc
|
|
|
|
pow -1.0 -0x1.ffffffffffffffffffffffffff8p+106 xfail-rounding:ibm128-libgcc
|
|
|
|
pow -1.0 -0x1.ffffffffffffffffffffffffffffp+112 xfail-rounding:ibm128-libgcc
|
|
|
|
pow -1.0 -0x1.ffffffffffffffffffffffffffffp+113 xfail-rounding:ibm128-libgcc
|
2013-12-16 21:18:07 +00:00
|
|
|
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
|
2017-01-09 22:40:59 +00:00
|
|
|
pow -1.0 0x1.fffffffffffffffep+64 xfail-rounding:ibm128-libgcc
|
|
|
|
pow -1.0 0x1.ffffffffffffffffffffffffff8p+105 xfail-rounding:ibm128-libgcc
|
|
|
|
pow -1.0 0x1.ffffffffffffffffffffffffff8p+106 xfail-rounding:ibm128-libgcc
|
|
|
|
pow -1.0 0x1.ffffffffffffffffffffffffffffp+112 xfail-rounding:ibm128-libgcc
|
|
|
|
pow -1.0 0x1.ffffffffffffffffffffffffffffp+113 xfail-rounding:ibm128-libgcc
|
2013-12-16 21:18:07 +00:00
|
|
|
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
|
|
|
|
|
2015-09-25 22:29:10 +00:00
|
|
|
pow 2 -126.125
|
|
|
|
pow 2 -126.25
|
|
|
|
pow 2 -126.375
|
|
|
|
pow 2 -126.5
|
|
|
|
pow 2 -126.625
|
|
|
|
pow 2 -126.75
|
|
|
|
pow 2 -126.875
|
|
|
|
pow 2 -969.125
|
|
|
|
pow 2 -969.25
|
|
|
|
pow 2 -969.375
|
|
|
|
pow 2 -969.5
|
|
|
|
pow 2 -969.625
|
|
|
|
pow 2 -969.75
|
|
|
|
pow 2 -969.875
|
|
|
|
pow 2 -1022.125
|
|
|
|
pow 2 -1022.25
|
|
|
|
pow 2 -1022.375
|
|
|
|
pow 2 -1022.5
|
|
|
|
pow 2 -1022.625
|
|
|
|
pow 2 -1022.75
|
|
|
|
pow 2 -1022.875
|
|
|
|
pow 2 -16382.125
|
|
|
|
pow 2 -16382.25
|
|
|
|
pow 2 -16382.375
|
|
|
|
pow 2 -16382.5
|
|
|
|
pow 2 -16382.625
|
|
|
|
pow 2 -16382.75
|
|
|
|
pow 2 -16382.875
|
|
|
|
pow 2 -16383.125
|
|
|
|
pow 2 -16383.25
|
|
|
|
pow 2 -16383.375
|
|
|
|
pow 2 -16383.5
|
|
|
|
pow 2 -16383.625
|
|
|
|
pow 2 -16383.75
|
|
|
|
pow 2 -16383.875
|
|
|
|
pow 0.5 126.125
|
|
|
|
pow 0.5 126.25
|
|
|
|
pow 0.5 126.375
|
|
|
|
pow 0.5 126.5
|
|
|
|
pow 0.5 126.625
|
|
|
|
pow 0.5 126.75
|
|
|
|
pow 0.5 126.875
|
|
|
|
pow 0.5 969.125
|
|
|
|
pow 0.5 969.25
|
|
|
|
pow 0.5 969.375
|
|
|
|
pow 0.5 969.5
|
|
|
|
pow 0.5 969.625
|
|
|
|
pow 0.5 969.75
|
|
|
|
pow 0.5 969.875
|
|
|
|
pow 0.5 1022.125
|
|
|
|
pow 0.5 1022.25
|
|
|
|
pow 0.5 1022.375
|
|
|
|
pow 0.5 1022.5
|
|
|
|
pow 0.5 1022.625
|
|
|
|
pow 0.5 1022.75
|
|
|
|
pow 0.5 1022.875
|
|
|
|
pow 0.5 16382.125
|
|
|
|
pow 0.5 16382.25
|
|
|
|
pow 0.5 16382.375
|
|
|
|
pow 0.5 16382.5
|
|
|
|
pow 0.5 16382.625
|
|
|
|
pow 0.5 16382.75
|
|
|
|
pow 0.5 16382.875
|
|
|
|
pow 0.5 16383.125
|
|
|
|
pow 0.5 16383.25
|
|
|
|
pow 0.5 16383.375
|
|
|
|
pow 0.5 16383.5
|
|
|
|
pow 0.5 16383.625
|
|
|
|
pow 0.5 16383.75
|
|
|
|
pow 0.5 16383.875
|
|
|
|
pow 0x1.00001p1 -126
|
|
|
|
pow -0x1.00002p1 -126
|
|
|
|
pow 0x1.00003p1 -126
|
|
|
|
pow -0x1.00004p1 -126
|
|
|
|
pow 0x1.00005p1 -126
|
|
|
|
pow -0x1.00006p1 -126
|
|
|
|
pow 0x1.00007p1 -126
|
|
|
|
pow 0x1.00001p1 -969
|
|
|
|
pow -0x1.00002p1 -969
|
|
|
|
pow 0x1.00003p1 -969
|
|
|
|
pow -0x1.00004p1 -969
|
|
|
|
pow 0x1.00005p1 -969
|
|
|
|
pow -0x1.00006p1 -969
|
|
|
|
pow 0x1.00007p1 -969
|
|
|
|
pow 0x1.00001p1 -1022
|
|
|
|
pow -0x1.00002p1 -1022
|
|
|
|
pow 0x1.00003p1 -1022
|
|
|
|
pow -0x1.00004p1 -1022
|
|
|
|
pow 0x1.00005p1 -1022
|
|
|
|
pow -0x1.00006p1 -1022
|
|
|
|
pow 0x1.00007p1 -1022
|
|
|
|
pow 0x1.00001p1 -16382
|
|
|
|
pow -0x1.00002p1 -16382
|
|
|
|
pow 0x1.00003p1 -16382
|
|
|
|
pow -0x1.00004p1 -16382
|
|
|
|
pow 0x1.00005p1 -16382
|
|
|
|
pow -0x1.00006p1 -16382
|
|
|
|
pow 0x1.00007p1 -16382
|
|
|
|
pow 0x1.00001p1 -16383
|
|
|
|
pow -0x1.00002p1 -16383
|
|
|
|
pow 0x1.00003p1 -16383
|
|
|
|
pow -0x1.00004p1 -16383
|
|
|
|
pow 0x1.00005p1 -16383
|
|
|
|
pow -0x1.00006p1 -16383
|
|
|
|
pow 0x1.00007p1 -16383
|
|
|
|
pow 0x0.ffff1p-1 126
|
|
|
|
pow -0x0.ffff2p-1 126
|
|
|
|
pow 0x0.ffff3p-1 126
|
|
|
|
pow -0x0.ffff4p-1 126
|
|
|
|
pow 0x0.ffff5p-1 126
|
|
|
|
pow -0x0.ffff6p-1 126
|
|
|
|
pow 0x0.ffff7p-1 126
|
|
|
|
pow 0x0.ffff1p-1 969
|
|
|
|
pow -0x0.ffff2p-1 969
|
|
|
|
pow 0x0.ffff3p-1 969
|
|
|
|
pow -0x0.ffff4p-1 969
|
|
|
|
pow 0x0.ffff5p-1 969
|
|
|
|
pow -0x0.ffff6p-1 969
|
|
|
|
pow 0x0.ffff7p-1 969
|
|
|
|
pow 0x0.ffff1p-1 1022
|
|
|
|
pow -0x0.ffff2p-1 1022
|
|
|
|
pow 0x0.ffff3p-1 1022
|
|
|
|
pow -0x0.ffff4p-1 1022
|
|
|
|
pow 0x0.ffff5p-1 1022
|
|
|
|
pow -0x0.ffff6p-1 1022
|
|
|
|
pow 0x0.ffff7p-1 1022
|
|
|
|
pow 0x0.ffff1p-1 16382
|
|
|
|
pow -0x0.ffff2p-1 16382
|
|
|
|
pow 0x0.ffff3p-1 16382
|
|
|
|
pow -0x0.ffff4p-1 16382
|
|
|
|
pow 0x0.ffff5p-1 16382
|
|
|
|
pow -0x0.ffff6p-1 16382
|
|
|
|
pow 0x0.ffff7p-1 16382
|
|
|
|
pow 0x0.ffff1p-1 16383
|
|
|
|
pow -0x0.ffff2p-1 16383
|
|
|
|
pow 0x0.ffff3p-1 16383
|
|
|
|
pow -0x0.ffff4p-1 16383
|
|
|
|
pow 0x0.ffff5p-1 16383
|
|
|
|
pow -0x0.ffff6p-1 16383
|
|
|
|
pow 0x0.ffff7p-1 16383
|
|
|
|
pow 0x2.000b3p0 -1022
|
|
|
|
pow 0x2.000582p0 -1022
|
|
|
|
pow 2 -0x3.fe513p+8
|
|
|
|
pow 2 -0x3.fe4e8p+8
|
|
|
|
|
2016-03-24 01:32:52 +00:00
|
|
|
pow 10 -1
|
|
|
|
pow 10 -2
|
|
|
|
pow 10 -3
|
|
|
|
pow 10 -4
|
|
|
|
pow 10 -5
|
|
|
|
pow 10 -6
|
|
|
|
pow 10 -7
|
|
|
|
|
|
|
|
pow 0x0.ffffffffffffffffp0 1
|
|
|
|
pow 0x0.ffffffffffffffffp0 2
|
|
|
|
pow 0x0.ffffffffffffffffp0 3
|
|
|
|
pow 0x0.ffffffffffffffffp0 4
|
|
|
|
pow 0x0.ffffffffffffffffp0 5
|
|
|
|
pow 0x0.ffffffffffffffffp0 6
|
|
|
|
pow 0x0.ffffffffffffffffp0 7
|
|
|
|
pow 0x0.ffffffffffffffffp0 -1
|
|
|
|
pow 0x0.ffffffffffffffffp0 -2
|
|
|
|
pow 0x0.ffffffffffffffffp0 -3
|
|
|
|
pow 0x0.ffffffffffffffffp0 -4
|
|
|
|
pow 0x0.ffffffffffffffffp0 -5
|
|
|
|
pow 0x0.ffffffffffffffffp0 -6
|
|
|
|
pow 0x0.ffffffffffffffffp0 -7
|
|
|
|
|
|
|
|
pow 0x1.0000000000000002p0 1
|
|
|
|
pow 0x1.0000000000000002p0 2
|
|
|
|
pow 0x1.0000000000000002p0 3
|
|
|
|
pow 0x1.0000000000000002p0 4
|
|
|
|
pow 0x1.0000000000000002p0 5
|
|
|
|
pow 0x1.0000000000000002p0 6
|
|
|
|
pow 0x1.0000000000000002p0 7
|
|
|
|
pow 0x1.0000000000000002p0 -1
|
|
|
|
pow 0x1.0000000000000002p0 -2
|
|
|
|
pow 0x1.0000000000000002p0 -3
|
|
|
|
pow 0x1.0000000000000002p0 -4
|
|
|
|
pow 0x1.0000000000000002p0 -5
|
|
|
|
pow 0x1.0000000000000002p0 -6
|
|
|
|
pow 0x1.0000000000000002p0 -7
|
|
|
|
|
2013-12-16 21:18:07 +00:00
|
|
|
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
|
Add more random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
pow 0x9.8b82ap-4 -0x1.99907ap+12
|
2015-09-26 00:27:06 +00:00
|
|
|
pow 0xd.73035p-4 -0x1.47bb8p+8
|
2017-02-07 17:15:47 +00:00
|
|
|
pow 0x1.059c76p+0 0x1.ff80bep+11
|
2018-12-10 11:08:36 +00:00
|
|
|
pow 0x1.7ac7cp+5 23
|
|
|
|
pow -0x1.7ac7cp+5 23
|
2013-12-16 21:18:07 +00:00
|
|
|
|
2013-12-05 13:54:50 +00:00
|
|
|
sin 0
|
2023-08-15 17:01:53 +00:00
|
|
|
sin -0 no-mathvec
|
2013-12-05 13:54:50 +00:00
|
|
|
sin pi/6
|
|
|
|
sin -pi/6
|
|
|
|
sin pi/2
|
|
|
|
sin -pi/2
|
Add more libm tests (scalb*, signbit, sin, sincos, sinh, sqrt, tan, tanh, tgamma, y0, y1, yn, significand).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of sin, sincos, sinh,
sqrt, tan, tanh, y0, y1 and yn.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (scalb_test_data): Add more tests.
(scalbn_test_data): Likewise.
(scalbln_test_data): Likewise.
(signbit_test_data): Likewise.
(sin_test_data): Likewise.
(sincos_test_data): Likewise.
(sinh_test_data): Likewise.
(sqrt_test_data): Likewise.
(tan_test_data): Likewise.
(tanh_test_data): Likewise.
(tgamma_test_data): Likewise.
(y0_test_data): Likewise.
(y1_test_data): Likewise.
(yn_test_data): Likewise.
(significand_test_data): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
2015-11-04 00:45:23 +00:00
|
|
|
sin pi
|
|
|
|
sin -pi
|
2013-12-05 13:54:50 +00:00
|
|
|
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
|
Add more random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
sin -0x1.02e34cp+0
|
|
|
|
sin 0xf.f0274p+4
|
|
|
|
sin 0x3.042d88p+0
|
2020-03-30 13:55:55 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary32)
|
|
|
|
sin 0x1.d12ed2p-12
|
2021-02-26 07:00:03 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (ldbl-96)
|
|
|
|
sin -0x6.e2368c006c018228p+16
|
|
|
|
# the next value generates larger error bounds on x86_64 (binary128)
|
|
|
|
sin 0x5.6a5005df4363833413fa44f74ae8p+64
|
Add more libm tests (scalb*, signbit, sin, sincos, sinh, sqrt, tan, tanh, tgamma, y0, y1, yn, significand).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of sin, sincos, sinh,
sqrt, tan, tanh, y0, y1 and yn.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (scalb_test_data): Add more tests.
(scalbn_test_data): Likewise.
(scalbln_test_data): Likewise.
(signbit_test_data): Likewise.
(sin_test_data): Likewise.
(sincos_test_data): Likewise.
(sinh_test_data): Likewise.
(sqrt_test_data): Likewise.
(tan_test_data): Likewise.
(tanh_test_data): Likewise.
(tgamma_test_data): Likewise.
(y0_test_data): Likewise.
(y1_test_data): Likewise.
(yn_test_data): Likewise.
(significand_test_data): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
2015-11-04 00:45:23 +00:00
|
|
|
sin max
|
|
|
|
sin -max
|
2015-06-23 22:24:20 +00:00
|
|
|
sin min
|
|
|
|
sin -min
|
|
|
|
sin min_subnorm
|
|
|
|
sin -min_subnorm
|
2016-07-18 17:03:09 +00:00
|
|
|
sin 0x1.8475e5afd4481p+0
|
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
|
Add more libm tests (scalb*, signbit, sin, sincos, sinh, sqrt, tan, tanh, tgamma, y0, y1, yn, significand).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of sin, sincos, sinh,
sqrt, tan, tanh, y0, y1 and yn.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (scalb_test_data): Add more tests.
(scalbn_test_data): Likewise.
(scalbln_test_data): Likewise.
(signbit_test_data): Likewise.
(sin_test_data): Likewise.
(sincos_test_data): Likewise.
(sinh_test_data): Likewise.
(sqrt_test_data): Likewise.
(tan_test_data): Likewise.
(tanh_test_data): Likewise.
(tgamma_test_data): Likewise.
(y0_test_data): Likewise.
(y1_test_data): Likewise.
(yn_test_data): Likewise.
(significand_test_data): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
2015-11-04 00:45:23 +00:00
|
|
|
sincos pi
|
|
|
|
sincos -pi
|
2013-12-19 17:21:01 +00:00
|
|
|
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
|
Add more random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
sincos -0x1.02e34cp+0
|
|
|
|
sincos 0xf.f0274p+4
|
|
|
|
sincos 0x3.042d88p+0
|
Add more libm tests (scalb*, signbit, sin, sincos, sinh, sqrt, tan, tanh, tgamma, y0, y1, yn, significand).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of sin, sincos, sinh,
sqrt, tan, tanh, y0, y1 and yn.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (scalb_test_data): Add more tests.
(scalbn_test_data): Likewise.
(scalbln_test_data): Likewise.
(signbit_test_data): Likewise.
(sin_test_data): Likewise.
(sincos_test_data): Likewise.
(sinh_test_data): Likewise.
(sqrt_test_data): Likewise.
(tan_test_data): Likewise.
(tanh_test_data): Likewise.
(tgamma_test_data): Likewise.
(y0_test_data): Likewise.
(y1_test_data): Likewise.
(yn_test_data): Likewise.
(significand_test_data): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
2015-11-04 00:45:23 +00:00
|
|
|
sincos max
|
|
|
|
sincos -max
|
2015-06-23 22:24:20 +00:00
|
|
|
sincos min
|
|
|
|
sincos -min
|
|
|
|
sincos min_subnorm
|
|
|
|
sincos -min_subnorm
|
2016-07-18 17:03:09 +00:00
|
|
|
sincos 0x1.8475e5afd4481p+0
|
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
|
Add more random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
sinh 0xb.7f67c3586c24p-4
|
|
|
|
sinh -0x1.3dda8ap+0
|
|
|
|
sinh -0x5.ee9218p-4
|
|
|
|
sinh -0x1.bcfc98p+0
|
|
|
|
sinh -0x6.9bbb6df7c5d08p-4
|
2021-02-26 07:00:03 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (ldbl-96)
|
|
|
|
sinh 0x2.c5d376167f4052f4p+12
|
2020-03-17 18:46:29 +00:00
|
|
|
sinh max
|
|
|
|
sinh -max
|
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
|
|
|
|
Add more libm tests (scalb*, signbit, sin, sincos, sinh, sqrt, tan, tanh, tgamma, y0, y1, yn, significand).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of sin, sincos, sinh,
sqrt, tan, tanh, y0, y1 and yn.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (scalb_test_data): Add more tests.
(scalbn_test_data): Likewise.
(scalbln_test_data): Likewise.
(signbit_test_data): Likewise.
(sin_test_data): Likewise.
(sincos_test_data): Likewise.
(sinh_test_data): Likewise.
(sqrt_test_data): Likewise.
(tan_test_data): Likewise.
(tanh_test_data): Likewise.
(tgamma_test_data): Likewise.
(y0_test_data): Likewise.
(y1_test_data): Likewise.
(yn_test_data): Likewise.
(significand_test_data): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
2015-11-04 00:45:23 +00:00
|
|
|
sinh 0x5.96a7ep+4
|
|
|
|
sinh 0x5.96a7e8p+4
|
|
|
|
sinh 0x2.c679d1f73f0fap+8
|
2017-01-09 22:40:59 +00:00
|
|
|
sinh 0x2.c679d1f73f0fcp+8
|
2017-01-04 23:29:42 +00:00
|
|
|
sinh 0x2.c679d1f73f0fb624d358b213a7p+8 xfail-rounding:ibm128-libgcc
|
|
|
|
sinh 0x2.c679d1f73f0fb624d358b213a8p+8 xfail-rounding:ibm128-libgcc
|
2020-03-17 18:46:29 +00:00
|
|
|
sinh 0x2.c5d37700c6bb03a4p+12
|
|
|
|
sinh 0x2.c5d37700c6bb03a8p+12
|
|
|
|
sinh 0x2.c5d37700c6bb03a6c24b6c9b494cp+12
|
|
|
|
sinh 0x2.c5d37700c6bb03a6c24b6c9b494ep+12
|
2020-11-25 18:03:33 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary64)
|
|
|
|
sinh -0x1.633c62890fa14p+9
|
Add more libm tests (scalb*, signbit, sin, sincos, sinh, sqrt, tan, tanh, tgamma, y0, y1, yn, significand).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of sin, sincos, sinh,
sqrt, tan, tanh, y0, y1 and yn.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (scalb_test_data): Add more tests.
(scalbn_test_data): Likewise.
(scalbln_test_data): Likewise.
(signbit_test_data): Likewise.
(sin_test_data): Likewise.
(sincos_test_data): Likewise.
(sinh_test_data): Likewise.
(sqrt_test_data): Likewise.
(tan_test_data): Likewise.
(tanh_test_data): Likewise.
(tgamma_test_data): Likewise.
(y0_test_data): Likewise.
(y1_test_data): Likewise.
(yn_test_data): Likewise.
(significand_test_data): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
2015-11-04 00:45:23 +00:00
|
|
|
|
Add narrowing subtract functions.
This patch adds the narrowing subtract functions from TS 18661-1 to
glibc's libm: fsub, fsubl, dsubl, f32subf64, f32subf32x, f32xsubf64
for all configurations; f32subf64x, f32subf128, f64subf64x,
f64subf128, f32xsubf64x, f32xsubf128, f64xsubf128 for configurations
with _Float64x and _Float128; __nldbl_dsubl for ldbl-opt.
The changes are essentially the same as for the narrowing add
functions, so the description of those generally applies to this patch
as well.
Tested for x86_64, x86, mips64 (all three ABIs, both hard and soft
float) and powerpc, and with build-many-glibcs.py.
* math/Makefile (libm-narrow-fns): Add sub.
(libm-test-funcs-narrow): Likewise.
* math/Versions (GLIBC_2.28): Add narrowing subtract functions.
* math/bits/mathcalls-narrow.h (sub): Use __MATHCALL_NARROW.
* math/gen-auto-libm-tests.c (test_functions): Add sub.
* math/math-narrow.h (CHECK_NARROW_SUB): New macro.
(NARROW_SUB_ROUND_TO_ODD): Likewise.
(NARROW_SUB_TRIVIAL): Likewise.
* sysdeps/ieee754/float128/float128_private.h (__fsubl): New
macro.
(__dsubl): Likewise.
* sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add fsub and
dsub.
(CFLAGS-nldbl-dsub.c): New variable.
(CFLAGS-nldbl-fsub.c): Likewise.
* sysdeps/ieee754/ldbl-opt/Versions (GLIBC_2.28): Add
__nldbl_dsubl.
* sysdeps/ieee754/ldbl-opt/nldbl-compat.h (__nldbl_dsubl): New
prototype.
* manual/arith.texi (Misc FP Arithmetic): Document fsub, fsubl,
dsubl, fMsubfN, fMsubfNx, fMxsubfN and fMxsubfNx.
* math/auto-libm-test-in: Add tests of sub.
* math/auto-libm-test-out-narrow-sub: New generated file.
* math/libm-test-narrow-sub.inc: New file.
* sysdeps/i386/fpu/s_f32xsubf64.c: Likewise.
* sysdeps/ieee754/dbl-64/s_f32xsubf64.c: Likewise.
* sysdeps/ieee754/dbl-64/s_fsub.c: Likewise.
* sysdeps/ieee754/float128/s_f32subf128.c: Likewise.
* sysdeps/ieee754/float128/s_f64subf128.c: Likewise.
* sysdeps/ieee754/float128/s_f64xsubf128.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_dsubl.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_f64xsubf128.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_fsubl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/s_dsubl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/s_fsubl.c: Likewise.
* sysdeps/ieee754/ldbl-96/s_dsubl.c: Likewise.
* sysdeps/ieee754/ldbl-96/s_fsubl.c: Likewise.
* sysdeps/ieee754/ldbl-opt/nldbl-dsub.c: Likewise.
* sysdeps/ieee754/ldbl-opt/nldbl-fsub.c: Likewise.
* sysdeps/ieee754/soft-fp/s_dsubl.c: Likewise.
* sysdeps/ieee754/soft-fp/s_fsub.c: Likewise.
* sysdeps/ieee754/soft-fp/s_fsubl.c: Likewise.
* sysdeps/powerpc/fpu/libm-test-ulps: Update.
* sysdeps/mach/hurd/i386/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2018-03-20 00:34:52 +00:00
|
|
|
sub 0 0
|
|
|
|
sub 0 -0
|
|
|
|
sub -0 0
|
|
|
|
sub -0 -0
|
|
|
|
sub max max
|
|
|
|
sub max -max
|
|
|
|
sub -max max
|
|
|
|
sub -max -max
|
|
|
|
sub min min missing-underflow:arg-ibm128
|
|
|
|
sub min -min missing-underflow:arg-ibm128
|
|
|
|
sub -min min missing-underflow:arg-ibm128
|
|
|
|
sub -min -min missing-underflow:arg-ibm128
|
|
|
|
sub min_subnorm min_subnorm missing-underflow:arg-ibm128
|
|
|
|
sub min_subnorm -min_subnorm missing-underflow:arg-ibm128
|
|
|
|
sub -min_subnorm min_subnorm missing-underflow:arg-ibm128
|
|
|
|
sub -min_subnorm -min_subnorm missing-underflow:arg-ibm128
|
|
|
|
sub 1 2
|
|
|
|
sub 1 -2
|
|
|
|
sub -1 2
|
|
|
|
sub -1 -2
|
|
|
|
sub 100.5 0.75
|
|
|
|
sub 100.5 -0.75
|
|
|
|
sub -100.5 0.75
|
|
|
|
sub -100.5 -0.75
|
|
|
|
sub 1 0x1p-23
|
|
|
|
sub 1 0x1.7fp-23
|
|
|
|
sub 1 0x1.8p-23
|
|
|
|
sub 1 0x1.81p-23
|
|
|
|
sub 1 0x1p-24
|
|
|
|
sub 1 0x1.1p-24
|
|
|
|
sub 1 0x0.fp-24
|
|
|
|
sub 1 min
|
|
|
|
sub 1 -min
|
|
|
|
sub 1 min_subnorm
|
|
|
|
sub 1 -min_subnorm
|
|
|
|
sub -1 min
|
|
|
|
sub -1 -min
|
|
|
|
sub -1 min_subnorm
|
|
|
|
sub -1 -min_subnorm
|
|
|
|
# Cases where larger argument is half way between two values of a
|
|
|
|
# floating-point format, so that double rounding would sometimes yield
|
|
|
|
# the wrong result.
|
|
|
|
sub 0x1.000001p0 min
|
|
|
|
sub 0x1.000001p0 -min
|
|
|
|
sub 0x1.000001p0 min_subnorm
|
|
|
|
sub 0x1.000001p0 -min_subnorm
|
|
|
|
sub -0x1.000001p0 min
|
|
|
|
sub -0x1.000001p0 -min
|
|
|
|
sub -0x1.000001p0 min_subnorm
|
|
|
|
sub -0x1.000001p0 -min_subnorm
|
|
|
|
sub 0x1.00000000000008p0 min
|
|
|
|
sub 0x1.00000000000008p0 -min
|
|
|
|
sub 0x1.00000000000008p0 min_subnorm
|
|
|
|
sub 0x1.00000000000008p0 -min_subnorm
|
|
|
|
sub -0x1.00000000000008p0 min
|
|
|
|
sub -0x1.00000000000008p0 -min
|
|
|
|
sub -0x1.00000000000008p0 min_subnorm
|
|
|
|
sub -0x1.00000000000008p0 -min_subnorm
|
|
|
|
sub 0x1.0000000000000001p0 min
|
|
|
|
sub 0x1.0000000000000001p0 -min
|
|
|
|
sub 0x1.0000000000000001p0 min_subnorm
|
|
|
|
sub 0x1.0000000000000001p0 -min_subnorm
|
|
|
|
sub -0x1.0000000000000001p0 min
|
|
|
|
sub -0x1.0000000000000001p0 -min
|
|
|
|
sub -0x1.0000000000000001p0 min_subnorm
|
|
|
|
sub -0x1.0000000000000001p0 -min_subnorm
|
|
|
|
# Two values representable in the same format with difference very
|
|
|
|
# close to half way between two representable values. In particular,
|
|
|
|
# verify that there is no intermediate rounding to 64 bits when
|
|
|
|
# subtracting two double values.
|
|
|
|
sub 1 0x1.000002p-24
|
|
|
|
sub 1 -0x1.000002p-24
|
|
|
|
sub 1 0x0.ffffffp-24
|
|
|
|
sub 1 -0x0.ffffffp-24
|
|
|
|
sub 0x1.000002p0 0x1.000002p-24
|
|
|
|
sub 0x1.000002p0 -0x1.000002p-24
|
|
|
|
sub 0x1.000002p0 0x0.ffffffp-24
|
|
|
|
sub 0x1.000002p0 -0x0.ffffffp-24
|
|
|
|
sub 1 0x1.0000000000001p-53
|
|
|
|
sub 1 -0x1.0000000000001p-53
|
|
|
|
sub 1 0x0.fffffffffffff8p-53
|
|
|
|
sub 1 -0x0.fffffffffffff8p-53
|
|
|
|
sub 0x1.0000000000001p0 0x1.0000000000001p-53
|
|
|
|
sub 0x1.0000000000001p0 -0x1.0000000000001p-53
|
|
|
|
sub 0x1.0000000000001p0 0x0.fffffffffffff8p-53
|
|
|
|
sub 0x1.0000000000001p0 -0x0.fffffffffffff8p-53
|
|
|
|
sub 1 0x1.0000000000000002p-64
|
|
|
|
sub 1 -0x1.0000000000000002p-64
|
|
|
|
sub 1 0x0.ffffffffffffffffp-64
|
|
|
|
sub 1 -0x0.ffffffffffffffffp-64
|
|
|
|
sub 0x1.0000000000000002p0 0x1.0000000000000002p-64
|
|
|
|
sub 0x1.0000000000000002p0 -0x1.0000000000000002p-64
|
|
|
|
sub 0x1.0000000000000002p0 0x0.ffffffffffffffffp-64
|
|
|
|
sub 0x1.0000000000000002p0 -0x0.ffffffffffffffffp-64
|
|
|
|
|
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
|
Add more libm tests (scalb*, signbit, sin, sincos, sinh, sqrt, tan, tanh, tgamma, y0, y1, yn, significand).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of sin, sincos, sinh,
sqrt, tan, tanh, y0, y1 and yn.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (scalb_test_data): Add more tests.
(scalbn_test_data): Likewise.
(scalbln_test_data): Likewise.
(signbit_test_data): Likewise.
(sin_test_data): Likewise.
(sincos_test_data): Likewise.
(sinh_test_data): Likewise.
(sqrt_test_data): Likewise.
(tan_test_data): Likewise.
(tanh_test_data): Likewise.
(tgamma_test_data): Likewise.
(y0_test_data): Likewise.
(y1_test_data): Likewise.
(yn_test_data): Likewise.
(significand_test_data): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
2015-11-04 00:45:23 +00:00
|
|
|
sqrt max
|
|
|
|
sqrt min
|
|
|
|
sqrt min_subnorm
|
2013-12-05 13:54:50 +00:00
|
|
|
|
|
|
|
tan 0
|
2023-10-05 16:10:48 +00:00
|
|
|
tan -0 no-mathvec
|
2013-12-05 13:54:50 +00:00
|
|
|
tan pi/4
|
Add more libm tests (scalb*, signbit, sin, sincos, sinh, sqrt, tan, tanh, tgamma, y0, y1, yn, significand).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of sin, sincos, sinh,
sqrt, tan, tanh, y0, y1 and yn.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (scalb_test_data): Add more tests.
(scalbn_test_data): Likewise.
(scalbln_test_data): Likewise.
(signbit_test_data): Likewise.
(sin_test_data): Likewise.
(sincos_test_data): Likewise.
(sinh_test_data): Likewise.
(sqrt_test_data): Likewise.
(tan_test_data): Likewise.
(tanh_test_data): Likewise.
(tgamma_test_data): Likewise.
(y0_test_data): Likewise.
(y1_test_data): Likewise.
(yn_test_data): Likewise.
(significand_test_data): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
2015-11-04 00:45:23 +00:00
|
|
|
tan pi/2
|
|
|
|
tan -pi/2
|
2013-12-05 13:54:50 +00:00
|
|
|
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
|
Add more random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
tan -0x1.0d55b8p+0
|
2017-03-15 22:00:54 +00:00
|
|
|
tan 1.57079697
|
|
|
|
tan -1.57079697
|
Add more libm tests (scalb*, signbit, sin, sincos, sinh, sqrt, tan, tanh, tgamma, y0, y1, yn, significand).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of sin, sincos, sinh,
sqrt, tan, tanh, y0, y1 and yn.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (scalb_test_data): Add more tests.
(scalbn_test_data): Likewise.
(scalbln_test_data): Likewise.
(signbit_test_data): Likewise.
(sin_test_data): Likewise.
(sincos_test_data): Likewise.
(sinh_test_data): Likewise.
(sqrt_test_data): Likewise.
(tan_test_data): Likewise.
(tanh_test_data): Likewise.
(tgamma_test_data): Likewise.
(y0_test_data): Likewise.
(y1_test_data): Likewise.
(yn_test_data): Likewise.
(significand_test_data): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
2015-11-04 00:45:23 +00:00
|
|
|
tan 0x1p-5
|
|
|
|
tan 0x1p-10
|
|
|
|
tan 0x1p-15
|
|
|
|
tan 0x1p-20
|
|
|
|
tan 0x1p-25
|
|
|
|
tan 0x1p-30
|
|
|
|
tan 0x1p-35
|
|
|
|
tan 0x1p-40
|
|
|
|
tan 0x1p-45
|
|
|
|
tan 0x1p-50
|
|
|
|
tan 0x1p-55
|
|
|
|
tan 0x1p-60
|
|
|
|
tan 0x1p-100
|
|
|
|
tan 0x1p-600
|
|
|
|
tan 0x1p-10000
|
|
|
|
tan max
|
|
|
|
tan -max
|
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
|
2024-02-20 16:59:44 +00:00
|
|
|
tanh -0 no-mathvec
|
2013-12-05 13:54:50 +00:00
|
|
|
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
|
Add more random libm test inputs (mainly for ldbl-128).
This patch adds more libm test inputs found through random test
generation to increase previously known ulps. This particular test
generation was run for mips64, so most of the increased ulps are for
ldbl-128 (float and double having been fairly well covered by such
testing for x86_64), but there's the odd ulps increase for other
formats.
Tested for x86_64, x86 and mips64.
* math/auto-libm-test-in: Add more tests of acos, acosh, asin,
asinh, atan, atan2, atanh, cabs, carg, cos, csqrt, erfc, exp,
exp10, exp2, log, log1p, log2, pow, sin, sincos, sinh, tan and
tanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2015-09-12 00:01:38 +00:00
|
|
|
tanh -0x3.2f59p-4
|
|
|
|
tanh 0x2.e6f54cp-4
|
|
|
|
tanh 0x3.397f2f50241d031p-4
|
|
|
|
tanh 0x8.4024a11b6610672b2982b852e8p-4
|
Add more libm tests (scalb*, signbit, sin, sincos, sinh, sqrt, tan, tanh, tgamma, y0, y1, yn, significand).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of sin, sincos, sinh,
sqrt, tan, tanh, y0, y1 and yn.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (scalb_test_data): Add more tests.
(scalbn_test_data): Likewise.
(scalbln_test_data): Likewise.
(signbit_test_data): Likewise.
(sin_test_data): Likewise.
(sincos_test_data): Likewise.
(sinh_test_data): Likewise.
(sqrt_test_data): Likewise.
(tan_test_data): Likewise.
(tanh_test_data): Likewise.
(tgamma_test_data): Likewise.
(y0_test_data): Likewise.
(y1_test_data): Likewise.
(yn_test_data): Likewise.
(significand_test_data): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
2015-11-04 00:45:23 +00:00
|
|
|
tanh 0x1p-5
|
|
|
|
tanh 0x1p-10
|
|
|
|
tanh 0x1p-15
|
|
|
|
tanh 0x1p-20
|
|
|
|
tanh 0x1p-25
|
|
|
|
tanh 0x1p-30
|
|
|
|
tanh 0x1p-35
|
|
|
|
tanh 0x1p-40
|
|
|
|
tanh 0x1p-45
|
|
|
|
tanh 0x1p-50
|
|
|
|
tanh 0x1p-55
|
|
|
|
tanh 0x1p-60
|
|
|
|
tanh 0x1p-100
|
|
|
|
tanh 0x1p-600
|
|
|
|
tanh 0x1p-10000
|
2021-02-26 07:00:03 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (ldbl-96)
|
|
|
|
tanh 0x3.b9979a543d0fbfa8p-4
|
Add more libm tests (scalb*, signbit, sin, sincos, sinh, sqrt, tan, tanh, tgamma, y0, y1, yn, significand).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of sin, sincos, sinh,
sqrt, tan, tanh, y0, y1 and yn.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (scalb_test_data): Add more tests.
(scalbn_test_data): Likewise.
(scalbln_test_data): Likewise.
(signbit_test_data): Likewise.
(sin_test_data): Likewise.
(sincos_test_data): Likewise.
(sinh_test_data): Likewise.
(sqrt_test_data): Likewise.
(tan_test_data): Likewise.
(tanh_test_data): Likewise.
(tgamma_test_data): Likewise.
(y0_test_data): Likewise.
(y1_test_data): Likewise.
(yn_test_data): Likewise.
(significand_test_data): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
2015-11-04 00:45:23 +00:00
|
|
|
tanh max
|
|
|
|
tanh -max
|
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.
|
2016-06-08 19:41:05 +00:00
|
|
|
tgamma 0x1p-128 spurious-overflow:binary32
|
2013-12-05 13:54:50 +00:00
|
|
|
tgamma -0x1p-128
|
|
|
|
tgamma 0x1p-149
|
|
|
|
tgamma -0x1p-149
|
|
|
|
tgamma 0x1p-1023
|
|
|
|
tgamma -0x1p-1023
|
2017-01-09 22:40:59 +00:00
|
|
|
tgamma 0x1p-1024 spurious-overflow:binary64 spurious-overflow:ibm128
|
|
|
|
tgamma -0x1p-1024
|
|
|
|
tgamma 0x1p-1074
|
|
|
|
tgamma -0x1p-1074
|
|
|
|
tgamma 0x1p-16383
|
|
|
|
tgamma -0x1p-16383
|
2016-06-08 19:41:05 +00:00
|
|
|
tgamma 0x1p-16384 spurious-overflow:intel96 spurious-overflow:m68k96 spurious-overflow:binary128
|
2017-01-09 22:40:59 +00:00
|
|
|
tgamma -0x1p-16384
|
|
|
|
tgamma 0x1p-16445
|
|
|
|
tgamma -0x1p-16445
|
|
|
|
tgamma 0x1p-16494
|
|
|
|
tgamma -0x1p-16494
|
2013-12-05 13:54:50 +00:00
|
|
|
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
|
2017-01-09 22:40:59 +00:00
|
|
|
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
|
|
|
|
tgamma 1e3
|
2013-12-05 14:01:41 +00:00
|
|
|
tgamma -100000.5
|
2017-01-09 22:40:59 +00:00
|
|
|
tgamma max
|
2013-12-05 13:54:50 +00:00
|
|
|
|
2015-09-17 15:51:54 +00:00
|
|
|
tgamma -0x22.30p0
|
|
|
|
tgamma -0x22.31p0
|
|
|
|
tgamma -0x22.32p0
|
|
|
|
tgamma -0x22.33p0
|
|
|
|
tgamma -0x22.34p0
|
|
|
|
tgamma -0x22.35p0
|
|
|
|
tgamma -0x22.36p0
|
|
|
|
tgamma -0x22.37p0
|
|
|
|
tgamma -0xa3.70p0
|
|
|
|
tgamma -0xa3.71p0
|
|
|
|
tgamma -0xa3.72p0
|
|
|
|
tgamma -0xa3.73p0
|
|
|
|
tgamma -0xa3.74p0
|
|
|
|
tgamma -0xa3.75p0
|
|
|
|
tgamma -0xa3.76p0
|
|
|
|
tgamma -0xa3.77p0
|
|
|
|
tgamma -0xab.0d0p0
|
|
|
|
tgamma -0xab.0d1p0
|
|
|
|
tgamma -0xab.0d2p0
|
|
|
|
tgamma -0xab.0d3p0
|
|
|
|
tgamma -0xab.0d4p0
|
|
|
|
tgamma -0xab.0d5p0
|
|
|
|
tgamma -0xab.0d6p0
|
|
|
|
tgamma -0xab.0d7p0
|
|
|
|
tgamma -0x6db.030p0
|
|
|
|
tgamma -0x6db.031p0
|
|
|
|
tgamma -0x6db.032p0
|
|
|
|
tgamma -0x6db.033p0
|
|
|
|
tgamma -0x6db.034p0
|
|
|
|
tgamma -0x6db.035p0
|
|
|
|
tgamma -0x6db.036p0
|
|
|
|
tgamma -0x6db.037p0
|
|
|
|
tgamma -0x6db.050p0
|
|
|
|
tgamma -0x6db.051p0
|
|
|
|
tgamma -0x6db.052p0
|
|
|
|
tgamma -0x6db.053p0
|
|
|
|
tgamma -0x6db.054p0
|
|
|
|
tgamma -0x6db.055p0
|
|
|
|
tgamma -0x6db.056p0
|
|
|
|
tgamma -0x6db.057p0
|
|
|
|
|
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
|
2020-03-30 13:55:55 +00:00
|
|
|
# the next value generates larger error bounds on x86_64 (binary32)
|
|
|
|
tgamma -0x3.0aa534p+0
|
2021-04-02 06:21:06 +00:00
|
|
|
# the next values generate large error bounds on x86_64 (binary64)
|
2020-11-25 18:03:33 +00:00
|
|
|
tgamma -0x1.62b8c36c7180bp+4
|
2021-04-02 06:21:06 +00:00
|
|
|
tgamma -0x1.62c4d519e8677p+3
|
|
|
|
tgamma -0x1.c033cc426752fp+2
|
|
|
|
tgamma -0x1.62cfd0d34ade2p+3
|
|
|
|
tgamma -0x1.8814da6eb7dbp+5
|
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
|
Add more libm tests (scalb*, signbit, sin, sincos, sinh, sqrt, tan, tanh, tgamma, y0, y1, yn, significand).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of sin, sincos, sinh,
sqrt, tan, tanh, y0, y1 and yn.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (scalb_test_data): Add more tests.
(scalbn_test_data): Likewise.
(scalbln_test_data): Likewise.
(signbit_test_data): Likewise.
(sin_test_data): Likewise.
(sincos_test_data): Likewise.
(sinh_test_data): Likewise.
(sqrt_test_data): Likewise.
(tan_test_data): Likewise.
(tanh_test_data): Likewise.
(tgamma_test_data): Likewise.
(y0_test_data): Likewise.
(y1_test_data): Likewise.
(yn_test_data): Likewise.
(significand_test_data): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
2015-11-04 00:45:23 +00:00
|
|
|
y0 0x1p-600
|
|
|
|
y0 0x1p-10000
|
Fix the inaccuracy of j0f/j1f/y0f/y1f [BZ #14469, #14470, #14471, #14472]
For j0f/j1f/y0f/y1f, the largest error for all binary32
inputs is reduced to at most 9 ulps for all rounding modes.
The new code is enabled only when there is a cancellation at the very end of
the j0f/j1f/y0f/y1f computation, or for very large inputs, thus should not
give any visible slowdown on average. Two different algorithms are used:
* around the first 64 zeros of j0/j1/y0/y1, approximation polynomials of
degree 3 are used, computed using the Sollya tool (https://www.sollya.org/)
* for large inputs, an asymptotic formula from [1] is used
[1] Fast and Accurate Bessel Function Computation,
John Harrison, Proceedings of Arith 19, 2009.
Inputs yielding the new largest errors are added to auto-libm-test-in,
and ulps are regenerated for various targets (thanks Adhemerval Zanella).
Tested on x86_64 with --disable-multi-arch and on powerpc64le-linux-gnu.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2021-04-01 06:14:10 +00:00
|
|
|
# the next values yield large errors for binary32
|
|
|
|
# (cf BZ #16492 for the xfail entries)
|
2020-03-30 13:55:55 +00:00
|
|
|
y0 0xd.3432bp-4
|
Fix the inaccuracy of j0f/j1f/y0f/y1f [BZ #14469, #14470, #14471, #14472]
For j0f/j1f/y0f/y1f, the largest error for all binary32
inputs is reduced to at most 9 ulps for all rounding modes.
The new code is enabled only when there is a cancellation at the very end of
the j0f/j1f/y0f/y1f computation, or for very large inputs, thus should not
give any visible slowdown on average. Two different algorithms are used:
* around the first 64 zeros of j0/j1/y0/y1, approximation polynomials of
degree 3 are used, computed using the Sollya tool (https://www.sollya.org/)
* for large inputs, an asymptotic formula from [1] is used
[1] Fast and Accurate Bessel Function Computation,
John Harrison, Proceedings of Arith 19, 2009.
Inputs yielding the new largest errors are added to auto-libm-test-in,
and ulps are regenerated for various targets (thanks Adhemerval Zanella).
Tested on x86_64 with --disable-multi-arch and on powerpc64le-linux-gnu.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2021-04-01 06:14:10 +00:00
|
|
|
y0 0x1.33eaacp+5 xfail:binary64 xfail:intel96 xfail-rounding:ibm128-libgcc
|
|
|
|
y0 0x1.a681cep-1 xfail-rounding:ibm128-libgcc
|
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
|
Add more libm tests (scalb*, signbit, sin, sincos, sinh, sqrt, tan, tanh, tgamma, y0, y1, yn, significand).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of sin, sincos, sinh,
sqrt, tan, tanh, y0, y1 and yn.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (scalb_test_data): Add more tests.
(scalbn_test_data): Likewise.
(scalbln_test_data): Likewise.
(signbit_test_data): Likewise.
(sin_test_data): Likewise.
(sincos_test_data): Likewise.
(sinh_test_data): Likewise.
(sqrt_test_data): Likewise.
(tan_test_data): Likewise.
(tanh_test_data): Likewise.
(tgamma_test_data): Likewise.
(y0_test_data): Likewise.
(y1_test_data): Likewise.
(yn_test_data): Likewise.
(significand_test_data): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
2015-11-04 00:45:23 +00:00
|
|
|
y1 0x1p-600
|
|
|
|
y1 0x1p-10000
|
Fix the inaccuracy of j0f/j1f/y0f/y1f [BZ #14469, #14470, #14471, #14472]
For j0f/j1f/y0f/y1f, the largest error for all binary32
inputs is reduced to at most 9 ulps for all rounding modes.
The new code is enabled only when there is a cancellation at the very end of
the j0f/j1f/y0f/y1f computation, or for very large inputs, thus should not
give any visible slowdown on average. Two different algorithms are used:
* around the first 64 zeros of j0/j1/y0/y1, approximation polynomials of
degree 3 are used, computed using the Sollya tool (https://www.sollya.org/)
* for large inputs, an asymptotic formula from [1] is used
[1] Fast and Accurate Bessel Function Computation,
John Harrison, Proceedings of Arith 19, 2009.
Inputs yielding the new largest errors are added to auto-libm-test-in,
and ulps are regenerated for various targets (thanks Adhemerval Zanella).
Tested on x86_64 with --disable-multi-arch and on powerpc64le-linux-gnu.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2021-04-01 06:14:10 +00:00
|
|
|
# the next three values yield the largest error in the binary32 format
|
|
|
|
# (cf BZ #27670 for the xfail entries)
|
|
|
|
y1 0x1.065194p+7 xfail-rounding:binary64 xfail-rounding:intel96 xfail-rounding:ibm128-libgcc
|
|
|
|
y1 0x1.c1badep+0 xfail-rounding:ibm128-libgcc
|
|
|
|
y1 0x1.c1bc2ep+0
|
2017-01-09 22:40:59 +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
|
Add more libm tests (scalb*, signbit, sin, sincos, sinh, sqrt, tan, tanh, tgamma, y0, y1, yn, significand).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of sin, sincos, sinh,
sqrt, tan, tanh, y0, y1 and yn.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (scalb_test_data): Add more tests.
(scalbn_test_data): Likewise.
(scalbln_test_data): Likewise.
(signbit_test_data): Likewise.
(sin_test_data): Likewise.
(sincos_test_data): Likewise.
(sinh_test_data): Likewise.
(sqrt_test_data): Likewise.
(tan_test_data): Likewise.
(tanh_test_data): Likewise.
(tgamma_test_data): Likewise.
(y0_test_data): Likewise.
(y1_test_data): Likewise.
(yn_test_data): Likewise.
(significand_test_data): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
2015-11-04 00:45:23 +00:00
|
|
|
yn 3 0x1p-10
|
|
|
|
yn 3 0x1p-100
|
2017-01-09 22:40:59 +00:00
|
|
|
yn 3 0x1p-600
|
|
|
|
yn 3 0x1p-10000
|
2013-12-18 17:59:29 +00:00
|
|
|
|
|
|
|
# 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
|
|
|
|
|
2017-01-09 22:40:59 +00:00
|
|
|
yn 10 min
|
2013-12-18 17:59:29 +00:00
|
|
|
|
|
|
|
yn 2 0x1.ffff62p+99
|
|
|
|
yn 2 0x1p127
|
|
|
|
yn 2 0x1p1023
|
|
|
|
yn 2 0x1p16383
|
Add more libm tests (scalb*, signbit, sin, sincos, sinh, sqrt, tan, tanh, tgamma, y0, y1, yn, significand).
This patch improves the libm test coverage for a few more functions.
Tested for x86_64 and x86.
* math/auto-libm-test-in: Add more tests of sin, sincos, sinh,
sqrt, tan, tanh, y0, y1 and yn.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (scalb_test_data): Add more tests.
(scalbn_test_data): Likewise.
(scalbln_test_data): Likewise.
(signbit_test_data): Likewise.
(sin_test_data): Likewise.
(sincos_test_data): Likewise.
(sinh_test_data): Likewise.
(sqrt_test_data): Likewise.
(tan_test_data): Likewise.
(tanh_test_data): Likewise.
(tgamma_test_data): Likewise.
(y0_test_data): Likewise.
(y1_test_data): Likewise.
(yn_test_data): Likewise.
(significand_test_data): Likewise.
* sysdeps/i386/fpu/libm-test-ulps: Update.
2015-11-04 00:45:23 +00:00
|
|
|
yn 2 0x1p-10
|
|
|
|
yn 2 0x1p-100
|
2017-01-09 22:40:59 +00:00
|
|
|
yn 2 0x1p-600
|
|
|
|
yn 2 0x1p-10000
|
2014-06-23 20:17:13 +00:00
|
|
|
|
|
|
|
yn 0 min
|
|
|
|
yn 0 min_subnorm
|
2017-01-09 22:40:59 +00:00
|
|
|
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
|