diff options
author | Joseph Myers <joseph@codesourcery.com> | 2015-02-27 17:48:37 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2015-02-27 17:48:37 +0000 |
commit | 2ca725c594e0c186d928dc0823be7d8b5976112c (patch) | |
tree | 8f477bda16d5f94bb925301798e653d3064ee75d /math | |
parent | af96be34825586536ebcfbf5c675e795ddd3c8fa (diff) | |
download | glibc-2ca725c594e0c186d928dc0823be7d8b5976112c.zip glibc-2ca725c594e0c186d928dc0823be7d8b5976112c.tar.gz glibc-2ca725c594e0c186d928dc0823be7d8b5976112c.tar.bz2 |
Fix ldbl-96, ldbl-128ibm atanhl inaccuracy (bug 18046, bug 18047).
The threshold in ldbl-96 atanhl for when to return the argument,
0x1p-28, is a bit too big, and that in ldbl-128ibm atanhl is much too
big (the relevant condition being x^3/3 being < 0.5ulp of x),
resulting in errors a bit above the limits of those considered
acceptable in glibc in the ldbl-96 case, and in large errors in the
ldbl-128ibm case. This patch changes those implementations to use
more appropriate thresholds and adds tests around the thresholds for
various formats.
Tested for x86_64, x86 and powerpc. x86_64 and x86 ulps updated
accordingly.
[BZ #18046]
[BZ #18047]
* sysdeps/ieee754/ldbl-128ibm/e_atanhl.c (__ieee754_atanhl): Use
0x1p-56L as threshold for just returning the argument.
* sysdeps/ieee754/ldbl-96/e_atanhl.c (__ieee754_atanhl): Use
0x1p-32L as threshold for just returning the argument.
* math/auto-libm-test-in: Add more tests of atanh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulp: Likewise.
Diffstat (limited to 'math')
-rw-r--r-- | math/auto-libm-test-in | 31 | ||||
-rw-r--r-- | math/auto-libm-test-out | 875 |
2 files changed, 906 insertions, 0 deletions
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in index 19d5396..5e4b84d 100644 --- a/math/auto-libm-test-in +++ b/math/auto-libm-test-in @@ -300,7 +300,38 @@ atanh 0.25 atanh 0x1p-5 atanh 0x1p-10 atanh 0x1.2345p-20 +atanh 0x1p-8 +atanh 0x1p-9 +atanh 0x1p-10 +atanh 0x1p-11 +atanh 0x1p-12 +atanh 0x1p-13 +atanh 0x1p-24 +atanh 0x1p-25 +atanh 0x1p-26 +atanh 0x1p-27 +atanh 0x1p-28 +atanh 0x1p-29 +atanh 0x1p-30 +atanh 0x1p-31 +atanh 0x1p-32 +atanh 0x1p-33 +atanh 0x1p-48 +atanh 0x1p-49 +atanh 0x1p-50 +atanh 0x1p-51 +atanh 0x1p-52 +atanh 0x1p-53 +atanh 0x1p-54 +atanh 0x1p-55 +atanh 0x1p-56 +atanh 0x1p-57 +atanh 0x1p-58 +atanh 0x1p-59 +atanh 0x1p-100 # Bug 16352: underflow exception may be missing. +atanh 0x1p-500 missing-underflow +atanh 0x1p-5000 missing-underflow atanh min missing-underflow atanh -min missing-underflow atanh min_subnorm missing-underflow diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out index 27322e8..66bdeb4 100644 --- a/math/auto-libm-test-out +++ b/math/auto-libm-test-out @@ -17635,6 +17635,881 @@ atanh 0x1.2345p-20 = atanh tonearest ldbl-128ibm 0x1.2345p-20L : 0x1.23450000007daf665297209f1ap-20L : inexact-ok = atanh towardzero ldbl-128ibm 0x1.2345p-20L : 0x1.23450000007daf665297209f198p-20L : inexact-ok = atanh upward ldbl-128ibm 0x1.2345p-20L : 0x1.23450000007daf665297209f1ap-20L : inexact-ok +atanh 0x1p-8 += atanh downward flt-32 0x1p-8f : 0x1.000054p-8f : inexact-ok += atanh tonearest flt-32 0x1p-8f : 0x1.000056p-8f : inexact-ok += atanh towardzero flt-32 0x1p-8f : 0x1.000054p-8f : inexact-ok += atanh upward flt-32 0x1p-8f : 0x1.000056p-8f : inexact-ok += atanh downward dbl-64 0x1p-8 : 0x1.000055558888ap-8 : inexact-ok += atanh tonearest dbl-64 0x1p-8 : 0x1.000055558888bp-8 : inexact-ok += atanh towardzero dbl-64 0x1p-8 : 0x1.000055558888ap-8 : inexact-ok += atanh upward dbl-64 0x1p-8 : 0x1.000055558888bp-8 : inexact-ok += atanh downward ldbl-96-intel 0x1p-8L : 0x1.000055558888ad1ap-8L : inexact-ok += atanh tonearest ldbl-96-intel 0x1p-8L : 0x1.000055558888ad1ap-8L : inexact-ok += atanh towardzero ldbl-96-intel 0x1p-8L : 0x1.000055558888ad1ap-8L : inexact-ok += atanh upward ldbl-96-intel 0x1p-8L : 0x1.000055558888ad1cp-8L : inexact-ok += atanh downward ldbl-96-m68k 0x1p-8L : 0x1.000055558888ad1ap-8L : inexact-ok += atanh tonearest ldbl-96-m68k 0x1p-8L : 0x1.000055558888ad1ap-8L : inexact-ok += atanh towardzero ldbl-96-m68k 0x1p-8L : 0x1.000055558888ad1ap-8L : inexact-ok += atanh upward ldbl-96-m68k 0x1p-8L : 0x1.000055558888ad1cp-8L : inexact-ok += atanh downward ldbl-128 0x1p-8L : 0x1.000055558888ad1aee1ef9340407p-8L : inexact-ok += atanh tonearest ldbl-128 0x1p-8L : 0x1.000055558888ad1aee1ef9340408p-8L : inexact-ok += atanh towardzero ldbl-128 0x1p-8L : 0x1.000055558888ad1aee1ef9340407p-8L : inexact-ok += atanh upward ldbl-128 0x1p-8L : 0x1.000055558888ad1aee1ef9340408p-8L : inexact-ok += atanh downward ldbl-128ibm 0x1p-8L : 0x1.000055558888ad1aee1ef93404p-8L : inexact-ok += atanh tonearest ldbl-128ibm 0x1p-8L : 0x1.000055558888ad1aee1ef93404p-8L : inexact-ok += atanh towardzero ldbl-128ibm 0x1p-8L : 0x1.000055558888ad1aee1ef93404p-8L : inexact-ok += atanh upward ldbl-128ibm 0x1p-8L : 0x1.000055558888ad1aee1ef934048p-8L : inexact-ok +atanh 0x1p-9 += atanh downward flt-32 0x8p-12f : 0x8.0000ap-12f : inexact-ok += atanh tonearest flt-32 0x8p-12f : 0x8.0000bp-12f : inexact-ok += atanh towardzero flt-32 0x8p-12f : 0x8.0000ap-12f : inexact-ok += atanh upward flt-32 0x8p-12f : 0x8.0000bp-12f : inexact-ok += atanh downward dbl-64 0x8p-12 : 0x8.0000aaaac444p-12 : inexact-ok += atanh tonearest dbl-64 0x8p-12 : 0x8.0000aaaac4448p-12 : inexact-ok += atanh towardzero dbl-64 0x8p-12 : 0x8.0000aaaac444p-12 : inexact-ok += atanh upward dbl-64 0x8p-12 : 0x8.0000aaaac4448p-12 : inexact-ok += atanh downward ldbl-96-intel 0x8p-12L : 0x8.0000aaaac44448dp-12L : inexact-ok += atanh tonearest ldbl-96-intel 0x8p-12L : 0x8.0000aaaac44448dp-12L : inexact-ok += atanh towardzero ldbl-96-intel 0x8p-12L : 0x8.0000aaaac44448dp-12L : inexact-ok += atanh upward ldbl-96-intel 0x8p-12L : 0x8.0000aaaac44448ep-12L : inexact-ok += atanh downward ldbl-96-m68k 0x8p-12L : 0x8.0000aaaac44448dp-12L : inexact-ok += atanh tonearest ldbl-96-m68k 0x8p-12L : 0x8.0000aaaac44448dp-12L : inexact-ok += atanh towardzero ldbl-96-m68k 0x8p-12L : 0x8.0000aaaac44448dp-12L : inexact-ok += atanh upward ldbl-96-m68k 0x8p-12L : 0x8.0000aaaac44448ep-12L : inexact-ok += atanh downward ldbl-128 0x8p-12L : 0x8.0000aaaac44448d68e4c64f4d81p-12L : inexact-ok += atanh tonearest ldbl-128 0x8p-12L : 0x8.0000aaaac44448d68e4c64f4d81p-12L : inexact-ok += atanh towardzero ldbl-128 0x8p-12L : 0x8.0000aaaac44448d68e4c64f4d81p-12L : inexact-ok += atanh upward ldbl-128 0x8p-12L : 0x8.0000aaaac44448d68e4c64f4d818p-12L : inexact-ok += atanh downward ldbl-128ibm 0x8p-12L : 0x8.0000aaaac44448d68e4c64f4d8p-12L : inexact-ok += atanh tonearest ldbl-128ibm 0x8p-12L : 0x8.0000aaaac44448d68e4c64f4d8p-12L : inexact-ok += atanh towardzero ldbl-128ibm 0x8p-12L : 0x8.0000aaaac44448d68e4c64f4d8p-12L : inexact-ok += atanh upward ldbl-128ibm 0x8p-12L : 0x8.0000aaaac44448d68e4c64f4dcp-12L : inexact-ok +atanh 0x1p-10 += atanh downward flt-32 0x4p-12f : 0x4.00001p-12f : inexact-ok += atanh tonearest flt-32 0x4p-12f : 0x4.000018p-12f : inexact-ok += atanh towardzero flt-32 0x4p-12f : 0x4.00001p-12f : inexact-ok += atanh upward flt-32 0x4p-12f : 0x4.000018p-12f : inexact-ok += atanh downward dbl-64 0x4p-12 : 0x4.000015555622p-12 : inexact-ok += atanh tonearest dbl-64 0x4p-12 : 0x4.0000155556224p-12 : inexact-ok += atanh towardzero dbl-64 0x4p-12 : 0x4.000015555622p-12 : inexact-ok += atanh upward dbl-64 0x4p-12 : 0x4.0000155556224p-12 : inexact-ok += atanh downward ldbl-96-intel 0x4p-12L : 0x4.0000155556222228p-12L : inexact-ok += atanh tonearest ldbl-96-intel 0x4p-12L : 0x4.0000155556222228p-12L : inexact-ok += atanh towardzero ldbl-96-intel 0x4p-12L : 0x4.0000155556222228p-12L : inexact-ok += atanh upward ldbl-96-intel 0x4p-12L : 0x4.000015555622223p-12L : inexact-ok += atanh downward ldbl-96-m68k 0x4p-12L : 0x4.0000155556222228p-12L : inexact-ok += atanh tonearest ldbl-96-m68k 0x4p-12L : 0x4.0000155556222228p-12L : inexact-ok += atanh towardzero ldbl-96-m68k 0x4p-12L : 0x4.0000155556222228p-12L : inexact-ok += atanh upward ldbl-96-m68k 0x4p-12L : 0x4.000015555622223p-12L : inexact-ok += atanh downward ldbl-128 0x4p-12L : 0x4.000015555622222b46b4dd0dd6acp-12L : inexact-ok += atanh tonearest ldbl-128 0x4p-12L : 0x4.000015555622222b46b4dd0dd6bp-12L : inexact-ok += atanh towardzero ldbl-128 0x4p-12L : 0x4.000015555622222b46b4dd0dd6acp-12L : inexact-ok += atanh upward ldbl-128 0x4p-12L : 0x4.000015555622222b46b4dd0dd6bp-12L : inexact-ok += atanh downward ldbl-128ibm 0x4p-12L : 0x4.000015555622222b46b4dd0dd6p-12L : inexact-ok += atanh tonearest ldbl-128ibm 0x4p-12L : 0x4.000015555622222b46b4dd0dd6p-12L : inexact-ok += atanh towardzero ldbl-128ibm 0x4p-12L : 0x4.000015555622222b46b4dd0dd6p-12L : inexact-ok += atanh upward ldbl-128ibm 0x4p-12L : 0x4.000015555622222b46b4dd0dd8p-12L : inexact-ok +atanh 0x1p-11 += atanh downward flt-32 0x2p-12f : 0x2p-12f : inexact-ok += atanh tonearest flt-32 0x2p-12f : 0x2.000004p-12f : inexact-ok += atanh towardzero flt-32 0x2p-12f : 0x2p-12f : inexact-ok += atanh upward flt-32 0x2p-12f : 0x2.000004p-12f : inexact-ok += atanh downward dbl-64 0x2p-12 : 0x2.000002aaaab1p-12 : inexact-ok += atanh tonearest dbl-64 0x2p-12 : 0x2.000002aaaab12p-12 : inexact-ok += atanh towardzero dbl-64 0x2p-12 : 0x2.000002aaaab1p-12 : inexact-ok += atanh upward dbl-64 0x2p-12 : 0x2.000002aaaab12p-12 : inexact-ok += atanh downward ldbl-96-intel 0x2p-12L : 0x2.000002aaaab1111p-12L : inexact-ok += atanh tonearest ldbl-96-intel 0x2p-12L : 0x2.000002aaaab1111p-12L : inexact-ok += atanh towardzero ldbl-96-intel 0x2p-12L : 0x2.000002aaaab1111p-12L : inexact-ok += atanh upward ldbl-96-intel 0x2p-12L : 0x2.000002aaaab11114p-12L : inexact-ok += atanh downward ldbl-96-m68k 0x2p-12L : 0x2.000002aaaab1111p-12L : inexact-ok += atanh tonearest ldbl-96-m68k 0x2p-12L : 0x2.000002aaaab1111p-12L : inexact-ok += atanh towardzero ldbl-96-m68k 0x2p-12L : 0x2.000002aaaab1111p-12L : inexact-ok += atanh upward ldbl-96-m68k 0x2p-12L : 0x2.000002aaaab11114p-12L : inexact-ok += atanh downward ldbl-128 0x2p-12L : 0x2.000002aaaab11111235a35dc3dc4p-12L : inexact-ok += atanh tonearest ldbl-128 0x2p-12L : 0x2.000002aaaab11111235a35dc3dc4p-12L : inexact-ok += atanh towardzero ldbl-128 0x2p-12L : 0x2.000002aaaab11111235a35dc3dc4p-12L : inexact-ok += atanh upward ldbl-128 0x2p-12L : 0x2.000002aaaab11111235a35dc3dc6p-12L : inexact-ok += atanh downward ldbl-128ibm 0x2p-12L : 0x2.000002aaaab11111235a35dc3dp-12L : inexact-ok += atanh tonearest ldbl-128ibm 0x2p-12L : 0x2.000002aaaab11111235a35dc3ep-12L : inexact-ok += atanh towardzero ldbl-128ibm 0x2p-12L : 0x2.000002aaaab11111235a35dc3dp-12L : inexact-ok += atanh upward ldbl-128ibm 0x2p-12L : 0x2.000002aaaab11111235a35dc3ep-12L : inexact-ok +atanh 0x1p-12 += atanh downward flt-32 0x1p-12f : 0x1p-12f : inexact-ok += atanh tonearest flt-32 0x1p-12f : 0x1p-12f : inexact-ok += atanh towardzero flt-32 0x1p-12f : 0x1p-12f : inexact-ok += atanh upward flt-32 0x1p-12f : 0x1.000002p-12f : inexact-ok += atanh downward dbl-64 0x1p-12 : 0x1.0000005555558p-12 : inexact-ok += atanh tonearest dbl-64 0x1p-12 : 0x1.0000005555559p-12 : inexact-ok += atanh towardzero dbl-64 0x1p-12 : 0x1.0000005555558p-12 : inexact-ok += atanh upward dbl-64 0x1p-12 : 0x1.0000005555559p-12 : inexact-ok += atanh downward ldbl-96-intel 0x1p-12L : 0x1.0000005555558888p-12L : inexact-ok += atanh tonearest ldbl-96-intel 0x1p-12L : 0x1.0000005555558888p-12L : inexact-ok += atanh towardzero ldbl-96-intel 0x1p-12L : 0x1.0000005555558888p-12L : inexact-ok += atanh upward ldbl-96-intel 0x1p-12L : 0x1.000000555555888ap-12L : inexact-ok += atanh downward ldbl-96-m68k 0x1p-12L : 0x1.0000005555558888p-12L : inexact-ok += atanh tonearest ldbl-96-m68k 0x1p-12L : 0x1.0000005555558888p-12L : inexact-ok += atanh towardzero ldbl-96-m68k 0x1p-12L : 0x1.0000005555558888p-12L : inexact-ok += atanh upward ldbl-96-m68k 0x1p-12L : 0x1.000000555555888ap-12L : inexact-ok += atanh downward ldbl-128 0x1p-12L : 0x1.000000555555888888ad1ad1c98cp-12L : inexact-ok += atanh tonearest ldbl-128 0x1p-12L : 0x1.000000555555888888ad1ad1c98dp-12L : inexact-ok += atanh towardzero ldbl-128 0x1p-12L : 0x1.000000555555888888ad1ad1c98cp-12L : inexact-ok += atanh upward ldbl-128 0x1p-12L : 0x1.000000555555888888ad1ad1c98dp-12L : inexact-ok += atanh downward ldbl-128ibm 0x1p-12L : 0x1.000000555555888888ad1ad1c98p-12L : inexact-ok += atanh tonearest ldbl-128ibm 0x1p-12L : 0x1.000000555555888888ad1ad1c98p-12L : inexact-ok += atanh towardzero ldbl-128ibm 0x1p-12L : 0x1.000000555555888888ad1ad1c98p-12L : inexact-ok += atanh upward ldbl-128ibm 0x1p-12L : 0x1.000000555555888888ad1ad1cap-12L : inexact-ok +atanh 0x1p-13 += atanh downward flt-32 0x8p-16f : 0x8p-16f : inexact-ok += atanh tonearest flt-32 0x8p-16f : 0x8p-16f : inexact-ok += atanh towardzero flt-32 0x8p-16f : 0x8p-16f : inexact-ok += atanh upward flt-32 0x8p-16f : 0x8.00001p-16f : inexact-ok += atanh downward dbl-64 0x8p-16 : 0x8.000000aaaaaa8p-16 : inexact-ok += atanh tonearest dbl-64 0x8p-16 : 0x8.000000aaaaabp-16 : inexact-ok += atanh towardzero dbl-64 0x8p-16 : 0x8.000000aaaaaa8p-16 : inexact-ok += atanh upward dbl-64 0x8p-16 : 0x8.000000aaaaabp-16 : inexact-ok += atanh downward ldbl-96-intel 0x8p-16L : 0x8.000000aaaaaac44p-16L : inexact-ok += atanh tonearest ldbl-96-intel 0x8p-16L : 0x8.000000aaaaaac44p-16L : inexact-ok += atanh towardzero ldbl-96-intel 0x8p-16L : 0x8.000000aaaaaac44p-16L : inexact-ok += atanh upward ldbl-96-intel 0x8p-16L : 0x8.000000aaaaaac45p-16L : inexact-ok += atanh downward ldbl-96-m68k 0x8p-16L : 0x8.000000aaaaaac44p-16L : inexact-ok += atanh tonearest ldbl-96-m68k 0x8p-16L : 0x8.000000aaaaaac44p-16L : inexact-ok += atanh towardzero ldbl-96-m68k 0x8p-16L : 0x8.000000aaaaaac44p-16L : inexact-ok += atanh upward ldbl-96-m68k 0x8p-16L : 0x8.000000aaaaaac45p-16L : inexact-ok += atanh downward ldbl-128 0x8p-16L : 0x8.000000aaaaaac4444448d68d69b8p-16L : inexact-ok += atanh tonearest ldbl-128 0x8p-16L : 0x8.000000aaaaaac4444448d68d69b8p-16L : inexact-ok += atanh towardzero ldbl-128 0x8p-16L : 0x8.000000aaaaaac4444448d68d69b8p-16L : inexact-ok += atanh upward ldbl-128 0x8p-16L : 0x8.000000aaaaaac4444448d68d69cp-16L : inexact-ok += atanh downward ldbl-128ibm 0x8p-16L : 0x8.000000aaaaaac4444448d68d68p-16L : inexact-ok += atanh tonearest ldbl-128ibm 0x8p-16L : 0x8.000000aaaaaac4444448d68d68p-16L : inexact-ok += atanh towardzero ldbl-128ibm 0x8p-16L : 0x8.000000aaaaaac4444448d68d68p-16L : inexact-ok += atanh upward ldbl-128ibm 0x8p-16L : 0x8.000000aaaaaac4444448d68d6cp-16L : inexact-ok +atanh 0x1p-24 += atanh downward flt-32 0x1p-24f : 0x1p-24f : inexact-ok += atanh tonearest flt-32 0x1p-24f : 0x1p-24f : inexact-ok += atanh towardzero flt-32 0x1p-24f : 0x1p-24f : inexact-ok += atanh upward flt-32 0x1p-24f : 0x1.000002p-24f : inexact-ok += atanh downward dbl-64 0x1p-24 : 0x1.0000000000005p-24 : inexact-ok += atanh tonearest dbl-64 0x1p-24 : 0x1.0000000000005p-24 : inexact-ok += atanh towardzero dbl-64 0x1p-24 : 0x1.0000000000005p-24 : inexact-ok += atanh upward dbl-64 0x1p-24 : 0x1.0000000000006p-24 : inexact-ok += atanh downward ldbl-96-intel 0x1p-24L : 0x1.0000000000005554p-24L : inexact-ok += atanh tonearest ldbl-96-intel 0x1p-24L : 0x1.0000000000005556p-24L : inexact-ok += atanh towardzero ldbl-96-intel 0x1p-24L : 0x1.0000000000005554p-24L : inexact-ok += atanh upward ldbl-96-intel 0x1p-24L : 0x1.0000000000005556p-24L : inexact-ok += atanh downward ldbl-96-m68k 0x1p-24L : 0x1.0000000000005554p-24L : inexact-ok += atanh tonearest ldbl-96-m68k 0x1p-24L : 0x1.0000000000005556p-24L : inexact-ok += atanh towardzero ldbl-96-m68k 0x1p-24L : 0x1.0000000000005554p-24L : inexact-ok += atanh upward ldbl-96-m68k 0x1p-24L : 0x1.0000000000005556p-24L : inexact-ok += atanh downward ldbl-128 0x1p-24L : 0x1.0000000000005555555555558888p-24L : inexact-ok += atanh tonearest ldbl-128 0x1p-24L : 0x1.0000000000005555555555558889p-24L : inexact-ok += atanh towardzero ldbl-128 0x1p-24L : 0x1.0000000000005555555555558888p-24L : inexact-ok += atanh upward ldbl-128 0x1p-24L : 0x1.0000000000005555555555558889p-24L : inexact-ok += atanh downward ldbl-128ibm 0x1p-24L : 0x1.000000000000555555555555888p-24L : inexact-ok += atanh tonearest ldbl-128ibm 0x1p-24L : 0x1.000000000000555555555555888p-24L : inexact-ok += atanh towardzero ldbl-128ibm 0x1p-24L : 0x1.000000000000555555555555888p-24L : inexact-ok += atanh upward ldbl-128ibm 0x1p-24L : 0x1.00000000000055555555555589p-24L : inexact-ok +atanh 0x1p-25 += atanh downward flt-32 0x8p-28f : 0x8p-28f : inexact-ok += atanh tonearest flt-32 0x8p-28f : 0x8p-28f : inexact-ok += atanh towardzero flt-32 0x8p-28f : 0x8p-28f : inexact-ok += atanh upward flt-32 0x8p-28f : 0x8.00001p-28f : inexact-ok += atanh downward dbl-64 0x8p-28 : 0x8.0000000000008p-28 : inexact-ok += atanh tonearest dbl-64 0x8p-28 : 0x8.0000000000008p-28 : inexact-ok += atanh towardzero dbl-64 0x8p-28 : 0x8.0000000000008p-28 : inexact-ok += atanh upward dbl-64 0x8p-28 : 0x8.000000000001p-28 : inexact-ok += atanh downward ldbl-96-intel 0x8p-28L : 0x8.000000000000aaap-28L : inexact-ok += atanh tonearest ldbl-96-intel 0x8p-28L : 0x8.000000000000aabp-28L : inexact-ok += atanh towardzero ldbl-96-intel 0x8p-28L : 0x8.000000000000aaap-28L : inexact-ok += atanh upward ldbl-96-intel 0x8p-28L : 0x8.000000000000aabp-28L : inexact-ok += atanh downward ldbl-96-m68k 0x8p-28L : 0x8.000000000000aaap-28L : inexact-ok += atanh tonearest ldbl-96-m68k 0x8p-28L : 0x8.000000000000aabp-28L : inexact-ok += atanh towardzero ldbl-96-m68k 0x8p-28L : 0x8.000000000000aaap-28L : inexact-ok += atanh upward ldbl-96-m68k 0x8p-28L : 0x8.000000000000aabp-28L : inexact-ok += atanh downward ldbl-128 0x8p-28L : 0x8.000000000000aaaaaaaaaaaac44p-28L : inexact-ok += atanh tonearest ldbl-128 0x8p-28L : 0x8.000000000000aaaaaaaaaaaac448p-28L : inexact-ok += atanh towardzero ldbl-128 0x8p-28L : 0x8.000000000000aaaaaaaaaaaac44p-28L : inexact-ok += atanh upward ldbl-128 0x8p-28L : 0x8.000000000000aaaaaaaaaaaac448p-28L : inexact-ok += atanh downward ldbl-128ibm 0x8p-28L : 0x8.000000000000aaaaaaaaaaaac4p-28L : inexact-ok += atanh tonearest ldbl-128ibm 0x8p-28L : 0x8.000000000000aaaaaaaaaaaac4p-28L : inexact-ok += atanh towardzero ldbl-128ibm 0x8p-28L : 0x8.000000000000aaaaaaaaaaaac4p-28L : inexact-ok += atanh upward ldbl-128ibm 0x8p-28L : 0x8.000000000000aaaaaaaaaaaac8p-28L : inexact-ok +atanh 0x1p-26 += atanh downward flt-32 0x4p-28f : 0x4p-28f : inexact-ok += atanh tonearest flt-32 0x4p-28f : 0x4p-28f : inexact-ok += atanh towardzero flt-32 0x4p-28f : 0x4p-28f : inexact-ok += atanh upward flt-32 0x4p-28f : 0x4.000008p-28f : inexact-ok += atanh downward dbl-64 0x4p-28 : 0x4p-28 : inexact-ok += atanh tonearest dbl-64 0x4p-28 : 0x4p-28 : inexact-ok += atanh towardzero dbl-64 0x4p-28 : 0x4p-28 : inexact-ok += atanh upward dbl-64 0x4p-28 : 0x4.0000000000004p-28 : inexact-ok += atanh downward ldbl-96-intel 0x4p-28L : 0x4.000000000000155p-28L : inexact-ok += atanh tonearest ldbl-96-intel 0x4p-28L : 0x4.0000000000001558p-28L : inexact-ok += atanh towardzero ldbl-96-intel 0x4p-28L : 0x4.000000000000155p-28L : inexact-ok += atanh upward ldbl-96-intel 0x4p-28L : 0x4.0000000000001558p-28L : inexact-ok += atanh downward ldbl-96-m68k 0x4p-28L : 0x4.000000000000155p-28L : inexact-ok += atanh tonearest ldbl-96-m68k 0x4p-28L : 0x4.0000000000001558p-28L : inexact-ok += atanh towardzero ldbl-96-m68k 0x4p-28L : 0x4.000000000000155p-28L : inexact-ok += atanh upward ldbl-96-m68k 0x4p-28L : 0x4.0000000000001558p-28L : inexact-ok += atanh downward ldbl-128 0x4p-28L : 0x4.000000000000155555555555562p-28L : inexact-ok += atanh tonearest ldbl-128 0x4p-28L : 0x4.0000000000001555555555555624p-28L : inexact-ok += atanh towardzero ldbl-128 0x4p-28L : 0x4.000000000000155555555555562p-28L : inexact-ok += atanh upward ldbl-128 0x4p-28L : 0x4.0000000000001555555555555624p-28L : inexact-ok += atanh downward ldbl-128ibm 0x4p-28L : 0x4.00000000000015555555555556p-28L : inexact-ok += atanh tonearest ldbl-128ibm 0x4p-28L : 0x4.00000000000015555555555556p-28L : inexact-ok += atanh towardzero ldbl-128ibm 0x4p-28L : 0x4.00000000000015555555555556p-28L : inexact-ok += atanh upward ldbl-128ibm 0x4p-28L : 0x4.00000000000015555555555558p-28L : inexact-ok +atanh 0x1p-27 += atanh downward flt-32 0x2p-28f : 0x2p-28f : inexact-ok += atanh tonearest flt-32 0x2p-28f : 0x2p-28f : inexact-ok += atanh towardzero flt-32 0x2p-28f : 0x2p-28f : inexact-ok += atanh upward flt-32 0x2p-28f : 0x2.000004p-28f : inexact-ok += atanh downward dbl-64 0x2p-28 : 0x2p-28 : inexact-ok += atanh tonearest dbl-64 0x2p-28 : 0x2p-28 : inexact-ok += atanh towardzero dbl-64 0x2p-28 : 0x2p-28 : inexact-ok += atanh upward dbl-64 0x2p-28 : 0x2.0000000000002p-28 : inexact-ok += atanh downward ldbl-96-intel 0x2p-28L : 0x2.00000000000002a8p-28L : inexact-ok += atanh tonearest ldbl-96-intel 0x2p-28L : 0x2.00000000000002acp-28L : inexact-ok += atanh towardzero ldbl-96-intel 0x2p-28L : 0x2.00000000000002a8p-28L : inexact-ok += atanh upward ldbl-96-intel 0x2p-28L : 0x2.00000000000002acp-28L : inexact-ok += atanh downward ldbl-96-m68k 0x2p-28L : 0x2.00000000000002a8p-28L : inexact-ok += atanh tonearest ldbl-96-m68k 0x2p-28L : 0x2.00000000000002acp-28L : inexact-ok += atanh towardzero ldbl-96-m68k 0x2p-28L : 0x2.00000000000002a8p-28L : inexact-ok += atanh upward ldbl-96-m68k 0x2p-28L : 0x2.00000000000002acp-28L : inexact-ok += atanh downward ldbl-128 0x2p-28L : 0x2.00000000000002aaaaaaaaaaaabp-28L : inexact-ok += atanh tonearest ldbl-128 0x2p-28L : 0x2.00000000000002aaaaaaaaaaaab2p-28L : inexact-ok += atanh towardzero ldbl-128 0x2p-28L : 0x2.00000000000002aaaaaaaaaaaabp-28L : inexact-ok += atanh upward ldbl-128 0x2p-28L : 0x2.00000000000002aaaaaaaaaaaab2p-28L : inexact-ok += atanh downward ldbl-128ibm 0x2p-28L : 0x2.00000000000002aaaaaaaaaaaap-28L : inexact-ok += atanh tonearest ldbl-128ibm 0x2p-28L : 0x2.00000000000002aaaaaaaaaaabp-28L : inexact-ok += atanh towardzero ldbl-128ibm 0x2p-28L : 0x2.00000000000002aaaaaaaaaaaap-28L : inexact-ok += atanh upward ldbl-128ibm 0x2p-28L : 0x2.00000000000002aaaaaaaaaaabp-28L : inexact-ok +atanh 0x1p-28 += atanh downward flt-32 0x1p-28f : 0x1p-28f : inexact-ok += atanh tonearest flt-32 0x1p-28f : 0x1p-28f : inexact-ok += atanh towardzero flt-32 0x1p-28f : 0x1p-28f : inexact-ok += atanh upward flt-32 0x1p-28f : 0x1.000002p-28f : inexact-ok += atanh downward dbl-64 0x1p-28 : 0x1p-28 : inexact-ok += atanh tonearest dbl-64 0x1p-28 : 0x1p-28 : inexact-ok += atanh towardzero dbl-64 0x1p-28 : 0x1p-28 : inexact-ok += atanh upward dbl-64 0x1p-28 : 0x1.0000000000001p-28 : inexact-ok += atanh downward ldbl-96-intel 0x1p-28L : 0x1.0000000000000054p-28L : inexact-ok += atanh tonearest ldbl-96-intel 0x1p-28L : 0x1.0000000000000056p-28L : inexact-ok += atanh towardzero ldbl-96-intel 0x1p-28L : 0x1.0000000000000054p-28L : inexact-ok += atanh upward ldbl-96-intel 0x1p-28L : 0x1.0000000000000056p-28L : inexact-ok += atanh downward ldbl-96-m68k 0x1p-28L : 0x1.0000000000000054p-28L : inexact-ok += atanh tonearest ldbl-96-m68k 0x1p-28L : 0x1.0000000000000056p-28L : inexact-ok += atanh towardzero ldbl-96-m68k 0x1p-28L : 0x1.0000000000000054p-28L : inexact-ok += atanh upward ldbl-96-m68k 0x1p-28L : 0x1.0000000000000056p-28L : inexact-ok += atanh downward ldbl-128 0x1p-28L : 0x1.0000000000000055555555555555p-28L : inexact-ok += atanh tonearest ldbl-128 0x1p-28L : 0x1.0000000000000055555555555556p-28L : inexact-ok += atanh towardzero ldbl-128 0x1p-28L : 0x1.0000000000000055555555555555p-28L : inexact-ok += atanh upward ldbl-128 0x1p-28L : 0x1.0000000000000055555555555556p-28L : inexact-ok += atanh downward ldbl-128ibm 0x1p-28L : 0x1.00000000000000555555555555p-28L : inexact-ok += atanh tonearest ldbl-128ibm 0x1p-28L : 0x1.000000000000005555555555558p-28L : inexact-ok += atanh towardzero ldbl-128ibm 0x1p-28L : 0x1.00000000000000555555555555p-28L : inexact-ok += atanh upward ldbl-128ibm 0x1p-28L : 0x1.000000000000005555555555558p-28L : inexact-ok +atanh 0x1p-29 += atanh downward flt-32 0x8p-32f : 0x8p-32f : inexact-ok += atanh tonearest flt-32 0x8p-32f : 0x8p-32f : inexact-ok += atanh towardzero flt-32 0x8p-32f : 0x8p-32f : inexact-ok += atanh upward flt-32 0x8p-32f : 0x8.00001p-32f : inexact-ok += atanh downward dbl-64 0x8p-32 : 0x8p-32 : inexact-ok += atanh tonearest dbl-64 0x8p-32 : 0x8p-32 : inexact-ok += atanh towardzero dbl-64 0x8p-32 : 0x8p-32 : inexact-ok += atanh upward dbl-64 0x8p-32 : 0x8.0000000000008p-32 : inexact-ok += atanh downward ldbl-96-intel 0x8p-32L : 0x8.00000000000000ap-32L : inexact-ok += atanh tonearest ldbl-96-intel 0x8p-32L : 0x8.00000000000000bp-32L : inexact-ok += atanh towardzero ldbl-96-intel 0x8p-32L : 0x8.00000000000000ap-32L : inexact-ok += atanh upward ldbl-96-intel 0x8p-32L : 0x8.00000000000000bp-32L : inexact-ok += atanh downward ldbl-96-m68k 0x8p-32L : 0x8.00000000000000ap-32L : inexact-ok += atanh tonearest ldbl-96-m68k 0x8p-32L : 0x8.00000000000000bp-32L : inexact-ok += atanh towardzero ldbl-96-m68k 0x8p-32L : 0x8.00000000000000ap-32L : inexact-ok += atanh upward ldbl-96-m68k 0x8p-32L : 0x8.00000000000000bp-32L : inexact-ok += atanh downward ldbl-128 0x8p-32L : 0x8.00000000000000aaaaaaaaaaaaa8p-32L : inexact-ok += atanh tonearest ldbl-128 0x8p-32L : 0x8.00000000000000aaaaaaaaaaaaa8p-32L : inexact-ok += atanh towardzero ldbl-128 0x8p-32L : 0x8.00000000000000aaaaaaaaaaaaa8p-32L : inexact-ok += atanh upward ldbl-128 0x8p-32L : 0x8.00000000000000aaaaaaaaaaaabp-32L : inexact-ok += atanh downward ldbl-128ibm 0x8p-32L : 0x8.00000000000000aaaaaaaaaaa8p-32L : inexact-ok += atanh tonearest ldbl-128ibm 0x8p-32L : 0x8.00000000000000aaaaaaaaaaacp-32L : inexact-ok += atanh towardzero ldbl-128ibm 0x8p-32L : 0x8.00000000000000aaaaaaaaaaa8p-32L : inexact-ok += atanh upward ldbl-128ibm 0x8p-32L : 0x8.00000000000000aaaaaaaaaaacp-32L : inexact-ok +atanh 0x1p-30 += atanh downward flt-32 0x4p-32f : 0x4p-32f : inexact-ok += atanh tonearest flt-32 0x4p-32f : 0x4p-32f : inexact-ok += atanh towardzero flt-32 0x4p-32f : 0x4p-32f : inexact-ok += atanh upward flt-32 0x4p-32f : 0x4.000008p-32f : inexact-ok += atanh downward dbl-64 0x4p-32 : 0x4p-32 : inexact-ok += atanh tonearest dbl-64 0x4p-32 : 0x4p-32 : inexact-ok += atanh towardzero dbl-64 0x4p-32 : 0x4p-32 : inexact-ok += atanh upward dbl-64 0x4p-32 : 0x4.0000000000004p-32 : inexact-ok += atanh downward ldbl-96-intel 0x4p-32L : 0x4.000000000000001p-32L : inexact-ok += atanh tonearest ldbl-96-intel 0x4p-32L : 0x4.0000000000000018p-32L : inexact-ok += atanh towardzero ldbl-96-intel 0x4p-32L : 0x4.000000000000001p-32L : inexact-ok += atanh upward ldbl-96-intel 0x4p-32L : 0x4.0000000000000018p-32L : inexact-ok += atanh downward ldbl-96-m68k 0x4p-32L : 0x4.000000000000001p-32L : inexact-ok += atanh tonearest ldbl-96-m68k 0x4p-32L : 0x4.0000000000000018p-32L : inexact-ok += atanh towardzero ldbl-96-m68k 0x4p-32L : 0x4.000000000000001p-32L : inexact-ok += atanh upward ldbl-96-m68k 0x4p-32L : 0x4.0000000000000018p-32L : inexact-ok += atanh downward ldbl-128 0x4p-32L : 0x4.0000000000000015555555555554p-32L : inexact-ok += atanh tonearest ldbl-128 0x4p-32L : 0x4.0000000000000015555555555554p-32L : inexact-ok += atanh towardzero ldbl-128 0x4p-32L : 0x4.0000000000000015555555555554p-32L : inexact-ok += atanh upward ldbl-128 0x4p-32L : 0x4.0000000000000015555555555558p-32L : inexact-ok += atanh downward ldbl-128ibm 0x4p-32L : 0x4.00000000000000155555555554p-32L : inexact-ok += atanh tonearest ldbl-128ibm 0x4p-32L : 0x4.00000000000000155555555556p-32L : inexact-ok += atanh towardzero ldbl-128ibm 0x4p-32L : 0x4.00000000000000155555555554p-32L : inexact-ok += atanh upward ldbl-128ibm 0x4p-32L : 0x4.00000000000000155555555556p-32L : inexact-ok +atanh 0x1p-31 += atanh downward flt-32 0x2p-32f : 0x2p-32f : inexact-ok += atanh tonearest flt-32 0x2p-32f : 0x2p-32f : inexact-ok += atanh towardzero flt-32 0x2p-32f : 0x2p-32f : inexact-ok += atanh upward flt-32 0x2p-32f : 0x2.000004p-32f : inexact-ok += atanh downward dbl-64 0x2p-32 : 0x2p-32 : inexact-ok += atanh tonearest dbl-64 0x2p-32 : 0x2p-32 : inexact-ok += atanh towardzero dbl-64 0x2p-32 : 0x2p-32 : inexact-ok += atanh upward dbl-64 0x2p-32 : 0x2.0000000000002p-32 : inexact-ok += atanh downward ldbl-96-intel 0x2p-32L : 0x2p-32L : inexact-ok += atanh tonearest ldbl-96-intel 0x2p-32L : 0x2.0000000000000004p-32L : inexact-ok += atanh towardzero ldbl-96-intel 0x2p-32L : 0x2p-32L : inexact-ok += atanh upward ldbl-96-intel 0x2p-32L : 0x2.0000000000000004p-32L : inexact-ok += atanh downward ldbl-96-m68k 0x2p-32L : 0x2p-32L : inexact-ok += atanh tonearest ldbl-96-m68k 0x2p-32L : 0x2.0000000000000004p-32L : inexact-ok += atanh towardzero ldbl-96-m68k 0x2p-32L : 0x2p-32L : inexact-ok += atanh upward ldbl-96-m68k 0x2p-32L : 0x2.0000000000000004p-32L : inexact-ok += atanh downward ldbl-128 0x2p-32L : 0x2.0000000000000002aaaaaaaaaaaap-32L : inexact-ok += atanh tonearest ldbl-128 0x2p-32L : 0x2.0000000000000002aaaaaaaaaaaap-32L : inexact-ok += atanh towardzero ldbl-128 0x2p-32L : 0x2.0000000000000002aaaaaaaaaaaap-32L : inexact-ok += atanh upward ldbl-128 0x2p-32L : 0x2.0000000000000002aaaaaaaaaaacp-32L : inexact-ok += atanh downward ldbl-128ibm 0x2p-32L : 0x2.0000000000000002aaaaaaaaaap-32L : inexact-ok += atanh tonearest ldbl-128ibm 0x2p-32L : 0x2.0000000000000002aaaaaaaaabp-32L : inexact-ok += atanh towardzero ldbl-128ibm 0x2p-32L : 0x2.0000000000000002aaaaaaaaaap-32L : inexact-ok += atanh upward ldbl-128ibm 0x2p-32L : 0x2.0000000000000002aaaaaaaaabp-32L : inexact-ok +atanh 0x1p-32 += atanh downward flt-32 0x1p-32f : 0x1p-32f : inexact-ok += atanh tonearest flt-32 0x1p-32f : 0x1p-32f : inexact-ok += atanh towardzero flt-32 0x1p-32f : 0x1p-32f : inexact-ok += atanh upward flt-32 0x1p-32f : 0x1.000002p-32f : inexact-ok += atanh downward dbl-64 0x1p-32 : 0x1p-32 : inexact-ok += atanh tonearest dbl-64 0x1p-32 : 0x1p-32 : inexact-ok += atanh towardzero dbl-64 0x1p-32 : 0x1p-32 : inexact-ok += atanh upward dbl-64 0x1p-32 : 0x1.0000000000001p-32 : inexact-ok += atanh downward ldbl-96-intel 0x1p-32L : 0x1p-32L : inexact-ok += atanh tonearest ldbl-96-intel 0x1p-32L : 0x1p-32L : inexact-ok += atanh towardzero ldbl-96-intel 0x1p-32L : 0x1p-32L : inexact-ok += atanh upward ldbl-96-intel 0x1p-32L : 0x1.0000000000000002p-32L : inexact-ok += atanh downward ldbl-96-m68k 0x1p-32L : 0x1p-32L : inexact-ok += atanh tonearest ldbl-96-m68k 0x1p-32L : 0x1p-32L : inexact-ok += atanh towardzero ldbl-96-m68k 0x1p-32L : 0x1p-32L : inexact-ok += atanh upward ldbl-96-m68k 0x1p-32L : 0x1.0000000000000002p-32L : inexact-ok += atanh downward ldbl-128 0x1p-32L : 0x1.0000000000000000555555555555p-32L : inexact-ok += atanh tonearest ldbl-128 0x1p-32L : 0x1.0000000000000000555555555555p-32L : inexact-ok += atanh towardzero ldbl-128 0x1p-32L : 0x1.0000000000000000555555555555p-32L : inexact-ok += atanh upward ldbl-128 0x1p-32L : 0x1.0000000000000000555555555556p-32L : inexact-ok += atanh downward ldbl-128ibm 0x1p-32L : 0x1.00000000000000005555555555p-32L : inexact-ok += atanh tonearest ldbl-128ibm 0x1p-32L : 0x1.000000000000000055555555558p-32L : inexact-ok += atanh towardzero ldbl-128ibm 0x1p-32L : 0x1.00000000000000005555555555p-32L : inexact-ok += atanh upward ldbl-128ibm 0x1p-32L : 0x1.000000000000000055555555558p-32L : inexact-ok +atanh 0x1p-33 += atanh downward flt-32 0x8p-36f : 0x8p-36f : inexact-ok += atanh tonearest flt-32 0x8p-36f : 0x8p-36f : inexact-ok += atanh towardzero flt-32 0x8p-36f : 0x8p-36f : inexact-ok += atanh upward flt-32 0x8p-36f : 0x8.00001p-36f : inexact-ok += atanh downward dbl-64 0x8p-36 : 0x8p-36 : inexact-ok += atanh tonearest dbl-64 0x8p-36 : 0x8p-36 : inexact-ok += atanh towardzero dbl-64 0x8p-36 : 0x8p-36 : inexact-ok += atanh upward dbl-64 0x8p-36 : 0x8.0000000000008p-36 : inexact-ok += atanh downward ldbl-96-intel 0x8p-36L : 0x8p-36L : inexact-ok += atanh tonearest ldbl-96-intel 0x8p-36L : 0x8p-36L : inexact-ok += atanh towardzero ldbl-96-intel 0x8p-36L : 0x8p-36L : inexact-ok += atanh upward ldbl-96-intel 0x8p-36L : 0x8.000000000000001p-36L : inexact-ok += atanh downward ldbl-96-m68k 0x8p-36L : 0x8p-36L : inexact-ok += atanh tonearest ldbl-96-m68k 0x8p-36L : 0x8p-36L : inexact-ok += atanh towardzero ldbl-96-m68k 0x8p-36L : 0x8p-36L : inexact-ok += atanh upward ldbl-96-m68k 0x8p-36L : 0x8.000000000000001p-36L : inexact-ok += atanh downward ldbl-128 0x8p-36L : 0x8.0000000000000000aaaaaaaaaaa8p-36L : inexact-ok += atanh tonearest ldbl-128 0x8p-36L : 0x8.0000000000000000aaaaaaaaaaa8p-36L : inexact-ok += atanh towardzero ldbl-128 0x8p-36L : 0x8.0000000000000000aaaaaaaaaaa8p-36L : inexact-ok += atanh upward ldbl-128 0x8p-36L : 0x8.0000000000000000aaaaaaaaaabp-36L : inexact-ok += atanh downward ldbl-128ibm 0x8p-36L : 0x8.0000000000000000aaaaaaaaa8p-36L : inexact-ok += atanh tonearest ldbl-128ibm 0x8p-36L : 0x8.0000000000000000aaaaaaaaacp-36L : inexact-ok += atanh towardzero ldbl-128ibm 0x8p-36L : 0x8.0000000000000000aaaaaaaaa8p-36L : inexact-ok += atanh upward ldbl-128ibm 0x8p-36L : 0x8.0000000000000000aaaaaaaaacp-36L : inexact-ok +atanh 0x1p-48 += atanh downward flt-32 0x1p-48f : 0x1p-48f : inexact-ok += atanh tonearest flt-32 0x1p-48f : 0x1p-48f : inexact-ok += atanh towardzero flt-32 0x1p-48f : 0x1p-48f : inexact-ok += atanh upward flt-32 0x1p-48f : 0x1.000002p-48f : inexact-ok += atanh downward dbl-64 0x1p-48 : 0x1p-48 : inexact-ok += atanh tonearest dbl-64 0x1p-48 : 0x1p-48 : inexact-ok += atanh towardzero dbl-64 0x1p-48 : 0x1p-48 : inexact-ok += atanh upward dbl-64 0x1p-48 : 0x1.0000000000001p-48 : inexact-ok += atanh downward ldbl-96-intel 0x1p-48L : 0x1p-48L : inexact-ok += atanh tonearest ldbl-96-intel 0x1p-48L : 0x1p-48L : inexact-ok += atanh towardzero ldbl-96-intel 0x1p-48L : 0x1p-48L : inexact-ok += atanh upward ldbl-96-intel 0x1p-48L : 0x1.0000000000000002p-48L : inexact-ok += atanh downward ldbl-96-m68k 0x1p-48L : 0x1p-48L : inexact-ok += atanh tonearest ldbl-96-m68k 0x1p-48L : 0x1p-48L : inexact-ok += atanh towardzero ldbl-96-m68k 0x1p-48L : 0x1p-48L : inexact-ok += atanh upward ldbl-96-m68k 0x1p-48L : 0x1.0000000000000002p-48L : inexact-ok += atanh downward ldbl-128 0x1p-48L : 0x1.0000000000000000000000005555p-48L : inexact-ok += atanh tonearest ldbl-128 0x1p-48L : 0x1.0000000000000000000000005555p-48L : inexact-ok += atanh towardzero ldbl-128 0x1p-48L : 0x1.0000000000000000000000005555p-48L : inexact-ok += atanh upward ldbl-128 0x1p-48L : 0x1.0000000000000000000000005556p-48L : inexact-ok += atanh downward ldbl-128ibm 0x1p-48L : 0x1.00000000000000000000000055p-48L : inexact-ok += atanh tonearest ldbl-128ibm 0x1p-48L : 0x1.000000000000000000000000558p-48L : inexact-ok += atanh towardzero ldbl-128ibm 0x1p-48L : 0x1.00000000000000000000000055p-48L : inexact-ok += atanh upward ldbl-128ibm 0x1p-48L : 0x1.000000000000000000000000558p-48L : inexact-ok +atanh 0x1p-49 += atanh downward flt-32 0x8p-52f : 0x8p-52f : inexact-ok += atanh tonearest flt-32 0x8p-52f : 0x8p-52f : inexact-ok += atanh towardzero flt-32 0x8p-52f : 0x8p-52f : inexact-ok += atanh upward flt-32 0x8p-52f : 0x8.00001p-52f : inexact-ok += atanh downward dbl-64 0x8p-52 : 0x8p-52 : inexact-ok += atanh tonearest dbl-64 0x8p-52 : 0x8p-52 : inexact-ok += atanh towardzero dbl-64 0x8p-52 : 0x8p-52 : inexact-ok += atanh upward dbl-64 0x8p-52 : 0x8.0000000000008p-52 : inexact-ok += atanh downward ldbl-96-intel 0x8p-52L : 0x8p-52L : inexact-ok += atanh tonearest ldbl-96-intel 0x8p-52L : 0x8p-52L : inexact-ok += atanh towardzero ldbl-96-intel 0x8p-52L : 0x8p-52L : inexact-ok += atanh upward ldbl-96-intel 0x8p-52L : 0x8.000000000000001p-52L : inexact-ok += atanh downward ldbl-96-m68k 0x8p-52L : 0x8p-52L : inexact-ok += atanh tonearest ldbl-96-m68k 0x8p-52L : 0x8p-52L : inexact-ok += atanh towardzero ldbl-96-m68k 0x8p-52L : 0x8p-52L : inexact-ok += atanh upward ldbl-96-m68k 0x8p-52L : 0x8.000000000000001p-52L : inexact-ok += atanh downward ldbl-128 0x8p-52L : 0x8.000000000000000000000000aaa8p-52L : inexact-ok += atanh tonearest ldbl-128 0x8p-52L : 0x8.000000000000000000000000aaa8p-52L : inexact-ok += atanh towardzero ldbl-128 0x8p-52L : 0x8.000000000000000000000000aaa8p-52L : inexact-ok += atanh upward ldbl-128 0x8p-52L : 0x8.000000000000000000000000aabp-52L : inexact-ok += atanh downward ldbl-128ibm 0x8p-52L : 0x8.000000000000000000000000a8p-52L : inexact-ok += atanh tonearest ldbl-128ibm 0x8p-52L : 0x8.000000000000000000000000acp-52L : inexact-ok += atanh towardzero ldbl-128ibm 0x8p-52L : 0x8.000000000000000000000000a8p-52L : inexact-ok += atanh upward ldbl-128ibm 0x8p-52L : 0x8.000000000000000000000000acp-52L : inexact-ok +atanh 0x1p-50 += atanh downward flt-32 0x4p-52f : 0x4p-52f : inexact-ok += atanh tonearest flt-32 0x4p-52f : 0x4p-52f : inexact-ok += atanh towardzero flt-32 0x4p-52f : 0x4p-52f : inexact-ok += atanh upward flt-32 0x4p-52f : 0x4.000008p-52f : inexact-ok += atanh downward dbl-64 0x4p-52 : 0x4p-52 : inexact-ok += atanh tonearest dbl-64 0x4p-52 : 0x4p-52 : inexact-ok += atanh towardzero dbl-64 0x4p-52 : 0x4p-52 : inexact-ok += atanh upward dbl-64 0x4p-52 : 0x4.0000000000004p-52 : inexact-ok += atanh downward ldbl-96-intel 0x4p-52L : 0x4p-52L : inexact-ok += atanh tonearest ldbl-96-intel 0x4p-52L : 0x4p-52L : inexact-ok += atanh towardzero ldbl-96-intel 0x4p-52L : 0x4p-52L : inexact-ok += atanh upward ldbl-96-intel 0x4p-52L : 0x4.0000000000000008p-52L : inexact-ok += atanh downward ldbl-96-m68k 0x4p-52L : 0x4p-52L : inexact-ok += atanh tonearest ldbl-96-m68k 0x4p-52L : 0x4p-52L : inexact-ok += atanh towardzero ldbl-96-m68k 0x4p-52L : 0x4p-52L : inexact-ok += atanh upward ldbl-96-m68k 0x4p-52L : 0x4.0000000000000008p-52L : inexact-ok += atanh downward ldbl-128 0x4p-52L : 0x4.0000000000000000000000001554p-52L : inexact-ok += atanh tonearest ldbl-128 0x4p-52L : 0x4.0000000000000000000000001554p-52L : inexact-ok += atanh towardzero ldbl-128 0x4p-52L : 0x4.0000000000000000000000001554p-52L : inexact-ok += atanh upward ldbl-128 0x4p-52L : 0x4.0000000000000000000000001558p-52L : inexact-ok += atanh downward ldbl-128ibm 0x4p-52L : 0x4.00000000000000000000000014p-52L : inexact-ok += atanh tonearest ldbl-128ibm 0x4p-52L : 0x4.00000000000000000000000016p-52L : inexact-ok += atanh towardzero ldbl-128ibm 0x4p-52L : 0x4.00000000000000000000000014p-52L : inexact-ok += atanh upward ldbl-128ibm 0x4p-52L : 0x4.00000000000000000000000016p-52L : inexact-ok +atanh 0x1p-51 += atanh downward flt-32 0x2p-52f : 0x2p-52f : inexact-ok += atanh tonearest flt-32 0x2p-52f : 0x2p-52f : inexact-ok += atanh towardzero flt-32 0x2p-52f : 0x2p-52f : inexact-ok += atanh upward flt-32 0x2p-52f : 0x2.000004p-52f : inexact-ok += atanh downward dbl-64 0x2p-52 : 0x2p-52 : inexact-ok += atanh tonearest dbl-64 0x2p-52 : 0x2p-52 : inexact-ok += atanh towardzero dbl-64 0x2p-52 : 0x2p-52 : inexact-ok += atanh upward dbl-64 0x2p-52 : 0x2.0000000000002p-52 : inexact-ok += atanh downward ldbl-96-intel 0x2p-52L : 0x2p-52L : inexact-ok += atanh tonearest ldbl-96-intel 0x2p-52L : 0x2p-52L : inexact-ok += atanh towardzero ldbl-96-intel 0x2p-52L : 0x2p-52L : inexact-ok += atanh upward ldbl-96-intel 0x2p-52L : 0x2.0000000000000004p-52L : inexact-ok += atanh downward ldbl-96-m68k 0x2p-52L : 0x2p-52L : inexact-ok += atanh tonearest ldbl-96-m68k 0x2p-52L : 0x2p-52L : inexact-ok += atanh towardzero ldbl-96-m68k 0x2p-52L : 0x2p-52L : inexact-ok += atanh upward ldbl-96-m68k 0x2p-52L : 0x2.0000000000000004p-52L : inexact-ok += atanh downward ldbl-128 0x2p-52L : 0x2.00000000000000000000000002aap-52L : inexact-ok += atanh tonearest ldbl-128 0x2p-52L : 0x2.00000000000000000000000002aap-52L : inexact-ok += atanh towardzero ldbl-128 0x2p-52L : 0x2.00000000000000000000000002aap-52L : inexact-ok += atanh upward ldbl-128 0x2p-52L : 0x2.00000000000000000000000002acp-52L : inexact-ok += atanh downward ldbl-128ibm 0x2p-52L : 0x2.00000000000000000000000002p-52L : inexact-ok += atanh tonearest ldbl-128ibm 0x2p-52L : 0x2.00000000000000000000000003p-52L : inexact-ok += atanh towardzero ldbl-128ibm 0x2p-52L : 0x2.00000000000000000000000002p-52L : inexact-ok += atanh upward ldbl-128ibm 0x2p-52L : 0x2.00000000000000000000000003p-52L : inexact-ok +atanh 0x1p-52 += atanh downward flt-32 0x1p-52f : 0x1p-52f : inexact-ok += atanh tonearest flt-32 0x1p-52f : 0x1p-52f : inexact-ok += atanh towardzero flt-32 0x1p-52f : 0x1p-52f : inexact-ok += atanh upward flt-32 0x1p-52f : 0x1.000002p-52f : inexact-ok += atanh downward dbl-64 0x1p-52 : 0x1p-52 : inexact-ok += atanh tonearest dbl-64 0x1p-52 : 0x1p-52 : inexact-ok += atanh towardzero dbl-64 0x1p-52 : 0x1p-52 : inexact-ok += atanh upward dbl-64 0x1p-52 : 0x1.0000000000001p-52 : inexact-ok += atanh downward ldbl-96-intel 0x1p-52L : 0x1p-52L : inexact-ok += atanh tonearest ldbl-96-intel 0x1p-52L : 0x1p-52L : inexact-ok += atanh towardzero ldbl-96-intel 0x1p-52L : 0x1p-52L : inexact-ok += atanh upward ldbl-96-intel 0x1p-52L : 0x1.0000000000000002p-52L : inexact-ok += atanh downward ldbl-96-m68k 0x1p-52L : 0x1p-52L : inexact-ok += atanh tonearest ldbl-96-m68k 0x1p-52L : 0x1p-52L : inexact-ok += atanh towardzero ldbl-96-m68k 0x1p-52L : 0x1p-52L : inexact-ok += atanh upward ldbl-96-m68k 0x1p-52L : 0x1.0000000000000002p-52L : inexact-ok += atanh downward ldbl-128 0x1p-52L : 0x1.0000000000000000000000000055p-52L : inexact-ok += atanh tonearest ldbl-128 0x1p-52L : 0x1.0000000000000000000000000055p-52L : inexact-ok += atanh towardzero ldbl-128 0x1p-52L : 0x1.0000000000000000000000000055p-52L : inexact-ok += atanh upward ldbl-128 0x1p-52L : 0x1.0000000000000000000000000056p-52L : inexact-ok += atanh downward ldbl-128ibm 0x1p-52L : 0x1p-52L : inexact-ok += atanh tonearest ldbl-128ibm 0x1p-52L : 0x1.000000000000000000000000008p-52L : inexact-ok += atanh towardzero ldbl-128ibm 0x1p-52L : 0x1p-52L : inexact-ok += atanh upward ldbl-128ibm 0x1p-52L : 0x1.000000000000000000000000008p-52L : inexact-ok +atanh 0x1p-53 += atanh downward flt-32 0x8p-56f : 0x8p-56f : inexact-ok += atanh tonearest flt-32 0x8p-56f : 0x8p-56f : inexact-ok += atanh towardzero flt-32 0x8p-56f : 0x8p-56f : inexact-ok += atanh upward flt-32 0x8p-56f : 0x8.00001p-56f : inexact-ok += atanh downward dbl-64 0x8p-56 : 0x8p-56 : inexact-ok += atanh tonearest dbl-64 0x8p-56 : 0x8p-56 : inexact-ok += atanh towardzero dbl-64 0x8p-56 : 0x8p-56 : inexact-ok += atanh upward dbl-64 0x8p-56 : 0x8.0000000000008p-56 : inexact-ok += atanh downward ldbl-96-intel 0x8p-56L : 0x8p-56L : inexact-ok += atanh tonearest ldbl-96-intel 0x8p-56L : 0x8p-56L : inexact-ok += atanh towardzero ldbl-96-intel 0x8p-56L : 0x8p-56L : inexact-ok += atanh upward ldbl-96-intel 0x8p-56L : 0x8.000000000000001p-56L : inexact-ok += atanh downward ldbl-96-m68k 0x8p-56L : 0x8p-56L : inexact-ok += atanh tonearest ldbl-96-m68k 0x8p-56L : 0x8p-56L : inexact-ok += atanh towardzero ldbl-96-m68k 0x8p-56L : 0x8p-56L : inexact-ok += atanh upward ldbl-96-m68k 0x8p-56L : 0x8.000000000000001p-56L : inexact-ok += atanh downward ldbl-128 0x8p-56L : 0x8.00000000000000000000000000a8p-56L : inexact-ok += atanh tonearest ldbl-128 0x8p-56L : 0x8.00000000000000000000000000a8p-56L : inexact-ok += atanh towardzero ldbl-128 0x8p-56L : 0x8.00000000000000000000000000a8p-56L : inexact-ok += atanh upward ldbl-128 0x8p-56L : 0x8.00000000000000000000000000bp-56L : inexact-ok += atanh downward ldbl-128ibm 0x8p-56L : 0x8p-56L : inexact-ok += atanh tonearest ldbl-128ibm 0x8p-56L : 0x8p-56L : inexact-ok += atanh towardzero ldbl-128ibm 0x8p-56L : 0x8p-56L : inexact-ok += atanh upward ldbl-128ibm 0x8p-56L : 0x8.00000000000000000000000004p-56L : inexact-ok +atanh 0x1p-54 += atanh downward flt-32 0x4p-56f : 0x4p-56f : inexact-ok += atanh tonearest flt-32 0x4p-56f : 0x4p-56f : inexact-ok += atanh towardzero flt-32 0x4p-56f : 0x4p-56f : inexact-ok += atanh upward flt-32 0x4p-56f : 0x4.000008p-56f : inexact-ok += atanh downward dbl-64 0x4p-56 : 0x4p-56 : inexact-ok += atanh tonearest dbl-64 0x4p-56 : 0x4p-56 : inexact-ok += atanh towardzero dbl-64 0x4p-56 : 0x4p-56 : inexact-ok += atanh upward dbl-64 0x4p-56 : 0x4.0000000000004p-56 : inexact-ok += atanh downward ldbl-96-intel 0x4p-56L : 0x4p-56L : inexact-ok += atanh tonearest ldbl-96-intel 0x4p-56L : 0x4p-56L : inexact-ok += atanh towardzero ldbl-96-intel 0x4p-56L : 0x4p-56L : inexact-ok += atanh upward ldbl-96-intel 0x4p-56L : 0x4.0000000000000008p-56L : inexact-ok += atanh downward ldbl-96-m68k 0x4p-56L : 0x4p-56L : inexact-ok += atanh tonearest ldbl-96-m68k 0x4p-56L : 0x4p-56L : inexact-ok += atanh towardzero ldbl-96-m68k 0x4p-56L : 0x4p-56L : inexact-ok += atanh upward ldbl-96-m68k 0x4p-56L : 0x4.0000000000000008p-56L : inexact-ok += atanh downward ldbl-128 0x4p-56L : 0x4.0000000000000000000000000014p-56L : inexact-ok += atanh tonearest ldbl-128 0x4p-56L : 0x4.0000000000000000000000000014p-56L : inexact-ok += atanh towardzero ldbl-128 0x4p-56L : 0x4.0000000000000000000000000014p-56L : inexact-ok += atanh upward ldbl-128 0x4p-56L : 0x4.0000000000000000000000000018p-56L : inexact-ok += atanh downward ldbl-128ibm 0x4p-56L : 0x4p-56L : inexact-ok += atanh tonearest ldbl-128ibm 0x4p-56L : 0x4p-56L : inexact-ok += atanh towardzero ldbl-128ibm 0x4p-56L : 0x4p-56L : inexact-ok += atanh upward ldbl-128ibm 0x4p-56L : 0x4.00000000000000000000000002p-56L : inexact-ok +atanh 0x1p-55 += atanh downward flt-32 0x2p-56f : 0x2p-56f : inexact-ok += atanh tonearest flt-32 0x2p-56f : 0x2p-56f : inexact-ok += atanh towardzero flt-32 0x2p-56f : 0x2p-56f : inexact-ok += atanh upward flt-32 0x2p-56f : 0x2.000004p-56f : inexact-ok += atanh downward dbl-64 0x2p-56 : 0x2p-56 : inexact-ok += atanh tonearest dbl-64 0x2p-56 : 0x2p-56 : inexact-ok += atanh towardzero dbl-64 0x2p-56 : 0x2p-56 : inexact-ok += atanh upward dbl-64 0x2p-56 : 0x2.0000000000002p-56 : inexact-ok += atanh downward ldbl-96-intel 0x2p-56L : 0x2p-56L : inexact-ok += atanh tonearest ldbl-96-intel 0x2p-56L : 0x2p-56L : inexact-ok += atanh towardzero ldbl-96-intel 0x2p-56L : 0x2p-56L : inexact-ok += atanh upward ldbl-96-intel 0x2p-56L : 0x2.0000000000000004p-56L : inexact-ok += atanh downward ldbl-96-m68k 0x2p-56L : 0x2p-56L : inexact-ok += atanh tonearest ldbl-96-m68k 0x2p-56L : 0x2p-56L : inexact-ok += atanh towardzero ldbl-96-m68k 0x2p-56L : 0x2p-56L : inexact-ok += atanh upward ldbl-96-m68k 0x2p-56L : 0x2.0000000000000004p-56L : inexact-ok += atanh downward ldbl-128 0x2p-56L : 0x2.0000000000000000000000000002p-56L : inexact-ok += atanh tonearest ldbl-128 0x2p-56L : 0x2.0000000000000000000000000002p-56L : inexact-ok += atanh towardzero ldbl-128 0x2p-56L : 0x2.0000000000000000000000000002p-56L : inexact-ok += atanh upward ldbl-128 0x2p-56L : 0x2.0000000000000000000000000004p-56L : inexact-ok += atanh downward ldbl-128ibm 0x2p-56L : 0x2p-56L : inexact-ok += atanh tonearest ldbl-128ibm 0x2p-56L : 0x2p-56L : inexact-ok += atanh towardzero ldbl-128ibm 0x2p-56L : 0x2p-56L : inexact-ok += atanh upward ldbl-128ibm 0x2p-56L : 0x2.00000000000000000000000001p-56L : inexact-ok +atanh 0x1p-56 += atanh downward flt-32 0x1p-56f : 0x1p-56f : inexact-ok += atanh tonearest flt-32 0x1p-56f : 0x1p-56f : inexact-ok += atanh towardzero flt-32 0x1p-56f : 0x1p-56f : inexact-ok += atanh upward flt-32 0x1p-56f : 0x1.000002p-56f : inexact-ok += atanh downward dbl-64 0x1p-56 : 0x1p-56 : inexact-ok += atanh tonearest dbl-64 0x1p-56 : 0x1p-56 : inexact-ok += atanh towardzero dbl-64 0x1p-56 : 0x1p-56 : inexact-ok += atanh upward dbl-64 0x1p-56 : 0x1.0000000000001p-56 : inexact-ok += atanh downward ldbl-96-intel 0x1p-56L : 0x1p-56L : inexact-ok += atanh tonearest ldbl-96-intel 0x1p-56L : 0x1p-56L : inexact-ok += atanh towardzero ldbl-96-intel 0x1p-56L : 0x1p-56L : inexact-ok += atanh upward ldbl-96-intel 0x1p-56L : 0x1.0000000000000002p-56L : inexact-ok += atanh downward ldbl-96-m68k 0x1p-56L : 0x1p-56L : inexact-ok += atanh tonearest ldbl-96-m68k 0x1p-56L : 0x1p-56L : inexact-ok += atanh towardzero ldbl-96-m68k 0x1p-56L : 0x1p-56L : inexact-ok += atanh upward ldbl-96-m68k 0x1p-56L : 0x1.0000000000000002p-56L : inexact-ok += atanh downward ldbl-128 0x1p-56L : 0x1p-56L : inexact-ok += atanh tonearest ldbl-128 0x1p-56L : 0x1p-56L : inexact-ok += atanh towardzero ldbl-128 0x1p-56L : 0x1p-56L : inexact-ok += atanh upward ldbl-128 0x1p-56L : 0x1.0000000000000000000000000001p-56L : inexact-ok += atanh downward ldbl-128ibm 0x1p-56L : 0x1p-56L : inexact-ok += atanh tonearest ldbl-128ibm 0x1p-56L : 0x1p-56L : inexact-ok += atanh towardzero ldbl-128ibm 0x1p-56L : 0x1p-56L : inexact-ok += atanh upward ldbl-128ibm 0x1p-56L : 0x1.000000000000000000000000008p-56L : inexact-ok +atanh 0x1p-57 += atanh downward flt-32 0x8p-60f : 0x8p-60f : inexact-ok += atanh tonearest flt-32 0x8p-60f : 0x8p-60f : inexact-ok += atanh towardzero flt-32 0x8p-60f : 0x8p-60f : inexact-ok += atanh upward flt-32 0x8p-60f : 0x8.00001p-60f : inexact-ok += atanh downward dbl-64 0x8p-60 : 0x8p-60 : inexact-ok += atanh tonearest dbl-64 0x8p-60 : 0x8p-60 : inexact-ok += atanh towardzero dbl-64 0x8p-60 : 0x8p-60 : inexact-ok += atanh upward dbl-64 0x8p-60 : 0x8.0000000000008p-60 : inexact-ok += atanh downward ldbl-96-intel 0x8p-60L : 0x8p-60L : inexact-ok += atanh tonearest ldbl-96-intel 0x8p-60L : 0x8p-60L : inexact-ok += atanh towardzero ldbl-96-intel 0x8p-60L : 0x8p-60L : inexact-ok += atanh upward ldbl-96-intel 0x8p-60L : 0x8.000000000000001p-60L : inexact-ok += atanh downward ldbl-96-m68k 0x8p-60L : 0x8p-60L : inexact-ok += atanh tonearest ldbl-96-m68k 0x8p-60L : 0x8p-60L : inexact-ok += atanh towardzero ldbl-96-m68k 0x8p-60L : 0x8p-60L : inexact-ok += atanh upward ldbl-96-m68k 0x8p-60L : 0x8.000000000000001p-60L : inexact-ok += atanh downward ldbl-128 0x8p-60L : 0x8p-60L : inexact-ok += atanh tonearest ldbl-128 0x8p-60L : 0x8p-60L : inexact-ok += atanh towardzero ldbl-128 0x8p-60L : 0x8p-60L : inexact-ok += atanh upward ldbl-128 0x8p-60L : 0x8.0000000000000000000000000008p-60L : inexact-ok += atanh downward ldbl-128ibm 0x8p-60L : 0x8p-60L : inexact-ok += atanh tonearest ldbl-128ibm 0x8p-60L : 0x8p-60L : inexact-ok += atanh towardzero ldbl-128ibm 0x8p-60L : 0x8p-60L : inexact-ok += atanh upward ldbl-128ibm 0x8p-60L : 0x8.00000000000000000000000004p-60L : inexact-ok +atanh 0x1p-58 += atanh downward flt-32 0x4p-60f : 0x4p-60f : inexact-ok += atanh tonearest flt-32 0x4p-60f : 0x4p-60f : inexact-ok += atanh towardzero flt-32 0x4p-60f : 0x4p-60f : inexact-ok += atanh upward flt-32 0x4p-60f : 0x4.000008p-60f : inexact-ok += atanh downward dbl-64 0x4p-60 : 0x4p-60 : inexact-ok += atanh tonearest dbl-64 0x4p-60 : 0x4p-60 : inexact-ok += atanh towardzero dbl-64 0x4p-60 : 0x4p-60 : inexact-ok += atanh upward dbl-64 0x4p-60 : 0x4.0000000000004p-60 : inexact-ok += atanh downward ldbl-96-intel 0x4p-60L : 0x4p-60L : inexact-ok += atanh tonearest ldbl-96-intel 0x4p-60L : 0x4p-60L : inexact-ok += atanh towardzero ldbl-96-intel 0x4p-60L : 0x4p-60L : inexact-ok += atanh upward ldbl-96-intel 0x4p-60L : 0x4.0000000000000008p-60L : inexact-ok += atanh downward ldbl-96-m68k 0x4p-60L : 0x4p-60L : inexact-ok += atanh tonearest ldbl-96-m68k 0x4p-60L : 0x4p-60L : inexact-ok += atanh towardzero ldbl-96-m68k 0x4p-60L : 0x4p-60L : inexact-ok += atanh upward ldbl-96-m68k 0x4p-60L : 0x4.0000000000000008p-60L : inexact-ok += atanh downward ldbl-128 0x4p-60L : 0x4p-60L : inexact-ok += atanh tonearest ldbl-128 0x4p-60L : 0x4p-60L : inexact-ok += atanh towardzero ldbl-128 0x4p-60L : 0x4p-60L : inexact-ok += atanh upward ldbl-128 0x4p-60L : 0x4.0000000000000000000000000004p-60L : inexact-ok += atanh downward ldbl-128ibm 0x4p-60L : 0x4p-60L : inexact-ok += atanh tonearest ldbl-128ibm 0x4p-60L : 0x4p-60L : inexact-ok += atanh towardzero ldbl-128ibm 0x4p-60L : 0x4p-60L : inexact-ok += atanh upward ldbl-128ibm 0x4p-60L : 0x4.00000000000000000000000002p-60L : inexact-ok +atanh 0x1p-59 += atanh downward flt-32 0x2p-60f : 0x2p-60f : inexact-ok += atanh tonearest flt-32 0x2p-60f : 0x2p-60f : inexact-ok += atanh towardzero flt-32 0x2p-60f : 0x2p-60f : inexact-ok += atanh upward flt-32 0x2p-60f : 0x2.000004p-60f : inexact-ok += atanh downward dbl-64 0x2p-60 : 0x2p-60 : inexact-ok += atanh tonearest dbl-64 0x2p-60 : 0x2p-60 : inexact-ok += atanh towardzero dbl-64 0x2p-60 : 0x2p-60 : inexact-ok += atanh upward dbl-64 0x2p-60 : 0x2.0000000000002p-60 : inexact-ok += atanh downward ldbl-96-intel 0x2p-60L : 0x2p-60L : inexact-ok += atanh tonearest ldbl-96-intel 0x2p-60L : 0x2p-60L : inexact-ok += atanh towardzero ldbl-96-intel 0x2p-60L : 0x2p-60L : inexact-ok += atanh upward ldbl-96-intel 0x2p-60L : 0x2.0000000000000004p-60L : inexact-ok += atanh downward ldbl-96-m68k 0x2p-60L : 0x2p-60L : inexact-ok += atanh tonearest ldbl-96-m68k 0x2p-60L : 0x2p-60L : inexact-ok += atanh towardzero ldbl-96-m68k 0x2p-60L : 0x2p-60L : inexact-ok += atanh upward ldbl-96-m68k 0x2p-60L : 0x2.0000000000000004p-60L : inexact-ok += atanh downward ldbl-128 0x2p-60L : 0x2p-60L : inexact-ok += atanh tonearest ldbl-128 0x2p-60L : 0x2p-60L : inexact-ok += atanh towardzero ldbl-128 0x2p-60L : 0x2p-60L : inexact-ok += atanh upward ldbl-128 0x2p-60L : 0x2.0000000000000000000000000002p-60L : inexact-ok += atanh downward ldbl-128ibm 0x2p-60L : 0x2p-60L : inexact-ok += atanh tonearest ldbl-128ibm 0x2p-60L : 0x2p-60L : inexact-ok += atanh towardzero ldbl-128ibm 0x2p-60L : 0x2p-60L : inexact-ok += atanh upward ldbl-128ibm 0x2p-60L : 0x2.00000000000000000000000001p-60L : inexact-ok +atanh 0x1p-100 += atanh downward flt-32 0x1p-100f : 0x1p-100f : inexact-ok += atanh tonearest flt-32 0x1p-100f : 0x1p-100f : inexact-ok += atanh towardzero flt-32 0x1p-100f : 0x1p-100f : inexact-ok += atanh upward flt-32 0x1p-100f : 0x1.000002p-100f : inexact-ok += atanh downward dbl-64 0x1p-100 : 0x1p-100 : inexact-ok += atanh tonearest dbl-64 0x1p-100 : 0x1p-100 : inexact-ok += atanh towardzero dbl-64 0x1p-100 : 0x1p-100 : inexact-ok += atanh upward dbl-64 0x1p-100 : 0x1.0000000000001p-100 : inexact-ok += atanh downward ldbl-96-intel 0x1p-100L : 0x1p-100L : inexact-ok += atanh tonearest ldbl-96-intel 0x1p-100L : 0x1p-100L : inexact-ok += atanh towardzero ldbl-96-intel 0x1p-100L : 0x1p-100L : inexact-ok += atanh upward ldbl-96-intel 0x1p-100L : 0x1.0000000000000002p-100L : inexact-ok += atanh downward ldbl-96-m68k 0x1p-100L : 0x1p-100L : inexact-ok += atanh tonearest ldbl-96-m68k 0x1p-100L : 0x1p-100L : inexact-ok += atanh towardzero ldbl-96-m68k 0x1p-100L : 0x1p-100L : inexact-ok += atanh upward ldbl-96-m68k 0x1p-100L : 0x1.0000000000000002p-100L : inexact-ok += atanh downward ldbl-128 0x1p-100L : 0x1p-100L : inexact-ok += atanh tonearest ldbl-128 0x1p-100L : 0x1p-100L : inexact-ok += atanh towardzero ldbl-128 0x1p-100L : 0x1p-100L : inexact-ok += atanh upward ldbl-128 0x1p-100L : 0x1.0000000000000000000000000001p-100L : inexact-ok += atanh downward ldbl-128ibm 0x1p-100L : 0x1p-100L : inexact-ok += atanh tonearest ldbl-128ibm 0x1p-100L : 0x1p-100L : inexact-ok += atanh towardzero ldbl-128ibm 0x1p-100L : 0x1p-100L : inexact-ok += atanh upward ldbl-128ibm 0x1p-100L : 0x1.000000000000000000000000008p-100L : inexact-ok +atanh 0x1p-500 missing-underflow += atanh downward flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok += atanh tonearest flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok += atanh towardzero flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok += atanh upward flt-32 0x8p-152f : 0x1p-148f : inexact-ok underflow underflow-ok errno-erange-ok += atanh downward dbl-64 0x8p-152 : 0x8p-152 : inexact-ok += atanh tonearest dbl-64 0x8p-152 : 0x8p-152 : inexact-ok += atanh towardzero dbl-64 0x8p-152 : 0x8p-152 : inexact-ok += atanh upward dbl-64 0x8p-152 : 0x8.0000000000008p-152 : inexact-ok += atanh downward ldbl-96-intel 0x8p-152L : 0x8p-152L : inexact-ok += atanh tonearest ldbl-96-intel 0x8p-152L : 0x8p-152L : inexact-ok += atanh towardzero ldbl-96-intel 0x8p-152L : 0x8p-152L : inexact-ok += atanh upward ldbl-96-intel 0x8p-152L : 0x8.000000000000001p-152L : inexact-ok += atanh downward ldbl-96-m68k 0x8p-152L : 0x8p-152L : inexact-ok += atanh tonearest ldbl-96-m68k 0x8p-152L : 0x8p-152L : inexact-ok += atanh towardzero ldbl-96-m68k 0x8p-152L : 0x8p-152L : inexact-ok += atanh upward ldbl-96-m68k 0x8p-152L : 0x8.000000000000001p-152L : inexact-ok += atanh downward ldbl-128 0x8p-152L : 0x8p-152L : inexact-ok += atanh tonearest ldbl-128 0x8p-152L : 0x8p-152L : inexact-ok += atanh towardzero ldbl-128 0x8p-152L : 0x8p-152L : inexact-ok += atanh upward ldbl-128 0x8p-152L : 0x8.0000000000000000000000000008p-152L : inexact-ok += atanh downward ldbl-128ibm 0x8p-152L : 0x8p-152L : inexact-ok += atanh tonearest ldbl-128ibm 0x8p-152L : 0x8p-152L : inexact-ok += atanh towardzero ldbl-128ibm 0x8p-152L : 0x8p-152L : inexact-ok += atanh upward ldbl-128ibm 0x8p-152L : 0x8.00000000000000000000000004p-152L : inexact-ok += atanh downward flt-32 0x0p+0f : 0x0p+0f : inexact-ok += atanh tonearest flt-32 0x0p+0f : 0x0p+0f : inexact-ok += atanh towardzero flt-32 0x0p+0f : 0x0p+0f : inexact-ok += atanh upward flt-32 0x0p+0f : 0x0p+0f : inexact-ok += atanh downward dbl-64 0x0p+0 : 0x0p+0 : inexact-ok += atanh tonearest dbl-64 0x0p+0 : 0x0p+0 : inexact-ok += atanh towardzero dbl-64 0x0p+0 : 0x0p+0 : inexact-ok += atanh upward dbl-64 0x0p+0 : 0x0p+0 : inexact-ok += atanh downward ldbl-96-intel 0x0p+0L : 0x0p+0L : inexact-ok += atanh tonearest ldbl-96-intel 0x0p+0L : 0x0p+0L : inexact-ok += atanh towardzero ldbl-96-intel 0x0p+0L : 0x0p+0L : inexact-ok += atanh upward ldbl-96-intel 0x0p+0L : 0x0p+0L : inexact-ok += atanh downward ldbl-96-m68k 0x0p+0L : 0x0p+0L : inexact-ok += atanh tonearest ldbl-96-m68k 0x0p+0L : 0x0p+0L : inexact-ok += atanh towardzero ldbl-96-m68k 0x0p+0L : 0x0p+0L : inexact-ok += atanh upward ldbl-96-m68k 0x0p+0L : 0x0p+0L : inexact-ok += atanh downward ldbl-128 0x0p+0L : 0x0p+0L : inexact-ok += atanh tonearest ldbl-128 0x0p+0L : 0x0p+0L : inexact-ok += atanh towardzero ldbl-128 0x0p+0L : 0x0p+0L : inexact-ok += atanh upward ldbl-128 0x0p+0L : 0x0p+0L : inexact-ok += atanh downward ldbl-128ibm 0x0p+0L : 0x0p+0L : inexact-ok += atanh tonearest ldbl-128ibm 0x0p+0L : 0x0p+0L : inexact-ok += atanh towardzero ldbl-128ibm 0x0p+0L : 0x0p+0L : inexact-ok += atanh upward ldbl-128ibm 0x0p+0L : 0x0p+0L : inexact-ok += atanh downward dbl-64 0x1p-500 : 0x1p-500 : inexact-ok += atanh tonearest dbl-64 0x1p-500 : 0x1p-500 : inexact-ok += atanh towardzero dbl-64 0x1p-500 : 0x1p-500 : inexact-ok += atanh upward dbl-64 0x1p-500 : 0x1.0000000000001p-500 : inexact-ok += atanh downward ldbl-96-intel 0x1p-500L : 0x1p-500L : inexact-ok += atanh tonearest ldbl-96-intel 0x1p-500L : 0x1p-500L : inexact-ok += atanh towardzero ldbl-96-intel 0x1p-500L : 0x1p-500L : inexact-ok += atanh upward ldbl-96-intel 0x1p-500L : 0x1.0000000000000002p-500L : inexact-ok += atanh downward ldbl-96-m68k 0x1p-500L : 0x1p-500L : inexact-ok += atanh tonearest ldbl-96-m68k 0x1p-500L : 0x1p-500L : inexact-ok += atanh towardzero ldbl-96-m68k 0x1p-500L : 0x1p-500L : inexact-ok += atanh upward ldbl-96-m68k 0x1p-500L : 0x1.0000000000000002p-500L : inexact-ok += atanh downward ldbl-128 0x1p-500L : 0x1p-500L : inexact-ok += atanh tonearest ldbl-128 0x1p-500L : 0x1p-500L : inexact-ok += atanh towardzero ldbl-128 0x1p-500L : 0x1p-500L : inexact-ok += atanh upward ldbl-128 0x1p-500L : 0x1.0000000000000000000000000001p-500L : inexact-ok += atanh downward ldbl-128ibm 0x1p-500L : 0x1p-500L : inexact-ok += atanh tonearest ldbl-128ibm 0x1p-500L : 0x1p-500L : inexact-ok += atanh towardzero ldbl-128ibm 0x1p-500L : 0x1p-500L : inexact-ok += atanh upward ldbl-128ibm 0x1p-500L : 0x1.000000000000000000000000008p-500L : inexact-ok +atanh 0x1p-5000 missing-underflow += atanh downward flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok += atanh tonearest flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok += atanh towardzero flt-32 0x8p-152f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok += atanh upward flt-32 0x8p-152f : 0x1p-148f : inexact-ok underflow underflow-ok errno-erange-ok += atanh downward dbl-64 0x8p-152 : 0x8p-152 : inexact-ok += atanh tonearest dbl-64 0x8p-152 : 0x8p-152 : inexact-ok += atanh towardzero dbl-64 0x8p-152 : 0x8p-152 : inexact-ok += atanh upward dbl-64 0x8p-152 : 0x8.0000000000008p-152 : inexact-ok += atanh downward ldbl-96-intel 0x8p-152L : 0x8p-152L : inexact-ok += atanh tonearest ldbl-96-intel 0x8p-152L : 0x8p-152L : inexact-ok += atanh towardzero ldbl-96-intel 0x8p-152L : 0x8p-152L : inexact-ok += atanh upward ldbl-96-intel 0x8p-152L : 0x8.000000000000001p-152L : inexact-ok += atanh downward ldbl-96-m68k 0x8p-152L : 0x8p-152L : inexact-ok += atanh tonearest ldbl-96-m68k 0x8p-152L : 0x8p-152L : inexact-ok += atanh towardzero ldbl-96-m68k 0x8p-152L : 0x8p-152L : inexact-ok += atanh upward ldbl-96-m68k 0x8p-152L : 0x8.000000000000001p-152L : inexact-ok += atanh downward ldbl-128 0x8p-152L : 0x8p-152L : inexact-ok += atanh tonearest ldbl-128 0x8p-152L : 0x8p-152L : inexact-ok += atanh towardzero ldbl-128 0x8p-152L : 0x8p-152L : inexact-ok += atanh upward ldbl-128 0x8p-152L : 0x8.0000000000000000000000000008p-152L : inexact-ok += atanh downward ldbl-128ibm 0x8p-152L : 0x8p-152L : inexact-ok += atanh tonearest ldbl-128ibm 0x8p-152L : 0x8p-152L : inexact-ok += atanh towardzero ldbl-128ibm 0x8p-152L : 0x8p-152L : inexact-ok += atanh upward ldbl-128ibm 0x8p-152L : 0x8.00000000000000000000000004p-152L : inexact-ok += atanh downward flt-32 0x0p+0f : 0x0p+0f : inexact-ok += atanh tonearest flt-32 0x0p+0f : 0x0p+0f : inexact-ok += atanh towardzero flt-32 0x0p+0f : 0x0p+0f : inexact-ok += atanh upward flt-32 0x0p+0f : 0x0p+0f : inexact-ok += atanh downward dbl-64 0x0p+0 : 0x0p+0 : inexact-ok += atanh tonearest dbl-64 0x0p+0 : 0x0p+0 : inexact-ok += atanh towardzero dbl-64 0x0p+0 : 0x0p+0 : inexact-ok += atanh upward dbl-64 0x0p+0 : 0x0p+0 : inexact-ok += atanh downward ldbl-96-intel 0x0p+0L : 0x0p+0L : inexact-ok += atanh tonearest ldbl-96-intel 0x0p+0L : 0x0p+0L : inexact-ok += atanh towardzero ldbl-96-intel 0x0p+0L : 0x0p+0L : inexact-ok += atanh upward ldbl-96-intel 0x0p+0L : 0x0p+0L : inexact-ok += atanh downward ldbl-96-m68k 0x0p+0L : 0x0p+0L : inexact-ok += atanh tonearest ldbl-96-m68k 0x0p+0L : 0x0p+0L : inexact-ok += atanh towardzero ldbl-96-m68k 0x0p+0L : 0x0p+0L : inexact-ok += atanh upward ldbl-96-m68k 0x0p+0L : 0x0p+0L : inexact-ok += atanh downward ldbl-128 0x0p+0L : 0x0p+0L : inexact-ok += atanh tonearest ldbl-128 0x0p+0L : 0x0p+0L : inexact-ok += atanh towardzero ldbl-128 0x0p+0L : 0x0p+0L : inexact-ok += atanh upward ldbl-128 0x0p+0L : 0x0p+0L : inexact-ok += atanh downward ldbl-128ibm 0x0p+0L : 0x0p+0L : inexact-ok += atanh tonearest ldbl-128ibm 0x0p+0L : 0x0p+0L : inexact-ok += atanh towardzero ldbl-128ibm 0x0p+0L : 0x0p+0L : inexact-ok += atanh upward ldbl-128ibm 0x0p+0L : 0x0p+0L : inexact-ok += atanh downward dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok += atanh tonearest dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok += atanh towardzero dbl-64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok += atanh upward dbl-64 0x4p-1076 : 0x8p-1076 : inexact-ok underflow underflow-ok errno-erange-ok += atanh downward ldbl-96-intel 0x4p-1076L : 0x4p-1076L : inexact-ok += atanh tonearest ldbl-96-intel 0x4p-1076L : 0x4p-1076L : inexact-ok += atanh towardzero ldbl-96-intel 0x4p-1076L : 0x4p-1076L : inexact-ok += atanh upward ldbl-96-intel 0x4p-1076L : 0x4.0000000000000008p-1076L : inexact-ok += atanh downward ldbl-96-m68k 0x4p-1076L : 0x4p-1076L : inexact-ok += atanh tonearest ldbl-96-m68k 0x4p-1076L : 0x4p-1076L : inexact-ok += atanh towardzero ldbl-96-m68k 0x4p-1076L : 0x4p-1076L : inexact-ok += atanh upward ldbl-96-m68k 0x4p-1076L : 0x4.0000000000000008p-1076L : inexact-ok += atanh downward ldbl-128 0x4p-1076L : 0x4p-1076L : inexact-ok += atanh tonearest ldbl-128 0x4p-1076L : 0x4p-1076L : inexact-ok += atanh towardzero ldbl-128 0x4p-1076L : 0x4p-1076L : inexact-ok += atanh upward ldbl-128 0x4p-1076L : 0x4.0000000000000000000000000004p-1076L : inexact-ok += atanh downward ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok += atanh tonearest ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok += atanh towardzero ldbl-128ibm 0x4p-1076L : 0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok += atanh upward ldbl-128ibm 0x4p-1076L : 0x8p-1076L : inexact-ok underflow underflow-ok errno-erange-ok += atanh downward ldbl-96-intel 0x1p-5000L : 0x1p-5000L : inexact-ok += atanh tonearest ldbl-96-intel 0x1p-5000L : 0x1p-5000L : inexact-ok += atanh towardzero ldbl-96-intel 0x1p-5000L : 0x1p-5000L : inexact-ok += atanh upward ldbl-96-intel 0x1p-5000L : 0x1.0000000000000002p-5000L : inexact-ok += atanh downward ldbl-96-m68k 0x1p-5000L : 0x1p-5000L : inexact-ok += atanh tonearest ldbl-96-m68k 0x1p-5000L : 0x1p-5000L : inexact-ok += atanh towardzero ldbl-96-m68k 0x1p-5000L : 0x1p-5000L : inexact-ok += atanh upward ldbl-96-m68k 0x1p-5000L : 0x1.0000000000000002p-5000L : inexact-ok += atanh downward ldbl-128 0x1p-5000L : 0x1p-5000L : inexact-ok += atanh tonearest ldbl-128 0x1p-5000L : 0x1p-5000L : inexact-ok += atanh towardzero ldbl-128 0x1p-5000L : 0x1p-5000L : inexact-ok += atanh upward ldbl-128 0x1p-5000L : 0x1.0000000000000000000000000001p-5000L : inexact-ok atanh min missing-underflow = atanh downward flt-32 0x4p-128f : 0x4p-128f : inexact-ok underflow-ok errno-erange-ok = atanh tonearest flt-32 0x4p-128f : 0x4p-128f : inexact-ok underflow-ok errno-erange-ok |