diff --git a/SHARED-FILES b/SHARED-FILES index cced02d6a9..ec88062a2b 100644 --- a/SHARED-FILES +++ b/SHARED-FILES @@ -246,7 +246,7 @@ tzdata: core-math: # src/binary64/acosh/acosh.c, revision 6736002f 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 # src/binary64/tgamma/tgamma.c, revision 0f185e23 sysdeps/ieee754/dbl-64/e_gamma_r.c diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in index 0af70373fc..ec07bef9b7 100644 --- a/math/auto-libm-test-in +++ b/math/auto-libm-test-in @@ -897,6 +897,10 @@ atanh 0x2.c1085p-4 atanh 0x1p-500 atanh 0x1p-5000 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 # (binary32) atanh 0x1.f80094p-8 diff --git a/math/auto-libm-test-out-atanh b/math/auto-libm-test-out-atanh index 757d08952d..f1e3e96ffa 100644 --- a/math/auto-libm-test-out-atanh +++ b/math/auto-libm-test-out-atanh @@ -3181,6 +3181,282 @@ atanh 0x1.658802e5e2da7p-2 = atanh tonearest 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 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 downward binary32 0x1.f80094p-8 : 0x1.f8031ep-8 : inexact-ok = atanh tonearest binary32 0x1.f80094p-8 : 0x1.f8032p-8 : inexact-ok diff --git a/sysdeps/ieee754/dbl-64/e_atanh.c b/sysdeps/ieee754/dbl-64/e_atanh.c index 68ef87818d..77749ac2e0 100644 --- a/sysdeps/ieee754/dbl-64/e_atanh.c +++ b/sysdeps/ieee754/dbl-64/e_atanh.c @@ -3,7 +3,7 @@ Copyright (c) 2023-2025 Alexei Sibidanov. 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 of this software and associated documentation files (the "Software"), to deal @@ -103,7 +103,7 @@ __ieee754_atanh (double x) double p = (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]); - double t = 0x1.5555555555555p-56 + x2 * p; + double t = fma (x2, p, 0x1.5555555555555p-56); double pl, ph = fasttwosum (0x1.5555555555555p-2, t, &pl); ph = muldd (ph, pl, x3, dx3, &pl); double tl; @@ -147,7 +147,7 @@ __ieee754_atanh (double x) ll += f; lh *= 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); if (__glibc_likely (lb == ub)) return lb;