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.22-44-g7ee06ef


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  7ee06ef15827f8f2582a94b1ceaad47eaf502744 (commit)
      from  eb32b0d40308166c4d8f6330cc2958cb1e545075 (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=7ee06ef15827f8f2582a94b1ceaad47eaf502744

commit 7ee06ef15827f8f2582a94b1ceaad47eaf502744
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Mon Aug 10 20:35:30 2015 +0000

    Fix ldbl-128ibm tanhl inaccuracy (bug 18790).
    
    ldbl-128ibm tanhl uses a too-small threshold to decide when to return
    +/-1, resulting in large errors.  This patch changes it to a more
    appropriate threshold (the requirement is for 2*exp(-2|x|) to be small
    in terms of ulps of 1).
    
    Tested for x86_64, x86 and powerpc.
    
    	[BZ #18790]
    	* sysdeps/ieee754/ldbl-128ibm/s_tanhl.c (__tanhl): Increase
    	threshold for returning +/- 1.
    	* math/auto-libm-test-in: Add more tests of tanh.
    	* math/auto-libm-test-out: Regenerated.
    	* sysdeps/i386/fpu/libm-test-ulps: Update.

diff --git a/ChangeLog b/ChangeLog
index 3c30529..8d640e8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2015-08-10  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #18790]
+	* sysdeps/ieee754/ldbl-128ibm/s_tanhl.c (__tanhl): Increase
+	threshold for returning +/- 1.
+	* math/auto-libm-test-in: Add more tests of tanh.
+	* math/auto-libm-test-out: Regenerated.
+	* sysdeps/i386/fpu/libm-test-ulps: Update.
+
 2015-08-10  Andreas Schwab  <schwab@suse.de>
 
 	[BZ #18781]
diff --git a/NEWS b/NEWS
index ef7e1a9..b73fb72 100644
--- a/NEWS
+++ b/NEWS
@@ -10,7 +10,7 @@ Version 2.23
 * The following bugs are resolved with this release:
 
   16517, 16519, 17905, 18265, 18480, 18525, 18618, 18647, 18661, 18674,
-  18781, 18787, 18789.
+  18781, 18787, 18789, 18790.
 
 Version 2.22
 
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index c33334c..6716cfe 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -2692,6 +2692,42 @@ tanh 0.75
 tanh -0.75
 tanh 1.0
 tanh -1.0
+tanh 2
+tanh -2
+tanh 3
+tanh -3
+tanh 4
+tanh -4
+tanh 5
+tanh -5
+tanh 6
+tanh -6
+tanh 7
+tanh -7
+tanh 8
+tanh -8
+tanh 9
+tanh -9
+tanh 10
+tanh -10
+tanh 15
+tanh -15
+tanh 20
+tanh -20
+tanh 22
+tanh -22
+tanh 25
+tanh -25
+tanh 30
+tanh -30
+tanh 35
+tanh -35
+tanh 40
+tanh -40
+tanh 45
+tanh -45
+tanh 50
+tanh -50
 tanh 0x1p-57
 tanh 0xe.6c659p-4
 tanh 0x8.c259ep-4
diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
index 3471a15..ed49d48 100644
--- a/math/auto-libm-test-out
+++ b/math/auto-libm-test-out
@@ -202399,6 +202399,906 @@ tanh -1.0
 = tanh tonearest ldbl-128ibm -0x1p+0L : -0xc.2f7d5a8a79ca2ac3195f149e2p-4L : inexact-ok
 = tanh towardzero ldbl-128ibm -0x1p+0L : -0xc.2f7d5a8a79ca2ac3195f149e2p-4L : inexact-ok
 = tanh upward ldbl-128ibm -0x1p+0L : -0xc.2f7d5a8a79ca2ac3195f149e2p-4L : inexact-ok
+tanh 2
+= tanh downward flt-32 0x2p+0f : 0xf.6ca82p-4f : inexact-ok
+= tanh tonearest flt-32 0x2p+0f : 0xf.6ca83p-4f : inexact-ok
+= tanh towardzero flt-32 0x2p+0f : 0xf.6ca82p-4f : inexact-ok
+= tanh upward flt-32 0x2p+0f : 0xf.6ca83p-4f : inexact-ok
+= tanh downward dbl-64 0x2p+0 : 0xf.6ca82f0de1e98p-4 : inexact-ok
+= tanh tonearest dbl-64 0x2p+0 : 0xf.6ca82f0de1eap-4 : inexact-ok
+= tanh towardzero dbl-64 0x2p+0 : 0xf.6ca82f0de1e98p-4 : inexact-ok
+= tanh upward dbl-64 0x2p+0 : 0xf.6ca82f0de1eap-4 : inexact-ok
+= tanh downward ldbl-96-intel 0x2p+0L : 0xf.6ca82f0de1e9e99p-4L : inexact-ok
+= tanh tonearest ldbl-96-intel 0x2p+0L : 0xf.6ca82f0de1e9e9ap-4L : inexact-ok
+= tanh towardzero ldbl-96-intel 0x2p+0L : 0xf.6ca82f0de1e9e99p-4L : inexact-ok
+= tanh upward ldbl-96-intel 0x2p+0L : 0xf.6ca82f0de1e9e9ap-4L : inexact-ok
+= tanh downward ldbl-96-m68k 0x2p+0L : 0xf.6ca82f0de1e9e99p-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k 0x2p+0L : 0xf.6ca82f0de1e9e9ap-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k 0x2p+0L : 0xf.6ca82f0de1e9e99p-4L : inexact-ok
+= tanh upward ldbl-96-m68k 0x2p+0L : 0xf.6ca82f0de1e9e9ap-4L : inexact-ok
+= tanh downward ldbl-128 0x2p+0L : 0xf.6ca82f0de1e9e99e2197e1f412a8p-4L : inexact-ok
+= tanh tonearest ldbl-128 0x2p+0L : 0xf.6ca82f0de1e9e99e2197e1f412bp-4L : inexact-ok
+= tanh towardzero ldbl-128 0x2p+0L : 0xf.6ca82f0de1e9e99e2197e1f412a8p-4L : inexact-ok
+= tanh upward ldbl-128 0x2p+0L : 0xf.6ca82f0de1e9e99e2197e1f412bp-4L : inexact-ok
+= tanh downward ldbl-128ibm 0x2p+0L : 0xf.6ca82f0de1e9e99e2197e1f41p-4L : inexact-ok
+= tanh tonearest ldbl-128ibm 0x2p+0L : 0xf.6ca82f0de1e9e99e2197e1f414p-4L : inexact-ok
+= tanh towardzero ldbl-128ibm 0x2p+0L : 0xf.6ca82f0de1e9e99e2197e1f41p-4L : inexact-ok
+= tanh upward ldbl-128ibm 0x2p+0L : 0xf.6ca82f0de1e9e99e2197e1f414p-4L : inexact-ok
+tanh -2
+= tanh downward flt-32 -0x2p+0f : -0xf.6ca83p-4f : inexact-ok
+= tanh tonearest flt-32 -0x2p+0f : -0xf.6ca83p-4f : inexact-ok
+= tanh towardzero flt-32 -0x2p+0f : -0xf.6ca82p-4f : inexact-ok
+= tanh upward flt-32 -0x2p+0f : -0xf.6ca82p-4f : inexact-ok
+= tanh downward dbl-64 -0x2p+0 : -0xf.6ca82f0de1eap-4 : inexact-ok
+= tanh tonearest dbl-64 -0x2p+0 : -0xf.6ca82f0de1eap-4 : inexact-ok
+= tanh towardzero dbl-64 -0x2p+0 : -0xf.6ca82f0de1e98p-4 : inexact-ok
+= tanh upward dbl-64 -0x2p+0 : -0xf.6ca82f0de1e98p-4 : inexact-ok
+= tanh downward ldbl-96-intel -0x2p+0L : -0xf.6ca82f0de1e9e9ap-4L : inexact-ok
+= tanh tonearest ldbl-96-intel -0x2p+0L : -0xf.6ca82f0de1e9e9ap-4L : inexact-ok
+= tanh towardzero ldbl-96-intel -0x2p+0L : -0xf.6ca82f0de1e9e99p-4L : inexact-ok
+= tanh upward ldbl-96-intel -0x2p+0L : -0xf.6ca82f0de1e9e99p-4L : inexact-ok
+= tanh downward ldbl-96-m68k -0x2p+0L : -0xf.6ca82f0de1e9e9ap-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k -0x2p+0L : -0xf.6ca82f0de1e9e9ap-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k -0x2p+0L : -0xf.6ca82f0de1e9e99p-4L : inexact-ok
+= tanh upward ldbl-96-m68k -0x2p+0L : -0xf.6ca82f0de1e9e99p-4L : inexact-ok
+= tanh downward ldbl-128 -0x2p+0L : -0xf.6ca82f0de1e9e99e2197e1f412bp-4L : inexact-ok
+= tanh tonearest ldbl-128 -0x2p+0L : -0xf.6ca82f0de1e9e99e2197e1f412bp-4L : inexact-ok
+= tanh towardzero ldbl-128 -0x2p+0L : -0xf.6ca82f0de1e9e99e2197e1f412a8p-4L : inexact-ok
+= tanh upward ldbl-128 -0x2p+0L : -0xf.6ca82f0de1e9e99e2197e1f412a8p-4L : inexact-ok
+= tanh downward ldbl-128ibm -0x2p+0L : -0xf.6ca82f0de1e9e99e2197e1f414p-4L : inexact-ok
+= tanh tonearest ldbl-128ibm -0x2p+0L : -0xf.6ca82f0de1e9e99e2197e1f414p-4L : inexact-ok
+= tanh towardzero ldbl-128ibm -0x2p+0L : -0xf.6ca82f0de1e9e99e2197e1f41p-4L : inexact-ok
+= tanh upward ldbl-128ibm -0x2p+0L : -0xf.6ca82f0de1e9e99e2197e1f41p-4L : inexact-ok
+tanh 3
+= tanh downward flt-32 0x3p+0f : 0xf.ebbe8p-4f : inexact-ok
+= tanh tonearest flt-32 0x3p+0f : 0xf.ebbe9p-4f : inexact-ok
+= tanh towardzero flt-32 0x3p+0f : 0xf.ebbe8p-4f : inexact-ok
+= tanh upward flt-32 0x3p+0f : 0xf.ebbe9p-4f : inexact-ok
+= tanh downward dbl-64 0x3p+0 : 0xf.ebbe888d057f8p-4 : inexact-ok
+= tanh tonearest dbl-64 0x3p+0 : 0xf.ebbe888d058p-4 : inexact-ok
+= tanh towardzero dbl-64 0x3p+0 : 0xf.ebbe888d057f8p-4 : inexact-ok
+= tanh upward dbl-64 0x3p+0 : 0xf.ebbe888d058p-4 : inexact-ok
+= tanh downward ldbl-96-intel 0x3p+0L : 0xf.ebbe888d057ff1p-4L : inexact-ok
+= tanh tonearest ldbl-96-intel 0x3p+0L : 0xf.ebbe888d057ff1p-4L : inexact-ok
+= tanh towardzero ldbl-96-intel 0x3p+0L : 0xf.ebbe888d057ff1p-4L : inexact-ok
+= tanh upward ldbl-96-intel 0x3p+0L : 0xf.ebbe888d057ff11p-4L : inexact-ok
+= tanh downward ldbl-96-m68k 0x3p+0L : 0xf.ebbe888d057ff1p-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k 0x3p+0L : 0xf.ebbe888d057ff1p-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k 0x3p+0L : 0xf.ebbe888d057ff1p-4L : inexact-ok
+= tanh upward ldbl-96-m68k 0x3p+0L : 0xf.ebbe888d057ff11p-4L : inexact-ok
+= tanh downward ldbl-128 0x3p+0L : 0xf.ebbe888d057ff1057854585bfda8p-4L : inexact-ok
+= tanh tonearest ldbl-128 0x3p+0L : 0xf.ebbe888d057ff1057854585bfdbp-4L : inexact-ok
+= tanh towardzero ldbl-128 0x3p+0L : 0xf.ebbe888d057ff1057854585bfda8p-4L : inexact-ok
+= tanh upward ldbl-128 0x3p+0L : 0xf.ebbe888d057ff1057854585bfdbp-4L : inexact-ok
+= tanh downward ldbl-128ibm 0x3p+0L : 0xf.ebbe888d057ff1057854585bfcp-4L : inexact-ok
+= tanh tonearest ldbl-128ibm 0x3p+0L : 0xf.ebbe888d057ff1057854585bfcp-4L : inexact-ok
+= tanh towardzero ldbl-128ibm 0x3p+0L : 0xf.ebbe888d057ff1057854585bfcp-4L : inexact-ok
+= tanh upward ldbl-128ibm 0x3p+0L : 0xf.ebbe888d057ff1057854585cp-4L : inexact-ok
+tanh -3
+= tanh downward flt-32 -0x3p+0f : -0xf.ebbe9p-4f : inexact-ok
+= tanh tonearest flt-32 -0x3p+0f : -0xf.ebbe9p-4f : inexact-ok
+= tanh towardzero flt-32 -0x3p+0f : -0xf.ebbe8p-4f : inexact-ok
+= tanh upward flt-32 -0x3p+0f : -0xf.ebbe8p-4f : inexact-ok
+= tanh downward dbl-64 -0x3p+0 : -0xf.ebbe888d058p-4 : inexact-ok
+= tanh tonearest dbl-64 -0x3p+0 : -0xf.ebbe888d058p-4 : inexact-ok
+= tanh towardzero dbl-64 -0x3p+0 : -0xf.ebbe888d057f8p-4 : inexact-ok
+= tanh upward dbl-64 -0x3p+0 : -0xf.ebbe888d057f8p-4 : inexact-ok
+= tanh downward ldbl-96-intel -0x3p+0L : -0xf.ebbe888d057ff11p-4L : inexact-ok
+= tanh tonearest ldbl-96-intel -0x3p+0L : -0xf.ebbe888d057ff1p-4L : inexact-ok
+= tanh towardzero ldbl-96-intel -0x3p+0L : -0xf.ebbe888d057ff1p-4L : inexact-ok
+= tanh upward ldbl-96-intel -0x3p+0L : -0xf.ebbe888d057ff1p-4L : inexact-ok
+= tanh downward ldbl-96-m68k -0x3p+0L : -0xf.ebbe888d057ff11p-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k -0x3p+0L : -0xf.ebbe888d057ff1p-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k -0x3p+0L : -0xf.ebbe888d057ff1p-4L : inexact-ok
+= tanh upward ldbl-96-m68k -0x3p+0L : -0xf.ebbe888d057ff1p-4L : inexact-ok
+= tanh downward ldbl-128 -0x3p+0L : -0xf.ebbe888d057ff1057854585bfdbp-4L : inexact-ok
+= tanh tonearest ldbl-128 -0x3p+0L : -0xf.ebbe888d057ff1057854585bfdbp-4L : inexact-ok
+= tanh towardzero ldbl-128 -0x3p+0L : -0xf.ebbe888d057ff1057854585bfda8p-4L : inexact-ok
+= tanh upward ldbl-128 -0x3p+0L : -0xf.ebbe888d057ff1057854585bfda8p-4L : inexact-ok
+= tanh downward ldbl-128ibm -0x3p+0L : -0xf.ebbe888d057ff1057854585cp-4L : inexact-ok
+= tanh tonearest ldbl-128ibm -0x3p+0L : -0xf.ebbe888d057ff1057854585bfcp-4L : inexact-ok
+= tanh towardzero ldbl-128ibm -0x3p+0L : -0xf.ebbe888d057ff1057854585bfcp-4L : inexact-ok
+= tanh upward ldbl-128ibm -0x3p+0L : -0xf.ebbe888d057ff1057854585bfcp-4L : inexact-ok
+tanh 4
+= tanh downward flt-32 0x4p+0f : 0xf.fd40bp-4f : inexact-ok
+= tanh tonearest flt-32 0x4p+0f : 0xf.fd40cp-4f : inexact-ok
+= tanh towardzero flt-32 0x4p+0f : 0xf.fd40bp-4f : inexact-ok
+= tanh upward flt-32 0x4p+0f : 0xf.fd40cp-4f : inexact-ok
+= tanh downward dbl-64 0x4p+0 : 0xf.fd40b84505a1p-4 : inexact-ok
+= tanh tonearest dbl-64 0x4p+0 : 0xf.fd40b84505a1p-4 : inexact-ok
+= tanh towardzero dbl-64 0x4p+0 : 0xf.fd40b84505a1p-4 : inexact-ok
+= tanh upward dbl-64 0x4p+0 : 0xf.fd40b84505a18p-4 : inexact-ok
+= tanh downward ldbl-96-intel 0x4p+0L : 0xf.fd40b84505a10b4p-4L : inexact-ok
+= tanh tonearest ldbl-96-intel 0x4p+0L : 0xf.fd40b84505a10b4p-4L : inexact-ok
+= tanh towardzero ldbl-96-intel 0x4p+0L : 0xf.fd40b84505a10b4p-4L : inexact-ok
+= tanh upward ldbl-96-intel 0x4p+0L : 0xf.fd40b84505a10b5p-4L : inexact-ok
+= tanh downward ldbl-96-m68k 0x4p+0L : 0xf.fd40b84505a10b4p-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k 0x4p+0L : 0xf.fd40b84505a10b4p-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k 0x4p+0L : 0xf.fd40b84505a10b4p-4L : inexact-ok
+= tanh upward ldbl-96-m68k 0x4p+0L : 0xf.fd40b84505a10b5p-4L : inexact-ok
+= tanh downward ldbl-128 0x4p+0L : 0xf.fd40b84505a10b42b92360cee3p-4L : inexact-ok
+= tanh tonearest ldbl-128 0x4p+0L : 0xf.fd40b84505a10b42b92360cee308p-4L : inexact-ok
+= tanh towardzero ldbl-128 0x4p+0L : 0xf.fd40b84505a10b42b92360cee3p-4L : inexact-ok
+= tanh upward ldbl-128 0x4p+0L : 0xf.fd40b84505a10b42b92360cee308p-4L : inexact-ok
+= tanh downward ldbl-128ibm 0x4p+0L : 0xf.fd40b84505a10b42b92360ceep-4L : inexact-ok
+= tanh tonearest ldbl-128ibm 0x4p+0L : 0xf.fd40b84505a10b42b92360cee4p-4L : inexact-ok
+= tanh towardzero ldbl-128ibm 0x4p+0L : 0xf.fd40b84505a10b42b92360ceep-4L : inexact-ok
+= tanh upward ldbl-128ibm 0x4p+0L : 0xf.fd40b84505a10b42b92360cee4p-4L : inexact-ok
+tanh -4
+= tanh downward flt-32 -0x4p+0f : -0xf.fd40cp-4f : inexact-ok
+= tanh tonearest flt-32 -0x4p+0f : -0xf.fd40cp-4f : inexact-ok
+= tanh towardzero flt-32 -0x4p+0f : -0xf.fd40bp-4f : inexact-ok
+= tanh upward flt-32 -0x4p+0f : -0xf.fd40bp-4f : inexact-ok
+= tanh downward dbl-64 -0x4p+0 : -0xf.fd40b84505a18p-4 : inexact-ok
+= tanh tonearest dbl-64 -0x4p+0 : -0xf.fd40b84505a1p-4 : inexact-ok
+= tanh towardzero dbl-64 -0x4p+0 : -0xf.fd40b84505a1p-4 : inexact-ok
+= tanh upward dbl-64 -0x4p+0 : -0xf.fd40b84505a1p-4 : inexact-ok
+= tanh downward ldbl-96-intel -0x4p+0L : -0xf.fd40b84505a10b5p-4L : inexact-ok
+= tanh tonearest ldbl-96-intel -0x4p+0L : -0xf.fd40b84505a10b4p-4L : inexact-ok
+= tanh towardzero ldbl-96-intel -0x4p+0L : -0xf.fd40b84505a10b4p-4L : inexact-ok
+= tanh upward ldbl-96-intel -0x4p+0L : -0xf.fd40b84505a10b4p-4L : inexact-ok
+= tanh downward ldbl-96-m68k -0x4p+0L : -0xf.fd40b84505a10b5p-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k -0x4p+0L : -0xf.fd40b84505a10b4p-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k -0x4p+0L : -0xf.fd40b84505a10b4p-4L : inexact-ok
+= tanh upward ldbl-96-m68k -0x4p+0L : -0xf.fd40b84505a10b4p-4L : inexact-ok
+= tanh downward ldbl-128 -0x4p+0L : -0xf.fd40b84505a10b42b92360cee308p-4L : inexact-ok
+= tanh tonearest ldbl-128 -0x4p+0L : -0xf.fd40b84505a10b42b92360cee308p-4L : inexact-ok
+= tanh towardzero ldbl-128 -0x4p+0L : -0xf.fd40b84505a10b42b92360cee3p-4L : inexact-ok
+= tanh upward ldbl-128 -0x4p+0L : -0xf.fd40b84505a10b42b92360cee3p-4L : inexact-ok
+= tanh downward ldbl-128ibm -0x4p+0L : -0xf.fd40b84505a10b42b92360cee4p-4L : inexact-ok
+= tanh tonearest ldbl-128ibm -0x4p+0L : -0xf.fd40b84505a10b42b92360cee4p-4L : inexact-ok
+= tanh towardzero ldbl-128ibm -0x4p+0L : -0xf.fd40b84505a10b42b92360ceep-4L : inexact-ok
+= tanh upward ldbl-128ibm -0x4p+0L : -0xf.fd40b84505a10b42b92360ceep-4L : inexact-ok
+tanh 5
+= tanh downward flt-32 0x5p+0f : 0xf.ffa0cp-4f : inexact-ok
+= tanh tonearest flt-32 0x5p+0f : 0xf.ffa0dp-4f : inexact-ok
+= tanh towardzero flt-32 0x5p+0f : 0xf.ffa0cp-4f : inexact-ok
+= tanh upward flt-32 0x5p+0f : 0xf.ffa0dp-4f : inexact-ok
+= tanh downward dbl-64 0x5p+0 : 0xf.ffa0cb346f888p-4 : inexact-ok
+= tanh tonearest dbl-64 0x5p+0 : 0xf.ffa0cb346f888p-4 : inexact-ok
+= tanh towardzero dbl-64 0x5p+0 : 0xf.ffa0cb346f888p-4 : inexact-ok
+= tanh upward dbl-64 0x5p+0 : 0xf.ffa0cb346f89p-4 : inexact-ok
+= tanh downward ldbl-96-intel 0x5p+0L : 0xf.ffa0cb346f889a8p-4L : inexact-ok
+= tanh tonearest ldbl-96-intel 0x5p+0L : 0xf.ffa0cb346f889a8p-4L : inexact-ok
+= tanh towardzero ldbl-96-intel 0x5p+0L : 0xf.ffa0cb346f889a8p-4L : inexact-ok
+= tanh upward ldbl-96-intel 0x5p+0L : 0xf.ffa0cb346f889a9p-4L : inexact-ok
+= tanh downward ldbl-96-m68k 0x5p+0L : 0xf.ffa0cb346f889a8p-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k 0x5p+0L : 0xf.ffa0cb346f889a8p-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k 0x5p+0L : 0xf.ffa0cb346f889a8p-4L : inexact-ok
+= tanh upward ldbl-96-m68k 0x5p+0L : 0xf.ffa0cb346f889a9p-4L : inexact-ok
+= tanh downward ldbl-128 0x5p+0L : 0xf.ffa0cb346f889a800b7186cb5728p-4L : inexact-ok
+= tanh tonearest ldbl-128 0x5p+0L : 0xf.ffa0cb346f889a800b7186cb573p-4L : inexact-ok
+= tanh towardzero ldbl-128 0x5p+0L : 0xf.ffa0cb346f889a800b7186cb5728p-4L : inexact-ok
+= tanh upward ldbl-128 0x5p+0L : 0xf.ffa0cb346f889a800b7186cb573p-4L : inexact-ok
+= tanh downward ldbl-128ibm 0x5p+0L : 0xf.ffa0cb346f889a800b7186cb54p-4L : inexact-ok
+= tanh tonearest ldbl-128ibm 0x5p+0L : 0xf.ffa0cb346f889a800b7186cb58p-4L : inexact-ok
+= tanh towardzero ldbl-128ibm 0x5p+0L : 0xf.ffa0cb346f889a800b7186cb54p-4L : inexact-ok
+= tanh upward ldbl-128ibm 0x5p+0L : 0xf.ffa0cb346f889a800b7186cb58p-4L : inexact-ok
+tanh -5
+= tanh downward flt-32 -0x5p+0f : -0xf.ffa0dp-4f : inexact-ok
+= tanh tonearest flt-32 -0x5p+0f : -0xf.ffa0dp-4f : inexact-ok
+= tanh towardzero flt-32 -0x5p+0f : -0xf.ffa0cp-4f : inexact-ok
+= tanh upward flt-32 -0x5p+0f : -0xf.ffa0cp-4f : inexact-ok
+= tanh downward dbl-64 -0x5p+0 : -0xf.ffa0cb346f89p-4 : inexact-ok
+= tanh tonearest dbl-64 -0x5p+0 : -0xf.ffa0cb346f888p-4 : inexact-ok
+= tanh towardzero dbl-64 -0x5p+0 : -0xf.ffa0cb346f888p-4 : inexact-ok
+= tanh upward dbl-64 -0x5p+0 : -0xf.ffa0cb346f888p-4 : inexact-ok
+= tanh downward ldbl-96-intel -0x5p+0L : -0xf.ffa0cb346f889a9p-4L : inexact-ok
+= tanh tonearest ldbl-96-intel -0x5p+0L : -0xf.ffa0cb346f889a8p-4L : inexact-ok
+= tanh towardzero ldbl-96-intel -0x5p+0L : -0xf.ffa0cb346f889a8p-4L : inexact-ok
+= tanh upward ldbl-96-intel -0x5p+0L : -0xf.ffa0cb346f889a8p-4L : inexact-ok
+= tanh downward ldbl-96-m68k -0x5p+0L : -0xf.ffa0cb346f889a9p-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k -0x5p+0L : -0xf.ffa0cb346f889a8p-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k -0x5p+0L : -0xf.ffa0cb346f889a8p-4L : inexact-ok
+= tanh upward ldbl-96-m68k -0x5p+0L : -0xf.ffa0cb346f889a8p-4L : inexact-ok
+= tanh downward ldbl-128 -0x5p+0L : -0xf.ffa0cb346f889a800b7186cb573p-4L : inexact-ok
+= tanh tonearest ldbl-128 -0x5p+0L : -0xf.ffa0cb346f889a800b7186cb573p-4L : inexact-ok
+= tanh towardzero ldbl-128 -0x5p+0L : -0xf.ffa0cb346f889a800b7186cb5728p-4L : inexact-ok
+= tanh upward ldbl-128 -0x5p+0L : -0xf.ffa0cb346f889a800b7186cb5728p-4L : inexact-ok
+= tanh downward ldbl-128ibm -0x5p+0L : -0xf.ffa0cb346f889a800b7186cb58p-4L : inexact-ok
+= tanh tonearest ldbl-128ibm -0x5p+0L : -0xf.ffa0cb346f889a800b7186cb58p-4L : inexact-ok
+= tanh towardzero ldbl-128ibm -0x5p+0L : -0xf.ffa0cb346f889a800b7186cb54p-4L : inexact-ok
+= tanh upward ldbl-128ibm -0x5p+0L : -0xf.ffa0cb346f889a800b7186cb54p-4L : inexact-ok
+tanh 6
+= tanh downward flt-32 0x6p+0f : 0xf.fff31p-4f : inexact-ok
+= tanh tonearest flt-32 0x6p+0f : 0xf.fff32p-4f : inexact-ok
+= tanh towardzero flt-32 0x6p+0f : 0xf.fff31p-4f : inexact-ok
+= tanh upward flt-32 0x6p+0f : 0xf.fff32p-4f : inexact-ok
+= tanh downward dbl-64 0x6p+0 : 0xf.fff31d5f129d8p-4 : inexact-ok
+= tanh tonearest dbl-64 0x6p+0 : 0xf.fff31d5f129ep-4 : inexact-ok
+= tanh towardzero dbl-64 0x6p+0 : 0xf.fff31d5f129d8p-4 : inexact-ok
+= tanh upward dbl-64 0x6p+0 : 0xf.fff31d5f129ep-4 : inexact-ok
+= tanh downward ldbl-96-intel 0x6p+0L : 0xf.fff31d5f129deedp-4L : inexact-ok
+= tanh tonearest ldbl-96-intel 0x6p+0L : 0xf.fff31d5f129deeep-4L : inexact-ok
+= tanh towardzero ldbl-96-intel 0x6p+0L : 0xf.fff31d5f129deedp-4L : inexact-ok
+= tanh upward ldbl-96-intel 0x6p+0L : 0xf.fff31d5f129deeep-4L : inexact-ok
+= tanh downward ldbl-96-m68k 0x6p+0L : 0xf.fff31d5f129deedp-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k 0x6p+0L : 0xf.fff31d5f129deeep-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k 0x6p+0L : 0xf.fff31d5f129deedp-4L : inexact-ok
+= tanh upward ldbl-96-m68k 0x6p+0L : 0xf.fff31d5f129deeep-4L : inexact-ok
+= tanh downward ldbl-128 0x6p+0L : 0xf.fff31d5f129deedd313b57265658p-4L : inexact-ok
+= tanh tonearest ldbl-128 0x6p+0L : 0xf.fff31d5f129deedd313b57265658p-4L : inexact-ok
+= tanh towardzero ldbl-128 0x6p+0L : 0xf.fff31d5f129deedd313b57265658p-4L : inexact-ok
+= tanh upward ldbl-128 0x6p+0L : 0xf.fff31d5f129deedd313b5726566p-4L : inexact-ok
+= tanh downward ldbl-128ibm 0x6p+0L : 0xf.fff31d5f129deedd313b572654p-4L : inexact-ok
+= tanh tonearest ldbl-128ibm 0x6p+0L : 0xf.fff31d5f129deedd313b572658p-4L : inexact-ok
+= tanh towardzero ldbl-128ibm 0x6p+0L : 0xf.fff31d5f129deedd313b572654p-4L : inexact-ok
+= tanh upward ldbl-128ibm 0x6p+0L : 0xf.fff31d5f129deedd313b572658p-4L : inexact-ok
+tanh -6
+= tanh downward flt-32 -0x6p+0f : -0xf.fff32p-4f : inexact-ok
+= tanh tonearest flt-32 -0x6p+0f : -0xf.fff32p-4f : inexact-ok
+= tanh towardzero flt-32 -0x6p+0f : -0xf.fff31p-4f : inexact-ok
+= tanh upward flt-32 -0x6p+0f : -0xf.fff31p-4f : inexact-ok
+= tanh downward dbl-64 -0x6p+0 : -0xf.fff31d5f129ep-4 : inexact-ok
+= tanh tonearest dbl-64 -0x6p+0 : -0xf.fff31d5f129ep-4 : inexact-ok
+= tanh towardzero dbl-64 -0x6p+0 : -0xf.fff31d5f129d8p-4 : inexact-ok
+= tanh upward dbl-64 -0x6p+0 : -0xf.fff31d5f129d8p-4 : inexact-ok
+= tanh downward ldbl-96-intel -0x6p+0L : -0xf.fff31d5f129deeep-4L : inexact-ok
+= tanh tonearest ldbl-96-intel -0x6p+0L : -0xf.fff31d5f129deeep-4L : inexact-ok
+= tanh towardzero ldbl-96-intel -0x6p+0L : -0xf.fff31d5f129deedp-4L : inexact-ok
+= tanh upward ldbl-96-intel -0x6p+0L : -0xf.fff31d5f129deedp-4L : inexact-ok
+= tanh downward ldbl-96-m68k -0x6p+0L : -0xf.fff31d5f129deeep-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k -0x6p+0L : -0xf.fff31d5f129deeep-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k -0x6p+0L : -0xf.fff31d5f129deedp-4L : inexact-ok
+= tanh upward ldbl-96-m68k -0x6p+0L : -0xf.fff31d5f129deedp-4L : inexact-ok
+= tanh downward ldbl-128 -0x6p+0L : -0xf.fff31d5f129deedd313b5726566p-4L : inexact-ok
+= tanh tonearest ldbl-128 -0x6p+0L : -0xf.fff31d5f129deedd313b57265658p-4L : inexact-ok
+= tanh towardzero ldbl-128 -0x6p+0L : -0xf.fff31d5f129deedd313b57265658p-4L : inexact-ok
+= tanh upward ldbl-128 -0x6p+0L : -0xf.fff31d5f129deedd313b57265658p-4L : inexact-ok
+= tanh downward ldbl-128ibm -0x6p+0L : -0xf.fff31d5f129deedd313b572658p-4L : inexact-ok
+= tanh tonearest ldbl-128ibm -0x6p+0L : -0xf.fff31d5f129deedd313b572658p-4L : inexact-ok
+= tanh towardzero ldbl-128ibm -0x6p+0L : -0xf.fff31d5f129deedd313b572654p-4L : inexact-ok
+= tanh upward ldbl-128ibm -0x6p+0L : -0xf.fff31d5f129deedd313b572654p-4L : inexact-ok
+tanh 7
+= tanh downward flt-32 0x7p+0f : 0xf.fffe4p-4f : inexact-ok
+= tanh tonearest flt-32 0x7p+0f : 0xf.fffe4p-4f : inexact-ok
+= tanh towardzero flt-32 0x7p+0f : 0xf.fffe4p-4f : inexact-ok
+= tanh upward flt-32 0x7p+0f : 0xf.fffe5p-4f : inexact-ok
+= tanh downward dbl-64 0x7p+0 : 0xf.fffe4193a8788p-4 : inexact-ok
+= tanh tonearest dbl-64 0x7p+0 : 0xf.fffe4193a879p-4 : inexact-ok
+= tanh towardzero dbl-64 0x7p+0 : 0xf.fffe4193a8788p-4 : inexact-ok
+= tanh upward dbl-64 0x7p+0 : 0xf.fffe4193a879p-4 : inexact-ok
+= tanh downward ldbl-96-intel 0x7p+0L : 0xf.fffe4193a878ed6p-4L : inexact-ok
+= tanh tonearest ldbl-96-intel 0x7p+0L : 0xf.fffe4193a878ed7p-4L : inexact-ok
+= tanh towardzero ldbl-96-intel 0x7p+0L : 0xf.fffe4193a878ed6p-4L : inexact-ok
+= tanh upward ldbl-96-intel 0x7p+0L : 0xf.fffe4193a878ed7p-4L : inexact-ok
+= tanh downward ldbl-96-m68k 0x7p+0L : 0xf.fffe4193a878ed6p-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k 0x7p+0L : 0xf.fffe4193a878ed7p-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k 0x7p+0L : 0xf.fffe4193a878ed6p-4L : inexact-ok
+= tanh upward ldbl-96-m68k 0x7p+0L : 0xf.fffe4193a878ed7p-4L : inexact-ok
+= tanh downward ldbl-128 0x7p+0L : 0xf.fffe4193a878ed68e8057dafd2dp-4L : inexact-ok
+= tanh tonearest ldbl-128 0x7p+0L : 0xf.fffe4193a878ed68e8057dafd2dp-4L : inexact-ok
+= tanh towardzero ldbl-128 0x7p+0L : 0xf.fffe4193a878ed68e8057dafd2dp-4L : inexact-ok
+= tanh upward ldbl-128 0x7p+0L : 0xf.fffe4193a878ed68e8057dafd2d8p-4L : inexact-ok
+= tanh downward ldbl-128ibm 0x7p+0L : 0xf.fffe4193a878ed68e8057dafdp-4L : inexact-ok
+= tanh tonearest ldbl-128ibm 0x7p+0L : 0xf.fffe4193a878ed68e8057dafd4p-4L : inexact-ok
+= tanh towardzero ldbl-128ibm 0x7p+0L : 0xf.fffe4193a878ed68e8057dafdp-4L : inexact-ok
+= tanh upward ldbl-128ibm 0x7p+0L : 0xf.fffe4193a878ed68e8057dafd4p-4L : inexact-ok
+tanh -7
+= tanh downward flt-32 -0x7p+0f : -0xf.fffe5p-4f : inexact-ok
+= tanh tonearest flt-32 -0x7p+0f : -0xf.fffe4p-4f : inexact-ok
+= tanh towardzero flt-32 -0x7p+0f : -0xf.fffe4p-4f : inexact-ok
+= tanh upward flt-32 -0x7p+0f : -0xf.fffe4p-4f : inexact-ok
+= tanh downward dbl-64 -0x7p+0 : -0xf.fffe4193a879p-4 : inexact-ok
+= tanh tonearest dbl-64 -0x7p+0 : -0xf.fffe4193a879p-4 : inexact-ok
+= tanh towardzero dbl-64 -0x7p+0 : -0xf.fffe4193a8788p-4 : inexact-ok
+= tanh upward dbl-64 -0x7p+0 : -0xf.fffe4193a8788p-4 : inexact-ok
+= tanh downward ldbl-96-intel -0x7p+0L : -0xf.fffe4193a878ed7p-4L : inexact-ok
+= tanh tonearest ldbl-96-intel -0x7p+0L : -0xf.fffe4193a878ed7p-4L : inexact-ok
+= tanh towardzero ldbl-96-intel -0x7p+0L : -0xf.fffe4193a878ed6p-4L : inexact-ok
+= tanh upward ldbl-96-intel -0x7p+0L : -0xf.fffe4193a878ed6p-4L : inexact-ok
+= tanh downward ldbl-96-m68k -0x7p+0L : -0xf.fffe4193a878ed7p-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k -0x7p+0L : -0xf.fffe4193a878ed7p-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k -0x7p+0L : -0xf.fffe4193a878ed6p-4L : inexact-ok
+= tanh upward ldbl-96-m68k -0x7p+0L : -0xf.fffe4193a878ed6p-4L : inexact-ok
+= tanh downward ldbl-128 -0x7p+0L : -0xf.fffe4193a878ed68e8057dafd2d8p-4L : inexact-ok
+= tanh tonearest ldbl-128 -0x7p+0L : -0xf.fffe4193a878ed68e8057dafd2dp-4L : inexact-ok
+= tanh towardzero ldbl-128 -0x7p+0L : -0xf.fffe4193a878ed68e8057dafd2dp-4L : inexact-ok
+= tanh upward ldbl-128 -0x7p+0L : -0xf.fffe4193a878ed68e8057dafd2dp-4L : inexact-ok
+= tanh downward ldbl-128ibm -0x7p+0L : -0xf.fffe4193a878ed68e8057dafd4p-4L : inexact-ok
+= tanh tonearest ldbl-128ibm -0x7p+0L : -0xf.fffe4193a878ed68e8057dafd4p-4L : inexact-ok
+= tanh towardzero ldbl-128ibm -0x7p+0L : -0xf.fffe4193a878ed68e8057dafdp-4L : inexact-ok
+= tanh upward ldbl-128ibm -0x7p+0L : -0xf.fffe4193a878ed68e8057dafdp-4L : inexact-ok
+tanh 8
+= tanh downward flt-32 0x8p+0f : 0xf.ffffcp-4f : inexact-ok
+= tanh tonearest flt-32 0x8p+0f : 0xf.ffffcp-4f : inexact-ok
+= tanh towardzero flt-32 0x8p+0f : 0xf.ffffcp-4f : inexact-ok
+= tanh upward flt-32 0x8p+0f : 0xf.ffffdp-4f : inexact-ok
+= tanh downward dbl-64 0x8p+0 : 0xf.ffffc39548fcp-4 : inexact-ok
+= tanh tonearest dbl-64 0x8p+0 : 0xf.ffffc39548fcp-4 : inexact-ok
+= tanh towardzero dbl-64 0x8p+0 : 0xf.ffffc39548fcp-4 : inexact-ok
+= tanh upward dbl-64 0x8p+0 : 0xf.ffffc39548fc8p-4 : inexact-ok
+= tanh downward ldbl-96-intel 0x8p+0L : 0xf.ffffc39548fc348p-4L : inexact-ok
+= tanh tonearest ldbl-96-intel 0x8p+0L : 0xf.ffffc39548fc348p-4L : inexact-ok
+= tanh towardzero ldbl-96-intel 0x8p+0L : 0xf.ffffc39548fc348p-4L : inexact-ok
+= tanh upward ldbl-96-intel 0x8p+0L : 0xf.ffffc39548fc349p-4L : inexact-ok
+= tanh downward ldbl-96-m68k 0x8p+0L : 0xf.ffffc39548fc348p-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k 0x8p+0L : 0xf.ffffc39548fc348p-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k 0x8p+0L : 0xf.ffffc39548fc348p-4L : inexact-ok
+= tanh upward ldbl-96-m68k 0x8p+0L : 0xf.ffffc39548fc349p-4L : inexact-ok
+= tanh downward ldbl-128 0x8p+0L : 0xf.ffffc39548fc3487707369d6c57p-4L : inexact-ok
+= tanh tonearest ldbl-128 0x8p+0L : 0xf.ffffc39548fc3487707369d6c578p-4L : inexact-ok
+= tanh towardzero ldbl-128 0x8p+0L : 0xf.ffffc39548fc3487707369d6c57p-4L : inexact-ok
+= tanh upward ldbl-128 0x8p+0L : 0xf.ffffc39548fc3487707369d6c578p-4L : inexact-ok
+= tanh downward ldbl-128ibm 0x8p+0L : 0xf.ffffc39548fc3487707369d6c4p-4L : inexact-ok
+= tanh tonearest ldbl-128ibm 0x8p+0L : 0xf.ffffc39548fc3487707369d6c4p-4L : inexact-ok
+= tanh towardzero ldbl-128ibm 0x8p+0L : 0xf.ffffc39548fc3487707369d6c4p-4L : inexact-ok
+= tanh upward ldbl-128ibm 0x8p+0L : 0xf.ffffc39548fc3487707369d6c8p-4L : inexact-ok
+tanh -8
+= tanh downward flt-32 -0x8p+0f : -0xf.ffffdp-4f : inexact-ok
+= tanh tonearest flt-32 -0x8p+0f : -0xf.ffffcp-4f : inexact-ok
+= tanh towardzero flt-32 -0x8p+0f : -0xf.ffffcp-4f : inexact-ok
+= tanh upward flt-32 -0x8p+0f : -0xf.ffffcp-4f : inexact-ok
+= tanh downward dbl-64 -0x8p+0 : -0xf.ffffc39548fc8p-4 : inexact-ok
+= tanh tonearest dbl-64 -0x8p+0 : -0xf.ffffc39548fcp-4 : inexact-ok
+= tanh towardzero dbl-64 -0x8p+0 : -0xf.ffffc39548fcp-4 : inexact-ok
+= tanh upward dbl-64 -0x8p+0 : -0xf.ffffc39548fcp-4 : inexact-ok
+= tanh downward ldbl-96-intel -0x8p+0L : -0xf.ffffc39548fc349p-4L : inexact-ok
+= tanh tonearest ldbl-96-intel -0x8p+0L : -0xf.ffffc39548fc348p-4L : inexact-ok
+= tanh towardzero ldbl-96-intel -0x8p+0L : -0xf.ffffc39548fc348p-4L : inexact-ok
+= tanh upward ldbl-96-intel -0x8p+0L : -0xf.ffffc39548fc348p-4L : inexact-ok
+= tanh downward ldbl-96-m68k -0x8p+0L : -0xf.ffffc39548fc349p-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k -0x8p+0L : -0xf.ffffc39548fc348p-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k -0x8p+0L : -0xf.ffffc39548fc348p-4L : inexact-ok
+= tanh upward ldbl-96-m68k -0x8p+0L : -0xf.ffffc39548fc348p-4L : inexact-ok
+= tanh downward ldbl-128 -0x8p+0L : -0xf.ffffc39548fc3487707369d6c578p-4L : inexact-ok
+= tanh tonearest ldbl-128 -0x8p+0L : -0xf.ffffc39548fc3487707369d6c578p-4L : inexact-ok
+= tanh towardzero ldbl-128 -0x8p+0L : -0xf.ffffc39548fc3487707369d6c57p-4L : inexact-ok
+= tanh upward ldbl-128 -0x8p+0L : -0xf.ffffc39548fc3487707369d6c57p-4L : inexact-ok
+= tanh downward ldbl-128ibm -0x8p+0L : -0xf.ffffc39548fc3487707369d6c8p-4L : inexact-ok
+= tanh tonearest ldbl-128ibm -0x8p+0L : -0xf.ffffc39548fc3487707369d6c4p-4L : inexact-ok
+= tanh towardzero ldbl-128ibm -0x8p+0L : -0xf.ffffc39548fc3487707369d6c4p-4L : inexact-ok
+= tanh upward ldbl-128ibm -0x8p+0L : -0xf.ffffc39548fc3487707369d6c4p-4L : inexact-ok
+tanh 9
+= tanh downward flt-32 0x9p+0f : 0xf.fffffp-4f : inexact-ok
+= tanh tonearest flt-32 0x9p+0f : 0xf.fffffp-4f : inexact-ok
+= tanh towardzero flt-32 0x9p+0f : 0xf.fffffp-4f : inexact-ok
+= tanh upward flt-32 0x9p+0f : 0x1p+0f : inexact-ok
+= tanh downward dbl-64 0x9p+0 : 0xf.fffff7d2cebb8p-4 : inexact-ok
+= tanh tonearest dbl-64 0x9p+0 : 0xf.fffff7d2cebcp-4 : inexact-ok
+= tanh towardzero dbl-64 0x9p+0 : 0xf.fffff7d2cebb8p-4 : inexact-ok
+= tanh upward dbl-64 0x9p+0 : 0xf.fffff7d2cebcp-4 : inexact-ok
+= tanh downward ldbl-96-intel 0x9p+0L : 0xf.fffff7d2cebbe2p-4L : inexact-ok
+= tanh tonearest ldbl-96-intel 0x9p+0L : 0xf.fffff7d2cebbe21p-4L : inexact-ok
+= tanh towardzero ldbl-96-intel 0x9p+0L : 0xf.fffff7d2cebbe2p-4L : inexact-ok
+= tanh upward ldbl-96-intel 0x9p+0L : 0xf.fffff7d2cebbe21p-4L : inexact-ok
+= tanh downward ldbl-96-m68k 0x9p+0L : 0xf.fffff7d2cebbe2p-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k 0x9p+0L : 0xf.fffff7d2cebbe21p-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k 0x9p+0L : 0xf.fffff7d2cebbe2p-4L : inexact-ok
+= tanh upward ldbl-96-m68k 0x9p+0L : 0xf.fffff7d2cebbe21p-4L : inexact-ok
+= tanh downward ldbl-128 0x9p+0L : 0xf.fffff7d2cebbe208a50ed05e7168p-4L : inexact-ok
+= tanh tonearest ldbl-128 0x9p+0L : 0xf.fffff7d2cebbe208a50ed05e717p-4L : inexact-ok
+= tanh towardzero ldbl-128 0x9p+0L : 0xf.fffff7d2cebbe208a50ed05e7168p-4L : inexact-ok
+= tanh upward ldbl-128 0x9p+0L : 0xf.fffff7d2cebbe208a50ed05e717p-4L : inexact-ok
+= tanh downward ldbl-128ibm 0x9p+0L : 0xf.fffff7d2cebbe208a50ed05e7p-4L : inexact-ok
+= tanh tonearest ldbl-128ibm 0x9p+0L : 0xf.fffff7d2cebbe208a50ed05e7p-4L : inexact-ok
+= tanh towardzero ldbl-128ibm 0x9p+0L : 0xf.fffff7d2cebbe208a50ed05e7p-4L : inexact-ok
+= tanh upward ldbl-128ibm 0x9p+0L : 0xf.fffff7d2cebbe208a50ed05e74p-4L : inexact-ok
+tanh -9
+= tanh downward flt-32 -0x9p+0f : -0x1p+0f : inexact-ok
+= tanh tonearest flt-32 -0x9p+0f : -0xf.fffffp-4f : inexact-ok
+= tanh towardzero flt-32 -0x9p+0f : -0xf.fffffp-4f : inexact-ok
+= tanh upward flt-32 -0x9p+0f : -0xf.fffffp-4f : inexact-ok
+= tanh downward dbl-64 -0x9p+0 : -0xf.fffff7d2cebcp-4 : inexact-ok
+= tanh tonearest dbl-64 -0x9p+0 : -0xf.fffff7d2cebcp-4 : inexact-ok
+= tanh towardzero dbl-64 -0x9p+0 : -0xf.fffff7d2cebb8p-4 : inexact-ok
+= tanh upward dbl-64 -0x9p+0 : -0xf.fffff7d2cebb8p-4 : inexact-ok
+= tanh downward ldbl-96-intel -0x9p+0L : -0xf.fffff7d2cebbe21p-4L : inexact-ok
+= tanh tonearest ldbl-96-intel -0x9p+0L : -0xf.fffff7d2cebbe21p-4L : inexact-ok
+= tanh towardzero ldbl-96-intel -0x9p+0L : -0xf.fffff7d2cebbe2p-4L : inexact-ok
+= tanh upward ldbl-96-intel -0x9p+0L : -0xf.fffff7d2cebbe2p-4L : inexact-ok
+= tanh downward ldbl-96-m68k -0x9p+0L : -0xf.fffff7d2cebbe21p-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k -0x9p+0L : -0xf.fffff7d2cebbe21p-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k -0x9p+0L : -0xf.fffff7d2cebbe2p-4L : inexact-ok
+= tanh upward ldbl-96-m68k -0x9p+0L : -0xf.fffff7d2cebbe2p-4L : inexact-ok
+= tanh downward ldbl-128 -0x9p+0L : -0xf.fffff7d2cebbe208a50ed05e717p-4L : inexact-ok
+= tanh tonearest ldbl-128 -0x9p+0L : -0xf.fffff7d2cebbe208a50ed05e717p-4L : inexact-ok
+= tanh towardzero ldbl-128 -0x9p+0L : -0xf.fffff7d2cebbe208a50ed05e7168p-4L : inexact-ok
+= tanh upward ldbl-128 -0x9p+0L : -0xf.fffff7d2cebbe208a50ed05e7168p-4L : inexact-ok
+= tanh downward ldbl-128ibm -0x9p+0L : -0xf.fffff7d2cebbe208a50ed05e74p-4L : inexact-ok
+= tanh tonearest ldbl-128ibm -0x9p+0L : -0xf.fffff7d2cebbe208a50ed05e7p-4L : inexact-ok
+= tanh towardzero ldbl-128ibm -0x9p+0L : -0xf.fffff7d2cebbe208a50ed05e7p-4L : inexact-ok
+= tanh upward ldbl-128ibm -0x9p+0L : -0xf.fffff7d2cebbe208a50ed05e7p-4L : inexact-ok
+tanh 10
+= tanh downward flt-32 0xap+0f : 0xf.fffffp-4f : inexact-ok
+= tanh tonearest flt-32 0xap+0f : 0x1p+0f : inexact-ok
+= tanh towardzero flt-32 0xap+0f : 0xf.fffffp-4f : inexact-ok
+= tanh upward flt-32 0xap+0f : 0x1p+0f : inexact-ok
+= tanh downward dbl-64 0xap+0 : 0xf.fffffee4b79a8p-4 : inexact-ok
+= tanh tonearest dbl-64 0xap+0 : 0xf.fffffee4b79a8p-4 : inexact-ok
+= tanh towardzero dbl-64 0xap+0 : 0xf.fffffee4b79a8p-4 : inexact-ok
+= tanh upward dbl-64 0xap+0 : 0xf.fffffee4b79bp-4 : inexact-ok
+= tanh downward ldbl-96-intel 0xap+0L : 0xf.fffffee4b79aaa9p-4L : inexact-ok
+= tanh tonearest ldbl-96-intel 0xap+0L : 0xf.fffffee4b79aaa9p-4L : inexact-ok
+= tanh towardzero ldbl-96-intel 0xap+0L : 0xf.fffffee4b79aaa9p-4L : inexact-ok
+= tanh upward ldbl-96-intel 0xap+0L : 0xf.fffffee4b79aaaap-4L : inexact-ok
+= tanh downward ldbl-96-m68k 0xap+0L : 0xf.fffffee4b79aaa9p-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k 0xap+0L : 0xf.fffffee4b79aaa9p-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k 0xap+0L : 0xf.fffffee4b79aaa9p-4L : inexact-ok
+= tanh upward ldbl-96-m68k 0xap+0L : 0xf.fffffee4b79aaaap-4L : inexact-ok
+= tanh downward ldbl-128 0xap+0L : 0xf.fffffee4b79aaa94a2b616896898p-4L : inexact-ok
+= tanh tonearest ldbl-128 0xap+0L : 0xf.fffffee4b79aaa94a2b616896898p-4L : inexact-ok
+= tanh towardzero ldbl-128 0xap+0L : 0xf.fffffee4b79aaa94a2b616896898p-4L : inexact-ok
+= tanh upward ldbl-128 0xap+0L : 0xf.fffffee4b79aaa94a2b6168968ap-4L : inexact-ok
+= tanh downward ldbl-128ibm 0xap+0L : 0xf.fffffee4b79aaa94a2b6168968p-4L : inexact-ok
+= tanh tonearest ldbl-128ibm 0xap+0L : 0xf.fffffee4b79aaa94a2b6168968p-4L : inexact-ok
+= tanh towardzero ldbl-128ibm 0xap+0L : 0xf.fffffee4b79aaa94a2b6168968p-4L : inexact-ok
+= tanh upward ldbl-128ibm 0xap+0L : 0xf.fffffee4b79aaa94a2b616896cp-4L : inexact-ok
+tanh -10
+= tanh downward flt-32 -0xap+0f : -0x1p+0f : inexact-ok
+= tanh tonearest flt-32 -0xap+0f : -0x1p+0f : inexact-ok
+= tanh towardzero flt-32 -0xap+0f : -0xf.fffffp-4f : inexact-ok
+= tanh upward flt-32 -0xap+0f : -0xf.fffffp-4f : inexact-ok
+= tanh downward dbl-64 -0xap+0 : -0xf.fffffee4b79bp-4 : inexact-ok
+= tanh tonearest dbl-64 -0xap+0 : -0xf.fffffee4b79a8p-4 : inexact-ok
+= tanh towardzero dbl-64 -0xap+0 : -0xf.fffffee4b79a8p-4 : inexact-ok
+= tanh upward dbl-64 -0xap+0 : -0xf.fffffee4b79a8p-4 : inexact-ok
+= tanh downward ldbl-96-intel -0xap+0L : -0xf.fffffee4b79aaaap-4L : inexact-ok
+= tanh tonearest ldbl-96-intel -0xap+0L : -0xf.fffffee4b79aaa9p-4L : inexact-ok
+= tanh towardzero ldbl-96-intel -0xap+0L : -0xf.fffffee4b79aaa9p-4L : inexact-ok
+= tanh upward ldbl-96-intel -0xap+0L : -0xf.fffffee4b79aaa9p-4L : inexact-ok
+= tanh downward ldbl-96-m68k -0xap+0L : -0xf.fffffee4b79aaaap-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k -0xap+0L : -0xf.fffffee4b79aaa9p-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k -0xap+0L : -0xf.fffffee4b79aaa9p-4L : inexact-ok
+= tanh upward ldbl-96-m68k -0xap+0L : -0xf.fffffee4b79aaa9p-4L : inexact-ok
+= tanh downward ldbl-128 -0xap+0L : -0xf.fffffee4b79aaa94a2b6168968ap-4L : inexact-ok
+= tanh tonearest ldbl-128 -0xap+0L : -0xf.fffffee4b79aaa94a2b616896898p-4L : inexact-ok
+= tanh towardzero ldbl-128 -0xap+0L : -0xf.fffffee4b79aaa94a2b616896898p-4L : inexact-ok
+= tanh upward ldbl-128 -0xap+0L : -0xf.fffffee4b79aaa94a2b616896898p-4L : inexact-ok
+= tanh downward ldbl-128ibm -0xap+0L : -0xf.fffffee4b79aaa94a2b616896cp-4L : inexact-ok
+= tanh tonearest ldbl-128ibm -0xap+0L : -0xf.fffffee4b79aaa94a2b6168968p-4L : inexact-ok
+= tanh towardzero ldbl-128ibm -0xap+0L : -0xf.fffffee4b79aaa94a2b6168968p-4L : inexact-ok
+= tanh upward ldbl-128ibm -0xap+0L : -0xf.fffffee4b79aaa94a2b6168968p-4L : inexact-ok
+tanh 15
+= tanh downward flt-32 0xfp+0f : 0xf.fffffp-4f : inexact-ok
+= tanh tonearest flt-32 0xfp+0f : 0x1p+0f : inexact-ok
+= tanh towardzero flt-32 0xfp+0f : 0xf.fffffp-4f : inexact-ok
+= tanh upward flt-32 0xfp+0f : 0x1p+0f : inexact-ok
+= tanh downward dbl-64 0xfp+0 : 0xf.fffffffffcb5p-4 : inexact-ok
+= tanh tonearest dbl-64 0xfp+0 : 0xf.fffffffffcb5p-4 : inexact-ok
+= tanh towardzero dbl-64 0xfp+0 : 0xf.fffffffffcb5p-4 : inexact-ok
+= tanh upward dbl-64 0xfp+0 : 0xf.fffffffffcb58p-4 : inexact-ok
+= tanh downward ldbl-96-intel 0xfp+0L : 0xf.fffffffffcb523ep-4L : inexact-ok
+= tanh tonearest ldbl-96-intel 0xfp+0L : 0xf.fffffffffcb523ep-4L : inexact-ok
+= tanh towardzero ldbl-96-intel 0xfp+0L : 0xf.fffffffffcb523ep-4L : inexact-ok
+= tanh upward ldbl-96-intel 0xfp+0L : 0xf.fffffffffcb523fp-4L : inexact-ok
+= tanh downward ldbl-96-m68k 0xfp+0L : 0xf.fffffffffcb523ep-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k 0xfp+0L : 0xf.fffffffffcb523ep-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k 0xfp+0L : 0xf.fffffffffcb523ep-4L : inexact-ok
+= tanh upward ldbl-96-m68k 0xfp+0L : 0xf.fffffffffcb523fp-4L : inexact-ok
+= tanh downward ldbl-128 0xfp+0L : 0xf.fffffffffcb523e7aa70681dc268p-4L : inexact-ok
+= tanh tonearest ldbl-128 0xfp+0L : 0xf.fffffffffcb523e7aa70681dc27p-4L : inexact-ok
+= tanh towardzero ldbl-128 0xfp+0L : 0xf.fffffffffcb523e7aa70681dc268p-4L : inexact-ok
+= tanh upward ldbl-128 0xfp+0L : 0xf.fffffffffcb523e7aa70681dc27p-4L : inexact-ok
+= tanh downward ldbl-128ibm 0xfp+0L : 0xf.fffffffffcb523e7aa70681dcp-4L : inexact-ok
+= tanh tonearest ldbl-128ibm 0xfp+0L : 0xf.fffffffffcb523e7aa70681dc4p-4L : inexact-ok
+= tanh towardzero ldbl-128ibm 0xfp+0L : 0xf.fffffffffcb523e7aa70681dcp-4L : inexact-ok
+= tanh upward ldbl-128ibm 0xfp+0L : 0xf.fffffffffcb523e7aa70681dc4p-4L : inexact-ok
+tanh -15
+= tanh downward flt-32 -0xfp+0f : -0x1p+0f : inexact-ok
+= tanh tonearest flt-32 -0xfp+0f : -0x1p+0f : inexact-ok
+= tanh towardzero flt-32 -0xfp+0f : -0xf.fffffp-4f : inexact-ok
+= tanh upward flt-32 -0xfp+0f : -0xf.fffffp-4f : inexact-ok
+= tanh downward dbl-64 -0xfp+0 : -0xf.fffffffffcb58p-4 : inexact-ok
+= tanh tonearest dbl-64 -0xfp+0 : -0xf.fffffffffcb5p-4 : inexact-ok
+= tanh towardzero dbl-64 -0xfp+0 : -0xf.fffffffffcb5p-4 : inexact-ok
+= tanh upward dbl-64 -0xfp+0 : -0xf.fffffffffcb5p-4 : inexact-ok
+= tanh downward ldbl-96-intel -0xfp+0L : -0xf.fffffffffcb523fp-4L : inexact-ok
+= tanh tonearest ldbl-96-intel -0xfp+0L : -0xf.fffffffffcb523ep-4L : inexact-ok
+= tanh towardzero ldbl-96-intel -0xfp+0L : -0xf.fffffffffcb523ep-4L : inexact-ok
+= tanh upward ldbl-96-intel -0xfp+0L : -0xf.fffffffffcb523ep-4L : inexact-ok
+= tanh downward ldbl-96-m68k -0xfp+0L : -0xf.fffffffffcb523fp-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k -0xfp+0L : -0xf.fffffffffcb523ep-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k -0xfp+0L : -0xf.fffffffffcb523ep-4L : inexact-ok
+= tanh upward ldbl-96-m68k -0xfp+0L : -0xf.fffffffffcb523ep-4L : inexact-ok
+= tanh downward ldbl-128 -0xfp+0L : -0xf.fffffffffcb523e7aa70681dc27p-4L : inexact-ok
+= tanh tonearest ldbl-128 -0xfp+0L : -0xf.fffffffffcb523e7aa70681dc27p-4L : inexact-ok
+= tanh towardzero ldbl-128 -0xfp+0L : -0xf.fffffffffcb523e7aa70681dc268p-4L : inexact-ok
+= tanh upward ldbl-128 -0xfp+0L : -0xf.fffffffffcb523e7aa70681dc268p-4L : inexact-ok
+= tanh downward ldbl-128ibm -0xfp+0L : -0xf.fffffffffcb523e7aa70681dc4p-4L : inexact-ok
+= tanh tonearest ldbl-128ibm -0xfp+0L : -0xf.fffffffffcb523e7aa70681dc4p-4L : inexact-ok
+= tanh towardzero ldbl-128ibm -0xfp+0L : -0xf.fffffffffcb523e7aa70681dcp-4L : inexact-ok
+= tanh upward ldbl-128ibm -0xfp+0L : -0xf.fffffffffcb523e7aa70681dcp-4L : inexact-ok
+tanh 20
+= tanh downward flt-32 0x1.4p+4f : 0xf.fffffp-4f : inexact-ok
+= tanh tonearest flt-32 0x1.4p+4f : 0x1p+0f : inexact-ok
+= tanh towardzero flt-32 0x1.4p+4f : 0xf.fffffp-4f : inexact-ok
+= tanh upward flt-32 0x1.4p+4f : 0x1p+0f : inexact-ok
+= tanh downward dbl-64 0x1.4p+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= tanh tonearest dbl-64 0x1.4p+4 : 0x1p+0 : inexact-ok
+= tanh towardzero dbl-64 0x1.4p+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= tanh upward dbl-64 0x1.4p+4 : 0x1p+0 : inexact-ok
+= tanh downward ldbl-96-intel 0x1.4p+4L : 0xf.fffffffffffff63p-4L : inexact-ok
+= tanh tonearest ldbl-96-intel 0x1.4p+4L : 0xf.fffffffffffff63p-4L : inexact-ok
+= tanh towardzero ldbl-96-intel 0x1.4p+4L : 0xf.fffffffffffff63p-4L : inexact-ok
+= tanh upward ldbl-96-intel 0x1.4p+4L : 0xf.fffffffffffff64p-4L : inexact-ok
+= tanh downward ldbl-96-m68k 0x1.4p+4L : 0xf.fffffffffffff63p-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k 0x1.4p+4L : 0xf.fffffffffffff63p-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k 0x1.4p+4L : 0xf.fffffffffffff63p-4L : inexact-ok
+= tanh upward ldbl-96-m68k 0x1.4p+4L : 0xf.fffffffffffff64p-4L : inexact-ok
+= tanh downward ldbl-128 0x1.4p+4L : 0xf.fffffffffffff63436db3272ede8p-4L : inexact-ok
+= tanh tonearest ldbl-128 0x1.4p+4L : 0xf.fffffffffffff63436db3272edfp-4L : inexact-ok
+= tanh towardzero ldbl-128 0x1.4p+4L : 0xf.fffffffffffff63436db3272ede8p-4L : inexact-ok
+= tanh upward ldbl-128 0x1.4p+4L : 0xf.fffffffffffff63436db3272edfp-4L : inexact-ok
+= tanh downward ldbl-128ibm 0x1.4p+4L : 0xf.fffffffffffff63436db3272ecp-4L : inexact-ok
+= tanh tonearest ldbl-128ibm 0x1.4p+4L : 0xf.fffffffffffff63436db3272ecp-4L : inexact-ok
+= tanh towardzero ldbl-128ibm 0x1.4p+4L : 0xf.fffffffffffff63436db3272ecp-4L : inexact-ok
+= tanh upward ldbl-128ibm 0x1.4p+4L : 0xf.fffffffffffff63436db3272fp-4L : inexact-ok
+tanh -20
+= tanh downward flt-32 -0x1.4p+4f : -0x1p+0f : inexact-ok
+= tanh tonearest flt-32 -0x1.4p+4f : -0x1p+0f : inexact-ok
+= tanh towardzero flt-32 -0x1.4p+4f : -0xf.fffffp-4f : inexact-ok
+= tanh upward flt-32 -0x1.4p+4f : -0xf.fffffp-4f : inexact-ok
+= tanh downward dbl-64 -0x1.4p+4 : -0x1p+0 : inexact-ok
+= tanh tonearest dbl-64 -0x1.4p+4 : -0x1p+0 : inexact-ok
+= tanh towardzero dbl-64 -0x1.4p+4 : -0xf.ffffffffffff8p-4 : inexact-ok
+= tanh upward dbl-64 -0x1.4p+4 : -0xf.ffffffffffff8p-4 : inexact-ok
+= tanh downward ldbl-96-intel -0x1.4p+4L : -0xf.fffffffffffff64p-4L : inexact-ok
+= tanh tonearest ldbl-96-intel -0x1.4p+4L : -0xf.fffffffffffff63p-4L : inexact-ok
+= tanh towardzero ldbl-96-intel -0x1.4p+4L : -0xf.fffffffffffff63p-4L : inexact-ok
+= tanh upward ldbl-96-intel -0x1.4p+4L : -0xf.fffffffffffff63p-4L : inexact-ok
+= tanh downward ldbl-96-m68k -0x1.4p+4L : -0xf.fffffffffffff64p-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k -0x1.4p+4L : -0xf.fffffffffffff63p-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k -0x1.4p+4L : -0xf.fffffffffffff63p-4L : inexact-ok
+= tanh upward ldbl-96-m68k -0x1.4p+4L : -0xf.fffffffffffff63p-4L : inexact-ok
+= tanh downward ldbl-128 -0x1.4p+4L : -0xf.fffffffffffff63436db3272edfp-4L : inexact-ok
+= tanh tonearest ldbl-128 -0x1.4p+4L : -0xf.fffffffffffff63436db3272edfp-4L : inexact-ok
+= tanh towardzero ldbl-128 -0x1.4p+4L : -0xf.fffffffffffff63436db3272ede8p-4L : inexact-ok
+= tanh upward ldbl-128 -0x1.4p+4L : -0xf.fffffffffffff63436db3272ede8p-4L : inexact-ok
+= tanh downward ldbl-128ibm -0x1.4p+4L : -0xf.fffffffffffff63436db3272fp-4L : inexact-ok
+= tanh tonearest ldbl-128ibm -0x1.4p+4L : -0xf.fffffffffffff63436db3272ecp-4L : inexact-ok
+= tanh towardzero ldbl-128ibm -0x1.4p+4L : -0xf.fffffffffffff63436db3272ecp-4L : inexact-ok
+= tanh upward ldbl-128ibm -0x1.4p+4L : -0xf.fffffffffffff63436db3272ecp-4L : inexact-ok
+tanh 22
+= tanh downward flt-32 0x1.6p+4f : 0xf.fffffp-4f : inexact-ok
+= tanh tonearest flt-32 0x1.6p+4f : 0x1p+0f : inexact-ok
+= tanh towardzero flt-32 0x1.6p+4f : 0xf.fffffp-4f : inexact-ok
+= tanh upward flt-32 0x1.6p+4f : 0x1p+0f : inexact-ok
+= tanh downward dbl-64 0x1.6p+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= tanh tonearest dbl-64 0x1.6p+4 : 0x1p+0 : inexact-ok
+= tanh towardzero dbl-64 0x1.6p+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= tanh upward dbl-64 0x1.6p+4 : 0x1p+0 : inexact-ok
+= tanh downward ldbl-96-intel 0x1.6p+4L : 0xf.ffffffffffffffdp-4L : inexact-ok
+= tanh tonearest ldbl-96-intel 0x1.6p+4L : 0xf.ffffffffffffffdp-4L : inexact-ok
+= tanh towardzero ldbl-96-intel 0x1.6p+4L : 0xf.ffffffffffffffdp-4L : inexact-ok
+= tanh upward ldbl-96-intel 0x1.6p+4L : 0xf.ffffffffffffffep-4L : inexact-ok
+= tanh downward ldbl-96-m68k 0x1.6p+4L : 0xf.ffffffffffffffdp-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k 0x1.6p+4L : 0xf.ffffffffffffffdp-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k 0x1.6p+4L : 0xf.ffffffffffffffdp-4L : inexact-ok
+= tanh upward ldbl-96-m68k 0x1.6p+4L : 0xf.ffffffffffffffep-4L : inexact-ok
+= tanh downward ldbl-128 0x1.6p+4L : 0xf.ffffffffffffffd2117c43d16e28p-4L : inexact-ok
+= tanh tonearest ldbl-128 0x1.6p+4L : 0xf.ffffffffffffffd2117c43d16e28p-4L : inexact-ok
+= tanh towardzero ldbl-128 0x1.6p+4L : 0xf.ffffffffffffffd2117c43d16e28p-4L : inexact-ok
+= tanh upward ldbl-128 0x1.6p+4L : 0xf.ffffffffffffffd2117c43d16e3p-4L : inexact-ok
+= tanh downward ldbl-128ibm 0x1.6p+4L : 0xf.ffffffffffffffd2117c43d16cp-4L : inexact-ok
+= tanh tonearest ldbl-128ibm 0x1.6p+4L : 0xf.ffffffffffffffd2117c43d17p-4L : inexact-ok
+= tanh towardzero ldbl-128ibm 0x1.6p+4L : 0xf.ffffffffffffffd2117c43d16cp-4L : inexact-ok
+= tanh upward ldbl-128ibm 0x1.6p+4L : 0xf.ffffffffffffffd2117c43d17p-4L : inexact-ok
+tanh -22
+= tanh downward flt-32 -0x1.6p+4f : -0x1p+0f : inexact-ok
+= tanh tonearest flt-32 -0x1.6p+4f : -0x1p+0f : inexact-ok
+= tanh towardzero flt-32 -0x1.6p+4f : -0xf.fffffp-4f : inexact-ok
+= tanh upward flt-32 -0x1.6p+4f : -0xf.fffffp-4f : inexact-ok
+= tanh downward dbl-64 -0x1.6p+4 : -0x1p+0 : inexact-ok
+= tanh tonearest dbl-64 -0x1.6p+4 : -0x1p+0 : inexact-ok
+= tanh towardzero dbl-64 -0x1.6p+4 : -0xf.ffffffffffff8p-4 : inexact-ok
+= tanh upward dbl-64 -0x1.6p+4 : -0xf.ffffffffffff8p-4 : inexact-ok
+= tanh downward ldbl-96-intel -0x1.6p+4L : -0xf.ffffffffffffffep-4L : inexact-ok
+= tanh tonearest ldbl-96-intel -0x1.6p+4L : -0xf.ffffffffffffffdp-4L : inexact-ok
+= tanh towardzero ldbl-96-intel -0x1.6p+4L : -0xf.ffffffffffffffdp-4L : inexact-ok
+= tanh upward ldbl-96-intel -0x1.6p+4L : -0xf.ffffffffffffffdp-4L : inexact-ok
+= tanh downward ldbl-96-m68k -0x1.6p+4L : -0xf.ffffffffffffffep-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k -0x1.6p+4L : -0xf.ffffffffffffffdp-4L : inexact-ok
+= tanh towardzero ldbl-96-m68k -0x1.6p+4L : -0xf.ffffffffffffffdp-4L : inexact-ok
+= tanh upward ldbl-96-m68k -0x1.6p+4L : -0xf.ffffffffffffffdp-4L : inexact-ok
+= tanh downward ldbl-128 -0x1.6p+4L : -0xf.ffffffffffffffd2117c43d16e3p-4L : inexact-ok
+= tanh tonearest ldbl-128 -0x1.6p+4L : -0xf.ffffffffffffffd2117c43d16e28p-4L : inexact-ok
+= tanh towardzero ldbl-128 -0x1.6p+4L : -0xf.ffffffffffffffd2117c43d16e28p-4L : inexact-ok
+= tanh upward ldbl-128 -0x1.6p+4L : -0xf.ffffffffffffffd2117c43d16e28p-4L : inexact-ok
+= tanh downward ldbl-128ibm -0x1.6p+4L : -0xf.ffffffffffffffd2117c43d17p-4L : inexact-ok
+= tanh tonearest ldbl-128ibm -0x1.6p+4L : -0xf.ffffffffffffffd2117c43d17p-4L : inexact-ok
+= tanh towardzero ldbl-128ibm -0x1.6p+4L : -0xf.ffffffffffffffd2117c43d16cp-4L : inexact-ok
+= tanh upward ldbl-128ibm -0x1.6p+4L : -0xf.ffffffffffffffd2117c43d16cp-4L : inexact-ok
+tanh 25
+= tanh downward flt-32 0x1.9p+4f : 0xf.fffffp-4f : inexact-ok
+= tanh tonearest flt-32 0x1.9p+4f : 0x1p+0f : inexact-ok
+= tanh towardzero flt-32 0x1.9p+4f : 0xf.fffffp-4f : inexact-ok
+= tanh upward flt-32 0x1.9p+4f : 0x1p+0f : inexact-ok
+= tanh downward dbl-64 0x1.9p+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= tanh tonearest dbl-64 0x1.9p+4 : 0x1p+0 : inexact-ok
+= tanh towardzero dbl-64 0x1.9p+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= tanh upward dbl-64 0x1.9p+4 : 0x1p+0 : inexact-ok
+= tanh downward ldbl-96-intel 0x1.9p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh tonearest ldbl-96-intel 0x1.9p+4L : 0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-intel 0x1.9p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-intel 0x1.9p+4L : 0x1p+0L : inexact-ok
+= tanh downward ldbl-96-m68k 0x1.9p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k 0x1.9p+4L : 0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-m68k 0x1.9p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-m68k 0x1.9p+4L : 0x1p+0L : inexact-ok
+= tanh downward ldbl-128 0x1.9p+4L : 0xf.ffffffffffffffffe2da82ab81fp-4L : inexact-ok
+= tanh tonearest ldbl-128 0x1.9p+4L : 0xf.ffffffffffffffffe2da82ab81f8p-4L : inexact-ok
+= tanh towardzero ldbl-128 0x1.9p+4L : 0xf.ffffffffffffffffe2da82ab81fp-4L : inexact-ok
+= tanh upward ldbl-128 0x1.9p+4L : 0xf.ffffffffffffffffe2da82ab81f8p-4L : inexact-ok
+= tanh downward ldbl-128ibm 0x1.9p+4L : 0xf.ffffffffffffffffe2da82ab8p-4L : inexact-ok
+= tanh tonearest ldbl-128ibm 0x1.9p+4L : 0xf.ffffffffffffffffe2da82ab8p-4L : inexact-ok
+= tanh towardzero ldbl-128ibm 0x1.9p+4L : 0xf.ffffffffffffffffe2da82ab8p-4L : inexact-ok
+= tanh upward ldbl-128ibm 0x1.9p+4L : 0xf.ffffffffffffffffe2da82ab84p-4L : inexact-ok
+tanh -25
+= tanh downward flt-32 -0x1.9p+4f : -0x1p+0f : inexact-ok
+= tanh tonearest flt-32 -0x1.9p+4f : -0x1p+0f : inexact-ok
+= tanh towardzero flt-32 -0x1.9p+4f : -0xf.fffffp-4f : inexact-ok
+= tanh upward flt-32 -0x1.9p+4f : -0xf.fffffp-4f : inexact-ok
+= tanh downward dbl-64 -0x1.9p+4 : -0x1p+0 : inexact-ok
+= tanh tonearest dbl-64 -0x1.9p+4 : -0x1p+0 : inexact-ok
+= tanh towardzero dbl-64 -0x1.9p+4 : -0xf.ffffffffffff8p-4 : inexact-ok
+= tanh upward dbl-64 -0x1.9p+4 : -0xf.ffffffffffff8p-4 : inexact-ok
+= tanh downward ldbl-96-intel -0x1.9p+4L : -0x1p+0L : inexact-ok
+= tanh tonearest ldbl-96-intel -0x1.9p+4L : -0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-intel -0x1.9p+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-intel -0x1.9p+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh downward ldbl-96-m68k -0x1.9p+4L : -0x1p+0L : inexact-ok
+= tanh tonearest ldbl-96-m68k -0x1.9p+4L : -0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-m68k -0x1.9p+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-m68k -0x1.9p+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh downward ldbl-128 -0x1.9p+4L : -0xf.ffffffffffffffffe2da82ab81f8p-4L : inexact-ok
+= tanh tonearest ldbl-128 -0x1.9p+4L : -0xf.ffffffffffffffffe2da82ab81f8p-4L : inexact-ok
+= tanh towardzero ldbl-128 -0x1.9p+4L : -0xf.ffffffffffffffffe2da82ab81fp-4L : inexact-ok
+= tanh upward ldbl-128 -0x1.9p+4L : -0xf.ffffffffffffffffe2da82ab81fp-4L : inexact-ok
+= tanh downward ldbl-128ibm -0x1.9p+4L : -0xf.ffffffffffffffffe2da82ab84p-4L : inexact-ok
+= tanh tonearest ldbl-128ibm -0x1.9p+4L : -0xf.ffffffffffffffffe2da82ab8p-4L : inexact-ok
+= tanh towardzero ldbl-128ibm -0x1.9p+4L : -0xf.ffffffffffffffffe2da82ab8p-4L : inexact-ok
+= tanh upward ldbl-128ibm -0x1.9p+4L : -0xf.ffffffffffffffffe2da82ab8p-4L : inexact-ok
+tanh 30
+= tanh downward flt-32 0x1.ep+4f : 0xf.fffffp-4f : inexact-ok
+= tanh tonearest flt-32 0x1.ep+4f : 0x1p+0f : inexact-ok
+= tanh towardzero flt-32 0x1.ep+4f : 0xf.fffffp-4f : inexact-ok
+= tanh upward flt-32 0x1.ep+4f : 0x1p+0f : inexact-ok
+= tanh downward dbl-64 0x1.ep+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= tanh tonearest dbl-64 0x1.ep+4 : 0x1p+0 : inexact-ok
+= tanh towardzero dbl-64 0x1.ep+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= tanh upward dbl-64 0x1.ep+4 : 0x1p+0 : inexact-ok
+= tanh downward ldbl-96-intel 0x1.ep+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh tonearest ldbl-96-intel 0x1.ep+4L : 0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-intel 0x1.ep+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-intel 0x1.ep+4L : 0x1p+0L : inexact-ok
+= tanh downward ldbl-96-m68k 0x1.ep+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k 0x1.ep+4L : 0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-m68k 0x1.ep+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-m68k 0x1.ep+4L : 0x1p+0L : inexact-ok
+= tanh downward ldbl-128 0x1.ep+4L : 0xf.ffffffffffffffffffffa9479b9p-4L : inexact-ok
+= tanh tonearest ldbl-128 0x1.ep+4L : 0xf.ffffffffffffffffffffa9479b98p-4L : inexact-ok
+= tanh towardzero ldbl-128 0x1.ep+4L : 0xf.ffffffffffffffffffffa9479b9p-4L : inexact-ok
+= tanh upward ldbl-128 0x1.ep+4L : 0xf.ffffffffffffffffffffa9479b98p-4L : inexact-ok
+= tanh downward ldbl-128ibm 0x1.ep+4L : 0xf.ffffffffffffffffffffa94798p-4L : inexact-ok
+= tanh tonearest ldbl-128ibm 0x1.ep+4L : 0xf.ffffffffffffffffffffa9479cp-4L : inexact-ok
+= tanh towardzero ldbl-128ibm 0x1.ep+4L : 0xf.ffffffffffffffffffffa94798p-4L : inexact-ok
+= tanh upward ldbl-128ibm 0x1.ep+4L : 0xf.ffffffffffffffffffffa9479cp-4L : inexact-ok
+tanh -30
+= tanh downward flt-32 -0x1.ep+4f : -0x1p+0f : inexact-ok
+= tanh tonearest flt-32 -0x1.ep+4f : -0x1p+0f : inexact-ok
+= tanh towardzero flt-32 -0x1.ep+4f : -0xf.fffffp-4f : inexact-ok
+= tanh upward flt-32 -0x1.ep+4f : -0xf.fffffp-4f : inexact-ok
+= tanh downward dbl-64 -0x1.ep+4 : -0x1p+0 : inexact-ok
+= tanh tonearest dbl-64 -0x1.ep+4 : -0x1p+0 : inexact-ok
+= tanh towardzero dbl-64 -0x1.ep+4 : -0xf.ffffffffffff8p-4 : inexact-ok
+= tanh upward dbl-64 -0x1.ep+4 : -0xf.ffffffffffff8p-4 : inexact-ok
+= tanh downward ldbl-96-intel -0x1.ep+4L : -0x1p+0L : inexact-ok
+= tanh tonearest ldbl-96-intel -0x1.ep+4L : -0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-intel -0x1.ep+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-intel -0x1.ep+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh downward ldbl-96-m68k -0x1.ep+4L : -0x1p+0L : inexact-ok
+= tanh tonearest ldbl-96-m68k -0x1.ep+4L : -0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-m68k -0x1.ep+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-m68k -0x1.ep+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh downward ldbl-128 -0x1.ep+4L : -0xf.ffffffffffffffffffffa9479b98p-4L : inexact-ok
+= tanh tonearest ldbl-128 -0x1.ep+4L : -0xf.ffffffffffffffffffffa9479b98p-4L : inexact-ok
+= tanh towardzero ldbl-128 -0x1.ep+4L : -0xf.ffffffffffffffffffffa9479b9p-4L : inexact-ok
+= tanh upward ldbl-128 -0x1.ep+4L : -0xf.ffffffffffffffffffffa9479b9p-4L : inexact-ok
+= tanh downward ldbl-128ibm -0x1.ep+4L : -0xf.ffffffffffffffffffffa9479cp-4L : inexact-ok
+= tanh tonearest ldbl-128ibm -0x1.ep+4L : -0xf.ffffffffffffffffffffa9479cp-4L : inexact-ok
+= tanh towardzero ldbl-128ibm -0x1.ep+4L : -0xf.ffffffffffffffffffffa94798p-4L : inexact-ok
+= tanh upward ldbl-128ibm -0x1.ep+4L : -0xf.ffffffffffffffffffffa94798p-4L : inexact-ok
+tanh 35
+= tanh downward flt-32 0x2.3p+4f : 0xf.fffffp-4f : inexact-ok
+= tanh tonearest flt-32 0x2.3p+4f : 0x1p+0f : inexact-ok
+= tanh towardzero flt-32 0x2.3p+4f : 0xf.fffffp-4f : inexact-ok
+= tanh upward flt-32 0x2.3p+4f : 0x1p+0f : inexact-ok
+= tanh downward dbl-64 0x2.3p+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= tanh tonearest dbl-64 0x2.3p+4 : 0x1p+0 : inexact-ok
+= tanh towardzero dbl-64 0x2.3p+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= tanh upward dbl-64 0x2.3p+4 : 0x1p+0 : inexact-ok
+= tanh downward ldbl-96-intel 0x2.3p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh tonearest ldbl-96-intel 0x2.3p+4L : 0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-intel 0x2.3p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-intel 0x2.3p+4L : 0x1p+0L : inexact-ok
+= tanh downward ldbl-96-m68k 0x2.3p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k 0x2.3p+4L : 0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-m68k 0x2.3p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-m68k 0x2.3p+4L : 0x1p+0L : inexact-ok
+= tanh downward ldbl-128 0x2.3p+4L : 0xf.fffffffffffffffffffffffefdf8p-4L : inexact-ok
+= tanh tonearest ldbl-128 0x2.3p+4L : 0xf.fffffffffffffffffffffffefdf8p-4L : inexact-ok
+= tanh towardzero ldbl-128 0x2.3p+4L : 0xf.fffffffffffffffffffffffefdf8p-4L : inexact-ok
+= tanh upward ldbl-128 0x2.3p+4L : 0xf.fffffffffffffffffffffffefep-4L : inexact-ok
+= tanh downward ldbl-128ibm 0x2.3p+4L : 0xf.fffffffffffffffffffffffefcp-4L : inexact-ok
+= tanh tonearest ldbl-128ibm 0x2.3p+4L : 0xf.fffffffffffffffffffffffefcp-4L : inexact-ok
+= tanh towardzero ldbl-128ibm 0x2.3p+4L : 0xf.fffffffffffffffffffffffefcp-4L : inexact-ok
+= tanh upward ldbl-128ibm 0x2.3p+4L : 0xf.ffffffffffffffffffffffffp-4L : inexact-ok
+tanh -35
+= tanh downward flt-32 -0x2.3p+4f : -0x1p+0f : inexact-ok
+= tanh tonearest flt-32 -0x2.3p+4f : -0x1p+0f : inexact-ok
+= tanh towardzero flt-32 -0x2.3p+4f : -0xf.fffffp-4f : inexact-ok
+= tanh upward flt-32 -0x2.3p+4f : -0xf.fffffp-4f : inexact-ok
+= tanh downward dbl-64 -0x2.3p+4 : -0x1p+0 : inexact-ok
+= tanh tonearest dbl-64 -0x2.3p+4 : -0x1p+0 : inexact-ok
+= tanh towardzero dbl-64 -0x2.3p+4 : -0xf.ffffffffffff8p-4 : inexact-ok
+= tanh upward dbl-64 -0x2.3p+4 : -0xf.ffffffffffff8p-4 : inexact-ok
+= tanh downward ldbl-96-intel -0x2.3p+4L : -0x1p+0L : inexact-ok
+= tanh tonearest ldbl-96-intel -0x2.3p+4L : -0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-intel -0x2.3p+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-intel -0x2.3p+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh downward ldbl-96-m68k -0x2.3p+4L : -0x1p+0L : inexact-ok
+= tanh tonearest ldbl-96-m68k -0x2.3p+4L : -0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-m68k -0x2.3p+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-m68k -0x2.3p+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh downward ldbl-128 -0x2.3p+4L : -0xf.fffffffffffffffffffffffefep-4L : inexact-ok
+= tanh tonearest ldbl-128 -0x2.3p+4L : -0xf.fffffffffffffffffffffffefdf8p-4L : inexact-ok
+= tanh towardzero ldbl-128 -0x2.3p+4L : -0xf.fffffffffffffffffffffffefdf8p-4L : inexact-ok
+= tanh upward ldbl-128 -0x2.3p+4L : -0xf.fffffffffffffffffffffffefdf8p-4L : inexact-ok
+= tanh downward ldbl-128ibm -0x2.3p+4L : -0xf.ffffffffffffffffffffffffp-4L : inexact-ok
+= tanh tonearest ldbl-128ibm -0x2.3p+4L : -0xf.fffffffffffffffffffffffefcp-4L : inexact-ok
+= tanh towardzero ldbl-128ibm -0x2.3p+4L : -0xf.fffffffffffffffffffffffefcp-4L : inexact-ok
+= tanh upward ldbl-128ibm -0x2.3p+4L : -0xf.fffffffffffffffffffffffefcp-4L : inexact-ok
+tanh 40
+= tanh downward flt-32 0x2.8p+4f : 0xf.fffffp-4f : inexact-ok
+= tanh tonearest flt-32 0x2.8p+4f : 0x1p+0f : inexact-ok
+= tanh towardzero flt-32 0x2.8p+4f : 0xf.fffffp-4f : inexact-ok
+= tanh upward flt-32 0x2.8p+4f : 0x1p+0f : inexact-ok
+= tanh downward dbl-64 0x2.8p+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= tanh tonearest dbl-64 0x2.8p+4 : 0x1p+0 : inexact-ok
+= tanh towardzero dbl-64 0x2.8p+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= tanh upward dbl-64 0x2.8p+4 : 0x1p+0 : inexact-ok
+= tanh downward ldbl-96-intel 0x2.8p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh tonearest ldbl-96-intel 0x2.8p+4L : 0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-intel 0x2.8p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-intel 0x2.8p+4L : 0x1p+0L : inexact-ok
+= tanh downward ldbl-96-m68k 0x2.8p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k 0x2.8p+4L : 0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-m68k 0x2.8p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-m68k 0x2.8p+4L : 0x1p+0L : inexact-ok
+= tanh downward ldbl-128 0x2.8p+4L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= tanh tonearest ldbl-128 0x2.8p+4L : 0x1p+0L : inexact-ok
+= tanh towardzero ldbl-128 0x2.8p+4L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= tanh upward ldbl-128 0x2.8p+4L : 0x1p+0L : inexact-ok
+= tanh downward ldbl-128ibm 0x2.8p+4L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= tanh tonearest ldbl-128ibm 0x2.8p+4L : 0x1p+0L : inexact-ok
+= tanh towardzero ldbl-128ibm 0x2.8p+4L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= tanh upward ldbl-128ibm 0x2.8p+4L : 0x1p+0L : inexact-ok
+tanh -40
+= tanh downward flt-32 -0x2.8p+4f : -0x1p+0f : inexact-ok
+= tanh tonearest flt-32 -0x2.8p+4f : -0x1p+0f : inexact-ok
+= tanh towardzero flt-32 -0x2.8p+4f : -0xf.fffffp-4f : inexact-ok
+= tanh upward flt-32 -0x2.8p+4f : -0xf.fffffp-4f : inexact-ok
+= tanh downward dbl-64 -0x2.8p+4 : -0x1p+0 : inexact-ok
+= tanh tonearest dbl-64 -0x2.8p+4 : -0x1p+0 : inexact-ok
+= tanh towardzero dbl-64 -0x2.8p+4 : -0xf.ffffffffffff8p-4 : inexact-ok
+= tanh upward dbl-64 -0x2.8p+4 : -0xf.ffffffffffff8p-4 : inexact-ok
+= tanh downward ldbl-96-intel -0x2.8p+4L : -0x1p+0L : inexact-ok
+= tanh tonearest ldbl-96-intel -0x2.8p+4L : -0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-intel -0x2.8p+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-intel -0x2.8p+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh downward ldbl-96-m68k -0x2.8p+4L : -0x1p+0L : inexact-ok
+= tanh tonearest ldbl-96-m68k -0x2.8p+4L : -0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-m68k -0x2.8p+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-m68k -0x2.8p+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh downward ldbl-128 -0x2.8p+4L : -0x1p+0L : inexact-ok
+= tanh tonearest ldbl-128 -0x2.8p+4L : -0x1p+0L : inexact-ok
+= tanh towardzero ldbl-128 -0x2.8p+4L : -0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= tanh upward ldbl-128 -0x2.8p+4L : -0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= tanh downward ldbl-128ibm -0x2.8p+4L : -0x1p+0L : inexact-ok
+= tanh tonearest ldbl-128ibm -0x2.8p+4L : -0x1p+0L : inexact-ok
+= tanh towardzero ldbl-128ibm -0x2.8p+4L : -0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= tanh upward ldbl-128ibm -0x2.8p+4L : -0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+tanh 45
+= tanh downward flt-32 0x2.dp+4f : 0xf.fffffp-4f : inexact-ok
+= tanh tonearest flt-32 0x2.dp+4f : 0x1p+0f : inexact-ok
+= tanh towardzero flt-32 0x2.dp+4f : 0xf.fffffp-4f : inexact-ok
+= tanh upward flt-32 0x2.dp+4f : 0x1p+0f : inexact-ok
+= tanh downward dbl-64 0x2.dp+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= tanh tonearest dbl-64 0x2.dp+4 : 0x1p+0 : inexact-ok
+= tanh towardzero dbl-64 0x2.dp+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= tanh upward dbl-64 0x2.dp+4 : 0x1p+0 : inexact-ok
+= tanh downward ldbl-96-intel 0x2.dp+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh tonearest ldbl-96-intel 0x2.dp+4L : 0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-intel 0x2.dp+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-intel 0x2.dp+4L : 0x1p+0L : inexact-ok
+= tanh downward ldbl-96-m68k 0x2.dp+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k 0x2.dp+4L : 0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-m68k 0x2.dp+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-m68k 0x2.dp+4L : 0x1p+0L : inexact-ok
+= tanh downward ldbl-128 0x2.dp+4L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= tanh tonearest ldbl-128 0x2.dp+4L : 0x1p+0L : inexact-ok
+= tanh towardzero ldbl-128 0x2.dp+4L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= tanh upward ldbl-128 0x2.dp+4L : 0x1p+0L : inexact-ok
+= tanh downward ldbl-128ibm 0x2.dp+4L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= tanh tonearest ldbl-128ibm 0x2.dp+4L : 0x1p+0L : inexact-ok
+= tanh towardzero ldbl-128ibm 0x2.dp+4L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= tanh upward ldbl-128ibm 0x2.dp+4L : 0x1p+0L : inexact-ok
+tanh -45
+= tanh downward flt-32 -0x2.dp+4f : -0x1p+0f : inexact-ok
+= tanh tonearest flt-32 -0x2.dp+4f : -0x1p+0f : inexact-ok
+= tanh towardzero flt-32 -0x2.dp+4f : -0xf.fffffp-4f : inexact-ok
+= tanh upward flt-32 -0x2.dp+4f : -0xf.fffffp-4f : inexact-ok
+= tanh downward dbl-64 -0x2.dp+4 : -0x1p+0 : inexact-ok
+= tanh tonearest dbl-64 -0x2.dp+4 : -0x1p+0 : inexact-ok
+= tanh towardzero dbl-64 -0x2.dp+4 : -0xf.ffffffffffff8p-4 : inexact-ok
+= tanh upward dbl-64 -0x2.dp+4 : -0xf.ffffffffffff8p-4 : inexact-ok
+= tanh downward ldbl-96-intel -0x2.dp+4L : -0x1p+0L : inexact-ok
+= tanh tonearest ldbl-96-intel -0x2.dp+4L : -0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-intel -0x2.dp+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-intel -0x2.dp+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh downward ldbl-96-m68k -0x2.dp+4L : -0x1p+0L : inexact-ok
+= tanh tonearest ldbl-96-m68k -0x2.dp+4L : -0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-m68k -0x2.dp+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-m68k -0x2.dp+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh downward ldbl-128 -0x2.dp+4L : -0x1p+0L : inexact-ok
+= tanh tonearest ldbl-128 -0x2.dp+4L : -0x1p+0L : inexact-ok
+= tanh towardzero ldbl-128 -0x2.dp+4L : -0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= tanh upward ldbl-128 -0x2.dp+4L : -0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= tanh downward ldbl-128ibm -0x2.dp+4L : -0x1p+0L : inexact-ok
+= tanh tonearest ldbl-128ibm -0x2.dp+4L : -0x1p+0L : inexact-ok
+= tanh towardzero ldbl-128ibm -0x2.dp+4L : -0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= tanh upward ldbl-128ibm -0x2.dp+4L : -0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+tanh 50
+= tanh downward flt-32 0x3.2p+4f : 0xf.fffffp-4f : inexact-ok
+= tanh tonearest flt-32 0x3.2p+4f : 0x1p+0f : inexact-ok
+= tanh towardzero flt-32 0x3.2p+4f : 0xf.fffffp-4f : inexact-ok
+= tanh upward flt-32 0x3.2p+4f : 0x1p+0f : inexact-ok
+= tanh downward dbl-64 0x3.2p+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= tanh tonearest dbl-64 0x3.2p+4 : 0x1p+0 : inexact-ok
+= tanh towardzero dbl-64 0x3.2p+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= tanh upward dbl-64 0x3.2p+4 : 0x1p+0 : inexact-ok
+= tanh downward ldbl-96-intel 0x3.2p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh tonearest ldbl-96-intel 0x3.2p+4L : 0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-intel 0x3.2p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-intel 0x3.2p+4L : 0x1p+0L : inexact-ok
+= tanh downward ldbl-96-m68k 0x3.2p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh tonearest ldbl-96-m68k 0x3.2p+4L : 0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-m68k 0x3.2p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-m68k 0x3.2p+4L : 0x1p+0L : inexact-ok
+= tanh downward ldbl-128 0x3.2p+4L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= tanh tonearest ldbl-128 0x3.2p+4L : 0x1p+0L : inexact-ok
+= tanh towardzero ldbl-128 0x3.2p+4L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= tanh upward ldbl-128 0x3.2p+4L : 0x1p+0L : inexact-ok
+= tanh downward ldbl-128ibm 0x3.2p+4L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= tanh tonearest ldbl-128ibm 0x3.2p+4L : 0x1p+0L : inexact-ok
+= tanh towardzero ldbl-128ibm 0x3.2p+4L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= tanh upward ldbl-128ibm 0x3.2p+4L : 0x1p+0L : inexact-ok
+tanh -50
+= tanh downward flt-32 -0x3.2p+4f : -0x1p+0f : inexact-ok
+= tanh tonearest flt-32 -0x3.2p+4f : -0x1p+0f : inexact-ok
+= tanh towardzero flt-32 -0x3.2p+4f : -0xf.fffffp-4f : inexact-ok
+= tanh upward flt-32 -0x3.2p+4f : -0xf.fffffp-4f : inexact-ok
+= tanh downward dbl-64 -0x3.2p+4 : -0x1p+0 : inexact-ok
+= tanh tonearest dbl-64 -0x3.2p+4 : -0x1p+0 : inexact-ok
+= tanh towardzero dbl-64 -0x3.2p+4 : -0xf.ffffffffffff8p-4 : inexact-ok
+= tanh upward dbl-64 -0x3.2p+4 : -0xf.ffffffffffff8p-4 : inexact-ok
+= tanh downward ldbl-96-intel -0x3.2p+4L : -0x1p+0L : inexact-ok
+= tanh tonearest ldbl-96-intel -0x3.2p+4L : -0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-intel -0x3.2p+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-intel -0x3.2p+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh downward ldbl-96-m68k -0x3.2p+4L : -0x1p+0L : inexact-ok
+= tanh tonearest ldbl-96-m68k -0x3.2p+4L : -0x1p+0L : inexact-ok
+= tanh towardzero ldbl-96-m68k -0x3.2p+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh upward ldbl-96-m68k -0x3.2p+4L : -0xf.fffffffffffffffp-4L : inexact-ok
+= tanh downward ldbl-128 -0x3.2p+4L : -0x1p+0L : inexact-ok
+= tanh tonearest ldbl-128 -0x3.2p+4L : -0x1p+0L : inexact-ok
+= tanh towardzero ldbl-128 -0x3.2p+4L : -0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= tanh upward ldbl-128 -0x3.2p+4L : -0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= tanh downward ldbl-128ibm -0x3.2p+4L : -0x1p+0L : inexact-ok
+= tanh tonearest ldbl-128ibm -0x3.2p+4L : -0x1p+0L : inexact-ok
+= tanh towardzero ldbl-128ibm -0x3.2p+4L : -0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= tanh upward ldbl-128ibm -0x3.2p+4L : -0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
 tanh 0x1p-57
 = tanh downward flt-32 0x8p-60f : 0x7.fffff8p-60f : inexact-ok
 = tanh tonearest flt-32 0x8p-60f : 0x8p-60f : inexact-ok
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
index eddb3dc..dbc8f2f 100644
--- a/sysdeps/i386/fpu/libm-test-ulps
+++ b/sysdeps/i386/fpu/libm-test-ulps
@@ -1924,7 +1924,7 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
-ildouble: 5
+ildouble: 7
 ldouble: 4
 
 Function: "tanh_towardzero":
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_tanhl.c b/sysdeps/ieee754/ldbl-128ibm/s_tanhl.c
index c63e253..fe396e9 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_tanhl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_tanhl.c
@@ -29,9 +29,9 @@ static char rcsid[] = "$NetBSD: s_tanh.c,v 1.7 1995/05/10 20:48:22 jtc Exp $";
  *	    2**-57 <  x <=  1     : tanh(x) := -----; t = expm1(-2x)
  *					       t + 2
  *						     2
- *	    1      <= x <=  22.0  : tanh(x) := 1-  ----- ; t=expm1(2x)
+ *	    1      <= x <=  40.0  : tanh(x) := 1-  ----- ; t=expm1(2x)
  *						   t + 2
- *	    22.0   <  x <= INF    : tanh(x) := 1.
+ *	    40.0   <  x <= INF    : tanh(x) := 1.
  *
  * Special cases:
  *	tanh(NaN) is NaN;
@@ -61,8 +61,8 @@ long double __tanhl(long double x)
 	    else       return one/x-one;    /* tanh(NaN) = NaN */
 	}
 
-    /* |x| < 22 */
-	if (ix < 0x4036000000000000LL) {		/* |x|<22 */
+    /* |x| < 40 */
+	if (ix < 0x4044000000000000LL) {		/* |x|<40 */
 	    if (ix == 0)
 		return x;		/* x == +-0 */
 	    if (ix<0x3c60000000000000LL) 	/* |x|<2**-57 */
@@ -74,7 +74,7 @@ long double __tanhl(long double x)
 	        t = __expm1l(-two*fabsl(x));
 	        z= -t/(t+two);
 	    }
-    /* |x| > 22, return +-1 */
+    /* |x| > 40, return +-1 */
 	} else {
 	    z = one - tiny;		/* raised inexact flag */
 	}

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

Summary of changes:
 ChangeLog                             |    9 +
 NEWS                                  |    2 +-
 math/auto-libm-test-in                |   36 ++
 math/auto-libm-test-out               |  900 +++++++++++++++++++++++++++++++++
 sysdeps/i386/fpu/libm-test-ulps       |    2 +-
 sysdeps/ieee754/ldbl-128ibm/s_tanhl.c |   10 +-
 6 files changed, 952 insertions(+), 7 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]