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-240-g0b87419


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  0b87419b690d1711697ed95808527400910ff997 (commit)
      from  694aabefd2eb3a0e2c5624d7feb1d7310b2bdd8b (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=0b87419b690d1711697ed95808527400910ff997

commit 0b87419b690d1711697ed95808527400910ff997
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue Sep 15 17:46:08 2015 +0000

    Fix ctan, ctanh missing underflows (bug 18595).
    
    Similar to various other bugs in this area, ctan and ctanh can fail to
    raise the underflow exception for some cases of results that are tiny
    and inexact.  This patch forces the exception in a similar way to
    previous fixes.
    
    Tested for x86_64 and x86.
    
    	[BZ #18595]
    	* math/s_ctan.c (__ctan): Force underflow exception for results
    	whose real or imaginary part has small absolute value.
    	* math/s_ctanf.c (__ctanf): Likewise.
    	* math/s_ctanh.c (__ctanh): Likewise.
    	* math/s_ctanhf.c (__ctanhf): Likewise.
    	* math/s_ctanhl.c (__ctanhl): Likewise.
    	* math/s_ctanl.c (__ctanl): Likewise.
    	* math/auto-libm-test-in: Do not allow missing underflow for ctan
    	and ctanh.  Add more tests of ctan and ctanh.

diff --git a/ChangeLog b/ChangeLog
index f807e7c..56782dd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
 2015-09-15  Joseph Myers  <joseph@codesourcery.com>
 
+	[BZ #18595]
+	* math/s_ctan.c (__ctan): Force underflow exception for results
+	whose real or imaginary part has small absolute value.
+	* math/s_ctanf.c (__ctanf): Likewise.
+	* math/s_ctanh.c (__ctanh): Likewise.
+	* math/s_ctanhf.c (__ctanhf): Likewise.
+	* math/s_ctanhl.c (__ctanhl): Likewise.
+	* math/s_ctanl.c (__ctanl): Likewise.
+	* math/auto-libm-test-in: Do not allow missing underflow for ctan
+	and ctanh.  Add more tests of ctan and ctanh.
+
 	[BZ #15918]
 	* sysdeps/ieee754/flt-32/e_hypotf.c (__ieee754_hypotf): Simplify
 	handling of cases where one argument is an infinity.
diff --git a/NEWS b/NEWS
index a09ba38..797d717 100644
--- a/NEWS
+++ b/NEWS
@@ -11,10 +11,10 @@ Version 2.23
 
   2542, 2543, 2558, 2898, 14341, 14912, 15786, 15918, 16141, 16517, 16519,
   16520, 16521, 16734, 16973, 16985, 17787, 17905, 18084, 18086, 18240,
-  18265, 18370, 18421, 18480, 18525, 18610, 18618, 18647, 18661, 18674,
-  18675, 18681, 18757, 18778, 18781, 18787, 18789, 18790, 18795, 18796,
-  18820, 18823, 18824, 18863, 18870, 18873, 18875, 18887, 18921, 18952,
-  18961, 18966.
+  18265, 18370, 18421, 18480, 18525, 18595, 18610, 18618, 18647, 18661,
+  18674, 18675, 18681, 18757, 18778, 18781, 18787, 18789, 18790, 18795,
+  18796, 18820, 18823, 18824, 18863, 18870, 18873, 18875, 18887, 18921,
+  18952, 18961, 18966.
 
 * The obsolete header <regexp.h> has been removed.  Programs that require
   this header must be updated to use <regex.h> instead.
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 4a8017c..8e236c3 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -1245,11 +1245,14 @@ ctan 0x1.921fb6p+0 0x1p-149
 ctan 0x1.921fb54442d18p+0 0x1p-1074
 ctan 0x1.921fb54442d1846ap+0 0x1p-16445
 
-# Bug 18595: underflow exception may be missing
-ctan min 0 missing-underflow
-ctan -min 0 missing-underflow
-ctan min_subnorm 0 missing-underflow
-ctan -min_subnorm 0 missing-underflow
+ctan min 0
+ctan -min 0
+ctan min_subnorm 0
+ctan -min_subnorm 0
+ctan 0 min
+ctan 0 -min
+ctan 0 min_subnorm
+ctan 0 -min_subnorm
 
 ctanh 0 0
 ctanh 0 -0
@@ -1285,11 +1288,14 @@ ctanh 0x1p-149 0x1.921fb6p+0
 ctanh 0x1p-1074 0x1.921fb54442d18p+0
 ctanh 0x1p-16445 0x1.921fb54442d1846ap+0
 
-# Bug 18595: underflow exception may be missing
-ctanh 0 min missing-underflow
-ctanh 0 -min missing-underflow
-ctanh 0 min_subnorm missing-underflow
-ctanh 0 -min_subnorm missing-underflow
+ctanh 0 min
+ctanh 0 -min
+ctanh 0 min_subnorm
+ctanh 0 -min_subnorm
+ctanh min 0
+ctanh -min 0
+ctanh min_subnorm 0
+ctanh -min_subnorm 0
 
 erf 0
 erf -0
diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
index a93b7c4..94efbb9 100644
--- a/math/auto-libm-test-out
+++ b/math/auto-libm-test-out
@@ -109184,7 +109184,7 @@ ctan 0x1.921fb54442d1846ap+0 0x1p-16445
 = ctan tonearest ldbl-128 0x1.921fb54442d1846ap+0L 0x8p-16448L : -0x2.29478136aaf68d7b3b807fb349bap+64L 0x2.55e3001b8e1413fcf7193625f37ap-16316L : inexact-ok
 = ctan towardzero ldbl-128 0x1.921fb54442d1846ap+0L 0x8p-16448L : -0x2.29478136aaf68d7b3b807fb349bap+64L 0x2.55e3001b8e1413fcf7193625f378p-16316L : inexact-ok
 = ctan upward ldbl-128 0x1.921fb54442d1846ap+0L 0x8p-16448L : -0x2.29478136aaf68d7b3b807fb349bap+64L 0x2.55e3001b8e1413fcf7193625f37ap-16316L : inexact-ok
-ctan min 0 missing-underflow
+ctan min 0
 = ctan downward flt-32 0x4p-128f 0x0p+0f : 0x4p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
 = ctan tonearest flt-32 0x4p-128f 0x0p+0f : 0x4p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
 = ctan towardzero flt-32 0x4p-128f 0x0p+0f : 0x4p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
@@ -109225,10 +109225,10 @@ ctan min 0 missing-underflow
 = ctan tonearest ldbl-128 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok
 = ctan towardzero ldbl-128 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok
 = ctan upward ldbl-128 0x4p-1024L 0x0p+0L : 0x4.0000000000000000000000000004p-1024L 0x0p+0L : inexact-ok
-= ctan downward ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x4.0000000000004p-1024L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctan downward ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x4.0000000000004p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
 = ctan downward ldbl-96-intel 0x4p-16384L 0x0p+0L : 0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan tonearest ldbl-96-intel 0x4p-16384L 0x0p+0L : 0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan towardzero ldbl-96-intel 0x4p-16384L 0x0p+0L : 0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
@@ -109241,18 +109241,18 @@ ctan min 0 missing-underflow
 = ctan tonearest ldbl-128 0x4p-16384L 0x0p+0L : 0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan towardzero ldbl-128 0x4p-16384L 0x0p+0L : 0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan upward ldbl-128 0x4p-16384L 0x0p+0L : 0x4.0000000000000000000000000004p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
-= ctan downward ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x2.0000000000000008p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctan downward ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x2.0000000000000008p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
 = ctan downward ldbl-96-m68k 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan tonearest ldbl-96-m68k 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan towardzero ldbl-96-m68k 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan upward ldbl-96-m68k 0x2p-16384L 0x0p+0L : 0x2.0000000000000004p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
-= ctan downward ldbl-128 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128 0x2p-16384L 0x0p+0L : 0x2.0000000000000000000000000004p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctan downward ldbl-128 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x2p-16384L 0x0p+0L : 0x2.0000000000000000000000000004p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
 = ctan downward dbl-64 0x8p-972 0x0p+0 : 0x8p-972 0x0p+0 : inexact-ok
 = ctan tonearest dbl-64 0x8p-972 0x0p+0 : 0x8p-972 0x0p+0 : inexact-ok
 = ctan towardzero dbl-64 0x8p-972 0x0p+0 : 0x8p-972 0x0p+0 : inexact-ok
@@ -109273,7 +109273,7 @@ ctan min 0 missing-underflow
 = ctan tonearest ldbl-128ibm 0x8p-972L 0x0p+0L : 0x8p-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan towardzero ldbl-128ibm 0x8p-972L 0x0p+0L : 0x8p-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan upward ldbl-128ibm 0x8p-972L 0x0p+0L : 0x8.00000000000000000000000004p-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
-ctan -min 0 missing-underflow
+ctan -min 0
 = ctan downward flt-32 -0x4p-128f 0x0p+0f : -0x4.000008p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
 = ctan tonearest flt-32 -0x4p-128f 0x0p+0f : -0x4p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
 = ctan towardzero flt-32 -0x4p-128f 0x0p+0f : -0x4p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
@@ -109314,10 +109314,10 @@ ctan -min 0 missing-underflow
 = ctan tonearest ldbl-128 -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok
 = ctan towardzero ldbl-128 -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok
 = ctan upward ldbl-128 -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok
-= ctan downward ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x4.0000000000004p-1024L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctan downward ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x4.0000000000004p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
 = ctan downward ldbl-96-intel -0x4p-16384L 0x0p+0L : -0x4.0000000000000008p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan tonearest ldbl-96-intel -0x4p-16384L 0x0p+0L : -0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan towardzero ldbl-96-intel -0x4p-16384L 0x0p+0L : -0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
@@ -109330,18 +109330,18 @@ ctan -min 0 missing-underflow
 = ctan tonearest ldbl-128 -0x4p-16384L 0x0p+0L : -0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan towardzero ldbl-128 -0x4p-16384L 0x0p+0L : -0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan upward ldbl-128 -0x4p-16384L 0x0p+0L : -0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
-= ctan downward ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x2.0000000000000008p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctan downward ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x2.0000000000000008p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
 = ctan downward ldbl-96-m68k -0x2p-16384L 0x0p+0L : -0x2.0000000000000004p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan tonearest ldbl-96-m68k -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan towardzero ldbl-96-m68k -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan upward ldbl-96-m68k -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
-= ctan downward ldbl-128 -0x2p-16384L 0x0p+0L : -0x2.0000000000000000000000000004p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128 -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128 -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128 -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctan downward ldbl-128 -0x2p-16384L 0x0p+0L : -0x2.0000000000000000000000000004p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
 = ctan downward dbl-64 -0x8p-972 0x0p+0 : -0x8.0000000000008p-972 0x0p+0 : inexact-ok
 = ctan tonearest dbl-64 -0x8p-972 0x0p+0 : -0x8p-972 0x0p+0 : inexact-ok
 = ctan towardzero dbl-64 -0x8p-972 0x0p+0 : -0x8p-972 0x0p+0 : inexact-ok
@@ -109362,11 +109362,11 @@ ctan -min 0 missing-underflow
 = ctan tonearest ldbl-128ibm -0x8p-972L 0x0p+0L : -0x8p-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan towardzero ldbl-128ibm -0x8p-972L 0x0p+0L : -0x8p-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
 = ctan upward ldbl-128ibm -0x8p-972L 0x0p+0L : -0x8p-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
-ctan min_subnorm 0 missing-underflow
-= ctan downward flt-32 0x8p-152f 0x0p+0f : 0x8p-152f 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest flt-32 0x8p-152f 0x0p+0f : 0x8p-152f 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero flt-32 0x8p-152f 0x0p+0f : 0x8p-152f 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward flt-32 0x8p-152f 0x0p+0f : 0x1p-148f 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
+ctan min_subnorm 0
+= ctan downward flt-32 0x8p-152f 0x0p+0f : 0x8p-152f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctan tonearest flt-32 0x8p-152f 0x0p+0f : 0x8p-152f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctan towardzero flt-32 0x8p-152f 0x0p+0f : 0x8p-152f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctan upward flt-32 0x8p-152f 0x0p+0f : 0x1p-148f 0x0p+0f : inexact-ok underflow errno-erange-ok
 = ctan downward dbl-64 0x8p-152 0x0p+0 : 0x8p-152 0x0p+0 : inexact-ok
 = ctan tonearest dbl-64 0x8p-152 0x0p+0 : 0x8p-152 0x0p+0 : inexact-ok
 = ctan towardzero dbl-64 0x8p-152 0x0p+0 : 0x8p-152 0x0p+0 : inexact-ok
@@ -109387,10 +109387,10 @@ ctan min_subnorm 0 missing-underflow
 = ctan tonearest ldbl-128ibm 0x8p-152L 0x0p+0L : 0x8p-152L 0x0p+0L : inexact-ok
 = ctan towardzero ldbl-128ibm 0x8p-152L 0x0p+0L : 0x8p-152L 0x0p+0L : inexact-ok
 = ctan upward ldbl-128ibm 0x8p-152L 0x0p+0L : 0x8.00000000000000000000000004p-152L 0x0p+0L : inexact-ok
-= ctan downward dbl-64 0x4p-1076 0x0p+0 : 0x4p-1076 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest dbl-64 0x4p-1076 0x0p+0 : 0x4p-1076 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero dbl-64 0x4p-1076 0x0p+0 : 0x4p-1076 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward dbl-64 0x4p-1076 0x0p+0 : 0x8p-1076 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
+= ctan downward dbl-64 0x4p-1076 0x0p+0 : 0x4p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctan tonearest dbl-64 0x4p-1076 0x0p+0 : 0x4p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctan towardzero dbl-64 0x4p-1076 0x0p+0 : 0x4p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctan upward dbl-64 0x4p-1076 0x0p+0 : 0x8p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
 = ctan downward ldbl-96-intel 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok
 = ctan tonearest ldbl-96-intel 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok
 = ctan towardzero ldbl-96-intel 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok
@@ -109403,39 +109403,39 @@ ctan min_subnorm 0 missing-underflow
 = ctan tonearest ldbl-128 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok
 = ctan towardzero ldbl-128 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok
 = ctan upward ldbl-128 0x4p-1076L 0x0p+0L : 0x4.0000000000000000000000000004p-1076L 0x0p+0L : inexact-ok
-= ctan downward ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x8p-1076L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x1p-16444L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0xcp-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-128 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128 0x8p-16448L 0x0p+0L : 0x8.000000000004p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-128 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128 0x4p-16448L 0x0p+0L : 0x4.000000000004p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-128 0x4p-16496L 0x0p+0L : 0x4p-16496L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128 0x4p-16496L 0x0p+0L : 0x4p-16496L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128 0x4p-16496L 0x0p+0L : 0x4p-16496L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128 0x4p-16496L 0x0p+0L : 0x8p-16496L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-ctan -min_subnorm 0 missing-underflow
-= ctan downward flt-32 -0x8p-152f 0x0p+0f : -0x1p-148f 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest flt-32 -0x8p-152f 0x0p+0f : -0x8p-152f 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero flt-32 -0x8p-152f 0x0p+0f : -0x8p-152f 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward flt-32 -0x8p-152f 0x0p+0f : -0x8p-152f 0x0p+0f : inexact-ok underflow underflow-ok errno-erange-ok
+= ctan downward ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x8p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x1p-16444L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0xcp-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x8p-16448L 0x0p+0L : 0x8.000000000004p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x4p-16448L 0x0p+0L : 0x4.000000000004p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 0x4p-16496L 0x0p+0L : 0x4p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x4p-16496L 0x0p+0L : 0x4p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x4p-16496L 0x0p+0L : 0x4p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x4p-16496L 0x0p+0L : 0x8p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+ctan -min_subnorm 0
+= ctan downward flt-32 -0x8p-152f 0x0p+0f : -0x1p-148f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctan tonearest flt-32 -0x8p-152f 0x0p+0f : -0x8p-152f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctan towardzero flt-32 -0x8p-152f 0x0p+0f : -0x8p-152f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctan upward flt-32 -0x8p-152f 0x0p+0f : -0x8p-152f 0x0p+0f : inexact-ok underflow errno-erange-ok
 = ctan downward dbl-64 -0x8p-152 0x0p+0 : -0x8.0000000000008p-152 0x0p+0 : inexact-ok
 = ctan tonearest dbl-64 -0x8p-152 0x0p+0 : -0x8p-152 0x0p+0 : inexact-ok
 = ctan towardzero dbl-64 -0x8p-152 0x0p+0 : -0x8p-152 0x0p+0 : inexact-ok
@@ -109456,10 +109456,10 @@ ctan -min_subnorm 0 missing-underflow
 = ctan tonearest ldbl-128ibm -0x8p-152L 0x0p+0L : -0x8p-152L 0x0p+0L : inexact-ok
 = ctan towardzero ldbl-128ibm -0x8p-152L 0x0p+0L : -0x8p-152L 0x0p+0L : inexact-ok
 = ctan upward ldbl-128ibm -0x8p-152L 0x0p+0L : -0x8p-152L 0x0p+0L : inexact-ok
-= ctan downward dbl-64 -0x4p-1076 0x0p+0 : -0x8p-1076 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest dbl-64 -0x4p-1076 0x0p+0 : -0x4p-1076 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero dbl-64 -0x4p-1076 0x0p+0 : -0x4p-1076 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward dbl-64 -0x4p-1076 0x0p+0 : -0x4p-1076 0x0p+0 : inexact-ok underflow underflow-ok errno-erange-ok
+= ctan downward dbl-64 -0x4p-1076 0x0p+0 : -0x8p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctan tonearest dbl-64 -0x4p-1076 0x0p+0 : -0x4p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctan towardzero dbl-64 -0x4p-1076 0x0p+0 : -0x4p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctan upward dbl-64 -0x4p-1076 0x0p+0 : -0x4p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
 = ctan downward ldbl-96-intel -0x4p-1076L 0x0p+0L : -0x4.0000000000000008p-1076L 0x0p+0L : inexact-ok
 = ctan tonearest ldbl-96-intel -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok
 = ctan towardzero ldbl-96-intel -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok
@@ -109472,34 +109472,350 @@ ctan -min_subnorm 0 missing-underflow
 = ctan tonearest ldbl-128 -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok
 = ctan towardzero ldbl-128 -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok
 = ctan upward ldbl-128 -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok
-= ctan downward ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x8p-1076L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x1p-16444L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0xcp-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-128 -0x8p-16448L 0x0p+0L : -0x8.000000000004p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128 -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128 -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128 -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-128 -0x4p-16448L 0x0p+0L : -0x4.000000000004p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128 -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128 -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128 -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan downward ldbl-128 -0x4p-16496L 0x0p+0L : -0x8p-16496L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan tonearest ldbl-128 -0x4p-16496L 0x0p+0L : -0x4p-16496L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan towardzero ldbl-128 -0x4p-16496L 0x0p+0L : -0x4p-16496L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctan upward ldbl-128 -0x4p-16496L 0x0p+0L : -0x4p-16496L 0x0p+0L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctan downward ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x8p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x1p-16444L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0xcp-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 -0x8p-16448L 0x0p+0L : -0x8.000000000004p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 -0x4p-16448L 0x0p+0L : -0x4.000000000004p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 -0x4p-16496L 0x0p+0L : -0x8p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 -0x4p-16496L 0x0p+0L : -0x4p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 -0x4p-16496L 0x0p+0L : -0x4p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 -0x4p-16496L 0x0p+0L : -0x4p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+ctan 0 min
+= ctan downward flt-32 0x0p+0f 0x4p-128f : 0x0p+0f 0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest flt-32 0x0p+0f 0x4p-128f : 0x0p+0f 0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero flt-32 0x0p+0f 0x4p-128f : 0x0p+0f 0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok
+= ctan upward flt-32 0x0p+0f 0x4p-128f : 0x0p+0f 0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= ctan downward dbl-64 0x0p+0 0x4p-128 : 0x0p+0 0x3.ffffffffffffep-128 : inexact-ok
+= ctan tonearest dbl-64 0x0p+0 0x4p-128 : 0x0p+0 0x4p-128 : inexact-ok
+= ctan towardzero dbl-64 0x0p+0 0x4p-128 : 0x0p+0 0x3.ffffffffffffep-128 : inexact-ok
+= ctan upward dbl-64 0x0p+0 0x4p-128 : 0x0p+0 0x4p-128 : inexact-ok
+= ctan downward ldbl-96-intel 0x0p+0L 0x4p-128L : 0x0p+0L 0x3.fffffffffffffffcp-128L : inexact-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L 0x4p-128L : 0x0p+0L 0x4p-128L : inexact-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L 0x4p-128L : 0x0p+0L 0x3.fffffffffffffffcp-128L : inexact-ok
+= ctan upward ldbl-96-intel 0x0p+0L 0x4p-128L : 0x0p+0L 0x4p-128L : inexact-ok
+= ctan downward ldbl-96-m68k 0x0p+0L 0x4p-128L : 0x0p+0L 0x3.fffffffffffffffcp-128L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L 0x4p-128L : 0x0p+0L 0x4p-128L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L 0x4p-128L : 0x0p+0L 0x3.fffffffffffffffcp-128L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L 0x4p-128L : 0x0p+0L 0x4p-128L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L 0x4p-128L : 0x0p+0L 0x3.fffffffffffffffffffffffffffep-128L : inexact-ok
+= ctan tonearest ldbl-128 0x0p+0L 0x4p-128L : 0x0p+0L 0x4p-128L : inexact-ok
+= ctan towardzero ldbl-128 0x0p+0L 0x4p-128L : 0x0p+0L 0x3.fffffffffffffffffffffffffffep-128L : inexact-ok
+= ctan upward ldbl-128 0x0p+0L 0x4p-128L : 0x0p+0L 0x4p-128L : inexact-ok
+= ctan downward ldbl-128ibm 0x0p+0L 0x4p-128L : 0x0p+0L 0x3.ffffffffffffffffffffffffffp-128L : inexact-ok
+= ctan tonearest ldbl-128ibm 0x0p+0L 0x4p-128L : 0x0p+0L 0x4p-128L : inexact-ok
+= ctan towardzero ldbl-128ibm 0x0p+0L 0x4p-128L : 0x0p+0L 0x3.ffffffffffffffffffffffffffp-128L : inexact-ok
+= ctan upward ldbl-128ibm 0x0p+0L 0x4p-128L : 0x0p+0L 0x4p-128L : inexact-ok
+= ctan downward dbl-64 0x0p+0 0x4p-1024 : 0x0p+0 0x3.ffffffffffffcp-1024 : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest dbl-64 0x0p+0 0x4p-1024 : 0x0p+0 0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero dbl-64 0x0p+0 0x4p-1024 : 0x0p+0 0x3.ffffffffffffcp-1024 : inexact-ok underflow-ok errno-erange-ok
+= ctan upward dbl-64 0x0p+0 0x4p-1024 : 0x0p+0 0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= ctan downward ldbl-96-intel 0x0p+0L 0x4p-1024L : 0x0p+0L 0x3.fffffffffffffffcp-1024L : inexact-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L 0x4p-1024L : 0x0p+0L 0x3.fffffffffffffffcp-1024L : inexact-ok
+= ctan upward ldbl-96-intel 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok
+= ctan downward ldbl-96-m68k 0x0p+0L 0x4p-1024L : 0x0p+0L 0x3.fffffffffffffffcp-1024L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L 0x4p-1024L : 0x0p+0L 0x3.fffffffffffffffcp-1024L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L 0x4p-1024L : 0x0p+0L 0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok
+= ctan tonearest ldbl-128 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok
+= ctan towardzero ldbl-128 0x0p+0L 0x4p-1024L : 0x0p+0L 0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok
+= ctan upward ldbl-128 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok
+= ctan downward ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-intel 0x0p+0L 0x4p-16384L : 0x0p+0L 0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L 0x4p-16384L : 0x0p+0L 0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan upward ldbl-96-intel 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan downward ldbl-96-m68k 0x0p+0L 0x4p-16384L : 0x0p+0L 0x3.fffffffffffffffcp-16384L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4p-16384L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L 0x4p-16384L : 0x0p+0L 0x3.fffffffffffffffcp-16384L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4p-16384L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L 0x4p-16384L : 0x0p+0L 0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest ldbl-128 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero ldbl-128 0x0p+0L 0x4p-16384L : 0x0p+0L 0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan upward ldbl-128 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan downward ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-m68k 0x0p+0L 0x2p-16384L : 0x0p+0L 0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L 0x2p-16384L : 0x0p+0L 0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan upward ldbl-96-m68k 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan downward ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctan downward dbl-64 0x0p+0 0x8p-972 : 0x0p+0 0x7.ffffffffffffcp-972 : inexact-ok
+= ctan tonearest dbl-64 0x0p+0 0x8p-972 : 0x0p+0 0x8p-972 : inexact-ok
+= ctan towardzero dbl-64 0x0p+0 0x8p-972 : 0x0p+0 0x7.ffffffffffffcp-972 : inexact-ok
+= ctan upward dbl-64 0x0p+0 0x8p-972 : 0x0p+0 0x8p-972 : inexact-ok
+= ctan downward ldbl-96-intel 0x0p+0L 0x8p-972L : 0x0p+0L 0x7.fffffffffffffff8p-972L : inexact-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L 0x8p-972L : 0x0p+0L 0x8p-972L : inexact-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L 0x8p-972L : 0x0p+0L 0x7.fffffffffffffff8p-972L : inexact-ok
+= ctan upward ldbl-96-intel 0x0p+0L 0x8p-972L : 0x0p+0L 0x8p-972L : inexact-ok
+= ctan downward ldbl-96-m68k 0x0p+0L 0x8p-972L : 0x0p+0L 0x7.fffffffffffffff8p-972L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L 0x8p-972L : 0x0p+0L 0x8p-972L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L 0x8p-972L : 0x0p+0L 0x7.fffffffffffffff8p-972L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L 0x8p-972L : 0x0p+0L 0x8p-972L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L 0x8p-972L : 0x0p+0L 0x7.fffffffffffffffffffffffffffcp-972L : inexact-ok
+= ctan tonearest ldbl-128 0x0p+0L 0x8p-972L : 0x0p+0L 0x8p-972L : inexact-ok
+= ctan towardzero ldbl-128 0x0p+0L 0x8p-972L : 0x0p+0L 0x7.fffffffffffffffffffffffffffcp-972L : inexact-ok
+= ctan upward ldbl-128 0x0p+0L 0x8p-972L : 0x0p+0L 0x8p-972L : inexact-ok
+= ctan downward ldbl-128ibm 0x0p+0L 0x8p-972L : 0x0p+0L 0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest ldbl-128ibm 0x0p+0L 0x8p-972L : 0x0p+0L 0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero ldbl-128ibm 0x0p+0L 0x8p-972L : 0x0p+0L 0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok
+= ctan upward ldbl-128ibm 0x0p+0L 0x8p-972L : 0x0p+0L 0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+ctan 0 -min
+= ctan downward flt-32 0x0p+0f -0x4p-128f : 0x0p+0f -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest flt-32 0x0p+0f -0x4p-128f : 0x0p+0f -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero flt-32 0x0p+0f -0x4p-128f : 0x0p+0f -0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok
+= ctan upward flt-32 0x0p+0f -0x4p-128f : 0x0p+0f -0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok
+= ctan downward dbl-64 0x0p+0 -0x4p-128 : 0x0p+0 -0x4p-128 : inexact-ok
+= ctan tonearest dbl-64 0x0p+0 -0x4p-128 : 0x0p+0 -0x4p-128 : inexact-ok
+= ctan towardzero dbl-64 0x0p+0 -0x4p-128 : 0x0p+0 -0x3.ffffffffffffep-128 : inexact-ok
+= ctan upward dbl-64 0x0p+0 -0x4p-128 : 0x0p+0 -0x3.ffffffffffffep-128 : inexact-ok
+= ctan downward ldbl-96-intel 0x0p+0L -0x4p-128L : 0x0p+0L -0x4p-128L : inexact-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L -0x4p-128L : 0x0p+0L -0x4p-128L : inexact-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L -0x4p-128L : 0x0p+0L -0x3.fffffffffffffffcp-128L : inexact-ok
+= ctan upward ldbl-96-intel 0x0p+0L -0x4p-128L : 0x0p+0L -0x3.fffffffffffffffcp-128L : inexact-ok
+= ctan downward ldbl-96-m68k 0x0p+0L -0x4p-128L : 0x0p+0L -0x4p-128L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L -0x4p-128L : 0x0p+0L -0x4p-128L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L -0x4p-128L : 0x0p+0L -0x3.fffffffffffffffcp-128L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L -0x4p-128L : 0x0p+0L -0x3.fffffffffffffffcp-128L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L -0x4p-128L : 0x0p+0L -0x4p-128L : inexact-ok
+= ctan tonearest ldbl-128 0x0p+0L -0x4p-128L : 0x0p+0L -0x4p-128L : inexact-ok
+= ctan towardzero ldbl-128 0x0p+0L -0x4p-128L : 0x0p+0L -0x3.fffffffffffffffffffffffffffep-128L : inexact-ok
+= ctan upward ldbl-128 0x0p+0L -0x4p-128L : 0x0p+0L -0x3.fffffffffffffffffffffffffffep-128L : inexact-ok
+= ctan downward ldbl-128ibm 0x0p+0L -0x4p-128L : 0x0p+0L -0x4p-128L : inexact-ok
+= ctan tonearest ldbl-128ibm 0x0p+0L -0x4p-128L : 0x0p+0L -0x4p-128L : inexact-ok
+= ctan towardzero ldbl-128ibm 0x0p+0L -0x4p-128L : 0x0p+0L -0x3.ffffffffffffffffffffffffffp-128L : inexact-ok
+= ctan upward ldbl-128ibm 0x0p+0L -0x4p-128L : 0x0p+0L -0x3.ffffffffffffffffffffffffffp-128L : inexact-ok
+= ctan downward dbl-64 0x0p+0 -0x4p-1024 : 0x0p+0 -0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest dbl-64 0x0p+0 -0x4p-1024 : 0x0p+0 -0x4p-1024 : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero dbl-64 0x0p+0 -0x4p-1024 : 0x0p+0 -0x3.ffffffffffffcp-1024 : inexact-ok underflow-ok errno-erange-ok
+= ctan upward dbl-64 0x0p+0 -0x4p-1024 : 0x0p+0 -0x3.ffffffffffffcp-1024 : inexact-ok underflow-ok errno-erange-ok
+= ctan downward ldbl-96-intel 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L -0x4p-1024L : 0x0p+0L -0x3.fffffffffffffffcp-1024L : inexact-ok
+= ctan upward ldbl-96-intel 0x0p+0L -0x4p-1024L : 0x0p+0L -0x3.fffffffffffffffcp-1024L : inexact-ok
+= ctan downward ldbl-96-m68k 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L -0x4p-1024L : 0x0p+0L -0x3.fffffffffffffffcp-1024L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L -0x4p-1024L : 0x0p+0L -0x3.fffffffffffffffcp-1024L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok
+= ctan tonearest ldbl-128 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok
+= ctan towardzero ldbl-128 0x0p+0L -0x4p-1024L : 0x0p+0L -0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok
+= ctan upward ldbl-128 0x0p+0L -0x4p-1024L : 0x0p+0L -0x3.fffffffffffffffffffffffffffep-1024L : inexact-ok
+= ctan downward ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x3.ffffffffffffcp-1024L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-intel 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L -0x4p-16384L : 0x0p+0L -0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan upward ldbl-96-intel 0x0p+0L -0x4p-16384L : 0x0p+0L -0x3.fffffffffffffff8p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan downward ldbl-96-m68k 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4p-16384L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4p-16384L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L -0x4p-16384L : 0x0p+0L -0x3.fffffffffffffffcp-16384L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L -0x4p-16384L : 0x0p+0L -0x3.fffffffffffffffcp-16384L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest ldbl-128 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero ldbl-128 0x0p+0L -0x4p-16384L : 0x0p+0L -0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan upward ldbl-128 0x0p+0L -0x4p-16384L : 0x0p+0L -0x3.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan downward ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x1.fffffffffffffff8p-16384L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-m68k 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L -0x2p-16384L : 0x0p+0L -0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan upward ldbl-96-m68k 0x0p+0L -0x2p-16384L : 0x0p+0L -0x1.fffffffffffffffcp-16384L : inexact-ok underflow-ok errno-erange-ok
+= ctan downward ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x1.fffffffffffffffffffffffffffcp-16384L : inexact-ok underflow errno-erange-ok
+= ctan downward dbl-64 0x0p+0 -0x8p-972 : 0x0p+0 -0x8p-972 : inexact-ok
+= ctan tonearest dbl-64 0x0p+0 -0x8p-972 : 0x0p+0 -0x8p-972 : inexact-ok
+= ctan towardzero dbl-64 0x0p+0 -0x8p-972 : 0x0p+0 -0x7.ffffffffffffcp-972 : inexact-ok
+= ctan upward dbl-64 0x0p+0 -0x8p-972 : 0x0p+0 -0x7.ffffffffffffcp-972 : inexact-ok
+= ctan downward ldbl-96-intel 0x0p+0L -0x8p-972L : 0x0p+0L -0x8p-972L : inexact-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L -0x8p-972L : 0x0p+0L -0x8p-972L : inexact-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L -0x8p-972L : 0x0p+0L -0x7.fffffffffffffff8p-972L : inexact-ok
+= ctan upward ldbl-96-intel 0x0p+0L -0x8p-972L : 0x0p+0L -0x7.fffffffffffffff8p-972L : inexact-ok
+= ctan downward ldbl-96-m68k 0x0p+0L -0x8p-972L : 0x0p+0L -0x8p-972L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L -0x8p-972L : 0x0p+0L -0x8p-972L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L -0x8p-972L : 0x0p+0L -0x7.fffffffffffffff8p-972L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L -0x8p-972L : 0x0p+0L -0x7.fffffffffffffff8p-972L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L -0x8p-972L : 0x0p+0L -0x8p-972L : inexact-ok
+= ctan tonearest ldbl-128 0x0p+0L -0x8p-972L : 0x0p+0L -0x8p-972L : inexact-ok
+= ctan towardzero ldbl-128 0x0p+0L -0x8p-972L : 0x0p+0L -0x7.fffffffffffffffffffffffffffcp-972L : inexact-ok
+= ctan upward ldbl-128 0x0p+0L -0x8p-972L : 0x0p+0L -0x7.fffffffffffffffffffffffffffcp-972L : inexact-ok
+= ctan downward ldbl-128ibm 0x0p+0L -0x8p-972L : 0x0p+0L -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+= ctan tonearest ldbl-128ibm 0x0p+0L -0x8p-972L : 0x0p+0L -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
+= ctan towardzero ldbl-128ibm 0x0p+0L -0x8p-972L : 0x0p+0L -0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok
+= ctan upward ldbl-128ibm 0x0p+0L -0x8p-972L : 0x0p+0L -0x7.fffffffffffffffffffffffffcp-972L : inexact-ok underflow-ok errno-erange-ok
+ctan 0 min_subnorm
+= ctan downward flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctan tonearest flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x8p-152f : inexact-ok underflow errno-erange-ok
+= ctan towardzero flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctan upward flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x8p-152f : inexact-ok underflow errno-erange-ok
+= ctan downward dbl-64 0x0p+0 0x8p-152 : 0x0p+0 0x7.ffffffffffffcp-152 : inexact-ok
+= ctan tonearest dbl-64 0x0p+0 0x8p-152 : 0x0p+0 0x8p-152 : inexact-ok
+= ctan towardzero dbl-64 0x0p+0 0x8p-152 : 0x0p+0 0x7.ffffffffffffcp-152 : inexact-ok
+= ctan upward dbl-64 0x0p+0 0x8p-152 : 0x0p+0 0x8p-152 : inexact-ok
+= ctan downward ldbl-96-intel 0x0p+0L 0x8p-152L : 0x0p+0L 0x7.fffffffffffffff8p-152L : inexact-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L 0x8p-152L : 0x0p+0L 0x8p-152L : inexact-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L 0x8p-152L : 0x0p+0L 0x7.fffffffffffffff8p-152L : inexact-ok
+= ctan upward ldbl-96-intel 0x0p+0L 0x8p-152L : 0x0p+0L 0x8p-152L : inexact-ok
+= ctan downward ldbl-96-m68k 0x0p+0L 0x8p-152L : 0x0p+0L 0x7.fffffffffffffff8p-152L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L 0x8p-152L : 0x0p+0L 0x8p-152L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L 0x8p-152L : 0x0p+0L 0x7.fffffffffffffff8p-152L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L 0x8p-152L : 0x0p+0L 0x8p-152L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L 0x8p-152L : 0x0p+0L 0x7.fffffffffffffffffffffffffffcp-152L : inexact-ok
+= ctan tonearest ldbl-128 0x0p+0L 0x8p-152L : 0x0p+0L 0x8p-152L : inexact-ok
+= ctan towardzero ldbl-128 0x0p+0L 0x8p-152L : 0x0p+0L 0x7.fffffffffffffffffffffffffffcp-152L : inexact-ok
+= ctan upward ldbl-128 0x0p+0L 0x8p-152L : 0x0p+0L 0x8p-152L : inexact-ok
+= ctan downward ldbl-128ibm 0x0p+0L 0x8p-152L : 0x0p+0L 0x7.fffffffffffffffffffffffffep-152L : inexact-ok
+= ctan tonearest ldbl-128ibm 0x0p+0L 0x8p-152L : 0x0p+0L 0x8p-152L : inexact-ok
+= ctan towardzero ldbl-128ibm 0x0p+0L 0x8p-152L : 0x0p+0L 0x7.fffffffffffffffffffffffffep-152L : inexact-ok
+= ctan upward ldbl-128ibm 0x0p+0L 0x8p-152L : 0x0p+0L 0x8p-152L : inexact-ok
+= ctan downward dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctan tonearest dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= ctan towardzero dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctan upward dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-intel 0x0p+0L 0x4p-1076L : 0x0p+0L 0x3.fffffffffffffffcp-1076L : inexact-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L 0x4p-1076L : 0x0p+0L 0x3.fffffffffffffffcp-1076L : inexact-ok
+= ctan upward ldbl-96-intel 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok
+= ctan downward ldbl-96-m68k 0x0p+0L 0x4p-1076L : 0x0p+0L 0x3.fffffffffffffffcp-1076L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L 0x4p-1076L : 0x0p+0L 0x3.fffffffffffffffcp-1076L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L 0x4p-1076L : 0x0p+0L 0x3.fffffffffffffffffffffffffffep-1076L : inexact-ok
+= ctan tonearest ldbl-128 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok
+= ctan towardzero ldbl-128 0x0p+0L 0x4p-1076L : 0x0p+0L 0x3.fffffffffffffffffffffffffffep-1076L : inexact-ok
+= ctan upward ldbl-128 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok
+= ctan downward ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x7.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x7.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x3.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x3.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x4p-16496L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x4p-16496L : inexact-ok underflow errno-erange-ok
+ctan 0 -min_subnorm
+= ctan downward flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x8p-152f : inexact-ok underflow errno-erange-ok
+= ctan tonearest flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x8p-152f : inexact-ok underflow errno-erange-ok
+= ctan towardzero flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctan upward flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctan downward dbl-64 0x0p+0 -0x8p-152 : 0x0p+0 -0x8p-152 : inexact-ok
+= ctan tonearest dbl-64 0x0p+0 -0x8p-152 : 0x0p+0 -0x8p-152 : inexact-ok
+= ctan towardzero dbl-64 0x0p+0 -0x8p-152 : 0x0p+0 -0x7.ffffffffffffcp-152 : inexact-ok
+= ctan upward dbl-64 0x0p+0 -0x8p-152 : 0x0p+0 -0x7.ffffffffffffcp-152 : inexact-ok
+= ctan downward ldbl-96-intel 0x0p+0L -0x8p-152L : 0x0p+0L -0x8p-152L : inexact-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L -0x8p-152L : 0x0p+0L -0x8p-152L : inexact-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L -0x8p-152L : 0x0p+0L -0x7.fffffffffffffff8p-152L : inexact-ok
+= ctan upward ldbl-96-intel 0x0p+0L -0x8p-152L : 0x0p+0L -0x7.fffffffffffffff8p-152L : inexact-ok
+= ctan downward ldbl-96-m68k 0x0p+0L -0x8p-152L : 0x0p+0L -0x8p-152L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L -0x8p-152L : 0x0p+0L -0x8p-152L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L -0x8p-152L : 0x0p+0L -0x7.fffffffffffffff8p-152L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L -0x8p-152L : 0x0p+0L -0x7.fffffffffffffff8p-152L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L -0x8p-152L : 0x0p+0L -0x8p-152L : inexact-ok
+= ctan tonearest ldbl-128 0x0p+0L -0x8p-152L : 0x0p+0L -0x8p-152L : inexact-ok
+= ctan towardzero ldbl-128 0x0p+0L -0x8p-152L : 0x0p+0L -0x7.fffffffffffffffffffffffffffcp-152L : inexact-ok
+= ctan upward ldbl-128 0x0p+0L -0x8p-152L : 0x0p+0L -0x7.fffffffffffffffffffffffffffcp-152L : inexact-ok
+= ctan downward ldbl-128ibm 0x0p+0L -0x8p-152L : 0x0p+0L -0x8p-152L : inexact-ok
+= ctan tonearest ldbl-128ibm 0x0p+0L -0x8p-152L : 0x0p+0L -0x8p-152L : inexact-ok
+= ctan towardzero ldbl-128ibm 0x0p+0L -0x8p-152L : 0x0p+0L -0x7.fffffffffffffffffffffffffep-152L : inexact-ok
+= ctan upward ldbl-128ibm 0x0p+0L -0x8p-152L : 0x0p+0L -0x7.fffffffffffffffffffffffffep-152L : inexact-ok
+= ctan downward dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x4p-1076 : inexact-ok underflow errno-erange-ok
+= ctan tonearest dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x4p-1076 : inexact-ok underflow errno-erange-ok
+= ctan towardzero dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctan upward dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-intel 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L -0x4p-1076L : 0x0p+0L -0x3.fffffffffffffffcp-1076L : inexact-ok
+= ctan upward ldbl-96-intel 0x0p+0L -0x4p-1076L : 0x0p+0L -0x3.fffffffffffffffcp-1076L : inexact-ok
+= ctan downward ldbl-96-m68k 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L -0x4p-1076L : 0x0p+0L -0x3.fffffffffffffffcp-1076L : inexact-ok
+= ctan upward ldbl-96-m68k 0x0p+0L -0x4p-1076L : 0x0p+0L -0x3.fffffffffffffffcp-1076L : inexact-ok
+= ctan downward ldbl-128 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok
+= ctan tonearest ldbl-128 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok
+= ctan towardzero ldbl-128 0x0p+0L -0x4p-1076L : 0x0p+0L -0x3.fffffffffffffffffffffffffffep-1076L : inexact-ok
+= ctan upward ldbl-128 0x0p+0L -0x4p-1076L : 0x0p+0L -0x3.fffffffffffffffffffffffffffep-1076L : inexact-ok
+= ctan downward ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x7.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x7.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x3.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x3.fffffffffffcp-16448L : inexact-ok underflow errno-erange-ok
+= ctan downward ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x4p-16496L : inexact-ok underflow errno-erange-ok
+= ctan tonearest ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x4p-16496L : inexact-ok underflow errno-erange-ok
+= ctan towardzero ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctan upward ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x0p+0L : inexact-ok underflow errno-erange-ok
 ctanh 0 0
 = ctanh downward flt-32 0x0p+0f 0x0p+0f : 0x0p+0f 0x0p+0f : inexact-ok
 = ctanh tonearest flt-32 0x0p+0f 0x0p+0f : 0x0p+0f 0x0p+0f : inexact-ok
@@ -110792,7 +111108,7 @@ ctanh 0x1p-16445 0x1.921fb54442d1846ap+0
 = ctanh tonearest ldbl-128 0x8p-16448L 0x1.921fb54442d1846ap+0L : 0x2.55e3001b8e1413fcf7193625f37ap-16316L -0x2.29478136aaf68d7b3b807fb349bap+64L : inexact-ok
 = ctanh towardzero ldbl-128 0x8p-16448L 0x1.921fb54442d1846ap+0L : 0x2.55e3001b8e1413fcf7193625f378p-16316L -0x2.29478136aaf68d7b3b807fb349bap+64L : inexact-ok
 = ctanh upward ldbl-128 0x8p-16448L 0x1.921fb54442d1846ap+0L : 0x2.55e3001b8e1413fcf7193625f37ap-16316L -0x2.29478136aaf68d7b3b807fb349bap+64L : inexact-ok
-ctanh 0 min missing-underflow
+ctanh 0 min
 = ctanh downward flt-32 0x0p+0f 0x4p-128f : 0x0p+0f 0x4p-128f : inexact-ok underflow-ok errno-erange-ok
 = ctanh tonearest flt-32 0x0p+0f 0x4p-128f : 0x0p+0f 0x4p-128f : inexact-ok underflow-ok errno-erange-ok
 = ctanh towardzero flt-32 0x0p+0f 0x4p-128f : 0x0p+0f 0x4p-128f : inexact-ok underflow-ok errno-erange-ok
@@ -110833,10 +111149,10 @@ ctanh 0 min missing-underflow
 = ctanh tonearest ldbl-128 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok
 = ctanh towardzero ldbl-128 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok
 = ctanh upward ldbl-128 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4.0000000000000000000000000004p-1024L : inexact-ok
-= ctanh downward ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4.0000000000004p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctanh downward ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4p-1024L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128ibm 0x0p+0L 0x4p-1024L : 0x0p+0L 0x4.0000000000004p-1024L : inexact-ok underflow errno-erange-ok
 = ctanh downward ldbl-96-intel 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh tonearest ldbl-96-intel 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh towardzero ldbl-96-intel 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
@@ -110849,18 +111165,18 @@ ctanh 0 min missing-underflow
 = ctanh tonearest ldbl-128 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh towardzero ldbl-128 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh upward ldbl-128 0x0p+0L 0x4p-16384L : 0x0p+0L 0x4.0000000000000000000000000004p-16384L : inexact-ok underflow-ok errno-erange-ok
-= ctanh downward ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2.0000000000000008p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctanh downward ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-intel 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2.0000000000000008p-16384L : inexact-ok underflow errno-erange-ok
 = ctanh downward ldbl-96-m68k 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh tonearest ldbl-96-m68k 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh towardzero ldbl-96-m68k 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh upward ldbl-96-m68k 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2.0000000000000004p-16384L : inexact-ok underflow-ok errno-erange-ok
-= ctanh downward ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2.0000000000000000000000000004p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctanh downward ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x0p+0L 0x2p-16384L : 0x0p+0L 0x2.0000000000000000000000000004p-16384L : inexact-ok underflow errno-erange-ok
 = ctanh downward dbl-64 0x0p+0 0x8p-972 : 0x0p+0 0x8p-972 : inexact-ok
 = ctanh tonearest dbl-64 0x0p+0 0x8p-972 : 0x0p+0 0x8p-972 : inexact-ok
 = ctanh towardzero dbl-64 0x0p+0 0x8p-972 : 0x0p+0 0x8p-972 : inexact-ok
@@ -110881,7 +111197,7 @@ ctanh 0 min missing-underflow
 = ctanh tonearest ldbl-128ibm 0x0p+0L 0x8p-972L : 0x0p+0L 0x8p-972L : inexact-ok underflow-ok errno-erange-ok
 = ctanh towardzero ldbl-128ibm 0x0p+0L 0x8p-972L : 0x0p+0L 0x8p-972L : inexact-ok underflow-ok errno-erange-ok
 = ctanh upward ldbl-128ibm 0x0p+0L 0x8p-972L : 0x0p+0L 0x8.00000000000000000000000004p-972L : inexact-ok underflow-ok errno-erange-ok
-ctanh 0 -min missing-underflow
+ctanh 0 -min
 = ctanh downward flt-32 0x0p+0f -0x4p-128f : 0x0p+0f -0x4.000008p-128f : inexact-ok underflow-ok errno-erange-ok
 = ctanh tonearest flt-32 0x0p+0f -0x4p-128f : 0x0p+0f -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
 = ctanh towardzero flt-32 0x0p+0f -0x4p-128f : 0x0p+0f -0x4p-128f : inexact-ok underflow-ok errno-erange-ok
@@ -110922,10 +111238,10 @@ ctanh 0 -min missing-underflow
 = ctanh tonearest ldbl-128 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok
 = ctanh towardzero ldbl-128 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok
 = ctanh upward ldbl-128 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok
-= ctanh downward ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4.0000000000004p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctanh downward ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4.0000000000004p-1024L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128ibm 0x0p+0L -0x4p-1024L : 0x0p+0L -0x4p-1024L : inexact-ok underflow errno-erange-ok
 = ctanh downward ldbl-96-intel 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4.0000000000000008p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh tonearest ldbl-96-intel 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh towardzero ldbl-96-intel 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
@@ -110938,18 +111254,18 @@ ctanh 0 -min missing-underflow
 = ctanh tonearest ldbl-128 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh towardzero ldbl-128 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh upward ldbl-128 0x0p+0L -0x4p-16384L : 0x0p+0L -0x4p-16384L : inexact-ok underflow-ok errno-erange-ok
-= ctanh downward ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2.0000000000000008p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctanh downward ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2.0000000000000008p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-intel 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow errno-erange-ok
 = ctanh downward ldbl-96-m68k 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2.0000000000000004p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh tonearest ldbl-96-m68k 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh towardzero ldbl-96-m68k 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
 = ctanh upward ldbl-96-m68k 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow-ok errno-erange-ok
-= ctanh downward ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2.0000000000000000000000000004p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctanh downward ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2.0000000000000000000000000004p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x0p+0L -0x2p-16384L : 0x0p+0L -0x2p-16384L : inexact-ok underflow errno-erange-ok
 = ctanh downward dbl-64 0x0p+0 -0x8p-972 : 0x0p+0 -0x8.0000000000008p-972 : inexact-ok
 = ctanh tonearest dbl-64 0x0p+0 -0x8p-972 : 0x0p+0 -0x8p-972 : inexact-ok
 = ctanh towardzero dbl-64 0x0p+0 -0x8p-972 : 0x0p+0 -0x8p-972 : inexact-ok
@@ -110970,11 +111286,11 @@ ctanh 0 -min missing-underflow
 = ctanh tonearest ldbl-128ibm 0x0p+0L -0x8p-972L : 0x0p+0L -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
 = ctanh towardzero ldbl-128ibm 0x0p+0L -0x8p-972L : 0x0p+0L -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
 = ctanh upward ldbl-128ibm 0x0p+0L -0x8p-972L : 0x0p+0L -0x8p-972L : inexact-ok underflow-ok errno-erange-ok
-ctanh 0 min_subnorm missing-underflow
-= ctanh downward flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x1p-148f : inexact-ok underflow underflow-ok errno-erange-ok
+ctanh 0 min_subnorm
+= ctanh downward flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x8p-152f : inexact-ok underflow errno-erange-ok
+= ctanh tonearest flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x8p-152f : inexact-ok underflow errno-erange-ok
+= ctanh towardzero flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x8p-152f : inexact-ok underflow errno-erange-ok
+= ctanh upward flt-32 0x0p+0f 0x8p-152f : 0x0p+0f 0x1p-148f : inexact-ok underflow errno-erange-ok
 = ctanh downward dbl-64 0x0p+0 0x8p-152 : 0x0p+0 0x8p-152 : inexact-ok
 = ctanh tonearest dbl-64 0x0p+0 0x8p-152 : 0x0p+0 0x8p-152 : inexact-ok
 = ctanh towardzero dbl-64 0x0p+0 0x8p-152 : 0x0p+0 0x8p-152 : inexact-ok
@@ -110995,10 +111311,10 @@ ctanh 0 min_subnorm missing-underflow
 = ctanh tonearest ldbl-128ibm 0x0p+0L 0x8p-152L : 0x0p+0L 0x8p-152L : inexact-ok
 = ctanh towardzero ldbl-128ibm 0x0p+0L 0x8p-152L : 0x0p+0L 0x8p-152L : inexact-ok
 = ctanh upward ldbl-128ibm 0x0p+0L 0x8p-152L : 0x0p+0L 0x8.00000000000000000000000004p-152L : inexact-ok
-= ctanh downward dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x8p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
+= ctanh downward dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= ctanh tonearest dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= ctanh towardzero dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= ctanh upward dbl-64 0x0p+0 0x4p-1076 : 0x0p+0 0x8p-1076 : inexact-ok underflow errno-erange-ok
 = ctanh downward ldbl-96-intel 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok
 = ctanh tonearest ldbl-96-intel 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok
 = ctanh towardzero ldbl-96-intel 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok
@@ -111011,39 +111327,39 @@ ctanh 0 min_subnorm missing-underflow
 = ctanh tonearest ldbl-128 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok
 = ctanh towardzero ldbl-128 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok
 = ctanh upward ldbl-128 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4.0000000000000000000000000004p-1076L : inexact-ok
-= ctanh downward ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x8p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x1p-16444L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0xcp-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8.000000000004p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4.000000000004p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x8p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
-ctanh 0 -min_subnorm missing-underflow
-= ctanh downward flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x1p-148f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
+= ctanh downward ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x4p-1076L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128ibm 0x0p+0L 0x4p-1076L : 0x0p+0L 0x8p-1076L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-intel 0x0p+0L 0x8p-16448L : 0x0p+0L 0x1p-16444L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-m68k 0x0p+0L 0x8p-16448L : 0x0p+0L 0xcp-16448L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x0p+0L 0x8p-16448L : 0x0p+0L 0x8.000000000004p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-m68k 0x0p+0L 0x4p-16448L : 0x0p+0L 0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x0p+0L 0x4p-16448L : 0x0p+0L 0x4.000000000004p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x4p-16496L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x4p-16496L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x4p-16496L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x0p+0L 0x4p-16496L : 0x0p+0L 0x8p-16496L : inexact-ok underflow errno-erange-ok
+ctanh 0 -min_subnorm
+= ctanh downward flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x1p-148f : inexact-ok underflow errno-erange-ok
+= ctanh tonearest flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x8p-152f : inexact-ok underflow errno-erange-ok
+= ctanh towardzero flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x8p-152f : inexact-ok underflow errno-erange-ok
+= ctanh upward flt-32 0x0p+0f -0x8p-152f : 0x0p+0f -0x8p-152f : inexact-ok underflow errno-erange-ok
 = ctanh downward dbl-64 0x0p+0 -0x8p-152 : 0x0p+0 -0x8.0000000000008p-152 : inexact-ok
 = ctanh tonearest dbl-64 0x0p+0 -0x8p-152 : 0x0p+0 -0x8p-152 : inexact-ok
 = ctanh towardzero dbl-64 0x0p+0 -0x8p-152 : 0x0p+0 -0x8p-152 : inexact-ok
@@ -111064,10 +111380,10 @@ ctanh 0 -min_subnorm missing-underflow
 = ctanh tonearest ldbl-128ibm 0x0p+0L -0x8p-152L : 0x0p+0L -0x8p-152L : inexact-ok
 = ctanh towardzero ldbl-128ibm 0x0p+0L -0x8p-152L : 0x0p+0L -0x8p-152L : inexact-ok
 = ctanh upward ldbl-128ibm 0x0p+0L -0x8p-152L : 0x0p+0L -0x8p-152L : inexact-ok
-= ctanh downward dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x8p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
+= ctanh downward dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x8p-1076 : inexact-ok underflow errno-erange-ok
+= ctanh tonearest dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x4p-1076 : inexact-ok underflow errno-erange-ok
+= ctanh towardzero dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x4p-1076 : inexact-ok underflow errno-erange-ok
+= ctanh upward dbl-64 0x0p+0 -0x4p-1076 : 0x0p+0 -0x4p-1076 : inexact-ok underflow errno-erange-ok
 = ctanh downward ldbl-96-intel 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4.0000000000000008p-1076L : inexact-ok
 = ctanh tonearest ldbl-96-intel 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok
 = ctanh towardzero ldbl-96-intel 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok
@@ -111080,34 +111396,350 @@ ctanh 0 -min_subnorm missing-underflow
 = ctanh tonearest ldbl-128 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok
 = ctanh towardzero ldbl-128 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok
 = ctanh upward ldbl-128 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok
-= ctanh downward ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x8p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x1p-16444L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0xcp-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8.000000000004p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4.000000000004p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh downward ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x8p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh tonearest ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh towardzero ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
-= ctanh upward ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
+= ctanh downward ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x8p-1076L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128ibm 0x0p+0L -0x4p-1076L : 0x0p+0L -0x4p-1076L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x1p-16444L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-intel 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0xcp-16448L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-m68k 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8.000000000004p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x0p+0L -0x8p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x8p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-m68k 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4.000000000004p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x0p+0L -0x4p-16448L : 0x0p+0L -0x4p-16448L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x8p-16496L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x4p-16496L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x4p-16496L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x0p+0L -0x4p-16496L : 0x0p+0L -0x4p-16496L : inexact-ok underflow errno-erange-ok
+ctanh min 0
+= ctanh downward flt-32 0x4p-128f 0x0p+0f : 0x3.fffff8p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest flt-32 0x4p-128f 0x0p+0f : 0x4p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero flt-32 0x4p-128f 0x0p+0f : 0x3.fffff8p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward flt-32 0x4p-128f 0x0p+0f : 0x4p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
+= ctanh downward dbl-64 0x4p-128 0x0p+0 : 0x3.ffffffffffffep-128 0x0p+0 : inexact-ok
+= ctanh tonearest dbl-64 0x4p-128 0x0p+0 : 0x4p-128 0x0p+0 : inexact-ok
+= ctanh towardzero dbl-64 0x4p-128 0x0p+0 : 0x3.ffffffffffffep-128 0x0p+0 : inexact-ok
+= ctanh upward dbl-64 0x4p-128 0x0p+0 : 0x4p-128 0x0p+0 : inexact-ok
+= ctanh downward ldbl-96-intel 0x4p-128L 0x0p+0L : 0x3.fffffffffffffffcp-128L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-intel 0x4p-128L 0x0p+0L : 0x4p-128L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-intel 0x4p-128L 0x0p+0L : 0x3.fffffffffffffffcp-128L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-intel 0x4p-128L 0x0p+0L : 0x4p-128L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-96-m68k 0x4p-128L 0x0p+0L : 0x3.fffffffffffffffcp-128L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k 0x4p-128L 0x0p+0L : 0x4p-128L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k 0x4p-128L 0x0p+0L : 0x3.fffffffffffffffcp-128L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k 0x4p-128L 0x0p+0L : 0x4p-128L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 0x4p-128L 0x0p+0L : 0x3.fffffffffffffffffffffffffffep-128L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128 0x4p-128L 0x0p+0L : 0x4p-128L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128 0x4p-128L 0x0p+0L : 0x3.fffffffffffffffffffffffffffep-128L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128 0x4p-128L 0x0p+0L : 0x4p-128L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128ibm 0x4p-128L 0x0p+0L : 0x3.ffffffffffffffffffffffffffp-128L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128ibm 0x4p-128L 0x0p+0L : 0x4p-128L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128ibm 0x4p-128L 0x0p+0L : 0x3.ffffffffffffffffffffffffffp-128L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128ibm 0x4p-128L 0x0p+0L : 0x4p-128L 0x0p+0L : inexact-ok
+= ctanh downward dbl-64 0x4p-1024 0x0p+0 : 0x3.ffffffffffffcp-1024 0x0p+0 : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest dbl-64 0x4p-1024 0x0p+0 : 0x4p-1024 0x0p+0 : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero dbl-64 0x4p-1024 0x0p+0 : 0x3.ffffffffffffcp-1024 0x0p+0 : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward dbl-64 0x4p-1024 0x0p+0 : 0x4p-1024 0x0p+0 : inexact-ok underflow-ok errno-erange-ok
+= ctanh downward ldbl-96-intel 0x4p-1024L 0x0p+0L : 0x3.fffffffffffffffcp-1024L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-intel 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-intel 0x4p-1024L 0x0p+0L : 0x3.fffffffffffffffcp-1024L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-intel 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-96-m68k 0x4p-1024L 0x0p+0L : 0x3.fffffffffffffffcp-1024L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k 0x4p-1024L 0x0p+0L : 0x3.fffffffffffffffcp-1024L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 0x4p-1024L 0x0p+0L : 0x3.fffffffffffffffffffffffffffep-1024L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128 0x4p-1024L 0x0p+0L : 0x3.fffffffffffffffffffffffffffep-1024L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x3.ffffffffffffcp-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x3.ffffffffffffcp-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128ibm 0x4p-1024L 0x0p+0L : 0x4p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-intel 0x4p-16384L 0x0p+0L : 0x3.fffffffffffffff8p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest ldbl-96-intel 0x4p-16384L 0x0p+0L : 0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero ldbl-96-intel 0x4p-16384L 0x0p+0L : 0x3.fffffffffffffff8p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward ldbl-96-intel 0x4p-16384L 0x0p+0L : 0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh downward ldbl-96-m68k 0x4p-16384L 0x0p+0L : 0x3.fffffffffffffffcp-16384L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k 0x4p-16384L 0x0p+0L : 0x4p-16384L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k 0x4p-16384L 0x0p+0L : 0x3.fffffffffffffffcp-16384L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k 0x4p-16384L 0x0p+0L : 0x4p-16384L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 0x4p-16384L 0x0p+0L : 0x3.fffffffffffffffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest ldbl-128 0x4p-16384L 0x0p+0L : 0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero ldbl-128 0x4p-16384L 0x0p+0L : 0x3.fffffffffffffffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward ldbl-128 0x4p-16384L 0x0p+0L : 0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh downward ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x1.fffffffffffffff8p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x1.fffffffffffffff8p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-intel 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-m68k 0x2p-16384L 0x0p+0L : 0x1.fffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest ldbl-96-m68k 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero ldbl-96-m68k 0x2p-16384L 0x0p+0L : 0x1.fffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward ldbl-96-m68k 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh downward ldbl-128 0x2p-16384L 0x0p+0L : 0x1.fffffffffffffffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x2p-16384L 0x0p+0L : 0x1.fffffffffffffffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x2p-16384L 0x0p+0L : 0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward dbl-64 0x8p-972 0x0p+0 : 0x7.ffffffffffffcp-972 0x0p+0 : inexact-ok
+= ctanh tonearest dbl-64 0x8p-972 0x0p+0 : 0x8p-972 0x0p+0 : inexact-ok
+= ctanh towardzero dbl-64 0x8p-972 0x0p+0 : 0x7.ffffffffffffcp-972 0x0p+0 : inexact-ok
+= ctanh upward dbl-64 0x8p-972 0x0p+0 : 0x8p-972 0x0p+0 : inexact-ok
+= ctanh downward ldbl-96-intel 0x8p-972L 0x0p+0L : 0x7.fffffffffffffff8p-972L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-intel 0x8p-972L 0x0p+0L : 0x8p-972L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-intel 0x8p-972L 0x0p+0L : 0x7.fffffffffffffff8p-972L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-intel 0x8p-972L 0x0p+0L : 0x8p-972L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-96-m68k 0x8p-972L 0x0p+0L : 0x7.fffffffffffffff8p-972L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k 0x8p-972L 0x0p+0L : 0x8p-972L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k 0x8p-972L 0x0p+0L : 0x7.fffffffffffffff8p-972L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k 0x8p-972L 0x0p+0L : 0x8p-972L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 0x8p-972L 0x0p+0L : 0x7.fffffffffffffffffffffffffffcp-972L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128 0x8p-972L 0x0p+0L : 0x8p-972L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128 0x8p-972L 0x0p+0L : 0x7.fffffffffffffffffffffffffffcp-972L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128 0x8p-972L 0x0p+0L : 0x8p-972L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128ibm 0x8p-972L 0x0p+0L : 0x7.fffffffffffffffffffffffffcp-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest ldbl-128ibm 0x8p-972L 0x0p+0L : 0x8p-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero ldbl-128ibm 0x8p-972L 0x0p+0L : 0x7.fffffffffffffffffffffffffcp-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward ldbl-128ibm 0x8p-972L 0x0p+0L : 0x8p-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+ctanh -min 0
+= ctanh downward flt-32 -0x4p-128f 0x0p+0f : -0x4p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest flt-32 -0x4p-128f 0x0p+0f : -0x4p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero flt-32 -0x4p-128f 0x0p+0f : -0x3.fffff8p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward flt-32 -0x4p-128f 0x0p+0f : -0x3.fffff8p-128f 0x0p+0f : inexact-ok underflow-ok errno-erange-ok
+= ctanh downward dbl-64 -0x4p-128 0x0p+0 : -0x4p-128 0x0p+0 : inexact-ok
+= ctanh tonearest dbl-64 -0x4p-128 0x0p+0 : -0x4p-128 0x0p+0 : inexact-ok
+= ctanh towardzero dbl-64 -0x4p-128 0x0p+0 : -0x3.ffffffffffffep-128 0x0p+0 : inexact-ok
+= ctanh upward dbl-64 -0x4p-128 0x0p+0 : -0x3.ffffffffffffep-128 0x0p+0 : inexact-ok
+= ctanh downward ldbl-96-intel -0x4p-128L 0x0p+0L : -0x4p-128L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-intel -0x4p-128L 0x0p+0L : -0x4p-128L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-intel -0x4p-128L 0x0p+0L : -0x3.fffffffffffffffcp-128L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-intel -0x4p-128L 0x0p+0L : -0x3.fffffffffffffffcp-128L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-96-m68k -0x4p-128L 0x0p+0L : -0x4p-128L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k -0x4p-128L 0x0p+0L : -0x4p-128L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k -0x4p-128L 0x0p+0L : -0x3.fffffffffffffffcp-128L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k -0x4p-128L 0x0p+0L : -0x3.fffffffffffffffcp-128L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 -0x4p-128L 0x0p+0L : -0x4p-128L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128 -0x4p-128L 0x0p+0L : -0x4p-128L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128 -0x4p-128L 0x0p+0L : -0x3.fffffffffffffffffffffffffffep-128L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128 -0x4p-128L 0x0p+0L : -0x3.fffffffffffffffffffffffffffep-128L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128ibm -0x4p-128L 0x0p+0L : -0x4p-128L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128ibm -0x4p-128L 0x0p+0L : -0x4p-128L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128ibm -0x4p-128L 0x0p+0L : -0x3.ffffffffffffffffffffffffffp-128L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128ibm -0x4p-128L 0x0p+0L : -0x3.ffffffffffffffffffffffffffp-128L 0x0p+0L : inexact-ok
+= ctanh downward dbl-64 -0x4p-1024 0x0p+0 : -0x4p-1024 0x0p+0 : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest dbl-64 -0x4p-1024 0x0p+0 : -0x4p-1024 0x0p+0 : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero dbl-64 -0x4p-1024 0x0p+0 : -0x3.ffffffffffffcp-1024 0x0p+0 : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward dbl-64 -0x4p-1024 0x0p+0 : -0x3.ffffffffffffcp-1024 0x0p+0 : inexact-ok underflow-ok errno-erange-ok
+= ctanh downward ldbl-96-intel -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-intel -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-intel -0x4p-1024L 0x0p+0L : -0x3.fffffffffffffffcp-1024L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-intel -0x4p-1024L 0x0p+0L : -0x3.fffffffffffffffcp-1024L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-96-m68k -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k -0x4p-1024L 0x0p+0L : -0x3.fffffffffffffffcp-1024L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k -0x4p-1024L 0x0p+0L : -0x3.fffffffffffffffcp-1024L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128 -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128 -0x4p-1024L 0x0p+0L : -0x3.fffffffffffffffffffffffffffep-1024L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128 -0x4p-1024L 0x0p+0L : -0x3.fffffffffffffffffffffffffffep-1024L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x4p-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x3.ffffffffffffcp-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128ibm -0x4p-1024L 0x0p+0L : -0x3.ffffffffffffcp-1024L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-intel -0x4p-16384L 0x0p+0L : -0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest ldbl-96-intel -0x4p-16384L 0x0p+0L : -0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero ldbl-96-intel -0x4p-16384L 0x0p+0L : -0x3.fffffffffffffff8p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward ldbl-96-intel -0x4p-16384L 0x0p+0L : -0x3.fffffffffffffff8p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh downward ldbl-96-m68k -0x4p-16384L 0x0p+0L : -0x4p-16384L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k -0x4p-16384L 0x0p+0L : -0x4p-16384L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k -0x4p-16384L 0x0p+0L : -0x3.fffffffffffffffcp-16384L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k -0x4p-16384L 0x0p+0L : -0x3.fffffffffffffffcp-16384L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 -0x4p-16384L 0x0p+0L : -0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest ldbl-128 -0x4p-16384L 0x0p+0L : -0x4p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero ldbl-128 -0x4p-16384L 0x0p+0L : -0x3.fffffffffffffffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward ldbl-128 -0x4p-16384L 0x0p+0L : -0x3.fffffffffffffffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh downward ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x1.fffffffffffffff8p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-intel -0x2p-16384L 0x0p+0L : -0x1.fffffffffffffff8p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-m68k -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest ldbl-96-m68k -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero ldbl-96-m68k -0x2p-16384L 0x0p+0L : -0x1.fffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward ldbl-96-m68k -0x2p-16384L 0x0p+0L : -0x1.fffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh downward ldbl-128 -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 -0x2p-16384L 0x0p+0L : -0x2p-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 -0x2p-16384L 0x0p+0L : -0x1.fffffffffffffffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 -0x2p-16384L 0x0p+0L : -0x1.fffffffffffffffffffffffffffcp-16384L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward dbl-64 -0x8p-972 0x0p+0 : -0x8p-972 0x0p+0 : inexact-ok
+= ctanh tonearest dbl-64 -0x8p-972 0x0p+0 : -0x8p-972 0x0p+0 : inexact-ok
+= ctanh towardzero dbl-64 -0x8p-972 0x0p+0 : -0x7.ffffffffffffcp-972 0x0p+0 : inexact-ok
+= ctanh upward dbl-64 -0x8p-972 0x0p+0 : -0x7.ffffffffffffcp-972 0x0p+0 : inexact-ok
+= ctanh downward ldbl-96-intel -0x8p-972L 0x0p+0L : -0x8p-972L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-intel -0x8p-972L 0x0p+0L : -0x8p-972L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-intel -0x8p-972L 0x0p+0L : -0x7.fffffffffffffff8p-972L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-intel -0x8p-972L 0x0p+0L : -0x7.fffffffffffffff8p-972L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-96-m68k -0x8p-972L 0x0p+0L : -0x8p-972L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k -0x8p-972L 0x0p+0L : -0x8p-972L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k -0x8p-972L 0x0p+0L : -0x7.fffffffffffffff8p-972L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k -0x8p-972L 0x0p+0L : -0x7.fffffffffffffff8p-972L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 -0x8p-972L 0x0p+0L : -0x8p-972L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128 -0x8p-972L 0x0p+0L : -0x8p-972L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128 -0x8p-972L 0x0p+0L : -0x7.fffffffffffffffffffffffffffcp-972L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128 -0x8p-972L 0x0p+0L : -0x7.fffffffffffffffffffffffffffcp-972L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128ibm -0x8p-972L 0x0p+0L : -0x8p-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh tonearest ldbl-128ibm -0x8p-972L 0x0p+0L : -0x8p-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh towardzero ldbl-128ibm -0x8p-972L 0x0p+0L : -0x7.fffffffffffffffffffffffffcp-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+= ctanh upward ldbl-128ibm -0x8p-972L 0x0p+0L : -0x7.fffffffffffffffffffffffffcp-972L 0x0p+0L : inexact-ok underflow-ok errno-erange-ok
+ctanh min_subnorm 0
+= ctanh downward flt-32 0x8p-152f 0x0p+0f : 0x0p+0f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctanh tonearest flt-32 0x8p-152f 0x0p+0f : 0x8p-152f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctanh towardzero flt-32 0x8p-152f 0x0p+0f : 0x0p+0f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctanh upward flt-32 0x8p-152f 0x0p+0f : 0x8p-152f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctanh downward dbl-64 0x8p-152 0x0p+0 : 0x7.ffffffffffffcp-152 0x0p+0 : inexact-ok
+= ctanh tonearest dbl-64 0x8p-152 0x0p+0 : 0x8p-152 0x0p+0 : inexact-ok
+= ctanh towardzero dbl-64 0x8p-152 0x0p+0 : 0x7.ffffffffffffcp-152 0x0p+0 : inexact-ok
+= ctanh upward dbl-64 0x8p-152 0x0p+0 : 0x8p-152 0x0p+0 : inexact-ok
+= ctanh downward ldbl-96-intel 0x8p-152L 0x0p+0L : 0x7.fffffffffffffff8p-152L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-intel 0x8p-152L 0x0p+0L : 0x8p-152L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-intel 0x8p-152L 0x0p+0L : 0x7.fffffffffffffff8p-152L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-intel 0x8p-152L 0x0p+0L : 0x8p-152L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-96-m68k 0x8p-152L 0x0p+0L : 0x7.fffffffffffffff8p-152L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k 0x8p-152L 0x0p+0L : 0x8p-152L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k 0x8p-152L 0x0p+0L : 0x7.fffffffffffffff8p-152L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k 0x8p-152L 0x0p+0L : 0x8p-152L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 0x8p-152L 0x0p+0L : 0x7.fffffffffffffffffffffffffffcp-152L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128 0x8p-152L 0x0p+0L : 0x8p-152L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128 0x8p-152L 0x0p+0L : 0x7.fffffffffffffffffffffffffffcp-152L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128 0x8p-152L 0x0p+0L : 0x8p-152L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128ibm 0x8p-152L 0x0p+0L : 0x7.fffffffffffffffffffffffffep-152L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128ibm 0x8p-152L 0x0p+0L : 0x8p-152L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128ibm 0x8p-152L 0x0p+0L : 0x7.fffffffffffffffffffffffffep-152L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128ibm 0x8p-152L 0x0p+0L : 0x8p-152L 0x0p+0L : inexact-ok
+= ctanh downward dbl-64 0x4p-1076 0x0p+0 : 0x0p+0 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctanh tonearest dbl-64 0x4p-1076 0x0p+0 : 0x4p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctanh towardzero dbl-64 0x4p-1076 0x0p+0 : 0x0p+0 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctanh upward dbl-64 0x4p-1076 0x0p+0 : 0x4p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-intel 0x4p-1076L 0x0p+0L : 0x3.fffffffffffffffcp-1076L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-intel 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-intel 0x4p-1076L 0x0p+0L : 0x3.fffffffffffffffcp-1076L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-intel 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-96-m68k 0x4p-1076L 0x0p+0L : 0x3.fffffffffffffffcp-1076L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k 0x4p-1076L 0x0p+0L : 0x3.fffffffffffffffcp-1076L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 0x4p-1076L 0x0p+0L : 0x3.fffffffffffffffffffffffffffep-1076L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128 0x4p-1076L 0x0p+0L : 0x3.fffffffffffffffffffffffffffep-1076L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x4p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-intel 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-m68k 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 0x8p-16448L 0x0p+0L : 0x7.fffffffffffcp-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x8p-16448L 0x0p+0L : 0x7.fffffffffffcp-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x8p-16448L 0x0p+0L : 0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-m68k 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 0x4p-16448L 0x0p+0L : 0x3.fffffffffffcp-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x4p-16448L 0x0p+0L : 0x3.fffffffffffcp-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x4p-16448L 0x0p+0L : 0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 0x4p-16496L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 0x4p-16496L 0x0p+0L : 0x4p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 0x4p-16496L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 0x4p-16496L 0x0p+0L : 0x4p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+ctanh -min_subnorm 0
+= ctanh downward flt-32 -0x8p-152f 0x0p+0f : -0x8p-152f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctanh tonearest flt-32 -0x8p-152f 0x0p+0f : -0x8p-152f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctanh towardzero flt-32 -0x8p-152f 0x0p+0f : -0x0p+0f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctanh upward flt-32 -0x8p-152f 0x0p+0f : -0x0p+0f 0x0p+0f : inexact-ok underflow errno-erange-ok
+= ctanh downward dbl-64 -0x8p-152 0x0p+0 : -0x8p-152 0x0p+0 : inexact-ok
+= ctanh tonearest dbl-64 -0x8p-152 0x0p+0 : -0x8p-152 0x0p+0 : inexact-ok
+= ctanh towardzero dbl-64 -0x8p-152 0x0p+0 : -0x7.ffffffffffffcp-152 0x0p+0 : inexact-ok
+= ctanh upward dbl-64 -0x8p-152 0x0p+0 : -0x7.ffffffffffffcp-152 0x0p+0 : inexact-ok
+= ctanh downward ldbl-96-intel -0x8p-152L 0x0p+0L : -0x8p-152L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-intel -0x8p-152L 0x0p+0L : -0x8p-152L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-intel -0x8p-152L 0x0p+0L : -0x7.fffffffffffffff8p-152L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-intel -0x8p-152L 0x0p+0L : -0x7.fffffffffffffff8p-152L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-96-m68k -0x8p-152L 0x0p+0L : -0x8p-152L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k -0x8p-152L 0x0p+0L : -0x8p-152L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k -0x8p-152L 0x0p+0L : -0x7.fffffffffffffff8p-152L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k -0x8p-152L 0x0p+0L : -0x7.fffffffffffffff8p-152L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 -0x8p-152L 0x0p+0L : -0x8p-152L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128 -0x8p-152L 0x0p+0L : -0x8p-152L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128 -0x8p-152L 0x0p+0L : -0x7.fffffffffffffffffffffffffffcp-152L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128 -0x8p-152L 0x0p+0L : -0x7.fffffffffffffffffffffffffffcp-152L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128ibm -0x8p-152L 0x0p+0L : -0x8p-152L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128ibm -0x8p-152L 0x0p+0L : -0x8p-152L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128ibm -0x8p-152L 0x0p+0L : -0x7.fffffffffffffffffffffffffep-152L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128ibm -0x8p-152L 0x0p+0L : -0x7.fffffffffffffffffffffffffep-152L 0x0p+0L : inexact-ok
+= ctanh downward dbl-64 -0x4p-1076 0x0p+0 : -0x4p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctanh tonearest dbl-64 -0x4p-1076 0x0p+0 : -0x4p-1076 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctanh towardzero dbl-64 -0x4p-1076 0x0p+0 : -0x0p+0 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctanh upward dbl-64 -0x4p-1076 0x0p+0 : -0x0p+0 0x0p+0 : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-intel -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-intel -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-intel -0x4p-1076L 0x0p+0L : -0x3.fffffffffffffffcp-1076L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-intel -0x4p-1076L 0x0p+0L : -0x3.fffffffffffffffcp-1076L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-96-m68k -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-96-m68k -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-96-m68k -0x4p-1076L 0x0p+0L : -0x3.fffffffffffffffcp-1076L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-96-m68k -0x4p-1076L 0x0p+0L : -0x3.fffffffffffffffcp-1076L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128 -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh tonearest ldbl-128 -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok
+= ctanh towardzero ldbl-128 -0x4p-1076L 0x0p+0L : -0x3.fffffffffffffffffffffffffffep-1076L 0x0p+0L : inexact-ok
+= ctanh upward ldbl-128 -0x4p-1076L 0x0p+0L : -0x3.fffffffffffffffffffffffffffep-1076L 0x0p+0L : inexact-ok
+= ctanh downward ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x4p-1076L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128ibm -0x4p-1076L 0x0p+0L : -0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-intel -0x8p-16448L 0x0p+0L : -0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-m68k -0x8p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 -0x8p-16448L 0x0p+0L : -0x8p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 -0x8p-16448L 0x0p+0L : -0x7.fffffffffffcp-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 -0x8p-16448L 0x0p+0L : -0x7.fffffffffffcp-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-96-m68k -0x4p-16448L 0x0p+0L : -0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 -0x4p-16448L 0x0p+0L : -0x4p-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 -0x4p-16448L 0x0p+0L : -0x3.fffffffffffcp-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 -0x4p-16448L 0x0p+0L : -0x3.fffffffffffcp-16448L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh downward ldbl-128 -0x4p-16496L 0x0p+0L : -0x4p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh tonearest ldbl-128 -0x4p-16496L 0x0p+0L : -0x4p-16496L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh towardzero ldbl-128 -0x4p-16496L 0x0p+0L : -0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
+= ctanh upward ldbl-128 -0x4p-16496L 0x0p+0L : -0x0p+0L 0x0p+0L : inexact-ok underflow errno-erange-ok
 erf 0
 = erf downward flt-32 0x0p+0f : 0x0p+0f : inexact-ok
 = erf tonearest flt-32 0x0p+0f : 0x0p+0f : inexact-ok
diff --git a/math/s_ctan.c b/math/s_ctan.c
index eaf31fa..bcf5cfc 100644
--- a/math/s_ctan.c
+++ b/math/s_ctan.c
@@ -110,6 +110,16 @@ __ctan (__complex__ double x)
 	  __real__ res = sinrx * cosrx / den;
 	  __imag__ res = sinhix * coshix / den;
 	}
+      if (fabs (__real__ res) < DBL_MIN)
+	{
+	  double force_underflow = __real__ res * __real__ res;
+	  math_force_eval (force_underflow);
+	}
+      if (fabs (__imag__ res) < DBL_MIN)
+	{
+	  double force_underflow = __imag__ res * __imag__ res;
+	  math_force_eval (force_underflow);
+	}
     }
 
   return res;
diff --git a/math/s_ctanf.c b/math/s_ctanf.c
index e0a6b8f..683ab6e 100644
--- a/math/s_ctanf.c
+++ b/math/s_ctanf.c
@@ -110,6 +110,16 @@ __ctanf (__complex__ float x)
 	  __real__ res = sinrx * cosrx / den;
 	  __imag__ res = sinhix * coshix / den;
 	}
+      if (fabsf (__real__ res) < FLT_MIN)
+	{
+	  float force_underflow = __real__ res * __real__ res;
+	  math_force_eval (force_underflow);
+	}
+      if (fabsf (__imag__ res) < FLT_MIN)
+	{
+	  float force_underflow = __imag__ res * __imag__ res;
+	  math_force_eval (force_underflow);
+	}
     }
 
   return res;
