math: add special case test vectors
authorSzabolcs Nagy <nsz@port70.net>
Mon, 12 Nov 2012 18:46:40 +0000 (19:46 +0100)
committerSzabolcs Nagy <nsz@port70.net>
Mon, 12 Nov 2012 18:46:40 +0000 (19:46 +0100)
385 files changed:
src/math/acos.c
src/math/acosf.c
src/math/acosh.c
src/math/acoshf.c
src/math/acoshl.c
src/math/acosl.c
src/math/asin.c
src/math/asinf.c
src/math/asinh.c
src/math/asinhf.c
src/math/asinhl.c
src/math/asinl.c
src/math/atan.c
src/math/atan2.c
src/math/atan2f.c
src/math/atan2l.c
src/math/atanf.c
src/math/atanh.c
src/math/atanhf.c
src/math/atanhl.c
src/math/atanl.c
src/math/cbrt.c
src/math/cbrtf.c
src/math/cbrtl.c
src/math/ceil.c
src/math/ceilf.c
src/math/ceill.c
src/math/copysign.c
src/math/copysignf.c
src/math/copysignl.c
src/math/cos.c
src/math/cosf.c
src/math/cosh.c
src/math/coshf.c
src/math/coshl.c
src/math/cosl.c
src/math/erf.c
src/math/erfc.c
src/math/erfcf.c
src/math/erfcl.c
src/math/erff.c
src/math/erfl.c
src/math/exp.c
src/math/exp10.c
src/math/exp10f.c
src/math/exp10l.c
src/math/exp2.c
src/math/exp2f.c
src/math/exp2l.c
src/math/expf.c
src/math/expl.c
src/math/expm1.c
src/math/expm1f.c
src/math/expm1l.c
src/math/fabs.c
src/math/fabsf.c
src/math/fabsl.c
src/math/fdim.c
src/math/fdimf.c
src/math/fdiml.c
src/math/floor.c
src/math/floorf.c
src/math/floorl.c
src/math/fma.c
src/math/fmaf.c
src/math/fmal.c
src/math/fmax.c
src/math/fmaxf.c
src/math/fmaxl.c
src/math/fmin.c
src/math/fminf.c
src/math/fminl.c
src/math/fmod.c
src/math/fmodf.c
src/math/fmodl.c
src/math/frexp.c
src/math/frexpf.c
src/math/frexpl.c
src/math/hypot.c
src/math/hypotf.c
src/math/hypotl.c
src/math/ilogb.c
src/math/ilogbf.c
src/math/ilogbl.c
src/math/j0.c
src/math/j0f.c
src/math/j1.c
src/math/j1f.c
src/math/jn.c
src/math/jnf.c
src/math/ldexp.c
src/math/ldexpf.c
src/math/ldexpl.c
src/math/lgamma.c
src/math/lgamma_r.c
src/math/lgammaf.c
src/math/lgammaf_r.c
src/math/lgammal.c
src/math/lgammal_r.c
src/math/llrint.c
src/math/llrintf.c
src/math/llrintl.c
src/math/llround.c
src/math/llroundf.c
src/math/llroundl.c
src/math/log.c
src/math/log10.c
src/math/log10f.c
src/math/log10l.c
src/math/log1p.c
src/math/log1pf.c
src/math/log1pl.c
src/math/log2.c
src/math/log2f.c
src/math/log2l.c
src/math/logb.c
src/math/logbf.c
src/math/logbl.c
src/math/logf.c
src/math/logl.c
src/math/lrint.c
src/math/lrintf.c
src/math/lrintl.c
src/math/lround.c
src/math/lroundf.c
src/math/lroundl.c
src/math/modf.c
src/math/modff.c
src/math/modfl.c
src/math/nearbyint.c
src/math/nearbyintf.c
src/math/nearbyintl.c
src/math/nextafter.c
src/math/nextafterf.c
src/math/nextafterl.c
src/math/nexttoward.c
src/math/nexttowardf.c
src/math/nexttowardl.c
src/math/pow.c
src/math/pow10.c
src/math/pow10f.c
src/math/pow10l.c
src/math/powf.c
src/math/powl.c
src/math/remainder.c
src/math/remainderf.c
src/math/remainderl.c
src/math/remquo.c
src/math/remquof.c
src/math/remquol.c
src/math/rint.c
src/math/rintf.c
src/math/rintl.c
src/math/round.c
src/math/roundf.c
src/math/roundl.c
src/math/scalb.c
src/math/scalbf.c
src/math/scalbln.c
src/math/scalblnf.c
src/math/scalblnl.c
src/math/scalbn.c
src/math/scalbnf.c
src/math/scalbnl.c
src/math/sin.c
src/math/sincos.c
src/math/sincosf.c
src/math/sincosl.c
src/math/sinf.c
src/math/sinh.c
src/math/sinhf.c
src/math/sinhl.c
src/math/sinl.c
src/math/special/acos.h [new file with mode: 0644]
src/math/special/acosf.h [new file with mode: 0644]
src/math/special/acosh.h [new file with mode: 0644]
src/math/special/acoshf.h [new file with mode: 0644]
src/math/special/acoshl.h [new file with mode: 0644]
src/math/special/acosl.h [new file with mode: 0644]
src/math/special/asin.h [new file with mode: 0644]
src/math/special/asinf.h [new file with mode: 0644]
src/math/special/asinh.h [new file with mode: 0644]
src/math/special/asinhf.h [new file with mode: 0644]
src/math/special/asinhl.h [new file with mode: 0644]
src/math/special/asinl.h [new file with mode: 0644]
src/math/special/atan.h [new file with mode: 0644]
src/math/special/atan2.h [new file with mode: 0644]
src/math/special/atan2f.h [new file with mode: 0644]
src/math/special/atan2l.h [new file with mode: 0644]
src/math/special/atanf.h [new file with mode: 0644]
src/math/special/atanh.h [new file with mode: 0644]
src/math/special/atanhf.h [new file with mode: 0644]
src/math/special/atanhl.h [new file with mode: 0644]
src/math/special/atanl.h [new file with mode: 0644]
src/math/special/cbrt.h [new file with mode: 0644]
src/math/special/cbrtf.h [new file with mode: 0644]
src/math/special/cbrtl.h [new file with mode: 0644]
src/math/special/ceil.h [new file with mode: 0644]
src/math/special/ceilf.h [new file with mode: 0644]
src/math/special/ceill.h [new file with mode: 0644]
src/math/special/copysign.h [new file with mode: 0644]
src/math/special/copysignf.h [new file with mode: 0644]
src/math/special/copysignl.h [new file with mode: 0644]
src/math/special/cos.h [new file with mode: 0644]
src/math/special/cosf.h [new file with mode: 0644]
src/math/special/cosh.h [new file with mode: 0644]
src/math/special/coshf.h [new file with mode: 0644]
src/math/special/coshl.h [new file with mode: 0644]
src/math/special/cosl.h [new file with mode: 0644]
src/math/special/erf.h [new file with mode: 0644]
src/math/special/erfc.h [new file with mode: 0644]
src/math/special/erfcf.h [new file with mode: 0644]
src/math/special/erfcl.h [new file with mode: 0644]
src/math/special/erff.h [new file with mode: 0644]
src/math/special/erfl.h [new file with mode: 0644]
src/math/special/exp.h [new file with mode: 0644]
src/math/special/exp10.h [new file with mode: 0644]
src/math/special/exp10f.h [new file with mode: 0644]
src/math/special/exp10l.h [new file with mode: 0644]
src/math/special/exp2.h [new file with mode: 0644]
src/math/special/exp2f.h [new file with mode: 0644]
src/math/special/exp2l.h [new file with mode: 0644]
src/math/special/expf.h [new file with mode: 0644]
src/math/special/expl.h [new file with mode: 0644]
src/math/special/expm1.h [new file with mode: 0644]
src/math/special/expm1f.h [new file with mode: 0644]
src/math/special/expm1l.h [new file with mode: 0644]
src/math/special/fabs.h [new file with mode: 0644]
src/math/special/fabsf.h [new file with mode: 0644]
src/math/special/fabsl.h [new file with mode: 0644]
src/math/special/fdim.h [new file with mode: 0644]
src/math/special/fdimf.h [new file with mode: 0644]
src/math/special/fdiml.h [new file with mode: 0644]
src/math/special/floor.h [new file with mode: 0644]
src/math/special/floorf.h [new file with mode: 0644]
src/math/special/floorl.h [new file with mode: 0644]
src/math/special/fma.h [new file with mode: 0644]
src/math/special/fmaf.h [new file with mode: 0644]
src/math/special/fmal.h [new file with mode: 0644]
src/math/special/fmax.h [new file with mode: 0644]
src/math/special/fmaxf.h [new file with mode: 0644]
src/math/special/fmaxl.h [new file with mode: 0644]
src/math/special/fmin.h [new file with mode: 0644]
src/math/special/fminf.h [new file with mode: 0644]
src/math/special/fminl.h [new file with mode: 0644]
src/math/special/fmod.h [new file with mode: 0644]
src/math/special/fmodf.h [new file with mode: 0644]
src/math/special/fmodl.h [new file with mode: 0644]
src/math/special/frexp.h [new file with mode: 0644]
src/math/special/frexpf.h [new file with mode: 0644]
src/math/special/frexpl.h [new file with mode: 0644]
src/math/special/hypot.h [new file with mode: 0644]
src/math/special/hypotf.h [new file with mode: 0644]
src/math/special/hypotl.h [new file with mode: 0644]
src/math/special/ilogb.h [new file with mode: 0644]
src/math/special/ilogbf.h [new file with mode: 0644]
src/math/special/ilogbl.h [new file with mode: 0644]
src/math/special/j0.h [new file with mode: 0644]
src/math/special/j0f.h [new file with mode: 0644]
src/math/special/j1.h [new file with mode: 0644]
src/math/special/j1f.h [new file with mode: 0644]
src/math/special/jn.h [new file with mode: 0644]
src/math/special/jnf.h [new file with mode: 0644]
src/math/special/ldexp.h [new file with mode: 0644]
src/math/special/ldexpf.h [new file with mode: 0644]
src/math/special/ldexpl.h [new file with mode: 0644]
src/math/special/lgamma.h [new file with mode: 0644]
src/math/special/lgamma_r.h [new file with mode: 0644]
src/math/special/lgammaf.h [new file with mode: 0644]
src/math/special/lgammaf_r.h [new file with mode: 0644]
src/math/special/lgammal.h [new file with mode: 0644]
src/math/special/lgammal_r.h [new file with mode: 0644]
src/math/special/llrint.h [new file with mode: 0644]
src/math/special/llrintf.h [new file with mode: 0644]
src/math/special/llrintl.h [new file with mode: 0644]
src/math/special/llround.h [new file with mode: 0644]
src/math/special/llroundf.h [new file with mode: 0644]
src/math/special/llroundl.h [new file with mode: 0644]
src/math/special/log.h [new file with mode: 0644]
src/math/special/log10.h [new file with mode: 0644]
src/math/special/log10f.h [new file with mode: 0644]
src/math/special/log10l.h [new file with mode: 0644]
src/math/special/log1p.h [new file with mode: 0644]
src/math/special/log1pf.h [new file with mode: 0644]
src/math/special/log1pl.h [new file with mode: 0644]
src/math/special/log2.h [new file with mode: 0644]
src/math/special/log2f.h [new file with mode: 0644]
src/math/special/log2l.h [new file with mode: 0644]
src/math/special/logb.h [new file with mode: 0644]
src/math/special/logbf.h [new file with mode: 0644]
src/math/special/logbl.h [new file with mode: 0644]
src/math/special/logf.h [new file with mode: 0644]
src/math/special/logl.h [new file with mode: 0644]
src/math/special/lrint.h [new file with mode: 0644]
src/math/special/lrintf.h [new file with mode: 0644]
src/math/special/lrintl.h [new file with mode: 0644]
src/math/special/lround.h [new file with mode: 0644]
src/math/special/lroundf.h [new file with mode: 0644]
src/math/special/lroundl.h [new file with mode: 0644]
src/math/special/modf.h [new file with mode: 0644]
src/math/special/modff.h [new file with mode: 0644]
src/math/special/modfl.h [new file with mode: 0644]
src/math/special/nearbyint.h [new file with mode: 0644]
src/math/special/nearbyintf.h [new file with mode: 0644]
src/math/special/nearbyintl.h [new file with mode: 0644]
src/math/special/nextafter.h [new file with mode: 0644]
src/math/special/nextafterf.h [new file with mode: 0644]
src/math/special/nextafterl.h [new file with mode: 0644]
src/math/special/nexttoward.h [new file with mode: 0644]
src/math/special/nexttowardf.h [new file with mode: 0644]
src/math/special/nexttowardl.h [new file with mode: 0644]
src/math/special/pow.h [new file with mode: 0644]
src/math/special/powf.h [new file with mode: 0644]
src/math/special/powl.h [new file with mode: 0644]
src/math/special/remainder.h [new file with mode: 0644]
src/math/special/remainderf.h [new file with mode: 0644]
src/math/special/remainderl.h [new file with mode: 0644]
src/math/special/remquo.h [new file with mode: 0644]
src/math/special/remquof.h [new file with mode: 0644]
src/math/special/remquol.h [new file with mode: 0644]
src/math/special/rint.h [new file with mode: 0644]
src/math/special/rintf.h [new file with mode: 0644]
src/math/special/rintl.h [new file with mode: 0644]
src/math/special/round.h [new file with mode: 0644]
src/math/special/roundf.h [new file with mode: 0644]
src/math/special/roundl.h [new file with mode: 0644]
src/math/special/scalb.h [new file with mode: 0644]
src/math/special/scalbf.h [new file with mode: 0644]
src/math/special/scalbln.h [new file with mode: 0644]
src/math/special/scalblnf.h [new file with mode: 0644]
src/math/special/scalblnl.h [new file with mode: 0644]
src/math/special/scalbn.h [new file with mode: 0644]
src/math/special/scalbnf.h [new file with mode: 0644]
src/math/special/scalbnl.h [new file with mode: 0644]
src/math/special/sin.h [new file with mode: 0644]
src/math/special/sincos.h [new file with mode: 0644]
src/math/special/sincosf.h [new file with mode: 0644]
src/math/special/sincosl.h [new file with mode: 0644]
src/math/special/sinf.h [new file with mode: 0644]
src/math/special/sinh.h [new file with mode: 0644]
src/math/special/sinhf.h [new file with mode: 0644]
src/math/special/sinhl.h [new file with mode: 0644]
src/math/special/sinl.h [new file with mode: 0644]
src/math/special/sqrt.h [new file with mode: 0644]
src/math/special/sqrtf.h [new file with mode: 0644]
src/math/special/sqrtl.h [new file with mode: 0644]
src/math/special/tan.h [new file with mode: 0644]
src/math/special/tanf.h [new file with mode: 0644]
src/math/special/tanh.h [new file with mode: 0644]
src/math/special/tanhf.h [new file with mode: 0644]
src/math/special/tanhl.h [new file with mode: 0644]
src/math/special/tanl.h [new file with mode: 0644]
src/math/special/tgamma.h [new file with mode: 0644]
src/math/special/tgammaf.h [new file with mode: 0644]
src/math/special/tgammal.h [new file with mode: 0644]
src/math/special/trunc.h [new file with mode: 0644]
src/math/special/truncf.h [new file with mode: 0644]
src/math/special/truncl.h [new file with mode: 0644]
src/math/special/y0.h [new file with mode: 0644]
src/math/special/y0f.h [new file with mode: 0644]
src/math/special/y1.h [new file with mode: 0644]
src/math/special/y1f.h [new file with mode: 0644]
src/math/special/yn.h [new file with mode: 0644]
src/math/special/ynf.h [new file with mode: 0644]
src/math/sqrt.c
src/math/sqrtf.c
src/math/sqrtl.c
src/math/tan.c
src/math/tanf.c
src/math/tanh.c
src/math/tanhf.c
src/math/tanhl.c
src/math/tanl.c
src/math/tgamma.c
src/math/tgammaf.c
src/math/tgammal.c
src/math/trunc.c
src/math/truncf.c
src/math/truncl.c
src/math/y0.c
src/math/y0f.c
src/math/y1.c
src/math/y1f.c
src/math/yn.c
src/math/ynf.c

index 09c1dd2..f37b41f 100644 (file)
@@ -6,6 +6,7 @@ static struct d_d t[] = {
 #include "crlibm/acos.h"
 #include "ucb/acos.h"
 #include "sanity/acos.h"
+#include "special/acos.h"
 
 };
 
index 8a35f06..a9b3679 100644 (file)
@@ -5,6 +5,7 @@
 static struct f_f t[] = {
 #include "ucb/acosf.h"
 #include "sanity/acosf.h"
+#include "special/acosf.h"
 
 };
 
index c0620d8..4eb07a2 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_d t[] = {
 #include "sanity/acosh.h"
+#include "special/acosh.h"
 
 };
 
index 37a29b9..863cc51 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_f t[] = {
 #include "sanity/acoshf.h"
+#include "special/acoshf.h"
 
 };
 
index d4146ee..0da0538 100644 (file)
@@ -5,9 +5,11 @@
 static struct l_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/acosh.h"
+#include "special/acosh.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/acoshl.h"
+#include "special/acoshl.h"
 
 #endif
 };
index 5ac9a79..ffa7d93 100644 (file)
@@ -7,9 +7,11 @@ static struct l_l t[] = {
 #include "crlibm/acos.h"
 #include "ucb/acos.h"
 #include "sanity/acos.h"
+#include "special/acos.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/acosl.h"
+#include "special/acosl.h"
 
 #endif
 };
index 64d950c..4b4cab7 100644 (file)
@@ -6,6 +6,7 @@ static struct d_d t[] = {
 #include "crlibm/asin.h"
 #include "ucb/asin.h"
 #include "sanity/asin.h"
+#include "special/asin.h"
 
 };
 
index 38a3e9f..2d3e7f9 100644 (file)
@@ -5,6 +5,7 @@
 static struct f_f t[] = {
 #include "ucb/asinf.h"
 #include "sanity/asinf.h"
+#include "special/asinf.h"
 
 };
 
index fc9e68c..db59b79 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_d t[] = {
 #include "sanity/asinh.h"
+#include "special/asinh.h"
 
 };
 
index 90260e1..45de975 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_f t[] = {
 #include "sanity/asinhf.h"
+#include "special/asinhf.h"
 
 };
 
index 8be196e..e0fcddc 100644 (file)
@@ -5,9 +5,11 @@
 static struct l_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/asinh.h"
+#include "special/asinh.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/asinhl.h"
+#include "special/asinhl.h"
 
 #endif
 };
index 1084c79..3ee29db 100644 (file)
@@ -7,9 +7,11 @@ static struct l_l t[] = {
 #include "crlibm/asin.h"
 #include "ucb/asin.h"
 #include "sanity/asin.h"
+#include "special/asin.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/asinl.h"
+#include "special/asinl.h"
 
 #endif
 };
index 825f2ce..04a7a0d 100644 (file)
@@ -6,6 +6,7 @@ static struct d_d t[] = {
 #include "crlibm/atan.h"
 #include "ucb/atan.h"
 #include "sanity/atan.h"
+#include "special/atan.h"
 
 };
 
index 0772893..8f748f4 100644 (file)
@@ -5,6 +5,7 @@
 static struct dd_d t[] = {
 #include "ucb/atan2.h"
 #include "sanity/atan2.h"
+#include "special/atan2.h"
 
 };
 
index e5d742d..5f66b9b 100644 (file)
@@ -5,6 +5,7 @@
 static struct ff_f t[] = {
 #include "ucb/atan2f.h"
 #include "sanity/atan2f.h"
+#include "special/atan2f.h"
 
 };
 
index d6d5ae4..be3c8fb 100644 (file)
@@ -6,9 +6,11 @@ static struct ll_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "ucb/atan2.h"
 #include "sanity/atan2.h"
+#include "special/atan2.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/atan2l.h"
+#include "special/atan2l.h"
 
 #endif
 };
index 3e35a3c..64c6489 100644 (file)
@@ -5,6 +5,7 @@
 static struct f_f t[] = {
 #include "ucb/atanf.h"
 #include "sanity/atanf.h"
+#include "special/atanf.h"
 
 };
 
index ec41ac5..d7b532e 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_d t[] = {
 #include "sanity/atanh.h"
+#include "special/atanh.h"
 
 };
 
index 3fa6c33..9b264b8 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_f t[] = {
 #include "sanity/atanhf.h"
+#include "special/atanhf.h"
 
 };
 
index 4d986da..05cb556 100644 (file)
@@ -5,9 +5,11 @@
 static struct l_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/atanh.h"
+#include "special/atanh.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/atanhl.h"
+#include "special/atanhl.h"
 
 #endif
 };
index 73d7993..db6676d 100644 (file)
@@ -7,9 +7,11 @@ static struct l_l t[] = {
 #include "crlibm/atan.h"
 #include "ucb/atan.h"
 #include "sanity/atan.h"
+#include "special/atan.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/atanl.h"
+#include "special/atanl.h"
 
 #endif
 };
index 55ecc5a..5411dd1 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_d t[] = {
 #include "sanity/cbrt.h"
+#include "special/cbrt.h"
 
 };
 
index 305d03f..b2395b4 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_f t[] = {
 #include "sanity/cbrtf.h"
+#include "special/cbrtf.h"
 
 };
 
index 79f1749..e9547d7 100644 (file)
@@ -5,9 +5,11 @@
 static struct l_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/cbrt.h"
+#include "special/cbrt.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/cbrtl.h"
+#include "special/cbrtl.h"
 
 #endif
 };
index e19e0a5..d9fd6c3 100644 (file)
@@ -5,6 +5,7 @@
 static struct d_d t[] = {
 #include "ucb/ceil.h"
 #include "sanity/ceil.h"
+#include "special/ceil.h"
 
 };
 
index 2afa703..4f37ae7 100644 (file)
@@ -5,6 +5,7 @@
 static struct f_f t[] = {
 #include "ucb/ceilf.h"
 #include "sanity/ceilf.h"
+#include "special/ceilf.h"
 
 };
 
index 23f5b2b..b2707b9 100644 (file)
@@ -6,9 +6,11 @@ static struct l_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "ucb/ceil.h"
 #include "sanity/ceil.h"
+#include "special/ceil.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/ceill.h"
+#include "special/ceill.h"
 
 #endif
 };
index 829780e..23ab8e3 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct dd_d t[] = {
 #include "sanity/copysign.h"
+#include "special/copysign.h"
 
 };
 
index 3e86729..705b6ca 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct ff_f t[] = {
 #include "sanity/copysignf.h"
+#include "special/copysignf.h"
 
 };
 
index bdab602..6ecf7b1 100644 (file)
@@ -5,9 +5,11 @@
 static struct ll_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/copysign.h"
+#include "special/copysign.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/copysignl.h"
+#include "special/copysignl.h"
 
 #endif
 };
index 485efad..16f5e04 100644 (file)
@@ -6,6 +6,7 @@ static struct d_d t[] = {
 #include "crlibm/cos.h"
 #include "ucb/cos.h"
 #include "sanity/cos.h"
+#include "special/cos.h"
 
 };
 
index 4dc55cd..e29c640 100644 (file)
@@ -5,6 +5,7 @@
 static struct f_f t[] = {
 #include "ucb/cosf.h"
 #include "sanity/cosf.h"
+#include "special/cosf.h"
 
 };
 
index 6820d09..493ff34 100644 (file)
@@ -6,6 +6,7 @@ static struct d_d t[] = {
 #include "crlibm/cosh.h"
 #include "ucb/cosh.h"
 #include "sanity/cosh.h"
+#include "special/cosh.h"
 
 };
 
index b2ec5b0..8023cd6 100644 (file)
@@ -5,6 +5,7 @@
 static struct f_f t[] = {
 #include "ucb/coshf.h"
 #include "sanity/coshf.h"
+#include "special/coshf.h"
 
 };
 
index 0dc737e..ffbbde9 100644 (file)
@@ -7,9 +7,11 @@ static struct l_l t[] = {
 #include "crlibm/cosh.h"
 #include "ucb/cosh.h"
 #include "sanity/cosh.h"
+#include "special/cosh.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/coshl.h"
+#include "special/coshl.h"
 
 #endif
 };
index cb11ddc..7827659 100644 (file)
@@ -7,9 +7,11 @@ static struct l_l t[] = {
 #include "crlibm/cos.h"
 #include "ucb/cos.h"
 #include "sanity/cos.h"
+#include "special/cos.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/cosl.h"
+#include "special/cosl.h"
 
 #endif
 };
index cb60a63..81843c8 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_d t[] = {
 #include "sanity/erf.h"
+#include "special/erf.h"
 
 };
 
index 6834d5d..8d83372 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_d t[] = {
 #include "sanity/erfc.h"
+#include "special/erfc.h"
 
 };
 
index d226d40..6570c92 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_f t[] = {
 #include "sanity/erfcf.h"
+#include "special/erfcf.h"
 
 };
 
index 4e7ffec..8a362b8 100644 (file)
@@ -5,9 +5,11 @@
 static struct l_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/erfc.h"
+#include "special/erfc.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/erfcl.h"
+#include "special/erfcl.h"
 
 #endif
 };
index a399e50..1fb465a 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_f t[] = {
 #include "sanity/erff.h"
+#include "special/erff.h"
 
 };
 
index 753885d..c6f636f 100644 (file)
@@ -5,9 +5,11 @@
 static struct l_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/erf.h"
+#include "special/erf.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/erfl.h"
+#include "special/erfl.h"
 
 #endif
 };
index e7a77a7..fcc49d3 100644 (file)
@@ -6,6 +6,7 @@ static struct d_d t[] = {
 #include "crlibm/exp.h"
 #include "ucb/exp.h"
 #include "sanity/exp.h"
+#include "special/exp.h"
 
 };
 
index 49cc61a..e549839 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_d t[] = {
 #include "sanity/exp10.h"
+#include "special/exp10.h"
 
 };
 
index 3ed2232..1ad776e 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_f t[] = {
 #include "sanity/exp10f.h"
+#include "special/exp10f.h"
 
 };
 
index 3651a6d..30db1d1 100644 (file)
@@ -5,9 +5,11 @@
 static struct l_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/exp10.h"
+#include "special/exp10.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/exp10l.h"
+#include "special/exp10l.h"
 
 #endif
 };
index 0a1ccb6..cd73ddd 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_d t[] = {
 #include "sanity/exp2.h"
+#include "special/exp2.h"
 
 };
 
index 9d29780..b6c93c5 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_f t[] = {
 #include "sanity/exp2f.h"
+#include "special/exp2f.h"
 
 };
 
index 72d6ead..2a669e0 100644 (file)
@@ -5,9 +5,11 @@
 static struct l_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/exp2.h"
+#include "special/exp2.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/exp2l.h"
+#include "special/exp2l.h"
 
 #endif
 };
index 87d8c5c..6391087 100644 (file)
@@ -5,6 +5,7 @@
 static struct f_f t[] = {
 #include "ucb/expf.h"
 #include "sanity/expf.h"
+#include "special/expf.h"
 
 };
 
index 6e118df..e4d3065 100644 (file)
@@ -7,9 +7,11 @@ static struct l_l t[] = {
 #include "crlibm/exp.h"
 #include "ucb/exp.h"
 #include "sanity/exp.h"
+#include "special/exp.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/expl.h"
+#include "special/expl.h"
 
 #endif
 };
index 70fdfef..662660a 100644 (file)
@@ -5,6 +5,7 @@
 static struct d_d t[] = {
 #include "crlibm/expm1.h"
 #include "sanity/expm1.h"
+#include "special/expm1.h"
 
 };
 
index 6f72d47..9c9ef60 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_f t[] = {
 #include "sanity/expm1f.h"
+#include "special/expm1f.h"
 
 };
 
index 7950542..02b4e8f 100644 (file)
@@ -6,9 +6,11 @@ static struct l_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "crlibm/expm1.h"
 #include "sanity/expm1.h"
+#include "special/expm1.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/expm1l.h"
+#include "special/expm1l.h"
 
 #endif
 };
index 5c156d5..e597ec2 100644 (file)
@@ -5,6 +5,7 @@
 static struct d_d t[] = {
 #include "ucb/fabs.h"
 #include "sanity/fabs.h"
+#include "special/fabs.h"
 
 };
 
index 11abddf..f572799 100644 (file)
@@ -5,6 +5,7 @@
 static struct f_f t[] = {
 #include "ucb/fabsf.h"
 #include "sanity/fabsf.h"
+#include "special/fabsf.h"
 
 };
 
index ac65003..8989792 100644 (file)
@@ -6,9 +6,11 @@ static struct l_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "ucb/fabs.h"
 #include "sanity/fabs.h"
+#include "special/fabs.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/fabsl.h"
+#include "special/fabsl.h"
 
 #endif
 };
index c5680cc..d73eece 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct dd_d t[] = {
 #include "sanity/fdim.h"
+#include "special/fdim.h"
 
 };
 
index d7792bf..f48d25b 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct ff_f t[] = {
 #include "sanity/fdimf.h"
+#include "special/fdimf.h"
 
 };
 
index 9f6eb95..a709b2e 100644 (file)
@@ -5,9 +5,11 @@
 static struct ll_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/fdim.h"
+#include "special/fdim.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/fdiml.h"
+#include "special/fdiml.h"
 
 #endif
 };
index 6b035cc..be08516 100644 (file)
@@ -5,6 +5,7 @@
 static struct d_d t[] = {
 #include "ucb/floor.h"
 #include "sanity/floor.h"
+#include "special/floor.h"
 
 };
 
index 63ee702..71fe0fe 100644 (file)
@@ -5,6 +5,7 @@
 static struct f_f t[] = {
 #include "ucb/floorf.h"
 #include "sanity/floorf.h"
+#include "special/floorf.h"
 
 };
 
index 4c91694..f2cf4e8 100644 (file)
@@ -6,9 +6,11 @@ static struct l_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "ucb/floor.h"
 #include "sanity/floor.h"
+#include "special/floor.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/floorl.h"
+#include "special/floorl.h"
 
 #endif
 };
index 88acd08..bb83520 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct ddd_d t[] = {
 #include "sanity/fma.h"
+#include "special/fma.h"
 };
 
 int main(void)
index 05fb09a..0a0e196 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct fff_f t[] = {
 #include "sanity/fmaf.h"
+#include "special/fmaf.h"
 };
 
 int main(void)
index 6b76bc5..ef350c8 100644 (file)
@@ -5,8 +5,10 @@
 static struct lll_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/fma.h"
+#include "special/fma.h"
 #elif LDBL_MANT_DIG == 64
 #include "sanity/fmal.h"
+#include "special/fmal.h"
 #endif
 };
 
index 9b3a8cf..5479ad9 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct dd_d t[] = {
 #include "sanity/fmax.h"
+#include "special/fmax.h"
 
 };
 
index d90b908..cd34a3b 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct ff_f t[] = {
 #include "sanity/fmaxf.h"
+#include "special/fmaxf.h"
 
 };
 
index f793c0c..1706207 100644 (file)
@@ -5,9 +5,11 @@
 static struct ll_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/fmax.h"
+#include "special/fmax.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/fmaxl.h"
+#include "special/fmaxl.h"
 
 #endif
 };
index 062dd63..542d6c0 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct dd_d t[] = {
 #include "sanity/fmin.h"
+#include "special/fmin.h"
 
 };
 
index b649110..3d3a97b 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct ff_f t[] = {
 #include "sanity/fminf.h"
+#include "special/fminf.h"
 
 };
 
index c3c4ffd..64e1167 100644 (file)
@@ -5,9 +5,11 @@
 static struct ll_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/fmin.h"
+#include "special/fmin.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/fminl.h"
+#include "special/fminl.h"
 
 #endif
 };
index 3e66c95..5424768 100644 (file)
@@ -5,6 +5,7 @@
 static struct dd_d t[] = {
 #include "ucb/fmod.h"
 #include "sanity/fmod.h"
+#include "special/fmod.h"
 
 };
 
index d92a7e6..7709b48 100644 (file)
@@ -5,6 +5,7 @@
 static struct ff_f t[] = {
 #include "ucb/fmodf.h"
 #include "sanity/fmodf.h"
+#include "special/fmodf.h"
 
 };
 
index 7f715e3..51d589a 100644 (file)
@@ -6,9 +6,11 @@ static struct ll_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "ucb/fmod.h"
 #include "sanity/fmod.h"
+#include "special/fmod.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/fmodl.h"
+#include "special/fmodl.h"
 
 #endif
 };
index bf0eb9a..5935422 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_di t[] = {
 #include "sanity/frexp.h"
+#include "special/frexp.h"
 
 };
 
index 773540a..8763be5 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_fi t[] = {
 #include "sanity/frexpf.h"
+#include "special/frexpf.h"
 
 };
 
index 23fffa1..e04821b 100644 (file)
@@ -5,9 +5,11 @@
 static struct l_li t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/frexp.h"
+#include "special/frexp.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/frexpl.h"
+#include "special/frexpl.h"
 
 #endif
 };
index 842ceb4..b2df491 100644 (file)
@@ -5,6 +5,7 @@
 static struct dd_d t[] = {
 #include "ucb/hypot.h"
 #include "sanity/hypot.h"
+#include "special/hypot.h"
 
 };
 
index 7b47807..82bbcde 100644 (file)
@@ -5,6 +5,7 @@
 static struct ff_f t[] = {
 #include "ucb/hypotf.h"
 #include "sanity/hypotf.h"
+#include "special/hypotf.h"
 
 };
 
index 290bc80..c8be939 100644 (file)
@@ -6,9 +6,11 @@ static struct ll_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "ucb/hypot.h"
 #include "sanity/hypot.h"
+#include "special/hypot.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/hypotl.h"
+#include "special/hypotl.h"
 
 #endif
 };
index 1850870..3d646bc 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_i t[] = {
 #include "sanity/ilogb.h"
+#include "special/ilogb.h"
 
 };
 
index b5e5439..a3d3dcd 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_i t[] = {
 #include "sanity/ilogbf.h"
+#include "special/ilogbf.h"
 
 };
 
index 1dcac12..f34c891 100644 (file)
@@ -5,9 +5,11 @@
 static struct l_i t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/ilogb.h"
+#include "special/ilogb.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/ilogbl.h"
+#include "special/ilogbl.h"
 
 #endif
 };
index e1faf28..7e4742d 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_d t[] = {
 #include "sanity/j0.h"
+#include "special/j0.h"
 
 };
 
index 6349596..5a4af20 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_f t[] = {
 #include "sanity/j0f.h"
+#include "special/j0f.h"
 
 };
 
index c21721b..d9a2489 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_d t[] = {
 #include "sanity/j1.h"
+#include "special/j1.h"
 
 };
 
index 38123fb..a4e35bd 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_f t[] = {
 #include "sanity/j1f.h"
+#include "special/j1f.h"
 
 };
 
index 96658dd..94b3152 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct di_d t[] = {
 #include "sanity/jn.h"
+#include "special/jn.h"
 };
 
 int main(void)
index 7b163d7..66294d2 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct fi_f t[] = {
 #include "sanity/jnf.h"
+#include "special/jnf.h"
 };
 
 int main(void)
index 1d18160..7a5ac00 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct di_d t[] = {
 #include "sanity/ldexp.h"
+#include "special/ldexp.h"
 
 };
 
index 37a7c03..9fb870f 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct fi_f t[] = {
 #include "sanity/ldexpf.h"
+#include "special/ldexpf.h"
 
 };
 
index c45e9c5..331cb7e 100644 (file)
@@ -5,9 +5,11 @@
 static struct li_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/ldexp.h"
+#include "special/ldexp.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/ldexpl.h"
+#include "special/ldexpl.h"
 
 #endif
 };
index d76538f..cd74903 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_di t[] = {
 #include "sanity/lgamma.h"
+#include "special/lgamma.h"
 
 };
 
index c2acb99..0645feb 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_di t[] = {
 #include "sanity/lgamma_r.h"
+#include "special/lgamma_r.h"
 
 };
 
index 86d83db..26edb68 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_fi t[] = {
 #include "sanity/lgammaf.h"
+#include "special/lgammaf.h"
 
 };
 
index 8f69e0c..e1a52d8 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_fi t[] = {
 #include "sanity/lgammaf_r.h"
+#include "special/lgammaf_r.h"
 
 };
 
index d282de2..352df9b 100644 (file)
@@ -5,9 +5,11 @@
 static struct l_li t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/lgamma.h"
