]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Fix ctan, ctanh missing underflows (bug 18595).
authorJoseph Myers <joseph@codesourcery.com>
Tue, 15 Sep 2015 17:46:08 +0000 (17:46 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Tue, 15 Sep 2015 17:46:08 +0000 (17:46 +0000)
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.

ChangeLog
NEWS
math/auto-libm-test-in
math/auto-libm-test-out
math/s_ctan.c
math/s_ctanf.c
math/s_ctanh.c
math/s_ctanhf.c
math/s_ctanhl.c
math/s_ctanl.c

index f807e7cf17608545bfb51ccaf6a905f0e2907f70..56782dd4a74a63051c8e86fccfeaf5553e27396e 100644 (file)
--- 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 a09ba38f738e47d9b1c34929d1d28d7879ca11b3..797d717fb421fabe624c16089cffad7abc2d5a6b 100644 (file)
--- 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.
index 4a8017c49ac72091eb010e9507a396a99739fe3b..8e236c3250bd4cb1fdfb863e5852e18c06dc8528 100644 (file)
@@ -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
index a93b7c432f51bcd89b2e6ce83c6dbdc92532b82c..94efbb9f9cb5af2cf600732b169f453d75ad401f 100644 (file)
@@ -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
index eaf31fa6475e4f93a174329e420445b985b19d25..bcf5cfcec05992038608d49f914e3c4a5b13a768 100644 (file)
@@ -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;
index e0a6b8f07c660f8e32de35d80fc863730d088165..683ab6e544911888b5852e3fb25a1b6b8598042b 100644 (file)
@@ -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;
index 1347d07834a9020189f755771c6147af4962453f..76a0501a732c6074f049f5a4c8a595b39607a57a 100644 (file)
@@ -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;
index 14e1371ef5fb6af594e2a10f8bda627e39507a01..9d15c3ef0c7ea91a50ec549bee32c92802e7bc2b 100644 (file)
@@ -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;
index 6b9dfc5bb248a29cd3b5d091cd6862a1e836e6c7..9c15bb3a4a453100ed17f75f404f6f122a2c5697 100644 (file)
@@ -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;
index 0fd00390530803437708a16aeb376e4043562db3..48ab81b64b45018d5310ad04c504af6e68b39f4c 100644 (file)
@@ -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;