This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.21-139-g2ca725c


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  2ca725c594e0c186d928dc0823be7d8b5976112c (commit)
      from  af96be34825586536ebcfbf5c675e795ddd3c8fa (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=2ca725c594e0c186d928dc0823be7d8b5976112c

commit 2ca725c594e0c186d928dc0823be7d8b5976112c
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Fri Feb 27 17:48:37 2015 +0000

    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.

diff --git a/ChangeLog b/ChangeLog
index b55d6d6..8e6b5f1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2015-02-27  Joseph Myers  <joseph@codesourcery.com>
+
+	[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.
+
 2015-02-27  Wilco Dijkstra  wdijkstr@arm.com
 
 	* string/bcopy.c (bcopy): Call memmove for performance.
diff --git a/NEWS b/NEWS
index 24ebc36..7b83d75 100644
--- a/NEWS
+++ b/NEWS
@@ -12,7 +12,8 @@ Version 2.22
   4719, 14841, 13064, 14094, 15319, 15467, 15790, 15969, 16351, 16560,
   16783, 17269, 17523, 17569, 17588, 17792, 17836, 17912, 17916, 17932,
   17944, 17949, 17964, 17965, 17967, 17969, 17978, 17987, 17991, 17996,
-  17998, 17999, 18019, 18020, 18029, 18030, 18032, 18038, 18039.
+  17998, 17999, 18019, 18020, 18029, 18030, 18032, 18038, 18039, 18046,
+  18047.
 
 * 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 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
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
index 3ba23a4..302ea4c 100644
--- a/sysdeps/i386/fpu/libm-test-ulps
+++ b/sysdeps/i386/fpu/libm-test-ulps
@@ -150,6 +150,8 @@ ildouble: 2
 ldouble: 1
 
 Function: "atanh_towardzero":
+double: 1
+float: 1
 idouble: 1
 ifloat: 1
 ildouble: 4
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_atanhl.c b/sysdeps/ieee754/ldbl-128ibm/e_atanhl.c
index 29f2e92..5a98999 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_atanhl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_atanhl.c
@@ -54,7 +54,7 @@ __ieee754_atanhl(long double x)
 	    if (t == one)
 		return x/zero;
 	}
-	if(ix<0x3e20000000000000LL&&(huge+x)>zero) return x;	/* x<2**-29 */
+	if(ix<0x3c70000000000000LL&&(huge+x)>zero) return x;	/* x<2**-56 */
 	x = fabsl (x);
 	if(ix<0x3fe0000000000000LL) {		/* x < 0.5 */
 	    t = x+x;
diff --git a/sysdeps/ieee754/ldbl-96/e_atanhl.c b/sysdeps/ieee754/ldbl-96/e_atanhl.c
index 4c29243..305d50e 100644
--- a/sysdeps/ieee754/ldbl-96/e_atanhl.c
+++ b/sysdeps/ieee754/ldbl-96/e_atanhl.c
@@ -52,9 +52,9 @@ __ieee754_atanhl(long double x)
 	    return (x-x)/(x-x);
 	if(ix==0x3fff)
 	    return x/zero;
-	if(ix<0x3fe3) {
+	if(ix<0x3fdf) {
 	    math_force_eval(huge+x);
-	    return x;	/* x<2**-28 */
+	    return x;	/* x<2**-32 */
 	}
 	SET_LDOUBLE_EXP(x,ix);
 	if(ix<0x3ffe) {		/* x < 0.5 */
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index 7252929..5cfb73f 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -170,7 +170,9 @@ ildouble: 1
 ldouble: 1
 
 Function: "atanh":
+double: 1
 float: 1
+idouble: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
@@ -184,7 +186,9 @@ ildouble: 2
 ldouble: 2
 
 Function: "atanh_towardzero":
+double: 1
 float: 1
+idouble: 1
 ifloat: 1
 ildouble: 2
 ldouble: 2

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                              |   13 +
 NEWS                                   |    3 +-
 math/auto-libm-test-in                 |   31 ++
 math/auto-libm-test-out                |  875 ++++++++++++++++++++++++++++++++
 sysdeps/i386/fpu/libm-test-ulps        |    2 +
 sysdeps/ieee754/ldbl-128ibm/e_atanhl.c |    2 +-
 sysdeps/ieee754/ldbl-96/e_atanhl.c     |    4 +-
 sysdeps/x86_64/fpu/libm-test-ulps      |    4 +
 8 files changed, 930 insertions(+), 4 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]