+#include "special/lgamma.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/lgammal.h"
+#include "special/lgammal.h"
 
 #endif
 };
index 2ebe612..9813f4e 100644 (file)
@@ -4,10 +4,12 @@
 
 static struct l_li t[] = {
 #if LDBL_MANT_DIG == 53
-#include "sanity/lgammal_r.h"
+#include "sanity/lgamma_r.h"
+#include "special/lgamma_r.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/lgammal_r.h"
+#include "special/lgammal_r.h"
 
 #endif
 };
index 6a3ba26..3ad7540 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_i t[] = {
 #include "sanity/llrint.h"
+#include "special/llrint.h"
 
 };
 
index 27507c6..2f19d56 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_i t[] = {
 #include "sanity/llrintf.h"
+#include "special/llrintf.h"
 
 };
 
index 9bc8ed3..91d5447 100644 (file)
@@ -5,9 +5,11 @@
 static struct l_i t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/llrint.h"
+#include "special/llrint.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/llrintl.h"
+#include "special/llrintl.h"
 
 #endif
 };
index 37b5c1a..403fa23 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_i t[] = {
 #include "sanity/llround.h"
+#include "special/llround.h"
 
 };
 
index dc55f46..34c0ceb 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_i t[] = {
 #include "sanity/llroundf.h"
+#include "special/llroundf.h"
 
 };
 
index 04917fe..8c1fdc8 100644 (file)
@@ -5,9 +5,11 @@
 static struct l_i t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/llround.h"
+#include "special/llround.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/llroundl.h"
+#include "special/llroundl.h"
 
 #endif
 };
index 5e5d5c4..b2d2d08 100644 (file)
@@ -6,6 +6,7 @@ static struct d_d t[] = {
 #include "crlibm/log.h"
 #include "ucb/log.h"
 #include "sanity/log.h"
+#include "special/log.h"
 
 };
 
index 91558cd..81917fd 100644 (file)
@@ -6,6 +6,7 @@ static struct d_d t[] = {
 #include "crlibm/log10.h"
 #include "ucb/log10.h"
 #include "sanity/log10.h"
+#include "special/log10.h"
 
 };
 
index 90689f5..8ae8d35 100644 (file)
@@ -5,6 +5,7 @@
 static struct f_f t[] = {
 #include "ucb/log10f.h"
 #include "sanity/log10f.h"
+#include "special/log10f.h"
 
 };
 
index 5548ec7..9cfdf1a 100644 (file)
@@ -7,9 +7,11 @@ static struct l_l t[] = {
 #include "crlibm/log10.h"
 #include "ucb/log10.h"
 #include "sanity/log10.h"
+#include "special/log10.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/log10l.h"
+#include "special/log10l.h"
 
 #endif
 };
index 0f96339..ec08393 100644 (file)
@@ -5,6 +5,7 @@
 static struct d_d t[] = {
 #include "crlibm/log1p.h"
 #include "sanity/log1p.h"
+#include "special/log1p.h"
 
 };
 
index fb738f6..90afd4f 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_f t[] = {
 #include "sanity/log1pf.h"
+#include "special/log1pf.h"
 
 };
 
index 07b0afa..53ff8d9 100644 (file)
@@ -6,9 +6,11 @@ static struct l_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "crlibm/log1p.h"
 #include "sanity/log1p.h"
+#include "special/log1p.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/log1pl.h"
+#include "special/log1pl.h"
 
 #endif
 };
index 25b8b2e..a9050e2 100644 (file)
@@ -5,6 +5,7 @@
 static struct d_d t[] = {
 #include "crlibm/log2.h"
 #include "sanity/log2.h"
+#include "special/log2.h"
 
 };
 
index 75e5991..dc6f41a 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_f t[] = {
 #include "sanity/log2f.h"
+#include "special/log2f.h"
 
 };
 
index a1a7315..0578864 100644 (file)
@@ -6,9 +6,11 @@ static struct l_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "crlibm/log2.h"
 #include "sanity/log2.h"
+#include "special/log2.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/log2l.h"
+#include "special/log2l.h"
 
 #endif
 };
index 597bd51..c9b90bc 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_d t[] = {
 #include "sanity/logb.h"
+#include "special/logb.h"
 
 };
 
index 12f4757..cb6d357 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_f t[] = {
 #include "sanity/logbf.h"
+#include "special/logbf.h"
 
 };
 
index 2c70eda..ad0ccff 100644 (file)
@@ -5,9 +5,11 @@
 static struct l_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/logb.h"
+#include "special/logb.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/logbl.h"
+#include "special/logbl.h"
 
 #endif
 };
index fbead36..4f07980 100644 (file)
@@ -5,6 +5,7 @@
 static struct f_f t[] = {
 #include "ucb/logf.h"
 #include "sanity/logf.h"
+#include "special/logf.h"
 
 };
 
index c9c27be..d2a351a 100644 (file)
@@ -7,9 +7,11 @@ static struct l_l t[] = {
 #include "crlibm/log.h"
 #include "ucb/log.h"
 #include "sanity/log.h"
+#include "special/log.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/logl.h"
+#include "special/logl.h"
 
 #endif
 };
index fd4bcc7..0d4bf85 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_i t[] = {
 #include "sanity/lrint.h"
+#include "special/lrint.h"
 
 };
 
index 7e9a0f4..9e2ac07 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_i t[] = {
 #include "sanity/lrintf.h"
+#include "special/lrintf.h"
 
 };
 
index 8d37d9c..bdb5d20 100644 (file)
@@ -5,9 +5,11 @@
 static struct l_i t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/lrint.h"
+#include "special/lrint.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/lrintl.h"
+#include "special/lrintl.h"
 
 #endif
 };
index 766d7c2..7041288 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_i t[] = {
 #include "sanity/lround.h"
+#include "special/lround.h"
 
 };
 
index 4a5eaa0..2f9a491 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_i t[] = {
 #include "sanity/lroundf.h"
+#include "special/lroundf.h"
 
 };
 
index 9cb7ee2..baa12e3 100644 (file)
@@ -5,9 +5,11 @@
 static struct l_i t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/lround.h"
+#include "special/lround.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/lroundl.h"
+#include "special/lroundl.h"
 
 #endif
 };
index f30582d..a8e26c1 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_dd t[] = {
 #include "sanity/modf.h"
+#include "special/modf.h"
 };
 
 int main(void)
index 0791dc0..ce91f98 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_ff t[] = {
 #include "sanity/modff.h"
+#include "special/modff.h"
 };
 
 int main(void)
index c555cd4..787fb8b 100644 (file)
@@ -5,8 +5,10 @@
 static struct l_ll t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/modf.h"
+#include "special/modf.h"
 #elif LDBL_MANT_DIG == 64
 #include "sanity/modfl.h"
+#include "special/modfl.h"
 #endif
 };
 
index db5a58c..282580d 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_d t[] = {
 #include "sanity/nearbyint.h"
+#include "special/nearbyint.h"
 
 };
 
index 4e8be0a..582c146 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_f t[] = {
 #include "sanity/nearbyintf.h"
+#include "special/nearbyintf.h"
 
 };
 
index a86e83b..9350be6 100644 (file)
@@ -5,9 +5,11 @@
 static struct l_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/nearbyint.h"
+#include "special/nearbyint.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/nearbyintl.h"
+#include "special/nearbyintl.h"
 
 #endif
 };
index 73c0844..844917e 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct dd_d t[] = {
 #include "sanity/nextafter.h"
+#include "special/nextafter.h"
 
 };
 
index 1f9c447..9f468f2 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct ff_f t[] = {
 #include "sanity/nextafterf.h"
+#include "special/nextafterf.h"
 
 };
 
index 58737ee..70fddb2 100644 (file)
@@ -5,9 +5,11 @@
 static struct ll_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/nextafter.h"
+#include "special/nextafter.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/nextafterl.h"
+#include "special/nextafterl.h"
 
 #endif
 };
index 1532127..f03a094 100644 (file)
@@ -2,12 +2,15 @@
 #include <stdio.h>
 #include "util.h"
 
+// TODO: fix ldbl
 static struct ll_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/nexttoward.h"
+#include "special/nexttoward.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/nexttoward.h"
+#include "special/nexttoward.h"
 
 #endif
 };
index 4b558b9..9e4b180 100644 (file)
@@ -2,12 +2,15 @@
 #include <stdio.h>
 #include "util.h"
 
+// TODO: separate ldbl dir
 static struct ll_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/nexttowardf.h"
+#include "special/nexttowardf.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/nexttowardf.h"
+#include "special/nexttowardf.h"
 
 #endif
 };
index 8625354..add01bb 100644 (file)
@@ -5,9 +5,11 @@
 static struct ll_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/nexttoward.h"
+#include "special/nexttoward.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/nexttowardl.h"
+#include "special/nexttowardl.h"
 
 #endif
 };
index f705f17..473dea9 100644 (file)
@@ -6,6 +6,7 @@ static struct dd_d t[] = {
 #include "crlibm/pow.h"
 #include "ucb/pow.h"
 #include "sanity/pow.h"
+#include "special/pow.h"
 
 };
 
index c85b517..9197398 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_d t[] = {
 #include "sanity/pow10.h"
+#include "special/exp10.h"
 
 };
 
index fd2a485..efb3207 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_f t[] = {
 #include "sanity/pow10f.h"
+#include "special/exp10f.h"
 
 };
 
index 3f1abae..19b03f8 100644 (file)
@@ -5,9 +5,11 @@
 static struct l_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/pow10.h"
+#include "special/exp10.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/pow10l.h"
+#include "special/exp10l.h"
 
 #endif
 };
index f11c260..d2d5236 100644 (file)
@@ -5,6 +5,7 @@
 static struct ff_f t[] = {
 #include "ucb/powf.h"
 #include "sanity/powf.h"
+#include "special/powf.h"
 
 };
 
index 8ceb6f1..1cb341e 100644 (file)
@@ -7,9 +7,11 @@ static struct ll_l t[] = {
 #include "crlibm/pow.h"
 #include "ucb/pow.h"
 #include "sanity/pow.h"
+#include "special/pow.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/powl.h"
+#include "special/powl.h"
 
 #endif
 };
index 4faa6d4..1c65edb 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct dd_d t[] = {
 #include "sanity/remainder.h"
+#include "special/remainder.h"
 
 };
 
index 6156c98..bc22fdc 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct ff_f t[] = {
 #include "sanity/remainderf.h"
+#include "special/remainderf.h"
 
 };
 
index 5ce0f97..f1c8be0 100644 (file)
@@ -5,9 +5,11 @@
 static struct ll_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/remainder.h"
+#include "special/remainder.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/remainderl.h"
+#include "special/remainderl.h"
 
 #endif
 };
index 64022f1..245cd1d 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct dd_di t[] = {
 #include "sanity/remquo.h"
+#include "special/remquo.h"
 };
 
 int main(void)
index 72f4d5b..933bc99 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct ff_fi t[] = {
 #include "sanity/remquof.h"
+#include "special/remquof.h"
 };
 
 int main(void)
index a06497d..c37fda2 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct ll_li t[] = {
 #include "sanity/remquol.h"
+#include "special/remquol.h"
 };
 
 int main(void)
index 36ecd2c..8826044 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_d t[] = {
 #include "sanity/rint.h"
+#include "special/rint.h"
 
 };
 
index 083413b..627c242 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_f t[] = {
 #include "sanity/rintf.h"
+#include "special/rintf.h"
 
 };
 
index e8cd73b..1879f3c 100644 (file)
@@ -5,9 +5,11 @@
 static struct l_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/rint.h"
+#include "special/rint.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/rintl.h"
+#include "special/rintl.h"
 
 #endif
 };
index ca5470b..86800d9 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_d t[] = {
 #include "sanity/round.h"
+#include "special/round.h"
 
 };
 
index 50c15dd..345d4f3 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_f t[] = {
 #include "sanity/roundf.h"
+#include "special/roundf.h"
 
 };
 
index 06abed6..53b254f 100644 (file)
@@ -5,9 +5,11 @@
 static struct l_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/round.h"
+#include "special/round.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/roundl.h"
+#include "special/roundl.h"
 
 #endif
 };
index 95a5533..70746b3 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct dd_d t[] = {
 #include "sanity/scalb.h"
+#include "special/scalb.h"
 
 };
 
index 8c190cc..9861b8c 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct ff_f t[] = {
 #include "sanity/scalbf.h"
+#include "special/scalbf.h"
 
 };
 
index 2b5124b..30be0cc 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct di_d t[] = {
 #include "sanity/scalbln.h"
+#include "special/scalbln.h"
 
 };
 
index 659bea4..1115508 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct fi_f t[] = {
 #include "sanity/scalblnf.h"
+#include "special/scalblnf.h"
 
 };
 
index fc9d0d8..12eb21c 100644 (file)
@@ -5,9 +5,11 @@
 static struct li_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/scalbln.h"
+#include "special/scalbln.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/scalblnl.h"
+#include "special/scalblnl.h"
 
 #endif
 };
index 79f6bb2..9b37f96 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct di_d t[] = {
 #include "sanity/scalbn.h"
+#include "special/scalbn.h"
 
 };
 
index 8b50e27..9e1203c 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct fi_f t[] = {
 #include "sanity/scalbnf.h"
+#include "special/scalbnf.h"
 
 };
 
index cb7eb15..136112c 100644 (file)
@@ -5,9 +5,11 @@
 static struct li_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/scalbn.h"
+#include "special/scalbn.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/scalbnl.h"
+#include "special/scalbnl.h"
 
 #endif
 };
index 1500162..d0c07d9 100644 (file)
@@ -6,6 +6,7 @@ static struct d_d t[] = {
 #include "crlibm/sin.h"
 #include "ucb/sin.h"
 #include "sanity/sin.h"
+#include "special/sin.h"
 
 };
 
index 3e574f3..1c314f3 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_dd t[] = {
 #include "sanity/sincos.h"
+#include "special/sincos.h"
 };
 
 int main(void)
index e21fbd9..dcf4bb3 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_ff t[] = {
 #include "sanity/sincosf.h"
+#include "special/sincosf.h"
 };
 
 int main(void)
index 697eeda..85859b3 100644 (file)
@@ -5,8 +5,10 @@
 static struct l_ll t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/sincos.h"
+#include "special/sincos.h"
 #elif LDBL_MANT_DIG == 64
 #include "sanity/sincosl.h"
+#include "special/sincosl.h"
 #endif
 };
 
index 4b8c427..67edfa2 100644 (file)
@@ -5,6 +5,7 @@
 static struct f_f t[] = {
 #include "ucb/sinf.h"
 #include "sanity/sinf.h"
+#include "special/sinf.h"
 
 };
 
index 08e1a0f..1abaadf 100644 (file)
@@ -6,6 +6,7 @@ static struct d_d t[] = {
 #include "crlibm/sinh.h"
 #include "ucb/sinh.h"
 #include "sanity/sinh.h"
+#include "special/sinh.h"
 
 };
 
index d67f91c..97a6d46 100644 (file)
@@ -5,6 +5,7 @@
 static struct f_f t[] = {
 #include "ucb/sinhf.h"
 #include "sanity/sinhf.h"
+#include "special/sinhf.h"
 
 };
 
index 654292d..ea8900f 100644 (file)
@@ -7,9 +7,11 @@ static struct l_l t[] = {
 #include "crlibm/sinh.h"
 #include "ucb/sinh.h"
 #include "sanity/sinh.h"
+#include "special/sinh.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/sinhl.h"
+#include "special/sinhl.h"
 
 #endif
 };
index 399baf6..78c6623 100644 (file)
@@ -7,9 +7,11 @@ static struct l_l t[] = {
 #include "crlibm/sin.h"
 #include "ucb/sin.h"
 #include "sanity/sin.h"
+#include "special/sin.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/sinl.h"
+#include "special/sinl.h"
 
 #endif
 };
