aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-02-25 00:01:15 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-02-25 00:01:15 +0000
commit440169d681cc9f422e8486f1324079bef0e0c35a (patch)
tree9b732f618ba081518cf0cca84ef33328526a4633
parentba7d2c543f7d69883ece7eab39bf6c5cd5dc3081 (diff)
downloadglibc-440169d681cc9f422e8486f1324079bef0e0c35a.tar.xz
glibc-440169d681cc9f422e8486f1324079bef0e0c35a.zip
Fix ldbl-128ibm acoshl inaccuracy (bug 18019).
The ldbl-128ibm implementation of acoshl uses a cut-off of 0x1p28 to determine when to use log(x) + log(2) as a formula. That cut-off is too small for this format, resulting in large errors. This patch changes it to a more appropriate cut-off of 0x1p56, adding tests around the cut-offs for various floating-point formats. Tested for powerpc. Also tested for x86_64 and x86 and updated ulps. [BZ #18019] * sysdeps/ieee754/ldbl-128ibm/e_acoshl.c (__ieee754_acoshl): Use 2**56 not 2**28 as threshold for log (2x) formula. * math/auto-libm-test-in: Add more tests of acosh. * math/auto-libm-test-out: Regenerated. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
-rw-r--r--ChangeLog10
-rw-r--r--NEWS3
-rw-r--r--math/auto-libm-test-in31
-rw-r--r--math/auto-libm-test-out835
-rw-r--r--sysdeps/i386/fpu/libm-test-ulps4
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/e_acoshl.c4
-rw-r--r--sysdeps/x86_64/fpu/libm-test-ulps17
7 files changed, 899 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index b8da862dc2..5ea4c4f9f9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2015-02-24 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #18019]
+ * sysdeps/ieee754/ldbl-128ibm/e_acoshl.c (__ieee754_acoshl): Use
+ 2**56 not 2**28 as threshold for log (2x) formula.
+ * math/auto-libm-test-in: Add more tests of acosh.
+ * math/auto-libm-test-out: Regenerated.
+ * sysdeps/i386/fpu/libm-test-ulps: Update.
+ * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
+
2015-02-24 Mike Frysinger <vapier@gentoo.org>
* include/alloca.h [_STACK_GROWS_DOWN] (extend_alloca): Add
diff --git a/NEWS b/NEWS
index f1127a041e..5636a5bc41 100644
--- a/NEWS
+++ b/NEWS
@@ -11,7 +11,8 @@ Version 2.22
4719, 14841, 13064, 14094, 15319, 15467, 15790, 16560, 16783, 17269,
17523, 17569, 17588, 17792, 17836, 17912, 17916, 17932, 17944, 17949,
- 17964, 17965, 17967, 17969, 17978, 17987, 17991, 17996, 17998, 17999.
+ 17964, 17965, 17967, 17969, 17978, 17987, 17991, 17996, 17998, 17999,
+ 18019.
* Character encoding and ctype tables were updated to Unicode 7.0.0, using
new generator scripts contributed by Pravin Satpute and Mike FABIAN (Red
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 62e1439c02..a4bd972c80 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -43,6 +43,37 @@ acosh 1.625
acosh 7
acosh 100
acosh 1e5
+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
acosh max no-test-inline
asin 0
diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
index 9d00c3be12..c8bc6a8b3f 100644
--- a/math/auto-libm-test-out
+++ b/math/auto-libm-test-out
@@ -1280,6 +1280,841 @@ acosh 1e5
= acosh tonearest ldbl-128ibm 0x1.86ap+16L : 0xc.34c12d490b800b9c3c81561408p+0L : inexact-ok
= acosh towardzero ldbl-128ibm 0x1.86ap+16L : 0xc.34c12d490b800b9c3c81561408p+0L : inexact-ok
= acosh upward ldbl-128ibm 0x1.86ap+16L : 0xc.34c12d490b800b9c3c8156140cp+0L : inexact-ok
+acosh 0x1p8
+= acosh downward flt-32 0x1p+8f : 0x6.3d029p+0f : inexact-ok
+= acosh tonearest flt-32 0x1p+8f : 0x6.3d0298p+0f : inexact-ok
+= acosh towardzero flt-32 0x1p+8f : 0x6.3d029p+0f : inexact-ok
+= acosh upward flt-32 0x1p+8f : 0x6.3d0298p+0f : inexact-ok
+= acosh downward dbl-64 0x1p+8 : 0x6.3d0297b6484bp+0 : inexact-ok
+= acosh tonearest dbl-64 0x1p+8 : 0x6.3d0297b6484b4p+0 : inexact-ok
+= acosh towardzero dbl-64 0x1p+8 : 0x6.3d0297b6484bp+0 : inexact-ok
+= acosh upward dbl-64 0x1p+8 : 0x6.3d0297b6484b4p+0 : inexact-ok
+= acosh downward ldbl-96-intel 0x1p+8L : 0x6.3d0297b6484b39bp+0L : inexact-ok
+= acosh tonearest ldbl-96-intel 0x1p+8L : 0x6.3d0297b6484b39b8p+0L : inexact-ok
+= acosh towardzero ldbl-96-intel 0x1p+8L : 0x6.3d0297b6484b39bp+0L : inexact-ok
+= acosh upward ldbl-96-intel 0x1p+8L : 0x6.3d0297b6484b39b8p+0L : inexact-ok
+= acosh downward ldbl-96-m68k 0x1p+8L : 0x6.3d0297b6484b39bp+0L : inexact-ok
+= acosh tonearest ldbl-96-m68k 0x1p+8L : 0x6.3d0297b6484b39b8p+0L : inexact-ok
+= acosh towardzero ldbl-96-m68k 0x1p+8L : 0x6.3d0297b6484b39bp+0L : inexact-ok
+= acosh upward ldbl-96-m68k 0x1p+8L : 0x6.3d0297b6484b39b8p+0L : inexact-ok
+= acosh downward ldbl-128 0x1p+8L : 0x6.3d0297b6484b39b4baebf4b5fc98p+0L : inexact-ok
+= acosh tonearest ldbl-128 0x1p+8L : 0x6.3d0297b6484b39b4baebf4b5fc98p+0L : inexact-ok
+= acosh towardzero ldbl-128 0x1p+8L : 0x6.3d0297b6484b39b4baebf4b5fc98p+0L : inexact-ok
+= acosh upward ldbl-128 0x1p+8L : 0x6.3d0297b6484b39b4baebf4b5fc9cp+0L : inexact-ok
+= acosh downward ldbl-128ibm 0x1p+8L : 0x6.3d0297b6484b39b4baebf4b5fcp+0L : inexact-ok
+= acosh tonearest ldbl-128ibm 0x1p+8L : 0x6.3d0297b6484b39b4baebf4b5fcp+0L : inexact-ok
+= acosh towardzero ldbl-128ibm 0x1p+8L : 0x6.3d0297b6484b39b4baebf4b5fcp+0L : inexact-ok
+= acosh upward ldbl-128ibm 0x1p+8L : 0x6.3d0297b6484b39b4baebf4b5fep+0L : inexact-ok
+acosh 0x1p9
+= acosh downward flt-32 0x2p+8f : 0x6.ee74d8p+0f : inexact-ok
+= acosh tonearest flt-32 0x2p+8f : 0x6.ee74ep+0f : inexact-ok
+= acosh towardzero flt-32 0x2p+8f : 0x6.ee74d8p+0f : inexact-ok
+= acosh upward flt-32 0x2p+8f : 0x6.ee74ep+0f : inexact-ok
+= acosh downward dbl-64 0x2p+8 : 0x6.ee74dfae309acp+0 : inexact-ok
+= acosh tonearest dbl-64 0x2p+8 : 0x6.ee74dfae309acp+0 : inexact-ok
+= acosh towardzero dbl-64 0x2p+8 : 0x6.ee74dfae309acp+0 : inexact-ok
+= acosh upward dbl-64 0x2p+8 : 0x6.ee74dfae309bp+0 : inexact-ok
+= acosh downward ldbl-96-intel 0x2p+8L : 0x6.ee74dfae309ac08p+0L : inexact-ok
+= acosh tonearest ldbl-96-intel 0x2p+8L : 0x6.ee74dfae309ac08p+0L : inexact-ok
+= acosh towardzero ldbl-96-intel 0x2p+8L : 0x6.ee74dfae309ac08p+0L : inexact-ok
+= acosh upward ldbl-96-intel 0x2p+8L : 0x6.ee74dfae309ac088p+0L : inexact-ok
+= acosh downward ldbl-96-m68k 0x2p+8L : 0x6.ee74dfae309ac08p+0L : inexact-ok
+= acosh tonearest ldbl-96-m68k 0x2p+8L : 0x6.ee74dfae309ac08p+0L : inexact-ok
+= acosh towardzero ldbl-96-m68k 0x2p+8L : 0x6.ee74dfae309ac08p+0L : inexact-ok
+= acosh upward ldbl-96-m68k 0x2p+8L : 0x6.ee74dfae309ac088p+0L : inexact-ok
+= acosh downward ldbl-128 0x2p+8L : 0x6.ee74dfae309ac0808d86ee993ef4p+0L : inexact-ok
+= acosh tonearest ldbl-128 0x2p+8L : 0x6.ee74dfae309ac0808d86ee993ef4p+0L : inexact-ok
+= acosh towardzero ldbl-128 0x2p+8L : 0x6.ee74dfae309ac0808d86ee993ef4p+0L : inexact-ok
+= acosh upward ldbl-128 0x2p+8L : 0x6.ee74dfae309ac0808d86ee993ef8p+0L : inexact-ok
+= acosh downward ldbl-128ibm 0x2p+8L : 0x6.ee74dfae309ac0808d86ee993ep+0L : inexact-ok
+= acosh tonearest ldbl-128ibm 0x2p+8L : 0x6.ee74dfae309ac0808d86ee993ep+0L : inexact-ok
+= acosh towardzero ldbl-128ibm 0x2p+8L : 0x6.ee74dfae309ac0808d86ee993ep+0L : inexact-ok
+= acosh upward ldbl-128ibm 0x2p+8L : 0x6.ee74dfae309ac0808d86ee994p+0L : inexact-ok
+acosh 0x1p10
+= acosh downward flt-32 0x4p+8f : 0x7.9fe7p+0f : inexact-ok
+= acosh tonearest flt-32 0x4p+8f : 0x7.9fe7p+0f : inexact-ok
+= acosh towardzero flt-32 0x4p+8f : 0x7.9fe7p+0f : inexact-ok
+= acosh upward flt-32 0x4p+8f : 0x7.9fe708p+0f : inexact-ok
+= acosh downward dbl-64 0x4p+8 : 0x7.9fe703a603d2p+0 : inexact-ok
+= acosh tonearest dbl-64 0x4p+8 : 0x7.9fe703a603d24p+0 : inexact-ok
+= acosh towardzero dbl-64 0x4p+8 : 0x7.9fe703a603d2p+0 : inexact-ok
+= acosh upward dbl-64 0x4p+8 : 0x7.9fe703a603d24p+0 : inexact-ok
+= acosh downward ldbl-96-intel 0x4p+8L : 0x7.9fe703a603d23a6p+0L : inexact-ok
+= acosh tonearest ldbl-96-intel 0x4p+8L : 0x7.9fe703a603d23a6p+0L : inexact-ok
+= acosh towardzero ldbl-96-intel 0x4p+8L : 0x7.9fe703a603d23a6p+0L : inexact-ok
+= acosh upward ldbl-96-intel 0x4p+8L : 0x7.9fe703a603d23a68p+0L : inexact-ok
+= acosh downward ldbl-96-m68k 0x4p+8L : 0x7.9fe703a603d23a6p+0L : inexact-ok
+= acosh tonearest ldbl-96-m68k 0x4p+8L : 0x7.9fe703a603d23a6p+0L : inexact-ok
+= acosh towardzero ldbl-96-m68k 0x4p+8L : 0x7.9fe703a603d23a6p+0L : inexact-ok
+= acosh upward ldbl-96-m68k 0x4p+8L : 0x7.9fe703a603d23a68p+0L : inexact-ok
+= acosh downward ldbl-128 0x4p+8L : 0x7.9fe703a603d23a60d7735972d5b4p+0L : inexact-ok
+= acosh tonearest ldbl-128 0x4p+8L : 0x7.9fe703a603d23a60d7735972d5b8p+0L : inexact-ok
+= acosh towardzero ldbl-128 0x4p+8L : 0x7.9fe703a603d23a60d7735972d5b4p+0L : inexact-ok
+= acosh upward ldbl-128 0x4p+8L : 0x7.9fe703a603d23a60d7735972d5b8p+0L : inexact-ok
+= acosh downward ldbl-128ibm 0x4p+8L : 0x7.9fe703a603d23a60d7735972d4p+0L : inexact-ok
+= acosh tonearest ldbl-128ibm 0x4p+8L : 0x7.9fe703a603d23a60d7735972d6p+0L : inexact-ok
+= acosh towardzero ldbl-128ibm 0x4p+8L : 0x7.9fe703a603d23a60d7735972d4p+0L : inexact-ok
+= acosh upward ldbl-128ibm 0x4p+8L : 0x7.9fe703a603d23a60d7735972d6p+0L : inexact-ok
+acosh 0x1p11
+= acosh downward flt-32 0x8p+8f : 0x8.51591p+0f : inexact-ok
+= acosh tonearest flt-32 0x8p+8f : 0x8.51592p+0f : inexact-ok
+= acosh towardzero flt-32 0x8p+8f : 0x8.51591p+0f : inexact-ok
+= acosh upward flt-32 0x8p+8f : 0x8.51592p+0f : inexact-ok
+= acosh downward dbl-64 0x8p+8 : 0x8.51591e9dd5b8p+0 : inexact-ok
+= acosh tonearest dbl-64 0x8p+8 : 0x8.51591e9dd5b8p+0 : inexact-ok
+= acosh towardzero dbl-64 0x8p+8 : 0x8.51591e9dd5b8p+0 : inexact-ok
+= acosh upward dbl-64 0x8p+8 : 0x8.51591e9dd5b88p+0 : inexact-ok
+= acosh downward ldbl-96-intel 0x8p+8L : 0x8.51591e9dd5b834p+0L : inexact-ok
+= acosh tonearest ldbl-96-intel 0x8p+8L : 0x8.51591e9dd5b8341p+0L : inexact-ok
+= acosh towardzero ldbl-96-intel 0x8p+8L : 0x8.51591e9dd5b834p+0L : inexact-ok
+= acosh upward ldbl-96-intel 0x8p+8L : 0x8.51591e9dd5b8341p+0L : inexact-ok
+= acosh downward ldbl-96-m68k 0x8p+8L : 0x8.51591e9dd5b834p+0L : inexact-ok
+= acosh tonearest ldbl-96-m68k 0x8p+8L : 0x8.51591e9dd5b8341p+0L : inexact-ok
+= acosh towardzero ldbl-96-m68k 0x8p+8L : 0x8.51591e9dd5b834p+0L : inexact-ok
+= acosh upward ldbl-96-m68k 0x8p+8L : 0x8.51591e9dd5b8341p+0L : inexact-ok
+= acosh downward ldbl-128 0x8p+8L : 0x8.51591e9dd5b8340d735715c21a08p+0L : inexact-ok
+= acosh tonearest ldbl-128 0x8p+8L : 0x8.51591e9dd5b8340d735715c21a1p+0L : inexact-ok
+= acosh towardzero ldbl-128 0x8p+8L : 0x8.51591e9dd5b8340d735715c21a08p+0L : inexact-ok
+= acosh upward ldbl-128 0x8p+8L : 0x8.51591e9dd5b8340d735715c21a1p+0L : inexact-ok
+= acosh downward ldbl-128ibm 0x8p+8L : 0x8.51591e9dd5b8340d735715c218p+0L : inexact-ok
+= acosh tonearest ldbl-128ibm 0x8p+8L : 0x8.51591e9dd5b8340d735715c21cp+0L : inexact-ok
+= acosh towardzero ldbl-128ibm 0x8p+8L : 0x8.51591e9dd5b8340d735715c218p+0L : inexact-ok
+= acosh upward ldbl-128ibm 0x8p+8L : 0x8.51591e9dd5b8340d735715c21cp+0L : inexact-ok
+acosh 0x1p12
+= acosh downward flt-32 0x1p+12f : 0x9.02cb3p+0f : inexact-ok
+= acosh tonearest flt-32 0x1p+12f : 0x9.02cb3p+0f : inexact-ok
+= acosh towardzero flt-32 0x1p+12f : 0x9.02cb3p+0f : inexact-ok
+= acosh upward flt-32 0x1p+12f : 0x9.02cb4p+0f : inexact-ok
+= acosh downward dbl-64 0x1p+12 : 0x9.02cb3755a789p+0 : inexact-ok
+= acosh tonearest dbl-64 0x1p+12 : 0x9.02cb3755a789p+0 : inexact-ok
+= acosh towardzero dbl-64 0x1p+12 : 0x9.02cb3755a789p+0 : inexact-ok
+= acosh upward dbl-64 0x1p+12 : 0x9.02cb3755a7898p+0 : inexact-ok
+= acosh downward ldbl-96-intel 0x1p+12L : 0x9.02cb3755a78915bp+0L : inexact-ok
+= acosh tonearest ldbl-96-intel 0x1p+12L : 0x9.02cb3755a78915cp+0L : inexact-ok
+= acosh towardzero ldbl-96-intel 0x1p+12L : 0x9.02cb3755a78915bp+0L : inexact-ok
+= acosh upward ldbl-96-intel 0x1p+12L : 0x9.02cb3755a78915cp+0L : inexact-ok
+= acosh downward ldbl-96-m68k 0x1p+12L : 0x9.02cb3755a78915bp+0L : inexact-ok
+= acosh tonearest ldbl-96-m68k 0x1p+12L : 0x9.02cb3755a78915cp+0L : inexact-ok
+= acosh towardzero ldbl-96-m68k 0x1p+12L : 0x9.02cb3755a78915bp+0L : inexact-ok
+= acosh upward ldbl-96-m68k 0x1p+12L : 0x9.02cb3755a78915cp+0L : inexact-ok
+= acosh downward ldbl-128 0x1p+12L : 0x9.02cb3755a78915b94082c962d54p+0L : inexact-ok
+= acosh tonearest ldbl-128 0x1p+12L : 0x9.02cb3755a78915b94082c962d54p+0L : inexact-ok
+= acosh towardzero ldbl-128 0x1p+12L : 0x9.02cb3755a78915b94082c962d54p+0L : inexact-ok
+= acosh upward ldbl-128 0x1p+12L : 0x9.02cb3755a78915b94082c962d548p+0L : inexact-ok
+= acosh downward ldbl-128ibm 0x1p+12L : 0x9.02cb3755a78915b94082c962d4p+0L : inexact-ok
+= acosh tonearest ldbl-128ibm 0x1p+12L : 0x9.02cb3755a78915b94082c962d4p+0L : inexact-ok
+= acosh towardzero ldbl-128ibm 0x1p+12L : 0x9.02cb3755a78915b94082c962d4p+0L : inexact-ok
+= acosh upward ldbl-128ibm 0x1p+12L : 0x9.02cb3755a78915b94082c962d8p+0L : inexact-ok
+acosh 0x1p13
+= acosh downward flt-32 0x2p+12f : 0x9.b43d4p+0f : inexact-ok
+= acosh tonearest flt-32 0x2p+12f : 0x9.b43d5p+0f : inexact-ok
+= acosh towardzero flt-32 0x2p+12f : 0x9.b43d4p+0f : inexact-ok
+= acosh upward flt-32 0x2p+12f : 0x9.b43d5p+0f : inexact-ok
+= acosh downward dbl-64 0x2p+12 : 0x9.b43d4f7d79588p+0 : inexact-ok
+= acosh tonearest dbl-64 0x2p+12 : 0x9.b43d4f7d79588p+0 : inexact-ok
+= acosh towardzero dbl-64 0x2p+12 : 0x9.b43d4f7d79588p+0 : inexact-ok
+= acosh upward dbl-64 0x2p+12 : 0x9.b43d4f7d7959p+0 : inexact-ok
+= acosh downward ldbl-96-intel 0x2p+12L : 0x9.b43d4f7d7958a5ep+0L : inexact-ok
+= acosh tonearest ldbl-96-intel 0x2p+12L : 0x9.b43d4f7d7958a5ep+0L : inexact-ok
+= acosh towardzero ldbl-96-intel 0x2p+12L : 0x9.b43d4f7d7958a5ep+0L : inexact-ok
+= acosh upward ldbl-96-intel 0x2p+12L : 0x9.b43d4f7d7958a5fp+0L : inexact-ok
+= acosh downward ldbl-96-m68k 0x2p+12L : 0x9.b43d4f7d7958a5ep+0L : inexact-ok
+= acosh tonearest ldbl-96-m68k 0x2p+12L : 0x9.b43d4f7d7958a5ep+0L : inexact-ok
+= acosh towardzero ldbl-96-m68k 0x2p+12L : 0x9.b43d4f7d7958a5ep+0L : inexact-ok
+= acosh upward ldbl-96-m68k 0x2p+12L : 0x9.b43d4f7d7958a5fp+0L : inexact-ok
+= acosh downward ldbl-128 0x2p+12L : 0x9.b43d4f7d7958a5e50a739cfae1e8p+0L : inexact-ok
+= acosh tonearest ldbl-128 0x2p+12L : 0x9.b43d4f7d7958a5e50a739cfae1e8p+0L : inexact-ok
+= acosh towardzero ldbl-128 0x2p+12L : 0x9.b43d4f7d7958a5e50a739cfae1e8p+0L : inexact-ok
+= acosh upward ldbl-128 0x2p+12L : 0x9.b43d4f7d7958a5e50a739cfae1fp+0L : inexact-ok
+= acosh downward ldbl-128ibm 0x2p+12L : 0x9.b43d4f7d7958a5e50a739cfaep+0L : inexact-ok
+= acosh tonearest ldbl-128ibm 0x2p+12L : 0x9.b43d4f7d7958a5e50a739cfaep+0L : inexact-ok
+= acosh towardzero ldbl-128ibm 0x2p+12L : 0x9.b43d4f7d7958a5e50a739cfaep+0L : inexact-ok
+= acosh upward ldbl-128ibm 0x2p+12L : 0x9.b43d4f7d7958a5e50a739cfae4p+0L : inexact-ok
+acosh 0x1p24
+= acosh downward flt-32 0x1p+24f : 0x1.154244p+4f : inexact-ok
+= acosh tonearest flt-32 0x1p+24f : 0x1.154246p+4f : inexact-ok
+= acosh towardzero flt-32 0x1p+24f : 0x1.154244p+4f : inexact-ok
+= acosh upward flt-32 0x1p+24f : 0x1.154246p+4f : inexact-ok
+= acosh downward dbl-64 0x1p+24 : 0x1.1542457337d42p+4 : inexact-ok
+= acosh tonearest dbl-64 0x1p+24 : 0x1.1542457337d43p+4 : inexact-ok
+= acosh towardzero dbl-64 0x1p+24 : 0x1.1542457337d42p+4 : inexact-ok
+= acosh upward dbl-64 0x1p+24 : 0x1.1542457337d43p+4 : inexact-ok
+= acosh downward ldbl-96-intel 0x1p+24L : 0x1.1542457337d42a1cp+4L : inexact-ok
+= acosh tonearest ldbl-96-intel 0x1p+24L : 0x1.1542457337d42a1cp+4L : inexact-ok
+= acosh towardzero ldbl-96-intel 0x1p+24L : 0x1.1542457337d42a1cp+4L : inexact-ok
+= acosh upward ldbl-96-intel 0x1p+24L : 0x1.1542457337d42a1ep+4L : inexact-ok
+= acosh downward ldbl-96-m68k 0x1p+24L : 0x1.1542457337d42a1cp+4L : inexact-ok
+= acosh tonearest ldbl-96-m68k 0x1p+24L : 0x1.1542457337d42a1cp+4L : inexact-ok
+= acosh towardzero ldbl-96-m68k 0x1p+24L : 0x1.1542457337d42a1cp+4L : inexact-ok
+= acosh upward ldbl-96-m68k 0x1p+24L : 0x1.1542457337d42a1ep+4L : inexact-ok
+= acosh downward ldbl-128 0x1p+24L : 0x1.1542457337d42a1c6b73c89d84abp+4L : inexact-ok
+= acosh tonearest ldbl-128 0x1p+24L : 0x1.1542457337d42a1c6b73c89d84acp+4L : inexact-ok
+= acosh towardzero ldbl-128 0x1p+24L : 0x1.1542457337d42a1c6b73c89d84abp+4L : inexact-ok
+= acosh upward ldbl-128 0x1p+24L : 0x1.1542457337d42a1c6b73c89d84acp+4L : inexact-ok
+= acosh downward ldbl-128ibm 0x1p+24L : 0x1.1542457337d42a1c6b73c89d848p+4L : inexact-ok
+= acosh tonearest ldbl-128ibm 0x1p+24L : 0x1.1542457337d42a1c6b73c89d848p+4L : inexact-ok
+= acosh towardzero ldbl-128ibm 0x1p+24L : 0x1.1542457337d42a1c6b73c89d848p+4L : inexact-ok
+= acosh upward ldbl-128ibm 0x1p+24L : 0x1.1542457337d42a1c6b73c89d85p+4L : inexact-ok
+acosh 0x1p25
+= acosh downward flt-32 0x2p+24f : 0x1.205966p+4f : inexact-ok
+= acosh tonearest flt-32 0x2p+24f : 0x1.205966p+4f : inexact-ok
+= acosh towardzero flt-32 0x2p+24f : 0x1.205966p+4f : inexact-ok
+= acosh upward flt-32 0x2p+24f : 0x1.205968p+4f : inexact-ok
+= acosh downward dbl-64 0x2p+24 : 0x1.205966f2b4f12p+4 : inexact-ok
+= acosh tonearest dbl-64 0x2p+24 : 0x1.205966f2b4f12p+4 : inexact-ok
+= acosh towardzero dbl-64 0x2p+24 : 0x1.205966f2b4f12p+4 : inexact-ok
+= acosh upward dbl-64 0x2p+24 : 0x1.205966f2b4f13p+4 : inexact-ok
+= acosh downward ldbl-96-intel 0x2p+24L : 0x1.205966f2b4f124b6p+4L : inexact-ok
+= acosh tonearest ldbl-96-intel 0x2p+24L : 0x1.205966f2b4f124b8p+4L : inexact-ok
+= acosh towardzero ldbl-96-intel 0x2p+24L : 0x1.205966f2b4f124b6p+4L : inexact-ok
+= acosh upward ldbl-96-intel 0x2p+24L : 0x1.205966f2b4f124b8p+4L : inexact-ok
+= acosh downward ldbl-96-m68k 0x2p+24L : 0x1.205966f2b4f124b6p+4L : inexact-ok
+= acosh tonearest ldbl-96-m68k 0x2p+24L : 0x1.205966f2b4f124b8p+4L : inexact-ok
+= acosh towardzero ldbl-96-m68k 0x2p+24L : 0x1.205966f2b4f124b6p+4L : inexact-ok
+= acosh upward ldbl-96-m68k 0x2p+24L : 0x1.205966f2b4f124b8p+4L : inexact-ok
+= acosh downward ldbl-128 0x2p+24L : 0x1.205966f2b4f124b7281203d70652p+4L : inexact-ok
+= acosh tonearest ldbl-128 0x2p+24L : 0x1.205966f2b4f124b7281203d70653p+4L : inexact-ok
+= acosh towardzero ldbl-128 0x2p+24L : 0x1.205966f2b4f124b7281203d70652p+4L : inexact-ok
+= acosh upward ldbl-128 0x2p+24L : 0x1.205966f2b4f124b7281203d70653p+4L : inexact-ok
+= acosh downward ldbl-128ibm 0x2p+24L : 0x1.205966f2b4f124b7281203d706p+4L : inexact-ok
+= acosh tonearest ldbl-128ibm 0x2p+24L : 0x1.205966f2b4f124b7281203d7068p+4L : inexact-ok
+= acosh towardzero ldbl-128ibm 0x2p+24L : 0x1.205966f2b4f124b7281203d706p+4L : inexact-ok
+= acosh upward ldbl-128ibm 0x2p+24L : 0x1.205966f2b4f124b7281203d7068p+4L : inexact-ok
+acosh 0x1p26
+= acosh downward flt-32 0x4p+24f : 0x1.2b7088p+4f : inexact-ok
+= acosh tonearest flt-32 0x4p+24f : 0x1.2b7088p+4f : inexact-ok
+= acosh towardzero flt-32 0x4p+24f : 0x1.2b7088p+4f : inexact-ok
+= acosh upward flt-32 0x4p+24f : 0x1.2b708ap+4f : inexact-ok
+= acosh downward dbl-64 0x4p+24 : 0x1.2b708872320e1p+4 : inexact-ok
+= acosh tonearest dbl-64 0x4p+24 : 0x1.2b708872320e2p+4 : inexact-ok
+= acosh towardzero dbl-64 0x4p+24 : 0x1.2b708872320e1p+4 : inexact-ok
+= acosh upward dbl-64 0x4p+24 : 0x1.2b708872320e2p+4 : inexact-ok
+= acosh downward ldbl-96-intel 0x4p+24L : 0x1.2b708872320e1d1p+4L : inexact-ok
+= acosh tonearest ldbl-96-intel 0x4p+24L : 0x1.2b708872320e1d12p+4L : inexact-ok
+= acosh towardzero ldbl-96-intel 0x4p+24L : 0x1.2b708872320e1d1p+4L : inexact-ok
+= acosh upward ldbl-96-intel 0x4p+24L : 0x1.2b708872320e1d12p+4L : inexact-ok
+= acosh downward ldbl-96-m68k 0x4p+24L : 0x1.2b708872320e1d1p+4L : inexact-ok
+= acosh tonearest ldbl-96-m68k 0x4p+24L : 0x1.2b708872320e1d12p+4L : inexact-ok
+= acosh towardzero ldbl-96-m68k 0x4p+24L : 0x1.2b708872320e1d1p+4L : inexact-ok
+= acosh upward ldbl-96-m68k 0x4p+24L : 0x1.2b708872320e1d12p+4L : inexact-ok
+= acosh downward ldbl-128 0x4p+24L : 0x1.2b708872320e1d11e4b03f1086a8p+4L : inexact-ok
+= acosh tonearest ldbl-128 0x4p+24L : 0x1.2b708872320e1d11e4b03f1086a9p+4L : inexact-ok
+= acosh towardzero ldbl-128 0x4p+24L : 0x1.2b708872320e1d11e4b03f1086a8p+4L : inexact-ok
+= acosh upward ldbl-128 0x4p+24L : 0x1.2b708872320e1d11e4b03f1086a9p+4L : inexact-ok
+= acosh downward ldbl-128ibm 0x4p+24L : 0x1.2b708872320e1d11e4b03f10868p+4L : inexact-ok
+= acosh tonearest ldbl-128ibm 0x4p+24L : 0x1.2b708872320e1d11e4b03f10868p+4L : inexact-ok
+= acosh towardzero ldbl-128ibm 0x4p+24L : 0x1.2b708872320e1d11e4b03f10868p+4L : inexact-ok
+= acosh upward ldbl-128ibm 0x4p+24L : 0x1.2b708872320e1d11e4b03f1087p+4L : inexact-ok
+acosh 0x1p27
+= acosh downward flt-32 0x8p+24f : 0x1.3687a8p+4f : inexact-ok
+= acosh tonearest flt-32 0x8p+24f : 0x1.3687aap+4f : inexact-ok
+= acosh towardzero flt-32 0x8p+24f : 0x1.3687a8p+4f : inexact-ok
+= acosh upward flt-32 0x8p+24f : 0x1.3687aap+4f : inexact-ok
+= acosh downward dbl-64 0x8p+24 : 0x1.3687a9f1af2b1p+4 : inexact-ok
+= acosh tonearest dbl-64 0x8p+24 : 0x1.3687a9f1af2b1p+4 : inexact-ok
+= acosh towardzero dbl-64 0x8p+24 : 0x1.3687a9f1af2b1p+4 : inexact-ok
+= acosh upward dbl-64 0x8p+24 : 0x1.3687a9f1af2b2p+4 : inexact-ok
+= acosh downward ldbl-96-intel 0x8p+24L : 0x1.3687a9f1af2b14dcp+4L : inexact-ok
+= acosh tonearest ldbl-96-intel 0x8p+24L : 0x1.3687a9f1af2b14dcp+4L : inexact-ok
+= acosh towardzero ldbl-96-intel 0x8p+24L : 0x1.3687a9f1af2b14dcp+4L : inexact-ok
+= acosh upward ldbl-96-intel 0x8p+24L : 0x1.3687a9f1af2b14dep+4L : inexact-ok
+= acosh downward ldbl-96-m68k 0x8p+24L : 0x1.3687a9f1af2b14dcp+4L : inexact-ok
+= acosh tonearest ldbl-96-m68k 0x8p+24L : 0x1.3687a9f1af2b14dcp+4L : inexact-ok
+= acosh towardzero ldbl-96-m68k 0x8p+24L : 0x1.3687a9f1af2b14dcp+4L : inexact-ok
+= acosh upward ldbl-96-m68k 0x8p+24L : 0x1.3687a9f1af2b14dep+4L : inexact-ok
+= acosh downward ldbl-128 0x8p+24L : 0x1.3687a9f1af2b14dca14e7a4a06e9p+4L : inexact-ok
+= acosh tonearest ldbl-128 0x8p+24L : 0x1.3687a9f1af2b14dca14e7a4a06e9p+4L : inexact-ok
+= acosh towardzero ldbl-128 0x8p+24L : 0x1.3687a9f1af2b14dca14e7a4a06e9p+4L : inexact-ok
+= acosh upward ldbl-128 0x8p+24L : 0x1.3687a9f1af2b14dca14e7a4a06eap+4L : inexact-ok
+= acosh downward ldbl-128ibm 0x8p+24L : 0x1.3687a9f1af2b14dca14e7a4a068p+4L : inexact-ok
+= acosh tonearest ldbl-128ibm 0x8p+24L : 0x1.3687a9f1af2b14dca14e7a4a07p+4L : inexact-ok
+= acosh towardzero ldbl-128ibm 0x8p+24L : 0x1.3687a9f1af2b14dca14e7a4a068p+4L : inexact-ok
+= acosh upward ldbl-128ibm 0x8p+24L : 0x1.3687a9f1af2b14dca14e7a4a07p+4L : inexact-ok
+acosh 0x1p28
+= acosh downward flt-32 0x1p+28f : 0x1.419ecap+4f : inexact-ok
+= acosh tonearest flt-32 0x1p+28f : 0x1.419eccp+4f : inexact-ok
+= acosh towardzero flt-32 0x1p+28f : 0x1.419ecap+4f : inexact-ok
+= acosh upward flt-32 0x1p+28f : 0x1.419eccp+4f : inexact-ok
+= acosh downward dbl-64 0x1p+28 : 0x1.419ecb712c48p+4 : inexact-ok
+= acosh tonearest dbl-64 0x1p+28 : 0x1.419ecb712c481p+4 : inexact-ok
+= acosh towardzero dbl-64 0x1p+28 : 0x1.419ecb712c48p+4 : inexact-ok
+= acosh upward dbl-64 0x1p+28 : 0x1.419ecb712c481p+4 : inexact-ok
+= acosh downward ldbl-96-intel 0x1p+28L : 0x1.419ecb712c480c82p+4L : inexact-ok
+= acosh tonearest ldbl-96-intel 0x1p+28L : 0x1.419ecb712c480c84p+4L : inexact-ok
+= acosh towardzero ldbl-96-intel 0x1p+28L : 0x1.419ecb712c480c82p+4L : inexact-ok
+= acosh upward ldbl-96-intel 0x1p+28L : 0x1.419ecb712c480c84p+4L : inexact-ok
+= acosh downward ldbl-96-m68k 0x1p+28L : 0x1.419ecb712c480c82p+4L : inexact-ok
+= acosh tonearest ldbl-96-m68k 0x1p+28L : 0x1.419ecb712c480c84p+4L : inexact-ok
+= acosh towardzero ldbl-96-m68k 0x1p+28L : 0x1.419ecb712c480c82p+4L : inexact-ok
+= acosh upward ldbl-96-m68k 0x1p+28L : 0x1.419ecb712c480c84p+4L : inexact-ok
+= acosh downward ldbl-128 0x1p+28L : 0x1.419ecb712c480c835decb5838728p+4L : inexact-ok
+= acosh tonearest ldbl-128 0x1p+28L : 0x1.419ecb712c480c835decb5838728p+4L : inexact-ok
+= acosh towardzero ldbl-128 0x1p+28L : 0x1.419ecb712c480c835decb5838728p+4L : inexact-ok
+= acosh upward ldbl-128 0x1p+28L : 0x1.419ecb712c480c835decb5838729p+4L : inexact-ok
+= acosh downward ldbl-128ibm 0x1p+28L : 0x1.419ecb712c480c835decb58387p+4L : inexact-ok
+= acosh tonearest ldbl-128ibm 0x1p+28L : 0x1.419ecb712c480c835decb58387p+4L : inexact-ok
+= acosh towardzero ldbl-128ibm 0x1p+28L : 0x1.419ecb712c480c835decb58387p+4L : inexact-ok
+= acosh upward ldbl-128ibm 0x1p+28L : 0x1.419ecb712c480c835decb583878p+4L : inexact-ok
+acosh 0x1p29
+= acosh downward flt-32 0x2p+28f : 0x1.4cb5ecp+4f : inexact-ok
+= acosh tonearest flt-32 0x2p+28f : 0x1.4cb5ecp+4f : inexact-ok
+= acosh towardzero flt-32 0x2p+28f : 0x1.4cb5ecp+4f : inexact-ok
+= acosh upward flt-32 0x2p+28f : 0x1.4cb5eep+4f : inexact-ok
+= acosh downward dbl-64 0x2p+28 : 0x1.4cb5ecf0a965p+4 : inexact-ok
+= acosh tonearest dbl-64 0x2p+28 : 0x1.4cb5ecf0a965p+4 : inexact-ok
+= acosh towardzero dbl-64 0x2p+28 : 0x1.4cb5ecf0a965p+4 : inexact-ok
+= acosh upward dbl-64 0x2p+28 : 0x1.4cb5ecf0a9651p+4 : inexact-ok
+= acosh downward ldbl-96-intel 0x2p+28L : 0x1.4cb5ecf0a965042p+4L : inexact-ok
+= acosh tonearest ldbl-96-intel 0x2p+28L : 0x1.4cb5ecf0a9650422p+4L : inexact-ok
+= acosh towardzero ldbl-96-intel 0x2p+28L : 0x1.4cb5ecf0a965042p+4L : inexact-ok
+= acosh upward ldbl-96-intel 0x2p+28L : 0x1.4cb5ecf0a9650422p+4L : inexact-ok
+= acosh downward ldbl-96-m68k 0x2p+28L : 0x1.4cb5ecf0a965042p+4L : inexact-ok
+= acosh tonearest ldbl-96-m68k 0x2p+28L : 0x1.4cb5ecf0a9650422p+4L : inexact-ok
+= acosh towardzero ldbl-96-m68k 0x2p+28L : 0x1.4cb5ecf0a965042p+4L : inexact-ok
+= acosh upward ldbl-96-m68k 0x2p+28L : 0x1.4cb5ecf0a9650422p+4L : inexact-ok
+= acosh downward ldbl-128 0x2p+28L : 0x1.4cb5ecf0a96504211a8af0bd0767p+4L : inexact-ok
+= acosh tonearest ldbl-128 0x2p+28L : 0x1.4cb5ecf0a96504211a8af0bd0768p+4L : inexact-ok
+= acosh towardzero ldbl-128 0x2p+28L : 0x1.4cb5ecf0a96504211a8af0bd0767p+4L : inexact-ok
+= acosh upward ldbl-128 0x2p+28L : 0x1.4cb5ecf0a96504211a8af0bd0768p+4L : inexact-ok
+= acosh downward ldbl-128ibm 0x2p+28L : 0x1.4cb5ecf0a96504211a8af0bd07p+4L : inexact-ok
+= acosh tonearest ldbl-128ibm 0x2p+28L : 0x1.4cb5ecf0a96504211a8af0bd078p+4L : inexact-ok
+= acosh towardzero ldbl-128ibm 0x2p+28L : 0x1.4cb5ecf0a96504211a8af0bd07p+4L : inexact-ok
+= acosh upward ldbl-128ibm 0x2p+28L : 0x1.4cb5ecf0a96504211a8af0bd078p+4L : inexact-ok
+acosh 0x1p30
+= acosh downward flt-32 0x4p+28f : 0x1.57cd0ep+4f : inexact-ok
+= acosh tonearest flt-32 0x4p+28f : 0x1.57cd0ep+4f : inexact-ok
+= acosh towardzero flt-32 0x4p+28f : 0x1.57cd0ep+4f : inexact-ok
+= acosh upward flt-32 0x4p+28f : 0x1.57cd1p+4f : inexact-ok
+= acosh downward dbl-64 0x4p+28 : 0x1.57cd0e702681fp+4 : inexact-ok
+= acosh tonearest dbl-64 0x4p+28 : 0x1.57cd0e702682p+4 : inexact-ok
+= acosh towardzero dbl-64 0x4p+28 : 0x1.57cd0e702681fp+4 : inexact-ok
+= acosh upward dbl-64 0x4p+28 : 0x1.57cd0e702682p+4 : inexact-ok
+= acosh downward ldbl-96-intel 0x4p+28L : 0x1.57cd0e702681fbbcp+4L : inexact-ok
+= acosh tonearest ldbl-96-intel 0x4p+28L : 0x1.57cd0e702681fbbcp+4L : inexact-ok
+= acosh towardzero ldbl-96-intel 0x4p+28L : 0x1.57cd0e702681fbbcp+4L : inexact-ok
+= acosh upward ldbl-96-intel 0x4p+28L : 0x1.57cd0e702681fbbep+4L : inexact-ok
+= acosh downward ldbl-96-m68k 0x4p+28L : 0x1.57cd0e702681fbbcp+4L : inexact-ok
+= acosh tonearest ldbl-96-m68k 0x4p+28L : 0x1.57cd0e702681fbbcp+4L : inexact-ok
+= acosh towardzero ldbl-96-m68k 0x4p+28L : 0x1.57cd0e702681fbbcp+4L : inexact-ok
+= acosh upward ldbl-96-m68k 0x4p+28L : 0x1.57cd0e702681fbbep+4L : inexact-ok
+= acosh downward ldbl-128 0x4p+28L : 0x1.57cd0e702681fbbc97292bf687a6p+4L : inexact-ok
+= acosh tonearest ldbl-128 0x4p+28L : 0x1.57cd0e702681fbbc97292bf687a7p+4L : inexact-ok
+= acosh towardzero ldbl-128 0x4p+28L : 0x1.57cd0e702681fbbc97292bf687a6p+4L : inexact-ok
+= acosh upward ldbl-128 0x4p+28L : 0x1.57cd0e702681fbbc97292bf687a7p+4L : inexact-ok
+= acosh downward ldbl-128ibm 0x4p+28L : 0x1.57cd0e702681fbbc97292bf6878p+4L : inexact-ok
+= acosh tonearest ldbl-128ibm 0x4p+28L : 0x1.57cd0e702681fbbc97292bf6878p+4L : inexact-ok
+= acosh towardzero ldbl-128ibm 0x4p+28L : 0x1.57cd0e702681fbbc97292bf6878p+4L : inexact-ok
+= acosh upward ldbl-128ibm 0x4p+28L : 0x1.57cd0e702681fbbc97292bf688p+4L : inexact-ok
+acosh 0x1p31