diff --git a/math/s_ctanh.c b/math/s_ctanh.c
index 1347d07..76a0501 100644
--- a/math/s_ctanh.c
+++ b/math/s_ctanh.c
@@ -110,6 +110,16 @@ __ctanh (__complex__ double x)
 	  __real__ res = sinhrx * coshrx / den;
 	  __imag__ res = sinix * cosix / den;
 	}
+      if (fabs (__real__ res) < DBL_MIN)
+	{
+	  double force_underflow = __real__ res * __real__ res;
+	  math_force_eval (force_underflow);
+	}
+      if (fabs (__imag__ res) < DBL_MIN)
+	{
+	  double force_underflow = __imag__ res * __imag__ res;
+	  math_force_eval (force_underflow);
+	}
     }
 
   return res;
diff --git a/math/s_ctanhf.c b/math/s_ctanhf.c
index 14e1371..9d15c3e 100644
--- a/math/s_ctanhf.c
+++ b/math/s_ctanhf.c
@@ -110,6 +110,16 @@ __ctanhf (__complex__ float x)
 	  __real__ res = sinhrx * coshrx / den;
 	  __imag__ res = sinix * cosix / den;
 	}
+      if (fabsf (__real__ res) < FLT_MIN)
+	{
+	  float force_underflow = __real__ res * __real__ res;
+	  math_force_eval (force_underflow);
+	}
+      if (fabsf (__imag__ res) < FLT_MIN)
+	{
+	  float force_underflow = __imag__ res * __imag__ res;
+	  math_force_eval (force_underflow);
+	}
     }
 
   return res;