diff --git a/src/math/special/acos.h b/src/math/special/acos.h
new file mode 100644 (file)
index 0000000..5f23101
--- /dev/null
@@ -0,0 +1,8 @@
+T(RN,                  0x0p+0,    0x1.921fb54442d18p+0,  -0x1.1a6264p-2, INEXACT)
+T(RN,                 -0x1p+0,    0x1.921fb54442d18p+1,  -0x1.1a6264p-2, INEXACT)
+T(RN,                  0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,    0x1.0000000000001p+0,                     nan,          0x0p+0, INVALID)
+T(RN,   -0x1.0000000000001p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                     inf,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/acosf.h b/src/math/special/acosf.h
new file mode 100644 (file)
index 0000000..26f031e
--- /dev/null
@@ -0,0 +1,8 @@
+T(RN,          0x0p+0,   0x1.921fb6p+0,   0x1.777a5cp-2, INEXACT)
+T(RN,         -0x1p+0,   0x1.921fb6p+1,   0x1.777a5cp-2, INEXACT)
+T(RN,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,   0x1.000002p+0,             nan,          0x0p+0, INVALID)
+T(RN,  -0x1.000002p+0,             nan,          0x0p+0, INVALID)
+T(RN,             inf,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,             nan,          0x0p+0, INVALID)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/acosh.h b/src/math/special/acosh.h
new file mode 100644 (file)
index 0000000..a94fdba
--- /dev/null
@@ -0,0 +1,6 @@
+T(RN,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,             0x1.ffffp-1,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                     nan,          0x0p+0, INVALID)
diff --git a/src/math/special/acoshf.h b/src/math/special/acoshf.h
new file mode 100644 (file)
index 0000000..f17b0db
--- /dev/null
@@ -0,0 +1,6 @@
+T(RN,             nan,             nan,          0x0p+0, 0)
+T(RN,             inf,             inf,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,     0x1.ffffp-1,             nan,          0x0p+0, INVALID)
+T(RN,          0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,             nan,          0x0p+0, INVALID)
diff --git a/src/math/special/acoshl.h b/src/math/special/acoshl.h
new file mode 100644 (file)
index 0000000..d91b2f0
--- /dev/null
@@ -0,0 +1,6 @@
+T(RN,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                   0x1.ffffp-1L,                            nan,          0x0p+0, INVALID)
+T(RN,                        0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                            nan,          0x0p+0, INVALID)
diff --git a/src/math/special/acosl.h b/src/math/special/acosl.h
new file mode 100644 (file)
index 0000000..25a9e13
--- /dev/null
@@ -0,0 +1,8 @@
+T(RN,                        0x0p+0L,       0x1.921fb54442d1846ap+0L,   0x1.d9ccecp-3, INEXACT)
+T(RN,                       -0x1p+0L,       0x1.921fb54442d1846ap+1L,   0x1.d9ccecp-3, INEXACT)
+T(RN,                        0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,       0x1.0000000000000002p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,      -0x1.0000000000000002p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                            inf,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                            nan,          0x0p+0, INVALID)
+T(RN,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/asin.h b/src/math/special/asin.h
new file mode 100644 (file)
index 0000000..5a26b31
--- /dev/null
@@ -0,0 +1,9 @@
+T(RN,                  0x1p+0,    0x1.921fb54442d18p+0,  -0x1.1a6264p-2, INEXACT)
+T(RN,                 -0x1p+0,   -0x1.921fb54442d18p+0,   0x1.1a6264p-2, INEXACT)
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,    0x1.0000000000001p+0,                     nan,          0x0p+0, INVALID)
+T(RN,   -0x1.0000000000001p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                     inf,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/asinf.h b/src/math/special/asinf.h
new file mode 100644 (file)
index 0000000..e4f4bb1
--- /dev/null
@@ -0,0 +1,9 @@
+T(RN,          0x1p+0,   0x1.921fb6p+0,   0x1.777a5cp-2, INEXACT)
+T(RN,         -0x1p+0,  -0x1.921fb6p+0,  -0x1.777a5cp-2, INEXACT)
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,   0x1.000002p+0,             nan,          0x0p+0, INVALID)
+T(RN,  -0x1.000002p+0,             nan,          0x0p+0, INVALID)
+T(RN,             inf,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,             nan,          0x0p+0, INVALID)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/asinh.h b/src/math/special/asinh.h
new file mode 100644 (file)
index 0000000..6b7c802
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
diff --git a/src/math/special/asinhf.h b/src/math/special/asinhf.h
new file mode 100644 (file)
index 0000000..ea0ccb8
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,             nan,             nan,          0x0p+0, 0)
+T(RN,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,            -inf,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
diff --git a/src/math/special/asinhl.h b/src/math/special/asinhl.h
new file mode 100644 (file)
index 0000000..1054606
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                           -inf,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
diff --git a/src/math/special/asinl.h b/src/math/special/asinl.h
new file mode 100644 (file)
index 0000000..f4bbcee
--- /dev/null
@@ -0,0 +1,9 @@
+T(RN,                        0x1p+0L,       0x1.921fb54442d1846ap+0L,   0x1.d9ccecp-3, INEXACT)
+T(RN,                       -0x1p+0L,      -0x1.921fb54442d1846ap+0L,  -0x1.d9ccecp-3, INEXACT)
+T(RN,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,       0x1.0000000000000002p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,      -0x1.0000000000000002p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                            inf,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                            nan,          0x0p+0, INVALID)
+T(RN,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/atan.h b/src/math/special/atan.h
new file mode 100644 (file)
index 0000000..2d97c6f
--- /dev/null
@@ -0,0 +1,7 @@
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,    0x1.921fb54442d18p-1,  -0x1.1a6264p-2, INEXACT)
+T(RN,                 -0x1p+0,   -0x1.921fb54442d18p-1,   0x1.1a6264p-2, INEXACT)
+T(RN,                     inf,    0x1.921fb54442d18p+0,  -0x1.1a6264p-2, INEXACT)
+T(RN,                    -inf,   -0x1.921fb54442d18p+0,   0x1.1a6264p-2, INEXACT)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/atan2.h b/src/math/special/atan2.h
new file mode 100644 (file)
index 0000000..0c5a2d0
--- /dev/null
@@ -0,0 +1,26 @@
+T(RN,                  0x0p+0,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                 -0x0p+0,    0x1.921fb54442d18p+1,  -0x1.1a6264p-2, INEXACT)
+T(RN,                  0x0p+0,                 -0x1p+0,    0x1.921fb54442d18p+1,  -0x1.1a6264p-2, INEXACT)
+T(RN,                  0x0p+0,                    -inf,    0x1.921fb54442d18p+1,  -0x1.1a6264p-2, INEXACT)
+T(RN,                  0x0p+0,                  0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                     inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,   -0x1.921fb54442d18p+1,   0x1.1a6264p-2, INEXACT)
+T(RN,                 -0x0p+0,                 -0x1p+0,   -0x1.921fb54442d18p+1,   0x1.1a6264p-2, INEXACT)
+T(RN,                 -0x0p+0,                    -inf,   -0x1.921fb54442d18p+1,   0x1.1a6264p-2, INEXACT)
+T(RN,                 -0x0p+0,                  0x1p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                     inf,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                  0x0p+0,   -0x1.921fb54442d18p+0,   0x1.1a6264p-2, INEXACT)
+T(RN,                 -0x1p+0,                 -0x0p+0,   -0x1.921fb54442d18p+0,   0x1.1a6264p-2, INEXACT)
+T(RN,                  0x1p+0,                  0x0p+0,    0x1.921fb54442d18p+0,  -0x1.1a6264p-2, INEXACT)
+T(RN,                  0x1p+0,                 -0x0p+0,    0x1.921fb54442d18p+0,  -0x1.1a6264p-2, INEXACT)
+T(RN,                 -0x1p+0,                     inf,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                     inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                    -inf,   -0x1.921fb54442d18p+1,   0x1.1a6264p-2, INEXACT)
+T(RN,                  0x1p+0,                    -inf,    0x1.921fb54442d18p+1,  -0x1.1a6264p-2, INEXACT)
+T(RN,                     inf,                  0x0p+0,    0x1.921fb54442d18p+0,  -0x1.1a6264p-2, INEXACT)
+T(RN,                    -inf,                  0x0p+0,   -0x1.921fb54442d18p+0,   0x1.1a6264p-2, INEXACT)
+T(RN,                     inf,                     inf,    0x1.921fb54442d18p-1,  -0x1.1a6264p-2, INEXACT)
+T(RN,                     inf,                    -inf,    0x1.2d97c7f3321d2p+1,  -0x1.a79394p-3, INEXACT)
+T(RN,                    -inf,                     inf,   -0x1.921fb54442d18p-1,   0x1.1a6264p-2, INEXACT)
+T(RN,                    -inf,                    -inf,   -0x1.2d97c7f3321d2p+1,   0x1.a79394p-3, INEXACT)
diff --git a/src/math/special/atan2f.h b/src/math/special/atan2f.h
new file mode 100644 (file)
index 0000000..47421ec
--- /dev/null
@@ -0,0 +1,26 @@
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,         -0x0p+0,   0x1.921fb6p+1,   0x1.777a5cp-2, INEXACT)
+T(RN,          0x0p+0,         -0x1p+0,   0x1.921fb6p+1,   0x1.777a5cp-2, INEXACT)
+T(RN,          0x0p+0,            -inf,   0x1.921fb6p+1,   0x1.777a5cp-2, INEXACT)
+T(RN,          0x0p+0,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,  -0x1.921fb6p+1,  -0x1.777a5cp-2, INEXACT)
+T(RN,         -0x0p+0,         -0x1p+0,  -0x1.921fb6p+1,  -0x1.777a5cp-2, INEXACT)
+T(RN,         -0x0p+0,            -inf,  -0x1.921fb6p+1,  -0x1.777a5cp-2, INEXACT)
+T(RN,         -0x0p+0,          0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,             inf,         -0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,          0x0p+0,  -0x1.921fb6p+0,  -0x1.777a5cp-2, INEXACT)
+T(RN,         -0x1p+0,         -0x0p+0,  -0x1.921fb6p+0,  -0x1.777a5cp-2, INEXACT)
+T(RN,          0x1p+0,          0x0p+0,   0x1.921fb6p+0,   0x1.777a5cp-2, INEXACT)
+T(RN,          0x1p+0,         -0x0p+0,   0x1.921fb6p+0,   0x1.777a5cp-2, INEXACT)
+T(RN,         -0x1p+0,             inf,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,            -inf,  -0x1.921fb6p+1,  -0x1.777a5cp-2, INEXACT)
+T(RN,          0x1p+0,            -inf,   0x1.921fb6p+1,   0x1.777a5cp-2, INEXACT)
+T(RN,             inf,          0x0p+0,   0x1.921fb6p+0,   0x1.777a5cp-2, INEXACT)
+T(RN,            -inf,          0x0p+0,  -0x1.921fb6p+0,  -0x1.777a5cp-2, INEXACT)
+T(RN,             inf,             inf,   0x1.921fb6p-1,   0x1.777a5cp-2, INEXACT)
+T(RN,             inf,            -inf,   0x1.2d97c8p+1,   0x1.99bc5cp-6, INEXACT)
+T(RN,            -inf,             inf,  -0x1.921fb6p-1,  -0x1.777a5cp-2, INEXACT)
+T(RN,            -inf,            -inf,  -0x1.2d97c8p+1,  -0x1.99bc5cp-6, INEXACT)
diff --git a/src/math/special/atan2l.h b/src/math/special/atan2l.h
new file mode 100644 (file)
index 0000000..42ae863
--- /dev/null
@@ -0,0 +1,26 @@
+T(RN,                        0x0p+0L,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                       -0x0p+0L,       0x1.921fb54442d1846ap+1L,   0x1.d9ccecp-3, INEXACT)
+T(RN,                        0x0p+0L,                       -0x1p+0L,       0x1.921fb54442d1846ap+1L,   0x1.d9ccecp-3, INEXACT)
+T(RN,                        0x0p+0L,                           -inf,       0x1.921fb54442d1846ap+1L,   0x1.d9ccecp-3, INEXACT)
+T(RN,                        0x0p+0L,                        0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                            inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,      -0x1.921fb54442d1846ap+1L,  -0x1.d9ccecp-3, INEXACT)
+T(RN,                       -0x0p+0L,                       -0x1p+0L,      -0x1.921fb54442d1846ap+1L,  -0x1.d9ccecp-3, INEXACT)
+T(RN,                       -0x0p+0L,                           -inf,      -0x1.921fb54442d1846ap+1L,  -0x1.d9ccecp-3, INEXACT)
+T(RN,                       -0x0p+0L,                        0x1p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                            inf,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                        0x0p+0L,      -0x1.921fb54442d1846ap+0L,  -0x1.d9ccecp-3, INEXACT)
+T(RN,                       -0x1p+0L,                       -0x0p+0L,      -0x1.921fb54442d1846ap+0L,  -0x1.d9ccecp-3, INEXACT)
+T(RN,                        0x1p+0L,                        0x0p+0L,       0x1.921fb54442d1846ap+0L,   0x1.d9ccecp-3, INEXACT)
+T(RN,                        0x1p+0L,                       -0x0p+0L,       0x1.921fb54442d1846ap+0L,   0x1.d9ccecp-3, INEXACT)
+T(RN,                       -0x1p+0L,                            inf,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                            inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                           -inf,      -0x1.921fb54442d1846ap+1L,  -0x1.d9ccecp-3, INEXACT)
+T(RN,                        0x1p+0L,                           -inf,       0x1.921fb54442d1846ap+1L,   0x1.d9ccecp-3, INEXACT)
+T(RN,                            inf,                        0x0p+0L,       0x1.921fb54442d1846ap+0L,   0x1.d9ccecp-3, INEXACT)
+T(RN,                           -inf,                        0x0p+0L,      -0x1.921fb54442d1846ap+0L,  -0x1.d9ccecp-3, INEXACT)
+T(RN,                            inf,                            inf,       0x1.921fb54442d1846ap-1L,   0x1.d9ccecp-3, INEXACT)
+T(RN,                            inf,                           -inf,        0x1.2d97c7f3321d235p+1L,   0x1.b1acd8p-2, INEXACT)
+T(RN,                           -inf,                            inf,      -0x1.921fb54442d1846ap-1L,  -0x1.d9ccecp-3, INEXACT)
+T(RN,                           -inf,                           -inf,       -0x1.2d97c7f3321d235p+1L,  -0x1.b1acd8p-2, INEXACT)
diff --git a/src/math/special/atanf.h b/src/math/special/atanf.h
new file mode 100644 (file)
index 0000000..0a82bff
--- /dev/null
@@ -0,0 +1,7 @@
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,   0x1.921fb6p-1,   0x1.777a5cp-2, INEXACT)
+T(RN,         -0x1p+0,  -0x1.921fb6p-1,  -0x1.777a5cp-2, INEXACT)
+T(RN,             inf,   0x1.921fb6p+0,   0x1.777a5cp-2, INEXACT)
+T(RN,            -inf,  -0x1.921fb6p+0,  -0x1.777a5cp-2, INEXACT)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/atanh.h b/src/math/special/atanh.h
new file mode 100644 (file)
index 0000000..42cb08e
--- /dev/null
@@ -0,0 +1,9 @@
+T(RN,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                     inf,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                     inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x1p+0,                    -inf,          0x0p+0, DIVBYZERO)
+T(RN,             0x1.0001p+0,                     nan,          0x0p+0, INVALID)
+T(RN,            -0x1.0001p+0,                     nan,          0x0p+0, INVALID)
diff --git a/src/math/special/atanhf.h b/src/math/special/atanhf.h
new file mode 100644 (file)
index 0000000..e1c9aed
--- /dev/null
@@ -0,0 +1,9 @@
+T(RN,             nan,             nan,          0x0p+0, 0)
+T(RN,             inf,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,             nan,          0x0p+0, INVALID)
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,             inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x1p+0,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,     0x1.0001p+0,             nan,          0x0p+0, INVALID)
+T(RN,    -0x1.0001p+0,             nan,          0x0p+0, INVALID)
diff --git a/src/math/special/atanhl.h b/src/math/special/atanhl.h
new file mode 100644 (file)
index 0000000..3ad80b1
--- /dev/null
@@ -0,0 +1,9 @@
+T(RN,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                            inf,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                            nan,          0x0p+0, INVALID)
+T(RN,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                            inf,          0x0p+0, DIVBYZERO)
+T(RN,                       -0x1p+0L,                           -inf,          0x0p+0, DIVBYZERO)
+T(RN,                   0x1.0001p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                  -0x1.0001p+0L,                            nan,          0x0p+0, INVALID)
diff --git a/src/math/special/atanl.h b/src/math/special/atanl.h
new file mode 100644 (file)
index 0000000..fc5805f
--- /dev/null
@@ -0,0 +1,7 @@
+T(RN,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,       0x1.921fb54442d1846ap-1L,   0x1.d9ccecp-3, INEXACT)
+T(RN,                       -0x1p+0L,      -0x1.921fb54442d1846ap-1L,  -0x1.d9ccecp-3, INEXACT)
+T(RN,                            inf,       0x1.921fb54442d1846ap+0L,   0x1.d9ccecp-3, INEXACT)
+T(RN,                           -inf,      -0x1.921fb54442d1846ap+0L,  -0x1.d9ccecp-3, INEXACT)
+T(RN,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/cbrt.h b/src/math/special/cbrt.h
new file mode 100644 (file)
index 0000000..87f5993
--- /dev/null
@@ -0,0 +1,10 @@
+T(RN,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                 0x1p-30,                 0x1p-10,          0x0p+0, 0)
+T(RN,                -0x1p-30,                -0x1p-10,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+3,                  0x1p+1,          0x0p+0, 0)
diff --git a/src/math/special/cbrtf.h b/src/math/special/cbrtf.h
new file mode 100644 (file)
index 0000000..793d807
--- /dev/null
@@ -0,0 +1,10 @@
+T(RN,             nan,             nan,          0x0p+0, 0)
+T(RN,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,            -inf,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,         0x1p-30,         0x1p-10,          0x0p+0, 0)
+T(RN,        -0x1p-30,        -0x1p-10,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,         -0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+3,          0x1p+1,          0x0p+0, 0)
diff --git a/src/math/special/cbrtl.h b/src/math/special/cbrtl.h
new file mode 100644 (file)
index 0000000..b94ee6a
--- /dev/null
@@ -0,0 +1,10 @@
+T(RN,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                           -inf,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                       0x1p-30L,                       0x1p-10L,          0x0p+0, 0)
+T(RN,                      -0x1p-30L,                      -0x1p-10L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+3L,                        0x1p+1L,          0x0p+0, 0)
diff --git a/src/math/special/ceil.h b/src/math/special/ceil.h
new file mode 100644 (file)
index 0000000..b95a04d
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p-1,                  0x1p+0,          0x0p+0, INEXACT)
+T(RN,                 -0x1p-1,                 -0x0p+0,          0x0p+0, INEXACT)
+T(RN,             0x1.0001p+0,                  0x1p+1,          0x0p+0, INEXACT)
+T(RN,            -0x1.0001p+0,                 -0x1p+0,          0x0p+0, INEXACT)
+T(RN,             0x1.ffffp-1,                  0x1p+0,          0x0p+0, INEXACT)
+T(RN,            -0x1.ffffp-1,                 -0x0p+0,          0x0p+0, INEXACT)
+T(RN,                0x1p-100,                  0x1p+0,          0x0p+0, INEXACT)
+T(RN,               -0x1p-100,                 -0x0p+0,          0x0p+0, INEXACT)
diff --git a/src/math/special/ceilf.h b/src/math/special/ceilf.h
new file mode 100644 (file)
index 0000000..384bbba
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,             nan,             nan,          0x0p+0, 0)
+T(RN,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,            -inf,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p-1,          0x1p+0,          0x0p+0, INEXACT)
+T(RN,         -0x1p-1,         -0x0p+0,          0x0p+0, INEXACT)
+T(RN,     0x1.0001p+0,          0x1p+1,          0x0p+0, INEXACT)
+T(RN,    -0x1.0001p+0,         -0x1p+0,          0x0p+0, INEXACT)
+T(RN,     0x1.ffffp-1,          0x1p+0,          0x0p+0, INEXACT)
+T(RN,    -0x1.ffffp-1,         -0x0p+0,          0x0p+0, INEXACT)
+T(RN,        0x1p-100,          0x1p+0,          0x0p+0, INEXACT)
+T(RN,       -0x1p-100,         -0x0p+0,          0x0p+0, INEXACT)
diff --git a/src/math/special/ceill.h b/src/math/special/ceill.h
new file mode 100644 (file)
index 0000000..e2a7cc6
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                           -inf,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p-1L,                        0x1p+0L,          0x0p+0, INEXACT)
+T(RN,                       -0x1p-1L,                       -0x0p+0L,          0x0p+0, INEXACT)
+T(RN,                   0x1.0001p+0L,                        0x1p+1L,          0x0p+0, INEXACT)
+T(RN,                  -0x1.0001p+0L,                       -0x1p+0L,          0x0p+0, INEXACT)
+T(RN,                   0x1.ffffp-1L,                        0x1p+0L,          0x0p+0, INEXACT)
+T(RN,                  -0x1.ffffp-1L,                       -0x0p+0L,          0x0p+0, INEXACT)
+T(RN,                      0x1p-100L,                        0x1p+0L,          0x0p+0, INEXACT)
+T(RN,                     -0x1p-100L,                       -0x0p+0L,          0x0p+0, INEXACT)
diff --git a/src/math/special/copysign.h b/src/math/special/copysign.h
new file mode 100644 (file)
index 0000000..7f4dfc9
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,                  0x0p+0,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                     nan,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                     nan,                 -0x1p+0,                     nan,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                     nan,                  0x1p+0,          0x0p+0, 0)
+T(RN,                     inf,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                     inf,                 -0x1p+0,                    -inf,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                     inf,                  0x1p+0,          0x0p+0, 0)
+T(RN,                    -inf,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                    -inf,                  0x1p+0,                     inf,          0x0p+0, 0)
+T(RN,                  0x1p+0,                    -inf,                 -0x1p+0,          0x0p+0, 0)
diff --git a/src/math/special/copysignf.h b/src/math/special/copysignf.h
new file mode 100644 (file)
index 0000000..dbc6b2a
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,             nan,             nan,             nan,          0x0p+0, 0)
+T(RN,             nan,         -0x1p+0,             nan,          0x0p+0, 0)
+T(RN,         -0x1p+0,             nan,          0x1p+0,          0x0p+0, 0)
+T(RN,             inf,             inf,             inf,          0x0p+0, 0)
+T(RN,             inf,         -0x1p+0,            -inf,          0x0p+0, 0)
+T(RN,         -0x1p+0,             inf,          0x1p+0,          0x0p+0, 0)
+T(RN,            -inf,            -inf,            -inf,          0x0p+0, 0)
+T(RN,            -inf,          0x1p+0,             inf,          0x0p+0, 0)
+T(RN,          0x1p+0,            -inf,         -0x1p+0,          0x0p+0, 0)
diff --git a/src/math/special/copysignl.h b/src/math/special/copysignl.h
new file mode 100644 (file)
index 0000000..bc4ca04
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,                        0x0p+0L,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                            nan,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                            nan,                       -0x1p+0L,                            nan,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                            nan,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                            inf,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                            inf,                       -0x1p+0L,                           -inf,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                            inf,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                           -inf,                           -inf,                           -inf,          0x0p+0, 0)
+T(RN,                           -inf,                        0x1p+0L,                            inf,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                           -inf,                       -0x1p+0L,          0x0p+0, 0)
diff --git a/src/math/special/cos.h b/src/math/special/cos.h
new file mode 100644 (file)
index 0000000..72c383c
--- /dev/null
@@ -0,0 +1,78 @@
+T(RN,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                     inf,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                  0x1p+0,    0x1.14a280fb5068cp-1,   0x1.b71edcp-2, INEXACT)
+T(RN,                  0x1p+1,   -0x1.aa22657537205p-2,  -0x1.6f3342p-2, INEXACT)
+T(RN,                0x1.8p+1,   -0x1.fae04be85e5d2p-1,   0x1.83effcp-2, INEXACT)
+T(RN,                  0x1p+2,   -0x1.4eaa606db24c1p-1,   -0x1.dcc93p-3, INEXACT)
+T(RN,                0x1.4p+2,    0x1.22785706b4ad9p-2,  -0x1.4f99f8p-2, INEXACT)
+T(RN,    0x1.999999999999ap-4,    0x1.fd712f9a817c1p-1,   0x1.fb7ab4p-2, INEXACT)
+T(RN,    0x1.999999999999ap-3,    0x1.f5cb49577627ap-1,  -0x1.8a77c8p-6, INEXACT)
+T(RN,    0x1.3333333333333p-2,    0x1.e921dd42f09bap-1,  -0x1.82c9a2p-2, INEXACT)
+T(RN,    0x1.999999999999ap-2,    0x1.d7954e7dba2f8p-1,   0x1.08619cp-2, INEXACT)
+T(RN,                  0x1p-1,     0x1.c1528065b7d5p-1,   0x1.892112p-2, INEXACT)
+T(RN,             0x1.1p-1022,                  0x1p+0,          0x0p+0, INEXACT)
+T(RN,             0x1.1p-1023,                  0x1p+0,          0x0p+0, INEXACT)
+T(RN,               0x1p-1074,                  0x1p+0,          0x0p+0, INEXACT)
+T(RN,              -0x1p-1074,                  0x1p+0,          0x0p+0, INEXACT)
+T(RN,   -0x1.91eb851eb851fp+1,   -0x1.ffffd5719f5d7p-1,   0x1.8ace0ap-2, INEXACT)
+T(RN,               0x1p+1023,   -0x1.a719f26c232bfp-1,  -0x1.7a7782p-2, INEXACT)
+T(RN, 0x1.fffffffffffffp+1023,   -0x1.fffe62ecfab75p-1,   0x1.e038dap-3, INEXACT)
+T(RN,              -0x1p+1023,   -0x1.a719f26c232bfp-1,  -0x1.7a7782p-2, INEXACT)
+T(RN,    0x1.91eb851eb851fp+1,   -0x1.ffffd5719f5d7p-1,   0x1.8ace0ap-2, INEXACT)
+T(RN,    0x1.921cac083126fp+1,   -0x1.ffffffdb21094p-1,  -0x1.396f98p-2, INEXACT)
+T(RN,    0x1.921fafc8b007ap+1,   -0x1.ffffffffff87cp-1,   0x1.3b75cep-3, INEXACT)
+T(RN,    0x1.921fb53c8d4f1p+1,                 -0x1p+0,   -0x1.db6eap-6, INEXACT)
+T(RN,    0x1.921fb54411744p+1,                 -0x1p+0, -0x1.309ac6p-16, INEXACT)
+T(RN,    0x1.921fb5444261ep+1,                 -0x1p+0, -0x1.857fe8p-30, INEXACT)
+T(RN,    0x1.921fb54442d11p+1,                 -0x1p+0, -0x1.a77e82p-46, INEXACT)
+T(RN,    0x1.921fb54442d18p+1,                 -0x1p+0, -0x1.377ce8p-55, INEXACT)
+T(RN,    0x1.91eb851eb851fp+0,   0x1.a181296fadbfbp-11,   0x1.2ff084p-2, INEXACT)
+T(RN,    0x1.921fafc8b007ap+0,   0x1.5ee4b2791a5b8p-22,  -0x1.4d86a6p-2, INEXACT)
+T(RN,    0x1.921fb543da7a8p+0,   0x1.a15c11a626331p-34,  -0x1.16fed4p-2, INEXACT)
+T(RN,    0x1.921fb54442cfap+0,    0x1.e469898cc517p-48,  -0x1.b839a2p-4, INEXACT)
+T(RN,    0x1.921fb54442d18p+0,   0x1.1a62633145c07p-54,   0x1.f1976cp-4, INEXACT)
+T(RN,    0x1.571290d0d806bp-1,    0x1.914be72e2c693p-1,  -0x1.2a20a2p-4, INEXACT)
+T(RN,    0x1.119b6fff68efbp-1,    0x1.b89df025d713ap-1,  -0x1.eff6e6p-2, INEXACT)
+T(RN,    0x1.c28e94aea392fp-2,    0x1.cf3bc6a49beddp-1,   0x1.e7dfc6p-6, INEXACT)
+T(RN,    0x1.fb0683f915c2ep-1,    0x1.18cebea0eb269p-1,   0x1.94cafep-3, INEXACT)
+T(RN,    0x1.d0b4bde8347c2p-2,    0x1.cc2d130a8d29bp-1,  -0x1.22677ap-6, INEXACT)
+T(RN,    0x1.d80d782503ddcp-2,    0x1.ca8dcb198532dp-1,   0x1.753f04p-2, INEXACT)
+T(RN,     0x1.db6a0ab3fa2bp-1,    0x1.32b041a1d773dp-1,  -0x1.28e676p-2, INEXACT)
+T(RN,    0x1.d262b13a2f8bcp-1,    0x1.39dec33e2ded1p-1,  -0x1.f96048p-2, INEXACT)
+T(RN,    0x1.aa6ca26af29e1p-1,    0x1.58745295e1d27p-1,  -0x1.76d8aap-2, INEXACT)
+T(RN,     0x1.e840e5a541f2p-1,    0x1.284fe765bdd23p-1,  -0x1.5dfff2p-3, INEXACT)
+T(RN,    0x1.becd294b590d9p-1,     0x1.491c05952f5bp-1,  -0x1.19162ap-2, INEXACT)
+T(RN,    0x1.72b27970cbbd9p-3,    0x1.f7a2b983cf8a1p-1,   0x1.8bc686p-9, INEXACT)
+T(RN,    0x1.2d97c7f388b27p+1,   -0x1.6a09e668e8a1cp-1,  -0x1.ee5fd6p-2, INEXACT)
+T(RN,    0x1.2d97c7f39507ap+1,   -0x1.6a09e6690b83ap-1,  -0x1.f24896p-2, INEXACT)
+T(RN,    0x1.2d97c7f34420ap+1,   -0x1.6a09e66826b01p-1,   -0x1.69e07p-2, INEXACT)
+T(RN,    0x1.2d97c7f3758b4p+1,   -0x1.6a09e668b2757p-1,  -0x1.ad2dc2p-2, INEXACT)
+T(RN,    0x1.2d97c7f38e7a2p+1,   -0x1.6a09e668f8fafp-1,  -0x1.e1ea36p-2, INEXACT)
+T(RN,    0x1.2d97c7f39ab7fp+1,   -0x1.6a09e6691b9abp-1,  -0x1.39882cp-2, INEXACT)
+T(RN,    0x1.2d97c7f394c5ap+1,   -0x1.6a09e6690ac8fp-1,  -0x1.38fbd8p-2, INEXACT)
+T(RN,    0x1.2d97c7f3a43c4p+1,   -0x1.6a09e6693685ap-1,  -0x1.8dc756p-2, INEXACT)
+T(RN,    0x1.2d97c7f35769ap+1,    -0x1.6a09e6685d3cp-1,  -0x1.e75c0ap-3, INEXACT)
+T(RN,    0x1.2d97c7f3a6a55p+1,   -0x1.6a09e6693d56fp-1,  -0x1.4f5166p-2, INEXACT)
+T(RN,    0x1.0c15238304b44p+1,   -0x1.000000009d96ap-1,  -0x1.ab1fc8p-2, INEXACT)
+T(RN,    0x1.0c152382ed3a2p+1,   -0x1.000000004c42fp-1,   -0x1.6d2cep-2, INEXACT)
+T(RN,     0x1.0c152383194ap+1,   -0x1.00000000e4e59p-1,   -0x1.cd839p-3, INEXACT)
+T(RN,    0x1.0c1523832b961p+1,   -0x1.000000012447ap-1,  -0x1.09e06ep-3, INEXACT)
+T(RN,    0x1.0c152382e297bp+1,   -0x1.00000000276c2p-1,  -0x1.455c66p-3, INEXACT)
+T(RN,    0x1.0c152382e73c2p+1,    -0x1.000000003781p-1,  -0x1.110e78p-2, INEXACT)
+T(RN,    0x1.0c1523830fc18p+1,   -0x1.00000000c3df7p-1,  -0x1.dc5f6ep-2, INEXACT)
+T(RN,    0x1.0c1523831b74fp+1,   -0x1.00000000ec67fp-1,  -0x1.de5212p-2, INEXACT)
+T(RN,    0x1.0c152382de35cp+1,   -0x1.00000000183dap-1,  -0x1.f9c65cp-3, INEXACT)
+T(RN,    0x1.0c152382eaa73p+1,   -0x1.0000000043585p-1,  -0x1.851012p-2, INEXACT)
+T(RN,    0x1.106c38fe9a1d4p+3,   -0x1.399a9bc48bd62p-1,   0x1.fef8f8p-2, INEXACT)
+T(RN,    0x1.b3627c817a128p+2,    0x1.bc664664c2151p-1,   0x1.fd2656p-2, INEXACT)
+T(RN,    0x1.258069ae950eep+3,   -0x1.efb845231e9e3p-1,  -0x1.fe3c06p-2, INEXACT)
+T(RN,    0x1.1b599f1462456p+3,   -0x1.af076e3f43156p-1,   0x1.fd701cp-2, INEXACT)
+T(RN,    0x1.26d514a15bd1dp+3,   -0x1.f49dbe18ebc93p-1,  -0x1.ff8cc6p-2, INEXACT)
+T(RN,    0x1.f213a550008fdp+2,    0x1.24bf5dd2ba797p-4,   0x1.fe8c16p-2, INEXACT)
+T(RN,    0x1.e004481b64637p+2,     0x1.62b41b3c0d01p-2,  -0x1.ff9ca6p-2, INEXACT)
+T(RN,    0x1.23e54a10c2c25p+3,   -0x1.e8ab971af5fabp-1,   0x1.fe3d82p-2, INEXACT)
+T(RN,    0x1.b23cafc9b3cebp+2,    0x1.c0e32d52ec691p-1,   -0x1.fec7ap-2, INEXACT)
+T(RN,    0x1.18aac65e5f9dap+3,    -0x1.965fa3629f1ap-1,    0x1.fff7bp-2, INEXACT)
diff --git a/src/math/special/cosf.h b/src/math/special/cosf.h
new file mode 100644 (file)
index 0000000..f21df8f
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,             inf,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,             nan,          0x0p+0, INVALID)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/cosh.h b/src/math/special/cosh.h
new file mode 100644 (file)
index 0000000..3655571
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                     inf,          0x0p+0, 0)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/coshf.h b/src/math/special/coshf.h
new file mode 100644 (file)
index 0000000..a664f58
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,             inf,          0x0p+0, 0)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/coshl.h b/src/math/special/coshl.h
new file mode 100644 (file)
index 0000000..28faf34
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,                        0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                            inf,          0x0p+0, 0)
+T(RN,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/cosl.h b/src/math/special/cosl.h
new file mode 100644 (file)
index 0000000..c9d5f93
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,                        0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                            inf,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                            nan,          0x0p+0, INVALID)
+T(RN,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/erf.h b/src/math/special/erf.h
new file mode 100644 (file)
index 0000000..112b4c3
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                  0x1p+0,          0x0p+0, 0)
+T(RN,                    -inf,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/erfc.h b/src/math/special/erfc.h
new file mode 100644 (file)
index 0000000..4c91ea4
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                     inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                    -inf,                  0x1p+1,          0x0p+0, 0)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/erfcf.h b/src/math/special/erfcf.h
new file mode 100644 (file)
index 0000000..752bbb8
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,          0x1p+1,          0x0p+0, 0)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/erfcl.h b/src/math/special/erfcl.h
new file mode 100644 (file)
index 0000000..26b775d
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,                        0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                            inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                           -inf,                        0x1p+1L,          0x0p+0, 0)
+T(RN,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/erff.h b/src/math/special/erff.h
new file mode 100644 (file)
index 0000000..4b15725
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,             inf,          0x1p+0,          0x0p+0, 0)
+T(RN,            -inf,         -0x1p+0,          0x0p+0, 0)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/erfl.h b/src/math/special/erfl.h
new file mode 100644 (file)
index 0000000..4c218d9
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                           -inf,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/exp.h b/src/math/special/exp.h
new file mode 100644 (file)
index 0000000..5eab46b
--- /dev/null
@@ -0,0 +1,7 @@
+T(RN,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,    0x1.5bf0a8b145769p+1,  -0x1.4d57eep-2, INEXACT)
+T(RN,                 -0x1p+0,    0x1.78b56362cef38p-2,   0x1.ca8a42p-3, INEXACT)
+T(RN,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/exp10.h b/src/math/special/exp10.h
new file mode 100644 (file)
index 0000000..403147f
--- /dev/null
@@ -0,0 +1,7 @@
+T(RN,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                0x1.4p+3,          0x0p+0, 0)
+T(RN,                 -0x1p+0,    0x1.999999999999ap-4,   0x1.99999ap-2, INEXACT)
+T(RN,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/exp10f.h b/src/math/special/exp10f.h
new file mode 100644 (file)
index 0000000..75eb995
--- /dev/null
@@ -0,0 +1,7 @@
+T(RN,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,        0x1.4p+3,          0x0p+0, 0)
+T(RN,         -0x1p+0,   0x1.99999ap-4,   0x1.99999ap-3, INEXACT)
+T(RN,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,          0x0p+0,          0x0p+0, 0)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/exp10l.h b/src/math/special/exp10l.h
new file mode 100644 (file)
index 0000000..55bd459
--- /dev/null
@@ -0,0 +1,7 @@
+T(RN,                        0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                      0x1.4p+3L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,       0x1.999999999999999ap-4L,   0x1.99999ap-3, INEXACT)
+T(RN,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/exp2.h b/src/math/special/exp2.h
new file mode 100644 (file)
index 0000000..95e131a
--- /dev/null
@@ -0,0 +1,7 @@
+T(RN,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x1p+1,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                  0x1p-1,          0x0p+0, 0)
+T(RN,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/exp2f.h b/src/math/special/exp2f.h
new file mode 100644 (file)
index 0000000..b8d3579
--- /dev/null
@@ -0,0 +1,7 @@
+T(RN,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x1p+1,          0x0p+0, 0)
+T(RN,         -0x1p+0,          0x1p-1,          0x0p+0, 0)
+T(RN,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,          0x0p+0,          0x0p+0, 0)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/exp2l.h b/src/math/special/exp2l.h
new file mode 100644 (file)
index 0000000..087df12
--- /dev/null
@@ -0,0 +1,7 @@
+T(RN,                        0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                        0x1p+1L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                        0x1p-1L,          0x0p+0, 0)
+T(RN,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/expf.h b/src/math/special/expf.h
new file mode 100644 (file)
index 0000000..9749028
--- /dev/null
@@ -0,0 +1,7 @@
+T(RN,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,   0x1.5bf0a8p+1,  -0x1.628aeep-2, INEXACT)
+T(RN,         -0x1p+0,   0x1.78b564p-2,   0x1.3a621ap-2, INEXACT)
+T(RN,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,          0x0p+0,          0x0p+0, 0)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/expl.h b/src/math/special/expl.h
new file mode 100644 (file)
index 0000000..c4d347e
--- /dev/null
@@ -0,0 +1,7 @@
+T(RN,                        0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,       0x1.5bf0a8b145769536p+1L,   0x1.408ea8p-2, INEXACT)
+T(RN,                       -0x1p+0L,       0x1.78b56362cef37c6ap-2L,  -0x1.d6f63cp-2, INEXACT)
+T(RN,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/expm1.h b/src/math/special/expm1.h
new file mode 100644 (file)
index 0000000..e0d3ff9
--- /dev/null
@@ -0,0 +1,7 @@
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,    0x1.b7e151628aed3p+0,   0x1.655024p-2, INEXACT)
+T(RN,                 -0x1p+0,   -0x1.43a54e4e98864p-1,   0x1.ca8a42p-4, INEXACT)
+T(RN,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/expm1f.h b/src/math/special/expm1f.h
new file mode 100644 (file)
index 0000000..e4ea005
--- /dev/null
@@ -0,0 +1,7 @@
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,   0x1.b7e152p+0,   0x1.3aea26p-2, INEXACT)
+T(RN,         -0x1p+0,  -0x1.43a54ep-1,   0x1.3a621ap-3, INEXACT)
+T(RN,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,         -0x1p+0,          0x0p+0, 0)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/expm1l.h b/src/math/special/expm1l.h
new file mode 100644 (file)
index 0000000..597977b
--- /dev/null
@@ -0,0 +1,7 @@
+T(RN,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,       0x1.b7e151628aed2a6ap+0L,  -0x1.7ee2b2p-2, INEXACT)
+T(RN,                       -0x1p+0L,      -0x1.43a54e4e988641cap-1L,   0x1.1484e2p-2, INEXACT)
+T(RN,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/fabs.h b/src/math/special/fabs.h
new file mode 100644 (file)
index 0000000..8cb1e00
--- /dev/null
@@ -0,0 +1,7 @@
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                     inf,          0x0p+0, 0)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/fabsf.h b/src/math/special/fabsf.h
new file mode 100644 (file)
index 0000000..82d61ad
--- /dev/null
@@ -0,0 +1,7 @@
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,             inf,          0x0p+0, 0)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/fabsl.h b/src/math/special/fabsl.h
new file mode 100644 (file)
index 0000000..bbe5895
--- /dev/null
@@ -0,0 +1,7 @@
+T(RN,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                            inf,          0x0p+0, 0)
+T(RN,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/fdim.h b/src/math/special/fdim.h
new file mode 100644 (file)
index 0000000..0b1652f
--- /dev/null
@@ -0,0 +1,58 @@
+T(RN,                  0x0p+0,                  0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p-1,                  0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p-1,                  0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                  0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                  0x1p+0,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                  0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     nan,                  0x1p+0,                     nan,          0x0p+0, 0)
+T(RN,                  0x0p+0,                 -0x1p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x1p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p-1,                 -0x1p+0,                0x1.8p+0,          0x0p+0, 0)
+T(RN,                 -0x1p-1,                 -0x1p+0,                  0x1p-1,          0x0p+0, 0)
+T(RN,                  0x1p+0,                 -0x1p+0,                  0x1p+1,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                 -0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                 -0x1p+0,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                 -0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     nan,                 -0x1p+0,                     nan,          0x0p+0, 0)
+T(RN,                  0x0p+0,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                 -0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                     inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                    -inf,                     inf,          0x0p+0, 0)
+T(RN,                  0x0p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                     inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                    -inf,                     inf,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                  0x0p+0,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     nan,                  0x0p+0,                     nan,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                 -0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                 -0x0p+0,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                 -0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     nan,                 -0x0p+0,                     nan,          0x0p+0, 0)
+T(RN,                     inf,                  0x1p+1,                     inf,          0x0p+0, 0)
+T(RN,                     inf,                 -0x1p-1,                     inf,          0x0p+0, 0)
+T(RN,                     inf,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                    -inf,                  0x1p+1,                  0x0p+0,          0x0p+0, 0)
+T(RN,                    -inf,                 -0x1p-1,                  0x0p+0,          0x0p+0, 0)
+T(RN,                    -inf,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                     nan,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                  0x1p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                  0x1p+0,                     inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                     inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                     inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                    -inf,                     inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                    -inf,                     inf,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                    -inf,                     inf,          0x0p+0, 0)
+T(RN,                     inf,                    -inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                    -inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                0x1.cp+0,                  0x1p-1,                0x1.4p+0,          0x0p+0, 0)
+T(RN,               -0x1.cp+0,                  0x1p-1,                  0x0p+0,          0x0p+0, 0)
+T(RN,                0x1.cp+0,                 -0x1p-1,                0x1.2p+1,          0x0p+0, 0)
+T(RN,               -0x1.cp+0,                 -0x1p-1,                  0x0p+0,          0x0p+0, 0)
diff --git a/src/math/special/fdimf.h b/src/math/special/fdimf.h
new file mode 100644 (file)
index 0000000..67ba3c1
--- /dev/null
@@ -0,0 +1,58 @@
+T(RN,          0x0p+0,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p-1,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p-1,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,             inf,          0x1p+0,             inf,          0x0p+0, 0)
+T(RN,            -inf,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,             nan,          0x1p+0,             nan,          0x0p+0, 0)
+T(RN,          0x0p+0,         -0x1p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x1p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p-1,         -0x1p+0,        0x1.8p+0,          0x0p+0, 0)
+T(RN,         -0x1p-1,         -0x1p+0,          0x1p-1,          0x0p+0, 0)
+T(RN,          0x1p+0,         -0x1p+0,          0x1p+1,          0x0p+0, 0)
+T(RN,         -0x1p+0,         -0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,             inf,         -0x1p+0,             inf,          0x0p+0, 0)
+T(RN,            -inf,         -0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,             nan,         -0x1p+0,             nan,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,         -0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,            -inf,             inf,          0x0p+0, 0)
+T(RN,          0x0p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,            -inf,             inf,          0x0p+0, 0)
+T(RN,         -0x0p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,             inf,          0x0p+0,             inf,          0x0p+0, 0)
+T(RN,            -inf,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,             nan,          0x0p+0,             nan,          0x0p+0, 0)
+T(RN,         -0x1p+0,         -0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,             inf,         -0x0p+0,             inf,          0x0p+0, 0)
+T(RN,            -inf,         -0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,             nan,         -0x0p+0,             nan,          0x0p+0, 0)
+T(RN,             inf,          0x1p+1,             inf,          0x0p+0, 0)
+T(RN,             inf,         -0x1p-1,             inf,          0x0p+0, 0)
+T(RN,             inf,             nan,             nan,          0x0p+0, 0)
+T(RN,            -inf,          0x1p+1,          0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,         -0x1p-1,          0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,             nan,             nan,          0x0p+0, 0)
+T(RN,             nan,             nan,             nan,          0x0p+0, 0)
+T(RN,          0x1p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,         -0x1p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,          0x1p+0,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,             inf,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,            -inf,             inf,          0x0p+0, 0)
+T(RN,         -0x1p+0,            -inf,             inf,          0x0p+0, 0)
+T(RN,             inf,            -inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,            -inf,          0x0p+0,          0x0p+0, 0)
+T(RN,        0x1.cp+0,          0x1p-1,        0x1.4p+0,          0x0p+0, 0)
+T(RN,       -0x1.cp+0,          0x1p-1,          0x0p+0,          0x0p+0, 0)
+T(RN,        0x1.cp+0,         -0x1p-1,        0x1.2p+1,          0x0p+0, 0)
+T(RN,       -0x1.cp+0,         -0x1p-1,          0x0p+0,          0x0p+0, 0)
diff --git a/src/math/special/fdiml.h b/src/math/special/fdiml.h
new file mode 100644 (file)
index 0000000..a4ed686
--- /dev/null
@@ -0,0 +1,58 @@
+T(RN,                        0x0p+0L,                        0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p-1L,                        0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p-1L,                        0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                        0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                        0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                        0x1p+0L,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                        0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                            nan,                        0x1p+0L,                            nan,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                       -0x1p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x1p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p-1L,                       -0x1p+0L,                      0x1.8p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p-1L,                       -0x1p+0L,                        0x1p-1L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                       -0x1p+0L,                        0x1p+1L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                       -0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                       -0x1p+0L,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                       -0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                            nan,                       -0x1p+0L,                            nan,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                       -0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                            inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                           -inf,                            inf,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                            inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                           -inf,                            inf,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                        0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                        0x0p+0L,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                            nan,                        0x0p+0L,                            nan,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                       -0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                       -0x0p+0L,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                       -0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                            nan,                       -0x0p+0L,                            nan,          0x0p+0, 0)
+T(RN,                            inf,                        0x1p+1L,                            inf,          0x0p+0, 0)
+T(RN,                            inf,                       -0x1p-1L,                            inf,          0x0p+0, 0)
+T(RN,                            inf,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                           -inf,                        0x1p+1L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                           -inf,                       -0x1p-1L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                           -inf,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                            nan,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                            inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                            inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                            inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                           -inf,                            inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                           -inf,                            inf,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                           -inf,                            inf,          0x0p+0, 0)
+T(RN,                            inf,                           -inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                           -inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                      0x1.cp+0L,                        0x1p-1L,                      0x1.4p+0L,          0x0p+0, 0)
+T(RN,                     -0x1.cp+0L,                        0x1p-1L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                      0x1.cp+0L,                       -0x1p-1L,                      0x1.2p+1L,          0x0p+0, 0)
+T(RN,                     -0x1.cp+0L,                       -0x1p-1L,                        0x0p+0L,          0x0p+0, 0)
diff --git a/src/math/special/floor.h b/src/math/special/floor.h
new file mode 100644 (file)
index 0000000..090227d
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p-1,                  0x0p+0,          0x0p+0, INEXACT)
+T(RN,                 -0x1p-1,                 -0x1p+0,          0x0p+0, INEXACT)
+T(RN,             0x1.0001p+0,                  0x1p+0,          0x0p+0, INEXACT)
+T(RN,            -0x1.0001p+0,                 -0x1p+1,          0x0p+0, INEXACT)
+T(RN,             0x1.ffffp-1,                  0x0p+0,          0x0p+0, INEXACT)
+T(RN,            -0x1.ffffp-1,                 -0x1p+0,          0x0p+0, INEXACT)
+T(RN,                0x1p-100,                  0x0p+0,          0x0p+0, INEXACT)
+T(RN,               -0x1p-100,                 -0x1p+0,          0x0p+0, INEXACT)
diff --git a/src/math/special/floorf.h b/src/math/special/floorf.h
new file mode 100644 (file)
index 0000000..114564f
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,             nan,             nan,          0x0p+0, 0)
+T(RN,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,            -inf,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p-1,          0x0p+0,          0x0p+0, INEXACT)
+T(RN,         -0x1p-1,         -0x1p+0,          0x0p+0, INEXACT)
+T(RN,     0x1.0001p+0,          0x1p+0,          0x0p+0, INEXACT)
+T(RN,    -0x1.0001p+0,         -0x1p+1,          0x0p+0, INEXACT)
+T(RN,     0x1.ffffp-1,          0x0p+0,          0x0p+0, INEXACT)
+T(RN,    -0x1.ffffp-1,         -0x1p+0,          0x0p+0, INEXACT)
+T(RN,        0x1p-100,          0x0p+0,          0x0p+0, INEXACT)
+T(RN,       -0x1p-100,         -0x1p+0,          0x0p+0, INEXACT)
diff --git a/src/math/special/floorl.h b/src/math/special/floorl.h
new file mode 100644 (file)
index 0000000..971c02e
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                           -inf,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p-1L,                        0x0p+0L,          0x0p+0, INEXACT)
+T(RN,                       -0x1p-1L,                       -0x1p+0L,          0x0p+0, INEXACT)
+T(RN,                   0x1.0001p+0L,                        0x1p+0L,          0x0p+0, INEXACT)
+T(RN,                  -0x1.0001p+0L,                       -0x1p+1L,          0x0p+0, INEXACT)
+T(RN,                   0x1.ffffp-1L,                        0x0p+0L,          0x0p+0, INEXACT)
+T(RN,                  -0x1.ffffp-1L,                       -0x1p+0L,          0x0p+0, INEXACT)
+T(RN,                      0x1p-100L,                        0x0p+0L,          0x0p+0, INEXACT)
+T(RN,                     -0x1p-100L,                       -0x1p+0L,          0x0p+0, INEXACT)
diff --git a/src/math/special/fma.h b/src/math/special/fma.h
new file mode 100644 (file)
index 0000000..ffa9721
--- /dev/null
@@ -0,0 +1,37 @@
+T(RN,                  0x0p+0,                  0x0p+0,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,                 -0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x0p+0,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                 -0x0p+0,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x0p+0,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                 -0x0p+0,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                  0x0p+0,                 -0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                  0x0p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                  0x0p+0,                     nan,                  0x0p+0,                     nan,          0x0p+0, 0)
+T(RN,                     nan,                  0x0p+0,                  0x0p+0,                     nan,          0x0p+0, 0)
+T(RN,                  0x0p+0,                  0x0p+0,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                  0x0p+0,                     inf,                  0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                     inf,                  0x0p+0,                  0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x0p+0,                  0x0p+0,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                  0x0p+0,                    -inf,                  0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                  0x0p+0,                  0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x1p+0,                     inf,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                  0x1p+0,                     inf,                    -inf,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x1p+0,                    -inf,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                  0x1p+0,                    -inf,                     inf,                     nan,          0x0p+0, INVALID)
+T(RN,                 -0x1p+0,                     inf,                     inf,                     nan,          0x0p+0, INVALID)
+T(RN,                 -0x1p+0,                     inf,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                    -inf,                    -inf,                     nan,          0x0p+0, INVALID)
+T(RN,                 -0x1p+0,                    -inf,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x1p+0,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x1p+0,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                     inf,                    -inf,                  0x1p+0,                    -inf,          0x0p+0, 0)
+T(RN,                    -inf,                    -inf,                  0x1p+0,                     inf,          0x0p+0, 0)
+T(RN,                     inf,                     inf,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                     inf,                     nan,                     inf,                     nan,          0x0p+0, 0)
+T(RN,                     nan,                     inf,                     inf,                     nan,          0x0p+0, 0)
+// TODO: invalid is optional
+T(RN,                     inf,                  0x0p+0,                     nan,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x0p+0,                     inf,                     nan,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                  0x0p+0,                     nan,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x0p+0,                    -inf,                     nan,                     nan,          0x0p+0, INVALID)
diff --git a/src/math/special/fmaf.h b/src/math/special/fmaf.h
new file mode 100644 (file)
index 0000000..af5ac49
--- /dev/null
@@ -0,0 +1,37 @@
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,         -0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x0p+0,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,         -0x0p+0,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x0p+0,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,         -0x0p+0,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x0p+0,         -0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x0p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,          0x0p+0,             nan,          0x0p+0,             nan,          0x0p+0, 0)
+T(RN,             nan,          0x0p+0,          0x0p+0,             nan,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x0p+0,             inf,             inf,          0x0p+0, 0)
+T(RN,          0x0p+0,             inf,          0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,             inf,          0x0p+0,          0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,          0x0p+0,          0x0p+0,            -inf,            -inf,          0x0p+0, 0)
+T(RN,          0x0p+0,            -inf,          0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,          0x0p+0,          0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,          0x1p+0,             inf,             inf,             inf,          0x0p+0, 0)
+T(RN,          0x1p+0,             inf,            -inf,             nan,          0x0p+0, INVALID)
+T(RN,          0x1p+0,            -inf,            -inf,            -inf,          0x0p+0, 0)
+T(RN,          0x1p+0,            -inf,             inf,             nan,          0x0p+0, INVALID)
+T(RN,         -0x1p+0,             inf,             inf,             nan,          0x0p+0, INVALID)
+T(RN,         -0x1p+0,             inf,            -inf,            -inf,          0x0p+0, 0)
+T(RN,         -0x1p+0,            -inf,            -inf,             nan,          0x0p+0, INVALID)
+T(RN,         -0x1p+0,            -inf,             inf,             inf,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x1p+0,             inf,             inf,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x1p+0,            -inf,            -inf,          0x0p+0, 0)
+T(RN,             inf,            -inf,          0x1p+0,            -inf,          0x0p+0, 0)
+T(RN,            -inf,            -inf,          0x1p+0,             inf,          0x0p+0, 0)
+T(RN,             inf,             inf,             nan,             nan,          0x0p+0, 0)
+T(RN,             inf,             nan,             inf,             nan,          0x0p+0, 0)
+T(RN,             nan,             inf,             inf,             nan,          0x0p+0, 0)
+// TODO: invalid is optional
+T(RN,             inf,          0x0p+0,             nan,             nan,          0x0p+0, INVALID)
+T(RN,          0x0p+0,             inf,             nan,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,          0x0p+0,             nan,             nan,          0x0p+0, INVALID)
+T(RN,          0x0p+0,            -inf,             nan,             nan,          0x0p+0, INVALID)
diff --git a/src/math/special/fmal.h b/src/math/special/fmal.h
new file mode 100644 (file)
index 0000000..e05ec5c
--- /dev/null
@@ -0,0 +1,37 @@
+T(RN,                        0x0p+0L,                        0x0p+0L,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,                       -0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x0p+0L,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                       -0x0p+0L,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x0p+0L,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                       -0x0p+0L,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                        0x0p+0L,                       -0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                        0x0p+0L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                            nan,                        0x0p+0L,                            nan,          0x0p+0, 0)
+T(RN,                            nan,                        0x0p+0L,                        0x0p+0L,                            nan,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                        0x0p+0L,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                            inf,                        0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                            inf,                        0x0p+0L,                        0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                        0x0p+0L,                        0x0p+0L,                           -inf,                           -inf,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                           -inf,                        0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                        0x0p+0L,                        0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                        0x1p+0L,                            inf,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                            inf,                           -inf,                            nan,          0x0p+0, INVALID)
+T(RN,                        0x1p+0L,                           -inf,                           -inf,                           -inf,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                           -inf,                            inf,                            nan,          0x0p+0, INVALID)
+T(RN,                       -0x1p+0L,                            inf,                            inf,                            nan,          0x0p+0, INVALID)
+T(RN,                       -0x1p+0L,                            inf,                           -inf,                           -inf,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                           -inf,                           -inf,                            nan,          0x0p+0, INVALID)
+T(RN,                       -0x1p+0L,                           -inf,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                        0x1p+0L,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                        0x1p+0L,                           -inf,                           -inf,          0x0p+0, 0)
+T(RN,                            inf,                           -inf,                        0x1p+0L,                           -inf,          0x0p+0, 0)
+T(RN,                           -inf,                           -inf,                        0x1p+0L,                            inf,          0x0p+0, 0)
+T(RN,                            inf,                            inf,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                            inf,                            nan,                            inf,                            nan,          0x0p+0, 0)
+T(RN,                            nan,                            inf,                            inf,                            nan,          0x0p+0, 0)
+// TODO: invalid is optional
+T(RN,                            inf,                        0x0p+0L,                            nan,                            nan,          0x0p+0, INVALID)
+T(RN,                        0x0p+0L,                            inf,                            nan,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                        0x0p+0L,                            nan,                            nan,          0x0p+0, INVALID)
+T(RN,                        0x0p+0L,                           -inf,                            nan,                            nan,          0x0p+0, INVALID)
diff --git a/src/math/special/fmax.h b/src/math/special/fmax.h
new file mode 100644 (file)
index 0000000..9385c06
--- /dev/null
@@ -0,0 +1,58 @@
+T(RN,                  0x0p+0,                  0x1p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x1p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p-1,                  0x1p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p-1,                  0x1p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x1p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                  0x1p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                     inf,                  0x1p+0,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                  0x1p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                     nan,                  0x1p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                 -0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x1p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p-1,                 -0x1p+0,                  0x1p-1,          0x0p+0, 0)
+T(RN,                 -0x1p-1,                 -0x1p+0,                 -0x1p-1,          0x0p+0, 0)
+T(RN,                  0x1p+0,                 -0x1p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                 -0x1p+0,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                     inf,                 -0x1p+0,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                 -0x1p+0,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                     nan,                 -0x1p+0,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                 -0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                  0x0p+0,                    -inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                     nan,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                    -inf,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                     nan,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                  0x0p+0,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     nan,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                 -0x0p+0,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                     nan,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                  0x1p+1,                     inf,          0x0p+0, 0)
+T(RN,                     inf,                 -0x1p-1,                     inf,          0x0p+0, 0)
+T(RN,                     inf,                     nan,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                  0x1p+1,                  0x1p+1,          0x0p+0, 0)
+T(RN,                    -inf,                 -0x1p-1,                 -0x1p-1,          0x0p+0, 0)
+T(RN,                    -inf,                     nan,                    -inf,          0x0p+0, 0)
+T(RN,                     nan,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                  0x1p+0,                     nan,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                     nan,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                     inf,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                  0x1p+0,                    -inf,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                    -inf,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                     inf,                    -inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                0x1.cp+0,                  0x1p-1,                0x1.cp+0,          0x0p+0, 0)
+T(RN,               -0x1.cp+0,                  0x1p-1,                  0x1p-1,          0x0p+0, 0)
+T(RN,                0x1.cp+0,                 -0x1p-1,                0x1.cp+0,          0x0p+0, 0)
+T(RN,               -0x1.cp+0,                 -0x1p-1,                 -0x1p-1,          0x0p+0, 0)
diff --git a/src/math/special/fmaxf.h b/src/math/special/fmaxf.h
new file mode 100644 (file)
index 0000000..60113af
--- /dev/null
@@ -0,0 +1,58 @@
+T(RN,          0x0p+0,          0x1p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x1p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p-1,          0x1p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p-1,          0x1p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x1p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,          0x1p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,             inf,          0x1p+0,             inf,          0x0p+0, 0)
+T(RN,            -inf,          0x1p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,             nan,          0x1p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,         -0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p-1,         -0x1p+0,          0x1p-1,          0x0p+0, 0)
+T(RN,         -0x1p-1,         -0x1p+0,         -0x1p-1,          0x0p+0, 0)
+T(RN,          0x1p+0,         -0x1p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,         -0x1p+0,         -0x1p+0,          0x0p+0, 0)
+T(RN,             inf,         -0x1p+0,             inf,          0x0p+0, 0)
+T(RN,            -inf,         -0x1p+0,         -0x1p+0,          0x0p+0, 0)
+T(RN,             nan,         -0x1p+0,         -0x1p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,         -0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,             inf,             inf,          0x0p+0, 0)
+T(RN,          0x0p+0,            -inf,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,             nan,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,             inf,             inf,          0x0p+0, 0)
+T(RN,         -0x0p+0,            -inf,         -0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,             nan,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,             inf,          0x0p+0,             inf,          0x0p+0, 0)
+T(RN,            -inf,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,             nan,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,             inf,         -0x0p+0,             inf,          0x0p+0, 0)
+T(RN,            -inf,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,             nan,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,             inf,          0x1p+1,             inf,          0x0p+0, 0)
+T(RN,             inf,         -0x1p-1,             inf,          0x0p+0, 0)
+T(RN,             inf,             nan,             inf,          0x0p+0, 0)
+T(RN,            -inf,          0x1p+1,          0x1p+1,          0x0p+0, 0)
+T(RN,            -inf,         -0x1p-1,         -0x1p-1,          0x0p+0, 0)
+T(RN,            -inf,             nan,            -inf,          0x0p+0, 0)
+T(RN,             nan,             nan,             nan,          0x0p+0, 0)
+T(RN,          0x1p+0,             nan,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,             nan,         -0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,             inf,             inf,          0x0p+0, 0)
+T(RN,         -0x1p+0,             inf,             inf,          0x0p+0, 0)
+T(RN,             inf,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,             inf,             inf,          0x0p+0, 0)
+T(RN,          0x1p+0,            -inf,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,            -inf,         -0x1p+0,          0x0p+0, 0)
+T(RN,             inf,            -inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,            -inf,            -inf,          0x0p+0, 0)
+T(RN,        0x1.cp+0,          0x1p-1,        0x1.cp+0,          0x0p+0, 0)
+T(RN,       -0x1.cp+0,          0x1p-1,          0x1p-1,          0x0p+0, 0)
+T(RN,        0x1.cp+0,         -0x1p-1,        0x1.cp+0,          0x0p+0, 0)
+T(RN,       -0x1.cp+0,         -0x1p-1,         -0x1p-1,          0x0p+0, 0)
diff --git a/src/math/special/fmaxl.h b/src/math/special/fmaxl.h
new file mode 100644 (file)
index 0000000..3a51f46
--- /dev/null
@@ -0,0 +1,58 @@
+T(RN,                        0x0p+0L,                        0x1p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x1p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p-1L,                        0x1p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p-1L,                        0x1p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                        0x1p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                        0x1p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                            inf,                        0x1p+0L,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                        0x1p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                            nan,                        0x1p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                       -0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x1p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p-1L,                       -0x1p+0L,                        0x1p-1L,          0x0p+0, 0)
+T(RN,                       -0x1p-1L,                       -0x1p+0L,                       -0x1p-1L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                       -0x1p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                       -0x1p+0L,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                            inf,                       -0x1p+0L,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                       -0x1p+0L,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                            nan,                       -0x1p+0L,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                       -0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                           -inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                            nan,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                           -inf,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                            nan,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                        0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                        0x0p+0L,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                            nan,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                       -0x0p+0L,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                            nan,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                        0x1p+1L,                            inf,          0x0p+0, 0)
+T(RN,                            inf,                       -0x1p-1L,                            inf,          0x0p+0, 0)
+T(RN,                            inf,                            nan,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                        0x1p+1L,                        0x1p+1L,          0x0p+0, 0)
+T(RN,                           -inf,                       -0x1p-1L,                       -0x1p-1L,          0x0p+0, 0)
+T(RN,                           -inf,                            nan,                           -inf,          0x0p+0, 0)
+T(RN,                            nan,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                            nan,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                            nan,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                            inf,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                           -inf,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                           -inf,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                            inf,                           -inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                           -inf,                           -inf,          0x0p+0, 0)
+T(RN,                      0x1.cp+0L,                        0x1p-1L,                      0x1.cp+0L,          0x0p+0, 0)
+T(RN,                     -0x1.cp+0L,                        0x1p-1L,                        0x1p-1L,          0x0p+0, 0)
+T(RN,                      0x1.cp+0L,                       -0x1p-1L,                      0x1.cp+0L,          0x0p+0, 0)
+T(RN,                     -0x1.cp+0L,                       -0x1p-1L,                       -0x1p-1L,          0x0p+0, 0)
diff --git a/src/math/special/fmin.h b/src/math/special/fmin.h
new file mode 100644 (file)
index 0000000..f794bfd
--- /dev/null
@@ -0,0 +1,58 @@
+T(RN,                  0x0p+0,                  0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x1p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p-1,                  0x1p+0,                  0x1p-1,          0x0p+0, 0)
+T(RN,                 -0x1p-1,                  0x1p+0,                 -0x1p-1,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x1p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                  0x1p+0,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                     inf,                  0x1p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                    -inf,                  0x1p+0,                    -inf,          0x0p+0, 0)
+T(RN,                     nan,                  0x1p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                 -0x1p+0,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x1p+0,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p-1,                 -0x1p+0,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p-1,                 -0x1p+0,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                 -0x1p+0,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                 -0x1p+0,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                     inf,                 -0x1p+0,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                    -inf,                 -0x1p+0,                    -inf,          0x0p+0, 0)
+T(RN,                     nan,                 -0x1p+0,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                     inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                  0x0p+0,                     nan,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                     inf,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                     nan,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                  0x0p+0,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                     inf,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                    -inf,                  0x0p+0,                    -inf,          0x0p+0, 0)
+T(RN,                     nan,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                 -0x0p+0,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                     inf,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                    -inf,                 -0x0p+0,                    -inf,          0x0p+0, 0)
+T(RN,                     nan,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                  0x1p+1,                  0x1p+1,          0x0p+0, 0)
+T(RN,                     inf,                 -0x1p-1,                 -0x1p-1,          0x0p+0, 0)
+T(RN,                     inf,                     nan,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                  0x1p+1,                    -inf,          0x0p+0, 0)
+T(RN,                    -inf,                 -0x1p-1,                    -inf,          0x0p+0, 0)
+T(RN,                    -inf,                     nan,                    -inf,          0x0p+0, 0)
+T(RN,                     nan,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                  0x1p+0,                     nan,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                     nan,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                     inf,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                     inf,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                     inf,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                     inf,                    -inf,          0x0p+0, 0)
+T(RN,                  0x1p+0,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                     inf,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                    -inf,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                0x1.cp+0,                  0x1p-1,                  0x1p-1,          0x0p+0, 0)
+T(RN,               -0x1.cp+0,                  0x1p-1,               -0x1.cp+0,          0x0p+0, 0)
+T(RN,                0x1.cp+0,                 -0x1p-1,                 -0x1p-1,          0x0p+0, 0)
+T(RN,               -0x1.cp+0,                 -0x1p-1,               -0x1.cp+0,          0x0p+0, 0)
diff --git a/src/math/special/fminf.h b/src/math/special/fminf.h
new file mode 100644 (file)
index 0000000..b114567
--- /dev/null
@@ -0,0 +1,58 @@
+T(RN,          0x0p+0,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p-1,          0x1p+0,          0x1p-1,          0x0p+0, 0)
+T(RN,         -0x1p-1,          0x1p+0,         -0x1p-1,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x1p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,          0x1p+0,         -0x1p+0,          0x0p+0, 0)
+T(RN,             inf,          0x1p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,            -inf,          0x1p+0,            -inf,          0x0p+0, 0)
+T(RN,             nan,          0x1p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,         -0x1p+0,         -0x1p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x1p+0,         -0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p-1,         -0x1p+0,         -0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p-1,         -0x1p+0,         -0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,         -0x1p+0,         -0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,         -0x1p+0,         -0x1p+0,          0x0p+0, 0)
+T(RN,             inf,         -0x1p+0,         -0x1p+0,          0x0p+0, 0)
+T(RN,            -inf,         -0x1p+0,            -inf,          0x0p+0, 0)
+T(RN,             nan,         -0x1p+0,         -0x1p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,            -inf,            -inf,          0x0p+0, 0)
+T(RN,          0x0p+0,             nan,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,             inf,         -0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,            -inf,            -inf,          0x0p+0, 0)
+T(RN,         -0x0p+0,             nan,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,          0x0p+0,         -0x1p+0,          0x0p+0, 0)
+T(RN,             inf,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,          0x0p+0,            -inf,          0x0p+0, 0)
+T(RN,             nan,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,         -0x0p+0,         -0x1p+0,          0x0p+0, 0)
+T(RN,             inf,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,         -0x0p+0,            -inf,          0x0p+0, 0)
+T(RN,             nan,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,             inf,          0x1p+1,          0x1p+1,          0x0p+0, 0)
+T(RN,             inf,         -0x1p-1,         -0x1p-1,          0x0p+0, 0)
+T(RN,             inf,             nan,             inf,          0x0p+0, 0)
+T(RN,            -inf,          0x1p+1,            -inf,          0x0p+0, 0)
+T(RN,            -inf,         -0x1p-1,            -inf,          0x0p+0, 0)
+T(RN,            -inf,             nan,            -inf,          0x0p+0, 0)
+T(RN,             nan,             nan,             nan,          0x0p+0, 0)
+T(RN,          0x1p+0,             nan,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,             nan,         -0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,             inf,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,             inf,         -0x1p+0,          0x0p+0, 0)
+T(RN,             inf,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,             inf,            -inf,          0x0p+0, 0)
+T(RN,          0x1p+0,            -inf,            -inf,          0x0p+0, 0)
+T(RN,         -0x1p+0,            -inf,            -inf,          0x0p+0, 0)
+T(RN,             inf,            -inf,            -inf,          0x0p+0, 0)
+T(RN,            -inf,            -inf,            -inf,          0x0p+0, 0)
+T(RN,        0x1.cp+0,          0x1p-1,          0x1p-1,          0x0p+0, 0)
+T(RN,       -0x1.cp+0,          0x1p-1,       -0x1.cp+0,          0x0p+0, 0)
+T(RN,        0x1.cp+0,         -0x1p-1,         -0x1p-1,          0x0p+0, 0)
+T(RN,       -0x1.cp+0,         -0x1p-1,       -0x1.cp+0,          0x0p+0, 0)
diff --git a/src/math/special/fminl.h b/src/math/special/fminl.h
new file mode 100644 (file)
index 0000000..61c474c
--- /dev/null
@@ -0,0 +1,58 @@
+T(RN,                        0x0p+0L,                        0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x1p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p-1L,                        0x1p+0L,                        0x1p-1L,          0x0p+0, 0)
+T(RN,                       -0x1p-1L,                        0x1p+0L,                       -0x1p-1L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                        0x1p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                        0x1p+0L,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                            inf,                        0x1p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                           -inf,                        0x1p+0L,                           -inf,          0x0p+0, 0)
+T(RN,                            nan,                        0x1p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                       -0x1p+0L,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x1p+0L,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p-1L,                       -0x1p+0L,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p-1L,                       -0x1p+0L,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                       -0x1p+0L,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                       -0x1p+0L,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                            inf,                       -0x1p+0L,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                           -inf,                       -0x1p+0L,                           -inf,          0x0p+0, 0)
+T(RN,                            nan,                       -0x1p+0L,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                            inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                           -inf,                           -inf,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                            nan,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                            inf,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                           -inf,                           -inf,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                            nan,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                        0x0p+0L,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                            inf,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                           -inf,                        0x0p+0L,                           -inf,          0x0p+0, 0)
+T(RN,                            nan,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                       -0x0p+0L,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                            inf,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                           -inf,                       -0x0p+0L,                           -inf,          0x0p+0, 0)
+T(RN,                            nan,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                        0x1p+1L,                        0x1p+1L,          0x0p+0, 0)
+T(RN,                            inf,                       -0x1p-1L,                       -0x1p-1L,          0x0p+0, 0)
+T(RN,                            inf,                            nan,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                        0x1p+1L,                           -inf,          0x0p+0, 0)
+T(RN,                           -inf,                       -0x1p-1L,                           -inf,          0x0p+0, 0)
+T(RN,                           -inf,                            nan,                           -inf,          0x0p+0, 0)
+T(RN,                            nan,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                            nan,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                            nan,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                            inf,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                            inf,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                            inf,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                            inf,                           -inf,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                           -inf,                           -inf,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                           -inf,                           -inf,          0x0p+0, 0)
+T(RN,                            inf,                           -inf,                           -inf,          0x0p+0, 0)
+T(RN,                           -inf,                           -inf,                           -inf,          0x0p+0, 0)
+T(RN,                      0x1.cp+0L,                        0x1p-1L,                        0x1p-1L,          0x0p+0, 0)
+T(RN,                     -0x1.cp+0L,                        0x1p-1L,                     -0x1.cp+0L,          0x0p+0, 0)
+T(RN,                      0x1.cp+0L,                       -0x1p-1L,                       -0x1p-1L,          0x0p+0, 0)
+T(RN,                     -0x1.cp+0L,                       -0x1p-1L,                     -0x1.cp+0L,          0x0p+0, 0)
diff --git a/src/math/special/fmod.h b/src/math/special/fmod.h
new file mode 100644 (file)
index 0000000..a41456d
--- /dev/null
@@ -0,0 +1,66 @@
+T(RN,                  0x0p+0,                  0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x1p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p-1,                  0x1p+0,                  0x1p-1,          0x0p+0, 0)
+T(RN,                 -0x1p-1,                  0x1p+0,                 -0x1p-1,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                  0x1p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                0x1.8p+0,                  0x1p+0,                  0x1p-1,          0x0p+0, 0)
+T(RN,               -0x1.8p+0,                  0x1p+0,                 -0x1p-1,          0x0p+0, 0)
+T(RN,                  0x1p+1,                  0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+1,                  0x1p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                  0x1p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                  0x1p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,                  0x1p+0,                     nan,          0x0p+0, 0)
+T(RN,                  0x0p+0,                 -0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x1p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p-1,                 -0x1p+0,                  0x1p-1,          0x0p+0, 0)
+T(RN,                 -0x1p-1,                 -0x1p+0,                 -0x1p-1,          0x0p+0, 0)
+T(RN,                  0x1p+0,                 -0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                 -0x1p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                0x1.8p+0,                 -0x1p+0,                  0x1p-1,          0x0p+0, 0)
+T(RN,               -0x1.8p+0,                 -0x1p+0,                 -0x1p-1,          0x0p+0, 0)
+T(RN,                  0x1p+1,                 -0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+1,                 -0x1p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                 -0x1p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                 -0x1p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,                 -0x1p+0,                     nan,          0x0p+0, 0)
+T(RN,                  0x0p+0,                  0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x0p+0,                 -0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x0p+0,                     inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                    -inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                 -0x0p+0,                 -0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                 -0x0p+0,                     inf,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                    -inf,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                 -0x1p+0,                  0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                     inf,                  0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                  0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,                  0x0p+0,                     nan,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                 -0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                     inf,                 -0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                 -0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,                 -0x0p+0,                     nan,          0x0p+0, 0)
+T(RN,                     inf,                  0x1p+1,                     nan,          0x0p+0, INVALID)
+T(RN,                     inf,                 -0x1p-1,                     nan,          0x0p+0, INVALID)
+T(RN,                     inf,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                    -inf,                  0x1p+1,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                 -0x1p-1,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                     nan,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                  0x1p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                  0x1p+0,                     inf,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                     inf,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                     inf,                     inf,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                     inf,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x1p+0,                    -inf,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                    -inf,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                     inf,                    -inf,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                    -inf,                     nan,          0x0p+0, INVALID)
+T(RN,                0x1.cp+0,                  0x1p-1,                  0x1p-2,          0x0p+0, 0)
+T(RN,               -0x1.cp+0,                  0x1p-1,                 -0x1p-2,          0x0p+0, 0)
+T(RN,                0x1.cp+0,                 -0x1p-1,                  0x1p-2,          0x0p+0, 0)
+T(RN,               -0x1.cp+0,                 -0x1p-1,                 -0x1p-2,          0x0p+0, 0)
diff --git a/src/math/special/fmodf.h b/src/math/special/fmodf.h
new file mode 100644 (file)
index 0000000..ce07cd6
--- /dev/null
@@ -0,0 +1,66 @@
+T(RN,          0x0p+0,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p-1,          0x1p+0,          0x1p-1,          0x0p+0, 0)
+T(RN,         -0x1p-1,          0x1p+0,         -0x1p-1,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,          0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,        0x1.8p+0,          0x1p+0,          0x1p-1,          0x0p+0, 0)
+T(RN,       -0x1.8p+0,          0x1p+0,         -0x1p-1,          0x0p+0, 0)
+T(RN,          0x1p+1,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p+1,          0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,             inf,          0x1p+0,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,          0x1p+0,             nan,          0x0p+0, INVALID)
+T(RN,             nan,          0x1p+0,             nan,          0x0p+0, 0)
+T(RN,          0x0p+0,         -0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p-1,         -0x1p+0,          0x1p-1,          0x0p+0, 0)
+T(RN,         -0x1p-1,         -0x1p+0,         -0x1p-1,          0x0p+0, 0)
+T(RN,          0x1p+0,         -0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,         -0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,        0x1.8p+0,         -0x1p+0,          0x1p-1,          0x0p+0, 0)
+T(RN,       -0x1.8p+0,         -0x1p+0,         -0x1p-1,          0x0p+0, 0)
+T(RN,          0x1p+1,         -0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p+1,         -0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,             inf,         -0x1p+0,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,         -0x1p+0,             nan,          0x0p+0, INVALID)
+T(RN,             nan,         -0x1p+0,             nan,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,          0x0p+0,         -0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,          0x0p+0,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,            -inf,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,         -0x0p+0,         -0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,         -0x0p+0,             inf,         -0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,            -inf,         -0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,         -0x1p+0,          0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,             inf,          0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,          0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,             nan,          0x0p+0,             nan,          0x0p+0, 0)
+T(RN,         -0x1p+0,         -0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,             inf,         -0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,         -0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,             nan,         -0x0p+0,             nan,          0x0p+0, 0)
+T(RN,             inf,          0x1p+1,             nan,          0x0p+0, INVALID)
+T(RN,             inf,         -0x1p-1,             nan,          0x0p+0, INVALID)
+T(RN,             inf,             nan,             nan,          0x0p+0, 0)
+T(RN,            -inf,          0x1p+1,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,         -0x1p-1,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,             nan,             nan,          0x0p+0, 0)
+T(RN,             nan,             nan,             nan,          0x0p+0, 0)
+T(RN,          0x1p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,         -0x1p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,          0x1p+0,             inf,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,             inf,         -0x1p+0,          0x0p+0, 0)
+T(RN,             inf,             inf,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,             inf,             nan,          0x0p+0, INVALID)
+T(RN,          0x1p+0,            -inf,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,            -inf,         -0x1p+0,          0x0p+0, 0)
+T(RN,             inf,            -inf,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,            -inf,             nan,          0x0p+0, INVALID)
+T(RN,        0x1.cp+0,          0x1p-1,          0x1p-2,          0x0p+0, 0)
+T(RN,       -0x1.cp+0,          0x1p-1,         -0x1p-2,          0x0p+0, 0)
+T(RN,        0x1.cp+0,         -0x1p-1,          0x1p-2,          0x0p+0, 0)
+T(RN,       -0x1.cp+0,         -0x1p-1,         -0x1p-2,          0x0p+0, 0)
diff --git a/src/math/special/fmodl.h b/src/math/special/fmodl.h
new file mode 100644 (file)
index 0000000..61c5970
--- /dev/null
@@ -0,0 +1,66 @@
+T(RN,                        0x0p+0L,                        0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x1p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p-1L,                        0x1p+0L,                        0x1p-1L,          0x0p+0, 0)
+T(RN,                       -0x1p-1L,                        0x1p+0L,                       -0x1p-1L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                        0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                        0x1p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                      0x1.8p+0L,                        0x1p+0L,                        0x1p-1L,          0x0p+0, 0)
+T(RN,                     -0x1.8p+0L,                        0x1p+0L,                       -0x1p-1L,          0x0p+0, 0)
+T(RN,                        0x1p+1L,                        0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+1L,                        0x1p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                        0x1p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                        0x1p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                            nan,                        0x1p+0L,                            nan,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                       -0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x1p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p-1L,                       -0x1p+0L,                        0x1p-1L,          0x0p+0, 0)
+T(RN,                       -0x1p-1L,                       -0x1p+0L,                       -0x1p-1L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                       -0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                       -0x1p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                      0x1.8p+0L,                       -0x1p+0L,                        0x1p-1L,          0x0p+0, 0)
+T(RN,                     -0x1.8p+0L,                       -0x1p+0L,                       -0x1p-1L,          0x0p+0, 0)
+T(RN,                        0x1p+1L,                       -0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+1L,                       -0x1p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                       -0x1p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                       -0x1p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                            nan,                       -0x1p+0L,                            nan,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                        0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                        0x0p+0L,                       -0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                        0x0p+0L,                            inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                           -inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                       -0x0p+0L,                            inf,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                           -inf,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                        0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                       -0x1p+0L,                        0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                            inf,                        0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                        0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                            nan,                        0x0p+0L,                            nan,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                       -0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                            inf,                       -0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                       -0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                            nan,                       -0x0p+0L,                            nan,          0x0p+0, 0)
+T(RN,                            inf,                        0x1p+1L,                            nan,          0x0p+0, INVALID)
+T(RN,                            inf,                       -0x1p-1L,                            nan,          0x0p+0, INVALID)
+T(RN,                            inf,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                           -inf,                        0x1p+1L,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                       -0x1p-1L,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                            nan,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                            inf,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                            inf,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                            inf,                            inf,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                            inf,                            nan,          0x0p+0, INVALID)
+T(RN,                        0x1p+0L,                           -inf,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                           -inf,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                            inf,                           -inf,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                           -inf,                            nan,          0x0p+0, INVALID)
+T(RN,                      0x1.cp+0L,                        0x1p-1L,                        0x1p-2L,          0x0p+0, 0)
+T(RN,                     -0x1.cp+0L,                        0x1p-1L,                       -0x1p-2L,          0x0p+0, 0)
+T(RN,                      0x1.cp+0L,                       -0x1p-1L,                        0x1p-2L,          0x0p+0, 0)
+T(RN,                     -0x1.cp+0L,                       -0x1p-1L,                       -0x1p-2L,          0x0p+0, 0)
diff --git a/src/math/special/frexp.h b/src/math/special/frexp.h
new file mode 100644 (file)
index 0000000..97ba49f
--- /dev/null
@@ -0,0 +1,12 @@
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0,           0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,          0x0p+0,           0, 0)
+T(RN,                  0x1p-1,                  0x1p-1,          0x0p+0,           0, 0)
+T(RN,                 -0x1p-1,                 -0x1p-1,          0x0p+0,           0, 0)
+T(RN,                  0x1p+0,                  0x1p-1,          0x0p+0,           1, 0)
+T(RN,                 -0x1p+0,                 -0x1p-1,          0x0p+0,           1, 0)
+T(RN,                  0x1p+1,                  0x1p-1,          0x0p+0,           2, 0)
+T(RN,                 -0x1p+1,                 -0x1p-1,          0x0p+0,           2, 0)
+// TODO: exp is unspecified for these inputs
+T(RN,                     inf,                     inf,          0x0p+0,           0, 0)
+T(RN,                    -inf,                    -inf,          0x0p+0,           0, 0)
+T(RN,                     nan,                     nan,          0x0p+0,           0, 0)
diff --git a/src/math/special/frexpf.h b/src/math/special/frexpf.h
new file mode 100644 (file)
index 0000000..c400151
--- /dev/null
@@ -0,0 +1,12 @@
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0,           0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0,           0, 0)
+T(RN,          0x1p-1,          0x1p-1,          0x0p+0,           0, 0)
+T(RN,         -0x1p-1,         -0x1p-1,          0x0p+0,           0, 0)
+T(RN,          0x1p+0,          0x1p-1,          0x0p+0,           1, 0)
+T(RN,         -0x1p+0,         -0x1p-1,          0x0p+0,           1, 0)
+T(RN,          0x1p+1,          0x1p-1,          0x0p+0,           2, 0)
+T(RN,         -0x1p+1,         -0x1p-1,          0x0p+0,           2, 0)
+// TODO: exp is unspecified
+T(RN,             inf,             inf,          0x0p+0,           0, 0)
+T(RN,            -inf,            -inf,          0x0p+0,           0, 0)
+T(RN,             nan,             nan,          0x0p+0,           0, 0)
diff --git a/src/math/special/frexpl.h b/src/math/special/frexpl.h
new file mode 100644 (file)
index 0000000..d6d44fa
--- /dev/null
@@ -0,0 +1,12 @@
+T(RN,                        0x0p+0L,                        0x0p+0L,          0x0p+0,           0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0,           0, 0)
+T(RN,                        0x1p-1L,                        0x1p-1L,          0x0p+0,           0, 0)
+T(RN,                       -0x1p-1L,                       -0x1p-1L,          0x0p+0,           0, 0)
+T(RN,                        0x1p+0L,                        0x1p-1L,          0x0p+0,           1, 0)
+T(RN,                       -0x1p+0L,                       -0x1p-1L,          0x0p+0,           1, 0)
+T(RN,                        0x1p+1L,                        0x1p-1L,          0x0p+0,           2, 0)
+T(RN,                       -0x1p+1L,                       -0x1p-1L,          0x0p+0,           2, 0)
+// TODO: exp is unspecified
+T(RN,                            inf,                            inf,          0x0p+0,           0, 0)
+T(RN,                           -inf,                           -inf,          0x0p+0,           0, 0)
+T(RN,                            nan,                            nan,          0x0p+0,           0, 0)
diff --git a/src/math/special/hypot.h b/src/math/special/hypot.h
new file mode 100644 (file)
index 0000000..3cff803
--- /dev/null
@@ -0,0 +1,19 @@
+T(RN,                0x1.8p+1,                  0x1p+2,                0x1.4p+2,          0x0p+0, 0)
+T(RN,               -0x1.8p+1,                  0x1p+2,                0x1.4p+2,          0x0p+0, 0)
+T(RN,                  0x1p+2,                0x1.8p+1,                0x1.4p+2,          0x0p+0, 0)
+T(RN,                  0x1p+2,               -0x1.8p+1,                0x1.4p+2,          0x0p+0, 0)
+T(RN,               -0x1.8p+1,                 -0x1p+2,                0x1.4p+2,          0x0p+0, 0)
+T(RN, 0x1.fffffffffffffp+1023,                  0x0p+0, 0x1.fffffffffffffp+1023,          0x0p+0, 0)
+T(RN, 0x1.fffffffffffffp+1023,                 -0x0p+0, 0x1.fffffffffffffp+1023,          0x0p+0, 0)
+T(RN,               0x1p-1074,                  0x0p+0,               0x1p-1074,          0x0p+0, 0)
+T(RN,               0x1p-1074,                 -0x0p+0,               0x1p-1074,          0x0p+0, 0)
+T(RN,                     inf,                  0x1p+0,                     inf,          0x0p+0, 0)
+T(RN,                  0x1p+0,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                     inf,                     nan,                     inf,          0x0p+0, 0)
+T(RN,                     nan,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                  0x1p+0,                     inf,          0x0p+0, 0)
+T(RN,                  0x1p+0,                    -inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                     nan,                     inf,          0x0p+0, 0)
+T(RN,                     nan,                    -inf,                     inf,          0x0p+0, 0)
+T(RN,                     nan,                  0x1p+0,                     nan,          0x0p+0, 0)
+T(RN,                  0x1p+0,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/hypotf.h b/src/math/special/hypotf.h
new file mode 100644 (file)
index 0000000..f87dcc0
--- /dev/null
@@ -0,0 +1,19 @@
+T(RN,        0x1.8p+1,          0x1p+2,        0x1.4p+2,          0x0p+0, 0)
+T(RN,       -0x1.8p+1,          0x1p+2,        0x1.4p+2,          0x0p+0, 0)
+T(RN,          0x1p+2,        0x1.8p+1,        0x1.4p+2,          0x0p+0, 0)
+T(RN,          0x1p+2,       -0x1.8p+1,        0x1.4p+2,          0x0p+0, 0)
+T(RN,       -0x1.8p+1,         -0x1p+2,        0x1.4p+2,          0x0p+0, 0)
+T(RN, 0x1.fffffep+127,          0x0p+0, 0x1.fffffep+127,          0x0p+0, 0)
+T(RN, 0x1.fffffep+127,         -0x0p+0, 0x1.fffffep+127,          0x0p+0, 0)
+T(RN,        0x1p-149,          0x0p+0,        0x1p-149,          0x0p+0, 0)
+T(RN,        0x1p-149,         -0x0p+0,        0x1p-149,          0x0p+0, 0)
+T(RN,             inf,          0x1p+0,             inf,          0x0p+0, 0)
+T(RN,          0x1p+0,             inf,             inf,          0x0p+0, 0)
+T(RN,             inf,             nan,             inf,          0x0p+0, 0)
+T(RN,             nan,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,          0x1p+0,             inf,          0x0p+0, 0)
+T(RN,          0x1p+0,            -inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,             nan,             inf,          0x0p+0, 0)
+T(RN,             nan,            -inf,             inf,          0x0p+0, 0)
+T(RN,             nan,          0x1p+0,             nan,          0x0p+0, 0)
+T(RN,          0x1p+0,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/hypotl.h b/src/math/special/hypotl.h
new file mode 100644 (file)
index 0000000..b6c6427
--- /dev/null
@@ -0,0 +1,19 @@
+T(RN,                      0x1.8p+1L,                        0x1p+2L,                      0x1.4p+2L,          0x0p+0, 0)
+T(RN,                     -0x1.8p+1L,                        0x1p+2L,                      0x1.4p+2L,          0x0p+0, 0)
+T(RN,                        0x1p+2L,                      0x1.8p+1L,                      0x1.4p+2L,          0x0p+0, 0)
+T(RN,                        0x1p+2L,                     -0x1.8p+1L,                      0x1.4p+2L,          0x0p+0, 0)
+T(RN,                     -0x1.8p+1L,                       -0x1p+2L,                      0x1.4p+2L,          0x0p+0, 0)
+T(RN,   0x1.fffffffffffffffep+16383L,                        0x0p+0L,   0x1.fffffffffffffffep+16383L,          0x0p+0, 0)
+T(RN,   0x1.fffffffffffffffep+16383L,                       -0x0p+0L,   0x1.fffffffffffffffep+16383L,          0x0p+0, 0)
+T(RN,                    0x1p-16445L,                        0x0p+0L,                    0x1p-16445L,          0x0p+0, 0)
+T(RN,                    0x1p-16445L,                       -0x0p+0L,                    0x1p-16445L,          0x0p+0, 0)
+T(RN,                            inf,                        0x1p+0L,                            inf,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                            inf,                            nan,                            inf,          0x0p+0, 0)
+T(RN,                            nan,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                        0x1p+0L,                            inf,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                           -inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                            nan,                            inf,          0x0p+0, 0)
+T(RN,                            nan,                           -inf,                            inf,          0x0p+0, 0)
+T(RN,                            nan,                        0x1p+0L,                            nan,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/ilogb.h b/src/math/special/ilogb.h
new file mode 100644 (file)
index 0000000..2e2b8d2
--- /dev/null
@@ -0,0 +1,9 @@
+T(RN,                  0x0p+0, FP_ILOGB0, INVALID)
+T(RN,                 -0x0p+0, FP_ILOGB0, INVALID)
+T(RN,               -0x1p-100, -100, 0)
+T(RN,                  0x1p+0, 0, 0)
+T(RN,                 -0x1p+0, 0, 0)
+T(RN,                     inf, -1U/2, INVALID)
+T(RN,                    -inf, -1U/2, INVALID)
+T(RN,                     nan, FP_ILOGBNAN, INVALID)
+T(RN,               0x1p-1074, -1074, 0)
diff --git a/src/math/special/ilogbf.h b/src/math/special/ilogbf.h
new file mode 100644 (file)
index 0000000..0fcaa2b
--- /dev/null
@@ -0,0 +1,9 @@
+T(RN,                  0x0p+0, FP_ILOGB0, INVALID)
+T(RN,                 -0x0p+0, FP_ILOGB0, INVALID)
+T(RN,               -0x1p-100, -100, 0)
+T(RN,                  0x1p+0, 0, 0)
+T(RN,                 -0x1p+0, 0, 0)
+T(RN,                     inf, -1U/2, INVALID)
+T(RN,                    -inf, -1U/2, INVALID)
+T(RN,                     nan, FP_ILOGBNAN, INVALID)
+T(RN,                0x1p-149, -149, 0)
diff --git a/src/math/special/ilogbl.h b/src/math/special/ilogbl.h
new file mode 100644 (file)
index 0000000..d3a8d2a
--- /dev/null
@@ -0,0 +1,9 @@
+T(RN,                  0x0p+0, FP_ILOGB0, INVALID)
+T(RN,                 -0x0p+0, FP_ILOGB0, INVALID)
+T(RN,               -0x1p-100, -100, 0)
+T(RN,                  0x1p+0, 0, 0)
+T(RN,                 -0x1p+0, 0, 0)
+T(RN,                     inf, -1U/2, INVALID)
+T(RN,                    -inf, -1U/2, INVALID)
+T(RN,                     nan, FP_ILOGBNAN, INVALID)
+T(RN,             0x1p-16445L, -16445, 0)
diff --git a/src/math/special/j0.h b/src/math/special/j0.h
new file mode 100644 (file)
index 0000000..be607dc
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                     inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                    -inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/j0f.h b/src/math/special/j0f.h
new file mode 100644 (file)
index 0000000..e6779fd
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,          0x0p+0,          0x0p+0, 0)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/j1.h b/src/math/special/j1.h
new file mode 100644 (file)
index 0000000..50784cb
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                    -inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/j1f.h b/src/math/special/j1f.h
new file mode 100644 (file)
index 0000000..ebc44c3
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,          0x0p+0,          0x0p+0, 0)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/jn.h b/src/math/special/jn.h
new file mode 100644 (file)
index 0000000..10246d4
--- /dev/null
@@ -0,0 +1,20 @@
+T(RN,                  0x0p+0,           0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,           0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                     inf,           0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                    -inf,           0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     nan,           0,                     nan,          0x0p+0, 0)
+T(RN,                  0x0p+0,           1,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,           1,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,           1,                  0x0p+0,          0x0p+0, 0)
+T(RN,                    -inf,           1,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     nan,           1,                     nan,          0x0p+0, 0)
+T(RN,                  0x0p+0,          -1,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,          -1,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,          -1,                  0x0p+0,          0x0p+0, 0)
+T(RN,                    -inf,          -1,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     nan,          -1,                     nan,          0x0p+0, 0)
+T(RN,                  0x0p+0,           2,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,           2,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,           2,                  0x0p+0,          0x0p+0, 0)
+T(RN,                    -inf,           2,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     nan,           2,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/jnf.h b/src/math/special/jnf.h
new file mode 100644 (file)
index 0000000..47dbeb2
--- /dev/null
@@ -0,0 +1,20 @@
+T(RN,          0x0p+0,           0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,           0,          0x1p+0,          0x0p+0, 0)
+T(RN,             inf,           0,          0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,           0,          0x0p+0,          0x0p+0, 0)
+T(RN,             nan,           0,             nan,          0x0p+0, 0)
+T(RN,          0x0p+0,           1,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,           1,         -0x0p+0,          0x0p+0, 0)
+T(RN,             inf,           1,          0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,           1,          0x0p+0,          0x0p+0, 0)
+T(RN,             nan,           1,             nan,          0x0p+0, 0)
+T(RN,          0x0p+0,          -1,         -0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          -1,          0x0p+0,          0x0p+0, 0)
+T(RN,             inf,          -1,          0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,          -1,          0x0p+0,          0x0p+0, 0)
+T(RN,             nan,          -1,             nan,          0x0p+0, 0)
+T(RN,          0x0p+0,           2,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,           2,          0x0p+0,          0x0p+0, 0)
+T(RN,             inf,           2,          0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,           2,          0x0p+0,          0x0p+0, 0)
+T(RN,             nan,           2,             nan,          0x0p+0, 0)
diff --git a/src/math/special/ldexp.h b/src/math/special/ldexp.h
new file mode 100644 (file)
index 0000000..af596ad
--- /dev/null
@@ -0,0 +1,14 @@
+T(RN,                  0x0p+0,  2147483647,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0, -2147483647,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,  2147483647,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                     nan,           0,                     nan,          0x0p+0, 0)
+T(RN,                     inf,           0,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,           0,                    -inf,          0x0p+0, 0)
+T(RN,                  0x1p+0,           0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,           1,                  0x1p+1,          0x0p+0, 0)
+T(RN,                  0x1p+0,          -1,                  0x1p-1,          0x0p+0, 0)
+T(RN,                  0x1p+0,  2147483647,                     inf,          0x0p+0, INEXACT|OVERFLOW)
+T(RN,                     nan,           1,                     nan,          0x0p+0, 0)
+T(RN,                     inf,  2147483647,                     inf,          0x0p+0, 0)
+T(RN,                     inf, -2147483647,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,  2147483647,                    -inf,          0x0p+0, 0)
diff --git a/src/math/special/ldexpf.h b/src/math/special/ldexpf.h
new file mode 100644 (file)
index 0000000..68bad47
--- /dev/null
@@ -0,0 +1,14 @@
+T(RN,          0x0p+0,  2147483647,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0, -2147483647,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,  2147483647,         -0x0p+0,          0x0p+0, 0)
+T(RN,             nan,           0,             nan,          0x0p+0, 0)
+T(RN,             inf,           0,             inf,          0x0p+0, 0)
+T(RN,            -inf,           0,            -inf,          0x0p+0, 0)
+T(RN,          0x1p+0,           0,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,           1,          0x1p+1,          0x0p+0, 0)
+T(RN,          0x1p+0,          -1,          0x1p-1,          0x0p+0, 0)
+T(RN,          0x1p+0,  2147483647,             inf,          0x0p+0, INEXACT|OVERFLOW)
+T(RN,             nan,           1,             nan,          0x0p+0, 0)
+T(RN,             inf,  2147483647,             inf,          0x0p+0, 0)
+T(RN,             inf, -2147483647,             inf,          0x0p+0, 0)
+T(RN,            -inf,  2147483647,            -inf,          0x0p+0, 0)
diff --git a/src/math/special/ldexpl.h b/src/math/special/ldexpl.h
new file mode 100644 (file)
index 0000000..cea8e15
--- /dev/null
@@ -0,0 +1,14 @@
+T(RN,                        0x0p+0L,  2147483647,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L, -2147483647,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,  2147483647,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                            nan,           0,                            nan,          0x0p+0, 0)
+T(RN,                            inf,           0,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,           0,                           -inf,          0x0p+0, 0)
+T(RN,                        0x1p+0L,           0,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,           1,                        0x1p+1L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,          -1,                        0x1p-1L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,  2147483647,                            inf,          0x0p+0, INEXACT|OVERFLOW)
+T(RN,                            nan,           1,                            nan,          0x0p+0, 0)
+T(RN,                            inf,  2147483647,                            inf,          0x0p+0, 0)
+T(RN,                            inf, -2147483647,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,  2147483647,                           -inf,          0x0p+0, 0)
diff --git a/src/math/special/lgamma.h b/src/math/special/lgamma.h
new file mode 100644 (file)
index 0000000..9e469a2
--- /dev/null
@@ -0,0 +1,9 @@
+T(RN,                  0x0p+0,                     inf,          0x0p+0,           1, DIVBYZERO)
+T(RN,                 -0x0p+0,                     inf,          0x0p+0,          -1, DIVBYZERO)
+T(RN,                  0x1p+0,                  0x0p+0,          0x0p+0,           1, 0)
+T(RN,                 -0x1p+0,                     inf,          0x0p+0,           1, DIVBYZERO)
+T(RN,                  0x1p+1,                  0x0p+0,          0x0p+0,           1, 0)
+T(RN,                 -0x1p+1,                     inf,          0x0p+0,           1, DIVBYZERO)
+T(RN,                     inf,                     inf,          0x0p+0,           1, 0)
+T(RN,                    -inf,                     inf,          0x0p+0,          -1, 0)
+T(RN,                     nan,                     nan,          0x0p+0,           1, 0)
diff --git a/src/math/special/lgamma_r.h b/src/math/special/lgamma_r.h
new file mode 100644 (file)
index 0000000..9e469a2
--- /dev/null
@@ -0,0 +1,9 @@
+T(RN,                  0x0p+0,                     inf,          0x0p+0,           1, DIVBYZERO)
+T(RN,                 -0x0p+0,                     inf,          0x0p+0,          -1, DIVBYZERO)
+T(RN,                  0x1p+0,                  0x0p+0,          0x0p+0,           1, 0)
+T(RN,                 -0x1p+0,                     inf,          0x0p+0,           1, DIVBYZERO)
+T(RN,                  0x1p+1,                  0x0p+0,          0x0p+0,           1, 0)
+T(RN,                 -0x1p+1,                     inf,          0x0p+0,           1, DIVBYZERO)
+T(RN,                     inf,                     inf,          0x0p+0,           1, 0)
+T(RN,                    -inf,                     inf,          0x0p+0,          -1, 0)
+T(RN,                     nan,                     nan,          0x0p+0,           1, 0)
diff --git a/src/math/special/lgammaf.h b/src/math/special/lgammaf.h
new file mode 100644 (file)
index 0000000..fe27cc1
--- /dev/null
@@ -0,0 +1,9 @@
+T(RN,          0x0p+0,             inf,          0x0p+0,           1, DIVBYZERO)
+T(RN,         -0x0p+0,             inf,          0x0p+0,          -1, DIVBYZERO)
+T(RN,          0x1p+0,          0x0p+0,          0x0p+0,           1, 0)
+T(RN,         -0x1p+0,             inf,          0x0p+0,           1, DIVBYZERO)
+T(RN,          0x1p+1,          0x0p+0,          0x0p+0,           1, 0)
+T(RN,         -0x1p+1,             inf,          0x0p+0,           1, DIVBYZERO)
+T(RN,             inf,             inf,          0x0p+0,           1, 0)
+T(RN,            -inf,             inf,          0x0p+0,          -1, 0)
+T(RN,             nan,             nan,          0x0p+0,           1, 0)
diff --git a/src/math/special/lgammaf_r.h b/src/math/special/lgammaf_r.h
new file mode 100644 (file)
index 0000000..fe27cc1
--- /dev/null
@@ -0,0 +1,9 @@
+T(RN,          0x0p+0,             inf,          0x0p+0,           1, DIVBYZERO)
+T(RN,         -0x0p+0,             inf,          0x0p+0,          -1, DIVBYZERO)
+T(RN,          0x1p+0,          0x0p+0,          0x0p+0,           1, 0)
+T(RN,         -0x1p+0,             inf,          0x0p+0,           1, DIVBYZERO)
+T(RN,          0x1p+1,          0x0p+0,          0x0p+0,           1, 0)
+T(RN,         -0x1p+1,             inf,          0x0p+0,           1, DIVBYZERO)
+T(RN,             inf,             inf,          0x0p+0,           1, 0)
+T(RN,            -inf,             inf,          0x0p+0,          -1, 0)
+T(RN,             nan,             nan,          0x0p+0,           1, 0)
diff --git a/src/math/special/lgammal.h b/src/math/special/lgammal.h
new file mode 100644 (file)
index 0000000..f7f3f40
--- /dev/null
@@ -0,0 +1,9 @@
+T(RN,                        0x0p+0L,                            inf,          0x0p+0,           1, DIVBYZERO)
+T(RN,                       -0x0p+0L,                            inf,          0x0p+0,          -1, DIVBYZERO)
+T(RN,                        0x1p+0L,                        0x0p+0L,          0x0p+0,           1, 0)
+T(RN,                       -0x1p+0L,                            inf,          0x0p+0,           1, DIVBYZERO)
+T(RN,                        0x1p+1L,                        0x0p+0L,          0x0p+0,           1, 0)
+T(RN,                       -0x1p+1L,                            inf,          0x0p+0,           1, DIVBYZERO)
+T(RN,                            inf,                            inf,          0x0p+0,           1, 0)
+T(RN,                           -inf,                            inf,          0x0p+0,          -1, 0)
+T(RN,                            nan,                            nan,          0x0p+0,           1, 0)
diff --git a/src/math/special/lgammal_r.h b/src/math/special/lgammal_r.h
new file mode 100644 (file)
index 0000000..f7f3f40
--- /dev/null
@@ -0,0 +1,9 @@
+T(RN,                        0x0p+0L,                            inf,          0x0p+0,           1, DIVBYZERO)
+T(RN,                       -0x0p+0L,                            inf,          0x0p+0,          -1, DIVBYZERO)
+T(RN,                        0x1p+0L,                        0x0p+0L,          0x0p+0,           1, 0)
+T(RN,                       -0x1p+0L,                            inf,          0x0p+0,           1, DIVBYZERO)
+T(RN,                        0x1p+1L,                        0x0p+0L,          0x0p+0,           1, 0)
+T(RN,                       -0x1p+1L,                            inf,          0x0p+0,           1, DIVBYZERO)
+T(RN,                            inf,                            inf,          0x0p+0,           1, 0)
+T(RN,                           -inf,                            inf,          0x0p+0,          -1, 0)
+T(RN,                            nan,                            nan,          0x0p+0,           1, 0)
diff --git a/src/math/special/llrint.h b/src/math/special/llrint.h
new file mode 100644 (file)
index 0000000..9ec3739
--- /dev/null
@@ -0,0 +1,18 @@
+T(RN,                  0x0p+0,           0, 0)
+T(RN,                 -0x0p+0,           0, 0)
+T(RN,                  0x1p-1,           0, INEXACT)
+T(RN,                 -0x1p-1,           0, INEXACT)
+T(RN,                  0x1p+0,           1, 0)
+T(RN,                 -0x1p+0,          -1, 0)
+T(RN,             0x1.0001p+0,           1, INEXACT)
+T(RN,            -0x1.0001p+0,          -1, INEXACT)
+T(RN,             0x1.ffffp-1,           1, INEXACT)
+T(RN,            -0x1.ffffp-1,          -1, INEXACT)
+T(RN,                0x1p-100,           0, INEXACT)
+T(RN,               -0x1p-100,           0, INEXACT)
+// TODO: return value is unspecified
+T(RN,                     nan, -2147483648, INVALID)
+T(RN,                     inf, -2147483648, INVALID)
+T(RN,                    -inf, -2147483648, INVALID)
+T(RN,                0x1p+100, -2147483648, INVALID)
+T(RN,               -0x1p+100, -2147483648, INVALID)
diff --git a/src/math/special/llrintf.h b/src/math/special/llrintf.h
new file mode 100644 (file)
index 0000000..02728a3
--- /dev/null
@@ -0,0 +1,18 @@
+T(RN,          0x0p+0,           0, 0)
+T(RN,         -0x0p+0,           0, 0)
+T(RN,          0x1p-1,           0, INEXACT)
+T(RN,         -0x1p-1,           0, INEXACT)
+T(RN,          0x1p+0,           1, 0)
+T(RN,         -0x1p+0,          -1, 0)
+T(RN,     0x1.0001p+0,           1, INEXACT)
+T(RN,    -0x1.0001p+0,          -1, INEXACT)
+T(RN,     0x1.ffffp-1,           1, INEXACT)
+T(RN,    -0x1.ffffp-1,          -1, INEXACT)
+T(RN,        0x1p-100,           0, INEXACT)
+T(RN,       -0x1p-100,           0, INEXACT)
+// TODO: return value is unspecified
+T(RN,                     nan, -2147483648, INVALID)
+T(RN,                     inf, -2147483648, INVALID)
+T(RN,                    -inf, -2147483648, INVALID)
+T(RN,                0x1p+100, -2147483648, INVALID)
+T(RN,               -0x1p+100, -2147483648, INVALID)
diff --git a/src/math/special/llrintl.h b/src/math/special/llrintl.h
new file mode 100644 (file)
index 0000000..0be4af4
--- /dev/null
@@ -0,0 +1,18 @@
+T(RN,                        0x0p+0L,           0, 0)
+T(RN,                       -0x0p+0L,           0, 0)
+T(RN,                        0x1p-1L,           0, INEXACT)
+T(RN,                       -0x1p-1L,           0, INEXACT)
+T(RN,                        0x1p+0L,           1, 0)
+T(RN,                       -0x1p+0L,          -1, 0)
+T(RN,                   0x1.0001p+0L,           1, INEXACT)
+T(RN,                  -0x1.0001p+0L,          -1, INEXACT)
+T(RN,                   0x1.ffffp-1L,           1, INEXACT)
+T(RN,                  -0x1.ffffp-1L,          -1, INEXACT)
+T(RN,                      0x1p-100L,           0, INEXACT)
+T(RN,                     -0x1p-100L,           0, INEXACT)
+// TODO: return value is unspecified
+T(RN,                     nan, -2147483648, INVALID)
+T(RN,                     inf, -2147483648, INVALID)
+T(RN,                    -inf, -2147483648, INVALID)
+T(RN,                0x1p+100, -2147483648, INVALID)
+T(RN,               -0x1p+100, -2147483648, INVALID)
diff --git a/src/math/special/llround.h b/src/math/special/llround.h
new file mode 100644 (file)
index 0000000..8f9694e
--- /dev/null
@@ -0,0 +1,18 @@
+T(RN,                  0x0p+0,           0, 0)
+T(RN,                 -0x0p+0,           0, 0)
+T(RN,                  0x1p-1,           1, INEXACT)
+T(RN,                 -0x1p-1,          -1, INEXACT)
+T(RN,                  0x1p+0,           1, 0)
+T(RN,                 -0x1p+0,          -1, 0)
+T(RN,             0x1.0001p+0,           1, INEXACT)
+T(RN,            -0x1.0001p+0,          -1, INEXACT)
+T(RN,             0x1.ffffp-1,           1, INEXACT)
+T(RN,            -0x1.ffffp-1,          -1, INEXACT)
+T(RN,                0x1p-100,           0, INEXACT)
+T(RN,               -0x1p-100,           0, INEXACT)
+// TODO: return value is unspecified
+T(RN,                     nan, -2147483648, INVALID)
+T(RN,                     inf, -2147483648, INVALID)
+T(RN,                    -inf, -2147483648, INVALID)
+T(RN,                0x1p+100, -2147483648, INVALID)
+T(RN,               -0x1p+100, -2147483648, INVALID)
diff --git a/src/math/special/llroundf.h b/src/math/special/llroundf.h
new file mode 100644 (file)
index 0000000..691f22b
--- /dev/null
@@ -0,0 +1,18 @@
+T(RN,          0x0p+0,           0, 0)
+T(RN,         -0x0p+0,           0, 0)
+T(RN,          0x1p-1,           1, INEXACT)
+T(RN,         -0x1p-1,          -1, INEXACT)
+T(RN,          0x1p+0,           1, 0)
+T(RN,         -0x1p+0,          -1, 0)
+T(RN,     0x1.0001p+0,           1, INEXACT)
+T(RN,    -0x1.0001p+0,          -1, INEXACT)
+T(RN,     0x1.ffffp-1,           1, INEXACT)
+T(RN,    -0x1.ffffp-1,          -1, INEXACT)
+T(RN,        0x1p-100,           0, INEXACT)
+T(RN,       -0x1p-100,           0, INEXACT)
+// TODO: return value is unspecified
+T(RN,                     nan, -2147483648, INVALID)
+T(RN,                     inf, -2147483648, INVALID)
+T(RN,                    -inf, -2147483648, INVALID)
+T(RN,                0x1p+100, -2147483648, INVALID)
+T(RN,               -0x1p+100, -2147483648, INVALID)
diff --git a/src/math/special/llroundl.h b/src/math/special/llroundl.h
new file mode 100644 (file)
index 0000000..aee3344
--- /dev/null
@@ -0,0 +1,18 @@
+T(RN,                        0x0p+0L,           0, 0)
+T(RN,                       -0x0p+0L,           0, 0)
+T(RN,                        0x1p-1L,           1, INEXACT)
+T(RN,                       -0x1p-1L,          -1, INEXACT)
+T(RN,                        0x1p+0L,           1, 0)
+T(RN,                       -0x1p+0L,          -1, 0)
+T(RN,                   0x1.0001p+0L,           1, INEXACT)
+T(RN,                  -0x1.0001p+0L,          -1, INEXACT)
+T(RN,                   0x1.ffffp-1L,           1, INEXACT)
+T(RN,                  -0x1.ffffp-1L,          -1, INEXACT)
+T(RN,                      0x1p-100L,           0, INEXACT)
+T(RN,                     -0x1p-100L,           0, INEXACT)
+// TODO: return value is unspecified
+T(RN,                     nan, -2147483648, INVALID)
+T(RN,                     inf, -2147483648, INVALID)
+T(RN,                    -inf, -2147483648, INVALID)
+T(RN,                0x1p+100, -2147483648, INVALID)
+T(RN,               -0x1p+100, -2147483648, INVALID)
diff --git a/src/math/special/log.h b/src/math/special/log.h
new file mode 100644 (file)
index 0000000..8d95f19
--- /dev/null
@@ -0,0 +1,8 @@
+T(RN,                  0x0p+0,                    -inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x0p+0,                    -inf,          0x0p+0, DIVBYZERO)
+T(RN,               -0x1p-100,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/log10.h b/src/math/special/log10.h
new file mode 100644 (file)
index 0000000..8d95f19
--- /dev/null
@@ -0,0 +1,8 @@
+T(RN,                  0x0p+0,                    -inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x0p+0,                    -inf,          0x0p+0, DIVBYZERO)
+T(RN,               -0x1p-100,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/log10f.h b/src/math/special/log10f.h
new file mode 100644 (file)
index 0000000..ce11d0e
--- /dev/null
@@ -0,0 +1,8 @@
+T(RN,          0x0p+0,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x0p+0,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,       -0x1p-100,             nan,          0x0p+0, INVALID)
+T(RN,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,             nan,          0x0p+0, INVALID)
+T(RN,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,             nan,          0x0p+0, INVALID)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/log10l.h b/src/math/special/log10l.h
new file mode 100644 (file)
index 0000000..b5abdbc
--- /dev/null
@@ -0,0 +1,8 @@
+T(RN,                        0x0p+0L,                           -inf,          0x0p+0, DIVBYZERO)
+T(RN,                       -0x0p+0L,                           -inf,          0x0p+0, DIVBYZERO)
+T(RN,                     -0x1p-100L,                            nan,          0x0p+0, INVALID)
+T(RN,                        0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                            nan,          0x0p+0, INVALID)
+T(RN,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/log1p.h b/src/math/special/log1p.h
new file mode 100644 (file)
index 0000000..08e0bab
--- /dev/null
@@ -0,0 +1,8 @@
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,               -0x1p-100,               -0x1p-100,         0x1p-49, INEXACT)
+T(RN,                  0x1p+0,    0x1.62e42fefa39efp-1,  -0x1.abc9e4p-3, INEXACT)
+T(RN,                 -0x1p+0,                    -inf,          0x0p+0, DIVBYZERO)
+T(RN,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/log1pf.h b/src/math/special/log1pf.h
new file mode 100644 (file)
index 0000000..4fc4ff7
--- /dev/null
@@ -0,0 +1,8 @@
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,       -0x1p-100,       -0x1p-100,         0x1p-78, INEXACT)
+T(RN,          0x1p+0,    0x1.62e43p-1,    0x1.05c61p-5, INEXACT)
+T(RN,         -0x1p+0,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,             nan,          0x0p+0, INVALID)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/log1pl.h b/src/math/special/log1pl.h
new file mode 100644 (file)
index 0000000..0e646f1
--- /dev/null
@@ -0,0 +1,8 @@
+T(RN,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                     -0x1p-100L,                     -0x1p-100L,         0x1p-38, INEXACT)
+T(RN,                        0x1p+0L,       0x1.62e42fefa39ef358p-1L,   0x1.b0e264p-3, INEXACT)
+T(RN,                       -0x1p+0L,                           -inf,          0x0p+0, DIVBYZERO)
+T(RN,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                            nan,          0x0p+0, INVALID)
+T(RN,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/log2.h b/src/math/special/log2.h
new file mode 100644 (file)
index 0000000..8d95f19
--- /dev/null
@@ -0,0 +1,8 @@
+T(RN,                  0x0p+0,                    -inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x0p+0,                    -inf,          0x0p+0, DIVBYZERO)
+T(RN,               -0x1p-100,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/log2f.h b/src/math/special/log2f.h
new file mode 100644 (file)
index 0000000..ce11d0e
--- /dev/null
@@ -0,0 +1,8 @@
+T(RN,          0x0p+0,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x0p+0,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,       -0x1p-100,             nan,          0x0p+0, INVALID)
+T(RN,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,             nan,          0x0p+0, INVALID)
+T(RN,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,             nan,          0x0p+0, INVALID)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/log2l.h b/src/math/special/log2l.h
new file mode 100644 (file)
index 0000000..b5abdbc
--- /dev/null
@@ -0,0 +1,8 @@
+T(RN,                        0x0p+0L,                           -inf,          0x0p+0, DIVBYZERO)
+T(RN,                       -0x0p+0L,                           -inf,          0x0p+0, DIVBYZERO)
+T(RN,                     -0x1p-100L,                            nan,          0x0p+0, INVALID)
+T(RN,                        0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                            nan,          0x0p+0, INVALID)
+T(RN,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/logb.h b/src/math/special/logb.h
new file mode 100644 (file)
index 0000000..af71604
--- /dev/null
@@ -0,0 +1,8 @@
+T(RN,                  0x0p+0,                    -inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x0p+0,                    -inf,          0x0p+0, DIVBYZERO)
+T(RN,               -0x1p-100,               -0x1.9p+6,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                     inf,          0x0p+0, 0)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/logbf.h b/src/math/special/logbf.h
new file mode 100644 (file)
index 0000000..3fdc761
--- /dev/null
@@ -0,0 +1,8 @@
+T(RN,          0x0p+0,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x0p+0,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,       -0x1p-100,       -0x1.9p+6,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,             inf,          0x0p+0, 0)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/logbl.h b/src/math/special/logbl.h
new file mode 100644 (file)
index 0000000..691933d
--- /dev/null
@@ -0,0 +1,8 @@
+T(RN,                        0x0p+0L,                           -inf,          0x0p+0, DIVBYZERO)
+T(RN,                       -0x0p+0L,                           -inf,          0x0p+0, DIVBYZERO)
+T(RN,                     -0x1p-100L,                     -0x1.9p+6L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                            inf,          0x0p+0, 0)
+T(RN,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/logf.h b/src/math/special/logf.h
new file mode 100644 (file)
index 0000000..ce11d0e
--- /dev/null
@@ -0,0 +1,8 @@
+T(RN,          0x0p+0,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x0p+0,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,       -0x1p-100,             nan,          0x0p+0, INVALID)
+T(RN,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,             nan,          0x0p+0, INVALID)
+T(RN,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,             nan,          0x0p+0, INVALID)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/logl.h b/src/math/special/logl.h
new file mode 100644 (file)
index 0000000..b5abdbc
--- /dev/null
@@ -0,0 +1,8 @@
+T(RN,                        0x0p+0L,                           -inf,          0x0p+0, DIVBYZERO)
+T(RN,                       -0x0p+0L,                           -inf,          0x0p+0, DIVBYZERO)
+T(RN,                     -0x1p-100L,                            nan,          0x0p+0, INVALID)
+T(RN,                        0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                            nan,          0x0p+0, INVALID)
+T(RN,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/lrint.h b/src/math/special/lrint.h
new file mode 100644 (file)
index 0000000..9ec3739
--- /dev/null
@@ -0,0 +1,18 @@
+T(RN,                  0x0p+0,           0, 0)
+T(RN,                 -0x0p+0,           0, 0)
+T(RN,                  0x1p-1,           0, INEXACT)
+T(RN,                 -0x1p-1,           0, INEXACT)
+T(RN,                  0x1p+0,           1, 0)
+T(RN,                 -0x1p+0,          -1, 0)
+T(RN,             0x1.0001p+0,           1, INEXACT)
+T(RN,            -0x1.0001p+0,          -1, INEXACT)
+T(RN,             0x1.ffffp-1,           1, INEXACT)
+T(RN,            -0x1.ffffp-1,          -1, INEXACT)
+T(RN,                0x1p-100,           0, INEXACT)
+T(RN,               -0x1p-100,           0, INEXACT)
+// TODO: return value is unspecified
+T(RN,                     nan, -2147483648, INVALID)
+T(RN,                     inf, -2147483648, INVALID)
+T(RN,                    -inf, -2147483648, INVALID)
+T(RN,                0x1p+100, -2147483648, INVALID)
+T(RN,               -0x1p+100, -2147483648, INVALID)
diff --git a/src/math/special/lrintf.h b/src/math/special/lrintf.h
new file mode 100644 (file)
index 0000000..02728a3
--- /dev/null
@@ -0,0 +1,18 @@
+T(RN,          0x0p+0,           0, 0)
+T(RN,         -0x0p+0,           0, 0)
+T(RN,          0x1p-1,           0, INEXACT)
+T(RN,         -0x1p-1,           0, INEXACT)
+T(RN,          0x1p+0,           1, 0)
+T(RN,         -0x1p+0,          -1, 0)
+T(RN,     0x1.0001p+0,           1, INEXACT)
+T(RN,    -0x1.0001p+0,          -1, INEXACT)
+T(RN,     0x1.ffffp-1,           1, INEXACT)
+T(RN,    -0x1.ffffp-1,          -1, INEXACT)
+T(RN,        0x1p-100,           0, INEXACT)
+T(RN,       -0x1p-100,           0, INEXACT)
+// TODO: return value is unspecified
+T(RN,                     nan, -2147483648, INVALID)
+T(RN,                     inf, -2147483648, INVALID)
+T(RN,                    -inf, -2147483648, INVALID)
+T(RN,                0x1p+100, -2147483648, INVALID)
+T(RN,               -0x1p+100, -2147483648, INVALID)
diff --git a/src/math/special/lrintl.h b/src/math/special/lrintl.h
new file mode 100644 (file)
index 0000000..0be4af4
--- /dev/null
@@ -0,0 +1,18 @@
+T(RN,                        0x0p+0L,           0, 0)
+T(RN,                       -0x0p+0L,           0, 0)
+T(RN,                        0x1p-1L,           0, INEXACT)
+T(RN,                       -0x1p-1L,           0, INEXACT)
+T(RN,                        0x1p+0L,           1, 0)
+T(RN,                       -0x1p+0L,          -1, 0)
+T(RN,                   0x1.0001p+0L,           1, INEXACT)
+T(RN,                  -0x1.0001p+0L,          -1, INEXACT)
+T(RN,                   0x1.ffffp-1L,           1, INEXACT)
+T(RN,                  -0x1.ffffp-1L,          -1, INEXACT)
+T(RN,                      0x1p-100L,           0, INEXACT)
+T(RN,                     -0x1p-100L,           0, INEXACT)
+// TODO: return value is unspecified
+T(RN,                     nan, -2147483648, INVALID)
+T(RN,                     inf, -2147483648, INVALID)
+T(RN,                    -inf, -2147483648, INVALID)
+T(RN,                0x1p+100, -2147483648, INVALID)
+T(RN,               -0x1p+100, -2147483648, INVALID)
diff --git a/src/math/special/lround.h b/src/math/special/lround.h
new file mode 100644 (file)
index 0000000..8f9694e
--- /dev/null
@@ -0,0 +1,18 @@
+T(RN,                  0x0p+0,           0, 0)
+T(RN,                 -0x0p+0,           0, 0)
+T(RN,                  0x1p-1,           1, INEXACT)
+T(RN,                 -0x1p-1,          -1, INEXACT)
+T(RN,                  0x1p+0,           1, 0)
+T(RN,                 -0x1p+0,          -1, 0)
+T(RN,             0x1.0001p+0,           1, INEXACT)
+T(RN,            -0x1.0001p+0,          -1, INEXACT)
+T(RN,             0x1.ffffp-1,           1, INEXACT)
+T(RN,            -0x1.ffffp-1,          -1, INEXACT)
+T(RN,                0x1p-100,           0, INEXACT)
+T(RN,               -0x1p-100,           0, INEXACT)
+// TODO: return value is unspecified
+T(RN,                     nan, -2147483648, INVALID)
+T(RN,                     inf, -2147483648, INVALID)
+T(RN,                    -inf, -2147483648, INVALID)
+T(RN,                0x1p+100, -2147483648, INVALID)
+T(RN,               -0x1p+100, -2147483648, INVALID)
diff --git a/src/math/special/lroundf.h b/src/math/special/lroundf.h
new file mode 100644 (file)
index 0000000..691f22b
--- /dev/null
@@ -0,0 +1,18 @@
+T(RN,          0x0p+0,           0, 0)
+T(RN,         -0x0p+0,           0, 0)
+T(RN,          0x1p-1,           1, INEXACT)
+T(RN,         -0x1p-1,          -1, INEXACT)
+T(RN,          0x1p+0,           1, 0)
+T(RN,         -0x1p+0,          -1, 0)
+T(RN,     0x1.0001p+0,           1, INEXACT)
+T(RN,    -0x1.0001p+0,          -1, INEXACT)
+T(RN,     0x1.ffffp-1,           1, INEXACT)
+T(RN,    -0x1.ffffp-1,          -1, INEXACT)
+T(RN,        0x1p-100,           0, INEXACT)
+T(RN,       -0x1p-100,           0, INEXACT)
+// TODO: return value is unspecified
+T(RN,                     nan, -2147483648, INVALID)
+T(RN,                     inf, -2147483648, INVALID)
+T(RN,                    -inf, -2147483648, INVALID)
+T(RN,                0x1p+100, -2147483648, INVALID)
+T(RN,               -0x1p+100, -2147483648, INVALID)
diff --git a/src/math/special/lroundl.h b/src/math/special/lroundl.h
new file mode 100644 (file)
index 0000000..aee3344
--- /dev/null
@@ -0,0 +1,18 @@
+T(RN,                        0x0p+0L,           0, 0)
+T(RN,                       -0x0p+0L,           0, 0)
+T(RN,                        0x1p-1L,           1, INEXACT)
+T(RN,                       -0x1p-1L,          -1, INEXACT)
+T(RN,                        0x1p+0L,           1, 0)
+T(RN,                       -0x1p+0L,          -1, 0)
+T(RN,                   0x1.0001p+0L,           1, INEXACT)
+T(RN,                  -0x1.0001p+0L,          -1, INEXACT)
+T(RN,                   0x1.ffffp-1L,           1, INEXACT)
+T(RN,                  -0x1.ffffp-1L,          -1, INEXACT)
+T(RN,                      0x1p-100L,           0, INEXACT)
+T(RN,                     -0x1p-100L,           0, INEXACT)
+// TODO: return value is unspecified
+T(RN,                     nan, -2147483648, INVALID)
+T(RN,                     inf, -2147483648, INVALID)
+T(RN,                    -inf, -2147483648, INVALID)
+T(RN,                0x1p+100, -2147483648, INVALID)
+T(RN,               -0x1p+100, -2147483648, INVALID)
diff --git a/src/math/special/modf.h b/src/math/special/modf.h
new file mode 100644 (file)
index 0000000..1486bdb
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,          0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p-1,                  0x1p-1,          0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p-1,                 -0x1p-1,          0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x0p+0,          0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                 -0x0p+0,          0x0p+0,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                0x1.8p+0,                  0x1p-1,          0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,               -0x1.8p+0,                 -0x1p-1,          0x0p+0,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+1,                  0x0p+0,          0x0p+0,                  0x1p+1,          0x0p+0, 0)
+T(RN,                 -0x1p+1,                 -0x0p+0,          0x0p+0,                 -0x1p+1,          0x0p+0, 0)
+T(RN,                     inf,                  0x0p+0,          0x0p+0,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                 -0x0p+0,          0x0p+0,                    -inf,          0x0p+0, 0)
+T(RN,                     nan,                     nan,          0x0p+0,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/modff.h b/src/math/special/modff.h
new file mode 100644 (file)
index 0000000..174374c
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p-1,          0x1p-1,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p-1,         -0x1p-1,          0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x0p+0,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,         -0x0p+0,          0x0p+0,         -0x1p+0,          0x0p+0, 0)
+T(RN,        0x1.8p+0,          0x1p-1,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,       -0x1.8p+0,         -0x1p-1,          0x0p+0,         -0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+1,          0x0p+0,          0x0p+0,          0x1p+1,          0x0p+0, 0)
+T(RN,         -0x1p+1,         -0x0p+0,          0x0p+0,         -0x1p+1,          0x0p+0, 0)
+T(RN,             inf,          0x0p+0,          0x0p+0,             inf,          0x0p+0, 0)
+T(RN,            -inf,         -0x0p+0,          0x0p+0,            -inf,          0x0p+0, 0)
+T(RN,             nan,             nan,          0x0p+0,             nan,          0x0p+0, 0)
diff --git a/src/math/special/modfl.h b/src/math/special/modfl.h
new file mode 100644 (file)
index 0000000..0277818
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,                        0x0p+0L,                        0x0p+0L,          0x0p+0,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p-1L,                        0x1p-1L,          0x0p+0,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p-1L,                       -0x1p-1L,          0x0p+0,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                        0x0p+0L,          0x0p+0,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                       -0x0p+0L,          0x0p+0,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                      0x1.8p+0L,                        0x1p-1L,          0x0p+0,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                     -0x1.8p+0L,                       -0x1p-1L,          0x0p+0,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+1L,                        0x0p+0L,          0x0p+0,                        0x1p+1L,          0x0p+0, 0)
+T(RN,                       -0x1p+1L,                       -0x0p+0L,          0x0p+0,                       -0x1p+1L,          0x0p+0, 0)
+T(RN,                            inf,                        0x0p+0L,          0x0p+0,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                       -0x0p+0L,          0x0p+0,                           -inf,          0x0p+0, 0)
+T(RN,                            nan,                            nan,          0x0p+0,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/nearbyint.h b/src/math/special/nearbyint.h
new file mode 100644 (file)
index 0000000..5f99bda
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p-1,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p-1,                 -0x0p+0,          0x0p+0, 0)
+T(RN,             0x1.0001p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,            -0x1.0001p+0,                 -0x1p+0,          0x0p+0, 0)
+T(RN,             0x1.ffffp-1,                  0x1p+0,          0x0p+0, 0)
+T(RN,            -0x1.ffffp-1,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                0x1p-100,                  0x0p+0,          0x0p+0, 0)
+T(RN,               -0x1p-100,                 -0x0p+0,          0x0p+0, 0)
diff --git a/src/math/special/nearbyintf.h b/src/math/special/nearbyintf.h
new file mode 100644 (file)
index 0000000..0c3dcff
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,             nan,             nan,          0x0p+0, 0)
+T(RN,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,            -inf,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p-1,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p-1,         -0x0p+0,          0x0p+0, 0)
+T(RN,     0x1.0001p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,    -0x1.0001p+0,         -0x1p+0,          0x0p+0, 0)
+T(RN,     0x1.ffffp-1,          0x1p+0,          0x0p+0, 0)
+T(RN,    -0x1.ffffp-1,         -0x1p+0,          0x0p+0, 0)
+T(RN,        0x1p-100,          0x0p+0,          0x0p+0, 0)
+T(RN,       -0x1p-100,         -0x0p+0,          0x0p+0, 0)
diff --git a/src/math/special/nearbyintl.h b/src/math/special/nearbyintl.h
new file mode 100644 (file)
index 0000000..c01fe54
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                           -inf,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p-1L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p-1L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                   0x1.0001p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                  -0x1.0001p+0L,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                   0x1.ffffp-1L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                  -0x1.ffffp-1L,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                      0x1p-100L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                     -0x1p-100L,                       -0x0p+0L,          0x0p+0, 0)
diff --git a/src/math/special/nextafter.h b/src/math/special/nextafter.h
new file mode 100644 (file)
index 0000000..7df520e
--- /dev/null
@@ -0,0 +1,33 @@
+T(RN, 0x1.fffffffffffffp+1023,                     inf,                     inf,          0x0p+0, INEXACT|OVERFLOW)
+T(RN, 0x1.fffffffffffffp+1023,                  0x0p+0, 0x1.ffffffffffffep+1023,          0x0p+0, 0)
+T(RN,               0x1p-1074,                    -inf,                  0x0p+0,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,               0x1p-1074,                     inf,               0x1p-1073,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN, 0x1.ffffffffffffcp-1023,                  0x1p+0, 0x1.ffffffffffffep-1023,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN, 0x1.ffffffffffffep-1023,                  0x1p+0,               0x1p-1022,          0x0p+0, 0)
+T(RN, 0x1.0000000000001p-1022,                  0x0p+0,               0x1p-1022,          0x0p+0, 0)
+T(RN,               0x1p-1022,                  0x0p+0, 0x1.ffffffffffffep-1023,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,                  0x1p+0,    0x1.0000000000001p+0,    0x1.0000000000001p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,    0x1.fffffffffffffp-1,    0x1.fffffffffffffp-1,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x1p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                 -0x1p+0,    0x1.fffffffffffffp-1,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                  0x1p+0,   -0x1.fffffffffffffp-1,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                 -0x1p+0,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                     nan,                  0x1p+0,                     nan,          0x0p+0, 0)
+T(RN,                     nan,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                  0x0p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                  0x0p+0,                     inf,               0x1p-1074,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,                  0x0p+0,                    -inf,              -0x1p-1074,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,                  0x0p+0,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                     inf,               0x1p-1074,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,                 -0x0p+0,                    -inf,              -0x1p-1074,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,                 -0x0p+0,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                     inf,                    -inf, 0x1.fffffffffffffp+1023,          0x0p+0, 0)
+T(RN,                     inf,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                    -inf,                     inf,-0x1.fffffffffffffp+1023,          0x0p+0, 0)
+T(RN,                    -inf,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                    -inf,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/nextafterf.h b/src/math/special/nextafterf.h
new file mode 100644 (file)
index 0000000..1bb1e44
--- /dev/null
@@ -0,0 +1,33 @@
+T(RN, 0x1.fffffep+127,             inf,             inf,          0x0p+0, INEXACT|OVERFLOW)
+T(RN, 0x1.fffffep+127,          0x0p+0, 0x1.fffffcp+127,          0x0p+0, 0)
+T(RN,        0x1p-149,            -inf,          0x0p+0,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,        0x1p-149,             inf,        0x1p-148,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN, 0x1.fffff8p-127,          0x1p+0, 0x1.fffffcp-127,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN, 0x1.fffffcp-127,          0x1p+0,        0x1p-126,          0x0p+0, 0)
+T(RN, 0x1.000002p-126,          0x0p+0,        0x1p-126,          0x0p+0, 0)
+T(RN,        0x1p-126,          0x0p+0, 0x1.fffffcp-127,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,          0x1p+0,     0x1.0002p+0,   0x1.000002p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,     0x1.fffep-1,   0x1.fffffep-1,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x1p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,         -0x1p+0,   0x1.fffffep-1,          0x0p+0, 0)
+T(RN,         -0x1p+0,          0x1p+0,  -0x1.fffffep-1,          0x0p+0, 0)
+T(RN,         -0x1p+0,         -0x1p+0,         -0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,             nan,          0x1p+0,             nan,          0x0p+0, 0)
+T(RN,             nan,             nan,             nan,          0x0p+0, 0)
+T(RN,          0x0p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,          0x0p+0,             inf,        0x1p-149,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,          0x0p+0,            -inf,       -0x1p-149,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,         -0x0p+0,             inf,        0x1p-149,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,         -0x0p+0,            -inf,       -0x1p-149,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,         -0x0p+0,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,             inf,             inf,             inf,          0x0p+0, 0)
+T(RN,             inf,            -inf, 0x1.fffffep+127,          0x0p+0, 0)
+T(RN,             inf,             nan,             nan,          0x0p+0, 0)
+T(RN,            -inf,             inf,-0x1.fffffep+127,          0x0p+0, 0)
+T(RN,            -inf,            -inf,            -inf,          0x0p+0, 0)
+T(RN,            -inf,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/nextafterl.h b/src/math/special/nextafterl.h
new file mode 100644 (file)
index 0000000..111ad30
--- /dev/null
@@ -0,0 +1,33 @@
+T(RN,   0x1.fffffffffffffffep+16383L,                            inf,                            inf,          0x0p+0, INEXACT|OVERFLOW)
+T(RN,   0x1.fffffffffffffffep+16383L,                        0x0p+0L,   0x1.fffffffffffffffcp+16383L,          0x0p+0, 0)
+T(RN,                    0x1p-16445L,                           -inf,                        0x0p+0L,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,                    0x1p-16445L,                            inf,                    0x1p-16444L,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,   0x1.fffffffffffffff8p-16383L,                        0x1p+0L,   0x1.fffffffffffffffcp-16383L,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,   0x1.fffffffffffffffcp-16383L,                        0x1p+0L,                    0x1p-16382L,          0x0p+0, 0)
+T(RN,   0x1.0000000000000002p-16382L,                        0x0p+0L,                    0x1p-16382L,          0x0p+0, 0)
+T(RN,                    0x1p-16382L,                        0x0p+0L,   0x1.fffffffffffffffcp-16383L,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,                        0x1p+0L,       0x1.0000000000000002p+0L,       0x1.0000000000000002p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,       0x1.fffffffffffffffep-1L,       0x1.fffffffffffffffep-1L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                        0x1p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                       -0x1p+0L,       0x1.fffffffffffffffep-1L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                        0x1p+0L,      -0x1.fffffffffffffffep-1L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                       -0x1p+0L,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                            nan,                        0x1p+0L,                            nan,          0x0p+0, 0)
+T(RN,                            nan,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                            inf,                    0x1p-16445L,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,                        0x0p+0L,                           -inf,                   -0x1p-16445L,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,                        0x0p+0L,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                            inf,                    0x1p-16445L,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,                       -0x0p+0L,                           -inf,                   -0x1p-16445L,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,                       -0x0p+0L,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                            inf,                           -inf,   0x1.fffffffffffffffep+16383L,          0x0p+0, 0)
+T(RN,                            inf,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                           -inf,                            inf,  -0x1.fffffffffffffffep+16383L,          0x0p+0, 0)
+T(RN,                           -inf,                           -inf,                           -inf,          0x0p+0, 0)
+T(RN,                           -inf,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/nexttoward.h b/src/math/special/nexttoward.h
new file mode 100644 (file)
index 0000000..e787221
--- /dev/null
@@ -0,0 +1,35 @@
+T(RN, 0x1.fffffffffffffp+1023,                            inf,                     inf,          0x0p+0, INEXACT|OVERFLOW)
+T(RN, 0x1.fffffffffffffp+1023,                        0x0p+0L, 0x1.ffffffffffffep+1023,          0x0p+0, 0)
+T(RN,               0x1p-1074,                           -inf,                  0x0p+0,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,               0x1p-1074,                            inf,               0x1p-1073,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,               0x1p-1074,     0x1.ffffffffffffffep-1075L,                  0x0p+0,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,               0x1p-1074,     0x1.000000000000002p-1074L,               0x1p-1073,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN, 0x1.ffffffffffffcp-1023,                        0x1p+0L, 0x1.ffffffffffffep-1023,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN, 0x1.ffffffffffffep-1023,                        0x1p+0L,               0x1p-1022,          0x0p+0, 0)
+T(RN, 0x1.0000000000001p-1022,                        0x0p+0L,               0x1p-1022,          0x0p+0, 0)
+T(RN,               0x1p-1022,                        0x0p+0L, 0x1.ffffffffffffep-1023,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,                  0x1p+0,       0x1.0000000000000002p+0L,    0x1.0000000000001p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,       0x1.fffffffffffffffep-1L,    0x1.fffffffffffffp-1,          0x0p+0, 0)
+T(RN,                  0x1p+0,                        0x1p+0L,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                       -0x1p+0L,    0x1.fffffffffffffp-1,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                        0x1p+0L,   -0x1.fffffffffffffp-1,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                       -0x1p+0L,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                            nan,                     nan,          0x0p+0, 0)
+T(RN,                     nan,                        0x1p+0L,                     nan,          0x0p+0, 0)
+T(RN,                     nan,                            nan,                     nan,          0x0p+0, 0)
+T(RN,                  0x0p+0,                            nan,                     nan,          0x0p+0, 0)
+T(RN,                  0x0p+0,                            inf,               0x1p-1074,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,                  0x0p+0,                           -inf,              -0x1p-1074,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,                  0x0p+0,                        0x0p+0L,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                       -0x0p+0L,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                            nan,                     nan,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                            inf,               0x1p-1074,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,                 -0x0p+0,                           -inf,              -0x1p-1074,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,                 -0x0p+0,                        0x0p+0L,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                       -0x0p+0L,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                            inf,                     inf,          0x0p+0, 0)
+T(RN,                     inf,                           -inf, 0x1.fffffffffffffp+1023,          0x0p+0, 0)
+T(RN,                     inf,                            nan,                     nan,          0x0p+0, 0)
+T(RN,                    -inf,                            inf,-0x1.fffffffffffffp+1023,          0x0p+0, 0)
+T(RN,                    -inf,                           -inf,                    -inf,          0x0p+0, 0)
+T(RN,                    -inf,                            nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/nexttowardf.h b/src/math/special/nexttowardf.h
new file mode 100644 (file)
index 0000000..9f80551
--- /dev/null
@@ -0,0 +1,35 @@
+T(RN, 0x1.fffffep+127,                            inf,             inf,          0x0p+0, INEXACT|OVERFLOW)
+T(RN, 0x1.fffffep+127,                        0x0p+0L, 0x1.fffffcp+127,          0x0p+0, 0)
+T(RN,        0x1p-149,                           -inf,          0x0p+0,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,        0x1p-149,                            inf,        0x1p-148,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,        0x1p-149,      0x1.ffffffffffffffep-150L,          0x0p+0,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,        0x1p-149,      0x1.000000000000002p-149L,        0x1p-148,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN, 0x1.fffff8p-127,                        0x1p+0L, 0x1.fffffcp-127,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN, 0x1.fffffcp-127,                        0x1p+0L,        0x1p-126,          0x0p+0, 0)
+T(RN, 0x1.000002p-126,                        0x0p+0L,        0x1p-126,          0x0p+0, 0)
+T(RN,        0x1p-126,                        0x0p+0L, 0x1.fffffcp-127,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,          0x1p+0,       0x1.0000000000000002p+0L,   0x1.000002p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,       0x1.fffffffffffffffep-1L,   0x1.fffffep-1,          0x0p+0, 0)
+T(RN,          0x1p+0,                        0x1p+0L,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,                       -0x1p+0L,   0x1.fffffep-1,          0x0p+0, 0)
+T(RN,         -0x1p+0,                        0x1p+0L,  -0x1.fffffep-1,          0x0p+0, 0)
+T(RN,         -0x1p+0,                       -0x1p+0L,         -0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,                            nan,             nan,          0x0p+0, 0)
+T(RN,             nan,                        0x1p+0L,             nan,          0x0p+0, 0)
+T(RN,             nan,                            nan,             nan,          0x0p+0, 0)
+T(RN,          0x0p+0,                            nan,             nan,          0x0p+0, 0)
+T(RN,          0x0p+0,                            inf,        0x1p-149,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,          0x0p+0,                           -inf,       -0x1p-149,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,          0x0p+0,                        0x0p+0L,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,                       -0x0p+0L,         -0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,                            nan,             nan,          0x0p+0, 0)
+T(RN,         -0x0p+0,                            inf,        0x1p-149,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,         -0x0p+0,                           -inf,       -0x1p-149,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,         -0x0p+0,                        0x0p+0L,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,                       -0x0p+0L,         -0x0p+0,          0x0p+0, 0)
+T(RN,             inf,                            inf,             inf,          0x0p+0, 0)
+T(RN,             inf,                           -inf, 0x1.fffffep+127,          0x0p+0, 0)
+T(RN,             inf,                            nan,             nan,          0x0p+0, 0)
+T(RN,            -inf,                            inf,-0x1.fffffep+127,          0x0p+0, 0)
+T(RN,            -inf,                           -inf,            -inf,          0x0p+0, 0)
+T(RN,            -inf,                            nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/nexttowardl.h b/src/math/special/nexttowardl.h
new file mode 100644 (file)
index 0000000..111ad30
--- /dev/null
@@ -0,0 +1,33 @@
+T(RN,   0x1.fffffffffffffffep+16383L,                            inf,                            inf,          0x0p+0, INEXACT|OVERFLOW)
+T(RN,   0x1.fffffffffffffffep+16383L,                        0x0p+0L,   0x1.fffffffffffffffcp+16383L,          0x0p+0, 0)
+T(RN,                    0x1p-16445L,                           -inf,                        0x0p+0L,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,                    0x1p-16445L,                            inf,                    0x1p-16444L,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,   0x1.fffffffffffffff8p-16383L,                        0x1p+0L,   0x1.fffffffffffffffcp-16383L,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,   0x1.fffffffffffffffcp-16383L,                        0x1p+0L,                    0x1p-16382L,          0x0p+0, 0)
+T(RN,   0x1.0000000000000002p-16382L,                        0x0p+0L,                    0x1p-16382L,          0x0p+0, 0)
+T(RN,                    0x1p-16382L,                        0x0p+0L,   0x1.fffffffffffffffcp-16383L,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,                        0x1p+0L,       0x1.0000000000000002p+0L,       0x1.0000000000000002p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,       0x1.fffffffffffffffep-1L,       0x1.fffffffffffffffep-1L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                        0x1p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                       -0x1p+0L,       0x1.fffffffffffffffep-1L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                        0x1p+0L,      -0x1.fffffffffffffffep-1L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                       -0x1p+0L,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                            nan,                        0x1p+0L,                            nan,          0x0p+0, 0)
+T(RN,                            nan,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                            inf,                    0x1p-16445L,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,                        0x0p+0L,                           -inf,                   -0x1p-16445L,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,                        0x0p+0L,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                            inf,                    0x1p-16445L,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,                       -0x0p+0L,                           -inf,                   -0x1p-16445L,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,                       -0x0p+0L,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                            inf,                           -inf,   0x1.fffffffffffffffep+16383L,          0x0p+0, 0)
+T(RN,                            inf,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                           -inf,                            inf,  -0x1.fffffffffffffffep+16383L,          0x0p+0, 0)
+T(RN,                           -inf,                           -inf,                           -inf,          0x0p+0, 0)
+T(RN,                           -inf,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/pow.h b/src/math/special/pow.h
new file mode 100644 (file)
index 0000000..fed7899
--- /dev/null
@@ -0,0 +1,92 @@
+T(RN,                  0x0p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                  0x0p+0,                     inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                0x1.8p+1,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                  0x1p+1,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                  0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                  0x1p-1,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                 -0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                 -0x1p-1,                     inf,          0x0p+0, DIVBYZERO)
+T(RN,                  0x0p+0,                 -0x1p+0,                     inf,          0x0p+0, DIVBYZERO)
+T(RN,                  0x0p+0,                 -0x1p+1,                     inf,          0x0p+0, DIVBYZERO)
+T(RN,                  0x0p+0,               -0x1.8p+1,                     inf,          0x0p+0, DIVBYZERO)
+T(RN,                  0x0p+0,                 -0x1p+2,                     inf,          0x0p+0, DIVBYZERO)
+T(RN,                  0x0p+0,                    -inf,                     inf,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                     inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                0x1.8p+1,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x1p+1,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x1p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x1p-1,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x1p-1,                     inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x0p+0,                 -0x1p+0,                    -inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x0p+0,                 -0x1p+1,                     inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x0p+0,               -0x1.8p+1,                    -inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x0p+0,                 -0x1p+2,                     inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x0p+0,                    -inf,                     inf,          0x0p+0, 0)
+T(RN,                     nan,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                     inf,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                    -inf,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p-1,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                     nan,                 -0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                     inf,                 -0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                    -inf,                 -0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                 -0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                 -0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p-1,                 -0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                     inf,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                    -inf,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                  0x1p+1,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                 -0x1p+0,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                 -0x1p+1,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,               -0x1.8p+1,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                  0x1p-1,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x1p+0,                     nan,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                     inf,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                    -inf,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                0x1.8p+1,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x1p-1,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                 -0x1p-1,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,               -0x1.8p+1,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p-1,                  0x1p-1,                     nan,          0x0p+0, INVALID)
+T(RN,                 -0x1p-1,                0x1.8p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                 -0x1p-1,                  0x1p+1,                  0x1p-2,          0x0p+0, 0)
+T(RN,                 -0x1p-1,                0x1.8p+1,                 -0x1p-3,          0x0p+0, 0)
+T(RN,                 -0x1p-1,                     inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p-1,                    -inf,                     inf,          0x0p+0, 0)
+T(RN,                 -0x1p-1,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                  0x1p-1,                     inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p-1,                    -inf,                     inf,          0x0p+0, 0)
+T(RN,                  0x1p-1,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                0x1.8p+0,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                0x1.8p+0,                    -inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                0x1.8p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                     inf,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                     inf,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                     inf,                    -inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                0x1.8p+1,                     inf,          0x0p+0, 0)
+T(RN,                     inf,                  0x1p+1,                     inf,          0x0p+0, 0)
+T(RN,                     inf,                  0x1p+0,                     inf,          0x0p+0, 0)
+T(RN,                     inf,                  0x1p-1,                     inf,          0x0p+0, 0)
+T(RN,                     inf,                 -0x1p-1,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                 -0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                 -0x1p+1,                  0x0p+0,          0x0p+0, 0)
+T(RN,                    -inf,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                    -inf,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                    -inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                    -inf,                0x1.8p+1,                    -inf,          0x0p+0, 0)
+T(RN,                    -inf,                  0x1p+1,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                  0x1p+0,                    -inf,          0x0p+0, 0)
+T(RN,                    -inf,                  0x1p-1,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                 -0x1p-1,                  0x0p+0,          0x0p+0, 0)
+T(RN,                    -inf,                 -0x1p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                    -inf,                 -0x1p+1,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     nan,                  0x1p+0,                     nan,          0x0p+0, 0)
+T(RN,                     nan,                 -0x1p+0,                     nan,          0x0p+0, 0)
+T(RN,                 -0x1p+1,                  0x1p+0,                 -0x1p+1,          0x0p+0, 0)
+T(RN,                 -0x1p+1,                 -0x1p+0,                 -0x1p-1,          0x0p+0, 0)
diff --git a/src/math/special/powf.h b/src/math/special/powf.h
new file mode 100644 (file)
index 0000000..8c7d72d
--- /dev/null
@@ -0,0 +1,92 @@
+T(RN,          0x0p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,          0x0p+0,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,        0x1.8p+1,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x1p+1,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x1p-1,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,         -0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,         -0x1p-1,             inf,          0x0p+0, DIVBYZERO)
+T(RN,          0x0p+0,         -0x1p+0,             inf,          0x0p+0, DIVBYZERO)
+T(RN,          0x0p+0,         -0x1p+1,             inf,          0x0p+0, DIVBYZERO)
+T(RN,          0x0p+0,       -0x1.8p+1,             inf,          0x0p+0, DIVBYZERO)
+T(RN,          0x0p+0,         -0x1p+2,             inf,          0x0p+0, DIVBYZERO)
+T(RN,          0x0p+0,            -inf,             inf,          0x0p+0, 0)
+T(RN,         -0x0p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,         -0x0p+0,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,        0x1.8p+1,         -0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x1p+1,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x1p-1,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x1p-1,             inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x0p+0,         -0x1p+0,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x0p+0,         -0x1p+1,             inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x0p+0,       -0x1.8p+1,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x0p+0,         -0x1p+2,             inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x0p+0,            -inf,             inf,          0x0p+0, 0)
+T(RN,             nan,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,             inf,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,            -inf,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p-1,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,             nan,         -0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,             inf,         -0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,            -inf,         -0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,         -0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,         -0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p-1,         -0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,         -0x1p+0,             inf,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,            -inf,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,          0x1p+1,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,         -0x1p+0,         -0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,         -0x1p+1,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,       -0x1.8p+1,         -0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,          0x1p-1,             nan,          0x0p+0, INVALID)
+T(RN,          0x1p+0,             nan,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,             inf,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,            -inf,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,        0x1.8p+1,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x1p-1,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,         -0x1p-1,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,       -0x1.8p+1,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p-1,          0x1p-1,             nan,          0x0p+0, INVALID)
+T(RN,         -0x1p-1,        0x1.8p+0,             nan,          0x0p+0, INVALID)
+T(RN,         -0x1p-1,          0x1p+1,          0x1p-2,          0x0p+0, 0)
+T(RN,         -0x1p-1,        0x1.8p+1,         -0x1p-3,          0x0p+0, 0)
+T(RN,         -0x1p-1,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p-1,            -inf,             inf,          0x0p+0, 0)
+T(RN,         -0x1p-1,             nan,             nan,          0x0p+0, 0)
+T(RN,          0x1p-1,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p-1,            -inf,             inf,          0x0p+0, 0)
+T(RN,          0x1p-1,             nan,             nan,          0x0p+0, 0)
+T(RN,        0x1.8p+0,             inf,             inf,          0x0p+0, 0)
+T(RN,        0x1.8p+0,            -inf,          0x0p+0,          0x0p+0, 0)
+T(RN,        0x1.8p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,             inf,             nan,             nan,          0x0p+0, 0)
+T(RN,             inf,             inf,             inf,          0x0p+0, 0)
+T(RN,             inf,            -inf,          0x0p+0,          0x0p+0, 0)
+T(RN,             inf,        0x1.8p+1,             inf,          0x0p+0, 0)
+T(RN,             inf,          0x1p+1,             inf,          0x0p+0, 0)
+T(RN,             inf,          0x1p+0,             inf,          0x0p+0, 0)
+T(RN,             inf,          0x1p-1,             inf,          0x0p+0, 0)
+T(RN,             inf,         -0x1p-1,          0x0p+0,          0x0p+0, 0)
+T(RN,             inf,         -0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,             inf,         -0x1p+1,          0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,             nan,             nan,          0x0p+0, 0)
+T(RN,            -inf,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,            -inf,          0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,        0x1.8p+1,            -inf,          0x0p+0, 0)
+T(RN,            -inf,          0x1p+1,             inf,          0x0p+0, 0)
+T(RN,            -inf,          0x1p+0,            -inf,          0x0p+0, 0)
+T(RN,            -inf,          0x1p-1,             inf,          0x0p+0, 0)
+T(RN,            -inf,         -0x1p-1,          0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,         -0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,         -0x1p+1,          0x0p+0,          0x0p+0, 0)
+T(RN,             nan,          0x1p+0,             nan,          0x0p+0, 0)
+T(RN,             nan,         -0x1p+0,             nan,          0x0p+0, 0)
+T(RN,         -0x1p+1,          0x1p+0,         -0x1p+1,          0x0p+0, 0)
+T(RN,         -0x1p+1,         -0x1p+0,         -0x1p-1,          0x0p+0, 0)
diff --git a/src/math/special/powl.h b/src/math/special/powl.h
new file mode 100644 (file)
index 0000000..c0e914c
--- /dev/null
@@ -0,0 +1,92 @@
+T(RN,                        0x0p+0L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                            inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                      0x1.8p+1L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                        0x1p+1L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                        0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                        0x1p-1L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                        0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                       -0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                       -0x1p-1L,                            inf,          0x0p+0, DIVBYZERO)
+T(RN,                        0x0p+0L,                       -0x1p+0L,                            inf,          0x0p+0, DIVBYZERO)
+T(RN,                        0x0p+0L,                       -0x1p+1L,                            inf,          0x0p+0, DIVBYZERO)
+T(RN,                        0x0p+0L,                     -0x1.8p+1L,                            inf,          0x0p+0, DIVBYZERO)
+T(RN,                        0x0p+0L,                       -0x1p+2L,                            inf,          0x0p+0, DIVBYZERO)
+T(RN,                        0x0p+0L,                           -inf,                            inf,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                            inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                      0x1.8p+1L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x1p+1L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x1p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x1p-1L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x1p-1L,                            inf,          0x0p+0, DIVBYZERO)
+T(RN,                       -0x0p+0L,                       -0x1p+0L,                           -inf,          0x0p+0, DIVBYZERO)
+T(RN,                       -0x0p+0L,                       -0x1p+1L,                            inf,          0x0p+0, DIVBYZERO)
+T(RN,                       -0x0p+0L,                     -0x1.8p+1L,                           -inf,          0x0p+0, DIVBYZERO)
+T(RN,                       -0x0p+0L,                       -0x1p+2L,                            inf,          0x0p+0, DIVBYZERO)
+T(RN,                       -0x0p+0L,                           -inf,                            inf,          0x0p+0, 0)
+T(RN,                            nan,                        0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                            inf,                        0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                           -inf,                        0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                        0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                        0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p-1L,                        0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                            nan,                       -0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                            inf,                       -0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                           -inf,                       -0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                       -0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                       -0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p-1L,                       -0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                            inf,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                           -inf,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                        0x1p+1L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                       -0x1p+0L,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                       -0x1p+1L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                     -0x1.8p+1L,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                        0x1p-1L,                            nan,          0x0p+0, INVALID)
+T(RN,                        0x1p+0L,                            nan,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                            inf,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                           -inf,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                      0x1.8p+1L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                        0x1p-1L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                       -0x1p-1L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                     -0x1.8p+1L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p-1L,                        0x1p-1L,                            nan,          0x0p+0, INVALID)
+T(RN,                       -0x1p-1L,                      0x1.8p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                       -0x1p-1L,                        0x1p+1L,                        0x1p-2L,          0x0p+0, 0)
+T(RN,                       -0x1p-1L,                      0x1.8p+1L,                       -0x1p-3L,          0x0p+0, 0)
+T(RN,                       -0x1p-1L,                            inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p-1L,                           -inf,                            inf,          0x0p+0, 0)
+T(RN,                       -0x1p-1L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                        0x1p-1L,                            inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p-1L,                           -inf,                            inf,          0x0p+0, 0)
+T(RN,                        0x1p-1L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                      0x1.8p+0L,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                      0x1.8p+0L,                           -inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                      0x1.8p+0L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                            inf,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                            inf,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                            inf,                           -inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                      0x1.8p+1L,                            inf,          0x0p+0, 0)
+T(RN,                            inf,                        0x1p+1L,                            inf,          0x0p+0, 0)
+T(RN,                            inf,                        0x1p+0L,                            inf,          0x0p+0, 0)
+T(RN,                            inf,                        0x1p-1L,                            inf,          0x0p+0, 0)
+T(RN,                            inf,                       -0x1p-1L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                       -0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                       -0x1p+1L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                           -inf,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                           -inf,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                           -inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                           -inf,                      0x1.8p+1L,                           -inf,          0x0p+0, 0)
+T(RN,                           -inf,                        0x1p+1L,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                        0x1p+0L,                           -inf,          0x0p+0, 0)
+T(RN,                           -inf,                        0x1p-1L,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                       -0x1p-1L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                           -inf,                       -0x1p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                           -inf,                       -0x1p+1L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                            nan,                        0x1p+0L,                            nan,          0x0p+0, 0)
+T(RN,                            nan,                       -0x1p+0L,                            nan,          0x0p+0, 0)
+T(RN,                       -0x1p+1L,                        0x1p+0L,                       -0x1p+1L,          0x0p+0, 0)
+T(RN,                       -0x1p+1L,                       -0x1p+0L,                       -0x1p-1L,          0x0p+0, 0)
diff --git a/src/math/special/remainder.h b/src/math/special/remainder.h
new file mode 100644 (file)
index 0000000..54be6ec
--- /dev/null
@@ -0,0 +1,66 @@
+T(RN,                  0x0p+0,                  0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x1p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p-1,                  0x1p+0,                  0x1p-1,          0x0p+0, 0)
+T(RN,                 -0x1p-1,                  0x1p+0,                 -0x1p-1,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                  0x1p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                0x1.8p+0,                  0x1p+0,                 -0x1p-1,          0x0p+0, 0)
+T(RN,               -0x1.8p+0,                  0x1p+0,                  0x1p-1,          0x0p+0, 0)
+T(RN,                  0x1p+1,                  0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+1,                  0x1p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                  0x1p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                  0x1p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,                  0x1p+0,                     nan,          0x0p+0, 0)
+T(RN,                  0x0p+0,                 -0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x1p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p-1,                 -0x1p+0,                  0x1p-1,          0x0p+0, 0)
+T(RN,                 -0x1p-1,                 -0x1p+0,                 -0x1p-1,          0x0p+0, 0)
+T(RN,                  0x1p+0,                 -0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                 -0x1p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                0x1.8p+0,                 -0x1p+0,                 -0x1p-1,          0x0p+0, 0)
+T(RN,               -0x1.8p+0,                 -0x1p+0,                  0x1p-1,          0x0p+0, 0)
+T(RN,                  0x1p+1,                 -0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+1,                 -0x1p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                 -0x1p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                 -0x1p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,                 -0x1p+0,                     nan,          0x0p+0, 0)
+T(RN,                  0x0p+0,                  0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x0p+0,                 -0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x0p+0,                     inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                    -inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                 -0x0p+0,                 -0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                 -0x0p+0,                     inf,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                    -inf,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                 -0x1p+0,                  0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                     inf,                  0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                  0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,                  0x0p+0,                     nan,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                 -0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                     inf,                 -0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                 -0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,                 -0x0p+0,                     nan,          0x0p+0, 0)
+T(RN,                     inf,                  0x1p+1,                     nan,          0x0p+0, INVALID)
+T(RN,                     inf,                 -0x1p-1,                     nan,          0x0p+0, INVALID)
+T(RN,                     inf,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                    -inf,                  0x1p+1,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                 -0x1p-1,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                     nan,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                  0x1p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                  0x1p+0,                     inf,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                     inf,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                     inf,                     inf,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                     inf,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x1p+0,                    -inf,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                    -inf,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                     inf,                    -inf,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                    -inf,                     nan,          0x0p+0, INVALID)
+T(RN,                0x1.cp+0,                  0x1p-1,                 -0x1p-2,          0x0p+0, 0)
+T(RN,               -0x1.cp+0,                  0x1p-1,                  0x1p-2,          0x0p+0, 0)
+T(RN,                0x1.cp+0,                 -0x1p-1,                 -0x1p-2,          0x0p+0, 0)
+T(RN,               -0x1.cp+0,                 -0x1p-1,                  0x1p-2,          0x0p+0, 0)
diff --git a/src/math/special/remainderf.h b/src/math/special/remainderf.h
new file mode 100644 (file)
index 0000000..074a15d
--- /dev/null
@@ -0,0 +1,66 @@
+T(RN,          0x0p+0,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p-1,          0x1p+0,          0x1p-1,          0x0p+0, 0)
+T(RN,         -0x1p-1,          0x1p+0,         -0x1p-1,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,          0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,        0x1.8p+0,          0x1p+0,         -0x1p-1,          0x0p+0, 0)
+T(RN,       -0x1.8p+0,          0x1p+0,          0x1p-1,          0x0p+0, 0)
+T(RN,          0x1p+1,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p+1,          0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,             inf,          0x1p+0,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,          0x1p+0,             nan,          0x0p+0, INVALID)
+T(RN,             nan,          0x1p+0,             nan,          0x0p+0, 0)
+T(RN,          0x0p+0,         -0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p-1,         -0x1p+0,          0x1p-1,          0x0p+0, 0)
+T(RN,         -0x1p-1,         -0x1p+0,         -0x1p-1,          0x0p+0, 0)
+T(RN,          0x1p+0,         -0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,         -0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,        0x1.8p+0,         -0x1p+0,         -0x1p-1,          0x0p+0, 0)
+T(RN,       -0x1.8p+0,         -0x1p+0,          0x1p-1,          0x0p+0, 0)
+T(RN,          0x1p+1,         -0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p+1,         -0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,             inf,         -0x1p+0,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,         -0x1p+0,             nan,          0x0p+0, INVALID)
+T(RN,             nan,         -0x1p+0,             nan,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,          0x0p+0,         -0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,          0x0p+0,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,            -inf,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,         -0x0p+0,         -0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,         -0x0p+0,             inf,         -0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,            -inf,         -0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,         -0x1p+0,          0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,             inf,          0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,          0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,             nan,          0x0p+0,             nan,          0x0p+0, 0)
+T(RN,         -0x1p+0,         -0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,             inf,         -0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,         -0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,             nan,         -0x0p+0,             nan,          0x0p+0, 0)
+T(RN,             inf,          0x1p+1,             nan,          0x0p+0, INVALID)
+T(RN,             inf,         -0x1p-1,             nan,          0x0p+0, INVALID)
+T(RN,             inf,             nan,             nan,          0x0p+0, 0)
+T(RN,            -inf,          0x1p+1,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,         -0x1p-1,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,             nan,             nan,          0x0p+0, 0)
+T(RN,             nan,             nan,             nan,          0x0p+0, 0)
+T(RN,          0x1p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,         -0x1p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,          0x1p+0,             inf,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,             inf,         -0x1p+0,          0x0p+0, 0)
+T(RN,             inf,             inf,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,             inf,             nan,          0x0p+0, INVALID)
+T(RN,          0x1p+0,            -inf,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,            -inf,         -0x1p+0,          0x0p+0, 0)
+T(RN,             inf,            -inf,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,            -inf,             nan,          0x0p+0, INVALID)
+T(RN,        0x1.cp+0,          0x1p-1,         -0x1p-2,          0x0p+0, 0)
+T(RN,       -0x1.cp+0,          0x1p-1,          0x1p-2,          0x0p+0, 0)
+T(RN,        0x1.cp+0,         -0x1p-1,         -0x1p-2,          0x0p+0, 0)
+T(RN,       -0x1.cp+0,         -0x1p-1,          0x1p-2,          0x0p+0, 0)
diff --git a/src/math/special/remainderl.h b/src/math/special/remainderl.h
new file mode 100644 (file)
index 0000000..5667518
--- /dev/null
@@ -0,0 +1,66 @@
+T(RN,                        0x0p+0L,                        0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x1p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p-1L,                        0x1p+0L,                        0x1p-1L,          0x0p+0, 0)
+T(RN,                       -0x1p-1L,                        0x1p+0L,                       -0x1p-1L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                        0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                        0x1p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                      0x1.8p+0L,                        0x1p+0L,                       -0x1p-1L,          0x0p+0, 0)
+T(RN,                     -0x1.8p+0L,                        0x1p+0L,                        0x1p-1L,          0x0p+0, 0)
+T(RN,                        0x1p+1L,                        0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+1L,                        0x1p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                        0x1p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                        0x1p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                            nan,                        0x1p+0L,                            nan,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                       -0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x1p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p-1L,                       -0x1p+0L,                        0x1p-1L,          0x0p+0, 0)
+T(RN,                       -0x1p-1L,                       -0x1p+0L,                       -0x1p-1L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                       -0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                       -0x1p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                      0x1.8p+0L,                       -0x1p+0L,                       -0x1p-1L,          0x0p+0, 0)
+T(RN,                     -0x1.8p+0L,                       -0x1p+0L,                        0x1p-1L,          0x0p+0, 0)
+T(RN,                        0x1p+1L,                       -0x1p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+1L,                       -0x1p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                       -0x1p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                       -0x1p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                            nan,                       -0x1p+0L,                            nan,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                        0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                        0x0p+0L,                       -0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                        0x0p+0L,                            inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                           -inf,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                        0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                       -0x0p+0L,                            inf,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                           -inf,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                        0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                       -0x1p+0L,                        0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                            inf,                        0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                        0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                            nan,                        0x0p+0L,                            nan,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                       -0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                            inf,                       -0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                       -0x0p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                            nan,                       -0x0p+0L,                            nan,          0x0p+0, 0)
+T(RN,                            inf,                        0x1p+1L,                            nan,          0x0p+0, INVALID)
+T(RN,                            inf,                       -0x1p-1L,                            nan,          0x0p+0, INVALID)
+T(RN,                            inf,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                           -inf,                        0x1p+1L,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                       -0x1p-1L,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                            nan,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                            inf,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                            inf,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                            inf,                            inf,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                            inf,                            nan,          0x0p+0, INVALID)
+T(RN,                        0x1p+0L,                           -inf,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                           -inf,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                            inf,                           -inf,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                           -inf,                            nan,          0x0p+0, INVALID)
+T(RN,                      0x1.cp+0L,                        0x1p-1L,                       -0x1p-2L,          0x0p+0, 0)
+T(RN,                     -0x1.cp+0L,                        0x1p-1L,                        0x1p-2L,          0x0p+0, 0)
+T(RN,                      0x1.cp+0L,                       -0x1p-1L,                       -0x1p-2L,          0x0p+0, 0)
+T(RN,                     -0x1.cp+0L,                       -0x1p-1L,                        0x1p-2L,          0x0p+0, 0)
diff --git a/src/math/special/remquo.h b/src/math/special/remquo.h
new file mode 100644 (file)
index 0000000..7fe94dd
--- /dev/null
@@ -0,0 +1,66 @@
+T(RN,                  0x0p+0,                  0x1p+0,                  0x0p+0,          0x0p+0,           0, 0)
+T(RN,                 -0x0p+0,                  0x1p+0,                 -0x0p+0,          0x0p+0,           0, 0)
+T(RN,                  0x1p-1,                  0x1p+0,                  0x1p-1,          0x0p+0,           0, 0)
+T(RN,                 -0x1p-1,                  0x1p+0,                 -0x1p-1,          0x0p+0,           0, 0)
+T(RN,                  0x1p+0,                  0x1p+0,                  0x0p+0,          0x0p+0,           1, 0)
+T(RN,                 -0x1p+0,                  0x1p+0,                 -0x0p+0,          0x0p+0,          -1, 0)
+T(RN,                0x1.8p+0,                  0x1p+0,                 -0x1p-1,          0x0p+0,           2, 0)
+T(RN,               -0x1.8p+0,                  0x1p+0,                  0x1p-1,          0x0p+0,          -2, 0)
+T(RN,                  0x1p+1,                  0x1p+0,                  0x0p+0,          0x0p+0,           2, 0)
+T(RN,                 -0x1p+1,                  0x1p+0,                 -0x0p+0,          0x0p+0,          -2, 0)
+T(RN,                     inf,                  0x1p+0,                     nan,          0x0p+0,          -2, INVALID)
+T(RN,                    -inf,                  0x1p+0,                     nan,          0x0p+0,          -2, INVALID)
+T(RN,                     nan,                  0x1p+0,                     nan,          0x0p+0,          -2, 0)
+T(RN,                  0x0p+0,                 -0x1p+0,                  0x0p+0,          0x0p+0,           0, 0)
+T(RN,                 -0x0p+0,                 -0x1p+0,                 -0x0p+0,          0x0p+0,           0, 0)
+T(RN,                  0x1p-1,                 -0x1p+0,                  0x1p-1,          0x0p+0,           0, 0)
+T(RN,                 -0x1p-1,                 -0x1p+0,                 -0x1p-1,          0x0p+0,           0, 0)
+T(RN,                  0x1p+0,                 -0x1p+0,                  0x0p+0,          0x0p+0,          -1, 0)
+T(RN,                 -0x1p+0,                 -0x1p+0,                 -0x0p+0,          0x0p+0,           1, 0)
+T(RN,                0x1.8p+0,                 -0x1p+0,                 -0x1p-1,          0x0p+0,          -2, 0)
+T(RN,               -0x1.8p+0,                 -0x1p+0,                  0x1p-1,          0x0p+0,           2, 0)
+T(RN,                  0x1p+1,                 -0x1p+0,                  0x0p+0,          0x0p+0,          -2, 0)
+T(RN,                 -0x1p+1,                 -0x1p+0,                 -0x0p+0,          0x0p+0,           2, 0)
+T(RN,                     inf,                 -0x1p+0,                     nan,          0x0p+0,           2, INVALID)
+T(RN,                    -inf,                 -0x1p+0,                     nan,          0x0p+0,           2, INVALID)
+T(RN,                     nan,                 -0x1p+0,                     nan,          0x0p+0,           2, 0)
+T(RN,                  0x0p+0,                  0x0p+0,                     nan,          0x0p+0,           2, INVALID)
+T(RN,                  0x0p+0,                 -0x0p+0,                     nan,          0x0p+0,           2, INVALID)
+T(RN,                  0x0p+0,                     inf,                  0x0p+0,          0x0p+0,           0, 0)
+T(RN,                  0x0p+0,                    -inf,                  0x0p+0,          0x0p+0,           0, 0)
+T(RN,                  0x0p+0,                     nan,                     nan,          0x0p+0,           0, 0)
+T(RN,                 -0x0p+0,                  0x0p+0,                     nan,          0x0p+0,           0, INVALID)
+T(RN,                 -0x0p+0,                 -0x0p+0,                     nan,          0x0p+0,           0, INVALID)
+T(RN,                 -0x0p+0,                     inf,                 -0x0p+0,          0x0p+0,           0, 0)
+T(RN,                 -0x0p+0,                    -inf,                 -0x0p+0,          0x0p+0,           0, 0)
+T(RN,                 -0x0p+0,                     nan,                     nan,          0x0p+0,           0, 0)
+T(RN,                  0x1p+0,                  0x0p+0,                     nan,          0x0p+0,           0, INVALID)
+T(RN,                 -0x1p+0,                  0x0p+0,                     nan,          0x0p+0,           0, INVALID)
+T(RN,                     inf,                  0x0p+0,                     nan,          0x0p+0,           0, INVALID)
+T(RN,                    -inf,                  0x0p+0,                     nan,          0x0p+0,           0, INVALID)
+T(RN,                     nan,                  0x0p+0,                     nan,          0x0p+0,           0, 0)
+T(RN,                 -0x1p+0,                 -0x0p+0,                     nan,          0x0p+0,           0, INVALID)
+T(RN,                     inf,                 -0x0p+0,                     nan,          0x0p+0,           0, INVALID)
+T(RN,                    -inf,                 -0x0p+0,                     nan,          0x0p+0,           0, INVALID)
+T(RN,                     nan,                 -0x0p+0,                     nan,          0x0p+0,           0, 0)
+T(RN,                     inf,                  0x1p+1,                     nan,          0x0p+0,           0, INVALID)
+T(RN,                     inf,                 -0x1p-1,                     nan,          0x0p+0,           0, INVALID)
+T(RN,                     inf,                     nan,                     nan,          0x0p+0,           0, 0)
+T(RN,                    -inf,                  0x1p+1,                     nan,          0x0p+0,           0, INVALID)
+T(RN,                    -inf,                 -0x1p-1,                     nan,          0x0p+0,           0, INVALID)
+T(RN,                    -inf,                     nan,                     nan,          0x0p+0,           0, 0)
+T(RN,                     nan,                     nan,                     nan,          0x0p+0,           0, 0)
+T(RN,                  0x1p+0,                     nan,                     nan,          0x0p+0,           0, 0)
+T(RN,                 -0x1p+0,                     nan,                     nan,          0x0p+0,           0, 0)
+T(RN,                  0x1p+0,                     inf,                  0x1p+0,          0x0p+0,           0, 0)
+T(RN,                 -0x1p+0,                     inf,                 -0x1p+0,          0x0p+0,           0, 0)
+T(RN,                     inf,                     inf,                     nan,          0x0p+0,           0, INVALID)
+T(RN,                    -inf,                     inf,                     nan,          0x0p+0,           0, INVALID)
+T(RN,                  0x1p+0,                    -inf,                  0x1p+0,          0x0p+0,           0, 0)
+T(RN,                 -0x1p+0,                    -inf,                 -0x1p+0,          0x0p+0,           0, 0)
+T(RN,                     inf,                    -inf,                     nan,          0x0p+0,           0, INVALID)
+T(RN,                    -inf,                    -inf,                     nan,          0x0p+0,           0, INVALID)
+T(RN,                0x1.cp+0,                  0x1p-1,                 -0x1p-2,          0x0p+0,           4, 0)
+T(RN,               -0x1.cp+0,                  0x1p-1,                  0x1p-2,          0x0p+0,          -4, 0)
+T(RN,                0x1.cp+0,                 -0x1p-1,                 -0x1p-2,          0x0p+0,          -4, 0)
+T(RN,               -0x1.cp+0,                 -0x1p-1,                  0x1p-2,          0x0p+0,           4, 0)
diff --git a/src/math/special/remquof.h b/src/math/special/remquof.h
new file mode 100644 (file)
index 0000000..c19efdf
--- /dev/null
@@ -0,0 +1,66 @@
+T(RN,          0x0p+0,          0x1p+0,          0x0p+0,          0x0p+0,           0, 0)
+T(RN,         -0x0p+0,          0x1p+0,         -0x0p+0,          0x0p+0,           0, 0)
+T(RN,          0x1p-1,          0x1p+0,          0x1p-1,          0x0p+0,           0, 0)
+T(RN,         -0x1p-1,          0x1p+0,         -0x1p-1,          0x0p+0,           0, 0)
+T(RN,          0x1p+0,          0x1p+0,          0x0p+0,          0x0p+0,           1, 0)
+T(RN,         -0x1p+0,          0x1p+0,         -0x0p+0,          0x0p+0,          -1, 0)
+T(RN,        0x1.8p+0,          0x1p+0,         -0x1p-1,          0x0p+0,           2, 0)
+T(RN,       -0x1.8p+0,          0x1p+0,          0x1p-1,          0x0p+0,          -2, 0)
+T(RN,          0x1p+1,          0x1p+0,          0x0p+0,          0x0p+0,           2, 0)
+T(RN,         -0x1p+1,          0x1p+0,         -0x0p+0,          0x0p+0,          -2, 0)
+T(RN,             inf,          0x1p+0,             nan,          0x0p+0,          -2, INVALID)
+T(RN,            -inf,          0x1p+0,             nan,          0x0p+0,          -2, INVALID)
+T(RN,             nan,          0x1p+0,             nan,          0x0p+0,          -2, 0)
+T(RN,          0x0p+0,         -0x1p+0,          0x0p+0,          0x0p+0,           0, 0)
+T(RN,         -0x0p+0,         -0x1p+0,         -0x0p+0,          0x0p+0,           0, 0)
+T(RN,          0x1p-1,         -0x1p+0,          0x1p-1,          0x0p+0,           0, 0)
+T(RN,         -0x1p-1,         -0x1p+0,         -0x1p-1,          0x0p+0,           0, 0)
+T(RN,          0x1p+0,         -0x1p+0,          0x0p+0,          0x0p+0,          -1, 0)
+T(RN,         -0x1p+0,         -0x1p+0,         -0x0p+0,          0x0p+0,           1, 0)
+T(RN,        0x1.8p+0,         -0x1p+0,         -0x1p-1,          0x0p+0,          -2, 0)
+T(RN,       -0x1.8p+0,         -0x1p+0,          0x1p-1,          0x0p+0,           2, 0)
+T(RN,          0x1p+1,         -0x1p+0,          0x0p+0,          0x0p+0,          -2, 0)
+T(RN,         -0x1p+1,         -0x1p+0,         -0x0p+0,          0x0p+0,           2, 0)
+T(RN,             inf,         -0x1p+0,             nan,          0x0p+0,           2, INVALID)
+T(RN,            -inf,         -0x1p+0,             nan,          0x0p+0,           2, INVALID)
+T(RN,             nan,         -0x1p+0,             nan,          0x0p+0,           2, 0)
+T(RN,          0x0p+0,          0x0p+0,             nan,          0x0p+0,           2, INVALID)
+T(RN,          0x0p+0,         -0x0p+0,             nan,          0x0p+0,           2, INVALID)
+T(RN,          0x0p+0,             inf,          0x0p+0,          0x0p+0,           0, 0)
+T(RN,          0x0p+0,            -inf,          0x0p+0,          0x0p+0,           0, 0)
+T(RN,          0x0p+0,             nan,             nan,          0x0p+0,           0, 0)
+T(RN,         -0x0p+0,          0x0p+0,             nan,          0x0p+0,           0, INVALID)
+T(RN,         -0x0p+0,         -0x0p+0,             nan,          0x0p+0,           0, INVALID)
+T(RN,         -0x0p+0,             inf,         -0x0p+0,          0x0p+0,           0, 0)
+T(RN,         -0x0p+0,            -inf,         -0x0p+0,          0x0p+0,           0, 0)
+T(RN,         -0x0p+0,             nan,             nan,          0x0p+0,           0, 0)
+T(RN,          0x1p+0,          0x0p+0,             nan,          0x0p+0,           0, INVALID)
+T(RN,         -0x1p+0,          0x0p+0,             nan,          0x0p+0,           0, INVALID)
+T(RN,             inf,          0x0p+0,             nan,          0x0p+0,           0, INVALID)
+T(RN,            -inf,          0x0p+0,             nan,          0x0p+0,           0, INVALID)
+T(RN,             nan,          0x0p+0,             nan,          0x0p+0,           0, 0)
+T(RN,         -0x1p+0,         -0x0p+0,             nan,          0x0p+0,           0, INVALID)
+T(RN,             inf,         -0x0p+0,             nan,          0x0p+0,           0, INVALID)
+T(RN,            -inf,         -0x0p+0,             nan,          0x0p+0,           0, INVALID)
+T(RN,             nan,         -0x0p+0,             nan,          0x0p+0,           0, 0)
+T(RN,             inf,          0x1p+1,             nan,          0x0p+0,           0, INVALID)
+T(RN,             inf,         -0x1p-1,             nan,          0x0p+0,           0, INVALID)
+T(RN,             inf,             nan,             nan,          0x0p+0,           0, 0)
+T(RN,            -inf,          0x1p+1,             nan,          0x0p+0,           0, INVALID)
+T(RN,            -inf,         -0x1p-1,             nan,          0x0p+0,           0, INVALID)
+T(RN,            -inf,             nan,             nan,          0x0p+0,           0, 0)
+T(RN,             nan,             nan,             nan,          0x0p+0,           0, 0)
+T(RN,          0x1p+0,             nan,             nan,          0x0p+0,           0, 0)
+T(RN,         -0x1p+0,             nan,             nan,          0x0p+0,           0, 0)
+T(RN,          0x1p+0,             inf,          0x1p+0,          0x0p+0,           0, 0)
+T(RN,         -0x1p+0,             inf,         -0x1p+0,          0x0p+0,           0, 0)
+T(RN,             inf,             inf,             nan,          0x0p+0,           0, INVALID)
+T(RN,            -inf,             inf,             nan,          0x0p+0,           0, INVALID)
+T(RN,          0x1p+0,            -inf,          0x1p+0,          0x0p+0,           0, 0)
+T(RN,         -0x1p+0,            -inf,         -0x1p+0,          0x0p+0,           0, 0)
+T(RN,             inf,            -inf,             nan,          0x0p+0,           0, INVALID)
+T(RN,            -inf,            -inf,             nan,          0x0p+0,           0, INVALID)
+T(RN,        0x1.cp+0,          0x1p-1,         -0x1p-2,          0x0p+0,           4, 0)
+T(RN,       -0x1.cp+0,          0x1p-1,          0x1p-2,          0x0p+0,          -4, 0)
+T(RN,        0x1.cp+0,         -0x1p-1,         -0x1p-2,          0x0p+0,          -4, 0)
+T(RN,       -0x1.cp+0,         -0x1p-1,          0x1p-2,          0x0p+0,           4, 0)
diff --git a/src/math/special/remquol.h b/src/math/special/remquol.h
new file mode 100644 (file)
index 0000000..e0007a3
--- /dev/null
@@ -0,0 +1,66 @@
+T(RN,                        0x0p+0L,                        0x1p+0L,                        0x0p+0L,          0x0p+0,           0, 0)
+T(RN,                       -0x0p+0L,                        0x1p+0L,                       -0x0p+0L,          0x0p+0,           0, 0)
+T(RN,                        0x1p-1L,                        0x1p+0L,                        0x1p-1L,          0x0p+0,           0, 0)
+T(RN,                       -0x1p-1L,                        0x1p+0L,                       -0x1p-1L,          0x0p+0,           0, 0)
+T(RN,                        0x1p+0L,                        0x1p+0L,                        0x0p+0L,          0x0p+0,           1, 0)
+T(RN,                       -0x1p+0L,                        0x1p+0L,                       -0x0p+0L,          0x0p+0,          -1, 0)
+T(RN,                      0x1.8p+0L,                        0x1p+0L,                       -0x1p-1L,          0x0p+0,           2, 0)
+T(RN,                     -0x1.8p+0L,                        0x1p+0L,                        0x1p-1L,          0x0p+0,          -2, 0)
+T(RN,                        0x1p+1L,                        0x1p+0L,                        0x0p+0L,          0x0p+0,           2, 0)
+T(RN,                       -0x1p+1L,                        0x1p+0L,                       -0x0p+0L,          0x0p+0,          -2, 0)
+T(RN,                            inf,                        0x1p+0L,                            nan,          0x0p+0,          -2, INVALID)
+T(RN,                           -inf,                        0x1p+0L,                            nan,          0x0p+0,          -2, INVALID)
+T(RN,                            nan,                        0x1p+0L,                            nan,          0x0p+0,          -2, 0)
+T(RN,                        0x0p+0L,                       -0x1p+0L,                        0x0p+0L,          0x0p+0,           0, 0)
+T(RN,                       -0x0p+0L,                       -0x1p+0L,                       -0x0p+0L,          0x0p+0,           0, 0)
+T(RN,                        0x1p-1L,                       -0x1p+0L,                        0x1p-1L,          0x0p+0,           0, 0)
+T(RN,                       -0x1p-1L,                       -0x1p+0L,                       -0x1p-1L,          0x0p+0,           0, 0)
+T(RN,                        0x1p+0L,                       -0x1p+0L,                        0x0p+0L,          0x0p+0,          -1, 0)
+T(RN,                       -0x1p+0L,                       -0x1p+0L,                       -0x0p+0L,          0x0p+0,           1, 0)
+T(RN,                      0x1.8p+0L,                       -0x1p+0L,                       -0x1p-1L,          0x0p+0,          -2, 0)
+T(RN,                     -0x1.8p+0L,                       -0x1p+0L,                        0x1p-1L,          0x0p+0,           2, 0)
+T(RN,                        0x1p+1L,                       -0x1p+0L,                        0x0p+0L,          0x0p+0,          -2, 0)
+T(RN,                       -0x1p+1L,                       -0x1p+0L,                       -0x0p+0L,          0x0p+0,           2, 0)
+T(RN,                            inf,                       -0x1p+0L,                            nan,          0x0p+0,           2, INVALID)
+T(RN,                           -inf,                       -0x1p+0L,                            nan,          0x0p+0,           2, INVALID)
+T(RN,                            nan,                       -0x1p+0L,                            nan,          0x0p+0,           2, 0)
+T(RN,                        0x0p+0L,                        0x0p+0L,                            nan,          0x0p+0,           2, INVALID)
+T(RN,                        0x0p+0L,                       -0x0p+0L,                            nan,          0x0p+0,           2, INVALID)
+T(RN,                        0x0p+0L,                            inf,                        0x0p+0L,          0x0p+0,           0, 0)
+T(RN,                        0x0p+0L,                           -inf,                        0x0p+0L,          0x0p+0,           0, 0)
+T(RN,                        0x0p+0L,                            nan,                            nan,          0x0p+0,           0, 0)
+T(RN,                       -0x0p+0L,                        0x0p+0L,                            nan,          0x0p+0,           0, INVALID)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,                            nan,          0x0p+0,           0, INVALID)
+T(RN,                       -0x0p+0L,                            inf,                       -0x0p+0L,          0x0p+0,           0, 0)
+T(RN,                       -0x0p+0L,                           -inf,                       -0x0p+0L,          0x0p+0,           0, 0)
+T(RN,                       -0x0p+0L,                            nan,                            nan,          0x0p+0,           0, 0)
+T(RN,                        0x1p+0L,                        0x0p+0L,                            nan,          0x0p+0,           0, INVALID)
+T(RN,                       -0x1p+0L,                        0x0p+0L,                            nan,          0x0p+0,           0, INVALID)
+T(RN,                            inf,                        0x0p+0L,                            nan,          0x0p+0,           0, INVALID)
+T(RN,                           -inf,                        0x0p+0L,                            nan,          0x0p+0,           0, INVALID)
+T(RN,                            nan,                        0x0p+0L,                            nan,          0x0p+0,           0, 0)
+T(RN,                       -0x1p+0L,                       -0x0p+0L,                            nan,          0x0p+0,           0, INVALID)
+T(RN,                            inf,                       -0x0p+0L,                            nan,          0x0p+0,           0, INVALID)
+T(RN,                           -inf,                       -0x0p+0L,                            nan,          0x0p+0,           0, INVALID)
+T(RN,                            nan,                       -0x0p+0L,                            nan,          0x0p+0,           0, 0)
+T(RN,                            inf,                        0x1p+1L,                            nan,          0x0p+0,           0, INVALID)
+T(RN,                            inf,                       -0x1p-1L,                            nan,          0x0p+0,           0, INVALID)
+T(RN,                            inf,                            nan,                            nan,          0x0p+0,           0, 0)
+T(RN,                           -inf,                        0x1p+1L,                            nan,          0x0p+0,           0, INVALID)
+T(RN,                           -inf,                       -0x1p-1L,                            nan,          0x0p+0,           0, INVALID)
+T(RN,                           -inf,                            nan,                            nan,          0x0p+0,           0, 0)
+T(RN,                            nan,                            nan,                            nan,          0x0p+0,           0, 0)
+T(RN,                        0x1p+0L,                            nan,                            nan,          0x0p+0,           0, 0)
+T(RN,                       -0x1p+0L,                            nan,                            nan,          0x0p+0,           0, 0)
+T(RN,                        0x1p+0L,                            inf,                        0x1p+0L,          0x0p+0,           0, 0)
+T(RN,                       -0x1p+0L,                            inf,                       -0x1p+0L,          0x0p+0,           0, 0)
+T(RN,                            inf,                            inf,                            nan,          0x0p+0,           0, INVALID)
+T(RN,                           -inf,                            inf,                            nan,          0x0p+0,           0, INVALID)
+T(RN,                        0x1p+0L,                           -inf,                        0x1p+0L,          0x0p+0,           0, 0)
+T(RN,                       -0x1p+0L,                           -inf,                       -0x1p+0L,          0x0p+0,           0, 0)
+T(RN,                            inf,                           -inf,                            nan,          0x0p+0,           0, INVALID)
+T(RN,                           -inf,                           -inf,                            nan,          0x0p+0,           0, INVALID)
+T(RN,                      0x1.cp+0L,                        0x1p-1L,                       -0x1p-2L,          0x0p+0,           4, 0)
+T(RN,                     -0x1.cp+0L,                        0x1p-1L,                        0x1p-2L,          0x0p+0,          -4, 0)
+T(RN,                      0x1.cp+0L,                       -0x1p-1L,                       -0x1p-2L,          0x0p+0,          -4, 0)
+T(RN,                     -0x1.cp+0L,                       -0x1p-1L,                        0x1p-2L,          0x0p+0,           4, 0)
diff --git a/src/math/special/rint.h b/src/math/special/rint.h
new file mode 100644 (file)
index 0000000..0966cd7
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p-1,                  0x0p+0,          0x0p+0, INEXACT)
+T(RN,                 -0x1p-1,                 -0x0p+0,          0x0p+0, INEXACT)
+T(RN,             0x1.0001p+0,                  0x1p+0,          0x0p+0, INEXACT)
+T(RN,            -0x1.0001p+0,                 -0x1p+0,          0x0p+0, INEXACT)
+T(RN,             0x1.ffffp-1,                  0x1p+0,          0x0p+0, INEXACT)
+T(RN,            -0x1.ffffp-1,                 -0x1p+0,          0x0p+0, INEXACT)
+T(RN,                0x1p-100,                  0x0p+0,          0x0p+0, INEXACT)
+T(RN,               -0x1p-100,                 -0x0p+0,          0x0p+0, INEXACT)
diff --git a/src/math/special/rintf.h b/src/math/special/rintf.h
new file mode 100644 (file)
index 0000000..f487a01
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,             nan,             nan,          0x0p+0, 0)
+T(RN,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,            -inf,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p-1,          0x0p+0,          0x0p+0, INEXACT)
+T(RN,         -0x1p-1,         -0x0p+0,          0x0p+0, INEXACT)
+T(RN,     0x1.0001p+0,          0x1p+0,          0x0p+0, INEXACT)
+T(RN,    -0x1.0001p+0,         -0x1p+0,          0x0p+0, INEXACT)
+T(RN,     0x1.ffffp-1,          0x1p+0,          0x0p+0, INEXACT)
+T(RN,    -0x1.ffffp-1,         -0x1p+0,          0x0p+0, INEXACT)
+T(RN,        0x1p-100,          0x0p+0,          0x0p+0, INEXACT)
+T(RN,       -0x1p-100,         -0x0p+0,          0x0p+0, INEXACT)
diff --git a/src/math/special/rintl.h b/src/math/special/rintl.h
new file mode 100644 (file)
index 0000000..5bc0320
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                           -inf,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p-1L,                        0x0p+0L,          0x0p+0, INEXACT)
+T(RN,                       -0x1p-1L,                       -0x0p+0L,          0x0p+0, INEXACT)
+T(RN,                   0x1.0001p+0L,                        0x1p+0L,          0x0p+0, INEXACT)
+T(RN,                  -0x1.0001p+0L,                       -0x1p+0L,          0x0p+0, INEXACT)
+T(RN,                   0x1.ffffp-1L,                        0x1p+0L,          0x0p+0, INEXACT)
+T(RN,                  -0x1.ffffp-1L,                       -0x1p+0L,          0x0p+0, INEXACT)
+T(RN,                      0x1p-100L,                        0x0p+0L,          0x0p+0, INEXACT)
+T(RN,                     -0x1p-100L,                       -0x0p+0L,          0x0p+0, INEXACT)
diff --git a/src/math/special/round.h b/src/math/special/round.h
new file mode 100644 (file)
index 0000000..bc1bb01
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p-1,                  0x1p+0,          0x0p+0, INEXACT)
+T(RN,                 -0x1p-1,                 -0x1p+0,          0x0p+0, INEXACT)
+T(RN,             0x1.0001p+0,                  0x1p+0,          0x0p+0, INEXACT)
+T(RN,            -0x1.0001p+0,                 -0x1p+0,          0x0p+0, INEXACT)
+T(RN,             0x1.ffffp-1,                  0x1p+0,          0x0p+0, INEXACT)
+T(RN,            -0x1.ffffp-1,                 -0x1p+0,          0x0p+0, INEXACT)
+T(RN,                0x1p-100,                  0x0p+0,          0x0p+0, INEXACT)
+T(RN,               -0x1p-100,                 -0x0p+0,          0x0p+0, INEXACT)
diff --git a/src/math/special/roundf.h b/src/math/special/roundf.h
new file mode 100644 (file)
index 0000000..2697a4b
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,             nan,             nan,          0x0p+0, 0)
+T(RN,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,            -inf,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p-1,          0x1p+0,          0x0p+0, INEXACT)
+T(RN,         -0x1p-1,         -0x1p+0,          0x0p+0, INEXACT)
+T(RN,     0x1.0001p+0,          0x1p+0,          0x0p+0, INEXACT)
+T(RN,    -0x1.0001p+0,         -0x1p+0,          0x0p+0, INEXACT)
+T(RN,     0x1.ffffp-1,          0x1p+0,          0x0p+0, INEXACT)
+T(RN,    -0x1.ffffp-1,         -0x1p+0,          0x0p+0, INEXACT)
+T(RN,        0x1p-100,          0x0p+0,          0x0p+0, INEXACT)
+T(RN,       -0x1p-100,         -0x0p+0,          0x0p+0, INEXACT)
diff --git a/src/math/special/roundl.h b/src/math/special/roundl.h
new file mode 100644 (file)
index 0000000..27ac120
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                           -inf,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p-1L,                        0x1p+0L,          0x0p+0, INEXACT)
+T(RN,                       -0x1p-1L,                       -0x1p+0L,          0x0p+0, INEXACT)
+T(RN,                   0x1.0001p+0L,                        0x1p+0L,          0x0p+0, INEXACT)
+T(RN,                  -0x1.0001p+0L,                       -0x1p+0L,          0x0p+0, INEXACT)
+T(RN,                   0x1.ffffp-1L,                        0x1p+0L,          0x0p+0, INEXACT)
+T(RN,                  -0x1.ffffp-1L,                       -0x1p+0L,          0x0p+0, INEXACT)
+T(RN,                      0x1p-100L,                        0x0p+0L,          0x0p+0, INEXACT)
+T(RN,                     -0x1p-100L,                       -0x0p+0L,          0x0p+0, INEXACT)
diff --git a/src/math/special/scalb.h b/src/math/special/scalb.h
new file mode 100644 (file)
index 0000000..c9fa637
--- /dev/null
@@ -0,0 +1,34 @@
+T(RN,                  0x0p+0,                  0x1p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                0x1p+100,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,               -0x1p+100,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x1p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                0x1p+100,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                  0x0p+0,                     inf,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x0p+0,                    -inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                     nan,                  0x0p+0,                     nan,          0x0p+0, 0)
+T(RN,                     inf,                  0x0p+0,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                  0x0p+0,                    -inf,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x1p+0,                  0x1p+1,          0x0p+0, 0)
+T(RN,                  0x1p+0,                 -0x1p+0,                  0x1p-1,          0x0p+0, 0)
+T(RN,                  0x1p+0,                0x1p+100,                     inf,          0x0p+0, INEXACT|OVERFLOW)
+T(RN,                  0x1p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                  0x1p+0,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                  0x1p+0,                    -inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                  0x0p+0,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                  0x1p+0,                 -0x1p+1,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                 -0x1p+0,                 -0x1p-1,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                     inf,                    -inf,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                    -inf,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                     nan,                  0x1p+0,                     nan,          0x0p+0, 0)
+T(RN,                     nan,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                     nan,                     inf,                     nan,          0x0p+0, 0)
+T(RN,                     nan,                    -inf,                     nan,          0x0p+0, 0)
+T(RN,                     inf,                0x1p+100,                     inf,          0x0p+0, 0)
+T(RN,                     inf,               -0x1p+100,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                0x1p+100,                    -inf,          0x0p+0, 0)
+T(RN,                     inf,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                     inf,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                     inf,                    -inf,                     nan,          0x0p+0, INVALID)
diff --git a/src/math/special/scalbf.h b/src/math/special/scalbf.h
new file mode 100644 (file)
index 0000000..6218c39
--- /dev/null
@@ -0,0 +1,34 @@
+T(RN,          0x0p+0,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,        0x1p+100,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,       -0x1p+100,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,        0x1p+100,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,          0x0p+0,             inf,             nan,          0x0p+0, INVALID)
+T(RN,          0x0p+0,            -inf,          0x0p+0,          0x0p+0, 0)
+T(RN,             nan,          0x0p+0,             nan,          0x0p+0, 0)
+T(RN,             inf,          0x0p+0,             inf,          0x0p+0, 0)
+T(RN,            -inf,          0x0p+0,            -inf,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x1p+0,          0x1p+1,          0x0p+0, 0)
+T(RN,          0x1p+0,         -0x1p+0,          0x1p-1,          0x0p+0, 0)
+T(RN,          0x1p+0,        0x1p+100,             inf,          0x0p+0, INEXACT|OVERFLOW)
+T(RN,          0x1p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,          0x1p+0,             inf,             inf,          0x0p+0, 0)
+T(RN,          0x1p+0,            -inf,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,          0x0p+0,         -0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,          0x1p+0,         -0x1p+1,          0x0p+0, 0)
+T(RN,         -0x1p+0,         -0x1p+0,         -0x1p-1,          0x0p+0, 0)
+T(RN,         -0x1p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,         -0x1p+0,             inf,            -inf,          0x0p+0, 0)
+T(RN,         -0x1p+0,            -inf,         -0x0p+0,          0x0p+0, 0)
+T(RN,             nan,          0x1p+0,             nan,          0x0p+0, 0)
+T(RN,             nan,             nan,             nan,          0x0p+0, 0)
+T(RN,             nan,             inf,             nan,          0x0p+0, 0)
+T(RN,             nan,            -inf,             nan,          0x0p+0, 0)
+T(RN,             inf,        0x1p+100,             inf,          0x0p+0, 0)
+T(RN,             inf,       -0x1p+100,             inf,          0x0p+0, 0)
+T(RN,            -inf,        0x1p+100,            -inf,          0x0p+0, 0)
+T(RN,             inf,             nan,             nan,          0x0p+0, 0)
+T(RN,             inf,             inf,             inf,          0x0p+0, 0)
+T(RN,             inf,            -inf,             nan,          0x0p+0, INVALID)
diff --git a/src/math/special/scalbln.h b/src/math/special/scalbln.h
new file mode 100644 (file)
index 0000000..af596ad
--- /dev/null
@@ -0,0 +1,14 @@
+T(RN,                  0x0p+0,  2147483647,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0, -2147483647,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,  2147483647,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                     nan,           0,                     nan,          0x0p+0, 0)
+T(RN,                     inf,           0,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,           0,                    -inf,          0x0p+0, 0)
+T(RN,                  0x1p+0,           0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,           1,                  0x1p+1,          0x0p+0, 0)
+T(RN,                  0x1p+0,          -1,                  0x1p-1,          0x0p+0, 0)
+T(RN,                  0x1p+0,  2147483647,                     inf,          0x0p+0, INEXACT|OVERFLOW)
+T(RN,                     nan,           1,                     nan,          0x0p+0, 0)
+T(RN,                     inf,  2147483647,                     inf,          0x0p+0, 0)
+T(RN,                     inf, -2147483647,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,  2147483647,                    -inf,          0x0p+0, 0)
diff --git a/src/math/special/scalblnf.h b/src/math/special/scalblnf.h
new file mode 100644 (file)
index 0000000..68bad47
--- /dev/null
@@ -0,0 +1,14 @@
+T(RN,          0x0p+0,  2147483647,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0, -2147483647,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,  2147483647,         -0x0p+0,          0x0p+0, 0)
+T(RN,             nan,           0,             nan,          0x0p+0, 0)
+T(RN,             inf,           0,             inf,          0x0p+0, 0)
+T(RN,            -inf,           0,            -inf,          0x0p+0, 0)
+T(RN,          0x1p+0,           0,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,           1,          0x1p+1,          0x0p+0, 0)
+T(RN,          0x1p+0,          -1,          0x1p-1,          0x0p+0, 0)
+T(RN,          0x1p+0,  2147483647,             inf,          0x0p+0, INEXACT|OVERFLOW)
+T(RN,             nan,           1,             nan,          0x0p+0, 0)
+T(RN,             inf,  2147483647,             inf,          0x0p+0, 0)
+T(RN,             inf, -2147483647,             inf,          0x0p+0, 0)
+T(RN,            -inf,  2147483647,            -inf,          0x0p+0, 0)
diff --git a/src/math/special/scalblnl.h b/src/math/special/scalblnl.h
new file mode 100644 (file)
index 0000000..cea8e15
--- /dev/null
@@ -0,0 +1,14 @@
+T(RN,                        0x0p+0L,  2147483647,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L, -2147483647,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,  2147483647,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                            nan,           0,                            nan,          0x0p+0, 0)
+T(RN,                            inf,           0,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,           0,                           -inf,          0x0p+0, 0)
+T(RN,                        0x1p+0L,           0,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,           1,                        0x1p+1L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,          -1,                        0x1p-1L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,  2147483647,                            inf,          0x0p+0, INEXACT|OVERFLOW)
+T(RN,                            nan,           1,                            nan,          0x0p+0, 0)
+T(RN,                            inf,  2147483647,                            inf,          0x0p+0, 0)
+T(RN,                            inf, -2147483647,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,  2147483647,                           -inf,          0x0p+0, 0)
diff --git a/src/math/special/scalbn.h b/src/math/special/scalbn.h
new file mode 100644 (file)
index 0000000..af596ad
--- /dev/null
@@ -0,0 +1,14 @@
+T(RN,                  0x0p+0,  2147483647,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0, -2147483647,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,  2147483647,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                     nan,           0,                     nan,          0x0p+0, 0)
+T(RN,                     inf,           0,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,           0,                    -inf,          0x0p+0, 0)
+T(RN,                  0x1p+0,           0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,           1,                  0x1p+1,          0x0p+0, 0)
+T(RN,                  0x1p+0,          -1,                  0x1p-1,          0x0p+0, 0)
+T(RN,                  0x1p+0,  2147483647,                     inf,          0x0p+0, INEXACT|OVERFLOW)
+T(RN,                     nan,           1,                     nan,          0x0p+0, 0)
+T(RN,                     inf,  2147483647,                     inf,          0x0p+0, 0)
+T(RN,                     inf, -2147483647,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,  2147483647,                    -inf,          0x0p+0, 0)
diff --git a/src/math/special/scalbnf.h b/src/math/special/scalbnf.h
new file mode 100644 (file)
index 0000000..68bad47
--- /dev/null
@@ -0,0 +1,14 @@
+T(RN,          0x0p+0,  2147483647,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0, -2147483647,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,  2147483647,         -0x0p+0,          0x0p+0, 0)
+T(RN,             nan,           0,             nan,          0x0p+0, 0)
+T(RN,             inf,           0,             inf,          0x0p+0, 0)
+T(RN,            -inf,           0,            -inf,          0x0p+0, 0)
+T(RN,          0x1p+0,           0,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,           1,          0x1p+1,          0x0p+0, 0)
+T(RN,          0x1p+0,          -1,          0x1p-1,          0x0p+0, 0)
+T(RN,          0x1p+0,  2147483647,             inf,          0x0p+0, INEXACT|OVERFLOW)
+T(RN,             nan,           1,             nan,          0x0p+0, 0)
+T(RN,             inf,  2147483647,             inf,          0x0p+0, 0)
+T(RN,             inf, -2147483647,             inf,          0x0p+0, 0)
+T(RN,            -inf,  2147483647,            -inf,          0x0p+0, 0)
diff --git a/src/math/special/scalbnl.h b/src/math/special/scalbnl.h
new file mode 100644 (file)
index 0000000..cea8e15
--- /dev/null
@@ -0,0 +1,14 @@
+T(RN,                        0x0p+0L,  2147483647,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x0p+0L, -2147483647,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,  2147483647,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                            nan,           0,                            nan,          0x0p+0, 0)
+T(RN,                            inf,           0,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,           0,                           -inf,          0x0p+0, 0)
+T(RN,                        0x1p+0L,           0,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,           1,                        0x1p+1L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,          -1,                        0x1p-1L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,  2147483647,                            inf,          0x0p+0, INEXACT|OVERFLOW)
+T(RN,                            nan,           1,                            nan,          0x0p+0, 0)
+T(RN,                            inf,  2147483647,                            inf,          0x0p+0, 0)
+T(RN,                            inf, -2147483647,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,  2147483647,                           -inf,          0x0p+0, 0)
diff --git a/src/math/special/sin.h b/src/math/special/sin.h
new file mode 100644 (file)
index 0000000..ccafd59
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/sincos.h b/src/math/special/sincos.h
new file mode 100644 (file)
index 0000000..f91a673
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,          0x0p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                     inf,                     nan,          0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                     nan,          0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,                     nan,          0x0p+0,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/sincosf.h b/src/math/special/sincosf.h
new file mode 100644 (file)
index 0000000..789e490
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,             inf,             nan,          0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,             nan,          0x0p+0,             nan,          0x0p+0, INVALID)
+T(RN,             nan,             nan,          0x0p+0,             nan,          0x0p+0, 0)
diff --git a/src/math/special/sincosl.h b/src/math/special/sincosl.h
new file mode 100644 (file)
index 0000000..a9fc0b4
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,                        0x0p+0L,                        0x0p+0L,          0x0p+0,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                            inf,                            nan,          0x0p+0,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                            nan,          0x0p+0,                            nan,          0x0p+0, INVALID)
+T(RN,                            nan,                            nan,          0x0p+0,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/sinf.h b/src/math/special/sinf.h
new file mode 100644 (file)
index 0000000..c8414f6
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,             inf,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,             nan,          0x0p+0, INVALID)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/sinh.h b/src/math/special/sinh.h
new file mode 100644 (file)
index 0000000..758c18b
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/sinhf.h b/src/math/special/sinhf.h
new file mode 100644 (file)
index 0000000..6005478
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,            -inf,          0x0p+0, 0)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/sinhl.h b/src/math/special/sinhl.h
new file mode 100644 (file)
index 0000000..98eb39e
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                           -inf,          0x0p+0, 0)
+T(RN,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/sinl.h b/src/math/special/sinl.h
new file mode 100644 (file)
index 0000000..221a0ba
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                            nan,          0x0p+0, INVALID)
+T(RN,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/sqrt.h b/src/math/special/sqrt.h
new file mode 100644 (file)
index 0000000..45246f5
--- /dev/null
@@ -0,0 +1,75 @@
+T(RN,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x1p+2,                  0x1p+1,          0x0p+0, 0)
+T(RN,               0x1p-1073,  0x1.6a09e667f3bcdp-537,   0x1.bdd342p-2, INEXACT)
+T(RN,             0x1.8p-1073,  0x1.bb67ae8584caap-537,  -0x1.cec95ep-2, INEXACT)
+T(RN,               0x1p-1074,                0x1p-537,          0x0p+0, 0)
+T(RN,              -0x1p-1074,                     nan,          0x0p+0, INVALID)
+T(RN,    0x1.fffffffffffffp-1,    0x1.fffffffffffffp-1,         -0x1p-1, INEXACT)
+T(RN,    0x1.fffffffffffffp+0,    0x1.6a09e667f3bccp+0,   -0x1.b045bp-3, INEXACT)
+T(RN,    0x1.0000000000001p+0,                  0x1p+0,         -0x1p-1, INEXACT)
+T(RN,    0x1.0000000000001p+1,    0x1.6a09e667f3bcdp+0,  -0x1.16408cp-2, INEXACT)
+T(RN,    0x1.0000000000001p+0,                  0x1p+0,         -0x1p-1, INEXACT)
+T(RN,    0x1.fffffffffffffp-1,    0x1.fffffffffffffp-1,         -0x1p-1, INEXACT)
+T(RN,-0x1.fffffffffffffp+1023,                     nan,          0x0p+0, INVALID)
+T(RN, 0x1.fffffffffffffp+1023,  0x1.fffffffffffffp+511,         -0x1p-1, INEXACT)
+T(RN, 0x1.ffffffffffffbp+1023,  0x1.ffffffffffffdp+511,         -0x1p-1, INEXACT)
+T(RN, 0x1.ffffffffffff7p+1023,  0x1.ffffffffffffbp+511,         -0x1p-1, INEXACT)
+T(RN, 0x1.ffffffffffff3p+1023,  0x1.ffffffffffff9p+511,         -0x1p-1, INEXACT)
+T(RN, 0x1.fffffffffffefp+1023,  0x1.ffffffffffff7p+511,         -0x1p-1, INEXACT)
+T(RN, 0x1.fffffffffffebp+1023,  0x1.ffffffffffff5p+511,         -0x1p-1, INEXACT)
+T(RN, 0x1.fffffffffffe7p+1023,  0x1.ffffffffffff3p+511,         -0x1p-1, INEXACT)
+T(RN, 0x1.fffffffffffe3p+1023,  0x1.ffffffffffff1p+511,         -0x1p-1, INEXACT)
+T(RN, 0x1.fffffffffffdfp+1023,  0x1.fffffffffffefp+511,         -0x1p-1, INEXACT)
+T(RN, 0x1.fffffffffffdbp+1023,  0x1.fffffffffffedp+511,         -0x1p-1, INEXACT)
+T(RN, 0x1.fffffffffffd7p+1023,  0x1.fffffffffffebp+511,         -0x1p-1, INEXACT)
+T(RN, 0x1.0000000000003p-1022,  0x1.0000000000001p-511,         -0x1p-1, INEXACT)
+T(RN, 0x1.0000000000007p-1022,  0x1.0000000000003p-511,         -0x1p-1, INEXACT)
+T(RN, 0x1.000000000000bp-1022,  0x1.0000000000005p-511,         -0x1p-1, INEXACT)
+T(RN, 0x1.000000000000fp-1022,  0x1.0000000000007p-511,         -0x1p-1, INEXACT)
+T(RN, 0x1.0000000000013p-1022,  0x1.0000000000009p-511,         -0x1p-1, INEXACT)
+T(RN, 0x1.0000000000017p-1022,  0x1.000000000000bp-511,         -0x1p-1, INEXACT)
+T(RN, 0x1.000000000001bp-1022,  0x1.000000000000dp-511,         -0x1p-1, INEXACT)
+T(RN, 0x1.000000000001fp-1022,  0x1.000000000000fp-511,         -0x1p-1, INEXACT)
+T(RN, 0x1.0000000000023p-1022,  0x1.0000000000011p-511,         -0x1p-1, INEXACT)
+T(RN, 0x1.0000000000027p-1022,  0x1.0000000000013p-511,         -0x1p-1, INEXACT)
+T(RN, 0x1.000000000002bp-1022,  0x1.0000000000015p-511,         -0x1p-1, INEXACT)
+T(RN, 0x1.000000000002fp-1022,  0x1.0000000000017p-511,         -0x1p-1, INEXACT)
+T(RN, 0x1.0000000000033p-1022,  0x1.0000000000019p-511,         -0x1p-1, INEXACT)
+T(RN, 0x1.0000000000037p-1022,  0x1.000000000001bp-511,         -0x1p-1, INEXACT)
+T(RN,    0x1.7167bc36eaa3bp+6,    0x1.3384c7db650cdp+3,   0x1.ffcf2ap-2, INEXACT)
+T(RN,    0x1.7570994273ad7p+6,    0x1.353186e89b8ffp+3,  -0x1.ffcb84p-2, INEXACT)
+T(RN,    0x1.7dae969442fe6p+6,    0x1.389640fb18b75p+3,  -0x1.fff8d8p-2, INEXACT)
+T(RN,    0x1.7f8444fcf67e5p+6,    0x1.395659e94669fp+3,   0x1.ffdfacp-2, INEXACT)
+T(RN,    0x1.8364650e63a54p+6,    0x1.3aea9efe1a3d7p+3,   0x1.ffcc12p-2, INEXACT)
+T(RN,    0x1.85bedd274edd8p+6,    0x1.3bdf20c867057p+3,   0x1.ffc39cp-2, INEXACT)
+T(RN,    0x1.8609cf496ab77p+6,    0x1.3bfd7e14b5eabp+3,   0x1.ffff86p-2, INEXACT)
+T(RN,    0x1.873849c70a375p+6,    0x1.3c77ed341d27fp+3,  -0x1.fff502p-2, INEXACT)
+T(RN,    0x1.8919c962cbaaep+6,    0x1.3d3a7113ee82fp+3,   0x1.ffcb64p-2, INEXACT)
+T(RN,    0x1.8de4493e22dc6p+6,    0x1.3f27d448220c3p+3,  -0x1.fff3f4p-2, INEXACT)
+T(RN,    0x1.924829a17a288p+6,    0x1.40e9552eec28fp+3,  -0x1.fff6b4p-2, INEXACT)
+T(RN,    0x1.92702cd992f12p+6,    0x1.40f94a6fdfddfp+3,   0x1.ffc03ap-2, INEXACT)
+T(RN,    0x1.92b763a8311fdp+6,    0x1.4115af614695fp+3,  -0x1.ffc594p-2, INEXACT)
+T(RN,    0x1.947da013c7293p+6,    0x1.41ca91102940fp+3,   0x1.ffe252p-2, INEXACT)
+T(RN,    0x1.9536091c494d2p+6,    0x1.4213e334c77adp+3,   0x1.ffe88ep-2, INEXACT)
+T(RN,       0x1.61b04c6p-1019,  0x1.a98b88f18b46dp-510,  -0x1.ffe5c8p-2, INEXACT)
+T(RN,       0x1.93789f1p-1018,  0x1.4162ae43d5821p-509,  -0x1.ffeeccp-2, INEXACT)
+T(RN,       0x1.a1989b4p-1018,  0x1.46f6736eb44bbp-509,  -0x1.ffe4a8p-2, INEXACT)
+T(RN,        0x1.f93bc9p-1018,  0x1.67a36ec403bafp-509,    0x1.ffcd4p-2, INEXACT)
+T(RN,       0x1.2f675e3p-1017,  0x1.8a22ab6dcfee1p-509,  -0x1.ffe782p-2, INEXACT)
+T(RN,       0x1.a158508p-1017,  0x1.ce418a96cf589p-509,  -0x1.fff9eep-2, INEXACT)
+T(RN,      0x1.cd31f078p-1017,  0x1.e5ef1c65dccebp-509,  -0x1.fff33cp-2, INEXACT)
+T(RN,      0x1.33b43b08p-1016,  0x1.18a9f607e1701p-508,  -0x1.ffdc56p-2, INEXACT)
+T(RN,      0x1.6e66a858p-1016,  0x1.324402a00b45fp-508,   0x1.ffd628p-2, INEXACT)
+T(RN,      0x1.8661cbf8p-1016,  0x1.3c212046bfdffp-508,   0x1.ffed66p-2, INEXACT)
+T(RN,      0x1.bbb221b4p-1016,  0x1.510681b939931p-508,   0x1.ffe348p-2, INEXACT)
+T(RN,      0x1.c4942f3cp-1016,  0x1.5461e59227ab5p-508,  -0x1.ffc3bcp-2, INEXACT)
+T(RN,      0x1.dbb258c8p-1016,  0x1.5cf7b0f78d3afp-508,   0x1.ffdd36p-2, INEXACT)
+T(RN,      0x1.57103ea4p-1015,  0x1.a31ab946d340bp-508,   0x1.ffd4acp-2, INEXACT)
+T(RN,      0x1.9b294f88p-1015,  0x1.cad197e28e85bp-508,   0x1.ffdb24p-2, INEXACT)
+
diff --git a/src/math/special/sqrtf.h b/src/math/special/sqrtf.h
new file mode 100644 (file)
index 0000000..a1e6117
--- /dev/null
@@ -0,0 +1,22 @@
+T(RN,             nan,             nan,          0x0p+0, 0)
+T(RN,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,             nan,          0x0p+0, INVALID)
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,             nan,          0x0p+0, INVALID)
+T(RN,          0x1p+2,          0x1p+1,          0x0p+0, 0)
+T(RN,        0x1p-148,         0x1p-74,          0x0p+0, 0)
+T(RN,      0x1.8p-148,  0x1.3988e2p-74,   0x1.7edbdap-2, INEXACT)
+T(RN,        0x1p-149,  0x1.6a09e6p-75,  -0x1.9fcef4p-3, INEXACT)
+T(RN,       -0x1p-149,             nan,          0x0p+0, INVALID)
+T(RN, 0x1.fffffep+127,  0x1.fffffep+63,         -0x1p-1, INEXACT)
+T(RN,-0x1.fffffep+127,             nan,          0x0p+0, INVALID)
+T(RN,   0x1.fffffcp-1,   0x1.fffffep-1,  0x1.000002p-25, INEXACT)
+T(RN,   0x1.fffffep-1,   0x1.fffffep-1,         -0x1p-1, INEXACT)
+T(RN,   0x1.fffffcp+0,   0x1.6a09e4p+0,  -0x1.fbd3acp-2, INEXACT)
+T(RN,   0x1.fffffep+0,   0x1.6a09e6p+0,   0x1.3444dap-3, INEXACT)
+T(RN,   0x1.000002p+0,          0x1p+0,         -0x1p-1, INEXACT)
+T(RN,   0x1.000004p+0,   0x1.000002p+0,  0x1.fffffcp-25, INEXACT)
+T(RN,   0x1.000002p+1,   0x1.6a09e8p+0,   0x1.7012ecp-4, INEXACT)
+T(RN,   0x1.000004p+1,   0x1.6a09eap+0,   0x1.87f0f2p-2, INEXACT)
diff --git a/src/math/special/sqrtl.h b/src/math/special/sqrtl.h
new file mode 100644 (file)
index 0000000..f5fdf3a
--- /dev/null
@@ -0,0 +1,23 @@
+T(RN,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                            nan,          0x0p+0, INVALID)
+T(RN,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                        0x1p+2L,                        0x1p+1L,          0x0p+0, 0)
+T(RN,                    0x1p-16444L,                     0x1p-8222L,          0x0p+0, 0)
+T(RN,                  0x1.8p-16444L,     0x1.3988e1409212e7dp-8222L,  -0x1.90c8a2p-4, INEXACT)
+T(RN,                    0x1p-16445L,    0x1.6a09e667f3bcc908p-8223L,  -0x1.65f626p-2, INEXACT)
+T(RN,                   -0x1p-16445L,                            nan,          0x0p+0, INVALID)
+T(RN,   0x1.fffffffffffffffep+16382L,    0x1.6a09e667f3bcc908p+8191L,   0x1.04efe6p-8, INEXACT)
+T(RN,   0x1.fffffffffffffffep+16383L,    0x1.fffffffffffffffep+8191L,         -0x1p-1, INEXACT)
+T(RN,  -0x1.fffffffffffffffep+16383L,                            nan,          0x0p+0, INVALID)
+T(RN,       0x1.fffffffffffffffcp-1L,       0x1.fffffffffffffffep-1L,         0x1p-64, INEXACT)
+T(RN,       0x1.fffffffffffffffep-1L,       0x1.fffffffffffffffep-1L,         -0x1p-1, INEXACT)
+T(RN,       0x1.fffffffffffffffcp+0L,       0x1.6a09e667f3bcc908p+0L,   0x1.6e1da6p-2, INEXACT)
+T(RN,       0x1.fffffffffffffffep+0L,       0x1.6a09e667f3bcc908p+0L,   0x1.04efe6p-8, INEXACT)
+T(RN,       0x1.0000000000000002p+0L,                        0x1p+0L,         -0x1p-1, INEXACT)
+T(RN,       0x1.0000000000000004p+0L,       0x1.0000000000000002p+0L,         0x1p-64, INEXACT)
+T(RN,       0x1.0000000000000002p+1L,       0x1.6a09e667f3bcc90ap+0L,  -0x1.d04f9cp-5, INEXACT)
+T(RN,       0x1.0000000000000004p+1L,       0x1.6a09e667f3bcc90cp+0L,    0x1.e3c48p-3, INEXACT)
diff --git a/src/math/special/tan.h b/src/math/special/tan.h
new file mode 100644 (file)
index 0000000..ccafd59
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/tanf.h b/src/math/special/tanf.h
new file mode 100644 (file)
index 0000000..c8414f6
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,             inf,             nan,          0x0p+0, INVALID)
+T(RN,            -inf,             nan,          0x0p+0, INVALID)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/tanh.h b/src/math/special/tanh.h
new file mode 100644 (file)
index 0000000..112b4c3
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                     inf,                  0x1p+0,          0x0p+0, 0)
+T(RN,                    -inf,                 -0x1p+0,          0x0p+0, 0)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/tanhf.h b/src/math/special/tanhf.h
new file mode 100644 (file)
index 0000000..4b15725
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,             inf,          0x1p+0,          0x0p+0, 0)
+T(RN,            -inf,         -0x1p+0,          0x0p+0, 0)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/tanhl.h b/src/math/special/tanhl.h
new file mode 100644 (file)
index 0000000..4c218d9
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                           -inf,                       -0x1p+0L,          0x0p+0, 0)
+T(RN,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/tanl.h b/src/math/special/tanl.h
new file mode 100644 (file)
index 0000000..221a0ba
--- /dev/null
@@ -0,0 +1,5 @@
+T(RN,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                            inf,                            nan,          0x0p+0, INVALID)
+T(RN,                           -inf,                            nan,          0x0p+0, INVALID)
+T(RN,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/tgamma.h b/src/math/special/tgamma.h
new file mode 100644 (file)
index 0000000..58e5425
--- /dev/null
@@ -0,0 +1,9 @@
+T(RN,                  0x0p+0,                     inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x0p+0,                    -inf,          0x0p+0, DIVBYZERO)
+T(RN,                  0x1p+0,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x1p+1,                  0x1p+0,          0x0p+0, 0)
+T(RN,                 -0x1p+1,                     nan,          0x0p+0, INVALID)
+T(RN,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/tgammaf.h b/src/math/special/tgammaf.h
new file mode 100644 (file)
index 0000000..9c5e3bc
--- /dev/null
@@ -0,0 +1,9 @@
+T(RN,          0x0p+0,             inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x0p+0,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,          0x1p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,             nan,          0x0p+0, INVALID)
+T(RN,          0x1p+1,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+1,             nan,          0x0p+0, INVALID)
+T(RN,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,             nan,          0x0p+0, INVALID)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/tgammal.h b/src/math/special/tgammal.h
new file mode 100644 (file)
index 0000000..2c17ded
--- /dev/null
@@ -0,0 +1,9 @@
+T(RN,                        0x0p+0L,                            inf,          0x0p+0, DIVBYZERO)
+T(RN,                       -0x0p+0L,                           -inf,          0x0p+0, DIVBYZERO)
+T(RN,                        0x1p+0L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+0L,                            nan,          0x0p+0, INVALID)
+T(RN,                        0x1p+1L,                        0x1p+0L,          0x0p+0, 0)
+T(RN,                       -0x1p+1L,                            nan,          0x0p+0, INVALID)
+T(RN,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                            nan,          0x0p+0, INVALID)
+T(RN,                            nan,                            nan,          0x0p+0, 0)
diff --git a/src/math/special/trunc.h b/src/math/special/trunc.h
new file mode 100644 (file)
index 0000000..e3ce2c4
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x1p-1,                  0x0p+0,          0x0p+0, INEXACT)
+T(RN,                 -0x1p-1,                 -0x0p+0,          0x0p+0, INEXACT)
+T(RN,             0x1.0001p+0,                  0x1p+0,          0x0p+0, INEXACT)
+T(RN,            -0x1.0001p+0,                 -0x1p+0,          0x0p+0, INEXACT)
+T(RN,             0x1.ffffp-1,                  0x0p+0,          0x0p+0, INEXACT)
+T(RN,            -0x1.ffffp-1,                 -0x0p+0,          0x0p+0, INEXACT)
+T(RN,                0x1p-100,                  0x0p+0,          0x0p+0, INEXACT)
+T(RN,               -0x1p-100,                 -0x0p+0,          0x0p+0, INEXACT)
diff --git a/src/math/special/truncf.h b/src/math/special/truncf.h
new file mode 100644 (file)
index 0000000..010836b
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,             nan,             nan,          0x0p+0, 0)
+T(RN,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,            -inf,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p-1,          0x0p+0,          0x0p+0, INEXACT)
+T(RN,         -0x1p-1,         -0x0p+0,          0x0p+0, INEXACT)
+T(RN,     0x1.0001p+0,          0x1p+0,          0x0p+0, INEXACT)
+T(RN,    -0x1.0001p+0,         -0x1p+0,          0x0p+0, INEXACT)
+T(RN,     0x1.ffffp-1,          0x0p+0,          0x0p+0, INEXACT)
+T(RN,    -0x1.ffffp-1,         -0x0p+0,          0x0p+0, INEXACT)
+T(RN,        0x1p-100,          0x0p+0,          0x0p+0, INEXACT)
+T(RN,       -0x1p-100,         -0x0p+0,          0x0p+0, INEXACT)
diff --git a/src/math/special/truncl.h b/src/math/special/truncl.h
new file mode 100644 (file)
index 0000000..74ebaa7
--- /dev/null
@@ -0,0 +1,13 @@
+T(RN,                            nan,                            nan,          0x0p+0, 0)
+T(RN,                            inf,                            inf,          0x0p+0, 0)
+T(RN,                           -inf,                           -inf,          0x0p+0, 0)
+T(RN,                        0x0p+0L,                        0x0p+0L,          0x0p+0, 0)
+T(RN,                       -0x0p+0L,                       -0x0p+0L,          0x0p+0, 0)
+T(RN,                        0x1p-1L,                        0x0p+0L,          0x0p+0, INEXACT)
+T(RN,                       -0x1p-1L,                       -0x0p+0L,          0x0p+0, INEXACT)
+T(RN,                   0x1.0001p+0L,                        0x1p+0L,          0x0p+0, INEXACT)
+T(RN,                  -0x1.0001p+0L,                       -0x1p+0L,          0x0p+0, INEXACT)
+T(RN,                   0x1.ffffp-1L,                        0x0p+0L,          0x0p+0, INEXACT)
+T(RN,                  -0x1.ffffp-1L,                       -0x0p+0L,          0x0p+0, INEXACT)
+T(RN,                      0x1p-100L,                        0x0p+0L,          0x0p+0, INEXACT)
+T(RN,                     -0x1p-100L,                       -0x0p+0L,          0x0p+0, INEXACT)
diff --git a/src/math/special/y0.h b/src/math/special/y0.h
new file mode 100644 (file)
index 0000000..f9267e2
--- /dev/null
@@ -0,0 +1,6 @@
+T(RN,                  0x0p+0,                    -inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x0p+0,                    -inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x1p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                     inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                    -inf,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/y0f.h b/src/math/special/y0f.h
new file mode 100644 (file)
index 0000000..820bee9
--- /dev/null
@@ -0,0 +1,6 @@
+T(RN,          0x0p+0,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x0p+0,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x1p+0,             nan,          0x0p+0, INVALID)
+T(RN,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,             nan,          0x0p+0, INVALID)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/y1.h b/src/math/special/y1.h
new file mode 100644 (file)
index 0000000..f9267e2
--- /dev/null
@@ -0,0 +1,6 @@
+T(RN,                  0x0p+0,                    -inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x0p+0,                    -inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x1p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                     inf,                  0x0p+0,          0x0p+0, 0)
+T(RN,                    -inf,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/y1f.h b/src/math/special/y1f.h
new file mode 100644 (file)
index 0000000..820bee9
--- /dev/null
@@ -0,0 +1,6 @@
+T(RN,          0x0p+0,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x0p+0,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x1p+0,             nan,          0x0p+0, INVALID)
+T(RN,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,             nan,          0x0p+0, INVALID)
+T(RN,             nan,             nan,          0x0p+0, 0)
diff --git a/src/math/special/yn.h b/src/math/special/yn.h
new file mode 100644 (file)
index 0000000..61ac00b
--- /dev/null
@@ -0,0 +1,24 @@
+T(RN,                  0x0p+0,           0,                    -inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x0p+0,           0,                    -inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x1p+0,           0,                     nan,          0x0p+0, INVALID)
+T(RN,                     inf,           0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                    -inf,           0,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,           0,                     nan,          0x0p+0, 0)
+T(RN,                  0x0p+0,           1,                    -inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x0p+0,           1,                    -inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x1p+0,           1,                     nan,          0x0p+0, INVALID)
+T(RN,                     inf,           1,                  0x0p+0,          0x0p+0, 0)
+T(RN,                    -inf,           1,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,           1,                     nan,          0x0p+0, 0)
+T(RN,                  0x0p+0,          -1,                     inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x0p+0,          -1,                     inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x1p+0,          -1,                     nan,          0x0p+0, INVALID)
+T(RN,                     inf,          -1,                  0x0p+0,          0x0p+0, 0)
+T(RN,                    -inf,          -1,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,          -1,                     nan,          0x0p+0, 0)
+T(RN,                  0x0p+0,           2,                    -inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x0p+0,           2,                    -inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x1p+0,           2,                     nan,          0x0p+0, INVALID)
+T(RN,                     inf,           2,                  0x0p+0,          0x0p+0, 0)
+T(RN,                    -inf,           2,                     nan,          0x0p+0, INVALID)
+T(RN,                     nan,           2,                     nan,          0x0p+0, 0)
diff --git a/src/math/special/ynf.h b/src/math/special/ynf.h
new file mode 100644 (file)
index 0000000..0e3894a
--- /dev/null
@@ -0,0 +1,24 @@
+T(RN,          0x0p+0,           0,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x0p+0,           0,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x1p+0,           0,             nan,          0x0p+0, INVALID)
+T(RN,             inf,           0,          0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,           0,             nan,          0x0p+0, INVALID)
+T(RN,             nan,           0,             nan,          0x0p+0, 0)
+T(RN,          0x0p+0,           1,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x0p+0,           1,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x1p+0,           1,             nan,          0x0p+0, INVALID)
+T(RN,             inf,           1,          0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,           1,             nan,          0x0p+0, INVALID)
+T(RN,             nan,           1,             nan,          0x0p+0, 0)
+T(RN,          0x0p+0,          -1,             inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x0p+0,          -1,             inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x1p+0,          -1,             nan,          0x0p+0, INVALID)
+T(RN,             inf,          -1,          0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,          -1,             nan,          0x0p+0, INVALID)
+T(RN,             nan,          -1,             nan,          0x0p+0, 0)
+T(RN,          0x0p+0,           2,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x0p+0,           2,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x1p+0,           2,             nan,          0x0p+0, INVALID)
+T(RN,             inf,           2,          0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,           2,             nan,          0x0p+0, INVALID)
+T(RN,             nan,           2,             nan,          0x0p+0, 0)
index dae1e20..b6b7de6 100644 (file)
@@ -5,6 +5,7 @@
 static struct d_d t[] = {
 #include "ucb/sqrt.h"
 #include "sanity/sqrt.h"
+#include "special/sqrt.h"
 
 };
 
index fb910d0..1809ef8 100644 (file)
@@ -5,6 +5,7 @@
 static struct f_f t[] = {
 #include "ucb/sqrtf.h"
 #include "sanity/sqrtf.h"
+#include "special/sqrtf.h"
 
 };
 
index ab22eac..90f77f4 100644 (file)
@@ -6,9 +6,11 @@ static struct l_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "ucb/sqrt.h"
 #include "sanity/sqrt.h"
+#include "special/sqrt.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/sqrtl.h"
+#include "special/sqrtl.h"
 
 #endif
 };
index 86c69b4..01452f1 100644 (file)
@@ -6,6 +6,7 @@ static struct d_d t[] = {
 #include "crlibm/tan.h"
 #include "ucb/tan.h"
 #include "sanity/tan.h"
+#include "special/tan.h"
 
 };
 
index 5e0759a..58696e7 100644 (file)
@@ -5,6 +5,7 @@
 static struct f_f t[] = {
 #include "ucb/tanf.h"
 #include "sanity/tanf.h"
+#include "special/tanf.h"
 
 };
 
index 59376e1..1f3541f 100644 (file)
@@ -5,6 +5,7 @@
 static struct d_d t[] = {
 #include "ucb/tanh.h"
 #include "sanity/tanh.h"
+#include "special/tanh.h"
 
 };
 
index effeb49..6c46e6a 100644 (file)
@@ -5,6 +5,7 @@
 static struct f_f t[] = {
 #include "ucb/tanhf.h"
 #include "sanity/tanhf.h"
+#include "special/tanhf.h"
 
 };
 
index af9629b..7d34398 100644 (file)
@@ -6,9 +6,11 @@ static struct l_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "ucb/tanh.h"
 #include "sanity/tanh.h"
+#include "special/tanh.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/tanhl.h"
+#include "special/tanhl.h"
 
 #endif
 };
index c4980ab..f8b3f60 100644 (file)
@@ -7,9 +7,11 @@ static struct l_l t[] = {
 #include "crlibm/tan.h"
 #include "ucb/tan.h"
 #include "sanity/tan.h"
+#include "special/tan.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/tanl.h"
+#include "special/tanl.h"
 
 #endif
 };
index f286a62..cabe9e8 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_d t[] = {
 #include "sanity/tgamma.h"
+#include "special/tgamma.h"
 
 };
 
index 4d841a4..350e63d 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_f t[] = {
 #include "sanity/tgammaf.h"
+#include "special/tgammaf.h"
 
 };
 
index 6bfffeb..4955812 100644 (file)
@@ -5,9 +5,11 @@
 static struct l_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/tgamma.h"
+#include "special/tgamma.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/tgammal.h"
+#include "special/tgammal.h"
 
 #endif
 };
