From f3f0ff4782fc90bd0f3e48fd541ee431f76aaed1 Mon Sep 17 00:00:00 2001 From: Szabolcs Nagy Date: Mon, 12 Nov 2012 19:46:40 +0100 Subject: [PATCH] math: add special case test vectors --- src/math/acos.c | 1 + src/math/acosf.c | 1 + src/math/acosh.c | 1 + src/math/acoshf.c | 1 + src/math/acoshl.c | 2 + src/math/acosl.c | 2 + src/math/asin.c | 1 + src/math/asinf.c | 1 + src/math/asinh.c | 1 + src/math/asinhf.c | 1 + src/math/asinhl.c | 2 + src/math/asinl.c | 2 + src/math/atan.c | 1 + src/math/atan2.c | 1 + src/math/atan2f.c | 1 + src/math/atan2l.c | 2 + src/math/atanf.c | 1 + src/math/atanh.c | 1 + src/math/atanhf.c | 1 + src/math/atanhl.c | 2 + src/math/atanl.c | 2 + src/math/cbrt.c | 1 + src/math/cbrtf.c | 1 + src/math/cbrtl.c | 2 + src/math/ceil.c | 1 + src/math/ceilf.c | 1 + src/math/ceill.c | 2 + src/math/copysign.c | 1 + src/math/copysignf.c | 1 + src/math/copysignl.c | 2 + src/math/cos.c | 1 + src/math/cosf.c | 1 + src/math/cosh.c | 1 + src/math/coshf.c | 1 + src/math/coshl.c | 2 + src/math/cosl.c | 2 + src/math/erf.c | 1 + src/math/erfc.c | 1 + src/math/erfcf.c | 1 + src/math/erfcl.c | 2 + src/math/erff.c | 1 + src/math/erfl.c | 2 + src/math/exp.c | 1 + src/math/exp10.c | 1 + src/math/exp10f.c | 1 + src/math/exp10l.c | 2 + src/math/exp2.c | 1 + src/math/exp2f.c | 1 + src/math/exp2l.c | 2 + src/math/expf.c | 1 + src/math/expl.c | 2 + src/math/expm1.c | 1 + src/math/expm1f.c | 1 + src/math/expm1l.c | 2 + src/math/fabs.c | 1 + src/math/fabsf.c | 1 + src/math/fabsl.c | 2 + src/math/fdim.c | 1 + src/math/fdimf.c | 1 + src/math/fdiml.c | 2 + src/math/floor.c | 1 + src/math/floorf.c | 1 + src/math/floorl.c | 2 + src/math/fma.c | 1 + src/math/fmaf.c | 1 + src/math/fmal.c | 2 + src/math/fmax.c | 1 + src/math/fmaxf.c | 1 + src/math/fmaxl.c | 2 + src/math/fmin.c | 1 + src/math/fminf.c | 1 + src/math/fminl.c | 2 + src/math/fmod.c | 1 + src/math/fmodf.c | 1 + src/math/fmodl.c | 2 + src/math/frexp.c | 1 + src/math/frexpf.c | 1 + src/math/frexpl.c | 2 + src/math/hypot.c | 1 + src/math/hypotf.c | 1 + src/math/hypotl.c | 2 + src/math/ilogb.c | 1 + src/math/ilogbf.c | 1 + src/math/ilogbl.c | 2 + src/math/j0.c | 1 + src/math/j0f.c | 1 + src/math/j1.c | 1 + src/math/j1f.c | 1 + src/math/jn.c | 1 + src/math/jnf.c | 1 + src/math/ldexp.c | 1 + src/math/ldexpf.c | 1 + src/math/ldexpl.c | 2 + src/math/lgamma.c | 1 + src/math/lgamma_r.c | 1 + src/math/lgammaf.c | 1 + src/math/lgammaf_r.c | 1 + src/math/lgammal.c | 2 + src/math/lgammal_r.c | 4 +- src/math/llrint.c | 1 + src/math/llrintf.c | 1 + src/math/llrintl.c | 2 + src/math/llround.c | 1 + src/math/llroundf.c | 1 + src/math/llroundl.c | 2 + src/math/log.c | 1 + src/math/log10.c | 1 + src/math/log10f.c | 1 + src/math/log10l.c | 2 + src/math/log1p.c | 1 + src/math/log1pf.c | 1 + src/math/log1pl.c | 2 + src/math/log2.c | 1 + src/math/log2f.c | 1 + src/math/log2l.c | 2 + src/math/logb.c | 1 + src/math/logbf.c | 1 + src/math/logbl.c | 2 + src/math/logf.c | 1 + src/math/logl.c | 2 + src/math/lrint.c | 1 + src/math/lrintf.c | 1 + src/math/lrintl.c | 2 + src/math/lround.c | 1 + src/math/lroundf.c | 1 + src/math/lroundl.c | 2 + src/math/modf.c | 1 + src/math/modff.c | 1 + src/math/modfl.c | 2 + src/math/nearbyint.c | 1 + src/math/nearbyintf.c | 1 + src/math/nearbyintl.c | 2 + src/math/nextafter.c | 1 + src/math/nextafterf.c | 1 + src/math/nextafterl.c | 2 + src/math/nexttoward.c | 3 ++ src/math/nexttowardf.c | 3 ++ src/math/nexttowardl.c | 2 + src/math/pow.c | 1 + src/math/pow10.c | 1 + src/math/pow10f.c | 1 + src/math/pow10l.c | 2 + src/math/powf.c | 1 + src/math/powl.c | 2 + src/math/remainder.c | 1 + src/math/remainderf.c | 1 + src/math/remainderl.c | 2 + src/math/remquo.c | 1 + src/math/remquof.c | 1 + src/math/remquol.c | 1 + src/math/rint.c | 1 + src/math/rintf.c | 1 + src/math/rintl.c | 2 + src/math/round.c | 1 + src/math/roundf.c | 1 + src/math/roundl.c | 2 + src/math/scalb.c | 1 + src/math/scalbf.c | 1 + src/math/scalbln.c | 1 + src/math/scalblnf.c | 1 + src/math/scalblnl.c | 2 + src/math/scalbn.c | 1 + src/math/scalbnf.c | 1 + src/math/scalbnl.c | 2 + src/math/sin.c | 1 + src/math/sincos.c | 1 + src/math/sincosf.c | 1 + src/math/sincosl.c | 2 + src/math/sinf.c | 1 + src/math/sinh.c | 1 + src/math/sinhf.c | 1 + src/math/sinhl.c | 2 + src/math/sinl.c | 2 + src/math/special/acos.h | 8 +++ src/math/special/acosf.h | 8 +++ src/math/special/acosh.h | 6 +++ src/math/special/acoshf.h | 6 +++ src/math/special/acoshl.h | 6 +++ src/math/special/acosl.h | 8 +++ src/math/special/asin.h | 9 ++++ src/math/special/asinf.h | 9 ++++ src/math/special/asinh.h | 5 ++ src/math/special/asinhf.h | 5 ++ src/math/special/asinhl.h | 5 ++ src/math/special/asinl.h | 9 ++++ src/math/special/atan.h | 7 +++ src/math/special/atan2.h | 26 ++++++++++ src/math/special/atan2f.h | 26 ++++++++++ src/math/special/atan2l.h | 26 ++++++++++ src/math/special/atanf.h | 7 +++ src/math/special/atanh.h | 9 ++++ src/math/special/atanhf.h | 9 ++++ src/math/special/atanhl.h | 9 ++++ src/math/special/atanl.h | 7 +++ src/math/special/cbrt.h | 10 ++++ src/math/special/cbrtf.h | 10 ++++ src/math/special/cbrtl.h | 10 ++++ src/math/special/ceil.h | 13 +++++ src/math/special/ceilf.h | 13 +++++ src/math/special/ceill.h | 13 +++++ src/math/special/copysign.h | 13 +++++ src/math/special/copysignf.h | 13 +++++ src/math/special/copysignl.h | 13 +++++ src/math/special/cos.h | 78 ++++++++++++++++++++++++++++ src/math/special/cosf.h | 5 ++ src/math/special/cosh.h | 5 ++ src/math/special/coshf.h | 5 ++ src/math/special/coshl.h | 5 ++ src/math/special/cosl.h | 5 ++ src/math/special/erf.h | 5 ++ src/math/special/erfc.h | 5 ++ src/math/special/erfcf.h | 5 ++ src/math/special/erfcl.h | 5 ++ src/math/special/erff.h | 5 ++ src/math/special/erfl.h | 5 ++ src/math/special/exp.h | 7 +++ src/math/special/exp10.h | 7 +++ src/math/special/exp10f.h | 7 +++ src/math/special/exp10l.h | 7 +++ src/math/special/exp2.h | 7 +++ src/math/special/exp2f.h | 7 +++ src/math/special/exp2l.h | 7 +++ src/math/special/expf.h | 7 +++ src/math/special/expl.h | 7 +++ src/math/special/expm1.h | 7 +++ src/math/special/expm1f.h | 7 +++ src/math/special/expm1l.h | 7 +++ src/math/special/fabs.h | 7 +++ src/math/special/fabsf.h | 7 +++ src/math/special/fabsl.h | 7 +++ src/math/special/fdim.h | 58 +++++++++++++++++++++ src/math/special/fdimf.h | 58 +++++++++++++++++++++ src/math/special/fdiml.h | 58 +++++++++++++++++++++ src/math/special/floor.h | 13 +++++ src/math/special/floorf.h | 13 +++++ src/math/special/floorl.h | 13 +++++ src/math/special/fma.h | 37 ++++++++++++++ src/math/special/fmaf.h | 37 ++++++++++++++ src/math/special/fmal.h | 37 ++++++++++++++ src/math/special/fmax.h | 58 +++++++++++++++++++++ src/math/special/fmaxf.h | 58 +++++++++++++++++++++ src/math/special/fmaxl.h | 58 +++++++++++++++++++++ src/math/special/fmin.h | 58 +++++++++++++++++++++ src/math/special/fminf.h | 58 +++++++++++++++++++++ src/math/special/fminl.h | 58 +++++++++++++++++++++ src/math/special/fmod.h | 66 ++++++++++++++++++++++++ src/math/special/fmodf.h | 66 ++++++++++++++++++++++++ src/math/special/fmodl.h | 66 ++++++++++++++++++++++++ src/math/special/frexp.h | 12 +++++ src/math/special/frexpf.h | 12 +++++ src/math/special/frexpl.h | 12 +++++ src/math/special/hypot.h | 19 +++++++ src/math/special/hypotf.h | 19 +++++++ src/math/special/hypotl.h | 19 +++++++ src/math/special/ilogb.h | 9 ++++ src/math/special/ilogbf.h | 9 ++++ src/math/special/ilogbl.h | 9 ++++ src/math/special/j0.h | 5 ++ src/math/special/j0f.h | 5 ++ src/math/special/j1.h | 5 ++ src/math/special/j1f.h | 5 ++ src/math/special/jn.h | 20 ++++++++ src/math/special/jnf.h | 20 ++++++++ src/math/special/ldexp.h | 14 ++++++ src/math/special/ldexpf.h | 14 ++++++ src/math/special/ldexpl.h | 14 ++++++ src/math/special/lgamma.h | 9 ++++ src/math/special/lgamma_r.h | 9 ++++ src/math/special/lgammaf.h | 9 ++++ src/math/special/lgammaf_r.h | 9 ++++ src/math/special/lgammal.h | 9 ++++ src/math/special/lgammal_r.h | 9 ++++ src/math/special/llrint.h | 18 +++++++ src/math/special/llrintf.h | 18 +++++++ src/math/special/llrintl.h | 18 +++++++ src/math/special/llround.h | 18 +++++++ src/math/special/llroundf.h | 18 +++++++ src/math/special/llroundl.h | 18 +++++++ src/math/special/log.h | 8 +++ src/math/special/log10.h | 8 +++ src/math/special/log10f.h | 8 +++ src/math/special/log10l.h | 8 +++ src/math/special/log1p.h | 8 +++ src/math/special/log1pf.h | 8 +++ src/math/special/log1pl.h | 8 +++ src/math/special/log2.h | 8 +++ src/math/special/log2f.h | 8 +++ src/math/special/log2l.h | 8 +++ src/math/special/logb.h | 8 +++ src/math/special/logbf.h | 8 +++ src/math/special/logbl.h | 8 +++ src/math/special/logf.h | 8 +++ src/math/special/logl.h | 8 +++ src/math/special/lrint.h | 18 +++++++ src/math/special/lrintf.h | 18 +++++++ src/math/special/lrintl.h | 18 +++++++ src/math/special/lround.h | 18 +++++++ src/math/special/lroundf.h | 18 +++++++ src/math/special/lroundl.h | 18 +++++++ src/math/special/modf.h | 13 +++++ src/math/special/modff.h | 13 +++++ src/math/special/modfl.h | 13 +++++ src/math/special/nearbyint.h | 13 +++++ src/math/special/nearbyintf.h | 13 +++++ src/math/special/nearbyintl.h | 13 +++++ src/math/special/nextafter.h | 33 ++++++++++++ src/math/special/nextafterf.h | 33 ++++++++++++ src/math/special/nextafterl.h | 33 ++++++++++++ src/math/special/nexttoward.h | 35 +++++++++++++ src/math/special/nexttowardf.h | 35 +++++++++++++ src/math/special/nexttowardl.h | 33 ++++++++++++ src/math/special/pow.h | 92 ++++++++++++++++++++++++++++++++++ src/math/special/powf.h | 92 ++++++++++++++++++++++++++++++++++ src/math/special/powl.h | 92 ++++++++++++++++++++++++++++++++++ src/math/special/remainder.h | 66 ++++++++++++++++++++++++ src/math/special/remainderf.h | 66 ++++++++++++++++++++++++ src/math/special/remainderl.h | 66 ++++++++++++++++++++++++ src/math/special/remquo.h | 66 ++++++++++++++++++++++++ src/math/special/remquof.h | 66 ++++++++++++++++++++++++ src/math/special/remquol.h | 66 ++++++++++++++++++++++++ src/math/special/rint.h | 13 +++++ src/math/special/rintf.h | 13 +++++ src/math/special/rintl.h | 13 +++++ src/math/special/round.h | 13 +++++ src/math/special/roundf.h | 13 +++++ src/math/special/roundl.h | 13 +++++ src/math/special/scalb.h | 34 +++++++++++++ src/math/special/scalbf.h | 34 +++++++++++++ src/math/special/scalbln.h | 14 ++++++ src/math/special/scalblnf.h | 14 ++++++ src/math/special/scalblnl.h | 14 ++++++ src/math/special/scalbn.h | 14 ++++++ src/math/special/scalbnf.h | 14 ++++++ src/math/special/scalbnl.h | 14 ++++++ src/math/special/sin.h | 5 ++ src/math/special/sincos.h | 5 ++ src/math/special/sincosf.h | 5 ++ src/math/special/sincosl.h | 5 ++ src/math/special/sinf.h | 5 ++ src/math/special/sinh.h | 5 ++ src/math/special/sinhf.h | 5 ++ src/math/special/sinhl.h | 5 ++ src/math/special/sinl.h | 5 ++ src/math/special/sqrt.h | 75 +++++++++++++++++++++++++++ src/math/special/sqrtf.h | 22 ++++++++ src/math/special/sqrtl.h | 23 +++++++++ src/math/special/tan.h | 5 ++ src/math/special/tanf.h | 5 ++ src/math/special/tanh.h | 5 ++ src/math/special/tanhf.h | 5 ++ src/math/special/tanhl.h | 5 ++ src/math/special/tanl.h | 5 ++ src/math/special/tgamma.h | 9 ++++ src/math/special/tgammaf.h | 9 ++++ src/math/special/tgammal.h | 9 ++++ src/math/special/trunc.h | 13 +++++ src/math/special/truncf.h | 13 +++++ src/math/special/truncl.h | 13 +++++ src/math/special/y0.h | 6 +++ src/math/special/y0f.h | 6 +++ src/math/special/y1.h | 6 +++ src/math/special/y1f.h | 6 +++ src/math/special/yn.h | 24 +++++++++ src/math/special/ynf.h | 24 +++++++++ src/math/sqrt.c | 1 + src/math/sqrtf.c | 1 + src/math/sqrtl.c | 2 + src/math/tan.c | 1 + src/math/tanf.c | 1 + src/math/tanh.c | 1 + src/math/tanhf.c | 1 + src/math/tanhl.c | 2 + src/math/tanl.c | 2 + src/math/tgamma.c | 1 + src/math/tgammaf.c | 1 + src/math/tgammal.c | 2 + src/math/trunc.c | 1 + src/math/truncf.c | 1 + src/math/truncl.c | 2 + src/math/y0.c | 1 + src/math/y0f.c | 1 + src/math/y1.c | 1 + src/math/y1f.c | 1 + src/math/yn.c | 1 + src/math/ynf.c | 1 + 385 files changed, 3811 insertions(+), 1 deletion(-) create mode 100644 src/math/special/acos.h create mode 100644 src/math/special/acosf.h create mode 100644 src/math/special/acosh.h create mode 100644 src/math/special/acoshf.h create mode 100644 src/math/special/acoshl.h create mode 100644 src/math/special/acosl.h create mode 100644 src/math/special/asin.h create mode 100644 src/math/special/asinf.h create mode 100644 src/math/special/asinh.h create mode 100644 src/math/special/asinhf.h create mode 100644 src/math/special/asinhl.h create mode 100644 src/math/special/asinl.h create mode 100644 src/math/special/atan.h create mode 100644 src/math/special/atan2.h create mode 100644 src/math/special/atan2f.h create mode 100644 src/math/special/atan2l.h create mode 100644 src/math/special/atanf.h create mode 100644 src/math/special/atanh.h create mode 100644 src/math/special/atanhf.h create mode 100644 src/math/special/atanhl.h create mode 100644 src/math/special/atanl.h create mode 100644 src/math/special/cbrt.h create mode 100644 src/math/special/cbrtf.h create mode 100644 src/math/special/cbrtl.h create mode 100644 src/math/special/ceil.h create mode 100644 src/math/special/ceilf.h create mode 100644 src/math/special/ceill.h create mode 100644 src/math/special/copysign.h create mode 100644 src/math/special/copysignf.h create mode 100644 src/math/special/copysignl.h create mode 100644 src/math/special/cos.h create mode 100644 src/math/special/cosf.h create mode 100644 src/math/special/cosh.h create mode 100644 src/math/special/coshf.h create mode 100644 src/math/special/coshl.h create mode 100644 src/math/special/cosl.h create mode 100644 src/math/special/erf.h create mode 100644 src/math/special/erfc.h create mode 100644 src/math/special/erfcf.h create mode 100644 src/math/special/erfcl.h create mode 100644 src/math/special/erff.h create mode 100644 src/math/special/erfl.h create mode 100644 src/math/special/exp.h create mode 100644 src/math/special/exp10.h create mode 100644 src/math/special/exp10f.h create mode 100644 src/math/special/exp10l.h create mode 100644 src/math/special/exp2.h create mode 100644 src/math/special/exp2f.h create mode 100644 src/math/special/exp2l.h create mode 100644 src/math/special/expf.h create mode 100644 src/math/special/expl.h create mode 100644 src/math/special/expm1.h create mode 100644 src/math/special/expm1f.h create mode 100644 src/math/special/expm1l.h create mode 100644 src/math/special/fabs.h create mode 100644 src/math/special/fabsf.h create mode 100644 src/math/special/fabsl.h create mode 100644 src/math/special/fdim.h create mode 100644 src/math/special/fdimf.h create mode 100644 src/math/special/fdiml.h create mode 100644 src/math/special/floor.h create mode 100644 src/math/special/floorf.h create mode 100644 src/math/special/floorl.h create mode 100644 src/math/special/fma.h create mode 100644 src/math/special/fmaf.h create mode 100644 src/math/special/fmal.h create mode 100644 src/math/special/fmax.h create mode 100644 src/math/special/fmaxf.h create mode 100644 src/math/special/fmaxl.h create mode 100644 src/math/special/fmin.h create mode 100644 src/math/special/fminf.h create mode 100644 src/math/special/fminl.h create mode 100644 src/math/special/fmod.h create mode 100644 src/math/special/fmodf.h create mode 100644 src/math/special/fmodl.h create mode 100644 src/math/special/frexp.h create mode 100644 src/math/special/frexpf.h create mode 100644 src/math/special/frexpl.h create mode 100644 src/math/special/hypot.h create mode 100644 src/math/special/hypotf.h create mode 100644 src/math/special/hypotl.h create mode 100644 src/math/special/ilogb.h create mode 100644 src/math/special/ilogbf.h create mode 100644 src/math/special/ilogbl.h create mode 100644 src/math/special/j0.h create mode 100644 src/math/special/j0f.h create mode 100644 src/math/special/j1.h create mode 100644 src/math/special/j1f.h create mode 100644 src/math/special/jn.h create mode 100644 src/math/special/jnf.h create mode 100644 src/math/special/ldexp.h create mode 100644 src/math/special/ldexpf.h create mode 100644 src/math/special/ldexpl.h create mode 100644 src/math/special/lgamma.h create mode 100644 src/math/special/lgamma_r.h create mode 100644 src/math/special/lgammaf.h create mode 100644 src/math/special/lgammaf_r.h create mode 100644 src/math/special/lgammal.h create mode 100644 src/math/special/lgammal_r.h create mode 100644 src/math/special/llrint.h create mode 100644 src/math/special/llrintf.h create mode 100644 src/math/special/llrintl.h create mode 100644 src/math/special/llround.h create mode 100644 src/math/special/llroundf.h create mode 100644 src/math/special/llroundl.h create mode 100644 src/math/special/log.h create mode 100644 src/math/special/log10.h create mode 100644 src/math/special/log10f.h create mode 100644 src/math/special/log10l.h create mode 100644 src/math/special/log1p.h create mode 100644 src/math/special/log1pf.h create mode 100644 src/math/special/log1pl.h create mode 100644 src/math/special/log2.h create mode 100644 src/math/special/log2f.h create mode 100644 src/math/special/log2l.h create mode 100644 src/math/special/logb.h create mode 100644 src/math/special/logbf.h create mode 100644 src/math/special/logbl.h create mode 100644 src/math/special/logf.h create mode 100644 src/math/special/logl.h create mode 100644 src/math/special/lrint.h create mode 100644 src/math/special/lrintf.h create mode 100644 src/math/special/lrintl.h create mode 100644 src/math/special/lround.h create mode 100644 src/math/special/lroundf.h create mode 100644 src/math/special/lroundl.h create mode 100644 src/math/special/modf.h create mode 100644 src/math/special/modff.h create mode 100644 src/math/special/modfl.h create mode 100644 src/math/special/nearbyint.h create mode 100644 src/math/special/nearbyintf.h create mode 100644 src/math/special/nearbyintl.h create mode 100644 src/math/special/nextafter.h create mode 100644 src/math/special/nextafterf.h create mode 100644 src/math/special/nextafterl.h create mode 100644 src/math/special/nexttoward.h create mode 100644 src/math/special/nexttowardf.h create mode 100644 src/math/special/nexttowardl.h create mode 100644 src/math/special/pow.h create mode 100644 src/math/special/powf.h create mode 100644 src/math/special/powl.h create mode 100644 src/math/special/remainder.h create mode 100644 src/math/special/remainderf.h create mode 100644 src/math/special/remainderl.h create mode 100644 src/math/special/remquo.h create mode 100644 src/math/special/remquof.h create mode 100644 src/math/special/remquol.h create mode 100644 src/math/special/rint.h create mode 100644 src/math/special/rintf.h create mode 100644 src/math/special/rintl.h create mode 100644 src/math/special/round.h create mode 100644 src/math/special/roundf.h create mode 100644 src/math/special/roundl.h create mode 100644 src/math/special/scalb.h create mode 100644 src/math/special/scalbf.h create mode 100644 src/math/special/scalbln.h create mode 100644 src/math/special/scalblnf.h create mode 100644 src/math/special/scalblnl.h create mode 100644 src/math/special/scalbn.h create mode 100644 src/math/special/scalbnf.h create mode 100644 src/math/special/scalbnl.h create mode 100644 src/math/special/sin.h create mode 100644 src/math/special/sincos.h create mode 100644 src/math/special/sincosf.h create mode 100644 src/math/special/sincosl.h create mode 100644 src/math/special/sinf.h create mode 100644 src/math/special/sinh.h create mode 100644 src/math/special/sinhf.h create mode 100644 src/math/special/sinhl.h create mode 100644 src/math/special/sinl.h create mode 100644 src/math/special/sqrt.h create mode 100644 src/math/special/sqrtf.h create mode 100644 src/math/special/sqrtl.h create mode 100644 src/math/special/tan.h create mode 100644 src/math/special/tanf.h create mode 100644 src/math/special/tanh.h create mode 100644 src/math/special/tanhf.h create mode 100644 src/math/special/tanhl.h create mode 100644 src/math/special/tanl.h create mode 100644 src/math/special/tgamma.h create mode 100644 src/math/special/tgammaf.h create mode 100644 src/math/special/tgammal.h create mode 100644 src/math/special/trunc.h create mode 100644 src/math/special/truncf.h create mode 100644 src/math/special/truncl.h create mode 100644 src/math/special/y0.h create mode 100644 src/math/special/y0f.h create mode 100644 src/math/special/y1.h create mode 100644 src/math/special/y1f.h create mode 100644 src/math/special/yn.h create mode 100644 src/math/special/ynf.h diff --git a/src/math/acos.c b/src/math/acos.c index 09c1dd2..f37b41f 100644 --- a/src/math/acos.c +++ b/src/math/acos.c @@ -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" }; diff --git a/src/math/acosf.c b/src/math/acosf.c index 8a35f06..a9b3679 100644 --- a/src/math/acosf.c +++ b/src/math/acosf.c @@ -5,6 +5,7 @@ static struct f_f t[] = { #include "ucb/acosf.h" #include "sanity/acosf.h" +#include "special/acosf.h" }; diff --git a/src/math/acosh.c b/src/math/acosh.c index c0620d8..4eb07a2 100644 --- a/src/math/acosh.c +++ b/src/math/acosh.c @@ -4,6 +4,7 @@ static struct d_d t[] = { #include "sanity/acosh.h" +#include "special/acosh.h" }; diff --git a/src/math/acoshf.c b/src/math/acoshf.c index 37a29b9..863cc51 100644 --- a/src/math/acoshf.c +++ b/src/math/acoshf.c @@ -4,6 +4,7 @@ static struct f_f t[] = { #include "sanity/acoshf.h" +#include "special/acoshf.h" }; diff --git a/src/math/acoshl.c b/src/math/acoshl.c index d4146ee..0da0538 100644 --- a/src/math/acoshl.c +++ b/src/math/acoshl.c @@ -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 }; diff --git a/src/math/acosl.c b/src/math/acosl.c index 5ac9a79..ffa7d93 100644 --- a/src/math/acosl.c +++ b/src/math/acosl.c @@ -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 }; diff --git a/src/math/asin.c b/src/math/asin.c index 64d950c..4b4cab7 100644 --- a/src/math/asin.c +++ b/src/math/asin.c @@ -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" }; diff --git a/src/math/asinf.c b/src/math/asinf.c index 38a3e9f..2d3e7f9 100644 --- a/src/math/asinf.c +++ b/src/math/asinf.c @@ -5,6 +5,7 @@ static struct f_f t[] = { #include "ucb/asinf.h" #include "sanity/asinf.h" +#include "special/asinf.h" }; diff --git a/src/math/asinh.c b/src/math/asinh.c index fc9e68c..db59b79 100644 --- a/src/math/asinh.c +++ b/src/math/asinh.c @@ -4,6 +4,7 @@ static struct d_d t[] = { #include "sanity/asinh.h" +#include "special/asinh.h" }; diff --git a/src/math/asinhf.c b/src/math/asinhf.c index 90260e1..45de975 100644 --- a/src/math/asinhf.c +++ b/src/math/asinhf.c @@ -4,6 +4,7 @@ static struct f_f t[] = { #include "sanity/asinhf.h" +#include "special/asinhf.h" }; diff --git a/src/math/asinhl.c b/src/math/asinhl.c index 8be196e..e0fcddc 100644 --- a/src/math/asinhl.c +++ b/src/math/asinhl.c @@ -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 }; diff --git a/src/math/asinl.c b/src/math/asinl.c index 1084c79..3ee29db 100644 --- a/src/math/asinl.c +++ b/src/math/asinl.c @@ -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 }; diff --git a/src/math/atan.c b/src/math/atan.c index 825f2ce..04a7a0d 100644 --- a/src/math/atan.c +++ b/src/math/atan.c @@ -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" }; diff --git a/src/math/atan2.c b/src/math/atan2.c index 0772893..8f748f4 100644 --- a/src/math/atan2.c +++ b/src/math/atan2.c @@ -5,6 +5,7 @@ static struct dd_d t[] = { #include "ucb/atan2.h" #include "sanity/atan2.h" +#include "special/atan2.h" }; diff --git a/src/math/atan2f.c b/src/math/atan2f.c index e5d742d..5f66b9b 100644 --- a/src/math/atan2f.c +++ b/src/math/atan2f.c @@ -5,6 +5,7 @@ static struct ff_f t[] = { #include "ucb/atan2f.h" #include "sanity/atan2f.h" +#include "special/atan2f.h" }; diff --git a/src/math/atan2l.c b/src/math/atan2l.c index d6d5ae4..be3c8fb 100644 --- a/src/math/atan2l.c +++ b/src/math/atan2l.c @@ -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 }; diff --git a/src/math/atanf.c b/src/math/atanf.c index 3e35a3c..64c6489 100644 --- a/src/math/atanf.c +++ b/src/math/atanf.c @@ -5,6 +5,7 @@ static struct f_f t[] = { #include "ucb/atanf.h" #include "sanity/atanf.h" +#include "special/atanf.h" }; diff --git a/src/math/atanh.c b/src/math/atanh.c index ec41ac5..d7b532e 100644 --- a/src/math/atanh.c +++ b/src/math/atanh.c @@ -4,6 +4,7 @@ static struct d_d t[] = { #include "sanity/atanh.h" +#include "special/atanh.h" }; diff --git a/src/math/atanhf.c b/src/math/atanhf.c index 3fa6c33..9b264b8 100644 --- a/src/math/atanhf.c +++ b/src/math/atanhf.c @@ -4,6 +4,7 @@ static struct f_f t[] = { #include "sanity/atanhf.h" +#include "special/atanhf.h" }; diff --git a/src/math/atanhl.c b/src/math/atanhl.c index 4d986da..05cb556 100644 --- a/src/math/atanhl.c +++ b/src/math/atanhl.c @@ -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 }; diff --git a/src/math/atanl.c b/src/math/atanl.c index 73d7993..db6676d 100644 --- a/src/math/atanl.c +++ b/src/math/atanl.c @@ -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 }; diff --git a/src/math/cbrt.c b/src/math/cbrt.c index 55ecc5a..5411dd1 100644 --- a/src/math/cbrt.c +++ b/src/math/cbrt.c @@ -4,6 +4,7 @@ static struct d_d t[] = { #include "sanity/cbrt.h" +#include "special/cbrt.h" }; diff --git a/src/math/cbrtf.c b/src/math/cbrtf.c index 305d03f..b2395b4 100644 --- a/src/math/cbrtf.c +++ b/src/math/cbrtf.c @@ -4,6 +4,7 @@ static struct f_f t[] = { #include "sanity/cbrtf.h" +#include "special/cbrtf.h" }; diff --git a/src/math/cbrtl.c b/src/math/cbrtl.c index 79f1749..e9547d7 100644 --- a/src/math/cbrtl.c +++ b/src/math/cbrtl.c @@ -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 }; diff --git a/src/math/ceil.c b/src/math/ceil.c index e19e0a5..d9fd6c3 100644 --- a/src/math/ceil.c +++ b/src/math/ceil.c @@ -5,6 +5,7 @@ static struct d_d t[] = { #include "ucb/ceil.h" #include "sanity/ceil.h" +#include "special/ceil.h" }; diff --git a/src/math/ceilf.c b/src/math/ceilf.c index 2afa703..4f37ae7 100644 --- a/src/math/ceilf.c +++ b/src/math/ceilf.c @@ -5,6 +5,7 @@ static struct f_f t[] = { #include "ucb/ceilf.h" #include "sanity/ceilf.h" +#include "special/ceilf.h" }; diff --git a/src/math/ceill.c b/src/math/ceill.c index 23f5b2b..b2707b9 100644 --- a/src/math/ceill.c +++ b/src/math/ceill.c @@ -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 }; diff --git a/src/math/copysign.c b/src/math/copysign.c index 829780e..23ab8e3 100644 --- a/src/math/copysign.c +++ b/src/math/copysign.c @@ -4,6 +4,7 @@ static struct dd_d t[] = { #include "sanity/copysign.h" +#include "special/copysign.h" }; diff --git a/src/math/copysignf.c b/src/math/copysignf.c index 3e86729..705b6ca 100644 --- a/src/math/copysignf.c +++ b/src/math/copysignf.c @@ -4,6 +4,7 @@ static struct ff_f t[] = { #include "sanity/copysignf.h" +#include "special/copysignf.h" }; diff --git a/src/math/copysignl.c b/src/math/copysignl.c index bdab602..6ecf7b1 100644 --- a/src/math/copysignl.c +++ b/src/math/copysignl.c @@ -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 }; diff --git a/src/math/cos.c b/src/math/cos.c index 485efad..16f5e04 100644 --- a/src/math/cos.c +++ b/src/math/cos.c @@ -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" }; diff --git a/src/math/cosf.c b/src/math/cosf.c index 4dc55cd..e29c640 100644 --- a/src/math/cosf.c +++ b/src/math/cosf.c @@ -5,6 +5,7 @@ static struct f_f t[] = { #include "ucb/cosf.h" #include "sanity/cosf.h" +#include "special/cosf.h" }; diff --git a/src/math/cosh.c b/src/math/cosh.c index 6820d09..493ff34 100644 --- a/src/math/cosh.c +++ b/src/math/cosh.c @@ -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" }; diff --git a/src/math/coshf.c b/src/math/coshf.c index b2ec5b0..8023cd6 100644 --- a/src/math/coshf.c +++ b/src/math/coshf.c @@ -5,6 +5,7 @@ static struct f_f t[] = { #include "ucb/coshf.h" #include "sanity/coshf.h" +#include "special/coshf.h" }; diff --git a/src/math/coshl.c b/src/math/coshl.c index 0dc737e..ffbbde9 100644 --- a/src/math/coshl.c +++ b/src/math/coshl.c @@ -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 }; diff --git a/src/math/cosl.c b/src/math/cosl.c index cb11ddc..7827659 100644 --- a/src/math/cosl.c +++ b/src/math/cosl.c @@ -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 }; diff --git a/src/math/erf.c b/src/math/erf.c index cb60a63..81843c8 100644 --- a/src/math/erf.c +++ b/src/math/erf.c @@ -4,6 +4,7 @@ static struct d_d t[] = { #include "sanity/erf.h" +#include "special/erf.h" }; diff --git a/src/math/erfc.c b/src/math/erfc.c index 6834d5d..8d83372 100644 --- a/src/math/erfc.c +++ b/src/math/erfc.c @@ -4,6 +4,7 @@ static struct d_d t[] = { #include "sanity/erfc.h" +#include "special/erfc.h" }; diff --git a/src/math/erfcf.c b/src/math/erfcf.c index d226d40..6570c92 100644 --- a/src/math/erfcf.c +++ b/src/math/erfcf.c @@ -4,6 +4,7 @@ static struct f_f t[] = { #include "sanity/erfcf.h" +#include "special/erfcf.h" }; diff --git a/src/math/erfcl.c b/src/math/erfcl.c index 4e7ffec..8a362b8 100644 --- a/src/math/erfcl.c +++ b/src/math/erfcl.c @@ -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 }; diff --git a/src/math/erff.c b/src/math/erff.c index a399e50..1fb465a 100644 --- a/src/math/erff.c +++ b/src/math/erff.c @@ -4,6 +4,7 @@ static struct f_f t[] = { #include "sanity/erff.h" +#include "special/erff.h" }; diff --git a/src/math/erfl.c b/src/math/erfl.c index 753885d..c6f636f 100644 --- a/src/math/erfl.c +++ b/src/math/erfl.c @@ -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 }; diff --git a/src/math/exp.c b/src/math/exp.c index e7a77a7..fcc49d3 100644 --- a/src/math/exp.c +++ b/src/math/exp.c @@ -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" }; diff --git a/src/math/exp10.c b/src/math/exp10.c index 49cc61a..e549839 100644 --- a/src/math/exp10.c +++ b/src/math/exp10.c @@ -4,6 +4,7 @@ static struct d_d t[] = { #include "sanity/exp10.h" +#include "special/exp10.h" }; diff --git a/src/math/exp10f.c b/src/math/exp10f.c index 3ed2232..1ad776e 100644 --- a/src/math/exp10f.c +++ b/src/math/exp10f.c @@ -4,6 +4,7 @@ static struct f_f t[] = { #include "sanity/exp10f.h" +#include "special/exp10f.h" }; diff --git a/src/math/exp10l.c b/src/math/exp10l.c index 3651a6d..30db1d1 100644 --- a/src/math/exp10l.c +++ b/src/math/exp10l.c @@ -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 }; diff --git a/src/math/exp2.c b/src/math/exp2.c index 0a1ccb6..cd73ddd 100644 --- a/src/math/exp2.c +++ b/src/math/exp2.c @@ -4,6 +4,7 @@ static struct d_d t[] = { #include "sanity/exp2.h" +#include "special/exp2.h" }; diff --git a/src/math/exp2f.c b/src/math/exp2f.c index 9d29780..b6c93c5 100644 --- a/src/math/exp2f.c +++ b/src/math/exp2f.c @@ -4,6 +4,7 @@ static struct f_f t[] = { #include "sanity/exp2f.h" +#include "special/exp2f.h" }; diff --git a/src/math/exp2l.c b/src/math/exp2l.c index 72d6ead..2a669e0 100644 --- a/src/math/exp2l.c +++ b/src/math/exp2l.c @@ -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 }; diff --git a/src/math/expf.c b/src/math/expf.c index 87d8c5c..6391087 100644 --- a/src/math/expf.c +++ b/src/math/expf.c @@ -5,6 +5,7 @@ static struct f_f t[] = { #include "ucb/expf.h" #include "sanity/expf.h" +#include "special/expf.h" }; diff --git a/src/math/expl.c b/src/math/expl.c index 6e118df..e4d3065 100644 --- a/src/math/expl.c +++ b/src/math/expl.c @@ -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 }; diff --git a/src/math/expm1.c b/src/math/expm1.c index 70fdfef..662660a 100644 --- a/src/math/expm1.c +++ b/src/math/expm1.c @@ -5,6 +5,7 @@ static struct d_d t[] = { #include "crlibm/expm1.h" #include "sanity/expm1.h" +#include "special/expm1.h" }; diff --git a/src/math/expm1f.c b/src/math/expm1f.c index 6f72d47..9c9ef60 100644 --- a/src/math/expm1f.c +++ b/src/math/expm1f.c @@ -4,6 +4,7 @@ static struct f_f t[] = { #include "sanity/expm1f.h" +#include "special/expm1f.h" }; diff --git a/src/math/expm1l.c b/src/math/expm1l.c index 7950542..02b4e8f 100644 --- a/src/math/expm1l.c +++ b/src/math/expm1l.c @@ -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 }; diff --git a/src/math/fabs.c b/src/math/fabs.c index 5c156d5..e597ec2 100644 --- a/src/math/fabs.c +++ b/src/math/fabs.c @@ -5,6 +5,7 @@ static struct d_d t[] = { #include "ucb/fabs.h" #include "sanity/fabs.h" +#include "special/fabs.h" }; diff --git a/src/math/fabsf.c b/src/math/fabsf.c index 11abddf..f572799 100644 --- a/src/math/fabsf.c +++ b/src/math/fabsf.c @@ -5,6 +5,7 @@ static struct f_f t[] = { #include "ucb/fabsf.h" #include "sanity/fabsf.h" +#include "special/fabsf.h" }; diff --git a/src/math/fabsl.c b/src/math/fabsl.c index ac65003..8989792 100644 --- a/src/math/fabsl.c +++ b/src/math/fabsl.c @@ -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 }; diff --git a/src/math/fdim.c b/src/math/fdim.c index c5680cc..d73eece 100644 --- a/src/math/fdim.c +++ b/src/math/fdim.c @@ -4,6 +4,7 @@ static struct dd_d t[] = { #include "sanity/fdim.h" +#include "special/fdim.h" }; diff --git a/src/math/fdimf.c b/src/math/fdimf.c index d7792bf..f48d25b 100644 --- a/src/math/fdimf.c +++ b/src/math/fdimf.c @@ -4,6 +4,7 @@ static struct ff_f t[] = { #include "sanity/fdimf.h" +#include "special/fdimf.h" }; diff --git a/src/math/fdiml.c b/src/math/fdiml.c index 9f6eb95..a709b2e 100644 --- a/src/math/fdiml.c +++ b/src/math/fdiml.c @@ -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 }; diff --git a/src/math/floor.c b/src/math/floor.c index 6b035cc..be08516 100644 --- a/src/math/floor.c +++ b/src/math/floor.c @@ -5,6 +5,7 @@ static struct d_d t[] = { #include "ucb/floor.h" #include "sanity/floor.h" +#include "special/floor.h" }; diff --git a/src/math/floorf.c b/src/math/floorf.c index 63ee702..71fe0fe 100644 --- a/src/math/floorf.c +++ b/src/math/floorf.c @@ -5,6 +5,7 @@ static struct f_f t[] = { #include "ucb/floorf.h" #include "sanity/floorf.h" +#include "special/floorf.h" }; diff --git a/src/math/floorl.c b/src/math/floorl.c index 4c91694..f2cf4e8 100644 --- a/src/math/floorl.c +++ b/src/math/floorl.c @@ -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 }; diff --git a/src/math/fma.c b/src/math/fma.c index 88acd08..bb83520 100644 --- a/src/math/fma.c +++ b/src/math/fma.c @@ -4,6 +4,7 @@ static struct ddd_d t[] = { #include "sanity/fma.h" +#include "special/fma.h" }; int main(void) diff --git a/src/math/fmaf.c b/src/math/fmaf.c index 05fb09a..0a0e196 100644 --- a/src/math/fmaf.c +++ b/src/math/fmaf.c @@ -4,6 +4,7 @@ static struct fff_f t[] = { #include "sanity/fmaf.h" +#include "special/fmaf.h" }; int main(void) diff --git a/src/math/fmal.c b/src/math/fmal.c index 6b76bc5..ef350c8 100644 --- a/src/math/fmal.c +++ b/src/math/fmal.c @@ -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 }; diff --git a/src/math/fmax.c b/src/math/fmax.c index 9b3a8cf..5479ad9 100644 --- a/src/math/fmax.c +++ b/src/math/fmax.c @@ -4,6 +4,7 @@ static struct dd_d t[] = { #include "sanity/fmax.h" +#include "special/fmax.h" }; diff --git a/src/math/fmaxf.c b/src/math/fmaxf.c index d90b908..cd34a3b 100644 --- a/src/math/fmaxf.c +++ b/src/math/fmaxf.c @@ -4,6 +4,7 @@ static struct ff_f t[] = { #include "sanity/fmaxf.h" +#include "special/fmaxf.h" }; diff --git a/src/math/fmaxl.c b/src/math/fmaxl.c index f793c0c..1706207 100644 --- a/src/math/fmaxl.c +++ b/src/math/fmaxl.c @@ -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 }; diff --git a/src/math/fmin.c b/src/math/fmin.c index 062dd63..542d6c0 100644 --- a/src/math/fmin.c +++ b/src/math/fmin.c @@ -4,6 +4,7 @@ static struct dd_d t[] = { #include "sanity/fmin.h" +#include "special/fmin.h" }; diff --git a/src/math/fminf.c b/src/math/fminf.c index b649110..3d3a97b 100644 --- a/src/math/fminf.c +++ b/src/math/fminf.c @@ -4,6 +4,7 @@ static struct ff_f t[] = { #include "sanity/fminf.h" +#include "special/fminf.h" }; diff --git a/src/math/fminl.c b/src/math/fminl.c index c3c4ffd..64e1167 100644 --- a/src/math/fminl.c +++ b/src/math/fminl.c @@ -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 }; diff --git a/src/math/fmod.c b/src/math/fmod.c index 3e66c95..5424768 100644 --- a/src/math/fmod.c +++ b/src/math/fmod.c @@ -5,6 +5,7 @@ static struct dd_d t[] = { #include "ucb/fmod.h" #include "sanity/fmod.h" +#include "special/fmod.h" }; diff --git a/src/math/fmodf.c b/src/math/fmodf.c index d92a7e6..7709b48 100644 --- a/src/math/fmodf.c +++ b/src/math/fmodf.c @@ -5,6 +5,7 @@ static struct ff_f t[] = { #include "ucb/fmodf.h" #include "sanity/fmodf.h" +#include "special/fmodf.h" }; diff --git a/src/math/fmodl.c b/src/math/fmodl.c index 7f715e3..51d589a 100644 --- a/src/math/fmodl.c +++ b/src/math/fmodl.c @@ -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 }; diff --git a/src/math/frexp.c b/src/math/frexp.c index bf0eb9a..5935422 100644 --- a/src/math/frexp.c +++ b/src/math/frexp.c @@ -4,6 +4,7 @@ static struct d_di t[] = { #include "sanity/frexp.h" +#include "special/frexp.h" }; diff --git a/src/math/frexpf.c b/src/math/frexpf.c index 773540a..8763be5 100644 --- a/src/math/frexpf.c +++ b/src/math/frexpf.c @@ -4,6 +4,7 @@ static struct f_fi t[] = { #include "sanity/frexpf.h" +#include "special/frexpf.h" }; diff --git a/src/math/frexpl.c b/src/math/frexpl.c index 23fffa1..e04821b 100644 --- a/src/math/frexpl.c +++ b/src/math/frexpl.c @@ -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 }; diff --git a/src/math/hypot.c b/src/math/hypot.c index 842ceb4..b2df491 100644 --- a/src/math/hypot.c +++ b/src/math/hypot.c @@ -5,6 +5,7 @@ static struct dd_d t[] = { #include "ucb/hypot.h" #include "sanity/hypot.h" +#include "special/hypot.h" }; diff --git a/src/math/hypotf.c b/src/math/hypotf.c index 7b47807..82bbcde 100644 --- a/src/math/hypotf.c +++ b/src/math/hypotf.c @@ -5,6 +5,7 @@ static struct ff_f t[] = { #include "ucb/hypotf.h" #include "sanity/hypotf.h" +#include "special/hypotf.h" }; diff --git a/src/math/hypotl.c b/src/math/hypotl.c index 290bc80..c8be939 100644 --- a/src/math/hypotl.c +++ b/src/math/hypotl.c @@ -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 }; diff --git a/src/math/ilogb.c b/src/math/ilogb.c index 1850870..3d646bc 100644 --- a/src/math/ilogb.c +++ b/src/math/ilogb.c @@ -4,6 +4,7 @@ static struct d_i t[] = { #include "sanity/ilogb.h" +#include "special/ilogb.h" }; diff --git a/src/math/ilogbf.c b/src/math/ilogbf.c index b5e5439..a3d3dcd 100644 --- a/src/math/ilogbf.c +++ b/src/math/ilogbf.c @@ -4,6 +4,7 @@ static struct f_i t[] = { #include "sanity/ilogbf.h" +#include "special/ilogbf.h" }; diff --git a/src/math/ilogbl.c b/src/math/ilogbl.c index 1dcac12..f34c891 100644 --- a/src/math/ilogbl.c +++ b/src/math/ilogbl.c @@ -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 }; diff --git a/src/math/j0.c b/src/math/j0.c index e1faf28..7e4742d 100644 --- a/src/math/j0.c +++ b/src/math/j0.c @@ -4,6 +4,7 @@ static struct d_d t[] = { #include "sanity/j0.h" +#include "special/j0.h" }; diff --git a/src/math/j0f.c b/src/math/j0f.c index 6349596..5a4af20 100644 --- a/src/math/j0f.c +++ b/src/math/j0f.c @@ -4,6 +4,7 @@ static struct f_f t[] = { #include "sanity/j0f.h" +#include "special/j0f.h" }; diff --git a/src/math/j1.c b/src/math/j1.c index c21721b..d9a2489 100644 --- a/src/math/j1.c +++ b/src/math/j1.c @@ -4,6 +4,7 @@ static struct d_d t[] = { #include "sanity/j1.h" +#include "special/j1.h" }; diff --git a/src/math/j1f.c b/src/math/j1f.c index 38123fb..a4e35bd 100644 --- a/src/math/j1f.c +++ b/src/math/j1f.c @@ -4,6 +4,7 @@ static struct f_f t[] = { #include "sanity/j1f.h" +#include "special/j1f.h" }; diff --git a/src/math/jn.c b/src/math/jn.c index 96658dd..94b3152 100644 --- a/src/math/jn.c +++ b/src/math/jn.c @@ -4,6 +4,7 @@ static struct di_d t[] = { #include "sanity/jn.h" +#include "special/jn.h" }; int main(void) diff --git a/src/math/jnf.c b/src/math/jnf.c index 7b163d7..66294d2 100644 --- a/src/math/jnf.c +++ b/src/math/jnf.c @@ -4,6 +4,7 @@ static struct fi_f t[] = { #include "sanity/jnf.h" +#include "special/jnf.h" }; int main(void) diff --git a/src/math/ldexp.c b/src/math/ldexp.c index 1d18160..7a5ac00 100644 --- a/src/math/ldexp.c +++ b/src/math/ldexp.c @@ -4,6 +4,7 @@ static struct di_d t[] = { #include "sanity/ldexp.h" +#include "special/ldexp.h" }; diff --git a/src/math/ldexpf.c b/src/math/ldexpf.c index 37a7c03..9fb870f 100644 --- a/src/math/ldexpf.c +++ b/src/math/ldexpf.c @@ -4,6 +4,7 @@ static struct fi_f t[] = { #include "sanity/ldexpf.h" +#include "special/ldexpf.h" }; diff --git a/src/math/ldexpl.c b/src/math/ldexpl.c index c45e9c5..331cb7e 100644 --- a/src/math/ldexpl.c +++ b/src/math/ldexpl.c @@ -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 }; diff --git a/src/math/lgamma.c b/src/math/lgamma.c index d76538f..cd74903 100644 --- a/src/math/lgamma.c +++ b/src/math/lgamma.c @@ -4,6 +4,7 @@ static struct d_di t[] = { #include "sanity/lgamma.h" +#include "special/lgamma.h" }; diff --git a/src/math/lgamma_r.c b/src/math/lgamma_r.c index c2acb99..0645feb 100644 --- a/src/math/lgamma_r.c +++ b/src/math/lgamma_r.c @@ -4,6 +4,7 @@ static struct d_di t[] = { #include "sanity/lgamma_r.h" +#include "special/lgamma_r.h" }; diff --git a/src/math/lgammaf.c b/src/math/lgammaf.c index 86d83db..26edb68 100644 --- a/src/math/lgammaf.c +++ b/src/math/lgammaf.c @@ -4,6 +4,7 @@ static struct f_fi t[] = { #include "sanity/lgammaf.h" +#include "special/lgammaf.h" }; diff --git a/src/math/lgammaf_r.c b/src/math/lgammaf_r.c index 8f69e0c..e1a52d8 100644 --- a/src/math/lgammaf_r.c +++ b/src/math/lgammaf_r.c @@ -4,6 +4,7 @@ static struct f_fi t[] = { #include "sanity/lgammaf_r.h" +#include "special/lgammaf_r.h" }; diff --git a/src/math/lgammal.c b/src/math/lgammal.c index d282de2..352df9b 100644 --- a/src/math/lgammal.c +++ b/src/math/lgammal.c @@ -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 }; diff --git a/src/math/lgammal_r.c b/src/math/lgammal_r.c index 2ebe612..9813f4e 100644 --- a/src/math/lgammal_r.c +++ b/src/math/lgammal_r.c @@ -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 }; diff --git a/src/math/llrint.c b/src/math/llrint.c index 6a3ba26..3ad7540 100644 --- a/src/math/llrint.c +++ b/src/math/llrint.c @@ -4,6 +4,7 @@ static struct d_i t[] = { #include "sanity/llrint.h" +#include "special/llrint.h" }; diff --git a/src/math/llrintf.c b/src/math/llrintf.c index 27507c6..2f19d56 100644 --- a/src/math/llrintf.c +++ b/src/math/llrintf.c @@ -4,6 +4,7 @@ static struct f_i t[] = { #include "sanity/llrintf.h" +#include "special/llrintf.h" }; diff --git a/src/math/llrintl.c b/src/math/llrintl.c index 9bc8ed3..91d5447 100644 --- a/src/math/llrintl.c +++ b/src/math/llrintl.c @@ -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 }; diff --git a/src/math/llround.c b/src/math/llround.c index 37b5c1a..403fa23 100644 --- a/src/math/llround.c +++ b/src/math/llround.c @@ -4,6 +4,7 @@ static struct d_i t[] = { #include "sanity/llround.h" +#include "special/llround.h" }; diff --git a/src/math/llroundf.c b/src/math/llroundf.c index dc55f46..34c0ceb 100644 --- a/src/math/llroundf.c +++ b/src/math/llroundf.c @@ -4,6 +4,7 @@ static struct f_i t[] = { #include "sanity/llroundf.h" +#include "special/llroundf.h" }; diff --git a/src/math/llroundl.c b/src/math/llroundl.c index 04917fe..8c1fdc8 100644 --- a/src/math/llroundl.c +++ b/src/math/llroundl.c @@ -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 }; diff --git a/src/math/log.c b/src/math/log.c index 5e5d5c4..b2d2d08 100644 --- a/src/math/log.c +++ b/src/math/log.c @@ -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" }; diff --git a/src/math/log10.c b/src/math/log10.c index 91558cd..81917fd 100644 --- a/src/math/log10.c +++ b/src/math/log10.c @@ -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" }; diff --git a/src/math/log10f.c b/src/math/log10f.c index 90689f5..8ae8d35 100644 --- a/src/math/log10f.c +++ b/src/math/log10f.c @@ -5,6 +5,7 @@ static struct f_f t[] = { #include "ucb/log10f.h" #include "sanity/log10f.h" +#include "special/log10f.h" }; diff --git a/src/math/log10l.c b/src/math/log10l.c index 5548ec7..9cfdf1a 100644 --- a/src/math/log10l.c +++ b/src/math/log10l.c @@ -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 }; diff --git a/src/math/log1p.c b/src/math/log1p.c index 0f96339..ec08393 100644 --- a/src/math/log1p.c +++ b/src/math/log1p.c @@ -5,6 +5,7 @@ static struct d_d t[] = { #include "crlibm/log1p.h" #include "sanity/log1p.h" +#include "special/log1p.h" }; diff --git a/src/math/log1pf.c b/src/math/log1pf.c index fb738f6..90afd4f 100644 --- a/src/math/log1pf.c +++ b/src/math/log1pf.c @@ -4,6 +4,7 @@ static struct f_f t[] = { #include "sanity/log1pf.h" +#include "special/log1pf.h" }; diff --git a/src/math/log1pl.c b/src/math/log1pl.c index 07b0afa..53ff8d9 100644 --- a/src/math/log1pl.c +++ b/src/math/log1pl.c @@ -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 }; diff --git a/src/math/log2.c b/src/math/log2.c index 25b8b2e..a9050e2 100644 --- a/src/math/log2.c +++ b/src/math/log2.c @@ -5,6 +5,7 @@ static struct d_d t[] = { #include "crlibm/log2.h" #include "sanity/log2.h" +#include "special/log2.h" }; diff --git a/src/math/log2f.c b/src/math/log2f.c index 75e5991..dc6f41a 100644 --- a/src/math/log2f.c +++ b/src/math/log2f.c @@ -4,6 +4,7 @@ static struct f_f t[] = { #include "sanity/log2f.h" +#include "special/log2f.h" }; diff --git a/src/math/log2l.c b/src/math/log2l.c index a1a7315..0578864 100644 --- a/src/math/log2l.c +++ b/src/math/log2l.c @@ -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 }; diff --git a/src/math/logb.c b/src/math/logb.c index 597bd51..c9b90bc 100644 --- a/src/math/logb.c +++ b/src/math/logb.c @@ -4,6 +4,7 @@ static struct d_d t[] = { #include "sanity/logb.h" +#include "special/logb.h" }; diff --git a/src/math/logbf.c b/src/math/logbf.c index 12f4757..cb6d357 100644 --- a/src/math/logbf.c +++ b/src/math/logbf.c @@ -4,6 +4,7 @@ static struct f_f t[] = { #include "sanity/logbf.h" +#include "special/logbf.h" }; diff --git a/src/math/logbl.c b/src/math/logbl.c index 2c70eda..ad0ccff 100644 --- a/src/math/logbl.c +++ b/src/math/logbl.c @@ -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 }; diff --git a/src/math/logf.c b/src/math/logf.c index fbead36..4f07980 100644 --- a/src/math/logf.c +++ b/src/math/logf.c @@ -5,6 +5,7 @@ static struct f_f t[] = { #include "ucb/logf.h" #include "sanity/logf.h" +#include "special/logf.h" }; diff --git a/src/math/logl.c b/src/math/logl.c index c9c27be..d2a351a 100644 --- a/src/math/logl.c +++ b/src/math/logl.c @@ -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 }; diff --git a/src/math/lrint.c b/src/math/lrint.c index fd4bcc7..0d4bf85 100644 --- a/src/math/lrint.c +++ b/src/math/lrint.c @@ -4,6 +4,7 @@ static struct d_i t[] = { #include "sanity/lrint.h" +#include "special/lrint.h" }; diff --git a/src/math/lrintf.c b/src/math/lrintf.c index 7e9a0f4..9e2ac07 100644 --- a/src/math/lrintf.c +++ b/src/math/lrintf.c @@ -4,6 +4,7 @@ static struct f_i t[] = { #include "sanity/lrintf.h" +#include "special/lrintf.h" }; diff --git a/src/math/lrintl.c b/src/math/lrintl.c index 8d37d9c..bdb5d20 100644 --- a/src/math/lrintl.c +++ b/src/math/lrintl.c @@ -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 }; diff --git a/src/math/lround.c b/src/math/lround.c index 766d7c2..7041288 100644 --- a/src/math/lround.c +++ b/src/math/lround.c @@ -4,6 +4,7 @@ static struct d_i t[] = { #include "sanity/lround.h" +#include "special/lround.h" }; diff --git a/src/math/lroundf.c b/src/math/lroundf.c index 4a5eaa0..2f9a491 100644 --- a/src/math/lroundf.c +++ b/src/math/lroundf.c @@ -4,6 +4,7 @@ static struct f_i t[] = { #include "sanity/lroundf.h" +#include "special/lroundf.h" }; diff --git a/src/math/lroundl.c b/src/math/lroundl.c index 9cb7ee2..baa12e3 100644 --- a/src/math/lroundl.c +++ b/src/math/lroundl.c @@ -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 }; diff --git a/src/math/modf.c b/src/math/modf.c index f30582d..a8e26c1 100644 --- a/src/math/modf.c +++ b/src/math/modf.c @@ -4,6 +4,7 @@ static struct d_dd t[] = { #include "sanity/modf.h" +#include "special/modf.h" }; int main(void) diff --git a/src/math/modff.c b/src/math/modff.c index 0791dc0..ce91f98 100644 --- a/src/math/modff.c +++ b/src/math/modff.c @@ -4,6 +4,7 @@ static struct f_ff t[] = { #include "sanity/modff.h" +#include "special/modff.h" }; int main(void) diff --git a/src/math/modfl.c b/src/math/modfl.c index c555cd4..787fb8b 100644 --- a/src/math/modfl.c +++ b/src/math/modfl.c @@ -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 }; diff --git a/src/math/nearbyint.c b/src/math/nearbyint.c index db5a58c..282580d 100644 --- a/src/math/nearbyint.c +++ b/src/math/nearbyint.c @@ -4,6 +4,7 @@ static struct d_d t[] = { #include "sanity/nearbyint.h" +#include "special/nearbyint.h" }; diff --git a/src/math/nearbyintf.c b/src/math/nearbyintf.c index 4e8be0a..582c146 100644 --- a/src/math/nearbyintf.c +++ b/src/math/nearbyintf.c @@ -4,6 +4,7 @@ static struct f_f t[] = { #include "sanity/nearbyintf.h" +#include "special/nearbyintf.h" }; diff --git a/src/math/nearbyintl.c b/src/math/nearbyintl.c index a86e83b..9350be6 100644 --- a/src/math/nearbyintl.c +++ b/src/math/nearbyintl.c @@ -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 }; diff --git a/src/math/nextafter.c b/src/math/nextafter.c index 73c0844..844917e 100644 --- a/src/math/nextafter.c +++ b/src/math/nextafter.c @@ -4,6 +4,7 @@ static struct dd_d t[] = { #include "sanity/nextafter.h" +#include "special/nextafter.h" }; diff --git a/src/math/nextafterf.c b/src/math/nextafterf.c index 1f9c447..9f468f2 100644 --- a/src/math/nextafterf.c +++ b/src/math/nextafterf.c @@ -4,6 +4,7 @@ static struct ff_f t[] = { #include "sanity/nextafterf.h" +#include "special/nextafterf.h" }; diff --git a/src/math/nextafterl.c b/src/math/nextafterl.c index 58737ee..70fddb2 100644 --- a/src/math/nextafterl.c +++ b/src/math/nextafterl.c @@ -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 }; diff --git a/src/math/nexttoward.c b/src/math/nexttoward.c index 1532127..f03a094 100644 --- a/src/math/nexttoward.c +++ b/src/math/nexttoward.c @@ -2,12 +2,15 @@ #include #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 }; diff --git a/src/math/nexttowardf.c b/src/math/nexttowardf.c index 4b558b9..9e4b180 100644 --- a/src/math/nexttowardf.c +++ b/src/math/nexttowardf.c @@ -2,12 +2,15 @@ #include #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 }; diff --git a/src/math/nexttowardl.c b/src/math/nexttowardl.c index 8625354..add01bb 100644 --- a/src/math/nexttowardl.c +++ b/src/math/nexttowardl.c @@ -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 }; diff --git a/src/math/pow.c b/src/math/pow.c index f705f17..473dea9 100644 --- a/src/math/pow.c +++ b/src/math/pow.c @@ -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" }; diff --git a/src/math/pow10.c b/src/math/pow10.c index c85b517..9197398 100644 --- a/src/math/pow10.c +++ b/src/math/pow10.c @@ -4,6 +4,7 @@ static struct d_d t[] = { #include "sanity/pow10.h" +#include "special/exp10.h" }; diff --git a/src/math/pow10f.c b/src/math/pow10f.c index fd2a485..efb3207 100644 --- a/src/math/pow10f.c +++ b/src/math/pow10f.c @@ -4,6 +4,7 @@ static struct f_f t[] = { #include "sanity/pow10f.h" +#include "special/exp10f.h" }; diff --git a/src/math/pow10l.c b/src/math/pow10l.c index 3f1abae..19b03f8 100644 --- a/src/math/pow10l.c +++ b/src/math/pow10l.c @@ -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 }; diff --git a/src/math/powf.c b/src/math/powf.c index f11c260..d2d5236 100644 --- a/src/math/powf.c +++ b/src/math/powf.c @@ -5,6 +5,7 @@ static struct ff_f t[] = { #include "ucb/powf.h" #include "sanity/powf.h" +#include "special/powf.h" }; diff --git a/src/math/powl.c b/src/math/powl.c index 8ceb6f1..1cb341e 100644 --- a/src/math/powl.c +++ b/src/math/powl.c @@ -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 }; diff --git a/src/math/remainder.c b/src/math/remainder.c index 4faa6d4..1c65edb 100644 --- a/src/math/remainder.c +++ b/src/math/remainder.c @@ -4,6 +4,7 @@ static struct dd_d t[] = { #include "sanity/remainder.h" +#include "special/remainder.h" }; diff --git a/src/math/remainderf.c b/src/math/remainderf.c index 6156c98..bc22fdc 100644 --- a/src/math/remainderf.c +++ b/src/math/remainderf.c @@ -4,6 +4,7 @@ static struct ff_f t[] = { #include "sanity/remainderf.h" +#include "special/remainderf.h" }; diff --git a/src/math/remainderl.c b/src/math/remainderl.c index 5ce0f97..f1c8be0 100644 --- a/src/math/remainderl.c +++ b/src/math/remainderl.c @@ -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 }; diff --git a/src/math/remquo.c b/src/math/remquo.c index 64022f1..245cd1d 100644 --- a/src/math/remquo.c +++ b/src/math/remquo.c @@ -4,6 +4,7 @@ static struct dd_di t[] = { #include "sanity/remquo.h" +#include "special/remquo.h" }; int main(void) diff --git a/src/math/remquof.c b/src/math/remquof.c index 72f4d5b..933bc99 100644 --- a/src/math/remquof.c +++ b/src/math/remquof.c @@ -4,6 +4,7 @@ static struct ff_fi t[] = { #include "sanity/remquof.h" +#include "special/remquof.h" }; int main(void) diff --git a/src/math/remquol.c b/src/math/remquol.c index a06497d..c37fda2 100644 --- a/src/math/remquol.c +++ b/src/math/remquol.c @@ -4,6 +4,7 @@ static struct ll_li t[] = { #include "sanity/remquol.h" +#include "special/remquol.h" }; int main(void) diff --git a/src/math/rint.c b/src/math/rint.c index 36ecd2c..8826044 100644 --- a/src/math/rint.c +++ b/src/math/rint.c @@ -4,6 +4,7 @@ static struct d_d t[] = { #include "sanity/rint.h" +#include "special/rint.h" }; diff --git a/src/math/rintf.c b/src/math/rintf.c index 083413b..627c242 100644 --- a/src/math/rintf.c +++ b/src/math/rintf.c @@ -4,6 +4,7 @@ static struct f_f t[] = { #include "sanity/rintf.h" +#include "special/rintf.h" }; diff --git a/src/math/rintl.c b/src/math/rintl.c index e8cd73b..1879f3c 100644 --- a/src/math/rintl.c +++ b/src/math/rintl.c @@ -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 }; diff --git a/src/math/round.c b/src/math/round.c index ca5470b..86800d9 100644 --- a/src/math/round.c +++ b/src/math/round.c @@ -4,6 +4,7 @@ static struct d_d t[] = { #include "sanity/round.h" +#include "special/round.h" }; diff --git a/src/math/roundf.c b/src/math/roundf.c index 50c15dd..345d4f3 100644 --- a/src/math/roundf.c +++ b/src/math/roundf.c @@ -4,6 +4,7 @@ static struct f_f t[] = { #include "sanity/roundf.h" +#include "special/roundf.h" }; diff --git a/src/math/roundl.c b/src/math/roundl.c index 06abed6..53b254f 100644 --- a/src/math/roundl.c +++ b/src/math/roundl.c @@ -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 }; diff --git a/src/math/scalb.c b/src/math/scalb.c index 95a5533..70746b3 100644 --- a/src/math/scalb.c +++ b/src/math/scalb.c @@ -4,6 +4,7 @@ static struct dd_d t[] = { #include "sanity/scalb.h" +#include "special/scalb.h" }; diff --git a/src/math/scalbf.c b/src/math/scalbf.c index 8c190cc..9861b8c 100644 --- a/src/math/scalbf.c +++ b/src/math/scalbf.c @@ -4,6 +4,7 @@ static struct ff_f t[] = { #include "sanity/scalbf.h" +#include "special/scalbf.h" }; diff --git a/src/math/scalbln.c b/src/math/scalbln.c index 2b5124b..30be0cc 100644 --- a/src/math/scalbln.c +++ b/src/math/scalbln.c @@ -4,6 +4,7 @@ static struct di_d t[] = { #include "sanity/scalbln.h" +#include "special/scalbln.h" }; diff --git a/src/math/scalblnf.c b/src/math/scalblnf.c index 659bea4..1115508 100644 --- a/src/math/scalblnf.c +++ b/src/math/scalblnf.c @@ -4,6 +4,7 @@ static struct fi_f t[] = { #include "sanity/scalblnf.h" +#include "special/scalblnf.h" }; diff --git a/src/math/scalblnl.c b/src/math/scalblnl.c index fc9d0d8..12eb21c 100644 --- a/src/math/scalblnl.c +++ b/src/math/scalblnl.c @@ -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 }; diff --git a/src/math/scalbn.c b/src/math/scalbn.c index 79f6bb2..9b37f96 100644 --- a/src/math/scalbn.c +++ b/src/math/scalbn.c @@ -4,6 +4,7 @@ static struct di_d t[] = { #include "sanity/scalbn.h" +#include "special/scalbn.h" }; diff --git a/src/math/scalbnf.c b/src/math/scalbnf.c index 8b50e27..9e1203c 100644 --- a/src/math/scalbnf.c +++ b/src/math/scalbnf.c @@ -4,6 +4,7 @@ static struct fi_f t[] = { #include "sanity/scalbnf.h" +#include "special/scalbnf.h" }; diff --git a/src/math/scalbnl.c b/src/math/scalbnl.c index cb7eb15..136112c 100644 --- a/src/math/scalbnl.c +++ b/src/math/scalbnl.c @@ -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 }; diff --git a/src/math/sin.c b/src/math/sin.c index 1500162..d0c07d9 100644 --- a/src/math/sin.c +++ b/src/math/sin.c @@ -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" }; diff --git a/src/math/sincos.c b/src/math/sincos.c index 3e574f3..1c314f3 100644 --- a/src/math/sincos.c +++ b/src/math/sincos.c @@ -4,6 +4,7 @@ static struct d_dd t[] = { #include "sanity/sincos.h" +#include "special/sincos.h" }; int main(void) diff --git a/src/math/sincosf.c b/src/math/sincosf.c index e21fbd9..dcf4bb3 100644 --- a/src/math/sincosf.c +++ b/src/math/sincosf.c @@ -4,6 +4,7 @@ static struct f_ff t[] = { #include "sanity/sincosf.h" +#include "special/sincosf.h" }; int main(void) diff --git a/src/math/sincosl.c b/src/math/sincosl.c index 697eeda..85859b3 100644 --- a/src/math/sincosl.c +++ b/src/math/sincosl.c @@ -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 }; diff --git a/src/math/sinf.c b/src/math/sinf.c index 4b8c427..67edfa2 100644 --- a/src/math/sinf.c +++ b/src/math/sinf.c @@ -5,6 +5,7 @@ static struct f_f t[] = { #include "ucb/sinf.h" #include "sanity/sinf.h" +#include "special/sinf.h" }; diff --git a/src/math/sinh.c b/src/math/sinh.c index 08e1a0f..1abaadf 100644 --- a/src/math/sinh.c +++ b/src/math/sinh.c @@ -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" }; diff --git a/src/math/sinhf.c b/src/math/sinhf.c index d67f91c..97a6d46 100644 --- a/src/math/sinhf.c +++ b/src/math/sinhf.c @@ -5,6 +5,7 @@ static struct f_f t[] = { #include "ucb/sinhf.h" #include "sanity/sinhf.h" +#include "special/sinhf.h" }; diff --git a/src/math/sinhl.c b/src/math/sinhl.c index 654292d..ea8900f 100644 --- a/src/math/sinhl.c +++ b/src/math/sinhl.c @@ -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 }; diff --git a/src/math/sinl.c b/src/math/sinl.c index 399baf6..78c6623 100644 --- a/src/math/sinl.c +++ b/src/math/sinl.c @@ -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 index 0000000..5f23101 --- /dev/null +++ b/src/math/special/acos.h @@ -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 index 0000000..26f031e --- /dev/null +++ b/src/math/special/acosf.h @@ -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 index 0000000..a94fdba --- /dev/null +++ b/src/math/special/acosh.h @@ -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 index 0000000..f17b0db --- /dev/null +++ b/src/math/special/acoshf.h @@ -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 index 0000000..d91b2f0 --- /dev/null +++ b/src/math/special/acoshl.h @@ -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 index 0000000..25a9e13 --- /dev/null +++ b/src/math/special/acosl.h @@ -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 index 0000000..5a26b31 --- /dev/null +++ b/src/math/special/asin.h @@ -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 index 0000000..e4f4bb1 --- /dev/null +++ b/src/math/special/asinf.h @@ -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 index 0000000..6b7c802 --- /dev/null +++ b/src/math/special/asinh.h @@ -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 index 0000000..ea0ccb8 --- /dev/null +++ b/src/math/special/asinhf.h @@ -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 index 0000000..1054606 --- /dev/null +++ b/src/math/special/asinhl.h @@ -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 index 0000000..f4bbcee --- /dev/null +++ b/src/math/special/asinl.h @@ -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 index 0000000..2d97c6f --- /dev/null +++ b/src/math/special/atan.h @@ -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 index 0000000..0c5a2d0 --- /dev/null +++ b/src/math/special/atan2.h @@ -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 index 0000000..47421ec --- /dev/null +++ b/src/math/special/atan2f.h @@ -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 index 0000000..42ae863 --- /dev/null +++ b/src/math/special/atan2l.h @@ -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 index 0000000..0a82bff --- /dev/null +++ b/src/math/special/atanf.h @@ -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 index 0000000..42cb08e --- /dev/null +++ b/src/math/special/atanh.h @@ -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 index 0000000..e1c9aed --- /dev/null +++ b/src/math/special/atanhf.h @@ -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 index 0000000..3ad80b1 --- /dev/null +++ b/src/math/special/atanhl.h @@ -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 index 0000000..fc5805f --- /dev/null +++ b/src/math/special/atanl.h @@ -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 index 0000000..87f5993 --- /dev/null +++ b/src/math/special/cbrt.h @@ -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 index 0000000..793d807 --- /dev/null +++ b/src/math/special/cbrtf.h @@ -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 index 0000000..b94ee6a --- /dev/null +++ b/src/math/special/cbrtl.h @@ -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 index 0000000..b95a04d --- /dev/null +++ b/src/math/special/ceil.h @@ -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 index 0000000..384bbba --- /dev/null +++ b/src/math/special/ceilf.h @@ -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 index 0000000..e2a7cc6 --- /dev/null +++ b/src/math/special/ceill.h @@ -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 index 0000000..7f4dfc9 --- /dev/null +++ b/src/math/special/copysign.h @@ -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 index 0000000..dbc6b2a --- /dev/null +++ b/src/math/special/copysignf.h @@ -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 index 0000000..bc4ca04 --- /dev/null +++ b/src/math/special/copysignl.h @@ -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 index 0000000..72c383c --- /dev/null +++ b/src/math/special/cos.h @@ -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 index 0000000..f21df8f --- /dev/null +++ b/src/math/special/cosf.h @@ -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 index 0000000..3655571 --- /dev/null +++ b/src/math/special/cosh.h @@ -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 index 0000000..a664f58 --- /dev/null +++ b/src/math/special/coshf.h @@ -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 index 0000000..28faf34 --- /dev/null +++ b/src/math/special/coshl.h @@ -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 index 0000000..c9d5f93 --- /dev/null +++ b/src/math/special/cosl.h @@ -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 index 0000000..112b4c3 --- /dev/null +++ b/src/math/special/erf.h @@ -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 index 0000000..4c91ea4 --- /dev/null +++ b/src/math/special/erfc.h @@ -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 index 0000000..752bbb8 --- /dev/null +++ b/src/math/special/erfcf.h @@ -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 index 0000000..26b775d --- /dev/null +++ b/src/math/special/erfcl.h @@ -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 index 0000000..4b15725 --- /dev/null +++ b/src/math/special/erff.h @@ -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 index 0000000..4c218d9 --- /dev/null +++ b/src/math/special/erfl.h @@ -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 index 0000000..5eab46b --- /dev/null +++ b/src/math/special/exp.h @@ -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 index 0000000..403147f --- /dev/null +++ b/src/math/special/exp10.h @@ -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 index 0000000..75eb995 --- /dev/null +++ b/src/math/special/exp10f.h @@ -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 index 0000000..55bd459 --- /dev/null +++ b/src/math/special/exp10l.h @@ -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 index 0000000..95e131a --- /dev/null +++ b/src/math/special/exp2.h @@ -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 index 0000000..b8d3579 --- /dev/null +++ b/src/math/special/exp2f.h @@ -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 index 0000000..087df12 --- /dev/null +++ b/src/math/special/exp2l.h @@ -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 index 0000000..9749028 --- /dev/null +++ b/src/math/special/expf.h @@ -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 index 0000000..c4d347e --- /dev/null +++ b/src/math/special/expl.h @@ -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 index 0000000..e0d3ff9 --- /dev/null +++ b/src/math/special/expm1.h @@ -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 index 0000000..e4ea005 --- /dev/null +++ b/src/math/special/expm1f.h @@ -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 index 0000000..597977b --- /dev/null +++ b/src/math/special/expm1l.h @@ -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 index 0000000..8cb1e00 --- /dev/null +++ b/src/math/special/fabs.h @@ -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 index 0000000..82d61ad --- /dev/null +++ b/src/math/special/fabsf.h @@ -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 index 0000000..bbe5895 --- /dev/null +++ b/src/math/special/fabsl.h @@ -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 index 0000000..0b1652f --- /dev/null +++ b/src/math/special/fdim.h @@ -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 index 0000000..67ba3c1 --- /dev/null +++ b/src/math/special/fdimf.h @@ -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 index 0000000..a4ed686 --- /dev/null +++ b/src/math/special/fdiml.h @@ -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 index 0000000..090227d --- /dev/null +++ b/src/math/special/floor.h @@ -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 index 0000000..114564f --- /dev/null +++ b/src/math/special/floorf.h @@ -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 index 0000000..971c02e --- /dev/null +++ b/src/math/special/floorl.h @@ -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 index 0000000..ffa9721 --- /dev/null +++ b/src/math/special/fma.h @@ -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 index 0000000..af5ac49 --- /dev/null +++ b/src/math/special/fmaf.h @@ -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 index 0000000..e05ec5c --- /dev/null +++ b/src/math/special/fmal.h @@ -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 index 0000000..9385c06 --- /dev/null +++ b/src/math/special/fmax.h @@ -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 index 0000000..60113af --- /dev/null +++ b/src/math/special/fmaxf.h @@ -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 index 0000000..3a51f46 --- /dev/null +++ b/src/math/special/fmaxl.h @@ -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 index 0000000..f794bfd --- /dev/null +++ b/src/math/special/fmin.h @@ -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 index 0000000..b114567 --- /dev/null +++ b/src/math/special/fminf.h @@ -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 index 0000000..61c474c --- /dev/null +++ b/src/math/special/fminl.h @@ -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 index 0000000..a41456d --- /dev/null +++ b/src/math/special/fmod.h @@ -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 index 0000000..ce07cd6 --- /dev/null +++ b/src/math/special/fmodf.h @@ -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 index 0000000..61c5970 --- /dev/null +++ b/src/math/special/fmodl.h @@ -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 index 0000000..97ba49f --- /dev/null +++ b/src/math/special/frexp.h @@ -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 index 0000000..c400151 --- /dev/null +++ b/src/math/special/frexpf.h @@ -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 index 0000000..d6d44fa --- /dev/null +++ b/src/math/special/frexpl.h @@ -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 index 0000000..3cff803 --- /dev/null +++ b/src/math/special/hypot.h @@ -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 index 0000000..f87dcc0 --- /dev/null +++ b/src/math/special/hypotf.h @@ -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 index 0000000..b6c6427 --- /dev/null +++ b/src/math/special/hypotl.h @@ -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 index 0000000..2e2b8d2 --- /dev/null +++ b/src/math/special/ilogb.h @@ -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 index 0000000..0fcaa2b --- /dev/null +++ b/src/math/special/ilogbf.h @@ -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 index 0000000..d3a8d2a --- /dev/null +++ b/src/math/special/ilogbl.h @@ -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 index 0000000..be607dc --- /dev/null +++ b/src/math/special/j0.h @@ -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 index 0000000..e6779fd --- /dev/null +++ b/src/math/special/j0f.h @@ -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 index 0000000..50784cb --- /dev/null +++ b/src/math/special/j1.h @@ -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 index 0000000..ebc44c3 --- /dev/null +++ b/src/math/special/j1f.h @@ -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 index 0000000..10246d4 --- /dev/null +++ b/src/math/special/jn.h @@ -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 index 0000000..47dbeb2 --- /dev/null +++ b/src/math/special/jnf.h @@ -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 index 0000000..af596ad --- /dev/null +++ b/src/math/special/ldexp.h @@ -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 index 0000000..68bad47 --- /dev/null +++ b/src/math/special/ldexpf.h @@ -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 index 0000000..cea8e15 --- /dev/null +++ b/src/math/special/ldexpl.h @@ -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 index 0000000..9e469a2 --- /dev/null +++ b/src/math/special/lgamma.h @@ -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 index 0000000..9e469a2 --- /dev/null +++ b/src/math/special/lgamma_r.h @@ -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 index 0000000..fe27cc1 --- /dev/null +++ b/src/math/special/lgammaf.h @@ -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 index 0000000..fe27cc1 --- /dev/null +++ b/src/math/special/lgammaf_r.h @@ -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 index 0000000..f7f3f40 --- /dev/null +++ b/src/math/special/lgammal.h @@ -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 index 0000000..f7f3f40 --- /dev/null +++ b/src/math/special/lgammal_r.h @@ -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 index 0000000..9ec3739 --- /dev/null +++ b/src/math/special/llrint.h @@ -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 index 0000000..02728a3 --- /dev/null +++ b/src/math/special/llrintf.h @@ -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 index 0000000..0be4af4 --- /dev/null +++ b/src/math/special/llrintl.h @@ -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 index 0000000..8f9694e --- /dev/null +++ b/src/math/special/llround.h @@ -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 index 0000000..691f22b --- /dev/null +++ b/src/math/special/llroundf.h @@ -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 index 0000000..aee3344 --- /dev/null +++ b/src/math/special/llroundl.h @@ -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 index 0000000..8d95f19 --- /dev/null +++ b/src/math/special/log.h @@ -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 index 0000000..8d95f19 --- /dev/null +++ b/src/math/special/log10.h @@ -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 index 0000000..ce11d0e --- /dev/null +++ b/src/math/special/log10f.h @@ -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 index 0000000..b5abdbc --- /dev/null +++ b/src/math/special/log10l.h @@ -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 index 0000000..08e0bab --- /dev/null +++ b/src/math/special/log1p.h @@ -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 index 0000000..4fc4ff7 --- /dev/null +++ b/src/math/special/log1pf.h @@ -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 index 0000000..0e646f1 --- /dev/null +++ b/src/math/special/log1pl.h @@ -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 index 0000000..8d95f19 --- /dev/null +++ b/src/math/special/log2.h @@ -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 index 0000000..ce11d0e --- /dev/null +++ b/src/math/special/log2f.h @@ -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 index 0000000..b5abdbc --- /dev/null +++ b/src/math/special/log2l.h @@ -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 index 0000000..af71604 --- /dev/null +++ b/src/math/special/logb.h @@ -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 index 0000000..3fdc761 --- /dev/null +++ b/src/math/special/logbf.h @@ -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 index 0000000..691933d --- /dev/null +++ b/src/math/special/logbl.h @@ -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 index 0000000..ce11d0e --- /dev/null +++ b/src/math/special/logf.h @@ -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 index 0000000..b5abdbc --- /dev/null +++ b/src/math/special/logl.h @@ -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 index 0000000..9ec3739 --- /dev/null +++ b/src/math/special/lrint.h @@ -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 index 0000000..02728a3 --- /dev/null +++ b/src/math/special/lrintf.h @@ -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 index 0000000..0be4af4 --- /dev/null +++ b/src/math/special/lrintl.h @@ -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 index 0000000..8f9694e --- /dev/null +++ b/src/math/special/lround.h @@ -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 index 0000000..691f22b --- /dev/null +++ b/src/math/special/lroundf.h @@ -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 index 0000000..aee3344 --- /dev/null +++ b/src/math/special/lroundl.h @@ -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 index 0000000..1486bdb --- /dev/null +++ b/src/math/special/modf.h @@ -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 index 0000000..174374c --- /dev/null +++ b/src/math/special/modff.h @@ -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 index 0000000..0277818 --- /dev/null +++ b/src/math/special/modfl.h @@ -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 index 0000000..5f99bda --- /dev/null +++ b/src/math/special/nearbyint.h @@ -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 index 0000000..0c3dcff --- /dev/null +++ b/src/math/special/nearbyintf.h @@ -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 index 0000000..c01fe54 --- /dev/null +++ b/src/math/special/nearbyintl.h @@ -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 index 0000000..7df520e --- /dev/null +++ b/src/math/special/nextafter.h @@ -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 index 0000000..1bb1e44 --- /dev/null +++ b/src/math/special/nextafterf.h @@ -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 index 0000000..111ad30 --- /dev/null +++ b/src/math/special/nextafterl.h @@ -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 index 0000000..e787221 --- /dev/null +++ b/src/math/special/nexttoward.h @@ -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 index 0000000..9f80551 --- /dev/null +++ b/src/math/special/nexttowardf.h @@ -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 index 0000000..111ad30 --- /dev/null +++ b/src/math/special/nexttowardl.h @@ -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 index 0000000..fed7899 --- /dev/null +++ b/src/math/special/pow.h @@ -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 index 0000000..8c7d72d --- /dev/null +++ b/src/math/special/powf.h @@ -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 index 0000000..c0e914c --- /dev/null +++ b/src/math/special/powl.h @@ -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 index 0000000..54be6ec --- /dev/null +++ b/src/math/special/remainder.h @@ -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 index 0000000..074a15d --- /dev/null +++ b/src/math/special/remainderf.h @@ -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 index 0000000..5667518 --- /dev/null +++ b/src/math/special/remainderl.h @@ -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 index 0000000..7fe94dd --- /dev/null +++ b/src/math/special/remquo.h @@ -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 index 0000000..c19efdf --- /dev/null +++ b/src/math/special/remquof.h @@ -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 index 0000000..e0007a3 --- /dev/null +++ b/src/math/special/remquol.h @@ -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 index 0000000..0966cd7 --- /dev/null +++ b/src/math/special/rint.h @@ -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 index 0000000..f487a01 --- /dev/null +++ b/src/math/special/rintf.h @@ -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 index 0000000..5bc0320 --- /dev/null +++ b/src/math/special/rintl.h @@ -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 index 0000000..bc1bb01 --- /dev/null +++ b/src/math/special/round.h @@ -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 index 0000000..2697a4b --- /dev/null +++ b/src/math/special/roundf.h @@ -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 index 0000000..27ac120 --- /dev/null +++ b/src/math/special/roundl.h @@ -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 index 0000000..c9fa637 --- /dev/null +++ b/src/math/special/scalb.h @@ -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 index 0000000..6218c39 --- /dev/null +++ b/src/math/special/scalbf.h @@ -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 index 0000000..af596ad --- /dev/null +++ b/src/math/special/scalbln.h @@ -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 index 0000000..68bad47 --- /dev/null +++ b/src/math/special/scalblnf.h @@ -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 index 0000000..cea8e15 --- /dev/null +++ b/src/math/special/scalblnl.h @@ -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 index 0000000..af596ad --- /dev/null +++ b/src/math/special/scalbn.h @@ -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 index 0000000..68bad47 --- /dev/null +++ b/src/math/special/scalbnf.h @@ -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 index 0000000..cea8e15 --- /dev/null +++ b/src/math/special/scalbnl.h @@ -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 index 0000000..ccafd59 --- /dev/null +++ b/src/math/special/sin.h @@ -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 index 0000000..f91a673 --- /dev/null +++ b/src/math/special/sincos.h @@ -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 index 0000000..789e490 --- /dev/null +++ b/src/math/special/sincosf.h @@ -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 index 0000000..a9fc0b4 --- /dev/null +++ b/src/math/special/sincosl.h @@ -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 index 0000000..c8414f6 --- /dev/null +++ b/src/math/special/sinf.h @@ -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 index 0000000..758c18b --- /dev/null +++ b/src/math/special/sinh.h @@ -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 index 0000000..6005478 --- /dev/null +++ b/src/math/special/sinhf.h @@ -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 index 0000000..98eb39e --- /dev/null +++ b/src/math/special/sinhl.h @@ -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 index 0000000..221a0ba --- /dev/null +++ b/src/math/special/sinl.h @@ -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 index 0000000..45246f5 --- /dev/null +++ b/src/math/special/sqrt.h @@ -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 index 0000000..a1e6117 --- /dev/null +++ b/src/math/special/sqrtf.h @@ -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 index 0000000..f5fdf3a --- /dev/null +++ b/src/math/special/sqrtl.h @@ -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 index 0000000..ccafd59 --- /dev/null +++ b/src/math/special/tan.h @@ -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 index 0000000..c8414f6 --- /dev/null +++ b/src/math/special/tanf.h @@ -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 index 0000000..112b4c3 --- /dev/null +++ b/src/math/special/tanh.h @@ -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 index 0000000..4b15725 --- /dev/null +++ b/src/math/special/tanhf.h @@ -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 index 0000000..4c218d9 --- /dev/null +++ b/src/math/special/tanhl.h @@ -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 index 0000000..221a0ba --- /dev/null +++ b/src/math/special/tanl.h @@ -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 index 0000000..58e5425 --- /dev/null +++ b/src/math/special/tgamma.h @@ -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 index 0000000..9c5e3bc --- /dev/null +++ b/src/math/special/tgammaf.h @@ -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 index 0000000..2c17ded --- /dev/null +++ b/src/math/special/tgammal.h @@ -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 index 0000000..e3ce2c4 --- /dev/null +++ b/src/math/special/trunc.h @@ -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 index 0000000..010836b --- /dev/null +++ b/src/math/special/truncf.h @@ -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 index 0000000..74ebaa7 --- /dev/null +++ b/src/math/special/truncl.h @@ -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 index 0000000..f9267e2 --- /dev/null +++ b/src/math/special/y0.h @@ -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 index 0000000..820bee9 --- /dev/null +++ b/src/math/special/y0f.h @@ -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 index 0000000..f9267e2 --- /dev/null +++ b/src/math/special/y1.h @@ -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 index 0000000..820bee9 --- /dev/null +++ b/src/math/special/y1f.h @@ -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 index 0000000..61ac00b --- /dev/null +++ b/src/math/special/yn.h @@ -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 index 0000000..0e3894a --- /dev/null +++ b/src/math/special/ynf.h @@ -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/sqrt.c b/src/math/sqrt.c index dae1e20..b6b7de6 100644 --- a/src/math/sqrt.c +++ b/src/math/sqrt.c @@ -5,6 +5,7 @@ static struct d_d t[] = { #include "ucb/sqrt.h" #include "sanity/sqrt.h" +#include "special/sqrt.h" }; diff --git a/src/math/sqrtf.c b/src/math/sqrtf.c index fb910d0..1809ef8 100644 --- a/src/math/sqrtf.c +++ b/src/math/sqrtf.c @@ -5,6 +5,7 @@ static struct f_f t[] = { #include "ucb/sqrtf.h" #include "sanity/sqrtf.h" +#include "special/sqrtf.h" }; diff --git a/src/math/sqrtl.c b/src/math/sqrtl.c index ab22eac..90f77f4 100644 --- a/src/math/sqrtl.c +++ b/src/math/sqrtl.c @@ -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 }; diff --git a/src/math/tan.c b/src/math/tan.c index 86c69b4..01452f1 100644 --- a/src/math/tan.c +++ b/src/math/tan.c @@ -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" }; diff --git a/src/math/tanf.c b/src/math/tanf.c index 5e0759a..58696e7 100644 --- a/src/math/tanf.c +++ b/src/math/tanf.c @@ -5,6 +5,7 @@ static struct f_f t[] = { #include "ucb/tanf.h" #include "sanity/tanf.h" +#include "special/tanf.h" }; diff --git a/src/math/tanh.c b/src/math/tanh.c index 59376e1..1f3541f 100644 --- a/src/math/tanh.c +++ b/src/math/tanh.c @@ -5,6 +5,7 @@ static struct d_d t[] = { #include "ucb/tanh.h" #include "sanity/tanh.h" +#include "special/tanh.h" }; diff --git a/src/math/tanhf.c b/src/math/tanhf.c index effeb49..6c46e6a 100644 --- a/src/math/tanhf.c +++ b/src/math/tanhf.c @@ -5,6 +5,7 @@ static struct f_f t[] = { #include "ucb/tanhf.h" #include "sanity/tanhf.h" +#include "special/tanhf.h" }; diff --git a/src/math/tanhl.c b/src/math/tanhl.c index af9629b..7d34398 100644 --- a/src/math/tanhl.c +++ b/src/math/tanhl.c @@ -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 }; diff --git a/src/math/tanl.c b/src/math/tanl.c index c4980ab..f8b3f60 100644 --- a/src/math/tanl.c +++ b/src/math/tanl.c @@ -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 }; diff --git a/src/math/tgamma.c b/src/math/tgamma.c index f286a62..cabe9e8 100644 --- a/src/math/tgamma.c +++ b/src/math/tgamma.c @@ -4,6 +4,7 @@ static struct d_d t[] = { #include "sanity/tgamma.h" +#include "special/tgamma.h" }; diff --git a/src/math/tgammaf.c b/src/math/tgammaf.c index 4d841a4..350e63d 100644 --- a/src/math/tgammaf.c +++ b/src/math/tgammaf.c @@ -4,6 +4,7 @@ static struct f_f t[] = { #include "sanity/tgammaf.h" +#include "special/tgammaf.h" }; diff --git a/src/math/tgammal.c b/src/math/tgammal.c index 6bfffeb..4955812 100644 --- a/src/math/tgammal.c +++ b/src/math/tgammal.c @@ -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 }; diff --git a/src/math/trunc.c b/src/math/trunc.c index 071695b..0236a3d 100644 --- a/src/math/trunc.c +++ b/src/math/trunc.c @@ -4,6 +4,7 @@ static struct d_d t[] = { #include "sanity/trunc.h" +#include "special/trunc.h" }; diff --git a/src/math/truncf.c b/src/math/truncf.c index 739a000..499fb4f 100644 --- a/src/math/truncf.c +++ b/src/math/truncf.c @@ -4,6 +4,7 @@ static struct f_f t[] = { #include "sanity/truncf.h" +#include "special/truncf.h" }; diff --git a/src/math/truncl.c b/src/math/truncl.c index a3b3a7a..3cbdc5e 100644 --- a/src/math/truncl.c +++ b/src/math/truncl.c @@ -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 }; diff --git a/src/math/y0.c b/src/math/y0.c index 2998660..d098064 100644 --- a/src/math/y0.c +++ b/src/math/y0.c @@ -4,6 +4,7 @@ static struct d_d t[] = { #include "sanity/y0.h" +#include "special/y0.h" }; diff --git a/src/math/y0f.c b/src/math/y0f.c index 3b74777..63880fb 100644 --- a/src/math/y0f.c +++ b/src/math/y0f.c @@ -4,6 +4,7 @@ static struct f_f t[] = { #include "sanity/y0f.h" +#include "special/y0f.h" }; diff --git a/src/math/y1.c b/src/math/y1.c index a5e3b6a..95d971c 100644 --- a/src/math/y1.c +++ b/src/math/y1.c @@ -4,6 +4,7 @@ static struct d_d t[] = { #include "sanity/y1.h" +#include "special/y1.h" }; diff --git a/src/math/y1f.c b/src/math/y1f.c index d396b61..6871d67 100644 --- a/src/math/y1f.c +++ b/src/math/y1f.c @@ -4,6 +4,7 @@ static struct f_f t[] = { #include "sanity/y1f.h" +#include "special/y1f.h" }; diff --git a/src/math/yn.c b/src/math/yn.c index eb7e5ce..9763c40 100644 --- a/src/math/yn.c +++ b/src/math/yn.c @@ -4,6 +4,7 @@ static struct di_d t[] = { #include "sanity/yn.h" +#include "special/yn.h" }; int main(void) diff --git a/src/math/ynf.c b/src/math/ynf.c index fbd0359..e52ad6d 100644 --- a/src/math/ynf.c +++ b/src/math/ynf.c @@ -4,6 +4,7 @@ static struct fi_f t[] = { #include "sanity/ynf.h" +#include "special/ynf.h" }; int main(void) -- 2.20.1