diff --git a/math/s_ctanhl.c b/math/s_ctanhl.c
index 6b9dfc5..9c15bb3 100644
--- a/math/s_ctanhl.c
+++ b/math/s_ctanhl.c
@@ -117,6 +117,16 @@ __ctanhl (__complex__ long double x)
 	  __real__ res = sinhrx * coshrx / den;
 	  __imag__ res = sinix * cosix / den;
 	}
+      if (fabsl (__real__ res) < LDBL_MIN)
+	{
+	  long double force_underflow = __real__ res * __real__ res;
+	  math_force_eval (force_underflow);
+	}
+      if (fabsl (__imag__ res) < LDBL_MIN)
+	{
+	  long double force_underflow = __imag__ res * __imag__ res;
+	  math_force_eval (force_underflow);
+	}
     }
 
   return res;
diff --git a/math/s_ctanl.c b/math/s_ctanl.c
index 0fd0039..48ab81b 100644
--- a/math/s_ctanl.c
+++ b/math/s_ctanl.c
@@ -117,6 +117,16 @@ __ctanl (__complex__ long double x)
 	  __real__ res = sinrx * cosrx / den;
 	  __imag__ res = sinhix * coshix / den;
 	}
+      if (fabsl (__real__ res) < LDBL_MIN)
+	{
+	  long double force_underflow = __real__ res * __real__ res;
+	  math_force_eval (force_underflow);
+	}
+      if (fabsl (__imag__ res) < LDBL_MIN)
+	{
+	  long double force_underflow = __imag__ res * __imag__ res;
+	  math_force_eval (force_underflow);
+	}
     }
 
   return res;

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

Summary of changes:
 ChangeLog               |   11 +
 NEWS                    |    8 +-
 math/auto-libm-test-in  |   26 +-
 math/auto-libm-test-out | 1032 ++++++++++++++++++++++++++++++++++++++---------
 math/s_ctan.c           |   10 +
 math/s_ctanf.c          |   10 +
 math/s_ctanh.c          |   10 +
 math/s_ctanhf.c         |   10 +
 math/s_ctanhl.c         |   10 +
 math/s_ctanl.c          |   10 +
 10 files changed, 923 insertions(+), 214 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]