index 071695b..0236a3d 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_d t[] = {
 #include "sanity/trunc.h"
+#include "special/trunc.h"
 
 };
 
index 739a000..499fb4f 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_f t[] = {
 #include "sanity/truncf.h"
+#include "special/truncf.h"
 
 };
 
index a3b3a7a..3cbdc5e 100644 (file)
@@ -5,9 +5,11 @@
 static struct l_l t[] = {
 #if LDBL_MANT_DIG == 53
 #include "sanity/trunc.h"
+#include "special/trunc.h"
 
 #elif LDBL_MANT_DIG == 64
 #include "sanity/truncl.h"
+#include "special/truncl.h"
 
 #endif
 };
index 2998660..d098064 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_d t[] = {
 #include "sanity/y0.h"
+#include "special/y0.h"
 
 };
 
index 3b74777..63880fb 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_f t[] = {
 #include "sanity/y0f.h"
+#include "special/y0f.h"
 
 };
 
index a5e3b6a..95d971c 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct d_d t[] = {
 #include "sanity/y1.h"
+#include "special/y1.h"
 
 };
 
index d396b61..6871d67 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct f_f t[] = {
 #include "sanity/y1f.h"
+#include "special/y1f.h"
 
 };
 
index eb7e5ce..9763c40 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct di_d t[] = {
 #include "sanity/yn.h"
+#include "special/yn.h"
 };
 
 int main(void)
index fbd0359..e52ad6d 100644 (file)
@@ -4,6 +4,7 @@
 
 static struct fi_f t[] = {
 #include "sanity/ynf.h"
+#include "special/ynf.h"
 };
 
 int main(void)