]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
math: Sync acosh from CORE-MATH
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Mon, 10 Nov 2025 11:44:14 +0000 (08:44 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Mon, 10 Nov 2025 11:58:14 +0000 (08:58 -0300)
The c9abdf80 fix handle some cases for RNDZ.

Checked on x86_64-linux-gnu.

SHARED-FILES
math/auto-libm-test-in
math/auto-libm-test-out-acosh
sysdeps/ieee754/dbl-64/e_acosh.c

index be87ad12b0e03b1b0f7d74327eb7c8b7b7b39450..d7e3c6ee5a476f09c095adc491fabe9ad644a1a7 100644 (file)
@@ -242,7 +242,7 @@ tzdata:
 core-math:
   # src/binary64/acosh/acosh.c, revision 69062c4d
   sysdeps/ieee754/dbl-64/e_acosh.c
-  # src/binary64/atanh/atanh.c, revision 4da7f241
+  # src/binary64/atanh/atanh.c, revision c9abdf80
   sysdeps/ieee754/dbl-64/e_atanh.c
   # src/binary64/tgamma/tgamma.c, revision 0f185e23
   sysdeps/ieee754/dbl-64/e_gamma_r.c
index f0888b3c9b02942427ca3ada383a2798547601cc..10e7d11850f0c75cd031c055fb73fb0b71805e43 100644 (file)
@@ -219,6 +219,7 @@ acosh 0x1.1b836p+0
 acosh 0x1.07c956p+0
 acosh 0x1.1808eep+0
 acosh 0x1.1052c4p+0
+acosh 0x1.0800751d9facbp+0
 # 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)
index a628fa33ba3ed65edd29c4ee88b0f48d30472251..8cdaddd84fd26d84ed0f1002028841a40860c62f 100644 (file)
@@ -1898,6 +1898,75 @@ acosh 0x1.1052c4p+0
 = acosh tonearest ibm128 0x1.1052c4p+0 : 0x5.af0cbc66dcd4992c060eb8ff4ap-4 : inexact-ok
 = acosh towardzero ibm128 0x1.1052c4p+0 : 0x5.af0cbc66dcd4992c060eb8ff48p-4 : inexact-ok
 = acosh upward ibm128 0x1.1052c4p+0 : 0x5.af0cbc66dcd4992c060eb8ff4ap-4 : inexact-ok
+acosh 0x1.0800751d9facbp+0
+= acosh downward binary32 0x1.080076p+0 : 0x3.fd775cp-4 : inexact-ok
+= acosh tonearest binary32 0x1.080076p+0 : 0x3.fd775cp-4 : inexact-ok
+= acosh towardzero binary32 0x1.080076p+0 : 0x3.fd775cp-4 : inexact-ok
+= acosh upward binary32 0x1.080076p+0 : 0x3.fd776p-4 : inexact-ok
+= acosh downward binary64 0x1.080076p+0 : 0x3.fd775c1450336p-4 : inexact-ok
+= acosh tonearest binary64 0x1.080076p+0 : 0x3.fd775c1450336p-4 : inexact-ok
+= acosh towardzero binary64 0x1.080076p+0 : 0x3.fd775c1450336p-4 : inexact-ok
+= acosh upward binary64 0x1.080076p+0 : 0x3.fd775c1450338p-4 : inexact-ok
+= acosh downward intel96 0x1.080076p+0 : 0x3.fd775c14503365e8p-4 : inexact-ok
+= acosh tonearest intel96 0x1.080076p+0 : 0x3.fd775c14503365ecp-4 : inexact-ok
+= acosh towardzero intel96 0x1.080076p+0 : 0x3.fd775c14503365e8p-4 : inexact-ok
+= acosh upward intel96 0x1.080076p+0 : 0x3.fd775c14503365ecp-4 : inexact-ok
+= acosh downward m68k96 0x1.080076p+0 : 0x3.fd775c14503365e8p-4 : inexact-ok
+= acosh tonearest m68k96 0x1.080076p+0 : 0x3.fd775c14503365ecp-4 : inexact-ok
+= acosh towardzero m68k96 0x1.080076p+0 : 0x3.fd775c14503365e8p-4 : inexact-ok
+= acosh upward m68k96 0x1.080076p+0 : 0x3.fd775c14503365ecp-4 : inexact-ok
+= acosh downward binary128 0x1.080076p+0 : 0x3.fd775c14503365ead1d5533be438p-4 : inexact-ok
+= acosh tonearest binary128 0x1.080076p+0 : 0x3.fd775c14503365ead1d5533be438p-4 : inexact-ok
+= acosh towardzero binary128 0x1.080076p+0 : 0x3.fd775c14503365ead1d5533be438p-4 : inexact-ok
+= acosh upward binary128 0x1.080076p+0 : 0x3.fd775c14503365ead1d5533be43ap-4 : inexact-ok
+= acosh downward ibm128 0x1.080076p+0 : 0x3.fd775c14503365ead1d5533be4p-4 : inexact-ok
+= acosh tonearest ibm128 0x1.080076p+0 : 0x3.fd775c14503365ead1d5533be4p-4 : inexact-ok
+= acosh towardzero ibm128 0x1.080076p+0 : 0x3.fd775c14503365ead1d5533be4p-4 : inexact-ok
+= acosh upward ibm128 0x1.080076p+0 : 0x3.fd775c14503365ead1d5533be5p-4 : inexact-ok
+= acosh downward binary32 0x1.080074p+0 : 0x3.fd76dcp-4 : inexact-ok
+= acosh tonearest binary32 0x1.080074p+0 : 0x3.fd76dcp-4 : inexact-ok
+= acosh towardzero binary32 0x1.080074p+0 : 0x3.fd76dcp-4 : inexact-ok
+= acosh upward binary32 0x1.080074p+0 : 0x3.fd76ep-4 : inexact-ok
+= acosh downward binary64 0x1.080074p+0 : 0x3.fd76dd1508f84p-4 : inexact-ok
+= acosh tonearest binary64 0x1.080074p+0 : 0x3.fd76dd1508f84p-4 : inexact-ok
+= acosh towardzero binary64 0x1.080074p+0 : 0x3.fd76dd1508f84p-4 : inexact-ok
+= acosh upward binary64 0x1.080074p+0 : 0x3.fd76dd1508f86p-4 : inexact-ok
+= acosh downward intel96 0x1.080074p+0 : 0x3.fd76dd1508f8442cp-4 : inexact-ok
+= acosh tonearest intel96 0x1.080074p+0 : 0x3.fd76dd1508f8443p-4 : inexact-ok
+= acosh towardzero intel96 0x1.080074p+0 : 0x3.fd76dd1508f8442cp-4 : inexact-ok
+= acosh upward intel96 0x1.080074p+0 : 0x3.fd76dd1508f8443p-4 : inexact-ok
+= acosh downward m68k96 0x1.080074p+0 : 0x3.fd76dd1508f8442cp-4 : inexact-ok
+= acosh tonearest m68k96 0x1.080074p+0 : 0x3.fd76dd1508f8443p-4 : inexact-ok
+= acosh towardzero m68k96 0x1.080074p+0 : 0x3.fd76dd1508f8442cp-4 : inexact-ok
+= acosh upward m68k96 0x1.080074p+0 : 0x3.fd76dd1508f8443p-4 : inexact-ok
+= acosh downward binary128 0x1.080074p+0 : 0x3.fd76dd1508f8442f10798fe9876cp-4 : inexact-ok
+= acosh tonearest binary128 0x1.080074p+0 : 0x3.fd76dd1508f8442f10798fe9876cp-4 : inexact-ok
+= acosh towardzero binary128 0x1.080074p+0 : 0x3.fd76dd1508f8442f10798fe9876cp-4 : inexact-ok
+= acosh upward binary128 0x1.080074p+0 : 0x3.fd76dd1508f8442f10798fe9876ep-4 : inexact-ok
+= acosh downward ibm128 0x1.080074p+0 : 0x3.fd76dd1508f8442f10798fe987p-4 : inexact-ok
+= acosh tonearest ibm128 0x1.080074p+0 : 0x3.fd76dd1508f8442f10798fe987p-4 : inexact-ok
+= acosh towardzero ibm128 0x1.080074p+0 : 0x3.fd76dd1508f8442f10798fe987p-4 : inexact-ok
+= acosh upward ibm128 0x1.080074p+0 : 0x3.fd76dd1508f8442f10798fe988p-4 : inexact-ok
+= acosh downward binary64 0x1.0800751d9facbp+0 : 0x3.fd7723edbf376p-4 : inexact-ok
+= acosh tonearest binary64 0x1.0800751d9facbp+0 : 0x3.fd7723edbf378p-4 : inexact-ok
+= acosh towardzero binary64 0x1.0800751d9facbp+0 : 0x3.fd7723edbf376p-4 : inexact-ok
+= acosh upward binary64 0x1.0800751d9facbp+0 : 0x3.fd7723edbf378p-4 : inexact-ok
+= acosh downward intel96 0x1.0800751d9facbp+0 : 0x3.fd7723edbf377ffcp-4 : inexact-ok
+= acosh tonearest intel96 0x1.0800751d9facbp+0 : 0x3.fd7723edbf378p-4 : inexact-ok
+= acosh towardzero intel96 0x1.0800751d9facbp+0 : 0x3.fd7723edbf377ffcp-4 : inexact-ok
+= acosh upward intel96 0x1.0800751d9facbp+0 : 0x3.fd7723edbf378p-4 : inexact-ok
+= acosh downward m68k96 0x1.0800751d9facbp+0 : 0x3.fd7723edbf377ffcp-4 : inexact-ok
+= acosh tonearest m68k96 0x1.0800751d9facbp+0 : 0x3.fd7723edbf378p-4 : inexact-ok
+= acosh towardzero m68k96 0x1.0800751d9facbp+0 : 0x3.fd7723edbf377ffcp-4 : inexact-ok
+= acosh upward m68k96 0x1.0800751d9facbp+0 : 0x3.fd7723edbf378p-4 : inexact-ok
+= acosh downward binary128 0x1.0800751d9facbp+0 : 0x3.fd7723edbf377ffec0d3568a9c9p-4 : inexact-ok
+= acosh tonearest binary128 0x1.0800751d9facbp+0 : 0x3.fd7723edbf377ffec0d3568a9c92p-4 : inexact-ok
+= acosh towardzero binary128 0x1.0800751d9facbp+0 : 0x3.fd7723edbf377ffec0d3568a9c9p-4 : inexact-ok
+= acosh upward binary128 0x1.0800751d9facbp+0 : 0x3.fd7723edbf377ffec0d3568a9c92p-4 : inexact-ok
+= acosh downward ibm128 0x1.0800751d9facbp+0 : 0x3.fd7723edbf377ffec0d3568a9cp-4 : inexact-ok
+= acosh tonearest ibm128 0x1.0800751d9facbp+0 : 0x3.fd7723edbf377ffec0d3568a9dp-4 : inexact-ok
+= acosh towardzero ibm128 0x1.0800751d9facbp+0 : 0x3.fd7723edbf377ffec0d3568a9cp-4 : inexact-ok
+= acosh upward ibm128 0x1.0800751d9facbp+0 : 0x3.fd7723edbf377ffec0d3568a9dp-4 : inexact-ok
 acosh 0x1.1ecbdf374bce01cap+0
 = acosh downward binary32 0x1.1ecbep+0 : 0x7.c5802p-4 : inexact-ok
 = acosh tonearest binary32 0x1.1ecbep+0 : 0x7.c5802p-4 : inexact-ok
index 959d347238d631e0690c2efd0e9b3c1f2af98231..2e3f4235bdecb9ff01a7906d0f5c67638d36e193 100644 (file)
@@ -119,7 +119,7 @@ __ieee754_acosh (double x)
                              + z4
                                    * ((cl[5] + z * cl[6])
                                       + z2 * (cl[7] + z * cl[8]))));
-      double eps = ds * 0x1.04p-50 - 0x1p-104 * sh;
+      double eps = ds * 0x1.22p-50 - 0x1p-104 * sh;
       ds += sl;
       double lb = sh + (ds - eps), ub = sh + (ds + eps);
       if (lb == ub)