mirror of git://sourceware.org/git/glibc.git
math: Sync atanh from CORE-MATH
The CORE-MATH commit dc9465e7 fixes some issues: Failure: Test: atanh_towardzero (0x8.3f79103b3c64p-4) Result: is: 5.7018661316561103e-01 0x1.23ef7ff0539c6p-1 should be: 5.7018661316561092e-01 0x1.23ef7ff0539c5p-1 difference: 1.1102230246251565e-16 0x1.0000000000000p-53 ulp : 1.0000 max.ulp : 0.0000 Failure: Test: atanh_towardzero (0x8.3f7d95aabaf7p-4) Result: is: 5.7019248543911060e-01 0x1.23f044fac5997p-1 should be: 5.7019248543911049e-01 0x1.23f044fac5996p-1 difference: 1.1102230246251565e-16 0x1.0000000000000p-53 ulp : 1.0000 max.ulp : 0.0000 Failure: Test: atanh_towardzero (0x8.3f805380d6728p-4) Result: is: 5.7019604623795527e-01 0x1.23f0bc75cd113p-1 should be: 5.7019604623795516e-01 0x1.23f0bc75cd112p-1 difference: 1.1102230246251565e-16 0x1.0000000000000p-53 ulp : 1.0000 max.ulp : 0.0000 Maximal error of `atanh_towardzero' is : 1 ulp accepted: 0 ulp Checked on x86_64-linux-gnu, x86_64-linux-gnu-v3, aarch64-linux-gnu, and i686-linux-gnu.
This commit is contained in:
parent
bc4bc1650b
commit
a61f7fd59d
|
|
@ -246,7 +246,7 @@ tzdata:
|
||||||
core-math:
|
core-math:
|
||||||
# src/binary64/acosh/acosh.c, revision 6736002f
|
# src/binary64/acosh/acosh.c, revision 6736002f
|
||||||
sysdeps/ieee754/dbl-64/e_acosh.c
|
sysdeps/ieee754/dbl-64/e_acosh.c
|
||||||
# src/binary64/atanh/atanh.c, revision 703d7487
|
# src/binary64/atanh/atanh.c, revision dc9465e7
|
||||||
sysdeps/ieee754/dbl-64/e_atanh.c
|
sysdeps/ieee754/dbl-64/e_atanh.c
|
||||||
# src/binary64/tgamma/tgamma.c, revision 0f185e23
|
# src/binary64/tgamma/tgamma.c, revision 0f185e23
|
||||||
sysdeps/ieee754/dbl-64/e_gamma_r.c
|
sysdeps/ieee754/dbl-64/e_gamma_r.c
|
||||||
|
|
|
||||||
|
|
@ -897,6 +897,10 @@ atanh 0x2.c1085p-4
|
||||||
atanh 0x1p-500
|
atanh 0x1p-500
|
||||||
atanh 0x1p-5000
|
atanh 0x1p-5000
|
||||||
atanh 0x1.658802e5e2da7p-2
|
atanh 0x1.658802e5e2da7p-2
|
||||||
|
atanh 0x1.07ef2207678c8p-1
|
||||||
|
atanh 0x1.07efb2b5575eep-1
|
||||||
|
atanh 0x1.d12ed0af1a27fp-27
|
||||||
|
atanh 0x1.07f00a701ace5p-1
|
||||||
# the next value generates larger error bounds in libmvec/avx512 on x86_64
|
# the next value generates larger error bounds in libmvec/avx512 on x86_64
|
||||||
# (binary32)
|
# (binary32)
|
||||||
atanh 0x1.f80094p-8
|
atanh 0x1.f80094p-8
|
||||||
|
|
|
||||||
|
|
@ -3181,6 +3181,282 @@ atanh 0x1.658802e5e2da7p-2
|
||||||
= atanh tonearest ibm128 0x5.96200b978b69cp-4 : 0x5.d4e627b45bea7fffffe2483036p-4 : inexact-ok
|
= atanh tonearest ibm128 0x5.96200b978b69cp-4 : 0x5.d4e627b45bea7fffffe2483036p-4 : inexact-ok
|
||||||
= atanh towardzero ibm128 0x5.96200b978b69cp-4 : 0x5.d4e627b45bea7fffffe2483036p-4 : inexact-ok
|
= atanh towardzero ibm128 0x5.96200b978b69cp-4 : 0x5.d4e627b45bea7fffffe2483036p-4 : inexact-ok
|
||||||
= atanh upward ibm128 0x5.96200b978b69cp-4 : 0x5.d4e627b45bea7fffffe2483038p-4 : inexact-ok
|
= atanh upward ibm128 0x5.96200b978b69cp-4 : 0x5.d4e627b45bea7fffffe2483038p-4 : inexact-ok
|
||||||
|
atanh 0x1.07ef2207678c8p-1
|
||||||
|
= atanh downward binary32 0x8.3f792p-4 : 0x9.1f7c1p-4 : inexact-ok
|
||||||
|
= atanh tonearest binary32 0x8.3f792p-4 : 0x9.1f7c1p-4 : inexact-ok
|
||||||
|
= atanh towardzero binary32 0x8.3f792p-4 : 0x9.1f7c1p-4 : inexact-ok
|
||||||
|
= atanh upward binary32 0x8.3f792p-4 : 0x9.1f7c2p-4 : inexact-ok
|
||||||
|
= atanh downward binary64 0x8.3f792p-4 : 0x9.1f7c14fc51528p-4 : inexact-ok
|
||||||
|
= atanh tonearest binary64 0x8.3f792p-4 : 0x9.1f7c14fc5153p-4 : inexact-ok
|
||||||
|
= atanh towardzero binary64 0x8.3f792p-4 : 0x9.1f7c14fc51528p-4 : inexact-ok
|
||||||
|
= atanh upward binary64 0x8.3f792p-4 : 0x9.1f7c14fc5153p-4 : inexact-ok
|
||||||
|
= atanh downward intel96 0x8.3f792p-4 : 0x9.1f7c14fc5152dbdp-4 : inexact-ok
|
||||||
|
= atanh tonearest intel96 0x8.3f792p-4 : 0x9.1f7c14fc5152dbep-4 : inexact-ok
|
||||||
|
= atanh towardzero intel96 0x8.3f792p-4 : 0x9.1f7c14fc5152dbdp-4 : inexact-ok
|
||||||
|
= atanh upward intel96 0x8.3f792p-4 : 0x9.1f7c14fc5152dbep-4 : inexact-ok
|
||||||
|
= atanh downward m68k96 0x8.3f792p-4 : 0x9.1f7c14fc5152dbdp-4 : inexact-ok
|
||||||
|
= atanh tonearest m68k96 0x8.3f792p-4 : 0x9.1f7c14fc5152dbep-4 : inexact-ok
|
||||||
|
= atanh towardzero m68k96 0x8.3f792p-4 : 0x9.1f7c14fc5152dbdp-4 : inexact-ok
|
||||||
|
= atanh upward m68k96 0x8.3f792p-4 : 0x9.1f7c14fc5152dbep-4 : inexact-ok
|
||||||
|
= atanh downward binary128 0x8.3f792p-4 : 0x9.1f7c14fc5152dbdf16d95c98525p-4 : inexact-ok
|
||||||
|
= atanh tonearest binary128 0x8.3f792p-4 : 0x9.1f7c14fc5152dbdf16d95c985258p-4 : inexact-ok
|
||||||
|
= atanh towardzero binary128 0x8.3f792p-4 : 0x9.1f7c14fc5152dbdf16d95c98525p-4 : inexact-ok
|
||||||
|
= atanh upward binary128 0x8.3f792p-4 : 0x9.1f7c14fc5152dbdf16d95c985258p-4 : inexact-ok
|
||||||
|
= atanh downward ibm128 0x8.3f792p-4 : 0x9.1f7c14fc5152dbdf16d95c985p-4 : inexact-ok
|
||||||
|
= atanh tonearest ibm128 0x8.3f792p-4 : 0x9.1f7c14fc5152dbdf16d95c9854p-4 : inexact-ok
|
||||||
|
= atanh towardzero ibm128 0x8.3f792p-4 : 0x9.1f7c14fc5152dbdf16d95c985p-4 : inexact-ok
|
||||||
|
= atanh upward ibm128 0x8.3f792p-4 : 0x9.1f7c14fc5152dbdf16d95c9854p-4 : inexact-ok
|
||||||
|
= atanh downward binary32 0x8.3f791p-4 : 0x9.1f7bfp-4 : inexact-ok
|
||||||
|
= atanh tonearest binary32 0x8.3f791p-4 : 0x9.1f7cp-4 : inexact-ok
|
||||||
|
= atanh towardzero binary32 0x8.3f791p-4 : 0x9.1f7bfp-4 : inexact-ok
|
||||||
|
= atanh upward binary32 0x8.3f791p-4 : 0x9.1f7cp-4 : inexact-ok
|
||||||
|
= atanh downward binary64 0x8.3f791p-4 : 0x9.1f7bff31f05e8p-4 : inexact-ok
|
||||||
|
= atanh tonearest binary64 0x8.3f791p-4 : 0x9.1f7bff31f05e8p-4 : inexact-ok
|
||||||
|
= atanh towardzero binary64 0x8.3f791p-4 : 0x9.1f7bff31f05e8p-4 : inexact-ok
|
||||||
|
= atanh upward binary64 0x8.3f791p-4 : 0x9.1f7bff31f05fp-4 : inexact-ok
|
||||||
|
= atanh downward intel96 0x8.3f791p-4 : 0x9.1f7bff31f05e96ap-4 : inexact-ok
|
||||||
|
= atanh tonearest intel96 0x8.3f791p-4 : 0x9.1f7bff31f05e96ap-4 : inexact-ok
|
||||||
|
= atanh towardzero intel96 0x8.3f791p-4 : 0x9.1f7bff31f05e96ap-4 : inexact-ok
|
||||||
|
= atanh upward intel96 0x8.3f791p-4 : 0x9.1f7bff31f05e96bp-4 : inexact-ok
|
||||||
|
= atanh downward m68k96 0x8.3f791p-4 : 0x9.1f7bff31f05e96ap-4 : inexact-ok
|
||||||
|
= atanh tonearest m68k96 0x8.3f791p-4 : 0x9.1f7bff31f05e96ap-4 : inexact-ok
|
||||||
|
= atanh towardzero m68k96 0x8.3f791p-4 : 0x9.1f7bff31f05e96ap-4 : inexact-ok
|
||||||
|
= atanh upward m68k96 0x8.3f791p-4 : 0x9.1f7bff31f05e96bp-4 : inexact-ok
|
||||||
|
= atanh downward binary128 0x8.3f791p-4 : 0x9.1f7bff31f05e96a0476b046a1a98p-4 : inexact-ok
|
||||||
|
= atanh tonearest binary128 0x8.3f791p-4 : 0x9.1f7bff31f05e96a0476b046a1aap-4 : inexact-ok
|
||||||
|
= atanh towardzero binary128 0x8.3f791p-4 : 0x9.1f7bff31f05e96a0476b046a1a98p-4 : inexact-ok
|
||||||
|
= atanh upward binary128 0x8.3f791p-4 : 0x9.1f7bff31f05e96a0476b046a1aap-4 : inexact-ok
|
||||||
|
= atanh downward ibm128 0x8.3f791p-4 : 0x9.1f7bff31f05e96a0476b046a18p-4 : inexact-ok
|
||||||
|
= atanh tonearest ibm128 0x8.3f791p-4 : 0x9.1f7bff31f05e96a0476b046a1cp-4 : inexact-ok
|
||||||
|
= atanh towardzero ibm128 0x8.3f791p-4 : 0x9.1f7bff31f05e96a0476b046a18p-4 : inexact-ok
|
||||||
|
= atanh upward ibm128 0x8.3f791p-4 : 0x9.1f7bff31f05e96a0476b046a1cp-4 : inexact-ok
|
||||||
|
= atanh downward binary64 0x8.3f79103b3c64p-4 : 0x9.1f7bff829ce28p-4 : inexact-ok
|
||||||
|
= atanh tonearest binary64 0x8.3f79103b3c64p-4 : 0x9.1f7bff829ce3p-4 : inexact-ok
|
||||||
|
= atanh towardzero binary64 0x8.3f79103b3c64p-4 : 0x9.1f7bff829ce28p-4 : inexact-ok
|
||||||
|
= atanh upward binary64 0x8.3f79103b3c64p-4 : 0x9.1f7bff829ce3p-4 : inexact-ok
|
||||||
|
= atanh downward intel96 0x8.3f79103b3c64p-4 : 0x9.1f7bff829ce2fffp-4 : inexact-ok
|
||||||
|
= atanh tonearest intel96 0x8.3f79103b3c64p-4 : 0x9.1f7bff829ce3p-4 : inexact-ok
|
||||||
|
= atanh towardzero intel96 0x8.3f79103b3c64p-4 : 0x9.1f7bff829ce2fffp-4 : inexact-ok
|
||||||
|
= atanh upward intel96 0x8.3f79103b3c64p-4 : 0x9.1f7bff829ce3p-4 : inexact-ok
|
||||||
|
= atanh downward m68k96 0x8.3f79103b3c64p-4 : 0x9.1f7bff829ce2fffp-4 : inexact-ok
|
||||||
|
= atanh tonearest m68k96 0x8.3f79103b3c64p-4 : 0x9.1f7bff829ce3p-4 : inexact-ok
|
||||||
|
= atanh towardzero m68k96 0x8.3f79103b3c64p-4 : 0x9.1f7bff829ce2fffp-4 : inexact-ok
|
||||||
|
= atanh upward m68k96 0x8.3f79103b3c64p-4 : 0x9.1f7bff829ce3p-4 : inexact-ok
|
||||||
|
= atanh downward binary128 0x8.3f79103b3c64p-4 : 0x9.1f7bff829ce2fffffff7a2a84498p-4 : inexact-ok
|
||||||
|
= atanh tonearest binary128 0x8.3f79103b3c64p-4 : 0x9.1f7bff829ce2fffffff7a2a84498p-4 : inexact-ok
|
||||||
|
= atanh towardzero binary128 0x8.3f79103b3c64p-4 : 0x9.1f7bff829ce2fffffff7a2a84498p-4 : inexact-ok
|
||||||
|
= atanh upward binary128 0x8.3f79103b3c64p-4 : 0x9.1f7bff829ce2fffffff7a2a844ap-4 : inexact-ok
|
||||||
|
= atanh downward ibm128 0x8.3f79103b3c64p-4 : 0x9.1f7bff829ce2fffffff7a2a844p-4 : inexact-ok
|
||||||
|
= atanh tonearest ibm128 0x8.3f79103b3c64p-4 : 0x9.1f7bff829ce2fffffff7a2a844p-4 : inexact-ok
|
||||||
|
= atanh towardzero ibm128 0x8.3f79103b3c64p-4 : 0x9.1f7bff829ce2fffffff7a2a844p-4 : inexact-ok
|
||||||
|
= atanh upward ibm128 0x8.3f79103b3c64p-4 : 0x9.1f7bff829ce2fffffff7a2a848p-4 : inexact-ok
|
||||||
|
atanh 0x1.07efb2b5575eep-1
|
||||||
|
= atanh downward binary32 0x8.3f7dap-4 : 0x9.1f823p-4 : inexact-ok
|
||||||
|
= atanh tonearest binary32 0x8.3f7dap-4 : 0x9.1f823p-4 : inexact-ok
|
||||||
|
= atanh towardzero binary32 0x8.3f7dap-4 : 0x9.1f823p-4 : inexact-ok
|
||||||
|
= atanh upward binary32 0x8.3f7dap-4 : 0x9.1f824p-4 : inexact-ok
|
||||||
|
= atanh downward binary64 0x8.3f7dap-4 : 0x9.1f8235e8d01ep-4 : inexact-ok
|
||||||
|
= atanh tonearest binary64 0x8.3f7dap-4 : 0x9.1f8235e8d01e8p-4 : inexact-ok
|
||||||
|
= atanh towardzero binary64 0x8.3f7dap-4 : 0x9.1f8235e8d01ep-4 : inexact-ok
|
||||||
|
= atanh upward binary64 0x8.3f7dap-4 : 0x9.1f8235e8d01e8p-4 : inexact-ok
|
||||||
|
= atanh downward intel96 0x8.3f7dap-4 : 0x9.1f8235e8d01e785p-4 : inexact-ok
|
||||||
|
= atanh tonearest intel96 0x8.3f7dap-4 : 0x9.1f8235e8d01e786p-4 : inexact-ok
|
||||||
|
= atanh towardzero intel96 0x8.3f7dap-4 : 0x9.1f8235e8d01e785p-4 : inexact-ok
|
||||||
|
= atanh upward intel96 0x8.3f7dap-4 : 0x9.1f8235e8d01e786p-4 : inexact-ok
|
||||||
|
= atanh downward m68k96 0x8.3f7dap-4 : 0x9.1f8235e8d01e785p-4 : inexact-ok
|
||||||
|
= atanh tonearest m68k96 0x8.3f7dap-4 : 0x9.1f8235e8d01e786p-4 : inexact-ok
|
||||||
|
= atanh towardzero m68k96 0x8.3f7dap-4 : 0x9.1f8235e8d01e785p-4 : inexact-ok
|
||||||
|
= atanh upward m68k96 0x8.3f7dap-4 : 0x9.1f8235e8d01e786p-4 : inexact-ok
|
||||||
|
= atanh downward binary128 0x8.3f7dap-4 : 0x9.1f8235e8d01e785c535dc3482cdp-4 : inexact-ok
|
||||||
|
= atanh tonearest binary128 0x8.3f7dap-4 : 0x9.1f8235e8d01e785c535dc3482cdp-4 : inexact-ok
|
||||||
|
= atanh towardzero binary128 0x8.3f7dap-4 : 0x9.1f8235e8d01e785c535dc3482cdp-4 : inexact-ok
|
||||||
|
= atanh upward binary128 0x8.3f7dap-4 : 0x9.1f8235e8d01e785c535dc3482cd8p-4 : inexact-ok
|
||||||
|
= atanh downward ibm128 0x8.3f7dap-4 : 0x9.1f8235e8d01e785c535dc3482cp-4 : inexact-ok
|
||||||
|
= atanh tonearest ibm128 0x8.3f7dap-4 : 0x9.1f8235e8d01e785c535dc3482cp-4 : inexact-ok
|
||||||
|
= atanh towardzero ibm128 0x8.3f7dap-4 : 0x9.1f8235e8d01e785c535dc3482cp-4 : inexact-ok
|
||||||
|
= atanh upward ibm128 0x8.3f7dap-4 : 0x9.1f8235e8d01e785c535dc3483p-4 : inexact-ok
|
||||||
|
= atanh downward binary32 0x8.3f7d9p-4 : 0x9.1f822p-4 : inexact-ok
|
||||||
|
= atanh tonearest binary32 0x8.3f7d9p-4 : 0x9.1f822p-4 : inexact-ok
|
||||||
|
= atanh towardzero binary32 0x8.3f7d9p-4 : 0x9.1f822p-4 : inexact-ok
|
||||||
|
= atanh upward binary32 0x8.3f7d9p-4 : 0x9.1f823p-4 : inexact-ok
|
||||||
|
= atanh downward binary64 0x8.3f7d9p-4 : 0x9.1f82201e668fp-4 : inexact-ok
|
||||||
|
= atanh tonearest binary64 0x8.3f7d9p-4 : 0x9.1f82201e668fp-4 : inexact-ok
|
||||||
|
= atanh towardzero binary64 0x8.3f7d9p-4 : 0x9.1f82201e668fp-4 : inexact-ok
|
||||||
|
= atanh upward binary64 0x8.3f7d9p-4 : 0x9.1f82201e668f8p-4 : inexact-ok
|
||||||
|
= atanh downward intel96 0x8.3f7d9p-4 : 0x9.1f82201e668f3acp-4 : inexact-ok
|
||||||
|
= atanh tonearest intel96 0x8.3f7d9p-4 : 0x9.1f82201e668f3adp-4 : inexact-ok
|
||||||
|
= atanh towardzero intel96 0x8.3f7d9p-4 : 0x9.1f82201e668f3acp-4 : inexact-ok
|
||||||
|
= atanh upward intel96 0x8.3f7d9p-4 : 0x9.1f82201e668f3adp-4 : inexact-ok
|
||||||
|
= atanh downward m68k96 0x8.3f7d9p-4 : 0x9.1f82201e668f3acp-4 : inexact-ok
|
||||||
|
= atanh tonearest m68k96 0x8.3f7d9p-4 : 0x9.1f82201e668f3adp-4 : inexact-ok
|
||||||
|
= atanh towardzero m68k96 0x8.3f7d9p-4 : 0x9.1f82201e668f3acp-4 : inexact-ok
|
||||||
|
= atanh upward m68k96 0x8.3f7d9p-4 : 0x9.1f82201e668f3adp-4 : inexact-ok
|
||||||
|
= atanh downward binary128 0x8.3f7d9p-4 : 0x9.1f82201e668f3acb07be26a834p-4 : inexact-ok
|
||||||
|
= atanh tonearest binary128 0x8.3f7d9p-4 : 0x9.1f82201e668f3acb07be26a83408p-4 : inexact-ok
|
||||||
|
= atanh towardzero binary128 0x8.3f7d9p-4 : 0x9.1f82201e668f3acb07be26a834p-4 : inexact-ok
|
||||||
|
= atanh upward binary128 0x8.3f7d9p-4 : 0x9.1f82201e668f3acb07be26a83408p-4 : inexact-ok
|
||||||
|
= atanh downward ibm128 0x8.3f7d9p-4 : 0x9.1f82201e668f3acb07be26a834p-4 : inexact-ok
|
||||||
|
= atanh tonearest ibm128 0x8.3f7d9p-4 : 0x9.1f82201e668f3acb07be26a834p-4 : inexact-ok
|
||||||
|
= atanh towardzero ibm128 0x8.3f7d9p-4 : 0x9.1f82201e668f3acb07be26a834p-4 : inexact-ok
|
||||||
|
= atanh upward ibm128 0x8.3f7d9p-4 : 0x9.1f82201e668f3acb07be26a838p-4 : inexact-ok
|
||||||
|
= atanh downward binary64 0x8.3f7d95aabaf7p-4 : 0x9.1f8227d62ccbp-4 : inexact-ok
|
||||||
|
= atanh tonearest binary64 0x8.3f7d95aabaf7p-4 : 0x9.1f8227d62ccb8p-4 : inexact-ok
|
||||||
|
= atanh towardzero binary64 0x8.3f7d95aabaf7p-4 : 0x9.1f8227d62ccbp-4 : inexact-ok
|
||||||
|
= atanh upward binary64 0x8.3f7d95aabaf7p-4 : 0x9.1f8227d62ccb8p-4 : inexact-ok
|
||||||
|
= atanh downward intel96 0x8.3f7d95aabaf7p-4 : 0x9.1f8227d62ccb7ffp-4 : inexact-ok
|
||||||
|
= atanh tonearest intel96 0x8.3f7d95aabaf7p-4 : 0x9.1f8227d62ccb8p-4 : inexact-ok
|
||||||
|
= atanh towardzero intel96 0x8.3f7d95aabaf7p-4 : 0x9.1f8227d62ccb7ffp-4 : inexact-ok
|
||||||
|
= atanh upward intel96 0x8.3f7d95aabaf7p-4 : 0x9.1f8227d62ccb8p-4 : inexact-ok
|
||||||
|
= atanh downward m68k96 0x8.3f7d95aabaf7p-4 : 0x9.1f8227d62ccb7ffp-4 : inexact-ok
|
||||||
|
= atanh tonearest m68k96 0x8.3f7d95aabaf7p-4 : 0x9.1f8227d62ccb8p-4 : inexact-ok
|
||||||
|
= atanh towardzero m68k96 0x8.3f7d95aabaf7p-4 : 0x9.1f8227d62ccb7ffp-4 : inexact-ok
|
||||||
|
= atanh upward m68k96 0x8.3f7d95aabaf7p-4 : 0x9.1f8227d62ccb8p-4 : inexact-ok
|
||||||
|
= atanh downward binary128 0x8.3f7d95aabaf7p-4 : 0x9.1f8227d62ccb7ffffffe9a438b28p-4 : inexact-ok
|
||||||
|
= atanh tonearest binary128 0x8.3f7d95aabaf7p-4 : 0x9.1f8227d62ccb7ffffffe9a438b28p-4 : inexact-ok
|
||||||
|
= atanh towardzero binary128 0x8.3f7d95aabaf7p-4 : 0x9.1f8227d62ccb7ffffffe9a438b28p-4 : inexact-ok
|
||||||
|
= atanh upward binary128 0x8.3f7d95aabaf7p-4 : 0x9.1f8227d62ccb7ffffffe9a438b3p-4 : inexact-ok
|
||||||
|
= atanh downward ibm128 0x8.3f7d95aabaf7p-4 : 0x9.1f8227d62ccb7ffffffe9a4388p-4 : inexact-ok
|
||||||
|
= atanh tonearest ibm128 0x8.3f7d95aabaf7p-4 : 0x9.1f8227d62ccb7ffffffe9a438cp-4 : inexact-ok
|
||||||
|
= atanh towardzero ibm128 0x8.3f7d95aabaf7p-4 : 0x9.1f8227d62ccb7ffffffe9a4388p-4 : inexact-ok
|
||||||
|
= atanh upward ibm128 0x8.3f7d95aabaf7p-4 : 0x9.1f8227d62ccb7ffffffe9a438cp-4 : inexact-ok
|
||||||
|
atanh 0x1.d12ed0af1a27fp-27
|
||||||
|
= atanh downward binary32 0x3.a25da4p-28 : 0x3.a25da4p-28 : inexact-ok
|
||||||
|
= atanh tonearest binary32 0x3.a25da4p-28 : 0x3.a25da4p-28 : inexact-ok
|
||||||
|
= atanh towardzero binary32 0x3.a25da4p-28 : 0x3.a25da4p-28 : inexact-ok
|
||||||
|
= atanh upward binary32 0x3.a25da4p-28 : 0x3.a25da8p-28 : inexact-ok
|
||||||
|
= atanh downward binary64 0x3.a25da4p-28 : 0x3.a25da4p-28 : inexact-ok
|
||||||
|
= atanh tonearest binary64 0x3.a25da4p-28 : 0x3.a25da40000002p-28 : inexact-ok
|
||||||
|
= atanh towardzero binary64 0x3.a25da4p-28 : 0x3.a25da4p-28 : inexact-ok
|
||||||
|
= atanh upward binary64 0x3.a25da4p-28 : 0x3.a25da40000002p-28 : inexact-ok
|
||||||
|
= atanh downward intel96 0x3.a25da4p-28 : 0x3.a25da40000001p-28 : inexact-ok
|
||||||
|
= atanh tonearest intel96 0x3.a25da4p-28 : 0x3.a25da40000001p-28 : inexact-ok
|
||||||
|
= atanh towardzero intel96 0x3.a25da4p-28 : 0x3.a25da40000001p-28 : inexact-ok
|
||||||
|
= atanh upward intel96 0x3.a25da4p-28 : 0x3.a25da40000001004p-28 : inexact-ok
|
||||||
|
= atanh downward m68k96 0x3.a25da4p-28 : 0x3.a25da40000001p-28 : inexact-ok
|
||||||
|
= atanh tonearest m68k96 0x3.a25da4p-28 : 0x3.a25da40000001p-28 : inexact-ok
|
||||||
|
= atanh towardzero m68k96 0x3.a25da4p-28 : 0x3.a25da40000001p-28 : inexact-ok
|
||||||
|
= atanh upward m68k96 0x3.a25da4p-28 : 0x3.a25da40000001004p-28 : inexact-ok
|
||||||
|
= atanh downward binary128 0x3.a25da4p-28 : 0x3.a25da400000010000022c34c1ea4p-28 : inexact-ok
|
||||||
|
= atanh tonearest binary128 0x3.a25da4p-28 : 0x3.a25da400000010000022c34c1ea4p-28 : inexact-ok
|
||||||
|
= atanh towardzero binary128 0x3.a25da4p-28 : 0x3.a25da400000010000022c34c1ea4p-28 : inexact-ok
|
||||||
|
= atanh upward binary128 0x3.a25da4p-28 : 0x3.a25da400000010000022c34c1ea6p-28 : inexact-ok
|
||||||
|
= atanh downward ibm128 0x3.a25da4p-28 : 0x3.a25da400000010000022c34c1ep-28 : inexact-ok
|
||||||
|
= atanh tonearest ibm128 0x3.a25da4p-28 : 0x3.a25da400000010000022c34c1fp-28 : inexact-ok
|
||||||
|
= atanh towardzero ibm128 0x3.a25da4p-28 : 0x3.a25da400000010000022c34c1ep-28 : inexact-ok
|
||||||
|
= atanh upward ibm128 0x3.a25da4p-28 : 0x3.a25da400000010000022c34c1fp-28 : inexact-ok
|
||||||
|
= atanh downward binary32 0x3.a25dap-28 : 0x3.a25dap-28 : inexact-ok
|
||||||
|
= atanh tonearest binary32 0x3.a25dap-28 : 0x3.a25dap-28 : inexact-ok
|
||||||
|
= atanh towardzero binary32 0x3.a25dap-28 : 0x3.a25dap-28 : inexact-ok
|
||||||
|
= atanh upward binary32 0x3.a25dap-28 : 0x3.a25da4p-28 : inexact-ok
|
||||||
|
= atanh downward binary64 0x3.a25dap-28 : 0x3.a25dap-28 : inexact-ok
|
||||||
|
= atanh tonearest binary64 0x3.a25dap-28 : 0x3.a25dap-28 : inexact-ok
|
||||||
|
= atanh towardzero binary64 0x3.a25dap-28 : 0x3.a25dap-28 : inexact-ok
|
||||||
|
= atanh upward binary64 0x3.a25dap-28 : 0x3.a25da00000002p-28 : inexact-ok
|
||||||
|
= atanh downward intel96 0x3.a25dap-28 : 0x3.a25da00000000ffcp-28 : inexact-ok
|
||||||
|
= atanh tonearest intel96 0x3.a25dap-28 : 0x3.a25da00000001p-28 : inexact-ok
|
||||||
|
= atanh towardzero intel96 0x3.a25dap-28 : 0x3.a25da00000000ffcp-28 : inexact-ok
|
||||||
|
= atanh upward intel96 0x3.a25dap-28 : 0x3.a25da00000001p-28 : inexact-ok
|
||||||
|
= atanh downward m68k96 0x3.a25dap-28 : 0x3.a25da00000000ffcp-28 : inexact-ok
|
||||||
|
= atanh tonearest m68k96 0x3.a25dap-28 : 0x3.a25da00000001p-28 : inexact-ok
|
||||||
|
= atanh towardzero m68k96 0x3.a25dap-28 : 0x3.a25da00000000ffcp-28 : inexact-ok
|
||||||
|
= atanh upward m68k96 0x3.a25dap-28 : 0x3.a25da00000001p-28 : inexact-ok
|
||||||
|
= atanh downward binary128 0x3.a25dap-28 : 0x3.a25da00000000fffffedee9a6186p-28 : inexact-ok
|
||||||
|
= atanh tonearest binary128 0x3.a25dap-28 : 0x3.a25da00000000fffffedee9a6188p-28 : inexact-ok
|
||||||
|
= atanh towardzero binary128 0x3.a25dap-28 : 0x3.a25da00000000fffffedee9a6186p-28 : inexact-ok
|
||||||
|
= atanh upward binary128 0x3.a25dap-28 : 0x3.a25da00000000fffffedee9a6188p-28 : inexact-ok
|
||||||
|
= atanh downward ibm128 0x3.a25dap-28 : 0x3.a25da00000000fffffedee9a61p-28 : inexact-ok
|
||||||
|
= atanh tonearest ibm128 0x3.a25dap-28 : 0x3.a25da00000000fffffedee9a62p-28 : inexact-ok
|
||||||
|
= atanh towardzero ibm128 0x3.a25dap-28 : 0x3.a25da00000000fffffedee9a61p-28 : inexact-ok
|
||||||
|
= atanh upward ibm128 0x3.a25dap-28 : 0x3.a25da00000000fffffedee9a62p-28 : inexact-ok
|
||||||
|
= atanh downward binary64 0x3.a25da15e344fep-28 : 0x3.a25da15e344fep-28 : inexact-ok
|
||||||
|
= atanh tonearest binary64 0x3.a25da15e344fep-28 : 0x3.a25da15e345p-28 : inexact-ok
|
||||||
|
= atanh towardzero binary64 0x3.a25da15e344fep-28 : 0x3.a25da15e344fep-28 : inexact-ok
|
||||||
|
= atanh upward binary64 0x3.a25da15e344fep-28 : 0x3.a25da15e345p-28 : inexact-ok
|
||||||
|
= atanh downward intel96 0x3.a25da15e344fep-28 : 0x3.a25da15e344ffp-28 : inexact-ok
|
||||||
|
= atanh tonearest intel96 0x3.a25da15e344fep-28 : 0x3.a25da15e344ffp-28 : inexact-ok
|
||||||
|
= atanh towardzero intel96 0x3.a25da15e344fep-28 : 0x3.a25da15e344ffp-28 : inexact-ok
|
||||||
|
= atanh upward intel96 0x3.a25da15e344fep-28 : 0x3.a25da15e344ff004p-28 : inexact-ok
|
||||||
|
= atanh downward m68k96 0x3.a25da15e344fep-28 : 0x3.a25da15e344ffp-28 : inexact-ok
|
||||||
|
= atanh tonearest m68k96 0x3.a25da15e344fep-28 : 0x3.a25da15e344ffp-28 : inexact-ok
|
||||||
|
= atanh towardzero m68k96 0x3.a25da15e344fep-28 : 0x3.a25da15e344ffp-28 : inexact-ok
|
||||||
|
= atanh upward m68k96 0x3.a25da15e344fep-28 : 0x3.a25da15e344ff004p-28 : inexact-ok
|
||||||
|
= atanh downward binary128 0x3.a25da15e344fep-28 : 0x3.a25da15e344ff000000000000092p-28 : inexact-ok
|
||||||
|
= atanh tonearest binary128 0x3.a25da15e344fep-28 : 0x3.a25da15e344ff000000000000092p-28 : inexact-ok
|
||||||
|
= atanh towardzero binary128 0x3.a25da15e344fep-28 : 0x3.a25da15e344ff000000000000092p-28 : inexact-ok
|
||||||
|
= atanh upward binary128 0x3.a25da15e344fep-28 : 0x3.a25da15e344ff000000000000094p-28 : inexact-ok
|
||||||
|
= atanh downward ibm128 0x3.a25da15e344fep-28 : 0x3.a25da15e344ffp-28 : inexact-ok
|
||||||
|
= atanh tonearest ibm128 0x3.a25da15e344fep-28 : 0x3.a25da15e344ff0000000000001p-28 : inexact-ok
|
||||||
|
= atanh towardzero ibm128 0x3.a25da15e344fep-28 : 0x3.a25da15e344ffp-28 : inexact-ok
|
||||||
|
= atanh upward ibm128 0x3.a25da15e344fep-28 : 0x3.a25da15e344ff0000000000001p-28 : inexact-ok
|
||||||
|
atanh 0x1.07f00a701ace5p-1
|
||||||
|
= atanh downward binary32 0x8.3f806p-4 : 0x9.1f85fp-4 : inexact-ok
|
||||||
|
= atanh tonearest binary32 0x8.3f806p-4 : 0x9.1f85fp-4 : inexact-ok
|
||||||
|
= atanh towardzero binary32 0x8.3f806p-4 : 0x9.1f85fp-4 : inexact-ok
|
||||||
|
= atanh upward binary32 0x8.3f806p-4 : 0x9.1f86p-4 : inexact-ok
|
||||||
|
= atanh downward binary64 0x8.3f806p-4 : 0x9.1f85f4b36b1p-4 : inexact-ok
|
||||||
|
= atanh tonearest binary64 0x8.3f806p-4 : 0x9.1f85f4b36b108p-4 : inexact-ok
|
||||||
|
= atanh towardzero binary64 0x8.3f806p-4 : 0x9.1f85f4b36b1p-4 : inexact-ok
|
||||||
|
= atanh upward binary64 0x8.3f806p-4 : 0x9.1f85f4b36b108p-4 : inexact-ok
|
||||||
|
= atanh downward intel96 0x8.3f806p-4 : 0x9.1f85f4b36b10535p-4 : inexact-ok
|
||||||
|
= atanh tonearest intel96 0x8.3f806p-4 : 0x9.1f85f4b36b10535p-4 : inexact-ok
|
||||||
|
= atanh towardzero intel96 0x8.3f806p-4 : 0x9.1f85f4b36b10535p-4 : inexact-ok
|
||||||
|
= atanh upward intel96 0x8.3f806p-4 : 0x9.1f85f4b36b10536p-4 : inexact-ok
|
||||||
|
= atanh downward m68k96 0x8.3f806p-4 : 0x9.1f85f4b36b10535p-4 : inexact-ok
|
||||||
|
= atanh tonearest m68k96 0x8.3f806p-4 : 0x9.1f85f4b36b10535p-4 : inexact-ok
|
||||||
|
= atanh towardzero m68k96 0x8.3f806p-4 : 0x9.1f85f4b36b10535p-4 : inexact-ok
|
||||||
|
= atanh upward m68k96 0x8.3f806p-4 : 0x9.1f85f4b36b10536p-4 : inexact-ok
|
||||||
|
= atanh downward binary128 0x8.3f806p-4 : 0x9.1f85f4b36b105352a9e9d0f11a98p-4 : inexact-ok
|
||||||
|
= atanh tonearest binary128 0x8.3f806p-4 : 0x9.1f85f4b36b105352a9e9d0f11aap-4 : inexact-ok
|
||||||
|
= atanh towardzero binary128 0x8.3f806p-4 : 0x9.1f85f4b36b105352a9e9d0f11a98p-4 : inexact-ok
|
||||||
|
= atanh upward binary128 0x8.3f806p-4 : 0x9.1f85f4b36b105352a9e9d0f11aap-4 : inexact-ok
|
||||||
|
= atanh downward ibm128 0x8.3f806p-4 : 0x9.1f85f4b36b105352a9e9d0f118p-4 : inexact-ok
|
||||||
|
= atanh tonearest ibm128 0x8.3f806p-4 : 0x9.1f85f4b36b105352a9e9d0f11cp-4 : inexact-ok
|
||||||
|
= atanh towardzero ibm128 0x8.3f806p-4 : 0x9.1f85f4b36b105352a9e9d0f118p-4 : inexact-ok
|
||||||
|
= atanh upward ibm128 0x8.3f806p-4 : 0x9.1f85f4b36b105352a9e9d0f11cp-4 : inexact-ok
|
||||||
|
= atanh downward binary32 0x8.3f805p-4 : 0x9.1f85dp-4 : inexact-ok
|
||||||
|
= atanh tonearest binary32 0x8.3f805p-4 : 0x9.1f85ep-4 : inexact-ok
|
||||||
|
= atanh towardzero binary32 0x8.3f805p-4 : 0x9.1f85dp-4 : inexact-ok
|
||||||
|
= atanh upward binary32 0x8.3f805p-4 : 0x9.1f85ep-4 : inexact-ok
|
||||||
|
= atanh downward binary64 0x8.3f805p-4 : 0x9.1f85dee8fc3e8p-4 : inexact-ok
|
||||||
|
= atanh tonearest binary64 0x8.3f805p-4 : 0x9.1f85dee8fc3fp-4 : inexact-ok
|
||||||
|
= atanh towardzero binary64 0x8.3f805p-4 : 0x9.1f85dee8fc3e8p-4 : inexact-ok
|
||||||
|
= atanh upward binary64 0x8.3f805p-4 : 0x9.1f85dee8fc3fp-4 : inexact-ok
|
||||||
|
= atanh downward intel96 0x8.3f805p-4 : 0x9.1f85dee8fc3ecdap-4 : inexact-ok
|
||||||
|
= atanh tonearest intel96 0x8.3f805p-4 : 0x9.1f85dee8fc3ecdbp-4 : inexact-ok
|
||||||
|
= atanh towardzero intel96 0x8.3f805p-4 : 0x9.1f85dee8fc3ecdap-4 : inexact-ok
|
||||||
|
= atanh upward intel96 0x8.3f805p-4 : 0x9.1f85dee8fc3ecdbp-4 : inexact-ok
|
||||||
|
= atanh downward m68k96 0x8.3f805p-4 : 0x9.1f85dee8fc3ecdap-4 : inexact-ok
|
||||||
|
= atanh tonearest m68k96 0x8.3f805p-4 : 0x9.1f85dee8fc3ecdbp-4 : inexact-ok
|
||||||
|
= atanh towardzero m68k96 0x8.3f805p-4 : 0x9.1f85dee8fc3ecdap-4 : inexact-ok
|
||||||
|
= atanh upward m68k96 0x8.3f805p-4 : 0x9.1f85dee8fc3ecdbp-4 : inexact-ok
|
||||||
|
= atanh downward binary128 0x8.3f805p-4 : 0x9.1f85dee8fc3ecdadd2bb05dae258p-4 : inexact-ok
|
||||||
|
= atanh tonearest binary128 0x8.3f805p-4 : 0x9.1f85dee8fc3ecdadd2bb05dae26p-4 : inexact-ok
|
||||||
|
= atanh towardzero binary128 0x8.3f805p-4 : 0x9.1f85dee8fc3ecdadd2bb05dae258p-4 : inexact-ok
|
||||||
|
= atanh upward binary128 0x8.3f805p-4 : 0x9.1f85dee8fc3ecdadd2bb05dae26p-4 : inexact-ok
|
||||||
|
= atanh downward ibm128 0x8.3f805p-4 : 0x9.1f85dee8fc3ecdadd2bb05daep-4 : inexact-ok
|
||||||
|
= atanh tonearest ibm128 0x8.3f805p-4 : 0x9.1f85dee8fc3ecdadd2bb05dae4p-4 : inexact-ok
|
||||||
|
= atanh towardzero ibm128 0x8.3f805p-4 : 0x9.1f85dee8fc3ecdadd2bb05daep-4 : inexact-ok
|
||||||
|
= atanh upward ibm128 0x8.3f805p-4 : 0x9.1f85dee8fc3ecdadd2bb05dae4p-4 : inexact-ok
|
||||||
|
= atanh downward binary64 0x8.3f805380d6728p-4 : 0x9.1f85e3ae6889p-4 : inexact-ok
|
||||||
|
= atanh tonearest binary64 0x8.3f805380d6728p-4 : 0x9.1f85e3ae68898p-4 : inexact-ok
|
||||||
|
= atanh towardzero binary64 0x8.3f805380d6728p-4 : 0x9.1f85e3ae6889p-4 : inexact-ok
|
||||||
|
= atanh upward binary64 0x8.3f805380d6728p-4 : 0x9.1f85e3ae68898p-4 : inexact-ok
|
||||||
|
= atanh downward intel96 0x8.3f805380d6728p-4 : 0x9.1f85e3ae68897ffp-4 : inexact-ok
|
||||||
|
= atanh tonearest intel96 0x8.3f805380d6728p-4 : 0x9.1f85e3ae68898p-4 : inexact-ok
|
||||||
|
= atanh towardzero intel96 0x8.3f805380d6728p-4 : 0x9.1f85e3ae68897ffp-4 : inexact-ok
|
||||||
|
= atanh upward intel96 0x8.3f805380d6728p-4 : 0x9.1f85e3ae68898p-4 : inexact-ok
|
||||||
|
= atanh downward m68k96 0x8.3f805380d6728p-4 : 0x9.1f85e3ae68897ffp-4 : inexact-ok
|
||||||
|
= atanh tonearest m68k96 0x8.3f805380d6728p-4 : 0x9.1f85e3ae68898p-4 : inexact-ok
|
||||||
|
= atanh towardzero m68k96 0x8.3f805380d6728p-4 : 0x9.1f85e3ae68897ffp-4 : inexact-ok
|
||||||
|
= atanh upward m68k96 0x8.3f805380d6728p-4 : 0x9.1f85e3ae68898p-4 : inexact-ok
|
||||||
|
= atanh downward binary128 0x8.3f805380d6728p-4 : 0x9.1f85e3ae68897fffffde6a6a384p-4 : inexact-ok
|
||||||
|
= atanh tonearest binary128 0x8.3f805380d6728p-4 : 0x9.1f85e3ae68897fffffde6a6a384p-4 : inexact-ok
|
||||||
|
= atanh towardzero binary128 0x8.3f805380d6728p-4 : 0x9.1f85e3ae68897fffffde6a6a384p-4 : inexact-ok
|
||||||
|
= atanh upward binary128 0x8.3f805380d6728p-4 : 0x9.1f85e3ae68897fffffde6a6a3848p-4 : inexact-ok
|
||||||
|
= atanh downward ibm128 0x8.3f805380d6728p-4 : 0x9.1f85e3ae68897fffffde6a6a38p-4 : inexact-ok
|
||||||
|
= atanh tonearest ibm128 0x8.3f805380d6728p-4 : 0x9.1f85e3ae68897fffffde6a6a38p-4 : inexact-ok
|
||||||
|
= atanh towardzero ibm128 0x8.3f805380d6728p-4 : 0x9.1f85e3ae68897fffffde6a6a38p-4 : inexact-ok
|
||||||
|
= atanh upward ibm128 0x8.3f805380d6728p-4 : 0x9.1f85e3ae68897fffffde6a6a3cp-4 : inexact-ok
|
||||||
atanh 0x1.f80094p-8
|
atanh 0x1.f80094p-8
|
||||||
= atanh downward binary32 0x1.f80094p-8 : 0x1.f8031ep-8 : inexact-ok
|
= atanh downward binary32 0x1.f80094p-8 : 0x1.f8031ep-8 : inexact-ok
|
||||||
= atanh tonearest binary32 0x1.f80094p-8 : 0x1.f8032p-8 : inexact-ok
|
= atanh tonearest binary32 0x1.f80094p-8 : 0x1.f8032p-8 : inexact-ok
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
Copyright (c) 2023-2025 Alexei Sibidanov.
|
Copyright (c) 2023-2025 Alexei Sibidanov.
|
||||||
|
|
||||||
The original version of this file was copied from the CORE-MATH
|
The original version of this file was copied from the CORE-MATH
|
||||||
project (file src/binary64/atanh/atanh.c, revision 703d7487).
|
project (file src/binary64/atanh/atanh.c, revision dc9465e7).
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
@ -103,7 +103,7 @@ __ieee754_atanh (double x)
|
||||||
double p
|
double p
|
||||||
= (c[0] + x2 * c[1]) + x4 * (c[2] + x2 * c[3])
|
= (c[0] + x2 * c[1]) + x4 * (c[2] + x2 * c[3])
|
||||||
+ x8 * ((c[4] + x2 * c[5]) + x4 * (c[6] + x2 * c[7]) + x8 * c[8]);
|
+ x8 * ((c[4] + x2 * c[5]) + x4 * (c[6] + x2 * c[7]) + x8 * c[8]);
|
||||||
double t = 0x1.5555555555555p-56 + x2 * p;
|
double t = fma (x2, p, 0x1.5555555555555p-56);
|
||||||
double pl, ph = fasttwosum (0x1.5555555555555p-2, t, &pl);
|
double pl, ph = fasttwosum (0x1.5555555555555p-2, t, &pl);
|
||||||
ph = muldd (ph, pl, x3, dx3, &pl);
|
ph = muldd (ph, pl, x3, dx3, &pl);
|
||||||
double tl;
|
double tl;
|
||||||
|
|
@ -147,7 +147,7 @@ __ieee754_atanh (double x)
|
||||||
ll += f;
|
ll += f;
|
||||||
lh *= copysign (1, x);
|
lh *= copysign (1, x);
|
||||||
ll *= copysign (1, x);
|
ll *= copysign (1, x);
|
||||||
double eps = 34e-24 + dx2 * 0x1p-49;
|
double eps = 38e-24 + dx2 * 0x1p-49;
|
||||||
double lb = lh + (ll - eps), ub = lh + (ll + eps);
|
double lb = lh + (ll - eps), ub = lh + (ll + eps);
|
||||||
if (__glibc_likely (lb == ub))
|
if (__glibc_likely (lb == ub))
|
||||||
return lb;
|
return lb;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue