From 482f212714e4e795d1935ee4e4a19d8096159751 Mon Sep 17 00:00:00 2001 From: Chengyu HAN Date: Thu, 25 Jan 2024 23:55:14 -0600 Subject: [PATCH 1/8] test: add musl-libc-test based on http://nsz.repo.hu/git/?p=libc-test;a=commit;h=18e28496adee3d84fefdda6efcb9c5b8996a2398 --- test/musl/.gitignore | 7 + test/musl/AUTHORS | 7 + test/musl/COPYRIGHT | 29 + test/musl/Makefile | 154 ++ test/musl/README | 105 ++ test/musl/config.mak.def | 11 + test/musl/src/api/Makefile | 5 + test/musl/src/api/complex.c | 76 + test/musl/src/api/fenv.c | 31 + test/musl/src/api/float.c | 39 + test/musl/src/api/main.c | 1 + test/musl/src/api/math.c | 235 +++ test/musl/src/common/Makefile | 5 + test/musl/src/common/mtest.c | 144 ++ test/musl/src/common/mtest.h | 135 ++ test/musl/src/common/options.h.in | 125 ++ test/musl/src/common/print.c | 28 + test/musl/src/common/runtest.c | 100 ++ test/musl/src/common/setrlim.c | 26 + test/musl/src/common/test.h | 13 + test/musl/src/math/Makefile | 5 + test/musl/src/math/README | 9 + test/musl/src/math/acos.c | 45 + test/musl/src/math/acosf.c | 44 + test/musl/src/math/acosh.c | 46 + test/musl/src/math/acoshf.c | 43 + test/musl/src/math/acoshl.c | 49 + test/musl/src/math/acosl.c | 51 + test/musl/src/math/asin.c | 45 + test/musl/src/math/asinf.c | 44 + test/musl/src/math/asinh.c | 46 + test/musl/src/math/asinhf.c | 43 + test/musl/src/math/asinhl.c | 49 + test/musl/src/math/asinl.c | 51 + test/musl/src/math/atan.c | 45 + test/musl/src/math/atan2.c | 44 + test/musl/src/math/atan2f.c | 44 + test/musl/src/math/atan2l.c | 50 + test/musl/src/math/atanf.c | 44 + test/musl/src/math/atanh.c | 43 + test/musl/src/math/atanhf.c | 43 + test/musl/src/math/atanhl.c | 49 + test/musl/src/math/atanl.c | 51 + test/musl/src/math/cbrt.c | 43 + test/musl/src/math/cbrtf.c | 43 + test/musl/src/math/cbrtl.c | 49 + test/musl/src/math/ceil.c | 44 + test/musl/src/math/ceilf.c | 44 + test/musl/src/math/ceill.c | 50 + test/musl/src/math/copysign.c | 43 + test/musl/src/math/copysignf.c | 43 + test/musl/src/math/copysignl.c | 49 + test/musl/src/math/cos.c | 48 + test/musl/src/math/cosf.c | 44 + test/musl/src/math/cosh.c | 45 + test/musl/src/math/coshf.c | 44 + test/musl/src/math/coshl.c | 51 + test/musl/src/math/cosl.c | 51 + test/musl/src/math/drem.c | 44 + test/musl/src/math/dremf.c | 44 + test/musl/src/math/erf.c | 46 + test/musl/src/math/erfc.c | 46 + test/musl/src/math/erfcf.c | 43 + test/musl/src/math/erfcl.c | 49 + test/musl/src/math/erff.c | 43 + test/musl/src/math/erfl.c | 49 + test/musl/src/math/exp.c | 45 + test/musl/src/math/exp10.c | 44 + test/musl/src/math/exp10f.c | 44 + test/musl/src/math/exp10l.c | 50 + test/musl/src/math/exp2.c | 46 + test/musl/src/math/exp2f.c | 43 + test/musl/src/math/exp2l.c | 49 + test/musl/src/math/expf.c | 44 + test/musl/src/math/expl.c | 51 + test/musl/src/math/expm1.c | 44 + test/musl/src/math/expm1f.c | 43 + test/musl/src/math/expm1l.c | 53 + test/musl/src/math/fabs.c | 44 + test/musl/src/math/fabsf.c | 44 + test/musl/src/math/fabsl.c | 50 + test/musl/src/math/fdim.c | 43 + test/musl/src/math/fdimf.c | 43 + test/musl/src/math/fdiml.c | 49 + test/musl/src/math/fenv.c | 275 ++++ test/musl/src/math/floor.c | 44 + test/musl/src/math/floorf.c | 44 + test/musl/src/math/floorl.c | 50 + test/musl/src/math/fma.c | 47 + test/musl/src/math/fmaf.c | 47 + test/musl/src/math/fmal.c | 52 + test/musl/src/math/fmax.c | 43 + test/musl/src/math/fmaxf.c | 43 + test/musl/src/math/fmaxl.c | 49 + test/musl/src/math/fmin.c | 43 + test/musl/src/math/fminf.c | 43 + test/musl/src/math/fminl.c | 49 + test/musl/src/math/fmod.c | 44 + test/musl/src/math/fmodf.c | 44 + test/musl/src/math/fmodl.c | 50 + test/musl/src/math/fpclassify.c | 132 ++ test/musl/src/math/frexp.c | 44 + test/musl/src/math/frexpf.c | 44 + test/musl/src/math/frexpl.c | 50 + test/musl/src/math/hypot.c | 44 + test/musl/src/math/hypotf.c | 44 + test/musl/src/math/hypotl.c | 50 + test/musl/src/math/ilogb.c | 41 + test/musl/src/math/ilogbf.c | 41 + test/musl/src/math/ilogbl.c | 47 + test/musl/src/math/isless.c | 107 ++ test/musl/src/math/j0.c | 47 + test/musl/src/math/j0f.c | 48 + test/musl/src/math/j1.c | 44 + test/musl/src/math/j1f.c | 45 + test/musl/src/math/jn.c | 46 + test/musl/src/math/jnf.c | 47 + test/musl/src/math/ldexp.c | 43 + test/musl/src/math/ldexpf.c | 43 + test/musl/src/math/ldexpl.c | 49 + test/musl/src/math/lgamma.c | 50 + test/musl/src/math/lgamma_r.c | 51 + test/musl/src/math/lgammaf.c | 52 + test/musl/src/math/lgammaf_r.c | 51 + test/musl/src/math/lgammal.c | 55 + test/musl/src/math/lgammal_r.c | 52 + test/musl/src/math/llrint.c | 41 + test/musl/src/math/llrintf.c | 41 + test/musl/src/math/llrintl.c | 47 + test/musl/src/math/llround.c | 41 + test/musl/src/math/llroundf.c | 41 + test/musl/src/math/llroundl.c | 47 + test/musl/src/math/log.c | 45 + test/musl/src/math/log10.c | 45 + test/musl/src/math/log10f.c | 44 + test/musl/src/math/log10l.c | 51 + test/musl/src/math/log1p.c | 44 + test/musl/src/math/log1pf.c | 43 + test/musl/src/math/log1pl.c | 50 + test/musl/src/math/log2.c | 44 + test/musl/src/math/log2f.c | 43 + test/musl/src/math/log2l.c | 50 + test/musl/src/math/logb.c | 43 + test/musl/src/math/logbf.c | 43 + test/musl/src/math/logbl.c | 49 + test/musl/src/math/logf.c | 44 + test/musl/src/math/logl.c | 51 + test/musl/src/math/lrint.c | 41 + test/musl/src/math/lrintf.c | 41 + test/musl/src/math/lrintl.c | 47 + test/musl/src/math/lround.c | 41 + test/musl/src/math/lroundf.c | 41 + test/musl/src/math/lroundl.c | 47 + test/musl/src/math/modf.c | 44 + test/musl/src/math/modff.c | 44 + test/musl/src/math/modfl.c | 49 + test/musl/src/math/nearbyint.c | 43 + test/musl/src/math/nearbyintf.c | 43 + test/musl/src/math/nearbyintl.c | 49 + test/musl/src/math/nextafter.c | 43 + test/musl/src/math/nextafterf.c | 43 + test/musl/src/math/nextafterl.c | 49 + test/musl/src/math/nexttoward.c | 50 + test/musl/src/math/nexttowardf.c | 50 + test/musl/src/math/nexttowardl.c | 49 + test/musl/src/math/pow.c | 48 + test/musl/src/math/pow10.c | 44 + test/musl/src/math/pow10f.c | 44 + test/musl/src/math/pow10l.c | 50 + test/musl/src/math/powf.c | 47 + test/musl/src/math/powl.c | 51 + test/musl/src/math/remainder.c | 43 + test/musl/src/math/remainderf.c | 43 + test/musl/src/math/remainderl.c | 49 + test/musl/src/math/remquo.c | 45 + test/musl/src/math/remquof.c | 45 + test/musl/src/math/remquol.c | 52 + test/musl/src/math/rint.c | 43 + test/musl/src/math/rintf.c | 43 + test/musl/src/math/rintl.c | 49 + test/musl/src/math/round.c | 43 + test/musl/src/math/roundf.c | 43 + test/musl/src/math/roundl.c | 49 + test/musl/src/math/sanity/acos.h | 10 + test/musl/src/math/sanity/acosf.h | 10 + test/musl/src/math/sanity/acosh.h | 10 + test/musl/src/math/sanity/acoshf.h | 10 + test/musl/src/math/sanity/acoshl.h | 10 + test/musl/src/math/sanity/acosl.h | 10 + test/musl/src/math/sanity/asin.h | 10 + test/musl/src/math/sanity/asinf.h | 10 + test/musl/src/math/sanity/asinh.h | 10 + test/musl/src/math/sanity/asinhf.h | 10 + test/musl/src/math/sanity/asinhl.h | 10 + test/musl/src/math/sanity/asinl.h | 10 + test/musl/src/math/sanity/atan.h | 10 + test/musl/src/math/sanity/atan2.h | 10 + test/musl/src/math/sanity/atan2f.h | 10 + test/musl/src/math/sanity/atan2l.h | 10 + test/musl/src/math/sanity/atanf.h | 10 + test/musl/src/math/sanity/atanh.h | 10 + test/musl/src/math/sanity/atanhf.h | 10 + test/musl/src/math/sanity/atanhl.h | 10 + test/musl/src/math/sanity/atanl.h | 10 + test/musl/src/math/sanity/cbrt.h | 10 + test/musl/src/math/sanity/cbrtf.h | 10 + test/musl/src/math/sanity/cbrtl.h | 10 + test/musl/src/math/sanity/ceil.h | 10 + test/musl/src/math/sanity/ceilf.h | 10 + test/musl/src/math/sanity/ceill.h | 10 + test/musl/src/math/sanity/copysign.h | 10 + test/musl/src/math/sanity/copysignf.h | 10 + test/musl/src/math/sanity/copysignl.h | 10 + test/musl/src/math/sanity/cos.h | 10 + test/musl/src/math/sanity/cosf.h | 10 + test/musl/src/math/sanity/cosh.h | 10 + test/musl/src/math/sanity/coshf.h | 10 + test/musl/src/math/sanity/coshl.h | 10 + test/musl/src/math/sanity/cosl.h | 10 + test/musl/src/math/sanity/erf.h | 10 + test/musl/src/math/sanity/erfc.h | 10 + test/musl/src/math/sanity/erfcf.h | 10 + test/musl/src/math/sanity/erfcl.h | 10 + test/musl/src/math/sanity/erff.h | 10 + test/musl/src/math/sanity/erfl.h | 10 + test/musl/src/math/sanity/exp.h | 10 + test/musl/src/math/sanity/exp10.h | 10 + test/musl/src/math/sanity/exp10f.h | 10 + test/musl/src/math/sanity/exp10l.h | 10 + test/musl/src/math/sanity/exp2.h | 10 + test/musl/src/math/sanity/exp2f.h | 10 + test/musl/src/math/sanity/exp2l.h | 10 + test/musl/src/math/sanity/expf.h | 10 + test/musl/src/math/sanity/expl.h | 10 + test/musl/src/math/sanity/expm1.h | 10 + test/musl/src/math/sanity/expm1f.h | 10 + test/musl/src/math/sanity/expm1l.h | 10 + test/musl/src/math/sanity/fabs.h | 10 + test/musl/src/math/sanity/fabsf.h | 10 + test/musl/src/math/sanity/fabsl.h | 10 + test/musl/src/math/sanity/fdim.h | 10 + test/musl/src/math/sanity/fdimf.h | 10 + test/musl/src/math/sanity/fdiml.h | 10 + test/musl/src/math/sanity/floor.h | 10 + test/musl/src/math/sanity/floorf.h | 10 + test/musl/src/math/sanity/floorl.h | 10 + test/musl/src/math/sanity/fma.h | 5 + test/musl/src/math/sanity/fmaf.h | 5 + test/musl/src/math/sanity/fmal.h | 5 + test/musl/src/math/sanity/fmax.h | 10 + test/musl/src/math/sanity/fmaxf.h | 10 + test/musl/src/math/sanity/fmaxl.h | 10 + test/musl/src/math/sanity/fmin.h | 10 + test/musl/src/math/sanity/fminf.h | 10 + test/musl/src/math/sanity/fminl.h | 10 + test/musl/src/math/sanity/fmod.h | 10 + test/musl/src/math/sanity/fmodf.h | 10 + test/musl/src/math/sanity/fmodl.h | 10 + test/musl/src/math/sanity/frexp.h | 10 + test/musl/src/math/sanity/frexpf.h | 10 + test/musl/src/math/sanity/frexpl.h | 10 + test/musl/src/math/sanity/hypot.h | 10 + test/musl/src/math/sanity/hypotf.h | 10 + test/musl/src/math/sanity/hypotl.h | 10 + test/musl/src/math/sanity/ilogb.h | 10 + test/musl/src/math/sanity/ilogbf.h | 10 + test/musl/src/math/sanity/ilogbl.h | 10 + test/musl/src/math/sanity/j0.h | 10 + test/musl/src/math/sanity/j0f.h | 10 + test/musl/src/math/sanity/j1.h | 10 + test/musl/src/math/sanity/j1f.h | 10 + test/musl/src/math/sanity/jn.h | 10 + test/musl/src/math/sanity/jnf.h | 10 + test/musl/src/math/sanity/ldexp.h | 10 + test/musl/src/math/sanity/ldexpf.h | 10 + test/musl/src/math/sanity/ldexpl.h | 10 + test/musl/src/math/sanity/lgamma.h | 10 + test/musl/src/math/sanity/lgamma_r.h | 10 + test/musl/src/math/sanity/lgammaf.h | 10 + test/musl/src/math/sanity/lgammaf_r.h | 10 + test/musl/src/math/sanity/lgammal.h | 10 + test/musl/src/math/sanity/lgammal_r.h | 10 + test/musl/src/math/sanity/llrint.h | 10 + test/musl/src/math/sanity/llrintf.h | 10 + test/musl/src/math/sanity/llrintl.h | 10 + test/musl/src/math/sanity/llround.h | 10 + test/musl/src/math/sanity/llroundf.h | 10 + test/musl/src/math/sanity/llroundl.h | 10 + test/musl/src/math/sanity/log.h | 10 + test/musl/src/math/sanity/log10.h | 10 + test/musl/src/math/sanity/log10f.h | 10 + test/musl/src/math/sanity/log10l.h | 10 + test/musl/src/math/sanity/log1p.h | 10 + test/musl/src/math/sanity/log1pf.h | 10 + test/musl/src/math/sanity/log1pl.h | 10 + test/musl/src/math/sanity/log2.h | 10 + test/musl/src/math/sanity/log2f.h | 10 + test/musl/src/math/sanity/log2l.h | 10 + test/musl/src/math/sanity/logb.h | 10 + test/musl/src/math/sanity/logbf.h | 10 + test/musl/src/math/sanity/logbl.h | 10 + test/musl/src/math/sanity/logf.h | 10 + test/musl/src/math/sanity/logl.h | 10 + test/musl/src/math/sanity/lrint.h | 10 + test/musl/src/math/sanity/lrintf.h | 10 + test/musl/src/math/sanity/lrintl.h | 10 + test/musl/src/math/sanity/lround.h | 10 + test/musl/src/math/sanity/lroundf.h | 10 + test/musl/src/math/sanity/lroundl.h | 10 + test/musl/src/math/sanity/modf.h | 10 + test/musl/src/math/sanity/modff.h | 10 + test/musl/src/math/sanity/modfl.h | 10 + test/musl/src/math/sanity/nearbyint.h | 10 + test/musl/src/math/sanity/nearbyintf.h | 10 + test/musl/src/math/sanity/nearbyintl.h | 10 + test/musl/src/math/sanity/nextafter.h | 10 + test/musl/src/math/sanity/nextafterf.h | 10 + test/musl/src/math/sanity/nextafterl.h | 10 + test/musl/src/math/sanity/nexttoward.h | 10 + test/musl/src/math/sanity/nexttowardf.h | 10 + test/musl/src/math/sanity/nexttowardl.h | 10 + test/musl/src/math/sanity/pow.h | 10 + test/musl/src/math/sanity/pow10.h | 10 + test/musl/src/math/sanity/pow10f.h | 10 + test/musl/src/math/sanity/pow10l.h | 10 + test/musl/src/math/sanity/powf.h | 10 + test/musl/src/math/sanity/powl.h | 10 + test/musl/src/math/sanity/remainder.h | 10 + test/musl/src/math/sanity/remainderf.h | 10 + test/musl/src/math/sanity/remainderl.h | 10 + test/musl/src/math/sanity/remquo.h | 10 + test/musl/src/math/sanity/remquof.h | 10 + test/musl/src/math/sanity/remquol.h | 10 + test/musl/src/math/sanity/rint.h | 10 + test/musl/src/math/sanity/rintf.h | 10 + test/musl/src/math/sanity/rintl.h | 10 + test/musl/src/math/sanity/round.h | 10 + test/musl/src/math/sanity/roundf.h | 10 + test/musl/src/math/sanity/roundl.h | 10 + test/musl/src/math/sanity/scalb.h | 10 + test/musl/src/math/sanity/scalbf.h | 10 + test/musl/src/math/sanity/scalbln.h | 10 + test/musl/src/math/sanity/scalblnf.h | 10 + test/musl/src/math/sanity/scalblnl.h | 10 + test/musl/src/math/sanity/scalbn.h | 10 + test/musl/src/math/sanity/scalbnf.h | 10 + test/musl/src/math/sanity/scalbnl.h | 10 + test/musl/src/math/sanity/sin.h | 10 + test/musl/src/math/sanity/sincos.h | 10 + test/musl/src/math/sanity/sincosf.h | 10 + test/musl/src/math/sanity/sincosl.h | 10 + test/musl/src/math/sanity/sinf.h | 10 + test/musl/src/math/sanity/sinh.h | 10 + test/musl/src/math/sanity/sinhf.h | 10 + test/musl/src/math/sanity/sinhl.h | 10 + test/musl/src/math/sanity/sinl.h | 10 + test/musl/src/math/sanity/sqrt.h | 10 + test/musl/src/math/sanity/sqrtf.h | 10 + test/musl/src/math/sanity/sqrtl.h | 10 + test/musl/src/math/sanity/tan.h | 10 + test/musl/src/math/sanity/tanf.h | 10 + test/musl/src/math/sanity/tanh.h | 10 + test/musl/src/math/sanity/tanhf.h | 10 + test/musl/src/math/sanity/tanhl.h | 10 + test/musl/src/math/sanity/tanl.h | 10 + test/musl/src/math/sanity/tgamma.h | 10 + test/musl/src/math/sanity/tgammaf.h | 10 + test/musl/src/math/sanity/tgammal.h | 10 + test/musl/src/math/sanity/trunc.h | 10 + test/musl/src/math/sanity/truncf.h | 10 + test/musl/src/math/sanity/truncl.h | 10 + test/musl/src/math/sanity/y0.h | 10 + test/musl/src/math/sanity/y0f.h | 10 + test/musl/src/math/sanity/y1.h | 10 + test/musl/src/math/sanity/y1f.h | 10 + test/musl/src/math/sanity/yn.h | 10 + test/musl/src/math/sanity/ynf.h | 10 + test/musl/src/math/scalb.c | 45 + test/musl/src/math/scalbf.c | 45 + test/musl/src/math/scalbln.c | 43 + test/musl/src/math/scalblnf.c | 43 + test/musl/src/math/scalblnl.c | 49 + test/musl/src/math/scalbn.c | 43 + test/musl/src/math/scalbnf.c | 43 + test/musl/src/math/scalbnl.c | 49 + test/musl/src/math/sin.c | 48 + test/musl/src/math/sincos.c | 45 + test/musl/src/math/sincosf.c | 45 + test/musl/src/math/sincosl.c | 50 + test/musl/src/math/sinf.c | 44 + test/musl/src/math/sinh.c | 48 + test/musl/src/math/sinhf.c | 47 + test/musl/src/math/sinhl.c | 54 + test/musl/src/math/sinl.c | 51 + test/musl/src/math/special/acos.h | 10 + test/musl/src/math/special/acosf.h | 11 + test/musl/src/math/special/acosh.h | 25 + test/musl/src/math/special/acoshf.h | 8 + test/musl/src/math/special/acoshl.h | 7 + test/musl/src/math/special/acosl.h | 8 + test/musl/src/math/special/asin.h | 10 + test/musl/src/math/special/asinf.h | 10 + test/musl/src/math/special/asinh.h | 24 + test/musl/src/math/special/asinhf.h | 5 + test/musl/src/math/special/asinhl.h | 6 + test/musl/src/math/special/asinl.h | 9 + test/musl/src/math/special/atan.h | 8 + test/musl/src/math/special/atan2.h | 30 + test/musl/src/math/special/atan2f.h | 28 + test/musl/src/math/special/atan2l.h | 28 + test/musl/src/math/special/atanf.h | 7 + test/musl/src/math/special/atanh.h | 14 + test/musl/src/math/special/atanhf.h | 14 + test/musl/src/math/special/atanhl.h | 14 + test/musl/src/math/special/atanl.h | 8 + test/musl/src/math/special/cbrt.h | 10 + test/musl/src/math/special/cbrtf.h | 10 + test/musl/src/math/special/cbrtl.h | 11 + test/musl/src/math/special/ceil.h | 45 + test/musl/src/math/special/ceilf.h | 45 + test/musl/src/math/special/ceill.h | 45 + test/musl/src/math/special/copysign.h | 13 + test/musl/src/math/special/copysignf.h | 13 + test/musl/src/math/special/copysignl.h | 13 + test/musl/src/math/special/cos.h | 78 + test/musl/src/math/special/cosf.h | 5 + test/musl/src/math/special/cosh.h | 5 + test/musl/src/math/special/coshf.h | 5 + test/musl/src/math/special/coshl.h | 5 + test/musl/src/math/special/cosl.h | 5 + test/musl/src/math/special/erf.h | 5 + test/musl/src/math/special/erfc.h | 6 + test/musl/src/math/special/erfcf.h | 5 + test/musl/src/math/special/erfcl.h | 5 + test/musl/src/math/special/erff.h | 5 + test/musl/src/math/special/erfl.h | 5 + test/musl/src/math/special/exp.h | 11 + test/musl/src/math/special/exp10.h | 7 + test/musl/src/math/special/exp10f.h | 7 + test/musl/src/math/special/exp10l.h | 8 + test/musl/src/math/special/exp2.h | 25 + test/musl/src/math/special/exp2f.h | 14 + test/musl/src/math/special/exp2l.h | 26 + test/musl/src/math/special/expf.h | 14 + test/musl/src/math/special/expl.h | 37 + test/musl/src/math/special/expm1.h | 9 + test/musl/src/math/special/expm1f.h | 7 + test/musl/src/math/special/expm1l.h | 8 + test/musl/src/math/special/fabs.h | 7 + test/musl/src/math/special/fabsf.h | 7 + test/musl/src/math/special/fabsl.h | 7 + test/musl/src/math/special/fdim.h | 58 + test/musl/src/math/special/fdimf.h | 58 + test/musl/src/math/special/fdiml.h | 58 + test/musl/src/math/special/floor.h | 45 + test/musl/src/math/special/floorf.h | 45 + test/musl/src/math/special/floorl.h | 45 + test/musl/src/math/special/fma.h | 849 ++++++++++ test/musl/src/math/special/fmaf.h | 68 + test/musl/src/math/special/fmal.h | 49 + test/musl/src/math/special/fmax.h | 58 + test/musl/src/math/special/fmaxf.h | 58 + test/musl/src/math/special/fmaxl.h | 58 + test/musl/src/math/special/fmin.h | 58 + test/musl/src/math/special/fminf.h | 58 + test/musl/src/math/special/fminl.h | 58 + test/musl/src/math/special/fmod.h | 66 + test/musl/src/math/special/fmodf.h | 66 + test/musl/src/math/special/fmodl.h | 66 + test/musl/src/math/special/frexp.h | 12 + test/musl/src/math/special/frexpf.h | 12 + test/musl/src/math/special/frexpl.h | 12 + test/musl/src/math/special/hypot.h | 19 + test/musl/src/math/special/hypotf.h | 19 + test/musl/src/math/special/hypotl.h | 19 + test/musl/src/math/special/ilogb.h | 9 + test/musl/src/math/special/ilogbf.h | 9 + test/musl/src/math/special/ilogbl.h | 9 + test/musl/src/math/special/j0.h | 15 + test/musl/src/math/special/j0f.h | 5 + test/musl/src/math/special/j1.h | 5 + test/musl/src/math/special/j1f.h | 5 + test/musl/src/math/special/jn.h | 20 + test/musl/src/math/special/jnf.h | 20 + test/musl/src/math/special/ldexp.h | 14 + test/musl/src/math/special/ldexpf.h | 14 + test/musl/src/math/special/ldexpl.h | 14 + test/musl/src/math/special/lgamma.h | 193 +++ test/musl/src/math/special/lgamma_r.h | 9 + test/musl/src/math/special/lgammaf.h | 9 + test/musl/src/math/special/lgammaf_r.h | 9 + test/musl/src/math/special/lgammal.h | 9 + test/musl/src/math/special/lgammal_r.h | 9 + test/musl/src/math/special/llrint.h | 20 + test/musl/src/math/special/llrintf.h | 20 + test/musl/src/math/special/llrintl.h | 20 + test/musl/src/math/special/llround.h | 20 + test/musl/src/math/special/llroundf.h | 20 + test/musl/src/math/special/llroundl.h | 20 + test/musl/src/math/special/log.h | 8 + test/musl/src/math/special/log10.h | 8 + test/musl/src/math/special/log10f.h | 8 + test/musl/src/math/special/log10l.h | 8 + test/musl/src/math/special/log1p.h | 8 + test/musl/src/math/special/log1pf.h | 9 + test/musl/src/math/special/log1pl.h | 8 + test/musl/src/math/special/log2.h | 8 + test/musl/src/math/special/log2f.h | 8 + test/musl/src/math/special/log2l.h | 8 + test/musl/src/math/special/logb.h | 8 + test/musl/src/math/special/logbf.h | 8 + test/musl/src/math/special/logbl.h | 8 + test/musl/src/math/special/logf.h | 8 + test/musl/src/math/special/logl.h | 8 + test/musl/src/math/special/lrint.h | 20 + test/musl/src/math/special/lrintf.h | 20 + test/musl/src/math/special/lrintl.h | 20 + test/musl/src/math/special/lround.h | 20 + test/musl/src/math/special/lroundf.h | 20 + test/musl/src/math/special/lroundl.h | 20 + test/musl/src/math/special/modf.h | 13 + test/musl/src/math/special/modff.h | 13 + test/musl/src/math/special/modfl.h | 13 + test/musl/src/math/special/nearbyint.h | 45 + test/musl/src/math/special/nearbyintf.h | 45 + test/musl/src/math/special/nearbyintl.h | 45 + test/musl/src/math/special/nextafter.h | 33 + test/musl/src/math/special/nextafterf.h | 33 + test/musl/src/math/special/nextafterl.h | 33 + test/musl/src/math/special/nexttoward.h | 37 + test/musl/src/math/special/nexttowardf.h | 41 + test/musl/src/math/special/nexttowardl.h | 33 + test/musl/src/math/special/pow.h | 92 ++ test/musl/src/math/special/powf.h | 92 ++ test/musl/src/math/special/powl.h | 92 ++ test/musl/src/math/special/remainder.h | 67 + test/musl/src/math/special/remainderf.h | 67 + test/musl/src/math/special/remainderl.h | 67 + test/musl/src/math/special/remquo.h | 66 + test/musl/src/math/special/remquof.h | 66 + test/musl/src/math/special/remquol.h | 66 + test/musl/src/math/special/rint.h | 47 + test/musl/src/math/special/rintf.h | 47 + test/musl/src/math/special/rintl.h | 45 + test/musl/src/math/special/round.h | 45 + test/musl/src/math/special/roundf.h | 45 + test/musl/src/math/special/roundl.h | 45 + test/musl/src/math/special/scalb.h | 34 + test/musl/src/math/special/scalbf.h | 34 + test/musl/src/math/special/scalbln.h | 17 + test/musl/src/math/special/scalblnf.h | 17 + test/musl/src/math/special/scalblnl.h | 17 + test/musl/src/math/special/scalbn.h | 19 + test/musl/src/math/special/scalbnf.h | 19 + test/musl/src/math/special/scalbnl.h | 19 + test/musl/src/math/special/sin.h | 5 + test/musl/src/math/special/sincos.h | 5 + test/musl/src/math/special/sincosf.h | 5 + test/musl/src/math/special/sincosl.h | 5 + test/musl/src/math/special/sinf.h | 5 + test/musl/src/math/special/sinh.h | 5 + test/musl/src/math/special/sinhf.h | 5 + test/musl/src/math/special/sinhl.h | 5 + test/musl/src/math/special/sinl.h | 5 + test/musl/src/math/special/sqrt.h | 326 ++++ test/musl/src/math/special/sqrtf.h | 22 + test/musl/src/math/special/sqrtl.h | 294 ++++ test/musl/src/math/special/tan.h | 5 + test/musl/src/math/special/tanf.h | 5 + test/musl/src/math/special/tanh.h | 5 + test/musl/src/math/special/tanhf.h | 5 + test/musl/src/math/special/tanhl.h | 5 + test/musl/src/math/special/tanl.h | 5 + test/musl/src/math/special/tgamma.h | 163 ++ test/musl/src/math/special/tgammaf.h | 9 + test/musl/src/math/special/tgammal.h | 9 + test/musl/src/math/special/trunc.h | 45 + test/musl/src/math/special/truncf.h | 45 + test/musl/src/math/special/truncl.h | 45 + test/musl/src/math/special/y0.h | 13 + test/musl/src/math/special/y0f.h | 9 + test/musl/src/math/special/y1.h | 6 + test/musl/src/math/special/y1f.h | 6 + test/musl/src/math/special/yn.h | 24 + test/musl/src/math/special/ynf.h | 24 + test/musl/src/math/sqrt.c | 44 + test/musl/src/math/sqrtf.c | 44 + test/musl/src/math/sqrtl.c | 50 + test/musl/src/math/tan.c | 48 + test/musl/src/math/tanf.c | 44 + test/musl/src/math/tanh.c | 44 + test/musl/src/math/tanhf.c | 44 + test/musl/src/math/tanhl.c | 50 + test/musl/src/math/tanl.c | 51 + test/musl/src/math/tgamma.c | 46 + test/musl/src/math/tgammaf.c | 43 + test/musl/src/math/tgammal.c | 50 + test/musl/src/math/trunc.c | 43 + test/musl/src/math/truncf.c | 43 + test/musl/src/math/truncl.c | 49 + test/musl/src/math/ucb/README | 7 + test/musl/src/math/ucb/acos.h | 189 +++ test/musl/src/math/ucb/acosf.h | 155 ++ test/musl/src/math/ucb/asin.h | 242 +++ test/musl/src/math/ucb/asinf.h | 274 ++++ test/musl/src/math/ucb/atan.h | 201 +++ test/musl/src/math/ucb/atan2.h | 224 +++ test/musl/src/math/ucb/atan2f.h | 182 +++ test/musl/src/math/ucb/atanf.h | 229 +++ test/musl/src/math/ucb/ceil.h | 378 +++++ test/musl/src/math/ucb/ceilf.h | 402 +++++ test/musl/src/math/ucb/cos.h | 190 +++ test/musl/src/math/ucb/cosf.h | 198 +++ test/musl/src/math/ucb/cosh.h | 229 +++ test/musl/src/math/ucb/coshf.h | 245 +++ test/musl/src/math/ucb/exp.h | 341 ++++ test/musl/src/math/ucb/expf.h | 333 ++++ test/musl/src/math/ucb/fabs.h | 104 ++ test/musl/src/math/ucb/fabsf.h | 102 ++ test/musl/src/math/ucb/floor.h | 388 +++++ test/musl/src/math/ucb/floorf.h | 404 +++++ test/musl/src/math/ucb/fmod.h | 1032 +++++++++++++ test/musl/src/math/ucb/fmodf.h | 1019 ++++++++++++ test/musl/src/math/ucb/hypot.h | 297 ++++ test/musl/src/math/ucb/hypotf.h | 297 ++++ test/musl/src/math/ucb/log.h | 309 ++++ test/musl/src/math/ucb/log10.h | 277 ++++ test/musl/src/math/ucb/log10f.h | 265 ++++ test/musl/src/math/ucb/logf.h | 310 ++++ test/musl/src/math/ucb/pow.h | 1581 +++++++++++++++++++ test/musl/src/math/ucb/powf.h | 1804 ++++++++++++++++++++++ test/musl/src/math/ucb/sin.h | 181 +++ test/musl/src/math/ucb/sinf.h | 198 +++ test/musl/src/math/ucb/sinh.h | 253 +++ test/musl/src/math/ucb/sinhf.h | 272 ++++ test/musl/src/math/ucb/sqrt.h | 389 +++++ test/musl/src/math/ucb/sqrtf.h | 366 +++++ test/musl/src/math/ucb/tan.h | 196 +++ test/musl/src/math/ucb/tanf.h | 196 +++ test/musl/src/math/ucb/tanh.h | 283 ++++ test/musl/src/math/ucb/tanhf.h | 271 ++++ test/musl/src/math/y0.c | 48 + test/musl/src/math/y0f.c | 49 + test/musl/src/math/y1.c | 44 + test/musl/src/math/y1f.c | 45 + test/musl/src/math/yn.c | 43 + test/musl/src/math/ynf.c | 48 + 647 files changed, 33662 insertions(+) create mode 100644 test/musl/.gitignore create mode 100644 test/musl/AUTHORS create mode 100644 test/musl/COPYRIGHT create mode 100644 test/musl/Makefile create mode 100644 test/musl/README create mode 100644 test/musl/config.mak.def create mode 100644 test/musl/src/api/Makefile create mode 100644 test/musl/src/api/complex.c create mode 100644 test/musl/src/api/fenv.c create mode 100644 test/musl/src/api/float.c create mode 100644 test/musl/src/api/main.c create mode 100644 test/musl/src/api/math.c create mode 100644 test/musl/src/common/Makefile create mode 100644 test/musl/src/common/mtest.c create mode 100644 test/musl/src/common/mtest.h create mode 100644 test/musl/src/common/options.h.in create mode 100644 test/musl/src/common/print.c create mode 100644 test/musl/src/common/runtest.c create mode 100644 test/musl/src/common/setrlim.c create mode 100644 test/musl/src/common/test.h create mode 100644 test/musl/src/math/Makefile create mode 100644 test/musl/src/math/README create mode 100644 test/musl/src/math/acos.c create mode 100644 test/musl/src/math/acosf.c create mode 100644 test/musl/src/math/acosh.c create mode 100644 test/musl/src/math/acoshf.c create mode 100644 test/musl/src/math/acoshl.c create mode 100644 test/musl/src/math/acosl.c create mode 100644 test/musl/src/math/asin.c create mode 100644 test/musl/src/math/asinf.c create mode 100644 test/musl/src/math/asinh.c create mode 100644 test/musl/src/math/asinhf.c create mode 100644 test/musl/src/math/asinhl.c create mode 100644 test/musl/src/math/asinl.c create mode 100644 test/musl/src/math/atan.c create mode 100644 test/musl/src/math/atan2.c create mode 100644 test/musl/src/math/atan2f.c create mode 100644 test/musl/src/math/atan2l.c create mode 100644 test/musl/src/math/atanf.c create mode 100644 test/musl/src/math/atanh.c create mode 100644 test/musl/src/math/atanhf.c create mode 100644 test/musl/src/math/atanhl.c create mode 100644 test/musl/src/math/atanl.c create mode 100644 test/musl/src/math/cbrt.c create mode 100644 test/musl/src/math/cbrtf.c create mode 100644 test/musl/src/math/cbrtl.c create mode 100644 test/musl/src/math/ceil.c create mode 100644 test/musl/src/math/ceilf.c create mode 100644 test/musl/src/math/ceill.c create mode 100644 test/musl/src/math/copysign.c create mode 100644 test/musl/src/math/copysignf.c create mode 100644 test/musl/src/math/copysignl.c create mode 100644 test/musl/src/math/cos.c create mode 100644 test/musl/src/math/cosf.c create mode 100644 test/musl/src/math/cosh.c create mode 100644 test/musl/src/math/coshf.c create mode 100644 test/musl/src/math/coshl.c create mode 100644 test/musl/src/math/cosl.c create mode 100644 test/musl/src/math/drem.c create mode 100644 test/musl/src/math/dremf.c create mode 100644 test/musl/src/math/erf.c create mode 100644 test/musl/src/math/erfc.c create mode 100644 test/musl/src/math/erfcf.c create mode 100644 test/musl/src/math/erfcl.c create mode 100644 test/musl/src/math/erff.c create mode 100644 test/musl/src/math/erfl.c create mode 100644 test/musl/src/math/exp.c create mode 100644 test/musl/src/math/exp10.c create mode 100644 test/musl/src/math/exp10f.c create mode 100644 test/musl/src/math/exp10l.c create mode 100644 test/musl/src/math/exp2.c create mode 100644 test/musl/src/math/exp2f.c create mode 100644 test/musl/src/math/exp2l.c create mode 100644 test/musl/src/math/expf.c create mode 100644 test/musl/src/math/expl.c create mode 100644 test/musl/src/math/expm1.c create mode 100644 test/musl/src/math/expm1f.c create mode 100644 test/musl/src/math/expm1l.c create mode 100644 test/musl/src/math/fabs.c create mode 100644 test/musl/src/math/fabsf.c create mode 100644 test/musl/src/math/fabsl.c create mode 100644 test/musl/src/math/fdim.c create mode 100644 test/musl/src/math/fdimf.c create mode 100644 test/musl/src/math/fdiml.c create mode 100644 test/musl/src/math/fenv.c create mode 100644 test/musl/src/math/floor.c create mode 100644 test/musl/src/math/floorf.c create mode 100644 test/musl/src/math/floorl.c create mode 100644 test/musl/src/math/fma.c create mode 100644 test/musl/src/math/fmaf.c create mode 100644 test/musl/src/math/fmal.c create mode 100644 test/musl/src/math/fmax.c create mode 100644 test/musl/src/math/fmaxf.c create mode 100644 test/musl/src/math/fmaxl.c create mode 100644 test/musl/src/math/fmin.c create mode 100644 test/musl/src/math/fminf.c create mode 100644 test/musl/src/math/fminl.c create mode 100644 test/musl/src/math/fmod.c create mode 100644 test/musl/src/math/fmodf.c create mode 100644 test/musl/src/math/fmodl.c create mode 100644 test/musl/src/math/fpclassify.c create mode 100644 test/musl/src/math/frexp.c create mode 100644 test/musl/src/math/frexpf.c create mode 100644 test/musl/src/math/frexpl.c create mode 100644 test/musl/src/math/hypot.c create mode 100644 test/musl/src/math/hypotf.c create mode 100644 test/musl/src/math/hypotl.c create mode 100644 test/musl/src/math/ilogb.c create mode 100644 test/musl/src/math/ilogbf.c create mode 100644 test/musl/src/math/ilogbl.c create mode 100644 test/musl/src/math/isless.c create mode 100644 test/musl/src/math/j0.c create mode 100644 test/musl/src/math/j0f.c create mode 100644 test/musl/src/math/j1.c create mode 100644 test/musl/src/math/j1f.c create mode 100644 test/musl/src/math/jn.c create mode 100644 test/musl/src/math/jnf.c create mode 100644 test/musl/src/math/ldexp.c create mode 100644 test/musl/src/math/ldexpf.c create mode 100644 test/musl/src/math/ldexpl.c create mode 100644 test/musl/src/math/lgamma.c create mode 100644 test/musl/src/math/lgamma_r.c create mode 100644 test/musl/src/math/lgammaf.c create mode 100644 test/musl/src/math/lgammaf_r.c create mode 100644 test/musl/src/math/lgammal.c create mode 100644 test/musl/src/math/lgammal_r.c create mode 100644 test/musl/src/math/llrint.c create mode 100644 test/musl/src/math/llrintf.c create mode 100644 test/musl/src/math/llrintl.c create mode 100644 test/musl/src/math/llround.c create mode 100644 test/musl/src/math/llroundf.c create mode 100644 test/musl/src/math/llroundl.c create mode 100644 test/musl/src/math/log.c create mode 100644 test/musl/src/math/log10.c create mode 100644 test/musl/src/math/log10f.c create mode 100644 test/musl/src/math/log10l.c create mode 100644 test/musl/src/math/log1p.c create mode 100644 test/musl/src/math/log1pf.c create mode 100644 test/musl/src/math/log1pl.c create mode 100644 test/musl/src/math/log2.c create mode 100644 test/musl/src/math/log2f.c create mode 100644 test/musl/src/math/log2l.c create mode 100644 test/musl/src/math/logb.c create mode 100644 test/musl/src/math/logbf.c create mode 100644 test/musl/src/math/logbl.c create mode 100644 test/musl/src/math/logf.c create mode 100644 test/musl/src/math/logl.c create mode 100644 test/musl/src/math/lrint.c create mode 100644 test/musl/src/math/lrintf.c create mode 100644 test/musl/src/math/lrintl.c create mode 100644 test/musl/src/math/lround.c create mode 100644 test/musl/src/math/lroundf.c create mode 100644 test/musl/src/math/lroundl.c create mode 100644 test/musl/src/math/modf.c create mode 100644 test/musl/src/math/modff.c create mode 100644 test/musl/src/math/modfl.c create mode 100644 test/musl/src/math/nearbyint.c create mode 100644 test/musl/src/math/nearbyintf.c create mode 100644 test/musl/src/math/nearbyintl.c create mode 100644 test/musl/src/math/nextafter.c create mode 100644 test/musl/src/math/nextafterf.c create mode 100644 test/musl/src/math/nextafterl.c create mode 100644 test/musl/src/math/nexttoward.c create mode 100644 test/musl/src/math/nexttowardf.c create mode 100644 test/musl/src/math/nexttowardl.c create mode 100644 test/musl/src/math/pow.c create mode 100644 test/musl/src/math/pow10.c create mode 100644 test/musl/src/math/pow10f.c create mode 100644 test/musl/src/math/pow10l.c create mode 100644 test/musl/src/math/powf.c create mode 100644 test/musl/src/math/powl.c create mode 100644 test/musl/src/math/remainder.c create mode 100644 test/musl/src/math/remainderf.c create mode 100644 test/musl/src/math/remainderl.c create mode 100644 test/musl/src/math/remquo.c create mode 100644 test/musl/src/math/remquof.c create mode 100644 test/musl/src/math/remquol.c create mode 100644 test/musl/src/math/rint.c create mode 100644 test/musl/src/math/rintf.c create mode 100644 test/musl/src/math/rintl.c create mode 100644 test/musl/src/math/round.c create mode 100644 test/musl/src/math/roundf.c create mode 100644 test/musl/src/math/roundl.c create mode 100644 test/musl/src/math/sanity/acos.h create mode 100644 test/musl/src/math/sanity/acosf.h create mode 100644 test/musl/src/math/sanity/acosh.h create mode 100644 test/musl/src/math/sanity/acoshf.h create mode 100644 test/musl/src/math/sanity/acoshl.h create mode 100644 test/musl/src/math/sanity/acosl.h create mode 100644 test/musl/src/math/sanity/asin.h create mode 100644 test/musl/src/math/sanity/asinf.h create mode 100644 test/musl/src/math/sanity/asinh.h create mode 100644 test/musl/src/math/sanity/asinhf.h create mode 100644 test/musl/src/math/sanity/asinhl.h create mode 100644 test/musl/src/math/sanity/asinl.h create mode 100644 test/musl/src/math/sanity/atan.h create mode 100644 test/musl/src/math/sanity/atan2.h create mode 100644 test/musl/src/math/sanity/atan2f.h create mode 100644 test/musl/src/math/sanity/atan2l.h create mode 100644 test/musl/src/math/sanity/atanf.h create mode 100644 test/musl/src/math/sanity/atanh.h create mode 100644 test/musl/src/math/sanity/atanhf.h create mode 100644 test/musl/src/math/sanity/atanhl.h create mode 100644 test/musl/src/math/sanity/atanl.h create mode 100644 test/musl/src/math/sanity/cbrt.h create mode 100644 test/musl/src/math/sanity/cbrtf.h create mode 100644 test/musl/src/math/sanity/cbrtl.h create mode 100644 test/musl/src/math/sanity/ceil.h create mode 100644 test/musl/src/math/sanity/ceilf.h create mode 100644 test/musl/src/math/sanity/ceill.h create mode 100644 test/musl/src/math/sanity/copysign.h create mode 100644 test/musl/src/math/sanity/copysignf.h create mode 100644 test/musl/src/math/sanity/copysignl.h create mode 100644 test/musl/src/math/sanity/cos.h create mode 100644 test/musl/src/math/sanity/cosf.h create mode 100644 test/musl/src/math/sanity/cosh.h create mode 100644 test/musl/src/math/sanity/coshf.h create mode 100644 test/musl/src/math/sanity/coshl.h create mode 100644 test/musl/src/math/sanity/cosl.h create mode 100644 test/musl/src/math/sanity/erf.h create mode 100644 test/musl/src/math/sanity/erfc.h create mode 100644 test/musl/src/math/sanity/erfcf.h create mode 100644 test/musl/src/math/sanity/erfcl.h create mode 100644 test/musl/src/math/sanity/erff.h create mode 100644 test/musl/src/math/sanity/erfl.h create mode 100644 test/musl/src/math/sanity/exp.h create mode 100644 test/musl/src/math/sanity/exp10.h create mode 100644 test/musl/src/math/sanity/exp10f.h create mode 100644 test/musl/src/math/sanity/exp10l.h create mode 100644 test/musl/src/math/sanity/exp2.h create mode 100644 test/musl/src/math/sanity/exp2f.h create mode 100644 test/musl/src/math/sanity/exp2l.h create mode 100644 test/musl/src/math/sanity/expf.h create mode 100644 test/musl/src/math/sanity/expl.h create mode 100644 test/musl/src/math/sanity/expm1.h create mode 100644 test/musl/src/math/sanity/expm1f.h create mode 100644 test/musl/src/math/sanity/expm1l.h create mode 100644 test/musl/src/math/sanity/fabs.h create mode 100644 test/musl/src/math/sanity/fabsf.h create mode 100644 test/musl/src/math/sanity/fabsl.h create mode 100644 test/musl/src/math/sanity/fdim.h create mode 100644 test/musl/src/math/sanity/fdimf.h create mode 100644 test/musl/src/math/sanity/fdiml.h create mode 100644 test/musl/src/math/sanity/floor.h create mode 100644 test/musl/src/math/sanity/floorf.h create mode 100644 test/musl/src/math/sanity/floorl.h create mode 100644 test/musl/src/math/sanity/fma.h create mode 100644 test/musl/src/math/sanity/fmaf.h create mode 100644 test/musl/src/math/sanity/fmal.h create mode 100644 test/musl/src/math/sanity/fmax.h create mode 100644 test/musl/src/math/sanity/fmaxf.h create mode 100644 test/musl/src/math/sanity/fmaxl.h create mode 100644 test/musl/src/math/sanity/fmin.h create mode 100644 test/musl/src/math/sanity/fminf.h create mode 100644 test/musl/src/math/sanity/fminl.h create mode 100644 test/musl/src/math/sanity/fmod.h create mode 100644 test/musl/src/math/sanity/fmodf.h create mode 100644 test/musl/src/math/sanity/fmodl.h create mode 100644 test/musl/src/math/sanity/frexp.h create mode 100644 test/musl/src/math/sanity/frexpf.h create mode 100644 test/musl/src/math/sanity/frexpl.h create mode 100644 test/musl/src/math/sanity/hypot.h create mode 100644 test/musl/src/math/sanity/hypotf.h create mode 100644 test/musl/src/math/sanity/hypotl.h create mode 100644 test/musl/src/math/sanity/ilogb.h create mode 100644 test/musl/src/math/sanity/ilogbf.h create mode 100644 test/musl/src/math/sanity/ilogbl.h create mode 100644 test/musl/src/math/sanity/j0.h create mode 100644 test/musl/src/math/sanity/j0f.h create mode 100644 test/musl/src/math/sanity/j1.h create mode 100644 test/musl/src/math/sanity/j1f.h create mode 100644 test/musl/src/math/sanity/jn.h create mode 100644 test/musl/src/math/sanity/jnf.h create mode 100644 test/musl/src/math/sanity/ldexp.h create mode 100644 test/musl/src/math/sanity/ldexpf.h create mode 100644 test/musl/src/math/sanity/ldexpl.h create mode 100644 test/musl/src/math/sanity/lgamma.h create mode 100644 test/musl/src/math/sanity/lgamma_r.h create mode 100644 test/musl/src/math/sanity/lgammaf.h create mode 100644 test/musl/src/math/sanity/lgammaf_r.h create mode 100644 test/musl/src/math/sanity/lgammal.h create mode 100644 test/musl/src/math/sanity/lgammal_r.h create mode 100644 test/musl/src/math/sanity/llrint.h create mode 100644 test/musl/src/math/sanity/llrintf.h create mode 100644 test/musl/src/math/sanity/llrintl.h create mode 100644 test/musl/src/math/sanity/llround.h create mode 100644 test/musl/src/math/sanity/llroundf.h create mode 100644 test/musl/src/math/sanity/llroundl.h create mode 100644 test/musl/src/math/sanity/log.h create mode 100644 test/musl/src/math/sanity/log10.h create mode 100644 test/musl/src/math/sanity/log10f.h create mode 100644 test/musl/src/math/sanity/log10l.h create mode 100644 test/musl/src/math/sanity/log1p.h create mode 100644 test/musl/src/math/sanity/log1pf.h create mode 100644 test/musl/src/math/sanity/log1pl.h create mode 100644 test/musl/src/math/sanity/log2.h create mode 100644 test/musl/src/math/sanity/log2f.h create mode 100644 test/musl/src/math/sanity/log2l.h create mode 100644 test/musl/src/math/sanity/logb.h create mode 100644 test/musl/src/math/sanity/logbf.h create mode 100644 test/musl/src/math/sanity/logbl.h create mode 100644 test/musl/src/math/sanity/logf.h create mode 100644 test/musl/src/math/sanity/logl.h create mode 100644 test/musl/src/math/sanity/lrint.h create mode 100644 test/musl/src/math/sanity/lrintf.h create mode 100644 test/musl/src/math/sanity/lrintl.h create mode 100644 test/musl/src/math/sanity/lround.h create mode 100644 test/musl/src/math/sanity/lroundf.h create mode 100644 test/musl/src/math/sanity/lroundl.h create mode 100644 test/musl/src/math/sanity/modf.h create mode 100644 test/musl/src/math/sanity/modff.h create mode 100644 test/musl/src/math/sanity/modfl.h create mode 100644 test/musl/src/math/sanity/nearbyint.h create mode 100644 test/musl/src/math/sanity/nearbyintf.h create mode 100644 test/musl/src/math/sanity/nearbyintl.h create mode 100644 test/musl/src/math/sanity/nextafter.h create mode 100644 test/musl/src/math/sanity/nextafterf.h create mode 100644 test/musl/src/math/sanity/nextafterl.h create mode 100644 test/musl/src/math/sanity/nexttoward.h create mode 100644 test/musl/src/math/sanity/nexttowardf.h create mode 100644 test/musl/src/math/sanity/nexttowardl.h create mode 100644 test/musl/src/math/sanity/pow.h create mode 100644 test/musl/src/math/sanity/pow10.h create mode 100644 test/musl/src/math/sanity/pow10f.h create mode 100644 test/musl/src/math/sanity/pow10l.h create mode 100644 test/musl/src/math/sanity/powf.h create mode 100644 test/musl/src/math/sanity/powl.h create mode 100644 test/musl/src/math/sanity/remainder.h create mode 100644 test/musl/src/math/sanity/remainderf.h create mode 100644 test/musl/src/math/sanity/remainderl.h create mode 100644 test/musl/src/math/sanity/remquo.h create mode 100644 test/musl/src/math/sanity/remquof.h create mode 100644 test/musl/src/math/sanity/remquol.h create mode 100644 test/musl/src/math/sanity/rint.h create mode 100644 test/musl/src/math/sanity/rintf.h create mode 100644 test/musl/src/math/sanity/rintl.h create mode 100644 test/musl/src/math/sanity/round.h create mode 100644 test/musl/src/math/sanity/roundf.h create mode 100644 test/musl/src/math/sanity/roundl.h create mode 100644 test/musl/src/math/sanity/scalb.h create mode 100644 test/musl/src/math/sanity/scalbf.h create mode 100644 test/musl/src/math/sanity/scalbln.h create mode 100644 test/musl/src/math/sanity/scalblnf.h create mode 100644 test/musl/src/math/sanity/scalblnl.h create mode 100644 test/musl/src/math/sanity/scalbn.h create mode 100644 test/musl/src/math/sanity/scalbnf.h create mode 100644 test/musl/src/math/sanity/scalbnl.h create mode 100644 test/musl/src/math/sanity/sin.h create mode 100644 test/musl/src/math/sanity/sincos.h create mode 100644 test/musl/src/math/sanity/sincosf.h create mode 100644 test/musl/src/math/sanity/sincosl.h create mode 100644 test/musl/src/math/sanity/sinf.h create mode 100644 test/musl/src/math/sanity/sinh.h create mode 100644 test/musl/src/math/sanity/sinhf.h create mode 100644 test/musl/src/math/sanity/sinhl.h create mode 100644 test/musl/src/math/sanity/sinl.h create mode 100644 test/musl/src/math/sanity/sqrt.h create mode 100644 test/musl/src/math/sanity/sqrtf.h create mode 100644 test/musl/src/math/sanity/sqrtl.h create mode 100644 test/musl/src/math/sanity/tan.h create mode 100644 test/musl/src/math/sanity/tanf.h create mode 100644 test/musl/src/math/sanity/tanh.h create mode 100644 test/musl/src/math/sanity/tanhf.h create mode 100644 test/musl/src/math/sanity/tanhl.h create mode 100644 test/musl/src/math/sanity/tanl.h create mode 100644 test/musl/src/math/sanity/tgamma.h create mode 100644 test/musl/src/math/sanity/tgammaf.h create mode 100644 test/musl/src/math/sanity/tgammal.h create mode 100644 test/musl/src/math/sanity/trunc.h create mode 100644 test/musl/src/math/sanity/truncf.h create mode 100644 test/musl/src/math/sanity/truncl.h create mode 100644 test/musl/src/math/sanity/y0.h create mode 100644 test/musl/src/math/sanity/y0f.h create mode 100644 test/musl/src/math/sanity/y1.h create mode 100644 test/musl/src/math/sanity/y1f.h create mode 100644 test/musl/src/math/sanity/yn.h create mode 100644 test/musl/src/math/sanity/ynf.h create mode 100644 test/musl/src/math/scalb.c create mode 100644 test/musl/src/math/scalbf.c create mode 100644 test/musl/src/math/scalbln.c create mode 100644 test/musl/src/math/scalblnf.c create mode 100644 test/musl/src/math/scalblnl.c create mode 100644 test/musl/src/math/scalbn.c create mode 100644 test/musl/src/math/scalbnf.c create mode 100644 test/musl/src/math/scalbnl.c create mode 100644 test/musl/src/math/sin.c create mode 100644 test/musl/src/math/sincos.c create mode 100644 test/musl/src/math/sincosf.c create mode 100644 test/musl/src/math/sincosl.c create mode 100644 test/musl/src/math/sinf.c create mode 100644 test/musl/src/math/sinh.c create mode 100644 test/musl/src/math/sinhf.c create mode 100644 test/musl/src/math/sinhl.c create mode 100644 test/musl/src/math/sinl.c create mode 100644 test/musl/src/math/special/acos.h create mode 100644 test/musl/src/math/special/acosf.h create mode 100644 test/musl/src/math/special/acosh.h create mode 100644 test/musl/src/math/special/acoshf.h create mode 100644 test/musl/src/math/special/acoshl.h create mode 100644 test/musl/src/math/special/acosl.h create mode 100644 test/musl/src/math/special/asin.h create mode 100644 test/musl/src/math/special/asinf.h create mode 100644 test/musl/src/math/special/asinh.h create mode 100644 test/musl/src/math/special/asinhf.h create mode 100644 test/musl/src/math/special/asinhl.h create mode 100644 test/musl/src/math/special/asinl.h create mode 100644 test/musl/src/math/special/atan.h create mode 100644 test/musl/src/math/special/atan2.h create mode 100644 test/musl/src/math/special/atan2f.h create mode 100644 test/musl/src/math/special/atan2l.h create mode 100644 test/musl/src/math/special/atanf.h create mode 100644 test/musl/src/math/special/atanh.h create mode 100644 test/musl/src/math/special/atanhf.h create mode 100644 test/musl/src/math/special/atanhl.h create mode 100644 test/musl/src/math/special/atanl.h create mode 100644 test/musl/src/math/special/cbrt.h create mode 100644 test/musl/src/math/special/cbrtf.h create mode 100644 test/musl/src/math/special/cbrtl.h create mode 100644 test/musl/src/math/special/ceil.h create mode 100644 test/musl/src/math/special/ceilf.h create mode 100644 test/musl/src/math/special/ceill.h create mode 100644 test/musl/src/math/special/copysign.h create mode 100644 test/musl/src/math/special/copysignf.h create mode 100644 test/musl/src/math/special/copysignl.h create mode 100644 test/musl/src/math/special/cos.h create mode 100644 test/musl/src/math/special/cosf.h create mode 100644 test/musl/src/math/special/cosh.h create mode 100644 test/musl/src/math/special/coshf.h create mode 100644 test/musl/src/math/special/coshl.h create mode 100644 test/musl/src/math/special/cosl.h create mode 100644 test/musl/src/math/special/erf.h create mode 100644 test/musl/src/math/special/erfc.h create mode 100644 test/musl/src/math/special/erfcf.h create mode 100644 test/musl/src/math/special/erfcl.h create mode 100644 test/musl/src/math/special/erff.h create mode 100644 test/musl/src/math/special/erfl.h create mode 100644 test/musl/src/math/special/exp.h create mode 100644 test/musl/src/math/special/exp10.h create mode 100644 test/musl/src/math/special/exp10f.h create mode 100644 test/musl/src/math/special/exp10l.h create mode 100644 test/musl/src/math/special/exp2.h create mode 100644 test/musl/src/math/special/exp2f.h create mode 100644 test/musl/src/math/special/exp2l.h create mode 100644 test/musl/src/math/special/expf.h create mode 100644 test/musl/src/math/special/expl.h create mode 100644 test/musl/src/math/special/expm1.h create mode 100644 test/musl/src/math/special/expm1f.h create mode 100644 test/musl/src/math/special/expm1l.h create mode 100644 test/musl/src/math/special/fabs.h create mode 100644 test/musl/src/math/special/fabsf.h create mode 100644 test/musl/src/math/special/fabsl.h create mode 100644 test/musl/src/math/special/fdim.h create mode 100644 test/musl/src/math/special/fdimf.h create mode 100644 test/musl/src/math/special/fdiml.h create mode 100644 test/musl/src/math/special/floor.h create mode 100644 test/musl/src/math/special/floorf.h create mode 100644 test/musl/src/math/special/floorl.h create mode 100644 test/musl/src/math/special/fma.h create mode 100644 test/musl/src/math/special/fmaf.h create mode 100644 test/musl/src/math/special/fmal.h create mode 100644 test/musl/src/math/special/fmax.h create mode 100644 test/musl/src/math/special/fmaxf.h create mode 100644 test/musl/src/math/special/fmaxl.h create mode 100644 test/musl/src/math/special/fmin.h create mode 100644 test/musl/src/math/special/fminf.h create mode 100644 test/musl/src/math/special/fminl.h create mode 100644 test/musl/src/math/special/fmod.h create mode 100644 test/musl/src/math/special/fmodf.h create mode 100644 test/musl/src/math/special/fmodl.h create mode 100644 test/musl/src/math/special/frexp.h create mode 100644 test/musl/src/math/special/frexpf.h create mode 100644 test/musl/src/math/special/frexpl.h create mode 100644 test/musl/src/math/special/hypot.h create mode 100644 test/musl/src/math/special/hypotf.h create mode 100644 test/musl/src/math/special/hypotl.h create mode 100644 test/musl/src/math/special/ilogb.h create mode 100644 test/musl/src/math/special/ilogbf.h create mode 100644 test/musl/src/math/special/ilogbl.h create mode 100644 test/musl/src/math/special/j0.h create mode 100644 test/musl/src/math/special/j0f.h create mode 100644 test/musl/src/math/special/j1.h create mode 100644 test/musl/src/math/special/j1f.h create mode 100644 test/musl/src/math/special/jn.h create mode 100644 test/musl/src/math/special/jnf.h create mode 100644 test/musl/src/math/special/ldexp.h create mode 100644 test/musl/src/math/special/ldexpf.h create mode 100644 test/musl/src/math/special/ldexpl.h create mode 100644 test/musl/src/math/special/lgamma.h create mode 100644 test/musl/src/math/special/lgamma_r.h create mode 100644 test/musl/src/math/special/lgammaf.h create mode 100644 test/musl/src/math/special/lgammaf_r.h create mode 100644 test/musl/src/math/special/lgammal.h create mode 100644 test/musl/src/math/special/lgammal_r.h create mode 100644 test/musl/src/math/special/llrint.h create mode 100644 test/musl/src/math/special/llrintf.h create mode 100644 test/musl/src/math/special/llrintl.h create mode 100644 test/musl/src/math/special/llround.h create mode 100644 test/musl/src/math/special/llroundf.h create mode 100644 test/musl/src/math/special/llroundl.h create mode 100644 test/musl/src/math/special/log.h create mode 100644 test/musl/src/math/special/log10.h create mode 100644 test/musl/src/math/special/log10f.h create mode 100644 test/musl/src/math/special/log10l.h create mode 100644 test/musl/src/math/special/log1p.h create mode 100644 test/musl/src/math/special/log1pf.h create mode 100644 test/musl/src/math/special/log1pl.h create mode 100644 test/musl/src/math/special/log2.h create mode 100644 test/musl/src/math/special/log2f.h create mode 100644 test/musl/src/math/special/log2l.h create mode 100644 test/musl/src/math/special/logb.h create mode 100644 test/musl/src/math/special/logbf.h create mode 100644 test/musl/src/math/special/logbl.h create mode 100644 test/musl/src/math/special/logf.h create mode 100644 test/musl/src/math/special/logl.h create mode 100644 test/musl/src/math/special/lrint.h create mode 100644 test/musl/src/math/special/lrintf.h create mode 100644 test/musl/src/math/special/lrintl.h create mode 100644 test/musl/src/math/special/lround.h create mode 100644 test/musl/src/math/special/lroundf.h create mode 100644 test/musl/src/math/special/lroundl.h create mode 100644 test/musl/src/math/special/modf.h create mode 100644 test/musl/src/math/special/modff.h create mode 100644 test/musl/src/math/special/modfl.h create mode 100644 test/musl/src/math/special/nearbyint.h create mode 100644 test/musl/src/math/special/nearbyintf.h create mode 100644 test/musl/src/math/special/nearbyintl.h create mode 100644 test/musl/src/math/special/nextafter.h create mode 100644 test/musl/src/math/special/nextafterf.h create mode 100644 test/musl/src/math/special/nextafterl.h create mode 100644 test/musl/src/math/special/nexttoward.h create mode 100644 test/musl/src/math/special/nexttowardf.h create mode 100644 test/musl/src/math/special/nexttowardl.h create mode 100644 test/musl/src/math/special/pow.h create mode 100644 test/musl/src/math/special/powf.h create mode 100644 test/musl/src/math/special/powl.h create mode 100644 test/musl/src/math/special/remainder.h create mode 100644 test/musl/src/math/special/remainderf.h create mode 100644 test/musl/src/math/special/remainderl.h create mode 100644 test/musl/src/math/special/remquo.h create mode 100644 test/musl/src/math/special/remquof.h create mode 100644 test/musl/src/math/special/remquol.h create mode 100644 test/musl/src/math/special/rint.h create mode 100644 test/musl/src/math/special/rintf.h create mode 100644 test/musl/src/math/special/rintl.h create mode 100644 test/musl/src/math/special/round.h create mode 100644 test/musl/src/math/special/roundf.h create mode 100644 test/musl/src/math/special/roundl.h create mode 100644 test/musl/src/math/special/scalb.h create mode 100644 test/musl/src/math/special/scalbf.h create mode 100644 test/musl/src/math/special/scalbln.h create mode 100644 test/musl/src/math/special/scalblnf.h create mode 100644 test/musl/src/math/special/scalblnl.h create mode 100644 test/musl/src/math/special/scalbn.h create mode 100644 test/musl/src/math/special/scalbnf.h create mode 100644 test/musl/src/math/special/scalbnl.h create mode 100644 test/musl/src/math/special/sin.h create mode 100644 test/musl/src/math/special/sincos.h create mode 100644 test/musl/src/math/special/sincosf.h create mode 100644 test/musl/src/math/special/sincosl.h create mode 100644 test/musl/src/math/special/sinf.h create mode 100644 test/musl/src/math/special/sinh.h create mode 100644 test/musl/src/math/special/sinhf.h create mode 100644 test/musl/src/math/special/sinhl.h create mode 100644 test/musl/src/math/special/sinl.h create mode 100644 test/musl/src/math/special/sqrt.h create mode 100644 test/musl/src/math/special/sqrtf.h create mode 100644 test/musl/src/math/special/sqrtl.h create mode 100644 test/musl/src/math/special/tan.h create mode 100644 test/musl/src/math/special/tanf.h create mode 100644 test/musl/src/math/special/tanh.h create mode 100644 test/musl/src/math/special/tanhf.h create mode 100644 test/musl/src/math/special/tanhl.h create mode 100644 test/musl/src/math/special/tanl.h create mode 100644 test/musl/src/math/special/tgamma.h create mode 100644 test/musl/src/math/special/tgammaf.h create mode 100644 test/musl/src/math/special/tgammal.h create mode 100644 test/musl/src/math/special/trunc.h create mode 100644 test/musl/src/math/special/truncf.h create mode 100644 test/musl/src/math/special/truncl.h create mode 100644 test/musl/src/math/special/y0.h create mode 100644 test/musl/src/math/special/y0f.h create mode 100644 test/musl/src/math/special/y1.h create mode 100644 test/musl/src/math/special/y1f.h create mode 100644 test/musl/src/math/special/yn.h create mode 100644 test/musl/src/math/special/ynf.h create mode 100644 test/musl/src/math/sqrt.c create mode 100644 test/musl/src/math/sqrtf.c create mode 100644 test/musl/src/math/sqrtl.c create mode 100644 test/musl/src/math/tan.c create mode 100644 test/musl/src/math/tanf.c create mode 100644 test/musl/src/math/tanh.c create mode 100644 test/musl/src/math/tanhf.c create mode 100644 test/musl/src/math/tanhl.c create mode 100644 test/musl/src/math/tanl.c create mode 100644 test/musl/src/math/tgamma.c create mode 100644 test/musl/src/math/tgammaf.c create mode 100644 test/musl/src/math/tgammal.c create mode 100644 test/musl/src/math/trunc.c create mode 100644 test/musl/src/math/truncf.c create mode 100644 test/musl/src/math/truncl.c create mode 100644 test/musl/src/math/ucb/README create mode 100644 test/musl/src/math/ucb/acos.h create mode 100644 test/musl/src/math/ucb/acosf.h create mode 100644 test/musl/src/math/ucb/asin.h create mode 100644 test/musl/src/math/ucb/asinf.h create mode 100644 test/musl/src/math/ucb/atan.h create mode 100644 test/musl/src/math/ucb/atan2.h create mode 100644 test/musl/src/math/ucb/atan2f.h create mode 100644 test/musl/src/math/ucb/atanf.h create mode 100644 test/musl/src/math/ucb/ceil.h create mode 100644 test/musl/src/math/ucb/ceilf.h create mode 100644 test/musl/src/math/ucb/cos.h create mode 100644 test/musl/src/math/ucb/cosf.h create mode 100644 test/musl/src/math/ucb/cosh.h create mode 100644 test/musl/src/math/ucb/coshf.h create mode 100644 test/musl/src/math/ucb/exp.h create mode 100644 test/musl/src/math/ucb/expf.h create mode 100644 test/musl/src/math/ucb/fabs.h create mode 100644 test/musl/src/math/ucb/fabsf.h create mode 100644 test/musl/src/math/ucb/floor.h create mode 100644 test/musl/src/math/ucb/floorf.h create mode 100644 test/musl/src/math/ucb/fmod.h create mode 100644 test/musl/src/math/ucb/fmodf.h create mode 100644 test/musl/src/math/ucb/hypot.h create mode 100644 test/musl/src/math/ucb/hypotf.h create mode 100644 test/musl/src/math/ucb/log.h create mode 100644 test/musl/src/math/ucb/log10.h create mode 100644 test/musl/src/math/ucb/log10f.h create mode 100644 test/musl/src/math/ucb/logf.h create mode 100644 test/musl/src/math/ucb/pow.h create mode 100644 test/musl/src/math/ucb/powf.h create mode 100644 test/musl/src/math/ucb/sin.h create mode 100644 test/musl/src/math/ucb/sinf.h create mode 100644 test/musl/src/math/ucb/sinh.h create mode 100644 test/musl/src/math/ucb/sinhf.h create mode 100644 test/musl/src/math/ucb/sqrt.h create mode 100644 test/musl/src/math/ucb/sqrtf.h create mode 100644 test/musl/src/math/ucb/tan.h create mode 100644 test/musl/src/math/ucb/tanf.h create mode 100644 test/musl/src/math/ucb/tanh.h create mode 100644 test/musl/src/math/ucb/tanhf.h create mode 100644 test/musl/src/math/y0.c create mode 100644 test/musl/src/math/y0f.c create mode 100644 test/musl/src/math/y1.c create mode 100644 test/musl/src/math/y1f.c create mode 100644 test/musl/src/math/yn.c create mode 100644 test/musl/src/math/ynf.c diff --git a/test/musl/.gitignore b/test/musl/.gitignore new file mode 100644 index 00000000..14d4095e --- /dev/null +++ b/test/musl/.gitignore @@ -0,0 +1,7 @@ +*.err +*.o +*.so +*.a +*.exe +config.mak +REPORT diff --git a/test/musl/AUTHORS b/test/musl/AUTHORS new file mode 100644 index 00000000..ff99471d --- /dev/null +++ b/test/musl/AUTHORS @@ -0,0 +1,7 @@ +Rich Felker +Szabolcs Nagy +Kirill Ternovsky +John Spencer +Jens Gustedt +Alexander Monakov +Julien Ramseier diff --git a/test/musl/COPYRIGHT b/test/musl/COPYRIGHT new file mode 100644 index 00000000..67acf495 --- /dev/null +++ b/test/musl/COPYRIGHT @@ -0,0 +1,29 @@ +libc-test is licensed under the following standard MIT license: + +Copyright © 2005-2013 libc-test AUTHORS + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +Portions of this software is derived from software authored by +third parties: + +math tests use numbers under BSD and GPL licenses see src/math/ucb/* +and src/math/crlibm/* for details diff --git a/test/musl/Makefile b/test/musl/Makefile new file mode 100644 index 00000000..cf2ab2b2 --- /dev/null +++ b/test/musl/Makefile @@ -0,0 +1,154 @@ +B:=src +SRCS:=$(sort $(wildcard src/*/*.c)) +OBJS:=$(SRCS:src/%.c=$(B)/%.o) +LOBJS:=$(SRCS:src/%.c=$(B)/%.lo) +DIRS:=$(patsubst src/%/,%,$(sort $(dir $(SRCS)))) +BDIRS:=$(DIRS:%=$(B)/%) +NAMES:=$(SRCS:src/%.c=%) +CFLAGS:=-I$(B)/common -Isrc/common +LDLIBS:=$(B)/common/libtest.a +AR = $(CROSS_COMPILE)ar +RANLIB = $(CROSS_COMPILE)ranlib +RUN_TEST = $(RUN_WRAP) $(B)/common/runtest.exe -w '$(RUN_WRAP)' + +all: +%.mk: +# turn off evil implicit rules +.SUFFIXES: +%: %.o +%: %.c +%: %.cc +%: %.C +%: %.cpp +%: %.p +%: %.f +%: %.F +%: %.r +%: %.s +%: %.S +%: %.mod +%: %.sh +%: %,v +%: RCS/%,v +%: RCS/% +%: s.% +%: SCCS/s.% + +config.mak: + cp config.mak.def $@ +-include config.mak + +define default_template +$(1).BINS_TEMPL:=bin.exe bin-static.exe +$(1).NAMES:=$$(filter $(1)/%,$$(NAMES)) +$(1).OBJS:=$$($(1).NAMES:%=$(B)/%.o) +endef +$(foreach d,$(DIRS),$(eval $(call default_template,$(d)))) +common.BINS_TEMPL:= +api.BINS_TEMPL:= +math.BINS_TEMPL:=bin.exe + +define template +D:=$$(patsubst %/,%,$$(dir $(1))) +N:=$(1) +$(1).BINS := $$($$(D).BINS_TEMPL:bin%=$(B)/$(1)%) +-include src/$(1).mk +#$$(warning D $$(D) N $$(N) B $$($(1).BINS)) +$(B)/$(1).exe $(B)/$(1)-static.exe: $$($(1).OBJS) +$(B)/$(1).so: $$($(1).LOBJS) +# make sure dynamic and static binaries are not run parallel (matters for some tests eg ipc) +$(B)/$(1)-static.err: $(B)/$(1).err +endef +$(foreach n,$(NAMES),$(eval $(call template,$(n)))) + +BINS:=$(foreach n,$(NAMES),$($(n).BINS)) $(B)/api/main.exe +LIBS:=$(foreach n,$(NAMES),$($(n).LIBS)) $(B)/common/runtest.exe +ERRS:=$(BINS:%.exe=%.err) + +debug: + @echo NAMES $(NAMES) + @echo BINS $(BINS) + @echo LIBS $(LIBS) + @echo ERRS $(ERRS) + @echo DIRS $(DIRS) + +define target_template +$(1).ERRS:=$$(filter $(B)/$(1)/%,$$(ERRS)) +$(B)/$(1)/all: $(B)/$(1)/REPORT +$(B)/$(1)/run: $(B)/$(1)/cleanerr $(B)/$(1)/REPORT +$(B)/$(1)/cleanerr: + rm -f $$(filter-out $(B)/$(1)/%-static.err,$$($(1).ERRS)) +$(B)/$(1)/clean: + rm -f $$(filter $(B)/$(1)/%,$$(OBJS) $$(LOBJS) $$(BINS) $$(LIBS)) $(B)/$(1)/*.err +$(B)/$(1)/REPORT: $$($(1).ERRS) + cat $(B)/$(1)/*.err >$$@ +run: $(B)/$(1)/run +$(B)/REPORT: $(B)/$(1)/REPORT +.PHONY: $(B)/$(1)/all $(B)/$(1)/clean +endef +$(foreach d,$(DIRS),$(eval $(call target_template,$(d)))) + +$(B)/common/libtest.a: $(common.OBJS) + rm -f $@ + $(AR) rc $@ $^ + $(RANLIB) $@ + +$(B)/common/all: $(B)/common/runtest.exe + +$(ERRS): $(B)/common/runtest.exe | $(BDIRS) +$(BINS) $(LIBS): $(B)/common/libtest.a +$(OBJS): src/common/test.h | $(BDIRS) +$(BDIRS): + mkdir -p $@ + +$(B)/common/options.h: src/common/options.h.in + $(CC) -E - <$< | awk ' \ + /optiongroups_unistd_end/ {s=1; next} \ + !s || !NF || /^#/ {next} \ + !a {a=$$1; if(NF==1)next} \ + {print "#define "a" "$$NF; a=""}' >$@.tmp + mv $@.tmp $@ + +$(B)/common/mtest.o: src/common/mtest.h +$(math.OBJS): src/common/mtest.h + +$(B)/api/main.exe: $(api.OBJS) +api/main.OBJS:=$(api.OBJS) +$(api.OBJS):$(B)/common/options.h +$(api.OBJS):CFLAGS+=-pedantic-errors -Werror -Wno-unused -D_XOPEN_SOURCE=700 + +all run: $(B)/REPORT + grep FAIL $< || echo PASS +clean: + rm -f $(OBJS) $(BINS) $(LIBS) $(B)/common/libtest.a $(B)/common/runtest.exe $(B)/common/options.h $(B)/*/*.err +cleanall: clean + rm -f $(B)/REPORT $(B)/*/REPORT +$(B)/REPORT: + cat $^ >$@ + +$(B)/%.o:: src/%.c + $(CC) $(CFLAGS) $($*.CFLAGS) -c -o $@ $< 2>$@.err || echo BUILDERROR $@; cat $@.err +$(B)/%.s:: src/%.c + $(CC) $(CFLAGS) $($*.CFLAGS) -S -o $@ $< || echo BUILDERROR $@; cat $@.err +$(B)/%.lo:: src/%.c + $(CC) $(CFLAGS) $($*.CFLAGS) -fPIC -DSHARED -c -o $@ $< 2>$@.err || echo BUILDERROR $@; cat $@.err +$(B)/%.so: $(B)/%.lo + $(CC) -shared $(LDFLAGS) $($*.so.LDFLAGS) -o $@ $(sort $< $($*.so.LOBJS)) $(LDLIBS) $($*.so.LDLIBS) 2>$@.err || echo BUILDERROR $@; cat $@.err +$(B)/%-static.exe: $(B)/%.o + $(CC) -static $(LDFLAGS) $($*-static.LDFLAGS) -o $@ $(sort $< $($*-static.OBJS)) $(LDLIBS) $($*-static.LDLIBS) 2>$@.ld.err || echo BUILDERROR $@; cat $@.ld.err +$(B)/%.exe: $(B)/%.o + $(CC) $(LDFLAGS) $($*.LDFLAGS) -o $@ $(sort $< $($*.OBJS)) $(LDLIBS) $($*.LDLIBS) 2>$@.ld.err || echo BUILDERROR $@; cat $@.ld.err + +%.o.err: %.o + touch $@ +%.lo.err: %.lo + touch $@ +%.so.err: %.so + touch $@ +%.ld.err: %.exe + touch $@ +%.err: %.exe + $(RUN_TEST) $< >$@ || true + +.PHONY: all run clean cleanall + diff --git a/test/musl/README b/test/musl/README new file mode 100644 index 00000000..aa500917 --- /dev/null +++ b/test/musl/README @@ -0,0 +1,105 @@ +libc-test is developed as part of the musl project +http://www.musl-libc.org/ + +configuring: + cp config.mak.def config.mak + edit config.mak +build and run tests: + make +clean up: + make clean + +make builds all test binaries and runs them to create +a REPORT file that contains all build and runtime errors +(this means that make does not stop at build failures) + +contributing tests: + +design goals: + +- tests should be easy to run and build even a single test in isolation +(so test should be self contained if possible) +- failure of one test should not interfere with others +(build failure, crash or unexpected results are all failures) +- test output should point to the cause of the failure +- test results should be robust +- the test system should have minimal dependency +(libc, posix sh, gnu make) +- the test system should run on all archs and libcs +- tests should leave the system in a clean state + +conventions: + +each test is in a separate file at a path like src/directory/file.c with +its own main + +the test should return 0 on success and non-0 on failure, on failure it +should print error messages to standard out if possible, on success no +message should be printed + +to help with the above test protocol use t_error function for printing +errors and return t_status from main, see src/common/test.h +(t_error allows standard printf formatting, outputs at most 512bytes +in a single write call to fd 1, so there is no buffering, long outputs +are truncated, it sets the global t_status to 1) + +it is common to do many similar checks in a test, in such cases macros +may be used to simplify the code like +#define T1(a,b) (check(a,b) || (t_error("check(%s,%s) failed\n", a, b),0)) +#define T2(f,w) (result=(f), result==(w) || (t_error("%s failed: got %s, want %s\n", #f, result, w),0)) + +binaries should be possible to run from arbitrary directory. +the build system runs the tests using the src/common/runtest tool which +kills the test process after a timeout and reports the exit status +in case of failure + +directories: + +src/api: interface tests, build time include header tests +src/common: common utilities compiled into libtest.a +src/functional: functional tests aiming for large coverage of libc +src/math: tests for each math function with input-output test vectors +src/regression: regression tests aiming for testing particular bugs + +initial set of functional tests are derived from the libc-testsuit of +Rich Felker, regression tests should contain reference of the bug +(musl commit hash, glibc bug tracker url, etc) + +build system: + +the main non-file make targets are all, run, clean and cleanall. +(cleanall removes the reports unlike clean, run reruns the dynamically +linked executables) + +make variable can be overridden from config.mak or the make command line, +the variable B sets the build directory which is src by default + +for each directory under src there are targets like $(B)/directory/all, +$(B)/directory/run and $(B)/directory/clean to make only the contents +of that directory, each directory has its own Makefile set up so it +invokes the top level make with B=src src/directory/foo for the foo +target, so it is possible to work only under a specific test directory + +the build and runtime errors of each target are accumulated into a +target.err file and in the end they are concatenated into a REPORT + +each .c file in src/functional and src/regression are built into a +dynamic linked and a static linked executable test binary by default, +this behaviour can be changed by a similarly named .mk file changing +make variables and specifying additional rules: + +$(B)/$(N) is the name of the binary target (the file name without the .c) +$(B)/$(N)-static is the name of the static binary target +$(B)/$(D) is the build directory +$(N).CFLAGS are added to the CFLAGS at compilation +$(N).LDFLAGS are added to the LDFLAGS at linking +$(N).LDLIBS are added to the LDLIBS at linking +$(N).BINS are the targets (if empty no binaries are built) +$(N).LIBS are the non-executable targets (shared objects may use it) + +if a binary is linked together from several .o files then they +have to be specified as prerequisits for the binary targets and +added to the $(N).LDLIBS as well + +if a binary depends on a file at runtime (eg. a .so opened by dlopen) +then the $(N).err target should depend on that file diff --git a/test/musl/config.mak.def b/test/musl/config.mak.def new file mode 100644 index 00000000..633fef8a --- /dev/null +++ b/test/musl/config.mak.def @@ -0,0 +1,11 @@ +CFLAGS += -pipe -std=c99 -D_POSIX_C_SOURCE=200809L -Wall -Wno-unused-function -Wno-missing-braces -Wno-unused -Wno-overflow +CFLAGS += -Wno-unknown-pragmas -fno-builtin -frounding-math +CFLAGS += -Werror=implicit-function-declaration -Werror=implicit-int -Werror=pointer-sign -Werror=pointer-arith +CFLAGS += -g +LDFLAGS += -g +LDLIBS += -lpthread -lm -lrt + +# glibc specific settings +CFLAGS += -D_FILE_OFFSET_BITS=64 +LDLIBS += -lcrypt -ldl -lresolv -lutil -lpthread + diff --git a/test/musl/src/api/Makefile b/test/musl/src/api/Makefile new file mode 100644 index 00000000..0611406d --- /dev/null +++ b/test/musl/src/api/Makefile @@ -0,0 +1,5 @@ +all: +%: FORCE + $(MAKE) -C ../.. B=src src/api/$@ +.SUFFIXES: +FORCE: ; diff --git a/test/musl/src/api/complex.c b/test/musl/src/api/complex.c new file mode 100644 index 00000000..5522233a --- /dev/null +++ b/test/musl/src/api/complex.c @@ -0,0 +1,76 @@ +#include +#define T(t) (t*)0; +static void f() +{ +T(float complex) + +{const float complex c = _Complex_I;} +{const float complex c = I;} + +{double(*p)(double complex) = cabs;} +{float(*p)(float complex) = cabsf;} +{long double(*p)(long double complex) = cabsl;} +{double complex(*p)(double complex) = cacos;} +{float complex(*p)(float complex) = cacosf;} +{double complex(*p)(double complex) = cacosh;} +{float complex(*p)(float complex) = cacoshf;} +{long double complex(*p)(long double complex) = cacoshl;} +{long double complex(*p)(long double complex) = cacosl;} +{double(*p)(double complex) = carg;} +{float(*p)(float complex) = cargf;} +{long double(*p)(long double complex) = cargl;} +{double complex(*p)(double complex) = casin;} +{float complex(*p)(float complex) = casinf;} +{double complex(*p)(double complex) = casinh;} +{float complex(*p)(float complex) = casinhf;} +{long double complex(*p)(long double complex) = casinhl;} +{long double complex(*p)(long double complex) = casinl;} +{double complex(*p)(double complex) = catan;} +{float complex(*p)(float complex) = catanf;} +{double complex(*p)(double complex) = catanh;} +{float complex(*p)(float complex) = catanhf;} +{long double complex(*p)(long double complex) = catanhl;} +{long double complex(*p)(long double complex) = catanl;} +{double complex(*p)(double complex) = ccos;} +{float complex(*p)(float complex) = ccosf;} +{double complex(*p)(double complex) = ccosh;} +{float complex(*p)(float complex) = ccoshf;} +{long double complex(*p)(long double complex) = ccoshl;} +{long double complex(*p)(long double complex) = ccosl;} +{double complex(*p)(double complex) = cexp;} +{float complex(*p)(float complex) = cexpf;} +{long double complex(*p)(long double complex) = cexpl;} +{double(*p)(double complex) = cimag;} +{float(*p)(float complex) = cimagf;} +{long double(*p)(long double complex) = cimagl;} +{double complex(*p)(double complex) = clog;} +{float complex(*p)(float complex) = clogf;} +{long double complex(*p)(long double complex) = clogl;} +{double complex(*p)(double complex) = conj;} +{float complex(*p)(float complex) = conjf;} +{long double complex(*p)(long double complex) = conjl;} +{double complex(*p)(double complex,double complex) = cpow;} +{float complex(*p)(float complex,float complex) = cpowf;} +{long double complex(*p)(long double complex,long double complex) = cpowl;} +{double complex(*p)(double complex) = cproj;} +{float complex(*p)(float complex) = cprojf;} +{long double complex(*p)(long double complex) = cprojl;} +{double(*p)(double complex) = creal;} +{float(*p)(float complex) = crealf;} +{long double(*p)(long double complex) = creall;} +{double complex(*p)(double complex) = csin;} +{float complex(*p)(float complex) = csinf;} +{double complex(*p)(double complex) = csinh;} +{float complex(*p)(float complex) = csinhf;} +{long double complex(*p)(long double complex) = csinhl;} +{long double complex(*p)(long double complex) = csinl;} +{double complex(*p)(double complex) = csqrt;} +{float complex(*p)(float complex) = csqrtf;} +{long double complex(*p)(long double complex) = csqrtl;} +{double complex(*p)(double complex) = ctan;} +{float complex(*p)(float complex) = ctanf;} +{double complex(*p)(double complex) = ctanh;} +{float complex(*p)(float complex) = ctanhf;} +{long double complex(*p)(long double complex) = ctanhl;} +{long double complex(*p)(long double complex) = ctanl;} +} diff --git a/test/musl/src/api/fenv.c b/test/musl/src/api/fenv.c new file mode 100644 index 00000000..57907375 --- /dev/null +++ b/test/musl/src/api/fenv.c @@ -0,0 +1,31 @@ +#include +#define T(t) (t*)0; +#define F(t,n) {t *y = &x.n;} +#define C(n) switch(n){case n:;} +static void f() +{ +T(fenv_t) +T(fexcept_t) +//FE_DIVBYZERO +//FE_INEXACT +//FE_INVALID +//FE_OVERFLOW +//FE_UNDERFLOW +C(FE_ALL_EXCEPT) +//FE_DOWNWARD +//FE_TONEAREST +//FE_TOWARDZERO +//FE_UPWARD +{const fenv_t *c = FE_DFL_ENV;} +{int(*p)(int) = feclearexcept;} +{int(*p)(fenv_t*) = fegetenv;} +{int(*p)(fexcept_t*,int) = fegetexceptflag;} +{int(*p)(void) = fegetround;} +{int(*p)(fenv_t*) = feholdexcept;} +{int(*p)(int) = feraiseexcept;} +{int(*p)(const fenv_t*) = fesetenv;} +{int(*p)(const fexcept_t*,int) = fesetexceptflag;} +{int(*p)(int) = fesetround;} +{int(*p)(int) = fetestexcept;} +{int(*p)(const fenv_t*) = feupdateenv;} +} diff --git a/test/musl/src/api/float.c b/test/musl/src/api/float.c new file mode 100644 index 00000000..2a4a7c77 --- /dev/null +++ b/test/musl/src/api/float.c @@ -0,0 +1,39 @@ +#include +#define I(t,e) {t x[sizeof(t)==sizeof(e)] = {e};} +#define C(n) switch(n){case n:;} +#define D(n) {long double d = n;} +static void f() +{ +I(int,FLT_ROUNDS) +C(FLT_EVAL_METHOD) +C(FLT_RADIX) +C(FLT_MANT_DIG) +C(DBL_MANT_DIG) +C(LDBL_MANT_DIG) +C(DECIMAL_DIG) +C(FLT_DIG) +C(DBL_DIG) +C(LDBL_DIG) +C(FLT_MIN_EXP) +C(DBL_MIN_EXP) +C(LDBL_MIN_EXP) +C(FLT_MIN_10_EXP) +C(DBL_MIN_10_EXP) +C(LDBL_MIN_10_EXP) +C(FLT_MAX_EXP) +C(DBL_MAX_EXP) +C(LDBL_MAX_EXP) +C(FLT_MAX_10_EXP) +C(DBL_MAX_10_EXP) +C(LDBL_MAX_10_EXP) +D(FLT_MAX) +D(DBL_MAX) +D(LDBL_MAX) +D(FLT_EPSILON) +D(DBL_EPSILON) +D(LDBL_EPSILON) +D(FLT_MIN) +D(DBL_MIN) +D(LDBL_MIN) +} + diff --git a/test/musl/src/api/main.c b/test/musl/src/api/main.c new file mode 100644 index 00000000..237c8ce1 --- /dev/null +++ b/test/musl/src/api/main.c @@ -0,0 +1 @@ +int main() {} diff --git a/test/musl/src/api/math.c b/test/musl/src/api/math.c new file mode 100644 index 00000000..5d6d3f02 --- /dev/null +++ b/test/musl/src/api/math.c @@ -0,0 +1,235 @@ +#include +#define T(t) (t*)0; +#define C(n) switch(n){case n:;} +#define I(t,e) {t x[sizeof(t)==sizeof(e)] = {e};} +#define D(n) {double d = n;} +static void f() +{ +T(float_t) +T(double_t) +I(int,fpclassify(.0)) +I(int,isfinite(.0)) +I(int,isgreater(.0,.0)) +I(int,isgreaterequal(.0,.0)) +I(int,isinf(.0)) +I(int,isless(.0,.0)) +I(int,islessequal(.0,.0)) +I(int,islessgreater(.0,.0)) +I(int,isnan(.0)) +I(int,isnormal(.0)) +I(int,isunordered(.0,.0)) +I(int,signbit(.0)) +#ifdef _XOPEN_SOURCE +I(int,signgam) +D(M_E) +D(M_LOG2E) +D(M_LOG10E) +D(M_LN2) +D(M_LN10) +D(M_PI) +D(M_PI_2) +D(M_PI_4) +D(M_1_PI) +D(M_2_PI) +D(M_2_SQRTPI) +D(M_SQRT2) +D(M_SQRT1_2) +D(MAXFLOAT) +#endif +D(HUGE_VAL) +D(HUGE_VALF) +D(HUGE_VALL) +D(INFINITY) +D(NAN) +C(FP_INFINITE) +C(FP_NAN) +C(FP_NORMAL) +C(FP_SUBNORMAL) +C(FP_ZERO) +C(FP_ILOGB0) +C(FP_ILOGBNAN) +C(MATH_ERRNO) +C(MATH_ERREXCEPT) +C(math_errhandling) +{double(*p)(double) = acos;} +{float(*p)(float) = acosf;} +{double(*p)(double) = acosh;} +{float(*p)(float) = acoshf;} +{long double(*p)(long double) = acoshl;} +{long double(*p)(long double) = acosl;} +{double(*p)(double) = asin;} +{float(*p)(float) = asinf;} +{double(*p)(double) = asinh;} +{float(*p)(float) = asinhf;} +{long double(*p)(long double) = asinhl;} +{long double(*p)(long double) = asinl;} +{double(*p)(double) = atan;} +{double(*p)(double,double) = atan2;} +{float(*p)(float,float) = atan2f;} +{long double(*p)(long double,long double) = atan2l;} +{float(*p)(float) = atanf;} +{double(*p)(double) = atanh;} +{float(*p)(float) = atanhf;} +{long double(*p)(long double) = atanhl;} +{long double(*p)(long double) = atanl;} +{double(*p)(double) = cbrt;} +{float(*p)(float) = cbrtf;} +{long double(*p)(long double) = cbrtl;} +{double(*p)(double) = ceil;} +{float(*p)(float) = ceilf;} +{long double(*p)(long double) = ceill;} +{double(*p)(double,double) = copysign;} +{float(*p)(float,float) = copysignf;} +{long double(*p)(long double,long double) = copysignl;} +{double(*p)(double) = cos;} +{float(*p)(float) = cosf;} +{double(*p)(double) = cosh;} +{float(*p)(float) = coshf;} +{long double(*p)(long double) = coshl;} +{long double(*p)(long double) = cosl;} +{double(*p)(double) = erf;} +{double(*p)(double) = erfc;} +{float(*p)(float) = erfcf;} +{long double(*p)(long double) = erfcl;} +{float(*p)(float) = erff;} +{long double(*p)(long double) = erfl;} +{double(*p)(double) = exp;} +{double(*p)(double) = exp2;} +{float(*p)(float) = exp2f;} +{long double(*p)(long double) = exp2l;} +{float(*p)(float) = expf;} +{long double(*p)(long double) = expl;} +{double(*p)(double) = expm1;} +{float(*p)(float) = expm1f;} +{long double(*p)(long double) = expm1l;} +{double(*p)(double) = fabs;} +{float(*p)(float) = fabsf;} +{long double(*p)(long double) = fabsl;} +{double(*p)(double,double) = fdim;} +{float(*p)(float,float) = fdimf;} +{long double(*p)(long double,long double) = fdiml;} +{double(*p)(double) = floor;} +{float(*p)(float) = floorf;} +{long double(*p)(long double) = floorl;} +{double(*p)(double,double,double) = fma;} +{float(*p)(float,float,float) = fmaf;} +{long double(*p)(long double,long double,long double) = fmal;} +{double(*p)(double,double) = fmax;} +{float(*p)(float,float) = fmaxf;} +{long double(*p)(long double,long double) = fmaxl;} +{double(*p)(double,double) = fmin;} +{float(*p)(float,float) = fminf;} +{long double(*p)(long double,long double) = fminl;} +{double(*p)(double,double) = fmod;} +{float(*p)(float,float) = fmodf;} +{long double(*p)(long double,long double) = fmodl;} +{double(*p)(double,int*) = frexp;} +{float(*p)(float,int*) = frexpf;} +{long double(*p)(long double,int*) = frexpl;} +{double(*p)(double,double) = hypot;} +{float(*p)(float,float) = hypotf;} +{long double(*p)(long double,long double) = hypotl;} +{int(*p)(double) = ilogb;} +{int(*p)(float) = ilogbf;} +{int(*p)(long double) = ilogbl;} +#ifdef _XOPEN_SOURCE +{double(*p)(double) = j0;} +{double(*p)(double) = j1;} +{double(*p)(int,double) = jn;} +#endif +{double(*p)(double,int) = ldexp;} +{float(*p)(float,int) = ldexpf;} +{long double(*p)(long double,int) = ldexpl;} +{double(*p)(double) = lgamma;} +{float(*p)(float) = lgammaf;} +{long double(*p)(long double) = lgammal;} +{long long(*p)(double) = llrint;} +{long long(*p)(float) = llrintf;} +{long long(*p)(long double) = llrintl;} +{long long(*p)(double) = llround;} +{long long(*p)(float) = llroundf;} +{long long(*p)(long double) = llroundl;} +{double(*p)(double) = log;} +{double(*p)(double) = log10;} +{float(*p)(float) = log10f;} +{long double(*p)(long double) = log10l;} +{double(*p)(double) = log1p;} +{float(*p)(float) = log1pf;} +{long double(*p)(long double) = log1pl;} +{double(*p)(double) = log2;} +{float(*p)(float) = log2f;} +{long double(*p)(long double) = log2l;} +{double(*p)(double) = logb;} +{float(*p)(float) = logbf;} +{long double(*p)(long double) = logbl;} +{float(*p)(float) = logf;} +{long double(*p)(long double) = logl;} +{long(*p)(double) = lrint;} +{long(*p)(float) = lrintf;} +{long(*p)(long double) = lrintl;} +{long(*p)(double) = lround;} +{long(*p)(float) = lroundf;} +{long(*p)(long double) = lroundl;} +{double(*p)(double,double*) = modf;} +{float(*p)(float,float*) = modff;} +{long double(*p)(long double,long double*) = modfl;} +{double(*p)(const char*) = nan;} +{float(*p)(const char*) = nanf;} +{long double(*p)(const char*) = nanl;} +{double(*p)(double) = nearbyint;} +{float(*p)(float) = nearbyintf;} +{long double(*p)(long double) = nearbyintl;} +{double(*p)(double,double) = nextafter;} +{float(*p)(float,float) = nextafterf;} +{long double(*p)(long double,long double) = nextafterl;} +{double(*p)(double,long double) = nexttoward;} +{float(*p)(float,long double) = nexttowardf;} +{long double(*p)(long double,long double) = nexttowardl;} +{double(*p)(double,double) = pow;} +{float(*p)(float,float) = powf;} +{long double(*p)(long double,long double) = powl;} +{double(*p)(double,double) = remainder;} +{float(*p)(float,float) = remainderf;} +{long double(*p)(long double,long double) = remainderl;} +{double(*p)(double,double,int*) = remquo;} +{float(*p)(float,float,int*) = remquof;} +{long double(*p)(long double,long double,int*) = remquol;} +{double(*p)(double) = rint;} +{float(*p)(float) = rintf;} +{long double(*p)(long double) = rintl;} +{double(*p)(double) = round;} +{float(*p)(float) = roundf;} +{long double(*p)(long double) = roundl;} +{double(*p)(double,long) = scalbln;} +{float(*p)(float,long) = scalblnf;} +{long double(*p)(long double,long) = scalblnl;} +{double(*p)(double,int) = scalbn;} +{float(*p)(float,int) = scalbnf;} +{long double(*p)(long double,int) = scalbnl;} +{double(*p)(double) = sin;} +{float(*p)(float) = sinf;} +{double(*p)(double) = sinh;} +{float(*p)(float) = sinhf;} +{long double(*p)(long double) = sinhl;} +{long double(*p)(long double) = sinl;} +{double(*p)(double) = sqrt;} +{float(*p)(float) = sqrtf;} +{long double(*p)(long double) = sqrtl;} +{double(*p)(double) = tan;} +{float(*p)(float) = tanf;} +{double(*p)(double) = tanh;} +{float(*p)(float) = tanhf;} +{long double(*p)(long double) = tanhl;} +{long double(*p)(long double) = tanl;} +{double(*p)(double) = tgamma;} +{float(*p)(float) = tgammaf;} +{long double(*p)(long double) = tgammal;} +{double(*p)(double) = trunc;} +{float(*p)(float) = truncf;} +{long double(*p)(long double) = truncl;} +#ifdef _XOPEN_SOURCE +{double(*p)(double) = y0;} +{double(*p)(double) = y1;} +{double(*p)(int,double) = yn;} +#endif +} diff --git a/test/musl/src/common/Makefile b/test/musl/src/common/Makefile new file mode 100644 index 00000000..165b25e4 --- /dev/null +++ b/test/musl/src/common/Makefile @@ -0,0 +1,5 @@ +all: +%: FORCE + $(MAKE) -C ../.. B=src src/common/$@ +.SUFFIXES: +FORCE: ; diff --git a/test/musl/src/common/mtest.c b/test/musl/src/common/mtest.c new file mode 100644 index 00000000..54c47723 --- /dev/null +++ b/test/musl/src/common/mtest.c @@ -0,0 +1,144 @@ +#include +#include +#include "mtest.h" + +int eulpf(float x) +{ + union { float f; uint32_t i; } u = { x }; + int e = u.i>>23 & 0xff; + + if (!e) + e++; + return e - 0x7f - 23; +} + +int eulp(double x) +{ + union { double f; uint64_t i; } u = { x }; + int e = u.i>>52 & 0x7ff; + + if (!e) + e++; + return e - 0x3ff - 52; +} + +int eulpl(long double x) +{ +#if LDBL_MANT_DIG == 53 + return eulp(x); +#elif LDBL_MANT_DIG == 64 + union { long double f; struct {uint64_t m; uint16_t e; uint16_t pad;} i; } u = { x }; + int e = u.i.e & 0x7fff; + + if (!e) + e++; + return e - 0x3fff - 63; +#else + // TODO + return 0; +#endif +} + +float ulperrf(float got, float want, float dwant) +{ + if (isnan(got) && isnan(want)) + return 0; + if (got == want) { + if (signbit(got) == signbit(want)) + return dwant; + return inf; + } + if (isinf(got)) { + got = copysignf(0x1p127, got); + want *= 0.5; + } + return scalbn(got - want, -eulpf(want)) + dwant; +} + +float ulperr(double got, double want, float dwant) +{ + if (isnan(got) && isnan(want)) + return 0; + if (got == want) { + if (signbit(got) == signbit(want)) + return dwant; + return inf; // treat 0 sign errors badly + } + if (isinf(got)) { + got = copysign(0x1p1023, got); + want *= 0.5; + } + return scalbn(got - want, -eulp(want)) + dwant; +} + +float ulperrl(long double got, long double want, float dwant) +{ +#if LDBL_MANT_DIG == 53 + return ulperr(got, want, dwant); +#elif LDBL_MANT_DIG == 64 + if (isnan(got) && isnan(want)) + return 0; + if (got == want) { + if (signbit(got) == signbit(want)) + return dwant; + return inf; + } + if (isinf(got)) { + got = copysignl(0x1p16383L, got); + want *= 0.5; + } + return scalbnl(got - want, -eulpl(want)) + dwant; +#else + // TODO + return inf; +#endif +} + +#define length(a) (sizeof(a)/sizeof*(a)) +#define flag(x) {x, #x} +static struct { + int flag; + char *s; +} eflags[] = { + flag(INEXACT), + flag(INVALID), + flag(DIVBYZERO), + flag(UNDERFLOW), + flag(OVERFLOW) +}; + +char *estr(int f) +{ + static char buf[256]; + char *p = buf; + int i, all = 0; + + for (i = 0; i < length(eflags); i++) + if (f & eflags[i].flag) { + p += sprintf(p, "%s%s", all ? "|" : "", eflags[i].s); + all |= eflags[i].flag; + } + if (all != f) { + p += sprintf(p, "%s%d", all ? "|" : "", f & ~all); + all = f; + } + p += sprintf(p, "%s", all ? "" : "0"); + return buf; +} + +char *rstr(int r) +{ + switch (r) { + case RN: return "RN"; +#ifdef FE_TOWARDZERO + case RZ: return "RZ"; +#endif +#ifdef FE_UPWARD + case RU: return "RU"; +#endif +#ifdef FE_DOWNWARD + case RD: return "RD"; +#endif + } + return "R?"; +} diff --git a/test/musl/src/common/mtest.h b/test/musl/src/common/mtest.h new file mode 100644 index 00000000..706c1ba2 --- /dev/null +++ b/test/musl/src/common/mtest.h @@ -0,0 +1,135 @@ +#include +#include +#include + +#undef RN +#undef RZ +#undef RD +#undef RU +#ifdef FE_TONEAREST +#define RN FE_TONEAREST +#else +#define RN 0 +#endif +#ifdef FE_TOWARDZERO +#define RZ FE_TOWARDZERO +#else +#define RZ -1 +#endif +#ifdef FE_DOWNWARD +#define RD FE_DOWNWARD +#else +#define RD -1 +#endif +#ifdef FE_UPWARD +#define RU FE_UPWARD +#else +#define RU -1 +#endif + +#undef INEXACT +#undef INVALID +#undef DIVBYZERO +#undef UNDERFLOW +#undef OVERFLOW +#ifdef FE_INEXACT +#define INEXACT FE_INEXACT +#else +#define INEXACT 0 +#endif +#ifdef FE_INVALID +#define INVALID FE_INVALID +#else +#define INVALID 0 +#endif +#ifdef FE_DIVBYZERO +#define DIVBYZERO FE_DIVBYZERO +#else +#define DIVBYZERO 0 +#endif +#ifdef FE_UNDERFLOW +#define UNDERFLOW FE_UNDERFLOW +#else +#define UNDERFLOW 0 +#endif +#ifdef FE_OVERFLOW +#define OVERFLOW FE_OVERFLOW +#else +#define OVERFLOW 0 +#endif + +#undef inf +#undef nan +#define inf INFINITY +#define nan NAN + +#define T(...) {__FILE__, __LINE__, __VA_ARGS__}, + +#define POS char *file; int line; +struct d_d {POS int r; double x; double y; float dy; int e; }; +struct f_f {POS int r; float x; float y; float dy; int e; }; +struct l_l {POS int r; long double x; long double y; float dy; int e; }; +struct ff_f {POS int r; float x; float x2; float y; float dy; int e; }; +struct dd_d {POS int r; double x; double x2; double y; float dy; int e; }; +struct ll_l {POS int r; long double x; long double x2; long double y; float dy; int e; }; +struct d_di {POS int r; double x; double y; float dy; long long i; int e; }; +struct f_fi {POS int r; float x; float y; float dy; long long i; int e; }; +struct l_li {POS int r; long double x; long double y; float dy; long long i; int e; }; +struct di_d {POS int r; double x; long long i; double y; float dy; int e; }; +struct fi_f {POS int r; float x; long long i; float y; float dy; int e; }; +struct li_l {POS int r; long double x; long long i; long double y; float dy; int e; }; +struct d_i {POS int r; double x; long long i; int e; }; +struct f_i {POS int r; float x; long long i; int e; }; +struct l_i {POS int r; long double x; long long i; int e; }; +struct d_dd {POS int r; double x; double y; float dy; double y2; float dy2; int e; }; +struct f_ff {POS int r; float x; float y; float dy; float y2; float dy2; int e; }; +struct l_ll {POS int r; long double x; long double y; float dy; long double y2; float dy2; int e; }; +struct ff_fi {POS int r; float x; float x2; float y; float dy; long long i; int e; }; +struct dd_di {POS int r; double x; double x2; double y; float dy; long long i; int e; }; +struct ll_li {POS int r; long double x; long double x2; long double y; float dy; long long i; int e; }; +struct fff_f {POS int r; float x; float x2; float x3; float y; float dy; int e; }; +struct ddd_d {POS int r; double x; double x2; double x3; double y; float dy; int e; }; +struct lll_l {POS int r; long double x; long double x2; long double x3; long double y; float dy; int e; }; +#undef POS + +char *estr(int); +char *rstr(int); + +float ulperr(double got, double want, float dwant); +float ulperrf(float got, float want, float dwant); +float ulperrl(long double got, long double want, float dwant); + +static int checkexcept(int got, int want, int r) +{ + if (r == RN) +#if defined CHECK_INEXACT + return got == want; +#elif defined CHECK_INEXACT_OMISSION + return got == want || got == (want|INEXACT); +#else + return (got|INEXACT) == (want|INEXACT); +#endif + return (got|INEXACT|UNDERFLOW) == (want|INEXACT|UNDERFLOW); +} + +static int checkexceptall(int got, int want, int r) +{ + return got == want; +} + +static int checkulp(float d, int r) +{ + // TODO: we only care about >=1.5 ulp errors for now, should be 1.0 + if (r == RN) + return fabsf(d) < 1.5; + // accept larger error in non-nearest rounding mode + return fabsf(d) < 3.0; +} + +static int checkcr(long double y, long double ywant, int r) +{ + if (isnan(ywant)) + return isnan(y); + return y == ywant && signbit(y) == signbit(ywant); +} + diff --git a/test/musl/src/common/options.h.in b/test/musl/src/common/options.h.in new file mode 100644 index 00000000..711425d5 --- /dev/null +++ b/test/musl/src/common/options.h.in @@ -0,0 +1,125 @@ +/* Usage: pipe the output of running the preprocessor on this file to: + * sed -e '1,/optiongroups_unistd_end/d' -e '/^#/d' -e '/^[[:space:]]*$/d' -e 's/^/#define /' + */ +#include +optiongroups_unistd_end + +#if defined _POSIX_ADVISORY_INFO && _POSIX_ADVISORY_INFO >= 0 +POSIX_ADVISORY_INFO _POSIX_ADVISORY_INFO +#endif + +#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0 +POSIX_CPUTIME _POSIX_CPUTIME +#endif + +#if defined _POSIX_FSYNC && _POSIX_FSYNC >= 0 +POSIX_FSYNC _POSIX_FSYNC +#endif + +#if defined _POSIX_IPV6 && _POSIX_IPV6 >= 0 +POSIX_IPV6 _POSIX_IPV6 +#endif + +#if defined _POSIX_MEMLOCK && _POSIX_MEMLOCK >= 0 +POSIX_MEMLOCK _POSIX_MEMLOCK +#endif + +#if defined _POSIX_MEMLOCK_RANGE && _POSIX_MEMLOCK_RANGE >= 0 +POSIX_MEMLOCK_RANGE _POSIX_MEMLOCK_RANGE +#endif + +#if defined _POSIX_MESSAGE_PASSING && _POSIX_MESSAGE_PASSING >= 0 +POSIX_MESSAGE_PASSING _POSIX_MESSAGE_PASSING +#endif + +#if defined _POSIX_MONOTONIC_CLOCK && _POSIX_MONOTONIC_CLOCK >= 0 +POSIX_MONOTONIC_CLOCK _POSIX_MONOTONIC_CLOCK +#endif + +#if defined _POSIX_PRIORITIZED_IO && _POSIX_PRIORITIZED_IO >= 0 +POSIX_PRIORITIZED_IO _POSIX_PRIORITIZED_IO +#endif + +#if defined _POSIX_PRIORITY_SCHEDULING && _POSIX_PRIORITY_SCHEDULING >= 0 +POSIX_PRIORITY_SCHEDULING _POSIX_PRIORITY_SCHEDULING +#endif + +#if defined _POSIX_RAW_SOCKETS && _POSIX_RAW_SOCKETS >= 0 +POSIX_RAW_SOCKETS _POSIX_RAW_SOCKETS +#endif + +#if defined _POSIX_SHARED_MEMORY_OBJECTS && _POSIX_SHARED_MEMORY_OBJECTS >= 0 +POSIX_SHARED_MEMORY_OBJECTS _POSIX_SHARED_MEMORY_OBJECTS +#endif + +#if defined _POSIX_SPAWN && _POSIX_SPAWN >= 0 +POSIX_SPAWN _POSIX_SPAWN +#endif + +#if defined _POSIX_SPORADIC_SERVER && _POSIX_SPORADIC_SERVER >= 0 +POSIX_SPORADIC_SERVER _POSIX_SPORADIC_SERVER +#endif + +#if defined _POSIX_SYNCHRONIZED_IO && _POSIX_SYNCHRONIZED_IO >= 0 +POSIX_SYNCHRONIZED_IO _POSIX_SYNCHRONIZED_IO +#endif + +#if defined _POSIX_THREAD_ATTR_STACKADDR && _POSIX_THREAD_ATTR_STACKADDR >= 0 +POSIX_THREAD_ATTR_STACKADDR _POSIX_THREAD_ATTR_STACKADDR +#endif + +#if defined _POSIX_THREAD_ATTR_STACKSIZE && _POSIX_THREAD_ATTR_STACKSIZE >= 0 +POSIX_THREAD_ATTR_STACKSIZE _POSIX_THREAD_ATTR_STACKSIZE +#endif + +#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0 +POSIX_THREAD_CPUTIME _POSIX_THREAD_CPUTIME +#endif + +#if defined _POSIX_THREAD_PRIO_INHERIT && _POSIX_THREAD_PRIO_INHERIT >= 0 +POSIX_THREAD_PRIO_INHERIT _POSIX_THREAD_PRIO_INHERIT +#endif + +#if defined _POSIX_THREAD_PRIO_PROTECT && _POSIX_THREAD_PRIO_PROTECT >= 0 +POSIX_THREAD_PRIO_PROTECT _POSIX_THREAD_PRIO_PROTECT +#endif + +#if defined _POSIX_THREAD_PRIORITY_SCHEDULING && _POSIX_THREAD_PRIORITY_SCHEDULING >= 0 +POSIX_THREAD_PRIORITY_SCHEDULING _POSIX_THREAD_PRIORITY_SCHEDULING +#endif + +#if defined _POSIX_THREAD_PROCESS_SHARED && _POSIX_THREAD_PROCESS_SHARED >= 0 +POSIX_THREAD_PROCESS_SHARED _POSIX_THREAD_PROCESS_SHARED +#endif + +#if defined _POSIX_THREAD_ROBUST_PRIO_INHERIT && _POSIX_THREAD_ROBUST_PRIO_INHERIT >= 0 +POSIX_THREAD_ROBUST_PRIO_INHERIT _POSIX_THREAD_ROBUST_PRIO_INHERIT +#endif + +#if defined _POSIX_THREAD_ROBUST_PRIO_PROTECT && _POSIX_THREAD_ROBUST_PRIO_PROTECT >= 0 +POSIX_THREAD_ROBUST_PRIO_PROTECT _POSIX_THREAD_ROBUST_PRIO_PROTECT +#endif + +#if defined _POSIX_THREAD_SPORADIC_SERVER && _POSIX_THREAD_SPORADIC_SERVER >= 0 +POSIX_THREAD_SPORADIC_SERVER _POSIX_THREAD_SPORADIC_SERVER +#endif + +#if defined _POSIX_TYPED_MEMORY_OBJECTS && _POSIX_TYPED_MEMORY_OBJECTS >= 0 +POSIX_TYPED_MEMORY_OBJECTS _POSIX_TYPED_MEMORY_OBJECTS +#endif + +#if defined _XOPEN_CRYPT && _XOPEN_CRYPT >= 0 +XOPEN_CRYPT _XOPEN_CRYPT +#endif + +#if defined _XOPEN_REALTIME && _XOPEN_REALTIME >= 0 +XOPEN_REALTIME _XOPEN_REALTIME +#endif + +#if defined _XOPEN_REALTIME_THREADS && _XOPEN_REALTIME_THREADS >= 0 +XOPEN_REALTIME_THREADS _XOPEN_REALTIME_THREADS +#endif + +#if defined _XOPEN_UNIX && _XOPEN_UNIX >= 0 +XOPEN_UNIX _XOPEN_UNIX +#endif diff --git a/test/musl/src/common/print.c b/test/musl/src/common/print.c new file mode 100644 index 00000000..b9088bad --- /dev/null +++ b/test/musl/src/common/print.c @@ -0,0 +1,28 @@ +#include +#include +#include +#include "test.h" + +volatile int t_status = 0; + +int t_printf(const char *s, ...) +{ + va_list ap; + char buf[512]; + int n; + + t_status = 1; + va_start(ap, s); + n = vsnprintf(buf, sizeof buf, s, ap); + va_end(ap); + if (n < 0) + n = 0; + else if (n >= sizeof buf) { + n = sizeof buf; + buf[n - 1] = '\n'; + buf[n - 2] = '.'; + buf[n - 3] = '.'; + buf[n - 4] = '.'; + } + return write(1, buf, n); +} diff --git a/test/musl/src/common/runtest.c b/test/musl/src/common/runtest.c new file mode 100644 index 00000000..ea0c1a8e --- /dev/null +++ b/test/musl/src/common/runtest.c @@ -0,0 +1,100 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "test.h" + +static void handler(int s) +{ +} + +static int start(char *wrap, char *argv[]) +{ + int pid; + + pid = fork(); + if (pid == 0) { + t_setrlim(RLIMIT_STACK, 100*1024); + if (*wrap) { + argv--; + argv[0] = wrap; + } + execv(argv[0], argv); + t_error("%s exec failed: %s\n", argv[0], strerror(errno)); + exit(1); + } + return pid; +} + +static void usage(char *argv[]) +{ + t_error("usage: %s [-t timeoutsec] [-w wrapcmd] cmd [args..]\n", argv[0]); + exit(-1); +} + +int main(int argc, char *argv[]) +{ + char *wrap = ""; + int timeoutsec = 5; + int timeout = 0; + int status; + sigset_t set; + int opt; + int pid; + + while ((opt = getopt(argc, argv, "w:t:")) != -1) { + switch (opt) { + case 'w': + wrap = optarg; + break; + case 't': + timeoutsec = atoi(optarg); + break; + default: + usage(argv); + } + } + if (optind >= argc) + usage(argv); + argv += optind; + sigemptyset(&set); + sigaddset(&set, SIGCHLD); + sigprocmask(SIG_BLOCK, &set, 0); + signal(SIGCHLD, handler); + pid = start(wrap, argv); + if (pid == -1) { + t_error("%s fork failed: %s\n", argv[0], strerror(errno)); + t_printf("FAIL %s [internal]\n", argv[0]); + return -1; + } + if (sigtimedwait(&set, 0, &(struct timespec){timeoutsec,0}) == -1) { + if (errno == EAGAIN) + timeout = 1; + else + t_error("%s sigtimedwait failed: %s\n", argv[0], strerror(errno)); + if (kill(pid, SIGKILL) == -1) + t_error("%s kill failed: %s\n", argv[0], strerror(errno)); + } + if (waitpid(pid, &status, 0) != pid) { + t_error("%s waitpid failed: %s\n", argv[0], strerror(errno)); + t_printf("FAIL %s [internal]\n", argv[0]); + return -1; + } + if (WIFEXITED(status)) { + if (WEXITSTATUS(status) == 0) + return t_status; + t_printf("FAIL %s [status %d]\n", argv[0], WEXITSTATUS(status)); + } else if (timeout) { + t_printf("FAIL %s [timed out]\n", argv[0]); + } else if (WIFSIGNALED(status)) { + t_printf("FAIL %s [signal %s]\n", argv[0], strsignal(WTERMSIG(status))); + } else + t_printf("FAIL %s [unknown]\n", argv[0]); + return 1; +} diff --git a/test/musl/src/common/setrlim.c b/test/musl/src/common/setrlim.c new file mode 100644 index 00000000..cc89f61a --- /dev/null +++ b/test/musl/src/common/setrlim.c @@ -0,0 +1,26 @@ +#include +#include +#include +#include "test.h" + +int t_setrlim(int r, long lim) +{ + struct rlimit rl; + + if (getrlimit(r, &rl)) { + t_error("getrlimit %d: %s\n", r, strerror(errno)); + return -1; + } + if (lim > rl.rlim_max) + return -1; + if (lim == rl.rlim_max && lim == rl.rlim_cur) + return 0; + rl.rlim_max = lim; + rl.rlim_cur = lim; + if (setrlimit(r, &rl)) { + t_error("setrlimit(%d, %ld): %s\n", r, lim, strerror(errno)); + return -1; + } + return 0; +} + diff --git a/test/musl/src/common/test.h b/test/musl/src/common/test.h new file mode 100644 index 00000000..7b11f390 --- /dev/null +++ b/test/musl/src/common/test.h @@ -0,0 +1,13 @@ +#include +#include + +/* TODO: not thread-safe nor fork-safe */ +extern volatile int t_status; + +#define T_LOC2(l) __FILE__ ":" #l +#define T_LOC1(l) T_LOC2(l) +#define t_error(...) t_printf(T_LOC1(__LINE__) ": " __VA_ARGS__) + +int t_printf(const char *s, ...); + +int t_setrlim(int r, long lim); diff --git a/test/musl/src/math/Makefile b/test/musl/src/math/Makefile new file mode 100644 index 00000000..d7070b0f --- /dev/null +++ b/test/musl/src/math/Makefile @@ -0,0 +1,5 @@ +all: +%: FORCE + $(MAKE) -C ../.. B=src src/math/$@ +.SUFFIXES: +FORCE: ; diff --git a/test/musl/src/math/README b/test/musl/src/math/README new file mode 100644 index 00000000..82d9ca2e --- /dev/null +++ b/test/musl/src/math/README @@ -0,0 +1,9 @@ +libm tests + +tools from gen/ were used to generate the tests + +test vectors are generated like + +echo 3.14 |./gen sin + +using crlibm, ucb and a various other test inputs diff --git a/test/musl/src/math/acos.c b/test/musl/src/math/acos.c new file mode 100644 index 00000000..403feb73 --- /dev/null +++ b/test/musl/src/math/acos.c @@ -0,0 +1,45 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +// #include "crlibm/acos.h" +#include "ucb/acos.h" +#include "sanity/acos.h" +#include "special/acos.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = acos(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s acos(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s acos(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/acosf.c b/test/musl/src/math/acosf.c new file mode 100644 index 00000000..0841db8d --- /dev/null +++ b/test/musl/src/math/acosf.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "ucb/acosf.h" +#include "sanity/acosf.h" +#include "special/acosf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = acosf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s acosf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s acosf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/acosh.c b/test/musl/src/math/acosh.c new file mode 100644 index 00000000..1a468a9a --- /dev/null +++ b/test/musl/src/math/acosh.c @@ -0,0 +1,46 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "sanity/acosh.h" +#include "special/acosh.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = acosh(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s acosh(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + if (fabsf(d) < 2.0f) + printf("X "); + else + err++; + printf("%s:%d: %s acosh(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + } + } + return !!err; +} diff --git a/test/musl/src/math/acoshf.c b/test/musl/src/math/acoshf.c new file mode 100644 index 00000000..a4a99824 --- /dev/null +++ b/test/musl/src/math/acoshf.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "sanity/acoshf.h" +#include "special/acoshf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = acoshf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s acoshf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s acoshf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/acoshl.c b/test/musl/src/math/acoshl.c new file mode 100644 index 00000000..1e6f7f22 --- /dev/null +++ b/test/musl/src/math/acoshl.c @@ -0,0 +1,49 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = acoshl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s acoshl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s acoshl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/acosl.c b/test/musl/src/math/acosl.c new file mode 100644 index 00000000..f91d483d --- /dev/null +++ b/test/musl/src/math/acosl.c @@ -0,0 +1,51 @@ +#include +#include +#include "mtest.h" + +static struct l_l t[] = { +#if LDBL_MANT_DIG == 53 +// #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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = acosl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s acosl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s acosl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/asin.c b/test/musl/src/math/asin.c new file mode 100644 index 00000000..254b78d8 --- /dev/null +++ b/test/musl/src/math/asin.c @@ -0,0 +1,45 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +// #include "crlibm/asin.h" +#include "ucb/asin.h" +#include "sanity/asin.h" +#include "special/asin.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = asin(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s asin(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s asin(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/asinf.c b/test/musl/src/math/asinf.c new file mode 100644 index 00000000..136ce274 --- /dev/null +++ b/test/musl/src/math/asinf.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "ucb/asinf.h" +#include "sanity/asinf.h" +#include "special/asinf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = asinf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s asinf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s asinf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/asinh.c b/test/musl/src/math/asinh.c new file mode 100644 index 00000000..b37b0be1 --- /dev/null +++ b/test/musl/src/math/asinh.c @@ -0,0 +1,46 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "sanity/asinh.h" +#include "special/asinh.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = asinh(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s asinh(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + if (fabsf(d) < 2.0f) + printf("X "); + else + err++; + printf("%s:%d: %s asinh(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + } + } + return !!err; +} diff --git a/test/musl/src/math/asinhf.c b/test/musl/src/math/asinhf.c new file mode 100644 index 00000000..c7a398e3 --- /dev/null +++ b/test/musl/src/math/asinhf.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "sanity/asinhf.h" +#include "special/asinhf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = asinhf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s asinhf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s asinhf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/asinhl.c b/test/musl/src/math/asinhl.c new file mode 100644 index 00000000..921bad84 --- /dev/null +++ b/test/musl/src/math/asinhl.c @@ -0,0 +1,49 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = asinhl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s asinhl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s asinhl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/asinl.c b/test/musl/src/math/asinl.c new file mode 100644 index 00000000..ad718cf8 --- /dev/null +++ b/test/musl/src/math/asinl.c @@ -0,0 +1,51 @@ +#include +#include +#include "mtest.h" + +static struct l_l t[] = { +#if LDBL_MANT_DIG == 53 +// #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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = asinl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s asinl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s asinl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/atan.c b/test/musl/src/math/atan.c new file mode 100644 index 00000000..cc74d00d --- /dev/null +++ b/test/musl/src/math/atan.c @@ -0,0 +1,45 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +// #include "crlibm/atan.h" +#include "ucb/atan.h" +#include "sanity/atan.h" +#include "special/atan.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = atan(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s atan(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s atan(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/atan2.c b/test/musl/src/math/atan2.c new file mode 100644 index 00000000..b9f7d767 --- /dev/null +++ b/test/musl/src/math/atan2.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct dd_d t[] = { +#include "ucb/atan2.h" +#include "sanity/atan2.h" +#include "special/atan2.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct dd_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = atan2(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s atan2(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s atan2(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/atan2f.c b/test/musl/src/math/atan2f.c new file mode 100644 index 00000000..f3d3bf09 --- /dev/null +++ b/test/musl/src/math/atan2f.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct ff_f t[] = { +#include "ucb/atan2f.h" +#include "sanity/atan2f.h" +#include "special/atan2f.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct ff_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = atan2f(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s atan2f(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s atan2f(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/atan2l.c b/test/musl/src/math/atan2l.c new file mode 100644 index 00000000..f07314c8 --- /dev/null +++ b/test/musl/src/math/atan2l.c @@ -0,0 +1,50 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct ll_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = atan2l(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s atan2l(%La,%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s atan2l(%La,%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/atanf.c b/test/musl/src/math/atanf.c new file mode 100644 index 00000000..271c1783 --- /dev/null +++ b/test/musl/src/math/atanf.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "ucb/atanf.h" +#include "sanity/atanf.h" +#include "special/atanf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = atanf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s atanf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s atanf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/atanh.c b/test/musl/src/math/atanh.c new file mode 100644 index 00000000..3b49325f --- /dev/null +++ b/test/musl/src/math/atanh.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "sanity/atanh.h" +#include "special/atanh.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = atanh(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s atanh(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s atanh(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/atanhf.c b/test/musl/src/math/atanhf.c new file mode 100644 index 00000000..2c0ba913 --- /dev/null +++ b/test/musl/src/math/atanhf.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "sanity/atanhf.h" +#include "special/atanhf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = atanhf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s atanhf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s atanhf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/atanhl.c b/test/musl/src/math/atanhl.c new file mode 100644 index 00000000..4d7cdea1 --- /dev/null +++ b/test/musl/src/math/atanhl.c @@ -0,0 +1,49 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = atanhl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s atanhl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s atanhl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/atanl.c b/test/musl/src/math/atanl.c new file mode 100644 index 00000000..7bb8bd86 --- /dev/null +++ b/test/musl/src/math/atanl.c @@ -0,0 +1,51 @@ +#include +#include +#include "mtest.h" + +static struct l_l t[] = { +#if LDBL_MANT_DIG == 53 +// #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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = atanl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s atanl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s atanl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/cbrt.c b/test/musl/src/math/cbrt.c new file mode 100644 index 00000000..0feff3db --- /dev/null +++ b/test/musl/src/math/cbrt.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "sanity/cbrt.h" +#include "special/cbrt.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = cbrt(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s cbrt(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s cbrt(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/cbrtf.c b/test/musl/src/math/cbrtf.c new file mode 100644 index 00000000..6eacc480 --- /dev/null +++ b/test/musl/src/math/cbrtf.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "sanity/cbrtf.h" +#include "special/cbrtf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = cbrtf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s cbrtf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s cbrtf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/cbrtl.c b/test/musl/src/math/cbrtl.c new file mode 100644 index 00000000..111da1d7 --- /dev/null +++ b/test/musl/src/math/cbrtl.c @@ -0,0 +1,49 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = cbrtl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s cbrtl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s cbrtl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/ceil.c b/test/musl/src/math/ceil.c new file mode 100644 index 00000000..8fe2bf92 --- /dev/null +++ b/test/musl/src/math/ceil.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "ucb/ceil.h" +#include "sanity/ceil.h" +#include "special/ceil.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = ceil(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r) && (e|INEXACT) != p->e) { + printf("%s:%d: bad fp exception: %s ceil(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s ceil(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/ceilf.c b/test/musl/src/math/ceilf.c new file mode 100644 index 00000000..e3c3538c --- /dev/null +++ b/test/musl/src/math/ceilf.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "ucb/ceilf.h" +#include "sanity/ceilf.h" +#include "special/ceilf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = ceilf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r) && (e|INEXACT) != p->e) { + printf("%s:%d: bad fp exception: %s ceilf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s ceilf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/ceill.c b/test/musl/src/math/ceill.c new file mode 100644 index 00000000..45d24a11 --- /dev/null +++ b/test/musl/src/math/ceill.c @@ -0,0 +1,50 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = ceill(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r) && (e|INEXACT) != p->e) { + printf("%s:%d: bad fp exception: %s ceill(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s ceill(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/copysign.c b/test/musl/src/math/copysign.c new file mode 100644 index 00000000..ecc37190 --- /dev/null +++ b/test/musl/src/math/copysign.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct dd_d t[] = { +#include "sanity/copysign.h" +#include "special/copysign.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct dd_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = copysign(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s copysign(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s copysign(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/copysignf.c b/test/musl/src/math/copysignf.c new file mode 100644 index 00000000..e8bb7680 --- /dev/null +++ b/test/musl/src/math/copysignf.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct ff_f t[] = { +#include "sanity/copysignf.h" +#include "special/copysignf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct ff_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = copysignf(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s copysignf(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s copysignf(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/copysignl.c b/test/musl/src/math/copysignl.c new file mode 100644 index 00000000..9442a170 --- /dev/null +++ b/test/musl/src/math/copysignl.c @@ -0,0 +1,49 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct ll_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = copysignl(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s copysignl(%La,%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s copysignl(%La,%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/cos.c b/test/musl/src/math/cos.c new file mode 100644 index 00000000..dd0cff24 --- /dev/null +++ b/test/musl/src/math/cos.c @@ -0,0 +1,48 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +// #include "crlibm/cos.h" +#include "ucb/cos.h" +#include "sanity/cos.h" +#include "special/cos.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = cos(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s cos(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + if (p->r != RN) + printf("X "); + else + err++; + printf("%s:%d: %s cos(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + } + } + return !!err; +} diff --git a/test/musl/src/math/cosf.c b/test/musl/src/math/cosf.c new file mode 100644 index 00000000..509535a2 --- /dev/null +++ b/test/musl/src/math/cosf.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "ucb/cosf.h" +#include "sanity/cosf.h" +#include "special/cosf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = cosf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s cosf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s cosf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/cosh.c b/test/musl/src/math/cosh.c new file mode 100644 index 00000000..64e3558d --- /dev/null +++ b/test/musl/src/math/cosh.c @@ -0,0 +1,45 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +// #include "crlibm/cosh.h" +#include "ucb/cosh.h" +#include "sanity/cosh.h" +#include "special/cosh.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = cosh(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s cosh(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s cosh(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/coshf.c b/test/musl/src/math/coshf.c new file mode 100644 index 00000000..32afefb5 --- /dev/null +++ b/test/musl/src/math/coshf.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "ucb/coshf.h" +#include "sanity/coshf.h" +#include "special/coshf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = coshf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s coshf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s coshf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/coshl.c b/test/musl/src/math/coshl.c new file mode 100644 index 00000000..e44b3a7c --- /dev/null +++ b/test/musl/src/math/coshl.c @@ -0,0 +1,51 @@ +#include +#include +#include "mtest.h" + +static struct l_l t[] = { +#if LDBL_MANT_DIG == 53 +// #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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = coshl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s coshl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s coshl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/cosl.c b/test/musl/src/math/cosl.c new file mode 100644 index 00000000..62157409 --- /dev/null +++ b/test/musl/src/math/cosl.c @@ -0,0 +1,51 @@ +#include +#include +#include "mtest.h" + +static struct l_l t[] = { +#if LDBL_MANT_DIG == 53 +// #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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = cosl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s cosl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s cosl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/drem.c b/test/musl/src/math/drem.c new file mode 100644 index 00000000..ec4bd33c --- /dev/null +++ b/test/musl/src/math/drem.c @@ -0,0 +1,44 @@ +#define _GNU_SOURCE +#include +#include +#include "mtest.h" + +static struct dd_d t[] = { +#include "sanity/remainder.h" +#include "special/remainder.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct dd_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = drem(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s drem(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s drem(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/dremf.c b/test/musl/src/math/dremf.c new file mode 100644 index 00000000..ed16edeb --- /dev/null +++ b/test/musl/src/math/dremf.c @@ -0,0 +1,44 @@ +#define _GNU_SOURCE +#include +#include +#include "mtest.h" + +static struct ff_f t[] = { +#include "sanity/remainderf.h" +#include "special/remainderf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct ff_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = dremf(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s dremf(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s dremf(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/erf.c b/test/musl/src/math/erf.c new file mode 100644 index 00000000..efff5f42 --- /dev/null +++ b/test/musl/src/math/erf.c @@ -0,0 +1,46 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "sanity/erf.h" +#include "special/erf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = erf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s erf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + if (fabs(d) < 4.0f) + printf("X "); + else + err++; + printf("%s:%d: %s erf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + } + } + return !!err; +} diff --git a/test/musl/src/math/erfc.c b/test/musl/src/math/erfc.c new file mode 100644 index 00000000..4a4a4890 --- /dev/null +++ b/test/musl/src/math/erfc.c @@ -0,0 +1,46 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "sanity/erfc.h" +#include "special/erfc.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = erfc(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s erfc(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + if (fabs(d) < 4.0f) + printf("X "); + else + err++; + printf("%s:%d: %s erfc(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + } + } + return !!err; +} diff --git a/test/musl/src/math/erfcf.c b/test/musl/src/math/erfcf.c new file mode 100644 index 00000000..3fb97625 --- /dev/null +++ b/test/musl/src/math/erfcf.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "sanity/erfcf.h" +#include "special/erfcf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = erfcf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s erfcf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s erfcf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/erfcl.c b/test/musl/src/math/erfcl.c new file mode 100644 index 00000000..f8021f30 --- /dev/null +++ b/test/musl/src/math/erfcl.c @@ -0,0 +1,49 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = erfcl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s erfcl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s erfcl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/erff.c b/test/musl/src/math/erff.c new file mode 100644 index 00000000..1dd94f96 --- /dev/null +++ b/test/musl/src/math/erff.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "sanity/erff.h" +#include "special/erff.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = erff(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s erff(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s erff(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/erfl.c b/test/musl/src/math/erfl.c new file mode 100644 index 00000000..342c810c --- /dev/null +++ b/test/musl/src/math/erfl.c @@ -0,0 +1,49 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = erfl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s erfl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s erfl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/exp.c b/test/musl/src/math/exp.c new file mode 100644 index 00000000..16ebea47 --- /dev/null +++ b/test/musl/src/math/exp.c @@ -0,0 +1,45 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +// #include "crlibm/exp.h" +#include "ucb/exp.h" +#include "sanity/exp.h" +#include "special/exp.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = exp(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s exp(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s exp(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/exp10.c b/test/musl/src/math/exp10.c new file mode 100644 index 00000000..2dd79666 --- /dev/null +++ b/test/musl/src/math/exp10.c @@ -0,0 +1,44 @@ +#define _GNU_SOURCE 1 +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "sanity/exp10.h" +#include "special/exp10.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = exp10(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s exp10(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s exp10(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/exp10f.c b/test/musl/src/math/exp10f.c new file mode 100644 index 00000000..09cafb10 --- /dev/null +++ b/test/musl/src/math/exp10f.c @@ -0,0 +1,44 @@ +#define _GNU_SOURCE 1 +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "sanity/exp10f.h" +#include "special/exp10f.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = exp10f(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s exp10f(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s exp10f(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/exp10l.c b/test/musl/src/math/exp10l.c new file mode 100644 index 00000000..a6104326 --- /dev/null +++ b/test/musl/src/math/exp10l.c @@ -0,0 +1,50 @@ +#define _GNU_SOURCE 1 +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = exp10l(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s exp10l(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s exp10l(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/exp2.c b/test/musl/src/math/exp2.c new file mode 100644 index 00000000..612b7bbe --- /dev/null +++ b/test/musl/src/math/exp2.c @@ -0,0 +1,46 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "sanity/exp2.h" +#include "special/exp2.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = exp2(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + if (fabs(y) < 0x1p-1022 && (e|INEXACT) == (INEXACT|UNDERFLOW)) + printf("X "); + else + err++; + printf("%s:%d: bad fp exception: %s exp2(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s exp2(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/exp2f.c b/test/musl/src/math/exp2f.c new file mode 100644 index 00000000..a3192d03 --- /dev/null +++ b/test/musl/src/math/exp2f.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "sanity/exp2f.h" +#include "special/exp2f.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = exp2f(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s exp2f(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s exp2f(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/exp2l.c b/test/musl/src/math/exp2l.c new file mode 100644 index 00000000..256f7a47 --- /dev/null +++ b/test/musl/src/math/exp2l.c @@ -0,0 +1,49 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = exp2l(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s exp2l(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s exp2l(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/expf.c b/test/musl/src/math/expf.c new file mode 100644 index 00000000..e8f3f25a --- /dev/null +++ b/test/musl/src/math/expf.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "ucb/expf.h" +#include "sanity/expf.h" +#include "special/expf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = expf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s expf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s expf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/expl.c b/test/musl/src/math/expl.c new file mode 100644 index 00000000..b9b5cf25 --- /dev/null +++ b/test/musl/src/math/expl.c @@ -0,0 +1,51 @@ +#include +#include +#include "mtest.h" + +static struct l_l t[] = { +#if LDBL_MANT_DIG == 53 +// #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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = expl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s expl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s expl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/expm1.c b/test/musl/src/math/expm1.c new file mode 100644 index 00000000..26e954ff --- /dev/null +++ b/test/musl/src/math/expm1.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +// #include "crlibm/expm1.h" +#include "sanity/expm1.h" +#include "special/expm1.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = expm1(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s expm1(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s expm1(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/expm1f.c b/test/musl/src/math/expm1f.c new file mode 100644 index 00000000..f13bc999 --- /dev/null +++ b/test/musl/src/math/expm1f.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "sanity/expm1f.h" +#include "special/expm1f.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = expm1f(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s expm1f(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s expm1f(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/expm1l.c b/test/musl/src/math/expm1l.c new file mode 100644 index 00000000..fea8023c --- /dev/null +++ b/test/musl/src/math/expm1l.c @@ -0,0 +1,53 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = expm1l(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s expm1l(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + if (fabsf(d) < 2.5f) + printf("X "); + else + err++; + printf("%s:%d: %s expm1l(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + } + } + return !!err; +} diff --git a/test/musl/src/math/fabs.c b/test/musl/src/math/fabs.c new file mode 100644 index 00000000..022cb9b5 --- /dev/null +++ b/test/musl/src/math/fabs.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "ucb/fabs.h" +#include "sanity/fabs.h" +#include "special/fabs.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = fabs(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s fabs(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s fabs(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/fabsf.c b/test/musl/src/math/fabsf.c new file mode 100644 index 00000000..cef9b5ae --- /dev/null +++ b/test/musl/src/math/fabsf.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "ucb/fabsf.h" +#include "sanity/fabsf.h" +#include "special/fabsf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = fabsf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s fabsf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s fabsf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/fabsl.c b/test/musl/src/math/fabsl.c new file mode 100644 index 00000000..3634895e --- /dev/null +++ b/test/musl/src/math/fabsl.c @@ -0,0 +1,50 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = fabsl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s fabsl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s fabsl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/fdim.c b/test/musl/src/math/fdim.c new file mode 100644 index 00000000..9ce8086d --- /dev/null +++ b/test/musl/src/math/fdim.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct dd_d t[] = { +#include "sanity/fdim.h" +#include "special/fdim.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct dd_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = fdim(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s fdim(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s fdim(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/fdimf.c b/test/musl/src/math/fdimf.c new file mode 100644 index 00000000..6dd9704f --- /dev/null +++ b/test/musl/src/math/fdimf.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct ff_f t[] = { +#include "sanity/fdimf.h" +#include "special/fdimf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct ff_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = fdimf(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s fdimf(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s fdimf(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/fdiml.c b/test/musl/src/math/fdiml.c new file mode 100644 index 00000000..5a27042b --- /dev/null +++ b/test/musl/src/math/fdiml.c @@ -0,0 +1,49 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct ll_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = fdiml(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s fdiml(%La,%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s fdiml(%La,%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/fenv.c b/test/musl/src/math/fenv.c new file mode 100644 index 00000000..def30b7c --- /dev/null +++ b/test/musl/src/math/fenv.c @@ -0,0 +1,275 @@ +#include +#include +#include +#include "mtest.h" + +static int test_status; + +#define error(...) print(__FILE__, __LINE__, __VA_ARGS__) +static void print(char *f, int l, char *fmt, ...) +{ + test_status = 1; + va_list ap; + printf("%s:%d: ", f, l); + va_start(ap, fmt); + vprintf(fmt, ap); + va_end(ap); +} + +#define F(n) {#n, n} + +static struct { + char *name; + int i; +} te[] = { +#ifdef FE_DIVBYZERO + F(FE_DIVBYZERO), +#endif +#ifdef FE_INEXACT + F(FE_INEXACT), +#endif +#ifdef FE_INVALID + F(FE_INVALID), +#endif +#ifdef FE_OVERFLOW + F(FE_OVERFLOW), +#endif +#ifdef FE_UNDERFLOW + F(FE_UNDERFLOW), +#endif + {0, 0} +}; + +static void test_except() +{ + #pragma STDC FENV_ACCESS ON + int i,r; + fenv_t env; + + for (i=0; te[i].i; i++) { + feclearexcept(FE_ALL_EXCEPT); + + r = feraiseexcept(te[i].i); + if (r) + error("feraiseexcept(%s) returned %d\n", te[i].name, r); + r = fetestexcept(FE_ALL_EXCEPT); + if (r != te[i].i) { +#if defined FE_OVERFLOW && defined FE_INEXACT + if (te[i].i == FE_OVERFLOW && r == (FE_OVERFLOW|FE_INEXACT)) + continue; +#endif +#if defined FE_UNDERFLOW && defined FE_INEXACT + if (te[i].i == FE_UNDERFLOW && r == (FE_UNDERFLOW|FE_INEXACT)) + continue; +#endif + error("feraiseexcept(%s) want %d got %d\n", + te[i].name, te[i].i, r); + } + } + + r = feraiseexcept(FE_ALL_EXCEPT); + if (r != 0) + error("feraisexcept(FE_ALL_EXCEPT) failed\n"); + r = fegetenv(&env); + if (r != 0) + error("fegetenv(&env) = %d\n", r); + r = fetestexcept(FE_ALL_EXCEPT); + if (r != FE_ALL_EXCEPT) + error("fetestexcept failed: got 0x%x, want 0x%x (FE_ALL_ECXEPT)\n", r, FE_ALL_EXCEPT); + r = fesetenv(FE_DFL_ENV); + if (r != 0) + error("fesetenv(FE_DFL_ENV) = %d\n", r); + r = fetestexcept(FE_ALL_EXCEPT); + if (r != 0) + error("fesetenv(FE_DFL_ENV) did not clear exceptions: 0x%x\n", r); + r = fesetenv(&env); + if (r != 0) + error("fesetenv(&env) = %d\n", r); + r = fetestexcept(FE_ALL_EXCEPT); + if (r != FE_ALL_EXCEPT) + error("fesetenv(&env) did not restore exceptions: 0x%x\n", r); +} + +static struct { + char *name; + int i; +} tr[] = { + F(FE_TONEAREST), +#ifdef FE_UPWARD + F(FE_UPWARD), +#endif +#ifdef FE_DOWNWARD + F(FE_DOWNWARD), +#endif +#ifdef FE_TOWARDZERO + F(FE_TOWARDZERO), +#endif +}; + +static void test_round() +{ + #pragma STDC FENV_ACCESS ON + int i,r; + fenv_t env; + volatile float two100 = 0x1p100; + volatile float x; + + for (i=0; i < sizeof tr/sizeof*tr; i++) { + if (tr[i].i < 0) + error("%s (%d) < 0\n", tr[i].name, tr[i].i); + for (r=0; r < i; r++) + if (tr[r].i == tr[i].i) + error("%s (%d) == %s (%d)\n", + tr[r].name, tr[r].i, tr[i].name, tr[i].i); + } + + for (i=0; i < sizeof tr/sizeof*tr; i++) { + r = fesetround(tr[i].i); + if (r != 0) + error("fesetround(%s) = %d\n", tr[i].name, r); + r = fegetround(); + if (r != tr[i].i) + error("fegetround() = 0x%x, wanted 0x%x (%s)\n", r, tr[i].i, tr[i].name); + } + +#ifdef FE_UPWARD + r = fesetround(FE_UPWARD); + if (r != 0) + error("fesetround(FE_UPWARD) failed\n"); +#endif + r = fegetenv(&env); + if (r != 0) + error("fegetenv(&env) = %d\n", r); + i = fegetround(); + r = fesetenv(FE_DFL_ENV); + if (r != 0) + error("fesetenv(FE_DFL_ENV) = %d\n", r); + r = fegetround(); + if (r != FE_TONEAREST) + error("fesetenv(FE_DFL_ENV) did not set FE_TONEAREST (0x%x), got 0x%x\n", FE_TONEAREST, r); + x = two100 + 1; + if (x != two100) + error("fesetenv(FE_DFL_ENV) did not set FE_TONEAREST, arithmetics rounds upward\n"); + x = two100 - 1; + if (x != two100) + error("fesetenv(FE_DFL_ENV) did not set FE_TONEAREST, arithmetics rounds downward or tozero\n"); + r = fesetenv(&env); + if (r != 0) + error("fesetenv(&env) = %d\n", r); + r = fegetround(); + if (r != i) + error("fesetenv(&env) did not restore 0x%x, got 0x%x\n", i, r); +#ifdef FE_UPWARD + x = two100 + 1; + if (x == two100) + error("fesetenv did not restore upward rounding\n"); +#endif + +} + +/* ieee double precision add operation */ +static struct dd_d t[] = { +T(RN, 0x1p+0, 0x1p-52, 0x1.0000000000001p+0, 0x0p+0, 0) +T(RN, 0x1p+0, 0x1p-53, 0x1p+0, -0x1p-1, INEXACT) +T(RN, 0x1p+0, 0x1.01p-53, 0x1.0000000000001p+0, 0x1.fep-2, INEXACT) +T(RN, 0x1p+0, -0x1p-54, 0x1p+0, 0x1p-2, INEXACT) +T(RN, 0x1p+0, -0x1.01p-54, 0x1.fffffffffffffp-1, -0x1.fep-2, INEXACT) +T(RN, -0x1p+0, -0x1p-53, -0x1p+0, 0x1p-1, INEXACT) +T(RN, -0x1p+0, -0x1.01p-53, -0x1.0000000000001p+0, -0x1.fep-2, INEXACT) +T(RN, -0x1p+0, 0x1p-54, -0x1p+0, -0x1p-2, INEXACT) +T(RN, -0x1p+0, 0x1.01p-54, -0x1.fffffffffffffp-1, 0x1.fep-2, INEXACT) + +T(RU, 0x1p+0, 0x1p-52, 0x1.0000000000001p+0, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p-53, 0x1.0000000000001p+0, 0x1p-1, INEXACT) +T(RU, 0x1p+0, 0x1.01p-53, 0x1.0000000000001p+0, 0x1.fep-2, INEXACT) +T(RU, 0x1p+0, -0x1p-54, 0x1p+0, 0x1p-2, INEXACT) +T(RU, 0x1p+0, -0x1.01p-54, 0x1p+0, 0x1.01p-2, INEXACT) +T(RU, -0x1p+0, -0x1p-53, -0x1p+0, 0x1p-1, INEXACT) +T(RU, -0x1p+0, -0x1.01p-53, -0x1p+0, 0x1.01p-1, INEXACT) +T(RU, -0x1p+0, 0x1p-54, -0x1.fffffffffffffp-1, 0x1p-1, INEXACT) +T(RU, -0x1p+0, 0x1.01p-54, -0x1.fffffffffffffp-1, 0x1.fep-2, INEXACT) + +T(RD, 0x1p+0, 0x1p-52, 0x1.0000000000001p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p-53, 0x1p+0, -0x1p-1, INEXACT) +T(RD, 0x1p+0, 0x1.01p-53, 0x1p+0, -0x1.01p-1, INEXACT) +T(RD, 0x1p+0, -0x1p-54, 0x1.fffffffffffffp-1, -0x1p-1, INEXACT) +T(RD, 0x1p+0, -0x1.01p-54, 0x1.fffffffffffffp-1, -0x1.fep-2, INEXACT) +T(RD, -0x1p+0, -0x1p-53, -0x1.0000000000001p+0, -0x1p-1, INEXACT) +T(RD, -0x1p+0, -0x1.01p-53, -0x1.0000000000001p+0, -0x1.fep-2, INEXACT) +T(RD, -0x1p+0, 0x1p-54, -0x1p+0, -0x1p-2, INEXACT) +T(RD, -0x1p+0, 0x1.01p-54, -0x1p+0, -0x1.01p-2, INEXACT) + +T(RZ, 0x1p+0, 0x1p-52, 0x1.0000000000001p+0, 0x0p+0, 0) +T(RZ, 0x1p+0, 0x1p-53, 0x1p+0, -0x1p-1, INEXACT) +T(RZ, 0x1p+0, 0x1.01p-53, 0x1p+0, -0x1.01p-1, INEXACT) +T(RZ, 0x1p+0, -0x1p-54, 0x1.fffffffffffffp-1, -0x1p-1, INEXACT) +T(RZ, 0x1p+0, -0x1.01p-54, 0x1.fffffffffffffp-1, -0x1.fep-2, INEXACT) +T(RZ, -0x1p+0, -0x1p-53, -0x1p+0, 0x1p-1, INEXACT) +T(RZ, -0x1p+0, -0x1.01p-53, -0x1p+0, 0x1.01p-1, INEXACT) +T(RZ, -0x1p+0, 0x1p-54, -0x1.fffffffffffffp-1, 0x1p-1, INEXACT) +T(RZ, -0x1p+0, 0x1.01p-54, -0x1.fffffffffffffp-1, 0x1.fep-2, INEXACT) +}; + +static void test_round_add(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int i; + struct dd_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + y = p->x + p->x2; + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s %a+%a want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + test_status = 1; + } + } +} + +static void test_bad(void) +{ + fexcept_t f; + int r; + + r = feclearexcept(FE_ALL_EXCEPT); + if (r != 0) + error("feclearexcept(FE_ALL_EXCEPT) failed\n"); + r = fetestexcept(-1); + if (r != 0) + error("fetestexcept(-1) should return 0 when all exceptions are cleared, got %d\n", r); + r = feraiseexcept(1234567|FE_ALL_EXCEPT); + if (r != 0) + error("feraiseexcept returned non-zero for non-supported exceptions: %d\n", r); + r = feclearexcept(1234567|FE_ALL_EXCEPT); + if (r != 0) + error("feclearexcept returned non-zero for non-supported exceptions: %d\n", r); + r = fesetround(1234567); + if (r == 0) + error("fesetround should fail on invalid rounding mode\n"); + r = fegetexceptflag(&f, 1234567); + if (r != 0) + error("fegetexceptflag returned non-zero for non-supported exceptions: %d\n", r); + r = fegetexceptflag(&f, 0); + if (r != 0) + error("fegetexceptflag(0) failed\n"); + r = fesetexceptflag(&f, 1234567); + if (r != 0) + error("fesetexceptflag returned non-zero fir non-supported exceptions: %d\n", r); +} + +int main(void) +{ + test_except(); + test_round(); + test_round_add(); + test_bad(); + return test_status; +} diff --git a/test/musl/src/math/floor.c b/test/musl/src/math/floor.c new file mode 100644 index 00000000..267dabd3 --- /dev/null +++ b/test/musl/src/math/floor.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "ucb/floor.h" +#include "sanity/floor.h" +#include "special/floor.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = floor(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r) && (e|INEXACT) != p->e) { + printf("%s:%d: bad fp exception: %s floor(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s floor(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/floorf.c b/test/musl/src/math/floorf.c new file mode 100644 index 00000000..09039df2 --- /dev/null +++ b/test/musl/src/math/floorf.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "ucb/floorf.h" +#include "sanity/floorf.h" +#include "special/floorf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = floorf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r) && (e|INEXACT) != p->e) { + printf("%s:%d: bad fp exception: %s floorf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s floorf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/floorl.c b/test/musl/src/math/floorl.c new file mode 100644 index 00000000..3e3d3973 --- /dev/null +++ b/test/musl/src/math/floorl.c @@ -0,0 +1,50 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = floorl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r) && (e|INEXACT) != p->e) { + printf("%s:%d: bad fp exception: %s floorl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s floorl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/fma.c b/test/musl/src/math/fma.c new file mode 100644 index 00000000..24b65c85 --- /dev/null +++ b/test/musl/src/math/fma.c @@ -0,0 +1,47 @@ +#include +#include +#include "mtest.h" + +static struct ddd_d t[] = { +#include "sanity/fma.h" +#include "special/fma.h" +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct ddd_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = fma(p->x, p->x2, p->x3); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + /* do not check inexact by default */ +#if defined CHECK_INEXACT || defined CHECK_INEXACT_OMISSION + if (!checkexceptall(e, p->e, p->r)) { +#else + if (!checkexceptall(e|INEXACT, p->e|INEXACT, p->r)) { +#endif + printf("%s:%d: bad fp exception: %s fma(%a,%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->x3, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s fma(%a,%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->x3, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/fmaf.c b/test/musl/src/math/fmaf.c new file mode 100644 index 00000000..c4329a2a --- /dev/null +++ b/test/musl/src/math/fmaf.c @@ -0,0 +1,47 @@ +#include +#include +#include "mtest.h" + +static struct fff_f t[] = { +#include "sanity/fmaf.h" +#include "special/fmaf.h" +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct fff_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = fmaf(p->x, p->x2, p->x3); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + /* do not check inexact by default */ +#if defined CHECK_INEXACT || defined CHECK_INEXACT_OMISSION + if (!checkexceptall(e, p->e, p->r)) { +#else + if (!checkexceptall(e|INEXACT, p->e|INEXACT, p->r)) { +#endif + printf("%s:%d: bad fp exception: %s fmaf(%a,%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->x3, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s fmaf(%a,%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->x3, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/fmal.c b/test/musl/src/math/fmal.c new file mode 100644 index 00000000..791d5d3b --- /dev/null +++ b/test/musl/src/math/fmal.c @@ -0,0 +1,52 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct lll_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = fmal(p->x, p->x2, p->x3); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + /* do not check inexact by default */ +#if defined CHECK_INEXACT || defined CHECK_INEXACT_OMISSION + if (!checkexceptall(e, p->e, p->r)) { +#else + if (!checkexceptall(e|INEXACT, p->e|INEXACT, p->r)) { +#endif + printf("%s:%d: bad fp exception: %s fmal(%La,%La,%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->x3, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s fmal(%La,%La,%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->x3, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/fmax.c b/test/musl/src/math/fmax.c new file mode 100644 index 00000000..b5a6b7ab --- /dev/null +++ b/test/musl/src/math/fmax.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct dd_d t[] = { +#include "sanity/fmax.h" +#include "special/fmax.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct dd_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = fmax(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s fmax(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s fmax(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/fmaxf.c b/test/musl/src/math/fmaxf.c new file mode 100644 index 00000000..cadc3560 --- /dev/null +++ b/test/musl/src/math/fmaxf.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct ff_f t[] = { +#include "sanity/fmaxf.h" +#include "special/fmaxf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct ff_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = fmaxf(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s fmaxf(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s fmaxf(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/fmaxl.c b/test/musl/src/math/fmaxl.c new file mode 100644 index 00000000..1856dcdc --- /dev/null +++ b/test/musl/src/math/fmaxl.c @@ -0,0 +1,49 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct ll_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = fmaxl(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s fmaxl(%La,%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s fmaxl(%La,%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/fmin.c b/test/musl/src/math/fmin.c new file mode 100644 index 00000000..fb022c0b --- /dev/null +++ b/test/musl/src/math/fmin.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct dd_d t[] = { +#include "sanity/fmin.h" +#include "special/fmin.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct dd_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = fmin(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s fmin(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s fmin(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/fminf.c b/test/musl/src/math/fminf.c new file mode 100644 index 00000000..1bb1afaf --- /dev/null +++ b/test/musl/src/math/fminf.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct ff_f t[] = { +#include "sanity/fminf.h" +#include "special/fminf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct ff_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = fminf(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s fminf(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s fminf(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/fminl.c b/test/musl/src/math/fminl.c new file mode 100644 index 00000000..da7a0477 --- /dev/null +++ b/test/musl/src/math/fminl.c @@ -0,0 +1,49 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct ll_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = fminl(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s fminl(%La,%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s fminl(%La,%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/fmod.c b/test/musl/src/math/fmod.c new file mode 100644 index 00000000..76c26346 --- /dev/null +++ b/test/musl/src/math/fmod.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct dd_d t[] = { +#include "ucb/fmod.h" +#include "sanity/fmod.h" +#include "special/fmod.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct dd_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = fmod(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s fmod(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s fmod(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/fmodf.c b/test/musl/src/math/fmodf.c new file mode 100644 index 00000000..1a703502 --- /dev/null +++ b/test/musl/src/math/fmodf.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct ff_f t[] = { +#include "ucb/fmodf.h" +#include "sanity/fmodf.h" +#include "special/fmodf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct ff_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = fmodf(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s fmodf(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s fmodf(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/fmodl.c b/test/musl/src/math/fmodl.c new file mode 100644 index 00000000..3dd7f4fc --- /dev/null +++ b/test/musl/src/math/fmodl.c @@ -0,0 +1,50 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct ll_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = fmodl(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s fmodl(%La,%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s fmodl(%La,%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/fpclassify.c b/test/musl/src/math/fpclassify.c new file mode 100644 index 00000000..bc77d8c1 --- /dev/null +++ b/test/musl/src/math/fpclassify.c @@ -0,0 +1,132 @@ +#include +#include + +#define T(a,b) {__LINE__, a, b}, +#define length(a) (sizeof(a)/sizeof*(a)) + +static struct { + int line; + float f; + int class; +} tf[] = { + T(0.0/0.0, FP_NAN) + T(-0.0/0.0, FP_NAN) + T(1/0.0, FP_INFINITE) + T(-1/0.0, FP_INFINITE) + T(0x1.ffffp127, FP_NORMAL) + T(-0x1.ffffp127, FP_NORMAL) + T(0x1p-127, FP_SUBNORMAL) + T(-0x1p-127, FP_SUBNORMAL) + T(0.0, FP_ZERO) + T(-0.0, FP_ZERO) + T(3.14, FP_NORMAL) + T(-42, FP_NORMAL) +}; + +static struct { + int line; + double f; + int class; +} td[] = { + T(0.0/0.0, FP_NAN) + T(-0.0/0.0, FP_NAN) + T(1/0.0, FP_INFINITE) + T(-1/0.0, FP_INFINITE) + T(0x1.ffffp1023, FP_NORMAL) + T(-0x1.ffffp1023, FP_NORMAL) + T(0x1p-1023, FP_SUBNORMAL) + T(-0x1p-1023, FP_SUBNORMAL) + T(0.0, FP_ZERO) + T(-0.0, FP_ZERO) + T(3.14, FP_NORMAL) + T(-42, FP_NORMAL) +}; + +static struct { + int line; + long double f; + int class; +} tl[] = { + T(0.0/0.0, FP_NAN) + T(-0.0/0.0, FP_NAN) + T(1/0.0, FP_INFINITE) + T(-1/0.0, FP_INFINITE) +#if LDBL_MAX_EXP==16384 + T(0x1.ffffp16383L, FP_NORMAL) + T(-0x1.ffffp16383L, FP_NORMAL) + T(0x1p-16383L, FP_SUBNORMAL) + T(-0x1p-16383L, FP_SUBNORMAL) +#elif LDBL_MAX_EXP==1024 + T(0x1.ffffp1023L, FP_NORMAL) + T(-0x1.ffffp1023L, FP_NORMAL) + T(0x1p-1023L, FP_SUBNORMAL) + T(-0x1p-1023L, FP_SUBNORMAL) +#endif + T(0.0, FP_ZERO) + T(-0.0, FP_ZERO) + T(3.14, FP_NORMAL) + T(-42, FP_NORMAL) +}; + +static char *strclass(int c) +{ +#define C(n) case n: return #n; + switch (c) { + C(FP_NAN) + C(FP_INFINITE) + C(FP_ZERO) + C(FP_SUBNORMAL) + C(FP_NORMAL) + } + return "invalid"; +} + +#define error(t,c) err++, printf("%s:%d: (at line %d) %La has class %d (%s), but %s returns %d\n", \ + __FILE__, __LINE__, t.line, (long double)t.f, t.class, strclass(t.class), #c, c(t.f)) + +int main() +{ + int i; + int err = 0; + + for (i = 0; i < length(tf); i++) { + if (fpclassify(tf[i].f) != tf[i].class) + error(tf[i], fpclassify); + if (!!isinf(tf[i].f) != (tf[i].class == FP_INFINITE)) + error(tf[i], isinf); + if (!!isnan(tf[i].f) != (tf[i].class == FP_NAN)) + error(tf[i], isnan); + if (!!isnormal(tf[i].f) != (tf[i].class == FP_NORMAL)) + error(tf[i], isnormal); + if (!!isfinite(tf[i].f) != (tf[i].class > FP_INFINITE)) + error(tf[i], isfinite); + } + + for (i = 0; i < length(td); i++) { + if (fpclassify(td[i].f) != td[i].class) + error(td[i], fpclassify); + if (!!isinf(td[i].f) != (td[i].class == FP_INFINITE)) + error(td[i], isinf); + if (!!isnan(td[i].f) != (td[i].class == FP_NAN)) + error(td[i], isnan); + if (!!isnormal(td[i].f) != (td[i].class == FP_NORMAL)) + error(td[i], isnormal); + if (!!isfinite(td[i].f) != (td[i].class > FP_INFINITE)) + error(td[i], isfinite); + } + + for (i = 0; i < length(tl); i++) { + if (fpclassify(tl[i].f) != tl[i].class) + error(tl[i], fpclassify); + if (!!isinf(tl[i].f) != (tl[i].class == FP_INFINITE)) + error(tl[i], isinf); + if (!!isnan(tl[i].f) != (tl[i].class == FP_NAN)) + error(tl[i], isnan); + if (!!isnormal(tl[i].f) != (tl[i].class == FP_NORMAL)) + error(tl[i], isnormal); + if (!!isfinite(tl[i].f) != (tl[i].class > FP_INFINITE)) + error(tl[i], isfinite); + } + + return !!err; +} diff --git a/test/musl/src/math/frexp.c b/test/musl/src/math/frexp.c new file mode 100644 index 00000000..5ba58ffe --- /dev/null +++ b/test/musl/src/math/frexp.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct d_di t[] = { +#include "sanity/frexp.h" +#include "special/frexp.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + int yi; + double y; + float d; + int e, i, err = 0; + struct d_di *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = frexp(p->x, &yi); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s frexp(%a)=%a,%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r) || (isfinite(p->x) && yi != p->i)) { + printf("%s:%d: %s frexp(%a) want %a,%lld got %a,%d ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, p->i, y, yi, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/frexpf.c b/test/musl/src/math/frexpf.c new file mode 100644 index 00000000..35dc913e --- /dev/null +++ b/test/musl/src/math/frexpf.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct f_fi t[] = { +#include "sanity/frexpf.h" +#include "special/frexpf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + int yi; + double y; + float d; + int e, i, err = 0; + struct f_fi *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = frexpf(p->x, &yi); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s frexpf(%a)=%a,%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r) || (isfinite(p->x) && yi != p->i)) { + printf("%s:%d: %s frexpf(%a) want %a,%lld got %a,%d ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, p->i, y, yi, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/frexpl.c b/test/musl/src/math/frexpl.c new file mode 100644 index 00000000..a0cb1b80 --- /dev/null +++ b/test/musl/src/math/frexpl.c @@ -0,0 +1,50 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + int yi; + long double y; + float d; + int e, i, err = 0; + struct l_li *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = frexpl(p->x, &yi); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s frexpl(%La)=%La,%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r) || (isfinite(p->x) && yi != p->i)) { + printf("%s:%d: %s frexpl(%La) want %La,%lld got %La,%d ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, p->i, y, yi, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/hypot.c b/test/musl/src/math/hypot.c new file mode 100644 index 00000000..8c40b97a --- /dev/null +++ b/test/musl/src/math/hypot.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct dd_d t[] = { +#include "ucb/hypot.h" +#include "sanity/hypot.h" +#include "special/hypot.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct dd_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = hypot(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s hypot(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r) || (p->r == RN && fabs(d) >= 1.0)) { + printf("%s:%d: %s hypot(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/hypotf.c b/test/musl/src/math/hypotf.c new file mode 100644 index 00000000..19d85256 --- /dev/null +++ b/test/musl/src/math/hypotf.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct ff_f t[] = { +#include "ucb/hypotf.h" +#include "sanity/hypotf.h" +#include "special/hypotf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct ff_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = hypotf(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s hypotf(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r) || (p->r == RN && fabs(d) >= 1.0)) { + printf("%s:%d: %s hypotf(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/hypotl.c b/test/musl/src/math/hypotl.c new file mode 100644 index 00000000..cae06ddd --- /dev/null +++ b/test/musl/src/math/hypotl.c @@ -0,0 +1,50 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct ll_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = hypotl(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s hypotl(%La,%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r) || (p->r == RN && fabs(d) >= 1.0)) { + printf("%s:%d: %s hypotl(%La,%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/ilogb.c b/test/musl/src/math/ilogb.c new file mode 100644 index 00000000..a636a235 --- /dev/null +++ b/test/musl/src/math/ilogb.c @@ -0,0 +1,41 @@ +#include +#include +#include "mtest.h" + +static struct d_i t[] = { +#include "sanity/ilogb.h" +#include "special/ilogb.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long long yi; + int e, i, err = 0; + struct d_i *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + yi = ilogb(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s ilogb(%a)=%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + if (yi != p->i) { + printf("%s:%d: %s ilogb(%a) want %lld got %lld\n", + p->file, p->line, rstr(p->r), p->x, p->i, yi); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/ilogbf.c b/test/musl/src/math/ilogbf.c new file mode 100644 index 00000000..d5768788 --- /dev/null +++ b/test/musl/src/math/ilogbf.c @@ -0,0 +1,41 @@ +#include +#include +#include "mtest.h" + +static struct f_i t[] = { +#include "sanity/ilogbf.h" +#include "special/ilogbf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long long yi; + int e, i, err = 0; + struct f_i *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + yi = ilogbf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s ilogbf(%a)=%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + if (yi != p->i) { + printf("%s:%d: %s ilogbf(%a) want %lld got %lld\n", + p->file, p->line, rstr(p->r), p->x, p->i, yi); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/ilogbl.c b/test/musl/src/math/ilogbl.c new file mode 100644 index 00000000..09445367 --- /dev/null +++ b/test/musl/src/math/ilogbl.c @@ -0,0 +1,47 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long long yi; + int e, i, err = 0; + struct l_i *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + yi = ilogbl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s ilogbl(%La)=%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + if (yi != p->i) { + printf("%s:%d: %s ilogbl(%La) want %lld got %lld\n", + p->file, p->line, rstr(p->r), p->x, p->i, yi); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/isless.c b/test/musl/src/math/isless.c new file mode 100644 index 00000000..595c8f54 --- /dev/null +++ b/test/musl/src/math/isless.c @@ -0,0 +1,107 @@ +#include +#include "mtest.h" +#include "test.h" + +enum {LESS,EQUAL,GREATER,UNORD}; + +#define TEST(f,want) do{ \ + int r, e; \ + feclearexcept(FE_ALL_EXCEPT); \ + r = (f); \ + e = fetestexcept(FE_ALL_EXCEPT); \ + if (r != (want)) \ + t_error(#f " failed: got %d want %d\n", r, (want)); \ + if (e & INVALID) \ + t_error(#f " raised the invalid exception\n"); \ +}while(0) + +#undef T +#define T(a,b,rel) do{ \ + TEST(isunordered(a, b), rel == UNORD); \ + TEST(isless(a, b), rel == LESS); \ + TEST(islessequal(a, b), rel == LESS || rel == EQUAL); \ + TEST(islessgreater(a, b), rel == LESS || rel == GREATER); \ + TEST(isgreater(a, b), rel == GREATER); \ + TEST(isgreaterequal(a, b), rel == GREATER || rel == EQUAL); \ +}while(0) + +int main() +{ + #pragma STDC FENV_ACCESS ON + volatile double huge = DBL_MAX; + volatile double tiny = DBL_MIN; + volatile double eps = DBL_EPSILON; + volatile float hugef = FLT_MAX; + volatile float tinyf = FLT_MIN; + volatile float epsf = FLT_EPSILON; + volatile long double hugel = LDBL_MAX; + volatile long double tinyl = LDBL_MIN; + volatile long double epsl = LDBL_EPSILON; + + T(nan, 1.0, UNORD); + T(1.0, nan, UNORD); + T(nan, nan, UNORD); + T(nan, nan+1.0, UNORD); + T(nan, nan+1.0L, UNORD); + + T(1.0, 1.1, LESS); + T(1.0, 1.0+eps, LESS); + T(1.0+eps, 1.0, GREATER); + T(huge-1, huge, EQUAL); + T(huge, huge*huge, LESS); + T(-0.0, 0.0, EQUAL); + T(-tiny, 0.0, LESS); + T(tiny, 2*tiny, LESS); + T(tiny*0x1p-9, tiny*0x1p-8, LESS); + + T(1.0f, 1.1f, LESS); + T(1.0f, 1.0f+epsf, LESS); + T(1.0f+epsf, 1.0f, GREATER); + T(hugef-1, hugef, EQUAL); + T(hugef, hugef*hugef, LESS); + T(-0.0f, 0.0f, EQUAL); + T(-tinyf, 0.0f, LESS); + T(tinyf, 2*tinyf, LESS); + T(tinyf*0x1p-9f, tinyf*0x1p-8f, LESS); + + T(1.0L, 1.1L, LESS); + T(1.0L, 1.0L+epsl, LESS); + T(1.0L+epsl, 1.0L, GREATER); + T(hugel-1, hugel, EQUAL); + T(hugel, hugel*hugel, LESS); + T(-0.0L, 0.0L, EQUAL); + T(-tinyl, 0.0L, LESS); + T(tinyl, 2*tinyl, LESS); + T(tinyl*0x1p-9L, tinyl*0x1p-8L, LESS); + +#if FLT_EVAL_METHOD == 2 + T(huge*huge, huge*huge*2, LESS); + T(tiny*tiny*0.5, tiny*tiny, LESS); + T(-tiny*tiny, 0.0, LESS); + T(1.0, 1.0+eps*0.25, LESS); +#else + T(huge*huge, huge*huge*2, EQUAL); + T(tiny*tiny*0.5, tiny*tiny, EQUAL); + T(-tiny*tiny, 0.0, EQUAL); + T(1.0, 1.0+eps*0.25, EQUAL); +#endif + +#if FLT_EVAL_METHOD >= 1 + T(hugef*hugef, hugef*hugef*2, LESS); + T(tinyf*tinyf*0.5f, tinyf*tinyf, LESS); + T(-tinyf*tinyf, 0.0f, LESS); + T(1.0f, 1.0f+epsf*0.25f, LESS); +#else + T(hugef*hugef, hugef*hugef*2, EQUAL); + T(tinyf*tinyf*0.5f, tinyf*tinyf, EQUAL); + T(-tinyf*tinyf, 0.0f, EQUAL); + T(1.0f, 1.0f+epsf*0.25f, EQUAL); +#endif + + T(hugel*hugel, hugel*hugel*2, EQUAL); + T(tinyl*tinyl*0.5L, tinyl*tinyl, EQUAL); + T(-tinyl*tinyl, 0.0L, EQUAL); + T(1.0L, 1.0L+epsl*0.25L, EQUAL); + + return t_status; +} diff --git a/test/musl/src/math/j0.c b/test/musl/src/math/j0.c new file mode 100644 index 00000000..029a8a72 --- /dev/null +++ b/test/musl/src/math/j0.c @@ -0,0 +1,47 @@ +#define _XOPEN_SOURCE 700 +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "sanity/j0.h" +#include "special/j0.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, bad, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = j0(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s j0(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + if (fabsf(d) < 0x1p52f) + printf("X "); + else + err++; + printf("%s:%d: %s j0(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + } + } + return !!err; +} diff --git a/test/musl/src/math/j0f.c b/test/musl/src/math/j0f.c new file mode 100644 index 00000000..a0517dc3 --- /dev/null +++ b/test/musl/src/math/j0f.c @@ -0,0 +1,48 @@ +#define _DEFAULT_SOURCE 1 +#define _BSD_SOURCE 1 +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "sanity/j0f.h" +#include "special/j0f.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = j0f(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s j0f(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + if (fabsf(d) < 0x1p23f) + printf("X "); + else + err++; + printf("%s:%d: %s j0f(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + } + } + return !!err; +} diff --git a/test/musl/src/math/j1.c b/test/musl/src/math/j1.c new file mode 100644 index 00000000..e1c953bf --- /dev/null +++ b/test/musl/src/math/j1.c @@ -0,0 +1,44 @@ +#define _XOPEN_SOURCE 700 +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "sanity/j1.h" +#include "special/j1.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = j1(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s j1(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s j1(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/j1f.c b/test/musl/src/math/j1f.c new file mode 100644 index 00000000..640bb10f --- /dev/null +++ b/test/musl/src/math/j1f.c @@ -0,0 +1,45 @@ +#define _DEFAULT_SOURCE 1 +#define _BSD_SOURCE 1 +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "sanity/j1f.h" +#include "special/j1f.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = j1f(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s j1f(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s j1f(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/jn.c b/test/musl/src/math/jn.c new file mode 100644 index 00000000..6a646838 --- /dev/null +++ b/test/musl/src/math/jn.c @@ -0,0 +1,46 @@ +#define _XOPEN_SOURCE 700 +#include +#include +#include "mtest.h" + +static struct di_d t[] = { +#include "sanity/jn.h" +#include "special/jn.h" +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct di_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = jn(p->i, p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s jn(%lld, %a)=%a, want %s", + p->file, p->line, rstr(p->r), p->i, p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + if (fabsf(d) < 3.0f) + printf("X "); + else + err++; + printf("%s:%d: %s jn(%lld, %a) want %a got %a, ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->i, p->x, p->y, y, d, d-p->dy, p->dy); + } + } + return !!err; +} diff --git a/test/musl/src/math/jnf.c b/test/musl/src/math/jnf.c new file mode 100644 index 00000000..fa5265c2 --- /dev/null +++ b/test/musl/src/math/jnf.c @@ -0,0 +1,47 @@ +#define _DEFAULT_SOURCE 1 +#define _BSD_SOURCE 1 +#include +#include +#include "mtest.h" + +static struct fi_f t[] = { +#include "sanity/jnf.h" +#include "special/jnf.h" +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct fi_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = jnf(p->i, p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s jnf(%lld, %a)=%a, want %s", + p->file, p->line, rstr(p->r), p->i, p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + if (fabsf(d) < 3.0f) + printf("X "); + else + err++; + printf("%s:%d: %s jnf(%lld, %a) want %a got %a, ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->i, p->x, p->y, y, d, d-p->dy, p->dy); + } + } + return !!err; +} diff --git a/test/musl/src/math/ldexp.c b/test/musl/src/math/ldexp.c new file mode 100644 index 00000000..93e92c29 --- /dev/null +++ b/test/musl/src/math/ldexp.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct di_d t[] = { +#include "sanity/ldexp.h" +#include "special/ldexp.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct di_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = ldexp(p->x, p->i); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s ldexp(%a, %lld)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s ldexp(%a, %lld) want %a got %a, ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->i, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/ldexpf.c b/test/musl/src/math/ldexpf.c new file mode 100644 index 00000000..135e957e --- /dev/null +++ b/test/musl/src/math/ldexpf.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct fi_f t[] = { +#include "sanity/ldexpf.h" +#include "special/ldexpf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct fi_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = ldexpf(p->x, p->i); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s ldexpf(%a, %lld)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s ldexpf(%a, %lld) want %a got %a, ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->i, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/ldexpl.c b/test/musl/src/math/ldexpl.c new file mode 100644 index 00000000..b04ef453 --- /dev/null +++ b/test/musl/src/math/ldexpl.c @@ -0,0 +1,49 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct li_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = ldexpl(p->x, p->i); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s ldexpl(%La, %lld)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s ldexpl(%La, %lld) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->i, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/lgamma.c b/test/musl/src/math/lgamma.c new file mode 100644 index 00000000..98731c00 --- /dev/null +++ b/test/musl/src/math/lgamma.c @@ -0,0 +1,50 @@ +#define _XOPEN_SOURCE 700 +#include +#include +#include "mtest.h" + +static struct d_di t[] = { +#include "sanity/lgamma.h" +#include "special/lgamma.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + int yi; + double y; + float d; + int e, i, bad, err = 0; + struct d_di *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = lgamma(p->x); + yi = signgam; + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s lgamma(%a)=%a,%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + bad = !isnan(p->x) && p->x!=-inf && !(p->e&DIVBYZERO) && yi != p->i; + if (bad || !checkulp(d, p->r)) { + if (!bad && fabsf(d) < 11.0f) + printf("X "); + else + err++; + printf("%s:%d: %s lgamma(%a) want %a,%lld got %a,%d ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, p->i, y, yi, d, d-p->dy, p->dy); + } + } + return !!err; +} diff --git a/test/musl/src/math/lgamma_r.c b/test/musl/src/math/lgamma_r.c new file mode 100644 index 00000000..f7f2a25d --- /dev/null +++ b/test/musl/src/math/lgamma_r.c @@ -0,0 +1,51 @@ +#define _DEFAULT_SOURCE 1 +#define _BSD_SOURCE 1 +#define _GNU_SOURCE 1 +#include +#include +#include "mtest.h" + +static struct d_di t[] = { +#include "sanity/lgamma_r.h" +#include "special/lgamma_r.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + int yi; + double y; + float d; + int e, i, bad, err = 0; + struct d_di *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = lgamma_r(p->x, &yi); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s lgamma_r(%a)=%a,%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + bad = !isnan(p->x) && p->x!=-inf && !(p->e&DIVBYZERO) && yi != p->i; + if (bad || !checkulp(d, p->r)) { + if (!bad && fabsf(d) < 11.0f) + printf("X "); + else + err++; + printf("%s:%d: %s lgamma_r(%a) want %a,%lld got %a,%d ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, p->i, y, yi, d, d-p->dy, p->dy); + } + } + return !!err; +} diff --git a/test/musl/src/math/lgammaf.c b/test/musl/src/math/lgammaf.c new file mode 100644 index 00000000..3c6031f4 --- /dev/null +++ b/test/musl/src/math/lgammaf.c @@ -0,0 +1,52 @@ +#define _DEFAULT_SOURCE 1 +#define _BSD_SOURCE 1 +#define _XOPEN_SOURCE 700 +#include +#include +#include "mtest.h" + +static struct f_fi t[] = { +#include "sanity/lgammaf.h" +#include "special/lgammaf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + int yi; + double y; + float d; + int e, i, bad, err = 0; + struct f_fi *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = lgammaf(p->x); + yi = signgam; + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s lgammaf(%a)=%a,%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + bad = !isnan(p->x) && p->x!=-inf && !(p->e&DIVBYZERO) && yi != p->i; + if (bad || !checkulp(d, p->r)) { + if (!bad && fabsf(d) < 2.0f) + printf("X "); + else + err++; + printf("%s:%d: %s lgammaf(%a) want %a,%lld got %a,%d ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, p->i, y, yi, d, d-p->dy, p->dy); + } + } + return !!err; +} diff --git a/test/musl/src/math/lgammaf_r.c b/test/musl/src/math/lgammaf_r.c new file mode 100644 index 00000000..7c6daf35 --- /dev/null +++ b/test/musl/src/math/lgammaf_r.c @@ -0,0 +1,51 @@ +#define _DEFAULT_SOURCE 1 +#define _BSD_SOURCE 1 +#define _GNU_SOURCE 1 +#include +#include +#include "mtest.h" + +static struct f_fi t[] = { +#include "sanity/lgammaf_r.h" +#include "special/lgammaf_r.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + int yi; + double y; + float d; + int e, i, bad, err = 0; + struct f_fi *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = lgammaf_r(p->x, &yi); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s lgammaf_r(%a)=%a,%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + bad = !isnan(p->x) && p->x!=-inf && !(p->e&DIVBYZERO) && yi != p->i; + if (bad || !checkulp(d, p->r)) { + if (!bad && fabsf(d) < 2.0f) + printf("X "); + else + err++; + printf("%s:%d: %s lgammaf_r(%a) want %a,%lld got %a,%d ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, p->i, y, yi, d, d-p->dy, p->dy); + } + } + return !!err; +} diff --git a/test/musl/src/math/lgammal.c b/test/musl/src/math/lgammal.c new file mode 100644 index 00000000..5a95266e --- /dev/null +++ b/test/musl/src/math/lgammal.c @@ -0,0 +1,55 @@ +#define _DEFAULT_SOURCE 1 +#define _BSD_SOURCE 1 +#define _XOPEN_SOURCE 700 +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + int yi; + long double y; + float d; + int e, i, err = 0; + struct l_li *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = lgammal(p->x); + yi = signgam; + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s lgammal(%La)=%La,%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + // TODO: 2 ulp errors allowed + if ((p->r==RN && fabs(d) > 2) || (!isnan(p->x) && p->x!=-inf && !(p->e&DIVBYZERO) && yi != p->i)) { + printf("%s:%d: %s lgammal(%La) want %La,%lld got %La,%d ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, p->i, y, yi, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/lgammal_r.c b/test/musl/src/math/lgammal_r.c new file mode 100644 index 00000000..848f48d4 --- /dev/null +++ b/test/musl/src/math/lgammal_r.c @@ -0,0 +1,52 @@ +#define _GNU_SOURCE 1 +#include +#include +#include "mtest.h" + +static struct l_li t[] = { +#if LDBL_MANT_DIG == 53 +#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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + int yi; + long double y; + float d; + int e, i, err = 0; + struct l_li *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = lgammal_r(p->x, &yi); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s lgammal_r(%La)=%La,%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + // TODO: 2 ulp errors allowed + if ((p->r==RN && fabs(d)>2) || (!isnan(p->x) && p->x!=-inf && !(p->e&DIVBYZERO) && yi != p->i)) { + printf("%s:%d: %s lgammal_r(%La) want %La,%lld got %La,%d ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, p->i, y, yi, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/llrint.c b/test/musl/src/math/llrint.c new file mode 100644 index 00000000..b0b0e162 --- /dev/null +++ b/test/musl/src/math/llrint.c @@ -0,0 +1,41 @@ +#include +#include +#include "mtest.h" + +static struct d_i t[] = { +#include "sanity/llrint.h" +#include "special/llrint.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long long yi; + int e, i, err = 0; + struct d_i *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + yi = llrint(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s llrint(%a)=%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + if (!(p->e&INVALID) && yi != p->i) { + printf("%s:%d: %s llrint(%a) want %lld got %lld\n", + p->file, p->line, rstr(p->r), p->x, p->i, yi); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/llrintf.c b/test/musl/src/math/llrintf.c new file mode 100644 index 00000000..35d70875 --- /dev/null +++ b/test/musl/src/math/llrintf.c @@ -0,0 +1,41 @@ +#include +#include +#include "mtest.h" + +static struct f_i t[] = { +#include "sanity/llrintf.h" +#include "special/llrintf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long long yi; + int e, i, err = 0; + struct f_i *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + yi = llrintf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s llrintf(%a)=%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + if (!(p->e&INVALID) && yi != p->i) { + printf("%s:%d: %s llrintf(%a) want %lld got %lld\n", + p->file, p->line, rstr(p->r), p->x, p->i, yi); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/llrintl.c b/test/musl/src/math/llrintl.c new file mode 100644 index 00000000..4ebacbe7 --- /dev/null +++ b/test/musl/src/math/llrintl.c @@ -0,0 +1,47 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long long yi; + int e, i, err = 0; + struct l_i *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + yi = llrintl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s llrintl(%La)=%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + if (!(p->e&INVALID) && yi != p->i) { + printf("%s:%d: %s llrintl(%La) want %lld got %lld\n", + p->file, p->line, rstr(p->r), p->x, p->i, yi); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/llround.c b/test/musl/src/math/llround.c new file mode 100644 index 00000000..535611ad --- /dev/null +++ b/test/musl/src/math/llround.c @@ -0,0 +1,41 @@ +#include +#include +#include "mtest.h" + +static struct d_i t[] = { +#include "sanity/llround.h" +#include "special/llround.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long long yi; + int e, i, err = 0; + struct d_i *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + yi = llround(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r) && (e|INEXACT) != p->e) { + printf("%s:%d: bad fp exception: %s llround(%a)=%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + if (!(p->e&INVALID) && yi != p->i) { + printf("%s:%d: %s llround(%a) want %lld got %lld\n", + p->file, p->line, rstr(p->r), p->x, p->i, yi); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/llroundf.c b/test/musl/src/math/llroundf.c new file mode 100644 index 00000000..03030996 --- /dev/null +++ b/test/musl/src/math/llroundf.c @@ -0,0 +1,41 @@ +#include +#include +#include "mtest.h" + +static struct f_i t[] = { +#include "sanity/llroundf.h" +#include "special/llroundf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long long yi; + int e, i, err = 0; + struct f_i *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + yi = llroundf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r) && (e|INEXACT) != p->e) { + printf("%s:%d: bad fp exception: %s llroundf(%a)=%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + if (!(p->e&INVALID) && yi != p->i) { + printf("%s:%d: %s llroundf(%a) want %lld got %lld\n", + p->file, p->line, rstr(p->r), p->x, p->i, yi); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/llroundl.c b/test/musl/src/math/llroundl.c new file mode 100644 index 00000000..de46e7e1 --- /dev/null +++ b/test/musl/src/math/llroundl.c @@ -0,0 +1,47 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long long yi; + int e, i, err = 0; + struct l_i *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + yi = llroundl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r) && (e|INEXACT) != p->e) { + printf("%s:%d: bad fp exception: %s llroundl(%La)=%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + if (!(p->e&INVALID) && yi != p->i) { + printf("%s:%d: %s llroundl(%La) want %lld got %lld\n", + p->file, p->line, rstr(p->r), p->x, p->i, yi); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/log.c b/test/musl/src/math/log.c new file mode 100644 index 00000000..39c5eaa0 --- /dev/null +++ b/test/musl/src/math/log.c @@ -0,0 +1,45 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +// #include "crlibm/log.h" +#include "ucb/log.h" +#include "sanity/log.h" +#include "special/log.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = log(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s log(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s log(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/log10.c b/test/musl/src/math/log10.c new file mode 100644 index 00000000..c704af19 --- /dev/null +++ b/test/musl/src/math/log10.c @@ -0,0 +1,45 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +// #include "crlibm/log10.h" +#include "ucb/log10.h" +#include "sanity/log10.h" +#include "special/log10.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = log10(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s log10(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s log10(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/log10f.c b/test/musl/src/math/log10f.c new file mode 100644 index 00000000..d2ece3c1 --- /dev/null +++ b/test/musl/src/math/log10f.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "ucb/log10f.h" +#include "sanity/log10f.h" +#include "special/log10f.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = log10f(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s log10f(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s log10f(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/log10l.c b/test/musl/src/math/log10l.c new file mode 100644 index 00000000..d956a86a --- /dev/null +++ b/test/musl/src/math/log10l.c @@ -0,0 +1,51 @@ +#include +#include +#include "mtest.h" + +static struct l_l t[] = { +#if LDBL_MANT_DIG == 53 +// #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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = log10l(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s log10l(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s log10l(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/log1p.c b/test/musl/src/math/log1p.c new file mode 100644 index 00000000..747e315f --- /dev/null +++ b/test/musl/src/math/log1p.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +// #include "crlibm/log1p.h" +#include "sanity/log1p.h" +#include "special/log1p.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = log1p(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s log1p(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s log1p(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/log1pf.c b/test/musl/src/math/log1pf.c new file mode 100644 index 00000000..96cb6be0 --- /dev/null +++ b/test/musl/src/math/log1pf.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "sanity/log1pf.h" +#include "special/log1pf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = log1pf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s log1pf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s log1pf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/log1pl.c b/test/musl/src/math/log1pl.c new file mode 100644 index 00000000..d0c639d0 --- /dev/null +++ b/test/musl/src/math/log1pl.c @@ -0,0 +1,50 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = log1pl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s log1pl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s log1pl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/log2.c b/test/musl/src/math/log2.c new file mode 100644 index 00000000..f772ca9c --- /dev/null +++ b/test/musl/src/math/log2.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +// #include "crlibm/log2.h" +#include "sanity/log2.h" +#include "special/log2.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = log2(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s log2(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s log2(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/log2f.c b/test/musl/src/math/log2f.c new file mode 100644 index 00000000..1f549ea7 --- /dev/null +++ b/test/musl/src/math/log2f.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "sanity/log2f.h" +#include "special/log2f.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = log2f(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s log2f(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s log2f(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/log2l.c b/test/musl/src/math/log2l.c new file mode 100644 index 00000000..682623ba --- /dev/null +++ b/test/musl/src/math/log2l.c @@ -0,0 +1,50 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = log2l(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s log2l(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s log2l(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/logb.c b/test/musl/src/math/logb.c new file mode 100644 index 00000000..8d8a20f3 --- /dev/null +++ b/test/musl/src/math/logb.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "sanity/logb.h" +#include "special/logb.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = logb(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s logb(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s logb(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/logbf.c b/test/musl/src/math/logbf.c new file mode 100644 index 00000000..4f0f0d00 --- /dev/null +++ b/test/musl/src/math/logbf.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "sanity/logbf.h" +#include "special/logbf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = logbf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s logbf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s logbf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/logbl.c b/test/musl/src/math/logbl.c new file mode 100644 index 00000000..8a774c72 --- /dev/null +++ b/test/musl/src/math/logbl.c @@ -0,0 +1,49 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = logbl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s logbl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s logbl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/logf.c b/test/musl/src/math/logf.c new file mode 100644 index 00000000..980c7b4c --- /dev/null +++ b/test/musl/src/math/logf.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "ucb/logf.h" +#include "sanity/logf.h" +#include "special/logf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = logf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s logf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s logf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/logl.c b/test/musl/src/math/logl.c new file mode 100644 index 00000000..e5b64af9 --- /dev/null +++ b/test/musl/src/math/logl.c @@ -0,0 +1,51 @@ +#include +#include +#include "mtest.h" + +static struct l_l t[] = { +#if LDBL_MANT_DIG == 53 +// #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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = logl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s logl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s logl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/lrint.c b/test/musl/src/math/lrint.c new file mode 100644 index 00000000..84c410e8 --- /dev/null +++ b/test/musl/src/math/lrint.c @@ -0,0 +1,41 @@ +#include +#include +#include "mtest.h" + +static struct d_i t[] = { +#include "sanity/lrint.h" +#include "special/lrint.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long long yi; + int e, i, err = 0; + struct d_i *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + yi = lrint(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s lrint(%a)=%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + if (!(p->e&INVALID) && yi != p->i) { + printf("%s:%d: %s lrint(%a) want %lld got %lld\n", + p->file, p->line, rstr(p->r), p->x, p->i, yi); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/lrintf.c b/test/musl/src/math/lrintf.c new file mode 100644 index 00000000..0d489805 --- /dev/null +++ b/test/musl/src/math/lrintf.c @@ -0,0 +1,41 @@ +#include +#include +#include "mtest.h" + +static struct f_i t[] = { +#include "sanity/lrintf.h" +#include "special/lrintf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long long yi; + int e, i, err = 0; + struct f_i *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + yi = lrintf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s lrintf(%a)=%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + if (!(p->e&INVALID) && yi != p->i) { + printf("%s:%d: %s lrintf(%a) want %lld got %lld\n", + p->file, p->line, rstr(p->r), p->x, p->i, yi); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/lrintl.c b/test/musl/src/math/lrintl.c new file mode 100644 index 00000000..653b4b44 --- /dev/null +++ b/test/musl/src/math/lrintl.c @@ -0,0 +1,47 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long long yi; + int e, i, err = 0; + struct l_i *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + yi = lrintl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s lrintl(%La)=%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + if (!(p->e&INVALID) && yi != p->i) { + printf("%s:%d: %s lrintl(%La) want %lld got %lld\n", + p->file, p->line, rstr(p->r), p->x, p->i, yi); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/lround.c b/test/musl/src/math/lround.c new file mode 100644 index 00000000..92835b18 --- /dev/null +++ b/test/musl/src/math/lround.c @@ -0,0 +1,41 @@ +#include +#include +#include "mtest.h" + +static struct d_i t[] = { +#include "sanity/lround.h" +#include "special/lround.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long long yi; + int e, i, err = 0; + struct d_i *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + yi = lround(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r) && (e|INEXACT) != p->e) { + printf("%s:%d: bad fp exception: %s lround(%a)=%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + if (!(p->e&INVALID) && yi != p->i) { + printf("%s:%d: %s lround(%a) want %lld got %lld\n", + p->file, p->line, rstr(p->r), p->x, p->i, yi); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/lroundf.c b/test/musl/src/math/lroundf.c new file mode 100644 index 00000000..303cb6a2 --- /dev/null +++ b/test/musl/src/math/lroundf.c @@ -0,0 +1,41 @@ +#include +#include +#include "mtest.h" + +static struct f_i t[] = { +#include "sanity/lroundf.h" +#include "special/lroundf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long long yi; + int e, i, err = 0; + struct f_i *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + yi = lroundf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r) && (e|INEXACT) != p->e) { + printf("%s:%d: bad fp exception: %s lroundf(%a)=%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + if (!(p->e&INVALID) && yi != p->i) { + printf("%s:%d: %s lroundf(%a) want %lld got %lld\n", + p->file, p->line, rstr(p->r), p->x, p->i, yi); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/lroundl.c b/test/musl/src/math/lroundl.c new file mode 100644 index 00000000..0b933be6 --- /dev/null +++ b/test/musl/src/math/lroundl.c @@ -0,0 +1,47 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long long yi; + int e, i, err = 0; + struct l_i *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + yi = lroundl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r) && (e|INEXACT) != p->e) { + printf("%s:%d: bad fp exception: %s lroundl(%La)=%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + if (!(p->e&INVALID) && yi != p->i) { + printf("%s:%d: %s lroundl(%La) want %lld got %lld\n", + p->file, p->line, rstr(p->r), p->x, p->i, yi); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/modf.c b/test/musl/src/math/modf.c new file mode 100644 index 00000000..b7246503 --- /dev/null +++ b/test/musl/src/math/modf.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct d_dd t[] = { +#include "sanity/modf.h" +#include "special/modf.h" +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y, yi; + float d, di; + int e, i, err = 0; + struct d_dd *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = modf(p->x, &yi); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + /* TODO: fix inexact */ + if (!checkexceptall(e|INEXACT, p->e|INEXACT, p->r)) { + printf("%s:%d: bad fp exception: %s modf(%a)=%a,%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, p->y2, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + di = ulperr(yi, p->y2, p->dy2); + if (!checkcr(y, p->y, p->r) || !checkcr(yi, p->y2, p->r)) { + printf("%s:%d: %s modf(%a) want %a,%a got %a,%a, ulperr %.3f = %a + %a, %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, p->y2, y, yi, d, d-p->dy, p->dy, di, di-p->dy2, p->dy2); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/modff.c b/test/musl/src/math/modff.c new file mode 100644 index 00000000..a2d95ac1 --- /dev/null +++ b/test/musl/src/math/modff.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct f_ff t[] = { +#include "sanity/modff.h" +#include "special/modff.h" +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y, yi; + float d, di; + int e, i, err = 0; + struct f_ff *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = modff(p->x, &yi); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + /* TODO: fix inexact */ + if (!checkexceptall(e|INEXACT, p->e|INEXACT, p->r)) { + printf("%s:%d: bad fp exception: %s modff(%a)=%a,%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, p->y2, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + di = ulperr(yi, p->y2, p->dy2); + if (!checkcr(y, p->y, p->r) || !checkcr(yi, p->y2, p->r)) { + printf("%s:%d: %s modff(%a) want %a,%a got %a,%a, ulperr %.3f = %a + %a, %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, p->y2, y, yi, d, d-p->dy, p->dy, di, di-p->dy2, p->dy2); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/modfl.c b/test/musl/src/math/modfl.c new file mode 100644 index 00000000..94336440 --- /dev/null +++ b/test/musl/src/math/modfl.c @@ -0,0 +1,49 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y, yi; + float d, di; + int e, i, err = 0; + struct l_ll *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = modfl(p->x, &yi); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + /* TODO: fix inexact */ + if (!checkexceptall(e|INEXACT, p->e|INEXACT, p->r)) { + printf("%s:%d: bad fp exception: %s modf(%La)=%La,%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, p->y2, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + di = ulperr(yi, p->y2, p->dy2); + if (!checkcr(y, p->y, p->r) || !checkcr(yi, p->y2, p->r)) { + printf("%s:%d: %s modf(%La) want %La,%La got %La,%La, ulperr %.3f = %a + %a, %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, p->y2, y, yi, d, d-p->dy, p->dy, di, di-p->dy2, p->dy2); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/nearbyint.c b/test/musl/src/math/nearbyint.c new file mode 100644 index 00000000..17020974 --- /dev/null +++ b/test/musl/src/math/nearbyint.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "sanity/nearbyint.h" +#include "special/nearbyint.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = nearbyint(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s nearbyint(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s nearbyint(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/nearbyintf.c b/test/musl/src/math/nearbyintf.c new file mode 100644 index 00000000..1bd3db9e --- /dev/null +++ b/test/musl/src/math/nearbyintf.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "sanity/nearbyintf.h" +#include "special/nearbyintf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = nearbyintf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s nearbyintf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s nearbyintf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/nearbyintl.c b/test/musl/src/math/nearbyintl.c new file mode 100644 index 00000000..854255a0 --- /dev/null +++ b/test/musl/src/math/nearbyintl.c @@ -0,0 +1,49 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = nearbyintl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s nearbyintl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s nearbyintl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/nextafter.c b/test/musl/src/math/nextafter.c new file mode 100644 index 00000000..79667fea --- /dev/null +++ b/test/musl/src/math/nextafter.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct dd_d t[] = { +#include "sanity/nextafter.h" +#include "special/nextafter.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct dd_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = nextafter(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s nextafter(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s nextafter(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/nextafterf.c b/test/musl/src/math/nextafterf.c new file mode 100644 index 00000000..18cd8bd3 --- /dev/null +++ b/test/musl/src/math/nextafterf.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct ff_f t[] = { +#include "sanity/nextafterf.h" +#include "special/nextafterf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct ff_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = nextafterf(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s nextafterf(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s nextafterf(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/nextafterl.c b/test/musl/src/math/nextafterl.c new file mode 100644 index 00000000..41edab04 --- /dev/null +++ b/test/musl/src/math/nextafterl.c @@ -0,0 +1,49 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct ll_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = nextafterl(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s nextafterl(%La,%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s nextafterl(%La,%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/nexttoward.c b/test/musl/src/math/nexttoward.c new file mode 100644 index 00000000..8436c695 --- /dev/null +++ b/test/musl/src/math/nexttoward.c @@ -0,0 +1,50 @@ +#include +#include +#include "mtest.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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct ll_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = nexttoward(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s nexttoward(%La,%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s nexttoward(%La,%La) want %La got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/nexttowardf.c b/test/musl/src/math/nexttowardf.c new file mode 100644 index 00000000..0cbed2f7 --- /dev/null +++ b/test/musl/src/math/nexttowardf.c @@ -0,0 +1,50 @@ +#include +#include +#include "mtest.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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct ll_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = nexttowardf(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s nexttowardf(%La,%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s nexttowardf(%La,%La) want %La got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/nexttowardl.c b/test/musl/src/math/nexttowardl.c new file mode 100644 index 00000000..ac0115a8 --- /dev/null +++ b/test/musl/src/math/nexttowardl.c @@ -0,0 +1,49 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct ll_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = nexttowardl(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s nexttowardl(%La,%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s nexttowardl(%La,%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/pow.c b/test/musl/src/math/pow.c new file mode 100644 index 00000000..a1ed2abe --- /dev/null +++ b/test/musl/src/math/pow.c @@ -0,0 +1,48 @@ +#include +#include +#include "mtest.h" + +static struct dd_d t[] = { +// #include "crlibm/pow.h" +#include "ucb/pow.h" +#include "sanity/pow.h" +#include "special/pow.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct dd_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = pow(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + if (fabs(y) < 0x1p-1022 && (e|INEXACT) == (INEXACT|UNDERFLOW)) + printf("X "); + else + err++; + printf("%s:%d: bad fp exception: %s pow(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s pow(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/pow10.c b/test/musl/src/math/pow10.c new file mode 100644 index 00000000..b5d2a833 --- /dev/null +++ b/test/musl/src/math/pow10.c @@ -0,0 +1,44 @@ +#define _GNU_SOURCE 1 +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "sanity/pow10.h" +#include "special/exp10.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = pow10(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s pow10(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s pow10(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/pow10f.c b/test/musl/src/math/pow10f.c new file mode 100644 index 00000000..07cd3c3b --- /dev/null +++ b/test/musl/src/math/pow10f.c @@ -0,0 +1,44 @@ +#define _GNU_SOURCE 1 +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "sanity/pow10f.h" +#include "special/exp10f.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = pow10f(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s pow10f(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s pow10f(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/pow10l.c b/test/musl/src/math/pow10l.c new file mode 100644 index 00000000..478f6a7c --- /dev/null +++ b/test/musl/src/math/pow10l.c @@ -0,0 +1,50 @@ +#define _GNU_SOURCE 1 +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = pow10l(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s pow10l(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s pow10l(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/powf.c b/test/musl/src/math/powf.c new file mode 100644 index 00000000..4778c2f7 --- /dev/null +++ b/test/musl/src/math/powf.c @@ -0,0 +1,47 @@ +#include +#include +#include "mtest.h" + +static struct ff_f t[] = { +#include "ucb/powf.h" +#include "sanity/powf.h" +#include "special/powf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct ff_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = powf(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + if (fabsf(y) < 0x1p-126f && (e|INEXACT) == (INEXACT|UNDERFLOW)) + printf("X "); + else + err++; + printf("%s:%d: bad fp exception: %s powf(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s powf(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/powl.c b/test/musl/src/math/powl.c new file mode 100644 index 00000000..76a8efe3 --- /dev/null +++ b/test/musl/src/math/powl.c @@ -0,0 +1,51 @@ +#include +#include +#include "mtest.h" + +static struct ll_l t[] = { +#if LDBL_MANT_DIG == 53 +// #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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct ll_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = powl(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s powl(%La,%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s powl(%La,%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/remainder.c b/test/musl/src/math/remainder.c new file mode 100644 index 00000000..2debbb73 --- /dev/null +++ b/test/musl/src/math/remainder.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct dd_d t[] = { +#include "sanity/remainder.h" +#include "special/remainder.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct dd_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = remainder(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s remainder(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s remainder(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/remainderf.c b/test/musl/src/math/remainderf.c new file mode 100644 index 00000000..a648b044 --- /dev/null +++ b/test/musl/src/math/remainderf.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct ff_f t[] = { +#include "sanity/remainderf.h" +#include "special/remainderf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct ff_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = remainderf(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s remainderf(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s remainderf(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/remainderl.c b/test/musl/src/math/remainderl.c new file mode 100644 index 00000000..b028519d --- /dev/null +++ b/test/musl/src/math/remainderl.c @@ -0,0 +1,49 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct ll_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = remainderl(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s remainderl(%La,%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s remainderl(%La,%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/remquo.c b/test/musl/src/math/remquo.c new file mode 100644 index 00000000..86946888 --- /dev/null +++ b/test/musl/src/math/remquo.c @@ -0,0 +1,45 @@ +#include +#include +#include "mtest.h" + +static struct dd_di t[] = { +#include "sanity/remquo.h" +#include "special/remquo.h" +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + int yi; + double y; + float d; + int e, i, err = 0; + struct dd_di *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = remquo(p->x, p->x2, &yi); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s remquo(%a,%a)=%a,%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r) || + (!isnan(p->y) && (yi & 7) != (p->i & 7)) || + (!isnan(p->y) && (yi < 0) != (p->i < 0))) { + printf("%s:%d: %s remquo(%a,%a) want %a,%lld got %a,%d ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, p->i, y, yi, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/remquof.c b/test/musl/src/math/remquof.c new file mode 100644 index 00000000..46cc9d55 --- /dev/null +++ b/test/musl/src/math/remquof.c @@ -0,0 +1,45 @@ +#include +#include +#include "mtest.h" + +static struct ff_fi t[] = { +#include "sanity/remquof.h" +#include "special/remquof.h" +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + int yi; + float y; + float d; + int e, i, err = 0; + struct ff_fi *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = remquof(p->x, p->x2, &yi); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s remquof(%a,%a)=%a,%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r) || + (!isnan(p->y) && (yi & 7) != (p->i & 7)) || + (!isnan(p->y) && (yi < 0) != (p->i < 0))) { + printf("%s:%d: %s remquof(%a,%a) want %a,%lld got %a,%d ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, p->i, y, yi, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/remquol.c b/test/musl/src/math/remquol.c new file mode 100644 index 00000000..3f34f685 --- /dev/null +++ b/test/musl/src/math/remquol.c @@ -0,0 +1,52 @@ +#include +#include +#include "mtest.h" + +static struct ll_li t[] = { +#if LDBL_MANT_DIG == 53 +#include "sanity/remquo.h" +#include "special/remquo.h" + +#elif LDBL_MANT_DIG == 64 +#include "sanity/remquol.h" +#include "special/remquol.h" + +#endif +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + int yi; + long double y; + float d; + int e, i, err = 0; + struct ll_li *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = remquol(p->x, p->x2, &yi); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s remquol(%La,%La)=%La,%lld, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, p->i, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r) || + (!isnan(p->y) && (yi & 7) != (p->i & 7)) || + (!isnan(p->y) && (yi < 0) != (p->i < 0))) { + printf("%s:%d: %s remquol(%La,%La) want %La,%lld got %La,%d ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, p->i, y, yi, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/rint.c b/test/musl/src/math/rint.c new file mode 100644 index 00000000..4ff50ebc --- /dev/null +++ b/test/musl/src/math/rint.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "sanity/rint.h" +#include "special/rint.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = rint(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s rint(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s rint(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/rintf.c b/test/musl/src/math/rintf.c new file mode 100644 index 00000000..ced880d6 --- /dev/null +++ b/test/musl/src/math/rintf.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "sanity/rintf.h" +#include "special/rintf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = rintf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s rintf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s rintf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/rintl.c b/test/musl/src/math/rintl.c new file mode 100644 index 00000000..2970eb35 --- /dev/null +++ b/test/musl/src/math/rintl.c @@ -0,0 +1,49 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = rintl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s rintl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s rintl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/round.c b/test/musl/src/math/round.c new file mode 100644 index 00000000..495ad1df --- /dev/null +++ b/test/musl/src/math/round.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "sanity/round.h" +#include "special/round.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = round(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r) && (e|INEXACT) != p->e) { + printf("%s:%d: bad fp exception: %s round(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s round(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/roundf.c b/test/musl/src/math/roundf.c new file mode 100644 index 00000000..5a8f2e57 --- /dev/null +++ b/test/musl/src/math/roundf.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "sanity/roundf.h" +#include "special/roundf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = roundf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r) && (e|INEXACT) != p->e) { + printf("%s:%d: bad fp exception: %s roundf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s roundf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/roundl.c b/test/musl/src/math/roundl.c new file mode 100644 index 00000000..a1214722 --- /dev/null +++ b/test/musl/src/math/roundl.c @@ -0,0 +1,49 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = roundl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r) && (e|INEXACT) != p->e) { + printf("%s:%d: bad fp exception: %s roundl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s roundl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/sanity/acos.h b/test/musl/src/math/sanity/acos.h new file mode 100644 index 00000000..013d4005 --- /dev/null +++ b/test/musl/src/math/sanity/acos.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868e18bc67p+2, nan, 0x0p+0, INVALID) +T(RN, -0x1.0c34b3e01e6e7p+3, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206f0a19dcc4p+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbb0d6a1e6p+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.52efd0cd80497p-1, 0x1.b1d5613364962p-1, -0x1.a9816cp-2, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, 0x1.fd51d7bdbc00ep+0, 0x1.fd5504p-2, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.f2d57a979a915p-1, -0x1.c584e4p-2, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.5eef91a537cf3p-1, -0x1.01d562p-3, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, 0x1.288f54ee457a7p+1, -0x1.61feeap-3, INEXACT) diff --git a/test/musl/src/math/sanity/acosf.h b/test/musl/src/math/sanity/acosf.h new file mode 100644 index 00000000..2a6c3c26 --- /dev/null +++ b/test/musl/src/math/sanity/acosf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868p+2, nan, 0x0p+0, INVALID) +T(RN, -0x1.0c34b4p+3, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206fp+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbcp+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.52efdp-1, 0x1.b1d562p-1, -0x1.1648f2p-3, INEXACT) +T(RN, -0x1.a05cc8p-2, 0x1.fd51d8p+0, 0x1.346c0cp-5, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.f2d57ap-1, 0x1.79ba5p-3, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.5eef92p-1, -0x1.2a94dap-2, INEXACT) +T(RN, -0x1.5b86eap-1, 0x1.288f54p+1, -0x1.84a534p-2, INEXACT) diff --git a/test/musl/src/math/sanity/acosh.h b/test/musl/src/math/sanity/acosh.h new file mode 100644 index 00000000..8b736184 --- /dev/null +++ b/test/musl/src/math/sanity/acosh.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868e18bc67p+2, 0x1.1309239105d47p+1, -0x1.2aa24cp-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206f0a19dcc4p+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.755611dccf376p+1, -0x1.ef7346p-3, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.a05cc754481d1p-2, nan, 0x0p+0, INVALID) +T(RN, 0x1.1f9ef934745cbp-1, nan, 0x0p+0, INVALID) +T(RN, 0x1.8c5db097f7442p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.5b86ea8118a0ep-1, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/sanity/acoshf.h b/test/musl/src/math/sanity/acoshf.h new file mode 100644 index 00000000..41c373b2 --- /dev/null +++ b/test/musl/src/math/sanity/acoshf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868p+2, 0x1.130924p+1, 0x1.b34e9ap-2, INEXACT) +T(RN, -0x1.0c34b4p+3, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206fp+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbcp+3, 0x1.755612p+1, -0x1.188864p-3, INEXACT) +T(RN, 0x1.52efdp-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.a05cc8p-2, nan, 0x0p+0, INVALID) +T(RN, 0x1.1f9efap-1, nan, 0x0p+0, INVALID) +T(RN, 0x1.8c5dbp-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.5b86eap-1, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/sanity/acoshl.h b/test/musl/src/math/sanity/acoshl.h new file mode 100644 index 00000000..e2aec7d9 --- /dev/null +++ b/test/musl/src/math/sanity/acoshl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.1309239105d47838p+1L, 0x1.ab94f4p-3, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206f0a19dcc3948p+2L, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.755611dccf376212p+1L, 0x1.84b076p-4, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, nan, 0x0p+0, INVALID) +T(RN, -0x1.a05cc754481d0bdp-2L, nan, 0x0p+0, INVALID) +T(RN, 0x1.1f9ef934745cad6p-1L, nan, 0x0p+0, INVALID) +T(RN, 0x1.8c5db097f744257ep-1L, nan, 0x0p+0, INVALID) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/sanity/acosl.h b/test/musl/src/math/sanity/acosl.h new file mode 100644 index 00000000..12a650be --- /dev/null +++ b/test/musl/src/math/sanity/acosl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868e18bc67782p+2L, nan, 0x0p+0, INVALID) +T(RN, -0x1.0c34b3e01e6e682cp+3L, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206f0a19dcc3948p+2L, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, nan, 0x0p+0, INVALID) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.b1d5613364962e3p-1L, 0x1.7797e6p-2, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, 0x1.fd51d7bdbc00d6e6p+0L, 0x1.580c94p-2, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.f2d57a979a915a42p-1L, -0x1.6d798ap-3, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.5eef91a537cf2956p-1L, -0x1.fbc60cp-3, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, 0x1.288f54ee457a73b2p+1L, -0x1.2e64a6p-3, INEXACT) diff --git a/test/musl/src/math/sanity/asin.h b/test/musl/src/math/sanity/asin.h new file mode 100644 index 00000000..2052666d --- /dev/null +++ b/test/musl/src/math/sanity/asin.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868e18bc67p+2, nan, 0x0p+0, INVALID) +T(RN, -0x1.0c34b3e01e6e7p+3, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206f0a19dcc4p+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbb0d6a1e6p+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.52efd0cd80497p-1, 0x1.726a0955210cep-1, -0x1.1686b6p-3, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, -0x1.acc889e5e4bd5p-2, -0x1.7b768p-4, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.3169eff0eb11bp-1, -0x1.bcff8ap-4, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.c54fd8e34dd3dp-1, -0x1.b3da16p-2, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -0x1.7dfde9309046cp-1, 0x1.1e721ap-3, INEXACT) diff --git a/test/musl/src/math/sanity/asinf.h b/test/musl/src/math/sanity/asinf.h new file mode 100644 index 00000000..ccfefd6c --- /dev/null +++ b/test/musl/src/math/sanity/asinf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868p+2, nan, 0x0p+0, INVALID) +T(RN, -0x1.0c34b4p+3, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206fp+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbcp+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.52efdp-1, 0x1.726a08p-1, -0x1.0bcd9ap-3, INEXACT) +T(RN, -0x1.a05cc8p-2, -0x1.acc88ap-2, 0x1.43b36ep-2, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.3169fp-1, -0x1.cde86ep-2, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.c54fd8p-1, 0x1.989932p-6, INEXACT) +T(RN, -0x1.5b86eap-1, -0x1.7dfde8p-1, 0x1.01898ap-2, INEXACT) diff --git a/test/musl/src/math/sanity/asinh.h b/test/musl/src/math/sanity/asinh.h new file mode 100644 index 00000000..e5837a4f --- /dev/null +++ b/test/musl/src/math/sanity/asinh.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -0x1.64720755ef599p+1, -0x1.e7a5f4p-2, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 0x1.166d646fd101cp+1, -0x1.bf142p-6, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.694e6ed5d9d6p+1, 0x1.adc73p-3, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, -0x1.49ade5e506e7p+1, 0x1.3ec8f2p-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.7614db4ed4698p+1, 0x1.ff27e4p-2, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.3e13fdeeb0637p-1, -0x1.e10226p-2, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, -0x1.95aaf11d7f14p-2, -0x1.a1f09ap-2, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.124efd24a1d5ep-1, 0x1.688562p-2, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.6cba12c13b4a7p-1, 0x1.11d8eap-3, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -0x1.45369eef1246ep-1, 0x1.8517d2p-5, INEXACT) diff --git a/test/musl/src/math/sanity/asinhf.h b/test/musl/src/math/sanity/asinhf.h new file mode 100644 index 00000000..9eda6548 --- /dev/null +++ b/test/musl/src/math/sanity/asinhf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -0x1.647208p+1, -0x1.2747eap-3, INEXACT) +T(RN, 0x1.161868p+2, 0x1.166d64p+1, -0x1.54bcccp-6, INEXACT) +T(RN, -0x1.0c34b4p+3, -0x1.694e6ep+1, 0x1.c9eaf4p-2, INEXACT) +T(RN, -0x1.a206fp+2, -0x1.49ade6p+1, -0x1.2f8f66p-3, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.7614dcp+1, 0x1.244378p-3, INEXACT) +T(RN, 0x1.52efdp-1, 0x1.3e13fep-1, 0x1.7955c8p-2, INEXACT) +T(RN, -0x1.a05cc8p-2, -0x1.95aaf2p-2, -0x1.0dba56p-3, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.124efep-1, 0x1.4f407ap-4, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.6cba12p-1, -0x1.2443c4p-3, INEXACT) +T(RN, -0x1.5b86eap-1, -0x1.45369ep-1, 0x1.08839p-2, INEXACT) diff --git a/test/musl/src/math/sanity/asinhl.h b/test/musl/src/math/sanity/asinhl.h new file mode 100644 index 00000000..4aed9980 --- /dev/null +++ b/test/musl/src/math/sanity/asinhl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -0x1.64720755ef598a48p+1L, 0x1.26ef54p-2, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.166d646fd101c3cep+1L, 0x1.e9ca26p-5, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.694e6ed5d9d5ffa6p+1L, -0x1.ba912ep-5, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, -0x1.49ade5e506e702f2p+1L, 0x1.1524e6p-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.7614db4ed469763cp+1L, 0x1.808214p-3, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.3e13fdeeb06372cep-1L, -0x1.2948a8p-3, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, -0x1.95aaf11d7f13f598p-2L, -0x1.9e2d4ap-2, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.124efd24a1d5d814p-1L, -0x1.05ae62p-6, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.6cba12c13b4a7234p-1L, -0x1.5c9fa8p-5, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -0x1.45369eef1246e306p-1L, -0x1.16b7c2p-3, INEXACT) diff --git a/test/musl/src/math/sanity/asinl.h b/test/musl/src/math/sanity/asinl.h new file mode 100644 index 00000000..2fbf2594 --- /dev/null +++ b/test/musl/src/math/sanity/asinl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868e18bc67782p+2L, nan, 0x0p+0, INVALID) +T(RN, -0x1.0c34b3e01e6e682cp+3L, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206f0a19dcc3948p+2L, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, nan, 0x0p+0, INVALID) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.726a0955210cdaa4p-1L, 0x1.88d412p-4, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, -0x1.acc889e5e4bd49fp-2L, -0x1.ac9878p-2, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.3169eff0eb11ae9p-1L, -0x1.6f765p-2, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.c54fd8e34dd3df7cp-1L, -0x1.28500ep-2, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -0x1.7dfde9309046c5f6p-1L, 0x1.b4b1b4p-5, INEXACT) diff --git a/test/musl/src/math/sanity/atan.h b/test/musl/src/math/sanity/atan.h new file mode 100644 index 00000000..a4dd3e43 --- /dev/null +++ b/test/musl/src/math/sanity/atan.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -0x1.728cd4294633ap+0, 0x1.30460ep-3, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 0x1.583791db39f0fp+0, -0x1.4ea82ep-4, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.73b94f31c3005p+0, -0x1.336caap-4, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, -0x1.6b3b72e10494cp+0, -0x1.d82234p-5, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.769b08f1d60c3p+0, 0x1.491accp-3, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.2b6504221346bp-1, 0x1.d540f8p-2, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, -0x1.8b7473c9ac112p-2, -0x1.079b4p-2, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.060e2eb21783ep-1, -0x1.d4c1f2p-4, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.514ba4df4ae08p-1, -0x1.ce4b68p-4, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -0x1.315244b290fe2p-1, -0x1.bf0bcep-3, INEXACT) diff --git a/test/musl/src/math/sanity/atan2.h b/test/musl/src/math/sanity/atan2.h new file mode 100644 index 00000000..6e4c405f --- /dev/null +++ b/test/musl/src/math/sanity/atan2.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1.22484b9ef31fp+2, -0x1.0effb95f41b7dp+0, 0x1.9006b2p-4, INEXACT) +T(RN, 0x1.161868e18bc67p+2, -0x1.1c6a6cdce75e8p+3, 0x1.57eb77cdcea8dp+1, 0x1.6ef08cp-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.61bde29e83f6dp+1, -0x1.e3a92bbad2d22p+0, -0x1.d974cap-2, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1.24527f7b576acp+2, -0x1.ebcccdb5aed8dp-1, -0x1.b8d24p-3, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.33edd910a3c01p+2, 0x1.17879218f70fap+0, 0x1.8eca7ep-2, INEXACT) +T(RN, -0x1.9ccd8be03f495p+2, 0x1.52fb12ef638a1p-1, -0x1.77f02c500ba85p+0, -0x1.cb5b8cp-2, INEXACT) +T(RN, 0x1.f6f80ed2eab44p+2, 0x1.ab3ff8575b21dp-5, 0x1.906ccb09df36bp+0, 0x1.839162p-2, INEXACT) +T(RN, -0x1.95882b433fad3p-1, 0x1.eb4a2e7ce0693p+2, -0x1.a52301fb32d6bp-4, -0x1.1e94fcp-3, INEXACT) +T(RN, 0x1.3b3d617ae3c4ap-1, 0x1.01860611d75e1p+1, 0x1.301b74fc45333p-2, 0x1.ca457ep-2, INEXACT) +T(RN, -0x1.1e159e36313eep-1, 0x1.081bd34224213p-5, -0x1.835e886278502p+0, 0x1.969e7p-2, INEXACT) diff --git a/test/musl/src/math/sanity/atan2f.h b/test/musl/src/math/sanity/atan2f.h new file mode 100644 index 00000000..371e643b --- /dev/null +++ b/test/musl/src/math/sanity/atan2f.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 0x1.22484cp+2, -0x1.0effbap+0, -0x1.c9c7fp-3, INEXACT) +T(RN, 0x1.161868p+2, -0x1.1c6a6cp+3, 0x1.57eb78p+1, 0x1.83aa3p-4, INEXACT) +T(RN, -0x1.0c34b4p+3, -0x1.61bde2p+1, -0x1.e3a92cp+0, -0x1.c15ec2p-3, INEXACT) +T(RN, -0x1.a206fp+2, 0x1.24528p+2, -0x1.ebccccp-1, 0x1.d73312p-2, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.33eddap+2, 0x1.178792p+0, -0x1.d3a4p-5, INEXACT) +T(RN, -0x1.9ccd8cp+2, 0x1.52fb12p-1, -0x1.77f02cp+0, 0x1.91a334p-3, INEXACT) +T(RN, 0x1.f6f80ep+2, 0x1.ab3ff8p-5, 0x1.906cccp+0, 0x1.ecfc7ap-2, INEXACT) +T(RN, -0x1.95882cp-1, 0x1.eb4a2ep+2, -0x1.a52304p-4, -0x1.afbf1ep-2, INEXACT) +T(RN, 0x1.3b3d62p-1, 0x1.018606p+1, 0x1.301b76p-2, 0x1.db8c12p-3, INEXACT) +T(RN, -0x1.1e159ep-1, 0x1.081bd4p-5, -0x1.835e88p+0, 0x1.54647ap-3, INEXACT) diff --git a/test/musl/src/math/sanity/atan2l.h b/test/musl/src/math/sanity/atan2l.h new file mode 100644 index 00000000..e92fed23 --- /dev/null +++ b/test/musl/src/math/sanity/atan2l.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, 0x1.22484b9ef31efd4p+2L, -0x1.0effb95f41b7d43cp+0L, 0x1.5ff91p-2, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, -0x1.1c6a6cdce75e83acp+3L, 0x1.57eb77cdcea8c98ep+1L, -0x1.a2576p-5, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.61bde29e83f6cb16p+1L, -0x1.e3a92bbad2d219c4p+0L, 0x1.227b42p-3, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, 0x1.24527f7b576abb6p+2L, -0x1.ebcccdb5aed8cc7ep-1L, 0x1.d2252ep-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.33edd910a3c00b7p+2L, 0x1.17879218f70f99dcp+0L, 0x1.f8679ep-2, INEXACT) +T(RN, -0x1.9ccd8be03f4949a2p+2L, 0x1.52fb12ef638a1222p-1L, -0x1.77f02c500ba84842p+0L, 0x1.0b676ap-8, INEXACT) +T(RN, 0x1.f6f80ed2eab43b22p+2L, 0x1.ab3ff8575b21cf92p-5L, 0x1.906ccb09df36a9eep+0L, 0x1.5dac66p-6, INEXACT) +T(RN, -0x1.95882b433fad2dd4p-1L, 0x1.eb4a2e7ce06930dap+2L, -0x1.a52301fb32d6aaccp-4L, -0x1.c29996p-6, INEXACT) +T(RN, 0x1.3b3d617ae3c4a65p-1L, 0x1.01860611d75e1052p+1L, 0x1.301b74fc45332e38p-2L, -0x1.18b3d2p-2, INEXACT) +T(RN, -0x1.1e159e36313ee67cp-1L, 0x1.081bd34224212bp-5L, -0x1.835e8862785026f8p+0L, -0x1.807b8cp-2, INEXACT) diff --git a/test/musl/src/math/sanity/atanf.h b/test/musl/src/math/sanity/atanf.h new file mode 100644 index 00000000..a3188c94 --- /dev/null +++ b/test/musl/src/math/sanity/atanf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -0x1.728cd4p+0, 0x1.03d1b2p-3, INEXACT) +T(RN, 0x1.161868p+2, 0x1.583792p+0, 0x1.489c4ap-3, INEXACT) +T(RN, -0x1.0c34b4p+3, -0x1.73b95p+0, -0x1.95513p-2, INEXACT) +T(RN, -0x1.a206fp+2, -0x1.6b3b72p+0, 0x1.a46c8ep-2, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.769b0ap+0, 0x1.efa6ep-2, INEXACT) +T(RN, 0x1.52efdp-1, 0x1.2b6504p-1, 0x1.b33d58p-3, INEXACT) +T(RN, -0x1.a05cc8p-2, -0x1.8b7474p-2, 0x1.741d2ep-3, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.060e3p-1, 0x1.666064p-2, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.514ba4p-1, -0x1.008bbep-2, INEXACT) +T(RN, -0x1.5b86eap-1, -0x1.315244p-1, 0x1.68c06cp-3, INEXACT) diff --git a/test/musl/src/math/sanity/atanh.h b/test/musl/src/math/sanity/atanh.h new file mode 100644 index 00000000..f1816eb6 --- /dev/null +++ b/test/musl/src/math/sanity/atanh.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868e18bc67p+2, nan, 0x0p+0, INVALID) +T(RN, -0x1.0c34b3e01e6e7p+3, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206f0a19dcc4p+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbb0d6a1e6p+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.52efd0cd80497p-1, 0x1.97b9ef0bf3dbbp-1, 0x1.b5027ep-3, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, -0x1.b9e47f17be13ep-2, -0x1.baf2bep-2, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.45533a999e98bp-1, -0x1.0b61a2p-4, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.07d5f6618f442p+0, 0x1.2baa18p-3, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -0x1.a754af2ab8cddp-1, 0x1.1e21c8p-3, INEXACT) diff --git a/test/musl/src/math/sanity/atanhf.h b/test/musl/src/math/sanity/atanhf.h new file mode 100644 index 00000000..d26785cc --- /dev/null +++ b/test/musl/src/math/sanity/atanhf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868p+2, nan, 0x0p+0, INVALID) +T(RN, -0x1.0c34b4p+3, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206fp+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbcp+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.52efdp-1, 0x1.97b9eep-1, 0x1.876af4p-3, INEXACT) +T(RN, -0x1.a05cc8p-2, -0x1.b9e48p-2, -0x1.a86bep-5, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.45533cp-1, 0x1.e7e07ap-4, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.07d5f6p+0, 0x1.704928p-3, INEXACT) +T(RN, -0x1.5b86eap-1, -0x1.a754aep-1, 0x1.daaf4cp-4, INEXACT) diff --git a/test/musl/src/math/sanity/atanhl.h b/test/musl/src/math/sanity/atanhl.h new file mode 100644 index 00000000..f4b94c22 --- /dev/null +++ b/test/musl/src/math/sanity/atanhl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868e18bc67782p+2L, nan, 0x0p+0, INVALID) +T(RN, -0x1.0c34b3e01e6e682cp+3L, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206f0a19dcc3948p+2L, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, nan, 0x0p+0, INVALID) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.97b9ef0bf3dba288p-1L, 0x1.56fc72p-9, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, -0x1.b9e47f17be13d41p-2L, -0x1.059282p-4, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.45533a999e98ad36p-1L, 0x1.da64b2p-3, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.07d5f6618f442484p+0L, 0x1.b1eeecp-2, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -0x1.a754af2ab8cdd74ep-1L, 0x1.2a4e2ap-3, INEXACT) diff --git a/test/musl/src/math/sanity/atanl.h b/test/musl/src/math/sanity/atanl.h new file mode 100644 index 00000000..942d2319 --- /dev/null +++ b/test/musl/src/math/sanity/atanl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -0x1.728cd4294633a2d8p+0L, 0x1.a6be4ep-3, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.583791db39f0f2d2p+0L, 0x1.49e08p-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.73b94f31c3004decp+0L, -0x1.c283f2p-3, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, -0x1.6b3b72e10494be76p+0L, 0x1.728794p-3, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.769b08f1d60c2d0cp+0L, 0x1.52852cp-11, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.2b6504221346a4bep-1L, 0x1.af006cp-3, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, -0x1.8b7473c9ac11184ap-2L, -0x1.5b8e6ap-3, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.060e2eb21783dfd6p-1L, 0x1.795106p-6, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.514ba4df4ae0853ep-1L, 0x1.279566p-2, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -0x1.315244b290fe1e62p-1L, -0x1.c0c728p-2, INEXACT) diff --git a/test/musl/src/math/sanity/cbrt.h b/test/musl/src/math/sanity/cbrt.h new file mode 100644 index 00000000..07122675 --- /dev/null +++ b/test/musl/src/math/sanity/cbrt.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -0x1.00b608da341d9p+1, 0x1.dde13cp-2, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 0x1.a1beb58c65eb1p+0, -0x1.4e3ea6p-4, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.0401705973f8dp+1, -0x1.8a0cd2p-5, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, -0x1.de8943e63e529p+0, 0x1.613d64p-4, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.0cdbcc70dc8f2p+1, -0x1.16d586p-2, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.be39549c032dap-1, 0x1.c4166ep-2, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, -0x1.7b4f40dd7ac88p-1, 0x1.0d944cp-6, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.a676117fa95b6p-1, 0x1.3a2b74p-2, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.d61fa7532173bp-1, 0x1.0c0accp-4, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -0x1.c1f65bc2104cbp-1, -0x1.9d05dap-3, INEXACT) diff --git a/test/musl/src/math/sanity/cbrtf.h b/test/musl/src/math/sanity/cbrtf.h new file mode 100644 index 00000000..7659a523 --- /dev/null +++ b/test/musl/src/math/sanity/cbrtf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -0x1.00b60ap+1, -0x1.c9eccep-2, INEXACT) +T(RN, 0x1.161868p+2, 0x1.a1beb6p+0, 0x1.c91342p-2, INEXACT) +T(RN, -0x1.0c34b4p+3, -0x1.04017p+1, 0x1.8f0544p-3, INEXACT) +T(RN, -0x1.a206fp+2, -0x1.de8944p+0, -0x1.5db4ep-3, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.0cdbccp+1, -0x1.7458eap-2, INEXACT) +T(RN, 0x1.52efdp-1, 0x1.be3954p-1, -0x1.0750cep-3, INEXACT) +T(RN, -0x1.a05cc8p-2, -0x1.7b4f42p-1, -0x1.dcbfe4p-2, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.a67612p-1, 0x1.cae886p-5, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.d61fa8p-1, 0x1.d1e6dp-2, INEXACT) +T(RN, -0x1.5b86eap-1, -0x1.c1f65cp-1, -0x1.d69bf8p-3, INEXACT) diff --git a/test/musl/src/math/sanity/cbrtl.h b/test/musl/src/math/sanity/cbrtl.h new file mode 100644 index 00000000..221d539e --- /dev/null +++ b/test/musl/src/math/sanity/cbrtl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -0x1.00b608da341d98cp+1L, -0x1.39bf08p-3, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.a1beb58c65eb151p+0L, -0x1.434922p-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.0401705973f8ccb4p+1L, -0x1.33deccp-2, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, -0x1.de8943e63e528edp+0L, 0x1.d5799cp-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.0cdbcc70dc8f231ap+1L, -0x1.8d12f4p-3, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.be39549c032d9676p-1L, 0x1.d8900ap-2, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, -0x1.7b4f40dd7ac87efep-1L, -0x1.1c381ap-4, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.a676117fa95b59cep-1L, -0x1.3a7198p-3, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.d61fa7532173b12p-1L, 0x1.4f6c6ep-4, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -0x1.c1f65bc2104cadf4p-1L, 0x1.05335ep-5, INEXACT) diff --git a/test/musl/src/math/sanity/ceil.h b/test/musl/src/math/sanity/ceil.h new file mode 100644 index 00000000..38a08204 --- /dev/null +++ b/test/musl/src/math/sanity/ceil.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -0x1p+3, 0x0p+0, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 0x1.4p+2, 0x0p+0, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1p+3, 0x0p+0, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, -0x1.8p+2, 0x0p+0, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.4p+3, 0x0p+0, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, -0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -0x0p+0, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/sanity/ceilf.h b/test/musl/src/math/sanity/ceilf.h new file mode 100644 index 00000000..ecf7de2f --- /dev/null +++ b/test/musl/src/math/sanity/ceilf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -0x1p+3, 0x0p+0, INEXACT) +T(RN, 0x1.161868p+2, 0x1.4p+2, 0x0p+0, INEXACT) +T(RN, -0x1.0c34b4p+3, -0x1p+3, 0x0p+0, INEXACT) +T(RN, -0x1.a206fp+2, -0x1.8p+2, 0x0p+0, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.4p+3, 0x0p+0, INEXACT) +T(RN, 0x1.52efdp-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.a05cc8p-2, -0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.5b86eap-1, -0x0p+0, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/sanity/ceill.h b/test/musl/src/math/sanity/ceill.h new file mode 100644 index 00000000..f73d1558 --- /dev/null +++ b/test/musl/src/math/sanity/ceill.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -0x1p+3L, 0x0p+0, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.4p+2L, 0x0p+0, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1p+3L, 0x0p+0, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, -0x1.8p+2L, 0x0p+0, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.4p+3L, 0x0p+0, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1p+0L, 0x0p+0, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, -0x0p+0L, 0x0p+0, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1p+0L, 0x0p+0, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1p+0L, 0x0p+0, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -0x0p+0L, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/sanity/copysign.h b/test/musl/src/math/sanity/copysign.h new file mode 100644 index 00000000..0d02143e --- /dev/null +++ b/test/musl/src/math/sanity/copysign.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1.22484b9ef31fp+2, 0x1.02239f3c6a8f1p+3, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67p+2, -0x1.1c6a6cdce75e8p+3, -0x1.161868e18bc67p+2, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.61bde29e83f6dp+1, -0x1.0c34b3e01e6e7p+3, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1.24527f7b576acp+2, 0x1.a206f0a19dcc4p+2, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.33edd910a3c01p+2, 0x1.288bbb0d6a1e6p+3, 0x0p+0, 0) +T(RN, -0x1.9ccd8be03f495p+2, 0x1.52fb12ef638a1p-1, 0x1.9ccd8be03f495p+2, 0x0p+0, 0) +T(RN, 0x1.f6f80ed2eab44p+2, 0x1.ab3ff8575b21dp-5, 0x1.f6f80ed2eab44p+2, 0x0p+0, 0) +T(RN, -0x1.95882b433fad3p-1, 0x1.eb4a2e7ce0693p+2, 0x1.95882b433fad3p-1, 0x0p+0, 0) +T(RN, 0x1.3b3d617ae3c4ap-1, 0x1.01860611d75e1p+1, 0x1.3b3d617ae3c4ap-1, 0x0p+0, 0) +T(RN, -0x1.1e159e36313eep-1, 0x1.081bd34224213p-5, 0x1.1e159e36313eep-1, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/copysignf.h b/test/musl/src/math/sanity/copysignf.h new file mode 100644 index 00000000..40409edc --- /dev/null +++ b/test/musl/src/math/sanity/copysignf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 0x1.22484cp+2, 0x1.0223ap+3, 0x0p+0, 0) +T(RN, 0x1.161868p+2, -0x1.1c6a6cp+3, -0x1.161868p+2, 0x0p+0, 0) +T(RN, -0x1.0c34b4p+3, -0x1.61bde2p+1, -0x1.0c34b4p+3, 0x0p+0, 0) +T(RN, -0x1.a206fp+2, 0x1.24528p+2, 0x1.a206fp+2, 0x0p+0, 0) +T(RN, 0x1.288bbcp+3, 0x1.33eddap+2, 0x1.288bbcp+3, 0x0p+0, 0) +T(RN, -0x1.9ccd8cp+2, 0x1.52fb12p-1, 0x1.9ccd8cp+2, 0x0p+0, 0) +T(RN, 0x1.f6f80ep+2, 0x1.ab3ff8p-5, 0x1.f6f80ep+2, 0x0p+0, 0) +T(RN, -0x1.95882cp-1, 0x1.eb4a2ep+2, 0x1.95882cp-1, 0x0p+0, 0) +T(RN, 0x1.3b3d62p-1, 0x1.018606p+1, 0x1.3b3d62p-1, 0x0p+0, 0) +T(RN, -0x1.1e159ep-1, 0x1.081bd4p-5, 0x1.1e159ep-1, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/copysignl.h b/test/musl/src/math/sanity/copysignl.h new file mode 100644 index 00000000..ef4a2712 --- /dev/null +++ b/test/musl/src/math/sanity/copysignl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, 0x1.22484b9ef31efd4p+2L, 0x1.02239f3c6a8f13dep+3L, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67782p+2L, -0x1.1c6a6cdce75e83acp+3L, -0x1.161868e18bc67782p+2L, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.61bde29e83f6cb16p+1L, -0x1.0c34b3e01e6e682cp+3L, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc3948p+2L, 0x1.24527f7b576abb6p+2L, 0x1.a206f0a19dcc3948p+2L, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.33edd910a3c00b7p+2L, 0x1.288bbb0d6a1e5bdap+3L, 0x0p+0, 0) +T(RN, -0x1.9ccd8be03f4949a2p+2L, 0x1.52fb12ef638a1222p-1L, 0x1.9ccd8be03f4949a2p+2L, 0x0p+0, 0) +T(RN, 0x1.f6f80ed2eab43b22p+2L, 0x1.ab3ff8575b21cf92p-5L, 0x1.f6f80ed2eab43b22p+2L, 0x0p+0, 0) +T(RN, -0x1.95882b433fad2dd4p-1L, 0x1.eb4a2e7ce06930dap+2L, 0x1.95882b433fad2dd4p-1L, 0x0p+0, 0) +T(RN, 0x1.3b3d617ae3c4a65p-1L, 0x1.01860611d75e1052p+1L, 0x1.3b3d617ae3c4a65p-1L, 0x0p+0, 0) +T(RN, -0x1.1e159e36313ee67cp-1L, 0x1.081bd34224212bp-5L, 0x1.1e159e36313ee67cp-1L, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/cos.h b/test/musl/src/math/sanity/cos.h new file mode 100644 index 00000000..0589da9d --- /dev/null +++ b/test/musl/src/math/sanity/cos.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -0x1.b0aa8f2c9baf6p-3, -0x1.c105d2p-4, INEXACT) +T(RN, 0x1.161868e18bc67p+2, -0x1.6f922aed88704p-2, -0x1.b8b8fap-4, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.01b4e00041423p-1, -0x1.5f1decp-6, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1.f0462a6686a9cp-1, -0x1.ea474ep-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, -0x1.f9a51be5829b7p-1, 0x1.f3c7cep-2, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.93da10e89d4d1p-1, 0x1.044604p-3, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, 0x1.d64199a5cb117p-1, -0x1.0b79e2p-2, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.b150bae7795b1p-1, -0x1.35d926p-2, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.6e164e427022bp-1, -0x1.5db4c2p-4, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, 0x1.8e83d35a366cp-1, 0x1.3c524p-2, INEXACT) diff --git a/test/musl/src/math/sanity/cosf.h b/test/musl/src/math/sanity/cosf.h new file mode 100644 index 00000000..0c948e1f --- /dev/null +++ b/test/musl/src/math/sanity/cosf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -0x1.b0aabep-3, 0x1.eee272p-2, INEXACT) +T(RN, 0x1.161868p+2, -0x1.6f9238p-2, 0x1.5c33e2p-5, INEXACT) +T(RN, -0x1.0c34b4p+3, -0x1.01b4e2p-1, -0x1.1be494p-3, INEXACT) +T(RN, -0x1.a206fp+2, 0x1.f0462cp-1, 0x1.6df7bcp-3, INEXACT) +T(RN, 0x1.288bbcp+3, -0x1.f9a51ep-1, 0x1.1c971cp-3, INEXACT) +T(RN, 0x1.52efdp-1, 0x1.93da12p-1, 0x1.322268p-2, INEXACT) +T(RN, -0x1.a05cc8p-2, 0x1.d6419ap-1, 0x1.f0a754p-3, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.b150bap-1, -0x1.ec3366p-3, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.6e164ep-1, -0x1.595b9cp-2, INEXACT) +T(RN, -0x1.5b86eap-1, 0x1.8e83d4p-1, 0x1.52f278p-3, INEXACT) diff --git a/test/musl/src/math/sanity/cosh.h b/test/musl/src/math/sanity/cosh.h new file mode 100644 index 00000000..ab878167 --- /dev/null +++ b/test/musl/src/math/sanity/cosh.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1.8e6157f6bdb25p+10, -0x1.8621dep-2, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 0x1.347e7668a3d5ep+5, -0x1.15bccp-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, 0x1.10d430fc1f19cp+11, 0x1.4efb7p-4, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1.57461afc088f3p+8, -0x1.b8424cp-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.4abc777af7c05p+12, -0x1.463edcp-3, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.3a2be3a146eaep+0, 0x1.dcca22p-3, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, 0x1.15747a0276553p+0, -0x1.95991p-2, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.29778b75916c3p+0, 0x1.828b24p-2, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.509ed6bb18b88p+0, 0x1.be54bap-2, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, 0x1.3d457919b5cfdp+0, 0x1.a1db98p-4, INEXACT) diff --git a/test/musl/src/math/sanity/coshf.h b/test/musl/src/math/sanity/coshf.h new file mode 100644 index 00000000..a8a4ae3d --- /dev/null +++ b/test/musl/src/math/sanity/coshf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 0x1.8e6162p+10, 0x1.0cb95ap-2, INEXACT) +T(RN, 0x1.161868p+2, 0x1.347e72p+5, -0x1.4e98fap-4, INEXACT) +T(RN, -0x1.0c34b4p+3, 0x1.10d432p+11, -0x1.7dfa9cp-6, INEXACT) +T(RN, -0x1.a206fp+2, 0x1.574618p+8, 0x1.9b44dcp-3, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.4abc82p+12, 0x1.739378p-2, INEXACT) +T(RN, 0x1.52efdp-1, 0x1.3a2be4p+0, 0x1.4fa408p-2, INEXACT) +T(RN, -0x1.a05cc8p-2, 0x1.15747ap+0, -0x1.4670cap-5, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.29778cp+0, 0x1.38d24p-3, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.509ed6p+0, -0x1.e8e164p-3, INEXACT) +T(RN, -0x1.5b86eap-1, 0x1.3d4578p+0, -0x1.d4e8cep-2, INEXACT) diff --git a/test/musl/src/math/sanity/coshl.h b/test/musl/src/math/sanity/coshl.h new file mode 100644 index 00000000..241b4897 --- /dev/null +++ b/test/musl/src/math/sanity/coshl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, 0x1.8e6157f6bdb2863ep+10L, 0x1.2b2af2p-2, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.347e7668a3d60884p+5L, -0x1.2cd438p-3, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, 0x1.10d430fc1f197bf4p+11L, 0x1.c6ed2ep-2, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, 0x1.57461afc088f12d8p+8L, 0x1.a380b6p-3, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.4abc777af7c027acp+12L, -0x1.78309ep-4, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.3a2be3a146eada44p+0L, -0x1.2f76aep-5, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, 0x1.15747a02765535e6p+0L, -0x1.93bbe6p-3, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.29778b75916c292ep+0L, -0x1.fa8a9cp-2, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.509ed6bb18b87b5ep+0L, -0x1.d61528p-2, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, 0x1.3d457919b5cfcf5ep+0L, -0x1.8169f4p-3, INEXACT) diff --git a/test/musl/src/math/sanity/cosl.h b/test/musl/src/math/sanity/cosl.h new file mode 100644 index 00000000..e501c7f4 --- /dev/null +++ b/test/musl/src/math/sanity/cosl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -0x1.b0aa8f2c9bb05028p-3L, 0x1.cb66d8p-2, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, -0x1.6f922aed886fce28p-2L, 0x1.857366p-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.01b4e0004141c36ep-1L, -0x1.496d12p-6, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, 0x1.f0462a6686a9d4e2p-1L, 0x1.882674p-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, -0x1.f9a51be5829b6d62p-1L, 0x1.cb35d4p-4, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.93da10e89d4d117p-1L, -0x1.25ac1p-3, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, 0x1.d64199a5cb117502p-1L, 0x1.c94d6p-5, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.b150bae7795b163ep-1L, 0x1.4c1268p-2, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.6e164e427022ad86p-1L, -0x1.83a52p-2, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, 0x1.8e83d35a366bf958p-1L, 0x1.88bbdp-2, INEXACT) diff --git a/test/musl/src/math/sanity/erf.h b/test/musl/src/math/sanity/erf.h new file mode 100644 index 00000000..2c0c19f3 --- /dev/null +++ b/test/musl/src/math/sanity/erf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -0x1p+0, -0x1.348d36p-46, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 0x1.fffffff922a8dp-1, 0x1.820cbap-3, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1p+0, -0x1.ae82dcp-54, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, -0x1p+0, -0x1.de0bfcp-14, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1p+0, 0x1p-76, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.4d38d900b92a6p-1, 0x1.6e4f14p-2, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, -0x1.bd28abf77e30fp-2, -0x1.e051e8p-3, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.2568d691ba679p-1, 0x1.9bd6d2p-5, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.73eb1974f96e5p-1, 0x1.75347cp-6, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -0x1.5368032e78bd7p-1, -0x1.b6a8ecp-3, INEXACT) diff --git a/test/musl/src/math/sanity/erfc.h b/test/musl/src/math/sanity/erfc.h new file mode 100644 index 00000000..a2b80718 --- /dev/null +++ b/test/musl/src/math/sanity/erfc.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1p+1, 0x1.348d36p-47, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 0x1.b755ccc1065d2p-31, -0x1.0a9bcep-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, 0x1p+1, 0x1.ae82d8p-55, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1p+1, 0x1.de0bfcp-15, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.0a6d5f0165357p-128, -0x1.c3a344p-2, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.658e4dfe8dab5p-2, 0x1.2361dap-2, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, 0x1.6f4a2afddf8c4p+0, 0x1.3c0a3ep-2, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.b52e52dc8b30ep-2, -0x1.9bd6d2p-4, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.1829cd160d236p-2, -0x1.75347cp-5, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, 0x1.a9b401973c5ebp+0, -0x1.9255c4p-2, INEXACT) diff --git a/test/musl/src/math/sanity/erfcf.h b/test/musl/src/math/sanity/erfcf.h new file mode 100644 index 00000000..136c9c5e --- /dev/null +++ b/test/musl/src/math/sanity/erfcf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 0x1p+1, 0x1.348cbep-76, INEXACT) +T(RN, 0x1.161868p+2, 0x1.b75602p-31, -0x1.47de08p-2, INEXACT) +T(RN, -0x1.0c34b4p+3, 0x1p+1, 0x1.ae82b8p-84, INEXACT) +T(RN, -0x1.a206fp+2, 0x1p+1, 0x1.de0c3ap-44, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.0a6cc8p-128, -0x1.f81426p-2, INEXACT|UNDERFLOW) +T(RN, 0x1.52efdp-1, 0x1.658e5p-2, 0x1.ac77ap-2, INEXACT) +T(RN, -0x1.a05cc8p-2, 0x1.6f4a2cp+0, 0x1.b2229p-2, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.b52e52p-2, 0x1.c9fa6cp-3, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.1829cep-2, 0x1.6cd4fcp-4, INEXACT) +T(RN, -0x1.5b86eap-1, 0x1.a9b402p+0, 0x1.2d6bcp-2, INEXACT) diff --git a/test/musl/src/math/sanity/erfcl.h b/test/musl/src/math/sanity/erfcl.h new file mode 100644 index 00000000..d844d4b8 --- /dev/null +++ b/test/musl/src/math/sanity/erfcl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, 0x1p+1L, 0x1.348d36p-36, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.b755ccc1065b58f8p-31L, -0x1.415d84p-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, 0x1p+1L, 0x1.ae82d8p-44, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, 0x1p+1L, 0x1.de0bfcp-4, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.0a6d5f016537fae6p-128L, 0x1.eb253p-3, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.658e4dfe8dab53acp-2L, 0x1.09154ap-4, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, 0x1.6f4a2afddf8c3a1p+0L, 0x1.efa48cp-3, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.b52e52dc8b30e5eep-2L, 0x1.4e2194p-6, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.1829cd160d2359ecp-2L, -0x1.7a6932p-7, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, 0x1.a9b401973c5eb742p+0L, -0x1.e69e3ep-3, INEXACT) diff --git a/test/musl/src/math/sanity/erff.h b/test/musl/src/math/sanity/erff.h new file mode 100644 index 00000000..f07873a9 --- /dev/null +++ b/test/musl/src/math/sanity/erff.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -0x1p+0, -0x1.348cbep-75, INEXACT) +T(RN, 0x1.161868p+2, 0x1p+0, 0x1.b75602p-8, INEXACT) +T(RN, -0x1.0c34b4p+3, -0x1p+0, -0x1.ae82bcp-83, INEXACT) +T(RN, -0x1.a206fp+2, -0x1p+0, -0x1.de0c3ap-43, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1p+0, 0x1p-105, INEXACT) +T(RN, 0x1.52efdp-1, 0x1.4d38d8p-1, -0x1.ac77ap-3, INEXACT) +T(RN, -0x1.a05cc8p-2, -0x1.bd28acp-2, 0x1.3775c2p-2, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.2568d8p-1, 0x1.8d8164p-2, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.73eb1ap-1, 0x1.d2656p-2, INEXACT) +T(RN, -0x1.5b86eap-1, -0x1.536802p-1, 0x1.a5287ep-2, INEXACT) diff --git a/test/musl/src/math/sanity/erfl.h b/test/musl/src/math/sanity/erfl.h new file mode 100644 index 00000000..c70cf61d --- /dev/null +++ b/test/musl/src/math/sanity/erfl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -0x1p+0L, -0x1.348d36p-35, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.fffffff922a8ccfcp-1L, 0x1.96d63ep-5, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1p+0L, -0x1.ae82dcp-43, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, -0x1p+0L, -0x1.de0bfcp-3, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1p+0L, 0x1p-65, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.4d38d900b92a562ap-1L, -0x1.09154ap-5, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, -0x1.bd28abf77e30e83ep-2L, 0x1.05b73ap-5, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.2568d691ba678d0ap-1L, 0x1.f58ef4p-2, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.73eb1974f96e530ap-1L, 0x1.7a6932p-8, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -0x1.5368032e78bd6e84p-1L, 0x1.e69e3ep-2, INEXACT) diff --git a/test/musl/src/math/sanity/exp.h b/test/musl/src/math/sanity/exp.h new file mode 100644 index 00000000..7cbdfcae --- /dev/null +++ b/test/musl/src/math/sanity/exp.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1.490327ea61235p-12, -0x1.0a2866p-2, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 0x1.34712ed238c04p+6, -0x1.c98d5p-6, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, 0x1.e06b1b6c18e64p-13, -0x1.ff797p-3, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1.7dd47f810e68cp-10, -0x1.ed3e1cp-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.4abc77496e07ep+13, 0x1.6a6ep-3, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.f04a9c10805p+0, -0x1.fc56bep-2, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, 0x1.54f1e0fd3ea0dp-1, -0x1.b28448p-4, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.c0f6266a6a547p+0, -0x1.91052p-2, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.1599b1d4a25fbp+1, -0x1.32cda4p-2, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, 0x1.03b5728a00229p-1, 0x1.e3f5dp-2, INEXACT) diff --git a/test/musl/src/math/sanity/exp10.h b/test/musl/src/math/sanity/exp10.h new file mode 100644 index 00000000..d7404ec7 --- /dev/null +++ b/test/musl/src/math/sanity/exp10.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1.26942adb7f515p-27, 0x1.88d854p-3, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 0x1.59fcb0f47787p+14, 0x1.99e856p-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, 0x1.1d86c8788e3e1p-28, -0x1.34c16ap-2, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1.3baa369d8a72dp-22, 0x1.34c3b4p-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.b8f5349770d9cp+30, 0x1.c9a6a6p-6, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.25e08f3cb71d1p+2, 0x1.bfa4aep-2, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, 0x1.91827b3e38b96p-2, -0x1.249072p-2, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.d2a0789db6a45p+1, 0x1.ee92eep-3, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.7c7afa6833a79p+2, -0x1.ed7454p-3, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, 0x1.ad1b8e7886717p-3, -0x1.2efb78p-2, INEXACT) diff --git a/test/musl/src/math/sanity/exp10f.h b/test/musl/src/math/sanity/exp10f.h new file mode 100644 index 00000000..ef5961f6 --- /dev/null +++ b/test/musl/src/math/sanity/exp10f.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 0x1.26941ap-27, -0x1.538efcp-2, INEXACT) +T(RN, 0x1.161868p+2, 0x1.59fca6p+14, 0x1.8d356cp-8, INEXACT) +T(RN, -0x1.0c34b4p+3, 0x1.1d86c6p-28, 0x1.6737b8p-5, INEXACT) +T(RN, -0x1.a206fp+2, 0x1.3baa3ep-22, 0x1.b7e808p-4, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.b8f552p+30, -0x1.511ae8p-2, INEXACT) +T(RN, 0x1.52efdp-1, 0x1.25e08ep+2, -0x1.68f136p-4, INEXACT) +T(RN, -0x1.a05cc8p-2, 0x1.91827ap-2, -0x1.465fc8p-2, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.d2a07ap+1, -0x1.23709cp-3, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.7c7afap+2, 0x1.37a83ep-2, INEXACT) +T(RN, -0x1.5b86eap-1, 0x1.ad1b9p-3, 0x1.1cb0b8p-2, INEXACT) diff --git a/test/musl/src/math/sanity/exp10l.h b/test/musl/src/math/sanity/exp10l.h new file mode 100644 index 00000000..fb51d82c --- /dev/null +++ b/test/musl/src/math/sanity/exp10l.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, 0x1.26942adb7f50faf6p-27L, 0x1.7b8a0ap-3, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.59fcb0f47787570ep+14L, 0x1.968ec4p-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, 0x1.1d86c8788e3eb5a8p-28L, 0x1.d8e33cp-4, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, 0x1.3baa369d8a73177ap-22L, -0x1.d17ac8p-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.b8f5349770d93becp+30L, -0x1.c9879ep-2, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.25e08f3cb71d018ap+2L, -0x1.5ea13ap-3, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, 0x1.91827b3e38b9685ap-2L, -0x1.a87268p-5, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.d2a0789db6a446ap+1L, -0x1.473902p-2, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.7c7afa6833a79d4p+2L, -0x1.75ae46p-2, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, 0x1.ad1b8e7886716f76p-3L, 0x1.dc0d9ep-2, INEXACT) diff --git a/test/musl/src/math/sanity/exp2.h b/test/musl/src/math/sanity/exp2.h new file mode 100644 index 00000000..327df627 --- /dev/null +++ b/test/musl/src/math/sanity/exp2.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1.e8d13c396f452p-9, 0x1.06779ap-3, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 0x1.4536746bb6f12p+4, 0x1.f79ad4p-6, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, 0x1.890ca0c00b9a2p-9, -0x1.3d71fep-2, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1.622d4b0ebc6c1p-7, -0x1.24f1dp-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.340ec7f3e607ep+9, -0x1.6bd9bp-4, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.950eef4bc5451p+0, -0x1.01d6dcp-3, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, 0x1.824056efc687cp-1, -0x1.f03634p-3, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.79dfa14ab121ep+0, 0x1.16408cp-2, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.b5cead2247372p+0, -0x1.50ae36p-6, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, 0x1.3fd8ba33216b9p-1, -0x1.3f71ap-2, INEXACT) diff --git a/test/musl/src/math/sanity/exp2f.h b/test/musl/src/math/sanity/exp2f.h new file mode 100644 index 00000000..142a3960 --- /dev/null +++ b/test/musl/src/math/sanity/exp2f.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 0x1.e8d134p-9, -0x1.147142p-4, INEXACT) +T(RN, 0x1.161868p+2, 0x1.453672p+4, 0x1.5d6736p-2, INEXACT) +T(RN, -0x1.0c34b4p+3, 0x1.890cap-9, 0x1.3d88dcp-3, INEXACT) +T(RN, -0x1.a206fp+2, 0x1.622d4ep-7, 0x1.0aa4cp-2, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.340ecep+9, -0x1.1a7c34p-3, INEXACT) +T(RN, 0x1.52efdp-1, 0x1.950eeep+0, -0x1.b62902p-2, INEXACT) +T(RN, -0x1.a05cc8p-2, 0x1.824056p-1, -0x1.85c212p-2, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.79dfa2p+0, 0x1.34b968p-3, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.b5ceacp+0, -0x1.906a1ep-2, INEXACT) +T(RN, -0x1.5b86eap-1, 0x1.3fd8bap-1, -0x1.ac1f22p-3, INEXACT) diff --git a/test/musl/src/math/sanity/exp2l.h b/test/musl/src/math/sanity/exp2l.h new file mode 100644 index 00000000..f56ad02f --- /dev/null +++ b/test/musl/src/math/sanity/exp2l.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, 0x1.e8d13c396f44f5p-9L, -0x1.7f8f9ep-2, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.4536746bb6f139f4p+4L, 0x1.fd05f8p-4, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, 0x1.890ca0c00b9a679cp-9L, 0x1.32bc68p-2, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, 0x1.622d4b0ebc6c2e5ap-7L, 0x1.fcc97ap-3, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.340ec7f3e607c5bep+9L, 0x1.4f6598p-2, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.950eef4bc5450eeap+0L, -0x1.79325cp-2, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, 0x1.824056efc687c4f8p-1L, -0x1.678fc4p-2, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.79dfa14ab121da5p+0L, 0x1.8ff506p-2, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.b5cead2247372396p+0L, 0x1.f27128p-3, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, 0x1.3fd8ba33216b93cep-1L, -0x1.5674aep-2, INEXACT) diff --git a/test/musl/src/math/sanity/expf.h b/test/musl/src/math/sanity/expf.h new file mode 100644 index 00000000..f7d6cfdf --- /dev/null +++ b/test/musl/src/math/sanity/expf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 0x1.49032p-12, -0x1.eeb008p-6, INEXACT) +T(RN, 0x1.161868p+2, 0x1.34712ap+6, -0x1.26727ap-2, INEXACT) +T(RN, -0x1.0c34b4p+3, 0x1.e06b1ap-13, 0x1.ca2558p-3, INEXACT) +T(RN, -0x1.a206fp+2, 0x1.7dd484p-10, 0x1.757324p-2, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.4abc82p+13, 0x1.d6a6e6p-2, INEXACT) +T(RN, 0x1.52efdp-1, 0x1.f04a9cp+0, 0x1.6d63d2p-2, INEXACT) +T(RN, -0x1.a05cc8p-2, 0x1.54f1ep-1, -0x1.882406p-2, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.c0f628p+0, 0x1.c63342p-2, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.1599b2p+1, 0x1.f70a14p-3, INEXACT) +T(RN, -0x1.5b86eap-1, 0x1.03b572p-1, -0x1.96f7bp-2, INEXACT) diff --git a/test/musl/src/math/sanity/expl.h b/test/musl/src/math/sanity/expl.h new file mode 100644 index 00000000..68ad3390 --- /dev/null +++ b/test/musl/src/math/sanity/expl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, 0x1.490327ea61232c66p-12L, 0x1.80562p-4, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.34712ed238c064a2p+6L, 0x1.6b4c44p-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, 0x1.e06b1b6c18e6b986p-13L, 0x1.b3121ep-2, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, 0x1.7dd47f810e68efcap-10L, -0x1.4ea098p-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.4abc77496e07b24ap+13L, -0x1.aa91d2p-2, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.f04a9c1080500278p+0L, 0x1.1eed6cp-3, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, 0x1.54f1e0fd3ea0d318p-1L, 0x1.1cffaep-2, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.c0f6266a6a5473f6p+0L, -0x1.a2dc02p-2, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.1599b1d4a25fb7c6p+1L, 0x1.e173d2p-3, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, 0x1.03b5728a0022870ep-1L, 0x1.d2ac78p-2, INEXACT) diff --git a/test/musl/src/math/sanity/expm1.h b/test/musl/src/math/sanity/expm1.h new file mode 100644 index 00000000..81c6f15a --- /dev/null +++ b/test/musl/src/math/sanity/expm1.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -0x1.ffd6df9b02b3ep-1, -0x1.1aa146p-2, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 0x1.30712ed238c04p+6, -0x1.c98d5p-6, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.ffe1f94e493e7p-1, 0x1.9bc01p-4, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, -0x1.ff4115c03f78dp-1, -0x1.18f6ap-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.4ab477496e07ep+13, 0x1.6a6ep-3, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.e095382100a01p-1, 0x1.d4a094p-8, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, -0x1.561c3e0582be6p-2, -0x1.b28448p-3, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.81ec4cd4d4a8fp-1, 0x1.bbeb8p-3, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.2b3363a944bf7p+0, 0x1.9a64b6p-2, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -0x1.f8951aebffbafp-2, -0x1.c0a2f2p-5, INEXACT) diff --git a/test/musl/src/math/sanity/expm1f.h b/test/musl/src/math/sanity/expm1f.h new file mode 100644 index 00000000..44952aa0 --- /dev/null +++ b/test/musl/src/math/sanity/expm1f.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -0x1.ffd6ep-1, -0x1.9007bap-3, INEXACT) +T(RN, 0x1.161868p+2, 0x1.30712ap+6, -0x1.26727ap-2, INEXACT) +T(RN, -0x1.0c34b4p+3, -0x1.ffe1fap-1, -0x1.6331aep-2, INEXACT) +T(RN, -0x1.a206fp+2, -0x1.ff4116p-1, -0x1.068a8cp-3, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.4ab482p+13, 0x1.d6a6e6p-2, INEXACT) +T(RN, 0x1.52efdp-1, 0x1.e09536p-1, -0x1.25385cp-2, INEXACT) +T(RN, -0x1.a05cc8p-2, -0x1.561c3ep-2, 0x1.df6feap-3, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.81ec4ep-1, -0x1.ce65eep-4, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.2b3364p+0, 0x1.f70a14p-2, INEXACT) +T(RN, -0x1.5b86eap-1, -0x1.f8951ap-2, 0x1.a4214p-3, INEXACT) diff --git a/test/musl/src/math/sanity/expm1l.h b/test/musl/src/math/sanity/expm1l.h new file mode 100644 index 00000000..d23ee4bb --- /dev/null +++ b/test/musl/src/math/sanity/expm1l.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -0x1.ffd6df9b02b3db9ap-1L, 0x1.cd1806p-3, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.30712ed238c064a2p+6L, 0x1.6b4c44p-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.ffe1f94e493e7194p-1L, 0x1.9eb662p-3, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, -0x1.ff4115c03f78cb88p-1L, 0x1.aac57ep-5, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.4ab477496e07b24ap+13L, -0x1.aa91d2p-2, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.e095382100a004fp-1L, 0x1.1eed6cp-2, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, -0x1.561c3e0582be59d2p-2L, -0x1.c600a2p-2, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.81ec4cd4d4a8e7eep-1L, 0x1.748ff6p-3, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.2b3363a944bf6f8cp+0L, 0x1.e173d2p-2, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -0x1.f8951aebffbaf1e6p-2L, -0x1.6a9c42p-4, INEXACT) diff --git a/test/musl/src/math/sanity/fabs.h b/test/musl/src/math/sanity/fabs.h new file mode 100644 index 00000000..880a53c3 --- /dev/null +++ b/test/musl/src/math/sanity/fabs.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1.02239f3c6a8f1p+3, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67p+2, 0x1.161868e18bc67p+2, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e7p+3, 0x1.0c34b3e01e6e7p+3, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1.a206f0a19dcc4p+2, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.288bbb0d6a1e6p+3, 0x0p+0, 0) +T(RN, 0x1.52efd0cd80497p-1, 0x1.52efd0cd80497p-1, 0x0p+0, 0) +T(RN, -0x1.a05cc754481d1p-2, 0x1.a05cc754481d1p-2, 0x0p+0, 0) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.1f9ef934745cbp-1, 0x0p+0, 0) +T(RN, 0x1.8c5db097f7442p-1, 0x1.8c5db097f7442p-1, 0x0p+0, 0) +T(RN, -0x1.5b86ea8118a0ep-1, 0x1.5b86ea8118a0ep-1, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/fabsf.h b/test/musl/src/math/sanity/fabsf.h new file mode 100644 index 00000000..a04ead79 --- /dev/null +++ b/test/musl/src/math/sanity/fabsf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 0x1.0223ap+3, 0x0p+0, 0) +T(RN, 0x1.161868p+2, 0x1.161868p+2, 0x0p+0, 0) +T(RN, -0x1.0c34b4p+3, 0x1.0c34b4p+3, 0x0p+0, 0) +T(RN, -0x1.a206fp+2, 0x1.a206fp+2, 0x0p+0, 0) +T(RN, 0x1.288bbcp+3, 0x1.288bbcp+3, 0x0p+0, 0) +T(RN, 0x1.52efdp-1, 0x1.52efdp-1, 0x0p+0, 0) +T(RN, -0x1.a05cc8p-2, 0x1.a05cc8p-2, 0x0p+0, 0) +T(RN, 0x1.1f9efap-1, 0x1.1f9efap-1, 0x0p+0, 0) +T(RN, 0x1.8c5dbp-1, 0x1.8c5dbp-1, 0x0p+0, 0) +T(RN, -0x1.5b86eap-1, 0x1.5b86eap-1, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/fabsl.h b/test/musl/src/math/sanity/fabsl.h new file mode 100644 index 00000000..200c4b10 --- /dev/null +++ b/test/musl/src/math/sanity/fabsl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, 0x1.02239f3c6a8f13dep+3L, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.161868e18bc67782p+2L, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e682cp+3L, 0x1.0c34b3e01e6e682cp+3L, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc3948p+2L, 0x1.a206f0a19dcc3948p+2L, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.288bbb0d6a1e5bdap+3L, 0x0p+0, 0) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.52efd0cd80496a5ap-1L, 0x0p+0, 0) +T(RN, -0x1.a05cc754481d0bdp-2L, 0x1.a05cc754481d0bdp-2L, 0x0p+0, 0) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.1f9ef934745cad6p-1L, 0x0p+0, 0) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.8c5db097f744257ep-1L, 0x0p+0, 0) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, 0x1.5b86ea8118a0e2bcp-1L, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/fdim.h b/test/musl/src/math/sanity/fdim.h new file mode 100644 index 00000000..0501c298 --- /dev/null +++ b/test/musl/src/math/sanity/fdim.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1.22484b9ef31fp+2, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67p+2, -0x1.1c6a6cdce75e8p+3, 0x1.a776a14dad41cp+3, 0x1p-1, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.61bde29e83f6dp+1, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1.24527f7b576acp+2, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.33edd910a3c01p+2, 0x1.1d299d0a307cbp+2, 0x0p+0, 0) +T(RN, -0x1.9ccd8be03f495p+2, 0x1.52fb12ef638a1p-1, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.f6f80ed2eab44p+2, 0x1.ab3ff8575b21dp-5, 0x1.f3a18ee23bfep+2, 0x1.dp-3, INEXACT) +T(RN, -0x1.95882b433fad3p-1, 0x1.eb4a2e7ce0693p+2, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.3b3d617ae3c4ap-1, 0x1.01860611d75e1p+1, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1.1e159e36313eep-1, 0x1.081bd34224213p-5, 0x0p+0, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/fdimf.h b/test/musl/src/math/sanity/fdimf.h new file mode 100644 index 00000000..ce21b1d3 --- /dev/null +++ b/test/musl/src/math/sanity/fdimf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 0x1.22484cp+2, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.161868p+2, -0x1.1c6a6cp+3, 0x1.a776ap+3, 0x0p+0, 0) +T(RN, -0x1.0c34b4p+3, -0x1.61bde2p+1, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1.a206fp+2, 0x1.24528p+2, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.288bbcp+3, 0x1.33eddap+2, 0x1.1d299ep+2, 0x0p+0, 0) +T(RN, -0x1.9ccd8cp+2, 0x1.52fb12p-1, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.f6f80ep+2, 0x1.ab3ff8p-5, 0x1.f3a18ep+2, -0x1p-5, INEXACT) +T(RN, -0x1.95882cp-1, 0x1.eb4a2ep+2, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.3b3d62p-1, 0x1.018606p+1, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1.1e159ep-1, 0x1.081bd4p-5, 0x0p+0, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/fdiml.h b/test/musl/src/math/sanity/fdiml.h new file mode 100644 index 00000000..35e3f18a --- /dev/null +++ b/test/musl/src/math/sanity/fdiml.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, 0x1.22484b9ef31efd4p+2L, 0x0p+0L, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67782p+2L, -0x1.1c6a6cdce75e83acp+3L, 0x1.a776a14dad41bf6cp+3L, -0x1p-1, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.61bde29e83f6cb16p+1L, 0x0p+0L, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc3948p+2L, 0x1.24527f7b576abb6p+2L, 0x0p+0L, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.33edd910a3c00b7p+2L, 0x1.1d299d0a307cac44p+2L, 0x0p+0, 0) +T(RN, -0x1.9ccd8be03f4949a2p+2L, 0x1.52fb12ef638a1222p-1L, 0x0p+0L, 0x0p+0, 0) +T(RN, 0x1.f6f80ed2eab43b22p+2L, 0x1.ab3ff8575b21cf92p-5L, 0x1.f3a18ee23bfdf782p+2L, -0x1.b8p-2, INEXACT) +T(RN, -0x1.95882b433fad2dd4p-1L, 0x1.eb4a2e7ce06930dap+2L, 0x0p+0L, 0x0p+0, 0) +T(RN, 0x1.3b3d617ae3c4a65p-1L, 0x1.01860611d75e1052p+1L, 0x0p+0L, 0x0p+0, 0) +T(RN, -0x1.1e159e36313ee67cp-1L, 0x1.081bd34224212bp-5L, 0x0p+0L, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/floor.h b/test/musl/src/math/sanity/floor.h new file mode 100644 index 00000000..125d8b24 --- /dev/null +++ b/test/musl/src/math/sanity/floor.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -0x1.2p+3, 0x0p+0, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 0x1p+2, 0x0p+0, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.2p+3, 0x0p+0, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, -0x1.cp+2, 0x0p+0, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.2p+3, 0x0p+0, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, -0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -0x1p+0, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/sanity/floorf.h b/test/musl/src/math/sanity/floorf.h new file mode 100644 index 00000000..1947d4f9 --- /dev/null +++ b/test/musl/src/math/sanity/floorf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -0x1.2p+3, 0x0p+0, INEXACT) +T(RN, 0x1.161868p+2, 0x1p+2, 0x0p+0, INEXACT) +T(RN, -0x1.0c34b4p+3, -0x1.2p+3, 0x0p+0, INEXACT) +T(RN, -0x1.a206fp+2, -0x1.cp+2, 0x0p+0, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.2p+3, 0x0p+0, INEXACT) +T(RN, 0x1.52efdp-1, 0x0p+0, 0x0p+0, INEXACT) +T(RN, -0x1.a05cc8p-2, -0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.1f9efap-1, 0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x0p+0, 0x0p+0, INEXACT) +T(RN, -0x1.5b86eap-1, -0x1p+0, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/sanity/floorl.h b/test/musl/src/math/sanity/floorl.h new file mode 100644 index 00000000..fa3f5ea7 --- /dev/null +++ b/test/musl/src/math/sanity/floorl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -0x1.2p+3L, 0x0p+0, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 0x1p+2L, 0x0p+0, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.2p+3L, 0x0p+0, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, -0x1.cp+2L, 0x0p+0, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.2p+3L, 0x0p+0, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x0p+0L, 0x0p+0, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, -0x1p+0L, 0x0p+0, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x0p+0L, 0x0p+0, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x0p+0L, 0x0p+0, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -0x1p+0L, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/sanity/fma.h b/test/musl/src/math/sanity/fma.h new file mode 100644 index 00000000..0b9831d4 --- /dev/null +++ b/test/musl/src/math/sanity/fma.h @@ -0,0 +1,5 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1.22484b9ef31fp+2, 0x1.52fb12ef638a1p-1, -0x1.1f69545c32effp+5, -0x1.759846p-3, INEXACT) +T(RN, 0x1.161868e18bc67p+2, -0x1.1c6a6cdce75e8p+3, 0x1.ab3ff8575b21dp-5, -0x1.348be0b9d32d3p+5, 0x1.b43916p-3, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.61bde29e83f6dp+1, 0x1.eb4a2e7ce0693p+2, 0x1.ed6e27fca81b7p+4, -0x1.f11488p-2, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1.24527f7b576acp+2, -0x1.95882b433fad3p-1, -0x1.ea02e2365f336p+4, 0x1.41da3ap-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.33edd910a3c01p+2, -0x1.1e159e36313eep-1, 0x1.603abfa620e23p+5, -0x1.7be8ccp-3, INEXACT) diff --git a/test/musl/src/math/sanity/fmaf.h b/test/musl/src/math/sanity/fmaf.h new file mode 100644 index 00000000..a402ac38 --- /dev/null +++ b/test/musl/src/math/sanity/fmaf.h @@ -0,0 +1,5 @@ +T(RN, -0x1.0223ap+3, 0x1.22484cp+2, 0x1.52fb12p-1, -0x1.1f6956p+5, -0x1.81b2p-3, INEXACT) +T(RN, 0x1.161868p+2, -0x1.1c6a6cp+3, 0x1.ab3ff8p-5, -0x1.348bdep+5, 0x1.9eb7cp-2, INEXACT) +T(RN, -0x1.0c34b4p+3, -0x1.61bde2p+1, 0x1.eb4a2ep+2, 0x1.ed6e28p+4, 0x1.392a3p-2, INEXACT) +T(RN, -0x1.a206fp+2, 0x1.24528p+2, -0x1.95882cp-1, -0x1.ea02e2p+4, 0x1.716p-3, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.33eddap+2, -0x1.1e159ep-1, 0x1.603ac2p+5, 0x1.ff5e8p-5, INEXACT) diff --git a/test/musl/src/math/sanity/fmal.h b/test/musl/src/math/sanity/fmal.h new file mode 100644 index 00000000..4860f95a --- /dev/null +++ b/test/musl/src/math/sanity/fmal.h @@ -0,0 +1,5 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, 0x1.22484b9ef31efd4p+2L, 0x1.52fb12ef638a1222p-1L, -0x1.1f69545c32efeea8p+5L, 0x1.f2223cp-2, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, -0x1.1c6a6cdce75e83acp+3L, 0x1.ab3ff8575b21cf92p-5L, -0x1.348be0b9d32d3fbep+5L, -0x1.f35e54p-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.61bde29e83f6cb16p+1L, 0x1.eb4a2e7ce06930dap+2L, 0x1.ed6e27fca81b6804p+4L, 0x1.2d3bc8p-3, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, 0x1.24527f7b576abb6p+2L, -0x1.95882b433fad2dd4p-1L, -0x1.ea02e2365f3355bcp+4L, 0x1.3d0c8cp-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.33edd910a3c00b7p+2L, -0x1.1e159e36313ee67cp-1L, 0x1.603abfa620e22898p+5L, 0x1.114048p-2, INEXACT) diff --git a/test/musl/src/math/sanity/fmax.h b/test/musl/src/math/sanity/fmax.h new file mode 100644 index 00000000..193cf192 --- /dev/null +++ b/test/musl/src/math/sanity/fmax.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1.22484b9ef31fp+2, 0x1.22484b9ef31fp+2, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67p+2, -0x1.1c6a6cdce75e8p+3, 0x1.161868e18bc67p+2, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.61bde29e83f6dp+1, -0x1.61bde29e83f6dp+1, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1.24527f7b576acp+2, 0x1.24527f7b576acp+2, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.33edd910a3c01p+2, 0x1.288bbb0d6a1e6p+3, 0x0p+0, 0) +T(RN, -0x1.9ccd8be03f495p+2, 0x1.52fb12ef638a1p-1, 0x1.52fb12ef638a1p-1, 0x0p+0, 0) +T(RN, 0x1.f6f80ed2eab44p+2, 0x1.ab3ff8575b21dp-5, 0x1.f6f80ed2eab44p+2, 0x0p+0, 0) +T(RN, -0x1.95882b433fad3p-1, 0x1.eb4a2e7ce0693p+2, 0x1.eb4a2e7ce0693p+2, 0x0p+0, 0) +T(RN, 0x1.3b3d617ae3c4ap-1, 0x1.01860611d75e1p+1, 0x1.01860611d75e1p+1, 0x0p+0, 0) +T(RN, -0x1.1e159e36313eep-1, 0x1.081bd34224213p-5, 0x1.081bd34224213p-5, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/fmaxf.h b/test/musl/src/math/sanity/fmaxf.h new file mode 100644 index 00000000..8c559357 --- /dev/null +++ b/test/musl/src/math/sanity/fmaxf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 0x1.22484cp+2, 0x1.22484cp+2, 0x0p+0, 0) +T(RN, 0x1.161868p+2, -0x1.1c6a6cp+3, 0x1.161868p+2, 0x0p+0, 0) +T(RN, -0x1.0c34b4p+3, -0x1.61bde2p+1, -0x1.61bde2p+1, 0x0p+0, 0) +T(RN, -0x1.a206fp+2, 0x1.24528p+2, 0x1.24528p+2, 0x0p+0, 0) +T(RN, 0x1.288bbcp+3, 0x1.33eddap+2, 0x1.288bbcp+3, 0x0p+0, 0) +T(RN, -0x1.9ccd8cp+2, 0x1.52fb12p-1, 0x1.52fb12p-1, 0x0p+0, 0) +T(RN, 0x1.f6f80ep+2, 0x1.ab3ff8p-5, 0x1.f6f80ep+2, 0x0p+0, 0) +T(RN, -0x1.95882cp-1, 0x1.eb4a2ep+2, 0x1.eb4a2ep+2, 0x0p+0, 0) +T(RN, 0x1.3b3d62p-1, 0x1.018606p+1, 0x1.018606p+1, 0x0p+0, 0) +T(RN, -0x1.1e159ep-1, 0x1.081bd4p-5, 0x1.081bd4p-5, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/fmaxl.h b/test/musl/src/math/sanity/fmaxl.h new file mode 100644 index 00000000..4e176ce8 --- /dev/null +++ b/test/musl/src/math/sanity/fmaxl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, 0x1.22484b9ef31efd4p+2L, 0x1.22484b9ef31efd4p+2L, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67782p+2L, -0x1.1c6a6cdce75e83acp+3L, 0x1.161868e18bc67782p+2L, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.61bde29e83f6cb16p+1L, -0x1.61bde29e83f6cb16p+1L, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc3948p+2L, 0x1.24527f7b576abb6p+2L, 0x1.24527f7b576abb6p+2L, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.33edd910a3c00b7p+2L, 0x1.288bbb0d6a1e5bdap+3L, 0x0p+0, 0) +T(RN, -0x1.9ccd8be03f4949a2p+2L, 0x1.52fb12ef638a1222p-1L, 0x1.52fb12ef638a1222p-1L, 0x0p+0, 0) +T(RN, 0x1.f6f80ed2eab43b22p+2L, 0x1.ab3ff8575b21cf92p-5L, 0x1.f6f80ed2eab43b22p+2L, 0x0p+0, 0) +T(RN, -0x1.95882b433fad2dd4p-1L, 0x1.eb4a2e7ce06930dap+2L, 0x1.eb4a2e7ce06930dap+2L, 0x0p+0, 0) +T(RN, 0x1.3b3d617ae3c4a65p-1L, 0x1.01860611d75e1052p+1L, 0x1.01860611d75e1052p+1L, 0x0p+0, 0) +T(RN, -0x1.1e159e36313ee67cp-1L, 0x1.081bd34224212bp-5L, 0x1.081bd34224212bp-5L, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/fmin.h b/test/musl/src/math/sanity/fmin.h new file mode 100644 index 00000000..fd2faaa0 --- /dev/null +++ b/test/musl/src/math/sanity/fmin.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1.22484b9ef31fp+2, -0x1.02239f3c6a8f1p+3, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67p+2, -0x1.1c6a6cdce75e8p+3, -0x1.1c6a6cdce75e8p+3, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.61bde29e83f6dp+1, -0x1.0c34b3e01e6e7p+3, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1.24527f7b576acp+2, -0x1.a206f0a19dcc4p+2, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.33edd910a3c01p+2, 0x1.33edd910a3c01p+2, 0x0p+0, 0) +T(RN, -0x1.9ccd8be03f495p+2, 0x1.52fb12ef638a1p-1, -0x1.9ccd8be03f495p+2, 0x0p+0, 0) +T(RN, 0x1.f6f80ed2eab44p+2, 0x1.ab3ff8575b21dp-5, 0x1.ab3ff8575b21dp-5, 0x0p+0, 0) +T(RN, -0x1.95882b433fad3p-1, 0x1.eb4a2e7ce0693p+2, -0x1.95882b433fad3p-1, 0x0p+0, 0) +T(RN, 0x1.3b3d617ae3c4ap-1, 0x1.01860611d75e1p+1, 0x1.3b3d617ae3c4ap-1, 0x0p+0, 0) +T(RN, -0x1.1e159e36313eep-1, 0x1.081bd34224213p-5, -0x1.1e159e36313eep-1, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/fminf.h b/test/musl/src/math/sanity/fminf.h new file mode 100644 index 00000000..a4b78b26 --- /dev/null +++ b/test/musl/src/math/sanity/fminf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 0x1.22484cp+2, -0x1.0223ap+3, 0x0p+0, 0) +T(RN, 0x1.161868p+2, -0x1.1c6a6cp+3, -0x1.1c6a6cp+3, 0x0p+0, 0) +T(RN, -0x1.0c34b4p+3, -0x1.61bde2p+1, -0x1.0c34b4p+3, 0x0p+0, 0) +T(RN, -0x1.a206fp+2, 0x1.24528p+2, -0x1.a206fp+2, 0x0p+0, 0) +T(RN, 0x1.288bbcp+3, 0x1.33eddap+2, 0x1.33eddap+2, 0x0p+0, 0) +T(RN, -0x1.9ccd8cp+2, 0x1.52fb12p-1, -0x1.9ccd8cp+2, 0x0p+0, 0) +T(RN, 0x1.f6f80ep+2, 0x1.ab3ff8p-5, 0x1.ab3ff8p-5, 0x0p+0, 0) +T(RN, -0x1.95882cp-1, 0x1.eb4a2ep+2, -0x1.95882cp-1, 0x0p+0, 0) +T(RN, 0x1.3b3d62p-1, 0x1.018606p+1, 0x1.3b3d62p-1, 0x0p+0, 0) +T(RN, -0x1.1e159ep-1, 0x1.081bd4p-5, -0x1.1e159ep-1, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/fminl.h b/test/musl/src/math/sanity/fminl.h new file mode 100644 index 00000000..e81ac95f --- /dev/null +++ b/test/musl/src/math/sanity/fminl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, 0x1.22484b9ef31efd4p+2L, -0x1.02239f3c6a8f13dep+3L, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67782p+2L, -0x1.1c6a6cdce75e83acp+3L, -0x1.1c6a6cdce75e83acp+3L, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.61bde29e83f6cb16p+1L, -0x1.0c34b3e01e6e682cp+3L, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc3948p+2L, 0x1.24527f7b576abb6p+2L, -0x1.a206f0a19dcc3948p+2L, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.33edd910a3c00b7p+2L, 0x1.33edd910a3c00b7p+2L, 0x0p+0, 0) +T(RN, -0x1.9ccd8be03f4949a2p+2L, 0x1.52fb12ef638a1222p-1L, -0x1.9ccd8be03f4949a2p+2L, 0x0p+0, 0) +T(RN, 0x1.f6f80ed2eab43b22p+2L, 0x1.ab3ff8575b21cf92p-5L, 0x1.ab3ff8575b21cf92p-5L, 0x0p+0, 0) +T(RN, -0x1.95882b433fad2dd4p-1L, 0x1.eb4a2e7ce06930dap+2L, -0x1.95882b433fad2dd4p-1L, 0x0p+0, 0) +T(RN, 0x1.3b3d617ae3c4a65p-1L, 0x1.01860611d75e1052p+1L, 0x1.3b3d617ae3c4a65p-1L, 0x0p+0, 0) +T(RN, -0x1.1e159e36313ee67cp-1L, 0x1.081bd34224212bp-5L, -0x1.1e159e36313ee67cp-1L, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/fmod.h b/test/musl/src/math/sanity/fmod.h new file mode 100644 index 00000000..56319aa8 --- /dev/null +++ b/test/musl/src/math/sanity/fmod.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1.22484b9ef31fp+2, -0x1.c3fde5b3c3fe4p+1, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67p+2, -0x1.1c6a6cdce75e8p+3, 0x1.161868e18bc67p+2, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.61bde29e83f6dp+1, -0x1.7324f49dbaaap-4, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1.24527f7b576acp+2, -0x1.f6d1c4991986p+0, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.33edd910a3c01p+2, 0x1.1d299d0a307cbp+2, 0x0p+0, 0) +T(RN, -0x1.9ccd8be03f495p+2, 0x1.52fb12ef638a1p-1, -0x1.f731692ef4dfep-2, 0x0p+0, 0) +T(RN, 0x1.f6f80ed2eab44p+2, 0x1.ab3ff8575b21dp-5, 0x1.248be645f4502p-5, 0x0p+0, 0) +T(RN, -0x1.95882b433fad3p-1, 0x1.eb4a2e7ce0693p+2, -0x1.95882b433fad3p-1, 0x0p+0, 0) +T(RN, 0x1.3b3d617ae3c4ap-1, 0x1.01860611d75e1p+1, 0x1.3b3d617ae3c4ap-1, 0x0p+0, 0) +T(RN, -0x1.1e159e36313eep-1, 0x1.081bd34224213p-5, -0x1.5e036ffab6e74p-7, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/fmodf.h b/test/musl/src/math/sanity/fmodf.h new file mode 100644 index 00000000..eb4c19e0 --- /dev/null +++ b/test/musl/src/math/sanity/fmodf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 0x1.22484cp+2, -0x1.c3fde8p+1, 0x0p+0, 0) +T(RN, 0x1.161868p+2, -0x1.1c6a6cp+3, 0x1.161868p+2, 0x0p+0, 0) +T(RN, -0x1.0c34b4p+3, -0x1.61bde2p+1, -0x1.73254p-4, 0x0p+0, 0) +T(RN, -0x1.a206fp+2, 0x1.24528p+2, -0x1.f6d1cp+0, 0x0p+0, 0) +T(RN, 0x1.288bbcp+3, 0x1.33eddap+2, 0x1.1d299ep+2, 0x0p+0, 0) +T(RN, -0x1.9ccd8cp+2, 0x1.52fb12p-1, -0x1.f7317cp-2, 0x0p+0, 0) +T(RN, 0x1.f6f80ep+2, 0x1.ab3ff8p-5, 0x1.248bbp-5, 0x0p+0, 0) +T(RN, -0x1.95882cp-1, 0x1.eb4a2ep+2, -0x1.95882cp-1, 0x0p+0, 0) +T(RN, 0x1.3b3d62p-1, 0x1.018606p+1, 0x1.3b3d62p-1, 0x0p+0, 0) +T(RN, -0x1.1e159ep-1, 0x1.081bd4p-5, -0x1.5e033p-7, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/fmodl.h b/test/musl/src/math/sanity/fmodl.h new file mode 100644 index 00000000..2a08f5d4 --- /dev/null +++ b/test/musl/src/math/sanity/fmodl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, 0x1.22484b9ef31efd4p+2L, -0x1.c3fde5b3c3fe54f8p+1L, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67782p+2L, -0x1.1c6a6cdce75e83acp+3L, 0x1.161868e18bc67782p+2L, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.61bde29e83f6cb16p+1L, -0x1.7324f49dbaa7edcp-4L, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc3948p+2L, 0x1.24527f7b576abb6p+2L, -0x1.f6d1c4991985f7ap+0L, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.33edd910a3c00b7p+2L, 0x1.1d299d0a307cac44p+2L, 0x0p+0, 0) +T(RN, -0x1.9ccd8be03f4949a2p+2L, 0x1.52fb12ef638a1222p-1L, -0x1.f731692ef4df53bcp-2L, 0x0p+0, 0) +T(RN, 0x1.f6f80ed2eab43b22p+2L, 0x1.ab3ff8575b21cf92p-5L, 0x1.248be645f44df174p-5L, 0x0p+0, 0) +T(RN, -0x1.95882b433fad2dd4p-1L, 0x1.eb4a2e7ce06930dap+2L, -0x1.95882b433fad2dd4p-1L, 0x0p+0, 0) +T(RN, 0x1.3b3d617ae3c4a65p-1L, 0x1.01860611d75e1052p+1L, 0x1.3b3d617ae3c4a65p-1L, 0x0p+0, 0) +T(RN, -0x1.1e159e36313ee67cp-1L, 0x1.081bd34224212bp-5L, -0x1.5e036ffab6ea33p-7L, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/frexp.h b/test/musl/src/math/sanity/frexp.h new file mode 100644 index 00000000..8c1f9942 --- /dev/null +++ b/test/musl/src/math/sanity/frexp.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -0x1.02239f3c6a8f1p-1, 0x0p+0, 4, 0) +T(RN, 0x1.161868e18bc67p+2, 0x1.161868e18bc67p-1, 0x0p+0, 3, 0) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.0c34b3e01e6e7p-1, 0x0p+0, 4, 0) +T(RN, -0x1.a206f0a19dcc4p+2, -0x1.a206f0a19dcc4p-1, 0x0p+0, 3, 0) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.288bbb0d6a1e6p-1, 0x0p+0, 4, 0) +T(RN, 0x1.52efd0cd80497p-1, 0x1.52efd0cd80497p-1, 0x0p+0, 0, 0) +T(RN, -0x1.a05cc754481d1p-2, -0x1.a05cc754481d1p-1, 0x0p+0, -1, 0) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.1f9ef934745cbp-1, 0x0p+0, 0, 0) +T(RN, 0x1.8c5db097f7442p-1, 0x1.8c5db097f7442p-1, 0x0p+0, 0, 0) +T(RN, -0x1.5b86ea8118a0ep-1, -0x1.5b86ea8118a0ep-1, 0x0p+0, 0, 0) diff --git a/test/musl/src/math/sanity/frexpf.h b/test/musl/src/math/sanity/frexpf.h new file mode 100644 index 00000000..f264504e --- /dev/null +++ b/test/musl/src/math/sanity/frexpf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -0x1.0223ap-1, 0x0p+0, 4, 0) +T(RN, 0x1.161868p+2, 0x1.161868p-1, 0x0p+0, 3, 0) +T(RN, -0x1.0c34b4p+3, -0x1.0c34b4p-1, 0x0p+0, 4, 0) +T(RN, -0x1.a206fp+2, -0x1.a206fp-1, 0x0p+0, 3, 0) +T(RN, 0x1.288bbcp+3, 0x1.288bbcp-1, 0x0p+0, 4, 0) +T(RN, 0x1.52efdp-1, 0x1.52efdp-1, 0x0p+0, 0, 0) +T(RN, -0x1.a05cc8p-2, -0x1.a05cc8p-1, 0x0p+0, -1, 0) +T(RN, 0x1.1f9efap-1, 0x1.1f9efap-1, 0x0p+0, 0, 0) +T(RN, 0x1.8c5dbp-1, 0x1.8c5dbp-1, 0x0p+0, 0, 0) +T(RN, -0x1.5b86eap-1, -0x1.5b86eap-1, 0x0p+0, 0, 0) diff --git a/test/musl/src/math/sanity/frexpl.h b/test/musl/src/math/sanity/frexpl.h new file mode 100644 index 00000000..76e2dd42 --- /dev/null +++ b/test/musl/src/math/sanity/frexpl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -0x1.02239f3c6a8f13dep-1L, 0x0p+0, 4, 0) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.161868e18bc67782p-1L, 0x0p+0, 3, 0) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.0c34b3e01e6e682cp-1L, 0x0p+0, 4, 0) +T(RN, -0x1.a206f0a19dcc3948p+2L, -0x1.a206f0a19dcc3948p-1L, 0x0p+0, 3, 0) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.288bbb0d6a1e5bdap-1L, 0x0p+0, 4, 0) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.52efd0cd80496a5ap-1L, 0x0p+0, 0, 0) +T(RN, -0x1.a05cc754481d0bdp-2L, -0x1.a05cc754481d0bdp-1L, 0x0p+0, -1, 0) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.1f9ef934745cad6p-1L, 0x0p+0, 0, 0) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.8c5db097f744257ep-1L, 0x0p+0, 0, 0) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -0x1.5b86ea8118a0e2bcp-1L, 0x0p+0, 0, 0) diff --git a/test/musl/src/math/sanity/hypot.h b/test/musl/src/math/sanity/hypot.h new file mode 100644 index 00000000..6f97ed0f --- /dev/null +++ b/test/musl/src/math/sanity/hypot.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1.22484b9ef31fp+2, 0x1.282516b1a730bp+3, -0x1.3f5f42p-2, INEXACT) +T(RN, 0x1.161868e18bc67p+2, -0x1.1c6a6cdce75e8p+3, 0x1.3c95f61003181p+3, 0x1.d66464p-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.61bde29e83f6dp+1, 0x1.1a68df50a9a2p+3, -0x1.5c84fp-3, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1.24527f7b576acp+2, 0x1.fe18d615aea7ap+2, -0x1.454d74p-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.33edd910a3c01p+2, 0x1.4e21e97aa6821p+3, -0x1.13d3fcp-2, INEXACT) +T(RN, -0x1.9ccd8be03f495p+2, 0x1.52fb12ef638a1p-1, 0x1.9ef8ceebc1a65p+2, 0x1.6cbccep-2, INEXACT) +T(RN, 0x1.f6f80ed2eab44p+2, 0x1.ab3ff8575b21dp-5, 0x1.f6fae4acf638bp+2, 0x1.498254p-4, INEXACT) +T(RN, -0x1.95882b433fad3p-1, 0x1.eb4a2e7ce0693p+2, 0x1.ede5e57cd653fp+2, 0x1.a8305p-5, INEXACT) +T(RN, 0x1.3b3d617ae3c4ap-1, 0x1.01860611d75e1p+1, 0x1.0d50129a4fdc1p+1, -0x1.78075ep-4, INEXACT) +T(RN, -0x1.1e159e36313eep-1, 0x1.081bd34224213p-5, 0x1.1e8f6d5eca9f6p-1, 0x1.1b5268p-3, INEXACT) diff --git a/test/musl/src/math/sanity/hypotf.h b/test/musl/src/math/sanity/hypotf.h new file mode 100644 index 00000000..9f8486b6 --- /dev/null +++ b/test/musl/src/math/sanity/hypotf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 0x1.22484cp+2, 0x1.282518p+3, 0x1.182986p-2, INEXACT) +T(RN, 0x1.161868p+2, -0x1.1c6a6cp+3, 0x1.3c95f6p+3, 0x1.cff37p-2, INEXACT) +T(RN, -0x1.0c34b4p+3, -0x1.61bde2p+1, 0x1.1a68ep+3, 0x1.3af04cp-2, INEXACT) +T(RN, -0x1.a206fp+2, 0x1.24528p+2, 0x1.fe18d6p+2, 0x1.15ec3ap-4, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.33eddap+2, 0x1.4e21eap+3, -0x1.12307cp-2, INEXACT) +T(RN, -0x1.9ccd8cp+2, 0x1.52fb12p-1, 0x1.9ef8dp+2, 0x1.ef6ca8p-2, INEXACT) +T(RN, 0x1.f6f80ep+2, 0x1.ab3ff8p-5, 0x1.f6fae4p+2, 0x1.2fa3ap-4, INEXACT) +T(RN, -0x1.95882cp-1, 0x1.eb4a2ep+2, 0x1.ede5e6p+2, 0x1.f9eaacp-2, INEXACT) +T(RN, 0x1.3b3d62p-1, 0x1.018606p+1, 0x1.0d5012p+1, -0x1.25fac8p-2, INEXACT) +T(RN, -0x1.1e159ep-1, 0x1.081bd4p-5, 0x1.1e8f6ep-1, 0x1.ad4136p-2, INEXACT) diff --git a/test/musl/src/math/sanity/hypotl.h b/test/musl/src/math/sanity/hypotl.h new file mode 100644 index 00000000..60e3868a --- /dev/null +++ b/test/musl/src/math/sanity/hypotl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, 0x1.22484b9ef31efd4p+2L, 0x1.282516b1a730b7bp+3L, 0x1.43c298p-5, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, -0x1.1c6a6cdce75e83acp+3L, 0x1.3c95f61003180d98p+3L, -0x1.fcbf22p-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.61bde29e83f6cb16p+1L, 0x1.1a68df50a9a1fae8p+3L, 0x1.4f327p-2, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, 0x1.24527f7b576abb6p+2L, 0x1.fe18d615aea79ceep+2L, 0x1.b614b2p-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.33edd910a3c00b7p+2L, 0x1.4e21e97aa6820f94p+3L, 0x1.4b99e8p-3, INEXACT) +T(RN, -0x1.9ccd8be03f4949a2p+2L, 0x1.52fb12ef638a1222p-1L, 0x1.9ef8ceebc1a643fep+2L, -0x1.13cf3p-2, INEXACT) +T(RN, 0x1.f6f80ed2eab43b22p+2L, 0x1.ab3ff8575b21cf92p-5L, 0x1.f6fae4acf638a9d8p+2L, -0x1.0677bp-2, INEXACT) +T(RN, -0x1.95882b433fad2dd4p-1L, 0x1.eb4a2e7ce06930dap+2L, 0x1.ede5e57cd653effep+2L, 0x1.83dd76p-3, INEXACT) +T(RN, 0x1.3b3d617ae3c4a65p-1L, 0x1.01860611d75e1052p+1L, 0x1.0d50129a4fdc123cp+1L, -0x1.538518p-2, INEXACT) +T(RN, -0x1.1e159e36313ee67cp-1L, 0x1.081bd34224212bp-5L, 0x1.1e8f6d5eca9f643ep-1L, 0x1.12aa8p-8, INEXACT) diff --git a/test/musl/src/math/sanity/ilogb.h b/test/musl/src/math/sanity/ilogb.h new file mode 100644 index 00000000..3dd0e42f --- /dev/null +++ b/test/musl/src/math/sanity/ilogb.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 3, 0) +T(RN, 0x1.161868e18bc67p+2, 2, 0) +T(RN, -0x1.0c34b3e01e6e7p+3, 3, 0) +T(RN, -0x1.a206f0a19dcc4p+2, 2, 0) +T(RN, 0x1.288bbb0d6a1e6p+3, 3, 0) +T(RN, 0x1.52efd0cd80497p-1, -1, 0) +T(RN, -0x1.a05cc754481d1p-2, -2, 0) +T(RN, 0x1.1f9ef934745cbp-1, -1, 0) +T(RN, 0x1.8c5db097f7442p-1, -1, 0) +T(RN, -0x1.5b86ea8118a0ep-1, -1, 0) diff --git a/test/musl/src/math/sanity/ilogbf.h b/test/musl/src/math/sanity/ilogbf.h new file mode 100644 index 00000000..7f91b114 --- /dev/null +++ b/test/musl/src/math/sanity/ilogbf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 3, 0) +T(RN, 0x1.161868p+2, 2, 0) +T(RN, -0x1.0c34b4p+3, 3, 0) +T(RN, -0x1.a206fp+2, 2, 0) +T(RN, 0x1.288bbcp+3, 3, 0) +T(RN, 0x1.52efdp-1, -1, 0) +T(RN, -0x1.a05cc8p-2, -2, 0) +T(RN, 0x1.1f9efap-1, -1, 0) +T(RN, 0x1.8c5dbp-1, -1, 0) +T(RN, -0x1.5b86eap-1, -1, 0) diff --git a/test/musl/src/math/sanity/ilogbl.h b/test/musl/src/math/sanity/ilogbl.h new file mode 100644 index 00000000..2d841415 --- /dev/null +++ b/test/musl/src/math/sanity/ilogbl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, 3, 0) +T(RN, 0x1.161868e18bc67782p+2L, 2, 0) +T(RN, -0x1.0c34b3e01e6e682cp+3L, 3, 0) +T(RN, -0x1.a206f0a19dcc3948p+2L, 2, 0) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 3, 0) +T(RN, 0x1.52efd0cd80496a5ap-1L, -1, 0) +T(RN, -0x1.a05cc754481d0bdp-2L, -2, 0) +T(RN, 0x1.1f9ef934745cad6p-1L, -1, 0) +T(RN, 0x1.8c5db097f744257ep-1L, -1, 0) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -1, 0) diff --git a/test/musl/src/math/sanity/j0.h b/test/musl/src/math/sanity/j0.h new file mode 100644 index 00000000..c3133750 --- /dev/null +++ b/test/musl/src/math/sanity/j0.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1.3ecac9327b841p-3, -0x1.ac7b9ap-2, INEXACT) +T(RN, 0x1.161868e18bc67p+2, -0x1.69612a9105747p-2, 0x1.1b3f6ap-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, 0x1.2fd575f8ad8b4p-4, -0x1.7d645cp-3, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1.0f2e220b69814p-2, 0x1.7b2dccp-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, -0x1.3528d44599379p-3, 0x1.c3ab46p-4, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.c96cc73e4a92dp-1, -0x1.15adeap-4, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, 0x1.eb0e4b64aa8d7p-1, -0x1.a6e556p-3, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.d865721eff312p-1, 0x1.0f54ap-10, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.b61d359fb77bdp-1, 0x1.6546cep-5, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, 0x1.c6b4501b05a37p-1, -0x1.3e7006p-2, INEXACT) diff --git a/test/musl/src/math/sanity/j0f.h b/test/musl/src/math/sanity/j0f.h new file mode 100644 index 00000000..f533ad1f --- /dev/null +++ b/test/musl/src/math/sanity/j0f.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 0x1.3ecabep-3, 0x1.6d39eap-2, INEXACT) +T(RN, 0x1.161868p+2, -0x1.69612ep-2, -0x1.9e40f6p-2, INEXACT) +T(RN, -0x1.0c34b4p+3, 0x1.2fd572p-4, 0x1.556ac8p-3, INEXACT) +T(RN, -0x1.a206fp+2, 0x1.0f2e2p-2, -0x1.29f33cp-2, INEXACT) +T(RN, 0x1.288bbcp+3, -0x1.3528ep-3, 0x1.8e7fcap-2, INEXACT) +T(RN, 0x1.52efdp-1, 0x1.c96cc8p-1, 0x1.02b218p-2, INEXACT) +T(RN, -0x1.a05cc8p-2, 0x1.eb0e4cp-1, 0x1.58dc9ap-2, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.d86572p-1, 0x1.7f2feap-5, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.b61d36p-1, 0x1.4e121cp-4, INEXACT) +T(RN, -0x1.5b86eap-1, 0x1.c6b45p-1, -0x1.11705cp-3, INEXACT) diff --git a/test/musl/src/math/sanity/j1.h b/test/musl/src/math/sanity/j1.h new file mode 100644 index 00000000..9fc12b13 --- /dev/null +++ b/test/musl/src/math/sanity/j1.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -0x1.f2def55fbf5a7p-3, 0x1.1d85fcp-2, INEXACT) +T(RN, 0x1.161868e18bc67p+2, -0x1.7d48aacc4b11fp-3, 0x1.e6896ap-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.14890a09c4ef5p-2, -0x1.1e97d4p-3, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1.288dbd86fec93p-3, -0x1.933dep-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.a6564e6ccad3cp-3, -0x1.c7794cp-3, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.40b4d5149fe16p-2, 0x1.be157cp-3, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, -0x1.97d1273f3fd02p-3, -0x1.7813a2p-5, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.146c6965ab4cfp-2, 0x1.e2e82cp-2, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.6f67a8cdd5514p-2, -0x1.236fdp-2, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -0x1.47e4ba219f50fp-2, -0x1.771296p-2, INEXACT) diff --git a/test/musl/src/math/sanity/j1f.h b/test/musl/src/math/sanity/j1f.h new file mode 100644 index 00000000..52c7bf98 --- /dev/null +++ b/test/musl/src/math/sanity/j1f.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -0x1.f2defcp-3, -0x1.f71b2ep-3, INEXACT) +T(RN, 0x1.161868p+2, -0x1.7d48a2p-3, 0x1.cd365cp-6, INEXACT) +T(RN, -0x1.0c34b4p+3, -0x1.14890ap-2, 0x1.a49838p-4, INEXACT) +T(RN, -0x1.a206fp+2, 0x1.288dc4p-3, 0x1.598192p-2, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.a65644p-3, 0x1.45eee2p-5, INEXACT) +T(RN, 0x1.52efdp-1, 0x1.40b4d4p-2, -0x1.9f84c4p-3, INEXACT) +T(RN, -0x1.a05cc8p-2, -0x1.97d128p-3, -0x1.f8e90ap-5, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.146c6ap-2, -0x1.9a667ep-5, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.6f67a8p-2, -0x1.5a7ea8p-3, INEXACT) +T(RN, -0x1.5b86eap-1, -0x1.47e4bap-2, -0x1.277efap-3, INEXACT) diff --git a/test/musl/src/math/sanity/jn.h b/test/musl/src/math/sanity/jn.h new file mode 100644 index 00000000..7fa1e841 --- /dev/null +++ b/test/musl/src/math/sanity/jn.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -2, -0x1.8637401cdd96bp-4, -0x1.b2ea52p-3, INEXACT) +T(RN, 0x1.161868e18bc67p+2, -1, 0x1.7d48aacc4b11fp-3, -0x1.e6896ap-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, 0, 0x1.2fd575f8ad8b4p-4, -0x1.7d645cp-3, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, 1, 0x1.288dbd86fec93p-3, -0x1.933dep-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 2, 0x1.904ebb8f3e76p-3, 0x1.db86aep-3, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 3, 0x1.815a0471e7b9fp-8, 0x1.40aa2p-3, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, 4, 0x1.2816cfe1d5454p-14, 0x1.49e706p-2, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 5, 0x1.e274364abf2d5p-17, 0x1.fbe5c8p-2, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 6, 0x1.32d8157822faep-18, -0x1.6bc402p-6, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, 7, -0x1.b39a9fa627d2p-24, 0x1.308cbp-3, INEXACT) diff --git a/test/musl/src/math/sanity/jnf.h b/test/musl/src/math/sanity/jnf.h new file mode 100644 index 00000000..ee8f807b --- /dev/null +++ b/test/musl/src/math/sanity/jnf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -2, -0x1.863726p-4, -0x1.28885p-7, INEXACT) +T(RN, 0x1.161868p+2, -1, 0x1.7d48a2p-3, -0x1.cd365cp-6, INEXACT) +T(RN, -0x1.0c34b4p+3, 0, 0x1.2fd572p-4, 0x1.556ac8p-3, INEXACT) +T(RN, -0x1.a206fp+2, 1, 0x1.288dc4p-3, 0x1.598192p-2, INEXACT) +T(RN, 0x1.288bbcp+3, 2, 0x1.904ec6p-3, 0x1.f826c6p-3, INEXACT) +T(RN, 0x1.52efdp-1, 3, 0x1.815a02p-8, 0x1.f13c2cp-4, INEXACT) +T(RN, -0x1.a05cc8p-2, 4, 0x1.2816d2p-14, 0x1.bdd79p-4, INEXACT) +T(RN, 0x1.1f9efap-1, 5, 0x1.e2743cp-17, -0x1.d9c372p-2, INEXACT) +T(RN, 0x1.8c5dbp-1, 6, 0x1.32d812p-18, -0x1.76a6fp-2, INEXACT) +T(RN, -0x1.5b86eap-1, 7, -0x1.b39a9cp-24, -0x1.83c12p-2, INEXACT) diff --git a/test/musl/src/math/sanity/ldexp.h b/test/musl/src/math/sanity/ldexp.h new file mode 100644 index 00000000..146c00c8 --- /dev/null +++ b/test/musl/src/math/sanity/ldexp.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -2, -0x1.02239f3c6a8f1p+1, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67p+2, -1, 0x1.161868e18bc67p+1, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e7p+3, 0, -0x1.0c34b3e01e6e7p+3, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc4p+2, 1, -0x1.a206f0a19dcc4p+3, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e6p+3, 2, 0x1.288bbb0d6a1e6p+5, 0x0p+0, 0) +T(RN, 0x1.52efd0cd80497p-1, 3, 0x1.52efd0cd80497p+2, 0x0p+0, 0) +T(RN, -0x1.a05cc754481d1p-2, 4, -0x1.a05cc754481d1p+2, 0x0p+0, 0) +T(RN, 0x1.1f9ef934745cbp-1, 5, 0x1.1f9ef934745cbp+4, 0x0p+0, 0) +T(RN, 0x1.8c5db097f7442p-1, 6, 0x1.8c5db097f7442p+5, 0x0p+0, 0) +T(RN, -0x1.5b86ea8118a0ep-1, 7, -0x1.5b86ea8118a0ep+6, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/ldexpf.h b/test/musl/src/math/sanity/ldexpf.h new file mode 100644 index 00000000..9a108a71 --- /dev/null +++ b/test/musl/src/math/sanity/ldexpf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -2, -0x1.0223ap+1, 0x0p+0, 0) +T(RN, 0x1.161868p+2, -1, 0x1.161868p+1, 0x0p+0, 0) +T(RN, -0x1.0c34b4p+3, 0, -0x1.0c34b4p+3, 0x0p+0, 0) +T(RN, -0x1.a206fp+2, 1, -0x1.a206fp+3, 0x0p+0, 0) +T(RN, 0x1.288bbcp+3, 2, 0x1.288bbcp+5, 0x0p+0, 0) +T(RN, 0x1.52efdp-1, 3, 0x1.52efdp+2, 0x0p+0, 0) +T(RN, -0x1.a05cc8p-2, 4, -0x1.a05cc8p+2, 0x0p+0, 0) +T(RN, 0x1.1f9efap-1, 5, 0x1.1f9efap+4, 0x0p+0, 0) +T(RN, 0x1.8c5dbp-1, 6, 0x1.8c5dbp+5, 0x0p+0, 0) +T(RN, -0x1.5b86eap-1, 7, -0x1.5b86eap+6, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/ldexpl.h b/test/musl/src/math/sanity/ldexpl.h new file mode 100644 index 00000000..89f9f750 --- /dev/null +++ b/test/musl/src/math/sanity/ldexpl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -2, -0x1.02239f3c6a8f13dep+1L, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67782p+2L, -1, 0x1.161868e18bc67782p+1L, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e682cp+3L, 0, -0x1.0c34b3e01e6e682cp+3L, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc3948p+2L, 1, -0x1.a206f0a19dcc3948p+3L, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 2, 0x1.288bbb0d6a1e5bdap+5L, 0x0p+0, 0) +T(RN, 0x1.52efd0cd80496a5ap-1L, 3, 0x1.52efd0cd80496a5ap+2L, 0x0p+0, 0) +T(RN, -0x1.a05cc754481d0bdp-2L, 4, -0x1.a05cc754481d0bdp+2L, 0x0p+0, 0) +T(RN, 0x1.1f9ef934745cad6p-1L, 5, 0x1.1f9ef934745cad6p+4L, 0x0p+0, 0) +T(RN, 0x1.8c5db097f744257ep-1L, 6, 0x1.8c5db097f744257ep+5L, 0x0p+0, 0) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, 7, -0x1.5b86ea8118a0e2bcp+6L, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/lgamma.h b/test/musl/src/math/sanity/lgamma.h new file mode 100644 index 00000000..f34cf688 --- /dev/null +++ b/test/musl/src/math/sanity/lgamma.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -0x1.0120f61b63d5ep+3, 0x1.89ccc4p-6, -1, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 0x1.1ef3b263fd60bp+1, -0x1.6d0264p-3, 1, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.46d73255263d9p+3, 0x1.e0ec76p-3, -1, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, -0x1.9c91f19ac48c5p+2, 0x1.c2a38cp-2, -1, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.65c60768fcc11p+3, 0x1.2f22c2p-2, 1, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.3cc760be720b3p-2, 0x1.0527e2p-2, 1, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, 0x1.4ef387fea1014p+0, -0x1.c3b036p-2, -1, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.d6f0efacc5699p-2, 0x1.c0b0a8p-2, 1, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.6c1a14cf91533p-3, 0x1.16f4cap-5, 1, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, 0x1.695b1e0a0a59ep+0, 0x1.ada69ep-2, -1, INEXACT) diff --git a/test/musl/src/math/sanity/lgamma_r.h b/test/musl/src/math/sanity/lgamma_r.h new file mode 100644 index 00000000..f34cf688 --- /dev/null +++ b/test/musl/src/math/sanity/lgamma_r.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -0x1.0120f61b63d5ep+3, 0x1.89ccc4p-6, -1, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 0x1.1ef3b263fd60bp+1, -0x1.6d0264p-3, 1, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.46d73255263d9p+3, 0x1.e0ec76p-3, -1, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, -0x1.9c91f19ac48c5p+2, 0x1.c2a38cp-2, -1, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.65c60768fcc11p+3, 0x1.2f22c2p-2, 1, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.3cc760be720b3p-2, 0x1.0527e2p-2, 1, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, 0x1.4ef387fea1014p+0, -0x1.c3b036p-2, -1, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.d6f0efacc5699p-2, 0x1.c0b0a8p-2, 1, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.6c1a14cf91533p-3, 0x1.16f4cap-5, 1, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, 0x1.695b1e0a0a59ep+0, 0x1.ada69ep-2, -1, INEXACT) diff --git a/test/musl/src/math/sanity/lgammaf.h b/test/musl/src/math/sanity/lgammaf.h new file mode 100644 index 00000000..0d61e698 --- /dev/null +++ b/test/musl/src/math/sanity/lgammaf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -0x1.012104p+3, -0x1.fb8b5ep-2, -1, INEXACT) +T(RN, 0x1.161868p+2, 0x1.1ef3bp+1, -0x1.97d596p-8, 1, INEXACT) +T(RN, -0x1.0c34b4p+3, -0x1.46d732p+3, 0x1.83dafep-2, -1, INEXACT) +T(RN, -0x1.a206fp+2, -0x1.9c91fp+2, 0x1.2433aep-2, -1, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.65c60ap+3, 0x1.1074ccp-2, 1, INEXACT) +T(RN, 0x1.52efdp-1, 0x1.3cc762p-2, -0x1.c45756p-2, 1, INEXACT) +T(RN, -0x1.a05cc8p-2, 0x1.4ef388p+0, 0x1.3e300cp-4, -1, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.d6f0ecp-2, -0x1.fbabfcp-2, 1, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.6c1a18p-3, 0x1.819098p-2, 1, INEXACT) +T(RN, -0x1.5b86eap-1, 0x1.695b1ep+0, 0x1.a4bb4p-3, -1, INEXACT) diff --git a/test/musl/src/math/sanity/lgammaf_r.h b/test/musl/src/math/sanity/lgammaf_r.h new file mode 100644 index 00000000..0d61e698 --- /dev/null +++ b/test/musl/src/math/sanity/lgammaf_r.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -0x1.012104p+3, -0x1.fb8b5ep-2, -1, INEXACT) +T(RN, 0x1.161868p+2, 0x1.1ef3bp+1, -0x1.97d596p-8, 1, INEXACT) +T(RN, -0x1.0c34b4p+3, -0x1.46d732p+3, 0x1.83dafep-2, -1, INEXACT) +T(RN, -0x1.a206fp+2, -0x1.9c91fp+2, 0x1.2433aep-2, -1, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.65c60ap+3, 0x1.1074ccp-2, 1, INEXACT) +T(RN, 0x1.52efdp-1, 0x1.3cc762p-2, -0x1.c45756p-2, 1, INEXACT) +T(RN, -0x1.a05cc8p-2, 0x1.4ef388p+0, 0x1.3e300cp-4, -1, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.d6f0ecp-2, -0x1.fbabfcp-2, 1, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.6c1a18p-3, 0x1.819098p-2, 1, INEXACT) +T(RN, -0x1.5b86eap-1, 0x1.695b1ep+0, 0x1.a4bb4p-3, -1, INEXACT) diff --git a/test/musl/src/math/sanity/lgammal.h b/test/musl/src/math/sanity/lgammal.h new file mode 100644 index 00000000..22a2eb65 --- /dev/null +++ b/test/musl/src/math/sanity/lgammal.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -0x1.0120f61b63d621bp+3L, 0x1.64aa8cp-2, -1, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.1ef3b263fd60c71ep+1L, 0x1.21b2aep-6, 1, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.46d73255263d790cp+3L, 0x1.9e762ap-4, -1, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, -0x1.9c91f19ac48c4c0ap+2L, -0x1.3f8706p-4, -1, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.65c60768fcc10242p+3L, 0x1.7103a6p-2, 1, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.3cc760be720b3afap-2L, 0x1.28470ap-2, 1, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, 0x1.4ef387fea10147fep+0L, -0x1.f6dfc4p-3, -1, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.d6f0efacc56991dap-2L, 0x1.b9165p-2, 1, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.6c1a14cf915318eap-3L, -0x1.dc5666p-3, 1, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, 0x1.695b1e0a0a59dbbap+0L, -0x1.632d2p-4, -1, INEXACT) diff --git a/test/musl/src/math/sanity/lgammal_r.h b/test/musl/src/math/sanity/lgammal_r.h new file mode 100644 index 00000000..22a2eb65 --- /dev/null +++ b/test/musl/src/math/sanity/lgammal_r.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -0x1.0120f61b63d621bp+3L, 0x1.64aa8cp-2, -1, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.1ef3b263fd60c71ep+1L, 0x1.21b2aep-6, 1, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.46d73255263d790cp+3L, 0x1.9e762ap-4, -1, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, -0x1.9c91f19ac48c4c0ap+2L, -0x1.3f8706p-4, -1, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.65c60768fcc10242p+3L, 0x1.7103a6p-2, 1, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.3cc760be720b3afap-2L, 0x1.28470ap-2, 1, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, 0x1.4ef387fea10147fep+0L, -0x1.f6dfc4p-3, -1, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.d6f0efacc56991dap-2L, 0x1.b9165p-2, 1, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.6c1a14cf915318eap-3L, -0x1.dc5666p-3, 1, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, 0x1.695b1e0a0a59dbbap+0L, -0x1.632d2p-4, -1, INEXACT) diff --git a/test/musl/src/math/sanity/llrint.h b/test/musl/src/math/sanity/llrint.h new file mode 100644 index 00000000..40a384dd --- /dev/null +++ b/test/musl/src/math/sanity/llrint.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -8, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 4, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -8, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, -7, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 9, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 1, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, 0, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 1, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 1, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -1, INEXACT) diff --git a/test/musl/src/math/sanity/llrintf.h b/test/musl/src/math/sanity/llrintf.h new file mode 100644 index 00000000..adea2a86 --- /dev/null +++ b/test/musl/src/math/sanity/llrintf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -8, INEXACT) +T(RN, 0x1.161868p+2, 4, INEXACT) +T(RN, -0x1.0c34b4p+3, -8, INEXACT) +T(RN, -0x1.a206fp+2, -7, INEXACT) +T(RN, 0x1.288bbcp+3, 9, INEXACT) +T(RN, 0x1.52efdp-1, 1, INEXACT) +T(RN, -0x1.a05cc8p-2, 0, INEXACT) +T(RN, 0x1.1f9efap-1, 1, INEXACT) +T(RN, 0x1.8c5dbp-1, 1, INEXACT) +T(RN, -0x1.5b86eap-1, -1, INEXACT) diff --git a/test/musl/src/math/sanity/llrintl.h b/test/musl/src/math/sanity/llrintl.h new file mode 100644 index 00000000..8811c66d --- /dev/null +++ b/test/musl/src/math/sanity/llrintl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -8, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 4, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -8, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, -7, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 9, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 1, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, 0, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 1, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 1, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -1, INEXACT) diff --git a/test/musl/src/math/sanity/llround.h b/test/musl/src/math/sanity/llround.h new file mode 100644 index 00000000..40a384dd --- /dev/null +++ b/test/musl/src/math/sanity/llround.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -8, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 4, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -8, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, -7, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 9, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 1, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, 0, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 1, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 1, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -1, INEXACT) diff --git a/test/musl/src/math/sanity/llroundf.h b/test/musl/src/math/sanity/llroundf.h new file mode 100644 index 00000000..adea2a86 --- /dev/null +++ b/test/musl/src/math/sanity/llroundf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -8, INEXACT) +T(RN, 0x1.161868p+2, 4, INEXACT) +T(RN, -0x1.0c34b4p+3, -8, INEXACT) +T(RN, -0x1.a206fp+2, -7, INEXACT) +T(RN, 0x1.288bbcp+3, 9, INEXACT) +T(RN, 0x1.52efdp-1, 1, INEXACT) +T(RN, -0x1.a05cc8p-2, 0, INEXACT) +T(RN, 0x1.1f9efap-1, 1, INEXACT) +T(RN, 0x1.8c5dbp-1, 1, INEXACT) +T(RN, -0x1.5b86eap-1, -1, INEXACT) diff --git a/test/musl/src/math/sanity/llroundl.h b/test/musl/src/math/sanity/llroundl.h new file mode 100644 index 00000000..8811c66d --- /dev/null +++ b/test/musl/src/math/sanity/llroundl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -8, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 4, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -8, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, -7, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 9, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 1, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, 0, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 1, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 1, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -1, INEXACT) diff --git a/test/musl/src/math/sanity/log.h b/test/musl/src/math/sanity/log.h new file mode 100644 index 00000000..7c875dfb --- /dev/null +++ b/test/musl/src/math/sanity/log.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868e18bc67p+2, 0x1.7815b08f99c65p+0, -0x1.5d7184p-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206f0a19dcc4p+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.1cfcd53d72604p+1, 0x1.748afap-2, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, -0x1.a6694a4a85621p-2, -0x1.2a12d6p-2, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, nan, 0x0p+0, INVALID) +T(RN, 0x1.1f9ef934745cbp-1, -0x1.2742bc03d02ddp-1, -0x1.c1df32p-4, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, -0x1.06215de4a3f92p-2, -0x1.db0dfp-5, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/sanity/log10.h b/test/musl/src/math/sanity/log10.h new file mode 100644 index 00000000..4e33cbf0 --- /dev/null +++ b/test/musl/src/math/sanity/log10.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868e18bc67p+2, 0x1.46a9bd1d2eb87p-1, -0x1.abca8ap-3, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206f0a19dcc4p+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.ef12fff994862p-1, -0x1.f562c2p-5, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, -0x1.6ee6db5a155cbp-3, 0x1.904a62p-2, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, nan, 0x0p+0, INVALID) +T(RN, 0x1.1f9ef934745cbp-1, -0x1.0075cda79d321p-2, -0x1.37ff2p-2, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, -0x1.c75df6442465ap-4, -0x1.42982cp-2, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/sanity/log10f.h b/test/musl/src/math/sanity/log10f.h new file mode 100644 index 00000000..e2a337ad --- /dev/null +++ b/test/musl/src/math/sanity/log10f.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868p+2, 0x1.46a9bcp-1, -0x1.a35d3p-3, INEXACT) +T(RN, -0x1.0c34b4p+3, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206fp+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbcp+3, 0x1.ef13p-1, -0x1.5ef4aep-2, INEXACT) +T(RN, 0x1.52efdp-1, -0x1.6ee6dep-3, -0x1.1548cep-2, INEXACT) +T(RN, -0x1.a05cc8p-2, nan, 0x0p+0, INVALID) +T(RN, 0x1.1f9efap-1, -0x1.0075ccp-2, 0x1.b392fp-3, INEXACT) +T(RN, 0x1.8c5dbp-1, -0x1.c75df8p-4, 0x1.dc5088p-2, INEXACT) +T(RN, -0x1.5b86eap-1, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/sanity/log10l.h b/test/musl/src/math/sanity/log10l.h new file mode 100644 index 00000000..ab6b7994 --- /dev/null +++ b/test/musl/src/math/sanity/log10l.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.46a9bd1d2eb87958p-1L, -0x1.7b1d2cp-3, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206f0a19dcc3948p+2L, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.ef12fff994861ddep-1L, -0x1.7f0cecp-3, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, -0x1.6ee6db5a155cc514p-3L, -0x1.06a00ep-3, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, nan, 0x0p+0, INVALID) +T(RN, 0x1.1f9ef934745cad6p-1L, -0x1.0075cda79d320f3p-2L, -0x1.e3b21ep-2, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, -0x1.c75df6442465825p-4L, -0x1.bc16c6p-3, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/sanity/log1p.h b/test/musl/src/math/sanity/log1p.h new file mode 100644 index 00000000..cdc2b5d2 --- /dev/null +++ b/test/musl/src/math/sanity/log1p.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868e18bc67p+2, 0x1.ad1bdd1e9e687p+0, 0x1.d8f798p-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206f0a19dcc4p+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.2a1ab8365b56fp+1, -0x1.a4fb4ep-2, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.041a4ec2a680ap-1, -0x1.2c180ap-2, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, -0x1.0b3595423aec1p-1, -0x1.087498p-2, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.c8834348a846ep-2, -0x1.0fdea4p-3, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.258a8e8a35bbfp-1, 0x1.bd15cp-6, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -0x1.22b5426327502p+0, 0x1.15d21ap-2, INEXACT) diff --git a/test/musl/src/math/sanity/log1pf.h b/test/musl/src/math/sanity/log1pf.h new file mode 100644 index 00000000..c7de4bf1 --- /dev/null +++ b/test/musl/src/math/sanity/log1pf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868p+2, 0x1.ad1bdcp+0, -0x1.d75826p-3, INEXACT) +T(RN, -0x1.0c34b4p+3, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206fp+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbcp+3, 0x1.2a1ab8p+1, -0x1.29bbeap-2, INEXACT) +T(RN, 0x1.52efdp-1, 0x1.041a4ep-1, -0x1.1c0286p-3, INEXACT) +T(RN, -0x1.a05cc8p-2, -0x1.0b3596p-1, -0x1.68a12cp-4, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.c88344p-2, -0x1.3546aap-3, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.258a8ep-1, -0x1.a46f6ep-4, INEXACT) +T(RN, -0x1.5b86eap-1, -0x1.22b542p+0, -0x1.9721bcp-3, INEXACT) diff --git a/test/musl/src/math/sanity/log1pl.h b/test/musl/src/math/sanity/log1pl.h new file mode 100644 index 00000000..d8ff52e4 --- /dev/null +++ b/test/musl/src/math/sanity/log1pl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.ad1bdd1e9e686e3ap+0L, -0x1.ae87b2p-3, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206f0a19dcc3948p+2L, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.2a1ab8365b56f4f6p+1L, -0x1.68d4dap-4, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.041a4ec2a680a14ap-1L, -0x1.5409f4p-3, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, -0x1.0b3595423aec0856p-1L, 0x1.ce54fp-2, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.c8834348a846dec4p-2L, 0x1.a81dd2p-2, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.258a8e8a35bbf2aap-1L, 0x1.8f673ap-2, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -0x1.22b5426327502898p+0L, 0x1.a5a1a4p-2, INEXACT) diff --git a/test/musl/src/math/sanity/log2.h b/test/musl/src/math/sanity/log2.h new file mode 100644 index 00000000..f6f7fd3a --- /dev/null +++ b/test/musl/src/math/sanity/log2.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868e18bc67p+2, 0x1.0f49ac383858p+1, -0x1.a05a78p-4, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206f0a19dcc4p+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.9b26760c2a57ep+1, -0x1.425808p-3, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, -0x1.30b490ef684c7p-1, 0x1.541ebep-2, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, nan, 0x0p+0, INVALID) +T(RN, 0x1.1f9ef934745cbp-1, -0x1.a9f89b5f5acb8p-1, 0x1.d77e8p-5, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, -0x1.7a2c947173f06p-2, -0x1.9649b8p-3, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/sanity/log2f.h b/test/musl/src/math/sanity/log2f.h new file mode 100644 index 00000000..6eac469d --- /dev/null +++ b/test/musl/src/math/sanity/log2f.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868p+2, 0x1.0f49acp+1, 0x1.76337cp-3, INEXACT) +T(RN, -0x1.0c34b4p+3, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206fp+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbcp+3, 0x1.9b2676p+1, -0x1.4674d4p-2, INEXACT) +T(RN, 0x1.52efdp-1, -0x1.30b492p-1, 0x1.5e87b8p-2, INEXACT) +T(RN, -0x1.a05cc8p-2, nan, 0x0p+0, INVALID) +T(RN, 0x1.1f9efap-1, -0x1.a9f89ap-1, -0x1.56c50cp-2, INEXACT) +T(RN, 0x1.8c5dbp-1, -0x1.7a2c96p-2, 0x1.4fb556p-2, INEXACT) +T(RN, -0x1.5b86eap-1, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/sanity/log2l.h b/test/musl/src/math/sanity/log2l.h new file mode 100644 index 00000000..5b0edf4f --- /dev/null +++ b/test/musl/src/math/sanity/log2l.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.0f49ac383858069cp+1L, -0x1.41951ap-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206f0a19dcc3948p+2L, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.9b26760c2a57dffp+1L, 0x1.480f6cp-2, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, -0x1.30b490ef684c81ap-1L, -0x1.81487ap-4, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, nan, 0x0p+0, INVALID) +T(RN, 0x1.1f9ef934745cad6p-1L, -0x1.a9f89b5f5acb87aap-1L, -0x1.c4b03cp-3, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, -0x1.7a2c947173f0485cp-2L, -0x1.ed91aap-2, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/sanity/logb.h b/test/musl/src/math/sanity/logb.h new file mode 100644 index 00000000..589c6a7d --- /dev/null +++ b/test/musl/src/math/sanity/logb.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1.8p+1, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67p+2, 0x1p+1, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e7p+3, 0x1.8p+1, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1p+1, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.8p+1, 0x0p+0, 0) +T(RN, 0x1.52efd0cd80497p-1, -0x1p+0, 0x0p+0, 0) +T(RN, -0x1.a05cc754481d1p-2, -0x1p+1, 0x0p+0, 0) +T(RN, 0x1.1f9ef934745cbp-1, -0x1p+0, 0x0p+0, 0) +T(RN, 0x1.8c5db097f7442p-1, -0x1p+0, 0x0p+0, 0) +T(RN, -0x1.5b86ea8118a0ep-1, -0x1p+0, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/logbf.h b/test/musl/src/math/sanity/logbf.h new file mode 100644 index 00000000..f8a7cfe1 --- /dev/null +++ b/test/musl/src/math/sanity/logbf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 0x1.8p+1, 0x0p+0, 0) +T(RN, 0x1.161868p+2, 0x1p+1, 0x0p+0, 0) +T(RN, -0x1.0c34b4p+3, 0x1.8p+1, 0x0p+0, 0) +T(RN, -0x1.a206fp+2, 0x1p+1, 0x0p+0, 0) +T(RN, 0x1.288bbcp+3, 0x1.8p+1, 0x0p+0, 0) +T(RN, 0x1.52efdp-1, -0x1p+0, 0x0p+0, 0) +T(RN, -0x1.a05cc8p-2, -0x1p+1, 0x0p+0, 0) +T(RN, 0x1.1f9efap-1, -0x1p+0, 0x0p+0, 0) +T(RN, 0x1.8c5dbp-1, -0x1p+0, 0x0p+0, 0) +T(RN, -0x1.5b86eap-1, -0x1p+0, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/logbl.h b/test/musl/src/math/sanity/logbl.h new file mode 100644 index 00000000..993d5cad --- /dev/null +++ b/test/musl/src/math/sanity/logbl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, 0x1.8p+1L, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67782p+2L, 0x1p+1L, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e682cp+3L, 0x1.8p+1L, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc3948p+2L, 0x1p+1L, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.8p+1L, 0x0p+0, 0) +T(RN, 0x1.52efd0cd80496a5ap-1L, -0x1p+0L, 0x0p+0, 0) +T(RN, -0x1.a05cc754481d0bdp-2L, -0x1p+1L, 0x0p+0, 0) +T(RN, 0x1.1f9ef934745cad6p-1L, -0x1p+0L, 0x0p+0, 0) +T(RN, 0x1.8c5db097f744257ep-1L, -0x1p+0L, 0x0p+0, 0) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -0x1p+0L, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/logf.h b/test/musl/src/math/sanity/logf.h new file mode 100644 index 00000000..336b00ea --- /dev/null +++ b/test/musl/src/math/sanity/logf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868p+2, 0x1.7815bp+0, 0x1.0019bep-3, INEXACT) +T(RN, -0x1.0c34b4p+3, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206fp+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbcp+3, 0x1.1cfcd6p+1, 0x1.6760bep-3, INEXACT) +T(RN, 0x1.52efdp-1, -0x1.a6694cp-2, 0x1.6ec464p-2, INEXACT) +T(RN, -0x1.a05cc8p-2, nan, 0x0p+0, INVALID) +T(RN, 0x1.1f9efap-1, -0x1.2742bap-1, 0x1.32f49ep-2, INEXACT) +T(RN, 0x1.8c5dbp-1, -0x1.06216p-2, -0x1.258522p-2, INEXACT) +T(RN, -0x1.5b86eap-1, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/sanity/logl.h b/test/musl/src/math/sanity/logl.h new file mode 100644 index 00000000..08b34609 --- /dev/null +++ b/test/musl/src/math/sanity/logl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.7815b08f99c65c6p+0L, 0x1.de26e6p-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206f0a19dcc3948p+2L, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.1cfcd53d72603864p+1L, 0x1.238ea8p-2, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, -0x1.a6694a4a85621c68p-2L, 0x1.83d934p-3, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, nan, 0x0p+0, INVALID) +T(RN, 0x1.1f9ef934745cad6p-1L, -0x1.2742bc03d02dd2eap-1L, 0x1.79ef1ep-3, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, -0x1.06215de4a3f910e2p-2L, 0x1.cd14eap-5, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/sanity/lrint.h b/test/musl/src/math/sanity/lrint.h new file mode 100644 index 00000000..40a384dd --- /dev/null +++ b/test/musl/src/math/sanity/lrint.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -8, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 4, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -8, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, -7, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 9, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 1, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, 0, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 1, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 1, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -1, INEXACT) diff --git a/test/musl/src/math/sanity/lrintf.h b/test/musl/src/math/sanity/lrintf.h new file mode 100644 index 00000000..adea2a86 --- /dev/null +++ b/test/musl/src/math/sanity/lrintf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -8, INEXACT) +T(RN, 0x1.161868p+2, 4, INEXACT) +T(RN, -0x1.0c34b4p+3, -8, INEXACT) +T(RN, -0x1.a206fp+2, -7, INEXACT) +T(RN, 0x1.288bbcp+3, 9, INEXACT) +T(RN, 0x1.52efdp-1, 1, INEXACT) +T(RN, -0x1.a05cc8p-2, 0, INEXACT) +T(RN, 0x1.1f9efap-1, 1, INEXACT) +T(RN, 0x1.8c5dbp-1, 1, INEXACT) +T(RN, -0x1.5b86eap-1, -1, INEXACT) diff --git a/test/musl/src/math/sanity/lrintl.h b/test/musl/src/math/sanity/lrintl.h new file mode 100644 index 00000000..8811c66d --- /dev/null +++ b/test/musl/src/math/sanity/lrintl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -8, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 4, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -8, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, -7, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 9, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 1, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, 0, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 1, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 1, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -1, INEXACT) diff --git a/test/musl/src/math/sanity/lround.h b/test/musl/src/math/sanity/lround.h new file mode 100644 index 00000000..40a384dd --- /dev/null +++ b/test/musl/src/math/sanity/lround.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -8, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 4, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -8, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, -7, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 9, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 1, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, 0, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 1, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 1, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -1, INEXACT) diff --git a/test/musl/src/math/sanity/lroundf.h b/test/musl/src/math/sanity/lroundf.h new file mode 100644 index 00000000..adea2a86 --- /dev/null +++ b/test/musl/src/math/sanity/lroundf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -8, INEXACT) +T(RN, 0x1.161868p+2, 4, INEXACT) +T(RN, -0x1.0c34b4p+3, -8, INEXACT) +T(RN, -0x1.a206fp+2, -7, INEXACT) +T(RN, 0x1.288bbcp+3, 9, INEXACT) +T(RN, 0x1.52efdp-1, 1, INEXACT) +T(RN, -0x1.a05cc8p-2, 0, INEXACT) +T(RN, 0x1.1f9efap-1, 1, INEXACT) +T(RN, 0x1.8c5dbp-1, 1, INEXACT) +T(RN, -0x1.5b86eap-1, -1, INEXACT) diff --git a/test/musl/src/math/sanity/lroundl.h b/test/musl/src/math/sanity/lroundl.h new file mode 100644 index 00000000..8811c66d --- /dev/null +++ b/test/musl/src/math/sanity/lroundl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -8, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 4, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -8, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, -7, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 9, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 1, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, 0, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 1, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 1, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -1, INEXACT) diff --git a/test/musl/src/math/sanity/modf.h b/test/musl/src/math/sanity/modf.h new file mode 100644 index 00000000..40cc9e66 --- /dev/null +++ b/test/musl/src/math/sanity/modf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -0x1.11cf9e354788p-4, 0x0p+0, -0x1p+3, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67p+2, 0x1.61868e18bc67p-2, 0x0p+0, 0x1p+2, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.86967c03cdcep-2, 0x0p+0, -0x1p+3, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc4p+2, -0x1.1037850cee62p-1, 0x0p+0, -0x1.8p+2, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.117761ad43ccp-2, 0x0p+0, 0x1.2p+3, 0x0p+0, 0) +T(RN, 0x1.52efd0cd80497p-1, 0x1.52efd0cd80497p-1, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1.a05cc754481d1p-2, -0x1.a05cc754481d1p-2, 0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.1f9ef934745cbp-1, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.8c5db097f7442p-1, 0x1.8c5db097f7442p-1, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1.5b86ea8118a0ep-1, -0x1.5b86ea8118a0ep-1, 0x0p+0, -0x0p+0, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/modff.h b/test/musl/src/math/sanity/modff.h new file mode 100644 index 00000000..7c2b44d8 --- /dev/null +++ b/test/musl/src/math/sanity/modff.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -0x1.11dp-4, 0x0p+0, -0x1p+3, 0x0p+0, 0) +T(RN, 0x1.161868p+2, 0x1.61868p-2, 0x0p+0, 0x1p+2, 0x0p+0, 0) +T(RN, -0x1.0c34b4p+3, -0x1.86968p-2, 0x0p+0, -0x1p+3, 0x0p+0, 0) +T(RN, -0x1.a206fp+2, -0x1.10378p-1, 0x0p+0, -0x1.8p+2, 0x0p+0, 0) +T(RN, 0x1.288bbcp+3, 0x1.11778p-2, 0x0p+0, 0x1.2p+3, 0x0p+0, 0) +T(RN, 0x1.52efdp-1, 0x1.52efdp-1, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1.a05cc8p-2, -0x1.a05cc8p-2, 0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RN, 0x1.1f9efap-1, 0x1.1f9efap-1, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.8c5dbp-1, 0x1.8c5dbp-1, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1.5b86eap-1, -0x1.5b86eap-1, 0x0p+0, -0x0p+0, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/modfl.h b/test/musl/src/math/sanity/modfl.h new file mode 100644 index 00000000..703436ef --- /dev/null +++ b/test/musl/src/math/sanity/modfl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -0x1.11cf9e354789efp-4L, 0x0p+0, -0x1p+3L, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.61868e18bc67782p-2L, 0x0p+0, 0x1p+2L, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.86967c03cdcd058p-2L, 0x0p+0, -0x1p+3L, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc3948p+2L, -0x1.1037850cee61ca4p-1L, 0x0p+0, -0x1.8p+2L, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.117761ad43cb7b4p-2L, 0x0p+0, 0x1.2p+3L, 0x0p+0, 0) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.52efd0cd80496a5ap-1L, 0x0p+0, 0x0p+0L, 0x0p+0, 0) +T(RN, -0x1.a05cc754481d0bdp-2L, -0x1.a05cc754481d0bdp-2L, 0x0p+0, -0x0p+0L, 0x0p+0, 0) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.1f9ef934745cad6p-1L, 0x0p+0, 0x0p+0L, 0x0p+0, 0) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.8c5db097f744257ep-1L, 0x0p+0, 0x0p+0L, 0x0p+0, 0) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -0x1.5b86ea8118a0e2bcp-1L, 0x0p+0, -0x0p+0L, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/nearbyint.h b/test/musl/src/math/sanity/nearbyint.h new file mode 100644 index 00000000..bf71b2ed --- /dev/null +++ b/test/musl/src/math/sanity/nearbyint.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -0x1p+3, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67p+2, 0x1p+2, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1p+3, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc4p+2, -0x1.cp+2, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.2p+3, 0x0p+0, 0) +T(RN, 0x1.52efd0cd80497p-1, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.a05cc754481d1p-2, -0x0p+0, 0x0p+0, 0) +T(RN, 0x1.1f9ef934745cbp-1, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.8c5db097f7442p-1, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.5b86ea8118a0ep-1, -0x1p+0, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/nearbyintf.h b/test/musl/src/math/sanity/nearbyintf.h new file mode 100644 index 00000000..132aec93 --- /dev/null +++ b/test/musl/src/math/sanity/nearbyintf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -0x1p+3, 0x0p+0, 0) +T(RN, 0x1.161868p+2, 0x1p+2, 0x0p+0, 0) +T(RN, -0x1.0c34b4p+3, -0x1p+3, 0x0p+0, 0) +T(RN, -0x1.a206fp+2, -0x1.cp+2, 0x0p+0, 0) +T(RN, 0x1.288bbcp+3, 0x1.2p+3, 0x0p+0, 0) +T(RN, 0x1.52efdp-1, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.a05cc8p-2, -0x0p+0, 0x0p+0, 0) +T(RN, 0x1.1f9efap-1, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.8c5dbp-1, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.5b86eap-1, -0x1p+0, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/nearbyintl.h b/test/musl/src/math/sanity/nearbyintl.h new file mode 100644 index 00000000..46d06175 --- /dev/null +++ b/test/musl/src/math/sanity/nearbyintl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -0x1p+3L, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67782p+2L, 0x1p+2L, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1p+3L, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc3948p+2L, -0x1.cp+2L, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.2p+3L, 0x0p+0, 0) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1p+0L, 0x0p+0, 0) +T(RN, -0x1.a05cc754481d0bdp-2L, -0x0p+0L, 0x0p+0, 0) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1p+0L, 0x0p+0, 0) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1p+0L, 0x0p+0, 0) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -0x1p+0L, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/nextafter.h b/test/musl/src/math/sanity/nextafter.h new file mode 100644 index 00000000..96eb6e99 --- /dev/null +++ b/test/musl/src/math/sanity/nextafter.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1.22484b9ef31fp+2, -0x1.02239f3c6a8fp+3, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67p+2, -0x1.1c6a6cdce75e8p+3, 0x1.161868e18bc66p+2, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.61bde29e83f6dp+1, -0x1.0c34b3e01e6e6p+3, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1.24527f7b576acp+2, -0x1.a206f0a19dcc3p+2, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.33edd910a3c01p+2, 0x1.288bbb0d6a1e5p+3, 0x0p+0, 0) +T(RN, -0x1.9ccd8be03f495p+2, 0x1.52fb12ef638a1p-1, -0x1.9ccd8be03f494p+2, 0x0p+0, 0) +T(RN, 0x1.f6f80ed2eab44p+2, 0x1.ab3ff8575b21dp-5, 0x1.f6f80ed2eab43p+2, 0x0p+0, 0) +T(RN, -0x1.95882b433fad3p-1, 0x1.eb4a2e7ce0693p+2, -0x1.95882b433fad2p-1, 0x0p+0, 0) +T(RN, 0x1.3b3d617ae3c4ap-1, 0x1.01860611d75e1p+1, 0x1.3b3d617ae3c4bp-1, 0x0p+0, 0) +T(RN, -0x1.1e159e36313eep-1, 0x1.081bd34224213p-5, -0x1.1e159e36313edp-1, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/nextafterf.h b/test/musl/src/math/sanity/nextafterf.h new file mode 100644 index 00000000..741b9b01 --- /dev/null +++ b/test/musl/src/math/sanity/nextafterf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 0x1.22484cp+2, -0x1.02239ep+3, 0x0p+0, 0) +T(RN, 0x1.161868p+2, -0x1.1c6a6cp+3, 0x1.161866p+2, 0x0p+0, 0) +T(RN, -0x1.0c34b4p+3, -0x1.61bde2p+1, -0x1.0c34b2p+3, 0x0p+0, 0) +T(RN, -0x1.a206fp+2, 0x1.24528p+2, -0x1.a206eep+2, 0x0p+0, 0) +T(RN, 0x1.288bbcp+3, 0x1.33eddap+2, 0x1.288bbap+3, 0x0p+0, 0) +T(RN, -0x1.9ccd8cp+2, 0x1.52fb12p-1, -0x1.9ccd8ap+2, 0x0p+0, 0) +T(RN, 0x1.f6f80ep+2, 0x1.ab3ff8p-5, 0x1.f6f80cp+2, 0x0p+0, 0) +T(RN, -0x1.95882cp-1, 0x1.eb4a2ep+2, -0x1.95882ap-1, 0x0p+0, 0) +T(RN, 0x1.3b3d62p-1, 0x1.018606p+1, 0x1.3b3d64p-1, 0x0p+0, 0) +T(RN, -0x1.1e159ep-1, 0x1.081bd4p-5, -0x1.1e159cp-1, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/nextafterl.h b/test/musl/src/math/sanity/nextafterl.h new file mode 100644 index 00000000..e84d062d --- /dev/null +++ b/test/musl/src/math/sanity/nextafterl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, 0x1.22484b9ef31efd4p+2L, -0x1.02239f3c6a8f13dcp+3L, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67782p+2L, -0x1.1c6a6cdce75e83acp+3L, 0x1.161868e18bc6778p+2L, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.61bde29e83f6cb16p+1L, -0x1.0c34b3e01e6e682ap+3L, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc3948p+2L, 0x1.24527f7b576abb6p+2L, -0x1.a206f0a19dcc3946p+2L, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.33edd910a3c00b7p+2L, 0x1.288bbb0d6a1e5bd8p+3L, 0x0p+0, 0) +T(RN, -0x1.9ccd8be03f4949a2p+2L, 0x1.52fb12ef638a1222p-1L, -0x1.9ccd8be03f4949ap+2L, 0x0p+0, 0) +T(RN, 0x1.f6f80ed2eab43b22p+2L, 0x1.ab3ff8575b21cf92p-5L, 0x1.f6f80ed2eab43b2p+2L, 0x0p+0, 0) +T(RN, -0x1.95882b433fad2dd4p-1L, 0x1.eb4a2e7ce06930dap+2L, -0x1.95882b433fad2dd2p-1L, 0x0p+0, 0) +T(RN, 0x1.3b3d617ae3c4a65p-1L, 0x1.01860611d75e1052p+1L, 0x1.3b3d617ae3c4a652p-1L, 0x0p+0, 0) +T(RN, -0x1.1e159e36313ee67cp-1L, 0x1.081bd34224212bp-5L, -0x1.1e159e36313ee67ap-1L, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/nexttoward.h b/test/musl/src/math/sanity/nexttoward.h new file mode 100644 index 00000000..277be41e --- /dev/null +++ b/test/musl/src/math/sanity/nexttoward.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1.22484b9ef31efd4p+2L, -0x1.02239f3c6a8fp+3, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67p+2, -0x1.1c6a6cdce75e83acp+3L, 0x1.161868e18bc66p+2, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.61bde29e83f6cb16p+1L, -0x1.0c34b3e01e6e6p+3, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1.24527f7b576abb6p+2L, -0x1.a206f0a19dcc3p+2, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.33edd910a3c00b7p+2L, 0x1.288bbb0d6a1e5p+3, 0x0p+0, 0) +T(RN, -0x1.9ccd8be03f495p+2, 0x1.52fb12ef638a1222p-1L, -0x1.9ccd8be03f494p+2, 0x0p+0, 0) +T(RN, 0x1.f6f80ed2eab44p+2, 0x1.ab3ff8575b21cf92p-5L, 0x1.f6f80ed2eab43p+2, 0x0p+0, 0) +T(RN, -0x1.95882b433fad3p-1, 0x1.eb4a2e7ce06930dap+2L, -0x1.95882b433fad2p-1, 0x0p+0, 0) +T(RN, 0x1.3b3d617ae3c4ap-1, 0x1.01860611d75e1052p+1L, 0x1.3b3d617ae3c4bp-1, 0x0p+0, 0) +T(RN, -0x1.1e159e36313eep-1, 0x1.081bd34224212bp-5L, -0x1.1e159e36313edp-1, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/nexttowardf.h b/test/musl/src/math/sanity/nexttowardf.h new file mode 100644 index 00000000..c6d2d51a --- /dev/null +++ b/test/musl/src/math/sanity/nexttowardf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 0x1.22484b9ef31efd4p+2L, -0x1.02239ep+3, 0x0p+0, 0) +T(RN, 0x1.161868p+2, -0x1.1c6a6cdce75e83acp+3L, 0x1.161866p+2, 0x0p+0, 0) +T(RN, -0x1.0c34b4p+3, -0x1.61bde29e83f6cb16p+1L, -0x1.0c34b2p+3, 0x0p+0, 0) +T(RN, -0x1.a206fp+2, 0x1.24527f7b576abb6p+2L, -0x1.a206eep+2, 0x0p+0, 0) +T(RN, 0x1.288bbcp+3, 0x1.33edd910a3c00b7p+2L, 0x1.288bbap+3, 0x0p+0, 0) +T(RN, -0x1.9ccd8cp+2, 0x1.52fb12ef638a1222p-1L, -0x1.9ccd8ap+2, 0x0p+0, 0) +T(RN, 0x1.f6f80ep+2, 0x1.ab3ff8575b21cf92p-5L, 0x1.f6f80cp+2, 0x0p+0, 0) +T(RN, -0x1.95882cp-1, 0x1.eb4a2e7ce06930dap+2L, -0x1.95882ap-1, 0x0p+0, 0) +T(RN, 0x1.3b3d62p-1, 0x1.01860611d75e1052p+1L, 0x1.3b3d64p-1, 0x0p+0, 0) +T(RN, -0x1.1e159ep-1, 0x1.081bd34224212bp-5L, -0x1.1e159cp-1, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/nexttowardl.h b/test/musl/src/math/sanity/nexttowardl.h new file mode 100644 index 00000000..e84d062d --- /dev/null +++ b/test/musl/src/math/sanity/nexttowardl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, 0x1.22484b9ef31efd4p+2L, -0x1.02239f3c6a8f13dcp+3L, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67782p+2L, -0x1.1c6a6cdce75e83acp+3L, 0x1.161868e18bc6778p+2L, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.61bde29e83f6cb16p+1L, -0x1.0c34b3e01e6e682ap+3L, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc3948p+2L, 0x1.24527f7b576abb6p+2L, -0x1.a206f0a19dcc3946p+2L, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.33edd910a3c00b7p+2L, 0x1.288bbb0d6a1e5bd8p+3L, 0x0p+0, 0) +T(RN, -0x1.9ccd8be03f4949a2p+2L, 0x1.52fb12ef638a1222p-1L, -0x1.9ccd8be03f4949ap+2L, 0x0p+0, 0) +T(RN, 0x1.f6f80ed2eab43b22p+2L, 0x1.ab3ff8575b21cf92p-5L, 0x1.f6f80ed2eab43b2p+2L, 0x0p+0, 0) +T(RN, -0x1.95882b433fad2dd4p-1L, 0x1.eb4a2e7ce06930dap+2L, -0x1.95882b433fad2dd2p-1L, 0x0p+0, 0) +T(RN, 0x1.3b3d617ae3c4a65p-1L, 0x1.01860611d75e1052p+1L, 0x1.3b3d617ae3c4a652p-1L, 0x0p+0, 0) +T(RN, -0x1.1e159e36313ee67cp-1L, 0x1.081bd34224212bp-5L, -0x1.1e159e36313ee67ap-1L, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/pow.h b/test/musl/src/math/sanity/pow.h new file mode 100644 index 00000000..a2f3cec1 --- /dev/null +++ b/test/musl/src/math/sanity/pow.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1.22484b9ef31fp+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868e18bc67p+2, -0x1.1c6a6cdce75e8p+3, 0x1.1e84244b6adcbp-19, 0x1.4cd1p-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.61bde29e83f6dp+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1.24527f7b576acp+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.33edd910a3c01p+2, 0x1.5eda994cf09bap+15, -0x1.10fd2ep-2, INEXACT) +T(RN, -0x1.9ccd8be03f495p+2, 0x1.52fb12ef638a1p-1, nan, 0x0p+0, INVALID) +T(RN, 0x1.f6f80ed2eab44p+2, 0x1.ab3ff8575b21dp-5, 0x1.1d0f7faa98a5bp+0, -0x1.7c9b46p-2, INEXACT) +T(RN, -0x1.95882b433fad3p-1, 0x1.eb4a2e7ce0693p+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.3b3d617ae3c4ap-1, 0x1.01860611d75e1p+1, 0x1.81f419f1692bep-2, 0x1.4c86dp-2, INEXACT) +T(RN, -0x1.1e159e36313eep-1, 0x1.081bd34224213p-5, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/sanity/pow10.h b/test/musl/src/math/sanity/pow10.h new file mode 100644 index 00000000..d7404ec7 --- /dev/null +++ b/test/musl/src/math/sanity/pow10.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1.26942adb7f515p-27, 0x1.88d854p-3, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 0x1.59fcb0f47787p+14, 0x1.99e856p-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, 0x1.1d86c8788e3e1p-28, -0x1.34c16ap-2, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1.3baa369d8a72dp-22, 0x1.34c3b4p-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.b8f5349770d9cp+30, 0x1.c9a6a6p-6, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.25e08f3cb71d1p+2, 0x1.bfa4aep-2, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, 0x1.91827b3e38b96p-2, -0x1.249072p-2, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.d2a0789db6a45p+1, 0x1.ee92eep-3, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.7c7afa6833a79p+2, -0x1.ed7454p-3, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, 0x1.ad1b8e7886717p-3, -0x1.2efb78p-2, INEXACT) diff --git a/test/musl/src/math/sanity/pow10f.h b/test/musl/src/math/sanity/pow10f.h new file mode 100644 index 00000000..ef5961f6 --- /dev/null +++ b/test/musl/src/math/sanity/pow10f.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 0x1.26941ap-27, -0x1.538efcp-2, INEXACT) +T(RN, 0x1.161868p+2, 0x1.59fca6p+14, 0x1.8d356cp-8, INEXACT) +T(RN, -0x1.0c34b4p+3, 0x1.1d86c6p-28, 0x1.6737b8p-5, INEXACT) +T(RN, -0x1.a206fp+2, 0x1.3baa3ep-22, 0x1.b7e808p-4, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.b8f552p+30, -0x1.511ae8p-2, INEXACT) +T(RN, 0x1.52efdp-1, 0x1.25e08ep+2, -0x1.68f136p-4, INEXACT) +T(RN, -0x1.a05cc8p-2, 0x1.91827ap-2, -0x1.465fc8p-2, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.d2a07ap+1, -0x1.23709cp-3, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.7c7afap+2, 0x1.37a83ep-2, INEXACT) +T(RN, -0x1.5b86eap-1, 0x1.ad1b9p-3, 0x1.1cb0b8p-2, INEXACT) diff --git a/test/musl/src/math/sanity/pow10l.h b/test/musl/src/math/sanity/pow10l.h new file mode 100644 index 00000000..fb51d82c --- /dev/null +++ b/test/musl/src/math/sanity/pow10l.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, 0x1.26942adb7f50faf6p-27L, 0x1.7b8a0ap-3, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.59fcb0f47787570ep+14L, 0x1.968ec4p-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, 0x1.1d86c8788e3eb5a8p-28L, 0x1.d8e33cp-4, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, 0x1.3baa369d8a73177ap-22L, -0x1.d17ac8p-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.b8f5349770d93becp+30L, -0x1.c9879ep-2, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.25e08f3cb71d018ap+2L, -0x1.5ea13ap-3, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, 0x1.91827b3e38b9685ap-2L, -0x1.a87268p-5, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.d2a0789db6a446ap+1L, -0x1.473902p-2, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.7c7afa6833a79d4p+2L, -0x1.75ae46p-2, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, 0x1.ad1b8e7886716f76p-3L, 0x1.dc0d9ep-2, INEXACT) diff --git a/test/musl/src/math/sanity/powf.h b/test/musl/src/math/sanity/powf.h new file mode 100644 index 00000000..69113668 --- /dev/null +++ b/test/musl/src/math/sanity/powf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 0x1.22484cp+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868p+2, -0x1.1c6a6cp+3, 0x1.1e8438p-19, 0x1.262edep-3, INEXACT) +T(RN, -0x1.0c34b4p+3, -0x1.61bde2p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206fp+2, 0x1.24528p+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbcp+3, 0x1.33eddap+2, 0x1.5edaaap+15, -0x1.b6cc0ap-5, INEXACT) +T(RN, -0x1.9ccd8cp+2, 0x1.52fb12p-1, nan, 0x0p+0, INVALID) +T(RN, 0x1.f6f80ep+2, 0x1.ab3ff8p-5, 0x1.1d0f8p+0, 0x1.879ed2p-3, INEXACT) +T(RN, -0x1.95882cp-1, 0x1.eb4a2ep+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.3b3d62p-1, 0x1.018606p+1, 0x1.81f41cp-2, 0x1.593d9ap-2, INEXACT) +T(RN, -0x1.1e159ep-1, 0x1.081bd4p-5, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/sanity/powl.h b/test/musl/src/math/sanity/powl.h new file mode 100644 index 00000000..35438a6b --- /dev/null +++ b/test/musl/src/math/sanity/powl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, 0x1.22484b9ef31efd4p+2L, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868e18bc67782p+2L, -0x1.1c6a6cdce75e83acp+3L, 0x1.1e84244b6adc35cp-19L, -0x1.68d004p-3, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.61bde29e83f6cb16p+1L, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206f0a19dcc3948p+2L, 0x1.24527f7b576abb6p+2L, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.33edd910a3c00b7p+2L, 0x1.5eda994cf09b54f6p+15L, -0x1.f1a252p-4, INEXACT) +T(RN, -0x1.9ccd8be03f4949a2p+2L, 0x1.52fb12ef638a1222p-1L, nan, 0x0p+0, INVALID) +T(RN, 0x1.f6f80ed2eab43b22p+2L, 0x1.ab3ff8575b21cf92p-5L, 0x1.1d0f7faa98a5b5c6p+0L, 0x1.2ea7d8p-3, INEXACT) +T(RN, -0x1.95882b433fad2dd4p-1L, 0x1.eb4a2e7ce06930dap+2L, nan, 0x0p+0, INVALID) +T(RN, 0x1.3b3d617ae3c4a65p-1L, 0x1.01860611d75e1052p+1L, 0x1.81f419f1692be9e2p-2L, -0x1.0b2346p-2, INEXACT) +T(RN, -0x1.1e159e36313ee67cp-1L, 0x1.081bd34224212bp-5L, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/sanity/remainder.h b/test/musl/src/math/sanity/remainder.h new file mode 100644 index 00000000..6d08a521 --- /dev/null +++ b/test/musl/src/math/sanity/remainder.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1.22484b9ef31fp+2, 0x1.01256314447f8p+0, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67p+2, -0x1.1c6a6cdce75e8p+3, 0x1.161868e18bc67p+2, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.61bde29e83f6dp+1, -0x1.7324f49dbaaap-4, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1.24527f7b576acp+2, -0x1.f6d1c4991986p+0, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.33edd910a3c01p+2, -0x1.6c43c0673436p-2, 0x0p+0, 0) +T(RN, -0x1.9ccd8be03f495p+2, 0x1.52fb12ef638a1p-1, 0x1.5d89795fa4688p-3, 0x0p+0, 0) +T(RN, 0x1.f6f80ed2eab44p+2, 0x1.ab3ff8575b21dp-5, -0x1.0d682422cda36p-6, 0x0p+0, 0) +T(RN, -0x1.95882b433fad3p-1, 0x1.eb4a2e7ce0693p+2, -0x1.95882b433fad3p-1, 0x0p+0, 0) +T(RN, 0x1.3b3d617ae3c4ap-1, 0x1.01860611d75e1p+1, 0x1.3b3d617ae3c4ap-1, 0x0p+0, 0) +T(RN, -0x1.1e159e36313eep-1, 0x1.081bd34224213p-5, -0x1.5e036ffab6e74p-7, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/remainderf.h b/test/musl/src/math/sanity/remainderf.h new file mode 100644 index 00000000..10af12e9 --- /dev/null +++ b/test/musl/src/math/sanity/remainderf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 0x1.22484cp+2, 0x1.01256p+0, 0x0p+0, 0) +T(RN, 0x1.161868p+2, -0x1.1c6a6cp+3, 0x1.161868p+2, 0x0p+0, 0) +T(RN, -0x1.0c34b4p+3, -0x1.61bde2p+1, -0x1.73254p-4, 0x0p+0, 0) +T(RN, -0x1.a206fp+2, 0x1.24528p+2, -0x1.f6d1cp+0, 0x0p+0, 0) +T(RN, 0x1.288bbcp+3, 0x1.33eddap+2, -0x1.6c43cp-2, 0x0p+0, 0) +T(RN, -0x1.9ccd8cp+2, 0x1.52fb12p-1, 0x1.5d895p-3, 0x0p+0, 0) +T(RN, 0x1.f6f80ep+2, 0x1.ab3ff8p-5, -0x1.0d689p-6, 0x0p+0, 0) +T(RN, -0x1.95882cp-1, 0x1.eb4a2ep+2, -0x1.95882cp-1, 0x0p+0, 0) +T(RN, 0x1.3b3d62p-1, 0x1.018606p+1, 0x1.3b3d62p-1, 0x0p+0, 0) +T(RN, -0x1.1e159ep-1, 0x1.081bd4p-5, -0x1.5e033p-7, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/remainderl.h b/test/musl/src/math/sanity/remainderl.h new file mode 100644 index 00000000..9442dc15 --- /dev/null +++ b/test/musl/src/math/sanity/remainderl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, 0x1.22484b9ef31efd4p+2L, 0x1.01256314447f4b1p+0L, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67782p+2L, -0x1.1c6a6cdce75e83acp+3L, 0x1.161868e18bc67782p+2L, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.61bde29e83f6cb16p+1L, -0x1.7324f49dbaa7edcp-4L, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc3948p+2L, 0x1.24527f7b576abb6p+2L, -0x1.f6d1c4991985f7ap+0L, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.33edd910a3c00b7p+2L, -0x1.6c43c0673435f2cp-2L, 0x0p+0, 0) +T(RN, -0x1.9ccd8be03f4949a2p+2L, 0x1.52fb12ef638a1222p-1L, 0x1.5d89795fa469a11p-3L, 0x0p+0, 0) +T(RN, 0x1.f6f80ed2eab43b22p+2L, 0x1.ab3ff8575b21cf92p-5L, -0x1.0d682422cda7bc3cp-6L, 0x0p+0, 0) +T(RN, -0x1.95882b433fad2dd4p-1L, 0x1.eb4a2e7ce06930dap+2L, -0x1.95882b433fad2dd4p-1L, 0x0p+0, 0) +T(RN, 0x1.3b3d617ae3c4a65p-1L, 0x1.01860611d75e1052p+1L, 0x1.3b3d617ae3c4a65p-1L, 0x0p+0, 0) +T(RN, -0x1.1e159e36313ee67cp-1L, 0x1.081bd34224212bp-5L, -0x1.5e036ffab6ea33p-7L, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/remquo.h b/test/musl/src/math/sanity/remquo.h new file mode 100644 index 00000000..0841c95c --- /dev/null +++ b/test/musl/src/math/sanity/remquo.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1.22484b9ef31fp+2, 0x1.01256314447f8p+0, 0x0p+0, -2, 0) +T(RN, 0x1.161868e18bc67p+2, -0x1.1c6a6cdce75e8p+3, 0x1.161868e18bc67p+2, 0x0p+0, 0, 0) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.61bde29e83f6dp+1, -0x1.7324f49dbaaap-4, 0x0p+0, 3, 0) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1.24527f7b576acp+2, -0x1.f6d1c4991986p+0, 0x0p+0, -1, 0) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.33edd910a3c01p+2, -0x1.6c43c0673436p-2, 0x0p+0, 2, 0) +T(RN, -0x1.9ccd8be03f495p+2, 0x1.52fb12ef638a1p-1, 0x1.5d89795fa4688p-3, 0x0p+0, -10, 0) +T(RN, 0x1.f6f80ed2eab44p+2, 0x1.ab3ff8575b21dp-5, -0x1.0d682422cda36p-6, 0x0p+0, 151, 0) +T(RN, -0x1.95882b433fad3p-1, 0x1.eb4a2e7ce0693p+2, -0x1.95882b433fad3p-1, 0x0p+0, 0, 0) +T(RN, 0x1.3b3d617ae3c4ap-1, 0x1.01860611d75e1p+1, 0x1.3b3d617ae3c4ap-1, 0x0p+0, 0, 0) +T(RN, -0x1.1e159e36313eep-1, 0x1.081bd34224213p-5, -0x1.5e036ffab6e74p-7, 0x0p+0, -17, 0) diff --git a/test/musl/src/math/sanity/remquof.h b/test/musl/src/math/sanity/remquof.h new file mode 100644 index 00000000..807718bd --- /dev/null +++ b/test/musl/src/math/sanity/remquof.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 0x1.22484cp+2, 0x1.01256p+0, 0x0p+0, -2, 0) +T(RN, 0x1.161868p+2, -0x1.1c6a6cp+3, 0x1.161868p+2, 0x0p+0, 0, 0) +T(RN, -0x1.0c34b4p+3, -0x1.61bde2p+1, -0x1.73254p-4, 0x0p+0, 3, 0) +T(RN, -0x1.a206fp+2, 0x1.24528p+2, -0x1.f6d1cp+0, 0x0p+0, -1, 0) +T(RN, 0x1.288bbcp+3, 0x1.33eddap+2, -0x1.6c43cp-2, 0x0p+0, 2, 0) +T(RN, -0x1.9ccd8cp+2, 0x1.52fb12p-1, 0x1.5d895p-3, 0x0p+0, -10, 0) +T(RN, 0x1.f6f80ep+2, 0x1.ab3ff8p-5, -0x1.0d689p-6, 0x0p+0, 151, 0) +T(RN, -0x1.95882cp-1, 0x1.eb4a2ep+2, -0x1.95882cp-1, 0x0p+0, 0, 0) +T(RN, 0x1.3b3d62p-1, 0x1.018606p+1, 0x1.3b3d62p-1, 0x0p+0, 0, 0) +T(RN, -0x1.1e159ep-1, 0x1.081bd4p-5, -0x1.5e033p-7, 0x0p+0, -17, 0) diff --git a/test/musl/src/math/sanity/remquol.h b/test/musl/src/math/sanity/remquol.h new file mode 100644 index 00000000..3cd12d82 --- /dev/null +++ b/test/musl/src/math/sanity/remquol.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, 0x1.22484b9ef31efd4p+2L, 0x1.01256314447f4b1p+0L, 0x0p+0, -2, 0) +T(RN, 0x1.161868e18bc67782p+2L, -0x1.1c6a6cdce75e83acp+3L, 0x1.161868e18bc67782p+2L, 0x0p+0, 0, 0) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.61bde29e83f6cb16p+1L, -0x1.7324f49dbaa7edcp-4L, 0x0p+0, 3, 0) +T(RN, -0x1.a206f0a19dcc3948p+2L, 0x1.24527f7b576abb6p+2L, -0x1.f6d1c4991985f7ap+0L, 0x0p+0, -1, 0) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.33edd910a3c00b7p+2L, -0x1.6c43c0673435f2cp-2L, 0x0p+0, 2, 0) +T(RN, -0x1.9ccd8be03f4949a2p+2L, 0x1.52fb12ef638a1222p-1L, 0x1.5d89795fa469a11p-3L, 0x0p+0, -10, 0) +T(RN, 0x1.f6f80ed2eab43b22p+2L, 0x1.ab3ff8575b21cf92p-5L, -0x1.0d682422cda7bc3cp-6L, 0x0p+0, 151, 0) +T(RN, -0x1.95882b433fad2dd4p-1L, 0x1.eb4a2e7ce06930dap+2L, -0x1.95882b433fad2dd4p-1L, 0x0p+0, 0, 0) +T(RN, 0x1.3b3d617ae3c4a65p-1L, 0x1.01860611d75e1052p+1L, 0x1.3b3d617ae3c4a65p-1L, 0x0p+0, 0, 0) +T(RN, -0x1.1e159e36313ee67cp-1L, 0x1.081bd34224212bp-5L, -0x1.5e036ffab6ea33p-7L, 0x0p+0, -17, 0) diff --git a/test/musl/src/math/sanity/rint.h b/test/musl/src/math/sanity/rint.h new file mode 100644 index 00000000..b8094157 --- /dev/null +++ b/test/musl/src/math/sanity/rint.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -0x1p+3, 0x0p+0, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 0x1p+2, 0x0p+0, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1p+3, 0x0p+0, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, -0x1.cp+2, 0x0p+0, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.2p+3, 0x0p+0, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, -0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -0x1p+0, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/sanity/rintf.h b/test/musl/src/math/sanity/rintf.h new file mode 100644 index 00000000..32b2d69b --- /dev/null +++ b/test/musl/src/math/sanity/rintf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -0x1p+3, 0x0p+0, INEXACT) +T(RN, 0x1.161868p+2, 0x1p+2, 0x0p+0, INEXACT) +T(RN, -0x1.0c34b4p+3, -0x1p+3, 0x0p+0, INEXACT) +T(RN, -0x1.a206fp+2, -0x1.cp+2, 0x0p+0, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.2p+3, 0x0p+0, INEXACT) +T(RN, 0x1.52efdp-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.a05cc8p-2, -0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.5b86eap-1, -0x1p+0, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/sanity/rintl.h b/test/musl/src/math/sanity/rintl.h new file mode 100644 index 00000000..fcf5aaa3 --- /dev/null +++ b/test/musl/src/math/sanity/rintl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -0x1p+3L, 0x0p+0, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 0x1p+2L, 0x0p+0, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1p+3L, 0x0p+0, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, -0x1.cp+2L, 0x0p+0, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.2p+3L, 0x0p+0, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1p+0L, 0x0p+0, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, -0x0p+0L, 0x0p+0, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1p+0L, 0x0p+0, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1p+0L, 0x0p+0, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -0x1p+0L, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/sanity/round.h b/test/musl/src/math/sanity/round.h new file mode 100644 index 00000000..b8094157 --- /dev/null +++ b/test/musl/src/math/sanity/round.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -0x1p+3, 0x0p+0, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 0x1p+2, 0x0p+0, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1p+3, 0x0p+0, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, -0x1.cp+2, 0x0p+0, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.2p+3, 0x0p+0, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, -0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -0x1p+0, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/sanity/roundf.h b/test/musl/src/math/sanity/roundf.h new file mode 100644 index 00000000..32b2d69b --- /dev/null +++ b/test/musl/src/math/sanity/roundf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -0x1p+3, 0x0p+0, INEXACT) +T(RN, 0x1.161868p+2, 0x1p+2, 0x0p+0, INEXACT) +T(RN, -0x1.0c34b4p+3, -0x1p+3, 0x0p+0, INEXACT) +T(RN, -0x1.a206fp+2, -0x1.cp+2, 0x0p+0, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.2p+3, 0x0p+0, INEXACT) +T(RN, 0x1.52efdp-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.a05cc8p-2, -0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.5b86eap-1, -0x1p+0, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/sanity/roundl.h b/test/musl/src/math/sanity/roundl.h new file mode 100644 index 00000000..fcf5aaa3 --- /dev/null +++ b/test/musl/src/math/sanity/roundl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -0x1p+3L, 0x0p+0, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 0x1p+2L, 0x0p+0, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1p+3L, 0x0p+0, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, -0x1.cp+2L, 0x0p+0, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.2p+3L, 0x0p+0, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1p+0L, 0x0p+0, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, -0x0p+0L, 0x0p+0, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1p+0L, 0x0p+0, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1p+0L, 0x0p+0, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -0x1p+0L, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/sanity/scalb.h b/test/musl/src/math/sanity/scalb.h new file mode 100644 index 00000000..a9647942 --- /dev/null +++ b/test/musl/src/math/sanity/scalb.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1.22484b9ef31fp+2, nan, 0x0p+0, INEXACT|INVALID) +T(RN, 0x1.161868e18bc67p+2, -0x1.1c6a6cdce75e8p+3, nan, 0x0p+0, INEXACT|INVALID) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.61bde29e83f6dp+1, nan, 0x0p+0, INEXACT|INVALID) +T(RN, -0x1.a206f0a19dcc4p+2, 0x1.24527f7b576acp+2, nan, 0x0p+0, INEXACT|INVALID) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.33edd910a3c01p+2, nan, 0x0p+0, INEXACT|INVALID) +T(RN, -0x1.9ccd8be03f495p+2, 0x1.52fb12ef638a1p-1, nan, 0x0p+0, INEXACT|INVALID) +T(RN, 0x1.f6f80ed2eab44p+2, 0x1.ab3ff8575b21dp-5, nan, 0x0p+0, INEXACT|INVALID) +T(RN, -0x1.95882b433fad3p-1, 0x1.eb4a2e7ce0693p+2, nan, 0x0p+0, INEXACT|INVALID) +T(RN, 0x1.3b3d617ae3c4ap-1, 0x1.01860611d75e1p+1, nan, 0x0p+0, INEXACT|INVALID) +T(RN, -0x1.1e159e36313eep-1, 0x1.081bd34224213p-5, nan, 0x0p+0, INEXACT|INVALID) diff --git a/test/musl/src/math/sanity/scalbf.h b/test/musl/src/math/sanity/scalbf.h new file mode 100644 index 00000000..caf81703 --- /dev/null +++ b/test/musl/src/math/sanity/scalbf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 0x1.22484cp+2, nan, 0x0p+0, INEXACT|INVALID) +T(RN, 0x1.161868p+2, -0x1.1c6a6cp+3, nan, 0x0p+0, INEXACT|INVALID) +T(RN, -0x1.0c34b4p+3, -0x1.61bde2p+1, nan, 0x0p+0, INEXACT|INVALID) +T(RN, -0x1.a206fp+2, 0x1.24528p+2, nan, 0x0p+0, INEXACT|INVALID) +T(RN, 0x1.288bbcp+3, 0x1.33eddap+2, nan, 0x0p+0, INEXACT|INVALID) +T(RN, -0x1.9ccd8cp+2, 0x1.52fb12p-1, nan, 0x0p+0, INEXACT|INVALID) +T(RN, 0x1.f6f80ep+2, 0x1.ab3ff8p-5, nan, 0x0p+0, INEXACT|INVALID) +T(RN, -0x1.95882cp-1, 0x1.eb4a2ep+2, nan, 0x0p+0, INEXACT|INVALID) +T(RN, 0x1.3b3d62p-1, 0x1.018606p+1, nan, 0x0p+0, INEXACT|INVALID) +T(RN, -0x1.1e159ep-1, 0x1.081bd4p-5, nan, 0x0p+0, INEXACT|INVALID) diff --git a/test/musl/src/math/sanity/scalbln.h b/test/musl/src/math/sanity/scalbln.h new file mode 100644 index 00000000..146c00c8 --- /dev/null +++ b/test/musl/src/math/sanity/scalbln.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -2, -0x1.02239f3c6a8f1p+1, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67p+2, -1, 0x1.161868e18bc67p+1, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e7p+3, 0, -0x1.0c34b3e01e6e7p+3, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc4p+2, 1, -0x1.a206f0a19dcc4p+3, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e6p+3, 2, 0x1.288bbb0d6a1e6p+5, 0x0p+0, 0) +T(RN, 0x1.52efd0cd80497p-1, 3, 0x1.52efd0cd80497p+2, 0x0p+0, 0) +T(RN, -0x1.a05cc754481d1p-2, 4, -0x1.a05cc754481d1p+2, 0x0p+0, 0) +T(RN, 0x1.1f9ef934745cbp-1, 5, 0x1.1f9ef934745cbp+4, 0x0p+0, 0) +T(RN, 0x1.8c5db097f7442p-1, 6, 0x1.8c5db097f7442p+5, 0x0p+0, 0) +T(RN, -0x1.5b86ea8118a0ep-1, 7, -0x1.5b86ea8118a0ep+6, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/scalblnf.h b/test/musl/src/math/sanity/scalblnf.h new file mode 100644 index 00000000..9a108a71 --- /dev/null +++ b/test/musl/src/math/sanity/scalblnf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -2, -0x1.0223ap+1, 0x0p+0, 0) +T(RN, 0x1.161868p+2, -1, 0x1.161868p+1, 0x0p+0, 0) +T(RN, -0x1.0c34b4p+3, 0, -0x1.0c34b4p+3, 0x0p+0, 0) +T(RN, -0x1.a206fp+2, 1, -0x1.a206fp+3, 0x0p+0, 0) +T(RN, 0x1.288bbcp+3, 2, 0x1.288bbcp+5, 0x0p+0, 0) +T(RN, 0x1.52efdp-1, 3, 0x1.52efdp+2, 0x0p+0, 0) +T(RN, -0x1.a05cc8p-2, 4, -0x1.a05cc8p+2, 0x0p+0, 0) +T(RN, 0x1.1f9efap-1, 5, 0x1.1f9efap+4, 0x0p+0, 0) +T(RN, 0x1.8c5dbp-1, 6, 0x1.8c5dbp+5, 0x0p+0, 0) +T(RN, -0x1.5b86eap-1, 7, -0x1.5b86eap+6, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/scalblnl.h b/test/musl/src/math/sanity/scalblnl.h new file mode 100644 index 00000000..89f9f750 --- /dev/null +++ b/test/musl/src/math/sanity/scalblnl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -2, -0x1.02239f3c6a8f13dep+1L, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67782p+2L, -1, 0x1.161868e18bc67782p+1L, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e682cp+3L, 0, -0x1.0c34b3e01e6e682cp+3L, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc3948p+2L, 1, -0x1.a206f0a19dcc3948p+3L, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 2, 0x1.288bbb0d6a1e5bdap+5L, 0x0p+0, 0) +T(RN, 0x1.52efd0cd80496a5ap-1L, 3, 0x1.52efd0cd80496a5ap+2L, 0x0p+0, 0) +T(RN, -0x1.a05cc754481d0bdp-2L, 4, -0x1.a05cc754481d0bdp+2L, 0x0p+0, 0) +T(RN, 0x1.1f9ef934745cad6p-1L, 5, 0x1.1f9ef934745cad6p+4L, 0x0p+0, 0) +T(RN, 0x1.8c5db097f744257ep-1L, 6, 0x1.8c5db097f744257ep+5L, 0x0p+0, 0) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, 7, -0x1.5b86ea8118a0e2bcp+6L, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/scalbn.h b/test/musl/src/math/sanity/scalbn.h new file mode 100644 index 00000000..146c00c8 --- /dev/null +++ b/test/musl/src/math/sanity/scalbn.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -2, -0x1.02239f3c6a8f1p+1, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67p+2, -1, 0x1.161868e18bc67p+1, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e7p+3, 0, -0x1.0c34b3e01e6e7p+3, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc4p+2, 1, -0x1.a206f0a19dcc4p+3, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e6p+3, 2, 0x1.288bbb0d6a1e6p+5, 0x0p+0, 0) +T(RN, 0x1.52efd0cd80497p-1, 3, 0x1.52efd0cd80497p+2, 0x0p+0, 0) +T(RN, -0x1.a05cc754481d1p-2, 4, -0x1.a05cc754481d1p+2, 0x0p+0, 0) +T(RN, 0x1.1f9ef934745cbp-1, 5, 0x1.1f9ef934745cbp+4, 0x0p+0, 0) +T(RN, 0x1.8c5db097f7442p-1, 6, 0x1.8c5db097f7442p+5, 0x0p+0, 0) +T(RN, -0x1.5b86ea8118a0ep-1, 7, -0x1.5b86ea8118a0ep+6, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/scalbnf.h b/test/musl/src/math/sanity/scalbnf.h new file mode 100644 index 00000000..9a108a71 --- /dev/null +++ b/test/musl/src/math/sanity/scalbnf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -2, -0x1.0223ap+1, 0x0p+0, 0) +T(RN, 0x1.161868p+2, -1, 0x1.161868p+1, 0x0p+0, 0) +T(RN, -0x1.0c34b4p+3, 0, -0x1.0c34b4p+3, 0x0p+0, 0) +T(RN, -0x1.a206fp+2, 1, -0x1.a206fp+3, 0x0p+0, 0) +T(RN, 0x1.288bbcp+3, 2, 0x1.288bbcp+5, 0x0p+0, 0) +T(RN, 0x1.52efdp-1, 3, 0x1.52efdp+2, 0x0p+0, 0) +T(RN, -0x1.a05cc8p-2, 4, -0x1.a05cc8p+2, 0x0p+0, 0) +T(RN, 0x1.1f9efap-1, 5, 0x1.1f9efap+4, 0x0p+0, 0) +T(RN, 0x1.8c5dbp-1, 6, 0x1.8c5dbp+5, 0x0p+0, 0) +T(RN, -0x1.5b86eap-1, 7, -0x1.5b86eap+6, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/scalbnl.h b/test/musl/src/math/sanity/scalbnl.h new file mode 100644 index 00000000..89f9f750 --- /dev/null +++ b/test/musl/src/math/sanity/scalbnl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -2, -0x1.02239f3c6a8f13dep+1L, 0x0p+0, 0) +T(RN, 0x1.161868e18bc67782p+2L, -1, 0x1.161868e18bc67782p+1L, 0x0p+0, 0) +T(RN, -0x1.0c34b3e01e6e682cp+3L, 0, -0x1.0c34b3e01e6e682cp+3L, 0x0p+0, 0) +T(RN, -0x1.a206f0a19dcc3948p+2L, 1, -0x1.a206f0a19dcc3948p+3L, 0x0p+0, 0) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 2, 0x1.288bbb0d6a1e5bdap+5L, 0x0p+0, 0) +T(RN, 0x1.52efd0cd80496a5ap-1L, 3, 0x1.52efd0cd80496a5ap+2L, 0x0p+0, 0) +T(RN, -0x1.a05cc754481d0bdp-2L, 4, -0x1.a05cc754481d0bdp+2L, 0x0p+0, 0) +T(RN, 0x1.1f9ef934745cad6p-1L, 5, 0x1.1f9ef934745cad6p+4L, 0x0p+0, 0) +T(RN, 0x1.8c5db097f744257ep-1L, 6, 0x1.8c5db097f744257ep+5L, 0x0p+0, 0) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, 7, -0x1.5b86ea8118a0e2bcp+6L, 0x0p+0, 0) diff --git a/test/musl/src/math/sanity/sin.h b/test/musl/src/math/sanity/sin.h new file mode 100644 index 00000000..18c45163 --- /dev/null +++ b/test/musl/src/math/sanity/sin.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -0x1.f4719cbe20bd2p-1, -0x1.2a4a16p-3, INEXACT) +T(RN, 0x1.161868e18bc67p+2, -0x1.dde0a33834424p-1, -0x1.6902d6p-4, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.ba6a5410cb9ccp-1, -0x1.e1078ap-4, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, -0x1.f7aed6ca5f32fp-3, -0x1.040d5p-3, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.41acd05fae3c4p-3, -0x1.e4265ap-6, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.3ab7ecc98df9ap-1, -0x1.98a5aep-4, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, -0x1.94fbf72645bfcp-2, -0x1.77aebcp-2, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.10baf3a5f550ep-1, -0x1.6b8fcep-2, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.65f1c5e591db2p-1, -0x1.b5efc2p-2, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -0x1.417318671b83dp-1, -0x1.87ffcp-2, INEXACT) diff --git a/test/musl/src/math/sanity/sincos.h b/test/musl/src/math/sanity/sincos.h new file mode 100644 index 00000000..283e961c --- /dev/null +++ b/test/musl/src/math/sanity/sincos.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -0x1.f4719cbe20bd2p-1, -0x1.2a4a16p-3, -0x1.b0aa8f2c9baf6p-3, -0x1.c105d2p-4, INEXACT) +T(RN, 0x1.161868e18bc67p+2, -0x1.dde0a33834424p-1, -0x1.6902d6p-4, -0x1.6f922aed88704p-2, -0x1.b8b8fap-4, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.ba6a5410cb9ccp-1, -0x1.e1078ap-4, -0x1.01b4e00041423p-1, -0x1.5f1decp-6, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, -0x1.f7aed6ca5f32fp-3, -0x1.040d5p-3, 0x1.f0462a6686a9cp-1, -0x1.ea474ep-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.41acd05fae3c4p-3, -0x1.e4265ap-6, -0x1.f9a51be5829b7p-1, 0x1.f3c7cep-2, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.3ab7ecc98df9ap-1, -0x1.98a5aep-4, 0x1.93da10e89d4d1p-1, 0x1.044604p-3, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, -0x1.94fbf72645bfcp-2, -0x1.77aebcp-2, 0x1.d64199a5cb117p-1, -0x1.0b79e2p-2, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.10baf3a5f550ep-1, -0x1.6b8fcep-2, 0x1.b150bae7795b1p-1, -0x1.35d926p-2, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.65f1c5e591db2p-1, -0x1.b5efc2p-2, 0x1.6e164e427022bp-1, -0x1.5db4c2p-4, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -0x1.417318671b83dp-1, -0x1.87ffcp-2, 0x1.8e83d35a366cp-1, 0x1.3c524p-2, INEXACT) diff --git a/test/musl/src/math/sanity/sincosf.h b/test/musl/src/math/sanity/sincosf.h new file mode 100644 index 00000000..757317dd --- /dev/null +++ b/test/musl/src/math/sanity/sincosf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -0x1.f4719ap-1, 0x1.481cf2p-4, -0x1.b0aabep-3, 0x1.eee272p-2, INEXACT) +T(RN, 0x1.161868p+2, -0x1.dde0ap-1, 0x1.6107cap-2, -0x1.6f9238p-2, 0x1.5c33e2p-5, INEXACT) +T(RN, -0x1.0c34b4p+3, -0x1.ba6a54p-1, -0x1.dfe862p-2, -0x1.01b4e2p-1, -0x1.1be494p-3, INEXACT) +T(RN, -0x1.a206fp+2, -0x1.f7aec4p-3, -0x1.95029cp-2, 0x1.f0462cp-1, 0x1.6df7bcp-3, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.41ac94p-3, -0x1.eba8d2p-3, -0x1.f9a51ep-1, 0x1.1c971cp-3, INEXACT) +T(RN, 0x1.52efdp-1, 0x1.3ab7ecp-1, -0x1.3bafcap-4, 0x1.93da12p-1, 0x1.322268p-2, INEXACT) +T(RN, -0x1.a05cc8p-2, -0x1.94fbf8p-2, -0x1.e01394p-4, 0x1.d6419ap-1, 0x1.f0a754p-3, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.10baf4p-1, -0x1.48e402p-3, 0x1.b150bap-1, -0x1.ec3366p-3, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.65f1c6p-1, 0x1.0e2d0ap-2, 0x1.6e164ep-1, -0x1.595b9cp-2, INEXACT) +T(RN, -0x1.5b86eap-1, -0x1.417318p-1, 0x1.5010ccp-8, 0x1.8e83d4p-1, 0x1.52f278p-3, INEXACT) diff --git a/test/musl/src/math/sanity/sincosl.h b/test/musl/src/math/sanity/sincosl.h new file mode 100644 index 00000000..5abadc12 --- /dev/null +++ b/test/musl/src/math/sanity/sincosl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -0x1.f4719cbe20bd109ap-1L, -0x1.f6addp-2, -0x1.b0aa8f2c9bb05028p-3L, 0x1.cb66d8p-2, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, -0x1.dde0a33834425426p-1L, 0x1.2fdc6p-3, -0x1.6f922aed886fce28p-2L, 0x1.857366p-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.ba6a5410cb9cfd2ap-1L, -0x1.41edcap-4, -0x1.01b4e0004141c36ep-1L, -0x1.496d12p-6, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, -0x1.f7aed6ca5f321d92p-3L, 0x1.ba498cp-3, 0x1.f0462a6686a9d4e2p-1L, 0x1.882674p-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.41acd05fae3d46aep-3L, 0x1.30647p-2, -0x1.f9a51be5829b6d62p-1L, 0x1.cb35d4p-4, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.3ab7ecc98df99d24p-1L, -0x1.4d10a4p-5, 0x1.93da10e89d4d117p-1L, -0x1.25ac1p-3, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, -0x1.94fbf72645bfb648p-2L, 0x1.5772aep-2, 0x1.d64199a5cb117502p-1L, 0x1.c94d6p-5, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.10baf3a5f550e376p-1L, 0x1.eaff04p-3, 0x1.b150bae7795b163ep-1L, 0x1.4c1268p-2, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.65f1c5e591db2ac6p-1L, 0x1.e36f2ep-2, 0x1.6e164e427022ad86p-1L, -0x1.83a52p-2, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -0x1.417318671b83ccp-1L, 0x1.b27416p-2, 0x1.8e83d35a366bf958p-1L, 0x1.88bbdp-2, INEXACT) diff --git a/test/musl/src/math/sanity/sinf.h b/test/musl/src/math/sanity/sinf.h new file mode 100644 index 00000000..dfaa1856 --- /dev/null +++ b/test/musl/src/math/sanity/sinf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -0x1.f4719ap-1, 0x1.481cf2p-4, INEXACT) +T(RN, 0x1.161868p+2, -0x1.dde0ap-1, 0x1.6107cap-2, INEXACT) +T(RN, -0x1.0c34b4p+3, -0x1.ba6a54p-1, -0x1.dfe862p-2, INEXACT) +T(RN, -0x1.a206fp+2, -0x1.f7aec4p-3, -0x1.95029cp-2, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.41ac94p-3, -0x1.eba8d2p-3, INEXACT) +T(RN, 0x1.52efdp-1, 0x1.3ab7ecp-1, -0x1.3bafcap-4, INEXACT) +T(RN, -0x1.a05cc8p-2, -0x1.94fbf8p-2, -0x1.e01394p-4, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.10baf4p-1, -0x1.48e402p-3, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.65f1c6p-1, 0x1.0e2d0ap-2, INEXACT) +T(RN, -0x1.5b86eap-1, -0x1.417318p-1, 0x1.5010ccp-8, INEXACT) diff --git a/test/musl/src/math/sanity/sinh.h b/test/musl/src/math/sanity/sinh.h new file mode 100644 index 00000000..714c0376 --- /dev/null +++ b/test/musl/src/math/sanity/sinh.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -0x1.8e6152d2b112bp+10, -0x1.b602ecp-3, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 0x1.3463e73bcdaaap+5, 0x1.b9162ap-3, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.10d42f1bb3fe5p+11, 0x1.4c0f26p-3, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, -0x1.5745bb86e8aefp+8, 0x1.a36ba2p-3, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.4abc7717e44f6p+12, -0x1.f27292p-2, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.6c3d70de72ca5p-1, -0x1.d577ap-2, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, -0x1.abee260f5c133p-2, 0x1.7d221ep-2, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.2efd35e9b1d0ap-1, 0x1.d8df78p-2, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.b52919dc580dep-1, -0x1.1f8018p-4, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -0x1.76d57fa96b7d1p-1, 0x1.130806p-2, INEXACT) diff --git a/test/musl/src/math/sanity/sinhf.h b/test/musl/src/math/sanity/sinhf.h new file mode 100644 index 00000000..eba35ed0 --- /dev/null +++ b/test/musl/src/math/sanity/sinhf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -0x1.8e615cp+10, 0x1.565b4cp-3, INEXACT) +T(RN, 0x1.161868p+2, 0x1.3463e2p+5, -0x1.f93eb6p-2, INEXACT) +T(RN, -0x1.0c34b4p+3, -0x1.10d43p+11, 0x1.5c25dap-4, INEXACT) +T(RN, -0x1.a206fp+2, -0x1.5745b8p+8, 0x1.206fbep-4, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.4abc8p+12, -0x1.c645acp-2, INEXACT) +T(RN, 0x1.52efdp-1, 0x1.6c3d7p-1, 0x1.dbfcaep-5, INEXACT) +T(RN, -0x1.a05cc8p-2, -0x1.abee26p-2, 0x1.92f05ap-2, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.2efd36p-1, -0x1.ac6bbcp-2, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.b5291ap-1, 0x1.d6f58cp-2, INEXACT) +T(RN, -0x1.5b86eap-1, -0x1.76d58p-1, -0x1.ed2616p-2, INEXACT) diff --git a/test/musl/src/math/sanity/sinhl.h b/test/musl/src/math/sanity/sinhl.h new file mode 100644 index 00000000..6e062340 --- /dev/null +++ b/test/musl/src/math/sanity/sinhl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -0x1.8e6152d2b112dcb8p+10L, 0x1.bb71ep-2, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.3463e73bcdaac0bep+5L, -0x1.25fab6p-3, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.10d42f1bb3fe0fdap+11L, 0x1.ae7f1ap-4, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, -0x1.5745bb86e8aecf3ep+8L, -0x1.49a5aep-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.4abc7717e44f3ceap+12L, 0x1.08e882p-2, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.6c3d70de72ca5068p-1L, 0x1.6acb16p-2, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, -0x1.abee260f5c13316ap-2L, 0x1.617728p-2, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.2efd35e9b1d0959p-1L, 0x1.5eba64p-3, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.b52919dc580de858p-1L, -0x1.21dc1cp-3, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -0x1.76d57fa96b7d17bp-1L, -0x1.57d328p-3, INEXACT) diff --git a/test/musl/src/math/sanity/sinl.h b/test/musl/src/math/sanity/sinl.h new file mode 100644 index 00000000..820cc523 --- /dev/null +++ b/test/musl/src/math/sanity/sinl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -0x1.f4719cbe20bd109ap-1L, -0x1.f6addp-2, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, -0x1.dde0a33834425426p-1L, 0x1.2fdc6p-3, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.ba6a5410cb9cfd2ap-1L, -0x1.41edcap-4, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, -0x1.f7aed6ca5f321d92p-3L, 0x1.ba498cp-3, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.41acd05fae3d46aep-3L, 0x1.30647p-2, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.3ab7ecc98df99d24p-1L, -0x1.4d10a4p-5, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, -0x1.94fbf72645bfb648p-2L, 0x1.5772aep-2, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.10baf3a5f550e376p-1L, 0x1.eaff04p-3, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.65f1c5e591db2ac6p-1L, 0x1.e36f2ep-2, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -0x1.417318671b83ccp-1L, 0x1.b27416p-2, INEXACT) diff --git a/test/musl/src/math/sanity/sqrt.h b/test/musl/src/math/sanity/sqrt.h new file mode 100644 index 00000000..7528347f --- /dev/null +++ b/test/musl/src/math/sanity/sqrt.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868e18bc67p+2, 0x1.0ad1adc856f29p+1, -0x1.261a8p-4, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206f0a19dcc4p+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.85a7d346e8c13p+1, -0x1.faade8p-7, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.a0937a0b92ccbp-1, -0x1.60ffeep-4, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, nan, 0x0p+0, INVALID) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.7fbf4b5a076bcp-1, -0x1.91fae8p-4, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.c27ce94ff39c5p-1, -0x1.7c2744p-2, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/sanity/sqrtf.h b/test/musl/src/math/sanity/sqrtf.h new file mode 100644 index 00000000..f94a2402 --- /dev/null +++ b/test/musl/src/math/sanity/sqrtf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868p+2, 0x1.0ad1aep+1, 0x1.47b8a2p-2, INEXACT) +T(RN, -0x1.0c34b4p+3, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206fp+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbcp+3, 0x1.85a7d4p+1, 0x1.9b6e6ap-5, INEXACT) +T(RN, 0x1.52efdp-1, 0x1.a0937ap-1, 0x1.cadb0cp-3, INEXACT) +T(RN, -0x1.a05cc8p-2, nan, 0x0p+0, INVALID) +T(RN, 0x1.1f9efap-1, 0x1.7fbf4cp-1, 0x1.e2f46p-5, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.c27ce8p-1, -0x1.f32fe4p-2, INEXACT) +T(RN, -0x1.5b86eap-1, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/sanity/sqrtl.h b/test/musl/src/math/sanity/sqrtl.h new file mode 100644 index 00000000..1e080815 --- /dev/null +++ b/test/musl/src/math/sanity/sqrtl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.0ad1adc856f294cp+1L, -0x1.17be3ap-4, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206f0a19dcc3948p+2L, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.85a7d346e8c12d86p+1L, 0x1.8e5032p-3, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.a0937a0b92ccade8p-1L, -0x1.895944p-3, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, nan, 0x0p+0, INVALID) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.7fbf4b5a076bbfd2p-1L, 0x1.4285p-3, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.c27ce94ff39c591p-1L, 0x1.948a58p-3, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/sanity/tan.h b/test/musl/src/math/sanity/tan.h new file mode 100644 index 00000000..6905b29b --- /dev/null +++ b/test/musl/src/math/sanity/tan.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, 0x1.281a45be8b0e9p+2, -0x1.174e7cp-2, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 0x1.4cd314f1eb1cap+1, 0x1.0f7676p-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, 0x1.b77c53c4e6eefp+0, -0x1.f999b4p-3, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, -0x1.03d263370e201p-2, -0x1.df33ap-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, -0x1.45b7ca2965d5bp-3, -0x1.12995ap-4, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.8eff596ce9282p-1, -0x1.37c18p-5, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, -0x1.b8ef153765cbdp-2, -0x1.7a94e2p-4, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.4241333a0816bp-1, -0x1.49a3bp-2, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.f49ca061b9346p-1, -0x1.92c532p-3, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -0x1.9cfd1f14093f9p-1, -0x1.1528ap-4, INEXACT) diff --git a/test/musl/src/math/sanity/tanf.h b/test/musl/src/math/sanity/tanf.h new file mode 100644 index 00000000..b90a7a9c --- /dev/null +++ b/test/musl/src/math/sanity/tanf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, 0x1.281a24p+2, 0x1.f6ebacp-3, INEXACT) +T(RN, 0x1.161868p+2, 0x1.4cd308p+1, 0x1.7601aap-2, INEXACT) +T(RN, -0x1.0c34b4p+3, 0x1.b77c5p+0, 0x1.4e9dd6p-4, INEXACT) +T(RN, -0x1.a206fp+2, -0x1.03d258p-2, 0x1.dadc1cp-3, INEXACT) +T(RN, 0x1.288bbcp+3, -0x1.45b78cp-3, -0x1.31ca9cp-7, INEXACT) +T(RN, 0x1.52efdp-1, 0x1.8eff58p-1, -0x1.14e09ap-4, INEXACT) +T(RN, -0x1.a05cc8p-2, -0x1.b8ef16p-2, 0x1.7a4608p-8, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.424134p-1, -0x1.58d878p-3, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.f49cap-1, 0x1.8f0beap-2, INEXACT) +T(RN, -0x1.5b86eap-1, -0x1.9cfd1ep-1, 0x1.f7909p-4, INEXACT) diff --git a/test/musl/src/math/sanity/tanh.h b/test/musl/src/math/sanity/tanh.h new file mode 100644 index 00000000..cc96b2b2 --- /dev/null +++ b/test/musl/src/math/sanity/tanh.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -0x1.fffff9649b986p-1, 0x1.a3363ep-7, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 0x1.ffd3eb92ecb35p-1, 0x1.424126p-3, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.fffffc7a6e2f7p-1, 0x1.1e912cp-2, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, -0x1.ffff719f86d17p-1, -0x1.c57bfap-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.ffffff669fd4ep-1, 0x1.c8fc72p-2, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.28cc46a511b7dp-1, 0x1.f4f1fap-2, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, -0x1.8ad6e020e7335p-2, 0x1.7093c6p-2, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.04c099b785835p-1, -0x1.93d47ap-2, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.4c75f57adc005p-1, -0x1.f5b2bap-2, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -0x1.2e723524f038ep-1, -0x1.dc681ep-7, INEXACT) diff --git a/test/musl/src/math/sanity/tanhf.h b/test/musl/src/math/sanity/tanhf.h new file mode 100644 index 00000000..37ad5b34 --- /dev/null +++ b/test/musl/src/math/sanity/tanhf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -0x1.fffffap-1, -0x1.36c82ep-2, INEXACT) +T(RN, 0x1.161868p+2, 0x1.ffd3ecp-1, 0x1.b927bep-3, INEXACT) +T(RN, -0x1.0c34b4p+3, -0x1.fffffcp-1, 0x1.e9b8dap-3, INEXACT) +T(RN, -0x1.a206fp+2, -0x1.ffff72p-1, -0x1.81eff6p-3, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1p+0, 0x1.32c044p-3, INEXACT) +T(RN, 0x1.52efdp-1, 0x1.28cc46p-1, -0x1.c9f8c8p-5, INEXACT) +T(RN, -0x1.a05cc8p-2, -0x1.8ad6ep-2, 0x1.662e9cp-2, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.04c09ap-1, -0x1.39185ep-3, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.4c75f6p-1, 0x1.ba104p-2, INEXACT) +T(RN, -0x1.5b86eap-1, -0x1.2e7234p-1, 0x1.a1c772p-2, INEXACT) diff --git a/test/musl/src/math/sanity/tanhl.h b/test/musl/src/math/sanity/tanhl.h new file mode 100644 index 00000000..57fd5168 --- /dev/null +++ b/test/musl/src/math/sanity/tanhl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -0x1.fffff9649b986034p-1L, 0x1.a18294p-3, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.ffd3eb92ecb34d86p-1L, 0x1.59a84cp-4, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.fffffc7a6e2f747ap-1L, 0x1.0be1ap-3, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, -0x1.ffff719f86d168eap-1L, -0x1.b9e9a8p-6, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.ffffff669fd4d8dcp-1L, -0x1.c1a3bep-6, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.28cc46a511b7c46cp-1L, -0x1.f7055p-5, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, -0x1.8ad6e020e7335232p-2L, -0x1.3dd4f2p-3, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.04c099b78583545ep-1L, 0x1.89fdc8p-3, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.4c75f57adc005b04p-1L, 0x1.064a9cp-6, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -0x1.2e723524f038e18cp-1L, 0x1.815252p-4, INEXACT) diff --git a/test/musl/src/math/sanity/tanl.h b/test/musl/src/math/sanity/tanl.h new file mode 100644 index 00000000..4ac178da --- /dev/null +++ b/test/musl/src/math/sanity/tanl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, 0x1.281a45be8b0de712p+2L, -0x1.a8c032p-3, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.4cd314f1eb1d104cp+1L, 0x1.285a14p-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, 0x1.b77c53c4e6efeb24p+0L, -0x1.64a47ep-2, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, -0x1.03d263370e1f9618p-2L, -0x1.1769dp-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, -0x1.45b7ca2965d6bf24p-3L, 0x1.36c1dep-2, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.8eff596ce9281788p-1L, 0x1.167168p-3, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, -0x1.b8ef153765cbc98ep-2L, 0x1.4e169ep-2, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.4241333a0816b17cp-1L, -0x1.61bac8p-3, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.f49ca061b9346de4p-1L, 0x1.3d42f6p-3, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -0x1.9cfd1f14093f936ep-1L, 0x1.23b282p-3, INEXACT) diff --git a/test/musl/src/math/sanity/tgamma.h b/test/musl/src/math/sanity/tgamma.h new file mode 100644 index 00000000..66877087 --- /dev/null +++ b/test/musl/src/math/sanity/tgamma.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -0x1.53910aafcfc6ep-12, -0x1.2a4b0ap-2, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 0x1.2d21bb9ee4ac5p+3, -0x1.b4d14ep-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1.338b18a109d63p-15, -0x1.455312p-3, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, -0x1.9fd0c1ce12f14p-10, -0x1.9c637p-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.1820b9073aa73p+16, -0x1.f73da2p-3, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x1.5ccfc0bb0fe58p+0, 0x1.d71de8p-8, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, -0x1.d9a22b2f3f253p+1, -0x1.4d79f4p-2, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x1.957bda3719fc9p+0, -0x1.1dc162p-2, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x1.31cf2b7d5732dp+0, 0x1.57b606p-3, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -0x1.068c009f1d8f8p+2, 0x1.289bf8p-4, INEXACT) diff --git a/test/musl/src/math/sanity/tgammaf.h b/test/musl/src/math/sanity/tgammaf.h new file mode 100644 index 00000000..fbf6b36f --- /dev/null +++ b/test/musl/src/math/sanity/tgammaf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -0x1.539082p-12, -0x1.bff8b4p-4, INEXACT) +T(RN, 0x1.161868p+2, 0x1.2d21b6p+3, -0x1.a822d8p-7, INEXACT) +T(RN, -0x1.0c34b4p+3, -0x1.338b14p-15, 0x1.1732d2p-2, INEXACT) +T(RN, -0x1.a206fp+2, -0x1.9fd0c8p-10, 0x1.0b4a7cp-2, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.1820ccp+16, 0x1.ea9954p-2, INEXACT) +T(RN, 0x1.52efdp-1, 0x1.5ccfc2p+0, 0x1.14b9cap-2, INEXACT) +T(RN, -0x1.a05cc8p-2, -0x1.d9a22ap+1, 0x1.d064fap-2, INEXACT) +T(RN, 0x1.1f9efap-1, 0x1.957bdap+0, 0x1.b1d294p-2, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x1.31cf2cp+0, 0x1.2c487ep-4, INEXACT) +T(RN, -0x1.5b86eap-1, -0x1.068cp+2, 0x1.47905ap-4, INEXACT) diff --git a/test/musl/src/math/sanity/tgammal.h b/test/musl/src/math/sanity/tgammal.h new file mode 100644 index 00000000..d8396564 --- /dev/null +++ b/test/musl/src/math/sanity/tgammal.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -0x1.53910aafcfc4265ap-12L, -0x1.96c686p-5, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 0x1.2d21bb9ee4ac868p+3L, -0x1.8fb678p-3, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1.338b18a109d72e28p-15L, 0x1.b7237cp-5, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, -0x1.9fd0c1ce12f1810ap-10L, 0x1.e5b2cep-2, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.1820b9073aa6e512p+16L, -0x1.b86c72p-4, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x1.5ccfc0bb0fe58504p+0L, 0x1.3c27f2p-2, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, -0x1.d9a22b2f3f252c86p+1L, -0x1.70026ep-3, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x1.957bda3719fc97fap+0L, 0x1.deda9p-2, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x1.31cf2b7d5732c9f2p+0L, -0x1.f9ba28p-2, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -0x1.068c009f1d8f83aap+2L, -0x1.45acb4p-2, INEXACT) diff --git a/test/musl/src/math/sanity/trunc.h b/test/musl/src/math/sanity/trunc.h new file mode 100644 index 00000000..b25308dc --- /dev/null +++ b/test/musl/src/math/sanity/trunc.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -0x1p+3, 0x0p+0, INEXACT) +T(RN, 0x1.161868e18bc67p+2, 0x1p+2, 0x0p+0, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, -0x1p+3, 0x0p+0, INEXACT) +T(RN, -0x1.a206f0a19dcc4p+2, -0x1.8p+2, 0x0p+0, INEXACT) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.2p+3, 0x0p+0, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, -0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1.1f9ef934745cbp-1, 0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, -0x0p+0, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/sanity/truncf.h b/test/musl/src/math/sanity/truncf.h new file mode 100644 index 00000000..fb03eb83 --- /dev/null +++ b/test/musl/src/math/sanity/truncf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -0x1p+3, 0x0p+0, INEXACT) +T(RN, 0x1.161868p+2, 0x1p+2, 0x0p+0, INEXACT) +T(RN, -0x1.0c34b4p+3, -0x1p+3, 0x0p+0, INEXACT) +T(RN, -0x1.a206fp+2, -0x1.8p+2, 0x0p+0, INEXACT) +T(RN, 0x1.288bbcp+3, 0x1.2p+3, 0x0p+0, INEXACT) +T(RN, 0x1.52efdp-1, 0x0p+0, 0x0p+0, INEXACT) +T(RN, -0x1.a05cc8p-2, -0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1.1f9efap-1, 0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1.8c5dbp-1, 0x0p+0, 0x0p+0, INEXACT) +T(RN, -0x1.5b86eap-1, -0x0p+0, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/sanity/truncl.h b/test/musl/src/math/sanity/truncl.h new file mode 100644 index 00000000..35bf7466 --- /dev/null +++ b/test/musl/src/math/sanity/truncl.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f13dep+3L, -0x1p+3L, 0x0p+0, INEXACT) +T(RN, 0x1.161868e18bc67782p+2L, 0x1p+2L, 0x0p+0, INEXACT) +T(RN, -0x1.0c34b3e01e6e682cp+3L, -0x1p+3L, 0x0p+0, INEXACT) +T(RN, -0x1.a206f0a19dcc3948p+2L, -0x1.8p+2L, 0x0p+0, INEXACT) +T(RN, 0x1.288bbb0d6a1e5bdap+3L, 0x1.2p+3L, 0x0p+0, INEXACT) +T(RN, 0x1.52efd0cd80496a5ap-1L, 0x0p+0L, 0x0p+0, INEXACT) +T(RN, -0x1.a05cc754481d0bdp-2L, -0x0p+0L, 0x0p+0, INEXACT) +T(RN, 0x1.1f9ef934745cad6p-1L, 0x0p+0L, 0x0p+0, INEXACT) +T(RN, 0x1.8c5db097f744257ep-1L, 0x0p+0L, 0x0p+0, INEXACT) +T(RN, -0x1.5b86ea8118a0e2bcp-1L, -0x0p+0L, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/sanity/y0.h b/test/musl/src/math/sanity/y0.h new file mode 100644 index 00000000..5ac38410 --- /dev/null +++ b/test/musl/src/math/sanity/y0.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868e18bc67p+2, -0x1.293dc7b9b4947p-3, -0x1.88d258p-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206f0a19dcc4p+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.b65800c37acbap-3, -0x1.4cf06ep-2, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, -0x1.de7c075a80e44p-3, 0x1.7a5942p-2, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, nan, 0x0p+0, INVALID) +T(RN, 0x1.1f9ef934745cbp-1, -0x1.6ea9b7e5ba012p-2, 0x1.615b32p-2, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, -0x1.ccadb2ae7e0f5p-4, -0x1.307206p-2, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/sanity/y0f.h b/test/musl/src/math/sanity/y0f.h new file mode 100644 index 00000000..4f265fea --- /dev/null +++ b/test/musl/src/math/sanity/y0f.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868p+2, -0x1.293dbep-3, 0x1.6ffc42p-4, INEXACT) +T(RN, -0x1.0c34b4p+3, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206fp+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbcp+3, 0x1.b657f6p-3, -0x1.cb5418p-2, INEXACT) +T(RN, 0x1.52efdp-1, -0x1.de7c0cp-3, -0x1.dab3aap-2, INEXACT) +T(RN, -0x1.a05cc8p-2, nan, 0x0p+0, INVALID) +T(RN, 0x1.1f9efap-1, -0x1.6ea9b6p-2, -0x1.c780b4p-4, INEXACT) +T(RN, 0x1.8c5dbp-1, -0x1.ccadb8p-4, -0x1.0fa6f6p-2, INEXACT) +T(RN, -0x1.5b86eap-1, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/sanity/y1.h b/test/musl/src/math/sanity/y1.h new file mode 100644 index 00000000..605a5600 --- /dev/null +++ b/test/musl/src/math/sanity/y1.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868e18bc67p+2, 0x1.5ab54680a5966p-2, 0x1.498536p-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206f0a19dcc4p+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbb0d6a1e6p+3, 0x1.4d2f9a5b066b4p-3, -0x1.150a3ap-6, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, -0x1.2887c4a1be0bbp+0, 0x1.307c16p-3, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, nan, 0x0p+0, INVALID) +T(RN, 0x1.1f9ef934745cbp-1, -0x1.55417537f9fadp+0, -0x1.fd23b4p-3, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, -0x1.02189c42315d1p+0, 0x1.d40398p-2, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/sanity/y1f.h b/test/musl/src/math/sanity/y1f.h new file mode 100644 index 00000000..ada33244 --- /dev/null +++ b/test/musl/src/math/sanity/y1f.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868p+2, 0x1.5ab54ap-2, 0x1.6996cep-3, INEXACT) +T(RN, -0x1.0c34b4p+3, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206fp+2, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbcp+3, 0x1.4d2fa6p-3, -0x1.15d7b2p-3, INEXACT) +T(RN, 0x1.52efdp-1, -0x1.2887c6p+0, -0x1.84f2cp-2, INEXACT) +T(RN, -0x1.a05cc8p-2, nan, 0x0p+0, INVALID) +T(RN, 0x1.1f9efap-1, -0x1.554174p+0, 0x1.abaa28p-3, INEXACT) +T(RN, 0x1.8c5dbp-1, -0x1.02189cp+0, 0x1.393376p-2, INEXACT) +T(RN, -0x1.5b86eap-1, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/sanity/yn.h b/test/musl/src/math/sanity/yn.h new file mode 100644 index 00000000..98cae36a --- /dev/null +++ b/test/musl/src/math/sanity/yn.h @@ -0,0 +1,10 @@ +T(RN, -0x1.02239f3c6a8f1p+3, -2, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868e18bc67p+2, -1, -0x1.5ab54680a5966p-2, -0x1.498536p-2, INEXACT) +T(RN, -0x1.0c34b3e01e6e7p+3, 0, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206f0a19dcc4p+2, 1, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbb0d6a1e6p+3, 2, -0x1.6e6fa7c6fbbf7p-3, -0x1.d687b8p-3, INEXACT) +T(RN, 0x1.52efd0cd80497p-1, 3, -0x1.2935d021584c1p+4, 0x1.739fecp-2, INEXACT) +T(RN, -0x1.a05cc754481d1p-2, 4, nan, 0x0p+0, INVALID) +T(RN, 0x1.1f9ef934745cbp-1, 5, -0x1.1691a15d9cdfp+12, 0x1.cdf17cp-6, INEXACT) +T(RN, 0x1.8c5db097f7442p-1, 6, -0x1.6dbc18f9d5ddep+13, -0x1.c1596ap-3, INEXACT) +T(RN, -0x1.5b86ea8118a0ep-1, 7, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/sanity/ynf.h b/test/musl/src/math/sanity/ynf.h new file mode 100644 index 00000000..98ad1151 --- /dev/null +++ b/test/musl/src/math/sanity/ynf.h @@ -0,0 +1,10 @@ +T(RN, -0x1.0223ap+3, -2, nan, 0x0p+0, INVALID) +T(RN, 0x1.161868p+2, -1, -0x1.5ab54ap-2, -0x1.6996cep-3, INEXACT) +T(RN, -0x1.0c34b4p+3, 0, nan, 0x0p+0, INVALID) +T(RN, -0x1.a206fp+2, 1, nan, 0x0p+0, INVALID) +T(RN, 0x1.288bbcp+3, 2, -0x1.6e6f9cp-3, -0x1.b964fp-3, INEXACT) +T(RN, 0x1.52efdp-1, 3, -0x1.2935d2p+4, 0x1.47d13p-4, INEXACT) +T(RN, -0x1.a05cc8p-2, 4, nan, 0x0p+0, INVALID) +T(RN, 0x1.1f9efap-1, 5, -0x1.16919ep+12, -0x1.d10586p-3, INEXACT) +T(RN, 0x1.8c5dbp-1, 6, -0x1.6dbc1cp+13, 0x1.d597eep-4, INEXACT) +T(RN, -0x1.5b86eap-1, 7, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/scalb.c b/test/musl/src/math/scalb.c new file mode 100644 index 00000000..aeb9f778 --- /dev/null +++ b/test/musl/src/math/scalb.c @@ -0,0 +1,45 @@ +#define _DEFAULT_SOURCE 1 +#define _BSD_SOURCE 1 +#include +#include +#include "mtest.h" + +static struct dd_d t[] = { +#include "sanity/scalb.h" +#include "special/scalb.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct dd_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = scalb(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s scalb(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s scalb(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/scalbf.c b/test/musl/src/math/scalbf.c new file mode 100644 index 00000000..ba199a6d --- /dev/null +++ b/test/musl/src/math/scalbf.c @@ -0,0 +1,45 @@ +#define _DEFAULT_SOURCE 1 +#define _BSD_SOURCE 1 +#include +#include +#include "mtest.h" + +static struct ff_f t[] = { +#include "sanity/scalbf.h" +#include "special/scalbf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct ff_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = scalbf(p->x, p->x2); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s scalbf(%a,%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s scalbf(%a,%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->x2, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/scalbln.c b/test/musl/src/math/scalbln.c new file mode 100644 index 00000000..6e24b37d --- /dev/null +++ b/test/musl/src/math/scalbln.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct di_d t[] = { +#include "sanity/scalbln.h" +#include "special/scalbln.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct di_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = scalbln(p->x, p->i); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s scalbln(%a, %lld)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s scalbln(%a, %lld) want %a got %a, ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->i, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/scalblnf.c b/test/musl/src/math/scalblnf.c new file mode 100644 index 00000000..ab19cf2c --- /dev/null +++ b/test/musl/src/math/scalblnf.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct fi_f t[] = { +#include "sanity/scalblnf.h" +#include "special/scalblnf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct fi_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = scalblnf(p->x, p->i); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s scalblnf(%a, %lld)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s scalblnf(%a, %lld) want %a got %a, ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->i, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/scalblnl.c b/test/musl/src/math/scalblnl.c new file mode 100644 index 00000000..24924831 --- /dev/null +++ b/test/musl/src/math/scalblnl.c @@ -0,0 +1,49 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct li_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = scalblnl(p->x, p->i); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s scalblnl(%La, %lld)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s scalblnl(%La, %lld) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->i, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/scalbn.c b/test/musl/src/math/scalbn.c new file mode 100644 index 00000000..9b664dc2 --- /dev/null +++ b/test/musl/src/math/scalbn.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct di_d t[] = { +#include "sanity/scalbn.h" +#include "special/scalbn.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct di_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = scalbn(p->x, p->i); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s scalbn(%a, %lld)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s scalbn(%a, %lld) want %a got %a, ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->i, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/scalbnf.c b/test/musl/src/math/scalbnf.c new file mode 100644 index 00000000..69709a15 --- /dev/null +++ b/test/musl/src/math/scalbnf.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct fi_f t[] = { +#include "sanity/scalbnf.h" +#include "special/scalbnf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct fi_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = scalbnf(p->x, p->i); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s scalbnf(%a, %lld)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s scalbnf(%a, %lld) want %a got %a, ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->i, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/scalbnl.c b/test/musl/src/math/scalbnl.c new file mode 100644 index 00000000..9bc7bf55 --- /dev/null +++ b/test/musl/src/math/scalbnl.c @@ -0,0 +1,49 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct li_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = scalbnl(p->x, p->i); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s scalbnl(%La, %lld)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->i, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s scalbnl(%La, %lld) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->i, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/sin.c b/test/musl/src/math/sin.c new file mode 100644 index 00000000..654c44d3 --- /dev/null +++ b/test/musl/src/math/sin.c @@ -0,0 +1,48 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +// #include "crlibm/sin.h" +#include "ucb/sin.h" +#include "sanity/sin.h" +#include "special/sin.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = sin(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s sin(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + if (p->r != RN) + printf("X "); + else + err++; + printf("%s:%d: %s sin(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + } + } + return !!err; +} diff --git a/test/musl/src/math/sincos.c b/test/musl/src/math/sincos.c new file mode 100644 index 00000000..94c292d2 --- /dev/null +++ b/test/musl/src/math/sincos.c @@ -0,0 +1,45 @@ +#define _GNU_SOURCE 1 +#include +#include +#include "mtest.h" + +static struct d_dd t[] = { +#include "sanity/sincos.h" +#include "special/sincos.h" +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double ysin, ycos; + float dsin, dcos; + int e, i, err = 0; + struct d_dd *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + sincos(p->x, &ysin, &ycos); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s sincos(%a)=%a,%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, p->y2, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + dsin = ulperr(ysin, p->y, p->dy); + dcos = ulperr(ycos, p->y2, p->dy2); + if (!checkulp(dsin, p->r) || !checkulp(dcos, p->r)) { + printf("%s:%d: %s sincos(%a) want %a,%a got %a,%a, ulperr %.3f = %a + %a, %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, p->y2, ysin, ycos, + dsin, dsin-p->dy, p->dy, dcos, dcos-p->dy2, p->dy2); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/sincosf.c b/test/musl/src/math/sincosf.c new file mode 100644 index 00000000..f8df662a --- /dev/null +++ b/test/musl/src/math/sincosf.c @@ -0,0 +1,45 @@ +#define _GNU_SOURCE 1 +#include +#include +#include "mtest.h" + +static struct f_ff t[] = { +#include "sanity/sincosf.h" +#include "special/sincosf.h" +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float ysin, ycos; + float dsin, dcos; + int e, i, err = 0; + struct f_ff *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + sincosf(p->x, &ysin, &ycos); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s sincosf(%a)=%a,%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, p->y2, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + dsin = ulperrf(ysin, p->y, p->dy); + dcos = ulperrf(ycos, p->y2, p->dy2); + if (!checkulp(dsin, p->r) || !checkulp(dcos, p->r)) { + printf("%s:%d: %s sincosf(%a) want %a,%a got %a,%a, ulperr %.3f = %a + %a, %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, p->y2, ysin, ycos, + dsin, dsin-p->dy, p->dy, dcos, dcos-p->dy2, p->dy2); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/sincosl.c b/test/musl/src/math/sincosl.c new file mode 100644 index 00000000..82dc65dc --- /dev/null +++ b/test/musl/src/math/sincosl.c @@ -0,0 +1,50 @@ +#define _GNU_SOURCE 1 +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double ysin, ycos; + float dsin, dcos; + int e, i, err = 0; + struct l_ll *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + sincosl(p->x, &ysin, &ycos); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s sincosl(%La)=%La,%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, p->y2, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + dsin = ulperr(ysin, p->y, p->dy); + dcos = ulperr(ycos, p->y2, p->dy2); + if (!checkulp(dsin, p->r) || !checkulp(dcos, p->r)) { + printf("%s:%d: %s sincosl(%La) want %La,%La got %La,%La, ulperr %.3f = %a + %a, %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, p->y2, ysin, ycos, + dsin, dsin-p->dy, p->dy, dcos, dcos-p->dy2, p->dy2); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/sinf.c b/test/musl/src/math/sinf.c new file mode 100644 index 00000000..3ebc4d82 --- /dev/null +++ b/test/musl/src/math/sinf.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "ucb/sinf.h" +#include "sanity/sinf.h" +#include "special/sinf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = sinf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s sinf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s sinf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/sinh.c b/test/musl/src/math/sinh.c new file mode 100644 index 00000000..73eef1ff --- /dev/null +++ b/test/musl/src/math/sinh.c @@ -0,0 +1,48 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +// #include "crlibm/sinh.h" +#include "ucb/sinh.h" +#include "sanity/sinh.h" +#include "special/sinh.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = sinh(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s sinh(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + if (fabsf(d) < 2.0f || p->r != RN) + printf("X "); + else + err++; + printf("%s:%d: %s sinh(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + } + } + return !!err; +} diff --git a/test/musl/src/math/sinhf.c b/test/musl/src/math/sinhf.c new file mode 100644 index 00000000..f4e38ec3 --- /dev/null +++ b/test/musl/src/math/sinhf.c @@ -0,0 +1,47 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "ucb/sinhf.h" +#include "sanity/sinhf.h" +#include "special/sinhf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = sinhf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s sinhf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + if (p->r != RN) + printf("X "); + else + err++; + printf("%s:%d: %s sinhf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + } + } + return !!err; +} diff --git a/test/musl/src/math/sinhl.c b/test/musl/src/math/sinhl.c new file mode 100644 index 00000000..ff3c3b2a --- /dev/null +++ b/test/musl/src/math/sinhl.c @@ -0,0 +1,54 @@ +#include +#include +#include "mtest.h" + +static struct l_l t[] = { +#if LDBL_MANT_DIG == 53 +// #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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = sinhl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s sinhl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + if (fabsf(d) < 5.0f || p->r != RN) + printf("X "); + else + err++; + printf("%s:%d: %s sinhl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + } + } + return !!err; +} diff --git a/test/musl/src/math/sinl.c b/test/musl/src/math/sinl.c new file mode 100644 index 00000000..f833861f --- /dev/null +++ b/test/musl/src/math/sinl.c @@ -0,0 +1,51 @@ +#include +#include +#include "mtest.h" + +static struct l_l t[] = { +#if LDBL_MANT_DIG == 53 +// #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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = sinl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s sinl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s sinl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/special/acos.h b/test/musl/src/math/special/acos.h new file mode 100644 index 00000000..a20c549e --- /dev/null +++ b/test/musl/src/math/special/acos.h @@ -0,0 +1,10 @@ +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) +T(RN, -0x1.0fd51a5672715p-1, 0x1.10b3beb3ca315p+1, 0x1.1ce0e8p-3, INEXACT) +T(RN, 0x1.f9cf8431025cep-2, 0x1.0ddda02455023p+0, 0x1.c3ae8p-3, INEXACT) diff --git a/test/musl/src/math/special/acosf.h b/test/musl/src/math/special/acosf.h new file mode 100644 index 00000000..21d908d7 --- /dev/null +++ b/test/musl/src/math/special/acosf.h @@ -0,0 +1,11 @@ +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) +T(RN, 0x1.ffa46cp-2, 0x1.0c2f92p+0, -0x1.b164dap-3, INEXACT) +T(RN, -0x1.02a1c8p-1, 0x1.0cd7fap+1, -0x1.ab103cp-3, INEXACT) +T(RN, -0x1.09b7aep-1, 0x1.0ee7eep+1, -0x1.2b0662p-3, INEXACT) diff --git a/test/musl/src/math/special/acosh.h b/test/musl/src/math/special/acosh.h new file mode 100644 index 00000000..a6f23db6 --- /dev/null +++ b/test/musl/src/math/special/acosh.h @@ -0,0 +1,25 @@ +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, -0x0p+0, nan, 0x0p+0, INVALID) +T(RN, -inf, nan, 0x0p+0, INVALID) +// hard cases close to 1 +T(RN, 0x1.001f1c62cf304p+0, 0x1.f8d125ff71ccp-6, -0x1.2d785ap-3, INEXACT) +T(RN, 0x1.00788c223616fp+0, 0x1.f0cb8ee812621p-5, -0x1.1b0c1ap-2, INEXACT) +T(RN, 0x1.007b7a37c7606p+0, 0x1.f6cb68859ae3p-5, 0x1.280488p-3, INEXACT) +T(RN, 0x1.01d173033243cp+0, 0x1.e7e1b18d99376p-4, -0x1.1f3d3ep-4, INEXACT) +T(RN, 0x1.01d8f20e90409p+0, 0x1.ebca3eea5cda5p-4, 0x1.648602p-2, INEXACT) +T(RN, 0x1.01ef6122e68bep+0, 0x1.f74df150afc94p-4, 0x1.e79556p-3, INEXACT) +T(RN, 0x1.06822faf07879p+0, 0x1.ccd73cbc4af78p-3, -0x1.4df79ep-2, INEXACT) +T(RN, 0x1.0691d1ad0b443p+0, 0x1.cefd0e06ac498p-3, -0x1.3cc436p-5, INEXACT) +T(RN, 0x1.069d65411ec51p+0, 0x1.d0928b08facbap-3, -0x1.b83338p-3, INEXACT) +T(RN, 0x1.071d6b2713d08p+0, 0x1.e1bc6a6c345fdp-3, -0x1.74a04ep-3, INEXACT) +T(RN, 0x1.0728405f5140cp+0, 0x1.e328ebe92b32cp-3, -0x1.ae89ap-3, INEXACT) +T(RN, 0x1.07bd2c5c01bcbp+0, 0x1.f6513c44c131p-3, -0x1.203932p-2, INEXACT) +T(RN, 0x1.1aae7c452c859p+0, 0x1.cf8d69288e386p-2, 0x1.1b325ap-2, INEXACT) +T(RN, 0x1.1b28436b06aaep+0, 0x1.d398bd2d43449p-2, -0x1.2cde2p-2, INEXACT) +T(RN, 0x1.1b50764626f1ep+0, 0x1.d4ec67c71794p-2, -0x1.0c09dap-2, INEXACT) +T(RN, 0x1.1be62d08e369bp+0, 0x1.d9d480059e267p-2, -0x1.9895f6p-2, INEXACT) +T(RN, 0x1.1deff88faa587p+0, 0x1.ea855ab4631fep-2, -0x1.4964fp-2, INEXACT) diff --git a/test/musl/src/math/special/acoshf.h b/test/musl/src/math/special/acoshf.h new file mode 100644 index 00000000..353318b1 --- /dev/null +++ b/test/musl/src/math/special/acoshf.h @@ -0,0 +1,8 @@ +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, -0x0p+0, nan, 0x0p+0, INVALID) +T(RN, -inf, nan, 0x0p+0, INVALID) +T(RN, -0x1p+50, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/special/acoshl.h b/test/musl/src/math/special/acoshl.h new file mode 100644 index 00000000..3f1dcc49 --- /dev/null +++ b/test/musl/src/math/special/acoshl.h @@ -0,0 +1,7 @@ +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, -0x0p+0L, nan, 0x0p+0, INVALID) +T(RN, -inf, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/special/acosl.h b/test/musl/src/math/special/acosl.h new file mode 100644 index 00000000..25a9e136 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/asin.h b/test/musl/src/math/special/asin.h new file mode 100644 index 00000000..34065de1 --- /dev/null +++ b/test/musl/src/math/special/asin.h @@ -0,0 +1,10 @@ +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) +T(RN, 0x1.03bd66c158fd6p-1, 0x1.10695e668145dp-1, -0x1.4ae6ep-3, INEXACT) diff --git a/test/musl/src/math/special/asinf.h b/test/musl/src/math/special/asinf.h new file mode 100644 index 00000000..621be0ab --- /dev/null +++ b/test/musl/src/math/special/asinf.h @@ -0,0 +1,10 @@ +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) +T(RN, 0x1.003e86p-1, 0x1.0c5d58p-1, -0x1.2d556p-2, INEXACT) diff --git a/test/musl/src/math/special/asinh.h b/test/musl/src/math/special/asinh.h new file mode 100644 index 00000000..0ade4f1f --- /dev/null +++ b/test/musl/src/math/special/asinh.h @@ -0,0 +1,24 @@ +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) +// hard cases around 0.125 +T(RN, 0x1.fbdd0eedf8143p-3, 0x1.f6cc20d7a594ap-3, -0x1.f327a8p-2, INEXACT) +T(RN, 0x1.df2723491f88fp-3, 0x1.dae2c8444900cp-3, 0x1.cb8b86p-2, INEXACT) +T(RN, 0x1.ef675c6541305p-3, 0x1.eab20432c9598p-3, -0x1.ba9e34p-2, INEXACT) +T(RN, 0x1.f19df3a1722a9p-3, 0x1.ecd8a7f621554p-3, 0x1.dbc1a8p-2, INEXACT) +T(RN, 0x1.f1af09dcfa7d6p-3, 0x1.ece942815ceccp-3, 0x1.e5bb5p-2, INEXACT) +T(RN, 0x1.f339ebbeac5bap-3, 0x1.ee68f10a49c42p-3, -0x1.e28cbp-2, INEXACT) +T(RN, 0x1.f424275dc8787p-3, 0x1.ef4c7fcb51c56p-3, 0x1.6e4e9p-2, INEXACT) +T(RN, 0x1.f60d54a133665p-3, 0x1.f127a8dec0c2p-3, 0x1.f3c9eap-2, INEXACT) +T(RN, 0x1.fdccdaf285ffdp-3, 0x1.f8ad4bed7af4cp-3, 0x1.b1f1f8p-2, INEXACT) +T(RN, 0x1.ff5bec94924c7p-3, 0x1.fa30836c3949ap-3, 0x1.de989p-2, INEXACT) +T(RN, 0x1.028e8fd61c8a5p-2, 0x1.ffc55bd02e9dep-3, -0x1.523c08p-2, INEXACT) +T(RN, 0x1.dc71794e1f137p-2, 0x1.ccbd41a7d058ap-2, 0x1.a944b8p-2, INEXACT) +T(RN, 0x1.df308e177c3cbp-2, 0x1.cf3a638145d7ap-2, 0x1.fb3684p-2, INEXACT) +T(RN, 0x1.ea94e1e267746p-2, 0x1.d9862533f65f6p-2, 0x1.af51ecp-2, INEXACT) +T(RN, 0x1.ecd4f07608dc7p-2, 0x1.db8d6fdcc6d74p-2, -0x1.eeb48p-2, INEXACT) +T(RN, 0x1.f30656c78ee7ep-2, 0x1.e1204e364a186p-2, -0x1.b23ffp-2, INEXACT) +T(RN, 0x1.f5c0c6e41b969p-2, 0x1.e393d3dc3b70ap-2, -0x1.c06dbep-2, INEXACT) +T(RN, 0x1.09c58725300e7p-1, 0x1.fe2c7f25fb172p-2, -0x1.ae9df6p-2, INEXACT) diff --git a/test/musl/src/math/special/asinhf.h b/test/musl/src/math/special/asinhf.h new file mode 100644 index 00000000..ea0ccb8a --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/asinhl.h b/test/musl/src/math/special/asinhl.h new file mode 100644 index 00000000..ab0c4082 --- /dev/null +++ b/test/musl/src/math/special/asinhl.h @@ -0,0 +1,6 @@ +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, 0x1.23456789abcdefp-35L, 0x1.23456789abcdefp-35L, 0x1.f6bfb2p-10, INEXACT) diff --git a/test/musl/src/math/special/asinl.h b/test/musl/src/math/special/asinl.h new file mode 100644 index 00000000..f4bbcee6 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/atan.h b/test/musl/src/math/special/atan.h new file mode 100644 index 00000000..fb8412eb --- /dev/null +++ b/test/musl/src/math/special/atan.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+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) +T(RN, 0x1.62ce8e8c915b7p-1, 0x1.3645b11399275p-1, -0x1.5db652p-3, INEXACT) diff --git a/test/musl/src/math/special/atan2.h b/test/musl/src/math/special/atan2.h new file mode 100644 index 00000000..75ce4687 --- /dev/null +++ b/test/musl/src/math/special/atan2.h @@ -0,0 +1,30 @@ +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) +T(RN, 0x1p-1023, 0x1p+0, 0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+0, 0x1p+1023, 0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.8p+0, 0x1p+1023, 0x1.8p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.8p+0, -0x1p+1023, 0x1.921fb54442d18p+1, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/special/atan2f.h b/test/musl/src/math/special/atan2f.h new file mode 100644 index 00000000..1dc1d856 --- /dev/null +++ b/test/musl/src/math/special/atan2f.h @@ -0,0 +1,28 @@ +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) +T(RN, 0x1p-127, 0x1p+0, 0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+0, 0x1p+127, 0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) diff --git a/test/musl/src/math/special/atan2l.h b/test/musl/src/math/special/atan2l.h new file mode 100644 index 00000000..74113be8 --- /dev/null +++ b/test/musl/src/math/special/atan2l.h @@ -0,0 +1,28 @@ +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) +T(RN, 0x1p-16383L, 0x1p+0L, 0x1p-16383L, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+0L, 0x1p+16383L, 0x1p-16383L, 0x0p+0, INEXACT|UNDERFLOW) diff --git a/test/musl/src/math/special/atanf.h b/test/musl/src/math/special/atanf.h new file mode 100644 index 00000000..0a82bff2 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/atanh.h b/test/musl/src/math/special/atanh.h new file mode 100644 index 00000000..8d1cf8e0 --- /dev/null +++ b/test/musl/src/math/special/atanh.h @@ -0,0 +1,14 @@ +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) +T(RN, 0x1p-66, 0x1p-66, 0x0p+0, INEXACT) +T(RN, 0x1p-1000, 0x1p-1000, 0x0p+0, INEXACT) +T(RN, 0x1p-1024, 0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1024, -0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+1023, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/special/atanhf.h b/test/musl/src/math/special/atanhf.h new file mode 100644 index 00000000..55a6bfb9 --- /dev/null +++ b/test/musl/src/math/special/atanhf.h @@ -0,0 +1,14 @@ +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) +T(RN, 0x1p-66, 0x1p-66, 0x0p+0, INEXACT) +T(RN, 0x1p-100, 0x1p-100, 0x0p+0, INEXACT) +T(RN, 0x1p-128, 0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-128, -0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+127, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/special/atanhl.h b/test/musl/src/math/special/atanhl.h new file mode 100644 index 00000000..5468164d --- /dev/null +++ b/test/musl/src/math/special/atanhl.h @@ -0,0 +1,14 @@ +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) +T(RN, 0x1p-66L, 0x1p-66L, 0x0p+0, INEXACT) +T(RN, 0x1p-16000L, 0x1p-16000L, 0x0p+0, INEXACT) +T(RN, 0x1p-16384L, 0x1p-16384L, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-16384L, -0x1p-16384L, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+16383L, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/special/atanl.h b/test/musl/src/math/special/atanl.h new file mode 100644 index 00000000..232368ba --- /dev/null +++ b/test/musl/src/math/special/atanl.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+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) +T(RN, 0x1.bd04f56701294p-2L, 0x1.a3cdc8cc1f2e6d0ep-2L, 0x1.bc9c04p-9, INEXACT) diff --git a/test/musl/src/math/special/cbrt.h b/test/musl/src/math/special/cbrt.h new file mode 100644 index 00000000..87f59930 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/cbrtf.h b/test/musl/src/math/special/cbrtf.h new file mode 100644 index 00000000..793d807f --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/cbrtl.h b/test/musl/src/math/special/cbrtl.h new file mode 100644 index 00000000..c53e4c00 --- /dev/null +++ b/test/musl/src/math/special/cbrtl.h @@ -0,0 +1,11 @@ +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) +T(RN, -0x1p-16433L, -0x1.428a2f98d728ae22p-5478L, 0x1.eed5b8p-4, INEXACT) diff --git a/test/musl/src/math/special/ceil.h b/test/musl/src/math/special/ceil.h new file mode 100644 index 00000000..17a255b9 --- /dev/null +++ b/test/musl/src/math/special/ceil.h @@ -0,0 +1,45 @@ +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+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+0, -0x1p+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) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RD, 0x1p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RD, 0x1.0001p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RD, -0x1.0001p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.ffffp-1, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.ffffp-1, -0x0p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-100, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-100, -0x0p+0, 0x0p+0, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RU, 0x1p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1.0001p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RU, -0x1.0001p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.ffffp-1, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.ffffp-1, -0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-100, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-100, -0x0p+0, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/special/ceilf.h b/test/musl/src/math/special/ceilf.h new file mode 100644 index 00000000..0cf08261 --- /dev/null +++ b/test/musl/src/math/special/ceilf.h @@ -0,0 +1,45 @@ +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+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+0, -0x1p+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) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RD, 0x1p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RD, 0x1.0001p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RD, -0x1.0001p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.ffffp-1, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.ffffp-1, -0x0p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-100, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-100, -0x0p+0, 0x0p+0, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RU, 0x1p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1.0001p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RU, -0x1.0001p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.ffffp-1, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.ffffp-1, -0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-100, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-100, -0x0p+0, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/special/ceill.h b/test/musl/src/math/special/ceill.h new file mode 100644 index 00000000..c787a507 --- /dev/null +++ b/test/musl/src/math/special/ceill.h @@ -0,0 +1,45 @@ +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+0L, 0x1p+0L, 0x0p+0, 0) +T(RN, -0x1p+0L, -0x1p+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) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +T(RD, 0x0p+0L, 0x0p+0L, 0x0p+0, 0) +T(RD, -0x0p+0L, -0x0p+0L, 0x0p+0, 0) +T(RD, 0x1p+0L, 0x1p+0L, 0x0p+0, 0) +T(RD, -0x1p+0L, -0x1p+0L, 0x0p+0, 0) +T(RD, 0x1p-1L, 0x1p+0L, 0x0p+0, INEXACT) +T(RD, -0x1p-1L, -0x0p+0L, 0x0p+0, INEXACT) +T(RD, 0x1.0001p+0L, 0x1p+1L, 0x0p+0, INEXACT) +T(RD, -0x1.0001p+0L, -0x1p+0L, 0x0p+0, INEXACT) +T(RD, 0x1.ffffp-1L, 0x1p+0L, 0x0p+0, INEXACT) +T(RD, -0x1.ffffp-1L, -0x0p+0L, 0x0p+0, INEXACT) +T(RD, 0x1p-100L, 0x1p+0L, 0x0p+0, INEXACT) +T(RD, -0x1p-100L, -0x0p+0L, 0x0p+0, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RU, 0x0p+0L, 0x0p+0L, 0x0p+0, 0) +T(RU, -0x0p+0L, -0x0p+0L, 0x0p+0, 0) +T(RU, 0x1p+0L, 0x1p+0L, 0x0p+0, 0) +T(RU, -0x1p+0L, -0x1p+0L, 0x0p+0, 0) +T(RU, 0x1p-1L, 0x1p+0L, 0x0p+0, INEXACT) +T(RU, -0x1p-1L, -0x0p+0L, 0x0p+0, INEXACT) +T(RU, 0x1.0001p+0L, 0x1p+1L, 0x0p+0, INEXACT) +T(RU, -0x1.0001p+0L, -0x1p+0L, 0x0p+0, INEXACT) +T(RU, 0x1.ffffp-1L, 0x1p+0L, 0x0p+0, INEXACT) +T(RU, -0x1.ffffp-1L, -0x0p+0L, 0x0p+0, INEXACT) +T(RU, 0x1p-100L, 0x1p+0L, 0x0p+0, INEXACT) +T(RU, -0x1p-100L, -0x0p+0L, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/special/copysign.h b/test/musl/src/math/special/copysign.h new file mode 100644 index 00000000..7f4dfc91 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/copysignf.h b/test/musl/src/math/special/copysignf.h new file mode 100644 index 00000000..dbc6b2a9 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/copysignl.h b/test/musl/src/math/special/copysignl.h new file mode 100644 index 00000000..bc4ca049 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/cos.h b/test/musl/src/math/special/cos.h new file mode 100644 index 00000000..72c383cf --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/cosf.h b/test/musl/src/math/special/cosf.h new file mode 100644 index 00000000..f21df8f8 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/cosh.h b/test/musl/src/math/special/cosh.h new file mode 100644 index 00000000..36555719 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/coshf.h b/test/musl/src/math/special/coshf.h new file mode 100644 index 00000000..a664f58d --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/coshl.h b/test/musl/src/math/special/coshl.h new file mode 100644 index 00000000..28faf34a --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/cosl.h b/test/musl/src/math/special/cosl.h new file mode 100644 index 00000000..c9d5f932 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/erf.h b/test/musl/src/math/special/erf.h new file mode 100644 index 00000000..112b4c31 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/erfc.h b/test/musl/src/math/special/erfc.h new file mode 100644 index 00000000..fc667684 --- /dev/null +++ b/test/musl/src/math/special/erfc.h @@ -0,0 +1,6 @@ +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) +T(RN, 0x1.5db559fe5c0bap+0, 0x1.b53cf571d328fp-5, 0x1.900982p-2, INEXACT) diff --git a/test/musl/src/math/special/erfcf.h b/test/musl/src/math/special/erfcf.h new file mode 100644 index 00000000..752bbb81 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/erfcl.h b/test/musl/src/math/special/erfcl.h new file mode 100644 index 00000000..26b775da --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/erff.h b/test/musl/src/math/special/erff.h new file mode 100644 index 00000000..4b157252 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/erfl.h b/test/musl/src/math/special/erfl.h new file mode 100644 index 00000000..4c218d97 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/exp.h b/test/musl/src/math/special/exp.h new file mode 100644 index 00000000..b4885ecb --- /dev/null +++ b/test/musl/src/math/special/exp.h @@ -0,0 +1,11 @@ +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) +T(RN, 0x1.0a2b2ffffffffp+0, 0x1.6a09f771c562ap+1, 0x1.81164cp-3, INEXACT) +T(RN, -0x1.0a2b2ffffffffp+0, 0x1.6a09d55e22e44p-2, 0x1.02caeep-2, INEXACT) +T(RN, 0x1.0a2b28p+0, 0x1.6a09ec2175d46p+1, -0x1.ac74b4p-2, INEXACT) +T(RN, 0x1.0a2b3p+0, 0x1.6a09f771c562bp+1, -0x1.cf397p-3, INEXACT) diff --git a/test/musl/src/math/special/exp10.h b/test/musl/src/math/special/exp10.h new file mode 100644 index 00000000..403147f1 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/exp10f.h b/test/musl/src/math/special/exp10f.h new file mode 100644 index 00000000..75eb9959 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/exp10l.h b/test/musl/src/math/special/exp10l.h new file mode 100644 index 00000000..d0001b8a --- /dev/null +++ b/test/musl/src/math/special/exp10l.h @@ -0,0 +1,8 @@ +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) +T(RN, -0x1.ep+3L, 0x1.203af9ee756159b2p-50L, -0x1.f3a6ep-5, INEXACT) diff --git a/test/musl/src/math/special/exp2.h b/test/musl/src/math/special/exp2.h new file mode 100644 index 00000000..bde4a286 --- /dev/null +++ b/test/musl/src/math/special/exp2.h @@ -0,0 +1,25 @@ +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) +T(RN, 0x1.ff8p+0, 0x1.ff4eaca4391b6p+1, 0x1.2e60c6p-3, INEXACT) +T(RN, -0x1.fef3333333333p+9, 0x1.125fbee2506bp-1022, -0x1.c612ecp-3, INEXACT) +T(RN, -0x1.ffp+9, 0x1p-1022, 0x0p+0, 0) +T(RN, -0x1.ff0cccccccccdp+9, 0x1.ddb680117aa8ep-1023, 0x1.966dfcp-3, INEXACT|UNDERFLOW) +T(RN, -0x1.ff8p+9, 0x1p-1023, 0x0p+0, 0) +T(RN, 0x1.fff3333333333p+9, 0x1.ddb680117aa8ep+1023, 0x1.966dfcp-2, INEXACT) +T(RN, 0x1p+10, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.0006666666666p+10, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.91eb851eb851fp+1, 0x1.1a167423fc31cp+3, 0x1.9287b8p-2, INEXACT) +T(RN, -0x1.ff4p+9, 0x1.6a09e667f3bccp-1023, -0x1.21166p-2, INEXACT|UNDERFLOW) +T(RN, -0x1.ff8p+9, 0x1p-1023, 0x0p+0, 0) +T(RN, -0x1.ffcp+9, 0x1.6a09e667f3bccp-1024, -0x1.21166p-3, INEXACT|UNDERFLOW) +T(RN, -0x1p+10, 0x1p-1024, 0x0p+0, 0) +T(RN, -0x1.004p+10, 0x1p-1025, 0x0p+0, 0) +T(RN, -0x1.0c8p+10, 0x1p-1074, 0x0p+0, 0) +T(RN, -0x1.0cap+10, 0x1p-1074, 0x1.2bec34p-2, INEXACT|UNDERFLOW) +T(RN, -0x1.0ccp+10, 0x0p+0, -0x1p-1, INEXACT|UNDERFLOW) +T(RN, -0x1p+11, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) diff --git a/test/musl/src/math/special/exp2f.h b/test/musl/src/math/special/exp2f.h new file mode 100644 index 00000000..6b64326b --- /dev/null +++ b/test/musl/src/math/special/exp2f.h @@ -0,0 +1,14 @@ +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) +T(RN, -0x1.2bccccp+7, 0x1p-149, 0x1.db3feap-2, INEXACT|UNDERFLOW) +T(RN, -0x1.2cp+7, 0x0p+0, -0x1p-1, INEXACT|UNDERFLOW) +T(RN, -0x1.2c3334p+7, 0x0p+0, -0x1.ddb5fcp-2, INEXACT|UNDERFLOW) +T(RN, 0x1.ff999ap+6, 0x1.ddb6a2p+127, 0x1.a36a36p-2, INEXACT) +T(RN, 0x1p+7, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.003334p+7, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.91eb86p+1, 0x1.1a1676p+3, 0x1.07c524p-2, INEXACT) diff --git a/test/musl/src/math/special/exp2l.h b/test/musl/src/math/special/exp2l.h new file mode 100644 index 00000000..bed2937a --- /dev/null +++ b/test/musl/src/math/special/exp2l.h @@ -0,0 +1,26 @@ +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) +T(RN, -0x1.00f799999999999ap+14L, 0x1p-16445L, 0x1.db4082p-2, INEXACT|UNDERFLOW) +T(RN, -0x1.00f8p+14L, 0x0p+0L, -0x1p-1, INEXACT|UNDERFLOW) +T(RN, -0x1.00f8666666666666p+14L, 0x0p+0L, -0x1.ddb68p-2, INEXACT|UNDERFLOW) +T(RN, 0x1.ffff333333333334p+13L, 0x1.ddb680117ab141f6p+16383L, -0x1.b531eep-2, INEXACT) +T(RN, 0x1p+14L, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.0000666666666666p+14L, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.91eb851eb851eb86p+1L, 0x1.1a167423fc31b2ep+3L, 0x1.6b7e14p-2, INEXACT) +T(RN, -0x1.fffp+13L, 0x1p-16382L, 0x0p+0, 0) +T(RN, -0x1.fff4p+13L, 0x1.6a09e667f3bcc908p-16383L, -0x1.65f626p-3, INEXACT|UNDERFLOW) +T(RN, -0x1.fff8p+13L, 0x1p-16383L, 0x0p+0, 0) +T(RN, -0x1.fffcp+13L, 0x1.6a09e667f3bcc908p-16384L, -0x1.65f626p-4, INEXACT|UNDERFLOW) +T(RN, -0x1p+14L, 0x1p-16384L, 0x0p+0, 0) +T(RN, -0x1.0002p+14L, 0x1.6a09e667f3bcc91p-16385L, 0x1.d3413cp-2, INEXACT|UNDERFLOW) +T(RN, -0x1.0004p+14L, 0x1p-16385L, 0x0p+0, 0) +T(RN, -0x1.00f4p+14L, 0x1p-16445L, 0x0p+0, 0) +T(RN, -0x1.00f6p+14L, 0x1p-16445L, 0x1.2bec34p-2, INEXACT|UNDERFLOW) +T(RN, 0x1.999999999999999ap-4L, 0x1.125fbee250664262p+0L, -0x1.5e1baap-2, INEXACT) +T(RN, -0x1.999999999999999ap-4L, 0x1.ddb680117ab120dap-1L, -0x1.a1ef26p-8, INEXACT) +T(RN, 0x1p-16384L, 0x1p+0L, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/special/expf.h b/test/musl/src/math/special/expf.h new file mode 100644 index 00000000..1062d08a --- /dev/null +++ b/test/musl/src/math/special/expf.h @@ -0,0 +1,14 @@ +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) +T(RN, 0x1.62e42ep+6, 0x1.ffff08p+127, -0x1.7364p-4, INEXACT) +T(RN, 0x1.62e43p+6, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.9fe368p+6, 0x1p-149, 0x1.ffffeap-2, INEXACT|UNDERFLOW) +T(RN, -0x1.9fe36ap+6, 0x0p+0, -0x1.ffff16p-2, INEXACT|UNDERFLOW) +T(RN, 0x1.62e42ep-2, 0x1.6a09e6p+0, 0x1.1d2196p-3, INEXACT) +T(RN, 0x1.62e43p-2, 0x1.6a09e6p+0, -0x1.b6f236p-3, INEXACT) +T(RN, 0x1.62e432p-2, 0x1.6a09e8p+0, 0x1.ba7cfep-2, INEXACT) diff --git a/test/musl/src/math/special/expl.h b/test/musl/src/math/special/expl.h new file mode 100644 index 00000000..70759d99 --- /dev/null +++ b/test/musl/src/math/special/expl.h @@ -0,0 +1,37 @@ +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) +T(RN, 0x1p-65L, 0x1p+0L, -0x1p-2, INEXACT) +T(RN, 0x1p-64L, 0x1.0000000000000002p+0L, 0x1p-1, INEXACT) +T(RN, 0x1.8ffffffffffffffp-60L, 0x1.000000000000001ap+0L, 0x1p-1, INEXACT) +T(RN, 0x1.8fffffffffffffp-60L, 0x1.0000000000000018p+0L, -0x1p-1, INEXACT) +T(RN, 0x1p-33L, 0x1.000000008p+0L, -0x1p-4, INEXACT) +T(RN, -0x1p-33L, 0x1.ffffffffp-1L, -0x1p-3, INEXACT) +T(RN, 0x1.91eb851eb851eb86p+1L, 0x1.71a9704b9599b65ap+4L, 0x1.699ee4p-4, INEXACT) +T(RN, -0x1.91eb851eb851eb86p+1L, 0x1.62929b2efc7c3bd6p-5L, -0x1.5cd574p-2, INEXACT) +T(RN, 0x1.8b0a3d70a3d70a3ep+3L, 0x1.c0d80ffb740bf4f4p+17L, -0x1.26160cp-3, INEXACT) +T(RN, -0x1.8b0a3d70a3d70a3ep+3L, 0x1.240572f47cb85b4p-18L, 0x1.7eb422p-3, INEXACT) +T(RN, 0x1.f4p+9L, 0x1.9e72379aed73ad8p+1442L, -0x1.58acfep-3, INEXACT) +T(RN, 0x1.388p+13L, 0x1.eeb3183dcd959f14p+14426L, -0x1.bfc62ap-2, INEXACT) +T(RN, 0x1.86ap+16L, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.62e42fefa39ef356p+16383L, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.62e42fefa39ef358p+16383L, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.f4p+9L, 0x1.3c4219e4189540f4p-1443L, 0x1.b61724p-2, INEXACT) +T(RN, -0x1.388p+13L, 0x1.08f3e53f28a859c8p-14427L, 0x1.254e18p-4, INEXACT) +T(RN, -0x1.86ap+16L, 0x0p+0L, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1.62e42fefa39ef356p+16383L, 0x0p+0L, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1.62e42fefa39ef358p+16383L, 0x0p+0L, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.62e42fefa39ef356p+13L, 0x1.ffffffffffff9b0ep+16383L, -0x1.319ffp-4, INEXACT) +T(RN, 0x1.62e42fefa39ef358p+13L, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.643bfcfe13c57552p+13L, 0x1p-16445L, 0x1p-1, INEXACT|UNDERFLOW) +T(RN, -0x1.643bfcfe13c57554p+13L, 0x0p+0L, -0x1p-1, INEXACT|UNDERFLOW) +T(RN, 0x1.62e42fefa39ef356p-2L, 0x1.6a09e667f3bcc908p+0L, -0x1.21c97p-4, INEXACT) +T(RN, 0x1.62e42fefa39ef354p-2L, 0x1.6a09e667f3bcc908p+0L, 0x1.21978ap-2, INEXACT) +T(RN, 0x1.62e42fefa39ef352p-2L, 0x1.6a09e667f3bcc906p+0L, -0x1.745e9p-2, INEXACT) +T(RN, -0x1.62e42fefa39ef352p-2L, 0x1.6a09e667f3bcc90ap-1L, -0x1.578dbep-2, INEXACT) +T(RN, -0x1.62e42fefa39ef35p-2L, 0x1.6a09e667f3bcc90cp-1L, 0x1.3e685cp-2, INEXACT) +T(RN, -0x1.f1dc4d7eaf559p+12L, 0x1.c569cb2de9012b2ap-11493L, -0x1.b46f34p-2, INEXACT) diff --git a/test/musl/src/math/special/expm1.h b/test/musl/src/math/special/expm1.h new file mode 100644 index 00000000..5588ceb2 --- /dev/null +++ b/test/musl/src/math/special/expm1.h @@ -0,0 +1,9 @@ +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) +T(RN, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffffffffffep-1023,-0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) diff --git a/test/musl/src/math/special/expm1f.h b/test/musl/src/math/special/expm1f.h new file mode 100644 index 00000000..e4ea0053 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/expm1l.h b/test/musl/src/math/special/expm1l.h new file mode 100644 index 00000000..488539ef --- /dev/null +++ b/test/musl/src/math/special/expm1l.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+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) +T(RN, -0x1.0000666666666666p+14L, -0x1p+0L, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/special/fabs.h b/test/musl/src/math/special/fabs.h new file mode 100644 index 00000000..8cb1e001 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/fabsf.h b/test/musl/src/math/special/fabsf.h new file mode 100644 index 00000000..82d61ade --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/fabsl.h b/test/musl/src/math/special/fabsl.h new file mode 100644 index 00000000..bbe5895e --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/fdim.h b/test/musl/src/math/special/fdim.h new file mode 100644 index 00000000..0b1652f8 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/fdimf.h b/test/musl/src/math/special/fdimf.h new file mode 100644 index 00000000..67ba3c10 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/fdiml.h b/test/musl/src/math/special/fdiml.h new file mode 100644 index 00000000..a4ed6864 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/floor.h b/test/musl/src/math/special/floor.h new file mode 100644 index 00000000..a7438a3e --- /dev/null +++ b/test/musl/src/math/special/floor.h @@ -0,0 +1,45 @@ +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+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+0, -0x1p+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) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RD, 0x1p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.0001p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.0001p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RD, 0x1.ffffp-1, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1.ffffp-1, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-100, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-100, -0x1p+0, 0x0p+0, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RU, 0x1p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.0001p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.0001p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RU, 0x1.ffffp-1, 0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1.ffffp-1, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-100, 0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-100, -0x1p+0, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/special/floorf.h b/test/musl/src/math/special/floorf.h new file mode 100644 index 00000000..2cedbd80 --- /dev/null +++ b/test/musl/src/math/special/floorf.h @@ -0,0 +1,45 @@ +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+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+0, -0x1p+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) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RD, 0x1p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.0001p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.0001p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RD, 0x1.ffffp-1, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1.ffffp-1, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-100, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-100, -0x1p+0, 0x0p+0, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RU, 0x1p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.0001p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.0001p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RU, 0x1.ffffp-1, 0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1.ffffp-1, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-100, 0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-100, -0x1p+0, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/special/floorl.h b/test/musl/src/math/special/floorl.h new file mode 100644 index 00000000..150ba86f --- /dev/null +++ b/test/musl/src/math/special/floorl.h @@ -0,0 +1,45 @@ +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+0L, 0x1p+0L, 0x0p+0, 0) +T(RN, -0x1p+0L, -0x1p+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) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +T(RD, 0x0p+0L, 0x0p+0L, 0x0p+0, 0) +T(RD, -0x0p+0L, -0x0p+0L, 0x0p+0, 0) +T(RD, 0x1p+0L, 0x1p+0L, 0x0p+0, 0) +T(RD, -0x1p+0L, -0x1p+0L, 0x0p+0, 0) +T(RD, 0x1p-1L, 0x0p+0L, 0x0p+0, INEXACT) +T(RD, -0x1p-1L, -0x1p+0L, 0x0p+0, INEXACT) +T(RD, 0x1.0001p+0L, 0x1p+0L, 0x0p+0, INEXACT) +T(RD, -0x1.0001p+0L, -0x1p+1L, 0x0p+0, INEXACT) +T(RD, 0x1.ffffp-1L, 0x0p+0L, 0x0p+0, INEXACT) +T(RD, -0x1.ffffp-1L, -0x1p+0L, 0x0p+0, INEXACT) +T(RD, 0x1p-100L, 0x0p+0L, 0x0p+0, INEXACT) +T(RD, -0x1p-100L, -0x1p+0L, 0x0p+0, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RU, 0x0p+0L, 0x0p+0L, 0x0p+0, 0) +T(RU, -0x0p+0L, -0x0p+0L, 0x0p+0, 0) +T(RU, 0x1p+0L, 0x1p+0L, 0x0p+0, 0) +T(RU, -0x1p+0L, -0x1p+0L, 0x0p+0, 0) +T(RU, 0x1p-1L, 0x0p+0L, 0x0p+0, INEXACT) +T(RU, -0x1p-1L, -0x1p+0L, 0x0p+0, INEXACT) +T(RU, 0x1.0001p+0L, 0x1p+0L, 0x0p+0, INEXACT) +T(RU, -0x1.0001p+0L, -0x1p+1L, 0x0p+0, INEXACT) +T(RU, 0x1.ffffp-1L, 0x0p+0L, 0x0p+0, INEXACT) +T(RU, -0x1.ffffp-1L, -0x1p+0L, 0x0p+0, INEXACT) +T(RU, 0x1p-100L, 0x0p+0L, 0x0p+0, INEXACT) +T(RU, -0x1p-100L, -0x1p+0L, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/special/fma.h b/test/musl/src/math/special/fma.h new file mode 100644 index 00000000..5a3db10d --- /dev/null +++ b/test/musl/src/math/special/fma.h @@ -0,0 +1,849 @@ +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) +T(RN, -0x1p+0, 0x0p+0, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RN, -0x1p+0, 0x1p+0, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p+0, 0x1p+0, -0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p+0, -0x1p+0, -0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p+0, 0x1p+0, -0x1p-1074, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-1074, 0x1p-1074, 0x1.fffffffffffffp-1022, 0x1.fffffffffffffp-1022, 0x0p+0, INEXACT) +T(RN, 0x1p-1074, -0x1p-1074, 0x1.fffffffffffffp-1022, 0x1.fffffffffffffp-1022, 0x0p+0, INEXACT) +T(RN, 0x1p-1074, -0x1p-1074,-0x1.fffffffffffffp-1022,-0x1.fffffffffffffp-1022, 0x0p+0, INEXACT) +T(RN, 0x1p-1074, 0x1p-1074,-0x1.fffffffffffffp-1022,-0x1.fffffffffffffp-1022, 0x0p+0, INEXACT) +T(RN, 0x1p-1074, -0x1p-1074, 0x1p-1074, 0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1074, -0x1p-1074, -0x1p-1074, -0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.0000000000001p+0, 0x1p+0, 0x1p+53, 0x1.0000000000001p+53, 0x1p-1, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1p+53, 0x1.0000000000001p+53, 0x1p-1, INEXACT) +T(RN, 0x1p+0, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp+53, 0x1.fffffffffffffp+53, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep+53, 0x1.fffffffffffffp+53, 0x1p-1, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1p-52, 0x1.0000000000001p+0, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp-53, 0x1.0000000000001p+0, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000005p+0, 0x1.ffffffffffffbp-1, 0x1p-52, 0x1.0000000000003p+0, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000006p+0, 0x1.ffffffffffffdp-1, 0x1p-52, 0x1.0000000000005p+0, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, -0x1p+0, 0x1.ffffffffffffep-54, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, -0x1.fffffffffffffp-1, 0x1.fffffffffffffp-53, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, -0x1p+0, -0x1p-104, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, -0x1.fffffffffffffp-1, 0x1.ffffffffffffcp-54, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, -0x1p+0, -0x1.0000000000003p-53, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, -0x1.fffffffffffffp-1, -0x1.8p-104, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, -0x1.ffffffffffffep-1, 0x1.ffffffffffffap-54, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, -0x1p+0, -0x1.0000000000002p-52, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, -0x1.fffffffffffffp-1, -0x1.0000000000004p-53, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, -0x1.ffffffffffffep-1, -0x1p-103, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, -0x1.ffffffffffffdp-1, 0x1.ffffffffffff8p-54, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp-1, -0x1.fffffffffffffp-1, -0x1.fffffffffffffp-54, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp-1, -0x1.ffffffffffffep-1, 0x1p-106, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep-1, -0x1.fffffffffffffp-1, -0x1.fffffffffffffp-53, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep-1, -0x1.ffffffffffffep-1, -0x1.ffffffffffffep-54, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep-1, -0x1.ffffffffffffdp-1, 0x1p-105, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep-1, -0x1.ffffffffffffcp-1, 0x1.0000000000001p-53, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp-1, 0x1.ffffffffffffdp-1, -0x1p+0, -0x1.fffffffffffffp-52, 0x1p-2, INEXACT) +T(RN, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffbp-1, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff5p+0, 0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffap-1, 0x1p+0, 0x1.ffffffffffff9p+0, 0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffap-1, 0x1.ffffffffffffcp-1, 0x1.ffffffffffff7p+0, 0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffap-1, 0x1.ffffffffffff8p-1, 0x1.ffffffffffff5p+0, 0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff9p-1, 0x1.ffffffffffffdp-1, 0x1.ffffffffffff7p+0, 0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff9p-1, 0x1.ffffffffffff9p-1, 0x1.ffffffffffff5p+0, 0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff8p-1, 0x1.ffffffffffffep-1, 0x1.ffffffffffff7p+0, 0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff8p-1, 0x1.ffffffffffffap-1, 0x1.ffffffffffff5p+0, 0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff7p-1, 0x1.fffffffffffffp-1, 0x1.ffffffffffff7p+0, 0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffbp-1, 0x1.ffffffffffff5p+0, 0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff3p+0, 0x1p-1, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep-1, 0x1.fffffffffffffp+0, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1.ffffffffffffap-1, 0x1.ffffffffffffdp+0, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp+0, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, 0x1.ffffffffffffbp-1, 0x1.ffffffffffffdp+0, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffbp+0, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, 0x1p+0, 0x1.fffffffffffffp+0, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, 0x1.ffffffffffffcp-1, 0x1.ffffffffffffdp+0, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, 0x1.ffffffffffff8p-1, 0x1.ffffffffffffbp+0, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, 0x1.ffffffffffffdp-1, 0x1.ffffffffffffdp+0, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, 0x1.ffffffffffff9p-1, 0x1.ffffffffffffbp+0, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.ffffffffffffbp-1, 0x1.ffffffffffffep-1, 0x1.ffffffffffffdp+0, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.ffffffffffffbp-1, 0x1.ffffffffffffap-1, 0x1.ffffffffffffbp+0, -0x1p-1, INEXACT) +T(RN, 0x1.5872449b765b9p+0, 0x1.c9acf91f8de2bp+0, 0x1.9265607e4d168p+0, 0x1.fd190c77c2a67p+1, -0x1.fffc98p-2, INEXACT) +T(RN, 0x1.81d010b146d0ep+0, 0x1.2d3c680dc9071p+0, 0x1.a80b69538754cp+0, 0x1.b7040b44973a7p+1, 0x1.ffacbcp-2, INEXACT) +T(RN, 0x1.6a44f2252b6a2p+0, 0x1.da452a378b832p+0, 0x1.1fe2ce329104p+0, 0x1.df842b6f48b13p+1, 0x1.ffdda2p-2, INEXACT) +T(RN, 0x1.096b1d26463eep+0, 0x1.d846d3e34333p+0, 0x1.721e3480922b8p+0, 0x1.ade2909c0269fp+1, -0x1.ffe5ecp-2, INEXACT) +T(RN, 0x1.99bd3434c454bp+0, 0x1.03cb8e4115bdep+0, 0x1.109f107188b08p+0, 0x1.5837a47d37fafp+1, 0x1.ffc604p-2, INEXACT) +T(RN, 0x1.ba930a0a78ed2p+0, 0x1.8c24e8d67f636p+0, 0x1.ac49dbfbf8affp+0, 0x1.164947ae6a5d9p+2, -0x1.fffb3p-2, INEXACT) +T(RN, 0x1.be224ad773191p+0, 0x1.d96b77169731fp+0, 0x1.662cfb75d8edep+0, 0x1.27cd67e720f79p+2, 0x1.ffc372p-2, INEXACT) +T(RN, 0x1.59e7a1b0bdb3cp+0, 0x1.2decba4d46421p+0, 0x1.88f4062e96df5p+0, 0x1.90749e4794f79p+1, -0x1.ffe4c4p-2, INEXACT) +T(RN, 0x1.22edf4b4da9a7p+0, 0x1.dfa8d65f506cdp+0, 0x1.2799208da2fbap+0, 0x1.a45a1e99ed7a9p+1, 0x1.ffe5f4p-2, INEXACT) +T(RN, 0x1.ad5b991a2a279p+0, 0x1.f02fd26706024p+0, 0x1.831cdd5c8797cp+0, 0x1.30d3a2ac90a61p+2, 0x1.ffc708p-2, INEXACT) +T(RN, 0x1.531f9620e764ap+0, 0x1.cad61b54d4425p+0, 0x1.df817cae8a9afp+0, 0x1.0fd4e7f8671ddp+2, 0x1.ffce32p-2, INEXACT) +T(RN, 0x1.629a5ad79494fp+0, 0x1.049e58693f4c4p+0, 0x1.45b0109e4d00cp+0, 0x1.5758154e14965p+1, -0x1.fffbfcp-2, INEXACT) +T(RN, 0x1.2f52b53f9240ap+0, 0x1.1d5c686dbb0dap+0, 0x1.6da3e392a4fd4p+0, 0x1.5fe03a6795913p+1, 0x1.ffd484p-2, INEXACT) +T(RN, 0x1.058667552b49ep+0, 0x1.23307bacc1c42p+0, 0x1.5b059b47cd8f5p+0, 0x1.423f752486d13p+1, -0x1.ffd68p-2, INEXACT) +T(RN, 0x1.a717d95337ed8p+0, 0x1.2b1c37846aaadp+0, 0x1.be65672f885b1p+0, 0x1.d65e72303c075p+1, -0x1.ffa07ep-2, INEXACT) +T(RN, 0x1.deb79287b3d32p+0, 0x1.62776b829babap+0, 0x1.67daf18bd2eb1p+0, 0x1.ff5a0d45c69d7p+1, 0x1.fff94ap-2, INEXACT) +T(RN, 0x1.fbf12d3a6de91p+0, 0x1.879fe6124f11p+0, 0x1.9f3f1247a8641p+0, 0x1.2a126c6980019p+2, 0x1.ffae88p-2, INEXACT) +T(RN, 0x1.c589628460e01p+0, 0x1.e1bec1c797533p+0, 0x1.349f30cdb84bbp+0, 0x1.2286118b6f6e5p+2, -0x1.ffce2cp-2, INEXACT) +T(RN, 0x1.46fd6c2c924ebp+0, 0x1.65e2f02e730a1p+0, 0x1.37739d2751098p+0, 0x1.804a71c1f1273p+1, 0x1.ffcf54p-2, INEXACT) +T(RN, 0x1.f99e595ae11fdp+0, 0x1.bd33d9a1d81bp+0, 0x1.932a2a2e244c1p+0, 0x1.409e34f8f2f89p+2, -0x1.ffa16ep-2, INEXACT) +T(RN, 0x1.59ea1e56bfe55p+0, 0x1.6f46b7d412a44p+0, 0x1.80f2bc9a32cc3p+0, 0x1.b89c7640e32ffp+1, -0x1.fff8d8p-2, INEXACT) +T(RN, 0x1.61490fcb44129p+0, 0x1.0038ec4fc35c2p+0, 0x1.df7436ed7a7b7p+0, 0x1.a085ea68d05cfp+1, -0x1.ffa84cp-2, INEXACT) +T(RN, 0x1.d41b98788502bp+0, 0x1.1a7b77843aca6p+0, 0x1.05be891837d36p+0, 0x1.8523596ceced9p+1, -0x1.ffeb74p-2, INEXACT) +T(RN, 0x1.3153cf6f69af9p+0, 0x1.aaa947e38e57ap+0, 0x1.8519f9b590645p+0, 0x1.c0fcab7b46369p+1, 0x1.fffb68p-2, INEXACT) +T(RN, 0x1.c25a1f73581aap+0, 0x1.0a51ffca372ap+0, 0x1.0c77e3ebac5f3p+0, 0x1.707ce48c7d72dp+1, -0x1.ffb368p-2, INEXACT) +T(RN, 0x1.829c2cde44b7p+0, 0x1.f692e86d8cb36p+0, 0x1.455e72d264bfp+0, 0x1.0f16a3b8b3f97p+2, -0x1.ffe97cp-2, INEXACT) +T(RN, 0x1.94729588dcc69p+0, 0x1.c3bb794c6edf8p+0, 0x1.9da4e94d262d2p+0, 0x1.19d4bd84d9fd3p+2, 0x1.fff0f2p-2, INEXACT) +T(RN, 0x1.e6a5e7e39c3d5p+0, 0x1.1b69af2bdd978p+0, 0x1.e7ef1eafa119cp+0, 0x1.00ac5b44c9f31p+2, -0x1.ffd312p-2, INEXACT) +T(RN, 0x1.bc9ba1320700cp-1022, 0x1.981f2e1a451a8p-2, 0x1.046144efc0ceap-1022, 0x1.b594d0e4368efp-1022, -0x1.ffcc42p-2, INEXACT) +T(RN, 0x1.022db53c98d14p-1022, 0x1.21157eef74848p-2, 0x1.2f880432b1bc1p-1022, 0x1.786ad60a02b3dp-1022, -0x1.ffbacp-2, INEXACT) +T(RN, 0x1.805a491fa9597p-1022, 0x1.e0f49d782ff87p-2, 0x1.172a62346206p-1022, 0x1.cbb085199a3f5p-1022, -0x1.ffd226p-2, INEXACT) +T(RN, 0x1.adbc3a9d816dep-1022, 0x1.e039d4431e3cdp-2, 0x1.93ceef6fe18a2p-1022, 0x1.2eabb7dc0e2f1p-1021, 0x1.ffe108p-2, INEXACT) +T(RN, 0x1.645aa5c2df3afp-1022, 0x1.649edfcad854fp-2, 0x1.8b43e0bbaeb01p-1022, 0x1.03af571d2b505p-1021, 0x1.ffbcc6p-2, INEXACT) +T(RN, 0x1.133474a2c0fb1p-1022, 0x1.72442bcbfa01dp-2, 0x1.4a1a21971c5dbp-1022, 0x1.ad9ce7fcefa3fp-1022, -0x1.fff76ap-2, INEXACT) +T(RN, 0x1.8ee3feb00c3e7p-1022, 0x1.53bd9353313bcp-2, 0x1.5501b57dc3b6fp-1022, 0x1.d9598906f0bb3p-1022, -0x1.ffae68p-2, INEXACT) +T(RN, 0x1.161225cfa61e2p-1022, 0x1.b6dd69a0af5bp-2, 0x1.924ffc3ead5c3p-1022, 0x1.04be6fc25367bp-1021, -0x1.ffc18ap-2, INEXACT) +T(RN, 0x1.820f7faf219afp-1022, 0x1.06717ae771f6dp-2, 0x1.0dc5035f5e2afp-1022, 0x1.70b6c3169f043p-1022, -0x1.ffcb1p-2, INEXACT) +T(RN, 0x1.ce0e2ea55040ep-1022, 0x1.ce5a55fa3828dp-2, 0x1.f2f444d50ce59p-1022, 0x1.61ca36f5a8a79p-1021, -0x1.ffdd18p-2, INEXACT) +T(RN, 0x1.a7a271c67cdcfp-1022, 0x1.1e979090e218p-2, 0x1.b1f10b6e2177ap-1022, 0x1.1440cf1c105ebp-1021, -0x1.ffffcp-2, INEXACT) +T(RN, 0x1.76df065829dc6p-1022, 0x1.fb22ab1b86b8bp-2, 0x1.6966267f317cp-1022, 0x1.1186e1f77012dp-1021, -0x1.fffb4p-2, INEXACT) +T(RN, 0x1.8b004a28b70dbp-1022, 0x1.48e5805a8b453p-2, 0x1.0ea791f716557p-1022, 0x1.8d86310bad175p-1022, -0x1.ffdc92p-2, INEXACT) +T(RN, 0x1.fb3391a4b1d23p-1022, 0x1.4d8705b057caep-2, 0x1.d026cb6dae73bp-1022, 0x1.3aad18b424c67p-1021, -0x1.ffbd7ap-2, INEXACT) +T(RN, 0x1.a5ba39730e197p-1022, 0x1.794df89b1cc49p-2, 0x1.24a0a388d0b6bp-1022, 0x1.c0048fd33a417p-1022, -0x1.ffe2fep-2, INEXACT) +T(RN, 0x1.aa9eff070281cp-1022, 0x1.fab05661b48ebp-2, 0x1.cbe2af6c69c6ep-1022, 0x1.4f7ddbe122765p-1021, 0x1.ffe61ap-2, INEXACT) +T(RN, 0x1.758bbff0ec4bap-1022, 0x1.a4a197f3fa424p-2, 0x1.47761e8d142ddp-1022, 0x1.e0e762ee2e7c5p-1022, -0x1.ffc3ap-2, INEXACT) +T(RN, 0x1.4dab43918a9a8p-1022, 0x1.ed667442b4751p-2, 0x1.3f25f82e02e3ep-1022, 0x1.dfec0ee732dcbp-1022, 0x1.ffa57p-2, INEXACT) +T(RN, 0x1.7943735951931p-1022, 0x1.fa6a357c5c9ddp-2, 0x1.0bed44b0b71b4p-1022, 0x1.c6803a6059abfp-1022, 0x1.ffbc5ap-2, INEXACT) +T(RN, 0x1.66c26bc29a5e8p-1022, 0x1.3faed079f761ap-2, 0x1.163ff906dd651p-1022, 0x1.8640492c45959p-1022, -0x1.fffd9cp-2, INEXACT) +T(RN, 0x1.f52172c56bdf5p-1022, 0x1.672b2de422734p-2, 0x1.7bc5d708e5a34p-1022, 0x1.15c5b95145cc7p-1021, 0x1.ffb0c2p-2, INEXACT) +T(RN, 0x1.2f94e89aa7558p-1022, 0x1.dfa6d30835f5ep-2, 0x1.59c6b0d504cf9p-1022, 0x1.e7fa0dd76fbefp-1022, -0x1.ffe9f6p-2, INEXACT) +T(RN, 0x1.6159897ae533cp-1022, 0x1.f3b8892e3a3c8p-2, 0x1.09ca702b7759p-1022, 0x1.b63a7f56fce1fp-1022, -0x1.ffeb68p-2, INEXACT) +T(RN, 0x1.f73d5f4e81fd8p-1022, 0x1.7ccff2642124ap-2, 0x1.e7d836a0c8308p-1022, 0x1.517f1763126d3p-1021, -0x1.ffbe5cp-2, INEXACT) +T(RN, 0x1.b4328925969fbp-1022, 0x1.8fa02832a22d5p-2, 0x1.2084598e2f8c6p-1022, 0x1.cabf43838dc51p-1022, -0x1.ffa0e8p-2, INEXACT) +T(RN, 0x1.66ee60a92676fp-1022, 0x1.eddd2e7681ce4p-2, 0x1.b81d57daeb3a7p-1022, 0x1.329c918ffb683p-1021, 0x1.fff8ccp-2, INEXACT) +T(RN, 0x1.ff2737585895dp-1022, 0x1.fb4bf3828ae4ap-2, 0x1.4a866847740fp-1022, 0x1.23e07e4dbbeabp-1021, 0x1.ffeb94p-2, INEXACT) +T(RN, 0x1.5e2008d269a86p-1022, 0x1.507bbbe4d78eep-2, 0x1.6220c6f83f636p-1022, 0x1.d52d9874f1c75p-1022, 0x1.ffc24cp-2, INEXACT) +T(RN, 0x1.ce7e2e5812d86p-1022, 0x1.0e6689d092e5fp-2, 0x1.1e43fd55c3458p-1022, 0x1.9864925e2fb0fp-1022, -0x1.fff562p-2, INEXACT) +T(RN, 0x1.7b353b81e793dp-1022, 0x1.82b426f874c6dp-2, 0x1.d92b19d21fd5cp-1022, 0x1.342fb0c544a79p-1021, 0x1.ffdaa2p-2, INEXACT) +T(RN, 0x1.5be667823370ap-1022, 0x1.a8a99b163869bp-2, 0x1.95456b68dc3bcp-1022, 0x1.12c638de03c71p-1021, 0x1.ffeb66p-2, INEXACT) +T(RN, 0x1.17b0fc6c850e5p-1022, 0x1.d1d0a4853c315p-2, 0x1.36b79f7c0c24p-1022, 0x1.b5f2baff5635dp-1022, 0x1.fffa58p-2, INEXACT) +T(RN, 0x1.bd97819bacfd8p-1022, 0x1.2c25f267ba4eep-2, 0x1.804b5204a3f3ap-1022, 0x1.01739c190fd97p-1021, 0x1.ffc8c4p-2, INEXACT) +T(RN, 0x1.596577053873dp-1022, 0x1.3562ab2d29949p-2, 0x1.b3f1ee75db6e7p-1022, 0x1.0e268a498009bp-1021, 0x1.ffc2fep-2, INEXACT) +T(RN, 0x1.3c7a68cf0f7b3p-1022, 0x1.9a55c15b167bdp-2, 0x1.7635b7b163c07p-1022, 0x1.f5073b93b7b81p-1022, 0x1.ffd14p-2, INEXACT) +T(RN, 0x1.5825164bc4068p-1022, 0x1.dcbb6e5ff3245p-2, 0x1.52fc3be0e84dap-1022, 0x1.f334771c2dcfbp-1022, 0x1.ffb51ep-2, INEXACT) +T(RN, 0x1.139ea77b760ecp+1022, 0x1.9b25f2fd017eap+2,-0x1.bc16788922b6fp+1023, 0x1.b93aac527380fp+1023, 0x1.ffc782p-2, INEXACT) +T(RN, 0x1.0e6f9c1657d7cp+1022, 0x1.4d5c6b55ab5f1p+2,-0x1.e027dd5742e2cp+1023, 0x1.c0538372b4bbfp+1022, 0x1.ffd564p-2, INEXACT) +T(RN, 0x1.1182524fa411cp+1022, 0x1.a3dba56842d19p+2,-0x1.c1ad59474d71fp+1023, 0x1.bf78969300a77p+1023, 0x1.ffcf36p-2, INEXACT) +T(RN, 0x1.1cbf4fb8ec82p+1022, 0x1.5e32019a84fbbp+2,-0x1.985af08f32edep+1023, 0x1.72af6bbad4a29p+1023, 0x1.ff965cp-2, INEXACT) +T(RN, 0x1.311e25c6db346p+1022, 0x1.4e30db6c4b51dp+2,-0x1.7681f7a9786a7p+1023, 0x1.a61d29434fc13p+1023, -0x1.fffe86p-2, INEXACT) +T(RN, 0x1.1201cf577052fp+1022, 0x1.59730b2db7a16p+2,-0x1.56f1a64a078d5p+1023, 0x1.8c8d801df34d9p+1023, -0x1.ffd9f6p-2, INEXACT) +T(RN, 0x1.3e52335b76e81p+1022, 0x1.4dbd56f857479p+2,-0x1.509340c11bd2ep+1023, 0x1.ed6576837f653p+1023, -0x1.ffc36cp-2, INEXACT) +T(RN, 0x1.18566b4f843cbp+1022, 0x1.444fba10eaf29p+2,-0x1.f927beae57f0ap+1023, 0x1.9a433b9796559p+1022, -0x1.ff6812p-2, INEXACT) +T(RN, 0x1.3fbe544fe1be8p+1022, 0x1.2d2a5fda03639p+2,-0x1.007407dbfd03cp+1023, 0x1.efdb644b613e5p+1023, -0x1.ffc3d8p-2, INEXACT) +T(RN, 0x1.263a0d3bc2e4p+1022, 0x1.4cc198adbc651p+2,-0x1.734b1c1f7fdb8p+1023, 0x1.899878afc0fa3p+1023, 0x1.ff97b2p-2, INEXACT) +T(RN, 0x1.5bf4aec8efc8ep+1022, 0x1.555f0341516c9p+2,-0x1.c706408acd14cp+1023, 0x1.d8f5e18b868bdp+1023, 0x1.ffd836p-2, INEXACT) +T(RN, 0x1.1e57f1af78279p+1022, 0x1.34bc0c7f082b3p+2,-0x1.497b92c1365edp+1023, 0x1.692cb7ec68a93p+1023, -0x1.ffe3f6p-2, INEXACT) +T(RN, 0x1.1d9824cd73511p+1022, 0x1.1d557ddfe47ffp+2,-0x1.556cdb1d20a72p+1023, 0x1.2736a6b6e35f3p+1023, 0x1.ffe43ap-2, INEXACT) +T(RN, 0x1.1ff85a24aff31p+1022, 0x1.39ab374b2680dp+2,-0x1.35e6b07b651b8p+1023, 0x1.8bc7ce2087081p+1023, 0x1.ff9ed4p-2, INEXACT) +T(RN, 0x1.0449b3965227ep+1022, 0x1.4430d4441f9f2p+2, -0x1.a6966c96307ep+1023, 0x1.d94eda8c81771p+1022, -0x1.ffccdap-2, INEXACT) +T(RN, 0x1.3c91fa00fd0c7p+1022, 0x1.1b6661c0b0303p+2,-0x1.f1f2846b64483p+1023, 0x1.95eae0d2644d3p+1022, -0x1.ff0cccp-2, INEXACT) +T(RN, 0x1.0979b36d46534p+1022, 0x1.12fa205f41f7fp+2,-0x1.a83ecf4544a63p+1023, 0x1.2420f34e2aa3dp+1022, 0x1.ff099ap-2, INEXACT) +T(RN, 0x1.4c89df582a599p+1022, 0x1.55f3dc473ea8fp+2, -0x1.e35037292ddfp+1023, 0x1.95109fdbc3771p+1023, -0x1.ffca0cp-2, INEXACT) +T(RN, 0x1.35ee0a669c4fbp+1022, 0x1.2263cb63f386ap+2,-0x1.449218ae35ac7p+1023, 0x1.7a8ed977d817bp+1023, 0x1.ffd704p-2, INEXACT) +T(RN, 0x1.117cc860f61bcp+1022, 0x1.440985b25d994p+2,-0x1.d7a7d82000449p+1023, 0x1.b960b7088e74fp+1022, -0x1.ff777ep-2, INEXACT) +T(RN, 0x1.1e78a37be320fp+1022, 0x1.0db0fce62287bp+2,-0x1.376337da5eb53p+1023, 0x1.24326b9956dfbp+1023, -0x1.ff8b5ep-2, INEXACT) +T(RN, 0x1.0c79b5c8331c2p+1022, 0x1.0aba6ea746b5p+2,-0x1.c86f1fcaf0741p+1023, 0x1.9c135bb2cff85p+1021, 0x1.fe1cc2p-2, INEXACT) +T(RN, 0x1.556c4c072f272p+1022, 0x1.347758d7d4eb5p+2,-0x1.c6fe4f24b248dp+1023, 0x1.6fcc9f756df6dp+1023, -0x1.ffc122p-2, INEXACT) +T(RN, -0x1.e8349b891b2fp-1, 0x1.4a6dec9b72578p-1, 0x1.3b6151ce809ddp-1, 0x1.3a62fe330b355p-11, -0x1.ff89a4p-2, INEXACT) +T(RN, 0x1.2996632ac7d74p-1, -0x1.bb3c58b654d94p-1, 0x1.01a6660e64a31p-1, 0x1.ed045bb956a8ep-15, -0x1.eabe3cp-2, INEXACT) +T(RN, -0x1.c602e894c1df8p-1, 0x1.a1c980e7d3f94p-1, 0x1.7271244b43386p-1, -0x1.ba251fe026e5bp-15, 0x1.fa6bcap-2, INEXACT) +T(RN, -0x1.c84baf47e85cp-1, 0x1.770b5149ef2ep-1, 0x1.4d80f139320bap-1, -0x1.79277433b9e23p-10, 0x1.ffc56ap-2, INEXACT) +T(RN, -0x1.36e667dcf9c6p-1, 0x1.2591f82556b88p-1, 0x1.2452a0f795f95p-1, 0x1.c83c8e63c159fp-3, -0x1.ffffdcp-2, INEXACT) +T(RN, 0x1.88b2cede61e4cp-1, -0x1.71dcab5ad9e9p-3, 0x1.32b27fea2ae97p-3, 0x1.70461909b25e2p-7, -0x1.ffffe6p-2, INEXACT) +T(RN, 0x1.8d1e44002c98p-3, -0x1.af9fdfb347834p-1, 0x1.e280942fb4146p-4, -0x1.761ac23896dfdp-5, 0x1.ffffdep-2, INEXACT) +T(RN, 0x1.236e8cb9492c8p-1, -0x1.d37443a57f1c4p-1, 0x1.ca10df801aabcp-4, -0x1.a1a2cdf0138f9p-2, 0x1.fff07cp-2, INEXACT) +T(RN, -0x1.6ad943e610fb8p-1, -0x1.cef92a7bb18bcp-1, 0x1.f28587d8fb0ep-4, 0x1.866b5204b9aecp-1, -0x1.fff9cep-2, INEXACT) +T(RN, -0x1.60a8569a5d894p-1, -0x1.ca07e29dd171cp-1, 0x1.b6c475ace09ecp-4, 0x1.72549291e2f7ap-1, -0x1.fff924p-2, INEXACT) +T(RN, 0x1.d1962720d678cp-1, -0x1.4548ee45c4084p-1, 0x1.f416ab193d75cp-4, -0x1.d2929879dc853p-2, 0x1.fffe04p-2, INEXACT) +T(RN, -0x1.9ddcb295a7d64p-1, 0x1.67fb3a2068a78p-1, 0x1.da9cd4597fe0ap-4, -0x1.cf4f6eb4fc5d8p-2, 0x1.fffa98p-2, INEXACT) +T(RN, 0x1.c00d16ed45b88p+0, 0x1.c787eddda3664p+0, 0x1.1e3e6f0cc1802p-5, 0x1.931b8f379dcc3p+1, -0x1.ffff4ep-2, INEXACT) +T(RN, 0x1.19c2a2372c184p+0, -0x1.cb506961c19fp+0, 0x1.db1abf3f7ba3ap-6, -0x1.f21c0eab0bc18p+0, 0x1.fffffcp-2, INEXACT) +T(RN, -0x1.3a263218ccd1cp+0, -0x1.e818d390df27cp+0, 0x1.2a81ed71785f5p-5, 0x1.3025ab0f63925p+1, -0x1.ffff2p-2, INEXACT) +T(RN, 0x1.b0b041fbaca58p+0, -0x1.9d5f76d178e6p+0, 0x1.0215c7bb84cf9p-6, -0x1.5b52aec7ef4p+1, 0x1.ffffa6p-2, INEXACT) +T(RN, -0x1.377549d9a87f4p+0, -0x1.a13d4a03dd6d8p+0, 0x1.f190388bc5cc6p-7, 0x1.ff83bebbd6fe4p+0, -0x1.ffffc4p-2, INEXACT) +T(RN, 0x1.6a726c0762ac8p-1, -0x1.d32f2d30e483cp+0, 0x1.f953eb70fbde6p-7, -0x1.46c61b3070332p+0, 0x1.fffffp-2, INEXACT) +T(RN, 0x1.94cf2509d40cp-1, 0x1.721976af6dfbp+0, 0x1.f51a456921c3ep-7, 0x1.28880842acc6p+0, -0x1.ffff84p-2, INEXACT) +T(RN, 0x1.b128eb0ad8728p-1, 0x1.7682566a54268p+0, 0x1.bd4122a074cafp-8, 0x1.3e9469530e762p+0, -0x1.ffffd2p-2, INEXACT) +T(RN, 0x1.c4ae75976e35cp+0, -0x1.11c329dd1160cp+0, 0x1.9993f5e13c9bdp-8, -0x1.e27d925b07cf1p+0, 0x1.ffffdcp-2, INEXACT) +T(RN, -0x1.85f81f88fa3c4p+0, -0x1.17648a494fa18p-1, 0x1.37d305113b48p-10, 0x1.aa367b7490e57p-1, -0x1.fffff4p-2, INEXACT) +T(RN, -0x1.311f2b4319efcp+0, 0x1.abbb5272e3d18p-1, 0x1.35841b7bdbcfep-10, -0x1.fd337f24b39ep-1, 0x1.ffffecp-2, INEXACT) +T(RN, 0x1.ab94369a9a0dp-1, 0x1.9d1e0e0aa3bacp+0, 0x1.0a63ca87cfa78p-11, 0x1.592173ee296b6p+0, -0x1.fffffcp-2, INEXACT) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x0p+0, -0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x0p+0, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, -0x0p+0, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, -0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, -0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RZ, 0x0p+0, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RZ, nan, 0x0p+0, 0x0p+0, nan, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, inf, inf, 0x0p+0, 0) +T(RZ, 0x0p+0, inf, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, inf, 0x0p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x0p+0, 0x0p+0, -inf, -inf, 0x0p+0, 0) +T(RZ, 0x0p+0, -inf, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, -inf, 0x0p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x1p+0, inf, inf, inf, 0x0p+0, 0) +T(RZ, 0x1p+0, inf, -inf, nan, 0x0p+0, INVALID) +T(RZ, 0x1p+0, -inf, -inf, -inf, 0x0p+0, 0) +T(RZ, 0x1p+0, -inf, inf, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+0, inf, inf, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+0, inf, -inf, -inf, 0x0p+0, 0) +T(RZ, -0x1p+0, -inf, -inf, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+0, -inf, inf, inf, 0x0p+0, 0) +T(RZ, 0x1p+0, 0x1p+0, inf, inf, 0x0p+0, 0) +T(RZ, 0x1p+0, 0x1p+0, -inf, -inf, 0x0p+0, 0) +T(RZ, inf, -inf, 0x1p+0, -inf, 0x0p+0, 0) +T(RZ, -inf, -inf, 0x1p+0, inf, 0x0p+0, 0) +T(RZ, inf, inf, nan, nan, 0x0p+0, 0) +T(RZ, inf, nan, inf, nan, 0x0p+0, 0) +T(RZ, nan, inf, inf, nan, 0x0p+0, 0) +// TODO: invalid is optional +T(RZ, inf, 0x0p+0, nan, nan, 0x0p+0, INVALID) +T(RZ, 0x0p+0, inf, nan, nan, 0x0p+0, INVALID) +T(RZ, -inf, 0x0p+0, nan, nan, 0x0p+0, INVALID) +T(RZ, 0x0p+0, -inf, nan, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+0, 0x0p+0, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x1p+0, 0x1p+0, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p+0, 0x1p+0, -0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x1p+0, -0x1p+0, -0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p+0, 0x1p+0, -0x1p-1074, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, 0x1p-1074, 0x1p-1074, 0x1.fffffffffffffp-1022, 0x1.fffffffffffffp-1022, 0x0p+0, INEXACT) +T(RZ, 0x1p-1074, -0x1p-1074, 0x1.fffffffffffffp-1022, 0x1.ffffffffffffep-1022, -0x1p+0, INEXACT) +T(RZ, 0x1p-1074, -0x1p-1074,-0x1.fffffffffffffp-1022,-0x1.fffffffffffffp-1022, 0x0p+0, INEXACT) +T(RZ, 0x1p-1074, 0x1p-1074,-0x1.fffffffffffffp-1022,-0x1.ffffffffffffep-1022, 0x1p+0, INEXACT) +T(RZ, 0x1p-1074, -0x1p-1074, 0x1p-1074, 0x0p+0, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1074, -0x1p-1074, -0x1p-1074, -0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.0000000000001p+0, 0x1p+0, 0x1p+53, 0x1p+53, -0x1p-1, INEXACT) +T(RZ, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1p+53, 0x1p+53, -0x1p-1, INEXACT) +T(RZ, 0x1p+0, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp+53, 0x1.fffffffffffffp+53, -0x1p-1, INEXACT) +T(RZ, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep+53, 0x1.ffffffffffffep+53, -0x1p-1, INEXACT) +T(RZ, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1p-52, 0x1.0000000000001p+0, -0x1p-1, INEXACT) +T(RZ, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp-53, 0x1.0000000000001p+0, -0x1p-1, INEXACT) +T(RZ, 0x1.0000000000005p+0, 0x1.ffffffffffffbp-1, 0x1p-52, 0x1.0000000000003p+0, -0x1p-1, INEXACT) +T(RZ, 0x1.0000000000006p+0, 0x1.ffffffffffffdp-1, 0x1p-52, 0x1.0000000000005p+0, -0x1p-1, INEXACT) +T(RZ, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, -0x1p+0, 0x1.ffffffffffffep-54, 0x0p+0, 0) +T(RZ, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, -0x1.fffffffffffffp-1, 0x1.fffffffffffffp-53, 0x0p+0, 0) +T(RZ, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, -0x1p+0, -0x1p-104, 0x0p+0, 0) +T(RZ, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, -0x1.fffffffffffffp-1, 0x1.ffffffffffffcp-54, 0x0p+0, 0) +T(RZ, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, -0x1p+0, -0x1.0000000000003p-53, 0x0p+0, 0) +T(RZ, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, -0x1.fffffffffffffp-1, -0x1.8p-104, 0x0p+0, 0) +T(RZ, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, -0x1.ffffffffffffep-1, 0x1.ffffffffffffap-54, 0x0p+0, 0) +T(RZ, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, -0x1p+0, -0x1.0000000000002p-52, 0x0p+0, 0) +T(RZ, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, -0x1.fffffffffffffp-1, -0x1.0000000000004p-53, 0x0p+0, 0) +T(RZ, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, -0x1.ffffffffffffep-1, -0x1p-103, 0x0p+0, 0) +T(RZ, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, -0x1.ffffffffffffdp-1, 0x1.ffffffffffff8p-54, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp-1, -0x1.fffffffffffffp-1, -0x1.fffffffffffffp-54, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp-1, -0x1.ffffffffffffep-1, 0x1p-106, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep-1, -0x1.fffffffffffffp-1, -0x1.fffffffffffffp-53, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep-1, -0x1.ffffffffffffep-1, -0x1.ffffffffffffep-54, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep-1, -0x1.ffffffffffffdp-1, 0x1p-105, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep-1, -0x1.ffffffffffffcp-1, 0x1.0000000000001p-53, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp-1, 0x1.ffffffffffffdp-1, -0x1p+0, -0x1.fffffffffffffp-52, 0x1p-2, INEXACT) +T(RZ, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffbp-1, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff4p+0, -0x1p-1, INEXACT) +T(RZ, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffap-1, 0x1p+0, 0x1.ffffffffffff8p+0, -0x1p-1, INEXACT) +T(RZ, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffap-1, 0x1.ffffffffffffcp-1, 0x1.ffffffffffff6p+0, -0x1p-1, INEXACT) +T(RZ, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffap-1, 0x1.ffffffffffff8p-1, 0x1.ffffffffffff4p+0, -0x1p-1, INEXACT) +T(RZ, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff9p-1, 0x1.ffffffffffffdp-1, 0x1.ffffffffffff6p+0, -0x1p-1, INEXACT) +T(RZ, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff9p-1, 0x1.ffffffffffff9p-1, 0x1.ffffffffffff4p+0, -0x1p-1, INEXACT) +T(RZ, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff8p-1, 0x1.ffffffffffffep-1, 0x1.ffffffffffff6p+0, -0x1p-1, INEXACT) +T(RZ, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff8p-1, 0x1.ffffffffffffap-1, 0x1.ffffffffffff4p+0, -0x1p-1, INEXACT) +T(RZ, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff7p-1, 0x1.fffffffffffffp-1, 0x1.ffffffffffff6p+0, -0x1p-1, INEXACT) +T(RZ, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffbp-1, 0x1.ffffffffffff4p+0, -0x1p-1, INEXACT) +T(RZ, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff2p+0, -0x1p-1, INEXACT) +T(RZ, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep-1, 0x1.fffffffffffffp+0, -0x1p-1, INEXACT) +T(RZ, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1.ffffffffffffap-1, 0x1.ffffffffffffdp+0, -0x1p-1, INEXACT) +T(RZ, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp+0, -0x1p-1, INEXACT) +T(RZ, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, 0x1.ffffffffffffbp-1, 0x1.ffffffffffffdp+0, -0x1p-1, INEXACT) +T(RZ, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffbp+0, -0x1p-1, INEXACT) +T(RZ, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, 0x1p+0, 0x1.fffffffffffffp+0, -0x1p-1, INEXACT) +T(RZ, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, 0x1.ffffffffffffcp-1, 0x1.ffffffffffffdp+0, -0x1p-1, INEXACT) +T(RZ, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, 0x1.ffffffffffff8p-1, 0x1.ffffffffffffbp+0, -0x1p-1, INEXACT) +T(RZ, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, 0x1.ffffffffffffdp-1, 0x1.ffffffffffffdp+0, -0x1p-1, INEXACT) +T(RZ, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, 0x1.ffffffffffff9p-1, 0x1.ffffffffffffbp+0, -0x1p-1, INEXACT) +T(RZ, 0x1.0000000000001p+0, 0x1.ffffffffffffbp-1, 0x1.ffffffffffffep-1, 0x1.ffffffffffffdp+0, -0x1p-1, INEXACT) +T(RZ, 0x1.0000000000001p+0, 0x1.ffffffffffffbp-1, 0x1.ffffffffffffap-1, 0x1.ffffffffffffbp+0, -0x1p-1, INEXACT) +T(RZ, 0x1.5872449b765b9p+0, 0x1.c9acf91f8de2bp+0, 0x1.9265607e4d168p+0, 0x1.fd190c77c2a67p+1, -0x1.fffc98p-2, INEXACT) +T(RZ, 0x1.81d010b146d0ep+0, 0x1.2d3c680dc9071p+0, 0x1.a80b69538754cp+0, 0x1.b7040b44973a6p+1, -0x1.0029a2p-1, INEXACT) +T(RZ, 0x1.6a44f2252b6a2p+0, 0x1.da452a378b832p+0, 0x1.1fe2ce329104p+0, 0x1.df842b6f48b12p+1, -0x1.00112ep-1, INEXACT) +T(RZ, 0x1.096b1d26463eep+0, 0x1.d846d3e34333p+0, 0x1.721e3480922b8p+0, 0x1.ade2909c0269fp+1, -0x1.ffe5ecp-2, INEXACT) +T(RZ, 0x1.99bd3434c454bp+0, 0x1.03cb8e4115bdep+0, 0x1.109f107188b08p+0, 0x1.5837a47d37faep+1, -0x1.001cfep-1, INEXACT) +T(RZ, 0x1.ba930a0a78ed2p+0, 0x1.8c24e8d67f636p+0, 0x1.ac49dbfbf8affp+0, 0x1.164947ae6a5d9p+2, -0x1.fffb3p-2, INEXACT) +T(RZ, 0x1.be224ad773191p+0, 0x1.d96b77169731fp+0, 0x1.662cfb75d8edep+0, 0x1.27cd67e720f78p+2, -0x1.001e48p-1, INEXACT) +T(RZ, 0x1.59e7a1b0bdb3cp+0, 0x1.2decba4d46421p+0, 0x1.88f4062e96df5p+0, 0x1.90749e4794f79p+1, -0x1.ffe4c4p-2, INEXACT) +T(RZ, 0x1.22edf4b4da9a7p+0, 0x1.dfa8d65f506cdp+0, 0x1.2799208da2fbap+0, 0x1.a45a1e99ed7a8p+1, -0x1.000d06p-1, INEXACT) +T(RZ, 0x1.ad5b991a2a279p+0, 0x1.f02fd26706024p+0, 0x1.831cdd5c8797cp+0, 0x1.30d3a2ac90a6p+2, -0x1.001c7cp-1, INEXACT) +T(RZ, 0x1.531f9620e764ap+0, 0x1.cad61b54d4425p+0, 0x1.df817cae8a9afp+0, 0x1.0fd4e7f8671dcp+2, -0x1.0018e8p-1, INEXACT) +T(RZ, 0x1.629a5ad79494fp+0, 0x1.049e58693f4c4p+0, 0x1.45b0109e4d00cp+0, 0x1.5758154e14965p+1, -0x1.fffbfcp-2, INEXACT) +T(RZ, 0x1.2f52b53f9240ap+0, 0x1.1d5c686dbb0dap+0, 0x1.6da3e392a4fd4p+0, 0x1.5fe03a6795912p+1, -0x1.0015bep-1, INEXACT) +T(RZ, 0x1.058667552b49ep+0, 0x1.23307bacc1c42p+0, 0x1.5b059b47cd8f5p+0, 0x1.423f752486d13p+1, -0x1.ffd68p-2, INEXACT) +T(RZ, 0x1.a717d95337ed8p+0, 0x1.2b1c37846aaadp+0, 0x1.be65672f885b1p+0, 0x1.d65e72303c075p+1, -0x1.ffa07ep-2, INEXACT) +T(RZ, 0x1.deb79287b3d32p+0, 0x1.62776b829babap+0, 0x1.67daf18bd2eb1p+0, 0x1.ff5a0d45c69d6p+1, -0x1.00035cp-1, INEXACT) +T(RZ, 0x1.fbf12d3a6de91p+0, 0x1.879fe6124f11p+0, 0x1.9f3f1247a8641p+0, 0x1.2a126c6980018p+2, -0x1.0028bcp-1, INEXACT) +T(RZ, 0x1.c589628460e01p+0, 0x1.e1bec1c797533p+0, 0x1.349f30cdb84bbp+0, 0x1.2286118b6f6e5p+2, -0x1.ffce2cp-2, INEXACT) +T(RZ, 0x1.46fd6c2c924ebp+0, 0x1.65e2f02e730a1p+0, 0x1.37739d2751098p+0, 0x1.804a71c1f1272p+1, -0x1.001856p-1, INEXACT) +T(RZ, 0x1.f99e595ae11fdp+0, 0x1.bd33d9a1d81bp+0, 0x1.932a2a2e244c1p+0, 0x1.409e34f8f2f89p+2, -0x1.ffa16ep-2, INEXACT) +T(RZ, 0x1.59ea1e56bfe55p+0, 0x1.6f46b7d412a44p+0, 0x1.80f2bc9a32cc3p+0, 0x1.b89c7640e32ffp+1, -0x1.fff8d8p-2, INEXACT) +T(RZ, 0x1.61490fcb44129p+0, 0x1.0038ec4fc35c2p+0, 0x1.df7436ed7a7b7p+0, 0x1.a085ea68d05cfp+1, -0x1.ffa84cp-2, INEXACT) +T(RZ, 0x1.d41b98788502bp+0, 0x1.1a7b77843aca6p+0, 0x1.05be891837d36p+0, 0x1.8523596ceced9p+1, -0x1.ffeb74p-2, INEXACT) +T(RZ, 0x1.3153cf6f69af9p+0, 0x1.aaa947e38e57ap+0, 0x1.8519f9b590645p+0, 0x1.c0fcab7b46368p+1, -0x1.00024cp-1, INEXACT) +T(RZ, 0x1.c25a1f73581aap+0, 0x1.0a51ffca372ap+0, 0x1.0c77e3ebac5f3p+0, 0x1.707ce48c7d72dp+1, -0x1.ffb368p-2, INEXACT) +T(RZ, 0x1.829c2cde44b7p+0, 0x1.f692e86d8cb36p+0, 0x1.455e72d264bfp+0, 0x1.0f16a3b8b3f97p+2, -0x1.ffe97cp-2, INEXACT) +T(RZ, 0x1.94729588dcc69p+0, 0x1.c3bb794c6edf8p+0, 0x1.9da4e94d262d2p+0, 0x1.19d4bd84d9fd2p+2, -0x1.000786p-1, INEXACT) +T(RZ, 0x1.e6a5e7e39c3d5p+0, 0x1.1b69af2bdd978p+0, 0x1.e7ef1eafa119cp+0, 0x1.00ac5b44c9f31p+2, -0x1.ffd312p-2, INEXACT) +T(RZ, 0x1.bc9ba1320700cp-1022, 0x1.981f2e1a451a8p-2, 0x1.046144efc0ceap-1022, 0x1.b594d0e4368efp-1022, -0x1.ffcc42p-2, INEXACT) +T(RZ, 0x1.022db53c98d14p-1022, 0x1.21157eef74848p-2, 0x1.2f880432b1bc1p-1022, 0x1.786ad60a02b3dp-1022, -0x1.ffbacp-2, INEXACT) +T(RZ, 0x1.805a491fa9597p-1022, 0x1.e0f49d782ff87p-2, 0x1.172a62346206p-1022, 0x1.cbb085199a3f5p-1022, -0x1.ffd226p-2, INEXACT) +T(RZ, 0x1.adbc3a9d816dep-1022, 0x1.e039d4431e3cdp-2, 0x1.93ceef6fe18a2p-1022, 0x1.2eabb7dc0e2fp-1021, -0x1.000f7cp-1, INEXACT) +T(RZ, 0x1.645aa5c2df3afp-1022, 0x1.649edfcad854fp-2, 0x1.8b43e0bbaeb01p-1022, 0x1.03af571d2b504p-1021, -0x1.00219ep-1, INEXACT) +T(RZ, 0x1.133474a2c0fb1p-1022, 0x1.72442bcbfa01dp-2, 0x1.4a1a21971c5dbp-1022, 0x1.ad9ce7fcefa3fp-1022, -0x1.fff76ap-2, INEXACT) +T(RZ, 0x1.8ee3feb00c3e7p-1022, 0x1.53bd9353313bcp-2, 0x1.5501b57dc3b6fp-1022, 0x1.d9598906f0bb3p-1022, -0x1.ffae68p-2, INEXACT) +T(RZ, 0x1.161225cfa61e2p-1022, 0x1.b6dd69a0af5bp-2, 0x1.924ffc3ead5c3p-1022, 0x1.04be6fc25367bp-1021, -0x1.ffc18ap-2, INEXACT) +T(RZ, 0x1.820f7faf219afp-1022, 0x1.06717ae771f6dp-2, 0x1.0dc5035f5e2afp-1022, 0x1.70b6c3169f043p-1022, -0x1.ffcb1p-2, INEXACT) +T(RZ, 0x1.ce0e2ea55040ep-1022, 0x1.ce5a55fa3828dp-2, 0x1.f2f444d50ce59p-1022, 0x1.61ca36f5a8a79p-1021, -0x1.ffdd18p-2, INEXACT) +T(RZ, 0x1.a7a271c67cdcfp-1022, 0x1.1e979090e218p-2, 0x1.b1f10b6e2177ap-1022, 0x1.1440cf1c105ebp-1021, -0x1.ffffcp-2, INEXACT) +T(RZ, 0x1.76df065829dc6p-1022, 0x1.fb22ab1b86b8bp-2, 0x1.6966267f317cp-1022, 0x1.1186e1f77012dp-1021, -0x1.fffb4p-2, INEXACT) +T(RZ, 0x1.8b004a28b70dbp-1022, 0x1.48e5805a8b453p-2, 0x1.0ea791f716557p-1022, 0x1.8d86310bad175p-1022, -0x1.ffdc92p-2, INEXACT) +T(RZ, 0x1.fb3391a4b1d23p-1022, 0x1.4d8705b057caep-2, 0x1.d026cb6dae73bp-1022, 0x1.3aad18b424c67p-1021, -0x1.ffbd7ap-2, INEXACT) +T(RZ, 0x1.a5ba39730e197p-1022, 0x1.794df89b1cc49p-2, 0x1.24a0a388d0b6bp-1022, 0x1.c0048fd33a417p-1022, -0x1.ffe2fep-2, INEXACT) +T(RZ, 0x1.aa9eff070281cp-1022, 0x1.fab05661b48ebp-2, 0x1.cbe2af6c69c6ep-1022, 0x1.4f7ddbe122764p-1021, -0x1.000cf2p-1, INEXACT) +T(RZ, 0x1.758bbff0ec4bap-1022, 0x1.a4a197f3fa424p-2, 0x1.47761e8d142ddp-1022, 0x1.e0e762ee2e7c5p-1022, -0x1.ffc3ap-2, INEXACT) +T(RZ, 0x1.4dab43918a9a8p-1022, 0x1.ed667442b4751p-2, 0x1.3f25f82e02e3ep-1022, 0x1.dfec0ee732dcap-1022, -0x1.002d48p-1, INEXACT) +T(RZ, 0x1.7943735951931p-1022, 0x1.fa6a357c5c9ddp-2, 0x1.0bed44b0b71b4p-1022, 0x1.c6803a6059abep-1022, -0x1.0021d2p-1, INEXACT) +T(RZ, 0x1.66c26bc29a5e8p-1022, 0x1.3faed079f761ap-2, 0x1.163ff906dd651p-1022, 0x1.8640492c45959p-1022, -0x1.fffd9cp-2, INEXACT) +T(RZ, 0x1.f52172c56bdf5p-1022, 0x1.672b2de422734p-2, 0x1.7bc5d708e5a34p-1022, 0x1.15c5b95145cc6p-1021, -0x1.00279ep-1, INEXACT) +T(RZ, 0x1.2f94e89aa7558p-1022, 0x1.dfa6d30835f5ep-2, 0x1.59c6b0d504cf9p-1022, 0x1.e7fa0dd76fbefp-1022, -0x1.ffe9f6p-2, INEXACT) +T(RZ, 0x1.6159897ae533cp-1022, 0x1.f3b8892e3a3c8p-2, 0x1.09ca702b7759p-1022, 0x1.b63a7f56fce1fp-1022, -0x1.ffeb68p-2, INEXACT) +T(RZ, 0x1.f73d5f4e81fd8p-1022, 0x1.7ccff2642124ap-2, 0x1.e7d836a0c8308p-1022, 0x1.517f1763126d3p-1021, -0x1.ffbe5cp-2, INEXACT) +T(RZ, 0x1.b4328925969fbp-1022, 0x1.8fa02832a22d5p-2, 0x1.2084598e2f8c6p-1022, 0x1.cabf43838dc51p-1022, -0x1.ffa0e8p-2, INEXACT) +T(RZ, 0x1.66ee60a92676fp-1022, 0x1.eddd2e7681ce4p-2, 0x1.b81d57daeb3a7p-1022, 0x1.329c918ffb682p-1021, -0x1.00039ap-1, INEXACT) +T(RZ, 0x1.ff2737585895dp-1022, 0x1.fb4bf3828ae4ap-2, 0x1.4a866847740fp-1022, 0x1.23e07e4dbbeaap-1021, -0x1.000a36p-1, INEXACT) +T(RZ, 0x1.5e2008d269a86p-1022, 0x1.507bbbe4d78eep-2, 0x1.6220c6f83f636p-1022, 0x1.d52d9874f1c74p-1022, -0x1.001edap-1, INEXACT) +T(RZ, 0x1.ce7e2e5812d86p-1022, 0x1.0e6689d092e5fp-2, 0x1.1e43fd55c3458p-1022, 0x1.9864925e2fb0fp-1022, -0x1.fff562p-2, INEXACT) +T(RZ, 0x1.7b353b81e793dp-1022, 0x1.82b426f874c6dp-2, 0x1.d92b19d21fd5cp-1022, 0x1.342fb0c544a78p-1021, -0x1.0012bp-1, INEXACT) +T(RZ, 0x1.5be667823370ap-1022, 0x1.a8a99b163869bp-2, 0x1.95456b68dc3bcp-1022, 0x1.12c638de03c7p-1021, -0x1.000a4ep-1, INEXACT) +T(RZ, 0x1.17b0fc6c850e5p-1022, 0x1.d1d0a4853c315p-2, 0x1.36b79f7c0c24p-1022, 0x1.b5f2baff5635cp-1022, -0x1.0002d4p-1, INEXACT) +T(RZ, 0x1.bd97819bacfd8p-1022, 0x1.2c25f267ba4eep-2, 0x1.804b5204a3f3ap-1022, 0x1.01739c190fd96p-1021, -0x1.001b9ep-1, INEXACT) +T(RZ, 0x1.596577053873dp-1022, 0x1.3562ab2d29949p-2, 0x1.b3f1ee75db6e7p-1022, 0x1.0e268a498009ap-1021, -0x1.001e82p-1, INEXACT) +T(RZ, 0x1.3c7a68cf0f7b3p-1022, 0x1.9a55c15b167bdp-2, 0x1.7635b7b163c07p-1022, 0x1.f5073b93b7b8p-1022, -0x1.00176p-1, INEXACT) +T(RZ, 0x1.5825164bc4068p-1022, 0x1.dcbb6e5ff3245p-2, 0x1.52fc3be0e84dap-1022, 0x1.f334771c2dcfap-1022, -0x1.00257p-1, INEXACT) +T(RZ, 0x1.139ea77b760ecp+1022, 0x1.9b25f2fd017eap+2,-0x1.bc16788922b6fp+1023, 0x1.b93aac527380ep+1023, -0x1.001c3ep-1, INEXACT) +T(RZ, 0x1.0e6f9c1657d7cp+1022, 0x1.4d5c6b55ab5f1p+2,-0x1.e027dd5742e2cp+1023, 0x1.c0538372b4bbep+1022, -0x1.00154ep-1, INEXACT) +T(RZ, 0x1.1182524fa411cp+1022, 0x1.a3dba56842d19p+2,-0x1.c1ad59474d71fp+1023, 0x1.bf78969300a76p+1023, -0x1.001866p-1, INEXACT) +T(RZ, 0x1.1cbf4fb8ec82p+1022, 0x1.5e32019a84fbbp+2,-0x1.985af08f32edep+1023, 0x1.72af6bbad4a28p+1023, -0x1.0034d2p-1, INEXACT) +T(RZ, 0x1.311e25c6db346p+1022, 0x1.4e30db6c4b51dp+2,-0x1.7681f7a9786a7p+1023, 0x1.a61d29434fc13p+1023, -0x1.fffe86p-2, INEXACT) +T(RZ, 0x1.1201cf577052fp+1022, 0x1.59730b2db7a16p+2,-0x1.56f1a64a078d5p+1023, 0x1.8c8d801df34d9p+1023, -0x1.ffd9f6p-2, INEXACT) +T(RZ, 0x1.3e52335b76e81p+1022, 0x1.4dbd56f857479p+2,-0x1.509340c11bd2ep+1023, 0x1.ed6576837f653p+1023, -0x1.ffc36cp-2, INEXACT) +T(RZ, 0x1.18566b4f843cbp+1022, 0x1.444fba10eaf29p+2,-0x1.f927beae57f0ap+1023, 0x1.9a433b9796559p+1022, -0x1.ff6812p-2, INEXACT) +T(RZ, 0x1.3fbe544fe1be8p+1022, 0x1.2d2a5fda03639p+2,-0x1.007407dbfd03cp+1023, 0x1.efdb644b613e5p+1023, -0x1.ffc3d8p-2, INEXACT) +T(RZ, 0x1.263a0d3bc2e4p+1022, 0x1.4cc198adbc651p+2,-0x1.734b1c1f7fdb8p+1023, 0x1.899878afc0fa2p+1023, -0x1.003426p-1, INEXACT) +T(RZ, 0x1.5bf4aec8efc8ep+1022, 0x1.555f0341516c9p+2,-0x1.c706408acd14cp+1023, 0x1.d8f5e18b868bcp+1023, -0x1.0013e6p-1, INEXACT) +T(RZ, 0x1.1e57f1af78279p+1022, 0x1.34bc0c7f082b3p+2,-0x1.497b92c1365edp+1023, 0x1.692cb7ec68a93p+1023, -0x1.ffe3f6p-2, INEXACT) +T(RZ, 0x1.1d9824cd73511p+1022, 0x1.1d557ddfe47ffp+2,-0x1.556cdb1d20a72p+1023, 0x1.2736a6b6e35f2p+1023, -0x1.000de4p-1, INEXACT) +T(RZ, 0x1.1ff85a24aff31p+1022, 0x1.39ab374b2680dp+2,-0x1.35e6b07b651b8p+1023, 0x1.8bc7ce208708p+1023, -0x1.003096p-1, INEXACT) +T(RZ, 0x1.0449b3965227ep+1022, 0x1.4430d4441f9f2p+2, -0x1.a6966c96307ep+1023, 0x1.d94eda8c81771p+1022, -0x1.ffccdap-2, INEXACT) +T(RZ, 0x1.3c91fa00fd0c7p+1022, 0x1.1b6661c0b0303p+2,-0x1.f1f2846b64483p+1023, 0x1.95eae0d2644d3p+1022, -0x1.ff0cccp-2, INEXACT) +T(RZ, 0x1.0979b36d46534p+1022, 0x1.12fa205f41f7fp+2,-0x1.a83ecf4544a63p+1023, 0x1.2420f34e2aa3cp+1022, -0x1.007b32p-1, INEXACT) +T(RZ, 0x1.4c89df582a599p+1022, 0x1.55f3dc473ea8fp+2, -0x1.e35037292ddfp+1023, 0x1.95109fdbc3771p+1023, -0x1.ffca0cp-2, INEXACT) +T(RZ, 0x1.35ee0a669c4fbp+1022, 0x1.2263cb63f386ap+2,-0x1.449218ae35ac7p+1023, 0x1.7a8ed977d817ap+1023, -0x1.00147ep-1, INEXACT) +T(RZ, 0x1.117cc860f61bcp+1022, 0x1.440985b25d994p+2,-0x1.d7a7d82000449p+1023, 0x1.b960b7088e74fp+1022, -0x1.ff777ep-2, INEXACT) +T(RZ, 0x1.1e78a37be320fp+1022, 0x1.0db0fce62287bp+2,-0x1.376337da5eb53p+1023, 0x1.24326b9956dfbp+1023, -0x1.ff8b5ep-2, INEXACT) +T(RZ, 0x1.0c79b5c8331c2p+1022, 0x1.0aba6ea746b5p+2,-0x1.c86f1fcaf0741p+1023, 0x1.9c135bb2cff84p+1021, -0x1.00f19ep-1, INEXACT) +T(RZ, 0x1.556c4c072f272p+1022, 0x1.347758d7d4eb5p+2,-0x1.c6fe4f24b248dp+1023, 0x1.6fcc9f756df6dp+1023, -0x1.ffc122p-2, INEXACT) +T(RZ, -0x1.e8349b891b2fp-1, 0x1.4a6dec9b72578p-1, 0x1.3b6151ce809ddp-1, 0x1.3a62fe330b355p-11, -0x1.ff89a4p-2, INEXACT) +T(RZ, 0x1.2996632ac7d74p-1, -0x1.bb3c58b654d94p-1, 0x1.01a6660e64a31p-1, 0x1.ed045bb956a8ep-15, -0x1.eabe3cp-2, INEXACT) +T(RZ, -0x1.c602e894c1df8p-1, 0x1.a1c980e7d3f94p-1, 0x1.7271244b43386p-1, -0x1.ba251fe026e5bp-15, 0x1.fa6bcap-2, INEXACT) +T(RZ, -0x1.c84baf47e85cp-1, 0x1.770b5149ef2ep-1, 0x1.4d80f139320bap-1, -0x1.79277433b9e23p-10, 0x1.ffc56ap-2, INEXACT) +T(RZ, -0x1.36e667dcf9c6p-1, 0x1.2591f82556b88p-1, 0x1.2452a0f795f95p-1, 0x1.c83c8e63c159fp-3, -0x1.ffffdcp-2, INEXACT) +T(RZ, 0x1.88b2cede61e4cp-1, -0x1.71dcab5ad9e9p-3, 0x1.32b27fea2ae97p-3, 0x1.70461909b25e2p-7, -0x1.ffffe6p-2, INEXACT) +T(RZ, 0x1.8d1e44002c98p-3, -0x1.af9fdfb347834p-1, 0x1.e280942fb4146p-4, -0x1.761ac23896dfdp-5, 0x1.ffffdep-2, INEXACT) +T(RZ, 0x1.236e8cb9492c8p-1, -0x1.d37443a57f1c4p-1, 0x1.ca10df801aabcp-4, -0x1.a1a2cdf0138f9p-2, 0x1.fff07cp-2, INEXACT) +T(RZ, -0x1.6ad943e610fb8p-1, -0x1.cef92a7bb18bcp-1, 0x1.f28587d8fb0ep-4, 0x1.866b5204b9aecp-1, -0x1.fff9cep-2, INEXACT) +T(RZ, -0x1.60a8569a5d894p-1, -0x1.ca07e29dd171cp-1, 0x1.b6c475ace09ecp-4, 0x1.72549291e2f7ap-1, -0x1.fff924p-2, INEXACT) +T(RZ, 0x1.d1962720d678cp-1, -0x1.4548ee45c4084p-1, 0x1.f416ab193d75cp-4, -0x1.d2929879dc853p-2, 0x1.fffe04p-2, INEXACT) +T(RZ, -0x1.9ddcb295a7d64p-1, 0x1.67fb3a2068a78p-1, 0x1.da9cd4597fe0ap-4, -0x1.cf4f6eb4fc5d8p-2, 0x1.fffa98p-2, INEXACT) +T(RZ, 0x1.c00d16ed45b88p+0, 0x1.c787eddda3664p+0, 0x1.1e3e6f0cc1802p-5, 0x1.931b8f379dcc3p+1, -0x1.ffff4ep-2, INEXACT) +T(RZ, 0x1.19c2a2372c184p+0, -0x1.cb506961c19fp+0, 0x1.db1abf3f7ba3ap-6, -0x1.f21c0eab0bc18p+0, 0x1.fffffcp-2, INEXACT) +T(RZ, -0x1.3a263218ccd1cp+0, -0x1.e818d390df27cp+0, 0x1.2a81ed71785f5p-5, 0x1.3025ab0f63925p+1, -0x1.ffff2p-2, INEXACT) +T(RZ, 0x1.b0b041fbaca58p+0, -0x1.9d5f76d178e6p+0, 0x1.0215c7bb84cf9p-6, -0x1.5b52aec7ef4p+1, 0x1.ffffa6p-2, INEXACT) +T(RZ, -0x1.377549d9a87f4p+0, -0x1.a13d4a03dd6d8p+0, 0x1.f190388bc5cc6p-7, 0x1.ff83bebbd6fe4p+0, -0x1.ffffc4p-2, INEXACT) +T(RZ, 0x1.6a726c0762ac8p-1, -0x1.d32f2d30e483cp+0, 0x1.f953eb70fbde6p-7, -0x1.46c61b3070332p+0, 0x1.fffffp-2, INEXACT) +T(RZ, 0x1.94cf2509d40cp-1, 0x1.721976af6dfbp+0, 0x1.f51a456921c3ep-7, 0x1.28880842acc6p+0, -0x1.ffff84p-2, INEXACT) +T(RZ, 0x1.b128eb0ad8728p-1, 0x1.7682566a54268p+0, 0x1.bd4122a074cafp-8, 0x1.3e9469530e762p+0, -0x1.ffffd2p-2, INEXACT) +T(RZ, 0x1.c4ae75976e35cp+0, -0x1.11c329dd1160cp+0, 0x1.9993f5e13c9bdp-8, -0x1.e27d925b07cf1p+0, 0x1.ffffdcp-2, INEXACT) +T(RZ, -0x1.85f81f88fa3c4p+0, -0x1.17648a494fa18p-1, 0x1.37d305113b48p-10, 0x1.aa367b7490e57p-1, -0x1.fffff4p-2, INEXACT) +T(RZ, -0x1.311f2b4319efcp+0, 0x1.abbb5272e3d18p-1, 0x1.35841b7bdbcfep-10, -0x1.fd337f24b39ep-1, 0x1.ffffecp-2, INEXACT) +T(RZ, 0x1.ab94369a9a0dp-1, 0x1.9d1e0e0aa3bacp+0, 0x1.0a63ca87cfa78p-11, 0x1.592173ee296b6p+0, -0x1.fffffcp-2, INEXACT) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, 0x0p+0, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, -0x0p+0, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, 0x0p+0, 0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, -0x0p+0, 0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RD, 0x0p+0, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RD, nan, 0x0p+0, 0x0p+0, nan, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, inf, inf, 0x0p+0, 0) +T(RD, 0x0p+0, inf, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD, inf, 0x0p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD, 0x0p+0, 0x0p+0, -inf, -inf, 0x0p+0, 0) +T(RD, 0x0p+0, -inf, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD, -inf, 0x0p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD, 0x1p+0, inf, inf, inf, 0x0p+0, 0) +T(RD, 0x1p+0, inf, -inf, nan, 0x0p+0, INVALID) +T(RD, 0x1p+0, -inf, -inf, -inf, 0x0p+0, 0) +T(RD, 0x1p+0, -inf, inf, nan, 0x0p+0, INVALID) +T(RD, -0x1p+0, inf, inf, nan, 0x0p+0, INVALID) +T(RD, -0x1p+0, inf, -inf, -inf, 0x0p+0, 0) +T(RD, -0x1p+0, -inf, -inf, nan, 0x0p+0, INVALID) +T(RD, -0x1p+0, -inf, inf, inf, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+0, inf, inf, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+0, -inf, -inf, 0x0p+0, 0) +T(RD, inf, -inf, 0x1p+0, -inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x1p+0, inf, 0x0p+0, 0) +T(RD, inf, inf, nan, nan, 0x0p+0, 0) +T(RD, inf, nan, inf, nan, 0x0p+0, 0) +T(RD, nan, inf, inf, nan, 0x0p+0, 0) +// TODO: invalid is optional +T(RD, inf, 0x0p+0, nan, nan, 0x0p+0, INVALID) +T(RD, 0x0p+0, inf, nan, nan, 0x0p+0, INVALID) +T(RD, -inf, 0x0p+0, nan, nan, 0x0p+0, INVALID) +T(RD, 0x0p+0, -inf, nan, nan, 0x0p+0, INVALID) +T(RD, -0x1p+0, 0x0p+0, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, -0x1p+0, 0x1p+0, 0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+0, -0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RD, -0x1p+0, -0x1p+0, -0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+0, -0x1p-1074, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, 0x1p-1074, 0x1p-1074, 0x1.fffffffffffffp-1022, 0x1.fffffffffffffp-1022, 0x0p+0, INEXACT) +T(RD, 0x1p-1074, -0x1p-1074, 0x1.fffffffffffffp-1022, 0x1.ffffffffffffep-1022, -0x1p+0, INEXACT) +T(RD, 0x1p-1074, -0x1p-1074,-0x1.fffffffffffffp-1022, -0x1p-1021, -0x1p-1, INEXACT) +T(RD, 0x1p-1074, 0x1p-1074,-0x1.fffffffffffffp-1022,-0x1.fffffffffffffp-1022, 0x0p+0, INEXACT) +T(RD, 0x1p-1074, -0x1p-1074, 0x1p-1074, 0x0p+0, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1074, -0x1p-1074, -0x1p-1074, -0x1p-1073, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.0000000000001p+0, 0x1p+0, 0x1p+53, 0x1p+53, -0x1p-1, INEXACT) +T(RD, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1p+53, 0x1p+53, -0x1p-1, INEXACT) +T(RD, 0x1p+0, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp+53, 0x1.fffffffffffffp+53, -0x1p-1, INEXACT) +T(RD, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep+53, 0x1.ffffffffffffep+53, -0x1p-1, INEXACT) +T(RD, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1p-52, 0x1.0000000000001p+0, -0x1p-1, INEXACT) +T(RD, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp-53, 0x1.0000000000001p+0, -0x1p-1, INEXACT) +T(RD, 0x1.0000000000005p+0, 0x1.ffffffffffffbp-1, 0x1p-52, 0x1.0000000000003p+0, -0x1p-1, INEXACT) +T(RD, 0x1.0000000000006p+0, 0x1.ffffffffffffdp-1, 0x1p-52, 0x1.0000000000005p+0, -0x1p-1, INEXACT) +T(RD, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, -0x1p+0, 0x1.ffffffffffffep-54, 0x0p+0, 0) +T(RD, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, -0x1.fffffffffffffp-1, 0x1.fffffffffffffp-53, 0x0p+0, 0) +T(RD, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, -0x1p+0, -0x1p-104, 0x0p+0, 0) +T(RD, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, -0x1.fffffffffffffp-1, 0x1.ffffffffffffcp-54, 0x0p+0, 0) +T(RD, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, -0x1p+0, -0x1.0000000000003p-53, 0x0p+0, 0) +T(RD, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, -0x1.fffffffffffffp-1, -0x1.8p-104, 0x0p+0, 0) +T(RD, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, -0x1.ffffffffffffep-1, 0x1.ffffffffffffap-54, 0x0p+0, 0) +T(RD, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, -0x1p+0, -0x1.0000000000002p-52, 0x0p+0, 0) +T(RD, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, -0x1.fffffffffffffp-1, -0x1.0000000000004p-53, 0x0p+0, 0) +T(RD, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, -0x1.ffffffffffffep-1, -0x1p-103, 0x0p+0, 0) +T(RD, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, -0x1.ffffffffffffdp-1, 0x1.ffffffffffff8p-54, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp-1, -0x1.fffffffffffffp-1, -0x1.fffffffffffffp-54, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp-1, -0x1.ffffffffffffep-1, 0x1p-106, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep-1, -0x1.fffffffffffffp-1, -0x1.fffffffffffffp-53, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep-1, -0x1.ffffffffffffep-1, -0x1.ffffffffffffep-54, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep-1, -0x1.ffffffffffffdp-1, 0x1p-105, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep-1, -0x1.ffffffffffffcp-1, 0x1.0000000000001p-53, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp-1, 0x1.ffffffffffffdp-1, -0x1p+0, -0x1p-51, -0x1.8p-2, INEXACT) +T(RD, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffbp-1, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff4p+0, -0x1p-1, INEXACT) +T(RD, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffap-1, 0x1p+0, 0x1.ffffffffffff8p+0, -0x1p-1, INEXACT) +T(RD, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffap-1, 0x1.ffffffffffffcp-1, 0x1.ffffffffffff6p+0, -0x1p-1, INEXACT) +T(RD, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffap-1, 0x1.ffffffffffff8p-1, 0x1.ffffffffffff4p+0, -0x1p-1, INEXACT) +T(RD, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff9p-1, 0x1.ffffffffffffdp-1, 0x1.ffffffffffff6p+0, -0x1p-1, INEXACT) +T(RD, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff9p-1, 0x1.ffffffffffff9p-1, 0x1.ffffffffffff4p+0, -0x1p-1, INEXACT) +T(RD, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff8p-1, 0x1.ffffffffffffep-1, 0x1.ffffffffffff6p+0, -0x1p-1, INEXACT) +T(RD, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff8p-1, 0x1.ffffffffffffap-1, 0x1.ffffffffffff4p+0, -0x1p-1, INEXACT) +T(RD, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff7p-1, 0x1.fffffffffffffp-1, 0x1.ffffffffffff6p+0, -0x1p-1, INEXACT) +T(RD, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffbp-1, 0x1.ffffffffffff4p+0, -0x1p-1, INEXACT) +T(RD, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff2p+0, -0x1p-1, INEXACT) +T(RD, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep-1, 0x1.fffffffffffffp+0, -0x1p-1, INEXACT) +T(RD, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1.ffffffffffffap-1, 0x1.ffffffffffffdp+0, -0x1p-1, INEXACT) +T(RD, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp+0, -0x1p-1, INEXACT) +T(RD, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, 0x1.ffffffffffffbp-1, 0x1.ffffffffffffdp+0, -0x1p-1, INEXACT) +T(RD, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffbp+0, -0x1p-1, INEXACT) +T(RD, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, 0x1p+0, 0x1.fffffffffffffp+0, -0x1p-1, INEXACT) +T(RD, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, 0x1.ffffffffffffcp-1, 0x1.ffffffffffffdp+0, -0x1p-1, INEXACT) +T(RD, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, 0x1.ffffffffffff8p-1, 0x1.ffffffffffffbp+0, -0x1p-1, INEXACT) +T(RD, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, 0x1.ffffffffffffdp-1, 0x1.ffffffffffffdp+0, -0x1p-1, INEXACT) +T(RD, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, 0x1.ffffffffffff9p-1, 0x1.ffffffffffffbp+0, -0x1p-1, INEXACT) +T(RD, 0x1.0000000000001p+0, 0x1.ffffffffffffbp-1, 0x1.ffffffffffffep-1, 0x1.ffffffffffffdp+0, -0x1p-1, INEXACT) +T(RD, 0x1.0000000000001p+0, 0x1.ffffffffffffbp-1, 0x1.ffffffffffffap-1, 0x1.ffffffffffffbp+0, -0x1p-1, INEXACT) +T(RD, 0x1.5872449b765b9p+0, 0x1.c9acf91f8de2bp+0, 0x1.9265607e4d168p+0, 0x1.fd190c77c2a67p+1, -0x1.fffc98p-2, INEXACT) +T(RD, 0x1.81d010b146d0ep+0, 0x1.2d3c680dc9071p+0, 0x1.a80b69538754cp+0, 0x1.b7040b44973a6p+1, -0x1.0029a2p-1, INEXACT) +T(RD, 0x1.6a44f2252b6a2p+0, 0x1.da452a378b832p+0, 0x1.1fe2ce329104p+0, 0x1.df842b6f48b12p+1, -0x1.00112ep-1, INEXACT) +T(RD, 0x1.096b1d26463eep+0, 0x1.d846d3e34333p+0, 0x1.721e3480922b8p+0, 0x1.ade2909c0269fp+1, -0x1.ffe5ecp-2, INEXACT) +T(RD, 0x1.99bd3434c454bp+0, 0x1.03cb8e4115bdep+0, 0x1.109f107188b08p+0, 0x1.5837a47d37faep+1, -0x1.001cfep-1, INEXACT) +T(RD, 0x1.ba930a0a78ed2p+0, 0x1.8c24e8d67f636p+0, 0x1.ac49dbfbf8affp+0, 0x1.164947ae6a5d9p+2, -0x1.fffb3p-2, INEXACT) +T(RD, 0x1.be224ad773191p+0, 0x1.d96b77169731fp+0, 0x1.662cfb75d8edep+0, 0x1.27cd67e720f78p+2, -0x1.001e48p-1, INEXACT) +T(RD, 0x1.59e7a1b0bdb3cp+0, 0x1.2decba4d46421p+0, 0x1.88f4062e96df5p+0, 0x1.90749e4794f79p+1, -0x1.ffe4c4p-2, INEXACT) +T(RD, 0x1.22edf4b4da9a7p+0, 0x1.dfa8d65f506cdp+0, 0x1.2799208da2fbap+0, 0x1.a45a1e99ed7a8p+1, -0x1.000d06p-1, INEXACT) +T(RD, 0x1.ad5b991a2a279p+0, 0x1.f02fd26706024p+0, 0x1.831cdd5c8797cp+0, 0x1.30d3a2ac90a6p+2, -0x1.001c7cp-1, INEXACT) +T(RD, 0x1.531f9620e764ap+0, 0x1.cad61b54d4425p+0, 0x1.df817cae8a9afp+0, 0x1.0fd4e7f8671dcp+2, -0x1.0018e8p-1, INEXACT) +T(RD, 0x1.629a5ad79494fp+0, 0x1.049e58693f4c4p+0, 0x1.45b0109e4d00cp+0, 0x1.5758154e14965p+1, -0x1.fffbfcp-2, INEXACT) +T(RD, 0x1.2f52b53f9240ap+0, 0x1.1d5c686dbb0dap+0, 0x1.6da3e392a4fd4p+0, 0x1.5fe03a6795912p+1, -0x1.0015bep-1, INEXACT) +T(RD, 0x1.058667552b49ep+0, 0x1.23307bacc1c42p+0, 0x1.5b059b47cd8f5p+0, 0x1.423f752486d13p+1, -0x1.ffd68p-2, INEXACT) +T(RD, 0x1.a717d95337ed8p+0, 0x1.2b1c37846aaadp+0, 0x1.be65672f885b1p+0, 0x1.d65e72303c075p+1, -0x1.ffa07ep-2, INEXACT) +T(RD, 0x1.deb79287b3d32p+0, 0x1.62776b829babap+0, 0x1.67daf18bd2eb1p+0, 0x1.ff5a0d45c69d6p+1, -0x1.00035cp-1, INEXACT) +T(RD, 0x1.fbf12d3a6de91p+0, 0x1.879fe6124f11p+0, 0x1.9f3f1247a8641p+0, 0x1.2a126c6980018p+2, -0x1.0028bcp-1, INEXACT) +T(RD, 0x1.c589628460e01p+0, 0x1.e1bec1c797533p+0, 0x1.349f30cdb84bbp+0, 0x1.2286118b6f6e5p+2, -0x1.ffce2cp-2, INEXACT) +T(RD, 0x1.46fd6c2c924ebp+0, 0x1.65e2f02e730a1p+0, 0x1.37739d2751098p+0, 0x1.804a71c1f1272p+1, -0x1.001856p-1, INEXACT) +T(RD, 0x1.f99e595ae11fdp+0, 0x1.bd33d9a1d81bp+0, 0x1.932a2a2e244c1p+0, 0x1.409e34f8f2f89p+2, -0x1.ffa16ep-2, INEXACT) +T(RD, 0x1.59ea1e56bfe55p+0, 0x1.6f46b7d412a44p+0, 0x1.80f2bc9a32cc3p+0, 0x1.b89c7640e32ffp+1, -0x1.fff8d8p-2, INEXACT) +T(RD, 0x1.61490fcb44129p+0, 0x1.0038ec4fc35c2p+0, 0x1.df7436ed7a7b7p+0, 0x1.a085ea68d05cfp+1, -0x1.ffa84cp-2, INEXACT) +T(RD, 0x1.d41b98788502bp+0, 0x1.1a7b77843aca6p+0, 0x1.05be891837d36p+0, 0x1.8523596ceced9p+1, -0x1.ffeb74p-2, INEXACT) +T(RD, 0x1.3153cf6f69af9p+0, 0x1.aaa947e38e57ap+0, 0x1.8519f9b590645p+0, 0x1.c0fcab7b46368p+1, -0x1.00024cp-1, INEXACT) +T(RD, 0x1.c25a1f73581aap+0, 0x1.0a51ffca372ap+0, 0x1.0c77e3ebac5f3p+0, 0x1.707ce48c7d72dp+1, -0x1.ffb368p-2, INEXACT) +T(RD, 0x1.829c2cde44b7p+0, 0x1.f692e86d8cb36p+0, 0x1.455e72d264bfp+0, 0x1.0f16a3b8b3f97p+2, -0x1.ffe97cp-2, INEXACT) +T(RD, 0x1.94729588dcc69p+0, 0x1.c3bb794c6edf8p+0, 0x1.9da4e94d262d2p+0, 0x1.19d4bd84d9fd2p+2, -0x1.000786p-1, INEXACT) +T(RD, 0x1.e6a5e7e39c3d5p+0, 0x1.1b69af2bdd978p+0, 0x1.e7ef1eafa119cp+0, 0x1.00ac5b44c9f31p+2, -0x1.ffd312p-2, INEXACT) +T(RD, 0x1.bc9ba1320700cp-1022, 0x1.981f2e1a451a8p-2, 0x1.046144efc0ceap-1022, 0x1.b594d0e4368efp-1022, -0x1.ffcc42p-2, INEXACT) +T(RD, 0x1.022db53c98d14p-1022, 0x1.21157eef74848p-2, 0x1.2f880432b1bc1p-1022, 0x1.786ad60a02b3dp-1022, -0x1.ffbacp-2, INEXACT) +T(RD, 0x1.805a491fa9597p-1022, 0x1.e0f49d782ff87p-2, 0x1.172a62346206p-1022, 0x1.cbb085199a3f5p-1022, -0x1.ffd226p-2, INEXACT) +T(RD, 0x1.adbc3a9d816dep-1022, 0x1.e039d4431e3cdp-2, 0x1.93ceef6fe18a2p-1022, 0x1.2eabb7dc0e2fp-1021, -0x1.000f7cp-1, INEXACT) +T(RD, 0x1.645aa5c2df3afp-1022, 0x1.649edfcad854fp-2, 0x1.8b43e0bbaeb01p-1022, 0x1.03af571d2b504p-1021, -0x1.00219ep-1, INEXACT) +T(RD, 0x1.133474a2c0fb1p-1022, 0x1.72442bcbfa01dp-2, 0x1.4a1a21971c5dbp-1022, 0x1.ad9ce7fcefa3fp-1022, -0x1.fff76ap-2, INEXACT) +T(RD, 0x1.8ee3feb00c3e7p-1022, 0x1.53bd9353313bcp-2, 0x1.5501b57dc3b6fp-1022, 0x1.d9598906f0bb3p-1022, -0x1.ffae68p-2, INEXACT) +T(RD, 0x1.161225cfa61e2p-1022, 0x1.b6dd69a0af5bp-2, 0x1.924ffc3ead5c3p-1022, 0x1.04be6fc25367bp-1021, -0x1.ffc18ap-2, INEXACT) +T(RD, 0x1.820f7faf219afp-1022, 0x1.06717ae771f6dp-2, 0x1.0dc5035f5e2afp-1022, 0x1.70b6c3169f043p-1022, -0x1.ffcb1p-2, INEXACT) +T(RD, 0x1.ce0e2ea55040ep-1022, 0x1.ce5a55fa3828dp-2, 0x1.f2f444d50ce59p-1022, 0x1.61ca36f5a8a79p-1021, -0x1.ffdd18p-2, INEXACT) +T(RD, 0x1.a7a271c67cdcfp-1022, 0x1.1e979090e218p-2, 0x1.b1f10b6e2177ap-1022, 0x1.1440cf1c105ebp-1021, -0x1.ffffcp-2, INEXACT) +T(RD, 0x1.76df065829dc6p-1022, 0x1.fb22ab1b86b8bp-2, 0x1.6966267f317cp-1022, 0x1.1186e1f77012dp-1021, -0x1.fffb4p-2, INEXACT) +T(RD, 0x1.8b004a28b70dbp-1022, 0x1.48e5805a8b453p-2, 0x1.0ea791f716557p-1022, 0x1.8d86310bad175p-1022, -0x1.ffdc92p-2, INEXACT) +T(RD, 0x1.fb3391a4b1d23p-1022, 0x1.4d8705b057caep-2, 0x1.d026cb6dae73bp-1022, 0x1.3aad18b424c67p-1021, -0x1.ffbd7ap-2, INEXACT) +T(RD, 0x1.a5ba39730e197p-1022, 0x1.794df89b1cc49p-2, 0x1.24a0a388d0b6bp-1022, 0x1.c0048fd33a417p-1022, -0x1.ffe2fep-2, INEXACT) +T(RD, 0x1.aa9eff070281cp-1022, 0x1.fab05661b48ebp-2, 0x1.cbe2af6c69c6ep-1022, 0x1.4f7ddbe122764p-1021, -0x1.000cf2p-1, INEXACT) +T(RD, 0x1.758bbff0ec4bap-1022, 0x1.a4a197f3fa424p-2, 0x1.47761e8d142ddp-1022, 0x1.e0e762ee2e7c5p-1022, -0x1.ffc3ap-2, INEXACT) +T(RD, 0x1.4dab43918a9a8p-1022, 0x1.ed667442b4751p-2, 0x1.3f25f82e02e3ep-1022, 0x1.dfec0ee732dcap-1022, -0x1.002d48p-1, INEXACT) +T(RD, 0x1.7943735951931p-1022, 0x1.fa6a357c5c9ddp-2, 0x1.0bed44b0b71b4p-1022, 0x1.c6803a6059abep-1022, -0x1.0021d2p-1, INEXACT) +T(RD, 0x1.66c26bc29a5e8p-1022, 0x1.3faed079f761ap-2, 0x1.163ff906dd651p-1022, 0x1.8640492c45959p-1022, -0x1.fffd9cp-2, INEXACT) +T(RD, 0x1.f52172c56bdf5p-1022, 0x1.672b2de422734p-2, 0x1.7bc5d708e5a34p-1022, 0x1.15c5b95145cc6p-1021, -0x1.00279ep-1, INEXACT) +T(RD, 0x1.2f94e89aa7558p-1022, 0x1.dfa6d30835f5ep-2, 0x1.59c6b0d504cf9p-1022, 0x1.e7fa0dd76fbefp-1022, -0x1.ffe9f6p-2, INEXACT) +T(RD, 0x1.6159897ae533cp-1022, 0x1.f3b8892e3a3c8p-2, 0x1.09ca702b7759p-1022, 0x1.b63a7f56fce1fp-1022, -0x1.ffeb68p-2, INEXACT) +T(RD, 0x1.f73d5f4e81fd8p-1022, 0x1.7ccff2642124ap-2, 0x1.e7d836a0c8308p-1022, 0x1.517f1763126d3p-1021, -0x1.ffbe5cp-2, INEXACT) +T(RD, 0x1.b4328925969fbp-1022, 0x1.8fa02832a22d5p-2, 0x1.2084598e2f8c6p-1022, 0x1.cabf43838dc51p-1022, -0x1.ffa0e8p-2, INEXACT) +T(RD, 0x1.66ee60a92676fp-1022, 0x1.eddd2e7681ce4p-2, 0x1.b81d57daeb3a7p-1022, 0x1.329c918ffb682p-1021, -0x1.00039ap-1, INEXACT) +T(RD, 0x1.ff2737585895dp-1022, 0x1.fb4bf3828ae4ap-2, 0x1.4a866847740fp-1022, 0x1.23e07e4dbbeaap-1021, -0x1.000a36p-1, INEXACT) +T(RD, 0x1.5e2008d269a86p-1022, 0x1.507bbbe4d78eep-2, 0x1.6220c6f83f636p-1022, 0x1.d52d9874f1c74p-1022, -0x1.001edap-1, INEXACT) +T(RD, 0x1.ce7e2e5812d86p-1022, 0x1.0e6689d092e5fp-2, 0x1.1e43fd55c3458p-1022, 0x1.9864925e2fb0fp-1022, -0x1.fff562p-2, INEXACT) +T(RD, 0x1.7b353b81e793dp-1022, 0x1.82b426f874c6dp-2, 0x1.d92b19d21fd5cp-1022, 0x1.342fb0c544a78p-1021, -0x1.0012bp-1, INEXACT) +T(RD, 0x1.5be667823370ap-1022, 0x1.a8a99b163869bp-2, 0x1.95456b68dc3bcp-1022, 0x1.12c638de03c7p-1021, -0x1.000a4ep-1, INEXACT) +T(RD, 0x1.17b0fc6c850e5p-1022, 0x1.d1d0a4853c315p-2, 0x1.36b79f7c0c24p-1022, 0x1.b5f2baff5635cp-1022, -0x1.0002d4p-1, INEXACT) +T(RD, 0x1.bd97819bacfd8p-1022, 0x1.2c25f267ba4eep-2, 0x1.804b5204a3f3ap-1022, 0x1.01739c190fd96p-1021, -0x1.001b9ep-1, INEXACT) +T(RD, 0x1.596577053873dp-1022, 0x1.3562ab2d29949p-2, 0x1.b3f1ee75db6e7p-1022, 0x1.0e268a498009ap-1021, -0x1.001e82p-1, INEXACT) +T(RD, 0x1.3c7a68cf0f7b3p-1022, 0x1.9a55c15b167bdp-2, 0x1.7635b7b163c07p-1022, 0x1.f5073b93b7b8p-1022, -0x1.00176p-1, INEXACT) +T(RD, 0x1.5825164bc4068p-1022, 0x1.dcbb6e5ff3245p-2, 0x1.52fc3be0e84dap-1022, 0x1.f334771c2dcfap-1022, -0x1.00257p-1, INEXACT) +T(RD, 0x1.139ea77b760ecp+1022, 0x1.9b25f2fd017eap+2,-0x1.bc16788922b6fp+1023, 0x1.b93aac527380ep+1023, -0x1.001c3ep-1, INEXACT) +T(RD, 0x1.0e6f9c1657d7cp+1022, 0x1.4d5c6b55ab5f1p+2,-0x1.e027dd5742e2cp+1023, 0x1.c0538372b4bbep+1022, -0x1.00154ep-1, INEXACT) +T(RD, 0x1.1182524fa411cp+1022, 0x1.a3dba56842d19p+2,-0x1.c1ad59474d71fp+1023, 0x1.bf78969300a76p+1023, -0x1.001866p-1, INEXACT) +T(RD, 0x1.1cbf4fb8ec82p+1022, 0x1.5e32019a84fbbp+2,-0x1.985af08f32edep+1023, 0x1.72af6bbad4a28p+1023, -0x1.0034d2p-1, INEXACT) +T(RD, 0x1.311e25c6db346p+1022, 0x1.4e30db6c4b51dp+2,-0x1.7681f7a9786a7p+1023, 0x1.a61d29434fc13p+1023, -0x1.fffe86p-2, INEXACT) +T(RD, 0x1.1201cf577052fp+1022, 0x1.59730b2db7a16p+2,-0x1.56f1a64a078d5p+1023, 0x1.8c8d801df34d9p+1023, -0x1.ffd9f6p-2, INEXACT) +T(RD, 0x1.3e52335b76e81p+1022, 0x1.4dbd56f857479p+2,-0x1.509340c11bd2ep+1023, 0x1.ed6576837f653p+1023, -0x1.ffc36cp-2, INEXACT) +T(RD, 0x1.18566b4f843cbp+1022, 0x1.444fba10eaf29p+2,-0x1.f927beae57f0ap+1023, 0x1.9a433b9796559p+1022, -0x1.ff6812p-2, INEXACT) +T(RD, 0x1.3fbe544fe1be8p+1022, 0x1.2d2a5fda03639p+2,-0x1.007407dbfd03cp+1023, 0x1.efdb644b613e5p+1023, -0x1.ffc3d8p-2, INEXACT) +T(RD, 0x1.263a0d3bc2e4p+1022, 0x1.4cc198adbc651p+2,-0x1.734b1c1f7fdb8p+1023, 0x1.899878afc0fa2p+1023, -0x1.003426p-1, INEXACT) +T(RD, 0x1.5bf4aec8efc8ep+1022, 0x1.555f0341516c9p+2,-0x1.c706408acd14cp+1023, 0x1.d8f5e18b868bcp+1023, -0x1.0013e6p-1, INEXACT) +T(RD, 0x1.1e57f1af78279p+1022, 0x1.34bc0c7f082b3p+2,-0x1.497b92c1365edp+1023, 0x1.692cb7ec68a93p+1023, -0x1.ffe3f6p-2, INEXACT) +T(RD, 0x1.1d9824cd73511p+1022, 0x1.1d557ddfe47ffp+2,-0x1.556cdb1d20a72p+1023, 0x1.2736a6b6e35f2p+1023, -0x1.000de4p-1, INEXACT) +T(RD, 0x1.1ff85a24aff31p+1022, 0x1.39ab374b2680dp+2,-0x1.35e6b07b651b8p+1023, 0x1.8bc7ce208708p+1023, -0x1.003096p-1, INEXACT) +T(RD, 0x1.0449b3965227ep+1022, 0x1.4430d4441f9f2p+2, -0x1.a6966c96307ep+1023, 0x1.d94eda8c81771p+1022, -0x1.ffccdap-2, INEXACT) +T(RD, 0x1.3c91fa00fd0c7p+1022, 0x1.1b6661c0b0303p+2,-0x1.f1f2846b64483p+1023, 0x1.95eae0d2644d3p+1022, -0x1.ff0cccp-2, INEXACT) +T(RD, 0x1.0979b36d46534p+1022, 0x1.12fa205f41f7fp+2,-0x1.a83ecf4544a63p+1023, 0x1.2420f34e2aa3cp+1022, -0x1.007b32p-1, INEXACT) +T(RD, 0x1.4c89df582a599p+1022, 0x1.55f3dc473ea8fp+2, -0x1.e35037292ddfp+1023, 0x1.95109fdbc3771p+1023, -0x1.ffca0cp-2, INEXACT) +T(RD, 0x1.35ee0a669c4fbp+1022, 0x1.2263cb63f386ap+2,-0x1.449218ae35ac7p+1023, 0x1.7a8ed977d817ap+1023, -0x1.00147ep-1, INEXACT) +T(RD, 0x1.117cc860f61bcp+1022, 0x1.440985b25d994p+2,-0x1.d7a7d82000449p+1023, 0x1.b960b7088e74fp+1022, -0x1.ff777ep-2, INEXACT) +T(RD, 0x1.1e78a37be320fp+1022, 0x1.0db0fce62287bp+2,-0x1.376337da5eb53p+1023, 0x1.24326b9956dfbp+1023, -0x1.ff8b5ep-2, INEXACT) +T(RD, 0x1.0c79b5c8331c2p+1022, 0x1.0aba6ea746b5p+2,-0x1.c86f1fcaf0741p+1023, 0x1.9c135bb2cff84p+1021, -0x1.00f19ep-1, INEXACT) +T(RD, 0x1.556c4c072f272p+1022, 0x1.347758d7d4eb5p+2,-0x1.c6fe4f24b248dp+1023, 0x1.6fcc9f756df6dp+1023, -0x1.ffc122p-2, INEXACT) +T(RD, -0x1.e8349b891b2fp-1, 0x1.4a6dec9b72578p-1, 0x1.3b6151ce809ddp-1, 0x1.3a62fe330b355p-11, -0x1.ff89a4p-2, INEXACT) +T(RD, 0x1.2996632ac7d74p-1, -0x1.bb3c58b654d94p-1, 0x1.01a6660e64a31p-1, 0x1.ed045bb956a8ep-15, -0x1.eabe3cp-2, INEXACT) +T(RD, -0x1.c602e894c1df8p-1, 0x1.a1c980e7d3f94p-1, 0x1.7271244b43386p-1, -0x1.ba251fe026e5cp-15, -0x1.02ca1ap-1, INEXACT) +T(RD, -0x1.c84baf47e85cp-1, 0x1.770b5149ef2ep-1, 0x1.4d80f139320bap-1, -0x1.79277433b9e24p-10, -0x1.001d4cp-1, INEXACT) +T(RD, -0x1.36e667dcf9c6p-1, 0x1.2591f82556b88p-1, 0x1.2452a0f795f95p-1, 0x1.c83c8e63c159fp-3, -0x1.ffffdcp-2, INEXACT) +T(RD, 0x1.88b2cede61e4cp-1, -0x1.71dcab5ad9e9p-3, 0x1.32b27fea2ae97p-3, 0x1.70461909b25e2p-7, -0x1.ffffe6p-2, INEXACT) +T(RD, 0x1.8d1e44002c98p-3, -0x1.af9fdfb347834p-1, 0x1.e280942fb4146p-4, -0x1.761ac23896dfep-5, -0x1.00001p-1, INEXACT) +T(RD, 0x1.236e8cb9492c8p-1, -0x1.d37443a57f1c4p-1, 0x1.ca10df801aabcp-4, -0x1.a1a2cdf0138fap-2, -0x1.0007c2p-1, INEXACT) +T(RD, -0x1.6ad943e610fb8p-1, -0x1.cef92a7bb18bcp-1, 0x1.f28587d8fb0ep-4, 0x1.866b5204b9aecp-1, -0x1.fff9cep-2, INEXACT) +T(RD, -0x1.60a8569a5d894p-1, -0x1.ca07e29dd171cp-1, 0x1.b6c475ace09ecp-4, 0x1.72549291e2f7ap-1, -0x1.fff924p-2, INEXACT) +T(RD, 0x1.d1962720d678cp-1, -0x1.4548ee45c4084p-1, 0x1.f416ab193d75cp-4, -0x1.d2929879dc854p-2, -0x1.0000fep-1, INEXACT) +T(RD, -0x1.9ddcb295a7d64p-1, 0x1.67fb3a2068a78p-1, 0x1.da9cd4597fe0ap-4, -0x1.cf4f6eb4fc5d9p-2, -0x1.0002b4p-1, INEXACT) +T(RD, 0x1.c00d16ed45b88p+0, 0x1.c787eddda3664p+0, 0x1.1e3e6f0cc1802p-5, 0x1.931b8f379dcc3p+1, -0x1.ffff4ep-2, INEXACT) +T(RD, 0x1.19c2a2372c184p+0, -0x1.cb506961c19fp+0, 0x1.db1abf3f7ba3ap-6, -0x1.f21c0eab0bc19p+0, -0x1.000002p-1, INEXACT) +T(RD, -0x1.3a263218ccd1cp+0, -0x1.e818d390df27cp+0, 0x1.2a81ed71785f5p-5, 0x1.3025ab0f63925p+1, -0x1.ffff2p-2, INEXACT) +T(RD, 0x1.b0b041fbaca58p+0, -0x1.9d5f76d178e6p+0, 0x1.0215c7bb84cf9p-6, -0x1.5b52aec7ef401p+1, -0x1.00002ep-1, INEXACT) +T(RD, -0x1.377549d9a87f4p+0, -0x1.a13d4a03dd6d8p+0, 0x1.f190388bc5cc6p-7, 0x1.ff83bebbd6fe4p+0, -0x1.ffffc4p-2, INEXACT) +T(RD, 0x1.6a726c0762ac8p-1, -0x1.d32f2d30e483cp+0, 0x1.f953eb70fbde6p-7, -0x1.46c61b3070333p+0, -0x1.000008p-1, INEXACT) +T(RD, 0x1.94cf2509d40cp-1, 0x1.721976af6dfbp+0, 0x1.f51a456921c3ep-7, 0x1.28880842acc6p+0, -0x1.ffff84p-2, INEXACT) +T(RD, 0x1.b128eb0ad8728p-1, 0x1.7682566a54268p+0, 0x1.bd4122a074cafp-8, 0x1.3e9469530e762p+0, -0x1.ffffd2p-2, INEXACT) +T(RD, 0x1.c4ae75976e35cp+0, -0x1.11c329dd1160cp+0, 0x1.9993f5e13c9bdp-8, -0x1.e27d925b07cf2p+0, -0x1.000012p-1, INEXACT) +T(RD, -0x1.85f81f88fa3c4p+0, -0x1.17648a494fa18p-1, 0x1.37d305113b48p-10, 0x1.aa367b7490e57p-1, -0x1.fffff4p-2, INEXACT) +T(RD, -0x1.311f2b4319efcp+0, 0x1.abbb5272e3d18p-1, 0x1.35841b7bdbcfep-10, -0x1.fd337f24b39e1p-1, -0x1.00000ap-1, INEXACT) +T(RD, 0x1.ab94369a9a0dp-1, 0x1.9d1e0e0aa3bacp+0, 0x1.0a63ca87cfa78p-11, 0x1.592173ee296b6p+0, -0x1.fffffcp-2, INEXACT) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, -0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, 0x0p+0, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, -0x0p+0, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, -0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, -0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RU, 0x0p+0, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RU, nan, 0x0p+0, 0x0p+0, nan, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, inf, inf, 0x0p+0, 0) +T(RU, 0x0p+0, inf, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU, inf, 0x0p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU, 0x0p+0, 0x0p+0, -inf, -inf, 0x0p+0, 0) +T(RU, 0x0p+0, -inf, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU, -inf, 0x0p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU, 0x1p+0, inf, inf, inf, 0x0p+0, 0) +T(RU, 0x1p+0, inf, -inf, nan, 0x0p+0, INVALID) +T(RU, 0x1p+0, -inf, -inf, -inf, 0x0p+0, 0) +T(RU, 0x1p+0, -inf, inf, nan, 0x0p+0, INVALID) +T(RU, -0x1p+0, inf, inf, nan, 0x0p+0, INVALID) +T(RU, -0x1p+0, inf, -inf, -inf, 0x0p+0, 0) +T(RU, -0x1p+0, -inf, -inf, nan, 0x0p+0, INVALID) +T(RU, -0x1p+0, -inf, inf, inf, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+0, inf, inf, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+0, -inf, -inf, 0x0p+0, 0) +T(RU, inf, -inf, 0x1p+0, -inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x1p+0, inf, 0x0p+0, 0) +T(RU, inf, inf, nan, nan, 0x0p+0, 0) +T(RU, inf, nan, inf, nan, 0x0p+0, 0) +T(RU, nan, inf, inf, nan, 0x0p+0, 0) +// TODO: invalid is optional +T(RU, inf, 0x0p+0, nan, nan, 0x0p+0, INVALID) +T(RU, 0x0p+0, inf, nan, nan, 0x0p+0, INVALID) +T(RU, -inf, 0x0p+0, nan, nan, 0x0p+0, INVALID) +T(RU, 0x0p+0, -inf, nan, nan, 0x0p+0, INVALID) +T(RU, -0x1p+0, 0x0p+0, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, -0x1p+0, 0x1p+0, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+0, -0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x1p+0, -0x1p+0, -0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+0, -0x1p-1074, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-1074, 0x1p-1074, 0x1.fffffffffffffp-1022, 0x1p-1021, 0x1p-1, INEXACT) +T(RU, 0x1p-1074, -0x1p-1074, 0x1.fffffffffffffp-1022, 0x1.fffffffffffffp-1022, 0x0p+0, INEXACT) +T(RU, 0x1p-1074, -0x1p-1074,-0x1.fffffffffffffp-1022,-0x1.fffffffffffffp-1022, 0x0p+0, INEXACT) +T(RU, 0x1p-1074, 0x1p-1074,-0x1.fffffffffffffp-1022,-0x1.ffffffffffffep-1022, 0x1p+0, INEXACT) +T(RU, 0x1p-1074, -0x1p-1074, 0x1p-1074, 0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1074, -0x1p-1074, -0x1p-1074, -0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.0000000000001p+0, 0x1p+0, 0x1p+53, 0x1.0000000000001p+53, 0x1p-1, INEXACT) +T(RU, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1p+53, 0x1.0000000000001p+53, 0x1p-1, INEXACT) +T(RU, 0x1p+0, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp+53, 0x1p+54, 0x1p-2, INEXACT) +T(RU, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep+53, 0x1.fffffffffffffp+53, 0x1p-1, INEXACT) +T(RU, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1p-52, 0x1.0000000000002p+0, 0x1p-1, INEXACT) +T(RU, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp-53, 0x1.0000000000002p+0, 0x1p-1, INEXACT) +T(RU, 0x1.0000000000005p+0, 0x1.ffffffffffffbp-1, 0x1p-52, 0x1.0000000000004p+0, 0x1p-1, INEXACT) +T(RU, 0x1.0000000000006p+0, 0x1.ffffffffffffdp-1, 0x1p-52, 0x1.0000000000006p+0, 0x1p-1, INEXACT) +T(RU, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, -0x1p+0, 0x1.ffffffffffffep-54, 0x0p+0, 0) +T(RU, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, -0x1.fffffffffffffp-1, 0x1.fffffffffffffp-53, 0x0p+0, 0) +T(RU, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, -0x1p+0, -0x1p-104, 0x0p+0, 0) +T(RU, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, -0x1.fffffffffffffp-1, 0x1.ffffffffffffcp-54, 0x0p+0, 0) +T(RU, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, -0x1p+0, -0x1.0000000000003p-53, 0x0p+0, 0) +T(RU, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, -0x1.fffffffffffffp-1, -0x1.8p-104, 0x0p+0, 0) +T(RU, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, -0x1.ffffffffffffep-1, 0x1.ffffffffffffap-54, 0x0p+0, 0) +T(RU, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, -0x1p+0, -0x1.0000000000002p-52, 0x0p+0, 0) +T(RU, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, -0x1.fffffffffffffp-1, -0x1.0000000000004p-53, 0x0p+0, 0) +T(RU, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, -0x1.ffffffffffffep-1, -0x1p-103, 0x0p+0, 0) +T(RU, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, -0x1.ffffffffffffdp-1, 0x1.ffffffffffff8p-54, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp-1, -0x1.fffffffffffffp-1, -0x1.fffffffffffffp-54, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp-1, -0x1.ffffffffffffep-1, 0x1p-106, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep-1, -0x1.fffffffffffffp-1, -0x1.fffffffffffffp-53, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep-1, -0x1.ffffffffffffep-1, -0x1.ffffffffffffep-54, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep-1, -0x1.ffffffffffffdp-1, 0x1p-105, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep-1, -0x1.ffffffffffffcp-1, 0x1.0000000000001p-53, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp-1, 0x1.ffffffffffffdp-1, -0x1p+0, -0x1.fffffffffffffp-52, 0x1p-2, INEXACT) +T(RU, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffbp-1, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff5p+0, 0x1p-1, INEXACT) +T(RU, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffap-1, 0x1p+0, 0x1.ffffffffffff9p+0, 0x1p-1, INEXACT) +T(RU, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffap-1, 0x1.ffffffffffffcp-1, 0x1.ffffffffffff7p+0, 0x1p-1, INEXACT) +T(RU, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffap-1, 0x1.ffffffffffff8p-1, 0x1.ffffffffffff5p+0, 0x1p-1, INEXACT) +T(RU, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff9p-1, 0x1.ffffffffffffdp-1, 0x1.ffffffffffff7p+0, 0x1p-1, INEXACT) +T(RU, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff9p-1, 0x1.ffffffffffff9p-1, 0x1.ffffffffffff5p+0, 0x1p-1, INEXACT) +T(RU, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff8p-1, 0x1.ffffffffffffep-1, 0x1.ffffffffffff7p+0, 0x1p-1, INEXACT) +T(RU, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff8p-1, 0x1.ffffffffffffap-1, 0x1.ffffffffffff5p+0, 0x1p-1, INEXACT) +T(RU, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff7p-1, 0x1.fffffffffffffp-1, 0x1.ffffffffffff7p+0, 0x1p-1, INEXACT) +T(RU, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffbp-1, 0x1.ffffffffffff5p+0, 0x1p-1, INEXACT) +T(RU, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff7p-1, 0x1.ffffffffffff3p+0, 0x1p-1, INEXACT) +T(RU, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep-1, 0x1p+1, 0x1p-2, INEXACT) +T(RU, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1.ffffffffffffap-1, 0x1.ffffffffffffep+0, 0x1p-1, INEXACT) +T(RU, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, 0x1.fffffffffffffp-1, 0x1p+1, 0x1p-2, INEXACT) +T(RU, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, 0x1.ffffffffffffbp-1, 0x1.ffffffffffffep+0, 0x1p-1, INEXACT) +T(RU, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffcp+0, 0x1p-1, INEXACT) +T(RU, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, 0x1p+0, 0x1p+1, 0x1p-2, INEXACT) +T(RU, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, 0x1.ffffffffffffcp-1, 0x1.ffffffffffffep+0, 0x1p-1, INEXACT) +T(RU, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, 0x1.ffffffffffff8p-1, 0x1.ffffffffffffcp+0, 0x1p-1, INEXACT) +T(RU, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, 0x1.ffffffffffffdp-1, 0x1.ffffffffffffep+0, 0x1p-1, INEXACT) +T(RU, 0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, 0x1.ffffffffffff9p-1, 0x1.ffffffffffffcp+0, 0x1p-1, INEXACT) +T(RU, 0x1.0000000000001p+0, 0x1.ffffffffffffbp-1, 0x1.ffffffffffffep-1, 0x1.ffffffffffffep+0, 0x1p-1, INEXACT) +T(RU, 0x1.0000000000001p+0, 0x1.ffffffffffffbp-1, 0x1.ffffffffffffap-1, 0x1.ffffffffffffcp+0, 0x1p-1, INEXACT) +T(RU, 0x1.5872449b765b9p+0, 0x1.c9acf91f8de2bp+0, 0x1.9265607e4d168p+0, 0x1.fd190c77c2a68p+1, 0x1.0001b4p-1, INEXACT) +T(RU, 0x1.81d010b146d0ep+0, 0x1.2d3c680dc9071p+0, 0x1.a80b69538754cp+0, 0x1.b7040b44973a7p+1, 0x1.ffacbcp-2, INEXACT) +T(RU, 0x1.6a44f2252b6a2p+0, 0x1.da452a378b832p+0, 0x1.1fe2ce329104p+0, 0x1.df842b6f48b13p+1, 0x1.ffdda2p-2, INEXACT) +T(RU, 0x1.096b1d26463eep+0, 0x1.d846d3e34333p+0, 0x1.721e3480922b8p+0, 0x1.ade2909c026ap+1, 0x1.000d0ap-1, INEXACT) +T(RU, 0x1.99bd3434c454bp+0, 0x1.03cb8e4115bdep+0, 0x1.109f107188b08p+0, 0x1.5837a47d37fafp+1, 0x1.ffc604p-2, INEXACT) +T(RU, 0x1.ba930a0a78ed2p+0, 0x1.8c24e8d67f636p+0, 0x1.ac49dbfbf8affp+0, 0x1.164947ae6a5dap+2, 0x1.000268p-1, INEXACT) +T(RU, 0x1.be224ad773191p+0, 0x1.d96b77169731fp+0, 0x1.662cfb75d8edep+0, 0x1.27cd67e720f79p+2, 0x1.ffc372p-2, INEXACT) +T(RU, 0x1.59e7a1b0bdb3cp+0, 0x1.2decba4d46421p+0, 0x1.88f4062e96df5p+0, 0x1.90749e4794f7ap+1, 0x1.000d9ep-1, INEXACT) +T(RU, 0x1.22edf4b4da9a7p+0, 0x1.dfa8d65f506cdp+0, 0x1.2799208da2fbap+0, 0x1.a45a1e99ed7a9p+1, 0x1.ffe5f4p-2, INEXACT) +T(RU, 0x1.ad5b991a2a279p+0, 0x1.f02fd26706024p+0, 0x1.831cdd5c8797cp+0, 0x1.30d3a2ac90a61p+2, 0x1.ffc708p-2, INEXACT) +T(RU, 0x1.531f9620e764ap+0, 0x1.cad61b54d4425p+0, 0x1.df817cae8a9afp+0, 0x1.0fd4e7f8671ddp+2, 0x1.ffce32p-2, INEXACT) +T(RU, 0x1.629a5ad79494fp+0, 0x1.049e58693f4c4p+0, 0x1.45b0109e4d00cp+0, 0x1.5758154e14966p+1, 0x1.000202p-1, INEXACT) +T(RU, 0x1.2f52b53f9240ap+0, 0x1.1d5c686dbb0dap+0, 0x1.6da3e392a4fd4p+0, 0x1.5fe03a6795913p+1, 0x1.ffd484p-2, INEXACT) +T(RU, 0x1.058667552b49ep+0, 0x1.23307bacc1c42p+0, 0x1.5b059b47cd8f5p+0, 0x1.423f752486d14p+1, 0x1.0014cp-1, INEXACT) +T(RU, 0x1.a717d95337ed8p+0, 0x1.2b1c37846aaadp+0, 0x1.be65672f885b1p+0, 0x1.d65e72303c076p+1, 0x1.002fcp-1, INEXACT) +T(RU, 0x1.deb79287b3d32p+0, 0x1.62776b829babap+0, 0x1.67daf18bd2eb1p+0, 0x1.ff5a0d45c69d7p+1, 0x1.fff94ap-2, INEXACT) +T(RU, 0x1.fbf12d3a6de91p+0, 0x1.879fe6124f11p+0, 0x1.9f3f1247a8641p+0, 0x1.2a126c6980019p+2, 0x1.ffae88p-2, INEXACT) +T(RU, 0x1.c589628460e01p+0, 0x1.e1bec1c797533p+0, 0x1.349f30cdb84bbp+0, 0x1.2286118b6f6e6p+2, 0x1.0018eap-1, INEXACT) +T(RU, 0x1.46fd6c2c924ebp+0, 0x1.65e2f02e730a1p+0, 0x1.37739d2751098p+0, 0x1.804a71c1f1273p+1, 0x1.ffcf54p-2, INEXACT) +T(RU, 0x1.f99e595ae11fdp+0, 0x1.bd33d9a1d81bp+0, 0x1.932a2a2e244c1p+0, 0x1.409e34f8f2f8ap+2, 0x1.002f4ap-1, INEXACT) +T(RU, 0x1.59ea1e56bfe55p+0, 0x1.6f46b7d412a44p+0, 0x1.80f2bc9a32cc3p+0, 0x1.b89c7640e33p+1, 0x1.000394p-1, INEXACT) +T(RU, 0x1.61490fcb44129p+0, 0x1.0038ec4fc35c2p+0, 0x1.df7436ed7a7b7p+0, 0x1.a085ea68d05dp+1, 0x1.002bdap-1, INEXACT) +T(RU, 0x1.d41b98788502bp+0, 0x1.1a7b77843aca6p+0, 0x1.05be891837d36p+0, 0x1.8523596cecedap+1, 0x1.000a46p-1, INEXACT) +T(RU, 0x1.3153cf6f69af9p+0, 0x1.aaa947e38e57ap+0, 0x1.8519f9b590645p+0, 0x1.c0fcab7b46369p+1, 0x1.fffb68p-2, INEXACT) +T(RU, 0x1.c25a1f73581aap+0, 0x1.0a51ffca372ap+0, 0x1.0c77e3ebac5f3p+0, 0x1.707ce48c7d72ep+1, 0x1.00264cp-1, INEXACT) +T(RU, 0x1.829c2cde44b7p+0, 0x1.f692e86d8cb36p+0, 0x1.455e72d264bfp+0, 0x1.0f16a3b8b3f98p+2, 0x1.000b42p-1, INEXACT) +T(RU, 0x1.94729588dcc69p+0, 0x1.c3bb794c6edf8p+0, 0x1.9da4e94d262d2p+0, 0x1.19d4bd84d9fd3p+2, 0x1.fff0f2p-2, INEXACT) +T(RU, 0x1.e6a5e7e39c3d5p+0, 0x1.1b69af2bdd978p+0, 0x1.e7ef1eafa119cp+0, 0x1.00ac5b44c9f32p+2, 0x1.001678p-1, INEXACT) +T(RU, 0x1.bc9ba1320700cp-1022, 0x1.981f2e1a451a8p-2, 0x1.046144efc0ceap-1022, 0x1.b594d0e4368fp-1022, 0x1.0019dep-1, INEXACT) +T(RU, 0x1.022db53c98d14p-1022, 0x1.21157eef74848p-2, 0x1.2f880432b1bc1p-1022, 0x1.786ad60a02b3ep-1022, 0x1.0022ap-1, INEXACT) +T(RU, 0x1.805a491fa9597p-1022, 0x1.e0f49d782ff87p-2, 0x1.172a62346206p-1022, 0x1.cbb085199a3f6p-1022, 0x1.0016eep-1, INEXACT) +T(RU, 0x1.adbc3a9d816dep-1022, 0x1.e039d4431e3cdp-2, 0x1.93ceef6fe18a2p-1022, 0x1.2eabb7dc0e2f1p-1021, 0x1.ffe108p-2, INEXACT) +T(RU, 0x1.645aa5c2df3afp-1022, 0x1.649edfcad854fp-2, 0x1.8b43e0bbaeb01p-1022, 0x1.03af571d2b505p-1021, 0x1.ffbcc6p-2, INEXACT) +T(RU, 0x1.133474a2c0fb1p-1022, 0x1.72442bcbfa01dp-2, 0x1.4a1a21971c5dbp-1022, 0x1.ad9ce7fcefa4p-1022, 0x1.00044ap-1, INEXACT) +T(RU, 0x1.8ee3feb00c3e7p-1022, 0x1.53bd9353313bcp-2, 0x1.5501b57dc3b6fp-1022, 0x1.d9598906f0bb4p-1022, 0x1.0028ccp-1, INEXACT) +T(RU, 0x1.161225cfa61e2p-1022, 0x1.b6dd69a0af5bp-2, 0x1.924ffc3ead5c3p-1022, 0x1.04be6fc25367cp-1021, 0x1.001f3ap-1, INEXACT) +T(RU, 0x1.820f7faf219afp-1022, 0x1.06717ae771f6dp-2, 0x1.0dc5035f5e2afp-1022, 0x1.70b6c3169f044p-1022, 0x1.001a78p-1, INEXACT) +T(RU, 0x1.ce0e2ea55040ep-1022, 0x1.ce5a55fa3828dp-2, 0x1.f2f444d50ce59p-1022, 0x1.61ca36f5a8a7ap-1021, 0x1.001174p-1, INEXACT) +T(RU, 0x1.a7a271c67cdcfp-1022, 0x1.1e979090e218p-2, 0x1.b1f10b6e2177ap-1022, 0x1.1440cf1c105ecp-1021, 0x1.00002p-1, INEXACT) +T(RU, 0x1.76df065829dc6p-1022, 0x1.fb22ab1b86b8bp-2, 0x1.6966267f317cp-1022, 0x1.1186e1f77012ep-1021, 0x1.00026p-1, INEXACT) +T(RU, 0x1.8b004a28b70dbp-1022, 0x1.48e5805a8b453p-2, 0x1.0ea791f716557p-1022, 0x1.8d86310bad176p-1022, 0x1.0011b8p-1, INEXACT) +T(RU, 0x1.fb3391a4b1d23p-1022, 0x1.4d8705b057caep-2, 0x1.d026cb6dae73bp-1022, 0x1.3aad18b424c68p-1021, 0x1.002142p-1, INEXACT) +T(RU, 0x1.a5ba39730e197p-1022, 0x1.794df89b1cc49p-2, 0x1.24a0a388d0b6bp-1022, 0x1.c0048fd33a418p-1022, 0x1.000e82p-1, INEXACT) +T(RU, 0x1.aa9eff070281cp-1022, 0x1.fab05661b48ebp-2, 0x1.cbe2af6c69c6ep-1022, 0x1.4f7ddbe122765p-1021, 0x1.ffe61ap-2, INEXACT) +T(RU, 0x1.758bbff0ec4bap-1022, 0x1.a4a197f3fa424p-2, 0x1.47761e8d142ddp-1022, 0x1.e0e762ee2e7c6p-1022, 0x1.001e3p-1, INEXACT) +T(RU, 0x1.4dab43918a9a8p-1022, 0x1.ed667442b4751p-2, 0x1.3f25f82e02e3ep-1022, 0x1.dfec0ee732dcbp-1022, 0x1.ffa57p-2, INEXACT) +T(RU, 0x1.7943735951931p-1022, 0x1.fa6a357c5c9ddp-2, 0x1.0bed44b0b71b4p-1022, 0x1.c6803a6059abfp-1022, 0x1.ffbc5ap-2, INEXACT) +T(RU, 0x1.66c26bc29a5e8p-1022, 0x1.3faed079f761ap-2, 0x1.163ff906dd651p-1022, 0x1.8640492c4595ap-1022, 0x1.000132p-1, INEXACT) +T(RU, 0x1.f52172c56bdf5p-1022, 0x1.672b2de422734p-2, 0x1.7bc5d708e5a34p-1022, 0x1.15c5b95145cc7p-1021, 0x1.ffb0c2p-2, INEXACT) +T(RU, 0x1.2f94e89aa7558p-1022, 0x1.dfa6d30835f5ep-2, 0x1.59c6b0d504cf9p-1022, 0x1.e7fa0dd76fbfp-1022, 0x1.000b06p-1, INEXACT) +T(RU, 0x1.6159897ae533cp-1022, 0x1.f3b8892e3a3c8p-2, 0x1.09ca702b7759p-1022, 0x1.b63a7f56fce2p-1022, 0x1.000a4cp-1, INEXACT) +T(RU, 0x1.f73d5f4e81fd8p-1022, 0x1.7ccff2642124ap-2, 0x1.e7d836a0c8308p-1022, 0x1.517f1763126d4p-1021, 0x1.0020d2p-1, INEXACT) +T(RU, 0x1.b4328925969fbp-1022, 0x1.8fa02832a22d5p-2, 0x1.2084598e2f8c6p-1022, 0x1.cabf43838dc52p-1022, 0x1.002f8cp-1, INEXACT) +T(RU, 0x1.66ee60a92676fp-1022, 0x1.eddd2e7681ce4p-2, 0x1.b81d57daeb3a7p-1022, 0x1.329c918ffb683p-1021, 0x1.fff8ccp-2, INEXACT) +T(RU, 0x1.ff2737585895dp-1022, 0x1.fb4bf3828ae4ap-2, 0x1.4a866847740fp-1022, 0x1.23e07e4dbbeabp-1021, 0x1.ffeb94p-2, INEXACT) +T(RU, 0x1.5e2008d269a86p-1022, 0x1.507bbbe4d78eep-2, 0x1.6220c6f83f636p-1022, 0x1.d52d9874f1c75p-1022, 0x1.ffc24cp-2, INEXACT) +T(RU, 0x1.ce7e2e5812d86p-1022, 0x1.0e6689d092e5fp-2, 0x1.1e43fd55c3458p-1022, 0x1.9864925e2fb1p-1022, 0x1.00054ep-1, INEXACT) +T(RU, 0x1.7b353b81e793dp-1022, 0x1.82b426f874c6dp-2, 0x1.d92b19d21fd5cp-1022, 0x1.342fb0c544a79p-1021, 0x1.ffdaa2p-2, INEXACT) +T(RU, 0x1.5be667823370ap-1022, 0x1.a8a99b163869bp-2, 0x1.95456b68dc3bcp-1022, 0x1.12c638de03c71p-1021, 0x1.ffeb66p-2, INEXACT) +T(RU, 0x1.17b0fc6c850e5p-1022, 0x1.d1d0a4853c315p-2, 0x1.36b79f7c0c24p-1022, 0x1.b5f2baff5635dp-1022, 0x1.fffa58p-2, INEXACT) +T(RU, 0x1.bd97819bacfd8p-1022, 0x1.2c25f267ba4eep-2, 0x1.804b5204a3f3ap-1022, 0x1.01739c190fd97p-1021, 0x1.ffc8c4p-2, INEXACT) +T(RU, 0x1.596577053873dp-1022, 0x1.3562ab2d29949p-2, 0x1.b3f1ee75db6e7p-1022, 0x1.0e268a498009bp-1021, 0x1.ffc2fep-2, INEXACT) +T(RU, 0x1.3c7a68cf0f7b3p-1022, 0x1.9a55c15b167bdp-2, 0x1.7635b7b163c07p-1022, 0x1.f5073b93b7b81p-1022, 0x1.ffd14p-2, INEXACT) +T(RU, 0x1.5825164bc4068p-1022, 0x1.dcbb6e5ff3245p-2, 0x1.52fc3be0e84dap-1022, 0x1.f334771c2dcfbp-1022, 0x1.ffb51ep-2, INEXACT) +T(RU, 0x1.139ea77b760ecp+1022, 0x1.9b25f2fd017eap+2,-0x1.bc16788922b6fp+1023, 0x1.b93aac527380fp+1023, 0x1.ffc782p-2, INEXACT) +T(RU, 0x1.0e6f9c1657d7cp+1022, 0x1.4d5c6b55ab5f1p+2,-0x1.e027dd5742e2cp+1023, 0x1.c0538372b4bbfp+1022, 0x1.ffd564p-2, INEXACT) +T(RU, 0x1.1182524fa411cp+1022, 0x1.a3dba56842d19p+2,-0x1.c1ad59474d71fp+1023, 0x1.bf78969300a77p+1023, 0x1.ffcf36p-2, INEXACT) +T(RU, 0x1.1cbf4fb8ec82p+1022, 0x1.5e32019a84fbbp+2,-0x1.985af08f32edep+1023, 0x1.72af6bbad4a29p+1023, 0x1.ff965cp-2, INEXACT) +T(RU, 0x1.311e25c6db346p+1022, 0x1.4e30db6c4b51dp+2,-0x1.7681f7a9786a7p+1023, 0x1.a61d29434fc14p+1023, 0x1.0000bcp-1, INEXACT) +T(RU, 0x1.1201cf577052fp+1022, 0x1.59730b2db7a16p+2,-0x1.56f1a64a078d5p+1023, 0x1.8c8d801df34dap+1023, 0x1.001304p-1, INEXACT) +T(RU, 0x1.3e52335b76e81p+1022, 0x1.4dbd56f857479p+2,-0x1.509340c11bd2ep+1023, 0x1.ed6576837f654p+1023, 0x1.001e4ap-1, INEXACT) +T(RU, 0x1.18566b4f843cbp+1022, 0x1.444fba10eaf29p+2,-0x1.f927beae57f0ap+1023, 0x1.9a433b979655ap+1022, 0x1.004bf6p-1, INEXACT) +T(RU, 0x1.3fbe544fe1be8p+1022, 0x1.2d2a5fda03639p+2,-0x1.007407dbfd03cp+1023, 0x1.efdb644b613e6p+1023, 0x1.001e14p-1, INEXACT) +T(RU, 0x1.263a0d3bc2e4p+1022, 0x1.4cc198adbc651p+2,-0x1.734b1c1f7fdb8p+1023, 0x1.899878afc0fa3p+1023, 0x1.ff97b2p-2, INEXACT) +T(RU, 0x1.5bf4aec8efc8ep+1022, 0x1.555f0341516c9p+2,-0x1.c706408acd14cp+1023, 0x1.d8f5e18b868bdp+1023, 0x1.ffd836p-2, INEXACT) +T(RU, 0x1.1e57f1af78279p+1022, 0x1.34bc0c7f082b3p+2,-0x1.497b92c1365edp+1023, 0x1.692cb7ec68a94p+1023, 0x1.000e06p-1, INEXACT) +T(RU, 0x1.1d9824cd73511p+1022, 0x1.1d557ddfe47ffp+2,-0x1.556cdb1d20a72p+1023, 0x1.2736a6b6e35f3p+1023, 0x1.ffe43ap-2, INEXACT) +T(RU, 0x1.1ff85a24aff31p+1022, 0x1.39ab374b2680dp+2,-0x1.35e6b07b651b8p+1023, 0x1.8bc7ce2087081p+1023, 0x1.ff9ed4p-2, INEXACT) +T(RU, 0x1.0449b3965227ep+1022, 0x1.4430d4441f9f2p+2, -0x1.a6966c96307ep+1023, 0x1.d94eda8c81772p+1022, 0x1.001992p-1, INEXACT) +T(RU, 0x1.3c91fa00fd0c7p+1022, 0x1.1b6661c0b0303p+2,-0x1.f1f2846b64483p+1023, 0x1.95eae0d2644d4p+1022, 0x1.00799ap-1, INEXACT) +T(RU, 0x1.0979b36d46534p+1022, 0x1.12fa205f41f7fp+2,-0x1.a83ecf4544a63p+1023, 0x1.2420f34e2aa3dp+1022, 0x1.ff099ap-2, INEXACT) +T(RU, 0x1.4c89df582a599p+1022, 0x1.55f3dc473ea8fp+2, -0x1.e35037292ddfp+1023, 0x1.95109fdbc3772p+1023, 0x1.001afap-1, INEXACT) +T(RU, 0x1.35ee0a669c4fbp+1022, 0x1.2263cb63f386ap+2,-0x1.449218ae35ac7p+1023, 0x1.7a8ed977d817bp+1023, 0x1.ffd704p-2, INEXACT) +T(RU, 0x1.117cc860f61bcp+1022, 0x1.440985b25d994p+2,-0x1.d7a7d82000449p+1023, 0x1.b960b7088e75p+1022, 0x1.00444p-1, INEXACT) +T(RU, 0x1.1e78a37be320fp+1022, 0x1.0db0fce62287bp+2,-0x1.376337da5eb53p+1023, 0x1.24326b9956dfcp+1023, 0x1.003a52p-1, INEXACT) +T(RU, 0x1.0c79b5c8331c2p+1022, 0x1.0aba6ea746b5p+2,-0x1.c86f1fcaf0741p+1023, 0x1.9c135bb2cff85p+1021, 0x1.fe1cc2p-2, INEXACT) +T(RU, 0x1.556c4c072f272p+1022, 0x1.347758d7d4eb5p+2,-0x1.c6fe4f24b248dp+1023, 0x1.6fcc9f756df6ep+1023, 0x1.001f7p-1, INEXACT) +T(RU, -0x1.e8349b891b2fp-1, 0x1.4a6dec9b72578p-1, 0x1.3b6151ce809ddp-1, 0x1.3a62fe330b356p-11, 0x1.003b2ep-1, INEXACT) +T(RU, 0x1.2996632ac7d74p-1, -0x1.bb3c58b654d94p-1, 0x1.01a6660e64a31p-1, 0x1.ed045bb956a8fp-15, 0x1.0aa0e2p-1, INEXACT) +T(RU, -0x1.c602e894c1df8p-1, 0x1.a1c980e7d3f94p-1, 0x1.7271244b43386p-1, -0x1.ba251fe026e5bp-15, 0x1.fa6bcap-2, INEXACT) +T(RU, -0x1.c84baf47e85cp-1, 0x1.770b5149ef2ep-1, 0x1.4d80f139320bap-1, -0x1.79277433b9e23p-10, 0x1.ffc56ap-2, INEXACT) +T(RU, -0x1.36e667dcf9c6p-1, 0x1.2591f82556b88p-1, 0x1.2452a0f795f95p-1, 0x1.c83c8e63c15ap-3, 0x1.000012p-1, INEXACT) +T(RU, 0x1.88b2cede61e4cp-1, -0x1.71dcab5ad9e9p-3, 0x1.32b27fea2ae97p-3, 0x1.70461909b25e3p-7, 0x1.00000ep-1, INEXACT) +T(RU, 0x1.8d1e44002c98p-3, -0x1.af9fdfb347834p-1, 0x1.e280942fb4146p-4, -0x1.761ac23896dfdp-5, 0x1.ffffdep-2, INEXACT) +T(RU, 0x1.236e8cb9492c8p-1, -0x1.d37443a57f1c4p-1, 0x1.ca10df801aabcp-4, -0x1.a1a2cdf0138f9p-2, 0x1.fff07cp-2, INEXACT) +T(RU, -0x1.6ad943e610fb8p-1, -0x1.cef92a7bb18bcp-1, 0x1.f28587d8fb0ep-4, 0x1.866b5204b9aedp-1, 0x1.00031ap-1, INEXACT) +T(RU, -0x1.60a8569a5d894p-1, -0x1.ca07e29dd171cp-1, 0x1.b6c475ace09ecp-4, 0x1.72549291e2f7bp-1, 0x1.00036ep-1, INEXACT) +T(RU, 0x1.d1962720d678cp-1, -0x1.4548ee45c4084p-1, 0x1.f416ab193d75cp-4, -0x1.d2929879dc853p-2, 0x1.fffe04p-2, INEXACT) +T(RU, -0x1.9ddcb295a7d64p-1, 0x1.67fb3a2068a78p-1, 0x1.da9cd4597fe0ap-4, -0x1.cf4f6eb4fc5d8p-2, 0x1.fffa98p-2, INEXACT) +T(RU, 0x1.c00d16ed45b88p+0, 0x1.c787eddda3664p+0, 0x1.1e3e6f0cc1802p-5, 0x1.931b8f379dcc4p+1, 0x1.000058p-1, INEXACT) +T(RU, 0x1.19c2a2372c184p+0, -0x1.cb506961c19fp+0, 0x1.db1abf3f7ba3ap-6, -0x1.f21c0eab0bc18p+0, 0x1.fffffcp-2, INEXACT) +T(RU, -0x1.3a263218ccd1cp+0, -0x1.e818d390df27cp+0, 0x1.2a81ed71785f5p-5, 0x1.3025ab0f63926p+1, 0x1.00007p-1, INEXACT) +T(RU, 0x1.b0b041fbaca58p+0, -0x1.9d5f76d178e6p+0, 0x1.0215c7bb84cf9p-6, -0x1.5b52aec7ef4p+1, 0x1.ffffa6p-2, INEXACT) +T(RU, -0x1.377549d9a87f4p+0, -0x1.a13d4a03dd6d8p+0, 0x1.f190388bc5cc6p-7, 0x1.ff83bebbd6fe5p+0, 0x1.00001ep-1, INEXACT) +T(RU, 0x1.6a726c0762ac8p-1, -0x1.d32f2d30e483cp+0, 0x1.f953eb70fbde6p-7, -0x1.46c61b3070332p+0, 0x1.fffffp-2, INEXACT) +T(RU, 0x1.94cf2509d40cp-1, 0x1.721976af6dfbp+0, 0x1.f51a456921c3ep-7, 0x1.28880842acc61p+0, 0x1.00003ep-1, INEXACT) +T(RU, 0x1.b128eb0ad8728p-1, 0x1.7682566a54268p+0, 0x1.bd4122a074cafp-8, 0x1.3e9469530e763p+0, 0x1.000016p-1, INEXACT) +T(RU, 0x1.c4ae75976e35cp+0, -0x1.11c329dd1160cp+0, 0x1.9993f5e13c9bdp-8, -0x1.e27d925b07cf1p+0, 0x1.ffffdcp-2, INEXACT) +T(RU, -0x1.85f81f88fa3c4p+0, -0x1.17648a494fa18p-1, 0x1.37d305113b48p-10, 0x1.aa367b7490e58p-1, 0x1.000006p-1, INEXACT) +T(RU, -0x1.311f2b4319efcp+0, 0x1.abbb5272e3d18p-1, 0x1.35841b7bdbcfep-10, -0x1.fd337f24b39ep-1, 0x1.ffffecp-2, INEXACT) +T(RU, 0x1.ab94369a9a0dp-1, 0x1.9d1e0e0aa3bacp+0, 0x1.0a63ca87cfa78p-11, 0x1.592173ee296b7p+0, 0x1.000002p-1, INEXACT) +T(RN, 0x1.000000001p-1000, 0x1.000000001p-30, -0x1p-1066, 0x1.000000001p-1030, -0x1p-28, INEXACT|UNDERFLOW) +T(RN, -0x1.000000001p-1000, 0x1.000000001p-30, -0x1p-1066, -0x1.000000003p-1030, 0x1p-28, INEXACT|UNDERFLOW) +T(RD, 0x1.000000001p-1000, 0x1.000000001p-30, -0x1p-1066, 0x1.000000001p-1030, -0x1p-28, INEXACT|UNDERFLOW) +T(RD, -0x1.000000001p-1000, 0x1.000000001p-30, -0x1p-1066, -0x1.00000000301p-1030, -0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.000000001p-1000, 0x1.000000001p-30, -0x1p-1066, 0x1.00000000101p-1030, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1.000000001p-1000, 0x1.000000001p-30, -0x1p-1066, -0x1.000000003p-1030, 0x1p-28, INEXACT|UNDERFLOW) +T(RZ, 0x1.000000001p-1000, 0x1.000000001p-30, -0x1p-1066, 0x1.000000001p-1030, -0x1p-28, INEXACT|UNDERFLOW) +T(RZ, -0x1.000000001p-1000, 0x1.000000001p-30, -0x1p-1066, -0x1.000000003p-1030, 0x1p-28, INEXACT|UNDERFLOW) +T(RN, -0x1p-1000, 0x1.000001p-74, 0x1p-1022, 0x1.ffffffffffffep-1023, 0x1p-24, INEXACT|UNDERFLOW) +T(RU, -0x1p-1000, 0x1.000001p-74, 0x1p-1022, 0x1.ffffffffffffep-1023, 0x1p-24, INEXACT|UNDERFLOW) +T(RD, -0x1p-1000, 0x1.000001p-74, 0x1p-1022, 0x1.ffffffffffffcp-1023, -0x1.fffffep-1, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1000, 0x1.000001p-74, 0x1p-1022, 0x1.ffffffffffffcp-1023, -0x1.fffffep-1, INEXACT|UNDERFLOW) +// depends on underflow before or after rounding +//T(RN, -0x1p-1000, 0x1p-200, 0x1p-1022, 0x1p-1022, 0x1p-26, INEXACT) +//T(RU, -0x1p-1000, 0x1p-200, 0x1p-1022, 0x1p-1022, 0x1p-26, INEXACT) +T(RD, -0x1p-1000, 0x1p-200, 0x1p-1022, 0x1.ffffffffffffep-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1000, 0x1p-200, 0x1p-1022, 0x1.ffffffffffffep-1023, -0x1p+0, INEXACT|UNDERFLOW) diff --git a/test/musl/src/math/special/fmaf.h b/test/musl/src/math/special/fmaf.h new file mode 100644 index 00000000..ef9957a7 --- /dev/null +++ b/test/musl/src/math/special/fmaf.h @@ -0,0 +1,68 @@ +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) +T(RN, 0x1p-120, 0x1p-120, 0x1p-149, 0x1p-149, -0x1p-91, INEXACT|UNDERFLOW) +T(RN, 0x1p+0, 0x1p+0, -0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p+0, -0x1p+0, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p+0, -0x1p+0, -0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+0, -0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+0, -0x1p+0, 0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RD, -0x1p+0, -0x1p+0, -0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1p-120, 0x1p-120, 0x1p-149, 0x1p-149, -0x1p-91, INEXACT|UNDERFLOW) +T(RU, 0x1p-120, 0x1p-120, 0x1p-149, 0x1p-148, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-120, 0x1p-120, 0x1p-149, 0x1p-149, -0x1p-91, INEXACT|UNDERFLOW) +T(RN, -0x1p-100, 0x1.001p-49, 0x1p-126, 0x1.fffffcp-127, 0x1p-12, INEXACT|UNDERFLOW) +T(RU, -0x1p-100, 0x1.001p-49, 0x1p-126, 0x1.fffffcp-127, 0x1p-12, INEXACT|UNDERFLOW) +T(RD, -0x1p-100, 0x1.001p-49, 0x1p-126, 0x1.fffff8p-127, -0x1.ffep-1, INEXACT|UNDERFLOW) +T(RZ, -0x1p-100, 0x1.001p-49, 0x1p-126, 0x1.fffff8p-127, -0x1.ffep-1, INEXACT|UNDERFLOW) +T(RN, -0x1.26524ep-54, -0x1.cb7868p+11, 0x1.d10f5ep-29, 0x1.d1179ep-29, -0x1p-1, INEXACT) +T(RU, -0x1.26524ep-54, -0x1.cb7868p+11, 0x1.d10f5ep-29, 0x1.d117ap-29, 0x1p-1, INEXACT) +T(RD, -0x1.26524ep-54, -0x1.cb7868p+11, 0x1.d10f5ep-29, 0x1.d1179ep-29, -0x1p-1, INEXACT) +T(RZ, -0x1.26524ep-54, -0x1.cb7868p+11, 0x1.d10f5ep-29, 0x1.d1179ep-29, -0x1p-1, INEXACT) +// double precision x*y+z is a half-way float +T(RN, 0x1.000002p+0, 0x1.fffffep+0, 0x1.fffffep-47, 0x1p+1, -0x1p-1, INEXACT) +T(RN, 0x1.000002p+0, 0x1.fffffep+0, 0x1p-46, 0x1p+1, -0x1p-1, INEXACT) +T(RN, 0x1.000002p+0, 0x1.fffffep+0, 0x1.000002p-46, 0x1.000002p+1, 0x1p-1, INEXACT) +T(RN, 0x1.000002p+0, -0x1.fffffep+0, -0x1.fffffep-47, -0x1p+1, 0x1p-1, INEXACT) +T(RN, 0x1.000002p+0, -0x1.fffffep+0, -0x1p-46, -0x1p+1, 0x1p-1, INEXACT) +T(RN, 0x1.000002p+0, -0x1.fffffep+0, -0x1.000002p-46, -0x1.000002p+1, -0x1p-1, INEXACT) +T(RN, 0x1.000004p+0, 0x1.fffffep+0, 0x1.fffffep-46, 0x1.000002p+1, -0x1p-1, INEXACT) +T(RN, 0x1.000004p+0, 0x1.fffffep+0, 0x1p-45, 0x1.000004p+1, 0x1p-1, INEXACT) +T(RN, 0x1.000004p+0, 0x1.fffffep+0, 0x1.000002p-45, 0x1.000004p+1, 0x1p-1, INEXACT) +T(RN, 0x1.000004p+0, -0x1.fffffep+0, -0x1.fffffep-46, -0x1.000002p+1, 0x1p-1, INEXACT) +T(RN, 0x1.000004p+0, -0x1.fffffep+0, -0x1p-45, -0x1.000004p+1, -0x1p-1, INEXACT) +T(RN, 0x1.000004p+0, -0x1.fffffep+0, -0x1.000002p-45, -0x1.000004p+1, -0x1p-1, INEXACT) diff --git a/test/musl/src/math/special/fmal.h b/test/musl/src/math/special/fmal.h new file mode 100644 index 00000000..1f60313d --- /dev/null +++ b/test/musl/src/math/special/fmal.h @@ -0,0 +1,49 @@ +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) +T(RN, 0x1.0000000001p-16000L, 0x1.0000000001p-400L, -0x1p-16440L, 0x1.0000000001p-16400L, -0x1p-35, INEXACT|UNDERFLOW) +T(RN, -0x1.0000000001p-16000L, 0x1.0000000001p-400L, -0x1p-16440L, -0x1.0000000003p-16400L, 0x1p-35, INEXACT|UNDERFLOW) +T(RD, 0x1.0000000001p-16000L, 0x1.0000000001p-400L, -0x1p-16440L, 0x1.0000000001p-16400L, -0x1p-35, INEXACT|UNDERFLOW) +T(RD, -0x1.0000000001p-16000L, 0x1.0000000001p-400L, -0x1p-16440L, -0x1.000000000308p-16400L, -0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.0000000001p-16000L, 0x1.0000000001p-400L, -0x1p-16440L, 0x1.000000000108p-16400L, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1.0000000001p-16000L, 0x1.0000000001p-400L, -0x1p-16440L, -0x1.0000000003p-16400L, 0x1p-35, INEXACT|UNDERFLOW) +T(RZ, 0x1.0000000001p-16000L, 0x1.0000000001p-400L, -0x1p-16440L, 0x1.0000000001p-16400L, -0x1p-35, INEXACT|UNDERFLOW) +T(RZ, -0x1.0000000001p-16000L, 0x1.0000000001p-400L, -0x1p-16440L, -0x1.0000000003p-16400L, 0x1p-35, INEXACT|UNDERFLOW) +T(RN, -0x1p-10000L, 0x1.0000000000001p-6445L, 0x1p-16382L, 0x1.fffffffffffffffcp-16383L, 0x1p-52, INEXACT|UNDERFLOW) +T(RU, -0x1p-10000L, 0x1.0000000000001p-6445L, 0x1p-16382L, 0x1.fffffffffffffffcp-16383L, 0x1p-52, INEXACT|UNDERFLOW) +T(RD, -0x1p-10000L, 0x1.0000000000001p-6445L, 0x1p-16382L, 0x1.fffffffffffffff8p-16383L, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-10000L, 0x1.0000000000001p-6445L, 0x1p-16382L, 0x1.fffffffffffffff8p-16383L, -0x1p+0, INEXACT|UNDERFLOW) diff --git a/test/musl/src/math/special/fmax.h b/test/musl/src/math/special/fmax.h new file mode 100644 index 00000000..9385c06b --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/fmaxf.h b/test/musl/src/math/special/fmaxf.h new file mode 100644 index 00000000..60113af1 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/fmaxl.h b/test/musl/src/math/special/fmaxl.h new file mode 100644 index 00000000..3a51f46a --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/fmin.h b/test/musl/src/math/special/fmin.h new file mode 100644 index 00000000..f794bfd8 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/fminf.h b/test/musl/src/math/special/fminf.h new file mode 100644 index 00000000..b1145675 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/fminl.h b/test/musl/src/math/special/fminl.h new file mode 100644 index 00000000..61c474c9 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/fmod.h b/test/musl/src/math/special/fmod.h new file mode 100644 index 00000000..a41456d9 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/fmodf.h b/test/musl/src/math/special/fmodf.h new file mode 100644 index 00000000..ce07cd63 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/fmodl.h b/test/musl/src/math/special/fmodl.h new file mode 100644 index 00000000..61c59706 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/frexp.h b/test/musl/src/math/special/frexp.h new file mode 100644 index 00000000..97ba49fa --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/frexpf.h b/test/musl/src/math/special/frexpf.h new file mode 100644 index 00000000..c4001516 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/frexpl.h b/test/musl/src/math/special/frexpl.h new file mode 100644 index 00000000..d6d44fac --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/hypot.h b/test/musl/src/math/special/hypot.h new file mode 100644 index 00000000..3cff8033 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/hypotf.h b/test/musl/src/math/special/hypotf.h new file mode 100644 index 00000000..f87dcc09 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/hypotl.h b/test/musl/src/math/special/hypotl.h new file mode 100644 index 00000000..b6c64278 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/ilogb.h b/test/musl/src/math/special/ilogb.h new file mode 100644 index 00000000..2e2b8d23 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/ilogbf.h b/test/musl/src/math/special/ilogbf.h new file mode 100644 index 00000000..0fcaa2b1 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/ilogbl.h b/test/musl/src/math/special/ilogbl.h new file mode 100644 index 00000000..d3a8d2a5 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/j0.h b/test/musl/src/math/special/j0.h new file mode 100644 index 00000000..0f15dfdc --- /dev/null +++ b/test/musl/src/math/special/j0.h @@ -0,0 +1,15 @@ +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) +// hard cases +T(RN, -0x1.33d132fd04a92p+1, 0x1.092b2a541a68ep-19, -0x1.2ebdbp-2, INEXACT) +T(RN, -0x1.33d15297be06fp+1, 0x1.5352913be3275p-26, 0x1.c281e2p-7, INEXACT) +T(RN, 0x1.33d152e971b4p+1, -0x1.19b7921f03c8ep-54, 0x1.ece5dp-5, INEXACT) +T(RN, 0x1.6148f5b2c2e45p+2, -0x1.fbb40985f6e34p-56, -0x1.1ac8a8p-2, INEXACT) +T(RN, 0x1.14eb56cccdecap+3, -0x1.6e8eeb22e5818p-54, -0x1.63ab44p-2, INEXACT) +T(RN, 0x1.c071b22fbbafap+1023, -0x1.a348b1f34dd1ap-526, 0x1.3153c2p-6, INEXACT) +T(RN, 0x1.f7350b1701ef7p+0, 0x1.f32b3a3640292p-3, -0x1.b3bad8p-5, INEXACT) +T(RN, 0x1.f8e4d2e98fb6bp-14, 0x1.ffffffe0e1d1bp-1, 0x1.e1c4cp-2, INEXACT) +T(RN, -0x1.fd2421ac2a80ap-14, 0x1.ffffffe05b3a7p-1, 0x1.e0f12cp-2, INEXACT) diff --git a/test/musl/src/math/special/j0f.h b/test/musl/src/math/special/j0f.h new file mode 100644 index 00000000..e6779fd6 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/j1.h b/test/musl/src/math/special/j1.h new file mode 100644 index 00000000..50784cb1 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/j1f.h b/test/musl/src/math/special/j1f.h new file mode 100644 index 00000000..ebc44c3f --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/jn.h b/test/musl/src/math/special/jn.h new file mode 100644 index 00000000..10246d46 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/jnf.h b/test/musl/src/math/special/jnf.h new file mode 100644 index 00000000..47dbeb2e --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/ldexp.h b/test/musl/src/math/special/ldexp.h new file mode 100644 index 00000000..af596ad5 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/ldexpf.h b/test/musl/src/math/special/ldexpf.h new file mode 100644 index 00000000..68bad47c --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/ldexpl.h b/test/musl/src/math/special/ldexpl.h new file mode 100644 index 00000000..cea8e153 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/lgamma.h b/test/musl/src/math/special/lgamma.h new file mode 100644 index 00000000..1f3a3a17 --- /dev/null +++ b/test/musl/src/math/special/lgamma.h @@ -0,0 +1,193 @@ +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) +// positive int +T(RN, 0x1p+1, 0x0p+0, 0x0p+0, 1, 0) +T(RN, 0x1p+2, 0x1.cab0bfa2a2002p+0, -0x1.9136fep-3, 1, INEXACT) +T(RN, 0x1.8p+1, 0x1.62e42fefa39efp-1, -0x1.abc9e4p-3, 1, INEXACT) +T(RN, 0x1.4p+2, 0x1.96ca77c922cf9p+1, 0x1.30bfc8p-2, 1, INEXACT) +T(RN, 0x1.8p+2, 0x1.326643c4479c9p+2, -0x1.a53c28p-3, 1, INEXACT) +T(RN, 0x1.cp+2, 0x1.a51273acf01cap+2, 0x1.f67618p-3, 1, INEXACT) +T(RN, 0x1p+3, 0x1.10ce1f32dcc3p+3, 0x1.a6cba4p-3, 1, INEXACT) +T(RN, 0x1.2p+3, 0x1.5358e82fcb70dp+3, 0x1.6b4ae4p-2, 1, INEXACT) +T(RN, 0x1.4p+3, 0x1.99a8921a7f7cfp+3, -0x1.2c1f5ep-2, 1, INEXACT) +T(RN, 0x1.6p+3, 0x1.e357590954d15p+3, 0x1.510358p-2, 1, INEXACT) +T(RN, 0x1.8p+3, 0x1.180973f3a8d74p+4, 0x1.9946fcp-3, 1, INEXACT) +T(RN, 0x1.ap+3, 0x1.3fcba16d50143p+4, -0x1.a69562p-2, 1, INEXACT) +T(RN, 0x1.cp+3, 0x1.68d5a9c3b32cep+4, 0x1.da276p-2, 1, INEXACT) +T(RN, 0x1.ep+3, 0x1.930f3df162a42p+4, -0x1.e1a3a2p-2, 1, INEXACT) +T(RN, 0x1p+4, 0x1.be636a63fd346p+4, -0x1.623db2p-2, 1, INEXACT) +T(RN, 0x1p+5, 0x1.385e6fd9e5a4p+6, -0x1.007d88p-2, 1, INEXACT) +T(RN, 0x1p+6, 0x1.9204c51e7c761p+7, -0x1.7279cep-2, 1, INEXACT) +T(RN, 0x1p+7, 0x1.eb8daec863182p+8, 0x1.0c2678p-5, 1, INEXACT) +T(RN, 0x1.1ap+7, 0x1.159c32993e34fp+9, -0x1.d4b39cp-3, 1, INEXACT) +T(RN, 0x1.1cp+7, 0x1.1815a3900cac1p+9, -0x1.d8eed4p-2, 1, INEXACT) +T(RN, 0x1.1ep+7, 0x1.1a8ffc1a8d2fep+9, 0x1.f02e3ap-2, 1, INEXACT) +T(RN, 0x1.2p+7, 0x1.1d0b3a98b83c1p+9, -0x1.0555a4p-3, 1, INEXACT) +T(RN, 0x1.22p+7, 0x1.1f875d7052afep+9, -0x1.a7798p-4, 1, INEXACT) +T(RN, 0x1.52p+7, 0x1.5c2757bd48ee8p+9, 0x1.0d27bp-2, 1, INEXACT) +T(RN, 0x1.54p+7, 0x1.5eb7f842af2p+9, -0x1.7acc84p-2, 1, INEXACT) +T(RN, 0x1.56p+7, 0x1.61495a1a8a1d5p+9, 0x1.1fb02ap-4, 1, INEXACT) +T(RN, 0x1.58p+7, 0x1.63db7c229538bp+9, -0x1.287342p-3, 1, INEXACT) +T(RN, 0x1p+8, 0x1.226d931091be7p+10, -0x1.e8aedep-3, 1, INEXACT) +T(RN, 0x1p+8, 0x1.226d931091be7p+10, -0x1.e8aedep-3, 1, INEXACT) +T(RN, 0x1p+9, 0x1.4efa4f073a641p+11, 0x1.c54f54p-2, 1, INEXACT) +T(RN, 0x1p+10, 0x1.7b747c92489cap+12, -0x1.a11112p-2, 1, INEXACT) +T(RN, 0x1p+11, 0x1.a7e29c5f29d1p+13, -0x1.19d326p-4, 1, INEXACT) +T(RN, 0x1p+12, 0x1.d4495238c494bp+14, 0x1.71a32p-4, 1, INEXACT) +T(RN, 0x1p+13, 0x1.0055d0cd52142p+16, -0x1.48ba7ep-3, 1, INEXACT) +T(RN, 0x1p+14, 0x1.1685b2824d13fp+17, -0x1.0ef77ep-2, 1, INEXACT) +T(RN, 0x1p+16, 0x1.42e39be5801a3p+19, -0x1.e2f2acp-5, 1, INEXACT) +T(RN, 0x1p+15, 0x1.2cb4db0aaaafdp+18, 0x1.1ad70cp-4, 1, INEXACT) +T(RN, 0x1p+17, 0x1.5912235dfaac2p+20, 0x1.f7c9a8p-2, 1, INEXACT) +T(RN, 0x1p+18, 0x1.6f408b5f7df1ep+21, -0x1.4d41eep-3, 1, INEXACT) +T(RN, 0x1p+19, 0x1.856ee242a101bp+22, 0x1.d496a6p-5, 1, INEXACT) +T(RN, 0x1p+20, 0x1.9b9d2fe521c68p+23, -0x1.2ff64cp-2, 1, INEXACT) +T(RN, 0x1p+100, 0x1.1142457337d43p+106, 0x1.e3948cp-4, 1, INEXACT) +T(RN, 0x1p+200, 0x1.1342457337d43p+207, 0x1.e3948cp-4, 1, INEXACT) +T(RN, 0x1p+300, 0x1.9de3682cd3be4p+307, -0x1.4aa84cp-2, 1, INEXACT) +T(RN, 0x1p+400, 0x1.1442457337d43p+408, 0x1.e3948cp-4, 1, INEXACT) +T(RN, 0x1p+500, 0x1.5992d6d005c94p+508, 0x1.971e6cp-2, 1, INEXACT) +T(RN, 0x1p+600, 0x1.9ee3682cd3be4p+608, -0x1.4aa84cp-2, 1, INEXACT) +T(RN, 0x1p+700, 0x1.e433f989a1b35p+708, -0x1.637816p-5, 1, INEXACT) +T(RN, 0x1p+800, 0x1.14c2457337d43p+809, 0x1.e3948cp-4, 1, INEXACT) +T(RN, 0x1p+900, 0x1.376a8e219ecebp+909, -0x1.effc72p-3, 1, INEXACT) +T(RN, 0x1p+1000, 0x1.5a12d6d005c94p+1009, 0x1.971e6cp-2, 1, INEXACT) +T(RN, 0x1p+1010, 0x1.5d8a1147dce24p+1019, -0x1.c0f85p-2, 1, INEXACT) +T(RN, 0x1p+1011, 0x1.5de2ca53d8cb3p+1020, 0x1.3f48d8p-4, 1, INEXACT) +T(RN, 0x1p+1012, 0x1.5e3b835fd4b41p+1021, -0x1.9f6344p-2, 1, INEXACT) +T(RN, 0x1p+1013, 0x1.5e943c6bd09dp+1022, 0x1.c59d0ep-4, 1, INEXACT) +T(RN, 0x1p+1014, 0x1.5eecf577cc85ep+1023, -0x1.7dce36p-2, 1, INEXACT) +T(RN, 0x1p+1015, inf, 0x0p+0, 1, INEXACT|OVERFLOW) +// close to poles +T(RN, 0x1p-50, 0x1.1542457337d43p+5, 0x1.858eaep-3, 1, INEXACT) +T(RN, 0x1p-51, 0x1.1acdd632f662bp+5, 0x1.aa7eaap-2, 1, INEXACT) +T(RN, 0x1p-52, 0x1.205966f2b4f12p+5, -0x1.5b5178p-2, 1, INEXACT) +T(RN, 0x1p-53, 0x1.25e4f7b2737fap+5, -0x1.5f9548p-4, 1, INEXACT) +T(RN, 0x1p-54, 0x1.2b708872320e2p+5, 0x1.6049eep-3, 1, INEXACT) +T(RN, 0x1.000000000001p-1024, 0x1.62e42fefa39efp+9, -0x1.6bc9e4p-3, 1, INEXACT) +T(RN, -0x1.000000000001p-1024, 0x1.62e42fefa39efp+9, -0x1.6bc9e4p-3, -1, INEXACT) +T(RN, -0x1p-54, 0x1.2b708872320e2p+5, 0x1.4dd162p-3, -1, INEXACT) +T(RN, -0x1p-53, 0x1.25e4f7b2737fap+5, -0x1.a9777cp-4, -1, INEXACT) +T(RN, -0x1p-52, 0x1.205966f2b4f12p+5, -0x1.804292p-2, -1, INEXACT) +T(RN, -0x1p-51, 0x1.1acdd632f662bp+5, 0x1.609c76p-2, -1, INEXACT) +T(RN, -0x1p-50, 0x1.1542457337d43p+5, 0x1.781778p-5, -1, INEXACT) +T(RN, -0x1.ffffffffffffcp-1, 0x1.1acdd632f662bp+5, 0x1.6a7eaap-2, -1, INEXACT) +T(RN, -0x1.ffffffffffffdp-1, 0x1.1d1b02751cfe2p+5, 0x1.bb0106p-3, -1, INEXACT) +T(RN, -0x1.ffffffffffffep-1, 0x1.205966f2b4f12p+5, -0x1.7b5178p-2, -1, INEXACT) +T(RN, -0x1.fffffffffffffp-1, 0x1.25e4f7b2737fap+5, -0x1.9f9548p-4, -1, INEXACT) +T(RN, -0x1.0000000000001p+0, 0x1.205966f2b4f12p+5, -0x1.604292p-2, 1, INEXACT) +T(RN, -0x1.0000000000002p+0, 0x1.1acdd632f662bp+5, 0x1.a09c76p-2, 1, INEXACT) +T(RN, -0x1.0000000000003p+0, 0x1.178f71b55e6fap+5, 0x1.b73398p-7, 1, INEXACT) +T(RN, -0x1.0000000000004p+0, 0x1.1542457337d43p+5, 0x1.5e05dep-3, 1, INEXACT) +T(RN, -0x1.ffffffffffffcp+0, 0x1.0fb6b4b37945bp+5, -0x1.09e116p-2, 1, INEXACT) +T(RN, -0x1.ffffffffffffdp+0, 0x1.1203e0f59fe12p+5, -0x1.801b82p-2, 1, INEXACT) +T(RN, -0x1.ffffffffffffep+0, 0x1.1542457337d43p+5, 0x1.eeb1e8p-5, 1, INEXACT) +T(RN, -0x1.fffffffffffffp+0, 0x1.1acdd632f662bp+5, 0x1.68061cp-2, 1, INEXACT) +T(RN, -0x1.0000000000001p+1, 0x1.1542457337d43p+5, 0x1.67e812p-3, -1, INEXACT) +T(RN, -0x1.0000000000002p+1, 0x1.0fb6b4b37945bp+5, -0x1.da57d2p-6, -1, INEXACT) +T(RN, -0x1.0000000000003p+1, 0x1.0c785035e152ap+5, -0x1.8300e2p-2, -1, INEXACT) +T(RN, -0x1.0000000000004p+1, 0x1.0a2b23f3bab73p+5, -0x1.68603ap-3, -1, INEXACT) +T(RN, -0x1.7fffffffffffdp+1, 0x1.03ae5af88ad12p+5, -0x1.d26cfep-2, -1, INEXACT) +T(RN, -0x1.7fffffffffffep+1, 0x1.06ecbf7622c43p+5, 0x1.e61884p-6, -1, INEXACT) +T(RN, -0x1.7ffffffffffffp+1, 0x1.0c785035e152bp+5, 0x1.7b6e3p-2, -1, INEXACT) +T(RN, -0x1.5800000000001p+7, -0x1.56d5d620a668ap+9, -0x1.2ee7c2p-2, -1, INEXACT) +T(RN, -0x1.5800000000002p+7, -0x1.572e8f2ca2519p+9, 0x1.e6ce3ep-2, -1, INEXACT) +T(RN, -0x1.5800000000003p+7, -0x1.576275747bd0ep+9, -0x1.996fcp-3, -1, INEXACT) +T(RN, -0x1.5800000000004p+7, -0x1.578748389e3abp+9, -0x1.dcfb3cp-2, -1, INEXACT) +T(RN, -0x1.59ffffffffffcp+7, -0x1.5a1ae747b6c95p+9, 0x1.1df6bcp-2, -1, INEXACT) +T(RN, -0x1.59ffffffffffdp+7, -0x1.59f61483945fbp+9, 0x1.f2d7dap-4, -1, INEXACT) +T(RN, -0x1.59ffffffffffep+7, -0x1.59c22e3bbae09p+9, 0x1.7eb7f4p-2, -1, INEXACT) +T(RN, -0x1.59fffffffffffp+7, -0x1.5969752fbef7cp+9, 0x1.6efba6p-3, -1, INEXACT) +T(RN, -0x1.5a00000000001p+7, -0x1.5969752fbef7fp+9, -0x1.f116f8p-3, 1, INEXACT) +T(RN, -0x1.5bfffffffffffp+7, -0x1.5bfdd11c4d28ap+9, 0x1.355f16p-2, 1, INEXACT) +T(RN, -0x1.5c00000000001p+7, -0x1.5bfdd11c4d28dp+9, -0x1.dee3bcp-4, -1, INEXACT) +T(RN, -0x1.5dfffffffffffp+7, -0x1.5e92e8d13d945p+9, -0x1.4fc29p-2, -1, INEXACT) +T(RN, -0x1.5e00000000001p+7, -0x1.5e92e8d13d947p+9, 0x1.061266p-2, 1, INEXACT) +T(RN, -0x1.5ffffffffffffp+7, -0x1.6128bb3ca52b6p+9, -0x1.96085ep-4, 1, INEXACT) +T(RN, -0x1.6000000000001p+7, -0x1.6128bb3ca52b8p+9, 0x1.f33b98p-2, -1, INEXACT) +T(RN, -0x1.61fffffffffffp+7, -0x1.63bf474fb378ap+9, 0x1.73ef9cp-2, -1, INEXACT) +T(RN, -0x1.6200000000001p+7, -0x1.63bf474fb378dp+9, -0x1.83716cp-5, 1, INEXACT) +T(RN, -0x1.63fffffffffffp+7, -0x1.66568bfea532fp+9, -0x1.d90ab8p-3, 1, INEXACT) +T(RN, -0x1.6400000000001p+7, -0x1.66568bfea5331p+9, 0x1.71fd36p-2, -1, INEXACT) +T(RN, -0x1.65fffffffffffp+7, -0x1.68ee8840b71bfp+9, 0x1.d2ad22p-2, -1, INEXACT) +T(RN, -0x1.6600000000001p+7, -0x1.68ee8840b71c2p+9, 0x1.a05f9ap-5, 1, INEXACT) +T(RN, -0x1.67fffffffffffp+7, -0x1.6b873b10192a6p+9, 0x1.037e8ep-4, 1, INEXACT) +T(RN, -0x1.6800000000001p+7, -0x1.6b873b10192a9p+9, -0x1.5ae95ep-2, -1, INEXACT) +T(RN, -0x1.69fffffffffffp+7, -0x1.6e20a369e1fc4p+9, 0x1.948398p-2, -1, INEXACT) +T(RN, -0x1.6a00000000001p+7, -0x1.6e20a369e1fc7p+9, -0x1.1c50ap-8, 1, INEXACT) +T(RN, -0x1.6bfffffffffffp+7, -0x1.70bac04e0290cp+9, 0x1.74f3f4p-2, 1, INEXACT) +T(RN, -0x1.6c00000000001p+7, -0x1.70bac04e0290fp+9, -0x1.0985dp-5, -1, INEXACT) +T(RN, -0x1.6dffffffffffcp+7, -0x1.740702d73217fp+9, 0x1.59ce4ap-5, -1, INEXACT) +T(RN, -0x1.6dffffffffffdp+7, -0x1.73e230130fae5p+9, -0x1.9eba32p-4, -1, INEXACT) +T(RN, -0x1.6dffffffffffep+7, -0x1.73ae49cb362f3p+9, 0x1.5157cp-3, -1, INEXACT) +T(RN, -0x1.6dfffffffffffp+7, -0x1.735590bf3a466p+9, -0x1.035d0ep-6, -1, INEXACT) +T(RN, -0x1.6e00000000001p+7, -0x1.735590bf3a469p+9, -0x1.a38e4p-2, 1, INEXACT) +T(RN, -0x1.6e00000000002p+7, -0x1.73ae49cb362f8p+9, 0x1.81fbp-2, 1, INEXACT) +T(RN, -0x1.6e00000000003p+7, -0x1.73e230130faedp+9, -0x1.21b7dcp-2, 1, INEXACT) +T(RN, -0x1.6e00000000004p+7, -0x1.740702d732189p+9, 0x1.ddd80ap-2, 1, INEXACT) +T(RN, -0x1.6e0000000000bp+7, -0x1.74887efab23adp+9, -0x1.55a5fap-4, 1, INEXACT) +T(RN, -0x1.6e0000000000cp+7, -0x1.7493a22b07815p+9, 0x1.a5a52p-2, 1, INEXACT) +T(RN, -0x1.6ffffffffffffp+7, -0x1.75f113c30b1c5p+9, 0x1.7c2ac4p-2, 1, INEXACT) +T(RN, -0x1.7000000000001p+7, -0x1.75f113c30b1c8p+9, -0x1.465526p-6, -1, INEXACT) +T(RN, -0x1.9000000000001p+7, -0x1.a0052aa6564bdp+9, -0x1.b66b66p-6, -1, INEXACT) +T(RN, -0x1.9200000000001p+7, -0x1.a2abfd5850b61p+9, -0x1.33d934p-3, 1, INEXACT) +// half +T(RN, 0x1p-1, 0x1.250d048e7a1bdp-1, -0x1.7abf2ap-5, 1, INEXACT) +T(RN, -0x1p-1, 0x1.43f89a3f0edd6p+0, -0x1.053cd8p-3, -1, INEXACT) +T(RN, -0x1.8p+0, 0x1.b858151820f86p-1, -0x1.1fcfbcp-2, 1, INEXACT) +T(RN, -0x1.4p+1, -0x1.ccbf9f5ed0f16p-5, -0x1.dc4f24p-2, -1, INEXACT) +T(RN, -0x1.cp+1, -0x1.4f1b0fe64a5d8p+0, 0x1.97e8b4p-2, 1, INEXACT) +T(RN, -0x1.2p+2, -0x1.681323a20c77bp+1, -0x1.7b7b92p-7, -1, INEXACT) +T(RN, -0x1.6p+2, -0x1.2124298f0b825p+2, 0x1.cece2cp-2, 1, INEXACT) +T(RN, -0x1.ap+2, -0x1.98efc4eaa371p+2, 0x1.88f454p-5, -1, INEXACT) +T(RN, -0x1.ep+2, -0x1.0cf1f85b8c9f1p+3, -0x1.6735dap-3, 1, INEXACT) +T(RN, -0x1.1p+3, -0x1.516d64647c63p+3, 0x1.4e05f4p-2, -1, INEXACT) +T(RN, -0x1.3p+3, -0x1.9977f97d94f5cp+3, 0x1.f2a81ep-2, 1, INEXACT) +T(RN, -0x1.5p+3, -0x1.e4b670d05976ap+3, -0x1.c992b6p-3, -1, INEXACT) +T(RN, -0x1.7p+3, -0x1.196f12e453063p+4, 0x1.ab76eep-2, 1, INEXACT) +T(RN, -0x1.9p+3, -0x1.41d87554b103ap+4, 0x1.7a46c2p-2, -1, INEXACT) +T(RN, -0x1.bp+3, -0x1.6b7d13453aefdp+4, -0x1.eb62d2p-4, 1, INEXACT) +T(RN, -0x1.dp+3, -0x1.9646635d59cf1p+4, 0x1.fa56e8p-3, -1, INEXACT) +T(RN, -0x1.fp+3, -0x1.c220de6eff08dp+4, 0x1.e0fc88p-7, 1, INEXACT) +T(RN, -0x1.08p+4, -0x1.eefb6ed92d5d8p+4, -0x1.55ee84p-2, -1, INEXACT) +T(RN, -0x1.04p+5, -0x1.48a17af5b8adfp+6, -0x1.185a66p-2, -1, INEXACT) +T(RN, -0x1.02p+6, -0x1.9c37accac44cp+7, -0x1.ae8418p-2, -1, INEXACT) +T(RN, -0x1.01p+7, -0x1.f1b08f3fde793p+8, -0x1.ce9ee6p-3, -1, INEXACT) +T(RN, -0x1.5dp+7, -0x1.6c4e4627eb444p+9, 0x1.f72cccp-2, -1, INEXACT) +T(RN, -0x1.5fp+7, -0x1.6ee3bb5a22ac7p+9, -0x1.d2085ap-4, 1, INEXACT) +T(RN, -0x1.61p+7, -0x1.7179eabb068adp+9, 0x1.fe5a3ap-2, -1, INEXACT) +T(RN, -0x1.63p+7, -0x1.7410d33d4ea93p+9, 0x1.7b506cp-3, 1, INEXACT) +T(RN, -0x1.65p+7, -0x1.76a873d6b9633p+9, -0x1.0cf326p-3, -1, INEXACT) +T(RN, -0x1.008p+8, -0x1.2438be0f58946p+10, -0x1.1a4afep-2, -1, INEXACT) +T(RN, -0x1.ffffffffffffbp+51, -0x1.185966f2b4f1p+57, 0x1.8f1478p-4, 1, INEXACT) +T(RN, -0x1.ffffffffffffdp+51, -0x1.185966f2b4f11p+57, 0x1.ca5574p-3, -1, INEXACT) +T(RN, -0x1.fffffffffffffp+51, -0x1.185966f2b4f12p+57, 0x1.669056p-2, 1, INEXACT) +T(RN, -0x1.0000000000001p+52, inf, 0x0p+0, 1, DIVBYZERO) +// various +T(RN, -0x1.facae9c9e7105p+5, -0x1.92653977bf093p+7, -0x1.bb8aeap-2, 1, INEXACT) +T(RN, -0x1.fdce012aee935p+6, -0x1.ec95c6a6831b4p+8, -0x1.451de8p-2, 1, INEXACT) +T(RN, 0x1.1a781948507bcp+7, 0x1.1630b37a4ed26p+9, -0x1.87943p-2, 1, INEXACT) +T(RN, -0x1.1a781948507bcp+7, -0x1.17e4f39a586b4p+9, -0x1.7be392p-2, 1, INEXACT) +T(RN, 0x1.57p+7, 0x1.6292532a8beaap+9, -0x1.eb11fcp-5, 1, INEXACT) +T(RN, 0x1.573fae561f646p+7, 0x1.62e42fefa39eep+9, 0x1.fda492p-2, 1, INEXACT) +T(RN, 0x1.573fae561f647p+7, 0x1.62e42fefa39efp+9, 0x1.b26186p-3, 1, INEXACT) +T(RN, 0x1.573fae561f648p+7, 0x1.62e42fefa39fp+9, -0x1.2d0c2ep-4, 1, INEXACT) +T(RN, 0x1.edd3c07ee0b0bp+6, 0x1.d59bfdf24c9ffp+8, 0x1.0f21c8p-3, 1, INEXACT) +T(RN, -0x1.edd3c07ee0b0bp+6, -0x1.d9457172bbc24p+8, -0x1.006ddcp-2, 1, INEXACT) +T(RN, 0x1.8b0fcd324d5a2p+3, 0x1.25a113a5c4e94p+4, 0x1.1d5e24p-2, 1, INEXACT) +T(RN, -0x1.8b0fcd324d5a2p+3, -0x1.39914352dc9c6p+4, 0x1.d8544p-3, -1, INEXACT) +T(RN, -0x1.0000000000123p+7, -0x1.d6e31e237e42bp+8, -0x1.5408bep-2, -1, INEXACT) +T(RN, -0x1.0000123456789p+7, -0x1.e786399c9ac9dp+8, 0x1.9c0646p-2, -1, INEXACT) +T(RN, -0x1.0123456789123p+7, -0x1.f2003a26fc4c9p+8, -0x1.68dbc2p-3, -1, INEXACT) +T(RN, -0x1.2345678912345p+7, -0x1.22fb34ce65adcp+9, 0x1.1769e4p-2, 1, INEXACT) +T(RN, -0x1.fffffff987654p+6, -0x1.e040417b7482fp+8, 0x1.8e9c6ap-5, 1, INEXACT) +T(RN, -0x1.fffedcba98765p+6, -0x1.e99901f6c9f42p+8, 0x1.e7aefep-3, 1, INEXACT) +T(RN, -0x1.fedcba9876543p+6, -0x1.eda169220baa1p+8, -0x1.32672ep-2, 1, INEXACT) +T(RN, -0x1.987654321abcep+6, -0x1.7355a02284f1cp+8, -0x1.a1300ep-3, -1, INEXACT) diff --git a/test/musl/src/math/special/lgamma_r.h b/test/musl/src/math/special/lgamma_r.h new file mode 100644 index 00000000..9e469a2b --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/lgammaf.h b/test/musl/src/math/special/lgammaf.h new file mode 100644 index 00000000..fe27cc18 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/lgammaf_r.h b/test/musl/src/math/special/lgammaf_r.h new file mode 100644 index 00000000..fe27cc18 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/lgammal.h b/test/musl/src/math/special/lgammal.h new file mode 100644 index 00000000..f7f3f40a --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/lgammal_r.h b/test/musl/src/math/special/lgammal_r.h new file mode 100644 index 00000000..f7f3f40a --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/llrint.h b/test/musl/src/math/special/llrint.h new file mode 100644 index 00000000..e450093a --- /dev/null +++ b/test/musl/src/math/special/llrint.h @@ -0,0 +1,20 @@ +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 +#if INVALID +T(RN, nan, 0, INVALID) +T(RN, inf, 0, INVALID) +T(RN, -inf, 0, INVALID) +T(RN, 0x1p+100, 0, INVALID) +T(RN, -0x1p+100, 0, INVALID) +#endif diff --git a/test/musl/src/math/special/llrintf.h b/test/musl/src/math/special/llrintf.h new file mode 100644 index 00000000..01106e44 --- /dev/null +++ b/test/musl/src/math/special/llrintf.h @@ -0,0 +1,20 @@ +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 +#if INVALID +T(RN, nan, 0, INVALID) +T(RN, inf, 0, INVALID) +T(RN, -inf, 0, INVALID) +T(RN, 0x1p+100, 0, INVALID) +T(RN, -0x1p+100, 0, INVALID) +#endif diff --git a/test/musl/src/math/special/llrintl.h b/test/musl/src/math/special/llrintl.h new file mode 100644 index 00000000..1721db38 --- /dev/null +++ b/test/musl/src/math/special/llrintl.h @@ -0,0 +1,20 @@ +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 +#if INVALID +T(RN, nan, 0, INVALID) +T(RN, inf, 0, INVALID) +T(RN, -inf, 0, INVALID) +T(RN, 0x1p+100L, 0, INVALID) +T(RN, -0x1p+100L, 0, INVALID) +#endif diff --git a/test/musl/src/math/special/llround.h b/test/musl/src/math/special/llround.h new file mode 100644 index 00000000..d903739d --- /dev/null +++ b/test/musl/src/math/special/llround.h @@ -0,0 +1,20 @@ +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 +#if INVALID +T(RN, nan, 0, INVALID) +T(RN, inf, 0, INVALID) +T(RN, -inf, 0, INVALID) +T(RN, 0x1p+100, 0, INVALID) +T(RN, -0x1p+100, 0, INVALID) +#endif diff --git a/test/musl/src/math/special/llroundf.h b/test/musl/src/math/special/llroundf.h new file mode 100644 index 00000000..a2f4fef1 --- /dev/null +++ b/test/musl/src/math/special/llroundf.h @@ -0,0 +1,20 @@ +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 +#if INVALID +T(RN, nan, 0, INVALID) +T(RN, inf, 0, INVALID) +T(RN, -inf, 0, INVALID) +T(RN, 0x1p+100, 0, INVALID) +T(RN, -0x1p+100, 0, INVALID) +#endif diff --git a/test/musl/src/math/special/llroundl.h b/test/musl/src/math/special/llroundl.h new file mode 100644 index 00000000..4d6ddad8 --- /dev/null +++ b/test/musl/src/math/special/llroundl.h @@ -0,0 +1,20 @@ +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 +#if INVALID +T(RN, nan, 0, INVALID) +T(RN, inf, 0, INVALID) +T(RN, -inf, 0, INVALID) +T(RN, 0x1p+100L, 0, INVALID) +T(RN, -0x1p+100L, 0, INVALID) +#endif diff --git a/test/musl/src/math/special/log.h b/test/musl/src/math/special/log.h new file mode 100644 index 00000000..8d95f195 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/log10.h b/test/musl/src/math/special/log10.h new file mode 100644 index 00000000..8d95f195 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/log10f.h b/test/musl/src/math/special/log10f.h new file mode 100644 index 00000000..ce11d0e1 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/log10l.h b/test/musl/src/math/special/log10l.h new file mode 100644 index 00000000..b5abdbcc --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/log1p.h b/test/musl/src/math/special/log1p.h new file mode 100644 index 00000000..08e0bab7 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/log1pf.h b/test/musl/src/math/special/log1pf.h new file mode 100644 index 00000000..2761e8e7 --- /dev/null +++ b/test/musl/src/math/special/log1pf.h @@ -0,0 +1,9 @@ +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) +T(RN,-0x1.fffffcp-127,-0x1.fffffcp-127, 0x1p-104, INEXACT|UNDERFLOW) diff --git a/test/musl/src/math/special/log1pl.h b/test/musl/src/math/special/log1pl.h new file mode 100644 index 00000000..0e646f19 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/log2.h b/test/musl/src/math/special/log2.h new file mode 100644 index 00000000..8d95f195 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/log2f.h b/test/musl/src/math/special/log2f.h new file mode 100644 index 00000000..ce11d0e1 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/log2l.h b/test/musl/src/math/special/log2l.h new file mode 100644 index 00000000..b5abdbcc --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/logb.h b/test/musl/src/math/special/logb.h new file mode 100644 index 00000000..af716048 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/logbf.h b/test/musl/src/math/special/logbf.h new file mode 100644 index 00000000..3fdc7617 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/logbl.h b/test/musl/src/math/special/logbl.h new file mode 100644 index 00000000..691933df --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/logf.h b/test/musl/src/math/special/logf.h new file mode 100644 index 00000000..ce11d0e1 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/logl.h b/test/musl/src/math/special/logl.h new file mode 100644 index 00000000..b5abdbcc --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/lrint.h b/test/musl/src/math/special/lrint.h new file mode 100644 index 00000000..e450093a --- /dev/null +++ b/test/musl/src/math/special/lrint.h @@ -0,0 +1,20 @@ +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 +#if INVALID +T(RN, nan, 0, INVALID) +T(RN, inf, 0, INVALID) +T(RN, -inf, 0, INVALID) +T(RN, 0x1p+100, 0, INVALID) +T(RN, -0x1p+100, 0, INVALID) +#endif diff --git a/test/musl/src/math/special/lrintf.h b/test/musl/src/math/special/lrintf.h new file mode 100644 index 00000000..01106e44 --- /dev/null +++ b/test/musl/src/math/special/lrintf.h @@ -0,0 +1,20 @@ +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 +#if INVALID +T(RN, nan, 0, INVALID) +T(RN, inf, 0, INVALID) +T(RN, -inf, 0, INVALID) +T(RN, 0x1p+100, 0, INVALID) +T(RN, -0x1p+100, 0, INVALID) +#endif diff --git a/test/musl/src/math/special/lrintl.h b/test/musl/src/math/special/lrintl.h new file mode 100644 index 00000000..1721db38 --- /dev/null +++ b/test/musl/src/math/special/lrintl.h @@ -0,0 +1,20 @@ +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 +#if INVALID +T(RN, nan, 0, INVALID) +T(RN, inf, 0, INVALID) +T(RN, -inf, 0, INVALID) +T(RN, 0x1p+100L, 0, INVALID) +T(RN, -0x1p+100L, 0, INVALID) +#endif diff --git a/test/musl/src/math/special/lround.h b/test/musl/src/math/special/lround.h new file mode 100644 index 00000000..d903739d --- /dev/null +++ b/test/musl/src/math/special/lround.h @@ -0,0 +1,20 @@ +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 +#if INVALID +T(RN, nan, 0, INVALID) +T(RN, inf, 0, INVALID) +T(RN, -inf, 0, INVALID) +T(RN, 0x1p+100, 0, INVALID) +T(RN, -0x1p+100, 0, INVALID) +#endif diff --git a/test/musl/src/math/special/lroundf.h b/test/musl/src/math/special/lroundf.h new file mode 100644 index 00000000..a2f4fef1 --- /dev/null +++ b/test/musl/src/math/special/lroundf.h @@ -0,0 +1,20 @@ +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 +#if INVALID +T(RN, nan, 0, INVALID) +T(RN, inf, 0, INVALID) +T(RN, -inf, 0, INVALID) +T(RN, 0x1p+100, 0, INVALID) +T(RN, -0x1p+100, 0, INVALID) +#endif diff --git a/test/musl/src/math/special/lroundl.h b/test/musl/src/math/special/lroundl.h new file mode 100644 index 00000000..4d6ddad8 --- /dev/null +++ b/test/musl/src/math/special/lroundl.h @@ -0,0 +1,20 @@ +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 +#if INVALID +T(RN, nan, 0, INVALID) +T(RN, inf, 0, INVALID) +T(RN, -inf, 0, INVALID) +T(RN, 0x1p+100L, 0, INVALID) +T(RN, -0x1p+100L, 0, INVALID) +#endif diff --git a/test/musl/src/math/special/modf.h b/test/musl/src/math/special/modf.h new file mode 100644 index 00000000..1486bdbb --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/modff.h b/test/musl/src/math/special/modff.h new file mode 100644 index 00000000..174374cf --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/modfl.h b/test/musl/src/math/special/modfl.h new file mode 100644 index 00000000..0277818c --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/nearbyint.h b/test/musl/src/math/special/nearbyint.h new file mode 100644 index 00000000..7a08159d --- /dev/null +++ b/test/musl/src/math/special/nearbyint.h @@ -0,0 +1,45 @@ +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+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+0, -0x1p+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) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RD, 0x1p-1, 0x0p+0, 0x0p+0, 0) +T(RD, -0x1p-1, -0x1p+0, 0x0p+0, 0) +T(RD, 0x1.0001p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1.0001p+0, -0x1p+1, 0x0p+0, 0) +T(RD, 0x1.ffffp-1, 0x0p+0, 0x0p+0, 0) +T(RD, -0x1.ffffp-1, -0x1p+0, 0x0p+0, 0) +T(RD, 0x1p-100, 0x0p+0, 0x0p+0, 0) +T(RD, -0x1p-100, -0x1p+0, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RU, 0x1p-1, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p-1, -0x0p+0, 0x0p+0, 0) +T(RU, 0x1.0001p+0, 0x1p+1, 0x0p+0, 0) +T(RU, -0x1.0001p+0, -0x1p+0, 0x0p+0, 0) +T(RU, 0x1.ffffp-1, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1.ffffp-1, -0x0p+0, 0x0p+0, 0) +T(RU, 0x1p-100, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p-100, -0x0p+0, 0x0p+0, 0) diff --git a/test/musl/src/math/special/nearbyintf.h b/test/musl/src/math/special/nearbyintf.h new file mode 100644 index 00000000..71f1fe1e --- /dev/null +++ b/test/musl/src/math/special/nearbyintf.h @@ -0,0 +1,45 @@ +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+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+0, -0x1p+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) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RD, 0x1p-1, 0x0p+0, 0x0p+0, 0) +T(RD, -0x1p-1, -0x1p+0, 0x0p+0, 0) +T(RD, 0x1.0001p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1.0001p+0, -0x1p+1, 0x0p+0, 0) +T(RD, 0x1.ffffp-1, 0x0p+0, 0x0p+0, 0) +T(RD, -0x1.ffffp-1, -0x1p+0, 0x0p+0, 0) +T(RD, 0x1p-100, 0x0p+0, 0x0p+0, 0) +T(RD, -0x1p-100, -0x1p+0, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RU, 0x1p-1, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p-1, -0x0p+0, 0x0p+0, 0) +T(RU, 0x1.0001p+0, 0x1p+1, 0x0p+0, 0) +T(RU, -0x1.0001p+0, -0x1p+0, 0x0p+0, 0) +T(RU, 0x1.ffffp-1, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1.ffffp-1, -0x0p+0, 0x0p+0, 0) +T(RU, 0x1p-100, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p-100, -0x0p+0, 0x0p+0, 0) diff --git a/test/musl/src/math/special/nearbyintl.h b/test/musl/src/math/special/nearbyintl.h new file mode 100644 index 00000000..f4f3c681 --- /dev/null +++ b/test/musl/src/math/special/nearbyintl.h @@ -0,0 +1,45 @@ +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+0L, 0x1p+0L, 0x0p+0, 0) +T(RN, -0x1p+0L, -0x1p+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) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +T(RD, 0x0p+0L, 0x0p+0L, 0x0p+0, 0) +T(RD, -0x0p+0L, -0x0p+0L, 0x0p+0, 0) +T(RD, 0x1p+0L, 0x1p+0L, 0x0p+0, 0) +T(RD, -0x1p+0L, -0x1p+0L, 0x0p+0, 0) +T(RD, 0x1p-1L, 0x0p+0L, 0x0p+0, 0) +T(RD, -0x1p-1L, -0x1p+0L, 0x0p+0, 0) +T(RD, 0x1.0001p+0L, 0x1p+0L, 0x0p+0, 0) +T(RD, -0x1.0001p+0L, -0x1p+1L, 0x0p+0, 0) +T(RD, 0x1.ffffp-1L, 0x0p+0L, 0x0p+0, 0) +T(RD, -0x1.ffffp-1L, -0x1p+0L, 0x0p+0, 0) +T(RD, 0x1p-100L, 0x0p+0L, 0x0p+0, 0) +T(RD, -0x1p-100L, -0x1p+0L, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RU, 0x0p+0L, 0x0p+0L, 0x0p+0, 0) +T(RU, -0x0p+0L, -0x0p+0L, 0x0p+0, 0) +T(RU, 0x1p+0L, 0x1p+0L, 0x0p+0, 0) +T(RU, -0x1p+0L, -0x1p+0L, 0x0p+0, 0) +T(RU, 0x1p-1L, 0x1p+0L, 0x0p+0, 0) +T(RU, -0x1p-1L, -0x0p+0L, 0x0p+0, 0) +T(RU, 0x1.0001p+0L, 0x1p+1L, 0x0p+0, 0) +T(RU, -0x1.0001p+0L, -0x1p+0L, 0x0p+0, 0) +T(RU, 0x1.ffffp-1L, 0x1p+0L, 0x0p+0, 0) +T(RU, -0x1.ffffp-1L, -0x0p+0L, 0x0p+0, 0) +T(RU, 0x1p-100L, 0x1p+0L, 0x0p+0, 0) +T(RU, -0x1p-100L, -0x0p+0L, 0x0p+0, 0) diff --git a/test/musl/src/math/special/nextafter.h b/test/musl/src/math/special/nextafter.h new file mode 100644 index 00000000..7df520e8 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/nextafterf.h b/test/musl/src/math/special/nextafterf.h new file mode 100644 index 00000000..1bb1e444 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/nextafterl.h b/test/musl/src/math/special/nextafterl.h new file mode 100644 index 00000000..111ad305 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/nexttoward.h b/test/musl/src/math/special/nexttoward.h new file mode 100644 index 00000000..aa3560af --- /dev/null +++ b/test/musl/src/math/special/nexttoward.h @@ -0,0 +1,37 @@ +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) +#if LDBL_MANT_DIG > DBL_MANT_DIG +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, 0x1p+0, 0x1.0000000000000002p+0L, 0x1.0000000000001p+0, 0x0p+0, 0) +T(RN, 0x1p+0, 0x1.fffffffffffffffep-1L, 0x1.fffffffffffffp-1, 0x0p+0, 0) +#endif +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, 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/test/musl/src/math/special/nexttowardf.h b/test/musl/src/math/special/nexttowardf.h new file mode 100644 index 00000000..01aacc45 --- /dev/null +++ b/test/musl/src/math/special/nexttowardf.h @@ -0,0 +1,41 @@ +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) +#if LDBL_MANT_DIG > DBL_MANT_DIG +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, 0x1p+0, 0x1.0000000000000002p+0L, 0x1.000002p+0, 0x0p+0, 0) +T(RN, 0x1p+0, 0x1.fffffffffffffffep-1L, 0x1.fffffep-1, 0x0p+0, 0) +#endif +T(RN, 0x1p-149, 0x1.fffffffffffffp-150L, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-149, 0x1.0000000000001p-149L, 0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+0, 0x1.0000000000001p+0L, 0x1.000002p+0, 0x0p+0, 0) +T(RN, 0x1p+0, 0x1.fffffffffffffp-1L, 0x1.fffffep-1, 0x0p+0, 0) +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, 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/test/musl/src/math/special/nexttowardl.h b/test/musl/src/math/special/nexttowardl.h new file mode 100644 index 00000000..111ad305 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/pow.h b/test/musl/src/math/special/pow.h new file mode 100644 index 00000000..fed7899f --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/powf.h b/test/musl/src/math/special/powf.h new file mode 100644 index 00000000..8c7d72da --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/powl.h b/test/musl/src/math/special/powl.h new file mode 100644 index 00000000..c0e914c2 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/remainder.h b/test/musl/src/math/special/remainder.h new file mode 100644 index 00000000..150c4350 --- /dev/null +++ b/test/musl/src/math/special/remainder.h @@ -0,0 +1,67 @@ +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) +T(RN, 0x1p-1070, inf, 0x1p-1070, 0x0p+0, 0) diff --git a/test/musl/src/math/special/remainderf.h b/test/musl/src/math/special/remainderf.h new file mode 100644 index 00000000..28a8cfdc --- /dev/null +++ b/test/musl/src/math/special/remainderf.h @@ -0,0 +1,67 @@ +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) +T(RN, 0x1p-127, inf, 0x1p-127, 0x0p+0, 0) diff --git a/test/musl/src/math/special/remainderl.h b/test/musl/src/math/special/remainderl.h new file mode 100644 index 00000000..408f2002 --- /dev/null +++ b/test/musl/src/math/special/remainderl.h @@ -0,0 +1,67 @@ +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) +T(RN, 0x1p-16383L, inf, 0x1p-16383L, 0x0p+0, 0) diff --git a/test/musl/src/math/special/remquo.h b/test/musl/src/math/special/remquo.h new file mode 100644 index 00000000..7fe94ddf --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/remquof.h b/test/musl/src/math/special/remquof.h new file mode 100644 index 00000000..c19efdf2 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/remquol.h b/test/musl/src/math/special/remquol.h new file mode 100644 index 00000000..e0007a3e --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/rint.h b/test/musl/src/math/special/rint.h new file mode 100644 index 00000000..d6a917ef --- /dev/null +++ b/test/musl/src/math/special/rint.h @@ -0,0 +1,47 @@ +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+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+0, -0x1p+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) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RD, 0x1p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.0001p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.0001p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RD, 0x1.ffffp-1, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1.ffffp-1, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-100, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-100, -0x1p+0, 0x0p+0, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RU, 0x1p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1.0001p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RU, -0x1.0001p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.ffffp-1, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.ffffp-1, -0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-100, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-100, -0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1.0800000000001p+4, 0x1.1p+4, 0x0p+0, INEXACT) +T(RN, 0x1.17fffffffffffp+4, 0x1.1p+4, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/special/rintf.h b/test/musl/src/math/special/rintf.h new file mode 100644 index 00000000..09ac456c --- /dev/null +++ b/test/musl/src/math/special/rintf.h @@ -0,0 +1,47 @@ +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+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+0, -0x1p+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) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RD, 0x1p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.0001p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.0001p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RD, 0x1.ffffp-1, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1.ffffp-1, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-100, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-100, -0x1p+0, 0x0p+0, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RU, 0x1p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1.0001p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RU, -0x1.0001p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.ffffp-1, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.ffffp-1, -0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-100, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-100, -0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1.400002p+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RN, 0x1.7ffffep+0, 0x1p+0, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/special/rintl.h b/test/musl/src/math/special/rintl.h new file mode 100644 index 00000000..767e2cf1 --- /dev/null +++ b/test/musl/src/math/special/rintl.h @@ -0,0 +1,45 @@ +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+0L, 0x1p+0L, 0x0p+0, 0) +T(RN, -0x1p+0L, -0x1p+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) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +T(RD, 0x0p+0L, 0x0p+0L, 0x0p+0, 0) +T(RD, -0x0p+0L, -0x0p+0L, 0x0p+0, 0) +T(RD, 0x1p+0L, 0x1p+0L, 0x0p+0, 0) +T(RD, -0x1p+0L, -0x1p+0L, 0x0p+0, 0) +T(RD, 0x1p-1L, 0x0p+0L, 0x0p+0, INEXACT) +T(RD, -0x1p-1L, -0x1p+0L, 0x0p+0, INEXACT) +T(RD, 0x1.0001p+0L, 0x1p+0L, 0x0p+0, INEXACT) +T(RD, -0x1.0001p+0L, -0x1p+1L, 0x0p+0, INEXACT) +T(RD, 0x1.ffffp-1L, 0x0p+0L, 0x0p+0, INEXACT) +T(RD, -0x1.ffffp-1L, -0x1p+0L, 0x0p+0, INEXACT) +T(RD, 0x1p-100L, 0x0p+0L, 0x0p+0, INEXACT) +T(RD, -0x1p-100L, -0x1p+0L, 0x0p+0, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RU, 0x0p+0L, 0x0p+0L, 0x0p+0, 0) +T(RU, -0x0p+0L, -0x0p+0L, 0x0p+0, 0) +T(RU, 0x1p+0L, 0x1p+0L, 0x0p+0, 0) +T(RU, -0x1p+0L, -0x1p+0L, 0x0p+0, 0) +T(RU, 0x1p-1L, 0x1p+0L, 0x0p+0, INEXACT) +T(RU, -0x1p-1L, -0x0p+0L, 0x0p+0, INEXACT) +T(RU, 0x1.0001p+0L, 0x1p+1L, 0x0p+0, INEXACT) +T(RU, -0x1.0001p+0L, -0x1p+0L, 0x0p+0, INEXACT) +T(RU, 0x1.ffffp-1L, 0x1p+0L, 0x0p+0, INEXACT) +T(RU, -0x1.ffffp-1L, -0x0p+0L, 0x0p+0, INEXACT) +T(RU, 0x1p-100L, 0x1p+0L, 0x0p+0, INEXACT) +T(RU, -0x1p-100L, -0x0p+0L, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/special/round.h b/test/musl/src/math/special/round.h new file mode 100644 index 00000000..4e0b9d9d --- /dev/null +++ b/test/musl/src/math/special/round.h @@ -0,0 +1,45 @@ +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+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+0, -0x1p+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) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RD, 0x1p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.0001p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.0001p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.ffffp-1, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.ffffp-1, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-100, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-100, -0x0p+0, 0x0p+0, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RU, 0x1p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.0001p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.0001p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.ffffp-1, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.ffffp-1, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-100, 0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-100, -0x0p+0, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/special/roundf.h b/test/musl/src/math/special/roundf.h new file mode 100644 index 00000000..95f0df3e --- /dev/null +++ b/test/musl/src/math/special/roundf.h @@ -0,0 +1,45 @@ +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+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+0, -0x1p+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) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RD, 0x1p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.0001p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.0001p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.ffffp-1, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.ffffp-1, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-100, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-100, -0x0p+0, 0x0p+0, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RU, 0x1p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.0001p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.0001p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.ffffp-1, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.ffffp-1, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-100, 0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-100, -0x0p+0, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/special/roundl.h b/test/musl/src/math/special/roundl.h new file mode 100644 index 00000000..a0dd1d13 --- /dev/null +++ b/test/musl/src/math/special/roundl.h @@ -0,0 +1,45 @@ +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+0L, 0x1p+0L, 0x0p+0, 0) +T(RN, -0x1p+0L, -0x1p+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) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +T(RD, 0x0p+0L, 0x0p+0L, 0x0p+0, 0) +T(RD, -0x0p+0L, -0x0p+0L, 0x0p+0, 0) +T(RD, 0x1p+0L, 0x1p+0L, 0x0p+0, 0) +T(RD, -0x1p+0L, -0x1p+0L, 0x0p+0, 0) +T(RD, 0x1p-1L, 0x1p+0L, 0x0p+0, INEXACT) +T(RD, -0x1p-1L, -0x1p+0L, 0x0p+0, INEXACT) +T(RD, 0x1.0001p+0L, 0x1p+0L, 0x0p+0, INEXACT) +T(RD, -0x1.0001p+0L, -0x1p+0L, 0x0p+0, INEXACT) +T(RD, 0x1.ffffp-1L, 0x1p+0L, 0x0p+0, INEXACT) +T(RD, -0x1.ffffp-1L, -0x1p+0L, 0x0p+0, INEXACT) +T(RD, 0x1p-100L, 0x0p+0L, 0x0p+0, INEXACT) +T(RD, -0x1p-100L, -0x0p+0L, 0x0p+0, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RU, 0x0p+0L, 0x0p+0L, 0x0p+0, 0) +T(RU, -0x0p+0L, -0x0p+0L, 0x0p+0, 0) +T(RU, 0x1p+0L, 0x1p+0L, 0x0p+0, 0) +T(RU, -0x1p+0L, -0x1p+0L, 0x0p+0, 0) +T(RU, 0x1p-1L, 0x1p+0L, 0x0p+0, INEXACT) +T(RU, -0x1p-1L, -0x1p+0L, 0x0p+0, INEXACT) +T(RU, 0x1.0001p+0L, 0x1p+0L, 0x0p+0, INEXACT) +T(RU, -0x1.0001p+0L, -0x1p+0L, 0x0p+0, INEXACT) +T(RU, 0x1.ffffp-1L, 0x1p+0L, 0x0p+0, INEXACT) +T(RU, -0x1.ffffp-1L, -0x1p+0L, 0x0p+0, INEXACT) +T(RU, 0x1p-100L, 0x0p+0L, 0x0p+0, INEXACT) +T(RU, -0x1p-100L, -0x0p+0L, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/special/scalb.h b/test/musl/src/math/special/scalb.h new file mode 100644 index 00000000..c9fa6378 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/scalbf.h b/test/musl/src/math/special/scalbf.h new file mode 100644 index 00000000..6218c395 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/scalbln.h b/test/musl/src/math/special/scalbln.h new file mode 100644 index 00000000..f6f67552 --- /dev/null +++ b/test/musl/src/math/special/scalbln.h @@ -0,0 +1,17 @@ +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) +T(RN, 0x1p+1023, -2097, 0x1p-1074, 0x0p+0, 0) +T(RN, 0x1p-1074, 2097, 0x1p+1023, 0x0p+0, 0) +T(RN, 0x1.001p+0, -1074, 0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) diff --git a/test/musl/src/math/special/scalblnf.h b/test/musl/src/math/special/scalblnf.h new file mode 100644 index 00000000..24b423ff --- /dev/null +++ b/test/musl/src/math/special/scalblnf.h @@ -0,0 +1,17 @@ +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) +T(RN, 0x1p+127, -276, 0x1p-149, 0x0p+0, 0) +T(RN, 0x1p-149, 276, 0x1p+127, 0x0p+0, 0) +T(RN, 0x1.001p+0, -149, 0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) diff --git a/test/musl/src/math/special/scalblnl.h b/test/musl/src/math/special/scalblnl.h new file mode 100644 index 00000000..d69bdd2a --- /dev/null +++ b/test/musl/src/math/special/scalblnl.h @@ -0,0 +1,17 @@ +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) +T(RN, 0x1p+16383L, -32828, 0x1p-16445L, 0x0p+0, 0) +T(RN, 0x1p-16445L, 32828, 0x1p+16383L, 0x0p+0, 0) +T(RN, 0x1.00000000001p+0L, -16445, 0x1p-16445L, 0x0p+0, INEXACT|UNDERFLOW) diff --git a/test/musl/src/math/special/scalbn.h b/test/musl/src/math/special/scalbn.h new file mode 100644 index 00000000..ce0ddbfe --- /dev/null +++ b/test/musl/src/math/special/scalbn.h @@ -0,0 +1,19 @@ +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) +T(RN, 0x1p+1023, -2097, 0x1p-1074, 0x0p+0, 0) +T(RN, 0x1p-1074, 2097, 0x1p+1023, 0x0p+0, 0) +T(RN, 0x1.001p+0, -1074, 0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.7ffffffffffffp-1, -1073, 0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.000000000000bp-1, -1024, 0x1.0000000000008p-1025, 0x0p+0, INEXACT|UNDERFLOW) diff --git a/test/musl/src/math/special/scalbnf.h b/test/musl/src/math/special/scalbnf.h new file mode 100644 index 00000000..4ccbf191 --- /dev/null +++ b/test/musl/src/math/special/scalbnf.h @@ -0,0 +1,19 @@ +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) +T(RN, 0x1p+127, -276, 0x1p-149, 0x0p+0, 0) +T(RN, 0x1p-149, 276, 0x1p+127, 0x0p+0, 0) +T(RN, 0x1.001p+0, -149, 0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.7ffffep-1, -148, 0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.000016p-1, -128, 0x1.00001p-129, 0x0p+0, INEXACT|UNDERFLOW) diff --git a/test/musl/src/math/special/scalbnl.h b/test/musl/src/math/special/scalbnl.h new file mode 100644 index 00000000..7a67295c --- /dev/null +++ b/test/musl/src/math/special/scalbnl.h @@ -0,0 +1,19 @@ +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) +T(RN, 0x1p+16383L, -32828, 0x1p-16445L, 0x0p+0, 0) +T(RN, 0x1p-16445L, 32828, 0x1p+16383L, 0x0p+0, 0) +T(RN, 0x1.00000000001p+0L, -16445, 0x1p-16445L, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.7ffffffffffffffep-1L, -16444, 0x1p-16445L, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.0000000000000016p-1L, -16384, 0x1.000000000000001p-16385L, 0x0p+0, INEXACT|UNDERFLOW) diff --git a/test/musl/src/math/special/sin.h b/test/musl/src/math/special/sin.h new file mode 100644 index 00000000..ccafd59b --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/sincos.h b/test/musl/src/math/special/sincos.h new file mode 100644 index 00000000..f91a6732 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/sincosf.h b/test/musl/src/math/special/sincosf.h new file mode 100644 index 00000000..789e490f --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/sincosl.h b/test/musl/src/math/special/sincosl.h new file mode 100644 index 00000000..a9fc0b4e --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/sinf.h b/test/musl/src/math/special/sinf.h new file mode 100644 index 00000000..c8414f61 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/sinh.h b/test/musl/src/math/special/sinh.h new file mode 100644 index 00000000..758c18b8 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/sinhf.h b/test/musl/src/math/special/sinhf.h new file mode 100644 index 00000000..6005478b --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/sinhl.h b/test/musl/src/math/special/sinhl.h new file mode 100644 index 00000000..98eb39e6 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/sinl.h b/test/musl/src/math/special/sinl.h new file mode 100644 index 00000000..221a0ba4 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/sqrt.h b/test/musl/src/math/special/sqrt.h new file mode 100644 index 00000000..d9561851 --- /dev/null +++ b/test/musl/src/math/special/sqrt.h @@ -0,0 +1,326 @@ +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) +T(RN, 0x1.5b95344972fe2p+105, 0x1.a5db1ce4c605bp+52, 0x1p-1, INEXACT) +T(RN, 0x1.d407bb3641da5p+104, 0x1.5a24e31b39fa6p+52, 0x1p-1, INEXACT) +T(RN, 0x1.4eb5f85e783a9p+105, 0x1.9df88f9ecb617p+52, 0x1p-1, INEXACT) +T(RN, 0x1.e99893042c2cbp+104, 0x1.62077061349eap+52, 0x1p-1, INEXACT) +T(RN, 0x1.8444088dbdcb5p+105, 0x1.bddc6d1af94e5p+52, 0x1p-1, INEXACT) +T(RN, 0x1.955d8279a3c0fp+104, 0x1.422392e506b1cp+52, 0x1p-1, INEXACT) +T(RN, 0x1.92e58e3597929p+105, 0x1.c62f1afef218bp+52, 0x1p-1, INEXACT) +T(RN, 0x1.80b07a7182913p+104, 0x1.39d0e5010de76p+52, 0x1p-1, INEXACT) +T(RN, 0x1.e63a86a12a838p+105, 0x1.f2f2ac85941a9p+52, 0x1p-1, INEXACT) +T(RN, 0x1.1ac50220dc67dp+104, 0x1.0d0d537a6be58p+52, 0x1p-1, INEXACT) +T(RN, 0x1.004c704e61a6bp+105, 0x1.6a3fef4175ea2p+52, 0x1p-1, INEXACT) +T(RN, 0x1.d2221598a924ap+105, 0x1.e88750b32d14dp+52, 0x1p-1, INEXACT) +T(RN, 0x1.311846fe43cc9p+104, 0x1.1778af4cd2eb4p+52, 0x1p-1, INEXACT) +T(RN, 0x1.0f4057e306261p+105, 0x1.74aabff5dcd77p+52, 0x1p-1, INEXACT) +T(RN, 0x1.54b152148723p+105, 0x1.a1a75b170c36ep+52, 0x1p-1, INEXACT) +T(RN, 0x1.df76819ec4fcfp+104, 0x1.5e58a4e8f3c93p+52, 0x1p-1, INEXACT) +T(RN, 0x1.8cc6767d8db65p+105, 0x1.c2b86f8821e3cp+52, 0x1p-1, INEXACT) +T(RN, 0x1.893a4fca50165p+104, 0x1.3d479077de1c5p+52, 0x1p-1, INEXACT) +T(RN, 0x1.2e22e3ec9f181p+105, 0x1.894fb184f34f2p+52, 0x1p-1, INEXACT) +T(RN, 0x1.c4d4dd56d8601p+105, 0x1.e181fcfc796d1p+52, 0x1p-1, INEXACT) +T(RN, 0x1.409dccc2d831fp+104, 0x1.1e7e03038693p+52, 0x1p-1, INEXACT) +T(RN, 0x1.e915af26394a2p+105, 0x1.f469445af52ccp+52, 0x1p-1, INEXACT) +T(RN, 0x1.17b3c42ab387fp+104, 0x1.0b96bba50ad35p+52, 0x1p-1, INEXACT) +T(RN, 0x1.408e1bfb27b24p+105, 0x1.951f5a6dc2542p+52, 0x1p-1, INEXACT) +T(RN, 0x1.e10511b03937ap+105, 0x1.f044a989ca91bp+52, 0x1p-1, INEXACT) +T(RN, 0x1.206e2a25b3055p+104, 0x1.0fbb5676356e6p+52, 0x1p-1, INEXACT) +T(RN, 0x1.122d8405a6886p+105, 0x1.76ac0187f47d4p+52, 0x1p-1, INEXACT) +T(RN, 0x1.e34fa523c7406p+105, 0x1.f172e3572032ap+52, 0x1p-1, INEXACT) +T(RN, 0x1.1dedf63ccd513p+104, 0x1.0e8d1ca8dfcd7p+52, 0x1p-1, INEXACT) +T(RN, 0x1.3b94b3f5399c5p+105, 0x1.91f78829a106fp+52, 0x1p-1, INEXACT) +T(RN, 0x1.26f7a31fd7d81p+105, 0x1.849dfc49fc24bp+52, 0x1p-1, INEXACT) +T(RN, 0x1.1af23bc3c2ecap+105, 0x1.7c9dabee35f64p+52, 0x1p-1, INEXACT) +T(RN, 0x1.2da51b80dd183p+105, 0x1.88fdca416a27ap+52, 0x1p-1, INEXACT) +T(RN, 0x1.5834bb88d555p+105, 0x1.a3cd3c09ea385p+52, 0x1p-1, INEXACT) +T(RN, 0x1.d99a0ed62d585p+104, 0x1.5c32c3f615c7cp+52, 0x1p-1, INEXACT) +T(RN, 0x1.b3f8fa06a2ccbp+105, 0x1.d875a00071232p+52, 0x1p-1, INEXACT) +T(RN, 0x1.5530340a9ec6dp+104, 0x1.278a5fff8edcfp+52, 0x1p-1, INEXACT) +T(RN, 0x1.0e56ba9f7aed7p+105, 0x1.740a22b30117p+52, 0x1p-1, INEXACT) +T(RN, 0x1.7113604516542p+105, 0x1.b2b3fbdef6484p+52, 0x1p-1, INEXACT) +T(RN, 0x1.b1eed95066f6fp+104, 0x1.4d4c042109b7dp+52, 0x1p-1, INEXACT) +T(RN, 0x1.6bf5355c8c95ap+105, 0x1.afadb8f8bf0e7p+52, 0x1p-1, INEXACT) +T(RN, 0x1.b9d814e49ed4dp+104, 0x1.5052470740f1ap+52, 0x1p-1, INEXACT) +T(RN, 0x1.43f8e1433f3c7p+105, 0x1.9746a985244b8p+52, 0x1p-1, INEXACT) +T(RN, 0x1.fc49c967a4b41p+104, 0x1.68b9567adbb49p+52, 0x1p-1, INEXACT) +T(RN, 0x1.a466de7840cedp+105, 0x1.cff2224245983p+52, 0x1p-1, INEXACT) +T(RN, 0x1.6920ef62e00cbp+104, 0x1.300dddbdba67ep+52, 0x1p-1, INEXACT) +T(RN, 0x1.4cc05fcb09836p+105, 0x1.9cc1eb16ea6f5p+52, 0x1p-1, INEXACT) +T(RN, 0x1.ecf53d0c946b1p+104, 0x1.633e14e91590cp+52, 0x1p-1, INEXACT) +T(RN, 0x1.e582e3d428926p+105, 0x1.f2946b565ea82p+52, 0x1p-1, INEXACT) +T(RN, 0x1.1b8b43a219343p+104, 0x1.0d6b94a9a157fp+52, 0x1p-1, INEXACT) +T(RN, 0x1.106ce24747471p+105, 0x1.7578fafbfbf81p+52, 0x1p-1, INEXACT) +T(RN, 0x1.b2a13cbfcfb81p+105, 0x1.d7bb3a4fbae26p+52, 0x1p-1, INEXACT) +T(RN, 0x1.56df1ba13e221p+104, 0x1.2844c5b0451dbp+52, 0x1p-1, INEXACT) +T(RN, 0x1.e82e1ff49a7cfp+105, 0x1.f3f2c0504d214p+52, 0x1p-1, INEXACT) +T(RN, 0x1.18abbe0766329p+104, 0x1.0c0d3fafb2dedp+52, 0x1p-1, INEXACT) +T(RN, 0x1.867111aa6ea58p+105, 0x1.bf1bcffb3a397p+52, 0x1p-1, INEXACT) +T(RN, 0x1.923b43717ff29p+104, 0x1.40e43004c5c6ap+52, 0x1p-1, INEXACT) +T(RN, 0x1.4397d6aceee18p+105, 0x1.9709a5bc51865p+52, 0x1p-1, INEXACT) +T(RN, 0x1.fcf5caeff49d5p+104, 0x1.68f65a43ae79cp+52, 0x1p-1, INEXACT) +T(RN, 0x1.d539343604b1cp+105, 0x1.ea2531e60719p+52, 0x1p-1, INEXACT) +T(RN, 0x1.2d933d07decdbp+104, 0x1.15dace19f8e71p+52, 0x1p-1, INEXACT) +T(RN, 0x1.0ceb7a037208dp+105, 0x1.730fda68bc30bp+52, 0x1p-1, INEXACT) +T(RN, 0x1.1080513139899p+105, 0x1.75864cd829c47p+52, 0x1p-1, INEXACT) +T(RN, 0x1.c9de43a39a0a8p+105, 0x1.e42d9e73dd6d8p+52, 0x1p-1, INEXACT) +T(RN, 0x1.3aaad09003843p+104, 0x1.1bd2618c22929p+52, 0x1p-1, INEXACT) +T(RN, 0x1.b3ec881cb96fdp+105, 0x1.d86ee1ae4c82cp+52, 0x1p-1, INEXACT) +T(RN, 0x1.553fc623a7cf5p+104, 0x1.27911e51b37d5p+52, 0x1p-1, INEXACT) +T(RN, 0x1.4ff5bc007e6c9p+105, 0x1.9ebe1e8cdea3bp+52, 0x1p-1, INEXACT) +T(RN, 0x1.e776c0b3c5033p+104, 0x1.6141e173215c6p+52, 0x1p-1, INEXACT) +T(RN, 0x1.cd2a19fffb1cep+105, 0x1.e5eafb54dbabcp+52, 0x1p-1, INEXACT) +T(RN, 0x1.36d25002d0337p+104, 0x1.1a1504ab24545p+52, 0x1p-1, INEXACT) +T(RN, 0x1.1066b4e45e49p+105, 0x1.7574befc42651p+52, 0x1p-1, INEXACT) +T(RN, 0x1.ab2da631d3a34p+105, 0x1.d3ab89fd4393dp+52, 0x1p-1, INEXACT) +T(RN, 0x1.6056107411cfdp+104, 0x1.2c547602bc6c4p+52, 0x1p-1, INEXACT) +T(RN, 0x1.3999aa6650897p+105, 0x1.90b41b8c1f0f8p+52, 0x1p-1, INEXACT) +T(RN, 0x1.1517f1291b7f8p+105, 0x1.78a8a9f0969bep+52, 0x1p-1, INEXACT) +T(RN, 0x1.1afedabae41bfp+105, 0x1.7ca628f6c7f4cp+52, 0x1p-1, INEXACT) +T(RN, 0x1.050a544bf6295p+105, 0x1.6d95da6eca566p+52, 0x1p-1, INEXACT) +T(RN, 0x1.e086dfcb31497p+105, 0x1.f0038c4497c54p+52, 0x1p-1, INEXACT) +T(RN, 0x1.20f875fad3f39p+104, 0x1.0ffc73bb683adp+52, 0x1p-1, INEXACT) +T(RN, 0x1.481169fc8aefap+105, 0x1.99d7aa56daa57p+52, 0x1p-1, INEXACT) +T(RN, 0x1.f514d5eff5fedp+104, 0x1.662855a9255aap+52, 0x1p-1, INEXACT) +T(RN, 0x1.d1b4372a774b2p+105, 0x1.e84dba6bdeef9p+52, 0x1p-1, INEXACT) +T(RN, 0x1.31960fcdb4f91p+104, 0x1.17b2459421108p+52, 0x1p-1, INEXACT) +T(RN, 0x1.efe37bcdd7621p+105, 0x1.f7e14202b15efp+52, 0x1p-1, INEXACT) +T(RN, 0x1.107f6b8b868abp+104, 0x1.081ebdfd4ea12p+52, 0x1p-1, INEXACT) +T(RN, 0x1.e625b487e7145p+105, 0x1.f2e7fda4849dp+52, 0x1p-1, INEXACT) +T(RN, 0x1.1adb7734b27adp+104, 0x1.0d18025b7b631p+52, 0x1p-1, INEXACT) +T(RN, 0x1.e6d250d4590b8p+105, 0x1.f34087cbcdc36p+52, 0x1p-1, INEXACT) +T(RN, 0x1.1a2172e1df82fp+104, 0x1.0cbf7834323cbp+52, 0x1p-1, INEXACT) +T(RN, 0x1.c138e21d2d40cp+105, 0x1.df95c22b7dc1dp+52, 0x1p-1, INEXACT) +T(RN, 0x1.44ef373567f6dp+104, 0x1.206a3dd4823e4p+52, 0x1p-1, INEXACT) +T(RN, 0x1.b4aea5678d612p+105, 0x1.d8d80590bc4fap+52, 0x1p-1, INEXACT) +T(RN, 0x1.544d296ab0e4bp+104, 0x1.2727fa6f43b07p+52, 0x1p-1, INEXACT) +T(RN, 0x1.db4670ed5c584p+105, 0x1.ed4bc29449318p+52, 0x1p-1, INEXACT) +T(RN, 0x1.26c652610187bp+104, 0x1.12b43d6bb6ce9p+52, 0x1p-1, INEXACT) +T(RN, 0x1.1d70daf24b2f3p+105, 0x1.7e4a43221475ep+52, 0x1p-1, INEXACT) +T(RN, 0x1.cd8f896bdbe15p+105, 0x1.e62069048e19fp+52, 0x1p-1, INEXACT) +T(RN, 0x1.365c9cbc63273p+104, 0x1.19df96fb71e62p+52, 0x1p-1, INEXACT) +T(RN, 0x1.3a0c77ff9e212p+105, 0x1.90fd6d286a2fbp+52, 0x1p-1, INEXACT) +T(RN, 0x1.6a0fb44de32e8p+105, 0x1.ae8d6d175828dp+52, 0x1p-1, INEXACT) +T(RN, 0x1.bcceda0fb5685p+104, 0x1.517292e8a7d74p+52, 0x1p-1, INEXACT) +T(RN, 0x1.46a1c8f457c6ap+105, 0x1.98f1c8048ae4ap+52, 0x1p-1, INEXACT) +T(RN, 0x1.f798e1cd6e31bp+104, 0x1.670e37fb751b7p+52, 0x1p-1, INEXACT) +T(RN, 0x1.aecec8b785d0ep+105, 0x1.d5a7110823728p+52, 0x1p-1, INEXACT) +T(RN, 0x1.5bb32b3e36f2fp+104, 0x1.2a58eef7dc8d9p+52, 0x1p-1, INEXACT) +T(RN, 0x1.506f082d9f44bp+105, 0x1.9f08f6c296ad3p+52, 0x1p-1, INEXACT) +T(RN, 0x1.e6a847cbb67a7p+104, 0x1.60f7093d6952ep+52, 0x1p-1, INEXACT) +T(RN, 0x1.71b747570cd0dp+105, 0x1.b314772f738fcp+52, 0x1p-1, INEXACT) +T(RN, 0x1.b0f3c39164435p+104, 0x1.4ceb88d08c705p+52, 0x1p-1, INEXACT) +T(RN, 0x1.c7b2b1cb67e06p+105, 0x1.e30785ed8182bp+52, 0x1p-1, INEXACT) +T(RN, 0x1.3d384005c6b0dp+104, 0x1.1cf87a127e7d6p+52, 0x1p-1, INEXACT) +T(RN, 0x1.6ace3a1b30035p+105, 0x1.aefea65f32e67p+52, 0x1p-1, INEXACT) +T(RN, 0x1.bba48dfb2ea03p+104, 0x1.510159a0cd19ap+52, 0x1p-1, INEXACT) +T(RN, 0x1.1d434042e01ccp+105, 0x1.7e2bb7fa1ccfep+52, 0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffffbp+105, 0x1.ffffffffffffdp+52, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000005p+104, 0x1.0000000000002p+52, -0x1p-1, INEXACT) +T(RN, 0x1.77483d37ce205p+105, 0x1.b657c6d214c37p+52, -0x1p-1, INEXACT) +T(RN, 0x1.a881d1831fabdp+104, 0x1.49a8392deb3c8p+52, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffff9p+105, 0x1.ffffffffffffcp+52, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000007p+104, 0x1.0000000000003p+52, -0x1p-1, INEXACT) +T(RN, 0x1.1ac9955fd90d2p+105, 0x1.7c8253abfead5p+52, -0x1p-1, INEXACT) +T(RN, 0x1.69ca8fa07c526p+105, 0x1.ae644e924e0efp+52, -0x1p-1, INEXACT) +T(RN, 0x1.bd3b47d3244afp+104, 0x1.519bb16db1f1p+52, -0x1p-1, INEXACT) +T(RN, 0x1.e4054716ef6ap+105, 0x1.f1d0539c8f7b1p+52, -0x1p-1, INEXACT) +T(RN, 0x1.1d28988281f17p+104, 0x1.0e2fac637084ep+52, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffff7p+105, 0x1.ffffffffffffbp+52, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000009p+104, 0x1.0000000000004p+52, -0x1p-1, INEXACT) +T(RN, 0x1.0d4cef742baf7p+105, 0x1.7353113c1682dp+52, -0x1p-1, INEXACT) +T(RN, 0x1.f974b2f9b9fd3p+105, 0x1.fcb7a7dc3ab8cp+52, -0x1p-1, INEXACT) +T(RN, 0x1.069b76ca13a5bp+104, 0x1.03485823c5473p+52, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffff5p+105, 0x1.ffffffffffffap+52, -0x1p-1, INEXACT) +T(RN, 0x1.000000000000bp+104, 0x1.0000000000005p+52, -0x1p-1, INEXACT) +T(RN, 0x1.3ac226a62efabp+105, 0x1.917159bb0fc2p+52, -0x1p-1, INEXACT) +T(RN, 0x1.202a5c6165a5ep+105, 0x1.801c3c8c7f69ep+52, -0x1p-1, INEXACT) +T(RN, 0x1.a903217634cb4p+105, 0x1.d27b9ce7e656bp+52, -0x1p-1, INEXACT) +T(RN, 0x1.6320957d038e3p+104, 0x1.2d84631819a94p+52, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffff3p+105, 0x1.ffffffffffff9p+52, -0x1p-1, INEXACT) +T(RN, 0x1.000000000000dp+104, 0x1.0000000000006p+52, -0x1p-1, INEXACT) +T(RN, 0x1.906249f1ac465p+105, 0x1.c4c3f656b1ae3p+52, -0x1p-1, INEXACT) +T(RN, 0x1.842ccddb2e775p+104, 0x1.3b3c09a94e51cp+52, -0x1p-1, INEXACT) +T(RN, 0x1.86114026e1d57p+105, 0x1.bee4efcdfc972p+52, -0x1p-1, INEXACT) +T(RN, 0x1.92c4e179d81ffp+104, 0x1.411b10320368dp+52, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffff1p+105, 0x1.ffffffffffff8p+52, -0x1p-1, INEXACT) +T(RN, 0x1.000000000000fp+104, 0x1.0000000000007p+52, -0x1p-1, INEXACT) +T(RN, 0x1.bd38b7f5a2e32p+105, 0x1.dd71d78f19353p+52, -0x1p-1, INEXACT) +T(RN, 0x1.49c66290ae86fp+104, 0x1.228e2870e6cacp+52, -0x1p-1, INEXACT) +T(RN, 0x1.41f10ef33393fp+105, 0x1.95ff6801e853ep+52, -0x1p-1, INEXACT) +T(RN, 0x1.ffe5addaf5307p+104, 0x1.6a0097fe17ac1p+52, -0x1p-1, INEXACT) +T(RN, 0x1.3373d07e38531p+105, 0x1.8cc1a26e959b4p+52, -0x1p-1, INEXACT) +T(RN, 0x1.0ba47e5d96a17p+105, 0x1.722dfec721cbdp+52, -0x1p-1, INEXACT) +T(RN, 0x1.fffffffffffefp+105, 0x1.ffffffffffff7p+52, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000011p+104, 0x1.0000000000008p+52, -0x1p-1, INEXACT) +T(RN, 0x1.2dd951d9fc451p+105, 0x1.891fcbcecfdc3p+52, -0x1p-1, INEXACT) +T(RN, 0x1.aaac304200df4p+105, 0x1.d364a6e7a846ap+52, -0x1p-1, INEXACT) +T(RN, 0x1.60fc771610169p+104, 0x1.2c9b591857b95p+52, -0x1p-1, INEXACT) +T(RN, 0x1.5ccb5b03f4034p+105, 0x1.a697297c578afp+52, -0x1p-1, INEXACT) +T(RN, 0x1.d20bbd1ddac4bp+104, 0x1.5968d683a875p+52, -0x1p-1, INEXACT) +T(RN, 0x1.a64a0786c5018p+105, 0x1.d0fc70090acedp+52, -0x1p-1, INEXACT) +T(RN, 0x1.66a96ed74929fp+104, 0x1.2f038ff6f5312p+52, -0x1p-1, INEXACT) +T(RN, 0x1.27f0f3892e966p+105, 0x1.854215b8a5e18p+52, -0x1p-1, INEXACT) +T(RN, 0x1.fffffffffffedp+105, 0x1.ffffffffffff6p+52, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000013p+104, 0x1.0000000000009p+52, -0x1p-1, INEXACT) +T(RN, 0x1.9cf37dc067513p+105, 0x1.cbd0f5aa4c73ap+52, -0x1p-1, INEXACT) +T(RN, 0x1.7301398303ec7p+104, 0x1.342f0a55b38c5p+52, -0x1p-1, INEXACT) +T(RN, 0x1.2de7d612d1581p+105, 0x1.89293facadc6p+52, -0x1p-1, INEXACT) +T(RN, 0x1.91e2e1888fb81p+105, 0x1.c59d36661abdep+52, -0x1p-1, INEXACT) +T(RN, 0x1.82167cac7efcbp+104, 0x1.3a62c999e5421p+52, -0x1p-1, INEXACT) +T(RN, 0x1.66fe83bf9d389p+105, 0x1.acb9923c92f2bp+52, -0x1p-1, INEXACT) +T(RN, 0x1.c1a39a13c8c0dp+104, 0x1.53466dc36d0d4p+52, -0x1p-1, INEXACT) +T(RN, 0x1.08013920711f5p+105, 0x1.6fa7c41e7da28p+52, -0x1p-1, INEXACT) +T(RN, 0x1.fffffffffffebp+105, 0x1.ffffffffffff5p+52, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000015p+104, 0x1.000000000000ap+52, -0x1p-1, INEXACT) +T(RN, 0x1.2e23b951167f3p+105, 0x1.89503c69a508fp+52, -0x1p-1, INEXACT) +T(RN, 0x1.8448f9061c55p+105, 0x1.bddf431dfa7d1p+52, -0x1p-1, INEXACT) +T(RN, 0x1.95565f5859bb7p+104, 0x1.4220bce20582ep+52, -0x1p-1, INEXACT) +T(RN, 0x1.49871c81c0e73p+105, 0x1.9ac0d43859164p+52, -0x1p-1, INEXACT) +T(RN, 0x1.f2893fb16b48bp+104, 0x1.653f2bc7a6e9bp+52, -0x1p-1, INEXACT) +T(RN, 0x1.585a518f34574p+105, 0x1.a3e427096cbc7p+52, -0x1p-1, INEXACT) +T(RN, 0x1.d95bb8e5dc43bp+104, 0x1.5c1bd8f693438p+52, -0x1p-1, INEXACT) +T(RN, 0x1.4640c61a107d3p+105, 0x1.98b508d7696ecp+52, -0x1p-1, INEXACT) +T(RN, 0x1.f8435727a861bp+104, 0x1.674af72896913p+52, -0x1p-1, INEXACT) +T(RN, 0x1.109491841853dp+105, 0x1.75942dbb1eedap+52, -0x1p-1, INEXACT) +T(RN, 0x1.2fec5e46b945fp+105, 0x1.8a7904fc03f7fp+52, -0x1p-1, INEXACT) +T(RN, 0x1.fffffffffffe9p+105, 0x1.ffffffffffff4p+52, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000017p+104, 0x1.000000000000bp+52, -0x1p-1, INEXACT) +T(RN, 0x1.128b05f79555cp+105, 0x1.76ebe008ed97dp+52, -0x1p-1, INEXACT) +T(RN, 0x1.fb6ad7a73a0cbp+105, 0x1.fdb41a4dd1b83p+52, -0x1p-1, INEXACT) +T(RN, 0x1.049d117b89c81p+104, 0x1.024be5b22e47cp+52, -0x1p-1, INEXACT) +T(RN, 0x1.6b287cde410f1p+105, 0x1.af343fdf7ac55p+52, -0x1p-1, INEXACT) +T(RN, 0x1.bb177a7fa17e1p+104, 0x1.50cbc020853aap+52, -0x1p-1, INEXACT) +T(RN, 0x1.1705e87e6572cp+105, 0x1.79f7cf7bd7da7p+52, -0x1p-1, INEXACT) +T(RN, 0x1.a0857af57261ep+105, 0x1.cdccb8f9c56c9p+52, -0x1p-1, INEXACT) +T(RN, 0x1.6e3ea01044383p+104, 0x1.323347063a936p+52, -0x1p-1, INEXACT) +T(RN, 0x1.fffffffffffe7p+105, 0x1.ffffffffffff3p+52, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000019p+104, 0x1.000000000000cp+52, -0x1p-1, INEXACT) +T(RN, 0x1.8b19714a4836dp+105, 0x1.c1c480c871185p+52, -0x1p-1, INEXACT) +T(RN, 0x1.8b97dde1e9db9p+104, 0x1.3e3b7f378ee7ap+52, -0x1p-1, INEXACT) +T(RN, 0x1.a0caf669ea303p+105, 0x1.cdf33be5a3ee1p+52, -0x1p-1, INEXACT) +T(RN, 0x1.6de28571fccbdp+104, 0x1.320cc41a5c11ep+52, -0x1p-1, INEXACT) +T(RN, 0x1.ae6b9477b0f4ep+105, 0x1.d570fad5ae714p+52, -0x1p-1, INEXACT) +T(RN, 0x1.5c3147ed4b421p+104, 0x1.2a8f052a518ebp+52, -0x1p-1, INEXACT) +T(RN, 0x1.c9c9ea9823206p+105, 0x1.e422dc265cc22p+52, -0x1p-1, INEXACT) +T(RN, 0x1.3ac2ac4a19b3dp+104, 0x1.1bdd23d9a33ddp+52, -0x1p-1, INEXACT) +T(RN, 0x1.8e513e0c5bbddp+105, 0x1.c39871e63f668p+52, -0x1p-1, INEXACT) +T(RN, 0x1.870fd0b33b147p+104, 0x1.3c678e19c0997p+52, -0x1p-1, INEXACT) +T(RN, 0x1.80448ded551a3p+105, 0x1.bb8f4135f5663p+52, -0x1p-1, INEXACT) +T(RN, 0x1.9b2d9496e9cf1p+104, 0x1.4470beca0a99cp+52, -0x1p-1, INEXACT) +T(RN, 0x1.962c00ed2f202p+105, 0x1.c806bd1a17f4ap+52, -0x1p-1, INEXACT) +T(RN, 0x1.7c2f933dce845p+104, 0x1.37f942e5e80b5p+52, -0x1p-1, INEXACT) +T(RN, 0x1.fffffffffffe5p+105, 0x1.ffffffffffff2p+52, -0x1p-1, INEXACT) +T(RN, 0x1.000000000001bp+104, 0x1.000000000000dp+52, -0x1p-1, INEXACT) +T(RN, 0x1.e986e9749149ep+105, 0x1.f4a32dcc3b787p+52, -0x1p-1, INEXACT) +T(RN, 0x1.173ac01fbdc0fp+104, 0x1.0b5cd233c4878p+52, -0x1p-1, INEXACT) +T(RN, 0x1.b90968dfbd58ep+105, 0x1.db321028321d6p+52, -0x1p-1, INEXACT) +T(RN, 0x1.4ee670ce4e015p+104, 0x1.24cdefd7cde29p+52, -0x1p-1, INEXACT) +T(RN, 0x1.adf3a892c378p+105, 0x1.d52f90bb839e5p+52, -0x1p-1, INEXACT) +T(RN, 0x1.5cc9ecc07139fp+104, 0x1.2ad06f447c61ap+52, -0x1p-1, INEXACT) +T(RN, 0x1.21f25ca11cdefp+105, 0x1.814bae81d5041p+52, -0x1p-1, INEXACT) +T(RN, 0x1.dcd8582acf913p+105, 0x1.ee1c28bdd8634p+52, -0x1p-1, INEXACT) +T(RN, 0x1.2507bbe28ccebp+104, 0x1.11e3d742279cbp+52, -0x1p-1, INEXACT) +T(RN, 0x1.5bdd34dbf3f7cp+105, 0x1.a606cc4bbc777p+52, -0x1p-1, INEXACT) +T(RN, 0x1.d3919ff17d22bp+104, 0x1.59f933b443888p+52, -0x1p-1, INEXACT) +T(RN, 0x1.6a4d09ea19a7dp+105, 0x1.aeb1e37cf98d9p+52, -0x1p-1, INEXACT) +T(RN, 0x1.bc6ebee659fe1p+104, 0x1.514e1c8306726p+52, -0x1p-1, INEXACT) +T(RN, 0x1.991f1e263175ap+105, 0x1.c9addf0205943p+52, -0x1p-1, INEXACT) +T(RN, 0x1.782b02404171fp+104, 0x1.365220fdfa6bcp+52, -0x1p-1, INEXACT) +T(RN, 0x1.08e9256b12fa6p+105, 0x1.70491de5982eap+52, -0x1p-1, INEXACT) +T(RN, 0x1.1da509e4fd3bdp+105, 0x1.7e6d33563082fp+52, -0x1p-1, INEXACT) +T(RN, 0x1.fffffffffffe3p+105, 0x1.ffffffffffff1p+52, -0x1p-1, INEXACT) +T(RN, 0x1.000000000001dp+104, 0x1.000000000000ep+52, -0x1p-1, INEXACT) +T(RN, 0x1.1c8fba5105937p+105, 0x1.7db363c14e992p+52, -0x1p-1, INEXACT) +T(RN, 0x1.12307f6aa1598p+105, 0x1.76ae0b2037967p+52, -0x1p-1, INEXACT) +T(RN, 0x1.350b181f61a1bp+105, 0x1.8dc815e13b276p+52, -0x1p-1, INEXACT) +T(RN, 0x1.1a2f79400dc0ap+105, 0x1.7c1a96d138a45p+52, -0x1p-1, INEXACT) +T(RN, 0x1.a4005a0d21cc4p+105, 0x1.cfb98d7063cep+52, -0x1p-1, INEXACT) +T(RN, 0x1.69a76377ecc45p+104, 0x1.3046728f9c31fp+52, -0x1p-1, INEXACT) +T(RN, 0x1.17fcdcccc3eb2p+105, 0x1.7a9eee07bc9a1p+52, -0x1p-1, INEXACT) +T(RN, 0x1.1a4b4ce34b56fp+105, 0x1.7c2d54204e09dp+52, -0x1p-1, INEXACT) +T(RN, 0x1.c5edba7fe6b83p+105, 0x1.e217391120d57p+52, -0x1p-1, INEXACT) +T(RN, 0x1.3f501e99086f9p+104, 0x1.1de8c6eedf2a8p+52, -0x1p-1, INEXACT) +T(RN, 0x1.cf9db38790aa3p+105, 0x1.e7352fd68c3c6p+52, -0x1p-1, INEXACT) +T(RN, 0x1.33fc4807d7e9fp+104, 0x1.18cad02973c39p+52, -0x1p-1, INEXACT) +T(RN, 0x1.fc2018f397d65p+105, 0x1.fe0f1b5c1a175p+52, -0x1p-1, INEXACT) +T(RN, 0x1.03e58dbe93209p+104, 0x1.01f0e4a3e5e8ap+52, -0x1p-1, INEXACT) +T(RN, 0x1.fffffffffffe1p+105, 0x1.ffffffffffffp+52, -0x1p-1, INEXACT) +T(RN, 0x1.000000000001fp+104, 0x1.000000000000fp+52, -0x1p-1, INEXACT) +T(RN, 0x1.6015db7c6744cp+105, 0x1.a894573ff12aep+52, -0x1p-1, INEXACT) +T(RN, 0x1.ccb1ab7927881p+104, 0x1.576ba8c00ed51p+52, -0x1p-1, INEXACT) +T(RN, 0x1.2095fab55f69fp+105, 0x1.8063ef77e2b32p+52, -0x1p-1, INEXACT) +T(RN, 0x1.dbb7a32c9c655p+105, 0x1.ed867d956c347p+52, -0x1p-1, INEXACT) +T(RN, 0x1.264854d8af8fdp+104, 0x1.1279826a93cb8p+52, -0x1p-1, INEXACT) diff --git a/test/musl/src/math/special/sqrtf.h b/test/musl/src/math/special/sqrtf.h new file mode 100644 index 00000000..a1e61171 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/sqrtl.h b/test/musl/src/math/special/sqrtl.h new file mode 100644 index 00000000..9288e2d2 --- /dev/null +++ b/test/musl/src/math/special/sqrtl.h @@ -0,0 +1,294 @@ +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) +T(RN, 0x1.cde0ef5187b8db94p+127L, 0x1.e64b449c63673f4cp+63L, 0x1p-1, INEXACT) +T(RN, 0x1.35fe42f8bb063b66p+126L, 0x1.19b4bb639c98c0b6p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.39da5627c175e958p+127L, 0x1.90dd6a7f8211bb28p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.7f61b4a7026b4554p+127L, 0x1.bb0c40ee0c2693d4p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.9c79e3b9bbef13b6p+126L, 0x1.44f3bf11f3d96c2ep+63L, 0x1p-1, INEXACT) +T(RN, 0x1.4bb7b80aafa4b282p+127L, 0x1.9c1da57bcb44839cp+63L, 0x1p-1, INEXACT) +T(RN, 0x1.eebd8f2e9bae4f62p+126L, 0x1.63e25a8434bb7c66p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.4d1729b5ad49e596p+127L, 0x1.9cf7bb8da35f29cap+63L, 0x1p-1, INEXACT) +T(RN, 0x1.ec5fee198658d076p+126L, 0x1.630844725ca0d638p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.716132891ca8c0bp+127L, 0x1.b2e1cdd52a35bde2p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.b17792133c0f0e1ap+126L, 0x1.4d1e322ad5ca422p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.68b94525310eac18p+127L, 0x1.adc1a1aa6f4d7cbp+63L, 0x1p-1, INEXACT) +T(RN, 0x1.bee8c04bc64c6c16p+126L, 0x1.523e5e5590b28352p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.4fb0d00a2e806ea8p+127L, 0x1.9e9391a0b5ac24c6p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.e7ec36501af800b2p+126L, 0x1.616c6e5f4a53db3cp+63L, 0x1p-1, INEXACT) +T(RN, 0x1.dcc61fc33c3cfcap+127L, 0x1.ee12b80217d142bep+63L, 0x1p-1, INEXACT) +T(RN, 0x1.251bef79e99268d2p+126L, 0x1.11ed47fde82ebd44p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.30336a34b2f6bf28p+127L, 0x1.8aa71daac75df7c2p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.d985d3b5acb84462p+127L, 0x1.ec62bbaa70bf6b32p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.28bb416cb4f4059ep+126L, 0x1.139d44558f4094dp+63L, 0x1p-1, INEXACT) +T(RN, 0x1.1f34a686b8eb8dbcp+127L, 0x1.7f78570df1043c78p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.a0a7b797ac7f12cep+127L, 0x1.cddfb3492a31c44ep+63L, 0x1p-1, INEXACT) +T(RN, 0x1.6e113b785bd38bcep+126L, 0x1.32204cb6d5ce3bb4p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.a9bf3c72c0b7b4fcp+127L, 0x1.d2e2cc5a1c5970fp+63L, 0x1p-1, INEXACT) +T(RN, 0x1.622daec8d756c45ep+126L, 0x1.2d1d33a5e3a68f12p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.ad24a0f909cb4efp+127L, 0x1.d4be8d288b5ea598p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.5dd1f2fecf5ebc56p+126L, 0x1.2b4172d774a15a6ap+63L, 0x1p-1, INEXACT) +T(RN, 0x1.8ceb4e3aae84415ap+127L, 0x1.c2cd5c14b247b57ep+63L, 0x1p-1, INEXACT) +T(RN, 0x1.890673f92f5a41c6p+126L, 0x1.3d32a3eb4db84a84p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.0ad9ff6f06413144p+127L, 0x1.71a1dab8f5efdf82p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.969545e171f8f1d6p+127L, 0x1.c841d1a3951bf9aep+63L, 0x1p-1, INEXACT) +T(RN, 0x1.7b9fa1ed654a099ep+126L, 0x1.37be2e5c6ae40654p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.679a654e2950819p+127L, 0x1.ad169c872ca9911p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.c0ad1f7146a79cc6p+126L, 0x1.52e96378d3566ef2p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.1ced7a4a3c5250e8p+127L, 0x1.7df23ef1053420dep+63L, 0x1p-1, INEXACT) +T(RN, 0x1.37088a2f67c02fdap+127L, 0x1.8f0f6c4076c07b6cp+63L, 0x1p-1, INEXACT) +T(RN, 0x1.93c99c2980bc68cp+127L, 0x1.c6af93b57dc6bec8p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.7f75c2120ed058d6p+126L, 0x1.39506c4a8239413ap+63L, 0x1p-1, INEXACT) +T(RN, 0x1.6d988c115ee1a02ap+127L, 0x1.b0a6201936d381bcp+63L, 0x1p-1, INEXACT) +T(RN, 0x1.b74c578b74ce35f2p+126L, 0x1.4f59dfe6c92c7e46p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.ac5feef0a66fdb06p+127L, 0x1.d453147d8a58a7c4p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.5ecd62f00ecbc77ap+126L, 0x1.2baceb8275a7583ep+63L, 0x1p-1, INEXACT) +T(RN, 0x1.b092174c5e52f7b8p+127L, 0x1.d69cd0c25ad648cp+63L, 0x1p-1, INEXACT) +T(RN, 0x1.59774a0a9ba03af6p+126L, 0x1.29632f3da529b742p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.1ea2f30108bc7ad8p+127L, 0x1.7f1705fea8f6dd0cp+63L, 0x1p-1, INEXACT) +T(RN, 0x1.14fdcff11de8b82ep+127L, 0x1.7896e72031817794p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.72eea62f8ad1c65ap+127L, 0x1.b3cb86587ec2b8f8p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.af18264c1d1336eap+126L, 0x1.4c3479a7813d470ap+63L, 0x1p-1, INEXACT) +T(RN, 0x1.4ec9fe451ed1382ap+127L, 0x1.9e04f14bfff1db9ep+63L, 0x1p-1, INEXACT) +T(RN, 0x1.e97654c23df74aa6p+126L, 0x1.61fb0eb4000e2464p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.88415de4a024b2p+127L, 0x1.c02558ab000aad56p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.8fa2a7c740095402p+126L, 0x1.3fdaa754fff552acp+63L, 0x1p-1, INEXACT) +T(RN, 0x1.0f5136a0cd3ebfdcp+127L, 0x1.74b6567f7bdec908p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.99c96bc8453285fap+127L, 0x1.ca0d172acf5b7692p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.77444c8fae40448ep+126L, 0x1.35f2e8d530a4897p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.6fec2f0247dc8f58p+127L, 0x1.b20601bbb7b74cfcp+63L, 0x1p-1, INEXACT) +T(RN, 0x1.b3b4539e416d50cep+126L, 0x1.4df9fe444848b306p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.6eb1c6e70e956cb8p+127L, 0x1.b14c67c29d22b218p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.b5991f3e6e5aace6p+126L, 0x1.4eb3983d62dd4deap+63L, 0x1p-1, INEXACT) +T(RN, 0x1.f1260b7d9ddc8806p+127L, 0x1.f8850898b608a3b6p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.0f2de366f78539cep+126L, 0x1.077af76749f75c4cp+63L, 0x1p-1, INEXACT) +T(RN, 0x1.f40f05bb26545e76p+127L, 0x1.f9fe7e580a09a428p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.0c271566106ee402p+126L, 0x1.060181a7f5f65bdap+63L, 0x1p-1, INEXACT) +T(RN, 0x1.62c6afd018c6a8eap+127L, 0x1.aa32e134b78a30cap+63L, 0x1p-1, INEXACT) +T(RN, 0x1.c85c1863e4502d1ep+126L, 0x1.55cd1ecb4875cf38p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.5bef0b16ee0000ep+127L, 0x1.a6119e04b2e879ecp+63L, 0x1p-1, INEXACT) +T(RN, 0x1.d3746211aa8d263ep+126L, 0x1.59ee61fb4d178616p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.8a7a00aabbd2ab48p+127L, 0x1.c169b77f8d406348p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.8c79b458282302e6p+126L, 0x1.3e96488072bf9cbap+63L, 0x1p-1, INEXACT) +T(RN, 0x1.f364a9dfb490fcecp+127L, 0x1.f9a8463ea42797c6p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.0cd7ae4790346b3ap+126L, 0x1.0657b9c15bd8683cp+63L, 0x1p-1, INEXACT) +T(RN, 0x1.70c38505f9c86506p+127L, 0x1.b284f223ca366faap+63L, 0x1p-1, INEXACT) +T(RN, 0x1.b2695d35364a2c16p+126L, 0x1.4d7b0ddc35c99058p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.da8ac02fa744eac8p+127L, 0x1.ecea51aa1f9ac94p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.2797966290e91e16p+126L, 0x1.1315ae55e06536c2p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.53b44dd3ed8cc5f2p+127L, 0x1.a10c283c2e642b8cp+63L, 0x1p-1, INEXACT) +T(RN, 0x1.e11faa3ec4c086a2p+126L, 0x1.5ef3d7c3d19bd476p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.908c17e5b499a994p+127L, 0x1.c4db98c1e577799ap+63L, 0x1p-1, INEXACT) +T(RN, 0x1.83f29b4008667992p+126L, 0x1.3b24673e1a888668p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.70eb6d96982826cp+127L, 0x1.b29c74a986a5ca14p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.b22c1f34086d910ep+126L, 0x1.4d638b56795a35eep+63L, 0x1p-1, INEXACT) +T(RN, 0x1.46749cc71b8cae26p+127L, 0x1.98d57fd7ea06e5dp+63L, 0x1p-1, INEXACT) +T(RN, 0x1.f7e83a7ebaeff972p+126L, 0x1.672a802815f91a32p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.47c3a9f578d2a81cp+127L, 0x1.99a716cd5be94c26p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.f59ccb1aca2d875ap+126L, 0x1.6658e932a416b3dcp+63L, 0x1p-1, INEXACT) +T(RN, 0x1.ef9b9da9d294c174p+127L, 0x1.f7bcbd5f6a9b7578p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.10cacb172584c21ep+126L, 0x1.084342a095648a8ap+63L, 0x1p-1, INEXACT) +T(RN, 0x1.c6056a0ddc755b7cp+127L, 0x1.e223ccc621b5f12cp+63L, 0x1p-1, INEXACT) +T(RN, 0x1.3f340776eea70ff6p+126L, 0x1.1ddc3339de4a0ed6p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.7498bc3264ee3be6p+127L, 0x1.b4c58a8ec0578d88p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.ac90390c47cf26a2p+126L, 0x1.4b3a75713fa8727ap+63L, 0x1p-1, INEXACT) +T(RN, 0x1.59eff319925bf762p+127L, 0x1.a4db2ca9f6e5607ep+63L, 0x1p-1, INEXACT) +T(RN, 0x1.d6bcda375b57abd6p+126L, 0x1.5b24d356091a9f84p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.99841e224c601668p+127L, 0x1.c9e659e82bb1218p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.77a220d3929963d6p+126L, 0x1.3619a617d44ede82p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.ef88e795b6625336p+127L, 0x1.f7b33af54adb54aep+63L, 0x1p-1, INEXACT) +T(RN, 0x1.10de6d6baba0aa5ep+126L, 0x1.084cc50ab524ab54p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.0ea956a3989ded6cp+127L, 0x1.7442f648b284221p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.7f4abe5a2b343fbap+127L, 0x1.bafefc2840562bdep+63L, 0x1p-1, INEXACT) +T(RN, 0x1.9c9b93c2d4637846p+126L, 0x1.450103d7bfa9d424p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.b5e219044b5e6482p+127L, 0x1.d97e5cffb49093ap+63L, 0x1p-1, INEXACT) +T(RN, 0x1.52ce040a5b59534ap+126L, 0x1.2681a3004b6f6c62p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.ecac67ac92780106p+127L, 0x1.f63e6810f979b86cp+63L, 0x1p-1, INEXACT) +T(RN, 0x1.13e25ef34c15af8ap+126L, 0x1.09c197ef06864796p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.06b821799b7117b4p+127L, 0x1.6ec25687ad76d9d2p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.25267121cfd66972p+127L, 0x1.836b1107674f89cp+63L, 0x1p-1, INEXACT) +T(RN, 0x1.9951bc879958c06ep+127L, 0x1.c9ca2e525d14fae8p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.77e6632104339f72p+126L, 0x1.3635d1ada2eb051ap+63L, 0x1p-1, INEXACT) +T(RN, 0x1.31332be976c33edap+127L, 0x1.8b4ce1c6ff6ea36ep+63L, 0x1p-1, INEXACT) +T(RN, 0x1.9c77e1b69721f34ep+127L, 0x1.cb8c1ee127ad2a5cp+63L, 0x1p-1, INEXACT) +T(RN, 0x1.73a70a264034e87ap+126L, 0x1.3473e11ed852d5a6p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.f30223cb646a36ap+127L, 0x1.f976628ee5ee71f8p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.0d3df83d653dc176p+126L, 0x1.06899d711a118e0ap+63L, 0x1p-1, INEXACT) +T(RN, 0x1.5acdf7d655c7e564p+127L, 0x1.a56223e46268a69ep+63L, 0x1p-1, INEXACT) +T(RN, 0x1.d54f18525d1be31ap+126L, 0x1.5a9ddc1b9d975964p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.50989ca3ec069c86p+127L, 0x1.9f229ba2e4e87c22p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.e66193767a9a5046p+126L, 0x1.60dd645d1b1783ep+63L, 0x1p-1, INEXACT) +T(RN, 0x1.e726a6dd73b3ba6cp+127L, 0x1.f36bc49507a96dfap+63L, 0x1p-1, INEXACT) +T(RN, 0x1.19c6b23cb96ee102p+126L, 0x1.0c943b6af8569208p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.84705c27fef0c8d6p+127L, 0x1.bdf5dfd4cbe65ccep+63L, 0x1p-1, INEXACT) +T(RN, 0x1.951d7953367b64dep+126L, 0x1.420a202b3419a334p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.d2ad4444bf68ea6p+127L, 0x1.e8d03a8900bc6606p+63L, 0x1p-1, INEXACT) +T(RN, 0x1.307929537a6770a2p+126L, 0x1.172fc576ff4399fcp+63L, 0x1p-1, INEXACT) +T(RN, 0x1.179c7bc8b6abe4b2p+127L, 0x1.7a5dbe0ccc2cd916p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.fffffffffffffff6p+127L, 0x1.fffffffffffffffap+63L, -0x1p-1, INEXACT) +T(RN, 0x1.000000000000000ap+126L, 0x1.0000000000000004p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.70cac0ab044c46dap+127L, 0x1.b289350725bd679p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.b25e432b2628204ep+126L, 0x1.4d76caf8da42986ep+63L, -0x1p-1, INEXACT) +T(RN, 0x1.fffffffffffffff2p+127L, 0x1.fffffffffffffff8p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.000000000000000ep+126L, 0x1.0000000000000006p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.968edef2b2f84e26p+127L, 0x1.c83e3a0a7391ef62p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.7ba861a6b084fffap+126L, 0x1.37c1c5f58c6e109cp+63L, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffffffeep+127L, 0x1.fffffffffffffff6p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000000012p+126L, 0x1.0000000000000008p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.a86703bb7c0fd9d6p+127L, 0x1.d225e8563eb7cc4ep+63L, -0x1p-1, INEXACT) +T(RN, 0x1.63ea95717fd0e9d2p+126L, 0x1.2dda17a9c14833bp+63L, -0x1p-1, INEXACT) +T(RN, 0x1.e55bec8c09c1f9f8p+127L, 0x1.f280690b0478a8e6p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.1bb562d5f8affe86p+126L, 0x1.0d7f96f4fb875718p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffffffeap+127L, 0x1.fffffffffffffff4p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000000016p+126L, 0x1.000000000000000ap+63L, -0x1p-1, INEXACT) +T(RN, 0x1.04a697769b1e886p+127L, 0x1.6d4ffc786e7012c2p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.498ee9156f7bff2cp+127L, 0x1.9ac5b08c63033528p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.f27baee08ce4bf62p+126L, 0x1.653a4f739cfccad6p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.39e8fd2810e3c6a4p+127L, 0x1.90e6c5d99b7974bap+63L, -0x1p-1, INEXACT) +T(RN, 0x1.2a09d1d4244471dcp+127L, 0x1.86a289ff20933bdp+63L, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffffffe6p+127L, 0x1.fffffffffffffff2p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.000000000000001ap+126L, 0x1.000000000000000cp+63L, -0x1p-1, INEXACT) +T(RN, 0x1.7162ed1ab39542dap+127L, 0x1.b2e2d25b3a2c3e6ap+63L, -0x1p-1, INEXACT) +T(RN, 0x1.b174ec120a210f32p+126L, 0x1.4d1d2da4c5d3c194p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.7cf7e4a22d5829fap+127L, 0x1.b9a6b5520de3519ep+63L, -0x1p-1, INEXACT) +T(RN, 0x1.a0078958075c6a3ap+126L, 0x1.46594aadf21cae6p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.c6c276d15e4a9946p+127L, 0x1.e288236206406d1ap+63L, -0x1p-1, INEXACT) +T(RN, 0x1.3e5419569712a3eap+126L, 0x1.1d77dc9df9bf92e4p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffffffe2p+127L, 0x1.fffffffffffffffp+63L, -0x1p-1, INEXACT) +T(RN, 0x1.000000000000001ep+126L, 0x1.000000000000000ep+63L, -0x1p-1, INEXACT) +T(RN, 0x1.d353e91b2e3d55a6p+127L, 0x1.e92778f72c806152p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.2fbafc6b5178635ap+126L, 0x1.16d88708d37f9eacp+63L, -0x1p-1, INEXACT) +T(RN, 0x1.c3602b7a85e2b098p+127L, 0x1.e0bbae3af1e326a6p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.425a419360727946p+126L, 0x1.1f4451c50e1cd958p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.7f2dd3501e562cc4p+127L, 0x1.baee45bfd8e4397ap+63L, -0x1p-1, INEXACT) +T(RN, 0x1.9cc60421275300a6p+126L, 0x1.4511ba40271bc684p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffffffdep+127L, 0x1.ffffffffffffffeep+63L, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000000022p+126L, 0x1.000000000000001p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.b6009c64780842b8p+127L, 0x1.d98edc0686260478p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.52a810a1cb2c6a9ap+126L, 0x1.267123f979d9fb86p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.ee9b52032ee67c5ep+127L, 0x1.f73a6c94dcf508d4p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.11d81889300ec3bep+126L, 0x1.08c5936b230af72ap+63L, -0x1p-1, INEXACT) +T(RN, 0x1.db1a3f9689faa2a4p+127L, 0x1.ed34d2e52f8af15ep+63L, -0x1p-1, INEXACT) +T(RN, 0x1.26f78dcdf6b39d0ep+126L, 0x1.12cb2d1ad0750eap+63L, -0x1p-1, INEXACT) +T(RN, 0x1.b4bdbbd4ef4f3fd8p+127L, 0x1.d8e030a1d308b4e2p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.543a53deec6a425ep+126L, 0x1.271fcf5e2cf74b1cp+63L, -0x1p-1, INEXACT) +T(RN, 0x1.5c16d880b0b303p+127L, 0x1.a629c1935a560376p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.d333278d4361f136p+126L, 0x1.59d63e6ca5a9fc88p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.e3f0f536e9eb3a48p+127L, 0x1.f1c5e071fedea624p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.1d3ea7c1da9e8fb2p+126L, 0x1.0e3a1f8e012159dap+63L, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffffffdap+127L, 0x1.ffffffffffffffecp+63L, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000000026p+126L, 0x1.0000000000000012p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.a70c274d00f7339cp+127L, 0x1.d16743fa02653466p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.65acb6bdf38f2ccep+126L, 0x1.2e98bc05fd9acb98p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.7aea36e031a47532p+127L, 0x1.b875973247925e56p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.a312e292b5dab45ap+126L, 0x1.478a68cdb86da1a8p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.46d55441bc2cb6c2p+127L, 0x1.99120b077c304baep+63L, -0x1p-1, INEXACT) +T(RN, 0x1.f73e66568f37a76ap+126L, 0x1.66edf4f883cfb45p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffffffd6p+127L, 0x1.ffffffffffffffeap+63L, -0x1p-1, INEXACT) +T(RN, 0x1.000000000000002ap+126L, 0x1.0000000000000014p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.618817402d45468cp+127L, 0x1.a973581a870b22c8p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.ca5c1de13047bc62p+126L, 0x1.568ca7e578f4dd36p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.5cee36de3912af38p+127L, 0x1.a6ac46ea7cc9969ap+63L, -0x1p-1, INEXACT) +T(RN, 0x1.d1d2c43d856bd6cep+126L, 0x1.5953b91583366964p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.67cc7a0c169fa3ccp+127L, 0x1.ad347c84e12d978ep+63L, -0x1p-1, INEXACT) +T(RN, 0x1.c05e08fae62dba3ep+126L, 0x1.52cb837b1ed2687p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.1ea4fa0be8b4cafp+127L, 0x1.7f1860d7bbee912cp+63L, -0x1p-1, INEXACT) +T(RN, 0x1.486db6ab89224656p+127L, 0x1.9a114d7a489c224ap+63L, -0x1p-1, INEXACT) +T(RN, 0x1.f4739c795e9bbeeap+126L, 0x1.65eeb285b763ddb4p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.a85f6e80a96a8ccp+127L, 0x1.d221be3afb212b02p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.63f4679f700e176ep+126L, 0x1.2dde41c504ded4fcp+63L, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffffffd2p+127L, 0x1.ffffffffffffffe8p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.000000000000002ep+126L, 0x1.0000000000000016p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.646aafb801f467dep+127L, 0x1.ab2edd7c011db2fap+63L, -0x1p-1, INEXACT) +T(RN, 0x1.c5bc2e87fd369ddap+126L, 0x1.54d12283fee24d04p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.eee9e82427775bf8p+127L, 0x1.f7626565ebd460dep+63L, -0x1p-1, INEXACT) +T(RN, 0x1.11856fe4c7f472b6p+126L, 0x1.089d9a9a142b9f2p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.d813955c0b795f14p+127L, 0x1.eba216f6e159b908p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.2a5aa0eeced867f2p+126L, 0x1.145de9091ea646f6p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.a5b08ae143d37ac8p+127L, 0x1.d0a7e79f9722dca4p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.6771a804fcd5c9b2p+126L, 0x1.2f58186068dd235ap+63L, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffffffcep+127L, 0x1.ffffffffffffffe6p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000000032p+126L, 0x1.0000000000000018p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.479191a3c1aac88ap+127L, 0x1.9987c76fe6f1dcf4p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.f5f476a819aa6356p+126L, 0x1.66783890190e230ap+63L, -0x1p-1, INEXACT) +T(RN, 0x1.b36992d8d0773854p+127L, 0x1.d827e5d2eda6c6bep+63L, -0x1p-1, INEXACT) +T(RN, 0x1.55e3c2c00f05c82ep+126L, 0x1.27d81a2d1259394p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.3876399544d47f0ap+127L, 0x1.8ff9be677cb47dc2p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.670372b2577128ecp+127L, 0x1.acbc845b84cb9844p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.c19bcb3f921cc03ap+126L, 0x1.53437ba47b3467bap+63L, -0x1p-1, INEXACT) +T(RN, 0x1.6767d8eb5d44074ep+127L, 0x1.acf8730e3cc7ecdp+63L, -0x1p-1, INEXACT) +T(RN, 0x1.c0fcff814dd881b6p+126L, 0x1.53078cf1c338132ep+63L, -0x1p-1, INEXACT) +T(RN, 0x1.de7ff5647b18b5bep+127L, 0x1.eef771e826beacc6p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.23333f580db95ed2p+126L, 0x1.11088e17d9415338p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.b18b0c23832450cp+127L, 0x1.d7242a2b3f5e309ep+63L, -0x1p-1, INEXACT) +T(RN, 0x1.583d1b438a137dc6p+126L, 0x1.28dbd5d4c0a1cf6p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.c941b845af5415f8p+127L, 0x1.e3dad24949f6f522p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.3b6282d3a2de6d1ep+126L, 0x1.1c252db6b6090adcp+63L, -0x1p-1, INEXACT) +T(RN, 0x1.7753f2a581ef3b58p+127L, 0x1.b65e9d5190be40b6p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.a87035619f68f266p+126L, 0x1.49a162ae6f41bf48p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffffffcap+127L, 0x1.ffffffffffffffe4p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000000036p+126L, 0x1.000000000000001ap+63L, -0x1p-1, INEXACT) +T(RN, 0x1.5195b98136452306p+127L, 0x1.9fbe9465b9876f0ep+63L, -0x1p-1, INEXACT) +T(RN, 0x1.e4b3f8a0135dabb2p+126L, 0x1.60416b9a467890fp+63L, -0x1p-1, INEXACT) +T(RN, 0x1.868b059b283b8d72p+127L, 0x1.bf2aabd73040bda6p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.9216042b2ef2a8fap+126L, 0x1.40d55428cfbf4258p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.51a0b90e688b8ee4p+127L, 0x1.9fc55a0de88f8c34p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.e4a155c95db9d48ap+126L, 0x1.603aa5f2177073cap+63L, -0x1p-1, INEXACT) +T(RN, 0x1.22225511475b87acp+127L, 0x1.816b8c9e28511e7ep+63L, -0x1p-1, INEXACT) +T(RN, 0x1.784d57967412ff0cp+127L, 0x1.b6f02975d03aa082p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.a6f9b66a06c63b06p+126L, 0x1.490fd68a2fc55f7cp+63L, -0x1p-1, INEXACT) +T(RN, 0x1.1651d3d342990f48p+127L, 0x1.797dc38517bb0c68p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.7cfcf03e61caab2ap+127L, 0x1.b9a9a1fbca339384p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.a0001496065fe136p+126L, 0x1.46565e0435cc6c7ap+63L, -0x1p-1, INEXACT) +T(RN, 0x1.def6865415a19d3p+127L, 0x1.ef34c0d989778eeep+63L, -0x1p-1, INEXACT) +T(RN, 0x1.22b0878ef275e0c6p+126L, 0x1.10cb3f267688711p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.00f828fb05843592p+127L, 0x1.6ab935bbe040b286p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.2500754e0c74b0f8p+127L, 0x1.8351f6dc434cfa2ap+63L, -0x1p-1, INEXACT) +T(RN, 0x1.5e315537f82f8a86p+127L, 0x1.a76fcda66ac6105ep+63L, -0x1p-1, INEXACT) +T(RN, 0x1.cfc3d8896fbab2d2p+126L, 0x1.589032599539efap+63L, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffffffc6p+127L, 0x1.ffffffffffffffe2p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.000000000000003ap+126L, 0x1.000000000000001cp+63L, -0x1p-1, INEXACT) +T(RN, 0x1.19293ef9b6810efap+127L, 0x1.7b69d176db90ca76p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.105f5d2be51c3f3p+127L, 0x1.756fb66c7829d324p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.7d412738db49ab4cp+127L, 0x1.b9d12a3e9bf90d3p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.9f9b50fa0ebd0772p+126L, 0x1.462ed5c16406f2cep+63L, -0x1p-1, INEXACT) +T(RN, 0x1.11d83d8c6bf114d2p+127L, 0x1.7671b902bc2764ecp+63L, -0x1p-1, INEXACT) +T(RN, 0x1.7cf0075083695e3ep+127L, 0x1.b9a2264a7616f498p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.a01328e2424900e6p+126L, 0x1.465dd9b589e90b66p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.099cf94165883908p+127L, 0x1.70c608ce51f3863ep+63L, -0x1p-1, INEXACT) +T(RN, 0x1.47396fb8bb472dp+127L, 0x1.9950ac223f086cbcp+63L, -0x1p-1, INEXACT) +T(RN, 0x1.f68ed6a3fc5bcd92p+126L, 0x1.66af53ddc0f79342p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.3f03ab57df9dd33ep+127L, 0x1.9425cda820c44556p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.60ad256fd7c6bc88p+127L, 0x1.a8ef85aa8409c13ap+63L, -0x1p-1, INEXACT) +T(RN, 0x1.cbbd28e09752f1aep+126L, 0x1.57107a557bf63ec4p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.5a265a0d1846d676p+127L, 0x1.a4fc42e722241aaep+63L, -0x1p-1, INEXACT) +T(RN, 0x1.d66322af63b50cd2p+126L, 0x1.5b03bd18dddbe55p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.802f7e7041496b8cp+127L, 0x1.bb83195a052e7872p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.9b4c64c4637c0466p+126L, 0x1.447ce6a5fad1878cp+63L, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffffffc2p+127L, 0x1.ffffffffffffffep+63L, -0x1p-1, INEXACT) +T(RN, 0x1.000000000000003ep+126L, 0x1.000000000000001ep+63L, -0x1p-1, INEXACT) +T(RN, 0x1.18c26b650b11dd64p+127L, 0x1.7b2469ea6d8e1bc8p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.66b8d3966de9b7ccp+127L, 0x1.ac8ff3821103a99ap+63L, -0x1p-1, INEXACT) +T(RN, 0x1.c211f22075bd75f6p+126L, 0x1.53700c7deefc5664p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.779114a6e711cc14p+127L, 0x1.b6824f304d52797p+63L, -0x1p-1, INEXACT) +T(RN, 0x1.a8144e2bfe34bf82p+126L, 0x1.497db0cfb2ad868ep+63L, -0x1p-1, INEXACT) diff --git a/test/musl/src/math/special/tan.h b/test/musl/src/math/special/tan.h new file mode 100644 index 00000000..ccafd59b --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/tanf.h b/test/musl/src/math/special/tanf.h new file mode 100644 index 00000000..c8414f61 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/tanh.h b/test/musl/src/math/special/tanh.h new file mode 100644 index 00000000..112b4c31 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/tanhf.h b/test/musl/src/math/special/tanhf.h new file mode 100644 index 00000000..4b157252 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/tanhl.h b/test/musl/src/math/special/tanhl.h new file mode 100644 index 00000000..4c218d97 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/tanl.h b/test/musl/src/math/special/tanl.h new file mode 100644 index 00000000..221a0ba4 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/tgamma.h b/test/musl/src/math/special/tgamma.h new file mode 100644 index 00000000..37c87d2b --- /dev/null +++ b/test/musl/src/math/special/tgamma.h @@ -0,0 +1,163 @@ +// special cases +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) +// positive int +T(RN, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+2, 0x1.8p+2, 0x0p+0, INEXACT) +T(RN, 0x1.8p+1, 0x1p+1, 0x0p+0, INEXACT) +T(RN, 0x1.4p+2, 0x1.8p+4, 0x0p+0, INEXACT) +T(RN, 0x1.8p+2, 0x1.ep+6, 0x0p+0, INEXACT) +T(RN, 0x1.cp+2, 0x1.68p+9, 0x0p+0, INEXACT) +T(RN, 0x1p+3, 0x1.3bp+12, 0x0p+0, INEXACT) +T(RN, 0x1.2p+3, 0x1.3bp+15, 0x0p+0, INEXACT) +T(RN, 0x1.4p+3, 0x1.626p+18, 0x0p+0, INEXACT) +T(RN, 0x1.6p+3, 0x1.baf8p+21, 0x0p+0, INEXACT) +T(RN, 0x1.8p+3, 0x1.308a8p+25, 0x0p+0, INEXACT) +T(RN, 0x1.ap+3, 0x1.c8cfcp+28, 0x0p+0, INEXACT) +T(RN, 0x1.cp+3, 0x1.7328ccp+32, 0x0p+0, INEXACT) +T(RN, 0x1.ep+3, 0x1.44c3b28p+36, 0x0p+0, INEXACT) +T(RN, 0x1p+4, 0x1.30777758p+40, 0x0p+0, INEXACT) +T(RN, 0x1p+5, 0x1.956ad0aae33a4p+112, -0x1.583174p-2, INEXACT) +T(RN, 0x1p+6, 0x1.fe478ee34844ap+289, 0x1.82ad54p-4, INEXACT) +T(RN, 0x1p+7, 0x1.1e5dfc140e1e5p+709, -0x1.861c04p-3, INEXACT) +T(RN, 0x1.14p+7, 0x1.939c09fd12eebp+779, 0x1.b26568p-2, INEXACT) +T(RN, 0x1.16p+7, 0x1.b3243ac4d8695p+786, 0x1.91554ep-4, INEXACT) +T(RN, 0x1.18p+7, 0x1.d88957d1c3026p+793, 0x1.34f4a8p-2, INEXACT) +T(RN, 0x1.1ap+7, 0x1.026b1c06b6a55p+801, 0x1.88f5ccp-2, INEXACT) +T(RN, 0x1.1cp+7, 0x1.1ca9fcdf65321p+808, -0x1.ae427ap-3, INEXACT) +T(RN, 0x1.1ep+7, 0x1.3bcc9487d4439p+815, 0x1.42ae4p-3, INEXACT) +T(RN, 0x1.2p+7, 0x1.60ce8defbf238p+822, 0x1.fc3f56p-2, INEXACT) +T(RN, 0x1.22p+7, 0x1.8ce85fadb707ep+829, -0x1.c438bep-2, INEXACT) +T(RN, 0x1.52p+7, 0x1.7932fa79d3a43p+1004, 0x1.713c88p-4, INEXACT) +T(RN, 0x1.54p+7, 0x1.f2054eb4d96ecp+1011, -0x1.5e1f86p-2, INEXACT) +T(RN, 0x1.56p+7, 0x1.4ab7864418639p+1019, 0x1.bbf88cp-5, INEXACT) +T(RN, 0x1.58p+7, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +// close to poles +T(RN, 0x1p-50, 0x1.ffffffffffffbp+49, -0x1.877304p-2, INEXACT) +T(RN, 0x1p-51, 0x1.ffffffffffffep+50, 0x1.3c467ep-2, INEXACT) +T(RN, 0x1p-52, 0x1.fffffffffffffp+51, 0x1.3c467ep-3, INEXACT) +T(RN, 0x1p-53, 0x1.fffffffffffffp+52, -0x1.b0ee6p-2, INEXACT) +T(RN, 0x1p-54, 0x1p+54, 0x1.2788dp-3, INEXACT) +T(RN, 0x1.000000000001p-1024, 0x1.fffffffffffep+1023, -0x1p-43, INEXACT) +T(RN, -0x1.000000000001p-1024, -0x1.fffffffffffep+1023, 0x1p-43, INEXACT) +T(RN, -0x1p-54, -0x1p+54, 0x1.2788dp-3, INEXACT) +T(RN, -0x1p-53, -0x1p+53, 0x1.2788dp-2, INEXACT) +T(RN, -0x1p-52, -0x1.0000000000001p+52, -0x1.b0ee6p-2, INEXACT) +T(RN, -0x1p-51, -0x1.0000000000001p+51, 0x1.3c467ep-3, INEXACT) +T(RN, -0x1p-50, -0x1.0000000000002p+50, 0x1.3c467ep-2, INEXACT) +T(RN, -0x1.ffffffffffffcp-1, -0x1.0000000000001p+51, -0x1.3c467ep-3, INEXACT) +T(RN, -0x1.ffffffffffffdp-1, -0x1.5555555555556p+51, 0x1.6e642cp-3, INEXACT) +T(RN, -0x1.ffffffffffffep-1, -0x1p+52, 0x1.b0ee6p-2, INEXACT) +T(RN, -0x1.fffffffffffffp-1, -0x1p+53, 0x1.b0ee6p-3, INEXACT) +T(RN, -0x1.0000000000001p+0, 0x1.fffffffffffffp+51, -0x1.3c467ep-3, INEXACT) +T(RN, -0x1.0000000000002p+0, 0x1.ffffffffffffep+50, -0x1.3c467ep-2, INEXACT) +T(RN, -0x1.0000000000003p+0, 0x1.5555555555554p+50, 0x1.6e642cp-2, INEXACT) +T(RN, -0x1.0000000000004p+0, 0x1.ffffffffffffdp+49, 0x1.877304p-2, INEXACT) +T(RN, -0x1.ffffffffffffcp+0, 0x1.0000000000004p+49, 0x1.3c467ep-2, INEXACT) +T(RN, -0x1.ffffffffffffdp+0, 0x1.5555555555559p+49, -0x1.90ed72p-6, INEXACT) +T(RN, -0x1.ffffffffffffep+0, 0x1.0000000000002p+50, 0x1.3c467ep-3, INEXACT) +T(RN, -0x1.fffffffffffffp+0, 0x1.0000000000001p+51, 0x1.3c467ep-4, INEXACT) +T(RN, -0x1.0000000000001p+1, -0x1.ffffffffffffcp+49, 0x1.3c467ep-2, INEXACT) +T(RN, -0x1.0000000000002p+1, -0x1.ffffffffffff9p+48, -0x1.877304p-2, INEXACT) +T(RN, -0x1.0000000000003p+1, -0x1.555555555554ep+48, -0x1.90ed72p-5, INEXACT) +T(RN, -0x1.0000000000004p+1, -0x1.ffffffffffff1p+47, 0x1.e233f2p-3, INEXACT) +T(RN, -0x1.7fffffffffffdp+1, -0x1.c71c71c71c72ap+46, -0x1.4177f6p-3, INEXACT) +T(RN, -0x1.7fffffffffffep+1, -0x1.555555555555cp+47, 0x1.0b48f6p-5, INEXACT) +T(RN, -0x1.7ffffffffffffp+1, -0x1.5555555555559p+48, -0x1.44a0c6p-2, INEXACT) +T(RN, -0x1.5800000000001p+7, -0x1.b98c8c968b7c1p-990, 0x1.970c8ep-3, INEXACT) +T(RN, -0x1.5800000000002p+7, -0x1.b98c8c968b35p-991, 0x1.f3c9bcp-4, INEXACT) +T(RN, -0x1.5800000000003p+7, -0x1.265db30f07495p-991, -0x1.366b9cp-2, INEXACT) +T(RN, -0x1.5800000000004p+7, -0x1.b98c8c968aa6ep-992, -0x1.01aa08p-5, INEXACT) +T(RN, -0x1.59ffffffffffcp+7, -0x1.46b1fa841b485p-999, -0x1.acebdep-5, INEXACT) +T(RN, -0x1.59ffffffffffdp+7, -0x1.b397f8b0241a4p-999, -0x1.9c2ff4p-2, INEXACT) +T(RN, -0x1.59ffffffffffep+7, -0x1.46b1fa841adfp-998, 0x1.cb558ep-2, INEXACT) +T(RN, -0x1.59fffffffffffp+7, -0x1.46b1fa841aaa6p-997, 0x1.979e28p-3, INEXACT) +T(RN, -0x1.5a00000000001p+7, 0x1.46b1fa841a412p-997, 0x1.333de2p-2, INEXACT) +T(RN, -0x1.5bfffffffffffp+7, 0x1.e0a7b14f99fdbp-1005, -0x1.af416ap-2, INEXACT) +T(RN, -0x1.5c00000000001p+7,-0x1.e0a7b14f9962ap-1005, 0x1.42ddc4p-2, INEXACT) +T(RN, -0x1.5dfffffffffffp+7, -0x1.5f90991893bep-1012, 0x1.97c846p-2, INEXACT) +T(RN, -0x1.5e00000000001p+7, 0x1.5f909918934c8p-1012, 0x1.731f2ep-2, INEXACT) +T(RN, -0x1.5ffffffffffffp+7, 0x1.ff5df5f533fd3p-1020, -0x1.f234a4p-2, INEXACT) +T(RN, -0x1.6000000000001p+7,-0x1.ff5df5f53357ep-1020, 0x1.492c4p-6, INEXACT) +T(RN, -0x1.61fffffffffffp+7, -0x1.71cd59a44e18p-1027, 0x1.657fa6p-5, INEXACT|UNDERFLOW) +T(RN, -0x1.6200000000001p+7, 0x1.71cd59a44dap-1027, -0x1.8ce5d8p-3, INEXACT|UNDERFLOW) +T(RN, -0x1.63fffffffffffp+7, 0x1.09ecd608d9p-1034, -0x1.e41c8ep-3, INEXACT|UNDERFLOW) +T(RN, -0x1.6400000000001p+7, -0x1.09ecd608d9p-1034, -0x1.9a7d5ep-4, INEXACT|UNDERFLOW) +T(RN, -0x1.65fffffffffffp+7, -0x1.7c5148fdp-1042, -0x1.3af1cp-4, INEXACT|UNDERFLOW) +T(RN, -0x1.6600000000001p+7, 0x1.7c5148fdp-1042, 0x1.42a7aap-4, INEXACT|UNDERFLOW) +T(RN, -0x1.67fffffffffffp+7, 0x1.0e72b1p-1049, -0x1.dc1df4p-4, INEXACT|UNDERFLOW) +T(RN, -0x1.6800000000001p+7, -0x1.0e72b1p-1049, 0x1.dc12fap-4, INEXACT|UNDERFLOW) +T(RN, -0x1.69fffffffffffp+7, -0x1.7e83p-1057, 0x1.98a6fap-3, INEXACT|UNDERFLOW) +T(RN, -0x1.6a00000000001p+7, 0x1.7e83p-1057, -0x1.98a6f2p-3, INEXACT|UNDERFLOW) +T(RN, -0x1.6bfffffffffffp+7, 0x1.0dp-1064, -0x1.3f914ep-4, INEXACT|UNDERFLOW) +T(RN, -0x1.6c00000000001p+7, -0x1.0dp-1064, 0x1.3f914ep-4, INEXACT|UNDERFLOW) +T(RN, -0x1.6dffffffffffcp+7, -0x1p-1074, 0x1.e1554cp-2, INEXACT|UNDERFLOW) +T(RN, -0x1.6dffffffffffdp+7, -0x1p-1073, -0x1.471cdap-5, INEXACT|UNDERFLOW) +T(RN, -0x1.6dffffffffffep+7, -0x1.8p-1073, -0x1.eaab46p-5, INEXACT|UNDERFLOW) +T(RN, -0x1.6dfffffffffffp+7, -0x1.8p-1072, -0x1.eaab46p-4, INEXACT|UNDERFLOW) +T(RN, -0x1.6e00000000001p+7, 0x1.8p-1072, 0x1.eaab46p-4, INEXACT|UNDERFLOW) +T(RN, -0x1.6e00000000002p+7, 0x1.8p-1073, 0x1.eaab46p-5, INEXACT|UNDERFLOW) +T(RN, -0x1.6e00000000003p+7, 0x1p-1073, 0x1.471cdap-5, INEXACT|UNDERFLOW) +T(RN, -0x1.6e00000000004p+7, 0x1p-1074, -0x1.e1554cp-2, INEXACT|UNDERFLOW) +T(RN, -0x1.6e0000000000bp+7, 0x1p-1074, 0x1.dc9b2ap-2, INEXACT|UNDERFLOW) +T(RN, -0x1.6e0000000000cp+7, 0x0p+0, -0x1.f5c71ap-2, INEXACT|UNDERFLOW) +T(RN, -0x1.6ffffffffffffp+7, 0x0p+0, -0x1.05cc0ep-5, INEXACT|UNDERFLOW) +T(RN, -0x1.7000000000001p+7, -0x0p+0, 0x1.05cc0ep-5, INEXACT|UNDERFLOW) +T(RN, -0x1.9000000000001p+7, -0x0p+0, 0x1.894d44p-127, INEXACT|UNDERFLOW) +T(RN, -0x1.9200000000001p+7, 0x0p+0, -0x1.f4ecp-135, INEXACT|UNDERFLOW) +// (negative) half values +T(RN, 0x1p-1, 0x1.c5bf891b4ef6bp+0, 0x1.618f14p-2, INEXACT) +T(RN, -0x1p-1, -0x1.c5bf891b4ef6bp+1, -0x1.618f14p-2, INEXACT) +T(RN, -0x1.8p+0, 0x1.2e7fb0bcdf4f2p+1, 0x1.d7697p-3, INEXACT) +T(RN, -0x1.4p+1, -0x1.e3ff812e32183p-1, -0x1.58a8b4p-3, INEXACT) +T(RN, -0x1.cp+1, 0x1.149200acaee94p-2, 0x1.89e55ep-4, INEXACT) +T(RN, -0x1.2p+2, -0x1.ebae3a168c495p-5, 0x1.4c8972p-3, INEXACT) +T(RN, -0x1.6p+2, 0x1.6595fbb34ec0fp-7, -0x1.9031fcp-2, INEXACT) +T(RN, -0x1.ap+2, -0x1.b81b0e66884ffp-10, 0x1.003d84p-2, INEXACT) +T(RN, -0x1.ep+2, 0x1.d572317e6f443p-13, -0x1.de1f7cp-2, INEXACT) +T(RN, -0x1.1p+3, -0x1.b9d4e349d2221p-16, 0x1.85c348p-2, INEXACT) +T(RN, -0x1.3p+3, 0x1.741196facbe6dp-19, 0x1.8855b4p-5, INEXACT) +T(RN, -0x1.5p+3, -0x1.1b7b1db2e47f1p-22, 0x1.f30408p-2, INEXACT) +T(RN, -0x1.7p+3, 0x1.8a68825d1162fp-26, 0x1.a2c2bep-2, INEXACT) +T(RN, -0x1.9p+3, -0x1.f8d7b11af788ep-30, -0x1.c617fep-2, INEXACT) +T(RN, -0x1.bp+3, 0x1.2b2a7bea0df24p-33, -0x1.e96d0ap-2, INEXACT) +T(RN, -0x1.dp+3, -0x1.4a1d3948e3405p-37, -0x1.e1c1d6p-5, INEXACT) +T(RN, -0x1.fp+3, 0x1.54c353e824637p-41, 0x1.6773dap-2, INEXACT) +T(RN, -0x1.08p+4, -0x1.4a6fd53e32cdp-45, 0x1.27d98p-3, INEXACT) +T(RN, -0x1.04p+5, -0x1.62f4f602d0132p-119, 0x1.7415ep-3, INEXACT) +T(RN, -0x1.02p+6, -0x1.912276590832ep-298, 0x1.59f79ap-2, INEXACT) +T(RN, -0x1.01p+7, -0x1.fae67dea6e7fap-719, 0x1.317978p-3, INEXACT) +T(RN, -0x1.4fp+7, 0x1.ba80f2ad58fe1p-1000, -0x1.097458p-2, INEXACT) +T(RN, -0x1.51p+7,-0x1.50252eda48291p-1007, 0x1.27d8c2p-2, INEXACT) +T(RN, -0x1.53p+7, 0x1.fbb03aae1cf04p-1015, -0x1.b282acp-3, INEXACT) +T(RN, -0x1.55p+7,-0x1.7d2374dfcda7ap-1022, -0x1.c68fa4p-3, INEXACT) +T(RN, -0x1.57p+7, 0x1.1c7702e43cfp-1029, -0x1.876cep-3, INEXACT|UNDERFLOW) +T(RN, -0x1.59p+7, -0x1.a6299204dp-1037, -0x1.ccc1c8p-3, INEXACT|UNDERFLOW) +T(RN, -0x1.5bp+7, 0x1.37738298p-1044, -0x1.2471f8p-3, INEXACT|UNDERFLOW) +T(RN, -0x1.5dp+7, -0x1.c8ea04p-1052, -0x1.a89b2ep-2, INEXACT|UNDERFLOW) +T(RN, -0x1.5fp+7, 0x1.4d4p-1059, 0x1.14a72cp-2, INEXACT|UNDERFLOW) +T(RN, -0x1.61p+7, -0x1.e4p-1067, -0x1.4c43aap-2, INEXACT|UNDERFLOW) +T(RN, -0x1.63p+7, 0x1p-1074, -0x1.723acp-2, INEXACT|UNDERFLOW) +T(RN, -0x1.65p+7, -0x0p+0, 0x1.f3e44ep-8, INEXACT|UNDERFLOW) +T(RN, -0x1.008p+8, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +// various tests +T(RN, -0x1.facae9c9e7105p+5, 0x1.a98422d742f9fp-291, 0x1.dc5df6p-2, INEXACT) +T(RN, -0x1.fdce012aee935p+6, 0x1.46480e4894aafp-711, -0x1.0c602ap-2, INEXACT) +T(RN, 0x1.1a781948507bcp+7, 0x1.9c3e83141654dp+802, 0x1.09f0d4p-3, INEXACT) +T(RN, -0x1.1a781948507bcp+7, 0x1.50c668ed04665p-808, -0x1.dfe3c6p-3, INEXACT) +T(RN, 0x1.57p+7, 0x1.0e1863dcad789p+1023, -0x1.4a306cp-3, INEXACT) +T(RN, 0x1.573fae561f646p+7, 0x1.ffffffffff92cp+1023, -0x1.d9f23ep-2, INEXACT) +T(RN, 0x1.573fae561f647p+7, 0x1.ffffffffffe51p+1023, 0x1.5b4ff6p-4, INEXACT) +T(RN, 0x1.573fae561f648p+7, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.edd3c07ee0b0bp+6, 0x1.6acf6a2fdfaefp+677, 0x1.4cab56p-2, INEXACT) +T(RN, -0x1.edd3c07ee0b0bp+6, 0x1.28e9bf97c82ep-683, -0x1.064766p-2, INEXACT) +T(RN, 0x1.8b0fcd324d5a2p+3, 0x1.64165e040d97cp+26, 0x1.faf78cp-2, INEXACT) +T(RN, -0x1.8b0fcd324d5a2p+3, -0x1.a77825d8a2292p-29, -0x1.4c75e2p-2, INEXACT) diff --git a/test/musl/src/math/special/tgammaf.h b/test/musl/src/math/special/tgammaf.h new file mode 100644 index 00000000..9c5e3bce --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/tgammal.h b/test/musl/src/math/special/tgammal.h new file mode 100644 index 00000000..2c17ded0 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/trunc.h b/test/musl/src/math/special/trunc.h new file mode 100644 index 00000000..d9b8a5f2 --- /dev/null +++ b/test/musl/src/math/special/trunc.h @@ -0,0 +1,45 @@ +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+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+0, -0x1p+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) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RD, 0x1p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RD, 0x1.0001p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.0001p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.ffffp-1, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1.ffffp-1, -0x0p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-100, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-100, -0x0p+0, 0x0p+0, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RU, 0x1p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1.0001p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.0001p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.ffffp-1, 0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1.ffffp-1, -0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-100, 0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-100, -0x0p+0, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/special/truncf.h b/test/musl/src/math/special/truncf.h new file mode 100644 index 00000000..552acf3e --- /dev/null +++ b/test/musl/src/math/special/truncf.h @@ -0,0 +1,45 @@ +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+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+0, -0x1p+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) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RD, 0x1p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RD, 0x1.0001p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.0001p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.ffffp-1, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1.ffffp-1, -0x0p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-100, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-100, -0x0p+0, 0x0p+0, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RU, 0x1p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1.0001p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.0001p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.ffffp-1, 0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1.ffffp-1, -0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-100, 0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-100, -0x0p+0, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/special/truncl.h b/test/musl/src/math/special/truncl.h new file mode 100644 index 00000000..7c3505a9 --- /dev/null +++ b/test/musl/src/math/special/truncl.h @@ -0,0 +1,45 @@ +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+0L, 0x1p+0L, 0x0p+0, 0) +T(RN, -0x1p+0L, -0x1p+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) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +T(RD, 0x0p+0L, 0x0p+0L, 0x0p+0, 0) +T(RD, -0x0p+0L, -0x0p+0L, 0x0p+0, 0) +T(RD, 0x1p+0L, 0x1p+0L, 0x0p+0, 0) +T(RD, -0x1p+0L, -0x1p+0L, 0x0p+0, 0) +T(RD, 0x1p-1L, 0x0p+0L, 0x0p+0, INEXACT) +T(RD, -0x1p-1L, -0x0p+0L, 0x0p+0, INEXACT) +T(RD, 0x1.0001p+0L, 0x1p+0L, 0x0p+0, INEXACT) +T(RD, -0x1.0001p+0L, -0x1p+0L, 0x0p+0, INEXACT) +T(RD, 0x1.ffffp-1L, 0x0p+0L, 0x0p+0, INEXACT) +T(RD, -0x1.ffffp-1L, -0x0p+0L, 0x0p+0, INEXACT) +T(RD, 0x1p-100L, 0x0p+0L, 0x0p+0, INEXACT) +T(RD, -0x1p-100L, -0x0p+0L, 0x0p+0, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RU, 0x0p+0L, 0x0p+0L, 0x0p+0, 0) +T(RU, -0x0p+0L, -0x0p+0L, 0x0p+0, 0) +T(RU, 0x1p+0L, 0x1p+0L, 0x0p+0, 0) +T(RU, -0x1p+0L, -0x1p+0L, 0x0p+0, 0) +T(RU, 0x1p-1L, 0x0p+0L, 0x0p+0, INEXACT) +T(RU, -0x1p-1L, -0x0p+0L, 0x0p+0, INEXACT) +T(RU, 0x1.0001p+0L, 0x1p+0L, 0x0p+0, INEXACT) +T(RU, -0x1.0001p+0L, -0x1p+0L, 0x0p+0, INEXACT) +T(RU, 0x1.ffffp-1L, 0x0p+0L, 0x0p+0, INEXACT) +T(RU, -0x1.ffffp-1L, -0x0p+0L, 0x0p+0, INEXACT) +T(RU, 0x1p-100L, 0x0p+0L, 0x0p+0, INEXACT) +T(RU, -0x1p-100L, -0x0p+0L, 0x0p+0, INEXACT) diff --git a/test/musl/src/math/special/y0.h b/test/musl/src/math/special/y0.h new file mode 100644 index 00000000..a47c03d5 --- /dev/null +++ b/test/musl/src/math/special/y0.h @@ -0,0 +1,13 @@ +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) +// hard cases +T(RN, 0x1.c982eb8d417eap-1, -0x1.af74bfa0f1304p-56, 0x1.11721cp-2, INEXACT) +T(RN, 0x1.c982eb8d417ebp-1, 0x1.5666419c0f3c9p-54, 0x1.dc02a8p-2, INEXACT) +T(RN, 0x1.fa9534d98569bp+1, 0x1.384a000f3fcecp-53, 0x1.58e17p-6, INEXACT) +T(RN, 0x1.fa9534d98569cp+1, -0x1.8fa8956b4b481p-55, 0x1.54cfbep-2, INEXACT) +T(RN, 0x1.c581dc4e72102p+2, -0x1.14bb186dc408dp-52, -0x1.163cfp-2, INEXACT) +T(RN, 0x1.c581dc4e72103p+2, 0x1.e91b198d39ce2p-56, -0x1.ee1b6ep-2, INEXACT) diff --git a/test/musl/src/math/special/y0f.h b/test/musl/src/math/special/y0f.h new file mode 100644 index 00000000..23ec11c8 --- /dev/null +++ b/test/musl/src/math/special/y0f.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, 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) +T(RN, 0x1.0c4a3ap+0, 0x1.ff138ep-4, -0x1.71585ap-3, INEXACT) +T(RN, 0x1.8ae5d4p-1, -0x1.d88a5ap-4, -0x1.4d601ap-4, INEXACT) +T(RN, 0x1.fa9536p+1, -0x1.da2946p-25, -0x1.88a2bcp-2, INEXACT) diff --git a/test/musl/src/math/special/y1.h b/test/musl/src/math/special/y1.h new file mode 100644 index 00000000..f9267e2b --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/y1f.h b/test/musl/src/math/special/y1f.h new file mode 100644 index 00000000..820bee93 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/yn.h b/test/musl/src/math/special/yn.h new file mode 100644 index 00000000..61ac00b9 --- /dev/null +++ b/test/musl/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/test/musl/src/math/special/ynf.h b/test/musl/src/math/special/ynf.h new file mode 100644 index 00000000..0e3894a8 --- /dev/null +++ b/test/musl/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/test/musl/src/math/sqrt.c b/test/musl/src/math/sqrt.c new file mode 100644 index 00000000..403e2dc7 --- /dev/null +++ b/test/musl/src/math/sqrt.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "ucb/sqrt.h" +#include "sanity/sqrt.h" +#include "special/sqrt.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = sqrt(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s sqrt(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s sqrt(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/sqrtf.c b/test/musl/src/math/sqrtf.c new file mode 100644 index 00000000..8e8f8fe2 --- /dev/null +++ b/test/musl/src/math/sqrtf.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "ucb/sqrtf.h" +#include "sanity/sqrtf.h" +#include "special/sqrtf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = sqrtf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s sqrtf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s sqrtf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/sqrtl.c b/test/musl/src/math/sqrtl.c new file mode 100644 index 00000000..ab59cc85 --- /dev/null +++ b/test/musl/src/math/sqrtl.c @@ -0,0 +1,50 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = sqrtl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s sqrtl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s sqrtl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/tan.c b/test/musl/src/math/tan.c new file mode 100644 index 00000000..d4349715 --- /dev/null +++ b/test/musl/src/math/tan.c @@ -0,0 +1,48 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +// #include "crlibm/tan.h" +#include "ucb/tan.h" +#include "sanity/tan.h" +#include "special/tan.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = tan(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s tan(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + if (p->r != RN) + printf("X "); + else + err++; + printf("%s:%d: %s tan(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + } + } + return !!err; +} diff --git a/test/musl/src/math/tanf.c b/test/musl/src/math/tanf.c new file mode 100644 index 00000000..1e847763 --- /dev/null +++ b/test/musl/src/math/tanf.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "ucb/tanf.h" +#include "sanity/tanf.h" +#include "special/tanf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = tanf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s tanf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s tanf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/tanh.c b/test/musl/src/math/tanh.c new file mode 100644 index 00000000..df172adb --- /dev/null +++ b/test/musl/src/math/tanh.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "ucb/tanh.h" +#include "sanity/tanh.h" +#include "special/tanh.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = tanh(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s tanh(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s tanh(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/tanhf.c b/test/musl/src/math/tanhf.c new file mode 100644 index 00000000..67724274 --- /dev/null +++ b/test/musl/src/math/tanhf.c @@ -0,0 +1,44 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "ucb/tanhf.h" +#include "sanity/tanhf.h" +#include "special/tanhf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = tanhf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s tanhf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s tanhf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/tanhl.c b/test/musl/src/math/tanhl.c new file mode 100644 index 00000000..4288836e --- /dev/null +++ b/test/musl/src/math/tanhl.c @@ -0,0 +1,50 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = tanhl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s tanhl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s tanhl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/tanl.c b/test/musl/src/math/tanl.c new file mode 100644 index 00000000..4d74dc2c --- /dev/null +++ b/test/musl/src/math/tanl.c @@ -0,0 +1,51 @@ +#include +#include +#include "mtest.h" + +static struct l_l t[] = { +#if LDBL_MANT_DIG == 53 +// #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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = tanl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s tanl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s tanl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/tgamma.c b/test/musl/src/math/tgamma.c new file mode 100644 index 00000000..6f69baed --- /dev/null +++ b/test/musl/src/math/tgamma.c @@ -0,0 +1,46 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "sanity/tgamma.h" +#include "special/tgamma.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = tgamma(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s tgamma(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + if (fabsf(d) < 5.5f) + printf("X "); + else + err++; + printf("%s:%d: %s tgamma(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + } + } + return !!err; +} diff --git a/test/musl/src/math/tgammaf.c b/test/musl/src/math/tgammaf.c new file mode 100644 index 00000000..c1e95071 --- /dev/null +++ b/test/musl/src/math/tgammaf.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "sanity/tgammaf.h" +#include "special/tgammaf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = tgammaf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s tgammaf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkulp(d, p->r)) { + printf("%s:%d: %s tgammaf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/tgammal.c b/test/musl/src/math/tgammal.c new file mode 100644 index 00000000..3ec92600 --- /dev/null +++ b/test/musl/src/math/tgammal.c @@ -0,0 +1,50 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = tgammal(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s tgammal(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + // TODO: 2 ulp errors allowed + if (p->r==RN && fabs(d)>2) { + printf("%s:%d: %s tgammal(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/trunc.c b/test/musl/src/math/trunc.c new file mode 100644 index 00000000..e861947a --- /dev/null +++ b/test/musl/src/math/trunc.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "sanity/trunc.h" +#include "special/trunc.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = trunc(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r) && (e|INEXACT) != p->e) { + printf("%s:%d: bad fp exception: %s trunc(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s trunc(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/truncf.c b/test/musl/src/math/truncf.c new file mode 100644 index 00000000..657f2fc5 --- /dev/null +++ b/test/musl/src/math/truncf.c @@ -0,0 +1,43 @@ +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "sanity/truncf.h" +#include "special/truncf.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = truncf(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r) && (e|INEXACT) != p->e) { + printf("%s:%d: bad fp exception: %s truncf(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s truncf(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/truncl.c b/test/musl/src/math/truncl.c new file mode 100644 index 00000000..f0e8f0cc --- /dev/null +++ b/test/musl/src/math/truncl.c @@ -0,0 +1,49 @@ +#include +#include +#include "mtest.h" + +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 +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + long double y; + float d; + int e, i, err = 0; + struct l_l *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = truncl(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexceptall(e, p->e, p->r) && (e|INEXACT) != p->e) { + printf("%s:%d: bad fp exception: %s truncl(%La)=%La, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrl(y, p->y, p->dy); + if (!checkcr(y, p->y, p->r)) { + printf("%s:%d: %s truncl(%La) want %La got %La ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/ucb/README b/test/musl/src/math/ucb/README new file mode 100644 index 00000000..a2c67b5a --- /dev/null +++ b/test/musl/src/math/ucb/README @@ -0,0 +1,7 @@ +test vectors from ucbtest/ucblib +http://www.netlib.org/fp/ucbtest.tgz + +format is changed, but original comments are kept + +some of the test outputs are changed to be +correctly rounded and follow c99 annex F. diff --git a/test/musl/src/math/ucb/acos.h b/test/musl/src/math/ucb/acos.h new file mode 100644 index 00000000..c0706bf1 --- /dev/null +++ b/test/musl/src/math/ucb/acos.h @@ -0,0 +1,189 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// acosd(+-1) is 0,pi +T(RN, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p+0, 0x1.921fb54442d18p+1, -0x1.1a6264p-2, INEXACT) +// acosd(+-(1 - tiny)) :=: sqrt(2*tiny) or pi-sqrt(2*tiny) +T(RN, 0x1.fffffffffffffp-1, 0x1p-26, -0x1.555556p-5, INEXACT) +T(RZ, 0x1.fffffffffffffp-1, 0x1p-26, -0x1.555556p-5, INEXACT) +T(RU, 0x1.fffffffffffffp-1, 0x1.0000000000001p-26, 0x1.eaaaaap-1, INEXACT) +T(RD, 0x1.fffffffffffffp-1, 0x1p-26, -0x1.555556p-5, INEXACT) +T(RN, -0x1.fffffffffffffp-1, 0x1.921fb52442d18p+1, -0x1.1a6264p-2, INEXACT) +T(RZ, -0x1.fffffffffffffp-1, 0x1.921fb52442d18p+1, -0x1.1a6264p-2, INEXACT) +T(RU, -0x1.fffffffffffffp-1, 0x1.921fb52442d19p+1, 0x1.72cecep-1, INEXACT) +T(RD, -0x1.fffffffffffffp-1, 0x1.921fb52442d18p+1, -0x1.1a6264p-2, INEXACT) +// acosd(tiny) = pi/2-tiny +T(RN, 0x1p-44, 0x1.921fb54442c18p+0, -0x1.1a6264p-2, INEXACT) +T(RN, -0x1p-44, 0x1.921fb54442e18p+0, -0x1.1a6264p-2, INEXACT) +T(RN, 0x1p-67, 0x1.921fb54442d18p+0, -0x1.1a5a64p-2, INEXACT) +T(RN, -0x1p-67, 0x1.921fb54442d18p+0, -0x1.1a6a64p-2, INEXACT) +T(RN, 0x1p-1022, 0x1.921fb54442d18p+0, -0x1.1a6264p-2, INEXACT) +T(RN, -0x1p-1022, 0x1.921fb54442d18p+0, -0x1.1a6264p-2, INEXACT) +T(RN, 0x0p+0, 0x1.921fb54442d18p+0, -0x1.1a6264p-2, INEXACT) +// some random number between -1 and 1 +T(RN, -0x1.13284b2b5006dp-2, 0x1.d7c4e61020905p+0, -0x1.25171ap-2, INEXACT) +T(RN, 0x1.6ca8dfb825911p-1, 0x1.8e6756e27c366p-1, 0x1.4928b8p-4, INEXACT) +T(RN, 0x1.c2ca609de7505p-1, 0x1.f9d748eaf956p-2, 0x1.c4a6d2p-4, INEXACT) +T(RN, -0x1.55f11fba96889p-1, 0x1.26abdc68d07aap+1, -0x1.6d356ep-4, INEXACT) +T(RN, -0x1.15679e27084ddp-2, 0x1.d85a44ea44fe4p+0, 0x1.7c88dep-4, INEXACT) +T(RN, -0x1.41e131b093c41p-5, 0x1.9c2f688eee8abp+0, 0x1.6e23dap-3, INEXACT) +T(RN, 0x1.281b0d18455f5p-1, 0x1.e881b1d4eb2a1p-1, -0x1.fb853ep-2, INEXACT) +T(RN, 0x1.b5ce34a51b239p-1, 0x1.1713f567a87efp-1, -0x1.bf1bf6p-2, INEXACT) +T(RN, -0x1.583481079de4dp-3, 0x1.bd5acbe8fcc59p+0, -0x1.5e7314p-5, INEXACT) +T(RN, -0x1.ea8223103b871p-1, 0x1.6ce7d66f628e5p+1, 0x1.b5a774p-6, INEXACT) +T(RZ, -0x1.13284b2b5006dp-2, 0x1.d7c4e61020905p+0, -0x1.25171ap-2, INEXACT) +T(RZ, 0x1.6ca8dfb825911p-1, 0x1.8e6756e27c365p-1, -0x1.d6daeap-1, INEXACT) +T(RZ, 0x1.c2ca609de7505p-1, 0x1.f9d748eaf955fp-2, -0x1.c76b26p-1, INEXACT) +T(RZ, -0x1.55f11fba96889p-1, 0x1.26abdc68d07aap+1, -0x1.6d356ep-4, INEXACT) +T(RZ, -0x1.15679e27084ddp-2, 0x1.d85a44ea44fe3p+0, -0x1.d06ee4p-1, INEXACT) +T(RZ, -0x1.41e131b093c41p-5, 0x1.9c2f688eee8aap+0, -0x1.a4770ap-1, INEXACT) +T(RZ, 0x1.281b0d18455f5p-1, 0x1.e881b1d4eb2a1p-1, -0x1.fb853ep-2, INEXACT) +T(RZ, 0x1.b5ce34a51b239p-1, 0x1.1713f567a87efp-1, -0x1.bf1bf6p-2, INEXACT) +T(RZ, -0x1.583481079de4dp-3, 0x1.bd5acbe8fcc59p+0, -0x1.5e7314p-5, INEXACT) +T(RZ, -0x1.ea8223103b871p-1, 0x1.6ce7d66f628e4p+1, -0x1.f252c4p-1, INEXACT) +T(RU, -0x1.13284b2b5006dp-2, 0x1.d7c4e61020906p+0, 0x1.6d7472p-1, INEXACT) +T(RU, 0x1.6ca8dfb825911p-1, 0x1.8e6756e27c366p-1, 0x1.4928b8p-4, INEXACT) +T(RU, 0x1.c2ca609de7505p-1, 0x1.f9d748eaf956p-2, 0x1.c4a6d2p-4, INEXACT) +T(RU, -0x1.55f11fba96889p-1, 0x1.26abdc68d07abp+1, 0x1.d25952p-1, INEXACT) +T(RU, -0x1.15679e27084ddp-2, 0x1.d85a44ea44fe4p+0, 0x1.7c88dep-4, INEXACT) +T(RU, -0x1.41e131b093c41p-5, 0x1.9c2f688eee8abp+0, 0x1.6e23dap-3, INEXACT) +T(RU, 0x1.281b0d18455f5p-1, 0x1.e881b1d4eb2a2p-1, 0x1.023d6p-1, INEXACT) +T(RU, 0x1.b5ce34a51b239p-1, 0x1.1713f567a87fp-1, 0x1.207206p-1, INEXACT) +T(RU, -0x1.583481079de4dp-3, 0x1.bd5acbe8fcc5ap+0, 0x1.ea18cep-1, INEXACT) +T(RU, -0x1.ea8223103b871p-1, 0x1.6ce7d66f628e5p+1, 0x1.b5a774p-6, INEXACT) +T(RD, -0x1.13284b2b5006dp-2, 0x1.d7c4e61020905p+0, -0x1.25171ap-2, INEXACT) +T(RD, 0x1.6ca8dfb825911p-1, 0x1.8e6756e27c365p-1, -0x1.d6daeap-1, INEXACT) +T(RD, 0x1.c2ca609de7505p-1, 0x1.f9d748eaf955fp-2, -0x1.c76b26p-1, INEXACT) +T(RD, -0x1.55f11fba96889p-1, 0x1.26abdc68d07aap+1, -0x1.6d356ep-4, INEXACT) +T(RD, -0x1.15679e27084ddp-2, 0x1.d85a44ea44fe3p+0, -0x1.d06ee4p-1, INEXACT) +T(RD, -0x1.41e131b093c41p-5, 0x1.9c2f688eee8aap+0, -0x1.a4770ap-1, INEXACT) +T(RD, 0x1.281b0d18455f5p-1, 0x1.e881b1d4eb2a1p-1, -0x1.fb853ep-2, INEXACT) +T(RD, 0x1.b5ce34a51b239p-1, 0x1.1713f567a87efp-1, -0x1.bf1bf6p-2, INEXACT) +T(RD, -0x1.583481079de4dp-3, 0x1.bd5acbe8fcc59p+0, -0x1.5e7314p-5, INEXACT) +T(RD, -0x1.ea8223103b871p-1, 0x1.6ce7d66f628e4p+1, -0x1.f252c4p-1, INEXACT) +// exception cases +T(RN, 0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RU, 0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RD, 0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RN, 0x1p+1, nan, 0x0p+0, INVALID) +T(RN, 0x1.0000000000001p+16, nan, 0x0p+0, INVALID) +T(RN, -0x1.fffffffffffffp+16, nan, 0x0p+0, INVALID) +T(RN, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RD, 0x1p+1, nan, 0x0p+0, INVALID) +T(RD, 0x1p+2, nan, 0x0p+0, INVALID) +T(RD, 0x1p+1022, nan, 0x0p+0, INVALID) +T(RD, 0x1p+1023, nan, 0x0p+0, INVALID) +T(RD, 0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RD, 0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RD, inf, nan, 0x0p+0, INVALID) +T(RD, -0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1p+1, nan, 0x0p+0, INVALID) +T(RD, -0x1p+2, nan, 0x0p+0, INVALID) +T(RD, -0x1p+1022, nan, 0x0p+0, INVALID) +T(RD, -0x1p+1023, nan, 0x0p+0, INVALID) +T(RD,-0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RD, -inf, nan, 0x0p+0, INVALID) +T(RD, 0x1.ffffffffffffp-1, 0x1p-24, -0x1.555556p-1, INEXACT) +T(RN, 0x1.ffffffffffffp-1, 0x1.0000000000001p-24, 0x1.555556p-2, INEXACT) +T(RN, 0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RN, 0x1p+2, nan, 0x0p+0, INVALID) +T(RN, 0x1p+1022, nan, 0x0p+0, INVALID) +T(RN, 0x1p+1023, nan, 0x0p+0, INVALID) +T(RN, 0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RN, 0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RN, inf, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1p+2, nan, 0x0p+0, INVALID) +T(RN, -0x1p+1022, nan, 0x0p+0, INVALID) +T(RN, -0x1p+1023, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RN, -inf, nan, 0x0p+0, INVALID) +T(RU, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RU, 0x1p+1, nan, 0x0p+0, INVALID) +T(RU, 0x1p+2, nan, 0x0p+0, INVALID) +T(RU, 0x1p+1022, nan, 0x0p+0, INVALID) +T(RU, 0x1p+1023, nan, 0x0p+0, INVALID) +T(RU, 0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RU, 0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RU, inf, nan, 0x0p+0, INVALID) +T(RU, -0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1p+1, nan, 0x0p+0, INVALID) +T(RU, -0x1p+2, nan, 0x0p+0, INVALID) +T(RU, -0x1p+1022, nan, 0x0p+0, INVALID) +T(RU, -0x1p+1023, nan, 0x0p+0, INVALID) +T(RU,-0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RU, -inf, nan, 0x0p+0, INVALID) +T(RU, 0x1.fffffffffffe7p-1, 0x1.4000000000002p-24, 0x1.655556p-1, INEXACT) +T(RU, 0x1.ffffffffffffp-1, 0x1.0000000000001p-24, 0x1.555556p-2, INEXACT) +T(RZ, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x1p+1, nan, 0x0p+0, INVALID) +T(RZ, 0x1p+2, nan, 0x0p+0, INVALID) +T(RZ, 0x1p+1022, nan, 0x0p+0, INVALID) +T(RZ, 0x1p+1023, nan, 0x0p+0, INVALID) +T(RZ, 0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RZ, 0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RZ, inf, nan, 0x0p+0, INVALID) +T(RZ, -0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+1, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+2, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+1022, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+1023, nan, 0x0p+0, INVALID) +T(RZ,-0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RZ, -inf, nan, 0x0p+0, INVALID) +T(RZ, 0x1.fffffffffffe7p-1, 0x1.4000000000001p-24, -0x1.355556p-2, INEXACT) +T(RZ, 0x1.ffffffffffffp-1, 0x1p-24, -0x1.555556p-1, INEXACT) diff --git a/test/musl/src/math/ucb/acosf.h b/test/musl/src/math/ucb/acosf.h new file mode 100644 index 00000000..8acf37e3 --- /dev/null +++ b/test/musl/src/math/ucb/acosf.h @@ -0,0 +1,155 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// acoss(+-1) is 0,pi +T(RN, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p+0, 0x1.921fb6p+1, 0x1.777a5cp-2, INEXACT) +// acoss(+-(1 - tiny)) :=: sqrt(2*tiny) or pi-sqrt(2*tiny) +T(RN, 0x1.fffffcp-1, 0x1p-11, -0x1.555556p-4, INEXACT) +T(RZ, 0x1.fffffcp-1, 0x1p-11, -0x1.555556p-4, INEXACT) +T(RU, 0x1.fffffcp-1, 0x1.000002p-11, 0x1.d55556p-1, INEXACT) +T(RD, 0x1.fffffcp-1, 0x1p-11, -0x1.555556p-4, INEXACT) +T(RN, -0x1.fffffcp-1, 0x1.920fb6p+1, 0x1.777fb2p-2, INEXACT) +T(RZ, -0x1.fffffcp-1, 0x1.920fb4p+1, -0x1.444026p-1, INEXACT) +T(RU, -0x1.fffffcp-1, 0x1.920fb6p+1, 0x1.777fb2p-2, INEXACT) +T(RD, -0x1.fffffcp-1, 0x1.920fb4p+1, -0x1.444026p-1, INEXACT) +// acoss(tiny) = pi/2-tiny +T(RN, 0x1p-15, 0x1.921db6p+0, 0x1.777a6p-2, INEXACT) +T(RN, -0x1p-15, 0x1.9221b6p+0, 0x1.777a5ap-2, INEXACT) +T(RN, 0x1p-29, 0x1.921fb6p+0, 0x1.877a5cp-2, INEXACT) +T(RN, -0x1p-29, 0x1.921fb6p+0, 0x1.677a5cp-2, INEXACT) +T(RN, 0x1p-126, 0x1.921fb6p+0, 0x1.777a5cp-2, INEXACT) +T(RN, -0x1p-126, 0x1.921fb6p+0, 0x1.777a5cp-2, INEXACT) +T(RN, 0x0p+0, 0x1.921fb6p+0, 0x1.777a5cp-2, INEXACT) +// some random number between -1 and 1 +T(RN, -0x1.13284cp-2, 0x1.d7c4e6p+0, -0x1.1d5134p-3, INEXACT) +T(RN, 0x1.6ca8ep-1, 0x1.8e6756p-1, -0x1.f07dd8p-3, INEXACT) +T(RN, 0x1.c2ca6p-1, 0x1.f9d74cp-2, 0x1.ebd7f8p-3, INEXACT) +T(RN, -0x1.55f12p-1, 0x1.26abdcp+1, -0x1.004222p-2, INEXACT) +T(RN, -0x1.15679ep-2, 0x1.d85a44p+0, -0x1.c043c2p-2, INEXACT) +T(RN, -0x1.41e132p-5, 0x1.9c2f68p+0, -0x1.22d4d4p-2, INEXACT) +T(RN, 0x1.281b0ep-1, 0x1.e881bp-1, -0x1.71bc6ep-2, INEXACT) +T(RN, 0x1.b5ce34p-1, 0x1.1713f6p-1, -0x1.4c3306p-2, INEXACT) +T(RN, -0x1.583482p-3, 0x1.bd5accp+0, -0x1.0f775p-6, INEXACT) +T(RN, -0x1.ea8224p-1, 0x1.6ce7d8p+1, 0x1.7f0fbcp-2, INEXACT) +// exception cases +T(RN, 0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RU, 0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RD, 0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RN, 0x1p+1, nan, 0x0p+0, INVALID) +T(RN, 0x1.e00002p+2, nan, 0x0p+0, INVALID) +T(RN, -0x1.fffffep+2, nan, 0x0p+0, INVALID) +T(RN, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RD, 0x1p+1, nan, 0x0p+0, INVALID) +T(RD, 0x1p+2, nan, 0x0p+0, INVALID) +T(RD, 0x1p+126, nan, 0x0p+0, INVALID) +T(RD, 0x1p+127, nan, 0x0p+0, INVALID) +T(RD, 0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RD, 0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RD, inf, nan, 0x0p+0, INVALID) +T(RD, -0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1p+1, nan, 0x0p+0, INVALID) +T(RD, -0x1p+2, nan, 0x0p+0, INVALID) +T(RD, -0x1p+126, nan, 0x0p+0, INVALID) +T(RD, -0x1p+127, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RD, -inf, nan, 0x0p+0, INVALID) +T(RN, 0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RN, 0x1p+2, nan, 0x0p+0, INVALID) +T(RN, 0x1p+126, nan, 0x0p+0, INVALID) +T(RN, 0x1p+127, nan, 0x0p+0, INVALID) +T(RN, 0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RN, 0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RN, inf, nan, 0x0p+0, INVALID) +T(RN, -0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1p+2, nan, 0x0p+0, INVALID) +T(RN, -0x1p+126, nan, 0x0p+0, INVALID) +T(RN, -0x1p+127, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RN, -inf, nan, 0x0p+0, INVALID) +T(RU, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RU, 0x1p+1, nan, 0x0p+0, INVALID) +T(RU, 0x1p+2, nan, 0x0p+0, INVALID) +T(RU, 0x1p+126, nan, 0x0p+0, INVALID) +T(RU, 0x1p+127, nan, 0x0p+0, INVALID) +T(RU, 0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RU, 0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RU, inf, nan, 0x0p+0, INVALID) +T(RU, -0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1p+1, nan, 0x0p+0, INVALID) +T(RU, -0x1p+2, nan, 0x0p+0, INVALID) +T(RU, -0x1p+126, nan, 0x0p+0, INVALID) +T(RU, -0x1p+127, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RU, -inf, nan, 0x0p+0, INVALID) +T(RU, 0x1.fffffp-1, 0x1.000002p-10, 0x1.555554p-1, INEXACT) +T(RZ, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x1p+1, nan, 0x0p+0, INVALID) +T(RZ, 0x1p+2, nan, 0x0p+0, INVALID) +T(RZ, 0x1p+126, nan, 0x0p+0, INVALID) +T(RZ, 0x1p+127, nan, 0x0p+0, INVALID) +T(RZ, 0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RZ, 0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RZ, inf, nan, 0x0p+0, INVALID) +T(RZ, -0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+1, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+2, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+126, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+127, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RZ, -inf, nan, 0x0p+0, INVALID) +T(RZ, 0x1.fffffp-1, 0x1p-10, -0x1.555558p-2, INEXACT) diff --git a/test/musl/src/math/ucb/asin.h b/test/musl/src/math/ucb/asin.h new file mode 100644 index 00000000..eafc3981 --- /dev/null +++ b/test/musl/src/math/ucb/asin.h @@ -0,0 +1,242 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// asind(+-1) is +-pi/2 +T(RN, 0x1p+0, 0x1.921fb54442d18p+0, -0x1.1a6264p-2, INEXACT) +T(RN, -0x1p+0, -0x1.921fb54442d18p+0, 0x1.1a6264p-2, INEXACT) +// asind(+-(1 - tiny)) :=: +-(pi/2-sqrt(2*tiny)) +T(RN, 0x1.fffffffffffffp-1, 0x1.921fb50442d18p+0, -0x1.1a6264p-2, INEXACT) +T(RN, -0x1.fffffffffffffp-1, -0x1.921fb50442d18p+0, 0x1.1a6264p-2, INEXACT) +T(RZ, 0x1.fffffffffffffp-1, 0x1.921fb50442d18p+0, -0x1.1a6264p-2, INEXACT) +T(RZ, -0x1.fffffffffffffp-1, -0x1.921fb50442d18p+0, 0x1.1a6264p-2, INEXACT) +T(RU, 0x1.fffffffffffffp-1, 0x1.921fb50442d19p+0, 0x1.72cecep-1, INEXACT) +T(RU, -0x1.fffffffffffffp-1, -0x1.921fb50442d18p+0, 0x1.1a6264p-2, INEXACT) +T(RD, 0x1.fffffffffffffp-1, 0x1.921fb50442d18p+0, -0x1.1a6264p-2, INEXACT) +T(RD, -0x1.fffffffffffffp-1, -0x1.921fb50442d19p+0, -0x1.72cecep-1, INEXACT) +// asind(tiny) is tiny (only in nearest mode) +T(RN, 0x1p-30, 0x1p-30, -0x1.555556p-11, INEXACT) +T(RN, -0x1p-30, -0x1p-30, 0x1.555556p-11, INEXACT) +T(RN, 0x1p-1022, 0x1p-1022, 0x0p+0, INEXACT) +T(RN, -0x1p-1022, -0x1p-1022, 0x0p+0, INEXACT) +// asind(+-0) is +-0 +T(RN, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +// random arguments between -1 and 1 +T(RN, -0x1.13284b2b5006dp-2, -0x1.1694c32f76fb4p-2, 0x1.5696f2p-5, INEXACT) +T(RN, 0x1.6ca8dfb825911p-1, 0x1.95d813a6096cbp-1, 0x1.78f10cp-2, INEXACT) +T(RN, 0x1.c2ca609de7505p-1, 0x1.13a9e309847cp+0, -0x1.36acdp-2, INEXACT) +T(RN, -0x1.55f11fba96889p-1, -0x1.7670071abc478p-1, -0x1.8f1eb2p-3, INEXACT) +T(RN, -0x1.15679e27084ddp-2, -0x1.18ea3e9808b2fp-2, -0x1.e6126ap-2, INEXACT) +T(RN, -0x1.41e131b093c41p-5, -0x1.41f6695577251p-5, 0x1.d176p-2, INEXACT) +T(RN, 0x1.281b0d18455f5p-1, 0x1.3bbdb8b39a78fp-1, -0x1.c9fc3ep-5, INEXACT) +T(RN, 0x1.b5ce34a51b239p-1, 0x1.0695ba906e921p+0, 0x1.c52b98p-2, INEXACT) +T(RN, -0x1.583481079de4dp-3, -0x1.59d8b525cfa06p-3, 0x1.16bff4p-3, INEXACT) +T(RN, -0x1.ea8223103b871p-1, -0x1.47aff79a824b2p+0, -0x1.511752p-2, INEXACT) +// exception cases +T(RN, 0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RU, 0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RD, 0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RN, 0x1p+1, nan, 0x0p+0, INVALID) +T(RN, 0x1.0000000000001p+16, nan, 0x0p+0, INVALID) +T(RN, -0x1.fffffffffffffp+16, nan, 0x0p+0, INVALID) +T(RN, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, 0x1.0000000000001p-1022, 0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RD, 0x1.0000000000002p-1022, 0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RD, 0x1p-1021, 0x1p-1021, 0x0p+0, INEXACT) +T(RD, 0x1p-1020, 0x1p-1020, 0x0p+0, INEXACT) +T(RD,-0x1.0000000000001p-1022,-0x1.0000000000002p-1022, -0x1p+0, INEXACT) +T(RD,-0x1.0000000000002p-1022,-0x1.0000000000003p-1022, -0x1p+0, INEXACT) +T(RD, -0x1p-1021,-0x1.0000000000001p-1021, -0x1p+0, INEXACT) +T(RD, -0x1p-1020,-0x1.0000000000001p-1020, -0x1p+0, INEXACT) +T(RD, 0x1p-1074, 0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1073, 0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1024, 0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1023, 0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1022, 0x1p-1022, 0x0p+0, INEXACT) +T(RD, -0x1p-1074, -0x1p-1073, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1073, -0x1.8p-1073, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1024,-0x1.0000000000004p-1024, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1023,-0x1.0000000000002p-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffep-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.ffffffffffffep-1023, -0x1p-1022, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1022,-0x1.0000000000001p-1022, -0x1p+0, INEXACT) +T(RD, 0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RD, 0x1p+1, nan, 0x0p+0, INVALID) +T(RD, 0x1p+2, nan, 0x0p+0, INVALID) +T(RD, 0x1p+1022, nan, 0x0p+0, INVALID) +T(RD, 0x1p+1023, nan, 0x0p+0, INVALID) +T(RD, 0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RD, 0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RD, inf, nan, 0x0p+0, INVALID) +T(RD, -0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1p+1, nan, 0x0p+0, INVALID) +T(RD, -0x1p+2, nan, 0x0p+0, INVALID) +T(RD, -0x1p+1022, nan, 0x0p+0, INVALID) +T(RD, -0x1p+1023, nan, 0x0p+0, INVALID) +T(RD,-0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RD, -inf, nan, 0x0p+0, INVALID) +T(RN, 0x1.0000000000001p-1022, 0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000002p-1022, 0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RN, 0x1p-1021, 0x1p-1021, 0x0p+0, INEXACT) +T(RN, 0x1p-1020, 0x1p-1020, 0x0p+0, INEXACT) +T(RN,-0x1.0000000000001p-1022,-0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RN,-0x1.0000000000002p-1022,-0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RN, -0x1p-1021, -0x1p-1021, 0x0p+0, INEXACT) +T(RN, -0x1p-1020, -0x1p-1020, 0x0p+0, INEXACT) +T(RN, 0x1p-1074, 0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1073, 0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1024, 0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1023, 0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1074, -0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1073, -0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1024, -0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1023, -0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffffffffffep-1023,-0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RN, 0x1p+2, nan, 0x0p+0, INVALID) +T(RN, 0x1p+1022, nan, 0x0p+0, INVALID) +T(RN, 0x1p+1023, nan, 0x0p+0, INVALID) +T(RN, 0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RN, 0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RN, inf, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1p+2, nan, 0x0p+0, INVALID) +T(RN, -0x1p+1022, nan, 0x0p+0, INVALID) +T(RN, -0x1p+1023, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RN, -inf, nan, 0x0p+0, INVALID) +T(RU, 0x1.0000000000001p-1022, 0x1.0000000000002p-1022, 0x1p+0, INEXACT) +T(RU, 0x1.0000000000002p-1022, 0x1.0000000000003p-1022, 0x1p+0, INEXACT) +T(RU, 0x1p-1021, 0x1.0000000000001p-1021, 0x1p+0, INEXACT) +T(RU, 0x1p-1020, 0x1.0000000000001p-1020, 0x1p+0, INEXACT) +T(RU,-0x1.0000000000001p-1022,-0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RU,-0x1.0000000000002p-1022,-0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RU, -0x1p-1021, -0x1p-1021, 0x0p+0, INEXACT) +T(RU, -0x1p-1020, -0x1p-1020, 0x0p+0, INEXACT) +T(RU, 0x1p-1074, 0x1p-1073, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1073, 0x1.8p-1073, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1024, 0x1.0000000000004p-1024, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1023, 0x1.0000000000002p-1023, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffep-1023, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.ffffffffffffep-1023, 0x1p-1022, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1022, 0x1.0000000000001p-1022, 0x1p+0, INEXACT) +T(RU, -0x1p-1074, -0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1073, -0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1024, -0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1023, -0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.ffffffffffffep-1023,-0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1022, -0x1p-1022, 0x0p+0, INEXACT) +T(RU, 0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RU, 0x1p+1, nan, 0x0p+0, INVALID) +T(RU, 0x1p+2, nan, 0x0p+0, INVALID) +T(RU, 0x1p+1022, nan, 0x0p+0, INVALID) +T(RU, 0x1p+1023, nan, 0x0p+0, INVALID) +T(RU, 0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RU, 0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RU, inf, nan, 0x0p+0, INVALID) +T(RU, -0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1p+1, nan, 0x0p+0, INVALID) +T(RU, -0x1p+2, nan, 0x0p+0, INVALID) +T(RU, -0x1p+1022, nan, 0x0p+0, INVALID) +T(RU, -0x1p+1023, nan, 0x0p+0, INVALID) +T(RU,-0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RU, -inf, nan, 0x0p+0, INVALID) +T(RZ, 0x1.0000000000001p-1022, 0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RZ, 0x1.0000000000002p-1022, 0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RZ, 0x1p-1021, 0x1p-1021, 0x0p+0, INEXACT) +T(RZ, 0x1p-1020, 0x1p-1020, 0x0p+0, INEXACT) +T(RZ,-0x1.0000000000001p-1022,-0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RZ,-0x1.0000000000002p-1022,-0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RZ, -0x1p-1021, -0x1p-1021, 0x0p+0, INEXACT) +T(RZ, -0x1p-1020, -0x1p-1020, 0x0p+0, INEXACT) +T(RZ, 0x1p-1074, 0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1073, 0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1024, 0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1023, 0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1022, 0x1p-1022, 0x0p+0, INEXACT) +T(RZ, -0x1p-1074, -0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1073, -0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1024, -0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1023, -0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.ffffffffffffep-1023,-0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1022, -0x1p-1022, 0x0p+0, INEXACT) +T(RZ, 0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x1p+1, nan, 0x0p+0, INVALID) +T(RZ, 0x1p+2, nan, 0x0p+0, INVALID) +T(RZ, 0x1p+1022, nan, 0x0p+0, INVALID) +T(RZ, 0x1p+1023, nan, 0x0p+0, INVALID) +T(RZ, 0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RZ, 0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RZ, inf, nan, 0x0p+0, INVALID) +T(RZ, -0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+1, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+2, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+1022, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+1023, nan, 0x0p+0, INVALID) +T(RZ,-0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RZ, -inf, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/ucb/asinf.h b/test/musl/src/math/ucb/asinf.h new file mode 100644 index 00000000..6792ef36 --- /dev/null +++ b/test/musl/src/math/ucb/asinf.h @@ -0,0 +1,274 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// asins(+-1) is +-pi/2 +T(RN, 0x1p+0, 0x1.921fb6p+0, 0x1.777a5cp-2, INEXACT) +T(RN, -0x1p+0, -0x1.921fb6p+0, -0x1.777a5cp-2, INEXACT) +// asins(+-(1 - tiny)) :=: +-(pi/2-sqrt(2*tiny)) +T(RN, 0x1.fffffep-1, 0x1.920914p+0, -0x1.4bb4ep-2, INEXACT) +T(RN, -0x1.fffffep-1, -0x1.920914p+0, 0x1.4bb4ep-2, INEXACT) +T(RZ, 0x1.fffffep-1, 0x1.920914p+0, -0x1.4bb4ep-2, INEXACT) +T(RZ, -0x1.fffffep-1, -0x1.920914p+0, 0x1.4bb4ep-2, INEXACT) +T(RU, 0x1.fffffep-1, 0x1.920916p+0, 0x1.5a259p-1, INEXACT) +T(RU, -0x1.fffffep-1, -0x1.920914p+0, 0x1.4bb4ep-2, INEXACT) +T(RD, 0x1.fffffep-1, 0x1.920914p+0, -0x1.4bb4ep-2, INEXACT) +T(RD, -0x1.fffffep-1, -0x1.920916p+0, -0x1.5a259p-1, INEXACT) +// asins(tiny) is tiny (only in nearest mode) +T(RN, 0x1.ffa2e6p-16, 0x1.ffa2e6p-16, -0x1.549b44p-9, INEXACT) +T(RN, -0x1.ffa2e6p-16, -0x1.ffa2e6p-16, 0x1.549b44p-9, INEXACT) +T(RN, 0x1p-126, 0x1p-126, 0x0p+0, INEXACT) +T(RN, -0x1p-126, -0x1p-126, 0x0p+0, INEXACT) +// asins(+-0) is +-0 +T(RN, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +// random arguments between -1 and 1 +T(RN, -0x1.13284cp-2, -0x1.1694c4p-2, 0x1.88bdaap-6, INEXACT) +T(RN, 0x1.6ca8ep-1, 0x1.95d814p-1, -0x1.8cc59ep-6, INEXACT) +T(RN, 0x1.c2ca6p-1, 0x1.13a9e2p+0, -0x1.8c0144p-3, INEXACT) +T(RN, -0x1.55f12p-1, -0x1.767008p-1, -0x1.1002bep-2, INEXACT) +T(RN, -0x1.15679ep-2, -0x1.18ea3ep-2, 0x1.bdf0fp-3, INEXACT) +T(RN, -0x1.41e132p-5, -0x1.41f66ap-5, -0x1.6c33a2p-3, INEXACT) +T(RN, 0x1.281b0ep-1, 0x1.3bbdbap-1, 0x1.82c4ap-4, INEXACT) +T(RN, 0x1.b5ce34p-1, 0x1.0695bap+0, 0x1.d93dfcp-6, INEXACT) +T(RN, -0x1.583482p-3, -0x1.59d8b6p-3, 0x1.0e3a4p-4, INEXACT) +T(RN, -0x1.ea8224p-1, -0x1.47affap+0, -0x1.86a51ap-2, INEXACT) +// exception cases +T(RN, 0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RU, 0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RD, 0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RN, 0x1p+1, nan, 0x0p+0, INVALID) +T(RN, 0x1.e00002p+2, nan, 0x0p+0, INVALID) +T(RN, -0x1.fffffep+2, nan, 0x0p+0, INVALID) +T(RN, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, 0x1.000002p-126, 0x1.000002p-126, 0x0p+0, INEXACT) +T(RD, 0x1.000004p-126, 0x1.000004p-126, 0x0p+0, INEXACT) +T(RD, 0x1p-125, 0x1p-125, 0x0p+0, INEXACT) +T(RD, 0x1p-124, 0x1p-124, 0x0p+0, INEXACT) +T(RD,-0x1.000002p-126,-0x1.000004p-126, -0x1p+0, INEXACT) +T(RD,-0x1.000004p-126,-0x1.000006p-126, -0x1p+0, INEXACT) +T(RD, -0x1p-125,-0x1.000002p-125, -0x1p+0, INEXACT) +T(RD, -0x1p-124,-0x1.000002p-124, -0x1p+0, INEXACT) +T(RD, 0x1p-149, 0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-148, 0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-128, 0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-127, 0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.fffff8p-127, 0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-126, 0x1p-126, 0x0p+0, INEXACT) +T(RD, -0x1p-149, -0x1p-148, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-148, -0x1.8p-148, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-128,-0x1.000008p-128, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-127,-0x1.000004p-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.fffff8p-127,-0x1.fffffcp-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.fffffcp-127, -0x1p-126, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-126,-0x1.000002p-126, -0x1p+0, INEXACT) +T(RD, 0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RD, 0x1p+1, nan, 0x0p+0, INVALID) +T(RD, 0x1p+2, nan, 0x0p+0, INVALID) +T(RD, 0x1p+126, nan, 0x0p+0, INVALID) +T(RD, 0x1p+127, nan, 0x0p+0, INVALID) +T(RD, 0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RD, 0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RD, inf, nan, 0x0p+0, INVALID) +T(RD, -0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1p+1, nan, 0x0p+0, INVALID) +T(RD, -0x1p+2, nan, 0x0p+0, INVALID) +T(RD, -0x1p+126, nan, 0x0p+0, INVALID) +T(RD, -0x1p+127, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RD, -inf, nan, 0x0p+0, INVALID) +T(RD, 0x1.8p-27, 0x1.8p-27, -0x1.2p-32, INEXACT) +T(RD, 0x1p-26, 0x1p-26, -0x1.555556p-32, INEXACT) +T(RD, 0x1p-12, 0x1p-12, -0x1.555556p-4, INEXACT) +T(RD, 0x1.8p-12, 0x1.8p-12, -0x1.200002p-2, INEXACT) +T(RD, -0x1.8p-27, -0x1.800002p-27, -0x1p+0, INEXACT) +T(RD, -0x1p-26, -0x1.000002p-26, -0x1p+0, INEXACT) +T(RD, -0x1p-12, -0x1.000002p-12, -0x1.d55556p-1, INEXACT) +T(RD, -0x1.8p-12, -0x1.800002p-12, -0x1.7p-1, INEXACT) +T(RN, 0x1.000002p-126, 0x1.000002p-126, 0x0p+0, INEXACT) +T(RN, 0x1.000004p-126, 0x1.000004p-126, 0x0p+0, INEXACT) +T(RN, 0x1p-125, 0x1p-125, 0x0p+0, INEXACT) +T(RN, 0x1p-124, 0x1p-124, 0x0p+0, INEXACT) +T(RN, 0x1.8p-27, 0x1.8p-27, -0x1.2p-32, INEXACT) +T(RN, 0x1p-26, 0x1p-26, -0x1.555556p-32, INEXACT) +T(RN, 0x1p-12, 0x1p-12, -0x1.555556p-4, INEXACT) +T(RN, 0x1.8p-12, 0x1.8p-12, -0x1.200002p-2, INEXACT) +T(RN,-0x1.000002p-126,-0x1.000002p-126, 0x0p+0, INEXACT) +T(RN,-0x1.000004p-126,-0x1.000004p-126, 0x0p+0, INEXACT) +T(RN, -0x1p-125, -0x1p-125, 0x0p+0, INEXACT) +T(RN, -0x1p-124, -0x1p-124, 0x0p+0, INEXACT) +T(RN, -0x1.8p-27, -0x1.8p-27, 0x1.2p-32, INEXACT) +T(RN, -0x1p-26, -0x1p-26, 0x1.555556p-32, INEXACT) +T(RN, -0x1p-12, -0x1p-12, 0x1.555556p-4, INEXACT) +T(RN, -0x1.8p-12, -0x1.8p-12, 0x1.200002p-2, INEXACT) +T(RN, 0x1p-149, 0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-148, 0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-128, 0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-127, 0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.fffff8p-127, 0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-149, -0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-148, -0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-128, -0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-127, -0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.fffff8p-127,-0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.fffffcp-127,-0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RN, 0x1p+2, nan, 0x0p+0, INVALID) +T(RN, 0x1p+126, nan, 0x0p+0, INVALID) +T(RN, 0x1p+127, nan, 0x0p+0, INVALID) +T(RN, 0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RN, 0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RN, inf, nan, 0x0p+0, INVALID) +T(RN, -0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1p+2, nan, 0x0p+0, INVALID) +T(RN, -0x1p+126, nan, 0x0p+0, INVALID) +T(RN, -0x1p+127, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RN, -inf, nan, 0x0p+0, INVALID) +T(RU, 0x1.000002p-126, 0x1.000004p-126, 0x1p+0, INEXACT) +T(RU, 0x1.000004p-126, 0x1.000006p-126, 0x1p+0, INEXACT) +T(RU, 0x1p-125, 0x1.000002p-125, 0x1p+0, INEXACT) +T(RU, 0x1p-124, 0x1.000002p-124, 0x1p+0, INEXACT) +T(RU,-0x1.000002p-126,-0x1.000002p-126, 0x0p+0, INEXACT) +T(RU,-0x1.000004p-126,-0x1.000004p-126, 0x0p+0, INEXACT) +T(RU, -0x1p-125, -0x1p-125, 0x0p+0, INEXACT) +T(RU, -0x1p-124, -0x1p-124, 0x0p+0, INEXACT) +T(RU, 0x1p-149, 0x1p-148, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-148, 0x1.8p-148, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-128, 0x1.000008p-128, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-127, 0x1.000004p-127, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.fffff8p-127, 0x1.fffffcp-127, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.fffffcp-127, 0x1p-126, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-126, 0x1.000002p-126, 0x1p+0, INEXACT) +T(RU, -0x1p-149, -0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-148, -0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-128, -0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-127, -0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.fffff8p-127,-0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.fffffcp-127,-0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-126, -0x1p-126, 0x0p+0, INEXACT) +T(RU, 0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RU, 0x1p+1, nan, 0x0p+0, INVALID) +T(RU, 0x1p+2, nan, 0x0p+0, INVALID) +T(RU, 0x1p+126, nan, 0x0p+0, INVALID) +T(RU, 0x1p+127, nan, 0x0p+0, INVALID) +T(RU, 0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RU, 0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RU, inf, nan, 0x0p+0, INVALID) +T(RU, -0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1p+1, nan, 0x0p+0, INVALID) +T(RU, -0x1p+2, nan, 0x0p+0, INVALID) +T(RU, -0x1p+126, nan, 0x0p+0, INVALID) +T(RU, -0x1p+127, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RU, -inf, nan, 0x0p+0, INVALID) +T(RU, 0x1.8p-27, 0x1.800002p-27, 0x1p+0, INEXACT) +T(RU, 0x1p-26, 0x1.000002p-26, 0x1p+0, INEXACT) +T(RU, 0x1p-12, 0x1.000002p-12, 0x1.d55556p-1, INEXACT) +T(RU, 0x1.8p-12, 0x1.800002p-12, 0x1.7p-1, INEXACT) +T(RU, -0x1.8p-27, -0x1.8p-27, 0x1.2p-32, INEXACT) +T(RU, -0x1p-26, -0x1p-26, 0x1.555556p-32, INEXACT) +T(RU, -0x1p-12, -0x1p-12, 0x1.555556p-4, INEXACT) +T(RU, -0x1.8p-12, -0x1.8p-12, 0x1.200002p-2, INEXACT) +T(RZ, 0x1.000002p-126, 0x1.000002p-126, 0x0p+0, INEXACT) +T(RZ, 0x1.000004p-126, 0x1.000004p-126, 0x0p+0, INEXACT) +T(RZ, 0x1p-125, 0x1p-125, 0x0p+0, INEXACT) +T(RZ, 0x1p-124, 0x1p-124, 0x0p+0, INEXACT) +T(RZ,-0x1.000002p-126,-0x1.000002p-126, 0x0p+0, INEXACT) +T(RZ,-0x1.000004p-126,-0x1.000004p-126, 0x0p+0, INEXACT) +T(RZ, -0x1p-125, -0x1p-125, 0x0p+0, INEXACT) +T(RZ, -0x1p-124, -0x1p-124, 0x0p+0, INEXACT) +T(RZ, 0x1p-149, 0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-148, 0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-128, 0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-127, 0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.fffff8p-127, 0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-126, 0x1p-126, 0x0p+0, INEXACT) +T(RZ, -0x1p-149, -0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-148, -0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-128, -0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-127, -0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.fffff8p-127,-0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.fffffcp-127,-0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-126, -0x1p-126, 0x0p+0, INEXACT) +T(RZ, 0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x1p+1, nan, 0x0p+0, INVALID) +T(RZ, 0x1p+2, nan, 0x0p+0, INVALID) +T(RZ, 0x1p+126, nan, 0x0p+0, INVALID) +T(RZ, 0x1p+127, nan, 0x0p+0, INVALID) +T(RZ, 0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RZ, 0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RZ, inf, nan, 0x0p+0, INVALID) +T(RZ, -0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+1, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+2, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+126, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+127, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RZ, -inf, nan, 0x0p+0, INVALID) +T(RZ, 0x1.8p-27, 0x1.8p-27, -0x1.2p-32, INEXACT) +T(RZ, 0x1p-26, 0x1p-26, -0x1.555556p-32, INEXACT) +T(RZ, 0x1p-12, 0x1p-12, -0x1.555556p-4, INEXACT) +T(RZ, 0x1.8p-12, 0x1.8p-12, -0x1.200002p-2, INEXACT) +T(RZ, -0x1.8p-27, -0x1.8p-27, 0x1.2p-32, INEXACT) +T(RZ, -0x1p-26, -0x1p-26, 0x1.555556p-32, INEXACT) +T(RZ, -0x1p-12, -0x1p-12, 0x1.555556p-4, INEXACT) +T(RZ, -0x1.8p-12, -0x1.8p-12, 0x1.200002p-2, INEXACT) diff --git a/test/musl/src/math/ucb/atan.h b/test/musl/src/math/ucb/atan.h new file mode 100644 index 00000000..981c56f9 --- /dev/null +++ b/test/musl/src/math/ucb/atan.h @@ -0,0 +1,201 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// atand(+-max) is +-pi/2 +T(RN, 0x1.fffffffffffffp+1023, 0x1.921fb54442d18p+0, -0x1.1a6264p-2, INEXACT) +T(RN,-0x1.fffffffffffffp+1023, -0x1.921fb54442d18p+0, 0x1.1a6264p-2, INEXACT) +// atand(+-1) is +-pi/4 +T(RN, 0x1p+0, 0x1.921fb54442d18p-1, -0x1.1a6264p-2, INEXACT) +T(RN, -0x1p+0, -0x1.921fb54442d18p-1, 0x1.1a6264p-2, INEXACT) +// atand(tiny) is tiny +T(RN, 0x1p-30, 0x1p-30, 0x1.555556p-10, INEXACT) +T(RN, -0x1p-30, -0x1p-30, -0x1.555556p-10, INEXACT) +T(RN, 0x1p-1022, 0x1p-1022, 0x0p+0, INEXACT) +T(RN, -0x1p-1022, -0x1p-1022, 0x0p+0, INEXACT) +T(RZ, 0x1p-30, 0x1.fffffffffffffp-31, -0x1.feaaaap-1, INEXACT) +T(RZ, -0x1p-30, -0x1.fffffffffffffp-31, 0x1.feaaaap-1, INEXACT) +T(RZ, 0x1p-1022, 0x1.ffffffffffffep-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1022,-0x1.ffffffffffffep-1023, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-30, 0x1p-30, 0x1.555556p-10, INEXACT) +T(RU, -0x1p-30, -0x1.fffffffffffffp-31, 0x1.feaaaap-1, INEXACT) +T(RU, 0x1p-1022, 0x1p-1022, 0x0p+0, INEXACT) +T(RU, -0x1p-1022,-0x1.ffffffffffffep-1023, 0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-30, 0x1.fffffffffffffp-31, -0x1.feaaaap-1, INEXACT) +T(RD, -0x1p-30, -0x1p-30, -0x1.555556p-10, INEXACT) +T(RD, 0x1p-1022, 0x1.ffffffffffffep-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1022, -0x1p-1022, 0x0p+0, INEXACT) +// atand(+-0) is +-0 +T(RN, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +// random arguments between -2 and 2 +T(RN, -0x1.13284b2b5006dp-1, -0x1.f8f75bb5fd451p-2, 0x1.0a1192p-11, INEXACT) +T(RN, 0x1.6ca8dfb825911p+0, 0x1.eadc6ce9cba6cp-1, -0x1.897aaep-5, INEXACT) +T(RN, 0x1.c2ca609de7505p+0, 0x1.0de7f90a2292bp+0, -0x1.adec12p-2, INEXACT) +T(RN, -0x1.55f11fba96889p+0, -0x1.db367aed1093p-1, 0x1.1aa32cp-3, INEXACT) +T(RN, -0x1.15679e27084ddp-1, -0x1.fc72849d05c9p-2, 0x1.4db836p-2, INEXACT) +T(RN, -0x1.41e131b093c41p-4, -0x1.413832eb4f31dp-4, -0x1.06e782p-6, INEXACT) +T(RN, 0x1.281b0d18455f5p+0, 0x1.b74040cba5c63p-1, -0x1.881588p-2, INEXACT) +T(RN, 0x1.b5ce34a51b239p+0, 0x1.0aab58c02e298p+0, -0x1.35666ep-2, INEXACT) +T(RN, -0x1.583481079de4dp-2, -0x1.4c0e12c6c30bfp-2, 0x1.188ba8p-2, INEXACT) +T(RN, -0x1.ea8223103b871p+0, -0x1.16fb9ae45d4fcp+0, -0x1.a14c14p-2, INEXACT) +T(RZ, -0x1.13284b2b5006dp-1, -0x1.f8f75bb5fd451p-2, 0x1.0a1192p-11, INEXACT) +T(RZ, 0x1.6ca8dfb825911p+0, 0x1.eadc6ce9cba6cp-1, -0x1.897aaep-5, INEXACT) +T(RZ, 0x1.c2ca609de7505p+0, 0x1.0de7f90a2292bp+0, -0x1.adec12p-2, INEXACT) +T(RU, -0x1.55f11fba96889p+0, -0x1.db367aed1093p-1, 0x1.1aa32cp-3, INEXACT) +T(RU, -0x1.15679e27084ddp-1, -0x1.fc72849d05c9p-2, 0x1.4db836p-2, INEXACT) +T(RU, -0x1.41e131b093c41p-4, -0x1.413832eb4f31cp-4, 0x1.f7c8c4p-1, INEXACT) +T(RD, 0x1.281b0d18455f5p+0, 0x1.b74040cba5c63p-1, -0x1.881588p-2, INEXACT) +T(RD, 0x1.b5ce34a51b239p+0, 0x1.0aab58c02e298p+0, -0x1.35666ep-2, INEXACT) +T(RD, -0x1.583481079de4dp-2, -0x1.4c0e12c6c30cp-2, -0x1.73ba2cp-1, INEXACT) +T(RD, -0x1.ea8223103b871p+0, -0x1.16fb9ae45d4fcp+0, -0x1.a14c14p-2, INEXACT) +// atand(+-inf) is +-pi/2 +T(RN, inf, 0x1.921fb54442d18p+0, -0x1.1a6264p-2, INEXACT) +T(RN, -inf, -0x1.921fb54442d18p+0, 0x1.1a6264p-2, INEXACT) +// atand(nan) is nan +T(RN, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, 0x1.0000000000001p-1022, 0x1p-1022, -0x1p+0, INEXACT) +T(RD, 0x1.0000000000002p-1022, 0x1.0000000000001p-1022, -0x1p+0, INEXACT) +T(RD, 0x1p-1021, 0x1.fffffffffffffp-1022, -0x1p+0, INEXACT) +T(RD, 0x1p-1020, 0x1.fffffffffffffp-1021, -0x1p+0, INEXACT) +T(RD,-0x1.0000000000001p-1022,-0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RD,-0x1.0000000000002p-1022,-0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RD,-0x1.ffffffffffffbp-1022,-0x1.ffffffffffffbp-1022, 0x0p+0, INEXACT) +T(RD, -0x1p-1021, -0x1p-1021, 0x0p+0, INEXACT) +T(RD,-0x1.0000000000003p-1021,-0x1.0000000000003p-1021, 0x0p+0, INEXACT) +T(RD, -0x1p-1020, -0x1p-1020, 0x0p+0, INEXACT) +T(RD, 0x1p-1074, 0x0p+0, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1073, 0x1p-1074, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1024, 0x1.ffffffffffff8p-1025, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1023, 0x1.ffffffffffffcp-1024, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffap-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffcp-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1074, -0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1073, -0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1.2p-1071, -0x1.2p-1071, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1024, -0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1023, -0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.ffffffffffffep-1023,-0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.8p-27, 0x1.7ffffffffffffp-27, -0x1.7p-1, INEXACT) +T(RD, -0x1.8p-27, -0x1.8p-27, -0x1.2p-2, INEXACT) +T(RN, 0x1.0000000000001p-1022, 0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000002p-1022, 0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RN, 0x1.ffffffffffffbp-1022, 0x1.ffffffffffffbp-1022, 0x0p+0, INEXACT) +T(RN, 0x1p-1021, 0x1p-1021, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000003p-1021, 0x1.0000000000003p-1021, 0x0p+0, INEXACT) +T(RN, 0x1p-1020, 0x1p-1020, 0x0p+0, INEXACT) +T(RN, 0x1.8p-27, 0x1.8p-27, 0x1.2p-2, INEXACT) +T(RN,-0x1.0000000000001p-1022,-0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RN,-0x1.0000000000002p-1022,-0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RN,-0x1.ffffffffffffbp-1022,-0x1.ffffffffffffbp-1022, 0x0p+0, INEXACT) +T(RN, -0x1p-1021, -0x1p-1021, 0x0p+0, INEXACT) +T(RN,-0x1.0000000000003p-1021,-0x1.0000000000003p-1021, 0x0p+0, INEXACT) +T(RN, -0x1p-1020, -0x1p-1020, 0x0p+0, INEXACT) +T(RN, -0x1.8p-27, -0x1.8p-27, -0x1.2p-2, INEXACT) +T(RN, 0x1p-1074, 0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1073, 0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.2p-1071, 0x1.2p-1071, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1024, 0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1023, 0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1074, -0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1073, -0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1.2p-1071, -0x1.2p-1071, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1024, -0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1023, -0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffffffffffep-1023,-0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.0000000000001p-1022, 0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RU, 0x1.0000000000002p-1022, 0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RU, 0x1.ffffffffffffbp-1022, 0x1.ffffffffffffbp-1022, 0x0p+0, INEXACT) +T(RU, 0x1p-1021, 0x1p-1021, 0x0p+0, INEXACT) +T(RU, 0x1.0000000000003p-1021, 0x1.0000000000003p-1021, 0x0p+0, INEXACT) +T(RU, 0x1p-1020, 0x1p-1020, 0x0p+0, INEXACT) +T(RU,-0x1.0000000000001p-1022, -0x1p-1022, 0x1p+0, INEXACT) +T(RU,-0x1.0000000000002p-1022,-0x1.0000000000001p-1022, 0x1p+0, INEXACT) +T(RU, -0x1p-1021,-0x1.fffffffffffffp-1022, 0x1p+0, INEXACT) +T(RU, -0x1p-1020,-0x1.fffffffffffffp-1021, 0x1p+0, INEXACT) +T(RU, 0x1p-1074, 0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1073, 0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.2p-1071, 0x1.2p-1071, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1024, 0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1023, 0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1074, -0x0p+0, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1073, -0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1024,-0x1.ffffffffffff8p-1025, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1023,-0x1.ffffffffffffcp-1024, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffap-1023, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.ffffffffffffep-1023,-0x1.ffffffffffffcp-1023, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.8p-27, 0x1.8p-27, 0x1.2p-2, INEXACT) +T(RU, -0x1.8p-27, -0x1.7ffffffffffffp-27, 0x1.7p-1, INEXACT) +T(RZ, 0x1.0000000000001p-1022, 0x1p-1022, -0x1p+0, INEXACT) +T(RZ, 0x1.0000000000002p-1022, 0x1.0000000000001p-1022, -0x1p+0, INEXACT) +T(RZ, 0x1p-1021, 0x1.fffffffffffffp-1022, -0x1p+0, INEXACT) +T(RZ, 0x1p-1020, 0x1.fffffffffffffp-1021, -0x1p+0, INEXACT) +T(RZ,-0x1.0000000000001p-1022, -0x1p-1022, 0x1p+0, INEXACT) +T(RZ,-0x1.0000000000002p-1022,-0x1.0000000000001p-1022, 0x1p+0, INEXACT) +T(RZ, -0x1p-1021,-0x1.fffffffffffffp-1022, 0x1p+0, INEXACT) +T(RZ, -0x1p-1020,-0x1.fffffffffffffp-1021, 0x1p+0, INEXACT) +T(RZ, 0x1p-1074, 0x0p+0, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1073, 0x1p-1074, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1024, 0x1.ffffffffffff8p-1025, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1023, 0x1.ffffffffffffcp-1024, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffap-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffcp-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1074, -0x0p+0, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1073, -0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1024,-0x1.ffffffffffff8p-1025, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1023,-0x1.ffffffffffffcp-1024, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffap-1023, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.ffffffffffffep-1023,-0x1.ffffffffffffcp-1023, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.8p-27, 0x1.7ffffffffffffp-27, -0x1.7p-1, INEXACT) +T(RZ, -0x1.8p-27, -0x1.7ffffffffffffp-27, 0x1.7p-1, INEXACT) diff --git a/test/musl/src/math/ucb/atan2.h b/test/musl/src/math/ucb/atan2.h new file mode 100644 index 00000000..9d6f2198 --- /dev/null +++ b/test/musl/src/math/ucb/atan2.h @@ -0,0 +1,224 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// atan2d(+-0,+anything but nan) is +-0 +T(RN, 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1p-1074, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1p-1022, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1.fffffffffffffp+1023, 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, 0x1p-1074, -0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1p-1022, -0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1.fffffffffffffp+1023, -0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, inf, -0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1p-1074, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1p-1022, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1.fffffffffffffp+1023, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, inf, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x1p-1074, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x1p-1022, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x1.fffffffffffffp+1023, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, inf, -0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1p-1074, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1p-1022, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1.fffffffffffffp+1023, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, inf, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, 0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, 0x1p-1074, -0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, 0x1p-1022, -0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, 0x1.fffffffffffffp+1023, -0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, inf, -0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1p-1074, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1p-1022, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1.fffffffffffffp+1023, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, inf, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, 0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, 0x1p-1074, -0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, 0x1p-1022, -0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, 0x1.fffffffffffffp+1023, -0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, inf, -0x0p+0, 0x0p+0, 0) +// atan2d(+-0,-anything but nan) is +-pi +T(RN, 0x0p+0, -inf, 0x1.921fb54442d18p+1, -0x1.1a6264p-2, INEXACT) +T(RN, 0x0p+0,-0x1.fffffffffffffp+1023, 0x1.921fb54442d18p+1, -0x1.1a6264p-2, INEXACT) +T(RN, 0x0p+0, -0x1p-1022, 0x1.921fb54442d18p+1, -0x1.1a6264p-2, INEXACT) +T(RN, 0x0p+0, -0x1p-1074, 0x1.921fb54442d18p+1, -0x1.1a6264p-2, INEXACT) +T(RN, 0x0p+0, -0x0p+0, 0x1.921fb54442d18p+1, -0x1.1a6264p-2, INEXACT) +T(RN, -0x0p+0, -inf, -0x1.921fb54442d18p+1, 0x1.1a6264p-2, INEXACT) +T(RN, -0x0p+0,-0x1.fffffffffffffp+1023, -0x1.921fb54442d18p+1, 0x1.1a6264p-2, INEXACT) +T(RN, -0x0p+0, -0x1p-1022, -0x1.921fb54442d18p+1, 0x1.1a6264p-2, INEXACT) +T(RN, -0x0p+0, -0x1p-1074, -0x1.921fb54442d18p+1, 0x1.1a6264p-2, INEXACT) +T(RN, -0x0p+0, -0x0p+0, -0x1.921fb54442d18p+1, 0x1.1a6264p-2, INEXACT) +// atan2d(+-anything but 0 and nan, 0) is +- pi/2 +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, 0x1.fffffffffffffp+1023, 0x0p+0, 0x1.921fb54442d18p+0, -0x1.1a6264p-2, INEXACT) +T(RN, 0x1.fffffffffffffp+1023, -0x0p+0, 0x1.921fb54442d18p+0, -0x1.1a6264p-2, INEXACT) +T(RN, 0x1p-1022, 0x0p+0, 0x1.921fb54442d18p+0, -0x1.1a6264p-2, INEXACT) +T(RN, 0x1p-1022, -0x0p+0, 0x1.921fb54442d18p+0, -0x1.1a6264p-2, INEXACT) +T(RN, 0x1p-1074, 0x0p+0, 0x1.921fb54442d18p+0, -0x1.1a6264p-2, INEXACT) +T(RN, 0x1p-1074, -0x0p+0, 0x1.921fb54442d18p+0, -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,-0x1.fffffffffffffp+1023, 0x0p+0, -0x1.921fb54442d18p+0, 0x1.1a6264p-2, INEXACT) +T(RN,-0x1.fffffffffffffp+1023, -0x0p+0, -0x1.921fb54442d18p+0, 0x1.1a6264p-2, INEXACT) +T(RN, -0x1p-1074, 0x0p+0, -0x1.921fb54442d18p+0, 0x1.1a6264p-2, INEXACT) +T(RN, -0x1p-1074, -0x0p+0, -0x1.921fb54442d18p+0, 0x1.1a6264p-2, INEXACT) +T(RN, -0x1p-1022, 0x0p+0, -0x1.921fb54442d18p+0, 0x1.1a6264p-2, INEXACT) +T(RN, -0x1p-1022, -0x0p+0, -0x1.921fb54442d18p+0, 0x1.1a6264p-2, INEXACT) +// atan2d(big,small) :=: +-pi/2 +T(RN, 0x1.fffffffffffffp+1023, 0x1p-1022, 0x1.921fb54442d18p+0, -0x1.1a6264p-2, INEXACT) +T(RN, 0x1.fffffffffffffp+1023, -0x1p-1022, 0x1.921fb54442d18p+0, -0x1.1a6264p-2, INEXACT) +T(RN,-0x1.fffffffffffffp+1023, 0x1p-1022, -0x1.921fb54442d18p+0, 0x1.1a6264p-2, INEXACT) +T(RN,-0x1.fffffffffffffp+1023, -0x1p-1022, -0x1.921fb54442d18p+0, 0x1.1a6264p-2, INEXACT) +T(RZ, 0x1.fffffffffffffp+1023, 0x1p-1022, 0x1.921fb54442d18p+0, -0x1.1a6264p-2, INEXACT) +T(RZ, 0x1.fffffffffffffp+1023, -0x1p-1022, 0x1.921fb54442d18p+0, -0x1.1a6264p-2, INEXACT) +T(RZ,-0x1.fffffffffffffp+1023, 0x1p-1022, -0x1.921fb54442d18p+0, 0x1.1a6264p-2, INEXACT) +T(RZ,-0x1.fffffffffffffp+1023, -0x1p-1022, -0x1.921fb54442d18p+0, 0x1.1a6264p-2, INEXACT) +T(RU, 0x1.fffffffffffffp+1023, 0x1p-1022, 0x1.921fb54442d19p+0, 0x1.72cecep-1, INEXACT) +T(RU, 0x1.fffffffffffffp+1023, -0x1p-1022, 0x1.921fb54442d19p+0, 0x1.72cecep-1, INEXACT) +T(RU,-0x1.fffffffffffffp+1023, 0x1p-1022, -0x1.921fb54442d18p+0, 0x1.1a6264p-2, INEXACT) +T(RU,-0x1.fffffffffffffp+1023, -0x1p-1022, -0x1.921fb54442d18p+0, 0x1.1a6264p-2, INEXACT) +T(RD, 0x1.fffffffffffffp+1023, 0x1p-1022, 0x1.921fb54442d18p+0, -0x1.1a6264p-2, INEXACT) +T(RD, 0x1.fffffffffffffp+1023, -0x1p-1022, 0x1.921fb54442d18p+0, -0x1.1a6264p-2, INEXACT) +T(RD,-0x1.fffffffffffffp+1023, 0x1p-1022, -0x1.921fb54442d19p+0, -0x1.72cecep-1, INEXACT) +T(RD,-0x1.fffffffffffffp+1023, -0x1p-1022, -0x1.921fb54442d19p+0, -0x1.72cecep-1, INEXACT) +// atan2d(small,big) = small/big (big>0) +T(RN, 0x1p-1022, 0x1.fffffffffffffp+1023, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1022, 0x1.fffffffffffffp+1023, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1022,-0x1.fffffffffffffp+1023, 0x1.921fb54442d18p+1, -0x1.1a6264p-2, INEXACT) +T(RN, -0x1p-1022,-0x1.fffffffffffffp+1023, -0x1.921fb54442d18p+1, 0x1.1a6264p-2, INEXACT) +T(RZ, 0x1p-1022, 0x1.fffffffffffffp+1023, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1022, 0x1.fffffffffffffp+1023, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1022,-0x1.fffffffffffffp+1023, 0x1.921fb54442d18p+1, -0x1.1a6264p-2, INEXACT) +T(RZ, -0x1p-1022,-0x1.fffffffffffffp+1023, -0x1.921fb54442d18p+1, 0x1.1a6264p-2, INEXACT) +T(RU, 0x1p-1022, 0x1.fffffffffffffp+1023, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1022, 0x1.fffffffffffffp+1023, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1022,-0x1.fffffffffffffp+1023, 0x1.921fb54442d19p+1, 0x1.72cecep-1, INEXACT) +T(RU, -0x1p-1022,-0x1.fffffffffffffp+1023, -0x1.921fb54442d18p+1, 0x1.1a6264p-2, INEXACT) +T(RD, 0x1p-1022, 0x1.fffffffffffffp+1023, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1022, 0x1.fffffffffffffp+1023, -0x1p-1074, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1022,-0x1.fffffffffffffp+1023, 0x1.921fb54442d18p+1, -0x1.1a6264p-2, INEXACT) +T(RD, -0x1p-1022,-0x1.fffffffffffffp+1023, -0x1.921fb54442d19p+1, -0x1.72cecep-1, INEXACT) +// atan2d(+-x,+x) = +-pi/4 for normal x +T(RN, 0x1p-1022, 0x1p-1022, 0x1.921fb54442d18p-1, -0x1.1a6264p-2, INEXACT) +T(RN, -0x1p-1022, 0x1p-1022, -0x1.921fb54442d18p-1, 0x1.1a6264p-2, INEXACT) +T(RN, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x1.921fb54442d18p-1, -0x1.1a6264p-2, INEXACT) +T(RN,-0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, -0x1.921fb54442d18p-1, 0x1.1a6264p-2, INEXACT) +// atan2d(+-x,-x) = +-3pi/4 for normal x +T(RN, 0x1p-1022, -0x1p-1022, 0x1.2d97c7f3321d2p+1, -0x1.a79394p-3, INEXACT) +T(RN, -0x1p-1022, -0x1p-1022, -0x1.2d97c7f3321d2p+1, 0x1.a79394p-3, INEXACT) +T(RN, 0x1p+0, -0x1p+0, 0x1.2d97c7f3321d2p+1, -0x1.a79394p-3, INEXACT) +T(RN, -0x1p+0, -0x1p+0, -0x1.2d97c7f3321d2p+1, 0x1.a79394p-3, INEXACT) +T(RN, 0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023, 0x1.2d97c7f3321d2p+1, -0x1.a79394p-3, INEXACT) +T(RN,-0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023, -0x1.2d97c7f3321d2p+1, 0x1.a79394p-3, INEXACT) +// random arguments between -2.0 and 2.0 +T(RN, -0x1.13284b2b5006dp-1, 0x1.6ca8dfb825911p+0, -0x1.716d1fa13dd6p-2, -0x1.31471ap-3, INEXACT) +T(RN, 0x1.c2ca609de7505p+0, -0x1.55f11fba96889p+0, 0x1.1c206d50867f1p+1, -0x1.d982d2p-2, INEXACT) +T(RN, -0x1.15679e27084ddp-1, -0x1.41e131b093c41p-4, -0x1.b6ff43cc0fa03p+0, 0x1.428fe2p-3, INEXACT) +T(RN, 0x1.281b0d18455f5p+0, 0x1.b5ce34a51b239p+0, 0x1.30789aa67a7b1p-1, 0x1.e13b2ap-2, INEXACT) +T(RN, -0x1.583481079de4dp-2, -0x1.ea8223103b871p+0, -0x1.7be5087e43d19p+1, 0x1.a6c422p-2, INEXACT) +T(RN, -0x1.aae17f24163e5p-1, 0x1.7a9da1468cce9p-4, -0x1.75db7c098be45p+0, 0x1.e9c708p-2, INEXACT) +T(RN, -0x1.844fff258fcbdp+0, 0x1.6ca321ace7da1p+0, -0x1.a237b131b62afp-1, -0x1.d5b568p-2, INEXACT) +T(RN, -0x1.fe09befde0ed5p+0, -0x1.ff6c7e8e5e899p+0, -0x1.2dc43c18871b1p+1, 0x1.ece6e2p-7, INEXACT) +T(RN, -0x1.d24c81412d02dp-1, 0x1.29b6828273bd1p+0, -0x1.5428a1a6caecfp-1, 0x1.9211bp-2, INEXACT) +T(RN, 0x1.25ea7e8b7c6c5p-1, 0x1.f99598e193549p-1, 0x1.0d9c960b4dda9p-1, -0x1.000c7p-3, INEXACT) +// atan2d involve nan +T(RN, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RN, 0x1p+0, nan, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-1074, nan, 0x0p+0, 0) +T(RN, nan,-0x1.fffffffffffffp+1023, nan, 0x0p+0, 0) +T(RN, nan, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, nan, 0x0p+0, 0) +T(RZ, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RZ, 0x1p+0, nan, nan, 0x0p+0, 0) +T(RZ, nan, 0x1p-1074, nan, 0x0p+0, 0) +T(RZ, nan,-0x1.fffffffffffffp+1023, nan, 0x0p+0, 0) +T(RZ, nan, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, nan, 0x0p+0, 0) +T(RU, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RU, 0x1p+0, nan, nan, 0x0p+0, 0) +T(RU, nan, 0x1p-1074, nan, 0x0p+0, 0) +T(RU, nan,-0x1.fffffffffffffp+1023, nan, 0x0p+0, 0) +T(RU, nan, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, nan, 0x0p+0, 0) +T(RD, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RD, 0x1p+0, nan, nan, 0x0p+0, 0) +T(RD, nan, 0x1p-1074, nan, 0x0p+0, 0) +T(RD, nan,-0x1.fffffffffffffp+1023, nan, 0x0p+0, 0) +T(RD, nan, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, nan, 0x0p+0, 0) +// atan2d(+-(anything but inf and nan), +inf) is +-0 +T(RN, 0x1p-1074, inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1023, inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-1074, inf, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023, inf, -0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p-1074, inf, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp+1023, inf, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x1p-1074, inf, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.fffffffffffffp+1023, inf, -0x0p+0, 0x0p+0, 0) +T(RU, 0x1p-1074, inf, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp+1023, inf, 0x0p+0, 0x0p+0, 0) +T(RU, -0x1p-1074, inf, -0x0p+0, 0x0p+0, 0) +T(RU,-0x1.fffffffffffffp+1023, inf, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1p-1074, inf, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1023, inf, 0x0p+0, 0x0p+0, 0) +T(RD, -0x1p-1074, inf, -0x0p+0, 0x0p+0, 0) +T(RD,-0x1.fffffffffffffp+1023, inf, -0x0p+0, 0x0p+0, 0) +// atan2d(+-(anything but inf and nan), -inf) is +-pi +T(RN, 0x1p-1074, -inf, 0x1.921fb54442d18p+1, -0x1.1a6264p-2, INEXACT) +T(RN, 0x1.fffffffffffffp+1023, -inf, 0x1.921fb54442d18p+1, -0x1.1a6264p-2, INEXACT) +T(RN, -0x1p-1074, -inf, -0x1.921fb54442d18p+1, 0x1.1a6264p-2, INEXACT) +T(RN,-0x1.fffffffffffffp+1023, -inf, -0x1.921fb54442d18p+1, 0x1.1a6264p-2, INEXACT) +// atan2d(+-inf,+inf ) is +-pi/4 +T(RN, inf, inf, 0x1.921fb54442d18p-1, -0x1.1a6264p-2, INEXACT) +T(RN, -inf, inf, -0x1.921fb54442d18p-1, 0x1.1a6264p-2, INEXACT) +// atan2d(+-inf,-inf ) is +-3pi/4 +T(RN, inf, -inf, 0x1.2d97c7f3321d2p+1, -0x1.a79394p-3, INEXACT) +T(RN, -inf, -inf, -0x1.2d97c7f3321d2p+1, 0x1.a79394p-3, INEXACT) +// atan2d(+-inf, (anything but,0,nan, and inf)) is +-pi/2 +T(RN, inf, 0x1p-1074, 0x1.921fb54442d18p+0, -0x1.1a6264p-2, INEXACT) +T(RN, inf, -0x1p-1074, 0x1.921fb54442d18p+0, -0x1.1a6264p-2, INEXACT) +T(RN, inf, 0x1.fffffffffffffp+1023, 0x1.921fb54442d18p+0, -0x1.1a6264p-2, INEXACT) +T(RN, inf,-0x1.fffffffffffffp+1023, 0x1.921fb54442d18p+0, -0x1.1a6264p-2, INEXACT) +T(RN, -inf, 0x1p-1074, -0x1.921fb54442d18p+0, 0x1.1a6264p-2, INEXACT) +T(RN, -inf, -0x1p-1074, -0x1.921fb54442d18p+0, 0x1.1a6264p-2, INEXACT) +T(RN, -inf, 0x1.fffffffffffffp+1023, -0x1.921fb54442d18p+0, 0x1.1a6264p-2, INEXACT) +T(RN, -inf,-0x1.fffffffffffffp+1023, -0x1.921fb54442d18p+0, 0x1.1a6264p-2, INEXACT) diff --git a/test/musl/src/math/ucb/atan2f.h b/test/musl/src/math/ucb/atan2f.h new file mode 100644 index 00000000..840e6f4c --- /dev/null +++ b/test/musl/src/math/ucb/atan2f.h @@ -0,0 +1,182 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// atan2s(+-0,+anything but nan) is +-0 +T(RN, 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1p-129, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1.fffffep+127, 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, 0x1p-149, -0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1p-129, -0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1.fffffep+127, -0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, inf, -0x0p+0, 0x0p+0, 0) +// atan2s(+-0,-anything but nan) is +-pi +T(RN, 0x0p+0, -inf, 0x1.921fb6p+1, 0x1.777a5cp-2, INEXACT) +T(RN, 0x0p+0,-0x1.fffffep+127, 0x1.921fb6p+1, 0x1.777a5cp-2, INEXACT) +T(RN, 0x0p+0, -0x1p-129, 0x1.921fb6p+1, 0x1.777a5cp-2, INEXACT) +T(RN, 0x0p+0, -0x1p-149, 0x1.921fb6p+1, 0x1.777a5cp-2, INEXACT) +T(RN, 0x0p+0, -0x0p+0, 0x1.921fb6p+1, 0x1.777a5cp-2, INEXACT) +T(RN, -0x0p+0, -inf, -0x1.921fb6p+1, -0x1.777a5cp-2, INEXACT) +T(RN, -0x0p+0,-0x1.fffffep+127, -0x1.921fb6p+1, -0x1.777a5cp-2, INEXACT) +T(RN, -0x0p+0, -0x1p-129, -0x1.921fb6p+1, -0x1.777a5cp-2, INEXACT) +T(RN, -0x0p+0, -0x1p-149, -0x1.921fb6p+1, -0x1.777a5cp-2, INEXACT) +T(RN, -0x0p+0, -0x0p+0, -0x1.921fb6p+1, -0x1.777a5cp-2, INEXACT) +// atan2s(+-anything but 0 and nan, 0) is +- pi/2 +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, 0x1.fffffep+127, 0x0p+0, 0x1.921fb6p+0, 0x1.777a5cp-2, INEXACT) +T(RN, 0x1.fffffep+127, -0x0p+0, 0x1.921fb6p+0, 0x1.777a5cp-2, INEXACT) +T(RN, 0x1p-126, 0x0p+0, 0x1.921fb6p+0, 0x1.777a5cp-2, INEXACT) +T(RN, 0x1p-126, -0x0p+0, 0x1.921fb6p+0, 0x1.777a5cp-2, INEXACT) +T(RN, 0x1p-149, 0x0p+0, 0x1.921fb6p+0, 0x1.777a5cp-2, INEXACT) +T(RN, 0x1p-149, -0x0p+0, 0x1.921fb6p+0, 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,-0x1.fffffep+127, 0x0p+0, -0x1.921fb6p+0, -0x1.777a5cp-2, INEXACT) +T(RN,-0x1.fffffep+127, -0x0p+0, -0x1.921fb6p+0, -0x1.777a5cp-2, INEXACT) +T(RN, -0x1p-126, 0x0p+0, -0x1.921fb6p+0, -0x1.777a5cp-2, INEXACT) +T(RN, -0x1p-126, -0x0p+0, -0x1.921fb6p+0, -0x1.777a5cp-2, INEXACT) +T(RN, -0x1p-149, 0x0p+0, -0x1.921fb6p+0, -0x1.777a5cp-2, INEXACT) +T(RN, -0x1p-149, -0x0p+0, -0x1.921fb6p+0, -0x1.777a5cp-2, INEXACT) +// atan2s(big,small) :=: +-pi/2 +T(RN, 0x1.fffffep+127, 0x1p-126, 0x1.921fb6p+0, 0x1.777a5cp-2, INEXACT) +T(RN, 0x1.fffffep+127, -0x1p-126, 0x1.921fb6p+0, 0x1.777a5cp-2, INEXACT) +T(RN,-0x1.fffffep+127, 0x1p-126, -0x1.921fb6p+0, -0x1.777a5cp-2, INEXACT) +T(RN,-0x1.fffffep+127, -0x1p-126, -0x1.921fb6p+0, -0x1.777a5cp-2, INEXACT) +T(RZ, 0x1.fffffep+127, 0x1p-126, 0x1.921fb4p+0, -0x1.4442d2p-1, INEXACT) +T(RZ, 0x1.fffffep+127, -0x1p-126, 0x1.921fb4p+0, -0x1.4442d2p-1, INEXACT) +T(RZ,-0x1.fffffep+127, 0x1p-126, -0x1.921fb4p+0, 0x1.4442d2p-1, INEXACT) +T(RZ,-0x1.fffffep+127, -0x1p-126, -0x1.921fb4p+0, 0x1.4442d2p-1, INEXACT) +T(RU, 0x1.fffffep+127, 0x1p-126, 0x1.921fb6p+0, 0x1.777a5cp-2, INEXACT) +T(RU, 0x1.fffffep+127, -0x1p-126, 0x1.921fb6p+0, 0x1.777a5cp-2, INEXACT) +T(RU,-0x1.fffffep+127, 0x1p-126, -0x1.921fb4p+0, 0x1.4442d2p-1, INEXACT) +T(RU,-0x1.fffffep+127, -0x1p-126, -0x1.921fb4p+0, 0x1.4442d2p-1, INEXACT) +T(RD, 0x1.fffffep+127, 0x1p-126, 0x1.921fb4p+0, -0x1.4442d2p-1, INEXACT) +T(RD, 0x1.fffffep+127, -0x1p-126, 0x1.921fb4p+0, -0x1.4442d2p-1, INEXACT) +T(RD,-0x1.fffffep+127, 0x1p-126, -0x1.921fb6p+0, -0x1.777a5cp-2, INEXACT) +T(RD,-0x1.fffffep+127, -0x1p-126, -0x1.921fb6p+0, -0x1.777a5cp-2, INEXACT) +// atan2s(small,big) = small/big (big>0) +T(RN, 0x1p-126, 0x1.fffffep+127, 0x0p+0,-0x1.000002p-105, INEXACT|UNDERFLOW) +T(RN, -0x1p-126, 0x1.fffffep+127, -0x0p+0, 0x1.000002p-105, INEXACT|UNDERFLOW) +T(RN, 0x1p-126,-0x1.fffffep+127, 0x1.921fb6p+1, 0x1.777a5cp-2, INEXACT) +T(RN, -0x1p-126,-0x1.fffffep+127, -0x1.921fb6p+1, -0x1.777a5cp-2, INEXACT) +T(RZ, 0x1p-126, 0x1.fffffep+127, 0x0p+0,-0x1.000002p-105, INEXACT|UNDERFLOW) +T(RZ, -0x1p-126, 0x1.fffffep+127, -0x0p+0, 0x1.000002p-105, INEXACT|UNDERFLOW) +T(RZ, 0x1p-126,-0x1.fffffep+127, 0x1.921fb4p+1, -0x1.4442d2p-1, INEXACT) +T(RZ, -0x1p-126,-0x1.fffffep+127, -0x1.921fb4p+1, 0x1.4442d2p-1, INEXACT) +T(RU, 0x1p-126, 0x1.fffffep+127, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-126, 0x1.fffffep+127, -0x0p+0, 0x1.000002p-105, INEXACT|UNDERFLOW) +T(RU, 0x1p-126,-0x1.fffffep+127, 0x1.921fb6p+1, 0x1.777a5cp-2, INEXACT) +T(RU, -0x1p-126,-0x1.fffffep+127, -0x1.921fb4p+1, 0x1.4442d2p-1, INEXACT) +T(RD, 0x1p-126, 0x1.fffffep+127, 0x0p+0,-0x1.000002p-105, INEXACT|UNDERFLOW) +T(RD, -0x1p-126, 0x1.fffffep+127, -0x1p-149, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-126,-0x1.fffffep+127, 0x1.921fb4p+1, -0x1.4442d2p-1, INEXACT) +T(RD, -0x1p-126,-0x1.fffffep+127, -0x1.921fb6p+1, -0x1.777a5cp-2, INEXACT) +// atan2s(+-x,+x) = +-pi/4 for normal x +T(RN, 0x1p-126, 0x1p-126, 0x1.921fb6p-1, 0x1.777a5cp-2, INEXACT) +T(RN, -0x1p-126, 0x1p-126, -0x1.921fb6p-1, -0x1.777a5cp-2, INEXACT) +T(RN, 0x1.fffffep+127, 0x1.fffffep+127, 0x1.921fb6p-1, 0x1.777a5cp-2, INEXACT) +T(RN,-0x1.fffffep+127, 0x1.fffffep+127, -0x1.921fb6p-1, -0x1.777a5cp-2, INEXACT) +// atan2s(+-x,-x) = +-3pi/4 for normal x +T(RN, 0x1p-126, -0x1p-126, 0x1.2d97c8p+1, 0x1.99bc5cp-6, INEXACT) +T(RN, -0x1p-126, -0x1p-126, -0x1.2d97c8p+1, -0x1.99bc5cp-6, INEXACT) +T(RN, 0x1p+0, -0x1p+0, 0x1.2d97c8p+1, 0x1.99bc5cp-6, INEXACT) +T(RN, -0x1p+0, -0x1p+0, -0x1.2d97c8p+1, -0x1.99bc5cp-6, INEXACT) +T(RN, 0x1.fffffep+127,-0x1.fffffep+127, 0x1.2d97c8p+1, 0x1.99bc5cp-6, INEXACT) +T(RN,-0x1.fffffep+127,-0x1.fffffep+127, -0x1.2d97c8p+1, -0x1.99bc5cp-6, INEXACT) +// random arguments between -2.0 and 2.0 +T(RN, -0x1.13284cp-1, 0x1.6ca8ep+0, -0x1.716d2p-2, 0x1.90111p-3, INEXACT) +T(RN, 0x1.c2ca6p+0, -0x1.55f12p+0, 0x1.1c206ep+1, 0x1.1ac042p-2, INEXACT) +T(RN, -0x1.15679ep-1, -0x1.41e132p-4, -0x1.b6ff44p+0, -0x1.2ecaf4p-4, INEXACT) +T(RN, 0x1.281b0ep+0, 0x1.b5ce34p+0, 0x1.30789cp-1, 0x1.17e61ap-3, INEXACT) +T(RN, -0x1.583482p-2, -0x1.ea8224p+0, -0x1.7be508p+1, 0x1.e4c608p-3, INEXACT) +T(RN, -0x1.aae18p-1, 0x1.7a9da2p-4, -0x1.75db7cp+0, 0x1.483b7cp-6, INEXACT) +T(RN, -0x1.845p+0, 0x1.6ca322p+0, -0x1.a237b2p-1, -0x1.e3262p-3, INEXACT) +T(RN, -0x1.fe09bep+0, -0x1.ff6c7ep+0, -0x1.2dc43cp+1, 0x1.348c12p-4, INEXACT) +T(RN, -0x1.d24c82p-1, 0x1.29b682p+0, -0x1.5428a2p-1, 0x1.e59fe4p-3, INEXACT) +T(RN, 0x1.25ea7ep-1, 0x1.f99598p-1, 0x1.0d9c96p-1, -0x1.3ef8ecp-7, INEXACT) +// atan2s involve nan +T(RN, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RN, 0x1p+0, nan, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-149, nan, 0x0p+0, 0) +T(RN, nan,-0x1.fffffep+127, nan, 0x0p+0, 0) +T(RN, nan, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, nan, 0x0p+0, 0) +T(RZ, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RZ, 0x1p+0, nan, nan, 0x0p+0, 0) +T(RZ, nan, 0x1p-149, nan, 0x0p+0, 0) +T(RZ, nan,-0x1.fffffep+127, nan, 0x0p+0, 0) +T(RZ, nan, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, nan, 0x0p+0, 0) +T(RU, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RU, 0x1p+0, nan, nan, 0x0p+0, 0) +T(RU, nan, 0x1p-149, nan, 0x0p+0, 0) +T(RU, nan,-0x1.fffffep+127, nan, 0x0p+0, 0) +T(RU, nan, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, nan, 0x0p+0, 0) +T(RD, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RD, 0x1p+0, nan, nan, 0x0p+0, 0) +T(RD, nan, 0x1p-149, nan, 0x0p+0, 0) +T(RD, nan,-0x1.fffffep+127, nan, 0x0p+0, 0) +T(RD, nan, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, nan, 0x0p+0, 0) +// atan2s(+-(anything but inf and nan), +inf) is +-0 +T(RN, 0x1p-149, inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.fffffep+127, inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-149, inf, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.fffffep+127, inf, -0x0p+0, 0x0p+0, 0) +// atan2s(+-(anything but inf and nan), -inf) is +-pi +T(RN, 0x1p-149, -inf, 0x1.921fb6p+1, 0x1.777a5cp-2, INEXACT) +T(RN, 0x1.fffffep+127, -inf, 0x1.921fb6p+1, 0x1.777a5cp-2, INEXACT) +T(RN, -0x1p-149, -inf, -0x1.921fb6p+1, -0x1.777a5cp-2, INEXACT) +T(RN,-0x1.fffffep+127, -inf, -0x1.921fb6p+1, -0x1.777a5cp-2, INEXACT) +// atan2s(+-inf,+inf ) is +-pi/4 +T(RN, inf, inf, 0x1.921fb6p-1, 0x1.777a5cp-2, INEXACT) +T(RN, -inf, inf, -0x1.921fb6p-1, -0x1.777a5cp-2, INEXACT) +// atan2s(+-inf,-inf ) is +-3pi/4 +T(RN, inf, -inf, 0x1.2d97c8p+1, 0x1.99bc5cp-6, INEXACT) +T(RN, -inf, -inf, -0x1.2d97c8p+1, -0x1.99bc5cp-6, INEXACT) +// atan2s(+-inf, (anything but,0,nan, and inf)) is +-pi/2 +T(RN, inf, 0x1p-149, 0x1.921fb6p+0, 0x1.777a5cp-2, INEXACT) +T(RN, inf, -0x1p-149, 0x1.921fb6p+0, 0x1.777a5cp-2, INEXACT) +T(RN, inf, 0x1.fffffep+127, 0x1.921fb6p+0, 0x1.777a5cp-2, INEXACT) +T(RN, inf,-0x1.fffffep+127, 0x1.921fb6p+0, 0x1.777a5cp-2, INEXACT) +T(RN, -inf, 0x1p-149, -0x1.921fb6p+0, -0x1.777a5cp-2, INEXACT) +T(RN, -inf, -0x1p-149, -0x1.921fb6p+0, -0x1.777a5cp-2, INEXACT) +T(RN, -inf, 0x1.fffffep+127, -0x1.921fb6p+0, -0x1.777a5cp-2, INEXACT) +T(RN, -inf,-0x1.fffffep+127, -0x1.921fb6p+0, -0x1.777a5cp-2, INEXACT) diff --git a/test/musl/src/math/ucb/atanf.h b/test/musl/src/math/ucb/atanf.h new file mode 100644 index 00000000..a6fd54b9 --- /dev/null +++ b/test/musl/src/math/ucb/atanf.h @@ -0,0 +1,229 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// atans(+-max) is +-pi/2 +T(RN, 0x1.fffffep+127, 0x1.921fb6p+0, 0x1.777a5cp-2, INEXACT) +T(RN,-0x1.fffffep+127, -0x1.921fb6p+0, -0x1.777a5cp-2, INEXACT) +// atans(+-1) is +-pi/4 +T(RN, 0x1p+0, 0x1.921fb6p-1, 0x1.777a5cp-2, INEXACT) +T(RN, -0x1p+0, -0x1.921fb6p-1, -0x1.777a5cp-2, INEXACT) +// atans(tiny) is tiny +T(RN, 0x1p-29, 0x1p-29, 0x1.555556p-37, INEXACT) +T(RN, -0x1p-29, -0x1p-29, -0x1.555556p-37, INEXACT) +T(RN, 0x1p-126, 0x1p-126, 0x0p+0, INEXACT) +T(RN, -0x1p-126, -0x1p-126, 0x0p+0, INEXACT) +T(RZ, 0x1p-29, 0x1.fffffep-30, -0x1p+0, INEXACT) +T(RZ, -0x1p-29, -0x1.fffffep-30, 0x1p+0, INEXACT) +T(RZ, 0x1p-126, 0x1.fffffcp-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-126,-0x1.fffffcp-127, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-29, 0x1p-29, 0x1.555556p-37, INEXACT) +T(RU, -0x1p-29, -0x1.fffffep-30, 0x1p+0, INEXACT) +T(RU, 0x1p-126, 0x1p-126, 0x0p+0, INEXACT) +T(RU, -0x1p-126,-0x1.fffffcp-127, 0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-29, 0x1.fffffep-30, -0x1p+0, INEXACT) +T(RD, -0x1p-29, -0x1p-29, -0x1.555556p-37, INEXACT) +T(RD, 0x1p-126, 0x1.fffffcp-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-126, -0x1p-126, 0x0p+0, INEXACT) +// atans(+-0) is +-0 +T(RN, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +// random arguments between -2 and 2 +T(RN, -0x1.13284cp-1, -0x1.f8f75ep-2, -0x1.ffeb8ap-2, INEXACT) +T(RN, 0x1.6ca8ep+0, 0x1.eadc6ep-1, 0x1.cd861ap-2, INEXACT) +T(RN, 0x1.c2ca6p+0, 0x1.0de7f8p+0, -0x1.c7422ap-2, INEXACT) +T(RN, -0x1.55f12p+0, -0x1.db367cp-1, -0x1.c22522p-2, INEXACT) +T(RN, -0x1.15679ep-1, -0x1.fc7284p-2, 0x1.82b19ep-3, INEXACT) +T(RN, -0x1.41e132p-4, -0x1.413834p-4, -0x1.8b82b8p-2, INEXACT) +T(RN, 0x1.281b0ep+0, 0x1.b74042p-1, 0x1.b8739ep-3, INEXACT) +T(RN, 0x1.b5ce34p+0, 0x1.0aab58p+0, -0x1.2c3954p-2, INEXACT) +T(RN, -0x1.583482p-2, -0x1.4c0e14p-2, -0x1.6847fap-3, INEXACT) +T(RN, -0x1.ea8224p+0, -0x1.16fb9cp+0, -0x1.d09d38p-2, INEXACT) +T(RZ, -0x1.13284cp-1, -0x1.f8f75cp-2, 0x1.000a3ap-1, INEXACT) +T(RZ, 0x1.6ca8ep+0, 0x1.eadc6cp-1, -0x1.193cf2p-1, INEXACT) +T(RZ, 0x1.c2ca6p+0, 0x1.0de7f8p+0, -0x1.c7422ap-2, INEXACT) +T(RZ, -0x1.55f12p+0, -0x1.db367ap-1, 0x1.1eed6ep-1, INEXACT) +T(RZ, -0x1.15679ep-1, -0x1.fc7284p-2, 0x1.82b19ep-3, INEXACT) +T(RZ, -0x1.41e132p-4, -0x1.413832p-4, 0x1.3a3ea4p-1, INEXACT) +T(RZ, 0x1.281b0ep+0, 0x1.b7404p-1, -0x1.91e318p-1, INEXACT) +T(RZ, 0x1.b5ce34p+0, 0x1.0aab58p+0, -0x1.2c3954p-2, INEXACT) +T(RZ, -0x1.583482p-2, -0x1.4c0e12p-2, 0x1.a5ee02p-1, INEXACT) +T(RZ, -0x1.ea8224p+0, -0x1.16fb9ap+0, 0x1.17b164p-1, INEXACT) +T(RU, -0x1.13284cp-1, -0x1.f8f75cp-2, 0x1.000a3ap-1, INEXACT) +T(RU, 0x1.6ca8ep+0, 0x1.eadc6ep-1, 0x1.cd861ap-2, INEXACT) +T(RU, 0x1.c2ca6p+0, 0x1.0de7fap+0, 0x1.1c5eecp-1, INEXACT) +T(RU, -0x1.55f12p+0, -0x1.db367ap-1, 0x1.1eed6ep-1, INEXACT) +T(RU, -0x1.15679ep-1, -0x1.fc7284p-2, 0x1.82b19ep-3, INEXACT) +T(RU, -0x1.41e132p-4, -0x1.413832p-4, 0x1.3a3ea4p-1, INEXACT) +T(RU, 0x1.281b0ep+0, 0x1.b74042p-1, 0x1.b8739ep-3, INEXACT) +T(RU, 0x1.b5ce34p+0, 0x1.0aab5ap+0, 0x1.69e356p-1, INEXACT) +T(RU, -0x1.583482p-2, -0x1.4c0e12p-2, 0x1.a5ee02p-1, INEXACT) +T(RU, -0x1.ea8224p+0, -0x1.16fb9ap+0, 0x1.17b164p-1, INEXACT) +T(RD, -0x1.13284cp-1, -0x1.f8f75ep-2, -0x1.ffeb8ap-2, INEXACT) +T(RD, 0x1.6ca8ep+0, 0x1.eadc6cp-1, -0x1.193cf2p-1, INEXACT) +T(RD, 0x1.c2ca6p+0, 0x1.0de7f8p+0, -0x1.c7422ap-2, INEXACT) +T(RD, -0x1.55f12p+0, -0x1.db367cp-1, -0x1.c22522p-2, INEXACT) +T(RD, -0x1.15679ep-1, -0x1.fc7286p-2, -0x1.9f5398p-1, INEXACT) +T(RD, -0x1.41e132p-4, -0x1.413834p-4, -0x1.8b82b8p-2, INEXACT) +T(RD, 0x1.281b0ep+0, 0x1.b7404p-1, -0x1.91e318p-1, INEXACT) +T(RD, 0x1.b5ce34p+0, 0x1.0aab58p+0, -0x1.2c3954p-2, INEXACT) +T(RD, -0x1.583482p-2, -0x1.4c0e14p-2, -0x1.6847fap-3, INEXACT) +T(RD, -0x1.ea8224p+0, -0x1.16fb9cp+0, -0x1.d09d38p-2, INEXACT) +// atans(+-inf) is +-pi/2 +T(RN, inf, 0x1.921fb6p+0, 0x1.777a5cp-2, INEXACT) +T(RN, -inf, -0x1.921fb6p+0, -0x1.777a5cp-2, INEXACT) +// atans(nan) is nan +T(RN, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, 0x1.000002p-126, 0x1p-126, -0x1p+0, INEXACT) +T(RD, 0x1.000004p-126, 0x1.000002p-126, -0x1p+0, INEXACT) +T(RD, 0x1p-125, 0x1.fffffep-126, -0x1p+0, INEXACT) +T(RD, 0x1p-124, 0x1.fffffep-125, -0x1p+0, INEXACT) +T(RD,-0x1.000002p-126,-0x1.000002p-126, 0x0p+0, INEXACT) +T(RD,-0x1.000004p-126,-0x1.000004p-126, 0x0p+0, INEXACT) +T(RD,-0x1.fffff6p-126,-0x1.fffff6p-126, 0x0p+0, INEXACT) +T(RD, -0x1p-125, -0x1p-125, 0x0p+0, INEXACT) +T(RD,-0x1.000006p-125,-0x1.000006p-125, 0x0p+0, INEXACT) +T(RD, -0x1p-124, -0x1p-124, 0x0p+0, INEXACT) +T(RD, 0x1p-149, 0x0p+0, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-148, 0x1p-149, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-128, 0x1.fffffp-129, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-127, 0x1.fffff8p-128, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.fffff8p-127, 0x1.fffff4p-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.fffffcp-127, 0x1.fffff8p-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-149, -0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-148, -0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1.2p-146, -0x1.2p-146, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-128, -0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-127, -0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.fffff8p-127,-0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.fffffcp-127,-0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.8p-27, 0x1.7ffffep-27, -0x1p+0, INEXACT) +T(RD, 0x1p-12, 0x1.fffffep-13, -0x1.555556p-1, INEXACT) +T(RD, -0x1.8p-27, -0x1.8p-27, -0x1.2p-31, INEXACT) +T(RD, -0x1p-12, -0x1p-12, -0x1.555554p-3, INEXACT) +T(RN, 0x1.000002p-126, 0x1.000002p-126, 0x0p+0, INEXACT) +T(RN, 0x1.000004p-126, 0x1.000004p-126, 0x0p+0, INEXACT) +T(RN, 0x1.fffff6p-126, 0x1.fffff6p-126, 0x0p+0, INEXACT) +T(RN, 0x1p-125, 0x1p-125, 0x0p+0, INEXACT) +T(RN, 0x1.000006p-125, 0x1.000006p-125, 0x0p+0, INEXACT) +T(RN, 0x1p-124, 0x1p-124, 0x0p+0, INEXACT) +T(RN, 0x1.8p-27, 0x1.8p-27, 0x1.2p-31, INEXACT) +T(RN, 0x1p-12, 0x1p-12, 0x1.555554p-3, INEXACT) +T(RN,-0x1.000002p-126,-0x1.000002p-126, 0x0p+0, INEXACT) +T(RN,-0x1.000004p-126,-0x1.000004p-126, 0x0p+0, INEXACT) +T(RN,-0x1.fffff6p-126,-0x1.fffff6p-126, 0x0p+0, INEXACT) +T(RN, -0x1p-125, -0x1p-125, 0x0p+0, INEXACT) +T(RN,-0x1.000006p-125,-0x1.000006p-125, 0x0p+0, INEXACT) +T(RN, -0x1p-124, -0x1p-124, 0x0p+0, INEXACT) +T(RN, -0x1.8p-27, -0x1.8p-27, -0x1.2p-31, INEXACT) +T(RN, -0x1p-12, -0x1p-12, -0x1.555554p-3, INEXACT) +T(RN, 0x1p-149, 0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-148, 0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.2p-146, 0x1.2p-146, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-128, 0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-127, 0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.fffff8p-127, 0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-149, -0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-148, -0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1.2p-146, -0x1.2p-146, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-128, -0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-127, -0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.fffff8p-127,-0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.fffffcp-127,-0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.000002p-126, 0x1.000002p-126, 0x0p+0, INEXACT) +T(RU, 0x1.000004p-126, 0x1.000004p-126, 0x0p+0, INEXACT) +T(RU, 0x1.fffff6p-126, 0x1.fffff6p-126, 0x0p+0, INEXACT) +T(RU, 0x1p-125, 0x1p-125, 0x0p+0, INEXACT) +T(RU, 0x1.000006p-125, 0x1.000006p-125, 0x0p+0, INEXACT) +T(RU, 0x1p-124, 0x1p-124, 0x0p+0, INEXACT) +T(RU,-0x1.000002p-126, -0x1p-126, 0x1p+0, INEXACT) +T(RU,-0x1.000004p-126,-0x1.000002p-126, 0x1p+0, INEXACT) +T(RU, -0x1p-125,-0x1.fffffep-126, 0x1p+0, INEXACT) +T(RU, -0x1p-124,-0x1.fffffep-125, 0x1p+0, INEXACT) +T(RU, 0x1p-149, 0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-148, 0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.2p-146, 0x1.2p-146, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-128, 0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-127, 0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.fffff8p-127, 0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-149, -0x0p+0, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-148, -0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-128, -0x1.fffffp-129, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-127,-0x1.fffff8p-128, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.fffff8p-127,-0x1.fffff4p-127, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.fffffcp-127,-0x1.fffff8p-127, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.8p-27, 0x1.8p-27, 0x1.2p-31, INEXACT) +T(RU, 0x1p-12, 0x1p-12, 0x1.555554p-3, INEXACT) +T(RU, -0x1.8p-27, -0x1.7ffffep-27, 0x1p+0, INEXACT) +T(RU, -0x1p-12, -0x1.fffffep-13, 0x1.555556p-1, INEXACT) +T(RZ, 0x1.000002p-126, 0x1p-126, -0x1p+0, INEXACT) +T(RZ, 0x1.000004p-126, 0x1.000002p-126, -0x1p+0, INEXACT) +T(RZ, 0x1p-125, 0x1.fffffep-126, -0x1p+0, INEXACT) +T(RZ, 0x1p-124, 0x1.fffffep-125, -0x1p+0, INEXACT) +T(RZ,-0x1.000002p-126, -0x1p-126, 0x1p+0, INEXACT) +T(RZ,-0x1.000004p-126,-0x1.000002p-126, 0x1p+0, INEXACT) +T(RZ, -0x1p-125,-0x1.fffffep-126, 0x1p+0, INEXACT) +T(RZ, -0x1p-124,-0x1.fffffep-125, 0x1p+0, INEXACT) +T(RZ, 0x1p-149, 0x0p+0, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-148, 0x1p-149, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-128, 0x1.fffffp-129, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-127, 0x1.fffff8p-128, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.fffff8p-127, 0x1.fffff4p-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.fffffcp-127, 0x1.fffff8p-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-149, -0x0p+0, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-148, -0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-128, -0x1.fffffp-129, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-127,-0x1.fffff8p-128, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.fffff8p-127,-0x1.fffff4p-127, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.fffffcp-127,-0x1.fffff8p-127, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.8p-27, 0x1.7ffffep-27, -0x1p+0, INEXACT) +T(RZ, 0x1p-12, 0x1.fffffep-13, -0x1.555556p-1, INEXACT) +T(RZ, -0x1.8p-27, -0x1.7ffffep-27, 0x1p+0, INEXACT) +T(RZ, -0x1p-12, -0x1.fffffep-13, 0x1.555556p-1, INEXACT) diff --git a/test/musl/src/math/ucb/ceil.h b/test/musl/src/math/ucb/ceil.h new file mode 100644 index 00000000..d0cc7c35 --- /dev/null +++ b/test/musl/src/math/ucb/ceil.h @@ -0,0 +1,378 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// ceild(integer) is itself +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, 0x1.fffffffffffffp+52, 0x1.fffffffffffffp+52, 0x0p+0, 0) +T(RN, -0x1.fffffffffffffp+52, -0x1.fffffffffffffp+52, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp+52, 0x1.fffffffffffffp+52, 0x0p+0, 0) +T(RZ, -0x1.fffffffffffffp+52, -0x1.fffffffffffffp+52, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RZ,-0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp+52, 0x1.fffffffffffffp+52, 0x0p+0, 0) +T(RU, -0x1.fffffffffffffp+52, -0x1.fffffffffffffp+52, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RU,-0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+52, 0x1.fffffffffffffp+52, 0x0p+0, 0) +T(RD, -0x1.fffffffffffffp+52, -0x1.fffffffffffffp+52, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RD,-0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023, 0x0p+0, 0) +// integer - ulp +T(RN, 0x1.eeeeeeeeeeeefp+50, 0x1.eeeeeeeeeeefp+50, 0x0p+0, INEXACT) +T(RN, -0x1.eeeeeeeeeeeefp+50, -0x1.eeeeeeeeeeeecp+50, 0x0p+0, INEXACT) +T(RN, 0x1.fffffffffffffp+0, 0x1p+1, 0x0p+0, INEXACT) +T(RN, -0x1.fffffffffffffp+0, -0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.fffffffffffffp-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.fffffffffffffp-1, -0x0p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.eeeeeeeeeeeefp+50, 0x1.eeeeeeeeeeefp+50, 0x0p+0, INEXACT) +T(RZ, -0x1.eeeeeeeeeeeefp+50, -0x1.eeeeeeeeeeeecp+50, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffffffffffp+0, 0x1p+1, 0x0p+0, INEXACT) +T(RZ, -0x1.fffffffffffffp+0, -0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffffffffffp-1, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.fffffffffffffp-1, -0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1.eeeeeeeeeeeefp+50, 0x1.eeeeeeeeeeefp+50, 0x0p+0, INEXACT) +T(RU, -0x1.eeeeeeeeeeeefp+50, -0x1.eeeeeeeeeeeecp+50, 0x0p+0, INEXACT) +T(RU, 0x1.fffffffffffffp+0, 0x1p+1, 0x0p+0, INEXACT) +T(RU, -0x1.fffffffffffffp+0, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.fffffffffffffp-1, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.fffffffffffffp-1, -0x0p+0, 0x0p+0, INEXACT) +T(RD, 0x1.eeeeeeeeeeeefp+50, 0x1.eeeeeeeeeeefp+50, 0x0p+0, INEXACT) +T(RD, -0x1.eeeeeeeeeeeefp+50, -0x1.eeeeeeeeeeeecp+50, 0x0p+0, INEXACT) +T(RD, 0x1.fffffffffffffp+0, 0x1p+1, 0x0p+0, INEXACT) +T(RD, -0x1.fffffffffffffp+0, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.fffffffffffffp-1, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.fffffffffffffp-1, -0x0p+0, 0x0p+0, INEXACT) +// integer + ulp +T(RN, 0x1.eeeeeeeeeeeedp+50, 0x1.eeeeeeeeeeefp+50, 0x0p+0, INEXACT) +T(RN, -0x1.eeeeeeeeeeeedp+50, -0x1.eeeeeeeeeeeecp+50, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RN, -0x1.0000000000001p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1022, -0x0p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.eeeeeeeeeeeedp+50, 0x1.eeeeeeeeeeefp+50, 0x0p+0, INEXACT) +T(RZ, -0x1.eeeeeeeeeeeedp+50, -0x1.eeeeeeeeeeeecp+50, 0x0p+0, INEXACT) +T(RZ, 0x1.0000000000001p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RZ, -0x1.0000000000001p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-1022, -0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1.eeeeeeeeeeeedp+50, 0x1.eeeeeeeeeeefp+50, 0x0p+0, INEXACT) +T(RU, -0x1.eeeeeeeeeeeedp+50, -0x1.eeeeeeeeeeeecp+50, 0x0p+0, INEXACT) +T(RU, 0x1.0000000000001p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RU, -0x1.0000000000001p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1022, -0x0p+0, 0x0p+0, INEXACT) +T(RD, 0x1.eeeeeeeeeeeedp+50, 0x1.eeeeeeeeeeefp+50, 0x0p+0, INEXACT) +T(RD, -0x1.eeeeeeeeeeeedp+50, -0x1.eeeeeeeeeeeecp+50, 0x0p+0, INEXACT) +T(RD, 0x1.0000000000001p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RD, -0x1.0000000000001p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1022, -0x0p+0, 0x0p+0, INEXACT) +// half way case, half way case +- ulp +T(RN, 0x1.fffffffffffffp-2, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000001p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.fffffffffffffp-2, -0x0p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RN, -0x1.0000000000001p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1.7ffffffffffffp+0, 0x1p+1, 0x0p+0, INEXACT) +T(RN, 0x1.8p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RN, 0x1.8000000000001p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RN, -0x1.7ffffffffffffp+0, -0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.8p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.8000000000001p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.3ffffffffffffp+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RN, 0x1.4p+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RN, 0x1.4000000000001p+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RN, -0x1.3ffffffffffffp+1, -0x1p+1, 0x0p+0, INEXACT) +T(RN, -0x1.4p+1, -0x1p+1, 0x0p+0, INEXACT) +T(RN, -0x1.4000000000001p+1, -0x1p+1, 0x0p+0, INEXACT) +T(RN, 0x1.eeeeeeeeeeee7p+48, 0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +T(RN, 0x1.eeeeeeeeeeee8p+48, 0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +T(RN, 0x1.eeeeeeeeeeee9p+48, 0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +T(RN, -0x1.eeeeeeeeeeee7p+48, -0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +T(RN, -0x1.eeeeeeeeeeee8p+48, -0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +T(RN, -0x1.eeeeeeeeeeee9p+48, -0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffffffffffp-2, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.0000000000001p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.fffffffffffffp-2, -0x0p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.0000000000001p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.7ffffffffffffp+0, 0x1p+1, 0x0p+0, INEXACT) +T(RZ, 0x1.8p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RZ, 0x1.8000000000001p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RZ, -0x1.7ffffffffffffp+0, -0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.8p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.8000000000001p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.3ffffffffffffp+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RZ, 0x1.4p+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RZ, 0x1.4000000000001p+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RZ, -0x1.3ffffffffffffp+1, -0x1p+1, 0x0p+0, INEXACT) +T(RZ, -0x1.4p+1, -0x1p+1, 0x0p+0, INEXACT) +T(RZ, -0x1.4000000000001p+1, -0x1p+1, 0x0p+0, INEXACT) +T(RZ, 0x1.eeeeeeeeeeee7p+48, 0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +T(RZ, 0x1.eeeeeeeeeeee8p+48, 0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +T(RZ, 0x1.eeeeeeeeeeee9p+48, 0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +T(RZ, -0x1.eeeeeeeeeeee7p+48, -0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +T(RZ, -0x1.eeeeeeeeeeee8p+48, -0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +T(RZ, -0x1.eeeeeeeeeeee9p+48, -0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +T(RU, 0x1.fffffffffffffp-2, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.0000000000001p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.fffffffffffffp-2, -0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1.0000000000001p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1.7ffffffffffffp+0, 0x1p+1, 0x0p+0, INEXACT) +T(RU, 0x1.8p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RU, 0x1.8000000000001p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RU, -0x1.7ffffffffffffp+0, -0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.8p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.8000000000001p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.3ffffffffffffp+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RU, 0x1.4p+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RU, 0x1.4000000000001p+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RU, -0x1.3ffffffffffffp+1, -0x1p+1, 0x0p+0, INEXACT) +T(RU, -0x1.4p+1, -0x1p+1, 0x0p+0, INEXACT) +T(RU, -0x1.4000000000001p+1, -0x1p+1, 0x0p+0, INEXACT) +T(RU, 0x1.eeeeeeeeeeee7p+48, 0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +T(RU, 0x1.eeeeeeeeeeee8p+48, 0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +T(RU, 0x1.eeeeeeeeeeee9p+48, 0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +T(RU, -0x1.eeeeeeeeeeee7p+48, -0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +T(RU, -0x1.eeeeeeeeeeee8p+48, -0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +T(RU, -0x1.eeeeeeeeeeee9p+48, -0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +T(RD, 0x1.fffffffffffffp-2, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.0000000000001p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.fffffffffffffp-2, -0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1.0000000000001p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RD, 0x1.7ffffffffffffp+0, 0x1p+1, 0x0p+0, INEXACT) +T(RD, 0x1.8p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RD, 0x1.8000000000001p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RD, -0x1.7ffffffffffffp+0, -0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.8p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.8000000000001p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.3ffffffffffffp+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RD, 0x1.4p+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RD, 0x1.4000000000001p+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RD, -0x1.3ffffffffffffp+1, -0x1p+1, 0x0p+0, INEXACT) +T(RD, -0x1.4p+1, -0x1p+1, 0x0p+0, INEXACT) +T(RD, -0x1.4000000000001p+1, -0x1p+1, 0x0p+0, INEXACT) +T(RD, 0x1.eeeeeeeeeeee7p+48, 0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +T(RD, 0x1.eeeeeeeeeeee8p+48, 0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +T(RD, 0x1.eeeeeeeeeeee9p+48, 0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +T(RD, -0x1.eeeeeeeeeeee7p+48, -0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +T(RD, -0x1.eeeeeeeeeeee8p+48, -0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +T(RD, -0x1.eeeeeeeeeeee9p+48, -0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +// random arguments between -100,100 +T(RN, -0x1.adeefb2b5006dp+4, -0x1.ap+4, 0x0p+0, INEXACT) +T(RN, 0x1.1ce3efb825911p+6, 0x1.2p+6, 0x0p+0, INEXACT) +T(RN, 0x1.602e109de7505p+6, 0x1.64p+6, 0x0p+0, INEXACT) +T(RN, -0x1.0b245fba96889p+6, -0x1.08p+6, 0x0p+0, INEXACT) +T(RN, -0x1.b171ee27084ddp+4, -0x1.bp+4, 0x0p+0, INEXACT) +T(RN, -0x1.f6eff1b093c41p+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RN, 0x1.ceaa3d18455f5p+5, 0x1.dp+5, 0x0p+0, INEXACT) +T(RN, 0x1.560914a51b239p+6, 0x1.58p+6, 0x0p+0, INEXACT) +T(RN, -0x1.0ce901079de4dp+4, -0x1p+4, 0x0p+0, INEXACT) +T(RN, -0x1.7f35b3103b871p+6, -0x1.7cp+6, 0x0p+0, INEXACT) +// inf,nan, and subnormal number +T(RN, 0x1p-1074, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1074, -0x0p+0, 0x0p+0, INEXACT) +T(RN, inf, inf, 0x0p+0, 0) +T(RN, -inf, -inf, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RZ, 0x1p-1074, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-1074, -0x0p+0, 0x0p+0, INEXACT) +T(RZ, inf, inf, 0x0p+0, 0) +T(RZ, -inf, -inf, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RU, 0x1p-1074, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1074, -0x0p+0, 0x0p+0, INEXACT) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RD, 0x1p-1074, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1074, -0x0p+0, 0x0p+0, INEXACT) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, 0x1.2p+12, 0x1.2p+12, 0x0p+0, 0) +T(RD, 0x1p+23, 0x1p+23, 0x0p+0, 0) +T(RD, 0x1.ffffffffffffep+51, 0x1.ffffffffffffep+51, 0x0p+0, 0) +T(RD, 0x1p+52, 0x1p+52, 0x0p+0, 0) +T(RD, 0x1.0000000000001p+52, 0x1.0000000000001p+52, 0x0p+0, 0) +T(RD, 0x1.fffffffffffeep+1014, 0x1.fffffffffffeep+1014, 0x0p+0, 0) +T(RD, 0x1.ffffffffffff7p+1014, 0x1.ffffffffffff7p+1014, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1014, 0x1.fffffffffffffp+1014, 0x0p+0, 0) +T(RD, 0x1p+1015, 0x1p+1015, 0x0p+0, 0) +T(RD, -0x1.2p+12, -0x1.2p+12, 0x0p+0, 0) +T(RD, -0x1p+23, -0x1p+23, 0x0p+0, 0) +T(RD, -0x1.ffffffffffffep+51, -0x1.ffffffffffffep+51, 0x0p+0, 0) +T(RD, -0x1p+52, -0x1p+52, 0x0p+0, 0) +T(RD, -0x1.0000000000001p+52, -0x1.0000000000001p+52, 0x0p+0, 0) +T(RD,-0x1.fffffffffffeep+1014,-0x1.fffffffffffeep+1014, 0x0p+0, 0) +T(RD,-0x1.ffffffffffff7p+1014,-0x1.ffffffffffff7p+1014, 0x0p+0, 0) +T(RD,-0x1.fffffffffffffp+1014,-0x1.fffffffffffffp+1014, 0x0p+0, 0) +T(RD, -0x1p+1015, -0x1p+1015, 0x0p+0, 0) +T(RD, 0x1.ep-1, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.fffffffffffffp+22, 0x1p+23, 0x0p+0, INEXACT) +T(RD, 0x1.ffffffffffffdp+51, 0x1.ffffffffffffep+51, 0x0p+0, INEXACT) +T(RD, 0x1.fffffffffffffp+51, 0x1p+52, 0x0p+0, INEXACT) +T(RD, -0x1.0000000000001p+23, -0x1p+23, 0x0p+0, INEXACT) +T(RD, -0x1.ffffffffffffdp+51, -0x1.ffffffffffffcp+51, 0x0p+0, INEXACT) +T(RD, -0x1.fffffffffffffp+51, -0x1.ffffffffffffep+51, 0x0p+0, INEXACT) +T(RD, nan, nan, 0x0p+0, 0) +T(RN, 0x1.2p+12, 0x1.2p+12, 0x0p+0, 0) +T(RN, 0x1p+23, 0x1p+23, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep+51, 0x1.ffffffffffffep+51, 0x0p+0, 0) +T(RN, 0x1p+52, 0x1p+52, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+52, 0x1.0000000000001p+52, 0x0p+0, 0) +T(RN, 0x1.fffffffffffeep+1014, 0x1.fffffffffffeep+1014, 0x0p+0, 0) +T(RN, 0x1.ffffffffffff7p+1014, 0x1.ffffffffffff7p+1014, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1014, 0x1.fffffffffffffp+1014, 0x0p+0, 0) +T(RN, 0x1p+1015, 0x1p+1015, 0x0p+0, 0) +T(RN, -0x1.2p+12, -0x1.2p+12, 0x0p+0, 0) +T(RN, -0x1p+23, -0x1p+23, 0x0p+0, 0) +T(RN, -0x1.ffffffffffffep+51, -0x1.ffffffffffffep+51, 0x0p+0, 0) +T(RN, -0x1p+52, -0x1p+52, 0x0p+0, 0) +T(RN, -0x1.0000000000001p+52, -0x1.0000000000001p+52, 0x0p+0, 0) +T(RN,-0x1.fffffffffffeep+1014,-0x1.fffffffffffeep+1014, 0x0p+0, 0) +T(RN,-0x1.ffffffffffff7p+1014,-0x1.ffffffffffff7p+1014, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1014,-0x1.fffffffffffffp+1014, 0x0p+0, 0) +T(RN, -0x1p+1015, -0x1p+1015, 0x0p+0, 0) +T(RN, 0x1.ep-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.fffffffffffffp+2, 0x1p+3, 0x0p+0, INEXACT) +T(RN, 0x1.ffffffffffff8p+8, 0x1p+9, 0x0p+0, INEXACT) +T(RN, 0x1.fffffffffffffp+17, 0x1p+18, 0x0p+0, INEXACT) +T(RN, 0x1.fffffffffffffp+22, 0x1p+23, 0x0p+0, INEXACT) +T(RN, 0x1.ffffffffffffdp+51, 0x1.ffffffffffffep+51, 0x0p+0, INEXACT) +T(RN, 0x1.fffffffffffffp+51, 0x1p+52, 0x0p+0, INEXACT) +T(RN,-0x1.ffffffffffffep-1023, -0x0p+0, 0x0p+0, INEXACT) +T(RN, -0x1.2p+2, -0x1p+2, 0x0p+0, INEXACT) +T(RN, -0x1.0000000000001p+3, -0x1p+3, 0x0p+0, INEXACT) +T(RN, -0x1.0000000000008p+9, -0x1p+9, 0x0p+0, INEXACT) +T(RN, -0x1.0000000000001p+18, -0x1p+18, 0x0p+0, INEXACT) +T(RN, -0x1.0000000000001p+23, -0x1p+23, 0x0p+0, INEXACT) +T(RN, -0x1.ffffffffffffdp+51, -0x1.ffffffffffffcp+51, 0x0p+0, INEXACT) +T(RN, -0x1.fffffffffffffp+51, -0x1.ffffffffffffep+51, 0x0p+0, INEXACT) +T(RN, nan, nan, 0x0p+0, 0) +T(RU, 0x1.2p+12, 0x1.2p+12, 0x0p+0, 0) +T(RU, 0x1p+23, 0x1p+23, 0x0p+0, 0) +T(RU, 0x1.ffffffffffffep+51, 0x1.ffffffffffffep+51, 0x0p+0, 0) +T(RU, 0x1p+52, 0x1p+52, 0x0p+0, 0) +T(RU, 0x1.0000000000001p+52, 0x1.0000000000001p+52, 0x0p+0, 0) +T(RU, 0x1.fffffffffffeep+1014, 0x1.fffffffffffeep+1014, 0x0p+0, 0) +T(RU, 0x1.ffffffffffff7p+1014, 0x1.ffffffffffff7p+1014, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp+1014, 0x1.fffffffffffffp+1014, 0x0p+0, 0) +T(RU, 0x1p+1015, 0x1p+1015, 0x0p+0, 0) +T(RU, -0x1.2p+12, -0x1.2p+12, 0x0p+0, 0) +T(RU, -0x1p+23, -0x1p+23, 0x0p+0, 0) +T(RU, -0x1.ffffffffffffep+51, -0x1.ffffffffffffep+51, 0x0p+0, 0) +T(RU, -0x1p+52, -0x1p+52, 0x0p+0, 0) +T(RU, -0x1.0000000000001p+52, -0x1.0000000000001p+52, 0x0p+0, 0) +T(RU,-0x1.fffffffffffeep+1014,-0x1.fffffffffffeep+1014, 0x0p+0, 0) +T(RU,-0x1.ffffffffffff7p+1014,-0x1.ffffffffffff7p+1014, 0x0p+0, 0) +T(RU,-0x1.fffffffffffffp+1014,-0x1.fffffffffffffp+1014, 0x0p+0, 0) +T(RU, -0x1p+1015, -0x1p+1015, 0x0p+0, 0) +T(RU, 0x1.ffffffffffffep-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.ep-1, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.2p+2, 0x1.4p+2, 0x0p+0, INEXACT) +T(RU, 0x1.fffffffffffffp+2, 0x1p+3, 0x0p+0, INEXACT) +T(RU, 0x1.0000000000001p+3, 0x1.2p+3, 0x0p+0, INEXACT) +T(RU, 0x1.ffffffffffff8p+8, 0x1p+9, 0x0p+0, INEXACT) +T(RU, 0x1.fffffffffffffp+17, 0x1p+18, 0x0p+0, INEXACT) +T(RU, 0x1.fffffffffffffp+22, 0x1p+23, 0x0p+0, INEXACT) +T(RU, 0x1.ffffffffffffdp+51, 0x1.ffffffffffffep+51, 0x0p+0, INEXACT) +T(RU, 0x1.fffffffffffffp+51, 0x1p+52, 0x0p+0, INEXACT) +T(RU,-0x1.ffffffffffffep-1023, -0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1.2p+2, -0x1p+2, 0x0p+0, INEXACT) +T(RU, -0x1.fffffffffffffp+2, -0x1.cp+2, 0x0p+0, INEXACT) +T(RU, -0x1.0000000000001p+3, -0x1p+3, 0x0p+0, INEXACT) +T(RU, -0x1.0000000000008p+9, -0x1p+9, 0x0p+0, INEXACT) +T(RU, -0x1.0000000000001p+18, -0x1p+18, 0x0p+0, INEXACT) +T(RU, -0x1.0000000000001p+23, -0x1p+23, 0x0p+0, INEXACT) +T(RU, -0x1.ffffffffffffdp+51, -0x1.ffffffffffffcp+51, 0x0p+0, INEXACT) +T(RU, -0x1.fffffffffffffp+51, -0x1.ffffffffffffep+51, 0x0p+0, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RZ, 0x1.2p+12, 0x1.2p+12, 0x0p+0, 0) +T(RZ, 0x1p+23, 0x1p+23, 0x0p+0, 0) +T(RZ, 0x1.ffffffffffffep+51, 0x1.ffffffffffffep+51, 0x0p+0, 0) +T(RZ, 0x1p+52, 0x1p+52, 0x0p+0, 0) +T(RZ, 0x1.0000000000001p+52, 0x1.0000000000001p+52, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffeep+1014, 0x1.fffffffffffeep+1014, 0x0p+0, 0) +T(RZ, 0x1.ffffffffffff7p+1014, 0x1.ffffffffffff7p+1014, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp+1014, 0x1.fffffffffffffp+1014, 0x0p+0, 0) +T(RZ, 0x1p+1015, 0x1p+1015, 0x0p+0, 0) +T(RZ, -0x1.2p+12, -0x1.2p+12, 0x0p+0, 0) +T(RZ, -0x1p+23, -0x1p+23, 0x0p+0, 0) +T(RZ, -0x1.ffffffffffffep+51, -0x1.ffffffffffffep+51, 0x0p+0, 0) +T(RZ, -0x1p+52, -0x1p+52, 0x0p+0, 0) +T(RZ, -0x1.0000000000001p+52, -0x1.0000000000001p+52, 0x0p+0, 0) +T(RZ,-0x1.fffffffffffeep+1014,-0x1.fffffffffffeep+1014, 0x0p+0, 0) +T(RZ,-0x1.ffffffffffff7p+1014,-0x1.ffffffffffff7p+1014, 0x0p+0, 0) +T(RZ,-0x1.fffffffffffffp+1014,-0x1.fffffffffffffp+1014, 0x0p+0, 0) +T(RZ, -0x1p+1015, -0x1p+1015, 0x0p+0, 0) +T(RZ, 0x1.ep-1, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffffffffffp+22, 0x1p+23, 0x0p+0, INEXACT) +T(RZ, 0x1.ffffffffffffdp+51, 0x1.ffffffffffffep+51, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffffffffffp+51, 0x1p+52, 0x0p+0, INEXACT) +T(RZ,-0x1.ffffffffffffep-1023, -0x0p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.2p+2, -0x1p+2, 0x0p+0, INEXACT) +T(RZ, -0x1.fffffffffffffp+2, -0x1.cp+2, 0x0p+0, INEXACT) +T(RZ, -0x1.0000000000001p+3, -0x1p+3, 0x0p+0, INEXACT) +T(RZ, -0x1.0000000000008p+9, -0x1p+9, 0x0p+0, INEXACT) +T(RZ, -0x1.0000000000001p+18, -0x1p+18, 0x0p+0, INEXACT) +T(RZ, -0x1.0000000000001p+23, -0x1p+23, 0x0p+0, INEXACT) +T(RZ, -0x1.ffffffffffffdp+51, -0x1.ffffffffffffcp+51, 0x0p+0, INEXACT) +T(RZ, -0x1.fffffffffffffp+51, -0x1.ffffffffffffep+51, 0x0p+0, INEXACT) +T(RZ, nan, nan, 0x0p+0, 0) diff --git a/test/musl/src/math/ucb/ceilf.h b/test/musl/src/math/ucb/ceilf.h new file mode 100644 index 00000000..920bb821 --- /dev/null +++ b/test/musl/src/math/ucb/ceilf.h @@ -0,0 +1,402 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// ceils(integer) is itself +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, 0x1.dffffep+24, 0x1.dffffep+24, 0x0p+0, 0) +T(RN, -0x1.dffffep+24, -0x1.dffffep+24, 0x0p+0, 0) +T(RN, 0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RN,-0x1.fffffep+127,-0x1.fffffep+127, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RZ, 0x1.dffffep+24, 0x1.dffffep+24, 0x0p+0, 0) +T(RZ, -0x1.dffffep+24, -0x1.dffffep+24, 0x0p+0, 0) +T(RZ, 0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RZ,-0x1.fffffep+127,-0x1.fffffep+127, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RU, 0x1.dffffep+24, 0x1.dffffep+24, 0x0p+0, 0) +T(RU, -0x1.dffffep+24, -0x1.dffffep+24, 0x0p+0, 0) +T(RU, 0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RU,-0x1.fffffep+127,-0x1.fffffep+127, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RD, 0x1.dffffep+24, 0x1.dffffep+24, 0x0p+0, 0) +T(RD, -0x1.dffffep+24, -0x1.dffffep+24, 0x0p+0, 0) +T(RD, 0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RD,-0x1.fffffep+127,-0x1.fffffep+127, 0x0p+0, 0) +// integer - ulp +T(RN, 0x1.fddddep+21, 0x1.fdddep+21, 0x0p+0, INEXACT) +T(RN, -0x1.fddddep+21, -0x1.fdddd8p+21, 0x0p+0, INEXACT) +T(RN, 0x1.fffffep+0, 0x1p+1, 0x0p+0, INEXACT) +T(RN, -0x1.fffffep+0, -0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.fffffep-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.fffffep-1, -0x0p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.fddddep+21, 0x1.fdddep+21, 0x0p+0, INEXACT) +T(RZ, -0x1.fddddep+21, -0x1.fdddd8p+21, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffep+0, 0x1p+1, 0x0p+0, INEXACT) +T(RZ, -0x1.fffffep+0, -0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffep-1, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.fffffep-1, -0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1.fddddep+21, 0x1.fdddep+21, 0x0p+0, INEXACT) +T(RU, -0x1.fddddep+21, -0x1.fdddd8p+21, 0x0p+0, INEXACT) +T(RU, 0x1.fffffep+0, 0x1p+1, 0x0p+0, INEXACT) +T(RU, -0x1.fffffep+0, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.fffffep-1, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.fffffep-1, -0x0p+0, 0x0p+0, INEXACT) +T(RD, 0x1.fddddep+21, 0x1.fdddep+21, 0x0p+0, INEXACT) +T(RD, -0x1.fddddep+21, -0x1.fdddd8p+21, 0x0p+0, INEXACT) +T(RD, 0x1.fffffep+0, 0x1p+1, 0x0p+0, INEXACT) +T(RD, -0x1.fffffep+0, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.fffffep-1, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.fffffep-1, -0x0p+0, 0x0p+0, INEXACT) +// integer + ulp +T(RN, 0x1.fddddap+21, 0x1.fdddep+21, 0x0p+0, INEXACT) +T(RN, -0x1.fddddap+21, -0x1.fdddd8p+21, 0x0p+0, INEXACT) +T(RN, 0x1.000002p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RN, -0x1.000002p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-126, -0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-149, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-149, -0x0p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.fddddap+21, 0x1.fdddep+21, 0x0p+0, INEXACT) +T(RZ, -0x1.fddddap+21, -0x1.fdddd8p+21, 0x0p+0, INEXACT) +T(RZ, 0x1.000002p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RZ, -0x1.000002p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-126, -0x0p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-149, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-149, -0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1.fddddap+21, 0x1.fdddep+21, 0x0p+0, INEXACT) +T(RU, -0x1.fddddap+21, -0x1.fdddd8p+21, 0x0p+0, INEXACT) +T(RU, 0x1.000002p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RU, -0x1.000002p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-126, -0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-149, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-149, -0x0p+0, 0x0p+0, INEXACT) +T(RD, 0x1.fddddap+21, 0x1.fdddep+21, 0x0p+0, INEXACT) +T(RD, -0x1.fddddap+21, -0x1.fdddd8p+21, 0x0p+0, INEXACT) +T(RD, 0x1.000002p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RD, -0x1.000002p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-126, -0x0p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-149, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-149, -0x0p+0, 0x0p+0, INEXACT) +// half way case, half way case +- ulp +T(RN, 0x1.fffffep-2, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.000002p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.fffffep-2, -0x0p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RN, -0x1.000002p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1.7ffffep+0, 0x1p+1, 0x0p+0, INEXACT) +T(RN, 0x1.8p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RN, 0x1.800002p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RN, -0x1.7ffffep+0, -0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.8p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.800002p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.3ffffep+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RN, 0x1.4p+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RN, 0x1.400002p+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RN, -0x1.3ffffep+1, -0x1p+1, 0x0p+0, INEXACT) +T(RN, -0x1.4p+1, -0x1p+1, 0x0p+0, INEXACT) +T(RN, -0x1.400002p+1, -0x1p+1, 0x0p+0, INEXACT) +T(RN, 0x1.fdddcep+19, 0x1.fdddep+19, 0x0p+0, INEXACT) +T(RN, 0x1.fddddp+19, 0x1.fdddep+19, 0x0p+0, INEXACT) +T(RN, 0x1.fdddd2p+19, 0x1.fdddep+19, 0x0p+0, INEXACT) +T(RN, -0x1.fdddcep+19, -0x1.fdddcp+19, 0x0p+0, INEXACT) +T(RN, -0x1.fddddp+19, -0x1.fdddcp+19, 0x0p+0, INEXACT) +T(RN, -0x1.fdddd2p+19, -0x1.fdddcp+19, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffep-2, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.000002p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.fffffep-2, -0x0p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.000002p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.7ffffep+0, 0x1p+1, 0x0p+0, INEXACT) +T(RZ, 0x1.8p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RZ, 0x1.800002p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RZ, -0x1.7ffffep+0, -0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.8p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.800002p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.3ffffep+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RZ, 0x1.4p+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RZ, 0x1.400002p+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RZ, -0x1.3ffffep+1, -0x1p+1, 0x0p+0, INEXACT) +T(RZ, -0x1.4p+1, -0x1p+1, 0x0p+0, INEXACT) +T(RZ, -0x1.400002p+1, -0x1p+1, 0x0p+0, INEXACT) +T(RZ, 0x1.fdddcep+19, 0x1.fdddep+19, 0x0p+0, INEXACT) +T(RZ, 0x1.fddddp+19, 0x1.fdddep+19, 0x0p+0, INEXACT) +T(RZ, 0x1.fdddd2p+19, 0x1.fdddep+19, 0x0p+0, INEXACT) +T(RZ, -0x1.fdddcep+19, -0x1.fdddcp+19, 0x0p+0, INEXACT) +T(RZ, -0x1.fddddp+19, -0x1.fdddcp+19, 0x0p+0, INEXACT) +T(RZ, -0x1.fdddd2p+19, -0x1.fdddcp+19, 0x0p+0, INEXACT) +T(RU, 0x1.fffffep-2, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.000002p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.fffffep-2, -0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1.000002p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1.7ffffep+0, 0x1p+1, 0x0p+0, INEXACT) +T(RU, 0x1.8p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RU, 0x1.800002p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RU, -0x1.7ffffep+0, -0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.8p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.800002p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.3ffffep+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RU, 0x1.4p+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RU, 0x1.400002p+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RU, -0x1.3ffffep+1, -0x1p+1, 0x0p+0, INEXACT) +T(RU, -0x1.4p+1, -0x1p+1, 0x0p+0, INEXACT) +T(RU, -0x1.400002p+1, -0x1p+1, 0x0p+0, INEXACT) +T(RU, 0x1.fdddcep+19, 0x1.fdddep+19, 0x0p+0, INEXACT) +T(RU, 0x1.fddddp+19, 0x1.fdddep+19, 0x0p+0, INEXACT) +T(RU, 0x1.fdddd2p+19, 0x1.fdddep+19, 0x0p+0, INEXACT) +T(RU, -0x1.fdddcep+19, -0x1.fdddcp+19, 0x0p+0, INEXACT) +T(RU, -0x1.fddddp+19, -0x1.fdddcp+19, 0x0p+0, INEXACT) +T(RU, -0x1.fdddd2p+19, -0x1.fdddcp+19, 0x0p+0, INEXACT) +T(RD, 0x1.fffffep-2, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.000002p-1, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.fffffep-2, -0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1.000002p-1, -0x0p+0, 0x0p+0, INEXACT) +T(RD, 0x1.7ffffep+0, 0x1p+1, 0x0p+0, INEXACT) +T(RD, 0x1.8p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RD, 0x1.800002p+0, 0x1p+1, 0x0p+0, INEXACT) +T(RD, -0x1.7ffffep+0, -0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.8p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.800002p+0, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.3ffffep+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RD, 0x1.4p+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RD, 0x1.400002p+1, 0x1.8p+1, 0x0p+0, INEXACT) +T(RD, -0x1.3ffffep+1, -0x1p+1, 0x0p+0, INEXACT) +T(RD, -0x1.4p+1, -0x1p+1, 0x0p+0, INEXACT) +T(RD, -0x1.400002p+1, -0x1p+1, 0x0p+0, INEXACT) +T(RD, 0x1.fdddcep+19, 0x1.fdddep+19, 0x0p+0, INEXACT) +T(RD, 0x1.fddddp+19, 0x1.fdddep+19, 0x0p+0, INEXACT) +T(RD, 0x1.fdddd2p+19, 0x1.fdddep+19, 0x0p+0, INEXACT) +T(RD, -0x1.fdddcep+19, -0x1.fdddcp+19, 0x0p+0, INEXACT) +T(RD, -0x1.fddddp+19, -0x1.fdddcp+19, 0x0p+0, INEXACT) +T(RD, -0x1.fdddd2p+19, -0x1.fdddcp+19, 0x0p+0, INEXACT) +// random arguments between -100,100 +T(RN, -0x1.adeefcp+4, -0x1.ap+4, 0x0p+0, INEXACT) +T(RN, 0x1.1ce3fp+6, 0x1.2p+6, 0x0p+0, INEXACT) +T(RN, 0x1.602e1p+6, 0x1.64p+6, 0x0p+0, INEXACT) +T(RN, -0x1.0b246p+6, -0x1.08p+6, 0x0p+0, INEXACT) +T(RN, -0x1.b171eep+4, -0x1.bp+4, 0x0p+0, INEXACT) +T(RN, -0x1.f6eff2p+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RN, 0x1.ceaa3ep+5, 0x1.dp+5, 0x0p+0, INEXACT) +T(RN, 0x1.560914p+6, 0x1.58p+6, 0x0p+0, INEXACT) +T(RN, -0x1.0ce902p+4, -0x1p+4, 0x0p+0, INEXACT) +T(RN, -0x1.7f35b4p+6, -0x1.7cp+6, 0x0p+0, INEXACT) +// inf,nan, and subnormal number +T(RN, inf, inf, 0x0p+0, 0) +T(RN, -inf, -inf, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RZ, inf, inf, 0x0p+0, 0) +T(RZ, -inf, -inf, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, 0x1.2p+12, 0x1.2p+12, 0x0p+0, 0) +T(RD, 0x1.fffffcp+22, 0x1.fffffcp+22, 0x0p+0, 0) +T(RD, 0x1p+23, 0x1p+23, 0x0p+0, 0) +T(RD, 0x1.000002p+23, 0x1.000002p+23, 0x0p+0, 0) +T(RD, 0x1.fffffap+51, 0x1.fffffap+51, 0x0p+0, 0) +T(RD, 0x1.fffffcp+51, 0x1.fffffcp+51, 0x0p+0, 0) +T(RD, 0x1.fffffep+51, 0x1.fffffep+51, 0x0p+0, 0) +T(RD, 0x1p+52, 0x1p+52, 0x0p+0, 0) +T(RD, 0x1.000002p+52, 0x1.000002p+52, 0x0p+0, 0) +T(RD, 0x1.ffffdcp+118, 0x1.ffffdcp+118, 0x0p+0, 0) +T(RD, 0x1.ffffeep+118, 0x1.ffffeep+118, 0x0p+0, 0) +T(RD, 0x1.fffffep+118, 0x1.fffffep+118, 0x0p+0, 0) +T(RD, 0x1p+119, 0x1p+119, 0x0p+0, 0) +T(RD, -0x1.2p+12, -0x1.2p+12, 0x0p+0, 0) +T(RD, -0x1.fffffcp+22, -0x1.fffffcp+22, 0x0p+0, 0) +T(RD, -0x1p+23, -0x1p+23, 0x0p+0, 0) +T(RD, -0x1.000002p+23, -0x1.000002p+23, 0x0p+0, 0) +T(RD, -0x1.fffffap+51, -0x1.fffffap+51, 0x0p+0, 0) +T(RD, -0x1.fffffcp+51, -0x1.fffffcp+51, 0x0p+0, 0) +T(RD, -0x1.fffffep+51, -0x1.fffffep+51, 0x0p+0, 0) +T(RD, -0x1p+52, -0x1p+52, 0x0p+0, 0) +T(RD, -0x1.000002p+52, -0x1.000002p+52, 0x0p+0, 0) +T(RD,-0x1.ffffdcp+118,-0x1.ffffdcp+118, 0x0p+0, 0) +T(RD,-0x1.ffffeep+118,-0x1.ffffeep+118, 0x0p+0, 0) +T(RD,-0x1.fffffep+118,-0x1.fffffep+118, 0x0p+0, 0) +T(RD, -0x1p+119, -0x1p+119, 0x0p+0, 0) +T(RD, 0x1.ep-1, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.fffffap+22, 0x1.fffffcp+22, 0x0p+0, INEXACT) +T(RD, 0x1.fffffep+22, 0x1p+23, 0x0p+0, INEXACT) +T(RD, -0x1.fffffap+22, -0x1.fffff8p+22, 0x0p+0, INEXACT) +T(RD, -0x1.fffffep+22, -0x1.fffffcp+22, 0x0p+0, INEXACT) +T(RD, nan, nan, 0x0p+0, 0) +T(RN, 0x1.2p+12, 0x1.2p+12, 0x0p+0, 0) +T(RN, 0x1.fffffcp+22, 0x1.fffffcp+22, 0x0p+0, 0) +T(RN, 0x1p+23, 0x1p+23, 0x0p+0, 0) +T(RN, 0x1.000002p+23, 0x1.000002p+23, 0x0p+0, 0) +T(RN, 0x1.fffffap+51, 0x1.fffffap+51, 0x0p+0, 0) +T(RN, 0x1.fffffcp+51, 0x1.fffffcp+51, 0x0p+0, 0) +T(RN, 0x1.fffffep+51, 0x1.fffffep+51, 0x0p+0, 0) +T(RN, 0x1p+52, 0x1p+52, 0x0p+0, 0) +T(RN, 0x1.000002p+52, 0x1.000002p+52, 0x0p+0, 0) +T(RN, 0x1.ffffdcp+118, 0x1.ffffdcp+118, 0x0p+0, 0) +T(RN, 0x1.ffffeep+118, 0x1.ffffeep+118, 0x0p+0, 0) +T(RN, 0x1.fffffep+118, 0x1.fffffep+118, 0x0p+0, 0) +T(RN, 0x1p+119, 0x1p+119, 0x0p+0, 0) +T(RN, -0x1.2p+12, -0x1.2p+12, 0x0p+0, 0) +T(RN, -0x1.fffffcp+22, -0x1.fffffcp+22, 0x0p+0, 0) +T(RN, -0x1p+23, -0x1p+23, 0x0p+0, 0) +T(RN, -0x1.000002p+23, -0x1.000002p+23, 0x0p+0, 0) +T(RN, -0x1.fffffap+51, -0x1.fffffap+51, 0x0p+0, 0) +T(RN, -0x1.fffffcp+51, -0x1.fffffcp+51, 0x0p+0, 0) +T(RN, -0x1.fffffep+51, -0x1.fffffep+51, 0x0p+0, 0) +T(RN, -0x1p+52, -0x1p+52, 0x0p+0, 0) +T(RN, -0x1.000002p+52, -0x1.000002p+52, 0x0p+0, 0) +T(RN,-0x1.ffffdcp+118,-0x1.ffffdcp+118, 0x0p+0, 0) +T(RN,-0x1.ffffeep+118,-0x1.ffffeep+118, 0x0p+0, 0) +T(RN,-0x1.fffffep+118,-0x1.fffffep+118, 0x0p+0, 0) +T(RN, -0x1p+119, -0x1p+119, 0x0p+0, 0) +T(RN, 0x1.ep-1, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.fffffep+2, 0x1p+3, 0x0p+0, INEXACT) +T(RN, 0x1.fffffp+8, 0x1p+9, 0x0p+0, INEXACT) +T(RN, 0x1.fffffep+17, 0x1p+18, 0x0p+0, INEXACT) +T(RN, 0x1.fffffap+22, 0x1.fffffcp+22, 0x0p+0, INEXACT) +T(RN, 0x1.fffffep+22, 0x1p+23, 0x0p+0, INEXACT) +T(RN,-0x1.fffffcp-127, -0x0p+0, 0x0p+0, INEXACT) +T(RN, -0x1.2p+2, -0x1p+2, 0x0p+0, INEXACT) +T(RN, -0x1.000002p+3, -0x1p+3, 0x0p+0, INEXACT) +T(RN, -0x1.00001p+9, -0x1p+9, 0x0p+0, INEXACT) +T(RN, -0x1.000002p+18, -0x1p+18, 0x0p+0, INEXACT) +T(RN, -0x1.fffffap+22, -0x1.fffff8p+22, 0x0p+0, INEXACT) +T(RN, -0x1.fffffep+22, -0x1.fffffcp+22, 0x0p+0, INEXACT) +T(RN, nan, nan, 0x0p+0, 0) +T(RU, 0x1.2p+12, 0x1.2p+12, 0x0p+0, 0) +T(RU, 0x1.fffffcp+22, 0x1.fffffcp+22, 0x0p+0, 0) +T(RU, 0x1p+23, 0x1p+23, 0x0p+0, 0) +T(RU, 0x1.000002p+23, 0x1.000002p+23, 0x0p+0, 0) +T(RU, 0x1.fffffap+51, 0x1.fffffap+51, 0x0p+0, 0) +T(RU, 0x1.fffffcp+51, 0x1.fffffcp+51, 0x0p+0, 0) +T(RU, 0x1.fffffep+51, 0x1.fffffep+51, 0x0p+0, 0) +T(RU, 0x1p+52, 0x1p+52, 0x0p+0, 0) +T(RU, 0x1.000002p+52, 0x1.000002p+52, 0x0p+0, 0) +T(RU, 0x1.ffffdcp+118, 0x1.ffffdcp+118, 0x0p+0, 0) +T(RU, 0x1.ffffeep+118, 0x1.ffffeep+118, 0x0p+0, 0) +T(RU, 0x1.fffffep+118, 0x1.fffffep+118, 0x0p+0, 0) +T(RU, 0x1p+119, 0x1p+119, 0x0p+0, 0) +T(RU, -0x1.2p+12, -0x1.2p+12, 0x0p+0, 0) +T(RU, -0x1.fffffcp+22, -0x1.fffffcp+22, 0x0p+0, 0) +T(RU, -0x1p+23, -0x1p+23, 0x0p+0, 0) +T(RU, -0x1.000002p+23, -0x1.000002p+23, 0x0p+0, 0) +T(RU, -0x1.fffffap+51, -0x1.fffffap+51, 0x0p+0, 0) +T(RU, -0x1.fffffcp+51, -0x1.fffffcp+51, 0x0p+0, 0) +T(RU, -0x1.fffffep+51, -0x1.fffffep+51, 0x0p+0, 0) +T(RU, -0x1p+52, -0x1p+52, 0x0p+0, 0) +T(RU, -0x1.000002p+52, -0x1.000002p+52, 0x0p+0, 0) +T(RU,-0x1.ffffdcp+118,-0x1.ffffdcp+118, 0x0p+0, 0) +T(RU,-0x1.ffffeep+118,-0x1.ffffeep+118, 0x0p+0, 0) +T(RU,-0x1.fffffep+118,-0x1.fffffep+118, 0x0p+0, 0) +T(RU, -0x1p+119, -0x1p+119, 0x0p+0, 0) +T(RU, 0x1.fffffcp-127, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.ep-1, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.2p+2, 0x1.4p+2, 0x0p+0, INEXACT) +T(RU, 0x1.fffffep+2, 0x1p+3, 0x0p+0, INEXACT) +T(RU, 0x1.000002p+3, 0x1.2p+3, 0x0p+0, INEXACT) +T(RU, 0x1.fffffp+8, 0x1p+9, 0x0p+0, INEXACT) +T(RU, 0x1.fffffep+17, 0x1p+18, 0x0p+0, INEXACT) +T(RU, 0x1.fffffap+22, 0x1.fffffcp+22, 0x0p+0, INEXACT) +T(RU, 0x1.fffffep+22, 0x1p+23, 0x0p+0, INEXACT) +T(RU,-0x1.fffffcp-127, -0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1.2p+2, -0x1p+2, 0x0p+0, INEXACT) +T(RU, -0x1.fffffep+2, -0x1.cp+2, 0x0p+0, INEXACT) +T(RU, -0x1.000002p+3, -0x1p+3, 0x0p+0, INEXACT) +T(RU, -0x1.00001p+9, -0x1p+9, 0x0p+0, INEXACT) +T(RU, -0x1.000002p+18, -0x1p+18, 0x0p+0, INEXACT) +T(RU, -0x1.fffffap+22, -0x1.fffff8p+22, 0x0p+0, INEXACT) +T(RU, -0x1.fffffep+22, -0x1.fffffcp+22, 0x0p+0, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RZ, 0x1.2p+12, 0x1.2p+12, 0x0p+0, 0) +T(RZ, 0x1.fffffcp+22, 0x1.fffffcp+22, 0x0p+0, 0) +T(RZ, 0x1p+23, 0x1p+23, 0x0p+0, 0) +T(RZ, 0x1.000002p+23, 0x1.000002p+23, 0x0p+0, 0) +T(RZ, 0x1.fffffap+51, 0x1.fffffap+51, 0x0p+0, 0) +T(RZ, 0x1.fffffcp+51, 0x1.fffffcp+51, 0x0p+0, 0) +T(RZ, 0x1.fffffep+51, 0x1.fffffep+51, 0x0p+0, 0) +T(RZ, 0x1p+52, 0x1p+52, 0x0p+0, 0) +T(RZ, 0x1.000002p+52, 0x1.000002p+52, 0x0p+0, 0) +T(RZ, 0x1.ffffdcp+118, 0x1.ffffdcp+118, 0x0p+0, 0) +T(RZ, 0x1.ffffeep+118, 0x1.ffffeep+118, 0x0p+0, 0) +T(RZ, 0x1.fffffep+118, 0x1.fffffep+118, 0x0p+0, 0) +T(RZ, 0x1p+119, 0x1p+119, 0x0p+0, 0) +T(RZ, -0x1.2p+12, -0x1.2p+12, 0x0p+0, 0) +T(RZ, -0x1.fffffcp+22, -0x1.fffffcp+22, 0x0p+0, 0) +T(RZ, -0x1p+23, -0x1p+23, 0x0p+0, 0) +T(RZ, -0x1.000002p+23, -0x1.000002p+23, 0x0p+0, 0) +T(RZ, -0x1.fffffap+51, -0x1.fffffap+51, 0x0p+0, 0) +T(RZ, -0x1.fffffcp+51, -0x1.fffffcp+51, 0x0p+0, 0) +T(RZ, -0x1.fffffep+51, -0x1.fffffep+51, 0x0p+0, 0) +T(RZ, -0x1p+52, -0x1p+52, 0x0p+0, 0) +T(RZ, -0x1.000002p+52, -0x1.000002p+52, 0x0p+0, 0) +T(RZ,-0x1.ffffdcp+118,-0x1.ffffdcp+118, 0x0p+0, 0) +T(RZ,-0x1.ffffeep+118,-0x1.ffffeep+118, 0x0p+0, 0) +T(RZ,-0x1.fffffep+118,-0x1.fffffep+118, 0x0p+0, 0) +T(RZ, -0x1p+119, -0x1p+119, 0x0p+0, 0) +T(RZ, 0x1.ep-1, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffap+22, 0x1.fffffcp+22, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffep+22, 0x1p+23, 0x0p+0, INEXACT) +T(RZ,-0x1.fffffcp-127, -0x0p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.2p+2, -0x1p+2, 0x0p+0, INEXACT) +T(RZ, -0x1.fffffep+2, -0x1.cp+2, 0x0p+0, INEXACT) +T(RZ, -0x1.000002p+3, -0x1p+3, 0x0p+0, INEXACT) +T(RZ, -0x1.00001p+9, -0x1p+9, 0x0p+0, INEXACT) +T(RZ, -0x1.000002p+18, -0x1p+18, 0x0p+0, INEXACT) +T(RZ, -0x1.fffffap+22, -0x1.fffff8p+22, 0x0p+0, INEXACT) +T(RZ, -0x1.fffffep+22, -0x1.fffffcp+22, 0x0p+0, INEXACT) +T(RZ, nan, nan, 0x0p+0, 0) diff --git a/test/musl/src/math/ucb/cos.h b/test/musl/src/math/ucb/cos.h new file mode 100644 index 00000000..e3b586c5 --- /dev/null +++ b/test/musl/src/math/ucb/cos.h @@ -0,0 +1,190 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// cosd(+-max) +// cosd(tiny) is ~1.0 +T(RN, 0x1p-30, 0x1p+0, 0x1p-9, INEXACT) +T(RN, -0x1p-30, 0x1p+0, 0x1p-9, INEXACT) +T(RN, 0x1p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-1074, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1074, 0x1p+0, 0x0p+0, INEXACT) +// cosd(+-0) is 1.0 +T(RN, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x0p+0, 0x1p+0, 0x0p+0, 0) +// cosd(nan or inf) is nan +T(RN, inf, nan, 0x0p+0, INVALID) +T(RN, -inf, nan, 0x0p+0, INVALID) +T(RN, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RD, 0x1p-1074, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, 0x1p-1073, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, 0x1p-1024, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, 0x1p-1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, 0x1.ffffffffffffcp-1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, 0x1.ffffffffffffep-1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, 0x1p-1022, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, 0x1.0000000000001p-1022, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, 0x1.0000000000002p-1022, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, 0x1p-1021, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, 0x1p-1020, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, 0x1p-26, 0x1.fffffffffffffp-1, -0x1.55554p-56, INEXACT) +T(RD, 0x1.8p-25, 0x1.ffffffffffff7p-1, -0x1.bp-50, INEXACT) +T(RD, -0x1p-1074, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, -0x1p-1073, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, -0x1.2p-1071, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, -0x1p-1024, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, -0x1p-1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD,-0x1.ffffffffffffcp-1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD,-0x1.ffffffffffffep-1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, -0x1p-1022, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD,-0x1.0000000000001p-1022, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD,-0x1.0000000000002p-1022, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD,-0x1.ffffffffffffbp-1022, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, -0x1p-1021, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD,-0x1.0000000000003p-1021, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, -0x1p-1020, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, -0x1p-26, 0x1.fffffffffffffp-1, -0x1.55554p-56, INEXACT) +T(RD, -0x1.8p-25, 0x1.ffffffffffff7p-1, -0x1.bp-50, INEXACT) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, nan, 0x0p+0, INVALID) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, -inf, nan, 0x0p+0, INVALID) +T(RD, 0x1p-27, 0x1.fffffffffffffp-1, -0x1.8p-1, INEXACT) +T(RD, -0x1p-27, 0x1.fffffffffffffp-1, -0x1.8p-1, INEXACT) +T(RN, 0x1p-1073, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.2p-1071, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-1024, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.ffffffffffffcp-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.ffffffffffffep-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000001p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000002p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.ffffffffffffbp-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-1021, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000003p-1021, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-1020, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-27, 0x1p+0, 0x1p-3, INEXACT) +T(RN, 0x1p-26, 0x1.fffffffffffffp-1, -0x1.55556p-56, INEXACT) +T(RN, 0x1.8p-25, 0x1.ffffffffffff7p-1, -0x1.bp-50, INEXACT) +T(RN, -0x1p-1073, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.2p-1071, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1024, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.ffffffffffffcp-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.ffffffffffffep-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.0000000000001p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.0000000000002p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.ffffffffffffbp-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1021, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.0000000000003p-1021, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1020, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-27, 0x1p+0, 0x1p-3, INEXACT) +T(RN, -0x1p-26, 0x1.fffffffffffffp-1, -0x1.55556p-56, INEXACT) +T(RN, -0x1.8p-25, 0x1.ffffffffffff7p-1, -0x1.bp-50, INEXACT) +T(RU, 0x1p-1074, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-1073, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.2p-1071, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-1024, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.ffffffffffffcp-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.ffffffffffffep-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.0000000000001p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.0000000000002p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.ffffffffffffbp-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-1021, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.0000000000003p-1021, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-1020, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-27, 0x1p+0, 0x1p-3, INEXACT) +T(RU, 0x1p-26, 0x1p+0, 0x1p-1, INEXACT) +T(RU, 0x1.8p-25, 0x1.ffffffffffff8p-1, 0x1p+0, INEXACT) +T(RU, -0x1p-1074, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1073, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1024, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RU,-0x1.ffffffffffffcp-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RU,-0x1.ffffffffffffep-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RU,-0x1.0000000000001p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RU,-0x1.0000000000002p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1021, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1020, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-27, 0x1p+0, 0x1p-3, INEXACT) +T(RU, -0x1p-26, 0x1p+0, 0x1p-1, INEXACT) +T(RU, -0x1.8p-25, 0x1.ffffffffffff8p-1, 0x1p+0, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, nan, 0x0p+0, INVALID) +T(RU, -inf, nan, 0x0p+0, INVALID) +T(RZ, 0x1p-1074, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, 0x1p-1073, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, 0x1p-1024, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, 0x1p-1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, 0x1.ffffffffffffcp-1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, 0x1.ffffffffffffep-1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, 0x1p-1022, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, 0x1.0000000000001p-1022, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, 0x1.0000000000002p-1022, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, 0x1p-1021, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, 0x1p-1020, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, 0x1p-26, 0x1.fffffffffffffp-1, -0x1.55554p-56, INEXACT) +T(RZ, 0x1.8p-25, 0x1.ffffffffffff7p-1, -0x1.bp-50, INEXACT) +T(RZ, -0x1p-1074, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-1073, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-1024, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ,-0x1.ffffffffffffcp-1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ,-0x1.ffffffffffffep-1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-1022, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ,-0x1.0000000000001p-1022, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ,-0x1.0000000000002p-1022, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-1021, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-1020, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-26, 0x1.fffffffffffffp-1, -0x1.55554p-56, INEXACT) +T(RZ, -0x1.8p-25, 0x1.ffffffffffff7p-1, -0x1.bp-50, INEXACT) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, inf, nan, 0x0p+0, INVALID) +T(RZ, -inf, nan, 0x0p+0, INVALID) +T(RZ, 0x1p-27, 0x1.fffffffffffffp-1, -0x1.8p-1, INEXACT) +T(RZ, -0x1p-27, 0x1.fffffffffffffp-1, -0x1.8p-1, INEXACT) diff --git a/test/musl/src/math/ucb/cosf.h b/test/musl/src/math/ucb/cosf.h new file mode 100644 index 00000000..4e400f7e --- /dev/null +++ b/test/musl/src/math/ucb/cosf.h @@ -0,0 +1,198 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// coss(+-max) +// coss(tiny) is ~1.0 +T(RN, 0x1p-29, 0x1p+0, 0x1p-36, INEXACT) +T(RN, -0x1p-29, 0x1p+0, 0x1p-36, INEXACT) +T(RN, 0x1p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-149, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-149, 0x1p+0, 0x0p+0, INEXACT) +// coss(+-0) is 1.0 +T(RN, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x0p+0, 0x1p+0, 0x0p+0, 0) +// coss(nan or inf) is nan +T(RN, inf, nan, 0x0p+0, INVALID) +T(RN, -inf, nan, 0x0p+0, INVALID) +T(RN, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RD, 0x1p-149, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, 0x1p-148, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, 0x1p-128, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, 0x1p-127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, 0x1.fffff8p-127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, 0x1.fffffcp-127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, 0x1p-126, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, 0x1.000002p-126, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, 0x1.000004p-126, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, 0x1p-125, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, 0x1p-124, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, 0x1p-27, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, 0x1p-11, 0x1.fffffcp-1, -0x1.555556p-25, INEXACT) +T(RD, 0x1p-10, 0x1.fffffp-1, -0x1.555554p-21, INEXACT) +T(RD, -0x1p-149, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, -0x1p-148, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, -0x1.2p-146, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, -0x1p-128, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, -0x1p-127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD,-0x1.fffff8p-127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD,-0x1.fffffcp-127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, -0x1p-126, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD,-0x1.000002p-126, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD,-0x1.000004p-126, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD,-0x1.fffff6p-126, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, -0x1p-125, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD,-0x1.000006p-125, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, -0x1p-124, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, -0x1p-27, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, -0x1p-11, 0x1.fffffcp-1, -0x1.555556p-25, INEXACT) +T(RD, -0x1p-10, 0x1.fffffp-1, -0x1.555554p-21, INEXACT) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, nan, 0x0p+0, INVALID) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, -inf, nan, 0x0p+0, INVALID) +T(RD, 0x1p-12, 0x1.fffffep-1, -0x1p-1, INEXACT) +T(RD, -0x1p-12, 0x1.fffffep-1, -0x1p-1, INEXACT) +T(RN, 0x1p-148, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.2p-146, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-128, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-127, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.fffff8p-127, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.fffffcp-127, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.000002p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.000004p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.fffff6p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-125, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.000006p-125, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-124, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-27, 0x1p+0, 0x1p-32, INEXACT) +T(RN, 0x1p-12, 0x1p+0, 0x1p-2, INEXACT) +T(RN, 0x1p-11, 0x1.fffffcp-1, -0x1.555556p-25, INEXACT) +T(RN, 0x1p-10, 0x1.fffffp-1, -0x1.555554p-21, INEXACT) +T(RN, -0x1p-148, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.2p-146, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-128, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-127, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.fffff8p-127, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.fffffcp-127, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.000002p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.000004p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.fffff6p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-125, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.000006p-125, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-124, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-27, 0x1p+0, 0x1p-32, INEXACT) +T(RN, -0x1p-12, 0x1p+0, 0x1p-2, INEXACT) +T(RN, -0x1p-11, 0x1.fffffcp-1, -0x1.555556p-25, INEXACT) +T(RN, -0x1p-10, 0x1.fffffp-1, -0x1.555554p-21, INEXACT) +T(RU, 0x1p-149, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-148, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.2p-146, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-128, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-127, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.fffff8p-127, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.fffffcp-127, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.000002p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.000004p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.fffff6p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-125, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.000006p-125, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-124, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-27, 0x1p+0, 0x1p-32, INEXACT) +T(RU, 0x1p-12, 0x1p+0, 0x1p-2, INEXACT) +T(RU, -0x1p-149, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-148, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-128, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-127, 0x1p+0, 0x0p+0, INEXACT) +T(RU,-0x1.fffff8p-127, 0x1p+0, 0x0p+0, INEXACT) +T(RU,-0x1.fffffcp-127, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RU,-0x1.000002p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RU,-0x1.000004p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-125, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-124, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-27, 0x1p+0, 0x1p-32, INEXACT) +T(RU, -0x1p-12, 0x1p+0, 0x1p-2, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, nan, 0x0p+0, INVALID) +T(RU, -inf, nan, 0x0p+0, INVALID) +T(RU, 0x1p-11, 0x1.fffffep-1, 0x1.fffffep-1, INEXACT) +T(RU, 0x1p-10, 0x1.fffff2p-1, 0x1.ffffeap-1, INEXACT) +T(RU, -0x1p-11, 0x1.fffffep-1, 0x1.fffffep-1, INEXACT) +T(RU, -0x1p-10, 0x1.fffff2p-1, 0x1.ffffeap-1, INEXACT) +T(RZ, 0x1p-149, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, 0x1p-148, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, 0x1p-128, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, 0x1p-127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, 0x1.fffff8p-127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, 0x1.fffffcp-127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, 0x1p-126, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, 0x1.000002p-126, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, 0x1.000004p-126, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, 0x1p-125, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, 0x1p-124, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, 0x1p-27, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, 0x1p-11, 0x1.fffffcp-1, -0x1.555556p-25, INEXACT) +T(RZ, 0x1p-10, 0x1.fffffp-1, -0x1.555554p-21, INEXACT) +T(RZ, -0x1p-149, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-148, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-128, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ,-0x1.fffff8p-127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ,-0x1.fffffcp-127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-126, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ,-0x1.000002p-126, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ,-0x1.000004p-126, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-125, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-124, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-27, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-11, 0x1.fffffcp-1, -0x1.555556p-25, INEXACT) +T(RZ, -0x1p-10, 0x1.fffffp-1, -0x1.555554p-21, INEXACT) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, inf, nan, 0x0p+0, INVALID) +T(RZ, -inf, nan, 0x0p+0, INVALID) +T(RZ, 0x1p-12, 0x1.fffffep-1, -0x1p-1, INEXACT) +T(RZ, -0x1p-12, 0x1.fffffep-1, -0x1p-1, INEXACT) diff --git a/test/musl/src/math/ucb/cosh.h b/test/musl/src/math/ucb/cosh.h new file mode 100644 index 00000000..becce761 --- /dev/null +++ b/test/musl/src/math/ucb/cosh.h @@ -0,0 +1,229 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// overflow boundary +T(RN, 0x1.633ce8fb9f87dp+9, 0x1.ffffffffffd3bp+1023, 0x1.a6b164p-4, INEXACT) +T(RZ, 0x1.633ce8fb9f87dp+9, 0x1.ffffffffffd3ap+1023, -0x1.cb29d4p-1, INEXACT) +T(RU, 0x1.633ce8fb9f87dp+9, 0x1.ffffffffffd3bp+1023, 0x1.a6b164p-4, INEXACT) +T(RD, 0x1.633ce8fb9f87dp+9, 0x1.ffffffffffd3ap+1023, -0x1.cb29d4p-1, INEXACT) +T(RN, -0x1.633ce8fb9f87dp+9, 0x1.ffffffffffd3bp+1023, 0x1.a6b164p-4, INEXACT) +T(RN, 0x1.633ce8fb9f87ep+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.633ce8fb9f87ep+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RZ, -0x1.633ce8fb9f87ep+9, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RU, -0x1.633ce8fb9f87ep+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RD, -0x1.633ce8fb9f87ep+9, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +// coshd(0 or tiny) :=: 1.0 +T(RN, 0x1p-67, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-67, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1022, 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, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1p+0, 0x0p+0, 0) +// random arguments between -50,50 +T(RN, -0x1.adeefb2b5006dp+3, 0x1.4de3262eea3cap+18, 0x1.e30caep-3, INEXACT) +T(RN, 0x1.1ce3efb825911p+5, 0x1.4c46db4f09332p+50, -0x1.1bee26p-3, INEXACT) +T(RN, 0x1.602e109de7505p+5, 0x1.6cd152f852538p+62, 0x1.432474p-2, INEXACT) +T(RN, -0x1.0b245fba96889p+5, 0x1.2121104afc5efp+47, 0x1.b8303p-2, INEXACT) +T(RN, -0x1.b171ee27084ddp+3, 0x1.749cc0eb38f31p+18, 0x1.1a3cf8p-3, INEXACT) +T(RN, -0x1.f6eff1b093c41p+0, 0x1.d16cbf8794c45p+1, -0x1.6a0662p-3, INEXACT) +T(RN, 0x1.ceaa3d18455f5p+4, 0x1.a507cd0be14cdp+40, 0x1.40d57cp-4, INEXACT) +T(RN, 0x1.560914a51b239p+5, 0x1.9a9b0ddd8b0c7p+60, 0x1.5db126p-2, INEXACT) +T(RN, -0x1.0ce901079de4dp+3, 0x1.16e676fb41d68p+11, 0x1.5681cap-3, INEXACT) +T(RN, -0x1.7f35b3103b871p+5, 0x1.13ae32648dd07p+68, 0x1.ebb6p-4, INEXACT) +// coshd(nan/inf) +T(RN, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RN, inf, inf, 0x0p+0, 0) +T(RN, -inf, inf, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -inf, inf, 0x0p+0, 0) +T(RD, 0x1p-1074, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-1073, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-1024, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.ffffffffffffcp-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.ffffffffffffep-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.0000000000001p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.0000000000002p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-1021, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-1020, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-27, 0x1p+0, -0x1p-3, INEXACT) +T(RD, -0x1p-1074, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1073, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1024, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RD,-0x1.ffffffffffffcp-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RD,-0x1.ffffffffffffep-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RD,-0x1.0000000000001p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RD,-0x1.0000000000002p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1021, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1020, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-27, 0x1p+0, -0x1p-3, INEXACT) +T(RD, 0x1.634p+9, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+1022, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.ffffffffffffep+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, -0x1.634p+9, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, -0x1p+1022, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, -0x1p+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD,-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD,-0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, 0x1p-25, 0x1.0000000000002p+0, -0x1.555554p-53, INEXACT) +T(RD, -0x1p-25, 0x1.0000000000002p+0, -0x1.555554p-53, INEXACT) +T(RN, 0x1p-1073, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-1024, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.ffffffffffffcp-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.ffffffffffffep-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000001p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000002p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-1021, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-1020, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-27, 0x1p+0, -0x1p-3, INEXACT) +T(RN, 0x1p-25, 0x1.0000000000002p+0, -0x1.555554p-53, INEXACT) +T(RN, -0x1p-1073, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1024, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.ffffffffffffcp-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.ffffffffffffep-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.0000000000001p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.0000000000002p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1021, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1020, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-27, 0x1p+0, -0x1p-3, INEXACT) +T(RN, -0x1p-25, 0x1.0000000000002p+0, -0x1.555554p-53, INEXACT) +T(RN, 0x1.634p+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+1022, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.ffffffffffffep+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.fffffffffffffp+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.634p+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+1022, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.ffffffffffffep+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.fffffffffffffp+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -inf, inf, 0x0p+0, 0) +T(RU, 0x1.634p+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+1022, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.ffffffffffffep+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.fffffffffffffp+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, -0x1.634p+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, -0x1p+1022, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, -0x1p+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU,-0x1.ffffffffffffep+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU,-0x1.fffffffffffffp+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, 0x1p-1074, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-1073, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-1024, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-1023, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1.ffffffffffffcp-1023, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1.ffffffffffffep-1023, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-1022, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1.0000000000001p-1022, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1.0000000000002p-1022, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-1021, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-1020, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-27, 0x1.0000000000001p+0, 0x1.cp-1, INEXACT) +T(RU, 0x1p-25, 0x1.0000000000003p+0, 0x1p+0, INEXACT) +T(RU, -0x1p-1074, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, -0x1p-1073, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, -0x1p-1024, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, -0x1p-1023, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU,-0x1.ffffffffffffcp-1023, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU,-0x1.ffffffffffffep-1023, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, -0x1p-1022, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU,-0x1.0000000000001p-1022, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU,-0x1.0000000000002p-1022, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, -0x1p-1021, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, -0x1p-1020, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, -0x1p-27, 0x1.0000000000001p+0, 0x1.cp-1, INEXACT) +T(RU, -0x1p-25, 0x1.0000000000003p+0, 0x1p+0, INEXACT) +T(RZ, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, inf, inf, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, -inf, inf, 0x0p+0, 0) +T(RZ, 0x1p-1074, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-1073, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-1024, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.ffffffffffffcp-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.ffffffffffffep-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.0000000000001p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.0000000000002p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-1021, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-1020, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-27, 0x1p+0, -0x1p-3, INEXACT) +T(RZ, -0x1p-1074, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-1073, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-1024, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RZ,-0x1.ffffffffffffcp-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RZ,-0x1.ffffffffffffep-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RZ,-0x1.0000000000001p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RZ,-0x1.0000000000002p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-1021, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-1020, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-27, 0x1p+0, -0x1p-3, INEXACT) +T(RZ, 0x1.634p+9, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+1022, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.ffffffffffffep+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1.634p+9, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1p+1022, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1p+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ,-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ,-0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, 0x1p-25, 0x1.0000000000002p+0, -0x1.555554p-53, INEXACT) +T(RZ, -0x1p-25, 0x1.0000000000002p+0, -0x1.555554p-53, INEXACT) diff --git a/test/musl/src/math/ucb/coshf.h b/test/musl/src/math/ucb/coshf.h new file mode 100644 index 00000000..fb37bcde --- /dev/null +++ b/test/musl/src/math/ucb/coshf.h @@ -0,0 +1,245 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// overflow boundary +T(RN, 0x1.65a9f8p+6, 0x1.ffffd8p+127, -0x1.f47394p-4, INEXACT) +T(RZ, 0x1.65a9f8p+6, 0x1.ffffd8p+127, -0x1.f47394p-4, INEXACT) +T(RU, 0x1.65a9f8p+6, 0x1.ffffdap+127, 0x1.c1718ep-1, INEXACT) +T(RD, 0x1.65a9f8p+6, 0x1.ffffd8p+127, -0x1.f47394p-4, INEXACT) +T(RN, -0x1.65a9f8p+6, 0x1.ffffd8p+127, -0x1.f47394p-4, INEXACT) +T(RN, 0x1.65a9fap+6, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.65a9fap+6, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.65a9fap+6, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RU, 0x1.65a9fap+6, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RD, 0x1.65a9fap+6, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +// coshs(0 or tiny) :=: 1.0 +T(RN, 0x1p-29, 0x1p+0, -0x1p-36, INEXACT) +T(RN, -0x1p-29, 0x1p+0, -0x1p-36, INEXACT) +T(RN, 0x1p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-149, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-149, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1p+0, 0x0p+0, 0) +// random arguments between -50,50 +T(RN, -0x1.adeefcp+3, 0x1.4de32ep+18, -0x1.b42ea2p-2, INEXACT) +T(RN, 0x1.1ce3fp+5, 0x1.4c46e6p+50, -0x1.eedd98p-2, INEXACT) +T(RN, 0x1.602e1p+5, 0x1.6cd136p+62, -0x1.af2604p-2, INEXACT) +T(RN, -0x1.0b246p+5, 0x1.21211ap+47, -0x1.79d648p-5, INEXACT) +T(RN, -0x1.b171eep+3, 0x1.749ccp+18, 0x1.b68d9p-2, INEXACT) +T(RN, -0x1.f6eff2p+0, 0x1.d16ccp+1, -0x1.268b0ap-5, INEXACT) +T(RN, 0x1.ceaa3ep+4, 0x1.a507e4p+40, -0x1.bb6332p-2, INEXACT) +T(RN, 0x1.560914p+5, 0x1.9a9aecp+60, -0x1.86baeep-2, INEXACT) +T(RN, -0x1.0ce902p+3, 0x1.16e68p+11, 0x1.1fd9dcp-2, INEXACT) +T(RN, -0x1.7f35b4p+5, 0x1.13ae52p+68, -0x1.55ec92p-2, INEXACT) +// coshs(nan/inf) +T(RN, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RN, inf, inf, 0x0p+0, 0) +T(RN, -inf, inf, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -inf, inf, 0x0p+0, 0) +T(RD, 0x1p-149, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-148, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-128, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-127, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.fffff8p-127, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.fffffcp-127, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.000002p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.000004p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-125, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-124, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-27, 0x1p+0, -0x1p-32, INEXACT) +T(RD, 0x1p-12, 0x1p+0, -0x1p-2, INEXACT) +T(RD, 0x1p-11, 0x1.000002p+0, -0x1.555556p-26, INEXACT) +T(RD, -0x1p-149, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-148, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-128, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-127, 0x1p+0, 0x0p+0, INEXACT) +T(RD,-0x1.fffff8p-127, 0x1p+0, 0x0p+0, INEXACT) +T(RD,-0x1.fffffcp-127, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RD,-0x1.000002p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RD,-0x1.000004p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-125, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-124, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-27, 0x1p+0, -0x1p-32, INEXACT) +T(RD, -0x1p-12, 0x1p+0, -0x1p-2, INEXACT) +T(RD, -0x1p-11, 0x1.000002p+0, -0x1.555556p-26, INEXACT) +T(RD, 0x1.66p+6, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.634p+9, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+126, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.fffffcp+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.fffffep+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, -0x1.66p+6, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, -0x1.634p+9, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, -0x1p+126, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, -0x1p+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD,-0x1.fffffcp+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD,-0x1.fffffep+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-148, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-128, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-127, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.fffff8p-127, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.fffffcp-127, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.000002p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.000004p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-125, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-124, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-27, 0x1p+0, -0x1p-32, INEXACT) +T(RN, 0x1p-12, 0x1p+0, -0x1p-2, INEXACT) +T(RN, 0x1p-11, 0x1.000002p+0, -0x1.555556p-26, INEXACT) +T(RN, -0x1p-148, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-128, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-127, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.fffff8p-127, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.fffffcp-127, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.000002p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.000004p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-125, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-124, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-27, 0x1p+0, -0x1p-32, INEXACT) +T(RN, -0x1p-12, 0x1p+0, -0x1p-2, INEXACT) +T(RN, -0x1p-11, 0x1.000002p+0, -0x1.555556p-26, INEXACT) +T(RN, 0x1.66p+6, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.634p+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+126, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.fffffcp+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.fffffep+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.66p+6, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.634p+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+126, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.fffffcp+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.fffffep+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -inf, inf, 0x0p+0, 0) +T(RU, 0x1.66p+6, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.634p+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+126, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.fffffcp+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.fffffep+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, -0x1.66p+6, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, -0x1.634p+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, -0x1p+126, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, -0x1p+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU,-0x1.fffffcp+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU,-0x1.fffffep+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, 0x1p-149, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-148, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-128, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-127, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1.fffff8p-127, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1.fffffcp-127, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-126, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1.000002p-126, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1.000004p-126, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-125, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-124, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-27, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-12, 0x1.000002p+0, 0x1.8p-1, INEXACT) +T(RU, 0x1p-11, 0x1.000004p+0, 0x1p+0, INEXACT) +T(RU, -0x1p-149, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, -0x1p-148, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, -0x1p-128, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, -0x1p-127, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU,-0x1.fffff8p-127, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU,-0x1.fffffcp-127, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, -0x1p-126, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU,-0x1.000002p-126, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU,-0x1.000004p-126, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, -0x1p-125, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, -0x1p-124, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, -0x1p-27, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, -0x1p-12, 0x1.000002p+0, 0x1.8p-1, INEXACT) +T(RU, -0x1p-11, 0x1.000004p+0, 0x1p+0, INEXACT) +T(RZ, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, inf, inf, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, -inf, inf, 0x0p+0, 0) +T(RZ, 0x1p-149, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-148, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-128, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-127, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.fffff8p-127, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffcp-127, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.000002p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.000004p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-125, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-124, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-27, 0x1p+0, -0x1p-32, INEXACT) +T(RZ, 0x1p-12, 0x1p+0, -0x1p-2, INEXACT) +T(RZ, 0x1p-11, 0x1.000002p+0, -0x1.555556p-26, INEXACT) +T(RZ, -0x1p-149, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-148, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-128, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-127, 0x1p+0, 0x0p+0, INEXACT) +T(RZ,-0x1.fffff8p-127, 0x1p+0, 0x0p+0, INEXACT) +T(RZ,-0x1.fffffcp-127, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RZ,-0x1.000002p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RZ,-0x1.000004p-126, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-125, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-124, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-27, 0x1p+0, -0x1p-32, INEXACT) +T(RZ, -0x1p-12, 0x1p+0, -0x1p-2, INEXACT) +T(RZ, -0x1p-11, 0x1.000002p+0, -0x1.555556p-26, INEXACT) +T(RZ, 0x1.66p+6, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.634p+9, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+126, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.fffffcp+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.fffffep+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1.66p+6, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1.634p+9, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1p+126, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1p+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ,-0x1.fffffcp+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ,-0x1.fffffep+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) diff --git a/test/musl/src/math/ucb/exp.h b/test/musl/src/math/ucb/exp.h new file mode 100644 index 00000000..e6dbecaa --- /dev/null +++ b/test/musl/src/math/ucb/exp.h @@ -0,0 +1,341 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// overflow threshold +T(RN, 0x1.62e42fefa39efp+9, 0x1.fffffffffff2ap+1023, -0x1.b0e264p-4, INEXACT) +T(RZ, 0x1.62e42fefa39efp+9, 0x1.fffffffffff2ap+1023, -0x1.b0e264p-4, INEXACT) +T(RU, 0x1.62e42fefa39efp+9, 0x1.fffffffffff2bp+1023, 0x1.c9e3b4p-1, INEXACT) +T(RD, 0x1.62e42fefa39efp+9, 0x1.fffffffffff2ap+1023, -0x1.b0e264p-4, INEXACT) +T(RN, 0x1.62e42fefa39fp+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.62e42fefa39fp+9, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RU, 0x1.62e42fefa39fp+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RD, 0x1.62e42fefa39fp+9, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RN, 0x1.fffffp+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.fffffp+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RU, 0x1.fffffp+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RD, 0x1.fffffp+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RN, inf, inf, 0x0p+0, 0) +// expd(0 or tiny) = 1 +T(RN, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-1074, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1074, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1022, 0x1p+0, 0x0p+0, INEXACT) +// underflow +T(RN, -0x1.6232bdd7abcd2p+9, 0x1.000000000007cp-1022, 0x1.0c013ep-2, INEXACT) +T(RZ, -0x1.6232bdd7abcd2p+9, 0x1.000000000007bp-1022, -0x1.79ff6p-1, INEXACT) +T(RU, -0x1.6232bdd7abcd2p+9, 0x1.000000000007cp-1022, 0x1.0c013ep-2, INEXACT) +T(RD, -0x1.6232bdd7abcd2p+9, 0x1.000000000007bp-1022, -0x1.79ff6p-1, INEXACT) +T(RN, -0x1.6232bdd7abcd3p+9, 0x1.ffffffffffcf8p-1023, 0x1.0c013ep-2, INEXACT|UNDERFLOW) +T(RN, -0x1.74910d52d3051p+9, 0x1p-1074, 0x1p-1, INEXACT|UNDERFLOW) +T(RN, -0x1.74910d52d3052p+9, 0x0p+0, -0x1p-1, INEXACT|UNDERFLOW) +T(RN, -0x1.fffffp+1023, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1.fffffp+1023, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1.fffffp+1023, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1.fffffp+1023, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -inf, 0x0p+0, 0x0p+0, 0) +// random arguments between -20 20 +T(RN, -0x1.57f25b2b5006dp+2, 0x1.2fbea6a01cab9p-8, -0x1.b1308cp-2, INEXACT) +T(RN, 0x1.c7d30fb825911p+3, 0x1.76eeed45a0634p+20, -0x1.e1cd26p-7, INEXACT) +T(RN, 0x1.19be709de7505p+4, 0x1.52d3eb7be6844p+25, -0x1.1eb34p-3, INEXACT) +T(RN, -0x1.ab6d6fba96889p+3, 0x1.a88ae12f985d6p-20, -0x1.d4b94cp-3, INEXACT) +T(RN, -0x1.5ac18e27084ddp+2, 0x1.22b327da9cca6p-8, 0x1.aa10dp-3, INEXACT) +T(RN, -0x1.925981b093c41p-1, 0x1.d2acc046b55f7p-2, -0x1.01db1ap-3, INEXACT) +T(RN, 0x1.7221cd18455f5p+3, 0x1.9c2cde8699cfbp+16, -0x1.a622bep-4, INEXACT) +T(RN, 0x1.11a0d4a51b239p+4, 0x1.980ef612ff182p+24, -0x1.6c4118p-2, INEXACT) +T(RN, -0x1.ae41a1079de4dp+1, 0x1.1c28d16bb3222p-5, -0x1.4e4448p-2, INEXACT) +T(RN, -0x1.329153103b871p+4, 0x1.47efa6ddd0d22p-28, 0x1.a279e6p-2, INEXACT) +// expd(nan) is nan +T(RN, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -inf, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1p-1074, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-1073, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.8p-1073, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-1024, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.ffffffffffffcp-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.ffffffffffffep-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.0000000000001p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.0000000000002p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.ffffffffffffdp-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.fffffffffffffp-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-1021, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-1020, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-73, 0x1p+0, -0x1p-21, INEXACT) +T(RD, 0x1p-66, 0x1p+0, -0x1p-14, INEXACT) +T(RD, 0x1p-65, 0x1p+0, -0x1p-13, INEXACT) +T(RD, 0x1.63p+9, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.c9c8p+13, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+14, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+18, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+1015, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+1021, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+1022, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.ffffffffffff7p+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.ffffffffffffcp+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.ffffffffffffdp+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.ffffffffffffep+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, -0x1.75p+9, 0x0p+0, -0x1.ae63bep-3, INEXACT|UNDERFLOW) +T(RD, -0x1.c9c8p+13, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p+18, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p+1019, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p+1020, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p+1021, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p+1022, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p+1023, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.ffffffffffff7p+1023, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.ffffffffffffcp+1023, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.ffffffffffffdp+1023, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.ffffffffffffep+1023, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.fffffffffffffp+1023, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp-53, 0x1p+0, -0x1p+0, INEXACT) +T(RD, 0x1.ffffffffffffcp-52, 0x1.0000000000001p+0, -0x1p+0, INEXACT) +T(RD, 0x1.ffffffffffffcp-51, 0x1.0000000000003p+0, -0x1p+0, INEXACT) +T(RD, -0x1p-1074, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, -0x1p-1073, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, -0x1p-1024, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, -0x1p-1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD,-0x1.ffffffffffffcp-1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD,-0x1.ffffffffffffep-1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, -0x1p-1022, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD,-0x1.0000000000001p-1022, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD,-0x1.0000000000002p-1022, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, -0x1p-1021, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, -0x1p-1020, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, -0x1p-73, 0x1.fffffffffffffp-1, -0x1.ffffep-1, INEXACT) +T(RD, -0x1p-66, 0x1.fffffffffffffp-1, -0x1.fffp-1, INEXACT) +T(RD, -0x1.0000000000001p-51, 0x1.ffffffffffffcp-1, 0x0p+0, INEXACT) +T(RD, -0x1.8000000000004p-51, 0x1.ffffffffffff9p-1, -0x1p+0, INEXACT) +T(RN, 0x1p-1073, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.8p-1073, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-1024, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.ffffffffffffcp-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.ffffffffffffep-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000001p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000002p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.ffffffffffffdp-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.fffffffffffffp-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-1021, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-1020, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-73, 0x1p+0, -0x1p-21, INEXACT) +T(RN, 0x1p-66, 0x1p+0, -0x1p-14, INEXACT) +T(RN, 0x1p-65, 0x1p+0, -0x1p-13, INEXACT) +T(RN, 0x1.fffffffffffffp-53, 0x1.0000000000001p+0, 0x0p+0, INEXACT) +T(RN, 0x1.ffffffffffffcp-52, 0x1.0000000000002p+0, 0x1p-51, INEXACT) +T(RN, 0x1.ffffffffffffcp-51, 0x1.0000000000004p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1073, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1024, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.ffffffffffffcp-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.ffffffffffffep-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.0000000000001p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.0000000000002p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1021, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1020, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-73, 0x1p+0, 0x1p-21, INEXACT) +T(RN, -0x1p-66, 0x1p+0, 0x1p-14, INEXACT) +T(RN, -0x1.0000000000001p-51, 0x1.ffffffffffffcp-1, 0x0p+0, INEXACT) +T(RN, -0x1.8000000000004p-51, 0x1.ffffffffffffap-1, 0x1.cp-50, INEXACT) +T(RN, 0x1.63p+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.c9c8p+13, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+14, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+18, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+1015, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+1021, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+1022, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.ffffffffffff7p+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.ffffffffffffcp+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.ffffffffffffdp+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.ffffffffffffep+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.fffffffffffffp+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.75p+9, 0x0p+0, -0x1.ae63bep-3, INEXACT|UNDERFLOW) +T(RN, -0x1.c9c8p+13, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+18, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+1019, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+1020, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+1021, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+1022, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+1023, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffffffffff7p+1023, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffffffffffcp+1023, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffffffffffdp+1023, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffffffffffep+1023, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.fffffffffffffp+1023, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -inf, 0x0p+0, 0x0p+0, 0) +T(RU, -0x1p-1074, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1073, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1024, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RU,-0x1.ffffffffffffcp-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RU,-0x1.ffffffffffffep-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RU,-0x1.0000000000001p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RU,-0x1.0000000000002p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1021, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1020, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-73, 0x1p+0, 0x1p-21, INEXACT) +T(RU, -0x1p-66, 0x1p+0, 0x1p-14, INEXACT) +T(RU, 0x1.63p+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.c9c8p+13, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+14, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+18, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+1015, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+1021, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+1022, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.ffffffffffff7p+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.ffffffffffffcp+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.ffffffffffffdp+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.ffffffffffffep+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.fffffffffffffp+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, -0x1p+18, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p+1019, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p+1020, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p+1021, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p+1022, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p+1023, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.ffffffffffff7p+1023, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.ffffffffffffcp+1023, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.ffffffffffffdp+1023, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.ffffffffffffep+1023, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.fffffffffffffp+1023, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, 0x1p-1074, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-1073, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1.8p-1073, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-1024, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-1023, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1.ffffffffffffcp-1023, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1.ffffffffffffep-1023, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-1022, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1.0000000000001p-1022, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1.0000000000002p-1022, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1.ffffffffffffdp-1022, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1.fffffffffffffp-1022, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-1021, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-1020, 0x1.0000000000001p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-73, 0x1.0000000000001p+0, 0x1.fffffp-1, INEXACT) +T(RU, 0x1p-66, 0x1.0000000000001p+0, 0x1.fff8p-1, INEXACT) +T(RU, 0x1p-65, 0x1.0000000000001p+0, 0x1.fffp-1, INEXACT) +T(RU, 0x1.fffffffffffffp-53, 0x1.0000000000001p+0, 0x0p+0, INEXACT) +T(RU, 0x1.ffffffffffffcp-52, 0x1.0000000000002p+0, 0x1p-51, INEXACT) +T(RU, 0x1.ffffffffffffcp-51, 0x1.0000000000004p+0, 0x0p+0, INEXACT) +T(RU, -0x1.0000000000001p-51, 0x1.ffffffffffffdp-1, 0x1p+0, INEXACT) +T(RU, -0x1.8000000000004p-51, 0x1.ffffffffffffap-1, 0x1.cp-50, INEXACT) +T(RU, -0x1.75p+9, 0x1p-1074, 0x1.94671p-1, INEXACT|UNDERFLOW) +T(RU, -0x1.c9c8p+13, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, inf, inf, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, -inf, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p-1074, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-1073, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.8p-1073, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-1024, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.ffffffffffffcp-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.ffffffffffffep-1023, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.0000000000001p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.0000000000002p-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.ffffffffffffdp-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffffffffffp-1022, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-1021, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-1020, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-73, 0x1p+0, -0x1p-21, INEXACT) +T(RZ, 0x1p-66, 0x1p+0, -0x1p-14, INEXACT) +T(RZ, 0x1p-65, 0x1p+0, -0x1p-13, INEXACT) +T(RZ, 0x1.63p+9, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.c9c8p+13, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+14, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+18, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+1015, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+1021, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+1022, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.ffffffffffff7p+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.ffffffffffffcp+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.ffffffffffffdp+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.ffffffffffffep+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1.75p+9, 0x0p+0, -0x1.ae63bep-3, INEXACT|UNDERFLOW) +T(RZ, -0x1.c9c8p+13, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p+18, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p+1019, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p+1020, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p+1021, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p+1022, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p+1023, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.ffffffffffff7p+1023, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.ffffffffffffcp+1023, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.ffffffffffffdp+1023, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.ffffffffffffep+1023, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.fffffffffffffp+1023, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp-53, 0x1p+0, -0x1p+0, INEXACT) +T(RZ, 0x1.ffffffffffffcp-52, 0x1.0000000000001p+0, -0x1p+0, INEXACT) +T(RZ, 0x1.ffffffffffffcp-51, 0x1.0000000000003p+0, -0x1p+0, INEXACT) +T(RZ, -0x1p-1074, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-1073, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-1024, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ,-0x1.ffffffffffffcp-1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ,-0x1.ffffffffffffep-1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-1022, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ,-0x1.0000000000001p-1022, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ,-0x1.0000000000002p-1022, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-1021, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-1020, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-73, 0x1.fffffffffffffp-1, -0x1.ffffep-1, INEXACT) +T(RZ, -0x1p-66, 0x1.fffffffffffffp-1, -0x1.fffp-1, INEXACT) +T(RZ, -0x1.0000000000001p-51, 0x1.ffffffffffffcp-1, 0x0p+0, INEXACT) +T(RZ, -0x1.8000000000004p-51, 0x1.ffffffffffff9p-1, -0x1p+0, INEXACT) diff --git a/test/musl/src/math/ucb/expf.h b/test/musl/src/math/ucb/expf.h new file mode 100644 index 00000000..71db795c --- /dev/null +++ b/test/musl/src/math/ucb/expf.h @@ -0,0 +1,333 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// overflow threshold +T(RN, 0x1.62e42ep+6, 0x1.ffff08p+127, -0x1.7364p-4, INEXACT) +T(RN, 0x1.62e43p+6, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.fffffep+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, inf, inf, 0x0p+0, 0) +T(RZ, 0x1.62e42ep+6, 0x1.ffff08p+127, -0x1.7364p-4, INEXACT) +T(RZ, 0x1.62e43p+6, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.fffffep+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, inf, inf, 0x0p+0, 0) +T(RU, 0x1.62e42ep+6, 0x1.ffff0ap+127, 0x1.d1938p-1, INEXACT) +T(RU, 0x1.62e43p+6, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.fffffep+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, inf, inf, 0x0p+0, 0) +T(RD, 0x1.62e42ep+6, 0x1.ffff08p+127, -0x1.7364p-4, INEXACT) +T(RD, 0x1.62e43p+6, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.fffffep+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, inf, inf, 0x0p+0, 0) +// exps(0 or tiny) = 1 +T(RN, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-149, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-149, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-126, 0x1p+0, -0x1p-103, INEXACT) +T(RN, -0x1p-126, 0x1p+0, 0x1.8p-104, INEXACT) +// underflow +T(RN, -0x1.5d589ep+6, 0x1.00004cp-126, 0x1.ac2708p-7, INEXACT) +T(RZ, -0x1.5d589ep+6, 0x1.00004ap-126, -0x1.f94f64p-1, INEXACT) +T(RU, -0x1.5d589ep+6, 0x1.00004cp-126, 0x1.ac2708p-7, INEXACT) +T(RD, -0x1.5d589ep+6, 0x1.00004ap-126, -0x1.f94f64p-1, INEXACT) +T(RN, -0x1.5d58ap+6, 0x1.ffff98p-127, 0x1.ada63p-7, INEXACT|UNDERFLOW) +T(RN, -0x1.9fe368p+6, 0x1p-149, 0x1.ffffeap-2, INEXACT|UNDERFLOW) +T(RN, -0x1.9fe36ap+6, 0x0p+0, -0x1.ffff16p-2, INEXACT|UNDERFLOW) +T(RN,-0x1.fffffep+127, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.fffffep+127, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.fffffep+127, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.fffffep+127, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -inf, 0x0p+0, 0x0p+0, 0) +// random arguments between -20 20 +T(RN, -0x1.57f25cp+2, 0x1.2fbea2p-8, -0x1.5d63fcp-2, INEXACT) +T(RN, 0x1.c7d31p+3, 0x1.76eefp+20, -0x1.1f03aap-2, INEXACT) +T(RN, 0x1.19be7p+4, 0x1.52d3dep+25, -0x1.b01356p-3, INEXACT) +T(RN, -0x1.ab6d7p+3, 0x1.a88adep-20, 0x1.a52932p-3, INEXACT) +T(RN, -0x1.5ac18ep+2, 0x1.22b328p-8, -0x1.17cf5ep-2, INEXACT) +T(RN, -0x1.925982p-1, 0x1.d2accp-2, 0x1.aeef46p-9, INEXACT) +T(RN, 0x1.7221cep+3, 0x1.9c2ceap+16, -0x1.7b0dd6p-4, INEXACT) +T(RN, 0x1.11a0d4p+4, 0x1.980ee6p+24, 0x1.7f3c04p-3, INEXACT) +T(RN, -0x1.ae41a2p+1, 0x1.1c28dp-5, 0x1.776b7ap-2, INEXACT) +T(RN, -0x1.329154p+4, 0x1.47ef94p-28, 0x1.51d544p-3, INEXACT) +// exps(nan) is nan +T(RN, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RD, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -inf, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1p-149, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-148, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.8p-148, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-128, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-127, 0x1p+0, -0x1p-104, INEXACT) +T(RD, 0x1.fffff8p-127, 0x1p+0, -0x1p-104, INEXACT) +T(RD, 0x1.fffffcp-127, 0x1p+0, -0x1p-104, INEXACT) +T(RD, 0x1p-126, 0x1p+0, -0x1p-103, INEXACT) +T(RD, 0x1.000002p-126, 0x1p+0, -0x1p-103, INEXACT) +T(RD, 0x1.000004p-126, 0x1p+0, -0x1p-103, INEXACT) +T(RD, 0x1.fffffap-126, 0x1p+0, -0x1.8p-103, INEXACT) +T(RD, 0x1.fffffep-126, 0x1p+0, -0x1.8p-103, INEXACT) +T(RD, 0x1p-125, 0x1p+0, -0x1p-102, INEXACT) +T(RD, 0x1p-124, 0x1p+0, -0x1p-101, INEXACT) +T(RD, 0x1p-73, 0x1p+0, -0x1p-50, INEXACT) +T(RD, 0x1p-66, 0x1p+0, -0x1p-43, INEXACT) +T(RD, 0x1p-65, 0x1p+0, -0x1p-42, INEXACT) +T(RD, 0x1.64p+6, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.c9c8p+13, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+14, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+18, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+119, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+125, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+126, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.ffffeep+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.fffff8p+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.fffffap+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.fffffcp+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, -0x1.ap+6, 0x0p+0, -0x1.f1e6b6p-2, INEXACT|UNDERFLOW) +T(RD, -0x1.c9c8p+13, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p+18, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p+123, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p+124, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p+125, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p+126, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p+127, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.ffffeep+127, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.fffff8p+127, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.fffffap+127, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.fffffcp+127, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, 0x1.fffffep-24, 0x1p+0, -0x1p+0, INEXACT) +T(RD, 0x1.fffff8p-23, 0x1.000002p+0, -0x1.fffff8p-1, INEXACT) +T(RD, 0x1.fffff8p-22, 0x1.000006p+0, -0x1p+0, INEXACT) +T(RD, -0x1p-149, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, -0x1p-148, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, -0x1p-128, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, -0x1p-127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD,-0x1.fffff8p-127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD,-0x1.fffffcp-127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, -0x1p-126, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD,-0x1.000002p-126, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD,-0x1.000004p-126, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, -0x1p-125, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, -0x1p-124, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, -0x1p-73, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, -0x1p-66, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, -0x1.000002p-22, 0x1.fffff8p-1, -0x1.555554p-44, INEXACT) +T(RD, -0x1.800008p-22, 0x1.fffff2p-1, -0x1.ffffe4p-1, INEXACT) +T(RN, 0x1p-148, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.8p-148, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-128, 0x1p+0, -0x1p-104, INEXACT) +T(RN, 0x1p-127, 0x1p+0, -0x1p-104, INEXACT) +T(RN, 0x1.fffff8p-127, 0x1p+0, -0x1p-103, INEXACT) +T(RN, 0x1.fffffcp-127, 0x1p+0, -0x1p-103, INEXACT) +T(RN, 0x1.000002p-126, 0x1p+0, -0x1p-103, INEXACT) +T(RN, 0x1.000004p-126, 0x1p+0, -0x1p-103, INEXACT) +T(RN, 0x1.fffffap-126, 0x1p+0, -0x1p-102, INEXACT) +T(RN, 0x1.fffffep-126, 0x1p+0, -0x1p-102, INEXACT) +T(RN, 0x1p-125, 0x1p+0, -0x1p-102, INEXACT) +T(RN, 0x1p-124, 0x1p+0, -0x1p-101, INEXACT) +T(RN, 0x1p-73, 0x1p+0, -0x1p-50, INEXACT) +T(RN, 0x1p-66, 0x1p+0, -0x1p-43, INEXACT) +T(RN, 0x1p-65, 0x1p+0, -0x1p-42, INEXACT) +T(RN, 0x1.fffffep-24, 0x1.000002p+0, 0x1.555556p-48, INEXACT) +T(RN, 0x1.fffff8p-23, 0x1.000004p+0, 0x1.000006p-22, INEXACT) +T(RN, 0x1.fffff8p-22, 0x1.000008p+0, 0x1.555558p-42, INEXACT) +T(RN, -0x1p-148, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-128, 0x1p+0, 0x1p-105, INEXACT) +T(RN, -0x1p-127, 0x1p+0, 0x1p-105, INEXACT) +T(RN,-0x1.fffff8p-127, 0x1p+0, 0x1.8p-104, INEXACT) +T(RN,-0x1.fffffcp-127, 0x1p+0, 0x1.8p-104, INEXACT) +T(RN,-0x1.000002p-126, 0x1p+0, 0x1.4p-103, INEXACT) +T(RN,-0x1.000004p-126, 0x1p+0, 0x1.4p-103, INEXACT) +T(RN, -0x1p-125, 0x1p+0, 0x1.cp-103, INEXACT) +T(RN, -0x1p-124, 0x1p+0, 0x1.ep-102, INEXACT) +T(RN, -0x1p-73, 0x1p+0, 0x1p-50, INEXACT) +T(RN, -0x1p-66, 0x1p+0, 0x1p-43, INEXACT) +T(RN, -0x1.000002p-22, 0x1.fffff8p-1, -0x1.555554p-44, INEXACT) +T(RN, -0x1.800008p-22, 0x1.fffff4p-1, 0x1.bfffecp-21, INEXACT) +T(RN, 0x1.64p+6, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.c9c8p+13, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+14, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+18, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+119, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+125, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+126, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.ffffeep+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.fffff8p+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.fffffap+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.fffffcp+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.ap+6, 0x0p+0, -0x1.f1e6b6p-2, INEXACT|UNDERFLOW) +T(RN, -0x1.c9c8p+13, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+18, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+123, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+124, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+125, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+126, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+127, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffeep+127, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.fffff8p+127, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.fffffap+127, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.fffffcp+127, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -inf, 0x0p+0, 0x0p+0, 0) +T(RU, -0x1p-149, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-148, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-128, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-127, 0x1p+0, 0x1p-105, INEXACT) +T(RU,-0x1.fffff8p-127, 0x1p+0, 0x1.8p-104, INEXACT) +T(RU,-0x1.fffffcp-127, 0x1p+0, 0x1.8p-104, INEXACT) +T(RU, -0x1p-126, 0x1p+0, 0x1.8p-104, INEXACT) +T(RU,-0x1.000002p-126, 0x1p+0, 0x1p-103, INEXACT) +T(RU,-0x1.000004p-126, 0x1p+0, 0x1p-103, INEXACT) +T(RU, -0x1p-125, 0x1p+0, 0x1.cp-103, INEXACT) +T(RU, -0x1p-124, 0x1p+0, 0x1.ep-102, INEXACT) +T(RU, -0x1p-73, 0x1p+0, 0x1p-50, INEXACT) +T(RU, -0x1p-66, 0x1p+0, 0x1p-43, INEXACT) +T(RU, 0x1.64p+6, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.c9c8p+13, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+14, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+18, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+119, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+125, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+126, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.ffffeep+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.fffff8p+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.fffffap+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.fffffcp+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, -0x1p+18, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p+123, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p+124, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p+125, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p+126, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p+127, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.ffffeep+127, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.fffff8p+127, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.fffffap+127, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.fffffcp+127, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, 0x1p-149, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-148, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1.8p-148, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-128, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-127, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1.fffff8p-127, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1.fffffcp-127, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-126, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1.000002p-126, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1.000004p-126, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1.fffffap-126, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1.fffffep-126, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-125, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-124, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-73, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-66, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1p-65, 0x1.000002p+0, 0x1p+0, INEXACT) +T(RU, 0x1.fffffep-24, 0x1.000002p+0, 0x1.555556p-48, INEXACT) +T(RU, 0x1.fffff8p-23, 0x1.000004p+0, 0x1.000006p-22, INEXACT) +T(RU, 0x1.fffff8p-22, 0x1.000008p+0, 0x1.555558p-42, INEXACT) +T(RU, -0x1.000002p-22, 0x1.fffffap-1, 0x1p+0, INEXACT) +T(RU, -0x1.800008p-22, 0x1.fffff4p-1, 0x1.bfffecp-21, INEXACT) +T(RU, -0x1.ap+6, 0x1p-149, 0x1.070ca4p-1, INEXACT|UNDERFLOW) +T(RU, -0x1.c9c8p+13, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, -inf, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p-149, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-148, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.8p-148, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-128, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-127, 0x1p+0, -0x1p-104, INEXACT) +T(RZ, 0x1.fffff8p-127, 0x1p+0, -0x1p-104, INEXACT) +T(RZ, 0x1.fffffcp-127, 0x1p+0, -0x1p-104, INEXACT) +T(RZ, 0x1p-126, 0x1p+0, -0x1p-103, INEXACT) +T(RZ, 0x1.000002p-126, 0x1p+0, -0x1p-103, INEXACT) +T(RZ, 0x1.000004p-126, 0x1p+0, -0x1p-103, INEXACT) +T(RZ, 0x1.fffffap-126, 0x1p+0, -0x1.8p-103, INEXACT) +T(RZ, 0x1.fffffep-126, 0x1p+0, -0x1.8p-103, INEXACT) +T(RZ, 0x1p-125, 0x1p+0, -0x1p-102, INEXACT) +T(RZ, 0x1p-124, 0x1p+0, -0x1p-101, INEXACT) +T(RZ, 0x1p-73, 0x1p+0, -0x1p-50, INEXACT) +T(RZ, 0x1p-66, 0x1p+0, -0x1p-43, INEXACT) +T(RZ, 0x1p-65, 0x1p+0, -0x1p-42, INEXACT) +T(RZ, 0x1.64p+6, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.c9c8p+13, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+14, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+18, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+119, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+125, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+126, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.ffffeep+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.fffff8p+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.fffffap+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.fffffcp+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1.ap+6, 0x0p+0, -0x1.f1e6b6p-2, INEXACT|UNDERFLOW) +T(RZ, -0x1.c9c8p+13, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p+18, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p+123, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p+124, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p+125, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p+126, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p+127, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.ffffeep+127, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.fffff8p+127, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.fffffap+127, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.fffffcp+127, 0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, 0x1.fffffep-24, 0x1p+0, -0x1p+0, INEXACT) +T(RZ, 0x1.fffff8p-23, 0x1.000002p+0, -0x1.fffff8p-1, INEXACT) +T(RZ, 0x1.fffff8p-22, 0x1.000006p+0, -0x1p+0, INEXACT) +T(RZ, -0x1p-149, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-148, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-128, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ,-0x1.fffff8p-127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ,-0x1.fffffcp-127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-126, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ,-0x1.000002p-126, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ,-0x1.000004p-126, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-125, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-124, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-73, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, -0x1p-66, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, -0x1.000002p-22, 0x1.fffff8p-1, -0x1.555554p-44, INEXACT) +T(RZ, -0x1.800008p-22, 0x1.fffff2p-1, -0x1.ffffe4p-1, INEXACT) diff --git a/test/musl/src/math/ucb/fabs.h b/test/musl/src/math/ucb/fabs.h new file mode 100644 index 00000000..f5b6a777 --- /dev/null +++ b/test/musl/src/math/ucb/fabs.h @@ -0,0 +1,104 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +T(RN, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-1074, 0x1p-1074, 0x0p+0, 0) +T(RN, 0x1p-1042, 0x1p-1042, 0x0p+0, 0) +T(RN, 0x1p-1022, 0x1p-1022, 0x0p+0, 0) +T(RN, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RN, inf, inf, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RN, -0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-1074, 0x1p-1074, 0x0p+0, 0) +T(RN, -0x1p-1042, 0x1p-1042, 0x0p+0, 0) +T(RN, -0x1p-1022, 0x1p-1022, 0x0p+0, 0) +T(RN, -0x1.000000000000fp+0, 0x1.000000000000fp+0, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RN, -inf, inf, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1p-1074, 0x1p-1074, 0x0p+0, 0) +T(RD, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RD, 0x1p+1023, 0x1p+1023, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x1p-1074, 0x1p-1074, 0x0p+0, 0) +T(RD,-0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RD, -0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+1023, 0x1p+1023, 0x0p+0, 0) +T(RD,-0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RD, -inf, inf, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RN, 0x1p+1023, 0x1p+1023, 0x0p+0, 0) +T(RN,-0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RN, -0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+1023, 0x1p+1023, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1p-1074, 0x1p-1074, 0x0p+0, 0) +T(RU, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1p+1023, 0x1p+1023, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x1p-1074, 0x1p-1074, 0x0p+0, 0) +T(RU,-0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RU, -0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+1023, 0x1p+1023, 0x0p+0, 0) +T(RU,-0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RU, -inf, inf, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p-1074, 0x1p-1074, 0x0p+0, 0) +T(RZ, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RZ, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1p+1023, 0x1p+1023, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RZ, inf, inf, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x1p-1074, 0x1p-1074, 0x0p+0, 0) +T(RZ,-0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RZ, -0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x1p+1023, 0x1p+1023, 0x0p+0, 0) +T(RZ,-0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RZ, -inf, inf, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) diff --git a/test/musl/src/math/ucb/fabsf.h b/test/musl/src/math/ucb/fabsf.h new file mode 100644 index 00000000..935cd0e0 --- /dev/null +++ b/test/musl/src/math/ucb/fabsf.h @@ -0,0 +1,102 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +T(RN, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-149, 0x1p-149, 0x0p+0, 0) +T(RN, 0x1p-126, 0x1p-126, 0x0p+0, 0) +T(RN, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RN, inf, inf, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RN, -0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-149, 0x1p-149, 0x0p+0, 0) +T(RN, -0x1p-126, 0x1p-126, 0x0p+0, 0) +T(RN, -0x1.00001ep+0, 0x1.00001ep+0, 0x0p+0, 0) +T(RN,-0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RN, -inf, inf, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1p-149, 0x1p-149, 0x0p+0, 0) +T(RD, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, 0) +T(RD, 0x1p+127, 0x1p+127, 0x0p+0, 0) +T(RD, 0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x1p-149, 0x1p-149, 0x0p+0, 0) +T(RD,-0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, 0) +T(RD, -0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+127, 0x1p+127, 0x0p+0, 0) +T(RD,-0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RD, -inf, inf, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RN, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, 0) +T(RN, 0x1p+127, 0x1p+127, 0x0p+0, 0) +T(RN,-0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, 0) +T(RN, -0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+127, 0x1p+127, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1p-149, 0x1p-149, 0x0p+0, 0) +T(RU, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1p+127, 0x1p+127, 0x0p+0, 0) +T(RU, 0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x1p-149, 0x1p-149, 0x0p+0, 0) +T(RU,-0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, 0) +T(RU, -0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+127, 0x1p+127, 0x0p+0, 0) +T(RU,-0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RU, -inf, inf, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p-149, 0x1p-149, 0x0p+0, 0) +T(RZ, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, 0) +T(RZ, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1p+127, 0x1p+127, 0x0p+0, 0) +T(RZ, 0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RZ, inf, inf, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x1p-149, 0x1p-149, 0x0p+0, 0) +T(RZ,-0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, 0) +T(RZ, -0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x1p+127, 0x1p+127, 0x0p+0, 0) +T(RZ,-0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RZ, -inf, inf, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) diff --git a/test/musl/src/math/ucb/floor.h b/test/musl/src/math/ucb/floor.h new file mode 100644 index 00000000..50f95d79 --- /dev/null +++ b/test/musl/src/math/ucb/floor.h @@ -0,0 +1,388 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// floord(integer) is itself +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, 0x1.fffffffffffffp+52, 0x1.fffffffffffffp+52, 0x0p+0, 0) +T(RN, -0x1.fffffffffffffp+52, -0x1.fffffffffffffp+52, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp+52, 0x1.fffffffffffffp+52, 0x0p+0, 0) +T(RZ, -0x1.fffffffffffffp+52, -0x1.fffffffffffffp+52, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RZ,-0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp+52, 0x1.fffffffffffffp+52, 0x0p+0, 0) +T(RU, -0x1.fffffffffffffp+52, -0x1.fffffffffffffp+52, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RU,-0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+52, 0x1.fffffffffffffp+52, 0x0p+0, 0) +T(RD, -0x1.fffffffffffffp+52, -0x1.fffffffffffffp+52, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RD,-0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023, 0x0p+0, 0) +// integer - ulp +T(RN, 0x1.eeeeeeeeeeeefp+50, 0x1.eeeeeeeeeeeecp+50, 0x0p+0, INEXACT) +T(RN, -0x1.eeeeeeeeeeeefp+50, -0x1.eeeeeeeeeeefp+50, 0x0p+0, INEXACT) +T(RN, 0x1.fffffffffffffp+0, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.fffffffffffffp+0, -0x1p+1, 0x0p+0, INEXACT) +T(RN, 0x1.fffffffffffffp-1, 0x0p+0, 0x0p+0, INEXACT) +T(RN, -0x1.fffffffffffffp-1, -0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.eeeeeeeeeeeefp+50, 0x1.eeeeeeeeeeeecp+50, 0x0p+0, INEXACT) +T(RZ, -0x1.eeeeeeeeeeeefp+50, -0x1.eeeeeeeeeeefp+50, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffffffffffp+0, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.fffffffffffffp+0, -0x1p+1, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffffffffffp-1, 0x0p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.fffffffffffffp-1, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.eeeeeeeeeeeefp+50, 0x1.eeeeeeeeeeeecp+50, 0x0p+0, INEXACT) +T(RU, -0x1.eeeeeeeeeeeefp+50, -0x1.eeeeeeeeeeefp+50, 0x0p+0, INEXACT) +T(RU, 0x1.fffffffffffffp+0, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.fffffffffffffp+0, -0x1p+1, 0x0p+0, INEXACT) +T(RU, 0x1.fffffffffffffp-1, 0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1.fffffffffffffp-1, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.eeeeeeeeeeeefp+50, 0x1.eeeeeeeeeeeecp+50, 0x0p+0, INEXACT) +T(RD, -0x1.eeeeeeeeeeeefp+50, -0x1.eeeeeeeeeeefp+50, 0x0p+0, INEXACT) +T(RD, 0x1.fffffffffffffp+0, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.fffffffffffffp+0, -0x1p+1, 0x0p+0, INEXACT) +T(RD, 0x1.fffffffffffffp-1, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1.fffffffffffffp-1, -0x1p+0, 0x0p+0, INEXACT) +// integer + ulp +T(RN, 0x1.eeeeeeeeeeeedp+50, 0x1.eeeeeeeeeeeecp+50, 0x0p+0, INEXACT) +T(RN, -0x1.eeeeeeeeeeeedp+50, -0x1.eeeeeeeeeeefp+50, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.0000000000001p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RN, 0x1p-1022, 0x0p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1022, -0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.eeeeeeeeeeeedp+50, 0x1.eeeeeeeeeeeecp+50, 0x0p+0, INEXACT) +T(RZ, -0x1.eeeeeeeeeeeedp+50, -0x1.eeeeeeeeeeefp+50, 0x0p+0, INEXACT) +T(RZ, 0x1.0000000000001p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.0000000000001p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RZ, 0x1p-1022, 0x0p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-1022, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.eeeeeeeeeeeedp+50, 0x1.eeeeeeeeeeeecp+50, 0x0p+0, INEXACT) +T(RU, -0x1.eeeeeeeeeeeedp+50, -0x1.eeeeeeeeeeefp+50, 0x0p+0, INEXACT) +T(RU, 0x1.0000000000001p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.0000000000001p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RU, 0x1p-1022, 0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1022, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.eeeeeeeeeeeedp+50, 0x1.eeeeeeeeeeeecp+50, 0x0p+0, INEXACT) +T(RD, -0x1.eeeeeeeeeeeedp+50, -0x1.eeeeeeeeeeefp+50, 0x0p+0, INEXACT) +T(RD, 0x1.0000000000001p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.0000000000001p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RD, 0x1p-1022, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1022, -0x1p+0, 0x0p+0, INEXACT) +// half way case, half way case +- ulp +T(RN, 0x1.fffffffffffffp-2, 0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000001p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RN, -0x1.fffffffffffffp-2, -0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.0000000000001p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.7ffffffffffffp+0, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.8p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.8000000000001p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.7ffffffffffffp+0, -0x1p+1, 0x0p+0, INEXACT) +T(RN, -0x1.8p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RN, -0x1.8000000000001p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RN, 0x1.3ffffffffffffp+1, 0x1p+1, 0x0p+0, INEXACT) +T(RN, 0x1.4p+1, 0x1p+1, 0x0p+0, INEXACT) +T(RN, 0x1.4000000000001p+1, 0x1p+1, 0x0p+0, INEXACT) +T(RN, -0x1.3ffffffffffffp+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RN, -0x1.4p+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RN, -0x1.4000000000001p+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RN, 0x1.eeeeeeeeeeee7p+48, 0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +T(RN, 0x1.eeeeeeeeeeee8p+48, 0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +T(RN, 0x1.eeeeeeeeeeee9p+48, 0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +T(RN, -0x1.eeeeeeeeeeee7p+48, -0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +T(RN, -0x1.eeeeeeeeeeee8p+48, -0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +T(RN, -0x1.eeeeeeeeeeee9p+48, -0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffffffffffp-2, 0x0p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.0000000000001p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.fffffffffffffp-2, -0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.0000000000001p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.7ffffffffffffp+0, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.8p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.8000000000001p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.7ffffffffffffp+0, -0x1p+1, 0x0p+0, INEXACT) +T(RZ, -0x1.8p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RZ, -0x1.8000000000001p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RZ, 0x1.3ffffffffffffp+1, 0x1p+1, 0x0p+0, INEXACT) +T(RZ, 0x1.4p+1, 0x1p+1, 0x0p+0, INEXACT) +T(RZ, 0x1.4000000000001p+1, 0x1p+1, 0x0p+0, INEXACT) +T(RZ, -0x1.3ffffffffffffp+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RZ, -0x1.4p+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RZ, -0x1.4000000000001p+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RZ, 0x1.eeeeeeeeeeee7p+48, 0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +T(RZ, 0x1.eeeeeeeeeeee8p+48, 0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +T(RZ, 0x1.eeeeeeeeeeee9p+48, 0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +T(RZ, -0x1.eeeeeeeeeeee7p+48, -0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +T(RZ, -0x1.eeeeeeeeeeee8p+48, -0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +T(RZ, -0x1.eeeeeeeeeeee9p+48, -0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +T(RU, 0x1.fffffffffffffp-2, 0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1.0000000000001p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1.fffffffffffffp-2, -0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.0000000000001p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.7ffffffffffffp+0, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.8p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.8000000000001p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.7ffffffffffffp+0, -0x1p+1, 0x0p+0, INEXACT) +T(RU, -0x1.8p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RU, -0x1.8000000000001p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RU, 0x1.3ffffffffffffp+1, 0x1p+1, 0x0p+0, INEXACT) +T(RU, 0x1.4p+1, 0x1p+1, 0x0p+0, INEXACT) +T(RU, 0x1.4000000000001p+1, 0x1p+1, 0x0p+0, INEXACT) +T(RU, -0x1.3ffffffffffffp+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RU, -0x1.4p+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RU, -0x1.4000000000001p+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RU, 0x1.eeeeeeeeeeee7p+48, 0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +T(RU, 0x1.eeeeeeeeeeee8p+48, 0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +T(RU, 0x1.eeeeeeeeeeee9p+48, 0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +T(RU, -0x1.eeeeeeeeeeee7p+48, -0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +T(RU, -0x1.eeeeeeeeeeee8p+48, -0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +T(RU, -0x1.eeeeeeeeeeee9p+48, -0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +T(RD, 0x1.fffffffffffffp-2, 0x0p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RD, 0x1.0000000000001p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1.fffffffffffffp-2, -0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.0000000000001p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.7ffffffffffffp+0, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.8p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.8000000000001p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.7ffffffffffffp+0, -0x1p+1, 0x0p+0, INEXACT) +T(RD, -0x1.8p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RD, -0x1.8000000000001p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RD, 0x1.3ffffffffffffp+1, 0x1p+1, 0x0p+0, INEXACT) +T(RD, 0x1.4p+1, 0x1p+1, 0x0p+0, INEXACT) +T(RD, 0x1.4000000000001p+1, 0x1p+1, 0x0p+0, INEXACT) +T(RD, -0x1.3ffffffffffffp+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RD, -0x1.4p+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RD, -0x1.4000000000001p+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RD, 0x1.eeeeeeeeeeee7p+48, 0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +T(RD, 0x1.eeeeeeeeeeee8p+48, 0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +T(RD, 0x1.eeeeeeeeeeee9p+48, 0x1.eeeeeeeeeeeep+48, 0x0p+0, INEXACT) +T(RD, -0x1.eeeeeeeeeeee7p+48, -0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +T(RD, -0x1.eeeeeeeeeeee8p+48, -0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +T(RD, -0x1.eeeeeeeeeeee9p+48, -0x1.eeeeeeeeeeefp+48, 0x0p+0, INEXACT) +// random arguments between -100,100 +T(RN, -0x1.adeefb2b5006dp+3, -0x1.cp+3, 0x0p+0, INEXACT) +T(RN, 0x1.1ce3efb825911p+5, 0x1.18p+5, 0x0p+0, INEXACT) +T(RN, 0x1.602e109de7505p+5, 0x1.6p+5, 0x0p+0, INEXACT) +T(RN, -0x1.0b245fba96889p+5, -0x1.1p+5, 0x0p+0, INEXACT) +T(RN, -0x1.b171ee27084ddp+3, -0x1.cp+3, 0x0p+0, INEXACT) +T(RN, -0x1.f6eff1b093c41p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RN, 0x1.ceaa3d18455f5p+4, 0x1.cp+4, 0x0p+0, INEXACT) +T(RN, 0x1.560914a51b239p+5, 0x1.5p+5, 0x0p+0, INEXACT) +T(RN, -0x1.0ce901079de4dp+3, -0x1.2p+3, 0x0p+0, INEXACT) +T(RN, -0x1.7f35b3103b871p+5, -0x1.8p+5, 0x0p+0, INEXACT) +// inf,nan, and subnormal number +T(RN, 0x1p-1074, 0x0p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1074, -0x1p+0, 0x0p+0, INEXACT) +T(RN, inf, inf, 0x0p+0, 0) +T(RN, -inf, -inf, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RZ, 0x1p-1074, 0x0p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-1074, -0x1p+0, 0x0p+0, INEXACT) +T(RZ, inf, inf, 0x0p+0, 0) +T(RZ, -inf, -inf, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RU, 0x1p-1074, 0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1074, -0x1p+0, 0x0p+0, INEXACT) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RD, 0x1p-1074, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1074, -0x1p+0, 0x0p+0, INEXACT) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, 0x1.2p+12, 0x1.2p+12, 0x0p+0, 0) +T(RD, 0x1p+23, 0x1p+23, 0x0p+0, 0) +T(RD, 0x1.ffffffffffffep+51, 0x1.ffffffffffffep+51, 0x0p+0, 0) +T(RD, 0x1p+52, 0x1p+52, 0x0p+0, 0) +T(RD, 0x1.0000000000001p+52, 0x1.0000000000001p+52, 0x0p+0, 0) +T(RD, 0x1.fffffffffffeep+1014, 0x1.fffffffffffeep+1014, 0x0p+0, 0) +T(RD, 0x1.ffffffffffff7p+1014, 0x1.ffffffffffff7p+1014, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1014, 0x1.fffffffffffffp+1014, 0x0p+0, 0) +T(RD, 0x1p+1015, 0x1p+1015, 0x0p+0, 0) +T(RD, -0x1.2p+12, -0x1.2p+12, 0x0p+0, 0) +T(RD, -0x1p+23, -0x1p+23, 0x0p+0, 0) +T(RD, -0x1.ffffffffffffep+51, -0x1.ffffffffffffep+51, 0x0p+0, 0) +T(RD, -0x1p+52, -0x1p+52, 0x0p+0, 0) +T(RD, -0x1.0000000000001p+52, -0x1.0000000000001p+52, 0x0p+0, 0) +T(RD,-0x1.fffffffffffeep+1014,-0x1.fffffffffffeep+1014, 0x0p+0, 0) +T(RD,-0x1.ffffffffffff7p+1014,-0x1.ffffffffffff7p+1014, 0x0p+0, 0) +T(RD,-0x1.fffffffffffffp+1014,-0x1.fffffffffffffp+1014, 0x0p+0, 0) +T(RD, -0x1p+1015, -0x1p+1015, 0x0p+0, 0) +T(RD, 0x1.ffffffffffffep-1023, 0x0p+0, 0x0p+0, INEXACT) +T(RD, 0x1.ep-1, 0x0p+0, 0x0p+0, INEXACT) +T(RD, 0x1.2p+2, 0x1p+2, 0x0p+0, INEXACT) +T(RD, 0x1.fffffffffffffp+2, 0x1.cp+2, 0x0p+0, INEXACT) +T(RD, 0x1.0000000000001p+3, 0x1p+3, 0x0p+0, INEXACT) +T(RD, 0x1.0000000000008p+9, 0x1p+9, 0x0p+0, INEXACT) +T(RD, 0x1.0000000000001p+18, 0x1p+18, 0x0p+0, INEXACT) +T(RD, 0x1.0000000000001p+23, 0x1p+23, 0x0p+0, INEXACT) +T(RD, 0x1.ffffffffffffdp+51, 0x1.ffffffffffffcp+51, 0x0p+0, INEXACT) +T(RD, 0x1.fffffffffffffp+51, 0x1.ffffffffffffep+51, 0x0p+0, INEXACT) +T(RD,-0x1.ffffffffffffep-1023, -0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.2p+2, -0x1.4p+2, 0x0p+0, INEXACT) +T(RD, -0x1.fffffffffffffp+2, -0x1p+3, 0x0p+0, INEXACT) +T(RD, -0x1.0000000000001p+3, -0x1.2p+3, 0x0p+0, INEXACT) +T(RD, -0x1.ffffffffffff8p+8, -0x1p+9, 0x0p+0, INEXACT) +T(RD, -0x1.fffffffffffffp+17, -0x1p+18, 0x0p+0, INEXACT) +T(RD, -0x1.ffffffffffffdp+22, -0x1p+23, 0x0p+0, INEXACT) +T(RD, -0x1.ffffffffffffep+22, -0x1p+23, 0x0p+0, INEXACT) +T(RD, -0x1.fffffffffffffp+22, -0x1p+23, 0x0p+0, INEXACT) +T(RD, -0x1.ffffffffffffdp+51, -0x1.ffffffffffffep+51, 0x0p+0, INEXACT) +T(RD, -0x1.fffffffffffffp+51, -0x1p+52, 0x0p+0, INEXACT) +T(RD, nan, nan, 0x0p+0, 0) +T(RN, 0x1.2p+12, 0x1.2p+12, 0x0p+0, 0) +T(RN, 0x1p+23, 0x1p+23, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep+51, 0x1.ffffffffffffep+51, 0x0p+0, 0) +T(RN, 0x1p+52, 0x1p+52, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+52, 0x1.0000000000001p+52, 0x0p+0, 0) +T(RN, 0x1.fffffffffffeep+1014, 0x1.fffffffffffeep+1014, 0x0p+0, 0) +T(RN, 0x1.ffffffffffff7p+1014, 0x1.ffffffffffff7p+1014, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1014, 0x1.fffffffffffffp+1014, 0x0p+0, 0) +T(RN, 0x1p+1015, 0x1p+1015, 0x0p+0, 0) +T(RN, -0x1.2p+12, -0x1.2p+12, 0x0p+0, 0) +T(RN, -0x1p+23, -0x1p+23, 0x0p+0, 0) +T(RN, -0x1.ffffffffffffep+51, -0x1.ffffffffffffep+51, 0x0p+0, 0) +T(RN, -0x1p+52, -0x1p+52, 0x0p+0, 0) +T(RN, -0x1.0000000000001p+52, -0x1.0000000000001p+52, 0x0p+0, 0) +T(RN,-0x1.fffffffffffeep+1014,-0x1.fffffffffffeep+1014, 0x0p+0, 0) +T(RN,-0x1.ffffffffffff7p+1014,-0x1.ffffffffffff7p+1014, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1014,-0x1.fffffffffffffp+1014, 0x0p+0, 0) +T(RN, -0x1p+1015, -0x1p+1015, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep-1023, 0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1.ep-1, 0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1.2p+2, 0x1p+2, 0x0p+0, INEXACT) +T(RN, 0x1.2000000000001p+2, 0x1p+2, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000001p+3, 0x1p+3, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000008p+9, 0x1p+9, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000001p+18, 0x1p+18, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000001p+23, 0x1p+23, 0x0p+0, INEXACT) +T(RN, 0x1.ffffffffffffdp+51, 0x1.ffffffffffffcp+51, 0x0p+0, INEXACT) +T(RN, 0x1.fffffffffffffp+51, 0x1.ffffffffffffep+51, 0x0p+0, INEXACT) +T(RN, -0x1.2000000000001p+2, -0x1.4p+2, 0x0p+0, INEXACT) +T(RN, -0x1.fffffffffffffp+2, -0x1p+3, 0x0p+0, INEXACT) +T(RN, -0x1.ffffffffffff8p+8, -0x1p+9, 0x0p+0, INEXACT) +T(RN, -0x1.fffffffffffffp+17, -0x1p+18, 0x0p+0, INEXACT) +T(RN, -0x1.ffffffffffffdp+22, -0x1p+23, 0x0p+0, INEXACT) +T(RN, -0x1.ffffffffffffep+22, -0x1p+23, 0x0p+0, INEXACT) +T(RN, -0x1.fffffffffffffp+22, -0x1p+23, 0x0p+0, INEXACT) +T(RN, -0x1.ffffffffffffdp+51, -0x1.ffffffffffffep+51, 0x0p+0, INEXACT) +T(RN, -0x1.fffffffffffffp+51, -0x1p+52, 0x0p+0, INEXACT) +T(RN, nan, nan, 0x0p+0, 0) +T(RU, 0x1.2p+12, 0x1.2p+12, 0x0p+0, 0) +T(RU, 0x1p+23, 0x1p+23, 0x0p+0, 0) +T(RU, 0x1.ffffffffffffep+51, 0x1.ffffffffffffep+51, 0x0p+0, 0) +T(RU, 0x1p+52, 0x1p+52, 0x0p+0, 0) +T(RU, 0x1.0000000000001p+52, 0x1.0000000000001p+52, 0x0p+0, 0) +T(RU, 0x1.fffffffffffeep+1014, 0x1.fffffffffffeep+1014, 0x0p+0, 0) +T(RU, 0x1.ffffffffffff7p+1014, 0x1.ffffffffffff7p+1014, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp+1014, 0x1.fffffffffffffp+1014, 0x0p+0, 0) +T(RU, 0x1p+1015, 0x1p+1015, 0x0p+0, 0) +T(RU, -0x1.2p+12, -0x1.2p+12, 0x0p+0, 0) +T(RU, -0x1p+23, -0x1p+23, 0x0p+0, 0) +T(RU, -0x1.ffffffffffffep+51, -0x1.ffffffffffffep+51, 0x0p+0, 0) +T(RU, -0x1p+52, -0x1p+52, 0x0p+0, 0) +T(RU, -0x1.0000000000001p+52, -0x1.0000000000001p+52, 0x0p+0, 0) +T(RU,-0x1.fffffffffffeep+1014,-0x1.fffffffffffeep+1014, 0x0p+0, 0) +T(RU,-0x1.ffffffffffff7p+1014,-0x1.ffffffffffff7p+1014, 0x0p+0, 0) +T(RU,-0x1.fffffffffffffp+1014,-0x1.fffffffffffffp+1014, 0x0p+0, 0) +T(RU, -0x1p+1015, -0x1p+1015, 0x0p+0, 0) +T(RU, 0x1.ep-1, 0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1.0000000000001p+23, 0x1p+23, 0x0p+0, INEXACT) +T(RU, 0x1.ffffffffffffdp+51, 0x1.ffffffffffffcp+51, 0x0p+0, INEXACT) +T(RU, 0x1.fffffffffffffp+51, 0x1.ffffffffffffep+51, 0x0p+0, INEXACT) +T(RU, -0x1.ffffffffffffdp+22, -0x1p+23, 0x0p+0, INEXACT) +T(RU, -0x1.ffffffffffffep+22, -0x1p+23, 0x0p+0, INEXACT) +T(RU, -0x1.fffffffffffffp+22, -0x1p+23, 0x0p+0, INEXACT) +T(RU, -0x1.ffffffffffffdp+51, -0x1.ffffffffffffep+51, 0x0p+0, INEXACT) +T(RU, -0x1.fffffffffffffp+51, -0x1p+52, 0x0p+0, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RZ, 0x1.2p+12, 0x1.2p+12, 0x0p+0, 0) +T(RZ, 0x1p+23, 0x1p+23, 0x0p+0, 0) +T(RZ, 0x1.ffffffffffffep+51, 0x1.ffffffffffffep+51, 0x0p+0, 0) +T(RZ, 0x1p+52, 0x1p+52, 0x0p+0, 0) +T(RZ, 0x1.0000000000001p+52, 0x1.0000000000001p+52, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffeep+1014, 0x1.fffffffffffeep+1014, 0x0p+0, 0) +T(RZ, 0x1.ffffffffffff7p+1014, 0x1.ffffffffffff7p+1014, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp+1014, 0x1.fffffffffffffp+1014, 0x0p+0, 0) +T(RZ, 0x1p+1015, 0x1p+1015, 0x0p+0, 0) +T(RZ, -0x1.2p+12, -0x1.2p+12, 0x0p+0, 0) +T(RZ, -0x1p+23, -0x1p+23, 0x0p+0, 0) +T(RZ, -0x1.ffffffffffffep+51, -0x1.ffffffffffffep+51, 0x0p+0, 0) +T(RZ, -0x1p+52, -0x1p+52, 0x0p+0, 0) +T(RZ, -0x1.0000000000001p+52, -0x1.0000000000001p+52, 0x0p+0, 0) +T(RZ,-0x1.fffffffffffeep+1014,-0x1.fffffffffffeep+1014, 0x0p+0, 0) +T(RZ,-0x1.ffffffffffff7p+1014,-0x1.ffffffffffff7p+1014, 0x0p+0, 0) +T(RZ,-0x1.fffffffffffffp+1014,-0x1.fffffffffffffp+1014, 0x0p+0, 0) +T(RZ, -0x1p+1015, -0x1p+1015, 0x0p+0, 0) +T(RZ, 0x1.ffffffffffffep-1023, 0x0p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.ep-1, 0x0p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.2p+2, 0x1p+2, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffffffffffp+2, 0x1.cp+2, 0x0p+0, INEXACT) +T(RZ, 0x1.0000000000001p+3, 0x1p+3, 0x0p+0, INEXACT) +T(RZ, 0x1.0000000000008p+9, 0x1p+9, 0x0p+0, INEXACT) +T(RZ, 0x1.0000000000001p+18, 0x1p+18, 0x0p+0, INEXACT) +T(RZ, 0x1.0000000000001p+23, 0x1p+23, 0x0p+0, INEXACT) +T(RZ, 0x1.ffffffffffffdp+51, 0x1.ffffffffffffcp+51, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffffffffffp+51, 0x1.ffffffffffffep+51, 0x0p+0, INEXACT) +T(RZ, -0x1.ffffffffffffdp+22, -0x1p+23, 0x0p+0, INEXACT) +T(RZ, -0x1.ffffffffffffep+22, -0x1p+23, 0x0p+0, INEXACT) +T(RZ, -0x1.fffffffffffffp+22, -0x1p+23, 0x0p+0, INEXACT) +T(RZ, -0x1.ffffffffffffdp+51, -0x1.ffffffffffffep+51, 0x0p+0, INEXACT) +T(RZ, -0x1.fffffffffffffp+51, -0x1p+52, 0x0p+0, INEXACT) +T(RZ, nan, nan, 0x0p+0, 0) diff --git a/test/musl/src/math/ucb/floorf.h b/test/musl/src/math/ucb/floorf.h new file mode 100644 index 00000000..807d7e2c --- /dev/null +++ b/test/musl/src/math/ucb/floorf.h @@ -0,0 +1,404 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// floors(integer) is itself +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, 0x1.dffffep+24, 0x1.dffffep+24, 0x0p+0, 0) +T(RN, -0x1.dffffep+24, -0x1.dffffep+24, 0x0p+0, 0) +T(RN, 0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RN,-0x1.fffffep+127,-0x1.fffffep+127, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RZ, 0x1.dffffep+24, 0x1.dffffep+24, 0x0p+0, 0) +T(RZ, -0x1.dffffep+24, -0x1.dffffep+24, 0x0p+0, 0) +T(RZ, 0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RZ,-0x1.fffffep+127,-0x1.fffffep+127, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RU, 0x1.dffffep+24, 0x1.dffffep+24, 0x0p+0, 0) +T(RU, -0x1.dffffep+24, -0x1.dffffep+24, 0x0p+0, 0) +T(RU, 0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RU,-0x1.fffffep+127,-0x1.fffffep+127, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, -0x1p+0, 0x0p+0, 0) +T(RD, 0x1.dffffep+24, 0x1.dffffep+24, 0x0p+0, 0) +T(RD, -0x1.dffffep+24, -0x1.dffffep+24, 0x0p+0, 0) +T(RD, 0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RD,-0x1.fffffep+127,-0x1.fffffep+127, 0x0p+0, 0) +// integer - ulp +T(RN, 0x1.fddddep+21, 0x1.fdddd8p+21, 0x0p+0, INEXACT) +T(RN, -0x1.fddddep+21, -0x1.fdddep+21, 0x0p+0, INEXACT) +T(RN, 0x1.fffffep+0, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.fffffep+0, -0x1p+1, 0x0p+0, INEXACT) +T(RN, 0x1.fffffep-1, 0x0p+0, 0x0p+0, INEXACT) +T(RN, -0x1.fffffep-1, -0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.fddddep+21, 0x1.fdddd8p+21, 0x0p+0, INEXACT) +T(RZ, -0x1.fddddep+21, -0x1.fdddep+21, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffep+0, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.fffffep+0, -0x1p+1, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffep-1, 0x0p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.fffffep-1, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.fddddep+21, 0x1.fdddd8p+21, 0x0p+0, INEXACT) +T(RU, -0x1.fddddep+21, -0x1.fdddep+21, 0x0p+0, INEXACT) +T(RU, 0x1.fffffep+0, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.fffffep+0, -0x1p+1, 0x0p+0, INEXACT) +T(RU, 0x1.fffffep-1, 0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1.fffffep-1, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.fddddep+21, 0x1.fdddd8p+21, 0x0p+0, INEXACT) +T(RD, -0x1.fddddep+21, -0x1.fdddep+21, 0x0p+0, INEXACT) +T(RD, 0x1.fffffep+0, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.fffffep+0, -0x1p+1, 0x0p+0, INEXACT) +T(RD, 0x1.fffffep-1, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1.fffffep-1, -0x1p+0, 0x0p+0, INEXACT) +// integer + ulp +T(RN, 0x1.fddddap+21, 0x1.fdddd8p+21, 0x0p+0, INEXACT) +T(RN, -0x1.fddddap+21, -0x1.fdddep+21, 0x0p+0, INEXACT) +T(RN, 0x1.000002p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.000002p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RN, 0x1p-126, 0x0p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-126, -0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-149, 0x0p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-149, -0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.fddddap+21, 0x1.fdddd8p+21, 0x0p+0, INEXACT) +T(RZ, -0x1.fddddap+21, -0x1.fdddep+21, 0x0p+0, INEXACT) +T(RZ, 0x1.000002p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.000002p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RZ, 0x1p-126, 0x0p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-126, -0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-149, 0x0p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-149, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.fddddap+21, 0x1.fdddd8p+21, 0x0p+0, INEXACT) +T(RU, -0x1.fddddap+21, -0x1.fdddep+21, 0x0p+0, INEXACT) +T(RU, 0x1.000002p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.000002p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RU, 0x1p-126, 0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-126, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-149, 0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-149, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.fddddap+21, 0x1.fdddd8p+21, 0x0p+0, INEXACT) +T(RD, -0x1.fddddap+21, -0x1.fdddep+21, 0x0p+0, INEXACT) +T(RD, 0x1.000002p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.000002p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RD, 0x1p-126, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-126, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-149, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-149, -0x1p+0, 0x0p+0, INEXACT) +// half way case, half way case +- ulp +T(RN, 0x1.fffffep-2, 0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1.000002p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RN, -0x1.fffffep-2, -0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.000002p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.7ffffep+0, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.8p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.800002p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.7ffffep+0, -0x1p+1, 0x0p+0, INEXACT) +T(RN, -0x1.8p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RN, -0x1.800002p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RN, 0x1.3ffffep+1, 0x1p+1, 0x0p+0, INEXACT) +T(RN, 0x1.4p+1, 0x1p+1, 0x0p+0, INEXACT) +T(RN, 0x1.400002p+1, 0x1p+1, 0x0p+0, INEXACT) +T(RN, -0x1.3ffffep+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RN, -0x1.4p+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RN, -0x1.400002p+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RN, 0x1.fdddcep+19, 0x1.fdddcp+19, 0x0p+0, INEXACT) +T(RN, 0x1.fddddp+19, 0x1.fdddcp+19, 0x0p+0, INEXACT) +T(RN, 0x1.fdddd2p+19, 0x1.fdddcp+19, 0x0p+0, INEXACT) +T(RN, -0x1.fdddcep+19, -0x1.fdddep+19, 0x0p+0, INEXACT) +T(RN, -0x1.fddddp+19, -0x1.fdddep+19, 0x0p+0, INEXACT) +T(RN, -0x1.fdddd2p+19, -0x1.fdddep+19, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffep-2, 0x0p+0, 0x0p+0, INEXACT) +T(RZ, 0x1p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.000002p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.fffffep-2, -0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.000002p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.7ffffep+0, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.8p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.800002p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RZ, -0x1.7ffffep+0, -0x1p+1, 0x0p+0, INEXACT) +T(RZ, -0x1.8p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RZ, -0x1.800002p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RZ, 0x1.3ffffep+1, 0x1p+1, 0x0p+0, INEXACT) +T(RZ, 0x1.4p+1, 0x1p+1, 0x0p+0, INEXACT) +T(RZ, 0x1.400002p+1, 0x1p+1, 0x0p+0, INEXACT) +T(RZ, -0x1.3ffffep+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RZ, -0x1.4p+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RZ, -0x1.400002p+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RZ, 0x1.fdddcep+19, 0x1.fdddcp+19, 0x0p+0, INEXACT) +T(RZ, 0x1.fddddp+19, 0x1.fdddcp+19, 0x0p+0, INEXACT) +T(RZ, 0x1.fdddd2p+19, 0x1.fdddcp+19, 0x0p+0, INEXACT) +T(RZ, -0x1.fdddcep+19, -0x1.fdddep+19, 0x0p+0, INEXACT) +T(RZ, -0x1.fddddp+19, -0x1.fdddep+19, 0x0p+0, INEXACT) +T(RZ, -0x1.fdddd2p+19, -0x1.fdddep+19, 0x0p+0, INEXACT) +T(RU, 0x1.fffffep-2, 0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1.000002p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RU, -0x1.fffffep-2, -0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.000002p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.7ffffep+0, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.8p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.800002p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RU, -0x1.7ffffep+0, -0x1p+1, 0x0p+0, INEXACT) +T(RU, -0x1.8p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RU, -0x1.800002p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RU, 0x1.3ffffep+1, 0x1p+1, 0x0p+0, INEXACT) +T(RU, 0x1.4p+1, 0x1p+1, 0x0p+0, INEXACT) +T(RU, 0x1.400002p+1, 0x1p+1, 0x0p+0, INEXACT) +T(RU, -0x1.3ffffep+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RU, -0x1.4p+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RU, -0x1.400002p+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RU, 0x1.fdddcep+19, 0x1.fdddcp+19, 0x0p+0, INEXACT) +T(RU, 0x1.fddddp+19, 0x1.fdddcp+19, 0x0p+0, INEXACT) +T(RU, 0x1.fdddd2p+19, 0x1.fdddcp+19, 0x0p+0, INEXACT) +T(RU, -0x1.fdddcep+19, -0x1.fdddep+19, 0x0p+0, INEXACT) +T(RU, -0x1.fddddp+19, -0x1.fdddep+19, 0x0p+0, INEXACT) +T(RU, -0x1.fdddd2p+19, -0x1.fdddep+19, 0x0p+0, INEXACT) +T(RD, 0x1.fffffep-2, 0x0p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RD, 0x1.000002p-1, 0x0p+0, 0x0p+0, INEXACT) +T(RD, -0x1.fffffep-2, -0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.000002p-1, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.7ffffep+0, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.8p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1.800002p+0, 0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.7ffffep+0, -0x1p+1, 0x0p+0, INEXACT) +T(RD, -0x1.8p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RD, -0x1.800002p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RD, 0x1.3ffffep+1, 0x1p+1, 0x0p+0, INEXACT) +T(RD, 0x1.4p+1, 0x1p+1, 0x0p+0, INEXACT) +T(RD, 0x1.400002p+1, 0x1p+1, 0x0p+0, INEXACT) +T(RD, -0x1.3ffffep+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RD, -0x1.4p+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RD, -0x1.400002p+1, -0x1.8p+1, 0x0p+0, INEXACT) +T(RD, 0x1.fdddcep+19, 0x1.fdddcp+19, 0x0p+0, INEXACT) +T(RD, 0x1.fddddp+19, 0x1.fdddcp+19, 0x0p+0, INEXACT) +T(RD, 0x1.fdddd2p+19, 0x1.fdddcp+19, 0x0p+0, INEXACT) +T(RD, -0x1.fdddcep+19, -0x1.fdddep+19, 0x0p+0, INEXACT) +T(RD, -0x1.fddddp+19, -0x1.fdddep+19, 0x0p+0, INEXACT) +T(RD, -0x1.fdddd2p+19, -0x1.fdddep+19, 0x0p+0, INEXACT) +// random arguments between -100,100 +T(RN, -0x1.adeefcp+3, -0x1.cp+3, 0x0p+0, INEXACT) +T(RN, 0x1.1ce3fp+5, 0x1.18p+5, 0x0p+0, INEXACT) +T(RN, 0x1.602e1p+5, 0x1.6p+5, 0x0p+0, INEXACT) +T(RN, -0x1.0b246p+5, -0x1.1p+5, 0x0p+0, INEXACT) +T(RN, -0x1.b171eep+3, -0x1.cp+3, 0x0p+0, INEXACT) +T(RN, -0x1.f6eff2p+0, -0x1p+1, 0x0p+0, INEXACT) +T(RN, 0x1.ceaa3ep+4, 0x1.cp+4, 0x0p+0, INEXACT) +T(RN, 0x1.560914p+5, 0x1.5p+5, 0x0p+0, INEXACT) +T(RN, -0x1.0ce902p+3, -0x1.2p+3, 0x0p+0, INEXACT) +T(RN, -0x1.7f35b4p+5, -0x1.8p+5, 0x0p+0, INEXACT) +// inf,nan, and subnormal number +T(RN, inf, inf, 0x0p+0, 0) +T(RN, -inf, -inf, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RZ, inf, inf, 0x0p+0, 0) +T(RZ, -inf, -inf, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, 0x1.2p+12, 0x1.2p+12, 0x0p+0, 0) +T(RD, 0x1.fffffcp+22, 0x1.fffffcp+22, 0x0p+0, 0) +T(RD, 0x1p+23, 0x1p+23, 0x0p+0, 0) +T(RD, 0x1.000002p+23, 0x1.000002p+23, 0x0p+0, 0) +T(RD, 0x1.fffffap+51, 0x1.fffffap+51, 0x0p+0, 0) +T(RD, 0x1.fffffcp+51, 0x1.fffffcp+51, 0x0p+0, 0) +T(RD, 0x1.fffffep+51, 0x1.fffffep+51, 0x0p+0, 0) +T(RD, 0x1p+52, 0x1p+52, 0x0p+0, 0) +T(RD, 0x1.000002p+52, 0x1.000002p+52, 0x0p+0, 0) +T(RD, 0x1.ffffdcp+118, 0x1.ffffdcp+118, 0x0p+0, 0) +T(RD, 0x1.ffffeep+118, 0x1.ffffeep+118, 0x0p+0, 0) +T(RD, 0x1.fffffep+118, 0x1.fffffep+118, 0x0p+0, 0) +T(RD, 0x1p+119, 0x1p+119, 0x0p+0, 0) +T(RD, -0x1.2p+12, -0x1.2p+12, 0x0p+0, 0) +T(RD, -0x1.fffffcp+22, -0x1.fffffcp+22, 0x0p+0, 0) +T(RD, -0x1p+23, -0x1p+23, 0x0p+0, 0) +T(RD, -0x1.000002p+23, -0x1.000002p+23, 0x0p+0, 0) +T(RD, -0x1.fffffap+51, -0x1.fffffap+51, 0x0p+0, 0) +T(RD, -0x1.fffffcp+51, -0x1.fffffcp+51, 0x0p+0, 0) +T(RD, -0x1.fffffep+51, -0x1.fffffep+51, 0x0p+0, 0) +T(RD, -0x1p+52, -0x1p+52, 0x0p+0, 0) +T(RD, -0x1.000002p+52, -0x1.000002p+52, 0x0p+0, 0) +T(RD,-0x1.ffffdcp+118,-0x1.ffffdcp+118, 0x0p+0, 0) +T(RD,-0x1.ffffeep+118,-0x1.ffffeep+118, 0x0p+0, 0) +T(RD,-0x1.fffffep+118,-0x1.fffffep+118, 0x0p+0, 0) +T(RD, -0x1p+119, -0x1p+119, 0x0p+0, 0) +T(RD, 0x1.fffffcp-127, 0x0p+0, 0x0p+0, INEXACT) +T(RD, 0x1.ep-1, 0x0p+0, 0x0p+0, INEXACT) +T(RD, 0x1.2p+2, 0x1p+2, 0x0p+0, INEXACT) +T(RD, 0x1.fffffep+2, 0x1.cp+2, 0x0p+0, INEXACT) +T(RD, 0x1.000002p+3, 0x1p+3, 0x0p+0, INEXACT) +T(RD, 0x1.00001p+9, 0x1p+9, 0x0p+0, INEXACT) +T(RD, 0x1.000002p+18, 0x1p+18, 0x0p+0, INEXACT) +T(RD, 0x1.fffffap+22, 0x1.fffff8p+22, 0x0p+0, INEXACT) +T(RD, 0x1.fffffep+22, 0x1.fffffcp+22, 0x0p+0, INEXACT) +T(RD,-0x1.fffffcp-127, -0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.2p+2, -0x1.4p+2, 0x0p+0, INEXACT) +T(RD, -0x1.fffffep+2, -0x1p+3, 0x0p+0, INEXACT) +T(RD, -0x1.000002p+3, -0x1.2p+3, 0x0p+0, INEXACT) +T(RD, -0x1.fffffp+8, -0x1p+9, 0x0p+0, INEXACT) +T(RD, -0x1.fffffep+17, -0x1p+18, 0x0p+0, INEXACT) +T(RD, -0x1.fffffap+22, -0x1.fffffcp+22, 0x0p+0, INEXACT) +T(RD, -0x1.fffffep+22, -0x1p+23, 0x0p+0, INEXACT) +T(RD, nan, nan, 0x0p+0, 0) +T(RN, 0x1.2p+12, 0x1.2p+12, 0x0p+0, 0) +T(RN, 0x1.fffffcp+22, 0x1.fffffcp+22, 0x0p+0, 0) +T(RN, 0x1p+23, 0x1p+23, 0x0p+0, 0) +T(RN, 0x1.000002p+23, 0x1.000002p+23, 0x0p+0, 0) +T(RN, 0x1.fffffap+51, 0x1.fffffap+51, 0x0p+0, 0) +T(RN, 0x1.fffffcp+51, 0x1.fffffcp+51, 0x0p+0, 0) +T(RN, 0x1.fffffep+51, 0x1.fffffep+51, 0x0p+0, 0) +T(RN, 0x1p+52, 0x1p+52, 0x0p+0, 0) +T(RN, 0x1.000002p+52, 0x1.000002p+52, 0x0p+0, 0) +T(RN, 0x1.ffffdcp+118, 0x1.ffffdcp+118, 0x0p+0, 0) +T(RN, 0x1.ffffeep+118, 0x1.ffffeep+118, 0x0p+0, 0) +T(RN, 0x1.fffffep+118, 0x1.fffffep+118, 0x0p+0, 0) +T(RN, 0x1p+119, 0x1p+119, 0x0p+0, 0) +T(RN, -0x1.2p+12, -0x1.2p+12, 0x0p+0, 0) +T(RN, -0x1.fffffcp+22, -0x1.fffffcp+22, 0x0p+0, 0) +T(RN, -0x1p+23, -0x1p+23, 0x0p+0, 0) +T(RN, -0x1.000002p+23, -0x1.000002p+23, 0x0p+0, 0) +T(RN, -0x1.fffffap+51, -0x1.fffffap+51, 0x0p+0, 0) +T(RN, -0x1.fffffcp+51, -0x1.fffffcp+51, 0x0p+0, 0) +T(RN, -0x1.fffffep+51, -0x1.fffffep+51, 0x0p+0, 0) +T(RN, -0x1p+52, -0x1p+52, 0x0p+0, 0) +T(RN, -0x1.000002p+52, -0x1.000002p+52, 0x0p+0, 0) +T(RN,-0x1.ffffdcp+118,-0x1.ffffdcp+118, 0x0p+0, 0) +T(RN,-0x1.ffffeep+118,-0x1.ffffeep+118, 0x0p+0, 0) +T(RN,-0x1.fffffep+118,-0x1.fffffep+118, 0x0p+0, 0) +T(RN, -0x1p+119, -0x1p+119, 0x0p+0, 0) +T(RN, 0x1.fffffcp-127, 0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1.ep-1, 0x0p+0, 0x0p+0, INEXACT) +T(RN, 0x1.2p+2, 0x1p+2, 0x0p+0, INEXACT) +T(RN, 0x1.200002p+2, 0x1p+2, 0x0p+0, INEXACT) +T(RN, 0x1.000002p+3, 0x1p+3, 0x0p+0, INEXACT) +T(RN, 0x1.00001p+9, 0x1p+9, 0x0p+0, INEXACT) +T(RN, 0x1.000002p+18, 0x1p+18, 0x0p+0, INEXACT) +T(RN, 0x1.fffffap+22, 0x1.fffff8p+22, 0x0p+0, INEXACT) +T(RN, 0x1.fffffep+22, 0x1.fffffcp+22, 0x0p+0, INEXACT) +T(RN, -0x1.200002p+2, -0x1.4p+2, 0x0p+0, INEXACT) +T(RN, -0x1.fffffep+2, -0x1p+3, 0x0p+0, INEXACT) +T(RN, -0x1.fffffp+8, -0x1p+9, 0x0p+0, INEXACT) +T(RN, -0x1.fffffep+17, -0x1p+18, 0x0p+0, INEXACT) +T(RN, -0x1.fffffap+22, -0x1.fffffcp+22, 0x0p+0, INEXACT) +T(RN, -0x1.fffffep+22, -0x1p+23, 0x0p+0, INEXACT) +T(RN, nan, nan, 0x0p+0, 0) +T(RU, 0x1.2p+12, 0x1.2p+12, 0x0p+0, 0) +T(RU, 0x1.fffffcp+22, 0x1.fffffcp+22, 0x0p+0, 0) +T(RU, 0x1p+23, 0x1p+23, 0x0p+0, 0) +T(RU, 0x1.000002p+23, 0x1.000002p+23, 0x0p+0, 0) +T(RU, 0x1.fffffap+51, 0x1.fffffap+51, 0x0p+0, 0) +T(RU, 0x1.fffffcp+51, 0x1.fffffcp+51, 0x0p+0, 0) +T(RU, 0x1.fffffep+51, 0x1.fffffep+51, 0x0p+0, 0) +T(RU, 0x1p+52, 0x1p+52, 0x0p+0, 0) +T(RU, 0x1.000002p+52, 0x1.000002p+52, 0x0p+0, 0) +T(RU, 0x1.ffffdcp+118, 0x1.ffffdcp+118, 0x0p+0, 0) +T(RU, 0x1.ffffeep+118, 0x1.ffffeep+118, 0x0p+0, 0) +T(RU, 0x1.fffffep+118, 0x1.fffffep+118, 0x0p+0, 0) +T(RU, 0x1p+119, 0x1p+119, 0x0p+0, 0) +T(RU, -0x1.2p+12, -0x1.2p+12, 0x0p+0, 0) +T(RU, -0x1.fffffcp+22, -0x1.fffffcp+22, 0x0p+0, 0) +T(RU, -0x1p+23, -0x1p+23, 0x0p+0, 0) +T(RU, -0x1.000002p+23, -0x1.000002p+23, 0x0p+0, 0) +T(RU, -0x1.fffffap+51, -0x1.fffffap+51, 0x0p+0, 0) +T(RU, -0x1.fffffcp+51, -0x1.fffffcp+51, 0x0p+0, 0) +T(RU, -0x1.fffffep+51, -0x1.fffffep+51, 0x0p+0, 0) +T(RU, -0x1p+52, -0x1p+52, 0x0p+0, 0) +T(RU, -0x1.000002p+52, -0x1.000002p+52, 0x0p+0, 0) +T(RU,-0x1.ffffdcp+118,-0x1.ffffdcp+118, 0x0p+0, 0) +T(RU,-0x1.ffffeep+118,-0x1.ffffeep+118, 0x0p+0, 0) +T(RU,-0x1.fffffep+118,-0x1.fffffep+118, 0x0p+0, 0) +T(RU, -0x1p+119, -0x1p+119, 0x0p+0, 0) +T(RU, 0x1.ep-1, 0x0p+0, 0x0p+0, INEXACT) +T(RU, 0x1.fffffap+22, 0x1.fffff8p+22, 0x0p+0, INEXACT) +T(RU, 0x1.fffffep+22, 0x1.fffffcp+22, 0x0p+0, INEXACT) +T(RU, -0x1.fffffap+22, -0x1.fffffcp+22, 0x0p+0, INEXACT) +T(RU, -0x1.fffffep+22, -0x1p+23, 0x0p+0, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RZ, 0x1.2p+12, 0x1.2p+12, 0x0p+0, 0) +T(RZ, 0x1.fffffcp+22, 0x1.fffffcp+22, 0x0p+0, 0) +T(RZ, 0x1p+23, 0x1p+23, 0x0p+0, 0) +T(RZ, 0x1.000002p+23, 0x1.000002p+23, 0x0p+0, 0) +T(RZ, 0x1.fffffap+51, 0x1.fffffap+51, 0x0p+0, 0) +T(RZ, 0x1.fffffcp+51, 0x1.fffffcp+51, 0x0p+0, 0) +T(RZ, 0x1.fffffep+51, 0x1.fffffep+51, 0x0p+0, 0) +T(RZ, 0x1p+52, 0x1p+52, 0x0p+0, 0) +T(RZ, 0x1.000002p+52, 0x1.000002p+52, 0x0p+0, 0) +T(RZ, 0x1.ffffdcp+118, 0x1.ffffdcp+118, 0x0p+0, 0) +T(RZ, 0x1.ffffeep+118, 0x1.ffffeep+118, 0x0p+0, 0) +T(RZ, 0x1.fffffep+118, 0x1.fffffep+118, 0x0p+0, 0) +T(RZ, 0x1p+119, 0x1p+119, 0x0p+0, 0) +T(RZ, -0x1.2p+12, -0x1.2p+12, 0x0p+0, 0) +T(RZ, -0x1.fffffcp+22, -0x1.fffffcp+22, 0x0p+0, 0) +T(RZ, -0x1p+23, -0x1p+23, 0x0p+0, 0) +T(RZ, -0x1.000002p+23, -0x1.000002p+23, 0x0p+0, 0) +T(RZ, -0x1.fffffap+51, -0x1.fffffap+51, 0x0p+0, 0) +T(RZ, -0x1.fffffcp+51, -0x1.fffffcp+51, 0x0p+0, 0) +T(RZ, -0x1.fffffep+51, -0x1.fffffep+51, 0x0p+0, 0) +T(RZ, -0x1p+52, -0x1p+52, 0x0p+0, 0) +T(RZ, -0x1.000002p+52, -0x1.000002p+52, 0x0p+0, 0) +T(RZ,-0x1.ffffdcp+118,-0x1.ffffdcp+118, 0x0p+0, 0) +T(RZ,-0x1.ffffeep+118,-0x1.ffffeep+118, 0x0p+0, 0) +T(RZ,-0x1.fffffep+118,-0x1.fffffep+118, 0x0p+0, 0) +T(RZ, -0x1p+119, -0x1p+119, 0x0p+0, 0) +T(RZ, 0x1.fffffcp-127, 0x0p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.ep-1, 0x0p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.2p+2, 0x1p+2, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffep+2, 0x1.cp+2, 0x0p+0, INEXACT) +T(RZ, 0x1.000002p+3, 0x1p+3, 0x0p+0, INEXACT) +T(RZ, 0x1.00001p+9, 0x1p+9, 0x0p+0, INEXACT) +T(RZ, 0x1.000002p+18, 0x1p+18, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffap+22, 0x1.fffff8p+22, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffep+22, 0x1.fffffcp+22, 0x0p+0, INEXACT) +T(RZ, -0x1.fffffap+22, -0x1.fffffcp+22, 0x0p+0, INEXACT) +T(RZ, -0x1.fffffep+22, -0x1p+23, 0x0p+0, INEXACT) +T(RZ, nan, nan, 0x0p+0, 0) diff --git a/test/musl/src/math/ucb/fmod.h b/test/musl/src/math/ucb/fmod.h new file mode 100644 index 00000000..4ce8244c --- /dev/null +++ b/test/musl/src/math/ucb/fmod.h @@ -0,0 +1,1032 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// fmodd(x,x) = 0 +T(RN, 0x1p-1022, 0x1p-1022, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-1022, -0x1p-1022, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-1022, 0x1p-1022, -0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-1022, -0x1p-1022, -0x0p+0, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023, 0x0p+0, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023, -0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p-1022, 0x1p-1022, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p-1022, -0x1p-1022, 0x0p+0, 0x0p+0, 0) +T(RU, -0x1p-1022, 0x1p-1022, -0x0p+0, 0x0p+0, 0) +T(RU, -0x1p-1022, -0x1p-1022, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023, 0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023, -0x0p+0, 0x0p+0, 0) +// fmodd(0,y)=0 for all y except nan,0 +T(RN, 0x0p+0, 0x1p-1022, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1.fffffffffffffp+1023, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, -0x1p-1022, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0,-0x1.fffffffffffffp+1023, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1p-1022, -0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1.fffffffffffffp+1023, -0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, -0x1p-1022, -0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0,-0x1.fffffffffffffp+1023, -0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1p-1022, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1.fffffffffffffp+1023, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, -0x1p-1022, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0,-0x1.fffffffffffffp+1023, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x1p-1022, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x1.fffffffffffffp+1023, -0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x1p-1022, -0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0,-0x1.fffffffffffffp+1023, -0x0p+0, 0x0p+0, 0) +// fmodd(min,max)=min +T(RN, 0x1p-1022, 0x1.fffffffffffffp+1023, 0x1p-1022, 0x0p+0, 0) +T(RN, 0x1p-1022,-0x1.fffffffffffffp+1023, 0x1p-1022, 0x0p+0, 0) +T(RN, -0x1p-1022, 0x1.fffffffffffffp+1023, -0x1p-1022, 0x0p+0, 0) +T(RN, -0x1p-1022,-0x1.fffffffffffffp+1023, -0x1p-1022, 0x0p+0, 0) +T(RD, 0x1p-1022, 0x1.fffffffffffffp+1023, 0x1p-1022, 0x0p+0, 0) +T(RZ, 0x1p-1022,-0x1.fffffffffffffp+1023, 0x1p-1022, 0x0p+0, 0) +T(RU, -0x1p-1022, 0x1.fffffffffffffp+1023, -0x1p-1022, 0x0p+0, 0) +T(RD, -0x1p-1022,-0x1.fffffffffffffp+1023, -0x1p-1022, 0x0p+0, 0) +// fmodd(max,min)= 0 +T(RN, 0x1.fffffffffffffp+1023, 0x1p-1022, 0x0p+0, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023, 0x1p-1022, -0x0p+0, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1023, -0x1p-1022, 0x0p+0, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023, -0x1p-1022, -0x0p+0, 0x0p+0, 0) +// fmodd(max,max-ulp)= ulp +T(RN, 0x1.fffffffffffffp+1023, 0x1.ffffffffffffep+1023, 0x1p+971, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023, 0x1.ffffffffffffep+1023, -0x1p+971, 0x0p+0, 0) +// fmodd(max,max/2+ulp)= max/2-ulp +T(RN, 0x1.fffffffffffffp+1023, -0x1p+1023, 0x1.ffffffffffffep+1022, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023, -0x1p+1023,-0x1.ffffffffffffep+1022, 0x0p+0, 0) +// fmodd(max,max/2)= 0 +T(RN, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1022, 0x0p+0, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1022, -0x0p+0, 0x0p+0, 0) +// fmodd(max,max/2-ulp)= 2ulp +T(RN, 0x1.fffffffffffffp+1023,-0x1.ffffffffffffep+1022, 0x1p+971, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023,-0x1.ffffffffffffep+1022, -0x1p+971, 0x0p+0, 0) +// fmodd(max/2+ulp,max) = max/2+ulp +T(RN, 0x1p+1023, 0x1.fffffffffffffp+1023, 0x1p+1023, 0x0p+0, 0) +T(RN, -0x1p+1023, 0x1.fffffffffffffp+1023, -0x1p+1023, 0x0p+0, 0) +// fmodd(max/2,max) = max/2 +T(RN, 0x1.fffffffffffffp+1022,-0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1022, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1022,-0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1022, 0x0p+0, 0) +// fmodd(max/2-ulp,max) = max/2-ulp +T(RN, 0x1.ffffffffffffep+1022, 0x1.fffffffffffffp+1023, 0x1.ffffffffffffep+1022, 0x0p+0, 0) +T(RN,-0x1.ffffffffffffep+1022, 0x1.fffffffffffffp+1023,-0x1.ffffffffffffep+1022, 0x0p+0, 0) +// fmodd(max-ulp,max)= max-ulp +T(RN, 0x1.ffffffffffffep+1023,-0x1.fffffffffffffp+1023, 0x1.ffffffffffffep+1023, 0x0p+0, 0) +T(RN,-0x1.ffffffffffffep+1023,-0x1.fffffffffffffp+1023,-0x1.ffffffffffffep+1023, 0x0p+0, 0) +// fmodd(max-ulp,max/2) = max/2 - 2ulp +T(RN, 0x1.ffffffffffffep+1023, 0x1.fffffffffffffp+1022, 0x1.ffffffffffffdp+1022, 0x0p+0, 0) +T(RN,-0x1.ffffffffffffep+1023, 0x1.fffffffffffffp+1022,-0x1.ffffffffffffdp+1022, 0x0p+0, 0) +// fmodd(x,1) for small x = n+0.5 +T(RN, 0x1.ep+2, 0x1p+0, 0x1p-1, 0x0p+0, 0) +T(RN, 0x1.ap+2, 0x1p+0, 0x1p-1, 0x0p+0, 0) +T(RN, 0x1.6p+2, 0x1p+0, 0x1p-1, 0x0p+0, 0) +T(RN, 0x1.2p+2, 0x1p+0, 0x1p-1, 0x0p+0, 0) +T(RN, -0x1.ep+2, 0x1p+0, -0x1p-1, 0x0p+0, 0) +T(RN, -0x1.ap+2, 0x1p+0, -0x1p-1, 0x0p+0, 0) +T(RN, -0x1.6p+2, 0x1p+0, -0x1p-1, 0x0p+0, 0) +T(RN, -0x1.2p+2, 0x1p+0, -0x1p-1, 0x0p+0, 0) +// random arguments between 100 -100 +T(RN, -0x1.adeefb2b5006dp+4, 0x1.1ce3efb825911p+6, -0x1.adeefb2b5006dp+4, 0x0p+0, 0) +T(RN, 0x1.602e109de7505p+6, -0x1.0b245fba96889p+6, 0x1.5426c38d431fp+4, 0x0p+0, 0) +T(RN, -0x1.b171ee27084ddp+4, -0x1.f6eff1b093c41p+1, -0x1.c1efc714cbd62p+1, 0x0p+0, 0) +T(RN, 0x1.ceaa3d18455f5p+5, 0x1.560914a51b239p+6, 0x1.ceaa3d18455f5p+5, 0x0p+0, 0) +T(RN, -0x1.0ce901079de4dp+4, -0x1.7f35b3103b871p+6, -0x1.0ce901079de4dp+4, 0x0p+0, 0) +T(RN, -0x1.4d802f24163e5p+5, 0x1.27cb21468cce9p+2, -0x1.7753696fabdcp-4, 0x0p+0, 0) +T(RN, -0x1.2f5e7f258fcbdp+6, 0x1.1cdf71ace7da1p+6, -0x1.27f0d78a7f1cp+2, 0x0p+0, 0) +T(RN, -0x1.8e779efde0ed5p+6, -0x1.8f8cce8e5e899p+6, -0x1.8e779efde0ed5p+6, 0x0p+0, 0) +T(RN, -0x1.6c4bc1412d02dp+5, 0x1.d12d328273bd1p+5, -0x1.6c4bc1412d02dp+5, 0x0p+0, 0) +T(RN, 0x1.cb3e6e8b7c6c5p+4, 0x1.8afcd8e193549p+5, 0x1.cb3e6e8b7c6c5p+4, 0x0p+0, 0) +// fmodd(x,3u) for huge x +T(RN, 0x1.fffffffffffffp+1023, 0x1.8p-1073, 0x1p-1073, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep+1023, 0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffdp+1023, 0x1.8p-1073, 0x1p-1074, 0x0p+0, 0) +T(RN,-0x1.ffffffffffffcp+1023, 0x1.8p-1073, -0x1p-1073, 0x0p+0, 0) +T(RN,-0x1.ffffffffffffbp+1023, 0x1.8p-1073, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.ffffffffffffap+1023, 0x1.8p-1073, -0x1p-1074, 0x0p+0, 0) +// fmodd(x,x-+u) for tiny or subnormal x +T(RN, 0x1.0000000000005p-1022, 0x1.0000000000006p-1022, 0x1.0000000000005p-1022, 0x0p+0, 0) +T(RN, 0x1.0000000000005p-1022, 0x1.0000000000004p-1022, 0x1p-1074, 0x0p+0, 0) +// fmodd involve nan +T(RN, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RN, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, nan, 0x0p+0, 0) +// fmodd(x,0) is nan with invalid signal except x is qnan +T(RN, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RN, inf, 0x0p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1p+0, -0x0p+0, nan, 0x0p+0, INVALID) +T(RN, 0x1p-1074, -0x0p+0, nan, 0x0p+0, INVALID) +T(RN, -0x0p+0, -0x0p+0, nan, 0x0p+0, INVALID) +// fmodd (inf,x) is nan with invalid signal except x is qnan +T(RN, inf, nan, nan, 0x0p+0, 0) +T(RN, inf, -inf, nan, 0x0p+0, INVALID) +T(RN, -inf, 0x1p+0, nan, 0x0p+0, INVALID) +T(RN, -inf, 0x1p-1074, nan, 0x0p+0, INVALID) +T(RN, -inf, 0x0p+0, nan, 0x0p+0, INVALID) +// fmodd(x,inf) is x except nan,inf +T(RN, 0x0p+0, inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-1074, inf, 0x1p-1074, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1023, inf, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RN, -0x0p+0, -inf, -0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-1074, -inf, -0x1p-1074, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023, -inf,-0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1p-1074, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1.ffffffffffffep-1023, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1p-1, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1.fffffffffffffp-1, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1.fffffffffffffp+1023, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, inf, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, -0x1p-1074, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, -0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, -inf, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1p-1074, 0x1p-1072, 0x1p-1074, 0x0p+0, 0) +T(RD, 0x1p-1074, inf, 0x1p-1074, 0x0p+0, 0) +T(RD, 0x1p-1074, -0x1p-1072, 0x1p-1074, 0x0p+0, 0) +T(RD, 0x1p-1074, -inf, 0x1p-1074, 0x0p+0, 0) +T(RD, 0x1p-1073, 0x1p-1072, 0x1p-1073, 0x0p+0, 0) +T(RD, 0x1.8p-1073, 0x1p-1072, 0x1.8p-1073, 0x0p+0, 0) +T(RD, 0x1.8p-1073, -0x1p-1072, 0x1.8p-1073, 0x0p+0, 0) +T(RD, 0x1p-1072, 0x1p-1072, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1p-1072, -0x1p-1072, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.ffffffffffff8p-1023, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffff8p-1023, 0x0p+0, 0) +T(RD, 0x1.ffffffffffff8p-1023,-0x1.ffffffffffffcp-1023, 0x1.ffffffffffff8p-1023, 0x0p+0, 0) +T(RD, 0x1.ffffffffffffep-1023, 0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.ffffffffffffep-1023, 0x1.fffffffffffffp-1022, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RD, 0x1.ffffffffffffep-1023, inf, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RD, 0x1.ffffffffffffep-1023, -0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1p-1022, 0x1.8p-1073, 0x1p-1074, 0x0p+0, 0) +T(RD, 0x1p-1022, 0x1.ffffffffffffcp-1023, 0x1p-1073, 0x0p+0, 0) +T(RD, 0x1p-1022, 0x1.fffffffffffffp-1022, 0x1p-1022, 0x0p+0, 0) +T(RD, 0x1p-1022, -0x1.8p-1073, 0x1p-1074, 0x0p+0, 0) +T(RD, 0x1.0000000000001p-1022, 0x1.ffffffffffffcp-1023, 0x1.8p-1073, 0x0p+0, 0) +T(RD, 0x1.0000000000002p-1022, 0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.0000000000002p-1022, -0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.0000000000003p-1022, 0x1.8p-1073, 0x1p-1074, 0x0p+0, 0) +T(RD, 0x1.0000000000003p-1022, 0x1.0000000000005p-1022, 0x1.0000000000003p-1022, 0x0p+0, 0) +T(RD, 0x1.0000000000003p-1022, -0x1.8p-1073, 0x1p-1074, 0x0p+0, 0) +T(RD, 0x1.0000000000004p-1022, 0x1.0000000000005p-1022, 0x1.0000000000004p-1022, 0x0p+0, 0) +T(RD, 0x1.0000000000006p-1022, 0x1.0000000000005p-1022, 0x1p-1074, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp-1022, 0x1p-1021, 0x1.fffffffffffffp-1022, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp-1014, 0x1p-1014, 0x1.ffffffffffffep-1015, 0x0p+0, 0) +T(RD, 0x1p-3, 0x1p-1, 0x1p-3, 0x0p+0, 0) +T(RD, 0x1p-2, 0x1p-1, 0x1p-2, 0x0p+0, 0) +T(RD, 0x1.0000000000001p-2, 0x1p-1, 0x1.0000000000001p-2, 0x0p+0, 0) +T(RD, 0x1.8p-2, 0x1p-1, 0x1.8p-2, 0x0p+0, 0) +T(RD, 0x1.4p-1, 0x1p-1, 0x1p-3, 0x0p+0, 0) +T(RD, 0x1.ffffffffffffcp-1, 0x1.ffffffffffffep-1, 0x1.ffffffffffffcp-1, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp+0, 0x1.fffffffffffffp-1, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp-1, inf, 0x1.fffffffffffffp-1, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1.ffffffffffffep-1, 0x1p-52, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1.fffffffffffffp+0, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+2, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1p+0, inf, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1p+0, -0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1p+0, -inf, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, 0x1p-51, 0x0p+0, 0) +T(RD, 0x1.0000000000001p+0, 0x1.0000000000005p+0, 0x1.0000000000001p+0, 0x0p+0, 0) +T(RD, 0x1.0000000000001p+0, 0x1p+1, 0x1.0000000000001p+0, 0x0p+0, 0) +T(RD, 0x1.0000000000001p+0, -0x1.0000000000005p+0, 0x1.0000000000001p+0, 0x0p+0, 0) +T(RD, 0x1.0000000000002p+0, 0x1.0000000000005p+0, 0x1.0000000000002p+0, 0x0p+0, 0) +T(RD, 0x1.0000000000003p+0, 0x1.0000000000005p+0, 0x1.0000000000003p+0, 0x0p+0, 0) +T(RD, 0x1.0000000000004p+0, 0x1.0000000000005p+0, 0x1.0000000000004p+0, 0x0p+0, 0) +T(RD, 0x1.0000000000006p+0, 0x1.0000000000005p+0, 0x1p-52, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+0, 0x1p+1, 0x1.fffffffffffffp+0, 0x0p+0, 0) +T(RD, 0x1p+1, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+1, 0x1p+2, 0x1p+1, 0x0p+0, 0) +T(RD, 0x1p+1, -0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.0000000000001p+1, 0x1p+2, 0x1.0000000000001p+1, 0x0p+0, 0) +T(RD, 0x1.0000000000001p+1, -0x1p+2, 0x1.0000000000001p+1, 0x0p+0, 0) +T(RD, 0x1.0000000000008p+1, 0x1p+2, 0x1.0000000000008p+1, 0x0p+0, 0) +T(RD, 0x1.7ffffffffffffp+1, 0x1p+1, 0x1.ffffffffffffcp-1, 0x0p+0, 0) +T(RD, 0x1.7ffffffffffffp+1, 0x1.8p+1, 0x1.7ffffffffffffp+1, 0x0p+0, 0) +T(RD, 0x1.7ffffffffffffp+1, -0x1.8p+1, 0x1.7ffffffffffffp+1, 0x0p+0, 0) +T(RD, 0x1.8p+1, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1.8p+1, 0x1p+2, 0x1.8p+1, 0x0p+0, 0) +T(RD, 0x1.8p+1, -0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1p+2, 0x1p+2, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.4p+2, 0x1p+2, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1.7fffffffffff8p+2, 0x1p+2, 0x1.fffffffffffep+0, 0x0p+0, 0) +T(RD, 0x1.7ffffffffffffp+2, 0x1p+2, 0x1.ffffffffffffcp+0, 0x0p+0, 0) +T(RD, 0x1.7ffffffffffffp+2, -0x1p+2, 0x1.ffffffffffffcp+0, 0x0p+0, 0) +T(RD, 0x1.8p+2, 0x1p+2, 0x1p+1, 0x0p+0, 0) +T(RD, 0x1.cp+2, 0x1p+2, 0x1.8p+1, 0x0p+0, 0) +T(RD, 0x1p+3, 0x1p+2, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+971, 0x1p+973, 0x1p+971, 0x0p+0, 0) +T(RD, 0x1p+1022, 0x1p+1023, 0x1p+1022, 0x0p+0, 0) +T(RD, 0x1.ffffffffffffcp+1022, 0x1.ffffffffffffep+1022, 0x1.ffffffffffffcp+1022, 0x0p+0, 0) +T(RD, 0x1.ffffffffffffep+1022, 0x1.8p+972, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.ffffffffffffep+1022, -0x1.8p+972, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1022, 0x1p+1023, 0x1.fffffffffffffp+1022, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1022, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1022, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1022, -0x1p+1023, 0x1.fffffffffffffp+1022, 0x0p+0, 0) +T(RD, 0x1p+1023, 0x1.8p+972, 0x1p+971, 0x0p+0, 0) +T(RD, 0x1p+1023, 0x1.ffffffffffffep+1022, 0x1p+971, 0x0p+0, 0) +T(RD, 0x1p+1023, 0x1.fffffffffffffp+1023, 0x1p+1023, 0x0p+0, 0) +T(RD, 0x1p+1023, -0x1.8p+972, 0x1p+971, 0x0p+0, 0) +T(RD, 0x1.0000000000001p+1023, 0x1.ffffffffffffep+1022, 0x1p+972, 0x0p+0, 0) +T(RD, 0x1.0000000000002p+1023, 0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.0000000000002p+1023, 0x1.8p+1, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.0000000000002p+1023, -0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.0000000000002p+1023, -0x1.8p+1, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.0000000000003p+1023, 0x1.8p+972, 0x1p+971, 0x0p+0, 0) +T(RD, 0x1.0000000000003p+1023, 0x1.0000000000005p+1023, 0x1.0000000000003p+1023, 0x0p+0, 0) +T(RD, 0x1.0000000000003p+1023, -0x1.8p+972, 0x1p+971, 0x0p+0, 0) +T(RD, 0x1.0000000000004p+1023, 0x1.0000000000005p+1023, 0x1.0000000000004p+1023, 0x0p+0, 0) +T(RD, 0x1.0000000000006p+1023, 0x1.0000000000005p+1023, 0x1p+971, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1023, 0x1p-1074, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1023, 0x1p-1022, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp-1022, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1023, 0x1p+1023, 0x1.ffffffffffffep+1022, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1023, 0x1.ffffffffffffep+1023, 0x1p+971, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1023, inf, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1023, -0x1p-1074, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1023,-0x1.ffffffffffffep+1023, 0x1p+971, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1023, -inf, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RD, -0x0p+0, 0x1p-1074, -0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, 0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x1p-1074, -0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RD, -0x1p-1074, 0x1p-1072, -0x1p-1074, 0x0p+0, 0) +T(RD, -0x1p-1074, inf, -0x1p-1074, 0x0p+0, 0) +T(RD, -0x1p-1074, -0x1p-1072, -0x1p-1074, 0x0p+0, 0) +T(RD, -0x1p-1074, -inf, -0x1p-1074, 0x0p+0, 0) +T(RD, -0x1.8p-1073, 0x1p-1072, -0x1.8p-1073, 0x0p+0, 0) +T(RD, -0x1.8p-1073, -0x1p-1072, -0x1.8p-1073, 0x0p+0, 0) +T(RD, -0x1p-1072, 0x1p-1072, -0x0p+0, 0x0p+0, 0) +T(RD, -0x1p-1072, -0x1p-1072, -0x0p+0, 0x0p+0, 0) +T(RD,-0x1.ffffffffffff8p-1023, 0x1.ffffffffffffcp-1023,-0x1.ffffffffffff8p-1023, 0x0p+0, 0) +T(RD,-0x1.ffffffffffff8p-1023,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffff8p-1023, 0x0p+0, 0) +T(RD,-0x1.ffffffffffffep-1023, 0x1.8p-1073, -0x0p+0, 0x0p+0, 0) +T(RD, -0x1p-1022, 0x1.8p-1073, -0x1p-1074, 0x0p+0, 0) +T(RD, -0x1p-1022, -0x1.8p-1073, -0x1p-1074, 0x0p+0, 0) +T(RD,-0x1.0000000000002p-1022, 0x1.8p-1073, -0x0p+0, 0x0p+0, 0) +T(RD,-0x1.0000000000002p-1022, -0x1.8p-1073, -0x0p+0, 0x0p+0, 0) +T(RD,-0x1.0000000000003p-1022, 0x1.8p-1073, -0x1p-1074, 0x0p+0, 0) +T(RD,-0x1.0000000000003p-1022, -0x1.8p-1073, -0x1p-1074, 0x0p+0, 0) +T(RD, -0x1p+0, 0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, inf, -0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, -0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, -inf, -0x1p+0, 0x0p+0, 0) +T(RD, -0x1.0000000000001p+0, 0x1.0000000000005p+0, -0x1.0000000000001p+0, 0x0p+0, 0) +T(RD, -0x1.0000000000001p+0, -0x1.0000000000005p+0, -0x1.0000000000001p+0, 0x0p+0, 0) +T(RD, -0x1p+1, 0x1p+1, -0x0p+0, 0x0p+0, 0) +T(RD, -0x1p+1, -0x1p+1, -0x0p+0, 0x0p+0, 0) +T(RD, -0x1.0000000000001p+1, 0x1p+2, -0x1.0000000000001p+1, 0x0p+0, 0) +T(RD, -0x1.0000000000001p+1, -0x1p+2, -0x1.0000000000001p+1, 0x0p+0, 0) +T(RD, -0x1.7ffffffffffffp+1, 0x1.8p+1, -0x1.7ffffffffffffp+1, 0x0p+0, 0) +T(RD, -0x1.7ffffffffffffp+1, -0x1.8p+1, -0x1.7ffffffffffffp+1, 0x0p+0, 0) +T(RD, -0x1.8p+1, 0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RD, -0x1.8p+1, -0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RD, -0x1.7ffffffffffffp+2, 0x1p+2, -0x1.ffffffffffffcp+0, 0x0p+0, 0) +T(RD, -0x1.7ffffffffffffp+2, -0x1p+2, -0x1.ffffffffffffcp+0, 0x0p+0, 0) +T(RD,-0x1.ffffffffffffep+1022, 0x1.8p+972, -0x0p+0, 0x0p+0, 0) +T(RD,-0x1.ffffffffffffep+1022, -0x1.8p+972, -0x0p+0, 0x0p+0, 0) +T(RD,-0x1.fffffffffffffp+1022, 0x1p+1023,-0x1.fffffffffffffp+1022, 0x0p+0, 0) +T(RD,-0x1.fffffffffffffp+1022, -0x1p+1023,-0x1.fffffffffffffp+1022, 0x0p+0, 0) +T(RD, -0x1p+1023, 0x1.8p+972, -0x1p+971, 0x0p+0, 0) +T(RD, -0x1p+1023, -0x1.8p+972, -0x1p+971, 0x0p+0, 0) +T(RD,-0x1.0000000000002p+1023, 0x1.8p-1073, -0x0p+0, 0x0p+0, 0) +T(RD,-0x1.0000000000002p+1023, 0x1.8p+1, -0x0p+0, 0x0p+0, 0) +T(RD,-0x1.0000000000002p+1023, -0x1.8p-1073, -0x0p+0, 0x0p+0, 0) +T(RD,-0x1.0000000000002p+1023, -0x1.8p+1, -0x0p+0, 0x0p+0, 0) +T(RD,-0x1.0000000000003p+1023, 0x1.8p+972, -0x1p+971, 0x0p+0, 0) +T(RD,-0x1.0000000000003p+1023, -0x1.8p+972, -0x1p+971, 0x0p+0, 0) +T(RD,-0x1.fffffffffffffp+1023, 0x1p-1074, -0x0p+0, 0x0p+0, 0) +T(RD,-0x1.fffffffffffffp+1023, 0x1.ffffffffffffep+1023, -0x1p+971, 0x0p+0, 0) +T(RD,-0x1.fffffffffffffp+1023, inf,-0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RD,-0x1.fffffffffffffp+1023, -0x1p-1074, -0x0p+0, 0x0p+0, 0) +T(RD,-0x1.fffffffffffffp+1023,-0x1.ffffffffffffep+1023, -0x1p+971, 0x0p+0, 0) +T(RD,-0x1.fffffffffffffp+1023, -inf,-0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RD, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RD, 0x1p-1074, nan, nan, 0x0p+0, 0) +T(RD, 0x1.ffffffffffffep-1023, nan, nan, 0x0p+0, 0) +T(RD, 0x1p+0, nan, nan, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1023, nan, nan, 0x0p+0, 0) +T(RD, inf, nan, nan, 0x0p+0, 0) +T(RD, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RD, nan, 0x1p-1074, nan, 0x0p+0, 0) +T(RD, nan, 0x1.ffffffffffffep-1023, nan, 0x0p+0, 0) +T(RD, nan, 0x1p+0, nan, 0x0p+0, 0) +T(RD, nan, 0x1.fffffffffffffp+1023, nan, 0x0p+0, 0) +T(RD, nan, inf, nan, 0x0p+0, 0) +T(RD, nan, nan, nan, 0x0p+0, 0) +T(RD, nan, -0x0p+0, nan, 0x0p+0, 0) +T(RD, nan, -0x1p-1074, nan, 0x0p+0, 0) +T(RD, nan,-0x1.ffffffffffffep-1023, nan, 0x0p+0, 0) +T(RD, nan, -0x1p+0, nan, 0x0p+0, 0) +T(RD, nan,-0x1.fffffffffffffp+1023, nan, 0x0p+0, 0) +T(RD, nan, -inf, nan, 0x0p+0, 0) +T(RD, -0x0p+0, nan, nan, 0x0p+0, 0) +T(RD, -0x1p-1074, nan, nan, 0x0p+0, 0) +T(RD,-0x1.ffffffffffffep-1023, nan, nan, 0x0p+0, 0) +T(RD, -0x1p+0, nan, nan, 0x0p+0, 0) +T(RD,-0x1.fffffffffffffp+1023, nan, nan, 0x0p+0, 0) +T(RD, -inf, nan, nan, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD, 0x0p+0, -0x0p+0, nan, 0x0p+0, INVALID) +T(RD, 0x1p-1074, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD, 0x1.ffffffffffffep-1023, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD, 0x1.ffffffffffffep-1023, -0x0p+0, nan, 0x0p+0, INVALID) +T(RD, 0x1.fffffffffffffp-1, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD, 0x1p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD, 0x1.fffffffffffffp+1023, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD, 0x1.fffffffffffffp+1023, -0x0p+0, nan, 0x0p+0, INVALID) +T(RD, inf, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD, inf, 0x1p-1074, nan, 0x0p+0, INVALID) +T(RD, inf, 0x1.ffffffffffffep-1023, nan, 0x0p+0, INVALID) +T(RD, inf, 0x1p+0, nan, 0x0p+0, INVALID) +T(RD, inf, 0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RD, inf, inf, nan, 0x0p+0, INVALID) +T(RD, inf, -0x0p+0, nan, 0x0p+0, INVALID) +T(RD, inf,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RD, -0x0p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD, -0x0p+0, -0x0p+0, nan, 0x0p+0, INVALID) +T(RD,-0x1.ffffffffffffep-1023, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD,-0x1.ffffffffffffep-1023, -0x0p+0, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffffffffffp+1023, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffffffffffp+1023, -0x0p+0, nan, 0x0p+0, INVALID) +T(RD, -inf, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD, -inf, 0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RD, -inf, -0x0p+0, nan, 0x0p+0, INVALID) +T(RD, -inf,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RN, 0x0p+0, 0x1p-1074, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1.ffffffffffffep-1023, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1p-1, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1.fffffffffffffp-1, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, -0x1p-1074, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, -0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-1074, 0x1p-1072, 0x1p-1074, 0x0p+0, 0) +T(RN, 0x1p-1074, -0x1p-1072, 0x1p-1074, 0x0p+0, 0) +T(RN, 0x1p-1074, -inf, 0x1p-1074, 0x0p+0, 0) +T(RN, 0x1p-1073, 0x1p-1072, 0x1p-1073, 0x0p+0, 0) +T(RN, 0x1.8p-1073, 0x1p-1072, 0x1.8p-1073, 0x0p+0, 0) +T(RN, 0x1.8p-1073, -0x1p-1072, 0x1.8p-1073, 0x0p+0, 0) +T(RN, 0x1p-1072, 0x1p-1072, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-1072, -0x1p-1072, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.ffffffffffff8p-1023, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffff8p-1023, 0x0p+0, 0) +T(RN, 0x1.ffffffffffff8p-1023,-0x1.ffffffffffffcp-1023, 0x1.ffffffffffff8p-1023, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep-1023, 0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep-1023, 0x1.fffffffffffffp-1022, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep-1023, inf, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep-1023, -0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-1022, 0x1.8p-1073, 0x1p-1074, 0x0p+0, 0) +T(RN, 0x1p-1022, 0x1.ffffffffffffcp-1023, 0x1p-1073, 0x0p+0, 0) +T(RN, 0x1p-1022, 0x1.fffffffffffffp-1022, 0x1p-1022, 0x0p+0, 0) +T(RN, 0x1p-1022, -0x1.8p-1073, 0x1p-1074, 0x0p+0, 0) +T(RN, 0x1.0000000000001p-1022, 0x1.ffffffffffffcp-1023, 0x1.8p-1073, 0x0p+0, 0) +T(RN, 0x1.0000000000002p-1022, 0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000002p-1022, -0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000003p-1022, 0x1.8p-1073, 0x1p-1074, 0x0p+0, 0) +T(RN, 0x1.0000000000003p-1022, 0x1.0000000000005p-1022, 0x1.0000000000003p-1022, 0x0p+0, 0) +T(RN, 0x1.0000000000003p-1022, -0x1.8p-1073, 0x1p-1074, 0x0p+0, 0) +T(RN, 0x1.0000000000004p-1022, 0x1.0000000000005p-1022, 0x1.0000000000004p-1022, 0x0p+0, 0) +T(RN, 0x1.0000000000006p-1022, 0x1.0000000000005p-1022, 0x1p-1074, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp-1022, 0x1p-1021, 0x1.fffffffffffffp-1022, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp-1014, 0x1p-1014, 0x1.ffffffffffffep-1015, 0x0p+0, 0) +T(RN, 0x1p-3, 0x1p-1, 0x1p-3, 0x0p+0, 0) +T(RN, 0x1p-2, 0x1p-1, 0x1p-2, 0x0p+0, 0) +T(RN, 0x1.0000000000001p-2, 0x1p-1, 0x1.0000000000001p-2, 0x0p+0, 0) +T(RN, 0x1.8p-2, 0x1p-1, 0x1.8p-2, 0x0p+0, 0) +T(RN, 0x1.4p-1, 0x1p-1, 0x1p-3, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffcp-1, 0x1.ffffffffffffep-1, 0x1.ffffffffffffcp-1, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp+0, 0x1.fffffffffffffp-1, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp-1, inf, 0x1.fffffffffffffp-1, 0x0p+0, 0) +T(RN, 0x1p+0, 0x1.ffffffffffffep-1, 0x1p-52, 0x0p+0, 0) +T(RN, 0x1p+0, 0x1.fffffffffffffp+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+0, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+0, 0x1p+2, 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, -inf, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, 0x1p-51, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+0, 0x1.0000000000005p+0, 0x1.0000000000001p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+0, 0x1p+1, 0x1.0000000000001p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+0, -0x1.0000000000005p+0, 0x1.0000000000001p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000002p+0, 0x1.0000000000005p+0, 0x1.0000000000002p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000003p+0, 0x1.0000000000005p+0, 0x1.0000000000003p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000004p+0, 0x1.0000000000005p+0, 0x1.0000000000004p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000006p+0, 0x1.0000000000005p+0, 0x1p-52, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+0, 0x1p+1, 0x1.fffffffffffffp+0, 0x0p+0, 0) +T(RN, 0x1p+1, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p+1, 0x1p+2, 0x1p+1, 0x0p+0, 0) +T(RN, 0x1p+1, -0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+1, 0x1p+2, 0x1.0000000000001p+1, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+1, -0x1p+2, 0x1.0000000000001p+1, 0x0p+0, 0) +T(RN, 0x1.0000000000008p+1, 0x1p+2, 0x1.0000000000008p+1, 0x0p+0, 0) +T(RN, 0x1.7ffffffffffffp+1, 0x1p+1, 0x1.ffffffffffffcp-1, 0x0p+0, 0) +T(RN, 0x1.7ffffffffffffp+1, 0x1.8p+1, 0x1.7ffffffffffffp+1, 0x0p+0, 0) +T(RN, 0x1.7ffffffffffffp+1, -0x1.8p+1, 0x1.7ffffffffffffp+1, 0x0p+0, 0) +T(RN, 0x1.8p+1, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.8p+1, 0x1p+2, 0x1.8p+1, 0x0p+0, 0) +T(RN, 0x1.8p+1, -0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+2, 0x1p+2, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.4p+2, 0x1p+2, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.7fffffffffff8p+2, 0x1p+2, 0x1.fffffffffffep+0, 0x0p+0, 0) +T(RN, 0x1.7ffffffffffffp+2, 0x1p+2, 0x1.ffffffffffffcp+0, 0x0p+0, 0) +T(RN, 0x1.7ffffffffffffp+2, -0x1p+2, 0x1.ffffffffffffcp+0, 0x0p+0, 0) +T(RN, 0x1.8p+2, 0x1p+2, 0x1p+1, 0x0p+0, 0) +T(RN, 0x1.cp+2, 0x1p+2, 0x1.8p+1, 0x0p+0, 0) +T(RN, 0x1p+3, 0x1p+2, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p+971, 0x1p+973, 0x1p+971, 0x0p+0, 0) +T(RN, 0x1p+1022, 0x1p+1023, 0x1p+1022, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffcp+1022, 0x1.ffffffffffffep+1022, 0x1.ffffffffffffcp+1022, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep+1022, 0x1.8p+972, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep+1022, -0x1.8p+972, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1022, 0x1p+1023, 0x1.fffffffffffffp+1022, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1022, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1022, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1022, -0x1p+1023, 0x1.fffffffffffffp+1022, 0x0p+0, 0) +T(RN, 0x1p+1023, 0x1.8p+972, 0x1p+971, 0x0p+0, 0) +T(RN, 0x1p+1023, 0x1.ffffffffffffep+1022, 0x1p+971, 0x0p+0, 0) +T(RN, 0x1p+1023, -0x1.8p+972, 0x1p+971, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+1023, 0x1.ffffffffffffep+1022, 0x1p+972, 0x0p+0, 0) +T(RN, 0x1.0000000000002p+1023, 0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000002p+1023, 0x1.8p+1, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000002p+1023, -0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000002p+1023, -0x1.8p+1, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000003p+1023, 0x1.8p+972, 0x1p+971, 0x0p+0, 0) +T(RN, 0x1.0000000000003p+1023, 0x1.0000000000005p+1023, 0x1.0000000000003p+1023, 0x0p+0, 0) +T(RN, 0x1.0000000000003p+1023, -0x1.8p+972, 0x1p+971, 0x0p+0, 0) +T(RN, 0x1.0000000000004p+1023, 0x1.0000000000005p+1023, 0x1.0000000000004p+1023, 0x0p+0, 0) +T(RN, 0x1.0000000000006p+1023, 0x1.0000000000005p+1023, 0x1p+971, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1023, 0x1p-1074, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp-1022, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1023, 0x1p+1023, 0x1.ffffffffffffep+1022, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1023, -0x1p-1074, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1023,-0x1.ffffffffffffep+1023, 0x1p+971, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1023, -inf, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1p-1074, -0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, -0x1p-1074, -0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, -0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-1074, 0x1p-1072, -0x1p-1074, 0x0p+0, 0) +T(RN, -0x1p-1074, inf, -0x1p-1074, 0x0p+0, 0) +T(RN, -0x1p-1074, -0x1p-1072, -0x1p-1074, 0x0p+0, 0) +T(RN, -0x1.8p-1073, 0x1p-1072, -0x1.8p-1073, 0x0p+0, 0) +T(RN, -0x1.8p-1073, -0x1p-1072, -0x1.8p-1073, 0x0p+0, 0) +T(RN, -0x1p-1072, 0x1p-1072, -0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-1072, -0x1p-1072, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.ffffffffffff8p-1023, 0x1.ffffffffffffcp-1023,-0x1.ffffffffffff8p-1023, 0x0p+0, 0) +T(RN,-0x1.ffffffffffff8p-1023,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffff8p-1023, 0x0p+0, 0) +T(RN,-0x1.ffffffffffffep-1023, 0x1.8p-1073, -0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-1022, 0x1.8p-1073, -0x1p-1074, 0x0p+0, 0) +T(RN, -0x1p-1022, -0x1.8p-1073, -0x1p-1074, 0x0p+0, 0) +T(RN,-0x1.0000000000002p-1022, 0x1.8p-1073, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.0000000000002p-1022, -0x1.8p-1073, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.0000000000003p-1022, 0x1.8p-1073, -0x1p-1074, 0x0p+0, 0) +T(RN,-0x1.0000000000003p-1022, -0x1.8p-1073, -0x1p-1074, 0x0p+0, 0) +T(RN, -0x1p+0, 0x1p+1, -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, -inf, -0x1p+0, 0x0p+0, 0) +T(RN, -0x1.0000000000001p+0, 0x1.0000000000005p+0, -0x1.0000000000001p+0, 0x0p+0, 0) +T(RN, -0x1.0000000000001p+0, -0x1.0000000000005p+0, -0x1.0000000000001p+0, 0x0p+0, 0) +T(RN, -0x1p+1, 0x1p+1, -0x0p+0, 0x0p+0, 0) +T(RN, -0x1p+1, -0x1p+1, -0x0p+0, 0x0p+0, 0) +T(RN, -0x1.0000000000001p+1, 0x1p+2, -0x1.0000000000001p+1, 0x0p+0, 0) +T(RN, -0x1.0000000000001p+1, -0x1p+2, -0x1.0000000000001p+1, 0x0p+0, 0) +T(RN, -0x1.7ffffffffffffp+1, 0x1.8p+1, -0x1.7ffffffffffffp+1, 0x0p+0, 0) +T(RN, -0x1.7ffffffffffffp+1, -0x1.8p+1, -0x1.7ffffffffffffp+1, 0x0p+0, 0) +T(RN, -0x1.8p+1, 0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RN, -0x1.8p+1, -0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RN, -0x1.7ffffffffffffp+2, 0x1p+2, -0x1.ffffffffffffcp+0, 0x0p+0, 0) +T(RN, -0x1.7ffffffffffffp+2, -0x1p+2, -0x1.ffffffffffffcp+0, 0x0p+0, 0) +T(RN,-0x1.ffffffffffffep+1022, 0x1.8p+972, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.ffffffffffffep+1022, -0x1.8p+972, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1022, 0x1p+1023,-0x1.fffffffffffffp+1022, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1022, -0x1p+1023,-0x1.fffffffffffffp+1022, 0x0p+0, 0) +T(RN, -0x1p+1023, 0x1.8p+972, -0x1p+971, 0x0p+0, 0) +T(RN, -0x1p+1023, -0x1.8p+972, -0x1p+971, 0x0p+0, 0) +T(RN,-0x1.0000000000002p+1023, 0x1.8p-1073, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.0000000000002p+1023, 0x1.8p+1, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.0000000000002p+1023, -0x1.8p-1073, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.0000000000002p+1023, -0x1.8p+1, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.0000000000003p+1023, 0x1.8p+972, -0x1p+971, 0x0p+0, 0) +T(RN,-0x1.0000000000003p+1023, -0x1.8p+972, -0x1p+971, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023, 0x1p-1074, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023, inf,-0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023, -0x1p-1074, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023,-0x1.ffffffffffffep+1023, -0x1p+971, 0x0p+0, 0) +T(RN, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-1074, nan, nan, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep-1023, nan, nan, 0x0p+0, 0) +T(RN, 0x1p+0, nan, nan, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1023, nan, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-1074, nan, 0x0p+0, 0) +T(RN, nan, 0x1.ffffffffffffep-1023, nan, 0x0p+0, 0) +T(RN, nan, 0x1p+0, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fffffffffffffp+1023, nan, 0x0p+0, 0) +T(RN, nan, inf, nan, 0x0p+0, 0) +T(RN, nan, -0x0p+0, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-1074, nan, 0x0p+0, 0) +T(RN, nan,-0x1.ffffffffffffep-1023, nan, 0x0p+0, 0) +T(RN, nan, -0x1p+0, nan, 0x0p+0, 0) +T(RN, nan,-0x1.fffffffffffffp+1023, nan, 0x0p+0, 0) +T(RN, nan, -inf, nan, 0x0p+0, 0) +T(RN, -0x0p+0, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-1074, nan, nan, 0x0p+0, 0) +T(RN,-0x1.ffffffffffffep-1023, nan, nan, 0x0p+0, 0) +T(RN, -0x1p+0, nan, nan, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023, nan, nan, 0x0p+0, 0) +T(RN, -inf, 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, 0x1p-1074, 0x0p+0, nan, 0x0p+0, INVALID) +T(RN, 0x1.ffffffffffffep-1023, 0x0p+0, nan, 0x0p+0, INVALID) +T(RN, 0x1.ffffffffffffep-1023, -0x0p+0, nan, 0x0p+0, INVALID) +T(RN, 0x1.fffffffffffffp-1, 0x0p+0, nan, 0x0p+0, INVALID) +T(RN, 0x1p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RN, 0x1.fffffffffffffp+1023, 0x0p+0, nan, 0x0p+0, INVALID) +T(RN, 0x1.fffffffffffffp+1023, -0x0p+0, nan, 0x0p+0, INVALID) +T(RN, inf, 0x1p-1074, nan, 0x0p+0, INVALID) +T(RN, inf, 0x1.ffffffffffffep-1023, nan, 0x0p+0, INVALID) +T(RN, inf, 0x1p+0, nan, 0x0p+0, INVALID) +T(RN, inf, 0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RN, inf, inf, nan, 0x0p+0, INVALID) +T(RN, inf, -0x0p+0, nan, 0x0p+0, INVALID) +T(RN, inf,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RN, -0x0p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffep-1023, 0x0p+0, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffep-1023, -0x0p+0, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffffffffffp+1023, 0x0p+0, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffffffffffp+1023, -0x0p+0, nan, 0x0p+0, INVALID) +T(RN, -inf, 0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RN, -inf, -0x0p+0, nan, 0x0p+0, INVALID) +T(RN, -inf,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RU, 0x0p+0, 0x1p-1074, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1.ffffffffffffep-1023, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1p-1, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1.fffffffffffffp-1, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, inf, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, -0x1p-1074, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, -0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, -inf, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1p-1074, 0x1p-1072, 0x1p-1074, 0x0p+0, 0) +T(RU, 0x1p-1074, inf, 0x1p-1074, 0x0p+0, 0) +T(RU, 0x1p-1074, -0x1p-1072, 0x1p-1074, 0x0p+0, 0) +T(RU, 0x1p-1074, -inf, 0x1p-1074, 0x0p+0, 0) +T(RU, 0x1p-1073, 0x1p-1072, 0x1p-1073, 0x0p+0, 0) +T(RU, 0x1.8p-1073, 0x1p-1072, 0x1.8p-1073, 0x0p+0, 0) +T(RU, 0x1.8p-1073, -0x1p-1072, 0x1.8p-1073, 0x0p+0, 0) +T(RU, 0x1p-1072, 0x1p-1072, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1p-1072, -0x1p-1072, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.ffffffffffff8p-1023, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffff8p-1023, 0x0p+0, 0) +T(RU, 0x1.ffffffffffff8p-1023,-0x1.ffffffffffffcp-1023, 0x1.ffffffffffff8p-1023, 0x0p+0, 0) +T(RU, 0x1.ffffffffffffep-1023, 0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.ffffffffffffep-1023, 0x1.fffffffffffffp-1022, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RU, 0x1.ffffffffffffep-1023, inf, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RU, 0x1.ffffffffffffep-1023, -0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1p-1022, 0x1.8p-1073, 0x1p-1074, 0x0p+0, 0) +T(RU, 0x1p-1022, 0x1.ffffffffffffcp-1023, 0x1p-1073, 0x0p+0, 0) +T(RU, 0x1p-1022, 0x1.fffffffffffffp-1022, 0x1p-1022, 0x0p+0, 0) +T(RU, 0x1p-1022, -0x1.8p-1073, 0x1p-1074, 0x0p+0, 0) +T(RU, 0x1.0000000000001p-1022, 0x1.ffffffffffffcp-1023, 0x1.8p-1073, 0x0p+0, 0) +T(RU, 0x1.0000000000002p-1022, 0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.0000000000002p-1022, -0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.0000000000003p-1022, 0x1.8p-1073, 0x1p-1074, 0x0p+0, 0) +T(RU, 0x1.0000000000003p-1022, 0x1.0000000000005p-1022, 0x1.0000000000003p-1022, 0x0p+0, 0) +T(RU, 0x1.0000000000003p-1022, -0x1.8p-1073, 0x1p-1074, 0x0p+0, 0) +T(RU, 0x1.0000000000004p-1022, 0x1.0000000000005p-1022, 0x1.0000000000004p-1022, 0x0p+0, 0) +T(RU, 0x1.0000000000006p-1022, 0x1.0000000000005p-1022, 0x1p-1074, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp-1022, 0x1p-1021, 0x1.fffffffffffffp-1022, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp-1014, 0x1p-1014, 0x1.ffffffffffffep-1015, 0x0p+0, 0) +T(RU, 0x1p-3, 0x1p-1, 0x1p-3, 0x0p+0, 0) +T(RU, 0x1p-2, 0x1p-1, 0x1p-2, 0x0p+0, 0) +T(RU, 0x1.0000000000001p-2, 0x1p-1, 0x1.0000000000001p-2, 0x0p+0, 0) +T(RU, 0x1.8p-2, 0x1p-1, 0x1.8p-2, 0x0p+0, 0) +T(RU, 0x1.4p-1, 0x1p-1, 0x1p-3, 0x0p+0, 0) +T(RU, 0x1.ffffffffffffcp-1, 0x1.ffffffffffffep-1, 0x1.ffffffffffffcp-1, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp+0, 0x1.fffffffffffffp-1, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp-1, inf, 0x1.fffffffffffffp-1, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1.ffffffffffffep-1, 0x1p-52, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1.fffffffffffffp+0, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+2, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1p+0, inf, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1p+0, -0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1p+0, -inf, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, 0x1p-51, 0x0p+0, 0) +T(RU, 0x1.0000000000001p+0, 0x1.0000000000005p+0, 0x1.0000000000001p+0, 0x0p+0, 0) +T(RU, 0x1.0000000000001p+0, 0x1p+1, 0x1.0000000000001p+0, 0x0p+0, 0) +T(RU, 0x1.0000000000001p+0, -0x1.0000000000005p+0, 0x1.0000000000001p+0, 0x0p+0, 0) +T(RU, 0x1.0000000000002p+0, 0x1.0000000000005p+0, 0x1.0000000000002p+0, 0x0p+0, 0) +T(RU, 0x1.0000000000003p+0, 0x1.0000000000005p+0, 0x1.0000000000003p+0, 0x0p+0, 0) +T(RU, 0x1.0000000000004p+0, 0x1.0000000000005p+0, 0x1.0000000000004p+0, 0x0p+0, 0) +T(RU, 0x1.0000000000006p+0, 0x1.0000000000005p+0, 0x1p-52, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp+0, 0x1p+1, 0x1.fffffffffffffp+0, 0x0p+0, 0) +T(RU, 0x1p+1, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1p+1, 0x1p+2, 0x1p+1, 0x0p+0, 0) +T(RU, 0x1p+1, -0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.0000000000001p+1, 0x1p+2, 0x1.0000000000001p+1, 0x0p+0, 0) +T(RU, 0x1.0000000000001p+1, -0x1p+2, 0x1.0000000000001p+1, 0x0p+0, 0) +T(RU, 0x1.0000000000008p+1, 0x1p+2, 0x1.0000000000008p+1, 0x0p+0, 0) +T(RU, 0x1.7ffffffffffffp+1, 0x1p+1, 0x1.ffffffffffffcp-1, 0x0p+0, 0) +T(RU, 0x1.7ffffffffffffp+1, 0x1.8p+1, 0x1.7ffffffffffffp+1, 0x0p+0, 0) +T(RU, 0x1.7ffffffffffffp+1, -0x1.8p+1, 0x1.7ffffffffffffp+1, 0x0p+0, 0) +T(RU, 0x1.8p+1, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1.8p+1, 0x1p+2, 0x1.8p+1, 0x0p+0, 0) +T(RU, 0x1.8p+1, -0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1p+2, 0x1p+2, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.4p+2, 0x1p+2, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1.7fffffffffff8p+2, 0x1p+2, 0x1.fffffffffffep+0, 0x0p+0, 0) +T(RU, 0x1.7ffffffffffffp+2, 0x1p+2, 0x1.ffffffffffffcp+0, 0x0p+0, 0) +T(RU, 0x1.7ffffffffffffp+2, -0x1p+2, 0x1.ffffffffffffcp+0, 0x0p+0, 0) +T(RU, 0x1.8p+2, 0x1p+2, 0x1p+1, 0x0p+0, 0) +T(RU, 0x1.cp+2, 0x1p+2, 0x1.8p+1, 0x0p+0, 0) +T(RU, 0x1p+3, 0x1p+2, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1p+971, 0x1p+973, 0x1p+971, 0x0p+0, 0) +T(RU, 0x1p+1022, 0x1p+1023, 0x1p+1022, 0x0p+0, 0) +T(RU, 0x1.ffffffffffffcp+1022, 0x1.ffffffffffffep+1022, 0x1.ffffffffffffcp+1022, 0x0p+0, 0) +T(RU, 0x1.ffffffffffffep+1022, 0x1.8p+972, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.ffffffffffffep+1022, -0x1.8p+972, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp+1022, 0x1p+1023, 0x1.fffffffffffffp+1022, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp+1022, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1022, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp+1022, -0x1p+1023, 0x1.fffffffffffffp+1022, 0x0p+0, 0) +T(RU, 0x1p+1023, 0x1.8p+972, 0x1p+971, 0x0p+0, 0) +T(RU, 0x1p+1023, 0x1.ffffffffffffep+1022, 0x1p+971, 0x0p+0, 0) +T(RU, 0x1p+1023, 0x1.fffffffffffffp+1023, 0x1p+1023, 0x0p+0, 0) +T(RU, 0x1p+1023, -0x1.8p+972, 0x1p+971, 0x0p+0, 0) +T(RU, 0x1.0000000000001p+1023, 0x1.ffffffffffffep+1022, 0x1p+972, 0x0p+0, 0) +T(RU, 0x1.0000000000002p+1023, 0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.0000000000002p+1023, 0x1.8p+1, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.0000000000002p+1023, -0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.0000000000002p+1023, -0x1.8p+1, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.0000000000003p+1023, 0x1.8p+972, 0x1p+971, 0x0p+0, 0) +T(RU, 0x1.0000000000003p+1023, 0x1.0000000000005p+1023, 0x1.0000000000003p+1023, 0x0p+0, 0) +T(RU, 0x1.0000000000003p+1023, -0x1.8p+972, 0x1p+971, 0x0p+0, 0) +T(RU, 0x1.0000000000004p+1023, 0x1.0000000000005p+1023, 0x1.0000000000004p+1023, 0x0p+0, 0) +T(RU, 0x1.0000000000006p+1023, 0x1.0000000000005p+1023, 0x1p+971, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp+1023, 0x1p-1074, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp+1023, 0x1p-1022, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp-1022, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp+1023, 0x1p+1023, 0x1.ffffffffffffep+1022, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp+1023, 0x1.ffffffffffffep+1023, 0x1p+971, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp+1023, inf, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp+1023, -0x1p-1074, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp+1023,-0x1.ffffffffffffep+1023, 0x1p+971, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp+1023, -inf, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RU, -0x0p+0, 0x1p-1074, -0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, 0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x1p-1074, -0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RU, -0x1p-1074, 0x1p-1072, -0x1p-1074, 0x0p+0, 0) +T(RU, -0x1p-1074, inf, -0x1p-1074, 0x0p+0, 0) +T(RU, -0x1p-1074, -0x1p-1072, -0x1p-1074, 0x0p+0, 0) +T(RU, -0x1p-1074, -inf, -0x1p-1074, 0x0p+0, 0) +T(RU, -0x1.8p-1073, 0x1p-1072, -0x1.8p-1073, 0x0p+0, 0) +T(RU, -0x1.8p-1073, -0x1p-1072, -0x1.8p-1073, 0x0p+0, 0) +T(RU, -0x1p-1072, 0x1p-1072, -0x0p+0, 0x0p+0, 0) +T(RU, -0x1p-1072, -0x1p-1072, -0x0p+0, 0x0p+0, 0) +T(RU,-0x1.ffffffffffff8p-1023, 0x1.ffffffffffffcp-1023,-0x1.ffffffffffff8p-1023, 0x0p+0, 0) +T(RU,-0x1.ffffffffffff8p-1023,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffff8p-1023, 0x0p+0, 0) +T(RU,-0x1.ffffffffffffep-1023, 0x1.8p-1073, -0x0p+0, 0x0p+0, 0) +T(RU, -0x1p-1022, 0x1.8p-1073, -0x1p-1074, 0x0p+0, 0) +T(RU, -0x1p-1022, -0x1.8p-1073, -0x1p-1074, 0x0p+0, 0) +T(RU,-0x1.0000000000002p-1022, 0x1.8p-1073, -0x0p+0, 0x0p+0, 0) +T(RU,-0x1.0000000000002p-1022, -0x1.8p-1073, -0x0p+0, 0x0p+0, 0) +T(RU,-0x1.0000000000003p-1022, 0x1.8p-1073, -0x1p-1074, 0x0p+0, 0) +T(RU,-0x1.0000000000003p-1022, -0x1.8p-1073, -0x1p-1074, 0x0p+0, 0) +T(RU, -0x1p+0, 0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, inf, -0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, -0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, -inf, -0x1p+0, 0x0p+0, 0) +T(RU, -0x1.0000000000001p+0, 0x1.0000000000005p+0, -0x1.0000000000001p+0, 0x0p+0, 0) +T(RU, -0x1.0000000000001p+0, -0x1.0000000000005p+0, -0x1.0000000000001p+0, 0x0p+0, 0) +T(RU, -0x1p+1, 0x1p+1, -0x0p+0, 0x0p+0, 0) +T(RU, -0x1p+1, -0x1p+1, -0x0p+0, 0x0p+0, 0) +T(RU, -0x1.0000000000001p+1, 0x1p+2, -0x1.0000000000001p+1, 0x0p+0, 0) +T(RU, -0x1.0000000000001p+1, -0x1p+2, -0x1.0000000000001p+1, 0x0p+0, 0) +T(RU, -0x1.7ffffffffffffp+1, 0x1.8p+1, -0x1.7ffffffffffffp+1, 0x0p+0, 0) +T(RU, -0x1.7ffffffffffffp+1, -0x1.8p+1, -0x1.7ffffffffffffp+1, 0x0p+0, 0) +T(RU, -0x1.8p+1, 0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RU, -0x1.8p+1, -0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RU, -0x1.7ffffffffffffp+2, 0x1p+2, -0x1.ffffffffffffcp+0, 0x0p+0, 0) +T(RU, -0x1.7ffffffffffffp+2, -0x1p+2, -0x1.ffffffffffffcp+0, 0x0p+0, 0) +T(RU,-0x1.ffffffffffffep+1022, 0x1.8p+972, -0x0p+0, 0x0p+0, 0) +T(RU,-0x1.ffffffffffffep+1022, -0x1.8p+972, -0x0p+0, 0x0p+0, 0) +T(RU,-0x1.fffffffffffffp+1022, 0x1p+1023,-0x1.fffffffffffffp+1022, 0x0p+0, 0) +T(RU,-0x1.fffffffffffffp+1022, -0x1p+1023,-0x1.fffffffffffffp+1022, 0x0p+0, 0) +T(RU, -0x1p+1023, 0x1.8p+972, -0x1p+971, 0x0p+0, 0) +T(RU, -0x1p+1023, -0x1.8p+972, -0x1p+971, 0x0p+0, 0) +T(RU,-0x1.0000000000002p+1023, 0x1.8p-1073, -0x0p+0, 0x0p+0, 0) +T(RU,-0x1.0000000000002p+1023, 0x1.8p+1, -0x0p+0, 0x0p+0, 0) +T(RU,-0x1.0000000000002p+1023, -0x1.8p-1073, -0x0p+0, 0x0p+0, 0) +T(RU,-0x1.0000000000002p+1023, -0x1.8p+1, -0x0p+0, 0x0p+0, 0) +T(RU,-0x1.0000000000003p+1023, 0x1.8p+972, -0x1p+971, 0x0p+0, 0) +T(RU,-0x1.0000000000003p+1023, -0x1.8p+972, -0x1p+971, 0x0p+0, 0) +T(RU,-0x1.fffffffffffffp+1023, 0x1p-1074, -0x0p+0, 0x0p+0, 0) +T(RU,-0x1.fffffffffffffp+1023, 0x1.ffffffffffffep+1023, -0x1p+971, 0x0p+0, 0) +T(RU,-0x1.fffffffffffffp+1023, inf,-0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RU,-0x1.fffffffffffffp+1023, -0x1p-1074, -0x0p+0, 0x0p+0, 0) +T(RU,-0x1.fffffffffffffp+1023,-0x1.ffffffffffffep+1023, -0x1p+971, 0x0p+0, 0) +T(RU,-0x1.fffffffffffffp+1023, -inf,-0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RU, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RU, 0x1p-1074, nan, nan, 0x0p+0, 0) +T(RU, 0x1.ffffffffffffep-1023, nan, nan, 0x0p+0, 0) +T(RU, 0x1p+0, nan, nan, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp+1023, nan, nan, 0x0p+0, 0) +T(RU, inf, nan, nan, 0x0p+0, 0) +T(RU, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RU, nan, 0x1p-1074, nan, 0x0p+0, 0) +T(RU, nan, 0x1.ffffffffffffep-1023, nan, 0x0p+0, 0) +T(RU, nan, 0x1p+0, nan, 0x0p+0, 0) +T(RU, nan, 0x1.fffffffffffffp+1023, nan, 0x0p+0, 0) +T(RU, nan, inf, nan, 0x0p+0, 0) +T(RU, nan, nan, nan, 0x0p+0, 0) +T(RU, nan, -0x0p+0, nan, 0x0p+0, 0) +T(RU, nan, -0x1p-1074, nan, 0x0p+0, 0) +T(RU, nan,-0x1.ffffffffffffep-1023, nan, 0x0p+0, 0) +T(RU, nan, -0x1p+0, nan, 0x0p+0, 0) +T(RU, nan,-0x1.fffffffffffffp+1023, nan, 0x0p+0, 0) +T(RU, nan, -inf, nan, 0x0p+0, 0) +T(RU, -0x0p+0, nan, nan, 0x0p+0, 0) +T(RU, -0x1p-1074, nan, nan, 0x0p+0, 0) +T(RU,-0x1.ffffffffffffep-1023, nan, nan, 0x0p+0, 0) +T(RU, -0x1p+0, nan, nan, 0x0p+0, 0) +T(RU,-0x1.fffffffffffffp+1023, nan, nan, 0x0p+0, 0) +T(RU, -inf, nan, nan, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU, 0x0p+0, -0x0p+0, nan, 0x0p+0, INVALID) +T(RU, 0x1p-1074, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU, 0x1.ffffffffffffep-1023, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU, 0x1.ffffffffffffep-1023, -0x0p+0, nan, 0x0p+0, INVALID) +T(RU, 0x1.fffffffffffffp-1, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU, 0x1p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU, 0x1.fffffffffffffp+1023, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU, 0x1.fffffffffffffp+1023, -0x0p+0, nan, 0x0p+0, INVALID) +T(RU, inf, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU, inf, 0x1p-1074, nan, 0x0p+0, INVALID) +T(RU, inf, 0x1.ffffffffffffep-1023, nan, 0x0p+0, INVALID) +T(RU, inf, 0x1p+0, nan, 0x0p+0, INVALID) +T(RU, inf, 0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RU, inf, inf, nan, 0x0p+0, INVALID) +T(RU, inf, -0x0p+0, nan, 0x0p+0, INVALID) +T(RU, inf,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RU, -0x0p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU, -0x0p+0, -0x0p+0, nan, 0x0p+0, INVALID) +T(RU,-0x1.ffffffffffffep-1023, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU,-0x1.ffffffffffffep-1023, -0x0p+0, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffffffffffp+1023, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffffffffffp+1023, -0x0p+0, nan, 0x0p+0, INVALID) +T(RU, -inf, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU, -inf, 0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RU, -inf, -0x0p+0, nan, 0x0p+0, INVALID) +T(RU, -inf,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RZ, 0x0p+0, 0x1p-1074, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1.ffffffffffffep-1023, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1p-1, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1.fffffffffffffp-1, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1.fffffffffffffp+1023, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, inf, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, -0x1p-1074, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, -0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, -inf, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p-1074, 0x1p-1072, 0x1p-1074, 0x0p+0, 0) +T(RZ, 0x1p-1074, inf, 0x1p-1074, 0x0p+0, 0) +T(RZ, 0x1p-1074, -0x1p-1072, 0x1p-1074, 0x0p+0, 0) +T(RZ, 0x1p-1074, -inf, 0x1p-1074, 0x0p+0, 0) +T(RZ, 0x1p-1073, 0x1p-1072, 0x1p-1073, 0x0p+0, 0) +T(RZ, 0x1.8p-1073, 0x1p-1072, 0x1.8p-1073, 0x0p+0, 0) +T(RZ, 0x1.8p-1073, -0x1p-1072, 0x1.8p-1073, 0x0p+0, 0) +T(RZ, 0x1p-1072, 0x1p-1072, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p-1072, -0x1p-1072, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.ffffffffffff8p-1023, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffff8p-1023, 0x0p+0, 0) +T(RZ, 0x1.ffffffffffff8p-1023,-0x1.ffffffffffffcp-1023, 0x1.ffffffffffff8p-1023, 0x0p+0, 0) +T(RZ, 0x1.ffffffffffffep-1023, 0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.ffffffffffffep-1023, 0x1.fffffffffffffp-1022, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RZ, 0x1.ffffffffffffep-1023, inf, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RZ, 0x1.ffffffffffffep-1023, -0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p-1022, 0x1.8p-1073, 0x1p-1074, 0x0p+0, 0) +T(RZ, 0x1p-1022, 0x1.ffffffffffffcp-1023, 0x1p-1073, 0x0p+0, 0) +T(RZ, 0x1p-1022, 0x1.fffffffffffffp-1022, 0x1p-1022, 0x0p+0, 0) +T(RZ, 0x1p-1022, -0x1.8p-1073, 0x1p-1074, 0x0p+0, 0) +T(RZ, 0x1.0000000000001p-1022, 0x1.ffffffffffffcp-1023, 0x1.8p-1073, 0x0p+0, 0) +T(RZ, 0x1.0000000000002p-1022, 0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.0000000000002p-1022, -0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.0000000000003p-1022, 0x1.8p-1073, 0x1p-1074, 0x0p+0, 0) +T(RZ, 0x1.0000000000003p-1022, 0x1.0000000000005p-1022, 0x1.0000000000003p-1022, 0x0p+0, 0) +T(RZ, 0x1.0000000000003p-1022, -0x1.8p-1073, 0x1p-1074, 0x0p+0, 0) +T(RZ, 0x1.0000000000004p-1022, 0x1.0000000000005p-1022, 0x1.0000000000004p-1022, 0x0p+0, 0) +T(RZ, 0x1.0000000000006p-1022, 0x1.0000000000005p-1022, 0x1p-1074, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp-1022, 0x1p-1021, 0x1.fffffffffffffp-1022, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp-1014, 0x1p-1014, 0x1.ffffffffffffep-1015, 0x0p+0, 0) +T(RZ, 0x1p-3, 0x1p-1, 0x1p-3, 0x0p+0, 0) +T(RZ, 0x1p-2, 0x1p-1, 0x1p-2, 0x0p+0, 0) +T(RZ, 0x1.0000000000001p-2, 0x1p-1, 0x1.0000000000001p-2, 0x0p+0, 0) +T(RZ, 0x1.8p-2, 0x1p-1, 0x1.8p-2, 0x0p+0, 0) +T(RZ, 0x1.4p-1, 0x1p-1, 0x1p-3, 0x0p+0, 0) +T(RZ, 0x1.ffffffffffffcp-1, 0x1.ffffffffffffep-1, 0x1.ffffffffffffcp-1, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp+0, 0x1.fffffffffffffp-1, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp-1, inf, 0x1.fffffffffffffp-1, 0x0p+0, 0) +T(RZ, 0x1p+0, 0x1.ffffffffffffep-1, 0x1p-52, 0x0p+0, 0) +T(RZ, 0x1p+0, 0x1.fffffffffffffp+0, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1p+0, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1p+0, 0x1p+2, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1p+0, inf, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1p+0, -0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1p+0, -inf, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, 0x1p-51, 0x0p+0, 0) +T(RZ, 0x1.0000000000001p+0, 0x1.0000000000005p+0, 0x1.0000000000001p+0, 0x0p+0, 0) +T(RZ, 0x1.0000000000001p+0, 0x1p+1, 0x1.0000000000001p+0, 0x0p+0, 0) +T(RZ, 0x1.0000000000001p+0, -0x1.0000000000005p+0, 0x1.0000000000001p+0, 0x0p+0, 0) +T(RZ, 0x1.0000000000002p+0, 0x1.0000000000005p+0, 0x1.0000000000002p+0, 0x0p+0, 0) +T(RZ, 0x1.0000000000003p+0, 0x1.0000000000005p+0, 0x1.0000000000003p+0, 0x0p+0, 0) +T(RZ, 0x1.0000000000004p+0, 0x1.0000000000005p+0, 0x1.0000000000004p+0, 0x0p+0, 0) +T(RZ, 0x1.0000000000006p+0, 0x1.0000000000005p+0, 0x1p-52, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp+0, 0x1p+1, 0x1.fffffffffffffp+0, 0x0p+0, 0) +T(RZ, 0x1p+1, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p+1, 0x1p+2, 0x1p+1, 0x0p+0, 0) +T(RZ, 0x1p+1, -0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.0000000000001p+1, 0x1p+2, 0x1.0000000000001p+1, 0x0p+0, 0) +T(RZ, 0x1.0000000000001p+1, -0x1p+2, 0x1.0000000000001p+1, 0x0p+0, 0) +T(RZ, 0x1.0000000000008p+1, 0x1p+2, 0x1.0000000000008p+1, 0x0p+0, 0) +T(RZ, 0x1.7ffffffffffffp+1, 0x1p+1, 0x1.ffffffffffffcp-1, 0x0p+0, 0) +T(RZ, 0x1.7ffffffffffffp+1, 0x1.8p+1, 0x1.7ffffffffffffp+1, 0x0p+0, 0) +T(RZ, 0x1.7ffffffffffffp+1, -0x1.8p+1, 0x1.7ffffffffffffp+1, 0x0p+0, 0) +T(RZ, 0x1.8p+1, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1.8p+1, 0x1p+2, 0x1.8p+1, 0x0p+0, 0) +T(RZ, 0x1.8p+1, -0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1p+2, 0x1p+2, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.4p+2, 0x1p+2, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1.7fffffffffff8p+2, 0x1p+2, 0x1.fffffffffffep+0, 0x0p+0, 0) +T(RZ, 0x1.7ffffffffffffp+2, 0x1p+2, 0x1.ffffffffffffcp+0, 0x0p+0, 0) +T(RZ, 0x1.7ffffffffffffp+2, -0x1p+2, 0x1.ffffffffffffcp+0, 0x0p+0, 0) +T(RZ, 0x1.8p+2, 0x1p+2, 0x1p+1, 0x0p+0, 0) +T(RZ, 0x1.cp+2, 0x1p+2, 0x1.8p+1, 0x0p+0, 0) +T(RZ, 0x1p+3, 0x1p+2, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p+971, 0x1p+973, 0x1p+971, 0x0p+0, 0) +T(RZ, 0x1p+1022, 0x1p+1023, 0x1p+1022, 0x0p+0, 0) +T(RZ, 0x1.ffffffffffffcp+1022, 0x1.ffffffffffffep+1022, 0x1.ffffffffffffcp+1022, 0x0p+0, 0) +T(RZ, 0x1.ffffffffffffep+1022, 0x1.8p+972, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.ffffffffffffep+1022, -0x1.8p+972, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp+1022, 0x1p+1023, 0x1.fffffffffffffp+1022, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp+1022, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1022, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp+1022, -0x1p+1023, 0x1.fffffffffffffp+1022, 0x0p+0, 0) +T(RZ, 0x1p+1023, 0x1.8p+972, 0x1p+971, 0x0p+0, 0) +T(RZ, 0x1p+1023, 0x1.ffffffffffffep+1022, 0x1p+971, 0x0p+0, 0) +T(RZ, 0x1p+1023, 0x1.fffffffffffffp+1023, 0x1p+1023, 0x0p+0, 0) +T(RZ, 0x1p+1023, -0x1.8p+972, 0x1p+971, 0x0p+0, 0) +T(RZ, 0x1.0000000000001p+1023, 0x1.ffffffffffffep+1022, 0x1p+972, 0x0p+0, 0) +T(RZ, 0x1.0000000000002p+1023, 0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.0000000000002p+1023, 0x1.8p+1, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.0000000000002p+1023, -0x1.8p-1073, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.0000000000002p+1023, -0x1.8p+1, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.0000000000003p+1023, 0x1.8p+972, 0x1p+971, 0x0p+0, 0) +T(RZ, 0x1.0000000000003p+1023, 0x1.0000000000005p+1023, 0x1.0000000000003p+1023, 0x0p+0, 0) +T(RZ, 0x1.0000000000003p+1023, -0x1.8p+972, 0x1p+971, 0x0p+0, 0) +T(RZ, 0x1.0000000000004p+1023, 0x1.0000000000005p+1023, 0x1.0000000000004p+1023, 0x0p+0, 0) +T(RZ, 0x1.0000000000006p+1023, 0x1.0000000000005p+1023, 0x1p+971, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp+1023, 0x1p-1074, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp+1023, 0x1p-1022, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp-1022, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp+1023, 0x1p+1023, 0x1.ffffffffffffep+1022, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp+1023, 0x1.ffffffffffffep+1023, 0x1p+971, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp+1023, inf, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp+1023, -0x1p-1074, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp+1023,-0x1.ffffffffffffep+1023, 0x1p+971, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp+1023, -inf, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x1p-1074, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x1p-1074, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x1p-1074, 0x1p-1072, -0x1p-1074, 0x0p+0, 0) +T(RZ, -0x1p-1074, inf, -0x1p-1074, 0x0p+0, 0) +T(RZ, -0x1p-1074, -0x1p-1072, -0x1p-1074, 0x0p+0, 0) +T(RZ, -0x1p-1074, -inf, -0x1p-1074, 0x0p+0, 0) +T(RZ, -0x1.8p-1073, 0x1p-1072, -0x1.8p-1073, 0x0p+0, 0) +T(RZ, -0x1.8p-1073, -0x1p-1072, -0x1.8p-1073, 0x0p+0, 0) +T(RZ, -0x1p-1072, 0x1p-1072, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x1p-1072, -0x1p-1072, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.ffffffffffff8p-1023, 0x1.ffffffffffffcp-1023,-0x1.ffffffffffff8p-1023, 0x0p+0, 0) +T(RZ,-0x1.ffffffffffff8p-1023,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffff8p-1023, 0x0p+0, 0) +T(RZ,-0x1.ffffffffffffep-1023, 0x1.8p-1073, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x1p-1022, 0x1.8p-1073, -0x1p-1074, 0x0p+0, 0) +T(RZ, -0x1p-1022, -0x1.8p-1073, -0x1p-1074, 0x0p+0, 0) +T(RZ,-0x1.0000000000002p-1022, 0x1.8p-1073, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.0000000000002p-1022, -0x1.8p-1073, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.0000000000003p-1022, 0x1.8p-1073, -0x1p-1074, 0x0p+0, 0) +T(RZ,-0x1.0000000000003p-1022, -0x1.8p-1073, -0x1p-1074, 0x0p+0, 0) +T(RZ, -0x1p+0, 0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RZ, -0x1p+0, inf, -0x1p+0, 0x0p+0, 0) +T(RZ, -0x1p+0, -0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RZ, -0x1p+0, -inf, -0x1p+0, 0x0p+0, 0) +T(RZ, -0x1.0000000000001p+0, 0x1.0000000000005p+0, -0x1.0000000000001p+0, 0x0p+0, 0) +T(RZ, -0x1.0000000000001p+0, -0x1.0000000000005p+0, -0x1.0000000000001p+0, 0x0p+0, 0) +T(RZ, -0x1p+1, 0x1p+1, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x1p+1, -0x1p+1, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x1.0000000000001p+1, 0x1p+2, -0x1.0000000000001p+1, 0x0p+0, 0) +T(RZ, -0x1.0000000000001p+1, -0x1p+2, -0x1.0000000000001p+1, 0x0p+0, 0) +T(RZ, -0x1.7ffffffffffffp+1, 0x1.8p+1, -0x1.7ffffffffffffp+1, 0x0p+0, 0) +T(RZ, -0x1.7ffffffffffffp+1, -0x1.8p+1, -0x1.7ffffffffffffp+1, 0x0p+0, 0) +T(RZ, -0x1.8p+1, 0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RZ, -0x1.8p+1, -0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RZ, -0x1.7ffffffffffffp+2, 0x1p+2, -0x1.ffffffffffffcp+0, 0x0p+0, 0) +T(RZ, -0x1.7ffffffffffffp+2, -0x1p+2, -0x1.ffffffffffffcp+0, 0x0p+0, 0) +T(RZ,-0x1.ffffffffffffep+1022, 0x1.8p+972, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.ffffffffffffep+1022, -0x1.8p+972, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.fffffffffffffp+1022, 0x1p+1023,-0x1.fffffffffffffp+1022, 0x0p+0, 0) +T(RZ,-0x1.fffffffffffffp+1022, -0x1p+1023,-0x1.fffffffffffffp+1022, 0x0p+0, 0) +T(RZ, -0x1p+1023, 0x1.8p+972, -0x1p+971, 0x0p+0, 0) +T(RZ, -0x1p+1023, -0x1.8p+972, -0x1p+971, 0x0p+0, 0) +T(RZ,-0x1.0000000000002p+1023, 0x1.8p-1073, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.0000000000002p+1023, 0x1.8p+1, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.0000000000002p+1023, -0x1.8p-1073, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.0000000000002p+1023, -0x1.8p+1, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.0000000000003p+1023, 0x1.8p+972, -0x1p+971, 0x0p+0, 0) +T(RZ,-0x1.0000000000003p+1023, -0x1.8p+972, -0x1p+971, 0x0p+0, 0) +T(RZ,-0x1.fffffffffffffp+1023, 0x1p-1074, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.fffffffffffffp+1023, 0x1.ffffffffffffep+1023, -0x1p+971, 0x0p+0, 0) +T(RZ,-0x1.fffffffffffffp+1023, inf,-0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RZ,-0x1.fffffffffffffp+1023, -0x1p-1074, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.fffffffffffffp+1023,-0x1.ffffffffffffep+1023, -0x1p+971, 0x0p+0, 0) +T(RZ,-0x1.fffffffffffffp+1023, -inf,-0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RZ, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RZ, 0x1p-1074, nan, nan, 0x0p+0, 0) +T(RZ, 0x1.ffffffffffffep-1023, nan, nan, 0x0p+0, 0) +T(RZ, 0x1p+0, nan, nan, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp+1023, nan, nan, 0x0p+0, 0) +T(RZ, inf, nan, nan, 0x0p+0, 0) +T(RZ, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RZ, nan, 0x1p-1074, nan, 0x0p+0, 0) +T(RZ, nan, 0x1.ffffffffffffep-1023, nan, 0x0p+0, 0) +T(RZ, nan, 0x1p+0, nan, 0x0p+0, 0) +T(RZ, nan, 0x1.fffffffffffffp+1023, nan, 0x0p+0, 0) +T(RZ, nan, inf, nan, 0x0p+0, 0) +T(RZ, nan, nan, nan, 0x0p+0, 0) +T(RZ, nan, -0x0p+0, nan, 0x0p+0, 0) +T(RZ, nan, -0x1p-1074, nan, 0x0p+0, 0) +T(RZ, nan,-0x1.ffffffffffffep-1023, nan, 0x0p+0, 0) +T(RZ, nan, -0x1p+0, nan, 0x0p+0, 0) +T(RZ, nan,-0x1.fffffffffffffp+1023, nan, 0x0p+0, 0) +T(RZ, nan, -inf, nan, 0x0p+0, 0) +T(RZ, -0x0p+0, nan, nan, 0x0p+0, 0) +T(RZ, -0x1p-1074, nan, nan, 0x0p+0, 0) +T(RZ,-0x1.ffffffffffffep-1023, nan, nan, 0x0p+0, 0) +T(RZ, -0x1p+0, nan, nan, 0x0p+0, 0) +T(RZ,-0x1.fffffffffffffp+1023, nan, nan, 0x0p+0, 0) +T(RZ, -inf, nan, nan, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x0p+0, -0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x1p-1074, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x1.ffffffffffffep-1023, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x1.ffffffffffffep-1023, -0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x1.fffffffffffffp-1, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x1p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x1.fffffffffffffp+1023, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x1.fffffffffffffp+1023, -0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, inf, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, inf, 0x1p-1074, nan, 0x0p+0, INVALID) +T(RZ, inf, 0x1.ffffffffffffep-1023, nan, 0x0p+0, INVALID) +T(RZ, inf, 0x1p+0, nan, 0x0p+0, INVALID) +T(RZ, inf, 0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RZ, inf, inf, nan, 0x0p+0, INVALID) +T(RZ, inf, -0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, inf,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RZ, -0x0p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x0p+0, -0x0p+0, nan, 0x0p+0, INVALID) +T(RZ,-0x1.ffffffffffffep-1023, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ,-0x1.ffffffffffffep-1023, -0x0p+0, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffffffffffp+1023, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffffffffffp+1023, -0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, -inf, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, -inf, 0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RZ, -inf, -0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, -inf,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/ucb/fmodf.h b/test/musl/src/math/ucb/fmodf.h new file mode 100644 index 00000000..521468b4 --- /dev/null +++ b/test/musl/src/math/ucb/fmodf.h @@ -0,0 +1,1019 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// fmods(x,x) = 0 +T(RN, 0x1p-126, 0x1p-126, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-126, -0x1p-126, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-126, 0x1p-126, -0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-126, -0x1p-126, -0x0p+0, 0x0p+0, 0) +T(RN, 0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.fffffep+127,-0x1.fffffep+127, 0x0p+0, 0x0p+0, 0) +T(RN,-0x1.fffffep+127, 0x1.fffffep+127, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.fffffep+127,-0x1.fffffep+127, -0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p-126, 0x1p-126, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p-126, -0x1p-126, 0x0p+0, 0x0p+0, 0) +T(RU, -0x1p-126, 0x1p-126, -0x0p+0, 0x0p+0, 0) +T(RU, -0x1p-126, -0x1p-126, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.fffffep+127,-0x1.fffffep+127, 0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.fffffep+127, 0x1.fffffep+127, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.fffffep+127,-0x1.fffffep+127, -0x0p+0, 0x0p+0, 0) +// fmods(0,y)=0 for all y except nan,0 +T(RN, 0x0p+0, 0x1p-126, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1.fffffep+127, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, -0x1p-126, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0,-0x1.fffffep+127, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1p-126, -0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1.fffffep+127, -0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, -0x1p-126, -0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0,-0x1.fffffep+127, -0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1p-126, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1.fffffep+127, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, -0x1p-126, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0,-0x1.fffffep+127, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x1p-126, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x1.fffffep+127, -0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x1p-126, -0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0,-0x1.fffffep+127, -0x0p+0, 0x0p+0, 0) +// fmods(min,max)=min +T(RN, 0x1p-126, 0x1.fffffep+127, 0x1p-126, 0x0p+0, 0) +T(RN, 0x1p-126,-0x1.fffffep+127, 0x1p-126, 0x0p+0, 0) +T(RN, -0x1p-126, 0x1.fffffep+127, -0x1p-126, 0x0p+0, 0) +T(RN, -0x1p-126,-0x1.fffffep+127, -0x1p-126, 0x0p+0, 0) +T(RD, 0x1p-126, 0x1.fffffep+127, 0x1p-126, 0x0p+0, 0) +T(RZ, 0x1p-126,-0x1.fffffep+127, 0x1p-126, 0x0p+0, 0) +T(RU, -0x1p-126, 0x1.fffffep+127, -0x1p-126, 0x0p+0, 0) +T(RD, -0x1p-126,-0x1.fffffep+127, -0x1p-126, 0x0p+0, 0) +// fmods(max,min)= 0 +T(RN, 0x1.fffffep+127, 0x1p-126, 0x0p+0, 0x0p+0, 0) +T(RN,-0x1.fffffep+127, 0x1p-126, -0x0p+0, 0x0p+0, 0) +T(RN, 0x1.fffffep+127, -0x1p-126, 0x0p+0, 0x0p+0, 0) +T(RN,-0x1.fffffep+127, -0x1p-126, -0x0p+0, 0x0p+0, 0) +// fmods(max,max-ulp)= ulp +T(RN, 0x1.fffffep+127, 0x1.fffffcp+127, 0x1p+104, 0x0p+0, 0) +T(RN,-0x1.fffffep+127, 0x1.fffffcp+127, -0x1p+104, 0x0p+0, 0) +// fmods(max,max/2+ulp)= max/2-ulp +T(RN, 0x1.fffffep+127, -0x1p+127, 0x1.fffffcp+126, 0x0p+0, 0) +T(RN,-0x1.fffffep+127, -0x1p+127,-0x1.fffffcp+126, 0x0p+0, 0) +// fmods(max,max/2)= 0 +T(RN, 0x1.fffffep+127, 0x1.fffffep+126, 0x0p+0, 0x0p+0, 0) +T(RN,-0x1.fffffep+127, 0x1.fffffep+126, -0x0p+0, 0x0p+0, 0) +// fmods(max,max/2-ulp)= 2ulp +T(RN, 0x1.fffffep+127,-0x1.fffffcp+126, 0x1p+104, 0x0p+0, 0) +T(RN,-0x1.fffffep+127,-0x1.fffffcp+126, -0x1p+104, 0x0p+0, 0) +// fmods(max/2+ulp,max) = max/2+ulp +T(RN, 0x1p+127, 0x1.fffffep+127, 0x1p+127, 0x0p+0, 0) +T(RN, -0x1p+127, 0x1.fffffep+127, -0x1p+127, 0x0p+0, 0) +// fmods(max/2,max) = max/2 +T(RN, 0x1.fffffep+126,-0x1.fffffep+127, 0x1.fffffep+126, 0x0p+0, 0) +T(RN,-0x1.fffffep+126,-0x1.fffffep+127,-0x1.fffffep+126, 0x0p+0, 0) +// fmods(max/2-ulp,max) = max/2-ulp +T(RN, 0x1.fffffcp+126, 0x1.fffffep+127, 0x1.fffffcp+126, 0x0p+0, 0) +T(RN,-0x1.fffffcp+126, 0x1.fffffep+127,-0x1.fffffcp+126, 0x0p+0, 0) +// fmods(max-ulp,max)= max-ulp +T(RN, 0x1.fffffcp+127,-0x1.fffffep+127, 0x1.fffffcp+127, 0x0p+0, 0) +T(RN,-0x1.fffffcp+127,-0x1.fffffep+127,-0x1.fffffcp+127, 0x0p+0, 0) +// fmods(max-ulp,max/2) = max/2 - 2ulp +T(RN, 0x1.fffffcp+127, 0x1.fffffep+126, 0x1.fffffap+126, 0x0p+0, 0) +T(RN,-0x1.fffffcp+127, 0x1.fffffep+126,-0x1.fffffap+126, 0x0p+0, 0) +// fmods(x,1) for small x = n+0.5 +T(RN, 0x1.ep+2, 0x1p+0, 0x1p-1, 0x0p+0, 0) +T(RN, 0x1.ap+2, 0x1p+0, 0x1p-1, 0x0p+0, 0) +T(RN, 0x1.6p+2, 0x1p+0, 0x1p-1, 0x0p+0, 0) +T(RN, 0x1.2p+2, 0x1p+0, 0x1p-1, 0x0p+0, 0) +T(RN, -0x1.ep+2, 0x1p+0, -0x1p-1, 0x0p+0, 0) +T(RN, -0x1.ap+2, 0x1p+0, -0x1p-1, 0x0p+0, 0) +T(RN, -0x1.6p+2, 0x1p+0, -0x1p-1, 0x0p+0, 0) +T(RN, -0x1.2p+2, 0x1p+0, -0x1p-1, 0x0p+0, 0) +// random arguments between 100 -100 +T(RN, -0x1.adeefcp+4, 0x1.1ce3fp+6, -0x1.adeefcp+4, 0x0p+0, 0) +T(RN, 0x1.602e1p+6, -0x1.0b246p+6, 0x1.5426cp+4, 0x0p+0, 0) +T(RN, -0x1.b171eep+4, -0x1.f6eff2p+1, -0x1.c1efc4p+1, 0x0p+0, 0) +T(RN, 0x1.ceaa3ep+5, 0x1.560914p+6, 0x1.ceaa3ep+5, 0x0p+0, 0) +T(RN, -0x1.0ce902p+4, -0x1.7f35b4p+6, -0x1.0ce902p+4, 0x0p+0, 0) +T(RN, -0x1.4d803p+5, 0x1.27cb22p+2, -0x1.77538p-4, 0x0p+0, 0) +T(RN, -0x1.2f5e8p+6, 0x1.1cdf72p+6, -0x1.27f0ep+2, 0x0p+0, 0) +T(RN, -0x1.8e779ep+6, -0x1.8f8ccep+6, -0x1.8e779ep+6, 0x0p+0, 0) +T(RN, -0x1.6c4bc2p+5, 0x1.d12d32p+5, -0x1.6c4bc2p+5, 0x0p+0, 0) +T(RN, 0x1.cb3e6ep+4, 0x1.8afcd8p+5, 0x1.cb3e6ep+4, 0x0p+0, 0) +// fmods(x,3u) for huge x +T(RN, 0x1.fffffep+127, 0x1.8p-148, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.fffffcp+127, 0x1.8p-148, 0x1p-149, 0x0p+0, 0) +T(RN, 0x1.fffffap+127, 0x1.8p-148, 0x1p-148, 0x0p+0, 0) +T(RN,-0x1.fffff8p+127, 0x1.8p-148, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.fffff6p+127, 0x1.8p-148, -0x1p-149, 0x0p+0, 0) +T(RN,-0x1.fffff4p+127, 0x1.8p-148, -0x1p-148, 0x0p+0, 0) +// fmods(x,x-+u) for tiny or subnormal x +T(RN, 0x1.00000cp-126, 0x1.00000ap-126, 0x1p-149, 0x0p+0, 0) +T(RN, 0x1.00000ap-126, 0x1.000008p-126, 0x1p-149, 0x0p+0, 0) +// fmods involve nan +T(RN, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RN, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, nan, 0x0p+0, 0) +// fmods(x,0) is nan with invalid signal except x is qnan +T(RN, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RN, inf, 0x0p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1p+0, -0x0p+0, nan, 0x0p+0, INVALID) +T(RN, 0x1p-149, -0x0p+0, nan, 0x0p+0, INVALID) +T(RN, -0x0p+0, -0x0p+0, nan, 0x0p+0, INVALID) +// fmods (inf,x) is nan with invalid signal except x is qnan +T(RN, inf, nan, nan, 0x0p+0, 0) +T(RN, inf, -inf, nan, 0x0p+0, INVALID) +T(RN, -inf, 0x1p+0, nan, 0x0p+0, INVALID) +T(RN, -inf, 0x1p-149, nan, 0x0p+0, INVALID) +T(RN, -inf, 0x0p+0, nan, 0x0p+0, INVALID) +// fmods(x,inf) is x except nan,inf +T(RN, 0x0p+0, inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-149, inf, 0x1p-149, 0x0p+0, 0) +T(RN, 0x1.fffffep+127, inf, 0x1.fffffep+127, 0x0p+0, 0) +T(RN, -0x0p+0, -inf, -0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-149, -inf, -0x1p-149, 0x0p+0, 0) +T(RN,-0x1.fffffep+127, -inf,-0x1.fffffep+127, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1.fffffcp-127, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1p-1, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1.fffffep-1, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1.fffffep+127, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, inf, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, -0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, -0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, -inf, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1p-149, 0x1p-147, 0x1p-149, 0x0p+0, 0) +T(RD, 0x1p-149, inf, 0x1p-149, 0x0p+0, 0) +T(RD, 0x1p-149, -0x1p-147, 0x1p-149, 0x0p+0, 0) +T(RD, 0x1p-149, -inf, 0x1p-149, 0x0p+0, 0) +T(RD, 0x1p-148, 0x1p-147, 0x1p-148, 0x0p+0, 0) +T(RD, 0x1.8p-148, 0x1p-147, 0x1.8p-148, 0x0p+0, 0) +T(RD, 0x1.8p-148, -0x1p-147, 0x1.8p-148, 0x0p+0, 0) +T(RD, 0x1p-147, 0x1p-147, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1p-147, -0x1p-147, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.fffffp-127, 0x1.fffff8p-127, 0x1.fffffp-127, 0x0p+0, 0) +T(RD, 0x1.fffffp-127,-0x1.fffff8p-127, 0x1.fffffp-127, 0x0p+0, 0) +T(RD, 0x1.fffffcp-127, 0x1.8p-148, 0x1p-149, 0x0p+0, 0) +T(RD, 0x1.fffffcp-127, 0x1.fffffep-126, 0x1.fffffcp-127, 0x0p+0, 0) +T(RD, 0x1.fffffcp-127, inf, 0x1.fffffcp-127, 0x0p+0, 0) +T(RD, 0x1.fffffcp-127, -0x1.8p-148, 0x1p-149, 0x0p+0, 0) +T(RD, 0x1p-126, 0x1.fffff8p-127, 0x1p-148, 0x0p+0, 0) +T(RD, 0x1p-126, 0x1.fffffep-126, 0x1p-126, 0x0p+0, 0) +T(RD, 0x1.000002p-126, 0x1.8p-148, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.000002p-126, 0x1.fffff8p-127, 0x1.8p-148, 0x0p+0, 0) +T(RD, 0x1.000002p-126, -0x1.8p-148, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.000004p-126, 0x1.8p-148, 0x1p-149, 0x0p+0, 0) +T(RD, 0x1.000004p-126, -0x1.8p-148, 0x1p-149, 0x0p+0, 0) +T(RD, 0x1.000006p-126, 0x1.00000ap-126, 0x1.000006p-126, 0x0p+0, 0) +T(RD, 0x1.000008p-126, 0x1.00000ap-126, 0x1.000008p-126, 0x0p+0, 0) +T(RD, 0x1.00000cp-126, 0x1.00000ap-126, 0x1p-149, 0x0p+0, 0) +T(RD, 0x1.fffffep-126, 0x1p-125, 0x1.fffffep-126, 0x0p+0, 0) +T(RD, 0x1.fffffep-118, 0x1p-118, 0x1.fffffcp-119, 0x0p+0, 0) +T(RD, 0x1p-3, 0x1p-1, 0x1p-3, 0x0p+0, 0) +T(RD, 0x1p-2, 0x1p-1, 0x1p-2, 0x0p+0, 0) +T(RD, 0x1.000002p-2, 0x1p-1, 0x1.000002p-2, 0x0p+0, 0) +T(RD, 0x1.8p-2, 0x1p-1, 0x1.8p-2, 0x0p+0, 0) +T(RD, 0x1.4p-1, 0x1p-1, 0x1p-3, 0x0p+0, 0) +T(RD, 0x1.fffff8p-1, 0x1.fffffcp-1, 0x1.fffff8p-1, 0x0p+0, 0) +T(RD, 0x1.fffffep-1, 0x1.fffffep+0, 0x1.fffffep-1, 0x0p+0, 0) +T(RD, 0x1.fffffep-1, inf, 0x1.fffffep-1, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1.fffffcp-1, 0x1p-23, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1.fffffep+0, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+2, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1p+0, inf, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1p+0, -0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1p+0, -inf, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1.000002p+0, 0x1.fffffcp-1, 0x1p-22, 0x0p+0, 0) +T(RD, 0x1.000002p+0, 0x1.00000ap+0, 0x1.000002p+0, 0x0p+0, 0) +T(RD, 0x1.000002p+0, 0x1p+1, 0x1.000002p+0, 0x0p+0, 0) +T(RD, 0x1.000002p+0, -0x1.00000ap+0, 0x1.000002p+0, 0x0p+0, 0) +T(RD, 0x1.000004p+0, 0x1.00000ap+0, 0x1.000004p+0, 0x0p+0, 0) +T(RD, 0x1.000006p+0, 0x1.00000ap+0, 0x1.000006p+0, 0x0p+0, 0) +T(RD, 0x1.000008p+0, 0x1.00000ap+0, 0x1.000008p+0, 0x0p+0, 0) +T(RD, 0x1.00000cp+0, 0x1.00000ap+0, 0x1p-23, 0x0p+0, 0) +T(RD, 0x1.fffffep+0, 0x1p+1, 0x1.fffffep+0, 0x0p+0, 0) +T(RD, 0x1p+1, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+1, 0x1p+2, 0x1p+1, 0x0p+0, 0) +T(RD, 0x1p+1, -0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.000002p+1, 0x1p+2, 0x1.000002p+1, 0x0p+0, 0) +T(RD, 0x1.000002p+1, -0x1p+2, 0x1.000002p+1, 0x0p+0, 0) +T(RD, 0x1.00001p+1, 0x1p+2, 0x1.00001p+1, 0x0p+0, 0) +T(RD, 0x1.7ffffep+1, 0x1p+1, 0x1.fffff8p-1, 0x0p+0, 0) +T(RD, 0x1.7ffffep+1, 0x1.8p+1, 0x1.7ffffep+1, 0x0p+0, 0) +T(RD, 0x1.7ffffep+1, -0x1.8p+1, 0x1.7ffffep+1, 0x0p+0, 0) +T(RD, 0x1.8p+1, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1.8p+1, 0x1p+2, 0x1.8p+1, 0x0p+0, 0) +T(RD, 0x1.8p+1, -0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1p+2, 0x1p+2, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.4p+2, 0x1p+2, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1.7ffffp+2, 0x1p+2, 0x1.ffffcp+0, 0x0p+0, 0) +T(RD, 0x1.7ffffep+2, 0x1p+2, 0x1.fffff8p+0, 0x0p+0, 0) +T(RD, 0x1.7ffffep+2, -0x1p+2, 0x1.fffff8p+0, 0x0p+0, 0) +T(RD, 0x1.8p+2, 0x1p+2, 0x1p+1, 0x0p+0, 0) +T(RD, 0x1.cp+2, 0x1p+2, 0x1.8p+1, 0x0p+0, 0) +T(RD, 0x1p+3, 0x1p+2, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1p+104, 0x1p+106, 0x1p+104, 0x0p+0, 0) +T(RD, 0x1p+126, 0x1p+127, 0x1p+126, 0x0p+0, 0) +T(RD, 0x1.fffff8p+126, 0x1.fffffcp+126, 0x1.fffff8p+126, 0x0p+0, 0) +T(RD, 0x1.fffffcp+126, 0x1.8p+105, 0x1p+104, 0x0p+0, 0) +T(RD, 0x1.fffffcp+126, -0x1.8p+105, 0x1p+104, 0x0p+0, 0) +T(RD, 0x1.fffffep+126, 0x1p+127, 0x1.fffffep+126, 0x0p+0, 0) +T(RD, 0x1.fffffep+126, 0x1.fffffep+127, 0x1.fffffep+126, 0x0p+0, 0) +T(RD, 0x1.fffffep+126, -0x1p+127, 0x1.fffffep+126, 0x0p+0, 0) +T(RD, 0x1p+127, 0x1.fffffcp+126, 0x1p+104, 0x0p+0, 0) +T(RD, 0x1p+127, 0x1.fffffep+127, 0x1p+127, 0x0p+0, 0) +T(RD, 0x1.000002p+127, 0x1.8p-148, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.000002p+127, 0x1.8p+105, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.000002p+127, 0x1.fffffcp+126, 0x1p+105, 0x0p+0, 0) +T(RD, 0x1.000002p+127, -0x1.8p-148, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.000002p+127, -0x1.8p+1, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.000002p+127, -0x1.8p+105, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.000004p+127, -0x1.8p+105, 0x1p+104, 0x0p+0, 0) +T(RD, 0x1.000006p+127, 0x1.8p+105, 0x1p+105, 0x0p+0, 0) +T(RD, 0x1.000006p+127, 0x1.00000ap+127, 0x1.000006p+127, 0x0p+0, 0) +T(RD, 0x1.000008p+127, 0x1.00000ap+127, 0x1.000008p+127, 0x0p+0, 0) +T(RD, 0x1.00000cp+127, 0x1.00000ap+127, 0x1p+104, 0x0p+0, 0) +T(RD, 0x1.fffffep+127, 0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.fffffep+127, 0x1p-126, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.fffffep+127, 0x1.fffffep-126, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.fffffep+127, 0x1p+127, 0x1.fffffcp+126, 0x0p+0, 0) +T(RD, 0x1.fffffep+127, 0x1.fffffcp+127, 0x1p+104, 0x0p+0, 0) +T(RD, 0x1.fffffep+127, inf, 0x1.fffffep+127, 0x0p+0, 0) +T(RD, 0x1.fffffep+127, -0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.fffffep+127,-0x1.fffffcp+127, 0x1p+104, 0x0p+0, 0) +T(RD, 0x1.fffffep+127, -inf, 0x1.fffffep+127, 0x0p+0, 0) +T(RD, -0x0p+0, 0x1p-149, -0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, 0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x1p-149, -0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RD, -0x1p-149, 0x1p-147, -0x1p-149, 0x0p+0, 0) +T(RD, -0x1p-149, inf, -0x1p-149, 0x0p+0, 0) +T(RD, -0x1p-149, -0x1p-147, -0x1p-149, 0x0p+0, 0) +T(RD, -0x1p-149, -inf, -0x1p-149, 0x0p+0, 0) +T(RD, -0x1.8p-148, 0x1p-147, -0x1.8p-148, 0x0p+0, 0) +T(RD, -0x1.8p-148, -0x1p-147, -0x1.8p-148, 0x0p+0, 0) +T(RD, -0x1p-147, 0x1p-147, -0x0p+0, 0x0p+0, 0) +T(RD, -0x1p-147, -0x1p-147, -0x0p+0, 0x0p+0, 0) +T(RD, -0x1.fffffp-127, 0x1.fffff8p-127, -0x1.fffffp-127, 0x0p+0, 0) +T(RD, -0x1.fffffp-127,-0x1.fffff8p-127, -0x1.fffffp-127, 0x0p+0, 0) +T(RD,-0x1.fffffcp-127, 0x1.8p-148, -0x1p-149, 0x0p+0, 0) +T(RD,-0x1.fffffcp-127, -0x1.8p-148, -0x1p-149, 0x0p+0, 0) +T(RD,-0x1.000002p-126, 0x1.8p-148, -0x0p+0, 0x0p+0, 0) +T(RD,-0x1.000002p-126, -0x1.8p-148, -0x0p+0, 0x0p+0, 0) +T(RD,-0x1.000004p-126, 0x1.8p-148, -0x1p-149, 0x0p+0, 0) +T(RD,-0x1.000004p-126, -0x1.8p-148, -0x1p-149, 0x0p+0, 0) +T(RD,-0x1.000006p-126, 0x1.8p-148, -0x1p-148, 0x0p+0, 0) +T(RD, -0x1p+0, 0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, inf, -0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, -0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, -inf, -0x1p+0, 0x0p+0, 0) +T(RD, -0x1.000002p+0, 0x1.00000ap+0, -0x1.000002p+0, 0x0p+0, 0) +T(RD, -0x1.000002p+0, -0x1.00000ap+0, -0x1.000002p+0, 0x0p+0, 0) +T(RD, -0x1p+1, 0x1p+1, -0x0p+0, 0x0p+0, 0) +T(RD, -0x1p+1, -0x1p+1, -0x0p+0, 0x0p+0, 0) +T(RD, -0x1.000002p+1, 0x1p+2, -0x1.000002p+1, 0x0p+0, 0) +T(RD, -0x1.000002p+1, -0x1p+2, -0x1.000002p+1, 0x0p+0, 0) +T(RD, -0x1.7ffffep+1, 0x1.8p+1, -0x1.7ffffep+1, 0x0p+0, 0) +T(RD, -0x1.7ffffep+1, -0x1.8p+1, -0x1.7ffffep+1, 0x0p+0, 0) +T(RD, -0x1.8p+1, 0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RD, -0x1.8p+1, -0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RD, -0x1.7ffffep+2, 0x1p+2, -0x1.fffff8p+0, 0x0p+0, 0) +T(RD, -0x1.7ffffep+2, -0x1p+2, -0x1.fffff8p+0, 0x0p+0, 0) +T(RD,-0x1.fffffcp+126, 0x1.8p+105, -0x1p+104, 0x0p+0, 0) +T(RD,-0x1.fffffcp+126, -0x1.8p+105, -0x1p+104, 0x0p+0, 0) +T(RD,-0x1.fffffep+126, 0x1p+127,-0x1.fffffep+126, 0x0p+0, 0) +T(RD,-0x1.fffffep+126, -0x1p+127,-0x1.fffffep+126, 0x0p+0, 0) +T(RD,-0x1.000002p+127, 0x1.8p-148, -0x0p+0, 0x0p+0, 0) +T(RD,-0x1.000002p+127, 0x1.8p+1, -0x0p+0, 0x0p+0, 0) +T(RD,-0x1.000002p+127, 0x1.8p+105, -0x0p+0, 0x0p+0, 0) +T(RD,-0x1.000002p+127, -0x1.8p-148, -0x0p+0, 0x0p+0, 0) +T(RD,-0x1.000002p+127, -0x1.8p+1, -0x0p+0, 0x0p+0, 0) +T(RD,-0x1.000002p+127, -0x1.8p+105, -0x0p+0, 0x0p+0, 0) +T(RD,-0x1.000004p+127, 0x1.8p+105, -0x1p+104, 0x0p+0, 0) +T(RD,-0x1.000004p+127, -0x1.8p+105, -0x1p+104, 0x0p+0, 0) +T(RD,-0x1.fffffep+127, 0x1p-149, -0x0p+0, 0x0p+0, 0) +T(RD,-0x1.fffffep+127, 0x1.fffffcp+127, -0x1p+104, 0x0p+0, 0) +T(RD,-0x1.fffffep+127, inf,-0x1.fffffep+127, 0x0p+0, 0) +T(RD,-0x1.fffffep+127, -0x1p-149, -0x0p+0, 0x0p+0, 0) +T(RD,-0x1.fffffep+127,-0x1.fffffcp+127, -0x1p+104, 0x0p+0, 0) +T(RD,-0x1.fffffep+127, -inf,-0x1.fffffep+127, 0x0p+0, 0) +T(RD, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RD, 0x1p-149, nan, nan, 0x0p+0, 0) +T(RD, 0x1.fffffcp-127, nan, nan, 0x0p+0, 0) +T(RD, 0x1p+0, nan, nan, 0x0p+0, 0) +T(RD, 0x1.fffffep+127, nan, nan, 0x0p+0, 0) +T(RD, inf, nan, nan, 0x0p+0, 0) +T(RD, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RD, nan, 0x1p-149, nan, 0x0p+0, 0) +T(RD, nan, 0x1.fffffcp-127, nan, 0x0p+0, 0) +T(RD, nan, 0x1p+0, nan, 0x0p+0, 0) +T(RD, nan, 0x1.fffffep+127, nan, 0x0p+0, 0) +T(RD, nan, inf, nan, 0x0p+0, 0) +T(RD, nan, nan, nan, 0x0p+0, 0) +T(RD, nan, -0x0p+0, nan, 0x0p+0, 0) +T(RD, nan, -0x1p-149, nan, 0x0p+0, 0) +T(RD, nan,-0x1.fffffcp-127, nan, 0x0p+0, 0) +T(RD, nan, -0x1p+0, nan, 0x0p+0, 0) +T(RD, nan,-0x1.fffffep+127, nan, 0x0p+0, 0) +T(RD, nan, -inf, nan, 0x0p+0, 0) +T(RD, -0x0p+0, nan, nan, 0x0p+0, 0) +T(RD, -0x1p-149, nan, nan, 0x0p+0, 0) +T(RD,-0x1.fffffcp-127, nan, nan, 0x0p+0, 0) +T(RD, -0x1p+0, nan, nan, 0x0p+0, 0) +T(RD,-0x1.fffffep+127, nan, nan, 0x0p+0, 0) +T(RD, -inf, nan, nan, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD, 0x0p+0, -0x0p+0, nan, 0x0p+0, INVALID) +T(RD, 0x1p-149, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD, 0x1.fffffcp-127, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD, 0x1.fffffcp-127, -0x0p+0, nan, 0x0p+0, INVALID) +T(RD, 0x1.fffffep-1, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD, 0x1p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD, 0x1.fffffep+127, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD, 0x1.fffffep+127, -0x0p+0, nan, 0x0p+0, INVALID) +T(RD, inf, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD, inf, 0x1p-149, nan, 0x0p+0, INVALID) +T(RD, inf, 0x1.fffffcp-127, nan, 0x0p+0, INVALID) +T(RD, inf, 0x1p+0, nan, 0x0p+0, INVALID) +T(RD, inf, 0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RD, inf, inf, nan, 0x0p+0, INVALID) +T(RD, inf, -0x0p+0, nan, 0x0p+0, INVALID) +T(RD, inf,-0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RD, -0x0p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD, -0x0p+0, -0x0p+0, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffcp-127, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffcp-127, -0x0p+0, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffep+127, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffep+127, -0x0p+0, nan, 0x0p+0, INVALID) +T(RD, -inf, 0x0p+0, nan, 0x0p+0, INVALID) +T(RD, -inf, 0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RD, -inf, -0x0p+0, nan, 0x0p+0, INVALID) +T(RD, -inf,-0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RN, 0x0p+0, 0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1.fffffcp-127, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1p-1, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1.fffffep-1, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, -0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, -0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-149, 0x1p-147, 0x1p-149, 0x0p+0, 0) +T(RN, 0x1p-149, -0x1p-147, 0x1p-149, 0x0p+0, 0) +T(RN, 0x1p-149, -inf, 0x1p-149, 0x0p+0, 0) +T(RN, 0x1p-148, 0x1p-147, 0x1p-148, 0x0p+0, 0) +T(RN, 0x1.8p-148, 0x1p-147, 0x1.8p-148, 0x0p+0, 0) +T(RN, 0x1.8p-148, -0x1p-147, 0x1.8p-148, 0x0p+0, 0) +T(RN, 0x1p-147, 0x1p-147, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-147, -0x1p-147, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.fffffp-127, 0x1.fffff8p-127, 0x1.fffffp-127, 0x0p+0, 0) +T(RN, 0x1.fffffp-127,-0x1.fffff8p-127, 0x1.fffffp-127, 0x0p+0, 0) +T(RN, 0x1.fffffcp-127, 0x1.8p-148, 0x1p-149, 0x0p+0, 0) +T(RN, 0x1.fffffcp-127, 0x1.fffffep-126, 0x1.fffffcp-127, 0x0p+0, 0) +T(RN, 0x1.fffffcp-127, inf, 0x1.fffffcp-127, 0x0p+0, 0) +T(RN, 0x1.fffffcp-127, -0x1.8p-148, 0x1p-149, 0x0p+0, 0) +T(RN, 0x1p-126, 0x1.fffff8p-127, 0x1p-148, 0x0p+0, 0) +T(RN, 0x1p-126, 0x1.fffffep-126, 0x1p-126, 0x0p+0, 0) +T(RN, 0x1.000002p-126, 0x1.8p-148, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.000002p-126, 0x1.fffff8p-127, 0x1.8p-148, 0x0p+0, 0) +T(RN, 0x1.000002p-126, -0x1.8p-148, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.000004p-126, 0x1.8p-148, 0x1p-149, 0x0p+0, 0) +T(RN, 0x1.000004p-126, -0x1.8p-148, 0x1p-149, 0x0p+0, 0) +T(RN, 0x1.000006p-126, 0x1.00000ap-126, 0x1.000006p-126, 0x0p+0, 0) +T(RN, 0x1.000008p-126, 0x1.00000ap-126, 0x1.000008p-126, 0x0p+0, 0) +T(RN, 0x1.fffffep-126, 0x1p-125, 0x1.fffffep-126, 0x0p+0, 0) +T(RN, 0x1.fffffep-118, 0x1p-118, 0x1.fffffcp-119, 0x0p+0, 0) +T(RN, 0x1p-3, 0x1p-1, 0x1p-3, 0x0p+0, 0) +T(RN, 0x1p-2, 0x1p-1, 0x1p-2, 0x0p+0, 0) +T(RN, 0x1.000002p-2, 0x1p-1, 0x1.000002p-2, 0x0p+0, 0) +T(RN, 0x1.8p-2, 0x1p-1, 0x1.8p-2, 0x0p+0, 0) +T(RN, 0x1.4p-1, 0x1p-1, 0x1p-3, 0x0p+0, 0) +T(RN, 0x1.fffff8p-1, 0x1.fffffcp-1, 0x1.fffff8p-1, 0x0p+0, 0) +T(RN, 0x1.fffffep-1, 0x1.fffffep+0, 0x1.fffffep-1, 0x0p+0, 0) +T(RN, 0x1.fffffep-1, inf, 0x1.fffffep-1, 0x0p+0, 0) +T(RN, 0x1p+0, 0x1.fffffcp-1, 0x1p-23, 0x0p+0, 0) +T(RN, 0x1p+0, 0x1.fffffep+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+0, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+0, 0x1p+2, 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, -inf, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.000002p+0, 0x1.fffffcp-1, 0x1p-22, 0x0p+0, 0) +T(RN, 0x1.000002p+0, 0x1.00000ap+0, 0x1.000002p+0, 0x0p+0, 0) +T(RN, 0x1.000002p+0, 0x1p+1, 0x1.000002p+0, 0x0p+0, 0) +T(RN, 0x1.000002p+0, -0x1.00000ap+0, 0x1.000002p+0, 0x0p+0, 0) +T(RN, 0x1.000004p+0, 0x1.00000ap+0, 0x1.000004p+0, 0x0p+0, 0) +T(RN, 0x1.000006p+0, 0x1.00000ap+0, 0x1.000006p+0, 0x0p+0, 0) +T(RN, 0x1.000008p+0, 0x1.00000ap+0, 0x1.000008p+0, 0x0p+0, 0) +T(RN, 0x1.00000cp+0, 0x1.00000ap+0, 0x1p-23, 0x0p+0, 0) +T(RN, 0x1.fffffep+0, 0x1p+1, 0x1.fffffep+0, 0x0p+0, 0) +T(RN, 0x1p+1, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p+1, 0x1p+2, 0x1p+1, 0x0p+0, 0) +T(RN, 0x1p+1, -0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.000002p+1, 0x1p+2, 0x1.000002p+1, 0x0p+0, 0) +T(RN, 0x1.000002p+1, -0x1p+2, 0x1.000002p+1, 0x0p+0, 0) +T(RN, 0x1.00001p+1, 0x1p+2, 0x1.00001p+1, 0x0p+0, 0) +T(RN, 0x1.7ffffep+1, 0x1p+1, 0x1.fffff8p-1, 0x0p+0, 0) +T(RN, 0x1.7ffffep+1, 0x1.8p+1, 0x1.7ffffep+1, 0x0p+0, 0) +T(RN, 0x1.7ffffep+1, -0x1.8p+1, 0x1.7ffffep+1, 0x0p+0, 0) +T(RN, 0x1.8p+1, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.8p+1, 0x1p+2, 0x1.8p+1, 0x0p+0, 0) +T(RN, 0x1.8p+1, -0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+2, 0x1p+2, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.4p+2, 0x1p+2, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.7ffffp+2, 0x1p+2, 0x1.ffffcp+0, 0x0p+0, 0) +T(RN, 0x1.7ffffep+2, 0x1p+2, 0x1.fffff8p+0, 0x0p+0, 0) +T(RN, 0x1.7ffffep+2, -0x1p+2, 0x1.fffff8p+0, 0x0p+0, 0) +T(RN, 0x1.8p+2, 0x1p+2, 0x1p+1, 0x0p+0, 0) +T(RN, 0x1.cp+2, 0x1p+2, 0x1.8p+1, 0x0p+0, 0) +T(RN, 0x1p+3, 0x1p+2, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p+104, 0x1p+106, 0x1p+104, 0x0p+0, 0) +T(RN, 0x1p+126, 0x1p+127, 0x1p+126, 0x0p+0, 0) +T(RN, 0x1.fffff8p+126, 0x1.fffffcp+126, 0x1.fffff8p+126, 0x0p+0, 0) +T(RN, 0x1.fffffcp+126, 0x1.8p+105, 0x1p+104, 0x0p+0, 0) +T(RN, 0x1.fffffcp+126, -0x1.8p+105, 0x1p+104, 0x0p+0, 0) +T(RN, 0x1.fffffep+126, 0x1p+127, 0x1.fffffep+126, 0x0p+0, 0) +T(RN, 0x1.fffffep+126, 0x1.fffffep+127, 0x1.fffffep+126, 0x0p+0, 0) +T(RN, 0x1.fffffep+126, -0x1p+127, 0x1.fffffep+126, 0x0p+0, 0) +T(RN, 0x1p+127, 0x1.fffffcp+126, 0x1p+104, 0x0p+0, 0) +T(RN, 0x1.000002p+127, 0x1.8p-148, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.000002p+127, 0x1.8p+105, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.000002p+127, 0x1.fffffcp+126, 0x1p+105, 0x0p+0, 0) +T(RN, 0x1.000002p+127, -0x1.8p-148, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.000002p+127, -0x1.8p+1, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.000002p+127, -0x1.8p+105, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.000004p+127, -0x1.8p+105, 0x1p+104, 0x0p+0, 0) +T(RN, 0x1.000006p+127, 0x1.8p+105, 0x1p+105, 0x0p+0, 0) +T(RN, 0x1.000006p+127, 0x1.00000ap+127, 0x1.000006p+127, 0x0p+0, 0) +T(RN, 0x1.000008p+127, 0x1.00000ap+127, 0x1.000008p+127, 0x0p+0, 0) +T(RN, 0x1.00000cp+127, 0x1.00000ap+127, 0x1p+104, 0x0p+0, 0) +T(RN, 0x1.fffffep+127, 0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.fffffep+127, 0x1.fffffep-126, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.fffffep+127, 0x1p+127, 0x1.fffffcp+126, 0x0p+0, 0) +T(RN, 0x1.fffffep+127, -0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.fffffep+127,-0x1.fffffcp+127, 0x1p+104, 0x0p+0, 0) +T(RN, 0x1.fffffep+127, -inf, 0x1.fffffep+127, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1p-149, -0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, -0x1p-149, -0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, -0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-149, 0x1p-147, -0x1p-149, 0x0p+0, 0) +T(RN, -0x1p-149, inf, -0x1p-149, 0x0p+0, 0) +T(RN, -0x1p-149, -0x1p-147, -0x1p-149, 0x0p+0, 0) +T(RN, -0x1.8p-148, 0x1p-147, -0x1.8p-148, 0x0p+0, 0) +T(RN, -0x1.8p-148, -0x1p-147, -0x1.8p-148, 0x0p+0, 0) +T(RN, -0x1p-147, 0x1p-147, -0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-147, -0x1p-147, -0x0p+0, 0x0p+0, 0) +T(RN, -0x1.fffffp-127, 0x1.fffff8p-127, -0x1.fffffp-127, 0x0p+0, 0) +T(RN, -0x1.fffffp-127,-0x1.fffff8p-127, -0x1.fffffp-127, 0x0p+0, 0) +T(RN,-0x1.fffffcp-127, 0x1.8p-148, -0x1p-149, 0x0p+0, 0) +T(RN,-0x1.fffffcp-127, -0x1.8p-148, -0x1p-149, 0x0p+0, 0) +T(RN,-0x1.000002p-126, 0x1.8p-148, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.000002p-126, -0x1.8p-148, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.000004p-126, 0x1.8p-148, -0x1p-149, 0x0p+0, 0) +T(RN,-0x1.000004p-126, -0x1.8p-148, -0x1p-149, 0x0p+0, 0) +T(RN,-0x1.000006p-126, 0x1.8p-148, -0x1p-148, 0x0p+0, 0) +T(RN, -0x1p+0, 0x1p+1, -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, -inf, -0x1p+0, 0x0p+0, 0) +T(RN, -0x1.000002p+0, 0x1.00000ap+0, -0x1.000002p+0, 0x0p+0, 0) +T(RN, -0x1.000002p+0, -0x1.00000ap+0, -0x1.000002p+0, 0x0p+0, 0) +T(RN, -0x1p+1, 0x1p+1, -0x0p+0, 0x0p+0, 0) +T(RN, -0x1p+1, -0x1p+1, -0x0p+0, 0x0p+0, 0) +T(RN, -0x1.000002p+1, 0x1p+2, -0x1.000002p+1, 0x0p+0, 0) +T(RN, -0x1.000002p+1, -0x1p+2, -0x1.000002p+1, 0x0p+0, 0) +T(RN, -0x1.7ffffep+1, 0x1.8p+1, -0x1.7ffffep+1, 0x0p+0, 0) +T(RN, -0x1.7ffffep+1, -0x1.8p+1, -0x1.7ffffep+1, 0x0p+0, 0) +T(RN, -0x1.8p+1, 0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RN, -0x1.8p+1, -0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RN, -0x1.7ffffep+2, 0x1p+2, -0x1.fffff8p+0, 0x0p+0, 0) +T(RN, -0x1.7ffffep+2, -0x1p+2, -0x1.fffff8p+0, 0x0p+0, 0) +T(RN,-0x1.fffffcp+126, 0x1.8p+105, -0x1p+104, 0x0p+0, 0) +T(RN,-0x1.fffffcp+126, -0x1.8p+105, -0x1p+104, 0x0p+0, 0) +T(RN,-0x1.fffffep+126, 0x1p+127,-0x1.fffffep+126, 0x0p+0, 0) +T(RN,-0x1.fffffep+126, -0x1p+127,-0x1.fffffep+126, 0x0p+0, 0) +T(RN,-0x1.000002p+127, 0x1.8p-148, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.000002p+127, 0x1.8p+1, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.000002p+127, 0x1.8p+105, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.000002p+127, -0x1.8p-148, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.000002p+127, -0x1.8p+1, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.000002p+127, -0x1.8p+105, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.000004p+127, 0x1.8p+105, -0x1p+104, 0x0p+0, 0) +T(RN,-0x1.000004p+127, -0x1.8p+105, -0x1p+104, 0x0p+0, 0) +T(RN,-0x1.fffffep+127, 0x1p-149, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.fffffep+127, inf,-0x1.fffffep+127, 0x0p+0, 0) +T(RN,-0x1.fffffep+127, -0x1p-149, -0x0p+0, 0x0p+0, 0) +T(RN,-0x1.fffffep+127,-0x1.fffffcp+127, -0x1p+104, 0x0p+0, 0) +T(RN, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-149, nan, nan, 0x0p+0, 0) +T(RN, 0x1.fffffcp-127, nan, nan, 0x0p+0, 0) +T(RN, 0x1p+0, nan, nan, 0x0p+0, 0) +T(RN, 0x1.fffffep+127, nan, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-149, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fffffcp-127, nan, 0x0p+0, 0) +T(RN, nan, 0x1p+0, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fffffep+127, nan, 0x0p+0, 0) +T(RN, nan, inf, nan, 0x0p+0, 0) +T(RN, nan, -0x0p+0, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-149, nan, 0x0p+0, 0) +T(RN, nan,-0x1.fffffcp-127, nan, 0x0p+0, 0) +T(RN, nan, -0x1p+0, nan, 0x0p+0, 0) +T(RN, nan,-0x1.fffffep+127, nan, 0x0p+0, 0) +T(RN, nan, -inf, nan, 0x0p+0, 0) +T(RN, -0x0p+0, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-149, nan, nan, 0x0p+0, 0) +T(RN,-0x1.fffffcp-127, nan, nan, 0x0p+0, 0) +T(RN, -0x1p+0, nan, nan, 0x0p+0, 0) +T(RN,-0x1.fffffep+127, nan, nan, 0x0p+0, 0) +T(RN, -inf, 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, 0x1p-149, 0x0p+0, nan, 0x0p+0, INVALID) +T(RN, 0x1.fffffcp-127, 0x0p+0, nan, 0x0p+0, INVALID) +T(RN, 0x1.fffffcp-127, -0x0p+0, nan, 0x0p+0, INVALID) +T(RN, 0x1.fffffep-1, 0x0p+0, nan, 0x0p+0, INVALID) +T(RN, 0x1p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RN, 0x1.fffffep+127, 0x0p+0, nan, 0x0p+0, INVALID) +T(RN, 0x1.fffffep+127, -0x0p+0, nan, 0x0p+0, INVALID) +T(RN, inf, 0x1p-149, nan, 0x0p+0, INVALID) +T(RN, inf, 0x1.fffffcp-127, nan, 0x0p+0, INVALID) +T(RN, inf, 0x1p+0, nan, 0x0p+0, INVALID) +T(RN, inf, 0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RN, inf, inf, nan, 0x0p+0, INVALID) +T(RN, inf, -0x0p+0, nan, 0x0p+0, INVALID) +T(RN, inf,-0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RN, -0x0p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffcp-127, 0x0p+0, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffcp-127, -0x0p+0, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffep+127, 0x0p+0, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffep+127, -0x0p+0, nan, 0x0p+0, INVALID) +T(RN, -inf, 0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RN, -inf, -0x0p+0, nan, 0x0p+0, INVALID) +T(RN, -inf,-0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RU, 0x0p+0, 0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1.fffffcp-127, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1p-1, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1.fffffep-1, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, inf, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, -0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, -0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, -inf, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1p-149, 0x1p-147, 0x1p-149, 0x0p+0, 0) +T(RU, 0x1p-149, inf, 0x1p-149, 0x0p+0, 0) +T(RU, 0x1p-149, -0x1p-147, 0x1p-149, 0x0p+0, 0) +T(RU, 0x1p-149, -inf, 0x1p-149, 0x0p+0, 0) +T(RU, 0x1p-148, 0x1p-147, 0x1p-148, 0x0p+0, 0) +T(RU, 0x1.8p-148, 0x1p-147, 0x1.8p-148, 0x0p+0, 0) +T(RU, 0x1.8p-148, -0x1p-147, 0x1.8p-148, 0x0p+0, 0) +T(RU, 0x1p-147, 0x1p-147, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1p-147, -0x1p-147, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.fffffp-127, 0x1.fffff8p-127, 0x1.fffffp-127, 0x0p+0, 0) +T(RU, 0x1.fffffp-127,-0x1.fffff8p-127, 0x1.fffffp-127, 0x0p+0, 0) +T(RU, 0x1.fffffcp-127, 0x1.8p-148, 0x1p-149, 0x0p+0, 0) +T(RU, 0x1.fffffcp-127, 0x1.fffffep-126, 0x1.fffffcp-127, 0x0p+0, 0) +T(RU, 0x1.fffffcp-127, inf, 0x1.fffffcp-127, 0x0p+0, 0) +T(RU, 0x1.fffffcp-127, -0x1.8p-148, 0x1p-149, 0x0p+0, 0) +T(RU, 0x1p-126, 0x1.fffff8p-127, 0x1p-148, 0x0p+0, 0) +T(RU, 0x1p-126, 0x1.fffffep-126, 0x1p-126, 0x0p+0, 0) +T(RU, 0x1.000002p-126, 0x1.8p-148, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.000002p-126, 0x1.fffff8p-127, 0x1.8p-148, 0x0p+0, 0) +T(RU, 0x1.000002p-126, -0x1.8p-148, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.000004p-126, 0x1.8p-148, 0x1p-149, 0x0p+0, 0) +T(RU, 0x1.000004p-126, -0x1.8p-148, 0x1p-149, 0x0p+0, 0) +T(RU, 0x1.000006p-126, 0x1.00000ap-126, 0x1.000006p-126, 0x0p+0, 0) +T(RU, 0x1.000008p-126, 0x1.00000ap-126, 0x1.000008p-126, 0x0p+0, 0) +T(RU, 0x1.00000cp-126, 0x1.00000ap-126, 0x1p-149, 0x0p+0, 0) +T(RU, 0x1.fffffep-126, 0x1p-125, 0x1.fffffep-126, 0x0p+0, 0) +T(RU, 0x1.fffffep-118, 0x1p-118, 0x1.fffffcp-119, 0x0p+0, 0) +T(RU, 0x1p-3, 0x1p-1, 0x1p-3, 0x0p+0, 0) +T(RU, 0x1p-2, 0x1p-1, 0x1p-2, 0x0p+0, 0) +T(RU, 0x1.000002p-2, 0x1p-1, 0x1.000002p-2, 0x0p+0, 0) +T(RU, 0x1.8p-2, 0x1p-1, 0x1.8p-2, 0x0p+0, 0) +T(RU, 0x1.4p-1, 0x1p-1, 0x1p-3, 0x0p+0, 0) +T(RU, 0x1.fffff8p-1, 0x1.fffffcp-1, 0x1.fffff8p-1, 0x0p+0, 0) +T(RU, 0x1.fffffep-1, 0x1.fffffep+0, 0x1.fffffep-1, 0x0p+0, 0) +T(RU, 0x1.fffffep-1, inf, 0x1.fffffep-1, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1.fffffcp-1, 0x1p-23, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1.fffffep+0, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+2, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1p+0, inf, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1p+0, -0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1p+0, -inf, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1.000002p+0, 0x1.fffffcp-1, 0x1p-22, 0x0p+0, 0) +T(RU, 0x1.000002p+0, 0x1.00000ap+0, 0x1.000002p+0, 0x0p+0, 0) +T(RU, 0x1.000002p+0, 0x1p+1, 0x1.000002p+0, 0x0p+0, 0) +T(RU, 0x1.000002p+0, -0x1.00000ap+0, 0x1.000002p+0, 0x0p+0, 0) +T(RU, 0x1.000004p+0, 0x1.00000ap+0, 0x1.000004p+0, 0x0p+0, 0) +T(RU, 0x1.000006p+0, 0x1.00000ap+0, 0x1.000006p+0, 0x0p+0, 0) +T(RU, 0x1.000008p+0, 0x1.00000ap+0, 0x1.000008p+0, 0x0p+0, 0) +T(RU, 0x1.00000cp+0, 0x1.00000ap+0, 0x1p-23, 0x0p+0, 0) +T(RU, 0x1.fffffep+0, 0x1p+1, 0x1.fffffep+0, 0x0p+0, 0) +T(RU, 0x1p+1, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1p+1, 0x1p+2, 0x1p+1, 0x0p+0, 0) +T(RU, 0x1p+1, -0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.000002p+1, 0x1p+2, 0x1.000002p+1, 0x0p+0, 0) +T(RU, 0x1.000002p+1, -0x1p+2, 0x1.000002p+1, 0x0p+0, 0) +T(RU, 0x1.00001p+1, 0x1p+2, 0x1.00001p+1, 0x0p+0, 0) +T(RU, 0x1.7ffffep+1, 0x1p+1, 0x1.fffff8p-1, 0x0p+0, 0) +T(RU, 0x1.7ffffep+1, 0x1.8p+1, 0x1.7ffffep+1, 0x0p+0, 0) +T(RU, 0x1.7ffffep+1, -0x1.8p+1, 0x1.7ffffep+1, 0x0p+0, 0) +T(RU, 0x1.8p+1, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1.8p+1, 0x1p+2, 0x1.8p+1, 0x0p+0, 0) +T(RU, 0x1.8p+1, -0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1p+2, 0x1p+2, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.4p+2, 0x1p+2, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1.7ffffp+2, 0x1p+2, 0x1.ffffcp+0, 0x0p+0, 0) +T(RU, 0x1.7ffffep+2, 0x1p+2, 0x1.fffff8p+0, 0x0p+0, 0) +T(RU, 0x1.7ffffep+2, -0x1p+2, 0x1.fffff8p+0, 0x0p+0, 0) +T(RU, 0x1.8p+2, 0x1p+2, 0x1p+1, 0x0p+0, 0) +T(RU, 0x1.cp+2, 0x1p+2, 0x1.8p+1, 0x0p+0, 0) +T(RU, 0x1p+3, 0x1p+2, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1p+104, 0x1p+106, 0x1p+104, 0x0p+0, 0) +T(RU, 0x1p+126, 0x1p+127, 0x1p+126, 0x0p+0, 0) +T(RU, 0x1.fffff8p+126, 0x1.fffffcp+126, 0x1.fffff8p+126, 0x0p+0, 0) +T(RU, 0x1.fffffcp+126, 0x1.8p+105, 0x1p+104, 0x0p+0, 0) +T(RU, 0x1.fffffcp+126, -0x1.8p+105, 0x1p+104, 0x0p+0, 0) +T(RU, 0x1.fffffep+126, 0x1p+127, 0x1.fffffep+126, 0x0p+0, 0) +T(RU, 0x1.fffffep+126, 0x1.fffffep+127, 0x1.fffffep+126, 0x0p+0, 0) +T(RU, 0x1.fffffep+126, -0x1p+127, 0x1.fffffep+126, 0x0p+0, 0) +T(RU, 0x1p+127, 0x1.fffffcp+126, 0x1p+104, 0x0p+0, 0) +T(RU, 0x1p+127, 0x1.fffffep+127, 0x1p+127, 0x0p+0, 0) +T(RU, 0x1.000002p+127, 0x1.8p-148, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.000002p+127, 0x1.8p+105, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.000002p+127, 0x1.fffffcp+126, 0x1p+105, 0x0p+0, 0) +T(RU, 0x1.000002p+127, -0x1.8p-148, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.000002p+127, -0x1.8p+1, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.000002p+127, -0x1.8p+105, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.000004p+127, -0x1.8p+105, 0x1p+104, 0x0p+0, 0) +T(RU, 0x1.000006p+127, 0x1.8p+105, 0x1p+105, 0x0p+0, 0) +T(RU, 0x1.000006p+127, 0x1.00000ap+127, 0x1.000006p+127, 0x0p+0, 0) +T(RU, 0x1.000008p+127, 0x1.00000ap+127, 0x1.000008p+127, 0x0p+0, 0) +T(RU, 0x1.00000cp+127, 0x1.00000ap+127, 0x1p+104, 0x0p+0, 0) +T(RU, 0x1.fffffep+127, 0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.fffffep+127, 0x1p-126, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.fffffep+127, 0x1.fffffep-126, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.fffffep+127, 0x1p+127, 0x1.fffffcp+126, 0x0p+0, 0) +T(RU, 0x1.fffffep+127, 0x1.fffffcp+127, 0x1p+104, 0x0p+0, 0) +T(RU, 0x1.fffffep+127, inf, 0x1.fffffep+127, 0x0p+0, 0) +T(RU, 0x1.fffffep+127, -0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.fffffep+127,-0x1.fffffcp+127, 0x1p+104, 0x0p+0, 0) +T(RU, 0x1.fffffep+127, -inf, 0x1.fffffep+127, 0x0p+0, 0) +T(RU, -0x0p+0, 0x1p-149, -0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, 0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x1p-149, -0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RU, -0x1p-149, 0x1p-147, -0x1p-149, 0x0p+0, 0) +T(RU, -0x1p-149, inf, -0x1p-149, 0x0p+0, 0) +T(RU, -0x1p-149, -0x1p-147, -0x1p-149, 0x0p+0, 0) +T(RU, -0x1p-149, -inf, -0x1p-149, 0x0p+0, 0) +T(RU, -0x1.8p-148, 0x1p-147, -0x1.8p-148, 0x0p+0, 0) +T(RU, -0x1.8p-148, -0x1p-147, -0x1.8p-148, 0x0p+0, 0) +T(RU, -0x1p-147, 0x1p-147, -0x0p+0, 0x0p+0, 0) +T(RU, -0x1p-147, -0x1p-147, -0x0p+0, 0x0p+0, 0) +T(RU, -0x1.fffffp-127, 0x1.fffff8p-127, -0x1.fffffp-127, 0x0p+0, 0) +T(RU, -0x1.fffffp-127,-0x1.fffff8p-127, -0x1.fffffp-127, 0x0p+0, 0) +T(RU,-0x1.fffffcp-127, 0x1.8p-148, -0x1p-149, 0x0p+0, 0) +T(RU,-0x1.fffffcp-127, -0x1.8p-148, -0x1p-149, 0x0p+0, 0) +T(RU,-0x1.000002p-126, 0x1.8p-148, -0x0p+0, 0x0p+0, 0) +T(RU,-0x1.000002p-126, -0x1.8p-148, -0x0p+0, 0x0p+0, 0) +T(RU,-0x1.000004p-126, 0x1.8p-148, -0x1p-149, 0x0p+0, 0) +T(RU,-0x1.000004p-126, -0x1.8p-148, -0x1p-149, 0x0p+0, 0) +T(RU,-0x1.000006p-126, 0x1.8p-148, -0x1p-148, 0x0p+0, 0) +T(RU, -0x1p+0, 0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, inf, -0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, -0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, -inf, -0x1p+0, 0x0p+0, 0) +T(RU, -0x1.000002p+0, 0x1.00000ap+0, -0x1.000002p+0, 0x0p+0, 0) +T(RU, -0x1.000002p+0, -0x1.00000ap+0, -0x1.000002p+0, 0x0p+0, 0) +T(RU, -0x1p+1, 0x1p+1, -0x0p+0, 0x0p+0, 0) +T(RU, -0x1p+1, -0x1p+1, -0x0p+0, 0x0p+0, 0) +T(RU, -0x1.000002p+1, 0x1p+2, -0x1.000002p+1, 0x0p+0, 0) +T(RU, -0x1.000002p+1, -0x1p+2, -0x1.000002p+1, 0x0p+0, 0) +T(RU, -0x1.7ffffep+1, 0x1.8p+1, -0x1.7ffffep+1, 0x0p+0, 0) +T(RU, -0x1.7ffffep+1, -0x1.8p+1, -0x1.7ffffep+1, 0x0p+0, 0) +T(RU, -0x1.8p+1, 0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RU, -0x1.8p+1, -0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RU, -0x1.7ffffep+2, 0x1p+2, -0x1.fffff8p+0, 0x0p+0, 0) +T(RU, -0x1.7ffffep+2, -0x1p+2, -0x1.fffff8p+0, 0x0p+0, 0) +T(RU,-0x1.fffffcp+126, 0x1.8p+105, -0x1p+104, 0x0p+0, 0) +T(RU,-0x1.fffffcp+126, -0x1.8p+105, -0x1p+104, 0x0p+0, 0) +T(RU,-0x1.fffffep+126, 0x1p+127,-0x1.fffffep+126, 0x0p+0, 0) +T(RU,-0x1.fffffep+126, -0x1p+127,-0x1.fffffep+126, 0x0p+0, 0) +T(RU,-0x1.000002p+127, 0x1.8p-148, -0x0p+0, 0x0p+0, 0) +T(RU,-0x1.000002p+127, 0x1.8p+1, -0x0p+0, 0x0p+0, 0) +T(RU,-0x1.000002p+127, 0x1.8p+105, -0x0p+0, 0x0p+0, 0) +T(RU,-0x1.000002p+127, -0x1.8p-148, -0x0p+0, 0x0p+0, 0) +T(RU,-0x1.000002p+127, -0x1.8p+1, -0x0p+0, 0x0p+0, 0) +T(RU,-0x1.000002p+127, -0x1.8p+105, -0x0p+0, 0x0p+0, 0) +T(RU,-0x1.000004p+127, 0x1.8p+105, -0x1p+104, 0x0p+0, 0) +T(RU,-0x1.000004p+127, -0x1.8p+105, -0x1p+104, 0x0p+0, 0) +T(RU,-0x1.fffffep+127, 0x1p-149, -0x0p+0, 0x0p+0, 0) +T(RU,-0x1.fffffep+127, 0x1.fffffcp+127, -0x1p+104, 0x0p+0, 0) +T(RU,-0x1.fffffep+127, inf,-0x1.fffffep+127, 0x0p+0, 0) +T(RU,-0x1.fffffep+127, -0x1p-149, -0x0p+0, 0x0p+0, 0) +T(RU,-0x1.fffffep+127,-0x1.fffffcp+127, -0x1p+104, 0x0p+0, 0) +T(RU,-0x1.fffffep+127, -inf,-0x1.fffffep+127, 0x0p+0, 0) +T(RU, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RU, 0x1p-149, nan, nan, 0x0p+0, 0) +T(RU, 0x1.fffffcp-127, nan, nan, 0x0p+0, 0) +T(RU, 0x1p+0, nan, nan, 0x0p+0, 0) +T(RU, 0x1.fffffep+127, nan, nan, 0x0p+0, 0) +T(RU, inf, nan, nan, 0x0p+0, 0) +T(RU, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RU, nan, 0x1p-149, nan, 0x0p+0, 0) +T(RU, nan, 0x1.fffffcp-127, nan, 0x0p+0, 0) +T(RU, nan, 0x1p+0, nan, 0x0p+0, 0) +T(RU, nan, 0x1.fffffep+127, nan, 0x0p+0, 0) +T(RU, nan, inf, nan, 0x0p+0, 0) +T(RU, nan, nan, nan, 0x0p+0, 0) +T(RU, nan, -0x0p+0, nan, 0x0p+0, 0) +T(RU, nan, -0x1p-149, nan, 0x0p+0, 0) +T(RU, nan,-0x1.fffffcp-127, nan, 0x0p+0, 0) +T(RU, nan, -0x1p+0, nan, 0x0p+0, 0) +T(RU, nan,-0x1.fffffep+127, nan, 0x0p+0, 0) +T(RU, nan, -inf, nan, 0x0p+0, 0) +T(RU, -0x0p+0, nan, nan, 0x0p+0, 0) +T(RU, -0x1p-149, nan, nan, 0x0p+0, 0) +T(RU,-0x1.fffffcp-127, nan, nan, 0x0p+0, 0) +T(RU, -0x1p+0, nan, nan, 0x0p+0, 0) +T(RU,-0x1.fffffep+127, nan, nan, 0x0p+0, 0) +T(RU, -inf, nan, nan, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU, 0x0p+0, -0x0p+0, nan, 0x0p+0, INVALID) +T(RU, 0x1p-149, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU, 0x1.fffffcp-127, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU, 0x1.fffffcp-127, -0x0p+0, nan, 0x0p+0, INVALID) +T(RU, 0x1.fffffep-1, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU, 0x1p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU, 0x1.fffffep+127, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU, 0x1.fffffep+127, -0x0p+0, nan, 0x0p+0, INVALID) +T(RU, inf, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU, inf, 0x1p-149, nan, 0x0p+0, INVALID) +T(RU, inf, 0x1.fffffcp-127, nan, 0x0p+0, INVALID) +T(RU, inf, 0x1p+0, nan, 0x0p+0, INVALID) +T(RU, inf, 0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RU, inf, inf, nan, 0x0p+0, INVALID) +T(RU, inf, -0x0p+0, nan, 0x0p+0, INVALID) +T(RU, inf,-0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RU, -0x0p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU, -0x0p+0, -0x0p+0, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffcp-127, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffcp-127, -0x0p+0, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffep+127, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffep+127, -0x0p+0, nan, 0x0p+0, INVALID) +T(RU, -inf, 0x0p+0, nan, 0x0p+0, INVALID) +T(RU, -inf, 0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RU, -inf, -0x0p+0, nan, 0x0p+0, INVALID) +T(RU, -inf,-0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RZ, 0x0p+0, 0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1.fffffcp-127, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1p-1, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1.fffffep-1, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1.fffffep+127, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, inf, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, -0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, -0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, -inf, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p-149, 0x1p-147, 0x1p-149, 0x0p+0, 0) +T(RZ, 0x1p-149, inf, 0x1p-149, 0x0p+0, 0) +T(RZ, 0x1p-149, -0x1p-147, 0x1p-149, 0x0p+0, 0) +T(RZ, 0x1p-149, -inf, 0x1p-149, 0x0p+0, 0) +T(RZ, 0x1p-148, 0x1p-147, 0x1p-148, 0x0p+0, 0) +T(RZ, 0x1.8p-148, 0x1p-147, 0x1.8p-148, 0x0p+0, 0) +T(RZ, 0x1.8p-148, -0x1p-147, 0x1.8p-148, 0x0p+0, 0) +T(RZ, 0x1p-147, 0x1p-147, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p-147, -0x1p-147, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.fffffp-127, 0x1.fffff8p-127, 0x1.fffffp-127, 0x0p+0, 0) +T(RZ, 0x1.fffffp-127,-0x1.fffff8p-127, 0x1.fffffp-127, 0x0p+0, 0) +T(RZ, 0x1.fffffcp-127, 0x1.8p-148, 0x1p-149, 0x0p+0, 0) +T(RZ, 0x1.fffffcp-127, 0x1.fffffep-126, 0x1.fffffcp-127, 0x0p+0, 0) +T(RZ, 0x1.fffffcp-127, inf, 0x1.fffffcp-127, 0x0p+0, 0) +T(RZ, 0x1.fffffcp-127, -0x1.8p-148, 0x1p-149, 0x0p+0, 0) +T(RZ, 0x1p-126, 0x1.fffff8p-127, 0x1p-148, 0x0p+0, 0) +T(RZ, 0x1p-126, 0x1.fffffep-126, 0x1p-126, 0x0p+0, 0) +T(RZ, 0x1.000002p-126, 0x1.8p-148, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.000002p-126, 0x1.fffff8p-127, 0x1.8p-148, 0x0p+0, 0) +T(RZ, 0x1.000002p-126, -0x1.8p-148, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.000004p-126, 0x1.8p-148, 0x1p-149, 0x0p+0, 0) +T(RZ, 0x1.000004p-126, -0x1.8p-148, 0x1p-149, 0x0p+0, 0) +T(RZ, 0x1.000006p-126, 0x1.00000ap-126, 0x1.000006p-126, 0x0p+0, 0) +T(RZ, 0x1.000008p-126, 0x1.00000ap-126, 0x1.000008p-126, 0x0p+0, 0) +T(RZ, 0x1.00000cp-126, 0x1.00000ap-126, 0x1p-149, 0x0p+0, 0) +T(RZ, 0x1.fffffep-126, 0x1p-125, 0x1.fffffep-126, 0x0p+0, 0) +T(RZ, 0x1.fffffep-118, 0x1p-118, 0x1.fffffcp-119, 0x0p+0, 0) +T(RZ, 0x1p-3, 0x1p-1, 0x1p-3, 0x0p+0, 0) +T(RZ, 0x1p-2, 0x1p-1, 0x1p-2, 0x0p+0, 0) +T(RZ, 0x1.000002p-2, 0x1p-1, 0x1.000002p-2, 0x0p+0, 0) +T(RZ, 0x1.8p-2, 0x1p-1, 0x1.8p-2, 0x0p+0, 0) +T(RZ, 0x1.4p-1, 0x1p-1, 0x1p-3, 0x0p+0, 0) +T(RZ, 0x1.fffff8p-1, 0x1.fffffcp-1, 0x1.fffff8p-1, 0x0p+0, 0) +T(RZ, 0x1.fffffep-1, 0x1.fffffep+0, 0x1.fffffep-1, 0x0p+0, 0) +T(RZ, 0x1.fffffep-1, inf, 0x1.fffffep-1, 0x0p+0, 0) +T(RZ, 0x1p+0, 0x1.fffffcp-1, 0x1p-23, 0x0p+0, 0) +T(RZ, 0x1p+0, 0x1.fffffep+0, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1p+0, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1p+0, 0x1p+2, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1p+0, inf, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1p+0, -0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1p+0, -inf, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1.000002p+0, 0x1.fffffcp-1, 0x1p-22, 0x0p+0, 0) +T(RZ, 0x1.000002p+0, 0x1.00000ap+0, 0x1.000002p+0, 0x0p+0, 0) +T(RZ, 0x1.000002p+0, 0x1p+1, 0x1.000002p+0, 0x0p+0, 0) +T(RZ, 0x1.000002p+0, -0x1.00000ap+0, 0x1.000002p+0, 0x0p+0, 0) +T(RZ, 0x1.000004p+0, 0x1.00000ap+0, 0x1.000004p+0, 0x0p+0, 0) +T(RZ, 0x1.000006p+0, 0x1.00000ap+0, 0x1.000006p+0, 0x0p+0, 0) +T(RZ, 0x1.000008p+0, 0x1.00000ap+0, 0x1.000008p+0, 0x0p+0, 0) +T(RZ, 0x1.00000cp+0, 0x1.00000ap+0, 0x1p-23, 0x0p+0, 0) +T(RZ, 0x1.fffffep+0, 0x1p+1, 0x1.fffffep+0, 0x0p+0, 0) +T(RZ, 0x1p+1, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p+1, 0x1p+2, 0x1p+1, 0x0p+0, 0) +T(RZ, 0x1p+1, -0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.000002p+1, 0x1p+2, 0x1.000002p+1, 0x0p+0, 0) +T(RZ, 0x1.000002p+1, -0x1p+2, 0x1.000002p+1, 0x0p+0, 0) +T(RZ, 0x1.00001p+1, 0x1p+2, 0x1.00001p+1, 0x0p+0, 0) +T(RZ, 0x1.7ffffep+1, 0x1p+1, 0x1.fffff8p-1, 0x0p+0, 0) +T(RZ, 0x1.7ffffep+1, 0x1.8p+1, 0x1.7ffffep+1, 0x0p+0, 0) +T(RZ, 0x1.7ffffep+1, -0x1.8p+1, 0x1.7ffffep+1, 0x0p+0, 0) +T(RZ, 0x1.8p+1, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1.8p+1, 0x1p+2, 0x1.8p+1, 0x0p+0, 0) +T(RZ, 0x1.8p+1, -0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1p+2, 0x1p+2, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.4p+2, 0x1p+2, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1.7ffffp+2, 0x1p+2, 0x1.ffffcp+0, 0x0p+0, 0) +T(RZ, 0x1.7ffffep+2, 0x1p+2, 0x1.fffff8p+0, 0x0p+0, 0) +T(RZ, 0x1.7ffffep+2, -0x1p+2, 0x1.fffff8p+0, 0x0p+0, 0) +T(RZ, 0x1.8p+2, 0x1p+2, 0x1p+1, 0x0p+0, 0) +T(RZ, 0x1.cp+2, 0x1p+2, 0x1.8p+1, 0x0p+0, 0) +T(RZ, 0x1p+3, 0x1p+2, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p+104, 0x1p+106, 0x1p+104, 0x0p+0, 0) +T(RZ, 0x1p+126, 0x1p+127, 0x1p+126, 0x0p+0, 0) +T(RZ, 0x1.fffff8p+126, 0x1.fffffcp+126, 0x1.fffff8p+126, 0x0p+0, 0) +T(RZ, 0x1.fffffcp+126, 0x1.8p+105, 0x1p+104, 0x0p+0, 0) +T(RZ, 0x1.fffffcp+126, -0x1.8p+105, 0x1p+104, 0x0p+0, 0) +T(RZ, 0x1.fffffep+126, 0x1p+127, 0x1.fffffep+126, 0x0p+0, 0) +T(RZ, 0x1.fffffep+126, 0x1.fffffep+127, 0x1.fffffep+126, 0x0p+0, 0) +T(RZ, 0x1.fffffep+126, -0x1p+127, 0x1.fffffep+126, 0x0p+0, 0) +T(RZ, 0x1p+127, 0x1.fffffcp+126, 0x1p+104, 0x0p+0, 0) +T(RZ, 0x1p+127, 0x1.fffffep+127, 0x1p+127, 0x0p+0, 0) +T(RZ, 0x1.000002p+127, 0x1.8p-148, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.000002p+127, 0x1.8p+105, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.000002p+127, 0x1.fffffcp+126, 0x1p+105, 0x0p+0, 0) +T(RZ, 0x1.000002p+127, -0x1.8p-148, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.000002p+127, -0x1.8p+1, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.000002p+127, -0x1.8p+105, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.000004p+127, -0x1.8p+105, 0x1p+104, 0x0p+0, 0) +T(RZ, 0x1.000006p+127, 0x1.8p+105, 0x1p+105, 0x0p+0, 0) +T(RZ, 0x1.000006p+127, 0x1.00000ap+127, 0x1.000006p+127, 0x0p+0, 0) +T(RZ, 0x1.000008p+127, 0x1.00000ap+127, 0x1.000008p+127, 0x0p+0, 0) +T(RZ, 0x1.00000cp+127, 0x1.00000ap+127, 0x1p+104, 0x0p+0, 0) +T(RZ, 0x1.fffffep+127, 0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.fffffep+127, 0x1p-126, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.fffffep+127, 0x1.fffffep-126, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.fffffep+127, 0x1p+127, 0x1.fffffcp+126, 0x0p+0, 0) +T(RZ, 0x1.fffffep+127, 0x1.fffffcp+127, 0x1p+104, 0x0p+0, 0) +T(RZ, 0x1.fffffep+127, inf, 0x1.fffffep+127, 0x0p+0, 0) +T(RZ, 0x1.fffffep+127, -0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.fffffep+127,-0x1.fffffcp+127, 0x1p+104, 0x0p+0, 0) +T(RZ, 0x1.fffffep+127, -inf, 0x1.fffffep+127, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x1p-149, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x1p-149, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x1p-149, 0x1p-147, -0x1p-149, 0x0p+0, 0) +T(RZ, -0x1p-149, inf, -0x1p-149, 0x0p+0, 0) +T(RZ, -0x1p-149, -0x1p-147, -0x1p-149, 0x0p+0, 0) +T(RZ, -0x1p-149, -inf, -0x1p-149, 0x0p+0, 0) +T(RZ, -0x1.8p-148, 0x1p-147, -0x1.8p-148, 0x0p+0, 0) +T(RZ, -0x1.8p-148, -0x1p-147, -0x1.8p-148, 0x0p+0, 0) +T(RZ, -0x1p-147, 0x1p-147, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x1p-147, -0x1p-147, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x1.fffffp-127, 0x1.fffff8p-127, -0x1.fffffp-127, 0x0p+0, 0) +T(RZ, -0x1.fffffp-127,-0x1.fffff8p-127, -0x1.fffffp-127, 0x0p+0, 0) +T(RZ,-0x1.fffffcp-127, 0x1.8p-148, -0x1p-149, 0x0p+0, 0) +T(RZ,-0x1.fffffcp-127, -0x1.8p-148, -0x1p-149, 0x0p+0, 0) +T(RZ,-0x1.000002p-126, 0x1.8p-148, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.000002p-126, -0x1.8p-148, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.000004p-126, 0x1.8p-148, -0x1p-149, 0x0p+0, 0) +T(RZ,-0x1.000004p-126, -0x1.8p-148, -0x1p-149, 0x0p+0, 0) +T(RZ,-0x1.000006p-126, 0x1.8p-148, -0x1p-148, 0x0p+0, 0) +T(RZ, -0x1p+0, 0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RZ, -0x1p+0, inf, -0x1p+0, 0x0p+0, 0) +T(RZ, -0x1p+0, -0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RZ, -0x1p+0, -inf, -0x1p+0, 0x0p+0, 0) +T(RZ, -0x1.000002p+0, 0x1.00000ap+0, -0x1.000002p+0, 0x0p+0, 0) +T(RZ, -0x1.000002p+0, -0x1.00000ap+0, -0x1.000002p+0, 0x0p+0, 0) +T(RZ, -0x1p+1, 0x1p+1, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x1p+1, -0x1p+1, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x1.000002p+1, 0x1p+2, -0x1.000002p+1, 0x0p+0, 0) +T(RZ, -0x1.000002p+1, -0x1p+2, -0x1.000002p+1, 0x0p+0, 0) +T(RZ, -0x1.7ffffep+1, 0x1.8p+1, -0x1.7ffffep+1, 0x0p+0, 0) +T(RZ, -0x1.7ffffep+1, -0x1.8p+1, -0x1.7ffffep+1, 0x0p+0, 0) +T(RZ, -0x1.8p+1, 0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RZ, -0x1.8p+1, -0x1p+1, -0x1p+0, 0x0p+0, 0) +T(RZ, -0x1.7ffffep+2, 0x1p+2, -0x1.fffff8p+0, 0x0p+0, 0) +T(RZ, -0x1.7ffffep+2, -0x1p+2, -0x1.fffff8p+0, 0x0p+0, 0) +T(RZ,-0x1.fffffcp+126, 0x1.8p+105, -0x1p+104, 0x0p+0, 0) +T(RZ,-0x1.fffffcp+126, -0x1.8p+105, -0x1p+104, 0x0p+0, 0) +T(RZ,-0x1.fffffep+126, 0x1p+127,-0x1.fffffep+126, 0x0p+0, 0) +T(RZ,-0x1.fffffep+126, -0x1p+127,-0x1.fffffep+126, 0x0p+0, 0) +T(RZ,-0x1.000002p+127, 0x1.8p-148, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.000002p+127, 0x1.8p+1, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.000002p+127, 0x1.8p+105, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.000002p+127, -0x1.8p-148, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.000002p+127, -0x1.8p+1, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.000002p+127, -0x1.8p+105, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.000004p+127, 0x1.8p+105, -0x1p+104, 0x0p+0, 0) +T(RZ,-0x1.000004p+127, -0x1.8p+105, -0x1p+104, 0x0p+0, 0) +T(RZ,-0x1.fffffep+127, 0x1p-149, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.fffffep+127, 0x1.fffffcp+127, -0x1p+104, 0x0p+0, 0) +T(RZ,-0x1.fffffep+127, inf,-0x1.fffffep+127, 0x0p+0, 0) +T(RZ,-0x1.fffffep+127, -0x1p-149, -0x0p+0, 0x0p+0, 0) +T(RZ,-0x1.fffffep+127,-0x1.fffffcp+127, -0x1p+104, 0x0p+0, 0) +T(RZ,-0x1.fffffep+127, -inf,-0x1.fffffep+127, 0x0p+0, 0) +T(RZ, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RZ, 0x1p-149, nan, nan, 0x0p+0, 0) +T(RZ, 0x1.fffffcp-127, nan, nan, 0x0p+0, 0) +T(RZ, 0x1p+0, nan, nan, 0x0p+0, 0) +T(RZ, 0x1.fffffep+127, nan, nan, 0x0p+0, 0) +T(RZ, inf, nan, nan, 0x0p+0, 0) +T(RZ, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RZ, nan, 0x1p-149, nan, 0x0p+0, 0) +T(RZ, nan, 0x1.fffffcp-127, nan, 0x0p+0, 0) +T(RZ, nan, 0x1p+0, nan, 0x0p+0, 0) +T(RZ, nan, 0x1.fffffep+127, nan, 0x0p+0, 0) +T(RZ, nan, inf, nan, 0x0p+0, 0) +T(RZ, nan, nan, nan, 0x0p+0, 0) +T(RZ, nan, -0x0p+0, nan, 0x0p+0, 0) +T(RZ, nan, -0x1p-149, nan, 0x0p+0, 0) +T(RZ, nan,-0x1.fffffcp-127, nan, 0x0p+0, 0) +T(RZ, nan, -0x1p+0, nan, 0x0p+0, 0) +T(RZ, nan,-0x1.fffffep+127, nan, 0x0p+0, 0) +T(RZ, nan, -inf, nan, 0x0p+0, 0) +T(RZ, -0x0p+0, nan, nan, 0x0p+0, 0) +T(RZ, -0x1p-149, nan, nan, 0x0p+0, 0) +T(RZ,-0x1.fffffcp-127, nan, nan, 0x0p+0, 0) +T(RZ, -0x1p+0, nan, nan, 0x0p+0, 0) +T(RZ,-0x1.fffffep+127, nan, nan, 0x0p+0, 0) +T(RZ, -inf, nan, nan, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x0p+0, -0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x1p-149, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x1.fffffcp-127, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x1.fffffcp-127, -0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x1.fffffep-1, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x1p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x1.fffffep+127, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, 0x1.fffffep+127, -0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, inf, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, inf, 0x1p-149, nan, 0x0p+0, INVALID) +T(RZ, inf, 0x1.fffffcp-127, nan, 0x0p+0, INVALID) +T(RZ, inf, 0x1p+0, nan, 0x0p+0, INVALID) +T(RZ, inf, 0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RZ, inf, inf, nan, 0x0p+0, INVALID) +T(RZ, inf, -0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, inf,-0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RZ, -0x0p+0, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x0p+0, -0x0p+0, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffcp-127, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffcp-127, -0x0p+0, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffep+127, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffep+127, -0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, -inf, 0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, -inf, 0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RZ, -inf, -0x0p+0, nan, 0x0p+0, INVALID) +T(RZ, -inf,-0x1.fffffep+127, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/ucb/hypot.h b/test/musl/src/math/ucb/hypot.h new file mode 100644 index 00000000..3afa6d8a --- /dev/null +++ b/test/musl/src/math/ucb/hypot.h @@ -0,0 +1,297 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// 0.7max,0.6max +T(RN, 0x1.6666666666666p+1023, 0x1.3333333333333p+1023, 0x1.d80a69c19e429p+1023, -0x1.83b0f8p-2, INEXACT) +T(RZ, 0x1.6666666666666p+1023, 0x1.3333333333333p+1023, 0x1.d80a69c19e429p+1023, -0x1.83b0f8p-2, INEXACT) +T(RU, 0x1.6666666666666p+1023, 0x1.3333333333333p+1023, 0x1.d80a69c19e42ap+1023, 0x1.3e2784p-1, INEXACT) +T(RD, 0x1.6666666666666p+1023, 0x1.3333333333333p+1023, 0x1.d80a69c19e429p+1023, -0x1.83b0f8p-2, INEXACT) +// tiny,huge = huge,tiny = huge +T(RN, 0x0p+0, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RN, 0x1p-1074, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, INEXACT) +T(RN, 0x1p-1022, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, INEXACT) +T(RN, 0x1p+0, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, INEXACT) +T(RN, 0x1.fffffffffffffp+1023, 0x0p+0, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1023, 0x1p-1074, 0x1.fffffffffffffp+1023, 0x0p+0, INEXACT) +T(RN, 0x1.fffffffffffffp+1023, 0x1p-1022, 0x1.fffffffffffffp+1023, 0x0p+0, INEXACT) +T(RN, 0x1.fffffffffffffp+1023, 0x1p+0, 0x1.fffffffffffffp+1023, 0x0p+0, INEXACT) +// pythagoras integers test +T(RN, 0x1.6643e942791bdp+52, 0x1.6643e6c0391b8p+51, 0x1.908d80f976845p+52, 0x0p+0, 0) +T(RN, 0x1.6643e8af5463dp+52, 0x1.6643eb9ed79c8p+51, 0x1.908d818c9b3c5p+52, 0x0p+0, 0) +T(RN, 0x1.6643e81c2fa9dp+52, 0x1.6643f07d761d8p+51, 0x1.908d821fbff65p+52, 0x0p+0, 0) +T(RN, 0x1.6643e7890aeddp+52, 0x1.6643f55c149e8p+51, 0x1.908d82b2e4b25p+52, 0x0p+0, 0) +T(RN, 0x1.6643e6f5e62fdp+52, 0x1.6643fa3ab31f8p+51, 0x1.908d834609705p+52, 0x0p+0, 0) +T(RN, 0x1.6643e9b983be3p+52, 0x1.6643e84173178p+51, 0x1.908d81ba13825p+52, 0x0p+0, 0) +T(RN, 0x1.6643e9265f05bp+52, 0x1.6643ed2011998p+51, 0x1.908d824d383adp+52, 0x0p+0, 0) +T(RN, 0x1.6643e8933a4b3p+52, 0x1.6643f1feb01b8p+51, 0x1.908d82e05cf55p+52, 0x0p+0, 0) +T(RN, 0x1.6643e800158ebp+52, 0x1.6643f6dd4e9d8p+51, 0x1.908d837381b1dp+52, 0x0p+0, 0) +T(RN, 0x1.6643e76cf0d03p+52, 0x1.6643fbbbed1f8p+51, 0x1.908d8406a6705p+52, 0x0p+0, 0) +T(RN, 0x1.6643ea7a20bc5p+52, 0x1.6643e7535dd28p+51, 0x1.908d82311e24dp+52, 0x0p+0, 0) +T(RN, 0x1.6643e9e6fc045p+52, 0x1.6643ec31fc558p+51, 0x1.908d82c442dcdp+52, 0x0p+0, 0) +T(RN, 0x1.6643e953d74a5p+52, 0x1.6643f1109ad88p+51, 0x1.908d83576796dp+52, 0x0p+0, 0) +T(RN, 0x1.6643e8c0b28e5p+52, 0x1.6643f5ef395b8p+51, 0x1.908d83ea8c52dp+52, 0x0p+0, 0) +T(RN, 0x1.6643e82d8dd05p+52, 0x1.6643facdd7de8p+51, 0x1.908d847db110dp+52, 0x0p+0, 0) +T(RN, 0x1.6643eaf12b5efp+52, 0x1.6643e8d497cfp+51, 0x1.908d82f1bb231p+52, 0x0p+0, 0) +T(RN, 0x1.6643ea5e06a67p+52, 0x1.6643edb33653p+51, 0x1.908d8384dfdb9p+52, 0x0p+0, 0) +T(RN, 0x1.6643e9cae1ebfp+52, 0x1.6643f291d4d7p+51, 0x1.908d841804961p+52, 0x0p+0, 0) +T(RN, 0x1.6643e937bd2f7p+52, 0x1.6643f770735bp+51, 0x1.908d84ab29529p+52, 0x0p+0, 0) +T(RN, 0x1.6643e8a49870fp+52, 0x1.6643fc4f11dfp+51, 0x1.908d853e4e111p+52, 0x0p+0, 0) +// radom argument in (-10,10) +T(RN, -0x1.57f25b2b5006dp+1, 0x1.c7d30fb825911p+2, 0x1.e72fc42ea849dp+2, 0x1.6cb306p-2, INEXACT) +T(RN, 0x1.19be709de7505p+3, -0x1.ab6d6fba96889p+2, 0x1.61a0ec76207f1p+3, 0x1.5a1818p-2, INEXACT) +T(RN, -0x1.5ac18e27084ddp+1, -0x1.925981b093c41p-2, 0x1.5e62687aa9911p+1, -0x1.4ce2c8p-3, INEXACT) +T(RN, 0x1.7221cd18455f5p+2, 0x1.11a0d4a51b239p+3, 0x1.4a56018ddef82p+3, -0x1.16dc3p-2, INEXACT) +T(RN, -0x1.ae41a1079de4dp+0, -0x1.329153103b871p+3, 0x1.373fdec7eac3ap+3, 0x1.8890f2p-4, INEXACT) +T(RN, -0x1.0accef24163e5p+2, 0x1.d94511468cce9p-2, 0x1.0c6f6978c1e67p+2, 0x1.40c428p-2, INEXACT) +T(RN, -0x1.e563ff258fcbdp+2, 0x1.c7cbf1ace7da1p+2, 0x1.4ceca5d10c789p+3, 0x1.431392p-2, INEXACT) +T(RN, -0x1.3ec60efde0ed5p+3, -0x1.3fa3ce8e5e899p+3, 0x1.c36d4d070556ap+3, 0x1.5ebb7cp-2, INEXACT) +T(RN, -0x1.236fd1412d02dp+2, 0x1.7424328273bd1p+2, 0x1.d8ad9a3cf9eb2p+2, 0x1.5ea23cp-2, INEXACT) +T(RN, 0x1.6f651e8b7c6c5p+1, 0x1.3bfd78e193549p+2, 0x1.6d817fc32ad81p+2, 0x1.18ecbcp-3, INEXACT) +// nan's resutls +T(RN, nan, 0x1p+0, nan, 0x0p+0, 0) +T(RN, nan, 0x1p+0, nan, 0x0p+0, 0) +T(RN, nan, nan, nan, 0x0p+0, 0) +T(RN, -0x1p+1023, nan, nan, 0x0p+0, 0) +// inf result +T(RN, -inf, nan, inf, 0x0p+0, 0) +T(RZ, nan, -inf, inf, 0x0p+0, 0) +// inf result with snan argument +T(RN, nan, inf, inf, 0x0p+0, 0) +// overflow +T(RN, -0x1.fffffp+1023, 0x1.eeeeep+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RZ, -0x1.fffffp+1023, 0x1.eeeeep+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RU, -0x1.fffffp+1023, 0x1.eeeeep+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RD, -0x1.fffffp+1023, 0x1.eeeeep+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +// subnormal number +T(RN, 0x0p+0, 0x1p-1074, 0x1p-1074, 0x0p+0, 0) +T(RN, 0x1p-1074, 0x0p+0, 0x1p-1074, 0x0p+0, 0) +T(RN, 0x1p-1022, 0x0p+0, 0x1p-1022, 0x0p+0, 0) +T(RN, 0x0p+0, -0x1p-1022, 0x1p-1022, 0x0p+0, 0) +T(RN, 0x1p-1074, 0x1p-1074, 0x1p-1074, -0x1.a8279ap-2, INEXACT|UNDERFLOW) +T(RN, -0x1p-1073, -0x1p-1073, 0x1.8p-1073, 0x1.5f619ap-3, INEXACT|UNDERFLOW) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1p-1074, 0x1p-1074, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1p+1023, 0x1p+1023, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RD, 0x0p+0, inf, inf, 0x0p+0, 0) +T(RD, 0x0p+0, -0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, -0x1p-1074, 0x1p-1074, 0x0p+0, 0) +T(RD, 0x0p+0,-0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RD, 0x0p+0, -0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, 0x0p+0, -0x1p+1023, 0x1p+1023, 0x0p+0, 0) +T(RD, 0x0p+0,-0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RD, 0x0p+0, -inf, inf, 0x0p+0, 0) +T(RD, 0x1p-1074, 0x0p+0, 0x1p-1074, 0x0p+0, 0) +T(RD, 0x1.ffffffffffffep-1023, 0x0p+0, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RD, 0x1p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1.8p+3, -0x1.4p+2, 0x1.ap+3, 0x0p+0, 0) +T(RD, 0x1p+1023, 0x0p+0, 0x1p+1023, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1023, 0x0p+0, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RD, inf, 0x0p+0, inf, 0x0p+0, 0) +T(RD, inf, nan, inf, 0x0p+0, 0) +T(RD, inf, nan, inf, 0x0p+0, 0) +T(RD, nan, inf, inf, 0x0p+0, 0) +T(RD, nan, -inf, inf, 0x0p+0, 0) +T(RD, -0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x1p-1074, 0x0p+0, 0x1p-1074, 0x0p+0, 0) +T(RD,-0x1.ffffffffffffep-1023, 0x0p+0, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RD, -0x1p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1.8p+1, -0x1p+2, 0x1.4p+2, 0x0p+0, 0) +T(RD, -0x1.8p+4, 0x1.cp+2, 0x1.9p+4, 0x0p+0, 0) +T(RD, -0x1p+1023, 0x0p+0, 0x1p+1023, 0x0p+0, 0) +T(RD,-0x1.fffffffffffffp+1023, 0x0p+0, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RD, -inf, 0x0p+0, inf, 0x0p+0, 0) +T(RD, -inf, nan, inf, 0x0p+0, 0) +T(RD, -inf, nan, inf, 0x0p+0, 0) +T(RD, nan, inf, inf, 0x0p+0, 0) +T(RD, nan, -inf, inf, 0x0p+0, 0) +T(RD, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RD, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RD, 0x1p-1074, nan, nan, 0x0p+0, 0) +T(RD, 0x1.8p-1073, nan, nan, 0x0p+0, 0) +T(RD, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RD, nan, -0x1p-1074, nan, 0x0p+0, 0) +T(RD, nan, -0x1.8p-1073, nan, 0x0p+0, 0) +T(RD, -0x1p-1074, nan, nan, 0x0p+0, 0) +T(RD, -0x1.8p-1073, nan, nan, 0x0p+0, 0) +T(RD, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RD, nan, 0x1p-1074, nan, 0x0p+0, 0) +T(RD, nan, 0x1.8p-1073, nan, 0x0p+0, 0) +T(RN, 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1p+1023, 0x1p+1023, 0x0p+0, 0) +T(RN, 0x0p+0, inf, inf, 0x0p+0, 0) +T(RN, 0x0p+0, -0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, -0x1p-1074, 0x1p-1074, 0x0p+0, 0) +T(RN, 0x0p+0,-0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RN, 0x0p+0, -0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x0p+0, -0x1p+1023, 0x1p+1023, 0x0p+0, 0) +T(RN, 0x0p+0,-0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RN, 0x0p+0, -inf, inf, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep-1023, 0x0p+0, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RN, 0x1p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.8p+3, -0x1.4p+2, 0x1.ap+3, 0x0p+0, 0) +T(RN, 0x1p+1023, 0x0p+0, 0x1p+1023, 0x0p+0, 0) +T(RN, inf, 0x0p+0, inf, 0x0p+0, 0) +T(RN, inf, nan, inf, 0x0p+0, 0) +T(RN, inf, nan, inf, 0x0p+0, 0) +T(RN, nan, inf, inf, 0x0p+0, 0) +T(RN, nan, -inf, inf, 0x0p+0, 0) +T(RN, -0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-1074, 0x0p+0, 0x1p-1074, 0x0p+0, 0) +T(RN,-0x1.ffffffffffffep-1023, 0x0p+0, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RN, -0x1p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.8p+1, -0x1p+2, 0x1.4p+2, 0x0p+0, 0) +T(RN, -0x1.8p+4, 0x1.cp+2, 0x1.9p+4, 0x0p+0, 0) +T(RN, -0x1p+1023, 0x0p+0, 0x1p+1023, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023, 0x0p+0, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RN, -inf, 0x0p+0, inf, 0x0p+0, 0) +T(RN, -inf, nan, inf, 0x0p+0, 0) +T(RN, nan, -inf, inf, 0x0p+0, 0) +T(RN, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RN, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-1074, nan, nan, 0x0p+0, 0) +T(RN, 0x1.8p-1073, nan, nan, 0x0p+0, 0) +T(RN, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-1074, nan, 0x0p+0, 0) +T(RN, nan, -0x1.8p-1073, nan, 0x0p+0, 0) +T(RN, -0x1p-1074, nan, nan, 0x0p+0, 0) +T(RN, -0x1.8p-1073, nan, nan, 0x0p+0, 0) +T(RN, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-1074, nan, 0x0p+0, 0) +T(RN, nan, 0x1.8p-1073, nan, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1p-1074, 0x1p-1074, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1p+1023, 0x1p+1023, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RU, 0x0p+0, inf, inf, 0x0p+0, 0) +T(RU, 0x0p+0, -0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, -0x1p-1074, 0x1p-1074, 0x0p+0, 0) +T(RU, 0x0p+0,-0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RU, 0x0p+0, -0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, 0x0p+0, -0x1p+1023, 0x1p+1023, 0x0p+0, 0) +T(RU, 0x0p+0,-0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RU, 0x0p+0, -inf, inf, 0x0p+0, 0) +T(RU, 0x1p-1074, 0x0p+0, 0x1p-1074, 0x0p+0, 0) +T(RU, 0x1.ffffffffffffep-1023, 0x0p+0, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RU, 0x1p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1.8p+3, -0x1.4p+2, 0x1.ap+3, 0x0p+0, 0) +T(RU, 0x1p+1023, 0x0p+0, 0x1p+1023, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp+1023, 0x0p+0, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RU, inf, 0x0p+0, inf, 0x0p+0, 0) +T(RU, inf, nan, inf, 0x0p+0, 0) +T(RU, inf, nan, inf, 0x0p+0, 0) +T(RU, nan, inf, inf, 0x0p+0, 0) +T(RU, nan, -inf, inf, 0x0p+0, 0) +T(RU, -0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x1p-1074, 0x0p+0, 0x1p-1074, 0x0p+0, 0) +T(RU,-0x1.ffffffffffffep-1023, 0x0p+0, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RU, -0x1p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1.8p+1, -0x1p+2, 0x1.4p+2, 0x0p+0, 0) +T(RU, -0x1.8p+4, 0x1.cp+2, 0x1.9p+4, 0x0p+0, 0) +T(RU, -0x1p+1023, 0x0p+0, 0x1p+1023, 0x0p+0, 0) +T(RU,-0x1.fffffffffffffp+1023, 0x0p+0, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RU, -inf, 0x0p+0, inf, 0x0p+0, 0) +T(RU, -inf, nan, inf, 0x0p+0, 0) +T(RU, -inf, nan, inf, 0x0p+0, 0) +T(RU, nan, inf, inf, 0x0p+0, 0) +T(RU, nan, -inf, inf, 0x0p+0, 0) +T(RU, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RU, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RU, 0x1p-1074, nan, nan, 0x0p+0, 0) +T(RU, 0x1.8p-1073, nan, nan, 0x0p+0, 0) +T(RU, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RU, nan, -0x1p-1074, nan, 0x0p+0, 0) +T(RU, nan, -0x1.8p-1073, nan, 0x0p+0, 0) +T(RU, -0x1p-1074, nan, nan, 0x0p+0, 0) +T(RU, -0x1.8p-1073, nan, nan, 0x0p+0, 0) +T(RU, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RU, nan, 0x1p-1074, nan, 0x0p+0, 0) +T(RU, nan, 0x1.8p-1073, nan, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1p-1074, 0x1p-1074, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1p+1023, 0x1p+1023, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RZ, 0x0p+0, inf, inf, 0x0p+0, 0) +T(RZ, 0x0p+0, -0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, -0x1p-1074, 0x1p-1074, 0x0p+0, 0) +T(RZ, 0x0p+0,-0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RZ, 0x0p+0, -0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, -0x1p+1023, 0x1p+1023, 0x0p+0, 0) +T(RZ, 0x0p+0,-0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RZ, 0x0p+0, -inf, inf, 0x0p+0, 0) +T(RZ, 0x1p-1074, 0x0p+0, 0x1p-1074, 0x0p+0, 0) +T(RZ, 0x1.ffffffffffffep-1023, 0x0p+0, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RZ, 0x1p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1.8p+3, -0x1.4p+2, 0x1.ap+3, 0x0p+0, 0) +T(RZ, 0x1p+1023, 0x0p+0, 0x1p+1023, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp+1023, 0x0p+0, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RZ, inf, 0x0p+0, inf, 0x0p+0, 0) +T(RZ, inf, nan, inf, 0x0p+0, 0) +T(RZ, inf, nan, inf, 0x0p+0, 0) +T(RZ, nan, inf, inf, 0x0p+0, 0) +T(RZ, nan, -inf, inf, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x1p-1074, 0x0p+0, 0x1p-1074, 0x0p+0, 0) +T(RZ,-0x1.ffffffffffffep-1023, 0x0p+0, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RZ, -0x1p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x1.8p+1, -0x1p+2, 0x1.4p+2, 0x0p+0, 0) +T(RZ, -0x1.8p+4, 0x1.cp+2, 0x1.9p+4, 0x0p+0, 0) +T(RZ, -0x1p+1023, 0x0p+0, 0x1p+1023, 0x0p+0, 0) +T(RZ,-0x1.fffffffffffffp+1023, 0x0p+0, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RZ, -inf, 0x0p+0, inf, 0x0p+0, 0) +T(RZ, -inf, nan, inf, 0x0p+0, 0) +T(RZ, -inf, nan, inf, 0x0p+0, 0) +T(RZ, nan, inf, inf, 0x0p+0, 0) +T(RZ, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RZ, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RZ, 0x1p-1074, nan, nan, 0x0p+0, 0) +T(RZ, 0x1.8p-1073, nan, nan, 0x0p+0, 0) +T(RZ, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RZ, nan, -0x1p-1074, nan, 0x0p+0, 0) +T(RZ, nan, -0x1.8p-1073, nan, 0x0p+0, 0) +T(RZ, -0x1p-1074, nan, nan, 0x0p+0, 0) +T(RZ, -0x1.8p-1073, nan, nan, 0x0p+0, 0) +T(RZ, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RZ, nan, 0x1p-1074, nan, 0x0p+0, 0) +T(RZ, nan, 0x1.8p-1073, nan, 0x0p+0, 0) diff --git a/test/musl/src/math/ucb/hypotf.h b/test/musl/src/math/ucb/hypotf.h new file mode 100644 index 00000000..d311db53 --- /dev/null +++ b/test/musl/src/math/ucb/hypotf.h @@ -0,0 +1,297 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// 0.7max,0.6max +T(RN, 0x1.666666p+127, 0x1.333334p+127, 0x1.d80a6ap+127, 0x1.b63f02p-7, INEXACT) +T(RZ, 0x1.666666p+127, 0x1.333334p+127, 0x1.d80a68p+127, -0x1.f92704p-1, INEXACT) +T(RU, 0x1.666666p+127, 0x1.333334p+127, 0x1.d80a6ap+127, 0x1.b63f02p-7, INEXACT) +T(RD, 0x1.666666p+127, 0x1.333334p+127, 0x1.d80a68p+127, -0x1.f92704p-1, INEXACT) +// tiny,huge = huge,tiny = huge +T(RN, 0x0p+0, 0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RN, 0x1p-149, 0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, INEXACT) +T(RN, 0x1p-126, 0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, INEXACT) +T(RN, 0x1p+0, 0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, INEXACT) +T(RN, 0x1.fffffep+127, 0x0p+0, 0x1.fffffep+127, 0x0p+0, 0) +T(RN, 0x1.fffffep+127, 0x1p-149, 0x1.fffffep+127, 0x0p+0, INEXACT) +T(RN, 0x1.fffffep+127, 0x1p-126, 0x1.fffffep+127, 0x0p+0, INEXACT) +T(RN, 0x1.fffffep+127, 0x1p+0, 0x1.fffffep+127, 0x0p+0, INEXACT) +// pythagoras integers test +T(RN, 0x1.ffe39cp+22, 0x1.c48p+14, 0x1.ffe464p+22, 0x0p+0, 0) +T(RN, 0x1.ffe2bcp+22, 0x1.974p+15, 0x1.ffe544p+22, 0x0p+0, 0) +T(RN, 0x1.ffe15cp+22, 0x1.262p+16, 0x1.ffe6a4p+22, 0x0p+0, 0) +T(RN, 0x1.ffdf7cp+22, 0x1.80ap+16, 0x1.ffe884p+22, 0x0p+0, 0) +T(RN, 0x1.001f3ap+23, 0x1.6a2p+13, 0x1.001f4ap+23, 0x0p+0, 0) +T(RN, 0x1.001efap+23, 0x1.0f98p+15, 0x1.001f8ap+23, 0x0p+0, 0) +T(RN, 0x1.001e7ap+23, 0x1.c4a8p+15, 0x1.00200ap+23, 0x0p+0, 0) +T(RN, 0x1.001dbap+23, 0x1.3cdcp+16, 0x1.0020cap+23, 0x0p+0, 0) +T(RN, 0x1.001cbap+23, 0x1.9764p+16, 0x1.0021cap+23, 0x0p+0, 0) +T(RN, 0x1.004c86p+23, 0x1.6a4p+12, 0x1.004c8ap+23, 0x0p+0, 0) +T(RN, 0x1.004c56p+23, 0x1.c4dp+14, 0x1.004cbap+23, 0x0p+0, 0) +T(RN, 0x1.004be6p+23, 0x1.9788p+15, 0x1.004d2ap+23, 0x0p+0, 0) +T(RN, 0x1.004b36p+23, 0x1.2654p+16, 0x1.004ddap+23, 0x0p+0, 0) +T(RN, 0x1.004a46p+23, 0x1.80e4p+16, 0x1.004ecap+23, 0x0p+0, 0) +T(RN, 0x1.0079cap+23, 0x1.6a6p+13, 0x1.0079dap+23, 0x0p+0, 0) +T(RN, 0x1.00798ap+23, 0x1.0fc8p+15, 0x1.007a1ap+23, 0x0p+0, 0) +T(RN, 0x1.00790ap+23, 0x1.c4f8p+15, 0x1.007a9ap+23, 0x0p+0, 0) +T(RN, 0x1.00784ap+23, 0x1.3d14p+16, 0x1.007b5ap+23, 0x0p+0, 0) +T(RN, 0x1.00774ap+23, 0x1.97acp+16, 0x1.007c5ap+23, 0x0p+0, 0) +T(RN, 0x1.00a71ep+23, 0x1.6a8p+12, 0x1.00a722p+23, 0x0p+0, 0) +// radom argument in (-10,10) +T(RN, -0x1.57f25cp+1, 0x1.c7d31p+2, 0x1.e72fc4p+2, -0x1.2ed8fp-2, INEXACT) +T(RN, 0x1.19be7p+3, -0x1.ab6d7p+2, 0x1.61a0ecp+3, -0x1.a978c8p-6, INEXACT) +T(RN, -0x1.5ac18ep+1, -0x1.925982p-2, 0x1.5e6268p+1, -0x1.55d62cp-3, INEXACT) +T(RN, 0x1.7221cep+2, 0x1.11a0d4p+3, 0x1.4a5602p+3, 0x1.73f5f4p-2, INEXACT) +T(RN, -0x1.ae41a2p+0, -0x1.329154p+3, 0x1.373fep+3, 0x1.1a3a8cp-3, INEXACT) +T(RN, -0x1.0accfp+2, 0x1.d94512p-2, 0x1.0c6f6ap+2, -0x1.526f22p-3, INEXACT) +T(RN, -0x1.e564p+2, 0x1.c7cbf2p+2, 0x1.4ceca6p+3, -0x1.e8dcc2p-4, INEXACT) +T(RN, -0x1.3ec60ep+3, -0x1.3fa3cep+3, 0x1.c36d4cp+3, 0x1.10fbdcp-5, INEXACT) +T(RN, -0x1.236fd2p+2, 0x1.742432p+2, 0x1.d8ad9ap+2, -0x1.2fb484p-3, INEXACT) +T(RN, 0x1.6f651ep+1, 0x1.3bfd78p+2, 0x1.6d817ep+2, -0x1.ba32cep-2, INEXACT) +// nan's resutls +T(RN, nan, 0x1p+0, nan, 0x0p+0, 0) +T(RN, nan, 0x1p+0, nan, 0x0p+0, 0) +T(RN, nan, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, nan, 0x0p+0, 0) +// inf result +T(RN, -inf, nan, inf, 0x0p+0, 0) +T(RZ, nan, -inf, inf, 0x0p+0, 0) +// inf result with snan argument raise invalid flag +T(RN, nan, inf, inf, 0x0p+0, 0) +// overflow +T(RN,-0x1.fffffep+127, 0x1.fddddcp+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RZ,-0x1.fffffep+127, 0x1.fddddcp+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RU,-0x1.fffffep+127, 0x1.fddddcp+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RD,-0x1.fffffep+127, 0x1.fddddcp+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +// subnormal number +T(RN, 0x0p+0, 0x1p-149, 0x1p-149, 0x0p+0, 0) +T(RN, 0x1p-149, 0x0p+0, 0x1p-149, 0x0p+0, 0) +T(RN, 0x1p-126, 0x0p+0, 0x1p-126, 0x0p+0, 0) +T(RN, 0x0p+0, -0x1p-126, 0x1p-126, 0x0p+0, 0) +T(RN, 0x1p-149, 0x1p-149, 0x1p-149, -0x1.a8279ap-2, INEXACT|UNDERFLOW) +T(RN, -0x1p-148, -0x1p-148, 0x1.8p-148, 0x1.5f619ap-3, INEXACT|UNDERFLOW) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1p-149, 0x1p-149, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1p+127, 0x1p+127, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RD, 0x0p+0, inf, inf, 0x0p+0, 0) +T(RD, 0x0p+0, -0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, -0x1p-149, 0x1p-149, 0x0p+0, 0) +T(RD, 0x0p+0,-0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, 0) +T(RD, 0x0p+0, -0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, 0x0p+0, -0x1p+127, 0x1p+127, 0x0p+0, 0) +T(RD, 0x0p+0,-0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RD, 0x0p+0, -inf, inf, 0x0p+0, 0) +T(RD, 0x1p-149, 0x0p+0, 0x1p-149, 0x0p+0, 0) +T(RD, 0x1.fffffcp-127, 0x0p+0, 0x1.fffffcp-127, 0x0p+0, 0) +T(RD, 0x1p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1.8p+3, -0x1.4p+2, 0x1.ap+3, 0x0p+0, 0) +T(RD, 0x1p+127, 0x0p+0, 0x1p+127, 0x0p+0, 0) +T(RD, 0x1.fffffep+127, 0x0p+0, 0x1.fffffep+127, 0x0p+0, 0) +T(RD, inf, 0x0p+0, inf, 0x0p+0, 0) +T(RD, inf, nan, inf, 0x0p+0, 0) +T(RD, inf, nan, inf, 0x0p+0, 0) +T(RD, nan, inf, inf, 0x0p+0, 0) +T(RD, nan, -inf, inf, 0x0p+0, 0) +T(RD, -0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x1p-149, 0x0p+0, 0x1p-149, 0x0p+0, 0) +T(RD,-0x1.fffffcp-127, 0x0p+0, 0x1.fffffcp-127, 0x0p+0, 0) +T(RD, -0x1p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1.8p+1, -0x1p+2, 0x1.4p+2, 0x0p+0, 0) +T(RD, -0x1.8p+4, 0x1.cp+2, 0x1.9p+4, 0x0p+0, 0) +T(RD, -0x1p+127, 0x0p+0, 0x1p+127, 0x0p+0, 0) +T(RD,-0x1.fffffep+127, 0x0p+0, 0x1.fffffep+127, 0x0p+0, 0) +T(RD, -inf, 0x0p+0, inf, 0x0p+0, 0) +T(RD, -inf, nan, inf, 0x0p+0, 0) +T(RD, -inf, nan, inf, 0x0p+0, 0) +T(RD, nan, inf, inf, 0x0p+0, 0) +T(RD, nan, -inf, inf, 0x0p+0, 0) +T(RD, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RD, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RD, 0x1p-149, nan, nan, 0x0p+0, 0) +T(RD, 0x1.8p-148, nan, nan, 0x0p+0, 0) +T(RD, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RD, nan, -0x1p-149, nan, 0x0p+0, 0) +T(RD, nan, -0x1.8p-148, nan, 0x0p+0, 0) +T(RD, -0x1p-149, nan, nan, 0x0p+0, 0) +T(RD, -0x1.8p-148, nan, nan, 0x0p+0, 0) +T(RD, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RD, nan, 0x1p-149, nan, 0x0p+0, 0) +T(RD, nan, 0x1.8p-148, nan, 0x0p+0, 0) +T(RN, 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1p+127, 0x1p+127, 0x0p+0, 0) +T(RN, 0x0p+0, inf, inf, 0x0p+0, 0) +T(RN, 0x0p+0, -0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, -0x1p-149, 0x1p-149, 0x0p+0, 0) +T(RN, 0x0p+0,-0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, 0) +T(RN, 0x0p+0, -0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x0p+0, -0x1p+127, 0x1p+127, 0x0p+0, 0) +T(RN, 0x0p+0,-0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RN, 0x0p+0, -inf, inf, 0x0p+0, 0) +T(RN, 0x1.fffffcp-127, 0x0p+0, 0x1.fffffcp-127, 0x0p+0, 0) +T(RN, 0x1p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.8p+3, -0x1.4p+2, 0x1.ap+3, 0x0p+0, 0) +T(RN, 0x1p+127, 0x0p+0, 0x1p+127, 0x0p+0, 0) +T(RN, inf, 0x0p+0, inf, 0x0p+0, 0) +T(RN, inf, nan, inf, 0x0p+0, 0) +T(RN, inf, nan, inf, 0x0p+0, 0) +T(RN, nan, inf, inf, 0x0p+0, 0) +T(RN, nan, -inf, inf, 0x0p+0, 0) +T(RN, -0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-149, 0x0p+0, 0x1p-149, 0x0p+0, 0) +T(RN,-0x1.fffffcp-127, 0x0p+0, 0x1.fffffcp-127, 0x0p+0, 0) +T(RN, -0x1p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.8p+1, -0x1p+2, 0x1.4p+2, 0x0p+0, 0) +T(RN, -0x1.8p+4, 0x1.cp+2, 0x1.9p+4, 0x0p+0, 0) +T(RN, -0x1p+127, 0x0p+0, 0x1p+127, 0x0p+0, 0) +T(RN,-0x1.fffffep+127, 0x0p+0, 0x1.fffffep+127, 0x0p+0, 0) +T(RN, -inf, 0x0p+0, inf, 0x0p+0, 0) +T(RN, -inf, nan, inf, 0x0p+0, 0) +T(RN, nan, -inf, inf, 0x0p+0, 0) +T(RN, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RN, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-149, nan, nan, 0x0p+0, 0) +T(RN, 0x1.8p-148, nan, nan, 0x0p+0, 0) +T(RN, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-149, nan, 0x0p+0, 0) +T(RN, nan, -0x1.8p-148, nan, 0x0p+0, 0) +T(RN, -0x1p-149, nan, nan, 0x0p+0, 0) +T(RN, -0x1.8p-148, nan, nan, 0x0p+0, 0) +T(RN, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-149, nan, 0x0p+0, 0) +T(RN, nan, 0x1.8p-148, nan, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1p-149, 0x1p-149, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1p+127, 0x1p+127, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RU, 0x0p+0, inf, inf, 0x0p+0, 0) +T(RU, 0x0p+0, -0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, -0x1p-149, 0x1p-149, 0x0p+0, 0) +T(RU, 0x0p+0,-0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, 0) +T(RU, 0x0p+0, -0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, 0x0p+0, -0x1p+127, 0x1p+127, 0x0p+0, 0) +T(RU, 0x0p+0,-0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RU, 0x0p+0, -inf, inf, 0x0p+0, 0) +T(RU, 0x1p-149, 0x0p+0, 0x1p-149, 0x0p+0, 0) +T(RU, 0x1.fffffcp-127, 0x0p+0, 0x1.fffffcp-127, 0x0p+0, 0) +T(RU, 0x1p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1.8p+3, -0x1.4p+2, 0x1.ap+3, 0x0p+0, 0) +T(RU, 0x1p+127, 0x0p+0, 0x1p+127, 0x0p+0, 0) +T(RU, 0x1.fffffep+127, 0x0p+0, 0x1.fffffep+127, 0x0p+0, 0) +T(RU, inf, 0x0p+0, inf, 0x0p+0, 0) +T(RU, inf, nan, inf, 0x0p+0, 0) +T(RU, inf, nan, inf, 0x0p+0, 0) +T(RU, nan, inf, inf, 0x0p+0, 0) +T(RU, nan, -inf, inf, 0x0p+0, 0) +T(RU, -0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x1p-149, 0x0p+0, 0x1p-149, 0x0p+0, 0) +T(RU,-0x1.fffffcp-127, 0x0p+0, 0x1.fffffcp-127, 0x0p+0, 0) +T(RU, -0x1p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1.8p+1, -0x1p+2, 0x1.4p+2, 0x0p+0, 0) +T(RU, -0x1.8p+4, 0x1.cp+2, 0x1.9p+4, 0x0p+0, 0) +T(RU, -0x1p+127, 0x0p+0, 0x1p+127, 0x0p+0, 0) +T(RU,-0x1.fffffep+127, 0x0p+0, 0x1.fffffep+127, 0x0p+0, 0) +T(RU, -inf, 0x0p+0, inf, 0x0p+0, 0) +T(RU, -inf, nan, inf, 0x0p+0, 0) +T(RU, -inf, nan, inf, 0x0p+0, 0) +T(RU, nan, inf, inf, 0x0p+0, 0) +T(RU, nan, -inf, inf, 0x0p+0, 0) +T(RU, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RU, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RU, 0x1p-149, nan, nan, 0x0p+0, 0) +T(RU, 0x1.8p-148, nan, nan, 0x0p+0, 0) +T(RU, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RU, nan, -0x1p-149, nan, 0x0p+0, 0) +T(RU, nan, -0x1.8p-148, nan, 0x0p+0, 0) +T(RU, -0x1p-149, nan, nan, 0x0p+0, 0) +T(RU, -0x1.8p-148, nan, nan, 0x0p+0, 0) +T(RU, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RU, nan, 0x1p-149, nan, 0x0p+0, 0) +T(RU, nan, 0x1.8p-148, nan, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1p-149, 0x1p-149, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1p+127, 0x1p+127, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RZ, 0x0p+0, inf, inf, 0x0p+0, 0) +T(RZ, 0x0p+0, -0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, -0x1p-149, 0x1p-149, 0x0p+0, 0) +T(RZ, 0x0p+0,-0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, 0) +T(RZ, 0x0p+0, -0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, -0x1p+127, 0x1p+127, 0x0p+0, 0) +T(RZ, 0x0p+0,-0x1.fffffep+127, 0x1.fffffep+127, 0x0p+0, 0) +T(RZ, 0x0p+0, -inf, inf, 0x0p+0, 0) +T(RZ, 0x1p-149, 0x0p+0, 0x1p-149, 0x0p+0, 0) +T(RZ, 0x1.fffffcp-127, 0x0p+0, 0x1.fffffcp-127, 0x0p+0, 0) +T(RZ, 0x1p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1.8p+3, -0x1.4p+2, 0x1.ap+3, 0x0p+0, 0) +T(RZ, 0x1p+127, 0x0p+0, 0x1p+127, 0x0p+0, 0) +T(RZ, 0x1.fffffep+127, 0x0p+0, 0x1.fffffep+127, 0x0p+0, 0) +T(RZ, inf, 0x0p+0, inf, 0x0p+0, 0) +T(RZ, inf, nan, inf, 0x0p+0, 0) +T(RZ, inf, nan, inf, 0x0p+0, 0) +T(RZ, nan, inf, inf, 0x0p+0, 0) +T(RZ, nan, -inf, inf, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x1p-149, 0x0p+0, 0x1p-149, 0x0p+0, 0) +T(RZ,-0x1.fffffcp-127, 0x0p+0, 0x1.fffffcp-127, 0x0p+0, 0) +T(RZ, -0x1p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x1.8p+1, -0x1p+2, 0x1.4p+2, 0x0p+0, 0) +T(RZ, -0x1.8p+4, 0x1.cp+2, 0x1.9p+4, 0x0p+0, 0) +T(RZ, -0x1p+127, 0x0p+0, 0x1p+127, 0x0p+0, 0) +T(RZ,-0x1.fffffep+127, 0x0p+0, 0x1.fffffep+127, 0x0p+0, 0) +T(RZ, -inf, 0x0p+0, inf, 0x0p+0, 0) +T(RZ, -inf, nan, inf, 0x0p+0, 0) +T(RZ, -inf, nan, inf, 0x0p+0, 0) +T(RZ, nan, inf, inf, 0x0p+0, 0) +T(RZ, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RZ, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RZ, 0x1p-149, nan, nan, 0x0p+0, 0) +T(RZ, 0x1.8p-148, nan, nan, 0x0p+0, 0) +T(RZ, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RZ, nan, -0x1p-149, nan, 0x0p+0, 0) +T(RZ, nan, -0x1.8p-148, nan, 0x0p+0, 0) +T(RZ, -0x1p-149, nan, nan, 0x0p+0, 0) +T(RZ, -0x1.8p-148, nan, nan, 0x0p+0, 0) +T(RZ, nan, 0x0p+0, nan, 0x0p+0, 0) +T(RZ, nan, 0x1p-149, nan, 0x0p+0, 0) +T(RZ, nan, 0x1.8p-148, nan, 0x0p+0, 0) diff --git a/test/musl/src/math/ucb/log.h b/test/musl/src/math/ucb/log.h new file mode 100644 index 00000000..fa37c9ab --- /dev/null +++ b/test/musl/src/math/ucb/log.h @@ -0,0 +1,309 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// logd(+fmax) is finite +T(RN, 0x1.fffffffffffffp+1023, 0x1.62e42fefa39efp+9, -0x1.a9c9e4p-3, INEXACT) +T(RZ, 0x1.fffffffffffffp+1023, 0x1.62e42fefa39efp+9, -0x1.a9c9e4p-3, INEXACT) +T(RU, 0x1.fffffffffffffp+1023, 0x1.62e42fefa39fp+9, 0x1.958d88p-1, INEXACT) +T(RD, 0x1.fffffffffffffp+1023, 0x1.62e42fefa39efp+9, -0x1.a9c9e4p-3, INEXACT) +// logd(1+tiny) is tiny - tiny*tiny/2 +T(RN, 0x1.000000000002p+0, 0x1.fffffffffffep-48, -0x1.555556p-43, INEXACT) +T(RN, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.fffffffffffcp-1, -0x1.000000000001p-47, 0x1.555556p-44, INEXACT) +T(RZ, 0x1.000000000002p+0, 0x1.fffffffffffep-48, -0x1.555556p-43, INEXACT) +T(RZ, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffcp-1, -0x1.000000000001p-47, 0x1.555556p-44, INEXACT) +T(RU, 0x1.000000000002p+0, 0x1.fffffffffffe1p-48, 0x1p+0, INEXACT) +T(RU, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.fffffffffffcp-1, -0x1.000000000001p-47, 0x1.555556p-44, INEXACT) +T(RD, 0x1.000000000002p+0, 0x1.fffffffffffep-48, -0x1.555556p-43, INEXACT) +T(RD, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.fffffffffffcp-1, -0x1.0000000000011p-47, -0x1p+0, INEXACT) +// logd(min) is finite +T(RN, 0x1p-1022, -0x1.6232bdd7abcd2p+9, 0x1.eef3fep-3, INEXACT) +T(RN, 0x1p-1074, -0x1.74385446d71c3p+9, 0x1.8e56ap-2, INEXACT) +T(RZ, 0x1p-1022, -0x1.6232bdd7abcd2p+9, 0x1.eef3fep-3, INEXACT) +T(RZ, 0x1p-1074, -0x1.74385446d71c3p+9, 0x1.8e56ap-2, INEXACT) +T(RU, 0x1p-1022, -0x1.6232bdd7abcd2p+9, 0x1.eef3fep-3, INEXACT) +T(RU, 0x1p-1074, -0x1.74385446d71c3p+9, 0x1.8e56ap-2, INEXACT) +T(RD, 0x1p-1022, -0x1.6232bdd7abcd3p+9, -0x1.8443p-1, INEXACT) +T(RD, 0x1p-1074, -0x1.74385446d71c4p+9, -0x1.38d4bp-1, INEXACT) +// random arguments between 0 100 +T(RN, 0x1.24844b2b5006dp+5, 0x1.ccaeab2b2d17ap+1, 0x1.fc0214p-2, INEXACT) +T(RN, 0x1.5671ffb825911p+6, 0x1.1cc9cfc21200ep+2, 0x1.576484p-6, INEXACT) +T(RN, 0x1.7817009de7505p+6, 0x1.22c941ad2cdcbp+2, 0x1.ffd6e6p-3, INEXACT) +T(RN, 0x1.09b74fba96889p+4, 0x1.67a8d2baa9eaep+1, 0x1.410c98p-7, INEXACT) +T(RN, 0x1.23a38e27084ddp+5, 0x1.cc4c2deae0fd6p+1, -0x1.ec3806p-3, INEXACT) +T(RN, 0x1.804881b093c41p+5, 0x1.ef9bacb80ecaap+1, -0x1.717e9cp-2, INEXACT) +T(RN, 0x1.3baa8d18455f5p+6, 0x1.1793b7e741d95p+2, -0x1.343a7cp-2, INEXACT) +T(RN, 0x1.730484a51b239p+6, 0x1.21eac9842b049p+2, -0x1.bd7ec6p-3, INEXACT) +T(RN, 0x1.4cc5b1079de4dp+5, 0x1.dd2fa6f2757b8p+1, 0x1.39a05p-2, INEXACT) +T(RN, 0x1.0ca4d3103b871p+1, 0x1.7b930bafa9c1dp-1, -0x1.00835p-3, INEXACT) +// logd(nan) is nan +T(RN, nan, nan, 0x0p+0, 0) +// logd(+inf) is inf +T(RN, inf, inf, 0x0p+0, 0) +// logd(+-0) is -inf +T(RN, 0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RN, -0x0p+0, -inf, 0x0p+0, DIVBYZERO) +// logd(-ve) is nan +T(RN, -0x1p-1074, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1022, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RN, -inf, nan, 0x0p+0, INVALID) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, 0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RD, -0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RD, 0x1.ffffffffffffcp-1, -0x1.0000000000002p-51, -0x1p+0, INEXACT) +T(RD, 0x1.ffffffffffffdp-1, -0x1.8000000000002p-52, -0x1.cp-1, INEXACT) +T(RD, 0x1.ffffffffffffep-1, -0x1.0000000000001p-52, -0x1p-1, INEXACT) +T(RD, 0x1.fffffffffffffp-1, -0x1.0000000000001p-53, -0x1.8p-1, INEXACT) +T(RD, 0x1.0000000000001p+0, 0x1.fffffffffffffp-53, -0x1.555554p-53, INEXACT) +T(RD, 0x1.0000000000002p+0, 0x1.ffffffffffffep-52, -0x1.555554p-51, INEXACT) +T(RD, 0x1.0000000000004p+0, 0x1.ffffffffffffcp-51, -0x1.555556p-49, INEXACT) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, -0x1p-1074, nan, 0x0p+0, INVALID) +T(RD, -0x1p-1073, nan, 0x0p+0, INVALID) +T(RD, -0x1.cp-1072, nan, 0x0p+0, INVALID) +T(RD, -0x1p-1024, nan, 0x0p+0, INVALID) +T(RD, -0x1p-1023, nan, 0x0p+0, INVALID) +T(RD,-0x1.ffffffffffffcp-1023, nan, 0x0p+0, INVALID) +T(RD,-0x1.ffffffffffffep-1023, nan, 0x0p+0, INVALID) +T(RD, -0x1p-1022, nan, 0x0p+0, INVALID) +T(RD,-0x1.0000000000001p-1022, nan, 0x0p+0, INVALID) +T(RD,-0x1.0000000000002p-1022, nan, 0x0p+0, INVALID) +T(RD, -0x1p-1021, nan, 0x0p+0, INVALID) +T(RD, -0x1p-1020, nan, 0x0p+0, INVALID) +T(RD, -0x1p-52, nan, 0x0p+0, INVALID) +T(RD, -0x1p-50, nan, 0x0p+0, INVALID) +T(RD, -0x1p-2, nan, 0x0p+0, INVALID) +T(RD, -0x1p-1, nan, 0x0p+0, INVALID) +T(RD, -0x1.ffffffffffffap-1, nan, 0x0p+0, INVALID) +T(RD, -0x1.ffffffffffffcp-1, nan, 0x0p+0, INVALID) +T(RD, -0x1.ffffffffffffep-1, nan, 0x0p+0, INVALID) +T(RD, -0x1.fffffffffffffp-1, nan, 0x0p+0, INVALID) +T(RD, -0x1p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1.0000000000004p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1p+1, nan, 0x0p+0, INVALID) +T(RD, -0x1.0000000000002p+1, nan, 0x0p+0, INVALID) +T(RD, -0x1.ffffffffffffbp+1, nan, 0x0p+0, INVALID) +T(RD, -0x1p+2, nan, 0x0p+0, INVALID) +T(RD, -0x1p+1022, nan, 0x0p+0, INVALID) +T(RD,-0x1.0000000000002p+1022, nan, 0x0p+0, INVALID) +T(RD,-0x1.0000000000004p+1022, nan, 0x0p+0, INVALID) +T(RD, -0x1p+1023, nan, 0x0p+0, INVALID) +T(RD,-0x1.0000000000002p+1023, nan, 0x0p+0, INVALID) +T(RD,-0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RD, -inf, nan, 0x0p+0, INVALID) +T(RD, 0x1.ffffffffffff7p-1, -0x1.2000000000003p-50, -0x1.ep-2, INEXACT) +T(RD, 0x1.ffffffffffff8p-1, -0x1.0000000000003p-50, -0x1p+0, INEXACT) +T(RD, 0x1.ffffffffffff9p-1, -0x1.c000000000004p-51, -0x1.ep-1, INEXACT) +T(RD, 0x1.ffffffffffffap-1, -0x1.8000000000003p-51, -0x1.8p-1, INEXACT) +T(RD, 0x1.ffffffffffffbp-1, -0x1.4000000000002p-51, -0x1.cp-2, INEXACT) +T(RD, 0x1.0000000000003p+0, 0x1.7fffffffffffdp-51, -0x1.8p-1, INEXACT) +T(RD, 0x1.0000000000005p+0, 0x1.3fffffffffffcp-50, -0x1.cp-1, INEXACT) +T(RD, 0x1.0000000000007p+0, 0x1.bfffffffffff9p-50, -0x1.cp-1, INEXACT) +T(RD, 0x1.0000000000008p+0, 0x1.ffffffffffff8p-50, -0x1.555556p-47, INEXACT) +T(RD, 0x1.0000000000009p+0, 0x1.1fffffffffffap-49, -0x1.ep-1, INEXACT) +T(RN, 0x1.ffffffffffff7p-1, -0x1.2000000000003p-50, -0x1.ep-2, INEXACT) +T(RN, 0x1.ffffffffffff8p-1, -0x1.0000000000002p-50, 0x1.555556p-50, INEXACT) +T(RN, 0x1.ffffffffffff9p-1, -0x1.c000000000003p-51, 0x1p-4, INEXACT) +T(RN, 0x1.ffffffffffffap-1, -0x1.8000000000002p-51, 0x1p-2, INEXACT) +T(RN, 0x1.ffffffffffffbp-1, -0x1.4000000000002p-51, -0x1.cp-2, INEXACT) +T(RN, 0x1.ffffffffffffcp-1, -0x1.0000000000001p-51, 0x1.555556p-52, INEXACT) +T(RN, 0x1.ffffffffffffdp-1, -0x1.8000000000001p-52, 0x1p-3, INEXACT) +T(RN, 0x1.fffffffffffffp-1, -0x1p-53, 0x1p-2, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.fffffffffffffp-53, -0x1.555554p-53, INEXACT) +T(RN, 0x1.0000000000002p+0, 0x1.ffffffffffffep-52, -0x1.555554p-51, INEXACT) +T(RN, 0x1.0000000000003p+0, 0x1.7fffffffffffep-51, 0x1p-2, INEXACT) +T(RN, 0x1.0000000000004p+0, 0x1.ffffffffffffcp-51, -0x1.555556p-49, INEXACT) +T(RN, 0x1.0000000000005p+0, 0x1.3fffffffffffdp-50, 0x1p-3, INEXACT) +T(RN, 0x1.0000000000007p+0, 0x1.bfffffffffffap-50, 0x1p-3, INEXACT) +T(RN, 0x1.0000000000008p+0, 0x1.ffffffffffff8p-50, -0x1.555556p-47, INEXACT) +T(RN, 0x1.0000000000009p+0, 0x1.1fffffffffffbp-49, 0x1p-4, INEXACT) +T(RN, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-1073, nan, 0x0p+0, INVALID) +T(RN, -0x1.cp-1072, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1024, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1023, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffcp-1023, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffep-1023, nan, 0x0p+0, INVALID) +T(RN,-0x1.0000000000001p-1022, nan, 0x0p+0, INVALID) +T(RN,-0x1.0000000000002p-1022, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1021, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1020, nan, 0x0p+0, INVALID) +T(RN, -0x1p-52, nan, 0x0p+0, INVALID) +T(RN, -0x1p-50, nan, 0x0p+0, INVALID) +T(RN, -0x1p-2, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.ffffffffffffap-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.ffffffffffffcp-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.ffffffffffffep-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.fffffffffffffp-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000004p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000002p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.ffffffffffffbp+1, nan, 0x0p+0, INVALID) +T(RN, -0x1p+2, nan, 0x0p+0, INVALID) +T(RN, -0x1p+1022, nan, 0x0p+0, INVALID) +T(RN,-0x1.0000000000002p+1022, nan, 0x0p+0, INVALID) +T(RN,-0x1.0000000000004p+1022, nan, 0x0p+0, INVALID) +T(RN, -0x1p+1023, nan, 0x0p+0, INVALID) +T(RN,-0x1.0000000000002p+1023, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, 0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RU, -0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RU, 0x1.ffffffffffffcp-1, -0x1.0000000000001p-51, 0x1.555554p-52, INEXACT) +T(RU, 0x1.ffffffffffffdp-1, -0x1.8000000000001p-52, 0x1p-3, INEXACT) +T(RU, 0x1.ffffffffffffep-1, -0x1p-52, 0x1p-1, INEXACT) +T(RU, 0x1.fffffffffffffp-1, -0x1p-53, 0x1p-2, INEXACT) +T(RU, 0x1.0000000000001p+0, 0x1p-52, 0x1p-1, INEXACT) +T(RU, 0x1.0000000000002p+0, 0x1.fffffffffffffp-52, 0x1p+0, INEXACT) +T(RU, 0x1.0000000000004p+0, 0x1.ffffffffffffdp-51, 0x1p+0, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, -0x1p-1074, nan, 0x0p+0, INVALID) +T(RU, -0x1p-1073, nan, 0x0p+0, INVALID) +T(RU, -0x1.cp-1072, nan, 0x0p+0, INVALID) +T(RU, -0x1p-1024, nan, 0x0p+0, INVALID) +T(RU, -0x1p-1023, nan, 0x0p+0, INVALID) +T(RU,-0x1.ffffffffffffcp-1023, nan, 0x0p+0, INVALID) +T(RU,-0x1.ffffffffffffep-1023, nan, 0x0p+0, INVALID) +T(RU, -0x1p-1022, nan, 0x0p+0, INVALID) +T(RU,-0x1.0000000000001p-1022, nan, 0x0p+0, INVALID) +T(RU,-0x1.0000000000002p-1022, nan, 0x0p+0, INVALID) +T(RU, -0x1p-1021, nan, 0x0p+0, INVALID) +T(RU, -0x1p-1020, nan, 0x0p+0, INVALID) +T(RU, -0x1p-52, nan, 0x0p+0, INVALID) +T(RU, -0x1p-50, nan, 0x0p+0, INVALID) +T(RU, -0x1p-2, nan, 0x0p+0, INVALID) +T(RU, -0x1p-1, nan, 0x0p+0, INVALID) +T(RU, -0x1.ffffffffffffap-1, nan, 0x0p+0, INVALID) +T(RU, -0x1.ffffffffffffcp-1, nan, 0x0p+0, INVALID) +T(RU, -0x1.ffffffffffffep-1, nan, 0x0p+0, INVALID) +T(RU, -0x1.fffffffffffffp-1, nan, 0x0p+0, INVALID) +T(RU, -0x1p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1.0000000000004p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1p+1, nan, 0x0p+0, INVALID) +T(RU, -0x1.0000000000002p+1, nan, 0x0p+0, INVALID) +T(RU, -0x1.ffffffffffffbp+1, nan, 0x0p+0, INVALID) +T(RU, -0x1p+2, nan, 0x0p+0, INVALID) +T(RU, -0x1p+1022, nan, 0x0p+0, INVALID) +T(RU,-0x1.0000000000002p+1022, nan, 0x0p+0, INVALID) +T(RU,-0x1.0000000000004p+1022, nan, 0x0p+0, INVALID) +T(RU, -0x1p+1023, nan, 0x0p+0, INVALID) +T(RU,-0x1.0000000000002p+1023, nan, 0x0p+0, INVALID) +T(RU,-0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RU, -inf, nan, 0x0p+0, INVALID) +T(RU, 0x1.ffffffffffff7p-1, -0x1.2000000000002p-50, 0x1.1p-1, INEXACT) +T(RU, 0x1.ffffffffffff8p-1, -0x1.0000000000002p-50, 0x1.555554p-50, INEXACT) +T(RU, 0x1.ffffffffffff9p-1, -0x1.c000000000003p-51, 0x1p-4, INEXACT) +T(RU, 0x1.ffffffffffffap-1, -0x1.8000000000002p-51, 0x1p-2, INEXACT) +T(RU, 0x1.ffffffffffffbp-1, -0x1.4000000000001p-51, 0x1.2p-1, INEXACT) +T(RU, 0x1.0000000000003p+0, 0x1.7fffffffffffep-51, 0x1p-2, INEXACT) +T(RU, 0x1.0000000000005p+0, 0x1.3fffffffffffdp-50, 0x1p-3, INEXACT) +T(RU, 0x1.0000000000007p+0, 0x1.bfffffffffffap-50, 0x1p-3, INEXACT) +T(RU, 0x1.0000000000008p+0, 0x1.ffffffffffff9p-50, 0x1p+0, INEXACT) +T(RU, 0x1.0000000000009p+0, 0x1.1fffffffffffbp-49, 0x1p-4, INEXACT) +T(RZ, inf, inf, 0x0p+0, 0) +T(RZ, 0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RZ, -0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RZ, 0x1.ffffffffffffcp-1, -0x1.0000000000001p-51, 0x1.555554p-52, INEXACT) +T(RZ, 0x1.ffffffffffffdp-1, -0x1.8000000000001p-52, 0x1p-3, INEXACT) +T(RZ, 0x1.ffffffffffffep-1, -0x1p-52, 0x1p-1, INEXACT) +T(RZ, 0x1.fffffffffffffp-1, -0x1p-53, 0x1p-2, INEXACT) +T(RZ, 0x1.0000000000001p+0, 0x1.fffffffffffffp-53, -0x1.555554p-53, INEXACT) +T(RZ, 0x1.0000000000002p+0, 0x1.ffffffffffffep-52, -0x1.555554p-51, INEXACT) +T(RZ, 0x1.0000000000004p+0, 0x1.ffffffffffffcp-51, -0x1.555556p-49, INEXACT) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, -0x1p-1074, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-1073, nan, 0x0p+0, INVALID) +T(RZ, -0x1.cp-1072, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-1024, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-1023, nan, 0x0p+0, INVALID) +T(RZ,-0x1.ffffffffffffcp-1023, nan, 0x0p+0, INVALID) +T(RZ,-0x1.ffffffffffffep-1023, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-1022, nan, 0x0p+0, INVALID) +T(RZ,-0x1.0000000000001p-1022, nan, 0x0p+0, INVALID) +T(RZ,-0x1.0000000000002p-1022, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-1021, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-1020, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-52, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-50, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-2, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.ffffffffffffap-1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.ffffffffffffcp-1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.ffffffffffffep-1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.fffffffffffffp-1, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1.0000000000004p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.0000000000002p+1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.ffffffffffffbp+1, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+2, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+1022, nan, 0x0p+0, INVALID) +T(RZ,-0x1.0000000000002p+1022, nan, 0x0p+0, INVALID) +T(RZ,-0x1.0000000000004p+1022, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+1023, nan, 0x0p+0, INVALID) +T(RZ,-0x1.0000000000002p+1023, nan, 0x0p+0, INVALID) +T(RZ,-0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RZ, -inf, nan, 0x0p+0, INVALID) +T(RZ, 0x1.ffffffffffff7p-1, -0x1.2000000000002p-50, 0x1.1p-1, INEXACT) +T(RZ, 0x1.ffffffffffff8p-1, -0x1.0000000000002p-50, 0x1.555554p-50, INEXACT) +T(RZ, 0x1.ffffffffffff9p-1, -0x1.c000000000003p-51, 0x1p-4, INEXACT) +T(RZ, 0x1.ffffffffffffap-1, -0x1.8000000000002p-51, 0x1p-2, INEXACT) +T(RZ, 0x1.ffffffffffffbp-1, -0x1.4000000000001p-51, 0x1.2p-1, INEXACT) +T(RZ, 0x1.0000000000003p+0, 0x1.7fffffffffffdp-51, -0x1.8p-1, INEXACT) +T(RZ, 0x1.0000000000005p+0, 0x1.3fffffffffffcp-50, -0x1.cp-1, INEXACT) +T(RZ, 0x1.0000000000007p+0, 0x1.bfffffffffff9p-50, -0x1.cp-1, INEXACT) +T(RZ, 0x1.0000000000008p+0, 0x1.ffffffffffff8p-50, -0x1.555556p-47, INEXACT) +T(RZ, 0x1.0000000000009p+0, 0x1.1fffffffffffap-49, -0x1.ep-1, INEXACT) diff --git a/test/musl/src/math/ucb/log10.h b/test/musl/src/math/ucb/log10.h new file mode 100644 index 00000000..9c9e339b --- /dev/null +++ b/test/musl/src/math/ucb/log10.h @@ -0,0 +1,277 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// log10d(+fmax) is finite +T(RN, 0x1.fffffffffffffp+1023, 0x1.34413509f79ffp+8, 0x1.a4b4bap-5, INEXACT) +T(RZ, 0x1.fffffffffffffp+1023, 0x1.34413509f79fep+8, -0x1.e5b4b4p-1, INEXACT) +T(RU, 0x1.fffffffffffffp+1023, 0x1.34413509f79ffp+8, 0x1.a4b4bap-5, INEXACT) +T(RD, 0x1.fffffffffffffp+1023, 0x1.34413509f79fep+8, -0x1.e5b4b4p-1, INEXACT) +// log10d(10**n) == n (n=1,...,22) +T(RN, 0x1.4p+3, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.9p+6, 0x1p+1, 0x0p+0, 0) +T(RN, 0x1.f4p+9, 0x1.8p+1, 0x0p+0, 0) +T(RN, 0x1.388p+13, 0x1p+2, 0x0p+0, 0) +T(RN, 0x1.86ap+16, 0x1.4p+2, 0x0p+0, 0) +T(RN, 0x1.e848p+19, 0x1.8p+2, 0x0p+0, 0) +T(RN, 0x1.312dp+23, 0x1.cp+2, 0x0p+0, 0) +T(RN, 0x1.7d784p+26, 0x1p+3, 0x0p+0, 0) +T(RN, 0x1.dcd65p+29, 0x1.2p+3, 0x0p+0, 0) +T(RN, 0x1.2a05f2p+33, 0x1.4p+3, 0x0p+0, 0) +T(RN, 0x1.74876e8p+36, 0x1.6p+3, 0x0p+0, 0) +T(RN, 0x1.d1a94a2p+39, 0x1.8p+3, 0x0p+0, 0) +T(RN, 0x1.2309ce54p+43, 0x1.ap+3, 0x0p+0, 0) +T(RN, 0x1.6bcc41e9p+46, 0x1.cp+3, 0x0p+0, 0) +T(RN, 0x1.c6bf52634p+49, 0x1.ep+3, 0x0p+0, 0) +T(RN, 0x1.1c37937e08p+53, 0x1p+4, 0x0p+0, 0) +T(RN, 0x1.6345785d8ap+56, 0x1.1p+4, 0x0p+0, 0) +T(RN, 0x1.bc16d674ec8p+59, 0x1.2p+4, 0x0p+0, 0) +T(RN, 0x1.158e460913dp+63, 0x1.3p+4, 0x0p+0, 0) +T(RN, 0x1.5af1d78b58c4p+66, 0x1.4p+4, 0x0p+0, 0) +T(RN, 0x1.b1ae4d6e2ef5p+69, 0x1.5p+4, 0x0p+0, 0) +T(RN, 0x1.0f0cf064dd592p+73, 0x1.6p+4, 0x0p+0, 0) +// log10d(1+tiny) is (tiny - tiny*tiny)/log10d +T(RN, 0x1.000000000002p+0, 0x1.bcb7b1526e4f2p-49, -0x1.9cae5ap-2, INEXACT) +T(RN, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.fffffffffffcp-1, -0x1.bcb7b1526e52ap-49, -0x1.de3f64p-8, INEXACT) +T(RZ, 0x1.000000000002p+0, 0x1.bcb7b1526e4f2p-49, -0x1.9cae5ap-2, INEXACT) +T(RZ, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffcp-1, -0x1.bcb7b1526e529p-49, 0x1.fc4382p-1, INEXACT) +T(RU, 0x1.000000000002p+0, 0x1.bcb7b1526e4f3p-49, 0x1.31a8d4p-1, INEXACT) +T(RU, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.fffffffffffcp-1, -0x1.bcb7b1526e529p-49, 0x1.fc4382p-1, INEXACT) +T(RD, 0x1.000000000002p+0, 0x1.bcb7b1526e4f2p-49, -0x1.9cae5ap-2, INEXACT) +T(RD, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.fffffffffffcp-1, -0x1.bcb7b1526e52ap-49, -0x1.de3f64p-8, INEXACT) +// log10d(min) is finite +T(RN, 0x1p-1022, -0x1.33a7146f72a42p+8, -0x1.8cf2fap-5, INEXACT) +T(RN, 0x1p-1074, -0x1.434e6420f4374p+8, -0x1.a0fae8p-4, INEXACT) +T(RZ, 0x1p-1022, -0x1.33a7146f72a41p+8, 0x1.e730dp-1, INEXACT) +T(RZ, 0x1p-1074, -0x1.434e6420f4373p+8, 0x1.cbe0a2p-1, INEXACT) +T(RU, 0x1p-1022, -0x1.33a7146f72a41p+8, 0x1.e730dp-1, INEXACT) +T(RU, 0x1p-1074, -0x1.434e6420f4373p+8, 0x1.cbe0a2p-1, INEXACT) +T(RD, 0x1p-1022, -0x1.33a7146f72a42p+8, -0x1.8cf2fap-5, INEXACT) +T(RD, 0x1p-1074, -0x1.434e6420f4374p+8, -0x1.a0fae8p-4, INEXACT) +// random arguments between 0 100 +T(RN, 0x1.24844b2b5006dp+5, 0x1.9024c06a2c714p+0, 0x1.aef3p-2, INEXACT) +T(RN, 0x1.5671ffb825911p+6, 0x1.eeba5ddb56f6dp+0, -0x1.9e833ep-7, INEXACT) +T(RN, 0x1.7817009de7505p+6, 0x1.f925b53114c7fp+0, 0x1.a6fc5ep-3, INEXACT) +T(RN, 0x1.09b74fba96889p+4, 0x1.38657024f572dp+0, 0x1.e4ad62p-2, INEXACT) +T(RN, 0x1.23a38e27084ddp+5, 0x1.8fcf347689cf5p+0, 0x1.5d3c72p-2, INEXACT) +T(RN, 0x1.804881b093c41p+5, 0x1.ae7acf90f48a1p+0, 0x1.e587b8p-4, INEXACT) +T(RN, 0x1.3baa8d18455f5p+6, 0x1.e5accf34b476ap+0, 0x1.554422p-3, INEXACT) +T(RN, 0x1.730484a51b239p+6, 0x1.f7a33d27f78e2p+0, 0x1.291502p-2, INEXACT) +T(RN, 0x1.4cc5b1079de4dp+5, 0x1.9e7a86923a334p+0, -0x1.b9e4c4p-5, INEXACT) +T(RN, 0x1.0ca4d3103b871p+1, 0x1.49b1b2a6745efp-2, 0x1.b949bep-2, INEXACT) +// log10d(nan) is nan +T(RN, nan, nan, 0x0p+0, 0) +// log10d(+inf) is inf +T(RN, inf, inf, 0x0p+0, 0) +// log10d(+-0) is -inf +T(RN, 0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RN, -0x0p+0, -inf, 0x0p+0, DIVBYZERO) +// log10d(-ve) is nan +T(RN, -0x1p-1074, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1022, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RN, -inf, nan, 0x0p+0, INVALID) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, 0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RD, -0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, -0x1p-1074, nan, 0x0p+0, INVALID) +T(RD, -0x1p-1073, nan, 0x0p+0, INVALID) +T(RD, -0x1.cp-1072, nan, 0x0p+0, INVALID) +T(RD, -0x1p-1024, nan, 0x0p+0, INVALID) +T(RD, -0x1p-1023, nan, 0x0p+0, INVALID) +T(RD,-0x1.ffffffffffffcp-1023, nan, 0x0p+0, INVALID) +T(RD,-0x1.ffffffffffffep-1023, nan, 0x0p+0, INVALID) +T(RD, -0x1p-1022, nan, 0x0p+0, INVALID) +T(RD,-0x1.0000000000001p-1022, nan, 0x0p+0, INVALID) +T(RD,-0x1.0000000000002p-1022, nan, 0x0p+0, INVALID) +T(RD, -0x1p-1021, nan, 0x0p+0, INVALID) +T(RD, -0x1p-1020, nan, 0x0p+0, INVALID) +T(RD, -0x1p-52, nan, 0x0p+0, INVALID) +T(RD, -0x1p-50, nan, 0x0p+0, INVALID) +T(RD, -0x1p-2, nan, 0x0p+0, INVALID) +T(RD, -0x1p-1, nan, 0x0p+0, INVALID) +T(RD, -0x1.ffffffffffffap-1, nan, 0x0p+0, INVALID) +T(RD, -0x1.ffffffffffffcp-1, nan, 0x0p+0, INVALID) +T(RD, -0x1.ffffffffffffep-1, nan, 0x0p+0, INVALID) +T(RD, -0x1.fffffffffffffp-1, nan, 0x0p+0, INVALID) +T(RD, -0x1p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1.0000000000004p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1p+1, nan, 0x0p+0, INVALID) +T(RD, -0x1.0000000000002p+1, nan, 0x0p+0, INVALID) +T(RD, -0x1.ffffffffffffbp+1, nan, 0x0p+0, INVALID) +T(RD, -0x1p+2, nan, 0x0p+0, INVALID) +T(RD, -0x1p+1022, nan, 0x0p+0, INVALID) +T(RD,-0x1.0000000000002p+1022, nan, 0x0p+0, INVALID) +T(RD,-0x1.0000000000004p+1022, nan, 0x0p+0, INVALID) +T(RD, -0x1p+1023, nan, 0x0p+0, INVALID) +T(RD,-0x1.0000000000002p+1023, nan, 0x0p+0, INVALID) +T(RD,-0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RD, -inf, nan, 0x0p+0, INVALID) +T(RD, 0x1.4p+3, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1.9p+6, 0x1p+1, 0x0p+0, 0) +T(RD, 0x1.f4p+9, 0x1.8p+1, 0x0p+0, 0) +T(RD, 0x1.388p+13, 0x1p+2, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-1073, nan, 0x0p+0, INVALID) +T(RN, -0x1.cp-1072, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1024, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1023, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffcp-1023, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffep-1023, nan, 0x0p+0, INVALID) +T(RN,-0x1.0000000000001p-1022, nan, 0x0p+0, INVALID) +T(RN,-0x1.0000000000002p-1022, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1021, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1020, nan, 0x0p+0, INVALID) +T(RN, -0x1p-52, nan, 0x0p+0, INVALID) +T(RN, -0x1p-50, nan, 0x0p+0, INVALID) +T(RN, -0x1p-2, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.ffffffffffffap-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.ffffffffffffcp-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.ffffffffffffep-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.fffffffffffffp-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000004p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000002p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.ffffffffffffbp+1, nan, 0x0p+0, INVALID) +T(RN, -0x1p+2, nan, 0x0p+0, INVALID) +T(RN, -0x1p+1022, nan, 0x0p+0, INVALID) +T(RN,-0x1.0000000000002p+1022, nan, 0x0p+0, INVALID) +T(RN,-0x1.0000000000004p+1022, nan, 0x0p+0, INVALID) +T(RN, -0x1p+1023, nan, 0x0p+0, INVALID) +T(RN,-0x1.0000000000002p+1023, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, 0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RU, -0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, -0x1p-1074, nan, 0x0p+0, INVALID) +T(RU, -0x1p-1073, nan, 0x0p+0, INVALID) +T(RU, -0x1.cp-1072, nan, 0x0p+0, INVALID) +T(RU, -0x1p-1024, nan, 0x0p+0, INVALID) +T(RU, -0x1p-1023, nan, 0x0p+0, INVALID) +T(RU,-0x1.ffffffffffffcp-1023, nan, 0x0p+0, INVALID) +T(RU,-0x1.ffffffffffffep-1023, nan, 0x0p+0, INVALID) +T(RU, -0x1p-1022, nan, 0x0p+0, INVALID) +T(RU,-0x1.0000000000001p-1022, nan, 0x0p+0, INVALID) +T(RU,-0x1.0000000000002p-1022, nan, 0x0p+0, INVALID) +T(RU, -0x1p-1021, nan, 0x0p+0, INVALID) +T(RU, -0x1p-1020, nan, 0x0p+0, INVALID) +T(RU, -0x1p-52, nan, 0x0p+0, INVALID) +T(RU, -0x1p-50, nan, 0x0p+0, INVALID) +T(RU, -0x1p-2, nan, 0x0p+0, INVALID) +T(RU, -0x1p-1, nan, 0x0p+0, INVALID) +T(RU, -0x1.ffffffffffffap-1, nan, 0x0p+0, INVALID) +T(RU, -0x1.ffffffffffffcp-1, nan, 0x0p+0, INVALID) +T(RU, -0x1.ffffffffffffep-1, nan, 0x0p+0, INVALID) +T(RU, -0x1.fffffffffffffp-1, nan, 0x0p+0, INVALID) +T(RU, -0x1p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1.0000000000004p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1p+1, nan, 0x0p+0, INVALID) +T(RU, -0x1.0000000000002p+1, nan, 0x0p+0, INVALID) +T(RU, -0x1.ffffffffffffbp+1, nan, 0x0p+0, INVALID) +T(RU, -0x1p+2, nan, 0x0p+0, INVALID) +T(RU, -0x1p+1022, nan, 0x0p+0, INVALID) +T(RU,-0x1.0000000000002p+1022, nan, 0x0p+0, INVALID) +T(RU,-0x1.0000000000004p+1022, nan, 0x0p+0, INVALID) +T(RU, -0x1p+1023, nan, 0x0p+0, INVALID) +T(RU,-0x1.0000000000002p+1023, nan, 0x0p+0, INVALID) +T(RU,-0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RU, -inf, nan, 0x0p+0, INVALID) +T(RU, 0x1.4p+3, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1.9p+6, 0x1p+1, 0x0p+0, 0) +T(RU, 0x1.f4p+9, 0x1.8p+1, 0x0p+0, 0) +T(RU, 0x1.388p+13, 0x1p+2, 0x0p+0, 0) +T(RZ, inf, inf, 0x0p+0, 0) +T(RZ, 0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RZ, -0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, -0x1p-1074, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-1073, nan, 0x0p+0, INVALID) +T(RZ, -0x1.cp-1072, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-1024, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-1023, nan, 0x0p+0, INVALID) +T(RZ,-0x1.ffffffffffffcp-1023, nan, 0x0p+0, INVALID) +T(RZ,-0x1.ffffffffffffep-1023, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-1022, nan, 0x0p+0, INVALID) +T(RZ,-0x1.0000000000001p-1022, nan, 0x0p+0, INVALID) +T(RZ,-0x1.0000000000002p-1022, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-1021, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-1020, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-52, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-50, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-2, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.ffffffffffffap-1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.ffffffffffffcp-1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.ffffffffffffep-1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.fffffffffffffp-1, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1.0000000000002p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1.0000000000004p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.0000000000002p+1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.ffffffffffffbp+1, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+2, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+1022, nan, 0x0p+0, INVALID) +T(RZ,-0x1.0000000000002p+1022, nan, 0x0p+0, INVALID) +T(RZ,-0x1.0000000000004p+1022, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+1023, nan, 0x0p+0, INVALID) +T(RZ,-0x1.0000000000002p+1023, nan, 0x0p+0, INVALID) +T(RZ,-0x1.ffffffffffffep+1023, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffffffffffp+1023, nan, 0x0p+0, INVALID) +T(RZ, -inf, nan, 0x0p+0, INVALID) +T(RZ, 0x1.4p+3, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1.9p+6, 0x1p+1, 0x0p+0, 0) +T(RZ, 0x1.f4p+9, 0x1.8p+1, 0x0p+0, 0) +T(RZ, 0x1.388p+13, 0x1p+2, 0x0p+0, 0) diff --git a/test/musl/src/math/ucb/log10f.h b/test/musl/src/math/ucb/log10f.h new file mode 100644 index 00000000..bce0d7c7 --- /dev/null +++ b/test/musl/src/math/ucb/log10f.h @@ -0,0 +1,265 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// log10s(+fmax) is finite +T(RN, 0x1.fffffep+127, 0x1.344136p+5, 0x1.f3039ep-2, INEXACT) +T(RZ, 0x1.fffffep+127, 0x1.344134p+5, -0x1.067e3p-1, INEXACT) +T(RU, 0x1.fffffep+127, 0x1.344136p+5, 0x1.f3039ep-2, INEXACT) +T(RD, 0x1.fffffep+127, 0x1.344134p+5, -0x1.067e3p-1, INEXACT) +// log10s(10**n) == n (n=1,...,10) +T(RN, 0x1.4p+3, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.9p+6, 0x1p+1, 0x0p+0, 0) +T(RN, 0x1.f4p+9, 0x1.8p+1, 0x0p+0, 0) +T(RN, 0x1.388p+13, 0x1p+2, 0x0p+0, 0) +T(RN, 0x1.86ap+16, 0x1.4p+2, 0x0p+0, 0) +T(RN, 0x1.e848p+19, 0x1.8p+2, 0x0p+0, 0) +T(RN, 0x1.312dp+23, 0x1.cp+2, 0x0p+0, 0) +T(RN, 0x1.7d784p+26, 0x1p+3, 0x0p+0, 0) +T(RN, 0x1.dcd65p+29, 0x1.2p+3, 0x0p+0, 0) +T(RN, 0x1.2a05f2p+33, 0x1.4p+3, 0x0p+0, 0) +// log10s(1+tiny) is (tiny - tiny*tiny)/log10 +T(RN, 0x1.00004p+0, 0x1.bcb77ap-20, 0x1.11fa56p-3, INEXACT) +T(RN, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.ffff8p-1, -0x1.bcb7e8p-20, 0x1.d2db7ep-2, INEXACT) +T(RZ, 0x1.00004p+0, 0x1.bcb778p-20, -0x1.bb816ap-1, INEXACT) +T(RZ, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.ffff8p-1, -0x1.bcb7e8p-20, 0x1.d2db7ep-2, INEXACT) +T(RU, 0x1.00004p+0, 0x1.bcb77ap-20, 0x1.11fa56p-3, INEXACT) +T(RU, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.ffff8p-1, -0x1.bcb7e8p-20, 0x1.d2db7ep-2, INEXACT) +T(RD, 0x1.00004p+0, 0x1.bcb778p-20, -0x1.bb816ap-1, INEXACT) +T(RD, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.ffff8p-1, -0x1.bcb7eap-20, -0x1.16924p-1, INEXACT) +// log10s(min) is finite +T(RN, 0x1p-126, -0x1.2f703p+5, 0x1.ae7e0cp-4, INEXACT) +T(RN, 0x1p-149, -0x1.66d3e8p+5, -0x1.0997p-3, INEXACT) +T(RZ, 0x1p-126, -0x1.2f703p+5, 0x1.ae7e0cp-4, INEXACT) +T(RZ, 0x1p-149, -0x1.66d3e6p+5, 0x1.bd9a4p-1, INEXACT) +T(RU, 0x1p-126, -0x1.2f703p+5, 0x1.ae7e0cp-4, INEXACT) +T(RU, 0x1p-149, -0x1.66d3e6p+5, 0x1.bd9a4p-1, INEXACT) +T(RD, 0x1p-126, -0x1.2f7032p+5, -0x1.ca303ep-1, INEXACT) +T(RD, 0x1p-149, -0x1.66d3e8p+5, -0x1.0997p-3, INEXACT) +// random arguments between 0 100 +T(RN, 0x1.24844cp+5, 0x1.9024cp+0, -0x1.7605eap-2, INEXACT) +T(RN, 0x1.5672p+6, 0x1.eeba5ep+0, 0x1.aaa14cp-6, INEXACT) +T(RN, 0x1.7817p+6, 0x1.f925b6p+0, 0x1.fb3242p-2, INEXACT) +T(RN, 0x1.09b75p+4, 0x1.38657p+0, -0x1.0801cap-3, INEXACT) +T(RN, 0x1.23a38ep+5, 0x1.8fcf34p+0, -0x1.9ea21p-3, INEXACT) +T(RN, 0x1.804882p+5, 0x1.ae7adp+0, 0x1.60441p-3, INEXACT) +T(RN, 0x1.3baa8ep+6, 0x1.e5acdp+0, 0x1.e6b71ep-3, INEXACT) +T(RN, 0x1.730484p+6, 0x1.f7a33cp+0, -0x1.ecfb84p-2, INEXACT) +T(RN, 0x1.4cc5b2p+5, 0x1.9e7a86p+0, -0x1.ca6cb4p-2, INEXACT) +T(RN, 0x1.0ca4d4p+1, 0x1.49b1b4p-2, -0x1.9af518p-4, INEXACT) +// log10s(nan) is nan +T(RN, nan, nan, 0x0p+0, 0) +// log10s(+inf) is inf +T(RN, inf, inf, 0x0p+0, 0) +// log10s(+-0) is -inf +T(RN, 0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RN, -0x0p+0, -inf, 0x0p+0, DIVBYZERO) +// log10s(-ve) is nan +T(RN, -0x1p-149, nan, 0x0p+0, INVALID) +T(RN, -0x1p-126, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RN, -inf, nan, 0x0p+0, INVALID) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, 0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RD, -0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, -0x1p-149, nan, 0x0p+0, INVALID) +T(RD, -0x1p-148, nan, 0x0p+0, INVALID) +T(RD, -0x1.cp-147, nan, 0x0p+0, INVALID) +T(RD, -0x1p-128, nan, 0x0p+0, INVALID) +T(RD, -0x1p-127, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffff8p-127, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffcp-127, nan, 0x0p+0, INVALID) +T(RD, -0x1p-126, nan, 0x0p+0, INVALID) +T(RD,-0x1.000002p-126, nan, 0x0p+0, INVALID) +T(RD,-0x1.000004p-126, nan, 0x0p+0, INVALID) +T(RD, -0x1p-125, nan, 0x0p+0, INVALID) +T(RD, -0x1p-124, nan, 0x0p+0, INVALID) +T(RD, -0x1p-23, nan, 0x0p+0, INVALID) +T(RD, -0x1p-21, nan, 0x0p+0, INVALID) +T(RD, -0x1p-2, nan, 0x0p+0, INVALID) +T(RD, -0x1p-1, nan, 0x0p+0, INVALID) +T(RD, -0x1.fffff4p-1, nan, 0x0p+0, INVALID) +T(RD, -0x1.fffff8p-1, nan, 0x0p+0, INVALID) +T(RD, -0x1.fffffcp-1, nan, 0x0p+0, INVALID) +T(RD, -0x1.fffffep-1, nan, 0x0p+0, INVALID) +T(RD, -0x1p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1.000008p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1p+1, nan, 0x0p+0, INVALID) +T(RD, -0x1.000004p+1, nan, 0x0p+0, INVALID) +T(RD, -0x1.fffff6p+1, nan, 0x0p+0, INVALID) +T(RD, -0x1p+2, nan, 0x0p+0, INVALID) +T(RD, -0x1p+126, nan, 0x0p+0, INVALID) +T(RD,-0x1.000004p+126, nan, 0x0p+0, INVALID) +T(RD,-0x1.000008p+126, nan, 0x0p+0, INVALID) +T(RD, -0x1p+127, nan, 0x0p+0, INVALID) +T(RD,-0x1.000004p+127, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RD, -inf, nan, 0x0p+0, INVALID) +T(RD, 0x1.4p+3, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1.9p+6, 0x1p+1, 0x0p+0, 0) +T(RD, 0x1.f4p+9, 0x1.8p+1, 0x0p+0, 0) +T(RD, 0x1.388p+13, 0x1p+2, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-148, nan, 0x0p+0, INVALID) +T(RN, -0x1.cp-147, nan, 0x0p+0, INVALID) +T(RN, -0x1p-128, nan, 0x0p+0, INVALID) +T(RN, -0x1p-127, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffff8p-127, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffcp-127, nan, 0x0p+0, INVALID) +T(RN,-0x1.000002p-126, nan, 0x0p+0, INVALID) +T(RN,-0x1.000004p-126, nan, 0x0p+0, INVALID) +T(RN, -0x1p-125, nan, 0x0p+0, INVALID) +T(RN, -0x1p-124, nan, 0x0p+0, INVALID) +T(RN, -0x1p-23, nan, 0x0p+0, INVALID) +T(RN, -0x1p-21, nan, 0x0p+0, INVALID) +T(RN, -0x1p-2, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.fffff4p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.fffff8p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.fffffcp-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.fffffep-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.000008p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000004p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.fffff6p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1p+2, nan, 0x0p+0, INVALID) +T(RN, -0x1p+126, nan, 0x0p+0, INVALID) +T(RN,-0x1.000004p+126, nan, 0x0p+0, INVALID) +T(RN,-0x1.000008p+126, nan, 0x0p+0, INVALID) +T(RN, -0x1p+127, nan, 0x0p+0, INVALID) +T(RN,-0x1.000004p+127, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, 0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RU, -0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, -0x1p-149, nan, 0x0p+0, INVALID) +T(RU, -0x1p-148, nan, 0x0p+0, INVALID) +T(RU, -0x1.cp-147, nan, 0x0p+0, INVALID) +T(RU, -0x1p-128, nan, 0x0p+0, INVALID) +T(RU, -0x1p-127, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffff8p-127, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffcp-127, nan, 0x0p+0, INVALID) +T(RU, -0x1p-126, nan, 0x0p+0, INVALID) +T(RU,-0x1.000002p-126, nan, 0x0p+0, INVALID) +T(RU,-0x1.000004p-126, nan, 0x0p+0, INVALID) +T(RU, -0x1p-125, nan, 0x0p+0, INVALID) +T(RU, -0x1p-124, nan, 0x0p+0, INVALID) +T(RU, -0x1p-23, nan, 0x0p+0, INVALID) +T(RU, -0x1p-21, nan, 0x0p+0, INVALID) +T(RU, -0x1p-2, nan, 0x0p+0, INVALID) +T(RU, -0x1p-1, nan, 0x0p+0, INVALID) +T(RU, -0x1.fffff4p-1, nan, 0x0p+0, INVALID) +T(RU, -0x1.fffff8p-1, nan, 0x0p+0, INVALID) +T(RU, -0x1.fffffcp-1, nan, 0x0p+0, INVALID) +T(RU, -0x1.fffffep-1, nan, 0x0p+0, INVALID) +T(RU, -0x1p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1.000008p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1p+1, nan, 0x0p+0, INVALID) +T(RU, -0x1.000004p+1, nan, 0x0p+0, INVALID) +T(RU, -0x1.fffff6p+1, nan, 0x0p+0, INVALID) +T(RU, -0x1p+2, nan, 0x0p+0, INVALID) +T(RU, -0x1p+126, nan, 0x0p+0, INVALID) +T(RU,-0x1.000004p+126, nan, 0x0p+0, INVALID) +T(RU,-0x1.000008p+126, nan, 0x0p+0, INVALID) +T(RU, -0x1p+127, nan, 0x0p+0, INVALID) +T(RU,-0x1.000004p+127, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RU, -inf, nan, 0x0p+0, INVALID) +T(RU, 0x1.4p+3, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1.9p+6, 0x1p+1, 0x0p+0, 0) +T(RU, 0x1.f4p+9, 0x1.8p+1, 0x0p+0, 0) +T(RU, 0x1.388p+13, 0x1p+2, 0x0p+0, 0) +T(RZ, inf, inf, 0x0p+0, 0) +T(RZ, 0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RZ, -0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, -0x1p-149, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-148, nan, 0x0p+0, INVALID) +T(RZ, -0x1.cp-147, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-128, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-127, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffff8p-127, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffcp-127, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-126, nan, 0x0p+0, INVALID) +T(RZ,-0x1.000002p-126, nan, 0x0p+0, INVALID) +T(RZ,-0x1.000004p-126, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-125, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-124, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-23, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-21, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-2, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.fffff4p-1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.fffff8p-1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.fffffcp-1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.fffffep-1, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1.000008p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.000004p+1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.fffff6p+1, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+2, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+126, nan, 0x0p+0, INVALID) +T(RZ,-0x1.000004p+126, nan, 0x0p+0, INVALID) +T(RZ,-0x1.000008p+126, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+127, nan, 0x0p+0, INVALID) +T(RZ,-0x1.000004p+127, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RZ, -inf, nan, 0x0p+0, INVALID) +T(RZ, 0x1.4p+3, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1.9p+6, 0x1p+1, 0x0p+0, 0) +T(RZ, 0x1.f4p+9, 0x1.8p+1, 0x0p+0, 0) +T(RZ, 0x1.388p+13, 0x1p+2, 0x0p+0, 0) diff --git a/test/musl/src/math/ucb/logf.h b/test/musl/src/math/ucb/logf.h new file mode 100644 index 00000000..690a1e8f --- /dev/null +++ b/test/musl/src/math/ucb/logf.h @@ -0,0 +1,310 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// logs(+fmax) is finite +T(RN, 0x1.fffffep+127, 0x1.62e43p+6, 0x1.45c61p-5, INEXACT) +T(RZ, 0x1.fffffep+127, 0x1.62e42ep+6, -0x1.eba39ep-1, INEXACT) +T(RU, 0x1.fffffep+127, 0x1.62e43p+6, 0x1.45c61p-5, INEXACT) +T(RD, 0x1.fffffep+127, 0x1.62e42ep+6, -0x1.eba39ep-1, INEXACT) +// logs(1+tiny) is tiny - tiny*tiny/2 +T(RN, 0x1.00004p+0, 0x1.ffffcp-19, -0x1.555516p-14, INEXACT) +T(RN, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.ffff8p-1, -0x1.00002p-18, 0x1.555596p-15, INEXACT) +T(RZ, 0x1.00004p+0, 0x1.ffffcp-19, -0x1.555516p-14, INEXACT) +T(RZ, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.ffff8p-1, -0x1.00002p-18, 0x1.555596p-15, INEXACT) +T(RU, 0x1.00004p+0, 0x1.ffffc2p-19, 0x1.fff556p-1, INEXACT) +T(RU, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.ffff8p-1, -0x1.00002p-18, 0x1.555596p-15, INEXACT) +T(RD, 0x1.00004p+0, 0x1.ffffcp-19, -0x1.555516p-14, INEXACT) +T(RD, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.ffff8p-1, -0x1.000022p-18, -0x1.fffaaap-1, INEXACT) +// logs(min) is finite +T(RN, 0x1p-126, -0x1.5d58ap+6, -0x1.a035ep-2, INEXACT) +T(RN, 0x1p-149, -0x1.9d1dap+6, -0x1.985c48p-4, INEXACT) +T(RZ, 0x1p-126, -0x1.5d589ep+6, 0x1.2fe51p-1, INEXACT) +T(RZ, 0x1p-149, -0x1.9d1d9ep+6, 0x1.ccf478p-1, INEXACT) +T(RU, 0x1p-126, -0x1.5d589ep+6, 0x1.2fe51p-1, INEXACT) +T(RU, 0x1p-149, -0x1.9d1d9ep+6, 0x1.ccf478p-1, INEXACT) +T(RD, 0x1p-126, -0x1.5d58ap+6, -0x1.a035ep-2, INEXACT) +T(RD, 0x1p-149, -0x1.9d1dap+6, -0x1.985c48p-4, INEXACT) +// random arguments between 0 100 +T(RN, 0x1.24844cp+5, 0x1.ccaeacp+1, 0x1.df05ep-3, INEXACT) +T(RN, 0x1.5672p+6, 0x1.1cc9dp+2, 0x1.8401eap-4, INEXACT) +T(RN, 0x1.7817p+6, 0x1.22c942p+2, 0x1.b6c83cp-3, INEXACT) +T(RN, 0x1.09b75p+4, 0x1.67a8d2p+1, -0x1.b8338cp-2, INEXACT) +T(RN, 0x1.23a38ep+5, 0x1.cc4c2ep+1, 0x1.3204fap-4, INEXACT) +T(RN, 0x1.804882p+5, 0x1.ef9bacp+1, -0x1.a5066ap-2, INEXACT) +T(RN, 0x1.3baa8ep+6, 0x1.1793b8p+2, -0x1.63d432p-5, INEXACT) +T(RN, 0x1.730484p+6, 0x1.21eacap+2, 0x1.30ap-2, INEXACT) +T(RN, 0x1.4cc5b2p+5, 0x1.dd2fa8p+1, 0x1.5c009p-2, INEXACT) +T(RN, 0x1.0ca4d4p+1, 0x1.7b930ep-1, 0x1.0ebe34p-2, INEXACT) +// logs(nan) is nan +T(RN, nan, nan, 0x0p+0, 0) +// logs(+inf) is inf +T(RN, inf, inf, 0x0p+0, 0) +// logs(+-0) is -inf +T(RN, 0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RN, -0x0p+0, -inf, 0x0p+0, DIVBYZERO) +// logs(-ve) is nan +T(RN, -0x1p-149, nan, 0x0p+0, INVALID) +T(RN, -0x1p-126, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RN, -inf, nan, 0x0p+0, INVALID) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, 0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RD, -0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RD, 0x1.fffffap-1, -0x1.800004p-23, -0x1.bffffcp-1, INEXACT) +T(RD, 0x1.fffffcp-1, -0x1.000002p-23, -0x1.fffffep-2, INEXACT) +T(RD, 0x1.fffffep-1, -0x1.000002p-24, -0x1.8p-1, INEXACT) +T(RD, 0x1.000002p+0, 0x1.fffffep-24, -0x1.555554p-24, INEXACT) +T(RD, 0x1.000004p+0, 0x1.fffffcp-23, -0x1.555552p-22, INEXACT) +T(RD, 0x1.000008p+0, 0x1.fffff8p-22, -0x1.55554ep-20, INEXACT) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, -0x1p-149, nan, 0x0p+0, INVALID) +T(RD, -0x1p-148, nan, 0x0p+0, INVALID) +T(RD, -0x1.cp-147, nan, 0x0p+0, INVALID) +T(RD, -0x1p-128, nan, 0x0p+0, INVALID) +T(RD, -0x1p-127, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffff8p-127, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffcp-127, nan, 0x0p+0, INVALID) +T(RD, -0x1p-126, nan, 0x0p+0, INVALID) +T(RD,-0x1.000002p-126, nan, 0x0p+0, INVALID) +T(RD,-0x1.000004p-126, nan, 0x0p+0, INVALID) +T(RD, -0x1p-125, nan, 0x0p+0, INVALID) +T(RD, -0x1p-124, nan, 0x0p+0, INVALID) +T(RD, -0x1p-23, nan, 0x0p+0, INVALID) +T(RD, -0x1p-21, nan, 0x0p+0, INVALID) +T(RD, -0x1p-2, nan, 0x0p+0, INVALID) +T(RD, -0x1p-1, nan, 0x0p+0, INVALID) +T(RD, -0x1.fffff4p-1, nan, 0x0p+0, INVALID) +T(RD, -0x1.fffff8p-1, nan, 0x0p+0, INVALID) +T(RD, -0x1.fffffcp-1, nan, 0x0p+0, INVALID) +T(RD, -0x1.fffffep-1, nan, 0x0p+0, INVALID) +T(RD, -0x1p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1.000008p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1p+1, nan, 0x0p+0, INVALID) +T(RD, -0x1.000004p+1, nan, 0x0p+0, INVALID) +T(RD, -0x1.fffff6p+1, nan, 0x0p+0, INVALID) +T(RD, -0x1p+2, nan, 0x0p+0, INVALID) +T(RD, -0x1p+126, nan, 0x0p+0, INVALID) +T(RD,-0x1.000004p+126, nan, 0x0p+0, INVALID) +T(RD,-0x1.000008p+126, nan, 0x0p+0, INVALID) +T(RD, -0x1p+127, nan, 0x0p+0, INVALID) +T(RD,-0x1.000004p+127, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RD, -inf, nan, 0x0p+0, INVALID) +T(RD, 0x1.ffffeep-1, -0x1.200006p-21, -0x1.dfffc4p-2, INEXACT) +T(RD, 0x1.fffffp-1, -0x1.000006p-21, -0x1.ffffeap-1, INEXACT) +T(RD, 0x1.fffff2p-1, -0x1.c00008p-22, -0x1.dfffe4p-1, INEXACT) +T(RD, 0x1.fffff4p-1, -0x1.800006p-22, -0x1.7fffeep-1, INEXACT) +T(RD, 0x1.fffff6p-1, -0x1.400004p-22, -0x1.bfffecp-2, INEXACT) +T(RD, 0x1.fffff8p-1, -0x1.000004p-22, -0x1.fffffap-1, INEXACT) +T(RD, 0x1.fffff8p-1, -0x1.000004p-22, -0x1.fffffap-1, INEXACT) +T(RD, 0x1.000006p+0, 0x1.7ffffap-22, -0x1.800012p-1, INEXACT) +T(RD, 0x1.00000ap+0, 0x1.3ffff8p-21, -0x1.c0002ap-1, INEXACT) +T(RD, 0x1.00000ep+0, 0x1.bffff2p-21, -0x1.c00072p-1, INEXACT) +T(RD, 0x1.00001p+0, 0x1.fffffp-21, -0x1.555546p-18, INEXACT) +T(RD, 0x1.000012p+0, 0x1.1ffff4p-20, -0x1.e0007ap-1, INEXACT) +T(RN, 0x1.ffffeep-1, -0x1.200006p-21, -0x1.dfffc4p-2, INEXACT) +T(RN, 0x1.fffffp-1, -0x1.000004p-21, 0x1.55555ep-21, INEXACT) +T(RN, 0x1.fffff2p-1, -0x1.c00006p-22, 0x1.0000e4p-4, INEXACT) +T(RN, 0x1.fffff4p-1, -0x1.800004p-22, 0x1.000024p-2, INEXACT) +T(RN, 0x1.fffff6p-1, -0x1.400004p-22, -0x1.bfffecp-2, INEXACT) +T(RN, 0x1.fffff8p-1, -0x1.000002p-22, 0x1.55555ap-23, INEXACT) +T(RN, 0x1.fffffap-1, -0x1.800002p-23, 0x1.000012p-3, INEXACT) +T(RN, 0x1.fffffep-1, -0x1p-24, 0x1p-2, INEXACT) +T(RN, 0x1.000002p+0, 0x1.fffffep-24, -0x1.555554p-24, INEXACT) +T(RN, 0x1.000004p+0, 0x1.fffffcp-23, -0x1.555552p-22, INEXACT) +T(RN, 0x1.000006p+0, 0x1.7ffffcp-22, 0x1.ffffb8p-3, INEXACT) +T(RN, 0x1.000008p+0, 0x1.fffff8p-22, -0x1.55554ep-20, INEXACT) +T(RN, 0x1.00000ap+0, 0x1.3ffffap-21, 0x1.fffeb2p-4, INEXACT) +T(RN, 0x1.00000ep+0, 0x1.bffff4p-21, 0x1.fffc6ep-4, INEXACT) +T(RN, 0x1.00001p+0, 0x1.fffffp-21, -0x1.555546p-18, INEXACT) +T(RN, 0x1.000012p+0, 0x1.1ffff6p-20, 0x1.fff868p-5, INEXACT) +T(RN, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-148, nan, 0x0p+0, INVALID) +T(RN, -0x1.cp-147, nan, 0x0p+0, INVALID) +T(RN, -0x1p-128, nan, 0x0p+0, INVALID) +T(RN, -0x1p-127, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffff8p-127, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffcp-127, nan, 0x0p+0, INVALID) +T(RN,-0x1.000002p-126, nan, 0x0p+0, INVALID) +T(RN,-0x1.000004p-126, nan, 0x0p+0, INVALID) +T(RN, -0x1p-125, nan, 0x0p+0, INVALID) +T(RN, -0x1p-124, nan, 0x0p+0, INVALID) +T(RN, -0x1p-23, nan, 0x0p+0, INVALID) +T(RN, -0x1p-21, nan, 0x0p+0, INVALID) +T(RN, -0x1p-2, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.fffff4p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.fffff8p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.fffffcp-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.fffffep-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.000008p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000004p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.fffff6p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1p+2, nan, 0x0p+0, INVALID) +T(RN, -0x1p+126, nan, 0x0p+0, INVALID) +T(RN,-0x1.000004p+126, nan, 0x0p+0, INVALID) +T(RN,-0x1.000008p+126, nan, 0x0p+0, INVALID) +T(RN, -0x1p+127, nan, 0x0p+0, INVALID) +T(RN,-0x1.000004p+127, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, 0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RU, -0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RU, 0x1.fffffap-1, -0x1.800002p-23, 0x1.000012p-3, INEXACT) +T(RU, 0x1.fffffcp-1, -0x1p-23, 0x1.000002p-1, INEXACT) +T(RU, 0x1.fffffep-1, -0x1p-24, 0x1p-2, INEXACT) +T(RU, 0x1.000002p+0, 0x1p-23, 0x1.fffffep-2, INEXACT) +T(RU, 0x1.000004p+0, 0x1.fffffep-23, 0x1.fffff6p-1, INEXACT) +T(RU, 0x1.000008p+0, 0x1.fffffap-22, 0x1.ffffd6p-1, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, -0x1p-149, nan, 0x0p+0, INVALID) +T(RU, -0x1p-148, nan, 0x0p+0, INVALID) +T(RU, -0x1.cp-147, nan, 0x0p+0, INVALID) +T(RU, -0x1p-128, nan, 0x0p+0, INVALID) +T(RU, -0x1p-127, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffff8p-127, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffcp-127, nan, 0x0p+0, INVALID) +T(RU, -0x1p-126, nan, 0x0p+0, INVALID) +T(RU,-0x1.000002p-126, nan, 0x0p+0, INVALID) +T(RU,-0x1.000004p-126, nan, 0x0p+0, INVALID) +T(RU, -0x1p-125, nan, 0x0p+0, INVALID) +T(RU, -0x1p-124, nan, 0x0p+0, INVALID) +T(RU, -0x1p-23, nan, 0x0p+0, INVALID) +T(RU, -0x1p-21, nan, 0x0p+0, INVALID) +T(RU, -0x1p-2, nan, 0x0p+0, INVALID) +T(RU, -0x1p-1, nan, 0x0p+0, INVALID) +T(RU, -0x1.fffff4p-1, nan, 0x0p+0, INVALID) +T(RU, -0x1.fffff8p-1, nan, 0x0p+0, INVALID) +T(RU, -0x1.fffffcp-1, nan, 0x0p+0, INVALID) +T(RU, -0x1.fffffep-1, nan, 0x0p+0, INVALID) +T(RU, -0x1p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1.000008p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1p+1, nan, 0x0p+0, INVALID) +T(RU, -0x1.000004p+1, nan, 0x0p+0, INVALID) +T(RU, -0x1.fffff6p+1, nan, 0x0p+0, INVALID) +T(RU, -0x1p+2, nan, 0x0p+0, INVALID) +T(RU, -0x1p+126, nan, 0x0p+0, INVALID) +T(RU,-0x1.000004p+126, nan, 0x0p+0, INVALID) +T(RU,-0x1.000008p+126, nan, 0x0p+0, INVALID) +T(RU, -0x1p+127, nan, 0x0p+0, INVALID) +T(RU,-0x1.000004p+127, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RU, -inf, nan, 0x0p+0, INVALID) +T(RU, 0x1.ffffeep-1, -0x1.200004p-21, 0x1.10001ep-1, INEXACT) +T(RU, 0x1.fffffp-1, -0x1.000004p-21, 0x1.55555ep-21, INEXACT) +T(RU, 0x1.fffff2p-1, -0x1.c00006p-22, 0x1.0000e4p-4, INEXACT) +T(RU, 0x1.fffff4p-1, -0x1.800004p-22, 0x1.000024p-2, INEXACT) +T(RU, 0x1.fffff6p-1, -0x1.400002p-22, 0x1.20000ap-1, INEXACT) +T(RU, 0x1.fffff8p-1, -0x1.000002p-22, 0x1.55555ap-23, INEXACT) +T(RU, 0x1.000006p+0, 0x1.7ffffcp-22, 0x1.ffffb8p-3, INEXACT) +T(RU, 0x1.00000ap+0, 0x1.3ffffap-21, 0x1.fffeb2p-4, INEXACT) +T(RU, 0x1.00000ep+0, 0x1.bffff4p-21, 0x1.fffc6ep-4, INEXACT) +T(RU, 0x1.00001p+0, 0x1.fffff2p-21, 0x1.ffff56p-1, INEXACT) +T(RU, 0x1.000012p+0, 0x1.1ffff6p-20, 0x1.fff868p-5, INEXACT) +T(RZ, inf, inf, 0x0p+0, 0) +T(RZ, 0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RZ, -0x0p+0, -inf, 0x0p+0, DIVBYZERO) +T(RZ, 0x1.fffffap-1, -0x1.800002p-23, 0x1.000012p-3, INEXACT) +T(RZ, 0x1.fffffcp-1, -0x1p-23, 0x1.000002p-1, INEXACT) +T(RZ, 0x1.fffffep-1, -0x1p-24, 0x1p-2, INEXACT) +T(RZ, 0x1.000002p+0, 0x1.fffffep-24, -0x1.555554p-24, INEXACT) +T(RZ, 0x1.000004p+0, 0x1.fffffcp-23, -0x1.555552p-22, INEXACT) +T(RZ, 0x1.000008p+0, 0x1.fffff8p-22, -0x1.55554ep-20, INEXACT) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, -0x1p-149, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-148, nan, 0x0p+0, INVALID) +T(RZ, -0x1.cp-147, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-128, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-127, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffff8p-127, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffcp-127, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-126, nan, 0x0p+0, INVALID) +T(RZ,-0x1.000002p-126, nan, 0x0p+0, INVALID) +T(RZ,-0x1.000004p-126, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-125, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-124, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-23, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-21, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-2, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.fffff4p-1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.fffff8p-1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.fffffcp-1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.fffffep-1, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1.000004p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1.000008p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.000004p+1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.fffff6p+1, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+2, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+126, nan, 0x0p+0, INVALID) +T(RZ,-0x1.000004p+126, nan, 0x0p+0, INVALID) +T(RZ,-0x1.000008p+126, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+127, nan, 0x0p+0, INVALID) +T(RZ,-0x1.000004p+127, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffcp+127, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffep+127, nan, 0x0p+0, INVALID) +T(RZ, -inf, nan, 0x0p+0, INVALID) +T(RZ, 0x1.ffffeep-1, -0x1.200004p-21, 0x1.10001ep-1, INEXACT) +T(RZ, 0x1.fffffp-1, -0x1.000004p-21, 0x1.55555ep-21, INEXACT) +T(RZ, 0x1.fffff2p-1, -0x1.c00006p-22, 0x1.0000e4p-4, INEXACT) +T(RZ, 0x1.fffff4p-1, -0x1.800004p-22, 0x1.000024p-2, INEXACT) +T(RZ, 0x1.fffff6p-1, -0x1.400002p-22, 0x1.20000ap-1, INEXACT) +T(RZ, 0x1.fffff8p-1, -0x1.000002p-22, 0x1.55555ap-23, INEXACT) +T(RZ, 0x1.000006p+0, 0x1.7ffffap-22, -0x1.800012p-1, INEXACT) +T(RZ, 0x1.00000ap+0, 0x1.3ffff8p-21, -0x1.c0002ap-1, INEXACT) +T(RZ, 0x1.00000ep+0, 0x1.bffff2p-21, -0x1.c00072p-1, INEXACT) +T(RZ, 0x1.00001p+0, 0x1.fffffp-21, -0x1.555546p-18, INEXACT) +T(RZ, 0x1.000012p+0, 0x1.1ffff4p-20, -0x1.e0007ap-1, INEXACT) diff --git a/test/musl/src/math/ucb/pow.h b/test/musl/src/math/ucb/pow.h new file mode 100644 index 00000000..04ea84a8 --- /dev/null +++ b/test/musl/src/math/ucb/pow.h @@ -0,0 +1,1581 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// anything **0 is 1 +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, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x0p+0, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-1022, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-1022, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-1022, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-1022, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1023, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1023, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1p-1022, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p-1022, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1p-1022, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p-1022, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1023, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD,-0x1.fffffffffffffp+1023, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp+1023, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD,-0x1.fffffffffffffp+1023, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, inf, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, nan, 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, nan, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, nan, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-1074, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-1042, 0x0p+0, 0x1p+0, 0x0p+0, 0) +// anything**1 is itself +T(RN, 0x0p+0, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-1074, 0x1p+0, 0x1p-1074, 0x0p+0, 0) +T(RN, 0x1p-1042, 0x1p+0, 0x1p-1042, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-1074, 0x1p+0, -0x1p-1074, 0x0p+0, 0) +T(RN, -0x1p-1042, 0x1p+0, -0x1p-1042, 0x0p+0, 0) +T(RN, 0x1p-1022, 0x1p+0, 0x1p-1022, 0x0p+0, 0) +T(RN, -0x1p-1022, 0x1p+0, -0x1p-1022, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1023, 0x1p+0, 0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023, 0x1p+0,-0x1.fffffffffffffp+1023, 0x0p+0, 0) +T(RN, inf, 0x1p+0, inf, 0x0p+0, 0) +T(RN, -inf, 0x1p+0, -inf, 0x0p+0, 0) +// +-0**x +T(RN, 0x0p+0, 0x1.fffffffffffffp+1023, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1p-1022, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1.fffffffffffffp+1023, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1.1p+4, -0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1p-1022, 0x0p+0, 0x0p+0, 0) +// (-anything) ** (integer) (-1.1**101) +T(RN, -0x1.199999999999ap+0, 0x1.94p+6, -0x1.d9b5637aa9b25p+13, -0x1.5e9fbp-5, INEXACT) +T(RZ, -0x1.199999999999ap+0, 0x1.94p+6, -0x1.d9b5637aa9b24p+13, 0x1.ea1606p-1, INEXACT) +T(RU, -0x1.199999999999ap+0, 0x1.94p+6, -0x1.d9b5637aa9b24p+13, 0x1.ea1606p-1, INEXACT) +T(RD, -0x1.199999999999ap+0, 0x1.94p+6, -0x1.d9b5637aa9b25p+13, -0x1.5e9fbp-5, INEXACT) +// some integer ** integer +T(RN, 0x1.3p+4, 0x1.6p+3, 0x1.a7ca020174acp+46, 0x0p+0, 0) +T(RN, -0x1.82p+7, 0x1.4p+2, -0x1.f2c9ed1e08p+37, 0x0p+0, 0) +T(RN, 0x1.2bp+8, 0x1.8p+2, 0x1.44ef8416dd348p+49, 0x0p+0, 0) +T(RN, -0x1.2c4p+10, 0x1p+2, 0x1.e468b1a8c1p+40, 0x0p+0, 0) +// random arguments between 0 20 +T(RN, 0x1.d406db2b5006dp+2, 0x1.11f4cfb825911p+4, 0x1.1bc4a3c547fddp+49, -0x1.b9961ep-4, INEXACT) +T(RN, 0x1.2cdf309de7505p+4, 0x1.a9253fba96889p+1, 0x1.0ad1678cc548p+14, 0x1.030a1ep-2, INEXACT) +T(RN, 0x1.d29f3e27084ddp+2, 0x1.336d31b093c41p+3, 0x1.72eabe3c1a592p+27, -0x1.56be5ep-3, INEXACT) +T(RN, 0x1.f910ed18455f5p+3, 0x1.28d064a51b239p+4, 0x1.c9cdad82240dep+73, 0x1.cf371ap-8, INEXACT) +T(RN, 0x1.0a37c1079de4dp+3, 0x1.add483103b871p-2, 0x1.377962e68f1c3p+1, 0x1.aa14eep-2, INEXACT) +T(RN, 0x1.75331f24163e5p+2, 0x1.4eca21468cce9p+3, 0x1.87bb2eeed10eap+26, 0x1.11d102p-2, INEXACT) +T(RN, 0x1.35380f258fcbdp+1, 0x1.11f2f1ace7da1p+4, 0x1.b9cce4a0f2106p+21, 0x1.77103ap-3, INEXACT) +T(RN, 0x1.39f14efde0ed5p-5, 0x1.70c85e8e5e899p-7, 0x1.ed8bccf55b1a1p-1, 0x1.aa004ep-2, INEXACT) +T(RN, 0x1.5c9021412d02dp+2, 0x1.fa12128273bd1p+3, 0x1.97afb4059cda3p+38, 0x1.6c5548p-2, INEXACT) +T(RN, 0x1.9bd94e8b7c6c5p+3, 0x1.ddfeb8e193549p+3, 0x1.0a9dafd125991p+55, -0x1.2c73e6p-3, INEXACT) +// nan**1 +T(RN, nan, 0x1p+0, nan, 0x0p+0, 0) +// (anything except 1)**nan is nan +T(RN, nan, nan, nan, 0x0p+0, 0) +T(RN, inf, nan, nan, 0x0p+0, 0) +T(RN, -inf, nan, nan, 0x0p+0, 0) +T(RN, -0x1p+0, nan, nan, 0x0p+0, 0) +T(RN, -0x0p+0, nan, nan, 0x0p+0, 0) +T(RN, 0x0p+0, nan, nan, 0x0p+0, 0) +// nan**(anything except 0) is nan +T(RN, nan, inf, nan, 0x0p+0, 0) +T(RN, nan, -inf, nan, 0x0p+0, 0) +T(RN, nan, 0x1p+0, nan, 0x0p+0, 0) +T(RN, nan, -0x1p+0, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-1074, nan, 0x0p+0, 0) +// +-(x > 1) ** +inf is +inf +T(RN, 0x1.0000000000001p+0, inf, inf, 0x0p+0, 0) +T(RN, inf, inf, inf, 0x0p+0, 0) +T(RN, -0x1.0000000000001p+0, inf, inf, 0x0p+0, 0) +T(RN, -inf, inf, inf, 0x0p+0, 0) +// +-(x > 1) ** -inf is +0 +T(RN, 0x1.0000000000001p+0, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, inf, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1.0000000000001p+0, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, -inf, -inf, 0x0p+0, 0x0p+0, 0) +// +-(|x| < 1) ** +inf is +0 +T(RN, 0x1.fffffffffffffp-1, inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-1074, inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1.fffffffffffffp-1, inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-1074, inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, inf, 0x0p+0, 0x0p+0, 0) +// +-(|x| < 1) ** -inf is +inf +T(RN, 0x1.fffffffffffffp-1, -inf, inf, 0x0p+0, 0) +T(RN, 0x1p-1074, -inf, inf, 0x0p+0, 0) +T(RN, 0x0p+0, -inf, inf, 0x0p+0, 0) +T(RN, -0x1.fffffffffffffp-1, -inf, inf, 0x0p+0, 0) +T(RN, -0x1p-1074, -inf, inf, 0x0p+0, 0) +T(RN, -0x0p+0, -inf, inf, 0x0p+0, 0) +// +1 ** (anthing) is +1 +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) +// -1 ** +-inf is +1 +T(RN, -0x1p+0, inf, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+0, -inf, 0x1p+0, 0x0p+0, 0) +// +0 ** (+anything except 0, nan) is +0 +T(RN, 0x0p+0, 0x1p-1074, 0x0p+0, 0x0p+0, 0) +// -0 ** (+anything except 0, nan, odd integer) is +0 +T(RN, -0x0p+0, 0x1p-1074, 0x0p+0, 0x0p+0, 0) +// +0 ** (-anything except 0, nan) is +inf +T(RN, 0x0p+0,-0x1.fffffffffffffp+1023, inf, 0x0p+0, DIVBYZERO) +T(RN, 0x0p+0, -0x1p-1074, inf, 0x0p+0, DIVBYZERO) +T(RZ, 0x0p+0,-0x1.fffffffffffffp+1023, inf, 0x0p+0, DIVBYZERO) +T(RZ, 0x0p+0, -0x1p-1074, inf, 0x0p+0, DIVBYZERO) +T(RU, 0x0p+0,-0x1.fffffffffffffp+1023, inf, 0x0p+0, DIVBYZERO) +T(RU, 0x0p+0, -0x1p-1074, inf, 0x0p+0, DIVBYZERO) +T(RD, 0x0p+0,-0x1.fffffffffffffp+1023, inf, 0x0p+0, DIVBYZERO) +T(RD, 0x0p+0, -0x1p-1074, inf, 0x0p+0, DIVBYZERO) +// -0 ** (-anything except 0, nan, odd integer) is +inf +T(RN, -0x0p+0,-0x1.fffffffffffffp+1023, inf, 0x0p+0, DIVBYZERO) +T(RN, -0x0p+0, -0x1p+1, inf, 0x0p+0, DIVBYZERO) +T(RN, -0x0p+0, -0x1p-1074, inf, 0x0p+0, DIVBYZERO) +// -0 ** (odd integer) = -( +0 ** (odd integer) ) +T(RN, -0x0p+0, -0x1p+0, -inf, 0x0p+0, DIVBYZERO) +T(RN, -0x0p+0, -0x1.1p+4, -inf, 0x0p+0, DIVBYZERO) +// +inf ** (+anything except 0,nan) is +inf +T(RN, inf, 0x1p-1074, inf, 0x0p+0, 0) +// +inf ** (-anything except 0,nan) is +0 +T(RN, inf, -0x1p-1074, 0x0p+0, 0x0p+0, 0) +// -inf ** (anything) = -0 ** (-anything) +T(RN, -inf, 0x1.fffffffffffffp+1023, inf, 0x0p+0, 0) +T(RN, -inf, 0x1p-1074, inf, 0x0p+0, 0) +T(RN, -inf,-0x1.fffffffffffffp+1023, 0x0p+0, 0x0p+0, 0) +T(RN, -inf, -0x1p-1074, 0x0p+0, 0x0p+0, 0) +T(RN, -inf, 0x1.4p+2, -inf, 0x0p+0, 0) +T(RN, -inf, -0x1.4p+2, -0x0p+0, 0x0p+0, 0) +T(RN, -inf, 0x1.8p+2, inf, 0x0p+0, 0) +T(RN, -inf, -0x1.8p+2, 0x0p+0, 0x0p+0, 0) +// (-anything except 0 and inf) ** (non-integer) is nan +T(RN, -inf, 0x1.0000000000001p+1, inf, 0x0p+0, 0) +T(RN, -0x1p+0, 0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1074, -0x1.fffffffffffffp+0, nan, 0x0p+0, INVALID) +// miscellaneous +T(RN, -inf, 0x1p-1, inf, 0x0p+0, 0) +T(RN, -0x1.ap+3, 0x1.4dp+8, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.fffffffffffffp+1023, 0x1.fffff0fffffffp+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.fffffp+1023, 0x1.fffffp+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RD, 0x0p+0, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1p-32, 0x1p+1, 0x1p-64, 0x0p+0, 0) +T(RD, 0x1p-31, 0x1p+1, 0x1p-62, 0x0p+0, 0) +T(RD, 0x1p-2, 0x1p+1, 0x1p-4, 0x0p+0, 0) +T(RD, 0x1p-1, 0x1p+1, 0x1p-2, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1p+1, 0x1p+1, 0x1p+2, 0x0p+0, 0) +T(RD, 0x1.8p+1, 0x1p+1, 0x1.2p+3, 0x0p+0, 0) +T(RD, 0x1p+2, 0x1p+1, 0x1p+4, 0x0p+0, 0) +T(RD, 0x1.fep+7, 0x1p+1, 0x1.fc02p+15, 0x0p+0, 0) +T(RD, 0x1p+8, 0x1p+1, 0x1p+16, 0x0p+0, 0) +T(RD, 0x1.01p+8, 0x1p+1, 0x1.0201p+16, 0x0p+0, 0) +T(RD, inf, 0x1p+1, inf, 0x0p+0, 0) +T(RD, -0x0p+0, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RD, -0x1p-32, 0x1p+1, 0x1p-64, 0x0p+0, 0) +T(RD, -0x1p-31, 0x1p+1, 0x1p-62, 0x0p+0, 0) +T(RD, -0x1p-2, 0x1p+1, 0x1p-4, 0x0p+0, 0) +T(RD, -0x1p-1, 0x1p+1, 0x1p-2, 0x0p+0, 0) +T(RD, -0x1p+0, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+1, 0x1p+1, 0x1p+2, 0x0p+0, 0) +T(RD, -0x1.8p+1, 0x1p+1, 0x1.2p+3, 0x0p+0, 0) +T(RD, -0x1p+2, 0x1p+1, 0x1p+4, 0x0p+0, 0) +T(RD, -0x1.fep+7, 0x1p+1, 0x1.fc02p+15, 0x0p+0, 0) +T(RD, -0x1p+8, 0x1p+1, 0x1p+16, 0x0p+0, 0) +T(RD, -0x1.01p+8, 0x1p+1, 0x1.0201p+16, 0x0p+0, 0) +T(RD, -inf, 0x1p+1, inf, 0x0p+0, 0) +T(RD, 0x1.ffffffffffffap-1, 0x1p+1, 0x1.ffffffffffff4p-1, -0x1.2p-48, INEXACT) +T(RD, 0x1.ffffffffffffcp-1, 0x1p+1, 0x1.ffffffffffff8p-1, -0x1p-49, INEXACT) +T(RD, 0x1.ffffffffffffep-1, 0x1p+1, 0x1.ffffffffffffcp-1, -0x1p-51, INEXACT) +T(RD, 0x1.fffffffffffffp-1, 0x1p+1, 0x1.ffffffffffffep-1, -0x1p-53, INEXACT) +T(RD, 0x1.0000000000001p+0, 0x1p+1, 0x1.0000000000002p+0, -0x1p-52, INEXACT) +T(RD, 0x1.0000000000002p+0, 0x1p+1, 0x1.0000000000004p+0, -0x1p-50, INEXACT) +T(RD, 0x1.0000000000004p+0, 0x1p+1, 0x1.0000000000008p+0, -0x1p-48, INEXACT) +T(RD, 0x1.0000000000001p+2, 0x1p+1, 0x1.0000000000002p+4, -0x1p-52, INEXACT) +T(RD, 0x1.0000000000002p+2, 0x1p+1, 0x1.0000000000004p+4, -0x1p-50, INEXACT) +T(RD, -0x1.ffffffffffffap-1, 0x1p+1, 0x1.ffffffffffff4p-1, -0x1.2p-48, INEXACT) +T(RD, -0x1.ffffffffffffcp-1, 0x1p+1, 0x1.ffffffffffff8p-1, -0x1p-49, INEXACT) +T(RD, -0x1.ffffffffffffep-1, 0x1p+1, 0x1.ffffffffffffcp-1, -0x1p-51, INEXACT) +T(RD, -0x1.fffffffffffffp-1, 0x1p+1, 0x1.ffffffffffffep-1, -0x1p-53, INEXACT) +T(RD, -0x1.0000000000001p+0, 0x1p+1, 0x1.0000000000002p+0, -0x1p-52, INEXACT) +T(RD, -0x1.0000000000002p+0, 0x1p+1, 0x1.0000000000004p+0, -0x1p-50, INEXACT) +T(RD, -0x1.0000000000004p+0, 0x1p+1, 0x1.0000000000008p+0, -0x1p-48, INEXACT) +T(RD, 0x1p+1015, 0x1p+1, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+1022, 0x1p+1, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+1023, 0x1p+1, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.ffffffffffffep+1023, 0x1p+1, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.fffffffffffffp+1023, 0x1p+1, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, -0x1p+1015, 0x1p+1, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, -0x1p+1022, 0x1p+1, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, -0x1p+1023, 0x1p+1, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD,-0x1.ffffffffffffep+1023, 0x1p+1, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD,-0x1.fffffffffffffp+1023, 0x1p+1, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p-1074, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1073, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1024, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1023, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.ffffffffffffcp-1023, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.ffffffffffffep-1023, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1022, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.0000000000001p-1022, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.0000000000002p-1022, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1021, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1020, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1074, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1073, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1024, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1023, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.ffffffffffffcp-1023, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.ffffffffffffep-1023, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1022, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.0000000000001p-1022, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.0000000000002p-1022, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1021, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1020, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RD, nan, 0x1p+1, nan, 0x0p+0, 0) +T(RD, nan, 0x1p+1, nan, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1p-1, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1.cp+2, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1.fff8p+14, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1.fffcp+14, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-1074, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-1074, 0x1p-1, 0x1p-537, 0x0p+0, 0) +T(RN, 0x1p-1074, -0x1p-1, 0x1p+537, 0x0p+0, 0) +T(RN, 0x1p-1073, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-1073, 0x1p+0, 0x1p-1073, 0x0p+0, 0) +T(RN, 0x1p-1073, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.8p-1073, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-1072, 0x1p-1, 0x1p-536, 0x0p+0, 0) +T(RN, 0x1p-1072, -0x1p-1, 0x1p+536, 0x0p+0, 0) +T(RN, 0x1p-1024, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-1024, 0x1p-10, 0x1p-1, 0x0p+0, 0) +T(RN, 0x1p-1024, 0x1p-9, 0x1p-2, 0x0p+0, 0) +T(RN, 0x1p-1024, 0x1p-8, 0x1p-4, 0x0p+0, 0) +T(RN, 0x1p-1024, 0x1p-7, 0x1p-8, 0x0p+0, 0) +T(RN, 0x1p-1024, 0x1p-6, 0x1p-16, 0x0p+0, 0) +T(RN, 0x1p-1024, 0x1p-5, 0x1p-32, 0x0p+0, 0) +T(RN, 0x1p-1024, 0x1p-4, 0x1p-64, 0x0p+0, 0) +T(RN, 0x1p-1024, 0x1p-3, 0x1p-128, 0x0p+0, 0) +T(RN, 0x1p-1024, 0x1p-2, 0x1p-256, 0x0p+0, 0) +T(RN, 0x1p-1024, 0x1p-1, 0x1p-512, 0x0p+0, 0) +T(RN, 0x1p-1024, 0x1p+0, 0x1p-1024, 0x0p+0, 0) +T(RN, 0x1p-1024, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-1024, -0x1p-1, 0x1p+512, 0x0p+0, 0) +T(RN, 0x1p-1023, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-1023, 0x1p+0, 0x1p-1023, 0x0p+0, 0) +T(RN, 0x1p-1023, inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-1023, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-1023, -0x1p+0, 0x1p+1023, 0x0p+0, 0) +T(RN, 0x1p-1023, -inf, inf, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffcp-1023, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffcp-1023, 0x1p+0, 0x1.ffffffffffffcp-1023, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffcp-1023, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep-1023, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep-1023, 0x1p+0, 0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep-1023, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-1022, 0x1p-1, 0x1p-511, 0x0p+0, 0) +T(RN, 0x1p-1022, inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-1022, -0x1p-1, 0x1p+511, 0x0p+0, 0) +T(RN, 0x1p-1022, -0x1p+0, 0x1p+1022, 0x0p+0, 0) +T(RN, 0x1p-1022, -inf, inf, 0x0p+0, 0) +T(RN, 0x1.0000000000001p-1022, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000001p-1022, 0x1p+0, 0x1.0000000000001p-1022, 0x0p+0, 0) +T(RN, 0x1.0000000000001p-1022, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000002p-1022, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000002p-1022, 0x1p+0, 0x1.0000000000002p-1022, 0x0p+0, 0) +T(RN, 0x1.0000000000002p-1022, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-1021, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-1021, 0x1p+0, 0x1p-1021, 0x0p+0, 0) +T(RN, 0x1p-1021, inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-1021, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-1021, -0x1p+0, 0x1p+1021, 0x0p+0, 0) +T(RN, 0x1p-1021, -inf, inf, 0x0p+0, 0) +T(RN, 0x1p-1020, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-1020, 0x1p-1, 0x1p-510, 0x0p+0, 0) +T(RN, 0x1p-1020, 0x1p+0, 0x1p-1020, 0x0p+0, 0) +T(RN, 0x1p-1020, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-1020, -0x1p-1, 0x1p+510, 0x0p+0, 0) +T(RN, 0x1p-1020, -0x1p+0, 0x1p+1020, 0x0p+0, 0) +T(RN, 0x1p-537, 0x1p+1, 0x1p-1074, 0x0p+0, 0) +T(RN, 0x1p-148, 0x1p-1, 0x1p-74, 0x0p+0, 0) +T(RN, 0x1p-148, -0x1p-1, 0x1p+74, 0x0p+0, 0) +T(RN, 0x1p-146, 0x1p-1, 0x1p-73, 0x0p+0, 0) +T(RN, 0x1p-146, -0x1p-1, 0x1p+73, 0x0p+0, 0) +T(RN, 0x1p-128, 0x1p-1, 0x1p-64, 0x0p+0, 0) +T(RN, 0x1p-128, -0x1p-1, 0x1p+64, 0x0p+0, 0) +T(RN, 0x1p-126, 0x1p-1, 0x1p-63, 0x0p+0, 0) +T(RN, 0x1p-126, -0x1p-1, 0x1p+63, 0x0p+0, 0) +T(RN, 0x1p-124, 0x1p-1, 0x1p-62, 0x0p+0, 0) +T(RN, 0x1p-124, -0x1p-1, 0x1p+62, 0x0p+0, 0) +T(RN, 0x1p-69, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-64, 0x1p-6, 0x1p-1, 0x0p+0, 0) +T(RN, 0x1p-64, 0x1p-5, 0x1p-2, 0x0p+0, 0) +T(RN, 0x1p-64, 0x1p-4, 0x1p-4, 0x0p+0, 0) +T(RN, 0x1p-64, 0x1p-3, 0x1p-8, 0x0p+0, 0) +T(RN, 0x1p-64, 0x1p-2, 0x1p-16, 0x0p+0, 0) +T(RN, 0x1p-62, 0x1p-1, 0x1p-31, 0x0p+0, 0) +T(RN, 0x1p-52, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-52, 0x1p+0, 0x1p-52, 0x0p+0, 0) +T(RN, 0x1p-52, inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-52, -0x1p+0, 0x1p+52, 0x0p+0, 0) +T(RN, 0x1p-52, -inf, inf, 0x0p+0, 0) +T(RN, 0x1p-51, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-32, 0x1p+1, 0x1p-64, 0x0p+0, 0) +T(RN, 0x1p-31, 0x1p+1, 0x1p-62, 0x0p+0, 0) +T(RN, 0x1p-16, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-16, 0x1p+2, 0x1p-64, 0x0p+0, 0) +T(RN, 0x1.2p-15, 0x1p-1, 0x1.8p-8, 0x0p+0, 0) +T(RN, 0x1p-14, 0x1p-1, 0x1p-7, 0x0p+0, 0) +T(RN, 0x1p-8, 0x1p-1, 0x1p-4, 0x0p+0, 0) +T(RN, 0x1p-8, 0x1p+3, 0x1p-64, 0x0p+0, 0) +T(RN, 0x1p-8, -0x1p-1, 0x1p+4, 0x0p+0, 0) +T(RN, 0x1.2p-5, 0x1p-1, 0x1.8p-3, 0x0p+0, 0) +T(RN, 0x1p-4, 0x1p-1, 0x1p-2, 0x0p+0, 0) +T(RN, 0x1p-4, 0x1p+4, 0x1p-64, 0x0p+0, 0) +T(RN, 0x1p-4, -0x1p-1, 0x1p+2, 0x0p+0, 0) +T(RN, 0x1p-2, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-2, 0x1p+0, 0x1p-2, 0x0p+0, 0) +T(RN, 0x1p-2, 0x1p+1, 0x1p-4, 0x0p+0, 0) +T(RN, 0x1p-2, 0x1p+5, 0x1p-64, 0x0p+0, 0) +T(RN, 0x1p-2, inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-2, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-2, -0x1p+0, 0x1p+2, 0x0p+0, 0) +T(RN, 0x1p-2, -0x1p+1, 0x1p+4, 0x0p+0, 0) +T(RN, 0x1p-2, -inf, inf, 0x0p+0, 0) +T(RN, 0x1p-1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-1, 0x1p+0, 0x1p-1, 0x0p+0, 0) +T(RN, 0x1p-1, 0x1p+1, 0x1p-2, 0x0p+0, 0) +T(RN, 0x1p-1, 0x1p+6, 0x1p-64, 0x0p+0, 0) +T(RN, 0x1p-1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-1, -0x1p+0, 0x1p+1, 0x0p+0, 0) +T(RN, 0x1p-1, -0x1p+1, 0x1p+2, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffap-1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffap-1, 0x1p+0, 0x1.ffffffffffffap-1, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffap-1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffbp-1, 0x1p+0, 0x1.ffffffffffffbp-1, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffcp-1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffcp-1, 0x1p+0, 0x1.ffffffffffffcp-1, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffcp-1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep-1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep-1, 0x1p+0, 0x1.ffffffffffffep-1, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep-1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp-1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp-1, 0x1p+0, 0x1.fffffffffffffp-1, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp-1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+0, 0x0p+0, 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, -0x0p+0, 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, 0x1.0000000000001p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+0, 0x1p+0, 0x1.0000000000001p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+0, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000002p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000002p+0, 0x1p+0, 0x1.0000000000002p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000002p+0, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000004p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000004p+0, 0x1p+0, 0x1.0000000000004p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000004p+0, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000005p+0, 0x1p+0, 0x1.0000000000005p+0, 0x0p+0, 0) +T(RN, 0x1p+1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+1, 0x1p+0, 0x1p+1, 0x0p+0, 0) +T(RN, 0x1p+1, 0x1p+1, 0x1p+2, 0x0p+0, 0) +T(RN, 0x1p+1, 0x1.fcp+6, 0x1p+127, 0x0p+0, 0) +T(RN, 0x1p+1, 0x1p+7, 0x1p+128, 0x0p+0, 0) +T(RN, 0x1p+1, 0x1.ff8p+9, 0x1p+1023, 0x0p+0, 0) +T(RN, 0x1p+1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+1, -0x1p+0, 0x1p-1, 0x0p+0, 0) +T(RN, 0x1p+1, -0x1p+1, 0x1p-2, 0x0p+0, 0) +T(RN, 0x1p+1, -0x1.2p+3, 0x1p-9, 0x0p+0, 0) +T(RN, 0x1p+1, -0x1.2ap+7, 0x1p-149, 0x0p+0, 0) +T(RN, 0x1p+1, -0x1.2cp+7, 0x1p-150, 0x0p+0, 0) +T(RN, 0x1p+1, -0x1.2ep+7, 0x1p-151, 0x0p+0, 0) +T(RN, 0x1p+1, -0x1.0c8p+10, 0x1p-1074, 0x0p+0, 0) +T(RN, 0x1.0000000000005p+1, inf, inf, 0x0p+0, 0) +T(RN, 0x1.0000000000005p+1, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.8p+1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.8p+1, 0x1p+0, 0x1.8p+1, 0x0p+0, 0) +T(RN, 0x1.8p+1, 0x1p+1, 0x1.2p+3, 0x0p+0, 0) +T(RN, 0x1p+2, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+2, 0x1p-1, 0x1p+1, 0x0p+0, 0) +T(RN, 0x1p+2, 0x1p+0, 0x1p+2, 0x0p+0, 0) +T(RN, 0x1p+2, 0x1p+1, 0x1p+4, 0x0p+0, 0) +T(RN, 0x1p+2, 0x1.6p+2, 0x1p+11, 0x0p+0, 0) +T(RN, 0x1p+2, 0x1.3bp+7, 0x1p+315, 0x0p+0, 0) +T(RN, 0x1p+2, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+2, -0x1p-1, 0x1p-1, 0x0p+0, 0) +T(RN, 0x1p+2, -0x1p+0, 0x1p-2, 0x0p+0, 0) +T(RN, 0x1p+2, -0x1p+1, 0x1p-4, 0x0p+0, 0) +T(RN, 0x1p+2, -0x1.8p+1, 0x1p-6, 0x0p+0, 0) +T(RN, 0x1p+2, -0x1.fp+4, 0x1p-62, 0x0p+0, 0) +T(RN, 0x1p+3, 0x1p+3, 0x1p+24, 0x0p+0, 0) +T(RN, 0x1p+3, -0x1p+3, 0x1p-24, 0x0p+0, 0) +T(RN, 0x1.2p+3, 0x1p-1, 0x1.8p+1, 0x0p+0, 0) +T(RN, 0x1p+4, -0x1p+4, 0x1p-64, 0x0p+0, 0) +T(RN, 0x1.bp+4, 0x1p+0, 0x1.bp+4, 0x0p+0, 0) +T(RN, 0x1p+5, 0x1p+0, 0x1p+5, 0x0p+0, 0) +T(RN, 0x1p+5, -0x1p+0, 0x1p-5, 0x0p+0, 0) +T(RN, 0x1p+7, -0x1.2p+3, 0x1p-63, 0x0p+0, 0) +T(RN, 0x1.fep+7, 0x1p+1, 0x1.fc02p+15, 0x0p+0, 0) +T(RN, 0x1.fep+7, inf, inf, 0x0p+0, 0) +T(RN, 0x1.fep+7, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p+8, 0x1p-1, 0x1p+4, 0x0p+0, 0) +T(RN, 0x1p+8, 0x1.8p+0, 0x1p+12, 0x0p+0, 0) +T(RN, 0x1p+8, 0x1p+1, 0x1p+16, 0x0p+0, 0) +T(RN, 0x1p+8, 0x1.8p+1, 0x1p+24, 0x0p+0, 0) +T(RN, 0x1p+8, inf, inf, 0x0p+0, 0) +T(RN, 0x1p+8, -0x1p-1, 0x1p-4, 0x0p+0, 0) +T(RN, 0x1p+8, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.01p+8, 0x1p+1, 0x1.0201p+16, 0x0p+0, 0) +T(RN, 0x1.01p+8, inf, inf, 0x0p+0, 0) +T(RN, 0x1.01p+8, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p+9, 0x1p+0, 0x1p+9, 0x0p+0, 0) +T(RN, 0x1p+9, -0x1p+0, 0x1p-9, 0x0p+0, 0) +T(RN, 0x1p+10, 0x1p-1, 0x1p+5, 0x0p+0, 0) +T(RN, 0x1p+10, 0x1.8p+0, 0x1p+15, 0x0p+0, 0) +T(RN, 0x1.2p+11, 0x1p-1, 0x1.8p+5, 0x0p+0, 0) +T(RN, 0x1.d8ap+13, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+14, 0x1p-1, 0x1p+7, 0x0p+0, 0) +T(RN, 0x1.9f24p+14, 0x1p-1, 0x1.46p+7, 0x0p+0, 0) +T(RN, 0x1.b3c4p+14, 0x1p-1, 0x1.4ep+7, 0x0p+0, 0) +T(RN, 0x1.d3a4p+14, 0x1p-1, 0x1.5ap+7, 0x0p+0, 0) +T(RN, 0x1.f4a4p+14, 0x1p-1, 0x1.66p+7, 0x0p+0, 0) +T(RN, 0x1.ffe4p+14, 0x1p-1, 0x1.6ap+7, 0x0p+0, 0) +T(RN, 0x1p+16, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+16, 0x1p+0, 0x1p+16, 0x0p+0, 0) +T(RN, 0x1p+16, -0x1p+0, 0x1p-16, 0x0p+0, 0) +T(RN, 0x1.2p+21, 0x1p-1, 0x1.8p+10, 0x0p+0, 0) +T(RN, 0x1p+47, -0x1.8p+1, 0x1p-141, 0x0p+0, 0) +T(RN, 0x1p+94, -0x1.8p+0, 0x1p-141, 0x0p+0, 0) +T(RN, 0x1p+124, 0x1p-1, 0x1p+62, 0x0p+0, 0) +T(RN, 0x1p+124, -0x1p-1, 0x1p-62, 0x0p+0, 0) +T(RN, 0x1p+126, 0x1p-1, 0x1p+63, 0x0p+0, 0) +T(RN, 0x1p+126, -0x1p-1, 0x1p-63, 0x0p+0, 0) +T(RN, 0x1p+350, -0x1.8p+1, 0x1p-1050, 0x0p+0, 0) +T(RN, 0x1p+700, -0x1.8p+0, 0x1p-1050, 0x0p+0, 0) +T(RN, 0x1p+1015, 0x1p+0, 0x1p+1015, 0x0p+0, 0) +T(RN, 0x1p+1020, 0x1p-1, 0x1p+510, 0x0p+0, 0) +T(RN, 0x1p+1020, -0x1p-1, 0x1p-510, 0x0p+0, 0) +T(RN, 0x1p+1020, -0x1p+0, 0x1p-1020, 0x0p+0, 0) +T(RN, 0x1p+1021, inf, inf, 0x0p+0, 0) +T(RN, 0x1p+1021, -0x1p+0, 0x1p-1021, 0x0p+0, 0) +T(RN, 0x1p+1021, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p+1022, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+1022, 0x1p-1, 0x1p+511, 0x0p+0, 0) +T(RN, 0x1p+1022, 0x1p+0, 0x1p+1022, 0x0p+0, 0) +T(RN, 0x1p+1022, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+1022, -0x1p-1, 0x1p-511, 0x0p+0, 0) +T(RN, 0x1p+1022, -0x1p+0, 0x1p-1022, 0x0p+0, 0) +T(RN, 0x1p+1023, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+1023, 0x1p+0, 0x1p+1023, 0x0p+0, 0) +T(RN, 0x1p+1023, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+1023, -0x1p+0, 0x1p-1023, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep+1023, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep+1023, 0x1p+0, 0x1.ffffffffffffep+1023, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep+1023, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1023, inf, inf, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1023, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, inf, 0x0p+0, 0x1p+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, 0x1.fep+7, inf, 0x0p+0, 0) +T(RN, inf, 0x1p+8, inf, 0x0p+0, 0) +T(RN, inf, 0x1.01p+8, inf, 0x0p+0, 0) +T(RN, inf, 0x1.fffcp+14, 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, -0x1.fep+7, 0x0p+0, 0x0p+0, 0) +T(RN, inf, -0x1p+8, 0x0p+0, 0x0p+0, 0) +T(RN, inf, -0x1.01p+8, 0x0p+0, 0x0p+0, 0) +T(RN, inf, -0x1.fffcp+14, 0x0p+0, 0x0p+0, 0) +T(RN, inf, -0x1p+15, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1p-1, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1.cp+2, -0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1.fff8p+14, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1.fffcp+14, -0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-1074, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-1074, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-1073, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-1073, 0x1p+0, -0x1p-1073, 0x0p+0, 0) +T(RN, -0x1p-1073, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.8p-1073, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-1024, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-1024, 0x1p+0, -0x1p-1024, 0x0p+0, 0) +T(RN, -0x1p-1024, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-1023, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-1023, 0x1p+0, -0x1p-1023, 0x0p+0, 0) +T(RN, -0x1p-1023, inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-1023, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-1023, -0x1p+0, -0x1p+1023, 0x0p+0, 0) +T(RN, -0x1p-1023, -inf, inf, 0x0p+0, 0) +T(RN,-0x1.ffffffffffffcp-1023, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN,-0x1.ffffffffffffcp-1023, 0x1p+0,-0x1.ffffffffffffcp-1023, 0x0p+0, 0) +T(RN,-0x1.ffffffffffffcp-1023, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN,-0x1.ffffffffffffep-1023, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN,-0x1.ffffffffffffep-1023, 0x1p+0,-0x1.ffffffffffffep-1023, 0x0p+0, 0) +T(RN,-0x1.ffffffffffffep-1023, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-1022, inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-1022, -0x1p+0, -0x1p+1022, 0x0p+0, 0) +T(RN, -0x1p-1022, -inf, inf, 0x0p+0, 0) +T(RN,-0x1.0000000000001p-1022, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN,-0x1.0000000000001p-1022, 0x1p+0,-0x1.0000000000001p-1022, 0x0p+0, 0) +T(RN,-0x1.0000000000001p-1022, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN,-0x1.0000000000002p-1022, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN,-0x1.0000000000002p-1022, 0x1p+0,-0x1.0000000000002p-1022, 0x0p+0, 0) +T(RN,-0x1.0000000000002p-1022, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-1021, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-1021, 0x1p+0, -0x1p-1021, 0x0p+0, 0) +T(RN, -0x1p-1021, inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-1021, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-1021, -0x1p+0, -0x1p+1021, 0x0p+0, 0) +T(RN, -0x1p-1021, -inf, inf, 0x0p+0, 0) +T(RN, -0x1p-1020, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-1020, 0x1p+0, -0x1p-1020, 0x0p+0, 0) +T(RN, -0x1p-1020, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-1020, -0x1p+0, -0x1p+1020, 0x0p+0, 0) +T(RN, -0x1p-537, 0x1p+1, 0x1p-1074, 0x0p+0, 0) +T(RN, -0x1p-69, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-52, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-52, 0x1p+0, -0x1p-52, 0x0p+0, 0) +T(RN, -0x1p-52, inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-52, -0x1p+0, -0x1p+52, 0x0p+0, 0) +T(RN, -0x1p-52, -inf, inf, 0x0p+0, 0) +T(RN, -0x1p-51, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-32, 0x1p+1, 0x1p-64, 0x0p+0, 0) +T(RN, -0x1p-31, 0x1p+1, 0x1p-62, 0x0p+0, 0) +T(RN, -0x1p-16, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-16, 0x1p+2, 0x1p-64, 0x0p+0, 0) +T(RN, -0x1p-8, 0x1p+3, 0x1p-64, 0x0p+0, 0) +T(RN, -0x1p-4, 0x1p+4, 0x1p-64, 0x0p+0, 0) +T(RN, -0x1p-2, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-2, 0x1p+0, -0x1p-2, 0x0p+0, 0) +T(RN, -0x1p-2, 0x1p+1, 0x1p-4, 0x0p+0, 0) +T(RN, -0x1p-2, 0x1p+5, 0x1p-64, 0x0p+0, 0) +T(RN, -0x1p-2, inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-2, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-2, -0x1p+0, -0x1p+2, 0x0p+0, 0) +T(RN, -0x1p-2, -0x1p+1, 0x1p+4, 0x0p+0, 0) +T(RN, -0x1p-2, -inf, inf, 0x0p+0, 0) +T(RN, -0x1p-1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-1, 0x1p+0, -0x1p-1, 0x0p+0, 0) +T(RN, -0x1p-1, 0x1p+1, 0x1p-2, 0x0p+0, 0) +T(RN, -0x1p-1, 0x1p+6, 0x1p-64, 0x0p+0, 0) +T(RN, -0x1p-1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-1, -0x1p+0, -0x1p+1, 0x0p+0, 0) +T(RN, -0x1p-1, -0x1p+1, 0x1p+2, 0x0p+0, 0) +T(RN, -0x1.ffffffffffffap-1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.ffffffffffffap-1, 0x1p+0, -0x1.ffffffffffffap-1, 0x0p+0, 0) +T(RN, -0x1.ffffffffffffap-1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.ffffffffffffbp-1, 0x1p+0, -0x1.ffffffffffffbp-1, 0x0p+0, 0) +T(RN, -0x1.ffffffffffffcp-1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.ffffffffffffcp-1, 0x1p+0, -0x1.ffffffffffffcp-1, 0x0p+0, 0) +T(RN, -0x1.ffffffffffffcp-1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.ffffffffffffep-1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.ffffffffffffep-1, 0x1p+0, -0x1.ffffffffffffep-1, 0x0p+0, 0) +T(RN, -0x1.ffffffffffffep-1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.fffffffffffffp-1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.fffffffffffffp-1, 0x1p+0, -0x1.fffffffffffffp-1, 0x0p+0, 0) +T(RN, -0x1.fffffffffffffp-1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+0, 0x0p+0, 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+2, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+0, -0x0p+0, 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, -0x1.0000000000001p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.0000000000001p+0, 0x1p+0, -0x1.0000000000001p+0, 0x0p+0, 0) +T(RN, -0x1.0000000000001p+0, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.0000000000002p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.0000000000002p+0, 0x1p+0, -0x1.0000000000002p+0, 0x0p+0, 0) +T(RN, -0x1.0000000000002p+0, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.0000000000004p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.0000000000004p+0, 0x1p+0, -0x1.0000000000004p+0, 0x0p+0, 0) +T(RN, -0x1.0000000000004p+0, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.0000000000005p+0, 0x1p+0, -0x1.0000000000005p+0, 0x0p+0, 0) +T(RN, -0x1p+1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+1, 0x1p+0, -0x1p+1, 0x0p+0, 0) +T(RN, -0x1p+1, 0x1p+1, 0x1p+2, 0x0p+0, 0) +T(RN, -0x1p+1, 0x1.fcp+6, -0x1p+127, 0x0p+0, 0) +T(RN, -0x1p+1, 0x1p+7, 0x1p+128, 0x0p+0, 0) +T(RN, -0x1p+1, 0x1.ff8p+9, -0x1p+1023, 0x0p+0, 0) +T(RN, -0x1p+1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+1, -0x1p+0, -0x1p-1, 0x0p+0, 0) +T(RN, -0x1p+1, -0x1p+1, 0x1p-2, 0x0p+0, 0) +T(RN, -0x1p+1, -0x1.2p+3, -0x1p-9, 0x0p+0, 0) +T(RN, -0x1p+1, -0x1.2ap+7, -0x1p-149, 0x0p+0, 0) +T(RN, -0x1p+1, -0x1.2cp+7, 0x1p-150, 0x0p+0, 0) +T(RN, -0x1p+1, -0x1.2ep+7, -0x1p-151, 0x0p+0, 0) +T(RN, -0x1p+1, -0x1.0c8p+10, 0x1p-1074, 0x0p+0, 0) +T(RN, -0x1.0000000000005p+1, inf, inf, 0x0p+0, 0) +T(RN, -0x1.0000000000005p+1, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1.8p+1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.8p+1, 0x1p+0, -0x1.8p+1, 0x0p+0, 0) +T(RN, -0x1.8p+1, 0x1p+1, 0x1.2p+3, 0x0p+0, 0) +T(RN, -0x1p+2, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+2, 0x1p+0, -0x1p+2, 0x0p+0, 0) +T(RN, -0x1p+2, 0x1p+1, 0x1p+4, 0x0p+0, 0) +T(RN, -0x1p+2, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+2, -0x1p+0, -0x1p-2, 0x0p+0, 0) +T(RN, -0x1p+2, -0x1p+1, 0x1p-4, 0x0p+0, 0) +T(RN, -0x1p+2, -0x1.8p+1, -0x1p-6, 0x0p+0, 0) +T(RN, -0x1p+2, -0x1.fp+4, -0x1p-62, 0x0p+0, 0) +T(RN, -0x1p+3, 0x1.cp+2, -0x1p+21, 0x0p+0, 0) +T(RN, -0x1p+3, 0x1p+3, 0x1p+24, 0x0p+0, 0) +T(RN, -0x1p+3, -0x1.cp+2, -0x1p-21, 0x0p+0, 0) +T(RN, -0x1p+3, -0x1p+3, 0x1p-24, 0x0p+0, 0) +T(RN, -0x1p+4, -0x1p+4, 0x1p-64, 0x0p+0, 0) +T(RN, -0x1.bp+4, 0x1p+0, -0x1.bp+4, 0x0p+0, 0) +T(RN, -0x1p+5, 0x1p+0, -0x1p+5, 0x0p+0, 0) +T(RN, -0x1p+5, -0x1p+0, -0x1p-5, 0x0p+0, 0) +T(RN, -0x1p+7, -0x1.2p+3, -0x1p-63, 0x0p+0, 0) +T(RN, -0x1.fep+7, 0x1p+1, 0x1.fc02p+15, 0x0p+0, 0) +T(RN, -0x1.fep+7, inf, inf, 0x0p+0, 0) +T(RN, -0x1.fep+7, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p+8, 0x1p+1, 0x1p+16, 0x0p+0, 0) +T(RN, -0x1p+8, 0x1.8p+1, -0x1p+24, 0x0p+0, 0) +T(RN, -0x1p+8, inf, inf, 0x0p+0, 0) +T(RN, -0x1p+8, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1.01p+8, 0x1p+1, 0x1.0201p+16, 0x0p+0, 0) +T(RN, -0x1.01p+8, inf, inf, 0x0p+0, 0) +T(RN, -0x1.01p+8, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p+9, 0x1p+0, -0x1p+9, 0x0p+0, 0) +T(RN, -0x1p+9, -0x1p+0, -0x1p-9, 0x0p+0, 0) +T(RN, -0x1.d8ap+13, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+16, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+16, 0x1p+0, -0x1p+16, 0x0p+0, 0) +T(RN, -0x1p+16, -0x1p+0, -0x1p-16, 0x0p+0, 0) +T(RN, -0x1p+47, -0x1.8p+1, -0x1p-141, 0x0p+0, 0) +T(RN, -0x1p+350, -0x1.8p+1, -0x1p-1050, 0x0p+0, 0) +T(RN, -0x1p+1015, 0x1p+0, -0x1p+1015, 0x0p+0, 0) +T(RN, -0x1p+1020, -0x1p+0, -0x1p-1020, 0x0p+0, 0) +T(RN, -0x1p+1021, inf, inf, 0x0p+0, 0) +T(RN, -0x1p+1021, -0x1p+0, -0x1p-1021, 0x0p+0, 0) +T(RN, -0x1p+1021, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p+1022, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+1022, 0x1p+0, -0x1p+1022, 0x0p+0, 0) +T(RN, -0x1p+1022, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+1022, -0x1p+0, -0x1p-1022, 0x0p+0, 0) +T(RN, -0x1p+1023, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+1023, 0x1p+0, -0x1p+1023, 0x0p+0, 0) +T(RN, -0x1p+1023, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+1023, -0x1p+0, -0x1p-1023, 0x0p+0, 0) +T(RN,-0x1.ffffffffffffep+1023, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN,-0x1.ffffffffffffep+1023, 0x1p+0,-0x1.ffffffffffffep+1023, 0x0p+0, 0) +T(RN,-0x1.ffffffffffffep+1023, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023, inf, inf, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, -inf, 0x1p+1, inf, 0x0p+0, 0) +T(RN, -inf, 0x1.fep+7, -inf, 0x0p+0, 0) +T(RN, -inf, 0x1p+8, inf, 0x0p+0, 0) +T(RN, -inf, 0x1.01p+8, -inf, 0x0p+0, 0) +T(RN, -inf, 0x1.fff8p+14, inf, 0x0p+0, 0) +T(RN, -inf, 0x1.fffcp+14, -inf, 0x0p+0, 0) +T(RN, -inf, -0x0p+0, 0x1p+0, 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, -0x1.fep+7, -0x0p+0, 0x0p+0, 0) +T(RN, -inf, -0x1p+8, 0x0p+0, 0x0p+0, 0) +T(RN, -inf, -0x1.01p+8, -0x0p+0, 0x0p+0, 0) +T(RN, -inf, -0x1.fffcp+14, -0x0p+0, 0x0p+0, 0) +T(RN, -inf, -0x1p+15, 0x0p+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.2p+3, inf, 0x0p+0, DIVBYZERO) +T(RN, 0x0p+0, -0x1p+8, inf, 0x0p+0, DIVBYZERO) +T(RN, 0x0p+0, -0x1.fffcp+14, inf, 0x0p+0, DIVBYZERO) +T(RN, 0x0p+0, -0x1p+15, inf, 0x0p+0, DIVBYZERO) +T(RN, -0x0p+0, -0x1p-1, inf, 0x0p+0, DIVBYZERO) +T(RN, -0x0p+0, -0x1.2p+3, -inf, 0x0p+0, DIVBYZERO) +T(RN, -0x0p+0, -0x1p+8, inf, 0x0p+0, DIVBYZERO) +T(RN, -0x0p+0, -0x1.fffcp+14, -inf, 0x0p+0, DIVBYZERO) +T(RN, -0x0p+0, -0x1p+15, inf, 0x0p+0, DIVBYZERO) +T(RN, 0x1.0000000000004p-1024, -0x1p+0, 0x1.ffffffffffff8p+1023, -0x1p-47, INEXACT) +T(RN, 0x1.ffffffffffffcp-1023, -0x1p-1, 0x1.0000000000001p+511, -0x1.8p-52, INEXACT) +T(RN, 0x1.ffffffffffffep-1023, 0x1p-1, 0x1.fffffffffffffp-512, 0x1.000008p-54, INEXACT) +T(RN, 0x1.ffffffffffffep-1023, -0x1p+0, 0x1.0000000000001p+1022, -0x1p-52, INEXACT) +T(RN, 0x1.0000000000001p-1022, -0x1p+0, 0x1.ffffffffffffep+1021, -0x1p-51, INEXACT) +T(RN, 0x1.0000000000002p-1022, 0x1p-1, 0x1.0000000000001p-511, 0x1.fffff8p-54, INEXACT) +T(RN, 0x1.0000000000002p-1022, -0x1p-1, 0x1.ffffffffffffep+510, -0x1.8p-51, INEXACT) +T(RN, 0x1.0000000000002p-1022, -0x1p+0, 0x1.ffffffffffffcp+1021, -0x1p-49, INEXACT) +T(RN, 0x1.ffffffffffff8p-1, 0x1p-1, 0x1.ffffffffffffcp-1, 0x1p-50, INEXACT) +T(RN, 0x1.ffffffffffff8p-1, -0x1p-1, 0x1.0000000000002p+0, -0x1.8p-50, INEXACT) +T(RN, 0x1.ffffffffffff8p-1, -0x1p+0, 0x1.0000000000004p+0, -0x1p-48, INEXACT) +T(RN, 0x1.ffffffffffff8p-1, -0x1p+1, 0x1.0000000000008p+0, -0x1.8p-47, INEXACT) +T(RN, 0x1.ffffffffffff9p-1, 0x1p-1, 0x1.ffffffffffffcp-1, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffffap-1, 0x1p-1, 0x1.ffffffffffffdp-1, 0x1.2p-51, INEXACT) +T(RN, 0x1.ffffffffffffap-1, 0x1p+1, 0x1.ffffffffffff4p-1, -0x1.2p-48, INEXACT) +T(RN, 0x1.ffffffffffffap-1, -0x1p+0, 0x1.0000000000003p+0, -0x1.2p-49, INEXACT) +T(RN, 0x1.ffffffffffffap-1, -0x1p+1, 0x1.0000000000006p+0, -0x1.bp-48, INEXACT) +T(RN, 0x1.ffffffffffffcp-1, 0x1p-1, 0x1.ffffffffffffep-1, 0x1.000002p-52, INEXACT) +T(RN, 0x1.ffffffffffffcp-1, 0x1p+1, 0x1.ffffffffffff8p-1, -0x1p-49, INEXACT) +T(RN, 0x1.ffffffffffffcp-1, -0x1p-1, 0x1.0000000000001p+0, -0x1.8p-52, INEXACT) +T(RN, 0x1.ffffffffffffcp-1, -0x1p+0, 0x1.0000000000002p+0, -0x1p-50, INEXACT) +T(RN, 0x1.ffffffffffffcp-1, -0x1p+1, 0x1.0000000000004p+0, -0x1.8p-49, INEXACT) +T(RN, 0x1.ffffffffffffdp-1, 0x1p-1, 0x1.ffffffffffffep-1, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffffdp-1, 0x1.fffffffffffffp-1, 0x1.ffffffffffffdp-1, -0x1.8p-52, INEXACT) +T(RN, 0x1.ffffffffffffdp-1, 0x1.0000000000001p+0, 0x1.ffffffffffffdp-1, 0x1.8p-51, INEXACT) +T(RN, 0x1.ffffffffffffdp-1, 0x1.fffffffffffffp+0, 0x1.ffffffffffffap-1, -0x1.ep-50, INEXACT) +T(RN, 0x1.ffffffffffffdp-1, 0x1.0000000000001p+1, 0x1.ffffffffffffap-1, 0x1.7ffffep-52, INEXACT) +T(RN, 0x1.ffffffffffffdp-1, 0x1.7fffffffffffep+1, 0x1.ffffffffffff7p-1, -0x1.98p-48, INEXACT) +T(RN, 0x1.ffffffffffffdp-1, 0x1.8000000000002p+1, 0x1.ffffffffffff7p-1, -0x1.8p-52, INEXACT) +T(RN, 0x1.ffffffffffffdp-1, -0x1.fffffffffffffp-1, 0x1.0000000000002p+0, 0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffffdp-1, -0x1.0000000000001p+0, 0x1.0000000000002p+0, 0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffffdp-1, -0x1.fffffffffffffp+0, 0x1.0000000000003p+0, -0x1.5p-50, INEXACT) +T(RN, 0x1.ffffffffffffdp-1, -0x1.0000000000001p+1, 0x1.0000000000003p+0, -0x1.38p-49, INEXACT) +T(RN, 0x1.ffffffffffffep-1, 0x1p-1, 0x1.fffffffffffffp-1, 0x1.000008p-54, INEXACT) +T(RN, 0x1.ffffffffffffep-1, 0x1.ffffffffffffep-1, 0x1.ffffffffffffep-1, -0x1p-51, INEXACT) +T(RN, 0x1.ffffffffffffep-1, 0x1.fffffffffffffp-1, 0x1.ffffffffffffep-1, -0x1p-52, INEXACT) +T(RN, 0x1.ffffffffffffep-1, 0x1.0000000000001p+0, 0x1.ffffffffffffep-1, 0x1.fffffep-52, INEXACT) +T(RN, 0x1.ffffffffffffep-1, 0x1.fffffffffffffp+0, 0x1.ffffffffffffcp-1, -0x1p-50, INEXACT) +T(RN, 0x1.ffffffffffffep-1, 0x1p+1, 0x1.ffffffffffffcp-1, -0x1p-51, INEXACT) +T(RN, 0x1.ffffffffffffep-1, 0x1.0000000000001p+1, 0x1.ffffffffffffcp-1, 0x1.fffffep-52, INEXACT) +T(RN, 0x1.ffffffffffffep-1, 0x1.7fffffffffffep+1, 0x1.ffffffffffffap-1, -0x1.cp-49, INEXACT) +T(RN, 0x1.ffffffffffffep-1, 0x1.8000000000002p+1, 0x1.ffffffffffffap-1, 0x1.fffffep-52, INEXACT) +T(RN, 0x1.ffffffffffffep-1, -0x1.ffffffffffffep-1, 0x1.0000000000001p+0, 0x0p+0, INEXACT) +T(RN, 0x1.ffffffffffffep-1, -0x1.fffffffffffffp-1, 0x1.0000000000001p+0, -0x1p-53, INEXACT) +T(RN, 0x1.ffffffffffffep-1, -0x1p+0, 0x1.0000000000001p+0, -0x1p-52, INEXACT) +T(RN, 0x1.ffffffffffffep-1, -0x1.0000000000001p+0, 0x1.0000000000001p+0, -0x1p-51, INEXACT) +T(RN, 0x1.ffffffffffffep-1, -0x1.fffffffffffffp+0, 0x1.0000000000002p+0, -0x1p-51, INEXACT) +T(RN, 0x1.ffffffffffffep-1, -0x1p+1, 0x1.0000000000002p+0, -0x1.8p-51, INEXACT) +T(RN, 0x1.ffffffffffffep-1, -0x1.0000000000001p+1, 0x1.0000000000002p+0, -0x1.4p-50, INEXACT) +T(RN, 0x1.ffffffffffffep-1, -0x1.7fffffffffffep+1, 0x1.0000000000003p+0, -0x1p-51, INEXACT) +T(RN, 0x1.ffffffffffffep-1, -0x1.8000000000002p+1, 0x1.0000000000003p+0, -0x1.4p-49, INEXACT) +T(RN, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp-1, -0x1p-53, INEXACT) +T(RN, 0x1.fffffffffffffp-1, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1.fffffcp-53, INEXACT) +T(RN, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp+0, 0x1.ffffffffffffep-1, -0x1.8p-52, INEXACT) +T(RN, 0x1.fffffffffffffp-1, 0x1p+1, 0x1.ffffffffffffep-1, -0x1p-53, INEXACT) +T(RN, 0x1.fffffffffffffp-1, 0x1.0000000000001p+1, 0x1.ffffffffffffep-1, 0x1.7ffffep-52, INEXACT) +T(RN, 0x1.fffffffffffffp-1, 0x1.7fffffffffffep+1, 0x1.ffffffffffffdp-1, -0x1.6p-50, INEXACT) +T(RN, 0x1.fffffffffffffp-1, 0x1.8p+1, 0x1.ffffffffffffdp-1, -0x1.8p-52, INEXACT) +T(RN, 0x1.fffffffffffffp-1, 0x1.8000000000002p+1, 0x1.ffffffffffffdp-1, 0x1.4p-51, INEXACT) +T(RN, 0x1.fffffffffffffp-1, 0x1.2p+3, 0x1.ffffffffffff7p-1, -0x1.2p-48, INEXACT) +T(RN, 0x1.fffffffffffffp-1, -0x1.fffffffffffffp+0, 0x1.0000000000001p+0, -0x1p-54, INEXACT) +T(RN, 0x1.fffffffffffffp-1, -0x1.0000000000001p+1, 0x1.0000000000001p+0, -0x1.cp-52, INEXACT) +T(RN, 0x1.fffffffffffffp-1, -0x1.8000000000002p+1, 0x1.0000000000002p+0, 0x1p-1, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1p-5, 0x1p+0, -0x1p-5, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1p-3, 0x1p+0, -0x1p-3, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1p-1, 0x1p+0, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.fffffffffffffp-1, 0x1.0000000000001p+0, 0x1.000004p-53, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.0000000000001p+0, 0x1.0000000000001p+0, -0x1p-52, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.fffffffffffffp+0, 0x1.0000000000002p+0, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1p+1, 0x1.0000000000002p+0, -0x1p-52, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.0000000000001p+1, 0x1.0000000000002p+0, -0x1.8p-51, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.7fffffffffffep+1, 0x1.0000000000003p+0, 0x1.000002p-52, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.8p+1, 0x1.0000000000003p+0, -0x1.8p-51, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.8000000000002p+1, 0x1.0000000000003p+0, -0x1.cp-50, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1p+3, 0x1.0000000000008p+0, -0x1.cp-48, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1.2p+3, 0x1.0000000000009p+0, -0x1.2p-47, INEXACT) +T(RN, 0x1.0000000000001p+0, 0x1p+5, 0x1.000000000002p+0, -0x1.fp-44, INEXACT) +T(RN, 0x1.0000000000001p+0, -0x1.fffffffffffffp-1, 0x1.ffffffffffffep-1, -0x1.8p-51, INEXACT) +T(RN, 0x1.0000000000001p+0, -0x1p+0, 0x1.ffffffffffffep-1, -0x1p-51, INEXACT) +T(RN, 0x1.0000000000001p+0, -0x1.0000000000001p+0, 0x1.ffffffffffffep-1, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000001p+0, -0x1.fffffffffffffp+0, 0x1.ffffffffffffcp-1, -0x1p-49, INEXACT) +T(RN, 0x1.0000000000001p+0, -0x1p+1, 0x1.ffffffffffffcp-1, -0x1.8p-50, INEXACT) +T(RN, 0x1.0000000000001p+0, -0x1.0000000000001p+1, 0x1.ffffffffffffcp-1, -0x1p-51, INEXACT) +T(RN, 0x1.0000000000001p+0, -0x1.7fffffffffffep+1, 0x1.ffffffffffffap-1, -0x1.4p-48, INEXACT) +T(RN, 0x1.0000000000001p+0, -0x1.8000000000002p+1, 0x1.ffffffffffffap-1, -0x1p-50, INEXACT) +T(RN, 0x1.0000000000002p+0, 0x1p-1, 0x1.0000000000001p+0, 0x1.fffff8p-54, INEXACT) +T(RN, 0x1.0000000000002p+0, 0x1.fffffffffffffp-1, 0x1.0000000000002p+0, 0x1.000002p-52, INEXACT) +T(RN, 0x1.0000000000002p+0, 0x1.0000000000001p+0, 0x1.0000000000002p+0, -0x1p-51, INEXACT) +T(RN, 0x1.0000000000002p+0, 0x1.fffffffffffffp+0, 0x1.0000000000004p+0, -0x1p-51, INEXACT) +T(RN, 0x1.0000000000002p+0, 0x1p+1, 0x1.0000000000004p+0, -0x1p-50, INEXACT) +T(RN, 0x1.0000000000002p+0, 0x1.0000000000001p+1, 0x1.0000000000004p+0, -0x1p-49, INEXACT) +T(RN, 0x1.0000000000002p+0, 0x1.7fffffffffffep+1, 0x1.0000000000006p+0, -0x1p-50, INEXACT) +T(RN, 0x1.0000000000002p+0, 0x1.8000000000002p+1, 0x1.0000000000006p+0, -0x1.4p-48, INEXACT) +T(RN, 0x1.0000000000002p+0, -0x1p-1, 0x1.ffffffffffffep-1, -0x1.8p-51, INEXACT) +T(RN, 0x1.0000000000002p+0, -0x1.fffffffffffffp-1, 0x1.ffffffffffffcp-1, -0x1.4p-49, INEXACT) +T(RN, 0x1.0000000000002p+0, -0x1p+0, 0x1.ffffffffffffcp-1, -0x1p-49, INEXACT) +T(RN, 0x1.0000000000002p+0, -0x1.0000000000001p+0, 0x1.ffffffffffffcp-1, -0x1p-50, INEXACT) +T(RN, 0x1.0000000000002p+0, -0x1.fffffffffffffp+0, 0x1.ffffffffffff8p-1, -0x1.cp-48, INEXACT) +T(RN, 0x1.0000000000002p+0, -0x1p+1, 0x1.ffffffffffff8p-1, -0x1.8p-48, INEXACT) +T(RN, 0x1.0000000000002p+0, -0x1.0000000000001p+1, 0x1.ffffffffffff8p-1, -0x1p-48, INEXACT) +T(RN, 0x1.0000000000002p+0, -0x1.7fffffffffffep+1, 0x1.ffffffffffff4p-1, -0x1p-46, INEXACT) +T(RN, 0x1.0000000000002p+0, -0x1.8000000000002p+1, 0x1.ffffffffffff4p-1, -0x1p-47, INEXACT) +T(RN, 0x1.0000000000003p+0, 0x1.fffffffffffffp-1, 0x1.0000000000003p+0, 0x1.800002p-52, INEXACT) +T(RN, 0x1.0000000000003p+0, 0x1.0000000000001p+0, 0x1.0000000000003p+0, -0x1.8p-51, INEXACT) +T(RN, 0x1.0000000000003p+0, 0x1.fffffffffffffp+0, 0x1.0000000000006p+0, -0x1.8p-50, INEXACT) +T(RN, 0x1.0000000000003p+0, 0x1.0000000000001p+1, 0x1.0000000000006p+0, -0x1.ep-49, INEXACT) +T(RN, 0x1.0000000000003p+0, 0x1.7fffffffffffep+1, 0x1.0000000000009p+0, -0x1.ep-49, INEXACT) +T(RN, 0x1.0000000000003p+0, 0x1.8000000000002p+1, 0x1.0000000000009p+0, -0x1.38p-47, INEXACT) +T(RN, 0x1.0000000000003p+0, -0x1.fffffffffffffp-1, 0x1.ffffffffffffap-1, -0x1.5p-48, INEXACT) +T(RN, 0x1.0000000000003p+0, -0x1p+0, 0x1.ffffffffffffap-1, -0x1.2p-48, INEXACT) +T(RN, 0x1.0000000000003p+0, -0x1.0000000000001p+0, 0x1.ffffffffffffap-1, -0x1.8p-49, INEXACT) +T(RN, 0x1.0000000000003p+0, -0x1.fffffffffffffp+0, 0x1.ffffffffffff4p-1, -0x1.ep-47, INEXACT) +T(RN, 0x1.0000000000003p+0, -0x1p+1, 0x1.ffffffffffff4p-1, -0x1.bp-47, INEXACT) +T(RN, 0x1.0000000000003p+0, -0x1.0000000000001p+1, 0x1.ffffffffffff4p-1, -0x1.5p-47, INEXACT) +T(RN, 0x1.0000000000003p+0, -0x1.7fffffffffffep+1, 0x1.fffffffffffeep-1, -0x1.08p-45, INEXACT) +T(RN, 0x1.0000000000003p+0, -0x1.8000000000002p+1, 0x1.fffffffffffeep-1, -0x1.5p-46, INEXACT) +T(RN, 0x1.0000000000004p+0, 0x1p-1, 0x1.0000000000002p+0, 0x1.fffffep-52, INEXACT) +T(RN, 0x1.0000000000004p+0, 0x1p+1, 0x1.0000000000008p+0, -0x1p-48, INEXACT) +T(RN, 0x1.0000000000004p+0, -0x1p-1, 0x1.ffffffffffffcp-1, -0x1.8p-49, INEXACT) +T(RN, 0x1.0000000000004p+0, -0x1p+0, 0x1.ffffffffffff8p-1, -0x1p-47, INEXACT) +T(RN, 0x1.0000000000004p+0, -0x1p+1, 0x1.ffffffffffffp-1, -0x1.8p-46, INEXACT) +T(RN, 0x1.0000000000005p+0, 0x1p-1, 0x1.0000000000002p+0, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000006p+0, 0x1p-1, 0x1.0000000000003p+0, 0x1.2p-50, INEXACT) +T(RN, 0x1.0000000000006p+0, -0x1p-1, 0x1.ffffffffffffap-1, -0x1.bp-48, INEXACT) +T(RN, 0x1.0000000000008p+0, 0x1p-5, 0x1p+0, -0x1p-2, INEXACT) +T(RN, 0x1.0000000000008p+0, 0x1p-3, 0x1.0000000000001p+0, 0x1.cp-51, INEXACT) +T(RN, 0x1.0000000000008p+0, 0x1p-1, 0x1.0000000000004p+0, 0x1p-49, INEXACT) +T(RN, 0x1.0000000000008p+0, 0x1p+1, 0x1.000000000001p+0, -0x1p-46, INEXACT) +T(RN, 0x1.0000000000008p+0, 0x1p+3, 0x1.000000000004p+0, -0x1.cp-42, INEXACT) +T(RN, 0x1.0000000000008p+0, 0x1p+5, 0x1.00000000001p+0, -0x1.fp-38, INEXACT) +T(RN, 0x1.000000000001p+0, 0x1p-5, 0x1p+0, -0x1p-1, INEXACT) +T(RN, 0x1.000000000001p+0, 0x1p-3, 0x1.0000000000002p+0, 0x1.cp-49, INEXACT) +T(RN, 0x1.000000000001p+0, 0x1p-1, 0x1.0000000000008p+0, 0x1p-47, INEXACT) +T(RN, 0x1.000000000001p+0, 0x1p+1, 0x1.000000000002p+0, -0x1p-44, INEXACT) +T(RN, 0x1.000000000001p+0, 0x1p+3, 0x1.000000000008p+0, -0x1.cp-40, INEXACT) +T(RN, 0x1.000000000001p+0, 0x1p+5, 0x1.00000000002p+0, -0x1.fp-36, INEXACT) +T(RN, 0x1.0000000000001p+2, 0x1p+1, 0x1.0000000000002p+4, -0x1p-52, INEXACT) +T(RN, 0x1.0000000000001p+2, 0x1.8p+1, 0x1.0000000000003p+6, -0x1.8p-51, INEXACT) +T(RN, 0x1.0000000000001p+2, 0x1p+2, 0x1.0000000000004p+8, -0x1.8p-50, INEXACT) +T(RN, 0x1.0000000000002p+2, 0x1p+1, 0x1.0000000000004p+4, -0x1p-50, INEXACT) +T(RN, 0x1.ffffffffffffcp+1021, -0x1p-1, 0x1.0000000000001p-511, -0x1.8p-52, INEXACT) +T(RN, 0x1.ffffffffffffcp+1021, -0x1p+0, 0x1.0000000000002p-1022, -0x1p-50, INEXACT) +T(RN, 0x1.ffffffffffffep+1021, 0x1p-1, 0x1.fffffffffffffp+510, 0x1.000008p-54, INEXACT) +T(RN, 0x1.ffffffffffffep+1021, -0x1p+0, 0x1.0000000000001p-1022, -0x1p-52, INEXACT) +T(RN, 0x1.0000000000002p+1022, 0x1p-1, 0x1.0000000000001p+511, 0x1.fffff8p-54, INEXACT) +T(RN, 0x1.0000000000002p+1022, -0x1p-1, 0x1.ffffffffffffep-512, -0x1.8p-51, INEXACT) +T(RN,-0x1.0000000000004p-1024, -0x1p+0,-0x1.ffffffffffff8p+1023, 0x1p-47, INEXACT) +T(RN,-0x1.ffffffffffffep-1023, -0x1p+0,-0x1.0000000000001p+1022, 0x1p-52, INEXACT) +T(RN,-0x1.0000000000001p-1022, -0x1p+0,-0x1.ffffffffffffep+1021, 0x1p-51, INEXACT) +T(RN,-0x1.0000000000002p-1022, -0x1p+0,-0x1.ffffffffffffcp+1021, 0x1p-49, INEXACT) +T(RN, -0x1.ffffffffffff8p-1, -0x1p+0, -0x1.0000000000004p+0, 0x1p-48, INEXACT) +T(RN, -0x1.ffffffffffff8p-1, -0x1p+1, 0x1.0000000000008p+0, -0x1.8p-47, INEXACT) +T(RN, -0x1.ffffffffffffap-1, 0x1p+1, 0x1.ffffffffffff4p-1, -0x1.2p-48, INEXACT) +T(RN, -0x1.ffffffffffffap-1, -0x1p+0, -0x1.0000000000003p+0, 0x1.2p-49, INEXACT) +T(RN, -0x1.ffffffffffffap-1, -0x1p+1, 0x1.0000000000006p+0, -0x1.bp-48, INEXACT) +T(RN, -0x1.ffffffffffffcp-1, 0x1p+1, 0x1.ffffffffffff8p-1, -0x1p-49, INEXACT) +T(RN, -0x1.ffffffffffffcp-1, -0x1p+0, -0x1.0000000000002p+0, 0x1p-50, INEXACT) +T(RN, -0x1.ffffffffffffcp-1, -0x1p+1, 0x1.0000000000004p+0, -0x1.8p-49, INEXACT) +T(RN, -0x1.ffffffffffffep-1, 0x1p+1, 0x1.ffffffffffffcp-1, -0x1p-51, INEXACT) +T(RN, -0x1.ffffffffffffep-1, -0x1p+0, -0x1.0000000000001p+0, 0x1p-52, INEXACT) +T(RN, -0x1.ffffffffffffep-1, -0x1p+1, 0x1.0000000000002p+0, -0x1.8p-51, INEXACT) +T(RN, -0x1.fffffffffffffp-1, 0x1p+1, 0x1.ffffffffffffep-1, -0x1p-53, INEXACT) +T(RN, -0x1.fffffffffffffp-1, 0x1.8p+1, -0x1.ffffffffffffdp-1, 0x1.8p-52, INEXACT) +T(RN, -0x1.0000000000001p+0, 0x1p+1, 0x1.0000000000002p+0, -0x1p-52, INEXACT) +T(RN, -0x1.0000000000001p+0, 0x1.8p+1, -0x1.0000000000003p+0, 0x1.8p-51, INEXACT) +T(RN, -0x1.0000000000001p+0, -0x1p+0, -0x1.ffffffffffffep-1, 0x1p-51, INEXACT) +T(RN, -0x1.0000000000001p+0, -0x1p+1, 0x1.ffffffffffffcp-1, -0x1.8p-50, INEXACT) +T(RN, -0x1.0000000000002p+0, 0x1p+1, 0x1.0000000000004p+0, -0x1p-50, INEXACT) +T(RN, -0x1.0000000000002p+0, -0x1p+0, -0x1.ffffffffffffcp-1, 0x1p-49, INEXACT) +T(RN, -0x1.0000000000002p+0, -0x1p+1, 0x1.ffffffffffff8p-1, -0x1.8p-48, INEXACT) +T(RN, -0x1.0000000000003p+0, -0x1p+0, -0x1.ffffffffffffap-1, 0x1.2p-48, INEXACT) +T(RN, -0x1.0000000000003p+0, -0x1p+1, 0x1.ffffffffffff4p-1, -0x1.bp-47, INEXACT) +T(RN, -0x1.0000000000004p+0, 0x1p+1, 0x1.0000000000008p+0, -0x1p-48, INEXACT) +T(RN, -0x1.0000000000004p+0, -0x1p+0, -0x1.ffffffffffff8p-1, 0x1p-47, INEXACT) +T(RN, -0x1.0000000000004p+0, -0x1p+1, 0x1.ffffffffffffp-1, -0x1.8p-46, INEXACT) +T(RN,-0x1.ffffffffffffcp+1021, -0x1p+0,-0x1.0000000000002p-1022, 0x1p-50, INEXACT) +T(RN,-0x1.ffffffffffffep+1021, -0x1p+0,-0x1.0000000000001p-1022, 0x1p-52, INEXACT) +T(RN, 0x1p-1074, -0x1p+0, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-1074, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-1074, -0x1.fep+7, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-1074, -0x1.fff8p+13, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-1074, -0x1.fffcp+14, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-1073, -0x1p+0, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-1073, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-1073, -0x1p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-1073, -0x1p+15, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.8p-1073, -0x1p+0, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.8p-1073, -0x1.01p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.8p-1073, -0x1.fff8p+13, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.8p-1073, -0x1.fff8p+14, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-1024, -0x1p+0, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-1024, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.0000000000004p-1024, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-1023, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-1023, -0x1.fep+7, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-1023, -0x1.fff8p+13, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-1023, -0x1.fffcp+14, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.ffffffffffffep-1023, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-1022, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-1022, -0x1p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-1022, -0x1.fff8p+13, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-1022, -0x1.fff8p+14, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.0000000000001p-1022, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.0000000000001p-1022, -0x1.01p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.0000000000001p-1022, -0x1p+15, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.0000000000002p-1022, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-1021, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-1021, -0x1.fff8p+13, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-1020, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-54, -0x1.f8p+7, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-52, -0x1.04p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-52, -0x1.19p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+1, 0x1p+10, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+2, 0x1.fffep+14, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.4p+3, 0x1.35p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+8, 0x1.ffcp+10, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+8, 0x1p+11, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+16, 0x1.ff8p+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+16, 0x1p+10, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+1015, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+1015, 0x1.4p+2, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+1022, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+1022, 0x1.4p+2, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+1023, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+1023, 0x1.fep+7, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+1023, 0x1p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+1023, 0x1.01p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+1023, 0x1.fffcp+14, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.ffffffffffffep+1023, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.fffffffffffffp+1023, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-1074, -0x1p+0, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-1074, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-1074, -0x1.01p+8, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-1074, -0x1.fff8p+13, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-1074, -0x1.fff8p+14, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-1073, -0x1p+0, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-1073, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-1073, -0x1.fep+7, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-1073, -0x1.fffcp+14, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.8p-1073, -0x1p+0, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.8p-1073, -0x1p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.8p-1073, -0x1.fff8p+13, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.8p-1073, -0x1p+15, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-1024, -0x1p+0, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-1024, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.0000000000004p-1024, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-1023, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-1023, -0x1.01p+8, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-1023, -0x1.fff8p+13, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-1023, -0x1p+15, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.ffffffffffffep-1023, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-1022, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-1022, -0x1.fep+7, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-1022, -0x1.fff8p+13, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-1022, -0x1.fffcp+14, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.0000000000001p-1022, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.0000000000001p-1022, -0x1p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.0000000000001p-1022, -0x1.fff8p+14, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.0000000000002p-1022, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-1021, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-1021, -0x1.fff8p+13, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-1020, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-54, -0x1.f8p+7, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-52, -0x1.04p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-52, -0x1.19p+8, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+1, 0x1p+10, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.4p+3, 0x1.35p+8, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+8, 0x1.ffcp+10, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+8, 0x1p+11, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+16, 0x1.ff8p+9, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+16, 0x1p+10, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+1015, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+1015, 0x1.4p+2, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+1022, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+1022, 0x1.4p+2, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+1023, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+1023, 0x1.fep+7, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+1023, 0x1p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+1023, 0x1.01p+8, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+1023, 0x1.fff8p+14, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+1023, 0x1.fffcp+14, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.ffffffffffffep+1023, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.fffffffffffffp+1023, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-1074, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1074, 0x1.8p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1074, 0x1.fep+7, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1074, 0x1.fff8p+13, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1074, 0x1.fffcp+14, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1073, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1073, 0x1.01p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1073, 0x1.fff8p+14, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.8p-1073, 0x1p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.8p-1073, 0x1.fff8p+13, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1024, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1023, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1023, 0x1.fep+7, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1023, 0x1.fff8p+13, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1023, 0x1.fffcp+14, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.ffffffffffffcp-1023, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.ffffffffffffep-1023, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1022, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1022, 0x1.8p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1022, 0x1.01p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1022, 0x1.fff8p+13, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.0000000000001p-1022, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.0000000000001p-1022, 0x1p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.0000000000001p-1022, 0x1.fff8p+14, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.0000000000002p-1022, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1021, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1021, 0x1.fff8p+13, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1020, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-54, 0x1.f8p+7, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-53, 0x1p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-53, 0x1.01p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-52, 0x1.04p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-52, 0x1.19p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-16, 0x1p+10, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+1, -0x1.0ccp+10, 0x0p+0, -0x1p-1, INEXACT|UNDERFLOW) +T(RN, 0x1.4p+3, -0x1.45p+8, 0x0p+0, -0x1.4b9da8p-6, INEXACT|UNDERFLOW) +T(RN, 0x1p+6, -0x1.56ap+11, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+16, -0x1.ff8p+9, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+16, -0x1p+10, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+16, -0x1.004p+10, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+1020, -0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+1021, -0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.ffffffffffffcp+1021, -0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.ffffffffffffep+1021, -0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+1022, -0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.0000000000001p+1022, -0x1p+0, 0x1.ffffffffffffep-1023, -0x1p-52, INEXACT|UNDERFLOW) +T(RN, 0x1.0000000000001p+1022, -0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+1023, -0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+1023, -0x1.8p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+1023, -0x1.fep+7, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+1023, -0x1p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+1023, -0x1.01p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+1023, -0x1.04p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+1023, -0x1.05p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+1023, -0x1.fffcp+14, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+1023, -0x1p+15, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.ffffffffffff8p+1023, -0x1p+0, 0x1.0000000000004p-1024, -0x1p-50, INEXACT|UNDERFLOW) +T(RN, 0x1.ffffffffffff8p+1023, -0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1074, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1074, 0x1.8p+1, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1074, 0x1.01p+8, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1074, 0x1.fff8p+13, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1074, 0x1.fff8p+14, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1073, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1073, 0x1p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1.8p-1073, 0x1.fep+7, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1.8p-1073, 0x1.fff8p+13, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1.8p-1073, 0x1.fffcp+14, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1024, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1023, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1023, 0x1.01p+8, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1023, 0x1.fff8p+13, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffffffffffcp-1023, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffffffffffep-1023, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1022, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1022, 0x1.8p+1, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1022, 0x1p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1022, 0x1.fff8p+13, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1022, 0x1.fff8p+14, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.0000000000001p-1022, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.0000000000001p-1022, 0x1.fep+7, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.0000000000001p-1022, 0x1.fffcp+14, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.0000000000002p-1022, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1021, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1021, 0x1.fff8p+13, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1020, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-54, 0x1.f8p+7, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-53, 0x1p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-53, 0x1.01p+8, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-52, 0x1.04p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-52, 0x1.19p+8, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+1, -0x1.0ccp+10, -0x0p+0, 0x1p-1, INEXACT|UNDERFLOW) +T(RN, -0x1.4p+3, -0x1.45p+8, -0x0p+0, 0x1.4b9da8p-6, INEXACT|UNDERFLOW) +T(RN, -0x1p+6, -0x1.56ap+11, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+16, -0x1.ff8p+9, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+16, -0x1p+10, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+1020, -0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+1021, -0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffffffffffcp+1021, -0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffffffffffep+1021, -0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+1022, -0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.0000000000001p+1022, -0x1p+0,-0x1.ffffffffffffep-1023, 0x1p-52, INEXACT|UNDERFLOW) +T(RN,-0x1.0000000000001p+1022, -0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+1023, -0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+1023, -0x1.8p+1, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+1023, -0x1.fep+7, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+1023, -0x1p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+1023, -0x1.01p+8, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+1023, -0x1.04p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+1023, -0x1.05p+8, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+1023, -0x1.fffcp+14, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+1023, -0x1p+15, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffffffffff8p+1023, -0x1p+0,-0x1.0000000000004p-1024, 0x1p-50, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffffffffff8p+1023, -0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-1074, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-1074, nan, nan, 0x0p+0, 0) +T(RN, 0x1.8p-1073, nan, nan, 0x0p+0, 0) +T(RN, 0x1.8p-1073, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-1023, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-1023, nan, nan, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep-1023, nan, nan, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep-1023, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-1022, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-1022, nan, nan, 0x0p+0, 0) +T(RN, 0x1.0000000000001p-1022, nan, nan, 0x0p+0, 0) +T(RN, 0x1.0000000000001p-1022, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-1021, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-1021, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-52, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-52, nan, nan, 0x0p+0, 0) +T(RN, 0x1.0000000000001p-52, nan, nan, 0x0p+0, 0) +T(RN, 0x1.0000000000001p-52, nan, nan, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp-1, nan, nan, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp-1, nan, nan, 0x0p+0, 0) +T(RN, 0x1p+0, nan, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+0, nan, nan, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+0, nan, nan, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+0, nan, nan, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+0, nan, nan, 0x0p+0, 0) +T(RN, 0x1p+1, nan, nan, 0x0p+0, 0) +T(RN, 0x1p+1, nan, nan, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+1, nan, nan, 0x0p+0, 0) +T(RN, 0x1.0000000000001p+1, nan, nan, 0x0p+0, 0) +T(RN, 0x1.fep+7, nan, nan, 0x0p+0, 0) +T(RN, 0x1.fep+7, nan, nan, 0x0p+0, 0) +T(RN, 0x1p+8, nan, nan, 0x0p+0, 0) +T(RN, 0x1p+8, nan, nan, 0x0p+0, 0) +T(RN, 0x1.01p+8, nan, nan, 0x0p+0, 0) +T(RN, 0x1.01p+8, nan, nan, 0x0p+0, 0) +T(RN, 0x1p+1023, nan, nan, 0x0p+0, 0) +T(RN, 0x1p+1023, nan, nan, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1023, nan, nan, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp+1023, nan, nan, 0x0p+0, 0) +T(RN, inf, nan, nan, 0x0p+0, 0) +T(RN, nan, 0x1.8p-1073, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-1023, nan, 0x0p+0, 0) +T(RN, nan, 0x1.ffffffffffffep-1023, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-1022, nan, 0x0p+0, 0) +T(RN, nan, 0x1.0000000000001p-1022, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-1021, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-52, nan, 0x0p+0, 0) +T(RN, nan, 0x1.0000000000001p-52, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-1, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fffffffffffffp-1, nan, 0x0p+0, 0) +T(RN, nan, 0x1.0000000000001p+0, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fffffffffffffp+0, nan, 0x0p+0, 0) +T(RN, nan, 0x1p+1, nan, 0x0p+0, 0) +T(RN, nan, 0x1.0000000000001p+1, nan, 0x0p+0, 0) +T(RN, nan, 0x1.8p+1, nan, 0x0p+0, 0) +T(RN, nan, 0x1.2p+3, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fep+7, nan, 0x0p+0, 0) +T(RN, nan, 0x1p+8, nan, 0x0p+0, 0) +T(RN, nan, 0x1.01p+8, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fff8p+13, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fffcp+14, nan, 0x0p+0, 0) +T(RN, nan, 0x1p+1023, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fffffffffffffp+1023, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-1074, nan, 0x0p+0, 0) +T(RN, nan, -0x1.8p-1073, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-1023, nan, 0x0p+0, 0) +T(RN, nan,-0x1.ffffffffffffep-1023, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-1022, nan, 0x0p+0, 0) +T(RN, nan,-0x1.0000000000001p-1022, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-1021, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-52, nan, 0x0p+0, 0) +T(RN, nan, -0x1.0000000000001p-52, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-1, nan, 0x0p+0, 0) +T(RN, nan, -0x1.fffffffffffffp-1, nan, 0x0p+0, 0) +T(RN, nan, -0x1p+0, nan, 0x0p+0, 0) +T(RN, nan, -0x1.0000000000001p+0, nan, 0x0p+0, 0) +T(RN, nan, -0x1.fffffffffffffp+0, nan, 0x0p+0, 0) +T(RN, nan, -0x1p+1, nan, 0x0p+0, 0) +T(RN, nan, -0x1.0000000000001p+1, nan, 0x0p+0, 0) +T(RN, nan, -0x1.8p+1, nan, 0x0p+0, 0) +T(RN, nan, -0x1.2p+3, nan, 0x0p+0, 0) +T(RN, nan, -0x1.fep+7, nan, 0x0p+0, 0) +T(RN, nan, -0x1p+8, nan, 0x0p+0, 0) +T(RN, nan, -0x1.01p+8, nan, 0x0p+0, 0) +T(RN, nan, -0x1.fff8p+13, nan, 0x0p+0, 0) +T(RN, nan, -0x1.fffcp+14, nan, 0x0p+0, 0) +T(RN, nan, -0x1p+1023, nan, 0x0p+0, 0) +T(RN, nan,-0x1.fffffffffffffp+1023, nan, 0x0p+0, 0) +T(RN, nan, nan, nan, 0x0p+0, 0) +T(RN, -0x0p+0, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-1074, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-1074, nan, nan, 0x0p+0, 0) +T(RN, -0x1.8p-1073, nan, nan, 0x0p+0, 0) +T(RN, -0x1.8p-1073, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-1023, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-1023, nan, nan, 0x0p+0, 0) +T(RN,-0x1.ffffffffffffep-1023, nan, nan, 0x0p+0, 0) +T(RN,-0x1.ffffffffffffep-1023, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-1022, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-1022, nan, nan, 0x0p+0, 0) +T(RN,-0x1.0000000000001p-1022, nan, nan, 0x0p+0, 0) +T(RN,-0x1.0000000000001p-1022, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-1021, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-1021, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-52, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-52, nan, nan, 0x0p+0, 0) +T(RN, -0x1.0000000000001p-52, nan, nan, 0x0p+0, 0) +T(RN, -0x1.0000000000001p-52, nan, nan, 0x0p+0, 0) +T(RN, -0x1.fffffffffffffp-1, nan, nan, 0x0p+0, 0) +T(RN, -0x1.fffffffffffffp-1, nan, nan, 0x0p+0, 0) +T(RN, -0x1p+0, nan, nan, 0x0p+0, 0) +T(RN, -0x1.0000000000001p+0, nan, nan, 0x0p+0, 0) +T(RN, -0x1.0000000000001p+0, nan, nan, 0x0p+0, 0) +T(RN, -0x1.fffffffffffffp+0, nan, nan, 0x0p+0, 0) +T(RN, -0x1.fffffffffffffp+0, nan, nan, 0x0p+0, 0) +T(RN, -0x1p+1, nan, nan, 0x0p+0, 0) +T(RN, -0x1p+1, nan, nan, 0x0p+0, 0) +T(RN, -0x1.0000000000001p+1, nan, nan, 0x0p+0, 0) +T(RN, -0x1.0000000000001p+1, nan, nan, 0x0p+0, 0) +T(RN, -0x1.fep+7, nan, nan, 0x0p+0, 0) +T(RN, -0x1.fep+7, nan, nan, 0x0p+0, 0) +T(RN, -0x1p+8, nan, nan, 0x0p+0, 0) +T(RN, -0x1p+8, nan, nan, 0x0p+0, 0) +T(RN, -0x1.01p+8, nan, nan, 0x0p+0, 0) +T(RN, -0x1.01p+8, nan, nan, 0x0p+0, 0) +T(RN, -0x1p+1023, nan, nan, 0x0p+0, 0) +T(RN, -0x1p+1023, nan, nan, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023, nan, nan, 0x0p+0, 0) +T(RN,-0x1.fffffffffffffp+1023, nan, nan, 0x0p+0, 0) +T(RN, -inf, nan, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-1074, nan, 0x0p+0, 0) +T(RN, nan, 0x1.8p-1073, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-1023, nan, 0x0p+0, 0) +T(RN, nan, 0x1.ffffffffffffep-1023, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-1022, nan, 0x0p+0, 0) +T(RN, nan, 0x1.0000000000001p-1022, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-1021, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-52, nan, 0x0p+0, 0) +T(RN, nan, 0x1.0000000000001p-52, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-1, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fffffffffffffp-1, nan, 0x0p+0, 0) +T(RN, nan, 0x1.0000000000001p+0, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fffffffffffffp+0, nan, 0x0p+0, 0) +T(RN, nan, 0x1p+1, nan, 0x0p+0, 0) +T(RN, nan, 0x1.0000000000001p+1, nan, 0x0p+0, 0) +T(RN, nan, 0x1.8p+1, nan, 0x0p+0, 0) +T(RN, nan, 0x1.2p+3, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fep+7, nan, 0x0p+0, 0) +T(RN, nan, 0x1p+8, nan, 0x0p+0, 0) +T(RN, nan, 0x1.01p+8, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fff8p+13, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fffcp+14, nan, 0x0p+0, 0) +T(RN, nan, 0x1p+1023, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fffffffffffffp+1023, nan, 0x0p+0, 0) +T(RN, nan, inf, nan, 0x0p+0, 0) +T(RN, nan, nan, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-1074, nan, 0x0p+0, 0) +T(RN, nan, -0x1.8p-1073, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-1023, nan, 0x0p+0, 0) +T(RN, nan,-0x1.ffffffffffffep-1023, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-1022, nan, 0x0p+0, 0) +T(RN, nan,-0x1.0000000000001p-1022, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-1021, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-52, nan, 0x0p+0, 0) +T(RN, nan, -0x1.0000000000001p-52, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-1, nan, 0x0p+0, 0) +T(RN, nan, -0x1.fffffffffffffp-1, nan, 0x0p+0, 0) +T(RN, nan, -0x1.0000000000001p+0, nan, 0x0p+0, 0) +T(RN, nan, -0x1.fffffffffffffp+0, nan, 0x0p+0, 0) +T(RN, nan, -0x1p+1, nan, 0x0p+0, 0) +T(RN, nan, -0x1.0000000000001p+1, nan, 0x0p+0, 0) +T(RN, nan, -0x1.8p+1, nan, 0x0p+0, 0) +T(RN, nan, -0x1.2p+3, nan, 0x0p+0, 0) +T(RN, nan, -0x1.fep+7, nan, 0x0p+0, 0) +T(RN, nan, -0x1p+8, nan, 0x0p+0, 0) +T(RN, nan, -0x1.01p+8, nan, 0x0p+0, 0) +T(RN, nan, -0x1.fff8p+13, nan, 0x0p+0, 0) +T(RN, nan, -0x1.fffcp+14, nan, 0x0p+0, 0) +T(RN, nan, -0x1p+1023, nan, 0x0p+0, 0) +T(RN, nan,-0x1.fffffffffffffp+1023, nan, 0x0p+0, 0) +T(RN, nan, -inf, nan, 0x0p+0, 0) +T(RN, nan, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-1074, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1074, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1073, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1073, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.4p-1072, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.4p-1072, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.cp-1072, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.cp-1072, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.2p-1071, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.2p-1071, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1024, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1023, 0x1p-12, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1023, 0x1p-10, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1023, 0x1p-8, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1023, 0x1p-7, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1023, 0x1p-4, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1023, 0x1p-2, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffffffffeep-1023, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffffffffeep-1023, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffff2p-1023, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffff2p-1023, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffff8p-1023, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffff8p-1023, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffap-1023, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffap-1023, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffcp-1023, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffcp-1023, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffep-1023, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffep-1023, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffdp-1022, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffdp-1022, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1021, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1021, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.0000000000001p-1021, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.0000000000001p-1021, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-53, 0x1p-6, nan, 0x0p+0, INVALID) +T(RN, -0x1p-53, 0x1p-5, nan, 0x0p+0, INVALID) +T(RN, -0x1p-53, 0x1p-4, nan, 0x0p+0, INVALID) +T(RN, -0x1p-53, 0x1p-3, nan, 0x0p+0, INVALID) +T(RN, -0x1p-53, 0x1p-2, nan, 0x0p+0, INVALID) +T(RN, -0x1p-52, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-52, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-51, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-51, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.8p-51, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.8p-51, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-14, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-4, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p+0, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p+0, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000001p+0, 0x1.fffffffffffffp-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000001p+0, 0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000001p+0, 0x1.fffffffffffffp+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000001p+0, 0x1.0000000000001p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000001p+0, 0x1.7fffffffffffep+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000001p+0, 0x1.8000000000002p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000001p+0, -0x1.fffffffffffffp-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000001p+0, -0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000001p+0, -0x1.fffffffffffffp+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000001p+0, -0x1.0000000000001p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000001p+0, -0x1.7fffffffffffep+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000001p+0, -0x1.8000000000002p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000002p+0, 0x1.fffffffffffffp-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000002p+0, 0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000002p+0, 0x1.fffffffffffffp+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000002p+0, 0x1.0000000000001p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000002p+0, 0x1.7fffffffffffep+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000002p+0, 0x1.8000000000002p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000002p+0, -0x1.fffffffffffffp-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000002p+0, -0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000002p+0, -0x1.fffffffffffffp+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000002p+0, -0x1.0000000000001p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000002p+0, -0x1.7fffffffffffep+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000002p+0, -0x1.8000000000002p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000003p+0, 0x1.fffffffffffffp-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000003p+0, 0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000003p+0, 0x1.fffffffffffffp+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000003p+0, 0x1.0000000000001p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000003p+0, 0x1.7fffffffffffep+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000003p+0, 0x1.8000000000002p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000003p+0, -0x1.fffffffffffffp-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000003p+0, -0x1.0000000000001p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000003p+0, -0x1.fffffffffffffp+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000003p+0, -0x1.0000000000001p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000003p+0, -0x1.7fffffffffffep+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000003p+0, -0x1.8000000000002p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000002p+1, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000002p+1, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.8000000000004p+1, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.8000000000004p+1, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.ffffffffffffbp+1, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.ffffffffffffbp+1, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p+2, 0x1.6p+2, nan, 0x0p+0, INVALID) +T(RN, -0x1p+2, 0x1.89ep+10, nan, 0x0p+0, INVALID) +T(RN, -0x1p+2, 0x1.fffep+14, nan, 0x0p+0, INVALID) +T(RN, -0x1p+8, 0x1.8p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1p+10, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p+10, 0x1.8p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1p+14, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p+94, -0x1.8p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1p+700, -0x1.8p+0, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffcp+1021, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffcp+1021, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.0000000000002p+1022, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.0000000000002p+1022, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffffffffffp+1022, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffffffffffp+1022, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.0000000000002p+1023, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.0000000000002p+1023, -0x1p-1, nan, 0x0p+0, INVALID) +T(RU, 0x0p+0, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1p-32, 0x1p+1, 0x1p-64, 0x0p+0, 0) +T(RU, 0x1p-31, 0x1p+1, 0x1p-62, 0x0p+0, 0) +T(RU, 0x1p-2, 0x1p+1, 0x1p-4, 0x0p+0, 0) +T(RU, 0x1p-1, 0x1p+1, 0x1p-2, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1p+1, 0x1p+1, 0x1p+2, 0x0p+0, 0) +T(RU, 0x1.8p+1, 0x1p+1, 0x1.2p+3, 0x0p+0, 0) +T(RU, 0x1p+2, 0x1p+1, 0x1p+4, 0x0p+0, 0) +T(RU, 0x1.fep+7, 0x1p+1, 0x1.fc02p+15, 0x0p+0, 0) +T(RU, 0x1p+8, 0x1p+1, 0x1p+16, 0x0p+0, 0) +T(RU, 0x1.01p+8, 0x1p+1, 0x1.0201p+16, 0x0p+0, 0) +T(RU, inf, 0x1p+1, inf, 0x0p+0, 0) +T(RU, -0x0p+0, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RU, -0x1p-32, 0x1p+1, 0x1p-64, 0x0p+0, 0) +T(RU, -0x1p-31, 0x1p+1, 0x1p-62, 0x0p+0, 0) +T(RU, -0x1p-2, 0x1p+1, 0x1p-4, 0x0p+0, 0) +T(RU, -0x1p-1, 0x1p+1, 0x1p-2, 0x0p+0, 0) +T(RU, -0x1p+0, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+1, 0x1p+1, 0x1p+2, 0x0p+0, 0) +T(RU, -0x1.8p+1, 0x1p+1, 0x1.2p+3, 0x0p+0, 0) +T(RU, -0x1p+2, 0x1p+1, 0x1p+4, 0x0p+0, 0) +T(RU, -0x1.fep+7, 0x1p+1, 0x1.fc02p+15, 0x0p+0, 0) +T(RU, -0x1p+8, 0x1p+1, 0x1p+16, 0x0p+0, 0) +T(RU, -0x1.01p+8, 0x1p+1, 0x1.0201p+16, 0x0p+0, 0) +T(RU, -inf, 0x1p+1, inf, 0x0p+0, 0) +T(RU, 0x1.ffffffffffffap-1, 0x1p+1, 0x1.ffffffffffff5p-1, 0x1p+0, INEXACT) +T(RU, 0x1.ffffffffffffcp-1, 0x1p+1, 0x1.ffffffffffff9p-1, 0x1p+0, INEXACT) +T(RU, 0x1.ffffffffffffep-1, 0x1p+1, 0x1.ffffffffffffdp-1, 0x1p+0, INEXACT) +T(RU, 0x1.fffffffffffffp-1, 0x1p+1, 0x1.fffffffffffffp-1, 0x1p+0, INEXACT) +T(RU, 0x1.0000000000001p+0, 0x1p+1, 0x1.0000000000003p+0, 0x1p+0, INEXACT) +T(RU, 0x1.0000000000002p+0, 0x1p+1, 0x1.0000000000005p+0, 0x1p+0, INEXACT) +T(RU, 0x1.0000000000004p+0, 0x1p+1, 0x1.0000000000009p+0, 0x1p+0, INEXACT) +T(RU, 0x1.0000000000001p+2, 0x1p+1, 0x1.0000000000003p+4, 0x1p+0, INEXACT) +T(RU, 0x1.0000000000002p+2, 0x1p+1, 0x1.0000000000005p+4, 0x1p+0, INEXACT) +T(RU, -0x1.ffffffffffffap-1, 0x1p+1, 0x1.ffffffffffff5p-1, 0x1p+0, INEXACT) +T(RU, -0x1.ffffffffffffcp-1, 0x1p+1, 0x1.ffffffffffff9p-1, 0x1p+0, INEXACT) +T(RU, -0x1.ffffffffffffep-1, 0x1p+1, 0x1.ffffffffffffdp-1, 0x1p+0, INEXACT) +T(RU, -0x1.fffffffffffffp-1, 0x1p+1, 0x1.fffffffffffffp-1, 0x1p+0, INEXACT) +T(RU, -0x1.0000000000001p+0, 0x1p+1, 0x1.0000000000003p+0, 0x1p+0, INEXACT) +T(RU, -0x1.0000000000002p+0, 0x1p+1, 0x1.0000000000005p+0, 0x1p+0, INEXACT) +T(RU, -0x1.0000000000004p+0, 0x1p+1, 0x1.0000000000009p+0, 0x1p+0, INEXACT) +T(RU, 0x1p+1015, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+1022, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+1023, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.ffffffffffffep+1023, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.fffffffffffffp+1023, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, -0x1p+1015, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, -0x1p+1022, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, -0x1p+1023, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU,-0x1.ffffffffffffep+1023, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU,-0x1.fffffffffffffp+1023, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p-1074, 0x1p+1, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1073, 0x1p+1, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1024, 0x1p+1, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1023, 0x1p+1, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.ffffffffffffcp-1023, 0x1p+1, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.ffffffffffffep-1023, 0x1p+1, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1022, 0x1p+1, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.0000000000001p-1022, 0x1p+1, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.0000000000002p-1022, 0x1p+1, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1021, 0x1p+1, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1020, 0x1p+1, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1074, 0x1p+1, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1073, 0x1p+1, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1024, 0x1p+1, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1023, 0x1p+1, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.ffffffffffffcp-1023, 0x1p+1, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.ffffffffffffep-1023, 0x1p+1, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1022, 0x1p+1, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.0000000000001p-1022, 0x1p+1, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.0000000000002p-1022, 0x1p+1, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1021, 0x1p+1, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1020, 0x1p+1, 0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, nan, 0x1p+1, nan, 0x0p+0, 0) +T(RU, nan, 0x1p+1, nan, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p-32, 0x1p+1, 0x1p-64, 0x0p+0, 0) +T(RZ, 0x1p-31, 0x1p+1, 0x1p-62, 0x0p+0, 0) +T(RZ, 0x1p-2, 0x1p+1, 0x1p-4, 0x0p+0, 0) +T(RZ, 0x1p-1, 0x1p+1, 0x1p-2, 0x0p+0, 0) +T(RZ, 0x1p+0, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1p+1, 0x1p+1, 0x1p+2, 0x0p+0, 0) +T(RZ, 0x1.8p+1, 0x1p+1, 0x1.2p+3, 0x0p+0, 0) +T(RZ, 0x1p+2, 0x1p+1, 0x1p+4, 0x0p+0, 0) +T(RZ, 0x1.fep+7, 0x1p+1, 0x1.fc02p+15, 0x0p+0, 0) +T(RZ, 0x1p+8, 0x1p+1, 0x1p+16, 0x0p+0, 0) +T(RZ, 0x1.01p+8, 0x1p+1, 0x1.0201p+16, 0x0p+0, 0) +T(RZ, inf, 0x1p+1, inf, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x1p-32, 0x1p+1, 0x1p-64, 0x0p+0, 0) +T(RZ, -0x1p-31, 0x1p+1, 0x1p-62, 0x0p+0, 0) +T(RZ, -0x1p-2, 0x1p+1, 0x1p-4, 0x0p+0, 0) +T(RZ, -0x1p-1, 0x1p+1, 0x1p-2, 0x0p+0, 0) +T(RZ, -0x1p+0, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x1p+1, 0x1p+1, 0x1p+2, 0x0p+0, 0) +T(RZ, -0x1.8p+1, 0x1p+1, 0x1.2p+3, 0x0p+0, 0) +T(RZ, -0x1p+2, 0x1p+1, 0x1p+4, 0x0p+0, 0) +T(RZ, -0x1.fep+7, 0x1p+1, 0x1.fc02p+15, 0x0p+0, 0) +T(RZ, -0x1p+8, 0x1p+1, 0x1p+16, 0x0p+0, 0) +T(RZ, -0x1.01p+8, 0x1p+1, 0x1.0201p+16, 0x0p+0, 0) +T(RZ, -inf, 0x1p+1, inf, 0x0p+0, 0) +T(RZ, 0x1.ffffffffffffap-1, 0x1p+1, 0x1.ffffffffffff4p-1, -0x1.2p-48, INEXACT) +T(RZ, 0x1.ffffffffffffcp-1, 0x1p+1, 0x1.ffffffffffff8p-1, -0x1p-49, INEXACT) +T(RZ, 0x1.ffffffffffffep-1, 0x1p+1, 0x1.ffffffffffffcp-1, -0x1p-51, INEXACT) +T(RZ, 0x1.fffffffffffffp-1, 0x1p+1, 0x1.ffffffffffffep-1, -0x1p-53, INEXACT) +T(RZ, 0x1.0000000000001p+0, 0x1p+1, 0x1.0000000000002p+0, -0x1p-52, INEXACT) +T(RZ, 0x1.0000000000002p+0, 0x1p+1, 0x1.0000000000004p+0, -0x1p-50, INEXACT) +T(RZ, 0x1.0000000000004p+0, 0x1p+1, 0x1.0000000000008p+0, -0x1p-48, INEXACT) +T(RZ, 0x1.0000000000001p+2, 0x1p+1, 0x1.0000000000002p+4, -0x1p-52, INEXACT) +T(RZ, 0x1.0000000000002p+2, 0x1p+1, 0x1.0000000000004p+4, -0x1p-50, INEXACT) +T(RZ, -0x1.ffffffffffffap-1, 0x1p+1, 0x1.ffffffffffff4p-1, -0x1.2p-48, INEXACT) +T(RZ, -0x1.ffffffffffffcp-1, 0x1p+1, 0x1.ffffffffffff8p-1, -0x1p-49, INEXACT) +T(RZ, -0x1.ffffffffffffep-1, 0x1p+1, 0x1.ffffffffffffcp-1, -0x1p-51, INEXACT) +T(RZ, -0x1.fffffffffffffp-1, 0x1p+1, 0x1.ffffffffffffep-1, -0x1p-53, INEXACT) +T(RZ, -0x1.0000000000001p+0, 0x1p+1, 0x1.0000000000002p+0, -0x1p-52, INEXACT) +T(RZ, -0x1.0000000000002p+0, 0x1p+1, 0x1.0000000000004p+0, -0x1p-50, INEXACT) +T(RZ, -0x1.0000000000004p+0, 0x1p+1, 0x1.0000000000008p+0, -0x1p-48, INEXACT) +T(RZ, 0x1p+1015, 0x1p+1, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+1022, 0x1p+1, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+1023, 0x1p+1, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.ffffffffffffep+1023, 0x1p+1, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.fffffffffffffp+1023, 0x1p+1, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1p+1015, 0x1p+1, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1p+1022, 0x1p+1, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1p+1023, 0x1p+1, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ,-0x1.ffffffffffffep+1023, 0x1p+1, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ,-0x1.fffffffffffffp+1023, 0x1p+1, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p-1074, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1073, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1024, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1023, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.ffffffffffffcp-1023, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.ffffffffffffep-1023, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1022, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.0000000000001p-1022, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.0000000000002p-1022, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1021, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1020, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1074, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1073, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1024, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1023, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.ffffffffffffcp-1023, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.ffffffffffffep-1023, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1022, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.0000000000001p-1022, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.0000000000002p-1022, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1021, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1020, 0x1p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RZ, nan, 0x1p+1, nan, 0x0p+0, 0) +T(RZ, nan, 0x1p+1, nan, 0x0p+0, 0) diff --git a/test/musl/src/math/ucb/powf.h b/test/musl/src/math/ucb/powf.h new file mode 100644 index 00000000..c0d7747c --- /dev/null +++ b/test/musl/src/math/ucb/powf.h @@ -0,0 +1,1804 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// anything **0 is 1 +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, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x0p+0, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-126, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-126, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-126, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-126, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.fffffep+127, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN,-0x1.fffffep+127, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.fffffep+127, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN,-0x1.fffffep+127, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1p-126, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x1p-126, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1p-126, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x1p-126, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1.fffffep+127, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ,-0x1.fffffep+127, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1.fffffep+127, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ,-0x1.fffffep+127, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x0p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, 0x0p+0, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1p-126, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p-126, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1p-126, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p-126, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1.fffffep+127, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU,-0x1.fffffep+127, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1.fffffep+127, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU,-0x1.fffffep+127, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x0p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, 0x0p+0, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1p-126, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p-126, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1p-126, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p-126, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1.fffffep+127, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD,-0x1.fffffep+127, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1.fffffep+127, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD,-0x1.fffffep+127, -0x0p+0, 0x1p+0, 0x0p+0, 0) +// anything**1 is itself +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-126, 0x1p+0, 0x1p-126, 0x0p+0, 0) +T(RN, -0x1p-126, 0x1p+0, -0x1p-126, 0x0p+0, 0) +T(RN, 0x1.fffffep+127, 0x1p+0, 0x1.fffffep+127, 0x0p+0, 0) +T(RN,-0x1.fffffep+127, 0x1p+0,-0x1.fffffep+127, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p-126, 0x1p+0, 0x1p-126, 0x0p+0, 0) +T(RZ, -0x1p-126, 0x1p+0, -0x1p-126, 0x0p+0, 0) +T(RZ, 0x1.fffffep+127, 0x1p+0, 0x1.fffffep+127, 0x0p+0, 0) +T(RZ,-0x1.fffffep+127, 0x1p+0,-0x1.fffffep+127, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, 0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x1p-126, 0x1p+0, 0x1p-126, 0x0p+0, 0) +T(RU, -0x1p-126, 0x1p+0, -0x1p-126, 0x0p+0, 0) +T(RU, 0x1.fffffep+127, 0x1p+0, 0x1.fffffep+127, 0x0p+0, 0) +T(RU,-0x1.fffffep+127, 0x1p+0,-0x1.fffffep+127, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, 0x1p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x1p-126, 0x1p+0, 0x1p-126, 0x0p+0, 0) +T(RD, -0x1p-126, 0x1p+0, -0x1p-126, 0x0p+0, 0) +T(RD, 0x1.fffffep+127, 0x1p+0, 0x1.fffffep+127, 0x0p+0, 0) +T(RD,-0x1.fffffep+127, 0x1p+0,-0x1.fffffep+127, 0x0p+0, 0) +// +-0**x +T(RN, 0x0p+0, 0x1.fffffep+127, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1p-126, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1.fffffep+127, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1.1p+4, -0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1p-126, 0x0p+0, 0x0p+0, 0) +// (-anything) ** (integer) (-1.1**101) +T(RN, -0x1.19999ap+0, 0x1.94p+6, -0x1.d9b5a8p+13, -0x1.1e972cp-2, INEXACT) +T(RZ, -0x1.19999ap+0, 0x1.94p+6, -0x1.d9b5a6p+13, 0x1.70b46ap-1, INEXACT) +T(RU, -0x1.19999ap+0, 0x1.94p+6, -0x1.d9b5a6p+13, 0x1.70b46ap-1, INEXACT) +T(RD, -0x1.19999ap+0, 0x1.94p+6, -0x1.d9b5a8p+13, -0x1.1e972cp-2, INEXACT) +// some integer ** integer +T(RN, 0x1.3p+4, 0x1.4p+2, 0x1.2e4218p+21, 0x0p+0, 0) +T(RN, -0x1.3p+4, 0x1.4p+2, -0x1.2e4218p+21, 0x0p+0, 0) +T(RN, -0x1.82p+7, 0x1.8p+1, -0x1.b6c904p+22, 0x0p+0, 0) +T(RN, -0x1.2c4p+10, 0x1p+1, 0x1.60261p+20, 0x0p+0, 0) +// random arguments between 0 20 +T(RN, 0x1.d406dcp+2, 0x1.11f4dp+4, 0x1.1bc4b6p+49, -0x1.331b22p-3, INEXACT) +T(RN, 0x1.2cdf3p+4, 0x1.a9254p+1, 0x1.0ad168p+14, 0x1.379a4ap-2, INEXACT) +T(RN, 0x1.d29f3ep+2, 0x1.336d32p+3, 0x1.72eac4p+27, -0x1.b76b4cp-4, INEXACT) +T(RN, 0x1.f910eep+3, 0x1.28d064p+4, 0x1.c9cd8ap+73, 0x1.7805e4p-4, INEXACT) +T(RN, 0x1.0a37c2p+3, 0x1.add484p-2, 0x1.377964p+1, 0x1.3c933cp-7, INEXACT) +T(RN, 0x1.75332p+2, 0x1.4eca22p+3, 0x1.87bb48p+26, -0x1.753c02p-10, INEXACT) +T(RN, 0x1.35381p+1, 0x1.11f2f2p+4, 0x1.b9cd02p+21, 0x1.2f4d66p-2, INEXACT) +T(RN, 0x1.39f14ep-5, 0x1.70c85ep-7, 0x1.ed8bccp-1, -0x1.efb76ap-2, INEXACT) +T(RN, 0x1.5c9022p+2, 0x1.fa1212p+3, 0x1.97afb6p+38, -0x1.9cbb96p-2, INEXACT) +T(RN, 0x1.9bd94ep+3, 0x1.ddfeb8p+3, 0x1.0a9d98p+55, 0x1.abd6bp-4, INEXACT) +// anything **0 is 1 +T(RN, nan, 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-149, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-149, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, nan, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, nan, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, inf, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, -inf, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1p-149, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x1p-149, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, nan, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, nan, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, inf, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -inf, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1p-149, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p-149, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, nan, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, nan, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, inf, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -inf, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1p-149, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p-149, 0x0p+0, 0x1p+0, 0x0p+0, 0) +// anything**1 is itself +T(RN, nan, 0x1p+0, nan, 0x0p+0, 0) +T(RN, nan, 0x1p+0, nan, 0x0p+0, 0) +T(RN, inf, 0x1p+0, inf, 0x0p+0, 0) +T(RN, -inf, 0x1p+0, -inf, 0x0p+0, 0) +// (anything except 1)**nan is nan +T(RN, nan, nan, nan, 0x0p+0, 0) +T(RN, inf, nan, nan, 0x0p+0, 0) +T(RN, -inf, nan, nan, 0x0p+0, 0) +T(RN, 0x1p+0, nan, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+0, nan, nan, 0x0p+0, 0) +T(RN, -0x0p+0, nan, nan, 0x0p+0, 0) +T(RN, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, nan, 0x0p+0, 0) +T(RZ, inf, nan, nan, 0x0p+0, 0) +T(RZ, -inf, nan, nan, 0x0p+0, 0) +T(RZ, 0x1p+0, nan, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x1p+0, nan, nan, 0x0p+0, 0) +T(RZ, -0x0p+0, nan, nan, 0x0p+0, 0) +T(RZ, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, nan, 0x0p+0, 0) +T(RU, inf, nan, nan, 0x0p+0, 0) +T(RU, -inf, nan, nan, 0x0p+0, 0) +T(RU, 0x1p+0, nan, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, nan, nan, 0x0p+0, 0) +T(RU, -0x0p+0, nan, nan, 0x0p+0, 0) +T(RU, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, nan, 0x0p+0, 0) +T(RD, inf, nan, nan, 0x0p+0, 0) +T(RD, -inf, nan, nan, 0x0p+0, 0) +T(RD, 0x1p+0, nan, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, nan, nan, 0x0p+0, 0) +T(RD, -0x0p+0, nan, nan, 0x0p+0, 0) +T(RD, 0x0p+0, nan, nan, 0x0p+0, 0) +// nan**(anything except 0) is nan +T(RN, nan, inf, nan, 0x0p+0, 0) +T(RN, nan, -inf, nan, 0x0p+0, 0) +T(RN, nan, -0x1p+0, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-149, nan, 0x0p+0, 0) +T(RZ, nan, inf, nan, 0x0p+0, 0) +T(RZ, nan, -inf, nan, 0x0p+0, 0) +T(RZ, nan, 0x1p+0, nan, 0x0p+0, 0) +T(RZ, nan, -0x1p+0, nan, 0x0p+0, 0) +T(RZ, nan, 0x1p-149, nan, 0x0p+0, 0) +T(RU, nan, inf, nan, 0x0p+0, 0) +T(RU, nan, -inf, nan, 0x0p+0, 0) +T(RU, nan, 0x1p+0, nan, 0x0p+0, 0) +T(RU, nan, -0x1p+0, nan, 0x0p+0, 0) +T(RU, nan, 0x1p-149, nan, 0x0p+0, 0) +T(RD, nan, inf, nan, 0x0p+0, 0) +T(RD, nan, -inf, nan, 0x0p+0, 0) +T(RD, nan, 0x1p+0, nan, 0x0p+0, 0) +T(RD, nan, -0x1p+0, nan, 0x0p+0, 0) +T(RD, nan, 0x1p-149, nan, 0x0p+0, 0) +// +-(x > 1) ** +inf is +inf +T(RN, 0x1.000002p+0, inf, inf, 0x0p+0, 0) +T(RN, inf, inf, inf, 0x0p+0, 0) +T(RN, -0x1.000002p+0, inf, inf, 0x0p+0, 0) +T(RN, -inf, inf, inf, 0x0p+0, 0) +T(RZ, 0x1.000002p+0, inf, inf, 0x0p+0, 0) +T(RZ, inf, inf, inf, 0x0p+0, 0) +T(RZ, -0x1.000002p+0, inf, inf, 0x0p+0, 0) +T(RZ, -inf, inf, inf, 0x0p+0, 0) +T(RU, 0x1.000002p+0, inf, inf, 0x0p+0, 0) +T(RU, inf, inf, inf, 0x0p+0, 0) +T(RU, -0x1.000002p+0, inf, inf, 0x0p+0, 0) +T(RU, -inf, inf, inf, 0x0p+0, 0) +T(RD, 0x1.000002p+0, inf, inf, 0x0p+0, 0) +T(RD, inf, inf, inf, 0x0p+0, 0) +T(RD, -0x1.000002p+0, inf, inf, 0x0p+0, 0) +T(RD, -inf, inf, inf, 0x0p+0, 0) +// +-(x > 1) ** -inf is +0 +T(RN, 0x1.000002p+0, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, inf, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1.000002p+0, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, -inf, -inf, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.000002p+0, -inf, 0x0p+0, 0x0p+0, 0) +T(RZ, inf, -inf, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x1.000002p+0, -inf, 0x0p+0, 0x0p+0, 0) +T(RZ, -inf, -inf, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.000002p+0, -inf, 0x0p+0, 0x0p+0, 0) +T(RU, inf, -inf, 0x0p+0, 0x0p+0, 0) +T(RU, -0x1.000002p+0, -inf, 0x0p+0, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.000002p+0, -inf, 0x0p+0, 0x0p+0, 0) +T(RD, inf, -inf, 0x0p+0, 0x0p+0, 0) +T(RD, -0x1.000002p+0, -inf, 0x0p+0, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0x0p+0, 0) +// +-(|x| < 1) ** +inf is +0 +T(RN, 0x1.fffffep-1, inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-149, inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1.fffffep-1, inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-149, inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, inf, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1.fffffep-1, inf, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p-149, inf, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, inf, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x1.fffffep-1, inf, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x1p-149, inf, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, inf, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1.fffffep-1, inf, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1p-149, inf, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, inf, 0x0p+0, 0x0p+0, 0) +T(RU, -0x1.fffffep-1, inf, 0x0p+0, 0x0p+0, 0) +T(RU, -0x1p-149, inf, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, inf, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1.fffffep-1, inf, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1p-149, inf, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, inf, 0x0p+0, 0x0p+0, 0) +T(RD, -0x1.fffffep-1, inf, 0x0p+0, 0x0p+0, 0) +T(RD, -0x1p-149, inf, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, inf, 0x0p+0, 0x0p+0, 0) +// +-(|x| < 1) ** -inf is +inf +T(RN, 0x1.fffffep-1, -inf, inf, 0x0p+0, 0) +T(RN, 0x1p-149, -inf, inf, 0x0p+0, 0) +T(RN, 0x0p+0, -inf, inf, 0x0p+0, 0) +T(RN, -0x1.fffffep-1, -inf, inf, 0x0p+0, 0) +T(RN, -0x1p-149, -inf, inf, 0x0p+0, 0) +T(RN, -0x0p+0, -inf, inf, 0x0p+0, 0) +T(RZ, 0x1.fffffep-1, -inf, inf, 0x0p+0, 0) +T(RZ, 0x1p-149, -inf, inf, 0x0p+0, 0) +T(RZ, 0x0p+0, -inf, inf, 0x0p+0, 0) +T(RZ, -0x1.fffffep-1, -inf, inf, 0x0p+0, 0) +T(RZ, -0x1p-149, -inf, inf, 0x0p+0, 0) +T(RZ, -0x0p+0, -inf, inf, 0x0p+0, 0) +T(RU, 0x1.fffffep-1, -inf, inf, 0x0p+0, 0) +T(RU, 0x1p-149, -inf, inf, 0x0p+0, 0) +T(RU, 0x0p+0, -inf, inf, 0x0p+0, 0) +T(RU, -0x1.fffffep-1, -inf, inf, 0x0p+0, 0) +T(RU, -0x1p-149, -inf, inf, 0x0p+0, 0) +T(RU, -0x0p+0, -inf, inf, 0x0p+0, 0) +T(RD, 0x1.fffffep-1, -inf, inf, 0x0p+0, 0) +T(RD, 0x1p-149, -inf, inf, 0x0p+0, 0) +T(RD, 0x0p+0, -inf, inf, 0x0p+0, 0) +T(RD, -0x1.fffffep-1, -inf, inf, 0x0p+0, 0) +T(RD, -0x1p-149, -inf, inf, 0x0p+0, 0) +T(RD, -0x0p+0, -inf, inf, 0x0p+0, 0) +// +-1 ** +-inf is +1 +T(RN, 0x1p+0, inf, 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, -inf, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1p+0, inf, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1p+0, -inf, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x1p+0, inf, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x1p+0, -inf, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1p+0, inf, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1p+0, -inf, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, inf, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+0, -inf, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1p+0, inf, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1p+0, -inf, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, inf, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+0, -inf, 0x1p+0, 0x0p+0, 0) +// +0 ** (+anything except 0, nan) is +0 +T(RN, 0x0p+0, 0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1.fffffep+127, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1.fffffep+127, 0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1.fffffep+127, 0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1p-149, 0x0p+0, 0x0p+0, 0) +// -0 ** (+anything except 0, nan, odd integer) is +0 +T(RN, -0x0p+0, 0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x1.fffffep+127, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, 0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, 0x1.fffffep+127, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, 0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, 0x1.fffffep+127, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, 0x1p-149, 0x0p+0, 0x0p+0, 0) +// +0 ** (-anything except 0, nan) is +inf +T(RN, 0x0p+0,-0x1.fffffep+127, inf, 0x0p+0, DIVBYZERO) +T(RN, 0x0p+0, -0x1p-149, inf, 0x0p+0, DIVBYZERO) +T(RZ, 0x0p+0,-0x1.fffffep+127, inf, 0x0p+0, DIVBYZERO) +T(RZ, 0x0p+0, -0x1p-149, inf, 0x0p+0, DIVBYZERO) +T(RU, 0x0p+0,-0x1.fffffep+127, inf, 0x0p+0, DIVBYZERO) +T(RU, 0x0p+0, -0x1p-149, inf, 0x0p+0, DIVBYZERO) +T(RD, 0x0p+0,-0x1.fffffep+127, inf, 0x0p+0, DIVBYZERO) +T(RD, 0x0p+0, -0x1p-149, inf, 0x0p+0, DIVBYZERO) +// -0 ** (-anything except 0, nan, odd integer) is +inf +T(RN, -0x0p+0,-0x1.fffffep+127, inf, 0x0p+0, DIVBYZERO) +T(RN, -0x0p+0, -0x1p+1, inf, 0x0p+0, DIVBYZERO) +T(RN, -0x0p+0, -0x1p-149, inf, 0x0p+0, DIVBYZERO) +T(RZ, -0x0p+0,-0x1.fffffep+127, inf, 0x0p+0, DIVBYZERO) +T(RZ, -0x0p+0, -0x1p+1, inf, 0x0p+0, DIVBYZERO) +T(RZ, -0x0p+0, -0x1p-149, inf, 0x0p+0, DIVBYZERO) +T(RU, -0x0p+0,-0x1.fffffep+127, inf, 0x0p+0, DIVBYZERO) +T(RU, -0x0p+0, -0x1p+1, inf, 0x0p+0, DIVBYZERO) +T(RU, -0x0p+0, -0x1p-149, inf, 0x0p+0, DIVBYZERO) +T(RD, -0x0p+0,-0x1.fffffep+127, inf, 0x0p+0, DIVBYZERO) +T(RD, -0x0p+0, -0x1p+1, inf, 0x0p+0, DIVBYZERO) +T(RD, -0x0p+0, -0x1p-149, inf, 0x0p+0, DIVBYZERO) +// -0 ** (odd integer) = -( +0 ** (odd integer) ) +T(RN, -0x0p+0, -0x1p+0, -inf, 0x0p+0, DIVBYZERO) +T(RN, -0x0p+0, -0x1.1p+4, -inf, 0x0p+0, DIVBYZERO) +T(RZ, -0x0p+0, 0x1.1p+4, -0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x1p+0, -inf, 0x0p+0, DIVBYZERO) +T(RZ, -0x0p+0, -0x1.1p+4, -inf, 0x0p+0, DIVBYZERO) +T(RU, -0x0p+0, 0x1.1p+4, -0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x1p+0, -inf, 0x0p+0, DIVBYZERO) +T(RU, -0x0p+0, -0x1.1p+4, -inf, 0x0p+0, DIVBYZERO) +T(RD, -0x0p+0, 0x1.1p+4, -0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x1p+0, -inf, 0x0p+0, DIVBYZERO) +T(RD, -0x0p+0, -0x1.1p+4, -inf, 0x0p+0, DIVBYZERO) +// +inf ** (+anything except 0,nan) is +inf +T(RN, inf, 0x1p-149, inf, 0x0p+0, 0) +T(RZ, inf, 0x1p-149, inf, 0x0p+0, 0) +T(RU, inf, 0x1p-149, inf, 0x0p+0, 0) +T(RD, inf, 0x1p-149, inf, 0x0p+0, 0) +// +inf ** (-anything except 0,nan) is +0 +T(RN, inf, -0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RZ, inf, -0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RU, inf, -0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RD, inf, -0x1p-149, 0x0p+0, 0x0p+0, 0) +// -inf ** (anything) = -0 ** (-anything) +T(RN, -inf, 0x1.fffffep+127, inf, 0x0p+0, 0) +T(RN, -inf, 0x1p-149, inf, 0x0p+0, 0) +T(RN, -inf,-0x1.fffffep+127, 0x0p+0, 0x0p+0, 0) +T(RN, -inf, -0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RN, -inf, 0x1.4p+2, -inf, 0x0p+0, 0) +T(RN, -inf, -0x1.4p+2, -0x0p+0, 0x0p+0, 0) +T(RN, -inf, 0x1.8p+2, inf, 0x0p+0, 0) +T(RN, -inf, -0x1.8p+2, 0x0p+0, 0x0p+0, 0) +T(RZ, -inf, 0x1.fffffep+127, inf, 0x0p+0, 0) +T(RZ, -inf, 0x1p-149, inf, 0x0p+0, 0) +T(RZ, -inf,-0x1.fffffep+127, 0x0p+0, 0x0p+0, 0) +T(RZ, -inf, -0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RZ, -inf, 0x1.4p+2, -inf, 0x0p+0, 0) +T(RZ, -inf, -0x1.4p+2, -0x0p+0, 0x0p+0, 0) +T(RZ, -inf, 0x1.8p+2, inf, 0x0p+0, 0) +T(RZ, -inf, -0x1.8p+2, 0x0p+0, 0x0p+0, 0) +T(RU, -inf, 0x1.fffffep+127, inf, 0x0p+0, 0) +T(RU, -inf, 0x1p-149, inf, 0x0p+0, 0) +T(RU, -inf,-0x1.fffffep+127, 0x0p+0, 0x0p+0, 0) +T(RU, -inf, -0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RU, -inf, 0x1.4p+2, -inf, 0x0p+0, 0) +T(RU, -inf, -0x1.4p+2, -0x0p+0, 0x0p+0, 0) +T(RU, -inf, 0x1.8p+2, inf, 0x0p+0, 0) +T(RU, -inf, -0x1.8p+2, 0x0p+0, 0x0p+0, 0) +T(RD, -inf, 0x1.fffffep+127, inf, 0x0p+0, 0) +T(RD, -inf, 0x1p-149, inf, 0x0p+0, 0) +T(RD, -inf,-0x1.fffffep+127, 0x0p+0, 0x0p+0, 0) +T(RD, -inf, -0x1p-149, 0x0p+0, 0x0p+0, 0) +T(RD, -inf, 0x1.4p+2, -inf, 0x0p+0, 0) +T(RD, -inf, -0x1.4p+2, -0x0p+0, 0x0p+0, 0) +T(RD, -inf, 0x1.8p+2, inf, 0x0p+0, 0) +T(RD, -inf, -0x1.8p+2, 0x0p+0, 0x0p+0, 0) +// (-anything except 0 and inf) ** (non-integer) is nan +T(RN, -inf, 0x1.000002p+1, inf, 0x0p+0, 0) +T(RN, -0x1p+0, 0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1p-149, -0x1.fffffep+0, nan, 0x0p+0, INVALID) +T(RZ, -inf, 0x1.000002p+1, inf, 0x0p+0, 0) +T(RZ, -0x1p+0, 0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-149, -0x1.fffffep+0, nan, 0x0p+0, INVALID) +T(RU, -inf, 0x1.000002p+1, inf, 0x0p+0, 0) +T(RU, -0x1p+0, 0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1p-149, -0x1.fffffep+0, nan, 0x0p+0, INVALID) +T(RD, -inf, 0x1.000002p+1, inf, 0x0p+0, 0) +T(RD, -0x1p+0, 0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1p-149, -0x1.fffffep+0, nan, 0x0p+0, INVALID) +// miscellaneous +T(RN, -0x1.4p+3, 0x1.35p+8, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -inf, 0x1p-1, inf, 0x0p+0, 0) +T(RD, 0x0p+0, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RD, 0x1p-32, 0x1p+1, 0x1p-64, 0x0p+0, 0) +T(RD, 0x1p-31, 0x1p+1, 0x1p-62, 0x0p+0, 0) +T(RD, 0x1p-2, 0x1p+1, 0x1p-4, 0x0p+0, 0) +T(RD, 0x1p-1, 0x1p+1, 0x1p-2, 0x0p+0, 0) +T(RD, 0x1p+0, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1p+1, 0x1p+1, 0x1p+2, 0x0p+0, 0) +T(RD, 0x1.8p+1, 0x1p+1, 0x1.2p+3, 0x0p+0, 0) +T(RD, 0x1p+2, 0x1p+1, 0x1p+4, 0x0p+0, 0) +T(RD, 0x1.fep+7, 0x1p+1, 0x1.fc02p+15, 0x0p+0, 0) +T(RD, 0x1p+8, 0x1p+1, 0x1p+16, 0x0p+0, 0) +T(RD, 0x1.01p+8, 0x1p+1, 0x1.0201p+16, 0x0p+0, 0) +T(RD, inf, 0x1p+1, inf, 0x0p+0, 0) +T(RD, -0x1p-32, 0x1p+1, 0x1p-64, 0x0p+0, 0) +T(RD, -0x1p-31, 0x1p+1, 0x1p-62, 0x0p+0, 0) +T(RD, -0x1p-2, 0x1p+1, 0x1p-4, 0x0p+0, 0) +T(RD, -0x1p-1, 0x1p+1, 0x1p-2, 0x0p+0, 0) +T(RD, -0x1p+0, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RD, -0x1p+1, 0x1p+1, 0x1p+2, 0x0p+0, 0) +T(RD, -0x1.8p+1, 0x1p+1, 0x1.2p+3, 0x0p+0, 0) +T(RD, -0x1p+2, 0x1p+1, 0x1p+4, 0x0p+0, 0) +T(RD, -0x1.fep+7, 0x1p+1, 0x1.fc02p+15, 0x0p+0, 0) +T(RD, -0x1p+8, 0x1p+1, 0x1p+16, 0x0p+0, 0) +T(RD, -0x1.01p+8, 0x1p+1, 0x1.0201p+16, 0x0p+0, 0) +T(RD, -inf, 0x1p+1, inf, 0x0p+0, 0) +T(RD, 0x1.fffff4p-1, 0x1p+1, 0x1.ffffe8p-1, -0x1.2p-19, INEXACT) +T(RD, 0x1.fffff8p-1, 0x1p+1, 0x1.fffffp-1, -0x1p-20, INEXACT) +T(RD, 0x1.fffffcp-1, 0x1p+1, 0x1.fffff8p-1, -0x1p-22, INEXACT) +T(RD, 0x1.fffffep-1, 0x1p+1, 0x1.fffffcp-1, -0x1p-24, INEXACT) +T(RD, 0x1.000002p+0, 0x1p+1, 0x1.000004p+0, -0x1p-23, INEXACT) +T(RD, 0x1.000004p+0, 0x1p+1, 0x1.000008p+0, -0x1p-21, INEXACT) +T(RD, 0x1.000008p+0, 0x1p+1, 0x1.00001p+0, -0x1p-19, INEXACT) +T(RD, 0x1.000002p+2, 0x1p+1, 0x1.000004p+4, -0x1p-23, INEXACT) +T(RD, 0x1.000004p+2, 0x1p+1, 0x1.000008p+4, -0x1p-21, INEXACT) +T(RD, -0x1.fffff4p-1, 0x1p+1, 0x1.ffffe8p-1, -0x1.2p-19, INEXACT) +T(RD, -0x1.fffff8p-1, 0x1p+1, 0x1.fffffp-1, -0x1p-20, INEXACT) +T(RD, -0x1.fffffcp-1, 0x1p+1, 0x1.fffff8p-1, -0x1p-22, INEXACT) +T(RD, -0x1.fffffep-1, 0x1p+1, 0x1.fffffcp-1, -0x1p-24, INEXACT) +T(RD, -0x1.000002p+0, 0x1p+1, 0x1.000004p+0, -0x1p-23, INEXACT) +T(RD, -0x1.000004p+0, 0x1p+1, 0x1.000008p+0, -0x1p-21, INEXACT) +T(RD, -0x1.000008p+0, 0x1p+1, 0x1.00001p+0, -0x1p-19, INEXACT) +T(RD, 0x1p+119, 0x1p+1, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+126, 0x1p+1, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+127, 0x1p+1, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.fffffcp+127, 0x1p+1, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.fffffep+127, 0x1p+1, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, -0x1p+119, 0x1p+1, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, -0x1p+126, 0x1p+1, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, -0x1p+127, 0x1p+1, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD,-0x1.fffffcp+127, 0x1p+1, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD,-0x1.fffffep+127, 0x1p+1, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p-149, 0x1p+1, 0x0p+0, -0x1p-149, INEXACT|UNDERFLOW) +T(RD, 0x1p-148, 0x1p+1, 0x0p+0, -0x1p-147, INEXACT|UNDERFLOW) +T(RD, 0x1p-128, 0x1p+1, 0x0p+0, -0x1p-107, INEXACT|UNDERFLOW) +T(RD, 0x1p-127, 0x1p+1, 0x0p+0, -0x1p-105, INEXACT|UNDERFLOW) +T(RD, 0x1.fffff8p-127, 0x1p+1, 0x0p+0, -0x1.fffffp-104, INEXACT|UNDERFLOW) +T(RD, 0x1.fffffcp-127, 0x1p+1, 0x0p+0,-0x1.fffff8p-104, INEXACT|UNDERFLOW) +T(RD, 0x1p-126, 0x1p+1, 0x0p+0, -0x1p-103, INEXACT|UNDERFLOW) +T(RD, 0x1.000002p-126, 0x1p+1, 0x0p+0,-0x1.000004p-103, INEXACT|UNDERFLOW) +T(RD, 0x1.000004p-126, 0x1p+1, 0x0p+0,-0x1.000008p-103, INEXACT|UNDERFLOW) +T(RD, 0x1p-125, 0x1p+1, 0x0p+0, -0x1p-101, INEXACT|UNDERFLOW) +T(RD, 0x1p-124, 0x1p+1, 0x0p+0, -0x1p-99, INEXACT|UNDERFLOW) +T(RD, -0x1p-149, 0x1p+1, 0x0p+0, -0x1p-149, INEXACT|UNDERFLOW) +T(RD, -0x1p-148, 0x1p+1, 0x0p+0, -0x1p-147, INEXACT|UNDERFLOW) +T(RD, -0x1p-128, 0x1p+1, 0x0p+0, -0x1p-107, INEXACT|UNDERFLOW) +T(RD, -0x1p-127, 0x1p+1, 0x0p+0, -0x1p-105, INEXACT|UNDERFLOW) +T(RD,-0x1.fffff8p-127, 0x1p+1, 0x0p+0, -0x1.fffffp-104, INEXACT|UNDERFLOW) +T(RD,-0x1.fffffcp-127, 0x1p+1, 0x0p+0,-0x1.fffff8p-104, INEXACT|UNDERFLOW) +T(RD, -0x1p-126, 0x1p+1, 0x0p+0, -0x1p-103, INEXACT|UNDERFLOW) +T(RD,-0x1.000002p-126, 0x1p+1, 0x0p+0,-0x1.000004p-103, INEXACT|UNDERFLOW) +T(RD,-0x1.000004p-126, 0x1p+1, 0x0p+0,-0x1.000008p-103, INEXACT|UNDERFLOW) +T(RD, -0x1p-125, 0x1p+1, 0x0p+0, -0x1p-101, INEXACT|UNDERFLOW) +T(RD, -0x1p-124, 0x1p+1, 0x0p+0, -0x1p-99, INEXACT|UNDERFLOW) +T(RD, nan, 0x1p+1, nan, 0x0p+0, 0) +T(RD, nan, 0x1p+1, nan, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1p-1, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1.cp+2, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1.fff8p+14, 0x0p+0, 0x0p+0, 0) +T(RN, 0x0p+0, 0x1.fffcp+14, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-149, 0x1p+0, 0x1p-149, 0x0p+0, 0) +T(RN, 0x1p-149, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-148, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-148, 0x1p-1, 0x1p-74, 0x0p+0, 0) +T(RN, 0x1p-148, 0x1p+0, 0x1p-148, 0x0p+0, 0) +T(RN, 0x1p-148, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.8p-148, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-146, 0x1p-1, 0x1p-73, 0x0p+0, 0) +T(RN, 0x1p-128, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-128, 0x1p-1, 0x1p-64, 0x0p+0, 0) +T(RN, 0x1p-128, 0x1p+0, 0x1p-128, 0x0p+0, 0) +T(RN, 0x1p-128, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-127, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-127, 0x1p+0, 0x1p-127, 0x0p+0, 0) +T(RN, 0x1p-127, inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-127, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-127, -0x1p+0, 0x1p+127, 0x0p+0, 0) +T(RN, 0x1p-127, -inf, inf, 0x0p+0, 0) +T(RN, 0x1.fffff8p-127, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.fffff8p-127, 0x1p+0, 0x1.fffff8p-127, 0x0p+0, 0) +T(RN, 0x1.fffff8p-127, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.fffffcp-127, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.fffffcp-127, 0x1p+0, 0x1.fffffcp-127, 0x0p+0, 0) +T(RN, 0x1.fffffcp-127, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-126, 0x1p-1, 0x1p-63, 0x0p+0, 0) +T(RN, 0x1p-126, inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-126, -0x1p+0, 0x1p+126, 0x0p+0, 0) +T(RN, 0x1p-126, -inf, inf, 0x0p+0, 0) +T(RN, 0x1.000002p-126, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.000002p-126, 0x1p+0, 0x1.000002p-126, 0x0p+0, 0) +T(RN, 0x1.000002p-126, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.000004p-126, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.000004p-126, 0x1p+0, 0x1.000004p-126, 0x0p+0, 0) +T(RN, 0x1.000004p-126, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-125, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-125, 0x1p+0, 0x1p-125, 0x0p+0, 0) +T(RN, 0x1p-125, inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-125, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-125, -0x1p+0, 0x1p+125, 0x0p+0, 0) +T(RN, 0x1p-125, -inf, inf, 0x0p+0, 0) +T(RN, 0x1p-124, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-124, 0x1p-1, 0x1p-62, 0x0p+0, 0) +T(RN, 0x1p-124, 0x1p+0, 0x1p-124, 0x0p+0, 0) +T(RN, 0x1p-124, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-124, -0x1p+0, 0x1p+124, 0x0p+0, 0) +T(RN, 0x1p-74, 0x1p+1, 0x1p-148, 0x0p+0, 0) +T(RN, 0x1p-69, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-62, 0x1p-1, 0x1p-31, 0x0p+0, 0) +T(RN, 0x1p-32, 0x1p+1, 0x1p-64, 0x0p+0, 0) +T(RN, 0x1p-31, 0x1p+1, 0x1p-62, 0x0p+0, 0) +T(RN, 0x1p-23, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-23, 0x1p+0, 0x1p-23, 0x0p+0, 0) +T(RN, 0x1p-23, inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-23, -0x1p+0, 0x1p+23, 0x0p+0, 0) +T(RN, 0x1p-23, -inf, inf, 0x0p+0, 0) +T(RN, 0x1p-22, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-16, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.2p-15, 0x1p-1, 0x1.8p-8, 0x0p+0, 0) +T(RN, 0x1p-14, 0x1p-1, 0x1p-7, 0x0p+0, 0) +T(RN, 0x1p-8, 0x1p-1, 0x1p-4, 0x0p+0, 0) +T(RN, 0x1.2p-5, 0x1p-1, 0x1.8p-3, 0x0p+0, 0) +T(RN, 0x1p-4, 0x1p-1, 0x1p-2, 0x0p+0, 0) +T(RN, 0x1p-2, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-2, 0x1p+0, 0x1p-2, 0x0p+0, 0) +T(RN, 0x1p-2, 0x1p+1, 0x1p-4, 0x0p+0, 0) +T(RN, 0x1p-2, inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-2, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-2, -0x1p+0, 0x1p+2, 0x0p+0, 0) +T(RN, 0x1p-2, -inf, inf, 0x0p+0, 0) +T(RN, 0x1p-1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-1, 0x1p+0, 0x1p-1, 0x0p+0, 0) +T(RN, 0x1p-1, 0x1p+1, 0x1p-2, 0x0p+0, 0) +T(RN, 0x1p-1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-1, -0x1p+0, 0x1p+1, 0x0p+0, 0) +T(RN, 0x1.fffff4p-1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.fffff4p-1, 0x1p+0, 0x1.fffff4p-1, 0x0p+0, 0) +T(RN, 0x1.fffff4p-1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.fffff6p-1, 0x1p+0, 0x1.fffff6p-1, 0x0p+0, 0) +T(RN, 0x1.fffff8p-1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.fffff8p-1, 0x1p+0, 0x1.fffff8p-1, 0x0p+0, 0) +T(RN, 0x1.fffff8p-1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.fffffcp-1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.fffffcp-1, 0x1p+0, 0x1.fffffcp-1, 0x0p+0, 0) +T(RN, 0x1.fffffcp-1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.fffffep-1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.fffffep-1, 0x1p+0, 0x1.fffffep-1, 0x0p+0, 0) +T(RN, 0x1.fffffep-1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+0, 0x0p+0, 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, -0x0p+0, 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, 0x1.000002p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.000002p+0, 0x1p+0, 0x1.000002p+0, 0x0p+0, 0) +T(RN, 0x1.000002p+0, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.000004p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.000004p+0, 0x1p+0, 0x1.000004p+0, 0x0p+0, 0) +T(RN, 0x1.000004p+0, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.000008p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.000008p+0, 0x1p+0, 0x1.000008p+0, 0x0p+0, 0) +T(RN, 0x1.000008p+0, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.00000ap+0, 0x1p+0, 0x1.00000ap+0, 0x0p+0, 0) +T(RN, 0x1p+1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+1, 0x1p+0, 0x1p+1, 0x0p+0, 0) +T(RN, 0x1p+1, 0x1p+1, 0x1p+2, 0x0p+0, 0) +T(RN, 0x1p+1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+1, -0x1p+0, 0x1p-1, 0x0p+0, 0) +T(RN, 0x1.00000ap+1, inf, inf, 0x0p+0, 0) +T(RN, 0x1.00000ap+1, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.8p+1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.8p+1, 0x1p+0, 0x1.8p+1, 0x0p+0, 0) +T(RN, 0x1.8p+1, 0x1p+1, 0x1.2p+3, 0x0p+0, 0) +T(RN, 0x1p+2, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+2, 0x1p-1, 0x1p+1, 0x0p+0, 0) +T(RN, 0x1p+2, 0x1p+0, 0x1p+2, 0x0p+0, 0) +T(RN, 0x1p+2, 0x1p+1, 0x1p+4, 0x0p+0, 0) +T(RN, 0x1p+2, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+2, -0x1p+0, 0x1p-2, 0x0p+0, 0) +T(RN, 0x1.2p+3, 0x1p-1, 0x1.8p+1, 0x0p+0, 0) +T(RN, 0x1.bp+4, 0x1p+0, 0x1.bp+4, 0x0p+0, 0) +T(RN, 0x1p+5, 0x1p+0, 0x1p+5, 0x0p+0, 0) +T(RN, 0x1p+5, -0x1p+0, 0x1p-5, 0x0p+0, 0) +T(RN, 0x1.fep+7, 0x1p+1, 0x1.fc02p+15, 0x0p+0, 0) +T(RN, 0x1.fep+7, inf, inf, 0x0p+0, 0) +T(RN, 0x1.fep+7, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p+8, 0x1p-1, 0x1p+4, 0x0p+0, 0) +T(RN, 0x1p+8, 0x1p+1, 0x1p+16, 0x0p+0, 0) +T(RN, 0x1p+8, inf, inf, 0x0p+0, 0) +T(RN, 0x1p+8, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1.01p+8, 0x1p+1, 0x1.0201p+16, 0x0p+0, 0) +T(RN, 0x1.01p+8, inf, inf, 0x0p+0, 0) +T(RN, 0x1.01p+8, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p+9, 0x1p+0, 0x1p+9, 0x0p+0, 0) +T(RN, 0x1p+9, -0x1p+0, 0x1p-9, 0x0p+0, 0) +T(RN, 0x1p+10, 0x1p-1, 0x1p+5, 0x0p+0, 0) +T(RN, 0x1.2p+11, 0x1p-1, 0x1.8p+5, 0x0p+0, 0) +T(RN, 0x1.d8ap+13, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+14, 0x1p-1, 0x1p+7, 0x0p+0, 0) +T(RN, 0x1.9f24p+14, 0x1p-1, 0x1.46p+7, 0x0p+0, 0) +T(RN, 0x1.b3c4p+14, 0x1p-1, 0x1.4ep+7, 0x0p+0, 0) +T(RN, 0x1.d3a4p+14, 0x1p-1, 0x1.5ap+7, 0x0p+0, 0) +T(RN, 0x1.f4a4p+14, 0x1p-1, 0x1.66p+7, 0x0p+0, 0) +T(RN, 0x1.ffe4p+14, 0x1p-1, 0x1.6ap+7, 0x0p+0, 0) +T(RN, 0x1p+16, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+16, 0x1p+0, 0x1p+16, 0x0p+0, 0) +T(RN, 0x1p+16, -0x1p+0, 0x1p-16, 0x0p+0, 0) +T(RN, 0x1.2p+21, 0x1p-1, 0x1.8p+10, 0x0p+0, 0) +T(RN, 0x1p+119, 0x1p+0, 0x1p+119, 0x0p+0, 0) +T(RN, 0x1p+124, 0x1p-1, 0x1p+62, 0x0p+0, 0) +T(RN, 0x1p+124, -0x1p+0, 0x1p-124, 0x0p+0, 0) +T(RN, 0x1p+125, inf, inf, 0x0p+0, 0) +T(RN, 0x1p+125, -0x1p+0, 0x1p-125, 0x0p+0, 0) +T(RN, 0x1p+125, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, 0x1p+126, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+126, 0x1p-1, 0x1p+63, 0x0p+0, 0) +T(RN, 0x1p+126, 0x1p+0, 0x1p+126, 0x0p+0, 0) +T(RN, 0x1p+126, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+126, -0x1p+0, 0x1p-126, 0x0p+0, 0) +T(RN, 0x1p+127, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+127, 0x1p+0, 0x1p+127, 0x0p+0, 0) +T(RN, 0x1p+127, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p+127, -0x1p+0, 0x1p-127, 0x0p+0, 0) +T(RN, 0x1.fffffcp+127, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.fffffcp+127, 0x1p+0, 0x1.fffffcp+127, 0x0p+0, 0) +T(RN, 0x1.fffffcp+127, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.fffffep+127, inf, inf, 0x0p+0, 0) +T(RN, 0x1.fffffep+127, -inf, 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, 0x1.fep+7, inf, 0x0p+0, 0) +T(RN, inf, 0x1p+8, inf, 0x0p+0, 0) +T(RN, inf, 0x1.01p+8, inf, 0x0p+0, 0) +T(RN, inf, 0x1.fffcp+14, inf, 0x0p+0, 0) +T(RN, inf, -0x0p+0, 0x1p+0, 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, -0x1.fep+7, 0x0p+0, 0x0p+0, 0) +T(RN, inf, -0x1p+8, 0x0p+0, 0x0p+0, 0) +T(RN, inf, -0x1.01p+8, 0x0p+0, 0x0p+0, 0) +T(RN, inf, -0x1.fffcp+14, 0x0p+0, 0x0p+0, 0) +T(RN, inf, -0x1p+15, 0x0p+0, 0x0p+0, 0) +T(RN, nan, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1p-1, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1.cp+2, -0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1.fff8p+14, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, 0x1.fffcp+14, -0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-149, 0x1p+0, -0x1p-149, 0x0p+0, 0) +T(RN, -0x1p-149, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-148, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-148, 0x1p+0, -0x1p-148, 0x0p+0, 0) +T(RN, -0x1p-148, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.8p-148, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-128, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-128, 0x1p+0, -0x1p-128, 0x0p+0, 0) +T(RN, -0x1p-128, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-127, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-127, 0x1p+0, -0x1p-127, 0x0p+0, 0) +T(RN, -0x1p-127, inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-127, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-127, -0x1p+0, -0x1p+127, 0x0p+0, 0) +T(RN, -0x1p-127, -inf, inf, 0x0p+0, 0) +T(RN,-0x1.fffff8p-127, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN,-0x1.fffff8p-127, 0x1p+0,-0x1.fffff8p-127, 0x0p+0, 0) +T(RN,-0x1.fffff8p-127, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN,-0x1.fffffcp-127, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN,-0x1.fffffcp-127, 0x1p+0,-0x1.fffffcp-127, 0x0p+0, 0) +T(RN,-0x1.fffffcp-127, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-126, inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-126, -0x1p+0, -0x1p+126, 0x0p+0, 0) +T(RN, -0x1p-126, -inf, inf, 0x0p+0, 0) +T(RN,-0x1.000002p-126, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN,-0x1.000002p-126, 0x1p+0,-0x1.000002p-126, 0x0p+0, 0) +T(RN,-0x1.000002p-126, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN,-0x1.000004p-126, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN,-0x1.000004p-126, 0x1p+0,-0x1.000004p-126, 0x0p+0, 0) +T(RN,-0x1.000004p-126, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-125, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-125, 0x1p+0, -0x1p-125, 0x0p+0, 0) +T(RN, -0x1p-125, inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-125, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-125, -0x1p+0, -0x1p+125, 0x0p+0, 0) +T(RN, -0x1p-125, -inf, inf, 0x0p+0, 0) +T(RN, -0x1p-124, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-124, 0x1p+0, -0x1p-124, 0x0p+0, 0) +T(RN, -0x1p-124, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-124, -0x1p+0, -0x1p+124, 0x0p+0, 0) +T(RN, -0x1p-74, 0x1p+1, 0x1p-148, 0x0p+0, 0) +T(RN, -0x1p-69, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-32, 0x1p+1, 0x1p-64, 0x0p+0, 0) +T(RN, -0x1p-31, 0x1p+1, 0x1p-62, 0x0p+0, 0) +T(RN, -0x1p-23, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-23, 0x1p+0, -0x1p-23, 0x0p+0, 0) +T(RN, -0x1p-23, inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-23, -0x1p+0, -0x1p+23, 0x0p+0, 0) +T(RN, -0x1p-23, -inf, inf, 0x0p+0, 0) +T(RN, -0x1p-22, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-16, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-2, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-2, 0x1p+0, -0x1p-2, 0x0p+0, 0) +T(RN, -0x1p-2, 0x1p+1, 0x1p-4, 0x0p+0, 0) +T(RN, -0x1p-2, inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p-2, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-2, -0x1p+0, -0x1p+2, 0x0p+0, 0) +T(RN, -0x1p-2, -inf, inf, 0x0p+0, 0) +T(RN, -0x1p-1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-1, 0x1p+0, -0x1p-1, 0x0p+0, 0) +T(RN, -0x1p-1, 0x1p+1, 0x1p-2, 0x0p+0, 0) +T(RN, -0x1p-1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p-1, -0x1p+0, -0x1p+1, 0x0p+0, 0) +T(RN, -0x1.fffff4p-1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.fffff4p-1, 0x1p+0, -0x1.fffff4p-1, 0x0p+0, 0) +T(RN, -0x1.fffff4p-1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.fffff6p-1, 0x1p+0, -0x1.fffff6p-1, 0x0p+0, 0) +T(RN, -0x1.fffff8p-1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.fffff8p-1, 0x1p+0, -0x1.fffff8p-1, 0x0p+0, 0) +T(RN, -0x1.fffff8p-1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.fffffcp-1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.fffffcp-1, 0x1p+0, -0x1.fffffcp-1, 0x0p+0, 0) +T(RN, -0x1.fffffcp-1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.fffffep-1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.fffffep-1, 0x1p+0, -0x1.fffffep-1, 0x0p+0, 0) +T(RN, -0x1.fffffep-1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+0, 0x0p+0, 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+2, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+0, -0x0p+0, 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, -0x1.000002p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.000002p+0, 0x1p+0, -0x1.000002p+0, 0x0p+0, 0) +T(RN, -0x1.000002p+0, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.000004p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.000004p+0, 0x1p+0, -0x1.000004p+0, 0x0p+0, 0) +T(RN, -0x1.000004p+0, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.000008p+0, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.000008p+0, 0x1p+0, -0x1.000008p+0, 0x0p+0, 0) +T(RN, -0x1.000008p+0, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.00000ap+0, 0x1p+0, -0x1.00000ap+0, 0x0p+0, 0) +T(RN, -0x1p+1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+1, 0x1p+0, -0x1p+1, 0x0p+0, 0) +T(RN, -0x1p+1, 0x1p+1, 0x1p+2, 0x0p+0, 0) +T(RN, -0x1p+1, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+1, -0x1p+0, -0x1p-1, 0x0p+0, 0) +T(RN, -0x1.00000ap+1, inf, inf, 0x0p+0, 0) +T(RN, -0x1.00000ap+1, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1.8p+1, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1.8p+1, 0x1p+0, -0x1.8p+1, 0x0p+0, 0) +T(RN, -0x1.8p+1, 0x1p+1, 0x1.2p+3, 0x0p+0, 0) +T(RN, -0x1p+2, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+2, 0x1p+0, -0x1p+2, 0x0p+0, 0) +T(RN, -0x1p+2, 0x1p+1, 0x1p+4, 0x0p+0, 0) +T(RN, -0x1p+2, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+2, -0x1p+0, -0x1p-2, 0x0p+0, 0) +T(RN, -0x1.bp+4, 0x1p+0, -0x1.bp+4, 0x0p+0, 0) +T(RN, -0x1p+5, 0x1p+0, -0x1p+5, 0x0p+0, 0) +T(RN, -0x1p+5, -0x1p+0, -0x1p-5, 0x0p+0, 0) +T(RN, -0x1.fep+7, 0x1p+1, 0x1.fc02p+15, 0x0p+0, 0) +T(RN, -0x1.fep+7, inf, inf, 0x0p+0, 0) +T(RN, -0x1.fep+7, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p+8, 0x1p+1, 0x1p+16, 0x0p+0, 0) +T(RN, -0x1p+8, inf, inf, 0x0p+0, 0) +T(RN, -0x1p+8, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1.01p+8, 0x1p+1, 0x1.0201p+16, 0x0p+0, 0) +T(RN, -0x1.01p+8, inf, inf, 0x0p+0, 0) +T(RN, -0x1.01p+8, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p+9, 0x1p+0, -0x1p+9, 0x0p+0, 0) +T(RN, -0x1p+9, -0x1p+0, -0x1p-9, 0x0p+0, 0) +T(RN, -0x1.d8ap+13, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+16, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+16, 0x1p+0, -0x1p+16, 0x0p+0, 0) +T(RN, -0x1p+16, -0x1p+0, -0x1p-16, 0x0p+0, 0) +T(RN, -0x1p+119, 0x1p+0, -0x1p+119, 0x0p+0, 0) +T(RN, -0x1p+124, -0x1p+0, -0x1p-124, 0x0p+0, 0) +T(RN, -0x1p+125, inf, inf, 0x0p+0, 0) +T(RN, -0x1p+125, -0x1p+0, -0x1p-125, 0x0p+0, 0) +T(RN, -0x1p+125, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, -0x1p+126, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+126, 0x1p+0, -0x1p+126, 0x0p+0, 0) +T(RN, -0x1p+126, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+126, -0x1p+0, -0x1p-126, 0x0p+0, 0) +T(RN, -0x1p+127, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+127, 0x1p+0, -0x1p+127, 0x0p+0, 0) +T(RN, -0x1p+127, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, -0x1p+127, -0x1p+0, -0x1p-127, 0x0p+0, 0) +T(RN,-0x1.fffffcp+127, 0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN,-0x1.fffffcp+127, 0x1p+0,-0x1.fffffcp+127, 0x0p+0, 0) +T(RN,-0x1.fffffcp+127, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN,-0x1.fffffep+127, inf, inf, 0x0p+0, 0) +T(RN,-0x1.fffffep+127, -inf, 0x0p+0, 0x0p+0, 0) +T(RN, -inf, 0x1p+1, inf, 0x0p+0, 0) +T(RN, -inf, 0x1.fep+7, -inf, 0x0p+0, 0) +T(RN, -inf, 0x1p+8, inf, 0x0p+0, 0) +T(RN, -inf, 0x1.01p+8, -inf, 0x0p+0, 0) +T(RN, -inf, 0x1.fff8p+14, inf, 0x0p+0, 0) +T(RN, -inf, 0x1.fffcp+14, -inf, 0x0p+0, 0) +T(RN, -inf, -0x0p+0, 0x1p+0, 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, -0x1.fep+7, -0x0p+0, 0x0p+0, 0) +T(RN, -inf, -0x1p+8, 0x0p+0, 0x0p+0, 0) +T(RN, -inf, -0x1.01p+8, -0x0p+0, 0x0p+0, 0) +T(RN, -inf, -0x1.fffcp+14, -0x0p+0, 0x0p+0, 0) +T(RN, -inf, -0x1p+15, 0x0p+0, 0x0p+0, 0) +T(RN, nan, -0x0p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1p-148, -0x1p-1, 0x1p+74, 0x0p+0, 0) +T(RN, 0x1p-146, -0x1p-1, 0x1p+73, 0x0p+0, 0) +T(RN, 0x1p-128, 0x1p-7, 0x1p-1, 0x0p+0, 0) +T(RN, 0x1p-128, 0x1p-6, 0x1p-2, 0x0p+0, 0) +T(RN, 0x1p-128, 0x1p-5, 0x1p-4, 0x0p+0, 0) +T(RN, 0x1p-128, 0x1p-4, 0x1p-8, 0x0p+0, 0) +T(RN, 0x1p-128, 0x1p-3, 0x1p-16, 0x0p+0, 0) +T(RN, 0x1p-128, 0x1p-2, 0x1p-32, 0x0p+0, 0) +T(RN, 0x1p-128, -0x1p-1, 0x1p+64, 0x0p+0, 0) +T(RN, 0x1p-126, -0x1p-1, 0x1p+63, 0x0p+0, 0) +T(RN, 0x1p-124, -0x1p-1, 0x1p+62, 0x0p+0, 0) +T(RN, 0x1p-64, 0x1p-6, 0x1p-1, 0x0p+0, 0) +T(RN, 0x1p-64, 0x1p-5, 0x1p-2, 0x0p+0, 0) +T(RN, 0x1p-64, 0x1p-4, 0x1p-4, 0x0p+0, 0) +T(RN, 0x1p-64, 0x1p-3, 0x1p-8, 0x0p+0, 0) +T(RN, 0x1p-64, 0x1p-2, 0x1p-16, 0x0p+0, 0) +T(RN, 0x1p-16, 0x1p+2, 0x1p-64, 0x0p+0, 0) +T(RN, 0x1p-8, 0x1p+3, 0x1p-64, 0x0p+0, 0) +T(RN, 0x1p-8, -0x1p-1, 0x1p+4, 0x0p+0, 0) +T(RN, 0x1p-4, 0x1p+4, 0x1p-64, 0x0p+0, 0) +T(RN, 0x1p-4, -0x1p-1, 0x1p+2, 0x0p+0, 0) +T(RN, 0x1p-2, 0x1p+5, 0x1p-64, 0x0p+0, 0) +T(RN, 0x1p-2, -0x1p+1, 0x1p+4, 0x0p+0, 0) +T(RN, 0x1p-1, 0x1p+6, 0x1p-64, 0x0p+0, 0) +T(RN, 0x1p-1, -0x1p+1, 0x1p+2, 0x0p+0, 0) +T(RN, 0x1p+1, 0x1.fcp+6, 0x1p+127, 0x0p+0, 0) +T(RN, 0x1p+1, -0x1p+1, 0x1p-2, 0x0p+0, 0) +T(RN, 0x1p+1, -0x1.2p+3, 0x1p-9, 0x0p+0, 0) +T(RN, 0x1p+1, -0x1.2ap+7, 0x1p-149, 0x0p+0, 0) +T(RN, 0x1p+2, 0x1.6p+2, 0x1p+11, 0x0p+0, 0) +T(RN, 0x1p+2, 0x1.fp+3, 0x1p+31, 0x0p+0, 0) +T(RN, 0x1p+2, -0x1p-1, 0x1p-1, 0x0p+0, 0) +T(RN, 0x1p+2, -0x1p+1, 0x1p-4, 0x0p+0, 0) +T(RN, 0x1p+2, -0x1.8p+1, 0x1p-6, 0x0p+0, 0) +T(RN, 0x1p+2, -0x1.fp+4, 0x1p-62, 0x0p+0, 0) +T(RN, 0x1p+3, 0x1p+3, 0x1p+24, 0x0p+0, 0) +T(RN, 0x1p+3, -0x1p+3, 0x1p-24, 0x0p+0, 0) +T(RN, 0x1p+4, -0x1p+4, 0x1p-64, 0x0p+0, 0) +T(RN, 0x1p+7, -0x1.2p+3, 0x1p-63, 0x0p+0, 0) +T(RN, 0x1p+8, 0x1.8p+0, 0x1p+12, 0x0p+0, 0) +T(RN, 0x1p+8, 0x1.8p+1, 0x1p+24, 0x0p+0, 0) +T(RN, 0x1p+8, -0x1p-1, 0x1p-4, 0x0p+0, 0) +T(RN, 0x1p+10, 0x1.8p+0, 0x1p+15, 0x0p+0, 0) +T(RN, 0x1p+124, -0x1p-1, 0x1p-62, 0x0p+0, 0) +T(RN, 0x1p+126, -0x1p-1, 0x1p-63, 0x0p+0, 0) +T(RN, -0x1p-16, 0x1p+2, 0x1p-64, 0x0p+0, 0) +T(RN, -0x1p-8, 0x1p+3, 0x1p-64, 0x0p+0, 0) +T(RN, -0x1p-4, 0x1p+4, 0x1p-64, 0x0p+0, 0) +T(RN, -0x1p-2, 0x1p+5, 0x1p-64, 0x0p+0, 0) +T(RN, -0x1p-2, -0x1p+1, 0x1p+4, 0x0p+0, 0) +T(RN, -0x1p-1, 0x1p+6, 0x1p-64, 0x0p+0, 0) +T(RN, -0x1p-1, -0x1p+1, 0x1p+2, 0x0p+0, 0) +T(RN, -0x1p+1, 0x1.fcp+6, -0x1p+127, 0x0p+0, 0) +T(RN, -0x1p+1, -0x1p+1, 0x1p-2, 0x0p+0, 0) +T(RN, -0x1p+1, -0x1.2p+3, -0x1p-9, 0x0p+0, 0) +T(RN, -0x1p+1, -0x1.2ap+7, -0x1p-149, 0x0p+0, 0) +T(RN, -0x1p+2, -0x1p+1, 0x1p-4, 0x0p+0, 0) +T(RN, -0x1p+2, -0x1.8p+1, -0x1p-6, 0x0p+0, 0) +T(RN, -0x1p+2, -0x1.fp+4, -0x1p-62, 0x0p+0, 0) +T(RN, -0x1p+3, 0x1.cp+2, -0x1p+21, 0x0p+0, 0) +T(RN, -0x1p+3, 0x1p+3, 0x1p+24, 0x0p+0, 0) +T(RN, -0x1p+3, -0x1.cp+2, -0x1p-21, 0x0p+0, 0) +T(RN, -0x1p+3, -0x1p+3, 0x1p-24, 0x0p+0, 0) +T(RN, -0x1p+4, -0x1p+4, 0x1p-64, 0x0p+0, 0) +T(RN, -0x1p+7, -0x1.2p+3, -0x1p-63, 0x0p+0, 0) +T(RN, -0x1p+8, 0x1.8p+1, -0x1p+24, 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.2p+3, inf, 0x0p+0, DIVBYZERO) +T(RN, 0x0p+0, -0x1p+8, inf, 0x0p+0, DIVBYZERO) +T(RN, 0x0p+0, -0x1.fffcp+14, inf, 0x0p+0, DIVBYZERO) +T(RN, 0x0p+0, -0x1p+15, inf, 0x0p+0, DIVBYZERO) +T(RN, -0x0p+0, -0x1p-1, inf, 0x0p+0, DIVBYZERO) +T(RN, -0x0p+0, -0x1.2p+3, -inf, 0x0p+0, DIVBYZERO) +T(RN, -0x0p+0, -0x1p+8, inf, 0x0p+0, DIVBYZERO) +T(RN, -0x0p+0, -0x1.fffcp+14, -inf, 0x0p+0, DIVBYZERO) +T(RN, -0x0p+0, -0x1p+15, inf, 0x0p+0, DIVBYZERO) +T(RN, 0x1.000008p-128, -0x1p+0, 0x1.fffffp+127, -0x1.fffffp-19, INEXACT) +T(RN, 0x1.fffff8p-127, -0x1p-1, 0x1.000002p+63, -0x1.800006p-23, INEXACT) +T(RN, 0x1.fffffcp-127, 0x1p-1, 0x1.fffffep-64, 0x1.000002p-25, INEXACT) +T(RN, 0x1.fffffcp-127, -0x1p+0, 0x1.000002p+126, -0x1.000002p-23, INEXACT) +T(RN, 0x1.000002p-126, -0x1p+0, 0x1.fffffcp+125, -0x1.fffffcp-23, INEXACT) +T(RN, 0x1.000004p-126, 0x1p-1, 0x1.000002p-63, 0x1.fffffcp-25, INEXACT) +T(RN, 0x1.000004p-126, -0x1p-1, 0x1.fffffcp+62, -0x1.7ffffcp-22, INEXACT) +T(RN, 0x1.000004p-126, -0x1p+0, 0x1.fffff8p+125, -0x1.fffff8p-21, INEXACT) +T(RN, 0x1.ffffeep-1, 0x1p-1, 0x1.fffff6p-1, -0x1.ffffd8p-2, INEXACT) +T(RN, 0x1.fffffp-1, 0x1p-1, 0x1.fffff8p-1, 0x1.000004p-21, INEXACT) +T(RN, 0x1.fffffp-1, -0x1p-1, 0x1.000004p+0, -0x1.80000ap-21, INEXACT) +T(RN, 0x1.fffffp-1, -0x1p+0, 0x1.000008p+0, -0x1.000008p-19, INEXACT) +T(RN, 0x1.fffffp-1, -0x1p+1, 0x1.00001p+0, -0x1.80001p-18, INEXACT) +T(RN, 0x1.fffff2p-1, 0x1p-1, 0x1.fffff8p-1, -0x1.ffffe8p-2, INEXACT) +T(RN, 0x1.fffff4p-1, 0x1p-1, 0x1.fffffap-1, 0x1.200004p-22, INEXACT) +T(RN, 0x1.fffff4p-1, 0x1p+1, 0x1.ffffe8p-1, -0x1.2p-19, INEXACT) +T(RN, 0x1.fffff4p-1, -0x1p+0, 0x1.000006p+0, -0x1.200006p-20, INEXACT) +T(RN, 0x1.fffff4p-1, -0x1p+1, 0x1.00000cp+0, -0x1.b0000ep-19, INEXACT) +T(RN, 0x1.fffff6p-1, 0x1p-1, 0x1.fffffap-1, -0x1.fffff4p-2, INEXACT) +T(RN, 0x1.fffff8p-1, 0x1p-1, 0x1.fffffcp-1, 0x1.000002p-23, INEXACT) +T(RN, 0x1.fffff8p-1, 0x1p+1, 0x1.fffffp-1, -0x1p-20, INEXACT) +T(RN, 0x1.fffff8p-1, -0x1p-1, 0x1.000002p+0, -0x1.800006p-23, INEXACT) +T(RN, 0x1.fffff8p-1, -0x1p+0, 0x1.000004p+0, -0x1.000004p-21, INEXACT) +T(RN, 0x1.fffff8p-1, -0x1p+1, 0x1.000008p+0, -0x1.800008p-20, INEXACT) +T(RN, 0x1.fffffap-1, 0x1p-1, 0x1.fffffcp-1, -0x1.fffffcp-2, INEXACT) +T(RN, 0x1.fffffap-1, 0x1.fffffep-1, 0x1.fffffap-1, -0x1.7ffffep-23, INEXACT) +T(RN, 0x1.fffffap-1, 0x1.000002p+0, 0x1.fffffap-1, 0x1.7ffffep-22, INEXACT) +T(RN, 0x1.fffffap-1, 0x1.fffffep+0, 0x1.fffff4p-1, -0x1.dffffcp-21, INEXACT) +T(RN, 0x1.fffffap-1, 0x1.000002p+1, 0x1.fffff4p-1, 0x1.7fffe4p-23, INEXACT) +T(RN, 0x1.fffffap-1, 0x1.7ffffcp+1, 0x1.ffffeep-1, -0x1.97fffap-19, INEXACT) +T(RN, 0x1.fffffap-1, 0x1.800004p+1, 0x1.ffffeep-1, -0x1.80004cp-23, INEXACT) +T(RN, 0x1.fffffap-1, -0x1.fffffep-1, 0x1.000004p+0, 0x1.fffff4p-2, INEXACT) +T(RN, 0x1.fffffap-1, -0x1.000002p+0, 0x1.000004p+0, 0x1.ffffe2p-2, INEXACT) +T(RN, 0x1.fffffap-1, -0x1.fffffep+0, 0x1.000006p+0, -0x1.500004p-21, INEXACT) +T(RN, 0x1.fffffap-1, -0x1.000002p+1, 0x1.000006p+0, -0x1.380006p-20, INEXACT) +T(RN, 0x1.fffffap-1, -0x1.7ffffcp+1, 0x1.00000ap+0, 0x1.ffffc4p-2, INEXACT) +T(RN, 0x1.fffffap-1, -0x1.800004p+1, 0x1.00000ap+0, 0x1.ffff64p-2, INEXACT) +T(RN, 0x1.fffffcp-1, 0x1p-1, 0x1.fffffep-1, 0x1.000002p-25, INEXACT) +T(RN, 0x1.fffffcp-1, 0x1.fffffcp-1, 0x1.fffffcp-1, -0x1.fffffep-23, INEXACT) +T(RN, 0x1.fffffcp-1, 0x1.fffffep-1, 0x1.fffffcp-1, -0x1.fffffep-24, INEXACT) +T(RN, 0x1.fffffcp-1, 0x1.000002p+0, 0x1.fffffcp-1, 0x1.fffffep-23, INEXACT) +T(RN, 0x1.fffffcp-1, 0x1.fffffep+0, 0x1.fffff8p-1, -0x1.fffffep-22, INEXACT) +T(RN, 0x1.fffffcp-1, 0x1p+1, 0x1.fffff8p-1, -0x1p-22, INEXACT) +T(RN, 0x1.fffffcp-1, 0x1.000002p+1, 0x1.fffff8p-1, 0x1.fffff4p-23, INEXACT) +T(RN, 0x1.fffffcp-1, 0x1.7ffffcp+1, 0x1.fffff4p-1, -0x1.bffffap-20, INEXACT) +T(RN, 0x1.fffffcp-1, 0x1.800004p+1, 0x1.fffff4p-1, 0x1.ffffdcp-23, INEXACT) +T(RN, 0x1.fffffcp-1, -0x1.fffffcp-1, 0x1.000002p+0, 0x1.000002p-47, INEXACT) +T(RN, 0x1.fffffcp-1, -0x1.fffffep-1, 0x1.000002p+0, -0x1.000002p-24, INEXACT) +T(RN, 0x1.fffffcp-1, -0x1p+0, 0x1.000002p+0, -0x1.000002p-23, INEXACT) +T(RN, 0x1.fffffcp-1, -0x1.000002p+0, 0x1.000002p+0, -0x1.000002p-22, INEXACT) +T(RN, 0x1.fffffcp-1, -0x1.fffffep+0, 0x1.000004p+0, -0x1.000002p-22, INEXACT) +T(RN, 0x1.fffffcp-1, -0x1p+1, 0x1.000004p+0, -0x1.800004p-22, INEXACT) +T(RN, 0x1.fffffcp-1, -0x1.000002p+1, 0x1.000004p+0, -0x1.400004p-21, INEXACT) +T(RN, 0x1.fffffcp-1, -0x1.7ffffcp+1, 0x1.000006p+0, -0x1.fffff8p-23, INEXACT) +T(RN, 0x1.fffffcp-1, -0x1.800004p+1, 0x1.000006p+0, -0x1.400006p-20, INEXACT) +T(RN, 0x1.fffffep-1, 0x1p-1, 0x1.fffffep-1, -0x1p-1, INEXACT) +T(RN, 0x1.fffffep-1, 0x1.fffffep-1, 0x1.fffffep-1, -0x1p-24, INEXACT) +T(RN, 0x1.fffffep-1, 0x1.000002p+0, 0x1.fffffep-1, 0x1.fffffep-24, INEXACT) +T(RN, 0x1.fffffep-1, 0x1.fffffep+0, 0x1.fffffcp-1, -0x1.7ffffep-23, INEXACT) +T(RN, 0x1.fffffep-1, 0x1p+1, 0x1.fffffcp-1, -0x1p-24, INEXACT) +T(RN, 0x1.fffffep-1, 0x1.000002p+1, 0x1.fffffcp-1, 0x1.7ffffcp-23, INEXACT) +T(RN, 0x1.fffffep-1, 0x1.7ffffcp+1, 0x1.fffffap-1, -0x1.5ffffep-21, INEXACT) +T(RN, 0x1.fffffep-1, 0x1.8p+1, 0x1.fffffap-1, -0x1.8p-23, INEXACT) +T(RN, 0x1.fffffep-1, 0x1.800004p+1, 0x1.fffffap-1, 0x1.3ffffcp-22, INEXACT) +T(RN, 0x1.fffffep-1, 0x1.2p+3, 0x1.ffffeep-1, -0x1.1ffffep-19, INEXACT) +T(RN, 0x1.fffffep-1, -0x1.000002p+0, 0x1.000002p+0, 0x1.fffffap-2, INEXACT) +T(RN, 0x1.fffffep-1, -0x1.fffffep+0, 0x1.000002p+0, -0x1.fffffep-26, INEXACT) +T(RN, 0x1.fffffep-1, -0x1.000002p+1, 0x1.000002p+0, -0x1.c00004p-23, INEXACT) +T(RN, 0x1.fffffep-1, -0x1.7ffffcp+1, 0x1.000002p+0, -0x1.fffffcp-2, INEXACT) +T(RN, 0x1.fffffep-1, -0x1.800004p+1, 0x1.000004p+0, 0x1.ffffe4p-2, INEXACT) +T(RN, 0x1.000002p+0, 0x1p-5, 0x1p+0, -0x1.fffffep-6, INEXACT) +T(RN, 0x1.000002p+0, 0x1p-3, 0x1p+0, -0x1.fffffep-4, INEXACT) +T(RN, 0x1.000002p+0, 0x1p-1, 0x1p+0, -0x1p-1, INEXACT) +T(RN, 0x1.000002p+0, 0x1.fffffep-1, 0x1.000002p+0, 0x1p-24, INEXACT) +T(RN, 0x1.000002p+0, 0x1.000002p+0, 0x1.000002p+0, -0x1.000002p-23, INEXACT) +T(RN, 0x1.000002p+0, 0x1.fffffep+0, 0x1.000004p+0, 0x1.8p-46, INEXACT) +T(RN, 0x1.000002p+0, 0x1p+1, 0x1.000004p+0, -0x1p-23, INEXACT) +T(RN, 0x1.000002p+0, 0x1.000002p+1, 0x1.000004p+0, -0x1.800004p-22, INEXACT) +T(RN, 0x1.000002p+0, 0x1.7ffffcp+1, 0x1.000006p+0, 0x1.000012p-23, INEXACT) +T(RN, 0x1.000002p+0, 0x1.8p+1, 0x1.000006p+0, -0x1.8p-22, INEXACT) +T(RN, 0x1.000002p+0, 0x1.800004p+1, 0x1.000006p+0, -0x1.c00006p-21, INEXACT) +T(RN, 0x1.000002p+0, 0x1p+3, 0x1.00001p+0, -0x1.c00008p-19, INEXACT) +T(RN, 0x1.000002p+0, 0x1.2p+3, 0x1.000012p+0, -0x1.200006p-18, INEXACT) +T(RN, 0x1.000002p+0, 0x1p+5, 0x1.00004p+0, -0x1.f00026p-15, INEXACT) +T(RN, 0x1.000002p+0, -0x1.fffffep-1, 0x1.fffffcp-1, -0x1.7ffffcp-22, INEXACT) +T(RN, 0x1.000002p+0, -0x1p+0, 0x1.fffffcp-1, -0x1.fffffcp-23, INEXACT) +T(RN, 0x1.000002p+0, -0x1.000002p+0, 0x1.fffffcp-1, -0x1.fffffep-47, INEXACT) +T(RN, 0x1.000002p+0, -0x1.fffffep+0, 0x1.fffff8p-1, -0x1.fffffap-21, INEXACT) +T(RN, 0x1.000002p+0, -0x1p+1, 0x1.fffff8p-1, -0x1.7ffffcp-21, INEXACT) +T(RN, 0x1.000002p+0, -0x1.000002p+1, 0x1.fffff8p-1, -0x1.000002p-22, INEXACT) +T(RN, 0x1.000002p+0, -0x1.7ffffcp+1, 0x1.fffff4p-1, -0x1.3ffffap-19, INEXACT) +T(RN, 0x1.000002p+0, -0x1.800004p+1, 0x1.fffff4p-1, -0x1.000004p-21, INEXACT) +T(RN, 0x1.000004p+0, 0x1p-1, 0x1.000002p+0, 0x1.fffffcp-25, INEXACT) +T(RN, 0x1.000004p+0, 0x1.fffffep-1, 0x1.000004p+0, 0x1.000002p-23, INEXACT) +T(RN, 0x1.000004p+0, 0x1.000002p+0, 0x1.000004p+0, -0x1.000002p-22, INEXACT) +T(RN, 0x1.000004p+0, 0x1.fffffep+0, 0x1.000008p+0, -0x1.fffff4p-23, INEXACT) +T(RN, 0x1.000004p+0, 0x1p+1, 0x1.000008p+0, -0x1p-21, INEXACT) +T(RN, 0x1.000004p+0, 0x1.000002p+1, 0x1.000008p+0, -0x1.000004p-20, INEXACT) +T(RN, 0x1.000004p+0, 0x1.7ffffcp+1, 0x1.00000cp+0, -0x1.ffffep-22, INEXACT) +T(RN, 0x1.000004p+0, 0x1.800004p+1, 0x1.00000cp+0, -0x1.400006p-19, INEXACT) +T(RN, 0x1.000004p+0, -0x1p-1, 0x1.fffffcp-1, -0x1.7ffffcp-22, INEXACT) +T(RN, 0x1.000004p+0, -0x1.fffffep-1, 0x1.fffff8p-1, -0x1.3ffffap-20, INEXACT) +T(RN, 0x1.000004p+0, -0x1p+0, 0x1.fffff8p-1, -0x1.fffff8p-21, INEXACT) +T(RN, 0x1.000004p+0, -0x1.000002p+0, 0x1.fffff8p-1, -0x1.fffffcp-22, INEXACT) +T(RN, 0x1.000004p+0, -0x1.fffffep+0, 0x1.fffffp-1, -0x1.bffff6p-19, INEXACT) +T(RN, 0x1.000004p+0, -0x1p+1, 0x1.fffffp-1, -0x1.7ffff8p-19, INEXACT) +T(RN, 0x1.000004p+0, -0x1.000002p+1, 0x1.fffffp-1, -0x1.fffffap-20, INEXACT) +T(RN, 0x1.000004p+0, -0x1.7ffffcp+1, 0x1.ffffe8p-1, -0x1.fffffp-18, INEXACT) +T(RN, 0x1.000004p+0, -0x1.800004p+1, 0x1.ffffe8p-1, -0x1.fffffap-19, INEXACT) +T(RN, 0x1.000006p+0, 0x1p-1, 0x1.000002p+0, -0x1.fffff8p-2, INEXACT) +T(RN, 0x1.000006p+0, 0x1.fffffep-1, 0x1.000006p+0, 0x1.800004p-23, INEXACT) +T(RN, 0x1.000006p+0, 0x1.000002p+0, 0x1.000006p+0, -0x1.800004p-22, INEXACT) +T(RN, 0x1.000006p+0, 0x1.fffffep+0, 0x1.00000cp+0, -0x1.7ffffap-21, INEXACT) +T(RN, 0x1.000006p+0, 0x1.000002p+1, 0x1.00000cp+0, -0x1.e00006p-20, INEXACT) +T(RN, 0x1.000006p+0, 0x1.7ffffcp+1, 0x1.000012p+0, -0x1.dffffp-20, INEXACT) +T(RN, 0x1.000006p+0, 0x1.800004p+1, 0x1.000012p+0, -0x1.380008p-18, INEXACT) +T(RN, 0x1.000006p+0, -0x1.fffffep-1, 0x1.fffff4p-1, -0x1.4ffff8p-19, INEXACT) +T(RN, 0x1.000006p+0, -0x1p+0, 0x1.fffff4p-1, -0x1.1ffffap-19, INEXACT) +T(RN, 0x1.000006p+0, -0x1.000002p+0, 0x1.fffff4p-1, -0x1.7ffffap-20, INEXACT) +T(RN, 0x1.000006p+0, -0x1.fffffep+0, 0x1.ffffe8p-1, -0x1.dffffp-18, INEXACT) +T(RN, 0x1.000006p+0, -0x1p+1, 0x1.ffffe8p-1, -0x1.affff2p-18, INEXACT) +T(RN, 0x1.000006p+0, -0x1.000002p+1, 0x1.ffffe8p-1, -0x1.4ffff8p-18, INEXACT) +T(RN, 0x1.000006p+0, -0x1.7ffffcp+1, 0x1.ffffdcp-1, -0x1.07fff4p-16, INEXACT) +T(RN, 0x1.000006p+0, -0x1.800004p+1, 0x1.ffffdcp-1, -0x1.4ffff8p-17, INEXACT) +T(RN, 0x1.000008p+0, 0x1p-1, 0x1.000004p+0, 0x1.fffff8p-23, INEXACT) +T(RN, 0x1.000008p+0, 0x1p+1, 0x1.00001p+0, -0x1p-19, INEXACT) +T(RN, 0x1.000008p+0, -0x1p-1, 0x1.fffff8p-1, -0x1.7ffff6p-20, INEXACT) +T(RN, 0x1.000008p+0, -0x1p+0, 0x1.fffffp-1, -0x1.fffffp-19, INEXACT) +T(RN, 0x1.000008p+0, -0x1p+1, 0x1.ffffep-1, -0x1.7ffffp-17, INEXACT) +T(RN, 0x1.00000ap+0, 0x1p-1, 0x1.000004p+0, -0x1.ffffe8p-2, INEXACT) +T(RN, 0x1.00000cp+0, 0x1p-1, 0x1.000006p+0, 0x1.1ffffap-21, INEXACT) +T(RN, 0x1.00000cp+0, -0x1p-1, 0x1.fffff4p-1, -0x1.affffp-19, INEXACT) +T(RN, 0x1.00000ep+0, 0x1p-1, 0x1.000006p+0, -0x1.ffffdp-2, INEXACT) +T(RN, 0x1.00001p+0, 0x1p-5, 0x1p+0, -0x1.fffffp-3, INEXACT) +T(RN, 0x1.00001p+0, 0x1p-3, 0x1.000002p+0, 0x1.bfffeep-22, INEXACT) +T(RN, 0x1.00001p+0, 0x1p-1, 0x1.000008p+0, 0x1.fffffp-21, INEXACT) +T(RN, 0x1.00001p+0, 0x1p+1, 0x1.00002p+0, -0x1p-17, INEXACT) +T(RN, 0x1.00001p+0, 0x1p+3, 0x1.00008p+0, -0x1.c00038p-13, INEXACT) +T(RN, 0x1.00001p+0, 0x1p+5, 0x1.0002p+0, -0x1.f00136p-9, INEXACT) +T(RN, 0x1.00002p+0, 0x1p-5, 0x1p+0, -0x1.ffffe2p-2, INEXACT) +T(RN, 0x1.00002p+0, 0x1p-3, 0x1.000004p+0, 0x1.bfffdep-20, INEXACT) +T(RN, 0x1.00002p+0, 0x1p-1, 0x1.00001p+0, 0x1.ffffep-19, INEXACT) +T(RN, 0x1.00002p+0, 0x1p+1, 0x1.00004p+0, -0x1p-15, INEXACT) +T(RN, 0x1.00002p+0, 0x1p+3, 0x1.0001p+0, -0x1.c0007p-11, INEXACT) +T(RN, 0x1.00002p+0, 0x1p+5, 0x1.0004p+0, -0x1.f0026cp-7, INEXACT) +T(RN, 0x1.000002p+2, 0x1p+1, 0x1.000004p+4, -0x1p-23, INEXACT) +T(RN, 0x1.000002p+2, 0x1.8p+1, 0x1.000006p+6, -0x1.8p-22, INEXACT) +T(RN, 0x1.000002p+2, 0x1p+2, 0x1.000008p+8, -0x1.800002p-21, INEXACT) +T(RN, 0x1.000004p+2, 0x1p+1, 0x1.000008p+4, -0x1p-21, INEXACT) +T(RN, 0x1p+47, -0x1.8p+1, 0x1p-141, 0x0p+0, 0) +T(RN, 0x1p+94, -0x1.8p+0, 0x1p-141, 0x0p+0, 0) +T(RN, 0x1.fffff8p+125, -0x1p-1, 0x1.000002p-63, -0x1.800006p-23, INEXACT) +T(RN, 0x1.fffff8p+125, -0x1p+0, 0x1.000004p-126, -0x1.000004p-21, INEXACT) +T(RN, 0x1.fffffcp+125, 0x1p-1, 0x1.fffffep+62, 0x1.000002p-25, INEXACT) +T(RN, 0x1.fffffcp+125, -0x1p+0, 0x1.000002p-126, -0x1.000002p-23, INEXACT) +T(RN, 0x1.000004p+126, 0x1p-1, 0x1.000002p+63, 0x1.fffffcp-25, INEXACT) +T(RN, 0x1.000004p+126, -0x1p-1, 0x1.fffffcp-64, -0x1.7ffffcp-22, INEXACT) +T(RN,-0x1.000008p-128, -0x1p+0, -0x1.fffffp+127, 0x1.fffffp-19, INEXACT) +T(RN,-0x1.fffffcp-127, -0x1p+0,-0x1.000002p+126, 0x1.000002p-23, INEXACT) +T(RN,-0x1.000002p-126, -0x1p+0,-0x1.fffffcp+125, 0x1.fffffcp-23, INEXACT) +T(RN,-0x1.000004p-126, -0x1p+0,-0x1.fffff8p+125, 0x1.fffff8p-21, INEXACT) +T(RN, -0x1.fffffp-1, -0x1p+0, -0x1.000008p+0, 0x1.000008p-19, INEXACT) +T(RN, -0x1.fffffp-1, -0x1p+1, 0x1.00001p+0, -0x1.80001p-18, INEXACT) +T(RN, -0x1.fffff4p-1, 0x1p+1, 0x1.ffffe8p-1, -0x1.2p-19, INEXACT) +T(RN, -0x1.fffff4p-1, -0x1p+0, -0x1.000006p+0, 0x1.200006p-20, INEXACT) +T(RN, -0x1.fffff4p-1, -0x1p+1, 0x1.00000cp+0, -0x1.b0000ep-19, INEXACT) +T(RN, -0x1.fffff8p-1, 0x1p+1, 0x1.fffffp-1, -0x1p-20, INEXACT) +T(RN, -0x1.fffff8p-1, -0x1p+0, -0x1.000004p+0, 0x1.000004p-21, INEXACT) +T(RN, -0x1.fffff8p-1, -0x1p+1, 0x1.000008p+0, -0x1.800008p-20, INEXACT) +T(RN, -0x1.fffffcp-1, 0x1p+1, 0x1.fffff8p-1, -0x1p-22, INEXACT) +T(RN, -0x1.fffffcp-1, -0x1p+0, -0x1.000002p+0, 0x1.000002p-23, INEXACT) +T(RN, -0x1.fffffcp-1, -0x1p+1, 0x1.000004p+0, -0x1.800004p-22, INEXACT) +T(RN, -0x1.fffffep-1, 0x1p+1, 0x1.fffffcp-1, -0x1p-24, INEXACT) +T(RN, -0x1.fffffep-1, 0x1.8p+1, -0x1.fffffap-1, 0x1.8p-23, INEXACT) +T(RN, -0x1.000002p+0, 0x1p+1, 0x1.000004p+0, -0x1p-23, INEXACT) +T(RN, -0x1.000002p+0, 0x1.8p+1, -0x1.000006p+0, 0x1.8p-22, INEXACT) +T(RN, -0x1.000002p+0, -0x1p+0, -0x1.fffffcp-1, 0x1.fffffcp-23, INEXACT) +T(RN, -0x1.000002p+0, -0x1p+1, 0x1.fffff8p-1, -0x1.7ffffcp-21, INEXACT) +T(RN, -0x1.000004p+0, 0x1p+1, 0x1.000008p+0, -0x1p-21, INEXACT) +T(RN, -0x1.000004p+0, -0x1p+0, -0x1.fffff8p-1, 0x1.fffff8p-21, INEXACT) +T(RN, -0x1.000004p+0, -0x1p+1, 0x1.fffffp-1, -0x1.7ffff8p-19, INEXACT) +T(RN, -0x1.000006p+0, -0x1p+0, -0x1.fffff4p-1, 0x1.1ffffap-19, INEXACT) +T(RN, -0x1.000006p+0, -0x1p+1, 0x1.ffffe8p-1, -0x1.affff2p-18, INEXACT) +T(RN, -0x1.000008p+0, 0x1p+1, 0x1.00001p+0, -0x1p-19, INEXACT) +T(RN, -0x1.000008p+0, -0x1p+0, -0x1.fffffp-1, 0x1.fffffp-19, INEXACT) +T(RN, -0x1.000008p+0, -0x1p+1, 0x1.ffffep-1, -0x1.7ffffp-17, INEXACT) +T(RN, -0x1p+47, -0x1.8p+1, -0x1p-141, 0x0p+0, 0) +T(RN,-0x1.fffff8p+125, -0x1p+0,-0x1.000004p-126, 0x1.000004p-21, INEXACT) +T(RN,-0x1.fffffcp+125, -0x1p+0,-0x1.000002p-126, 0x1.000002p-23, INEXACT) +T(RN, 0x1p-149, -0x1p+0, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-149, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-149, -0x1.fep+7, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-149, -0x1.fff8p+13, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-149, -0x1.fffcp+14, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-148, -0x1p+0, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-148, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-148, -0x1p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-148, -0x1p+15, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.8p-148, -0x1p+0, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.8p-148, -0x1.01p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.8p-148, -0x1.fff8p+13, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.8p-148, -0x1.fff8p+14, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-128, -0x1p+0, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-128, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.000008p-128, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-127, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-127, -0x1.fep+7, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-127, -0x1.fff8p+13, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-127, -0x1.fffcp+14, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.fffffcp-127, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-126, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-126, -0x1p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-126, -0x1.fff8p+13, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-126, -0x1.fff8p+14, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.000002p-126, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.000002p-126, -0x1.01p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.000002p-126, -0x1p+15, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.000004p-126, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-125, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-125, -0x1.fff8p+13, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-124, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-25, -0x1.f8p+7, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-23, -0x1.04p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-23, -0x1.19p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+1, 0x1p+7, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+1, 0x1.ff8p+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+1, 0x1p+10, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+2, 0x1.fffep+14, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.4p+3, 0x1.38p+5, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.4p+3, 0x1.35p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+8, 0x1.ffcp+10, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+8, 0x1p+11, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+16, 0x1.ff8p+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+16, 0x1p+10, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+119, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+119, 0x1.4p+2, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+126, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+126, 0x1.4p+2, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+127, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+127, 0x1.fep+7, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+127, 0x1p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+127, 0x1.01p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+127, 0x1.fffcp+14, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.fffffcp+127, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.fffffep+127, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-149, -0x1p+0, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-149, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-149, -0x1.01p+8, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-149, -0x1.fff8p+13, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-149, -0x1.fff8p+14, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-148, -0x1p+0, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-148, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-148, -0x1.fep+7, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-148, -0x1.fffcp+14, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.8p-148, -0x1p+0, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.8p-148, -0x1p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.8p-148, -0x1.fff8p+13, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.8p-148, -0x1p+15, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-128, -0x1p+0, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-128, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.000008p-128, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-127, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-127, -0x1.01p+8, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-127, -0x1.fff8p+13, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-127, -0x1p+15, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.fffffcp-127, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-126, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-126, -0x1.fep+7, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-126, -0x1.fff8p+13, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-126, -0x1.fffcp+14, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.000002p-126, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.000002p-126, -0x1p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.000002p-126, -0x1.fff8p+14, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.000004p-126, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-125, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-125, -0x1.fff8p+13, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-124, -0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-25, -0x1.f8p+7, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-23, -0x1.04p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p-23, -0x1.19p+8, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+1, 0x1p+7, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+1, 0x1.ff8p+9, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+1, 0x1p+10, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.4p+3, 0x1.38p+5, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+8, 0x1.ffcp+10, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+8, 0x1p+11, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+16, 0x1.ff8p+9, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+16, 0x1p+10, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+119, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+119, 0x1.4p+2, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+126, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+126, 0x1.4p+2, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+127, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+127, 0x1.fep+7, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+127, 0x1p+8, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+127, 0x1.01p+8, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+127, 0x1.fff8p+14, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+127, 0x1.fffcp+14, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.fffffcp+127, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.fffffep+127, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p-149, 0x1p+1, 0x0p+0, -0x1p-149, INEXACT|UNDERFLOW) +T(RN, 0x1p-149, 0x1.8p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-149, 0x1.fep+7, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-149, 0x1.fff8p+13, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-149, 0x1.fffcp+14, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-148, 0x1p+1, 0x0p+0, -0x1p-147, INEXACT|UNDERFLOW) +T(RN, 0x1p-148, 0x1.01p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-148, 0x1.fff8p+14, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.8p-148, 0x1p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.8p-148, 0x1.fff8p+13, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-128, 0x1p+1, 0x0p+0, -0x1p-107, INEXACT|UNDERFLOW) +T(RN, 0x1p-127, 0x1p+1, 0x0p+0, -0x1p-105, INEXACT|UNDERFLOW) +T(RN, 0x1p-127, 0x1.fep+7, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-127, 0x1.fff8p+13, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-127, 0x1.fffcp+14, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.fffff8p-127, 0x1p+1, 0x0p+0, -0x1.fffffp-104, INEXACT|UNDERFLOW) +T(RN, 0x1.fffffcp-127, 0x1p+1, 0x0p+0,-0x1.fffff8p-104, INEXACT|UNDERFLOW) +T(RN, 0x1p-126, 0x1p+1, 0x0p+0, -0x1p-103, INEXACT|UNDERFLOW) +T(RN, 0x1p-126, 0x1.8p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-126, 0x1.01p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-126, 0x1.fff8p+13, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.000002p-126, 0x1p+1, 0x0p+0,-0x1.000004p-103, INEXACT|UNDERFLOW) +T(RN, 0x1.000002p-126, 0x1p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.000002p-126, 0x1.fff8p+14, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.000004p-126, 0x1p+1, 0x0p+0,-0x1.000008p-103, INEXACT|UNDERFLOW) +T(RN, 0x1p-125, 0x1p+1, 0x0p+0, -0x1p-101, INEXACT|UNDERFLOW) +T(RN, 0x1p-125, 0x1.fff8p+13, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-124, 0x1p+1, 0x0p+0, -0x1p-99, INEXACT|UNDERFLOW) +T(RN, 0x1p-25, 0x1.f8p+7, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-24, 0x1p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-24, 0x1.01p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-23, 0x1.04p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-23, 0x1.19p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-16, 0x1p+10, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+1, -0x1.2cp+7, 0x0p+0, -0x1p-1, INEXACT|UNDERFLOW) +T(RN, 0x1p+1, -0x1.2ep+7, 0x0p+0, -0x1p-2, INEXACT|UNDERFLOW) +T(RN, 0x1p+1, -0x1.0c8p+10, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+1, -0x1.0ccp+10, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.4p+3, -0x1.7p+5, 0x0p+0, -0x1.244ce2p-4, INEXACT|UNDERFLOW) +T(RN, 0x1.4p+3, -0x1.45p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+6, -0x1.56ap+11, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+16, -0x1.ff8p+9, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+16, -0x1p+10, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+16, -0x1.004p+10, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+124, -0x1p+1, 0x0p+0, -0x1p-99, INEXACT|UNDERFLOW) +T(RN, 0x1p+125, -0x1p+1, 0x0p+0, -0x1p-101, INEXACT|UNDERFLOW) +T(RN, 0x1.fffff8p+125, -0x1p+1, 0x0p+0,-0x1.000008p-103, INEXACT|UNDERFLOW) +T(RN, 0x1.fffffcp+125, -0x1p+1, 0x0p+0,-0x1.000004p-103, INEXACT|UNDERFLOW) +T(RN, 0x1p+126, -0x1p+1, 0x0p+0, -0x1p-103, INEXACT|UNDERFLOW) +T(RN, 0x1.000002p+126, -0x1p+0, 0x1.fffffcp-127, -0x1.fffffcp-24, INEXACT|UNDERFLOW) +T(RN, 0x1.000002p+126, -0x1p+1, 0x0p+0,-0x1.fffff8p-104, INEXACT|UNDERFLOW) +T(RN, 0x1p+127, -0x1p+1, 0x0p+0, -0x1p-105, INEXACT|UNDERFLOW) +T(RN, 0x1p+127, -0x1.8p+1, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+127, -0x1.fep+7, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+127, -0x1p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+127, -0x1.01p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+127, -0x1.04p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+127, -0x1.05p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+127, -0x1.fffcp+14, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p+127, -0x1p+15, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.fffffp+127, -0x1p+0, 0x1.000008p-128, -0x1.000008p-21, INEXACT|UNDERFLOW) +T(RN, 0x1.fffffp+127, -0x1p+1, 0x0p+0, -0x1.00001p-107, INEXACT|UNDERFLOW) +T(RN, -0x1p-149, 0x1p+1, 0x0p+0, -0x1p-149, INEXACT|UNDERFLOW) +T(RN, -0x1p-149, 0x1.8p+1, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-149, 0x1.01p+8, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-149, 0x1.fff8p+13, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-149, 0x1.fff8p+14, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-148, 0x1p+1, 0x0p+0, -0x1p-147, INEXACT|UNDERFLOW) +T(RN, -0x1p-148, 0x1p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1.8p-148, 0x1.fep+7, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1.8p-148, 0x1.fff8p+13, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1.8p-148, 0x1.fffcp+14, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-128, 0x1p+1, 0x0p+0, -0x1p-107, INEXACT|UNDERFLOW) +T(RN, -0x1p-127, 0x1p+1, 0x0p+0, -0x1p-105, INEXACT|UNDERFLOW) +T(RN, -0x1p-127, 0x1.01p+8, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-127, 0x1.fff8p+13, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.fffff8p-127, 0x1p+1, 0x0p+0, -0x1.fffffp-104, INEXACT|UNDERFLOW) +T(RN,-0x1.fffffcp-127, 0x1p+1, 0x0p+0,-0x1.fffff8p-104, INEXACT|UNDERFLOW) +T(RN, -0x1p-126, 0x1p+1, 0x0p+0, -0x1p-103, INEXACT|UNDERFLOW) +T(RN, -0x1p-126, 0x1.8p+1, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-126, 0x1p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-126, 0x1.fff8p+13, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-126, 0x1.fff8p+14, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.000002p-126, 0x1p+1, 0x0p+0,-0x1.000004p-103, INEXACT|UNDERFLOW) +T(RN,-0x1.000002p-126, 0x1.fep+7, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.000002p-126, 0x1.fffcp+14, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.000004p-126, 0x1p+1, 0x0p+0,-0x1.000008p-103, INEXACT|UNDERFLOW) +T(RN, -0x1p-125, 0x1p+1, 0x0p+0, -0x1p-101, INEXACT|UNDERFLOW) +T(RN, -0x1p-125, 0x1.fff8p+13, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-124, 0x1p+1, 0x0p+0, -0x1p-99, INEXACT|UNDERFLOW) +T(RN, -0x1p-25, 0x1.f8p+7, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-24, 0x1p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-24, 0x1.01p+8, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-23, 0x1.04p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-23, 0x1.19p+8, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+1, -0x1.2cp+7, 0x0p+0, -0x1p-1, INEXACT|UNDERFLOW) +T(RN, -0x1p+1, -0x1.2ep+7, -0x0p+0, 0x1p-2, INEXACT|UNDERFLOW) +T(RN, -0x1p+1, -0x1.0c8p+10, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+1, -0x1.0ccp+10, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1.4p+3, -0x1.7p+5, 0x0p+0, -0x1.244ce2p-4, INEXACT|UNDERFLOW) +T(RN, -0x1.4p+3, -0x1.45p+8, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+6, -0x1.56ap+11, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+16, -0x1.ff8p+9, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+16, -0x1p+10, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+124, -0x1p+1, 0x0p+0, -0x1p-99, INEXACT|UNDERFLOW) +T(RN, -0x1p+125, -0x1p+1, 0x0p+0, -0x1p-101, INEXACT|UNDERFLOW) +T(RN,-0x1.fffff8p+125, -0x1p+1, 0x0p+0,-0x1.000008p-103, INEXACT|UNDERFLOW) +T(RN,-0x1.fffffcp+125, -0x1p+1, 0x0p+0,-0x1.000004p-103, INEXACT|UNDERFLOW) +T(RN, -0x1p+126, -0x1p+1, 0x0p+0, -0x1p-103, INEXACT|UNDERFLOW) +T(RN,-0x1.000002p+126, -0x1p+0,-0x1.fffffcp-127, 0x1.fffffcp-24, INEXACT|UNDERFLOW) +T(RN,-0x1.000002p+126, -0x1p+1, 0x0p+0,-0x1.fffff8p-104, INEXACT|UNDERFLOW) +T(RN, -0x1p+127, -0x1p+1, 0x0p+0, -0x1p-105, INEXACT|UNDERFLOW) +T(RN, -0x1p+127, -0x1.8p+1, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+127, -0x1.fep+7, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+127, -0x1p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+127, -0x1.01p+8, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+127, -0x1.04p+8, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+127, -0x1.05p+8, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+127, -0x1.fffcp+14, -0x0p+0, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p+127, -0x1p+15, 0x0p+0, -0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1.fffffp+127, -0x1p+0,-0x1.000008p-128, 0x1.000008p-21, INEXACT|UNDERFLOW) +T(RN, -0x1.fffffp+127, -0x1p+1, 0x0p+0, -0x1.00001p-107, INEXACT|UNDERFLOW) +T(RN, 0x0p+0, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-149, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-149, nan, nan, 0x0p+0, 0) +T(RN, 0x1.8p-148, nan, nan, 0x0p+0, 0) +T(RN, 0x1.8p-148, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-127, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-127, nan, nan, 0x0p+0, 0) +T(RN, 0x1.fffffcp-127, nan, nan, 0x0p+0, 0) +T(RN, 0x1.fffffcp-127, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-126, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-126, nan, nan, 0x0p+0, 0) +T(RN, 0x1.000002p-126, nan, nan, 0x0p+0, 0) +T(RN, 0x1.000002p-126, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-125, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-125, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-23, nan, nan, 0x0p+0, 0) +T(RN, 0x1p-23, nan, nan, 0x0p+0, 0) +T(RN, 0x1.000002p-23, nan, nan, 0x0p+0, 0) +T(RN, 0x1.000002p-23, nan, nan, 0x0p+0, 0) +T(RN, 0x1.fffffep-1, nan, nan, 0x0p+0, 0) +T(RN, 0x1.fffffep-1, nan, nan, 0x0p+0, 0) +T(RN, 0x1p+0, nan, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.000002p+0, nan, nan, 0x0p+0, 0) +T(RN, 0x1.000002p+0, nan, nan, 0x0p+0, 0) +T(RN, 0x1.fffffep+0, nan, nan, 0x0p+0, 0) +T(RN, 0x1.fffffep+0, nan, nan, 0x0p+0, 0) +T(RN, 0x1p+1, nan, nan, 0x0p+0, 0) +T(RN, 0x1p+1, nan, nan, 0x0p+0, 0) +T(RN, 0x1.000002p+1, nan, nan, 0x0p+0, 0) +T(RN, 0x1.000002p+1, nan, nan, 0x0p+0, 0) +T(RN, 0x1.fep+7, nan, nan, 0x0p+0, 0) +T(RN, 0x1.fep+7, nan, nan, 0x0p+0, 0) +T(RN, 0x1p+8, nan, nan, 0x0p+0, 0) +T(RN, 0x1p+8, nan, nan, 0x0p+0, 0) +T(RN, 0x1.01p+8, nan, nan, 0x0p+0, 0) +T(RN, 0x1.01p+8, nan, nan, 0x0p+0, 0) +T(RN, 0x1p+127, nan, nan, 0x0p+0, 0) +T(RN, 0x1p+127, nan, nan, 0x0p+0, 0) +T(RN, 0x1.fffffep+127, nan, nan, 0x0p+0, 0) +T(RN, 0x1.fffffep+127, nan, nan, 0x0p+0, 0) +T(RN, inf, nan, nan, 0x0p+0, 0) +T(RN, nan, 0x1.8p-148, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-127, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fffffcp-127, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-126, nan, 0x0p+0, 0) +T(RN, nan, 0x1.000002p-126, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-125, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-23, nan, 0x0p+0, 0) +T(RN, nan, 0x1.000002p-23, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-1, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fffffep-1, nan, 0x0p+0, 0) +T(RN, nan, 0x1.000002p+0, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fffffep+0, nan, 0x0p+0, 0) +T(RN, nan, 0x1p+1, nan, 0x0p+0, 0) +T(RN, nan, 0x1.000002p+1, nan, 0x0p+0, 0) +T(RN, nan, 0x1.8p+1, nan, 0x0p+0, 0) +T(RN, nan, 0x1.2p+3, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fep+7, nan, 0x0p+0, 0) +T(RN, nan, 0x1p+8, nan, 0x0p+0, 0) +T(RN, nan, 0x1.01p+8, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fff8p+13, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fffcp+14, nan, 0x0p+0, 0) +T(RN, nan, 0x1p+127, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fffffep+127, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-149, nan, 0x0p+0, 0) +T(RN, nan, -0x1.8p-148, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-127, nan, 0x0p+0, 0) +T(RN, nan,-0x1.fffffcp-127, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-126, nan, 0x0p+0, 0) +T(RN, nan,-0x1.000002p-126, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-125, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-23, nan, 0x0p+0, 0) +T(RN, nan, -0x1.000002p-23, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-1, nan, 0x0p+0, 0) +T(RN, nan, -0x1.fffffep-1, nan, 0x0p+0, 0) +T(RN, nan, -0x1p+0, nan, 0x0p+0, 0) +T(RN, nan, -0x1.000002p+0, nan, 0x0p+0, 0) +T(RN, nan, -0x1.fffffep+0, nan, 0x0p+0, 0) +T(RN, nan, -0x1p+1, nan, 0x0p+0, 0) +T(RN, nan, -0x1.000002p+1, nan, 0x0p+0, 0) +T(RN, nan, -0x1.8p+1, nan, 0x0p+0, 0) +T(RN, nan, -0x1.2p+3, nan, 0x0p+0, 0) +T(RN, nan, -0x1.fep+7, nan, 0x0p+0, 0) +T(RN, nan, -0x1p+8, nan, 0x0p+0, 0) +T(RN, nan, -0x1.01p+8, nan, 0x0p+0, 0) +T(RN, nan, -0x1.fff8p+13, nan, 0x0p+0, 0) +T(RN, nan, -0x1.fffcp+14, nan, 0x0p+0, 0) +T(RN, nan, -0x1p+127, nan, 0x0p+0, 0) +T(RN, nan,-0x1.fffffep+127, nan, 0x0p+0, 0) +T(RN, nan, nan, nan, 0x0p+0, 0) +T(RN, -0x0p+0, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-149, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-149, nan, nan, 0x0p+0, 0) +T(RN, -0x1.8p-148, nan, nan, 0x0p+0, 0) +T(RN, -0x1.8p-148, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-127, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-127, nan, nan, 0x0p+0, 0) +T(RN,-0x1.fffffcp-127, nan, nan, 0x0p+0, 0) +T(RN,-0x1.fffffcp-127, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-126, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-126, nan, nan, 0x0p+0, 0) +T(RN,-0x1.000002p-126, nan, nan, 0x0p+0, 0) +T(RN,-0x1.000002p-126, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-125, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-125, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-23, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-23, nan, nan, 0x0p+0, 0) +T(RN, -0x1.000002p-23, nan, nan, 0x0p+0, 0) +T(RN, -0x1.000002p-23, nan, nan, 0x0p+0, 0) +T(RN, -0x1.fffffep-1, nan, nan, 0x0p+0, 0) +T(RN, -0x1.fffffep-1, nan, nan, 0x0p+0, 0) +T(RN, -0x1p+0, nan, nan, 0x0p+0, 0) +T(RN, -0x1.000002p+0, nan, nan, 0x0p+0, 0) +T(RN, -0x1.000002p+0, nan, nan, 0x0p+0, 0) +T(RN, -0x1.fffffep+0, nan, nan, 0x0p+0, 0) +T(RN, -0x1.fffffep+0, nan, nan, 0x0p+0, 0) +T(RN, -0x1p+1, nan, nan, 0x0p+0, 0) +T(RN, -0x1p+1, nan, nan, 0x0p+0, 0) +T(RN, -0x1.000002p+1, nan, nan, 0x0p+0, 0) +T(RN, -0x1.000002p+1, nan, nan, 0x0p+0, 0) +T(RN, -0x1.fep+7, nan, nan, 0x0p+0, 0) +T(RN, -0x1.fep+7, nan, nan, 0x0p+0, 0) +T(RN, -0x1p+8, nan, nan, 0x0p+0, 0) +T(RN, -0x1p+8, nan, nan, 0x0p+0, 0) +T(RN, -0x1.01p+8, nan, nan, 0x0p+0, 0) +T(RN, -0x1.01p+8, nan, nan, 0x0p+0, 0) +T(RN, -0x1p+127, nan, nan, 0x0p+0, 0) +T(RN, -0x1p+127, nan, nan, 0x0p+0, 0) +T(RN,-0x1.fffffep+127, nan, nan, 0x0p+0, 0) +T(RN,-0x1.fffffep+127, nan, nan, 0x0p+0, 0) +T(RN, -inf, nan, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-149, nan, 0x0p+0, 0) +T(RN, nan, 0x1.8p-148, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-127, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fffffcp-127, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-126, nan, 0x0p+0, 0) +T(RN, nan, 0x1.000002p-126, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-125, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-23, nan, 0x0p+0, 0) +T(RN, nan, 0x1.000002p-23, nan, 0x0p+0, 0) +T(RN, nan, 0x1p-1, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fffffep-1, nan, 0x0p+0, 0) +T(RN, nan, 0x1.000002p+0, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fffffep+0, nan, 0x0p+0, 0) +T(RN, nan, 0x1p+1, nan, 0x0p+0, 0) +T(RN, nan, 0x1.000002p+1, nan, 0x0p+0, 0) +T(RN, nan, 0x1.8p+1, nan, 0x0p+0, 0) +T(RN, nan, 0x1.2p+3, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fep+7, nan, 0x0p+0, 0) +T(RN, nan, 0x1p+8, nan, 0x0p+0, 0) +T(RN, nan, 0x1.01p+8, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fff8p+13, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fffcp+14, nan, 0x0p+0, 0) +T(RN, nan, 0x1p+127, nan, 0x0p+0, 0) +T(RN, nan, 0x1.fffffep+127, nan, 0x0p+0, 0) +T(RN, nan, inf, nan, 0x0p+0, 0) +T(RN, nan, nan, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-149, nan, 0x0p+0, 0) +T(RN, nan, -0x1.8p-148, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-127, nan, 0x0p+0, 0) +T(RN, nan,-0x1.fffffcp-127, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-126, nan, 0x0p+0, 0) +T(RN, nan,-0x1.000002p-126, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-125, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-23, nan, 0x0p+0, 0) +T(RN, nan, -0x1.000002p-23, nan, 0x0p+0, 0) +T(RN, nan, -0x1p-1, nan, 0x0p+0, 0) +T(RN, nan, -0x1.fffffep-1, nan, 0x0p+0, 0) +T(RN, nan, -0x1.000002p+0, nan, 0x0p+0, 0) +T(RN, nan, -0x1.fffffep+0, nan, 0x0p+0, 0) +T(RN, nan, -0x1p+1, nan, 0x0p+0, 0) +T(RN, nan, -0x1.000002p+1, nan, 0x0p+0, 0) +T(RN, nan, -0x1.8p+1, nan, 0x0p+0, 0) +T(RN, nan, -0x1.2p+3, nan, 0x0p+0, 0) +T(RN, nan, -0x1.fep+7, nan, 0x0p+0, 0) +T(RN, nan, -0x1p+8, nan, 0x0p+0, 0) +T(RN, nan, -0x1.01p+8, nan, 0x0p+0, 0) +T(RN, nan, -0x1.fff8p+13, nan, 0x0p+0, 0) +T(RN, nan, -0x1.fffcp+14, nan, 0x0p+0, 0) +T(RN, nan, -0x1p+127, nan, 0x0p+0, 0) +T(RN, nan,-0x1.fffffep+127, nan, 0x0p+0, 0) +T(RN, nan, -inf, nan, 0x0p+0, 0) +T(RN, nan, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-149, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-149, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-148, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-148, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.4p-147, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.4p-147, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.cp-147, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.cp-147, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.2p-146, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.2p-146, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-128, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-127, 0x1p-12, nan, 0x0p+0, INVALID) +T(RN, -0x1p-127, 0x1p-10, nan, 0x0p+0, INVALID) +T(RN, -0x1p-127, 0x1p-8, nan, 0x0p+0, INVALID) +T(RN, -0x1p-127, 0x1p-7, nan, 0x0p+0, INVALID) +T(RN, -0x1p-127, 0x1p-4, nan, 0x0p+0, INVALID) +T(RN, -0x1p-127, 0x1p-2, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffdcp-127, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffdcp-127, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffe4p-127, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffe4p-127, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.fffffp-127, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.fffffp-127, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffff4p-127, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffff4p-127, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffff8p-127, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffff8p-127, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffcp-127, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffcp-127, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffap-126, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffap-126, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-125, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-125, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.000002p-125, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.000002p-125, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-24, 0x1p-6, nan, 0x0p+0, INVALID) +T(RN, -0x1p-24, 0x1p-5, nan, 0x0p+0, INVALID) +T(RN, -0x1p-24, 0x1p-4, nan, 0x0p+0, INVALID) +T(RN, -0x1p-24, 0x1p-3, nan, 0x0p+0, INVALID) +T(RN, -0x1p-24, 0x1p-2, nan, 0x0p+0, INVALID) +T(RN, -0x1p-23, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-23, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-22, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-22, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.8p-22, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.8p-22, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-14, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p-4, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p+0, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000002p+0, 0x1.fffffep-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000002p+0, 0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.000002p+0, 0x1.fffffep+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.000002p+0, 0x1.000002p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000002p+0, 0x1.7ffffcp+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000002p+0, 0x1.800004p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000002p+0, -0x1.fffffep-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000002p+0, -0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.000002p+0, -0x1.fffffep+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.000002p+0, -0x1.000002p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000002p+0, -0x1.7ffffcp+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000002p+0, -0x1.800004p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000004p+0, 0x1.fffffep-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000004p+0, 0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.000004p+0, 0x1.fffffep+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.000004p+0, 0x1.000002p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000004p+0, 0x1.7ffffcp+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000004p+0, 0x1.800004p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000004p+0, -0x1.fffffep-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000004p+0, -0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.000004p+0, -0x1.fffffep+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.000004p+0, -0x1.000002p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000004p+0, -0x1.7ffffcp+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000004p+0, -0x1.800004p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000006p+0, 0x1.fffffep-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000006p+0, 0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.000006p+0, 0x1.fffffep+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.000006p+0, 0x1.000002p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000006p+0, 0x1.7ffffcp+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000006p+0, 0x1.800004p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000006p+0, -0x1.fffffep-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000006p+0, -0x1.000002p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.000006p+0, -0x1.fffffep+0, nan, 0x0p+0, INVALID) +T(RN, -0x1.000006p+0, -0x1.000002p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000006p+0, -0x1.7ffffcp+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000006p+0, -0x1.800004p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000004p+1, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.000004p+1, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.800008p+1, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.800008p+1, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.fffff6p+1, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1.fffff6p+1, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p+2, 0x1.6p+2, nan, 0x0p+0, INVALID) +T(RN, -0x1p+2, 0x1.89ep+10, nan, 0x0p+0, INVALID) +T(RN, -0x1p+2, 0x1.fffep+14, nan, 0x0p+0, INVALID) +T(RN, -0x1p+8, 0x1.8p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1p+10, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p+10, 0x1.8p+0, nan, 0x0p+0, INVALID) +T(RN, -0x1p+14, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p+94, -0x1.8p+0, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffff8p+125, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffff8p+125, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.000004p+126, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.000004p+126, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffep+126, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffep+126, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.000004p+127, 0x1p-1, nan, 0x0p+0, INVALID) +T(RN,-0x1.000004p+127, -0x1p-1, nan, 0x0p+0, INVALID) +T(RN, -0x1p+0, -0x1p-1, nan, 0x0p+0, INVALID) +T(RU, 0x0p+0, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RU, 0x1p-32, 0x1p+1, 0x1p-64, 0x0p+0, 0) +T(RU, 0x1p-31, 0x1p+1, 0x1p-62, 0x0p+0, 0) +T(RU, 0x1p-2, 0x1p+1, 0x1p-4, 0x0p+0, 0) +T(RU, 0x1p-1, 0x1p+1, 0x1p-2, 0x0p+0, 0) +T(RU, 0x1p+0, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1p+1, 0x1p+1, 0x1p+2, 0x0p+0, 0) +T(RU, 0x1.8p+1, 0x1p+1, 0x1.2p+3, 0x0p+0, 0) +T(RU, 0x1p+2, 0x1p+1, 0x1p+4, 0x0p+0, 0) +T(RU, 0x1.fep+7, 0x1p+1, 0x1.fc02p+15, 0x0p+0, 0) +T(RU, 0x1p+8, 0x1p+1, 0x1p+16, 0x0p+0, 0) +T(RU, 0x1.01p+8, 0x1p+1, 0x1.0201p+16, 0x0p+0, 0) +T(RU, inf, 0x1p+1, inf, 0x0p+0, 0) +T(RU, -0x1p-32, 0x1p+1, 0x1p-64, 0x0p+0, 0) +T(RU, -0x1p-31, 0x1p+1, 0x1p-62, 0x0p+0, 0) +T(RU, -0x1p-2, 0x1p+1, 0x1p-4, 0x0p+0, 0) +T(RU, -0x1p-1, 0x1p+1, 0x1p-2, 0x0p+0, 0) +T(RU, -0x1p+0, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RU, -0x1p+1, 0x1p+1, 0x1p+2, 0x0p+0, 0) +T(RU, -0x1.8p+1, 0x1p+1, 0x1.2p+3, 0x0p+0, 0) +T(RU, -0x1p+2, 0x1p+1, 0x1p+4, 0x0p+0, 0) +T(RU, -0x1.fep+7, 0x1p+1, 0x1.fc02p+15, 0x0p+0, 0) +T(RU, -0x1p+8, 0x1p+1, 0x1p+16, 0x0p+0, 0) +T(RU, -0x1.01p+8, 0x1p+1, 0x1.0201p+16, 0x0p+0, 0) +T(RU, -inf, 0x1p+1, inf, 0x0p+0, 0) +T(RU, 0x1.fffff4p-1, 0x1p+1, 0x1.ffffeap-1, 0x1.ffffb8p-1, INEXACT) +T(RU, 0x1.fffff8p-1, 0x1p+1, 0x1.fffff2p-1, 0x1.ffffep-1, INEXACT) +T(RU, 0x1.fffffcp-1, 0x1p+1, 0x1.fffffap-1, 0x1.fffff8p-1, INEXACT) +T(RU, 0x1.fffffep-1, 0x1p+1, 0x1.fffffep-1, 0x1.fffffep-1, INEXACT) +T(RU, 0x1.000002p+0, 0x1p+1, 0x1.000006p+0, 0x1.fffffcp-1, INEXACT) +T(RU, 0x1.000004p+0, 0x1p+1, 0x1.00000ap+0, 0x1.fffffp-1, INEXACT) +T(RU, 0x1.000008p+0, 0x1p+1, 0x1.000012p+0, 0x1.ffffcp-1, INEXACT) +T(RU, 0x1.000002p+2, 0x1p+1, 0x1.000006p+4, 0x1.fffffcp-1, INEXACT) +T(RU, 0x1.000004p+2, 0x1p+1, 0x1.00000ap+4, 0x1.fffffp-1, INEXACT) +T(RU, -0x1.fffff4p-1, 0x1p+1, 0x1.ffffeap-1, 0x1.ffffb8p-1, INEXACT) +T(RU, -0x1.fffff8p-1, 0x1p+1, 0x1.fffff2p-1, 0x1.ffffep-1, INEXACT) +T(RU, -0x1.fffffcp-1, 0x1p+1, 0x1.fffffap-1, 0x1.fffff8p-1, INEXACT) +T(RU, -0x1.fffffep-1, 0x1p+1, 0x1.fffffep-1, 0x1.fffffep-1, INEXACT) +T(RU, -0x1.000002p+0, 0x1p+1, 0x1.000006p+0, 0x1.fffffcp-1, INEXACT) +T(RU, -0x1.000004p+0, 0x1p+1, 0x1.00000ap+0, 0x1.fffffp-1, INEXACT) +T(RU, -0x1.000008p+0, 0x1p+1, 0x1.000012p+0, 0x1.ffffcp-1, INEXACT) +T(RU, 0x1p+119, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+126, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+127, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.fffffcp+127, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.fffffep+127, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, -0x1p+119, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, -0x1p+126, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, -0x1p+127, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU,-0x1.fffffcp+127, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU,-0x1.fffffep+127, 0x1p+1, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p-149, 0x1p+1, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-148, 0x1p+1, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-128, 0x1p+1, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-127, 0x1p+1, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.fffff8p-127, 0x1p+1, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.fffffcp-127, 0x1p+1, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-126, 0x1p+1, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.000002p-126, 0x1p+1, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.000004p-126, 0x1p+1, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-125, 0x1p+1, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-124, 0x1p+1, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-149, 0x1p+1, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-148, 0x1p+1, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-128, 0x1p+1, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-127, 0x1p+1, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.fffff8p-127, 0x1p+1, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.fffffcp-127, 0x1p+1, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-126, 0x1p+1, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.000002p-126, 0x1p+1, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.000004p-126, 0x1p+1, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-125, 0x1p+1, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-124, 0x1p+1, 0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, nan, 0x1p+1, nan, 0x0p+0, 0) +T(RU, nan, 0x1p+1, nan, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x1p+1, 0x0p+0, 0x0p+0, 0) +T(RZ, 0x1p-32, 0x1p+1, 0x1p-64, 0x0p+0, 0) +T(RZ, 0x1p-31, 0x1p+1, 0x1p-62, 0x0p+0, 0) +T(RZ, 0x1p-2, 0x1p+1, 0x1p-4, 0x0p+0, 0) +T(RZ, 0x1p-1, 0x1p+1, 0x1p-2, 0x0p+0, 0) +T(RZ, 0x1p+0, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1p+1, 0x1p+1, 0x1p+2, 0x0p+0, 0) +T(RZ, 0x1.8p+1, 0x1p+1, 0x1.2p+3, 0x0p+0, 0) +T(RZ, 0x1p+2, 0x1p+1, 0x1p+4, 0x0p+0, 0) +T(RZ, 0x1.fep+7, 0x1p+1, 0x1.fc02p+15, 0x0p+0, 0) +T(RZ, 0x1p+8, 0x1p+1, 0x1p+16, 0x0p+0, 0) +T(RZ, 0x1.01p+8, 0x1p+1, 0x1.0201p+16, 0x0p+0, 0) +T(RZ, inf, 0x1p+1, inf, 0x0p+0, 0) +T(RZ, -0x1p-32, 0x1p+1, 0x1p-64, 0x0p+0, 0) +T(RZ, -0x1p-31, 0x1p+1, 0x1p-62, 0x0p+0, 0) +T(RZ, -0x1p-2, 0x1p+1, 0x1p-4, 0x0p+0, 0) +T(RZ, -0x1p-1, 0x1p+1, 0x1p-2, 0x0p+0, 0) +T(RZ, -0x1p+0, 0x1p+1, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x1p+1, 0x1p+1, 0x1p+2, 0x0p+0, 0) +T(RZ, -0x1.8p+1, 0x1p+1, 0x1.2p+3, 0x0p+0, 0) +T(RZ, -0x1p+2, 0x1p+1, 0x1p+4, 0x0p+0, 0) +T(RZ, -0x1.fep+7, 0x1p+1, 0x1.fc02p+15, 0x0p+0, 0) +T(RZ, -0x1p+8, 0x1p+1, 0x1p+16, 0x0p+0, 0) +T(RZ, -0x1.01p+8, 0x1p+1, 0x1.0201p+16, 0x0p+0, 0) +T(RZ, -inf, 0x1p+1, inf, 0x0p+0, 0) +T(RZ, 0x1.fffff4p-1, 0x1p+1, 0x1.ffffe8p-1, -0x1.2p-19, INEXACT) +T(RZ, 0x1.fffff8p-1, 0x1p+1, 0x1.fffffp-1, -0x1p-20, INEXACT) +T(RZ, 0x1.fffffcp-1, 0x1p+1, 0x1.fffff8p-1, -0x1p-22, INEXACT) +T(RZ, 0x1.fffffep-1, 0x1p+1, 0x1.fffffcp-1, -0x1p-24, INEXACT) +T(RZ, 0x1.000002p+0, 0x1p+1, 0x1.000004p+0, -0x1p-23, INEXACT) +T(RZ, 0x1.000004p+0, 0x1p+1, 0x1.000008p+0, -0x1p-21, INEXACT) +T(RZ, 0x1.000008p+0, 0x1p+1, 0x1.00001p+0, -0x1p-19, INEXACT) +T(RZ, 0x1.000002p+2, 0x1p+1, 0x1.000004p+4, -0x1p-23, INEXACT) +T(RZ, 0x1.000004p+2, 0x1p+1, 0x1.000008p+4, -0x1p-21, INEXACT) +T(RZ, -0x1.fffff4p-1, 0x1p+1, 0x1.ffffe8p-1, -0x1.2p-19, INEXACT) +T(RZ, -0x1.fffff8p-1, 0x1p+1, 0x1.fffffp-1, -0x1p-20, INEXACT) +T(RZ, -0x1.fffffcp-1, 0x1p+1, 0x1.fffff8p-1, -0x1p-22, INEXACT) +T(RZ, -0x1.fffffep-1, 0x1p+1, 0x1.fffffcp-1, -0x1p-24, INEXACT) +T(RZ, -0x1.000002p+0, 0x1p+1, 0x1.000004p+0, -0x1p-23, INEXACT) +T(RZ, -0x1.000004p+0, 0x1p+1, 0x1.000008p+0, -0x1p-21, INEXACT) +T(RZ, -0x1.000008p+0, 0x1p+1, 0x1.00001p+0, -0x1p-19, INEXACT) +T(RZ, 0x1p+119, 0x1p+1, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+126, 0x1p+1, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+127, 0x1p+1, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.fffffcp+127, 0x1p+1, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.fffffep+127, 0x1p+1, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1p+119, 0x1p+1, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1p+126, 0x1p+1, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1p+127, 0x1p+1, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ,-0x1.fffffcp+127, 0x1p+1, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ,-0x1.fffffep+127, 0x1p+1, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p-149, 0x1p+1, 0x0p+0, -0x1p-149, INEXACT|UNDERFLOW) +T(RZ, 0x1p-148, 0x1p+1, 0x0p+0, -0x1p-147, INEXACT|UNDERFLOW) +T(RZ, 0x1p-128, 0x1p+1, 0x0p+0, -0x1p-107, INEXACT|UNDERFLOW) +T(RZ, 0x1p-127, 0x1p+1, 0x0p+0, -0x1p-105, INEXACT|UNDERFLOW) +T(RZ, 0x1.fffff8p-127, 0x1p+1, 0x0p+0, -0x1.fffffp-104, INEXACT|UNDERFLOW) +T(RZ, 0x1.fffffcp-127, 0x1p+1, 0x0p+0,-0x1.fffff8p-104, INEXACT|UNDERFLOW) +T(RZ, 0x1p-126, 0x1p+1, 0x0p+0, -0x1p-103, INEXACT|UNDERFLOW) +T(RZ, 0x1.000002p-126, 0x1p+1, 0x0p+0,-0x1.000004p-103, INEXACT|UNDERFLOW) +T(RZ, 0x1.000004p-126, 0x1p+1, 0x0p+0,-0x1.000008p-103, INEXACT|UNDERFLOW) +T(RZ, 0x1p-125, 0x1p+1, 0x0p+0, -0x1p-101, INEXACT|UNDERFLOW) +T(RZ, 0x1p-124, 0x1p+1, 0x0p+0, -0x1p-99, INEXACT|UNDERFLOW) +T(RZ, -0x1p-149, 0x1p+1, 0x0p+0, -0x1p-149, INEXACT|UNDERFLOW) +T(RZ, -0x1p-148, 0x1p+1, 0x0p+0, -0x1p-147, INEXACT|UNDERFLOW) +T(RZ, -0x1p-128, 0x1p+1, 0x0p+0, -0x1p-107, INEXACT|UNDERFLOW) +T(RZ, -0x1p-127, 0x1p+1, 0x0p+0, -0x1p-105, INEXACT|UNDERFLOW) +T(RZ,-0x1.fffff8p-127, 0x1p+1, 0x0p+0, -0x1.fffffp-104, INEXACT|UNDERFLOW) +T(RZ,-0x1.fffffcp-127, 0x1p+1, 0x0p+0,-0x1.fffff8p-104, INEXACT|UNDERFLOW) +T(RZ, -0x1p-126, 0x1p+1, 0x0p+0, -0x1p-103, INEXACT|UNDERFLOW) +T(RZ,-0x1.000002p-126, 0x1p+1, 0x0p+0,-0x1.000004p-103, INEXACT|UNDERFLOW) +T(RZ,-0x1.000004p-126, 0x1p+1, 0x0p+0,-0x1.000008p-103, INEXACT|UNDERFLOW) +T(RZ, -0x1p-125, 0x1p+1, 0x0p+0, -0x1p-101, INEXACT|UNDERFLOW) +T(RZ, -0x1p-124, 0x1p+1, 0x0p+0, -0x1p-99, INEXACT|UNDERFLOW) +T(RZ, nan, 0x1p+1, nan, 0x0p+0, 0) +T(RZ, nan, 0x1p+1, nan, 0x0p+0, 0) diff --git a/test/musl/src/math/ucb/sin.h b/test/musl/src/math/ucb/sin.h new file mode 100644 index 00000000..d0b2cec0 --- /dev/null +++ b/test/musl/src/math/ucb/sin.h @@ -0,0 +1,181 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// sind(+-max) +// sind(tiny) is tiny +T(RN, 0x1p-30, 0x1p-30, 0x1.555556p-11, INEXACT) +T(RN, -0x1p-30, -0x1p-30, -0x1.555556p-11, INEXACT) +T(RN, 0x1p-1022, 0x1p-1022, 0x0p+0, INEXACT) +T(RN, -0x1p-1022, -0x1p-1022, 0x0p+0, INEXACT) +T(RN, 0x1p-1074, 0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1074, -0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +// sind(nan or inf) is nan +T(RN, inf, nan, 0x0p+0, INVALID) +T(RN, -inf, nan, 0x0p+0, INVALID) +T(RN, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RD, 0x1.0000000000001p-1022, 0x1p-1022, -0x1p+0, INEXACT) +T(RD, 0x1.0000000000002p-1022, 0x1.0000000000001p-1022, -0x1p+0, INEXACT) +T(RD, 0x1p-1021, 0x1.fffffffffffffp-1022, -0x1p+0, INEXACT) +T(RD, 0x1p-1020, 0x1.fffffffffffffp-1021, -0x1p+0, INEXACT) +T(RD,-0x1.0000000000001p-1022,-0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RD,-0x1.0000000000002p-1022,-0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RD,-0x1.ffffffffffffbp-1022,-0x1.ffffffffffffbp-1022, 0x0p+0, INEXACT) +T(RD, -0x1p-1021, -0x1p-1021, 0x0p+0, INEXACT) +T(RD,-0x1.0000000000003p-1021,-0x1.0000000000003p-1021, 0x0p+0, INEXACT) +T(RD, -0x1p-1020, -0x1p-1020, 0x0p+0, INEXACT) +T(RD, -0x1.8p-27, -0x1.8p-27, -0x1.2p-3, INEXACT) +T(RD, -0x1p-26, -0x1p-26, -0x1.555556p-3, INEXACT) +T(RD, 0x1p-1074, 0x0p+0, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1073, 0x1p-1074, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1024, 0x1.ffffffffffff8p-1025, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1023, 0x1.ffffffffffffcp-1024, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffap-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffcp-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1022, 0x1.ffffffffffffep-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1074, -0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1073, -0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1.2p-1071, -0x1.2p-1071, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1024, -0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1023, -0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.ffffffffffffep-1023,-0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1022, -0x1p-1022, 0x0p+0, INEXACT) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, nan, 0x0p+0, INVALID) +T(RD, -inf, nan, 0x0p+0, INVALID) +T(RD, 0x1.8p-27, 0x1.7ffffffffffffp-27, -0x1.b8p-1, INEXACT) +T(RD, 0x1p-26, 0x1.fffffffffffffp-27, -0x1.555556p-1, INEXACT) +T(RN, 0x1.0000000000001p-1022, 0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000002p-1022, 0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RN, 0x1.ffffffffffffbp-1022, 0x1.ffffffffffffbp-1022, 0x0p+0, INEXACT) +T(RN, 0x1p-1021, 0x1p-1021, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000003p-1021, 0x1.0000000000003p-1021, 0x0p+0, INEXACT) +T(RN, 0x1p-1020, 0x1p-1020, 0x0p+0, INEXACT) +T(RN, 0x1.8p-27, 0x1.8p-27, 0x1.2p-3, INEXACT) +T(RN, 0x1p-26, 0x1p-26, 0x1.555556p-3, INEXACT) +T(RN,-0x1.0000000000001p-1022,-0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RN,-0x1.0000000000002p-1022,-0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RN,-0x1.ffffffffffffbp-1022,-0x1.ffffffffffffbp-1022, 0x0p+0, INEXACT) +T(RN, -0x1p-1021, -0x1p-1021, 0x0p+0, INEXACT) +T(RN,-0x1.0000000000003p-1021,-0x1.0000000000003p-1021, 0x0p+0, INEXACT) +T(RN, -0x1p-1020, -0x1p-1020, 0x0p+0, INEXACT) +T(RN, -0x1.8p-27, -0x1.8p-27, -0x1.2p-3, INEXACT) +T(RN, -0x1p-26, -0x1p-26, -0x1.555556p-3, INEXACT) +T(RN, 0x1p-1073, 0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.2p-1071, 0x1.2p-1071, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1024, 0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1023, 0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1073, -0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1.2p-1071, -0x1.2p-1071, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1024, -0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1023, -0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffffffffffep-1023,-0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.0000000000001p-1022, 0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RU, 0x1.0000000000002p-1022, 0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RU, 0x1.ffffffffffffbp-1022, 0x1.ffffffffffffbp-1022, 0x0p+0, INEXACT) +T(RU, 0x1p-1021, 0x1p-1021, 0x0p+0, INEXACT) +T(RU, 0x1.0000000000003p-1021, 0x1.0000000000003p-1021, 0x0p+0, INEXACT) +T(RU, 0x1p-1020, 0x1p-1020, 0x0p+0, INEXACT) +T(RU, 0x1.8p-27, 0x1.8p-27, 0x1.2p-3, INEXACT) +T(RU, 0x1p-26, 0x1p-26, 0x1.555556p-3, INEXACT) +T(RU,-0x1.0000000000001p-1022, -0x1p-1022, 0x1p+0, INEXACT) +T(RU,-0x1.0000000000002p-1022,-0x1.0000000000001p-1022, 0x1p+0, INEXACT) +T(RU, -0x1p-1021,-0x1.fffffffffffffp-1022, 0x1p+0, INEXACT) +T(RU, -0x1p-1020,-0x1.fffffffffffffp-1021, 0x1p+0, INEXACT) +T(RU, 0x1p-1074, 0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1073, 0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.2p-1071, 0x1.2p-1071, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1024, 0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1023, 0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1022, 0x1p-1022, 0x0p+0, INEXACT) +T(RU, -0x1p-1074, -0x0p+0, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1073, -0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1024,-0x1.ffffffffffff8p-1025, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1023,-0x1.ffffffffffffcp-1024, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffap-1023, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.ffffffffffffep-1023,-0x1.ffffffffffffcp-1023, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1022,-0x1.ffffffffffffep-1023, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, nan, 0x0p+0, INVALID) +T(RU, -inf, nan, 0x0p+0, INVALID) +T(RU, -0x1.8p-27, -0x1.7ffffffffffffp-27, 0x1.b8p-1, INEXACT) +T(RU, -0x1p-26, -0x1.fffffffffffffp-27, 0x1.555556p-1, INEXACT) +T(RZ, 0x1.0000000000001p-1022, 0x1p-1022, -0x1p+0, INEXACT) +T(RZ, 0x1.0000000000002p-1022, 0x1.0000000000001p-1022, -0x1p+0, INEXACT) +T(RZ, 0x1p-1021, 0x1.fffffffffffffp-1022, -0x1p+0, INEXACT) +T(RZ, 0x1p-1020, 0x1.fffffffffffffp-1021, -0x1p+0, INEXACT) +T(RZ,-0x1.0000000000001p-1022, -0x1p-1022, 0x1p+0, INEXACT) +T(RZ,-0x1.0000000000002p-1022,-0x1.0000000000001p-1022, 0x1p+0, INEXACT) +T(RZ, -0x1p-1021,-0x1.fffffffffffffp-1022, 0x1p+0, INEXACT) +T(RZ, -0x1p-1020,-0x1.fffffffffffffp-1021, 0x1p+0, INEXACT) +T(RZ, 0x1p-1074, 0x0p+0, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1073, 0x1p-1074, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1024, 0x1.ffffffffffff8p-1025, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1023, 0x1.ffffffffffffcp-1024, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffap-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffcp-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1022, 0x1.ffffffffffffep-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1074, -0x0p+0, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1073, -0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1024,-0x1.ffffffffffff8p-1025, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1023,-0x1.ffffffffffffcp-1024, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffap-1023, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.ffffffffffffep-1023,-0x1.ffffffffffffcp-1023, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1022,-0x1.ffffffffffffep-1023, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, inf, nan, 0x0p+0, INVALID) +T(RZ, -inf, nan, 0x0p+0, INVALID) +T(RZ, 0x1.8p-27, 0x1.7ffffffffffffp-27, -0x1.b8p-1, INEXACT) +T(RZ, 0x1p-26, 0x1.fffffffffffffp-27, -0x1.555556p-1, INEXACT) +T(RZ, -0x1.8p-27, -0x1.7ffffffffffffp-27, 0x1.b8p-1, INEXACT) +T(RZ, -0x1p-26, -0x1.fffffffffffffp-27, 0x1.555556p-1, INEXACT) diff --git a/test/musl/src/math/ucb/sinf.h b/test/musl/src/math/ucb/sinf.h new file mode 100644 index 00000000..5b0e5d34 --- /dev/null +++ b/test/musl/src/math/ucb/sinf.h @@ -0,0 +1,198 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// sins(+-max) +// sins(tiny) is tiny +T(RN, 0x1p-29, 0x1p-29, 0x1.555556p-38, INEXACT) +T(RN, -0x1p-29, -0x1p-29, -0x1.555556p-38, INEXACT) +T(RN, 0x1p-126, 0x1p-126, 0x0p+0, INEXACT) +T(RN, -0x1p-126, -0x1p-126, 0x0p+0, INEXACT) +T(RN, 0x1p-149, 0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-149, -0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +// sins(+-0) is +-0.0 +T(RN, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +// sins(nan or inf) is nan +T(RN, inf, nan, 0x0p+0, INVALID) +T(RN, -inf, nan, 0x0p+0, INVALID) +T(RN, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RD, 0x1.000002p-126, 0x1p-126, -0x1p+0, INEXACT) +T(RD, 0x1.000004p-126, 0x1.000002p-126, -0x1p+0, INEXACT) +T(RD, 0x1p-125, 0x1.fffffep-126, -0x1p+0, INEXACT) +T(RD, 0x1p-124, 0x1.fffffep-125, -0x1p+0, INEXACT) +T(RD,-0x1.000002p-126,-0x1.000002p-126, 0x0p+0, INEXACT) +T(RD,-0x1.000004p-126,-0x1.000004p-126, 0x0p+0, INEXACT) +T(RD,-0x1.fffff6p-126,-0x1.fffff6p-126, 0x0p+0, INEXACT) +T(RD, -0x1p-125, -0x1p-125, 0x0p+0, INEXACT) +T(RD,-0x1.000006p-125,-0x1.000006p-125, 0x0p+0, INEXACT) +T(RD, -0x1p-124, -0x1p-124, 0x0p+0, INEXACT) +T(RD, -0x1.8p-27, -0x1.8p-27, -0x1.2p-32, INEXACT) +T(RD, -0x1p-26, -0x1p-26, -0x1.555556p-32, INEXACT) +T(RD, -0x1p-12, -0x1p-12, -0x1.555556p-4, INEXACT) +T(RD, -0x1.8p-12, -0x1.8p-12, -0x1.2p-2, INEXACT) +T(RD, 0x1p-149, 0x0p+0, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-148, 0x1p-149, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-128, 0x1.fffffp-129, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-127, 0x1.fffff8p-128, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.fffff8p-127, 0x1.fffff4p-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.fffffcp-127, 0x1.fffff8p-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-126, 0x1.fffffcp-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-149, -0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-148, -0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1.2p-146, -0x1.2p-146, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-128, -0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-127, -0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.fffff8p-127,-0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.fffffcp-127,-0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-126, -0x1p-126, 0x0p+0, INEXACT) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, nan, 0x0p+0, INVALID) +T(RD, -inf, nan, 0x0p+0, INVALID) +T(RD, 0x1.8p-27, 0x1.7ffffep-27, -0x1p+0, INEXACT) +T(RD, 0x1p-26, 0x1.fffffep-27, -0x1p+0, INEXACT) +T(RD, 0x1p-12, 0x1.fffffep-13, -0x1.aaaaaap-1, INEXACT) +T(RD, 0x1.8p-12, 0x1.7ffffep-12, -0x1.7p-1, INEXACT) +T(RN, 0x1.000002p-126, 0x1.000002p-126, 0x0p+0, INEXACT) +T(RN, 0x1.000004p-126, 0x1.000004p-126, 0x0p+0, INEXACT) +T(RN, 0x1.fffff6p-126, 0x1.fffff6p-126, 0x0p+0, INEXACT) +T(RN, 0x1p-125, 0x1p-125, 0x0p+0, INEXACT) +T(RN, 0x1.000006p-125, 0x1.000006p-125, 0x0p+0, INEXACT) +T(RN, 0x1p-124, 0x1p-124, 0x0p+0, INEXACT) +T(RN, 0x1.8p-27, 0x1.8p-27, 0x1.2p-32, INEXACT) +T(RN, 0x1p-26, 0x1p-26, 0x1.555556p-32, INEXACT) +T(RN, 0x1p-12, 0x1p-12, 0x1.555556p-4, INEXACT) +T(RN, 0x1.8p-12, 0x1.8p-12, 0x1.2p-2, INEXACT) +T(RN,-0x1.000002p-126,-0x1.000002p-126, 0x0p+0, INEXACT) +T(RN,-0x1.000004p-126,-0x1.000004p-126, 0x0p+0, INEXACT) +T(RN,-0x1.fffff6p-126,-0x1.fffff6p-126, 0x0p+0, INEXACT) +T(RN, -0x1p-125, -0x1p-125, 0x0p+0, INEXACT) +T(RN,-0x1.000006p-125,-0x1.000006p-125, 0x0p+0, INEXACT) +T(RN, -0x1p-124, -0x1p-124, 0x0p+0, INEXACT) +T(RN, -0x1.8p-27, -0x1.8p-27, -0x1.2p-32, INEXACT) +T(RN, -0x1p-26, -0x1p-26, -0x1.555556p-32, INEXACT) +T(RN, -0x1p-12, -0x1p-12, -0x1.555556p-4, INEXACT) +T(RN, -0x1.8p-12, -0x1.8p-12, -0x1.2p-2, INEXACT) +T(RN, 0x1p-148, 0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.2p-146, 0x1.2p-146, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-128, 0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-127, 0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.fffff8p-127, 0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-148, -0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1.2p-146, -0x1.2p-146, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-128, -0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-127, -0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.fffff8p-127,-0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.fffffcp-127,-0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.000002p-126, 0x1.000002p-126, 0x0p+0, INEXACT) +T(RU, 0x1.000004p-126, 0x1.000004p-126, 0x0p+0, INEXACT) +T(RU, 0x1.fffff6p-126, 0x1.fffff6p-126, 0x0p+0, INEXACT) +T(RU, 0x1p-125, 0x1p-125, 0x0p+0, INEXACT) +T(RU, 0x1.000006p-125, 0x1.000006p-125, 0x0p+0, INEXACT) +T(RU, 0x1p-124, 0x1p-124, 0x0p+0, INEXACT) +T(RU, 0x1.8p-27, 0x1.8p-27, 0x1.2p-32, INEXACT) +T(RU, 0x1p-26, 0x1p-26, 0x1.555556p-32, INEXACT) +T(RU, 0x1p-12, 0x1p-12, 0x1.555556p-4, INEXACT) +T(RU, 0x1.8p-12, 0x1.8p-12, 0x1.2p-2, INEXACT) +T(RU,-0x1.000002p-126, -0x1p-126, 0x1p+0, INEXACT) +T(RU,-0x1.000004p-126,-0x1.000002p-126, 0x1p+0, INEXACT) +T(RU, -0x1p-125,-0x1.fffffep-126, 0x1p+0, INEXACT) +T(RU, -0x1p-124,-0x1.fffffep-125, 0x1p+0, INEXACT) +T(RU, -0x1.8p-27, -0x1.7ffffep-27, 0x1p+0, INEXACT) +T(RU, 0x1p-149, 0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-148, 0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.2p-146, 0x1.2p-146, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-128, 0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-127, 0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.fffff8p-127, 0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-126, 0x1p-126, 0x0p+0, INEXACT) +T(RU, -0x1p-149, -0x0p+0, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-148, -0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-128, -0x1.fffffp-129, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-127,-0x1.fffff8p-128, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.fffff8p-127,-0x1.fffff4p-127, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.fffffcp-127,-0x1.fffff8p-127, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-126,-0x1.fffffcp-127, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, nan, 0x0p+0, INVALID) +T(RU, -inf, nan, 0x0p+0, INVALID) +T(RU, -0x1p-26, -0x1.fffffep-27, 0x1p+0, INEXACT) +T(RU, -0x1p-12, -0x1.fffffep-13, 0x1.aaaaaap-1, INEXACT) +T(RU, -0x1.8p-12, -0x1.7ffffep-12, 0x1.7p-1, INEXACT) +T(RZ, 0x1.000002p-126, 0x1p-126, -0x1p+0, INEXACT) +T(RZ, 0x1.000004p-126, 0x1.000002p-126, -0x1p+0, INEXACT) +T(RZ, 0x1p-125, 0x1.fffffep-126, -0x1p+0, INEXACT) +T(RZ, 0x1p-124, 0x1.fffffep-125, -0x1p+0, INEXACT) +T(RZ,-0x1.000002p-126, -0x1p-126, 0x1p+0, INEXACT) +T(RZ,-0x1.000004p-126,-0x1.000002p-126, 0x1p+0, INEXACT) +T(RZ, -0x1p-125,-0x1.fffffep-126, 0x1p+0, INEXACT) +T(RZ, -0x1p-124,-0x1.fffffep-125, 0x1p+0, INEXACT) +T(RZ, -0x1.8p-27, -0x1.7ffffep-27, 0x1p+0, INEXACT) +T(RZ, 0x1p-149, 0x0p+0, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-148, 0x1p-149, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-128, 0x1.fffffp-129, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-127, 0x1.fffff8p-128, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.fffff8p-127, 0x1.fffff4p-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.fffffcp-127, 0x1.fffff8p-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-126, 0x1.fffffcp-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-149, -0x0p+0, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-148, -0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-128, -0x1.fffffp-129, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-127,-0x1.fffff8p-128, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.fffff8p-127,-0x1.fffff4p-127, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.fffffcp-127,-0x1.fffff8p-127, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-126,-0x1.fffffcp-127, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, inf, nan, 0x0p+0, INVALID) +T(RZ, -inf, nan, 0x0p+0, INVALID) +T(RZ, 0x1.8p-27, 0x1.7ffffep-27, -0x1p+0, INEXACT) +T(RZ, 0x1p-26, 0x1.fffffep-27, -0x1p+0, INEXACT) +T(RZ, 0x1p-12, 0x1.fffffep-13, -0x1.aaaaaap-1, INEXACT) +T(RZ, 0x1.8p-12, 0x1.7ffffep-12, -0x1.7p-1, INEXACT) +T(RZ, -0x1p-26, -0x1.fffffep-27, 0x1p+0, INEXACT) +T(RZ, -0x1p-12, -0x1.fffffep-13, 0x1.aaaaaap-1, INEXACT) +T(RZ, -0x1.8p-12, -0x1.7ffffep-12, 0x1.7p-1, INEXACT) diff --git a/test/musl/src/math/ucb/sinh.h b/test/musl/src/math/ucb/sinh.h new file mode 100644 index 00000000..7c50b7d4 --- /dev/null +++ b/test/musl/src/math/ucb/sinh.h @@ -0,0 +1,253 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// sinhd(log(2*max)chopped) is finite, overflow threshold +T(RN, 0x1.633ce8fb9f87dp+9, 0x1.ffffffffffd3bp+1023, 0x1.a6b164p-4, INEXACT) +T(RN, -0x1.633ce8fb9f87dp+9,-0x1.ffffffffffd3bp+1023, -0x1.a6b164p-4, INEXACT) +T(RZ, 0x1.633ce8fb9f87dp+9, 0x1.ffffffffffd3ap+1023, -0x1.cb29d4p-1, INEXACT) +T(RZ, -0x1.633ce8fb9f87dp+9,-0x1.ffffffffffd3ap+1023, 0x1.cb29d4p-1, INEXACT) +T(RU, 0x1.633ce8fb9f87dp+9, 0x1.ffffffffffd3bp+1023, 0x1.a6b164p-4, INEXACT) +T(RU, -0x1.633ce8fb9f87dp+9,-0x1.ffffffffffd3ap+1023, 0x1.cb29d4p-1, INEXACT) +T(RD, 0x1.633ce8fb9f87dp+9, 0x1.ffffffffffd3ap+1023, -0x1.cb29d4p-1, INEXACT) +T(RD, -0x1.633ce8fb9f87dp+9,-0x1.ffffffffffd3bp+1023, -0x1.a6b164p-4, INEXACT) +T(RN, 0x1.633ce8fb9f87ep+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.633ce8fb9f87ep+9, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.633ce8fb9f87ep+9, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1.633ce8fb9f87ep+9,-0x1.fffffffffffffp+1023, 0x1p+0, INEXACT|OVERFLOW) +T(RU, 0x1.633ce8fb9f87ep+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, -0x1.633ce8fb9f87ep+9,-0x1.fffffffffffffp+1023, 0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.633ce8fb9f87ep+9, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, -0x1.633ce8fb9f87ep+9, -inf, 0x0p+0, INEXACT|OVERFLOW) +// sinhd(tiny) :=: tiny +T(RN, 0x1p-67, 0x1p-67, 0x0p+0, INEXACT) +T(RN, -0x1p-67, -0x1p-67, 0x0p+0, INEXACT) +T(RN, 0x1p-1022, 0x1p-1022, 0x0p+0, INEXACT) +T(RN, -0x1p-1022, -0x1p-1022, 0x0p+0, INEXACT) +T(RN, 0x1p-1042, 0x1p-1042, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1042, -0x1p-1042, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1074, 0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1074, -0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +// sinhd(+-0) = +-0 +T(RN, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +// random arguments between -30 30 +T(RN, -0x1.01f5cb2b5006dp+3, -0x1.8c28619d32c08p+10, -0x1.e5b07p-3, INEXACT) +T(RN, 0x1.55de4fb825911p+4, 0x1.c5bef10311486p+29, 0x1.d6225ap-2, INEXACT) +T(RN, 0x1.a69db09de7505p+4, 0x1.13a2f3f7db55bp+37, -0x1.819a24p-3, INEXACT) +T(RN, -0x1.40920fba96889p+4, -0x1.df7c90f0e645ap+27, 0x1.139e96p-4, INEXACT) +T(RN, -0x1.04112e27084ddp+3, -0x1.a71eb14c98b3p+10, -0x1.5cd8a2p-6, INEXACT) +T(RN, -0x1.2dc321b093c41p+0, -0x1.78a9a1930d4d1p+0, 0x1.a83538p-2, INEXACT) +T(RN, 0x1.15995d18455f5p+4, 0x1.058065e10a9f3p+24, 0x1.b22c5p-4, INEXACT) +T(RN, 0x1.9a7144a51b239p+4, 0x1.0198176da4c49p+36, -0x1.e8cfbcp-2, INEXACT) +T(RN, -0x1.42b131079de4dp+2, -0x1.3590d1df8ba23p+6, -0x1.22a04p-2, INEXACT) +T(RN, -0x1.cbda03103b871p+4, -0x1.6124348c6ad56p+40, 0x1.05e9fep-6, INEXACT) +// sinhd(nan) is nan , sinhd(+-inf) is +-inf +T(RN, nan, nan, 0x0p+0, 0) +T(RN, inf, inf, 0x0p+0, 0) +T(RN, -inf, -inf, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +T(RD, 0x1p-1022, 0x1p-1022, 0x0p+0, INEXACT) +T(RD, 0x1.0000000000001p-1022, 0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RD, 0x1.0000000000002p-1022, 0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RD, 0x1p-1021, 0x1p-1021, 0x0p+0, INEXACT) +T(RD, 0x1p-1020, 0x1p-1020, 0x0p+0, INEXACT) +T(RD, 0x1p-26, 0x1p-26, -0x1.555556p-3, INEXACT) +T(RD, 0x1.8p-26, 0x1.8p-26, -0x1.2p-1, INEXACT) +T(RD, -0x1p-1022,-0x1.0000000000001p-1022, -0x1p+0, INEXACT) +T(RD,-0x1.0000000000001p-1022,-0x1.0000000000002p-1022, -0x1p+0, INEXACT) +T(RD,-0x1.0000000000002p-1022,-0x1.0000000000003p-1022, -0x1p+0, INEXACT) +T(RD, -0x1p-1021,-0x1.0000000000001p-1021, -0x1p+0, INEXACT) +T(RD, -0x1p-1020,-0x1.0000000000001p-1020, -0x1p+0, INEXACT) +T(RD, 0x1p-1074, 0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1073, 0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1024, 0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1023, 0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1074, -0x1p-1073, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1073, -0x1.8p-1073, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1024,-0x1.0000000000004p-1024, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1023,-0x1.0000000000002p-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffep-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.ffffffffffffep-1023, -0x1p-1022, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.634p+9, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+1022, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.ffffffffffffep+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RD, -0x1.634p+9, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RD, -0x1p+1022, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RD, -0x1p+1023, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RD,-0x1.ffffffffffffep+1023, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RD,-0x1.fffffffffffffp+1023, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, 0x1p-25, 0x1p-25, -0x1.555556p-1, INEXACT) +T(RD, 0x1.4p-25, 0x1.4000000000001p-25, -0x1.355556p-2, INEXACT) +T(RD, -0x1p-26, -0x1.0000000000001p-26, -0x1.aaaaaap-1, INEXACT) +T(RD, -0x1.8p-26, -0x1.8000000000001p-26, -0x1.cp-2, INEXACT) +T(RD, -0x1p-25, -0x1.0000000000001p-25, -0x1.555556p-2, INEXACT) +T(RD, -0x1.4p-25, -0x1.4000000000002p-25, -0x1.655556p-1, INEXACT) +T(RN, 0x1.0000000000001p-1022, 0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000002p-1022, 0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RN, 0x1p-1021, 0x1p-1021, 0x0p+0, INEXACT) +T(RN, 0x1p-1020, 0x1p-1020, 0x0p+0, INEXACT) +T(RN, 0x1p-26, 0x1p-26, -0x1.555556p-3, INEXACT) +T(RN, 0x1p-25, 0x1.0000000000001p-25, 0x1.555556p-2, INEXACT) +T(RN, 0x1.4p-25, 0x1.4000000000001p-25, -0x1.355556p-2, INEXACT) +T(RN,-0x1.0000000000001p-1022,-0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RN,-0x1.0000000000002p-1022,-0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RN, -0x1p-1021, -0x1p-1021, 0x0p+0, INEXACT) +T(RN, -0x1p-1020, -0x1p-1020, 0x0p+0, INEXACT) +T(RN, -0x1p-26, -0x1p-26, 0x1.555556p-3, INEXACT) +T(RN, -0x1p-25, -0x1.0000000000001p-25, -0x1.555556p-2, INEXACT) +T(RN, -0x1.4p-25, -0x1.4000000000001p-25, 0x1.355556p-2, INEXACT) +T(RN, 0x1p-1073, 0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1024, 0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1023, 0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1073, -0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1024, -0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1023, -0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffffffffffep-1023,-0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.634p+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+1022, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.ffffffffffffep+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.fffffffffffffp+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.634p+9, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+1022, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+1023, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.ffffffffffffep+1023, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.fffffffffffffp+1023, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, nan, nan, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RU, 0x1.8p-26, 0x1.8000000000001p-26, 0x1.cp-2, INEXACT) +T(RU, -0x1p-1022, -0x1p-1022, 0x0p+0, INEXACT) +T(RU,-0x1.0000000000001p-1022,-0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RU,-0x1.0000000000002p-1022,-0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RU, -0x1p-1021, -0x1p-1021, 0x0p+0, INEXACT) +T(RU, -0x1p-1020, -0x1p-1020, 0x0p+0, INEXACT) +T(RU, -0x1p-1074, -0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1073, -0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1024, -0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1023, -0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.ffffffffffffep-1023,-0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.634p+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+1022, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.ffffffffffffep+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.fffffffffffffp+1023, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, -0x1.634p+9,-0x1.fffffffffffffp+1023, 0x1p+0, INEXACT|OVERFLOW) +T(RU, -0x1p+1022,-0x1.fffffffffffffp+1023, 0x1p+0, INEXACT|OVERFLOW) +T(RU, -0x1p+1023,-0x1.fffffffffffffp+1023, 0x1p+0, INEXACT|OVERFLOW) +T(RU,-0x1.ffffffffffffep+1023,-0x1.fffffffffffffp+1023, 0x1p+0, INEXACT|OVERFLOW) +T(RU,-0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023, 0x1p+0, INEXACT|OVERFLOW) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, 0x1p-1022, 0x1.0000000000001p-1022, 0x1p+0, INEXACT) +T(RU, 0x1.0000000000001p-1022, 0x1.0000000000002p-1022, 0x1p+0, INEXACT) +T(RU, 0x1.0000000000002p-1022, 0x1.0000000000003p-1022, 0x1p+0, INEXACT) +T(RU, 0x1p-1021, 0x1.0000000000001p-1021, 0x1p+0, INEXACT) +T(RU, 0x1p-1020, 0x1.0000000000001p-1020, 0x1p+0, INEXACT) +T(RU, 0x1p-26, 0x1.0000000000001p-26, 0x1.aaaaaap-1, INEXACT) +T(RU, 0x1p-25, 0x1.0000000000001p-25, 0x1.555556p-2, INEXACT) +T(RU, 0x1.4p-25, 0x1.4000000000002p-25, 0x1.655556p-1, INEXACT) +T(RU, -0x1p-26, -0x1p-26, 0x1.555556p-3, INEXACT) +T(RU, -0x1.8p-26, -0x1.8p-26, 0x1.2p-1, INEXACT) +T(RU, -0x1p-25, -0x1p-25, 0x1.555556p-1, INEXACT) +T(RU, -0x1.4p-25, -0x1.4000000000001p-25, 0x1.355556p-2, INEXACT) +T(RU, 0x1p-1074, 0x1p-1073, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1073, 0x1.8p-1073, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1024, 0x1.0000000000004p-1024, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1023, 0x1.0000000000002p-1023, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffep-1023, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.ffffffffffffep-1023, 0x1p-1022, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, inf, inf, 0x0p+0, 0) +T(RZ, -inf, -inf, 0x0p+0, 0) +T(RZ, 0x1p-1022, 0x1p-1022, 0x0p+0, INEXACT) +T(RZ, 0x1.0000000000001p-1022, 0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RZ, 0x1.0000000000002p-1022, 0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RZ, 0x1p-1021, 0x1p-1021, 0x0p+0, INEXACT) +T(RZ, 0x1p-1020, 0x1p-1020, 0x0p+0, INEXACT) +T(RZ, 0x1p-26, 0x1p-26, -0x1.555556p-3, INEXACT) +T(RZ, 0x1.8p-26, 0x1.8p-26, -0x1.2p-1, INEXACT) +T(RZ, -0x1p-1022, -0x1p-1022, 0x0p+0, INEXACT) +T(RZ,-0x1.0000000000001p-1022,-0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RZ,-0x1.0000000000002p-1022,-0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RZ, -0x1p-1021, -0x1p-1021, 0x0p+0, INEXACT) +T(RZ, -0x1p-1020, -0x1p-1020, 0x0p+0, INEXACT) +T(RZ, 0x1p-1074, 0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1073, 0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1024, 0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1023, 0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1074, -0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1073, -0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1024, -0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1023, -0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.ffffffffffffep-1023,-0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.634p+9, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+1022, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.ffffffffffffep+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1.634p+9,-0x1.fffffffffffffp+1023, 0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1p+1022,-0x1.fffffffffffffp+1023, 0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1p+1023,-0x1.fffffffffffffp+1023, 0x1p+0, INEXACT|OVERFLOW) +T(RZ,-0x1.ffffffffffffep+1023,-0x1.fffffffffffffp+1023, 0x1p+0, INEXACT|OVERFLOW) +T(RZ,-0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023, 0x1p+0, INEXACT|OVERFLOW) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, 0x1p-25, 0x1p-25, -0x1.555556p-1, INEXACT) +T(RZ, 0x1.4p-25, 0x1.4000000000001p-25, -0x1.355556p-2, INEXACT) +T(RZ, -0x1p-26, -0x1p-26, 0x1.555556p-3, INEXACT) +T(RZ, -0x1.8p-26, -0x1.8p-26, 0x1.2p-1, INEXACT) +T(RZ, -0x1p-25, -0x1p-25, 0x1.555556p-1, INEXACT) +T(RZ, -0x1.4p-25, -0x1.4000000000001p-25, 0x1.355556p-2, INEXACT) diff --git a/test/musl/src/math/ucb/sinhf.h b/test/musl/src/math/ucb/sinhf.h new file mode 100644 index 00000000..f26ebe75 --- /dev/null +++ b/test/musl/src/math/ucb/sinhf.h @@ -0,0 +1,272 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// sinh(log(2*max)chopped) is finite +T(RN, 0x1.65a9f8p+6, 0x1.ffffd8p+127, -0x1.f47394p-4, INEXACT) +T(RN, -0x1.65a9f8p+6,-0x1.ffffd8p+127, 0x1.f47394p-4, INEXACT) +T(RZ, 0x1.65a9f8p+6, 0x1.ffffd8p+127, -0x1.f47394p-4, INEXACT) +T(RZ, -0x1.65a9f8p+6,-0x1.ffffd8p+127, 0x1.f47394p-4, INEXACT) +T(RU, 0x1.65a9f8p+6, 0x1.ffffdap+127, 0x1.c1718ep-1, INEXACT) +T(RU, -0x1.65a9f8p+6,-0x1.ffffd8p+127, 0x1.f47394p-4, INEXACT) +T(RD, 0x1.65a9f8p+6, 0x1.ffffd8p+127, -0x1.f47394p-4, INEXACT) +T(RD, -0x1.65a9f8p+6,-0x1.ffffdap+127, -0x1.c1718ep-1, INEXACT) +// sinh(tiny) :=: tiny +T(RN, 0x1p-29, 0x1p-29, -0x1.555556p-38, INEXACT) +T(RN, -0x1p-29, -0x1p-29, 0x1.555556p-38, INEXACT) +T(RN, 0x1p-126, 0x1p-126, 0x0p+0, INEXACT) +T(RN, -0x1p-126, -0x1p-126, 0x0p+0, INEXACT) +// sinh(+-0) = +-0 +T(RN, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +// random arguments between -30 30 +T(RN, -0x1.01f5ccp+3, -0x1.8c286cp+10, -0x1.9beea8p-5, INEXACT) +T(RN, 0x1.55de5p+4, 0x1.c5bef8p+29, -0x1.f18676p-2, INEXACT) +T(RN, 0x1.a69dbp+4, 0x1.13a2eap+37, 0x1.50c8bp-2, INEXACT) +T(RN, -0x1.40921p+4, -0x1.df7c9ap+27, -0x1.ddefb6p-2, INEXACT) +T(RN, -0x1.04112ep+3, -0x1.a71ebp+10, -0x1.6f050cp-2, INEXACT) +T(RN, -0x1.2dc322p+0, -0x1.78a9a2p+0, 0x1.02c29p-4, INEXACT) +T(RN, 0x1.15995ep+4, 0x1.058074p+24, -0x1.58c6p-2, INEXACT) +T(RN, 0x1.9a7144p+4, 0x1.01980ep+36, 0x1.e900cap-2, INEXACT) +T(RN, -0x1.42b132p+2, -0x1.3590d6p+6, 0x1.22221cp-2, INEXACT) +T(RN, -0x1.cbda04p+4, -0x1.61244ap+40, -0x1.8f2eacp-2, INEXACT) +// sinh(nan) is nan +T(RN, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +// sinh(+-inf) is inf +T(RN, inf, inf, 0x0p+0, 0) +T(RN, -inf, -inf, 0x0p+0, 0) +T(RZ, inf, inf, 0x0p+0, 0) +T(RZ, -inf, -inf, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RU, -inf, -inf, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +T(RD, -inf, -inf, 0x0p+0, 0) +// sinh(+-subnormal) +T(RN, 0x1p-149, 0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-149, -0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +// sinh overflow threshold +T(RN, 0x1.65a9fap+6, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.65a9fap+6, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.65a9fap+6, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1.65a9fap+6,-0x1.fffffep+127, 0x1p+0, INEXACT|OVERFLOW) +T(RU, 0x1.65a9fap+6, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, -0x1.65a9fap+6,-0x1.fffffep+127, 0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.65a9fap+6, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, -0x1.65a9fap+6, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RD, 0x1p-126, 0x1p-126, 0x0p+0, INEXACT) +T(RD, 0x1.000002p-126, 0x1.000002p-126, 0x0p+0, INEXACT) +T(RD, 0x1.000004p-126, 0x1.000004p-126, 0x0p+0, INEXACT) +T(RD, 0x1p-125, 0x1p-125, 0x0p+0, INEXACT) +T(RD, 0x1p-124, 0x1p-124, 0x0p+0, INEXACT) +T(RD, 0x1p-26, 0x1p-26, -0x1.555556p-32, INEXACT) +T(RD, 0x1.8p-26, 0x1.8p-26, -0x1.2p-30, INEXACT) +T(RD, 0x1p-25, 0x1p-25, -0x1.555556p-30, INEXACT) +T(RD, 0x1.4p-25, 0x1.4p-25, -0x1.4d5556p-29, INEXACT) +T(RD, 0x1.8p-12, 0x1.8p-12, -0x1.2p-2, INEXACT) +T(RD, -0x1p-126,-0x1.000002p-126, -0x1p+0, INEXACT) +T(RD,-0x1.000002p-126,-0x1.000004p-126, -0x1p+0, INEXACT) +T(RD,-0x1.000004p-126,-0x1.000006p-126, -0x1p+0, INEXACT) +T(RD, -0x1p-125,-0x1.000002p-125, -0x1p+0, INEXACT) +T(RD, -0x1p-124,-0x1.000002p-124, -0x1p+0, INEXACT) +T(RD, 0x1p-149, 0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-148, 0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-128, 0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-127, 0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.fffff8p-127, 0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-149, -0x1p-148, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-148, -0x1.8p-148, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-128,-0x1.000008p-128, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-127,-0x1.000004p-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.fffff8p-127,-0x1.fffffcp-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.fffffcp-127, -0x1p-126, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.66p+6, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.634p+9, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+126, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1p+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.fffffcp+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, 0x1.fffffep+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RD, -0x1.66p+6, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RD, -0x1.634p+9, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RD, -0x1p+126, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RD, -0x1p+127, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RD,-0x1.fffffcp+127, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RD,-0x1.fffffep+127, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, -0x1p-26, -0x1.000002p-26, -0x1p+0, INEXACT) +T(RD, -0x1.8p-26, -0x1.800002p-26, -0x1p+0, INEXACT) +T(RD, -0x1p-25, -0x1.000002p-25, -0x1p+0, INEXACT) +T(RD, -0x1.4p-25, -0x1.400002p-25, -0x1p+0, INEXACT) +T(RD, -0x1.8p-12, -0x1.800002p-12, -0x1.7p-1, INEXACT) +T(RN, 0x1.000002p-126, 0x1.000002p-126, 0x0p+0, INEXACT) +T(RN, 0x1.000004p-126, 0x1.000004p-126, 0x0p+0, INEXACT) +T(RN, 0x1p-125, 0x1p-125, 0x0p+0, INEXACT) +T(RN, 0x1p-124, 0x1p-124, 0x0p+0, INEXACT) +T(RN, 0x1p-26, 0x1p-26, -0x1.555556p-32, INEXACT) +T(RN, 0x1.8p-26, 0x1.8p-26, -0x1.2p-30, INEXACT) +T(RN, 0x1p-25, 0x1p-25, -0x1.555556p-30, INEXACT) +T(RN, 0x1.4p-25, 0x1.4p-25, -0x1.4d5556p-29, INEXACT) +T(RN, 0x1.8p-12, 0x1.8p-12, -0x1.2p-2, INEXACT) +T(RN,-0x1.000002p-126,-0x1.000002p-126, 0x0p+0, INEXACT) +T(RN,-0x1.000004p-126,-0x1.000004p-126, 0x0p+0, INEXACT) +T(RN, -0x1p-125, -0x1p-125, 0x0p+0, INEXACT) +T(RN, -0x1p-124, -0x1p-124, 0x0p+0, INEXACT) +T(RN, -0x1p-26, -0x1p-26, 0x1.555556p-32, INEXACT) +T(RN, -0x1.8p-26, -0x1.8p-26, 0x1.2p-30, INEXACT) +T(RN, -0x1p-25, -0x1p-25, 0x1.555556p-30, INEXACT) +T(RN, -0x1.4p-25, -0x1.4p-25, 0x1.4d5556p-29, INEXACT) +T(RN, -0x1.8p-12, -0x1.8p-12, 0x1.2p-2, INEXACT) +T(RN, 0x1p-148, 0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-128, 0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-127, 0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.fffff8p-127, 0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-148, -0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-128, -0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-127, -0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.fffff8p-127,-0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.fffffcp-127,-0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.66p+6, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.634p+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+126, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1p+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.fffffcp+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, 0x1.fffffep+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.66p+6, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1.634p+9, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+126, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN, -0x1p+127, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.fffffcp+127, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RN,-0x1.fffffep+127, -inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.8p-26, 0x1.800002p-26, 0x1p+0, INEXACT) +T(RU, 0x1.8p-12, 0x1.800002p-12, 0x1.7p-1, INEXACT) +T(RU, -0x1p-126, -0x1p-126, 0x0p+0, INEXACT) +T(RU,-0x1.000002p-126,-0x1.000002p-126, 0x0p+0, INEXACT) +T(RU,-0x1.000004p-126,-0x1.000004p-126, 0x0p+0, INEXACT) +T(RU, -0x1p-125, -0x1p-125, 0x0p+0, INEXACT) +T(RU, -0x1p-124, -0x1p-124, 0x0p+0, INEXACT) +T(RU, -0x1p-149, -0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-148, -0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-128, -0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-127, -0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.fffff8p-127,-0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.fffffcp-127,-0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.66p+6, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.634p+9, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+126, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1p+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.fffffcp+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, 0x1.fffffep+127, inf, 0x0p+0, INEXACT|OVERFLOW) +T(RU, -0x1.66p+6,-0x1.fffffep+127, 0x1p+0, INEXACT|OVERFLOW) +T(RU, -0x1.634p+9,-0x1.fffffep+127, 0x1p+0, INEXACT|OVERFLOW) +T(RU, -0x1p+126,-0x1.fffffep+127, 0x1p+0, INEXACT|OVERFLOW) +T(RU, -0x1p+127,-0x1.fffffep+127, 0x1p+0, INEXACT|OVERFLOW) +T(RU,-0x1.fffffcp+127,-0x1.fffffep+127, 0x1p+0, INEXACT|OVERFLOW) +T(RU,-0x1.fffffep+127,-0x1.fffffep+127, 0x1p+0, INEXACT|OVERFLOW) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, 0x1p-126, 0x1.000002p-126, 0x1p+0, INEXACT) +T(RU, 0x1.000002p-126, 0x1.000004p-126, 0x1p+0, INEXACT) +T(RU, 0x1.000004p-126, 0x1.000006p-126, 0x1p+0, INEXACT) +T(RU, 0x1p-125, 0x1.000002p-125, 0x1p+0, INEXACT) +T(RU, 0x1p-124, 0x1.000002p-124, 0x1p+0, INEXACT) +T(RU, 0x1p-26, 0x1.000002p-26, 0x1p+0, INEXACT) +T(RU, 0x1p-25, 0x1.000002p-25, 0x1p+0, INEXACT) +T(RU, 0x1.4p-25, 0x1.400002p-25, 0x1p+0, INEXACT) +T(RU, -0x1p-26, -0x1p-26, 0x1.555556p-32, INEXACT) +T(RU, -0x1.8p-26, -0x1.8p-26, 0x1.2p-30, INEXACT) +T(RU, -0x1p-25, -0x1p-25, 0x1.555556p-30, INEXACT) +T(RU, -0x1.4p-25, -0x1.4p-25, 0x1.4d5556p-29, INEXACT) +T(RU, -0x1.8p-12, -0x1.8p-12, 0x1.2p-2, INEXACT) +T(RU, 0x1p-149, 0x1p-148, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-148, 0x1.8p-148, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-128, 0x1.000008p-128, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-127, 0x1.000004p-127, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.fffff8p-127, 0x1.fffffcp-127, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.fffffcp-127, 0x1p-126, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-126, 0x1p-126, 0x0p+0, INEXACT) +T(RZ, 0x1.000002p-126, 0x1.000002p-126, 0x0p+0, INEXACT) +T(RZ, 0x1.000004p-126, 0x1.000004p-126, 0x0p+0, INEXACT) +T(RZ, 0x1p-125, 0x1p-125, 0x0p+0, INEXACT) +T(RZ, 0x1p-124, 0x1p-124, 0x0p+0, INEXACT) +T(RZ, 0x1p-26, 0x1p-26, -0x1.555556p-32, INEXACT) +T(RZ, 0x1.8p-26, 0x1.8p-26, -0x1.2p-30, INEXACT) +T(RZ, 0x1p-25, 0x1p-25, -0x1.555556p-30, INEXACT) +T(RZ, 0x1.4p-25, 0x1.4p-25, -0x1.4d5556p-29, INEXACT) +T(RZ, 0x1.8p-12, 0x1.8p-12, -0x1.2p-2, INEXACT) +T(RZ, -0x1p-126, -0x1p-126, 0x0p+0, INEXACT) +T(RZ,-0x1.000002p-126,-0x1.000002p-126, 0x0p+0, INEXACT) +T(RZ,-0x1.000004p-126,-0x1.000004p-126, 0x0p+0, INEXACT) +T(RZ, -0x1p-125, -0x1p-125, 0x0p+0, INEXACT) +T(RZ, -0x1p-124, -0x1p-124, 0x0p+0, INEXACT) +T(RZ, 0x1p-149, 0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-148, 0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-128, 0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-127, 0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.fffff8p-127, 0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-149, -0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-148, -0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-128, -0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-127, -0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.fffff8p-127,-0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.fffffcp-127,-0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.66p+6, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.634p+9, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+126, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1p+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.fffffcp+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, 0x1.fffffep+127, 0x1.fffffep+127, -0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1.66p+6,-0x1.fffffep+127, 0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1.634p+9,-0x1.fffffep+127, 0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1p+126,-0x1.fffffep+127, 0x1p+0, INEXACT|OVERFLOW) +T(RZ, -0x1p+127,-0x1.fffffep+127, 0x1p+0, INEXACT|OVERFLOW) +T(RZ,-0x1.fffffcp+127,-0x1.fffffep+127, 0x1p+0, INEXACT|OVERFLOW) +T(RZ,-0x1.fffffep+127,-0x1.fffffep+127, 0x1p+0, INEXACT|OVERFLOW) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, -0x1p-26, -0x1p-26, 0x1.555556p-32, INEXACT) +T(RZ, -0x1.8p-26, -0x1.8p-26, 0x1.2p-30, INEXACT) +T(RZ, -0x1p-25, -0x1p-25, 0x1.555556p-30, INEXACT) +T(RZ, -0x1.4p-25, -0x1.4p-25, 0x1.4d5556p-29, INEXACT) +T(RZ, -0x1.8p-12, -0x1.8p-12, 0x1.2p-2, INEXACT) diff --git a/test/musl/src/math/ucb/sqrt.h b/test/musl/src/math/ucb/sqrt.h new file mode 100644 index 00000000..35aaf33d --- /dev/null +++ b/test/musl/src/math/ucb/sqrt.h @@ -0,0 +1,389 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// sqrtd(+-0) is +-0 +T(RN, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +// sqrtd(+max) is finite +T(RN, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+511, -0x1p-1, INEXACT) +T(RZ, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+511, -0x1p-1, INEXACT) +T(RU, 0x1.fffffffffffffp+1023, 0x1p+512, 0x1p-2, INEXACT) +T(RD, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+511, -0x1p-1, INEXACT) +// sqrtd(4457404589857209) = 66763797 +T(RN, 0x1.fabf8c265b372p+51, 0x1.fd5e0a8p+25, 0x0p+0, 0) +T(RZ, 0x1.fabf8c265b372p+51, 0x1.fd5e0a8p+25, 0x0p+0, 0) +T(RU, 0x1.fabf8c265b372p+51, 0x1.fd5e0a8p+25, 0x0p+0, 0) +T(RD, 0x1.fabf8c265b372p+51, 0x1.fd5e0a8p+25, 0x0p+0, 0) +// sqrtd(3911242719325041) = 62539929 +T(RN, 0x1.bca8251d4d6e2p+51, 0x1.dd244c8p+25, 0x0p+0, 0) +T(RZ, 0x1.bca8251d4d6e2p+51, 0x1.dd244c8p+25, 0x0p+0, 0) +T(RU, 0x1.bca8251d4d6e2p+51, 0x1.dd244c8p+25, 0x0p+0, 0) +T(RD, 0x1.bca8251d4d6e2p+51, 0x1.dd244c8p+25, 0x0p+0, 0) +// sqrtd(4)=2 +T(RN, 0x1p+2, 0x1p+1, 0x0p+0, 0) +T(RZ, 0x1p+2, 0x1p+1, 0x0p+0, 0) +T(RU, 0x1p+2, 0x1p+1, 0x0p+0, 0) +T(RD, 0x1p+2, 0x1p+1, 0x0p+0, 0) +// sqrtd(x) for x=1,1+ulp,1-ulp +T(RN, 0x1.0000000000001p+0, 0x1p+0, -0x1p-1, INEXACT) +T(RN, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp-1, -0x1p-1, INEXACT) +T(RZ, 0x1.0000000000001p+0, 0x1p+0, -0x1p-1, INEXACT) +T(RZ, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp-1, -0x1p-1, INEXACT) +T(RU, 0x1.0000000000001p+0, 0x1.0000000000001p+0, 0x1p-1, INEXACT) +T(RU, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1.fffffffffffffp-1, 0x1p+0, 0x1p-2, INEXACT) +T(RD, 0x1.0000000000001p+0, 0x1p+0, -0x1p-1, INEXACT) +T(RD, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1.fffffffffffffp-1, 0x1.fffffffffffffp-1, -0x1p-1, INEXACT) +// sqrtd(+min) is non-zero +T(RN, 0x1p-1022, 0x1p-511, 0x0p+0, 0) +T(RZ, 0x1p-1022, 0x1p-511, 0x0p+0, 0) +T(RU, 0x1p-1022, 0x1p-511, 0x0p+0, 0) +T(RD, 0x1p-1022, 0x1p-511, 0x0p+0, 0) +T(RN, 0x1p-1074, 0x1p-537, 0x0p+0, 0) +T(RZ, 0x1p-1074, 0x1p-537, 0x0p+0, 0) +T(RU, 0x1p-1074, 0x1p-537, 0x0p+0, 0) +T(RD, 0x1p-1074, 0x1p-537, 0x0p+0, 0) +// random arguments between 0 8 +T(RN, 0x1.766bdb2b5006dp+1, 0x1.b5d6fec392e7dp+0, 0x1.81aab2p-2, INEXACT) +T(RN, 0x1.b6546fb825911p+2, 0x1.4efb330ef0b43p+1, 0x1.d98b1ap-2, INEXACT) +T(RN, 0x1.e165309de7505p+2, 0x1.5f0d324d38bdp+1, -0x1.f328fp-4, INEXACT) +T(RN, 0x1.541dcfba96889p+0, 0x1.271370ec508dp+0, -0x1.eda75cp-4, INEXACT) +T(RN, 0x1.754c3e27084ddp+1, 0x1.b52eb45df30b2p+0, -0x1.d43724p-3, INEXACT) +T(RN, 0x1.ebe1e1b093c41p+1, 0x1.f5d722e54e976p+0, 0x1.6bca84p-2, INEXACT) +T(RN, 0x1.940d8d18455f5p+2, 0x1.419df976f692dp+1, -0x1.8720aap-2, INEXACT) +T(RN, 0x1.dae714a51b239p+2, 0x1.5cad1a5584b9ap+1, -0x1.3595b8p-3, INEXACT) +T(RN, 0x1.a9f2d1079de4dp+1, 0x1.d2ff13bff7b67p+0, 0x1.e9c98p-2, INEXACT) +T(RN, 0x1.57dd33103b871p-3, 0x1.a397d7b1e31f2p-2, -0x1.222098p-3, INEXACT) +// sqrtd(inf) is inf +T(RN, inf, inf, 0x0p+0, 0) +T(RZ, inf, inf, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +// sqrtd(nan) is nan +T(RN, nan, nan, 0x0p+0, 0) +// sqrtd(-ve) is nan +T(RN, -0x1p-1074, nan, 0x0p+0, INVALID) +T(RN, -0x1p+0, nan, 0x0p+0, INVALID) +T(RN, -inf, nan, 0x0p+0, INVALID) +T(RD, 0x1p-1072, 0x1p-536, 0x0p+0, 0) +T(RD, 0x1p-1024, 0x1p-512, 0x0p+0, 0) +T(RD, 0x1p-1020, 0x1p-510, 0x0p+0, 0) +T(RD, 0x1p-148, 0x1p-74, 0x0p+0, 0) +T(RD, 0x1p-146, 0x1p-73, 0x0p+0, 0) +T(RD, 0x1p-128, 0x1p-64, 0x0p+0, 0) +T(RD, 0x1p-126, 0x1p-63, 0x0p+0, 0) +T(RD, 0x1p-124, 0x1p-62, 0x0p+0, 0) +T(RD, 0x1.2p-15, 0x1.8p-8, 0x0p+0, 0) +T(RD, 0x1p-8, 0x1p-4, 0x0p+0, 0) +T(RD, 0x1.2p-5, 0x1.8p-3, 0x0p+0, 0) +T(RD, 0x1p-4, 0x1p-2, 0x0p+0, 0) +T(RD, 0x1.2p+3, 0x1.8p+1, 0x0p+0, 0) +T(RD, 0x1p+8, 0x1p+4, 0x0p+0, 0) +T(RD, 0x1.2p+11, 0x1.8p+5, 0x0p+0, 0) +T(RD, 0x1.9f24p+14, 0x1.46p+7, 0x0p+0, 0) +T(RD, 0x1.b3c4p+14, 0x1.4ep+7, 0x0p+0, 0) +T(RD, 0x1.d3a4p+14, 0x1.5ap+7, 0x0p+0, 0) +T(RD, 0x1.f4a4p+14, 0x1.66p+7, 0x0p+0, 0) +T(RD, 0x1.ffe4p+14, 0x1.6ap+7, 0x0p+0, 0) +T(RD, 0x1.2p+21, 0x1.8p+10, 0x0p+0, 0) +T(RD, 0x1p+124, 0x1p+62, 0x0p+0, 0) +T(RD, 0x1p+126, 0x1p+63, 0x0p+0, 0) +T(RD, 0x1p+1020, 0x1p+510, 0x0p+0, 0) +T(RD, 0x1p+1022, 0x1p+511, 0x0p+0, 0) +T(RD, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-512, -0x1p+0, INEXACT) +T(RD, 0x1.0000000000002p-1022, 0x1p-511, -0x1p+0, INEXACT) +T(RD, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffbp-1, -0x1p-1, INEXACT) +T(RD, 0x1.ffffffffffff8p-1, 0x1.ffffffffffffbp-1, -0x1p+0, INEXACT) +T(RD, 0x1.ffffffffffff9p-1, 0x1.ffffffffffffcp-1, -0x1p-1, INEXACT) +T(RD, 0x1.ffffffffffffap-1, 0x1.ffffffffffffcp-1, -0x1p+0, INEXACT) +T(RD, 0x1.ffffffffffffbp-1, 0x1.ffffffffffffdp-1, -0x1p-1, INEXACT) +T(RD, 0x1.ffffffffffffcp-1, 0x1.ffffffffffffdp-1, -0x1p+0, INEXACT) +T(RD, 0x1.ffffffffffffdp-1, 0x1.ffffffffffffep-1, -0x1p-1, INEXACT) +T(RD, 0x1.ffffffffffffep-1, 0x1.ffffffffffffep-1, -0x1p+0, INEXACT) +T(RD, 0x1.0000000000002p+0, 0x1p+0, -0x1p+0, INEXACT) +T(RD, 0x1.0000000000003p+0, 0x1.0000000000001p+0, -0x1p-1, INEXACT) +T(RD, 0x1.0000000000004p+0, 0x1.0000000000001p+0, -0x1p+0, INEXACT) +T(RD, 0x1.0000000000005p+0, 0x1.0000000000002p+0, -0x1p-1, INEXACT) +T(RD, 0x1.0000000000006p+0, 0x1.0000000000002p+0, -0x1p+0, INEXACT) +T(RD, 0x1.0000000000007p+0, 0x1.0000000000003p+0, -0x1p-1, INEXACT) +T(RD, 0x1.ffffffffffffep+1021, 0x1.ffffffffffffep+510, -0x1p+0, INEXACT) +T(RD, 0x1.0000000000002p+1022, 0x1p+511, -0x1p+0, INEXACT) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, -0x1p-1074, nan, 0x0p+0, INVALID) +T(RD, -0x1p-1073, nan, 0x0p+0, INVALID) +T(RD, -0x1.4p-1072, nan, 0x0p+0, INVALID) +T(RD, -0x1.cp-1072, nan, 0x0p+0, INVALID) +T(RD, -0x1.2p-1071, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffffffffeep-1023, nan, 0x0p+0, INVALID) +T(RD,-0x1.ffffffffffff2p-1023, nan, 0x0p+0, INVALID) +T(RD,-0x1.ffffffffffff8p-1023, nan, 0x0p+0, INVALID) +T(RD,-0x1.ffffffffffffap-1023, nan, 0x0p+0, INVALID) +T(RD,-0x1.ffffffffffffcp-1023, nan, 0x0p+0, INVALID) +T(RD,-0x1.ffffffffffffep-1023, nan, 0x0p+0, INVALID) +T(RD,-0x1.ffffffffffffdp-1022, nan, 0x0p+0, INVALID) +T(RD, -0x1p-1021, nan, 0x0p+0, INVALID) +T(RD,-0x1.0000000000001p-1021, nan, 0x0p+0, INVALID) +T(RD, -0x1p-52, nan, 0x0p+0, INVALID) +T(RD, -0x1p-51, nan, 0x0p+0, INVALID) +T(RD, -0x1.8p-51, nan, 0x0p+0, INVALID) +T(RD, -0x1p+0, nan, 0x0p+0, INVALID) +T(RD, -0x1.0000000000002p+1, nan, 0x0p+0, INVALID) +T(RD, -0x1.8000000000004p+1, nan, 0x0p+0, INVALID) +T(RD, -0x1.ffffffffffffbp+1, nan, 0x0p+0, INVALID) +T(RD,-0x1.ffffffffffffcp+1021, nan, 0x0p+0, INVALID) +T(RD,-0x1.0000000000002p+1022, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffffffffffp+1022, nan, 0x0p+0, INVALID) +T(RD,-0x1.0000000000002p+1023, nan, 0x0p+0, INVALID) +T(RD, -inf, nan, 0x0p+0, INVALID) +T(RN, 0x1p-1072, 0x1p-536, 0x0p+0, 0) +T(RN, 0x1p-1024, 0x1p-512, 0x0p+0, 0) +T(RN, 0x1p-1020, 0x1p-510, 0x0p+0, 0) +T(RN, 0x1p-148, 0x1p-74, 0x0p+0, 0) +T(RN, 0x1p-146, 0x1p-73, 0x0p+0, 0) +T(RN, 0x1p-128, 0x1p-64, 0x0p+0, 0) +T(RN, 0x1p-126, 0x1p-63, 0x0p+0, 0) +T(RN, 0x1p-124, 0x1p-62, 0x0p+0, 0) +T(RN, 0x1.2p-15, 0x1.8p-8, 0x0p+0, 0) +T(RN, 0x1p-8, 0x1p-4, 0x0p+0, 0) +T(RN, 0x1.2p-5, 0x1.8p-3, 0x0p+0, 0) +T(RN, 0x1p-4, 0x1p-2, 0x0p+0, 0) +T(RN, 0x1.2p+3, 0x1.8p+1, 0x0p+0, 0) +T(RN, 0x1p+8, 0x1p+4, 0x0p+0, 0) +T(RN, 0x1.2p+11, 0x1.8p+5, 0x0p+0, 0) +T(RN, 0x1.9f24p+14, 0x1.46p+7, 0x0p+0, 0) +T(RN, 0x1.b3c4p+14, 0x1.4ep+7, 0x0p+0, 0) +T(RN, 0x1.d3a4p+14, 0x1.5ap+7, 0x0p+0, 0) +T(RN, 0x1.f4a4p+14, 0x1.66p+7, 0x0p+0, 0) +T(RN, 0x1.ffe4p+14, 0x1.6ap+7, 0x0p+0, 0) +T(RN, 0x1.2p+21, 0x1.8p+10, 0x0p+0, 0) +T(RN, 0x1p+124, 0x1p+62, 0x0p+0, 0) +T(RN, 0x1p+126, 0x1p+63, 0x0p+0, 0) +T(RN, 0x1p+1020, 0x1p+510, 0x0p+0, 0) +T(RN, 0x1p+1022, 0x1p+511, 0x0p+0, 0) +T(RN, 0x1.ffffffffffffep-1023, 0x1.fffffffffffffp-512, 0x1.000008p-54, INEXACT) +T(RN, 0x1.0000000000002p-1022, 0x1.0000000000001p-511, 0x1.fffff8p-54, INEXACT) +T(RN, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffbp-1, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffff8p-1, 0x1.ffffffffffffcp-1, 0x1p-50, INEXACT) +T(RN, 0x1.ffffffffffff9p-1, 0x1.ffffffffffffcp-1, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffffap-1, 0x1.ffffffffffffdp-1, 0x1.2p-51, INEXACT) +T(RN, 0x1.ffffffffffffbp-1, 0x1.ffffffffffffdp-1, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffffcp-1, 0x1.ffffffffffffep-1, 0x1.000002p-52, INEXACT) +T(RN, 0x1.ffffffffffffdp-1, 0x1.ffffffffffffep-1, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffffep-1, 0x1.fffffffffffffp-1, 0x1.000008p-54, INEXACT) +T(RN, 0x1.0000000000002p+0, 0x1.0000000000001p+0, 0x1.fffff8p-54, INEXACT) +T(RN, 0x1.0000000000003p+0, 0x1.0000000000001p+0, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000004p+0, 0x1.0000000000002p+0, 0x1.fffffep-52, INEXACT) +T(RN, 0x1.0000000000005p+0, 0x1.0000000000002p+0, -0x1p-1, INEXACT) +T(RN, 0x1.0000000000006p+0, 0x1.0000000000003p+0, 0x1.2p-50, INEXACT) +T(RN, 0x1.0000000000007p+0, 0x1.0000000000003p+0, -0x1p-1, INEXACT) +T(RN, 0x1.ffffffffffffep+1021, 0x1.fffffffffffffp+510, 0x1.000008p-54, INEXACT) +T(RN, 0x1.0000000000002p+1022, 0x1.0000000000001p+511, 0x1.fffff8p-54, INEXACT) +T(RN, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-1073, nan, 0x0p+0, INVALID) +T(RN, -0x1.4p-1072, nan, 0x0p+0, INVALID) +T(RN, -0x1.cp-1072, nan, 0x0p+0, INVALID) +T(RN, -0x1.2p-1071, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffffffffeep-1023, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffff2p-1023, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffff8p-1023, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffap-1023, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffcp-1023, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffep-1023, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffdp-1022, nan, 0x0p+0, INVALID) +T(RN, -0x1p-1021, nan, 0x0p+0, INVALID) +T(RN,-0x1.0000000000001p-1021, nan, 0x0p+0, INVALID) +T(RN, -0x1p-52, nan, 0x0p+0, INVALID) +T(RN, -0x1p-51, nan, 0x0p+0, INVALID) +T(RN, -0x1.8p-51, nan, 0x0p+0, INVALID) +T(RN, -0x1.0000000000002p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.8000000000004p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.ffffffffffffbp+1, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffffffffffcp+1021, nan, 0x0p+0, INVALID) +T(RN,-0x1.0000000000002p+1022, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffffffffffp+1022, nan, 0x0p+0, INVALID) +T(RN,-0x1.0000000000002p+1023, nan, 0x0p+0, INVALID) +T(RU, 0x1p-1072, 0x1p-536, 0x0p+0, 0) +T(RU, 0x1p-1024, 0x1p-512, 0x0p+0, 0) +T(RU, 0x1p-1020, 0x1p-510, 0x0p+0, 0) +T(RU, 0x1p-148, 0x1p-74, 0x0p+0, 0) +T(RU, 0x1p-146, 0x1p-73, 0x0p+0, 0) +T(RU, 0x1p-128, 0x1p-64, 0x0p+0, 0) +T(RU, 0x1p-126, 0x1p-63, 0x0p+0, 0) +T(RU, 0x1p-124, 0x1p-62, 0x0p+0, 0) +T(RU, 0x1.2p-15, 0x1.8p-8, 0x0p+0, 0) +T(RU, 0x1p-8, 0x1p-4, 0x0p+0, 0) +T(RU, 0x1.2p-5, 0x1.8p-3, 0x0p+0, 0) +T(RU, 0x1p-4, 0x1p-2, 0x0p+0, 0) +T(RU, 0x1.2p+3, 0x1.8p+1, 0x0p+0, 0) +T(RU, 0x1p+8, 0x1p+4, 0x0p+0, 0) +T(RU, 0x1.2p+11, 0x1.8p+5, 0x0p+0, 0) +T(RU, 0x1.9f24p+14, 0x1.46p+7, 0x0p+0, 0) +T(RU, 0x1.b3c4p+14, 0x1.4ep+7, 0x0p+0, 0) +T(RU, 0x1.d3a4p+14, 0x1.5ap+7, 0x0p+0, 0) +T(RU, 0x1.f4a4p+14, 0x1.66p+7, 0x0p+0, 0) +T(RU, 0x1.ffe4p+14, 0x1.6ap+7, 0x0p+0, 0) +T(RU, 0x1.2p+21, 0x1.8p+10, 0x0p+0, 0) +T(RU, 0x1p+124, 0x1p+62, 0x0p+0, 0) +T(RU, 0x1p+126, 0x1p+63, 0x0p+0, 0) +T(RU, 0x1p+1020, 0x1p+510, 0x0p+0, 0) +T(RU, 0x1p+1022, 0x1p+511, 0x0p+0, 0) +T(RU, 0x1.ffffffffffffep-1023, 0x1.fffffffffffffp-512, 0x1p-54, INEXACT) +T(RU, 0x1.0000000000002p-1022, 0x1.0000000000001p-511, 0x1.fffff8p-54, INEXACT) +T(RU, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffcp-1, 0x1p-1, INEXACT) +T(RU, 0x1.ffffffffffff8p-1, 0x1.ffffffffffffcp-1, 0x1p-50, INEXACT) +T(RU, 0x1.ffffffffffff9p-1, 0x1.ffffffffffffdp-1, 0x1p-1, INEXACT) +T(RU, 0x1.ffffffffffffap-1, 0x1.ffffffffffffdp-1, 0x1.2p-51, INEXACT) +T(RU, 0x1.ffffffffffffbp-1, 0x1.ffffffffffffep-1, 0x1p-1, INEXACT) +T(RU, 0x1.ffffffffffffcp-1, 0x1.ffffffffffffep-1, 0x1p-52, INEXACT) +T(RU, 0x1.ffffffffffffdp-1, 0x1.fffffffffffffp-1, 0x1p-1, INEXACT) +T(RU, 0x1.ffffffffffffep-1, 0x1.fffffffffffffp-1, 0x1p-54, INEXACT) +T(RU, 0x1.0000000000002p+0, 0x1.0000000000001p+0, 0x1.fffff8p-54, INEXACT) +T(RU, 0x1.0000000000003p+0, 0x1.0000000000002p+0, 0x1p-1, INEXACT) +T(RU, 0x1.0000000000004p+0, 0x1.0000000000002p+0, 0x1.fffffep-52, INEXACT) +T(RU, 0x1.0000000000005p+0, 0x1.0000000000003p+0, 0x1p-1, INEXACT) +T(RU, 0x1.0000000000006p+0, 0x1.0000000000003p+0, 0x1.2p-50, INEXACT) +T(RU, 0x1.0000000000007p+0, 0x1.0000000000004p+0, 0x1p-1, INEXACT) +T(RU, 0x1.ffffffffffffep+1021, 0x1.fffffffffffffp+510, 0x1p-54, INEXACT) +T(RU, 0x1.0000000000002p+1022, 0x1.0000000000001p+511, 0x1.fffff8p-54, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, -0x1p-1074, nan, 0x0p+0, INVALID) +T(RU, -0x1p-1073, nan, 0x0p+0, INVALID) +T(RU, -0x1.4p-1072, nan, 0x0p+0, INVALID) +T(RU, -0x1.cp-1072, nan, 0x0p+0, INVALID) +T(RU, -0x1.2p-1071, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffffffffeep-1023, nan, 0x0p+0, INVALID) +T(RU,-0x1.ffffffffffff2p-1023, nan, 0x0p+0, INVALID) +T(RU,-0x1.ffffffffffff8p-1023, nan, 0x0p+0, INVALID) +T(RU,-0x1.ffffffffffffap-1023, nan, 0x0p+0, INVALID) +T(RU,-0x1.ffffffffffffcp-1023, nan, 0x0p+0, INVALID) +T(RU,-0x1.ffffffffffffep-1023, nan, 0x0p+0, INVALID) +T(RU,-0x1.ffffffffffffdp-1022, nan, 0x0p+0, INVALID) +T(RU, -0x1p-1021, nan, 0x0p+0, INVALID) +T(RU,-0x1.0000000000001p-1021, nan, 0x0p+0, INVALID) +T(RU, -0x1p-52, nan, 0x0p+0, INVALID) +T(RU, -0x1p-51, nan, 0x0p+0, INVALID) +T(RU, -0x1.8p-51, nan, 0x0p+0, INVALID) +T(RU, -0x1p+0, nan, 0x0p+0, INVALID) +T(RU, -0x1.0000000000002p+1, nan, 0x0p+0, INVALID) +T(RU, -0x1.8000000000004p+1, nan, 0x0p+0, INVALID) +T(RU, -0x1.ffffffffffffbp+1, nan, 0x0p+0, INVALID) +T(RU,-0x1.ffffffffffffcp+1021, nan, 0x0p+0, INVALID) +T(RU,-0x1.0000000000002p+1022, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffffffffffp+1022, nan, 0x0p+0, INVALID) +T(RU,-0x1.0000000000002p+1023, nan, 0x0p+0, INVALID) +T(RU, -inf, nan, 0x0p+0, INVALID) +T(RZ, 0x1p-1072, 0x1p-536, 0x0p+0, 0) +T(RZ, 0x1p-1024, 0x1p-512, 0x0p+0, 0) +T(RZ, 0x1p-1020, 0x1p-510, 0x0p+0, 0) +T(RZ, 0x1p-148, 0x1p-74, 0x0p+0, 0) +T(RZ, 0x1p-146, 0x1p-73, 0x0p+0, 0) +T(RZ, 0x1p-128, 0x1p-64, 0x0p+0, 0) +T(RZ, 0x1p-126, 0x1p-63, 0x0p+0, 0) +T(RZ, 0x1p-124, 0x1p-62, 0x0p+0, 0) +T(RZ, 0x1.2p-15, 0x1.8p-8, 0x0p+0, 0) +T(RZ, 0x1p-8, 0x1p-4, 0x0p+0, 0) +T(RZ, 0x1.2p-5, 0x1.8p-3, 0x0p+0, 0) +T(RZ, 0x1p-4, 0x1p-2, 0x0p+0, 0) +T(RZ, 0x1.2p+3, 0x1.8p+1, 0x0p+0, 0) +T(RZ, 0x1p+8, 0x1p+4, 0x0p+0, 0) +T(RZ, 0x1.2p+11, 0x1.8p+5, 0x0p+0, 0) +T(RZ, 0x1.9f24p+14, 0x1.46p+7, 0x0p+0, 0) +T(RZ, 0x1.b3c4p+14, 0x1.4ep+7, 0x0p+0, 0) +T(RZ, 0x1.d3a4p+14, 0x1.5ap+7, 0x0p+0, 0) +T(RZ, 0x1.f4a4p+14, 0x1.66p+7, 0x0p+0, 0) +T(RZ, 0x1.ffe4p+14, 0x1.6ap+7, 0x0p+0, 0) +T(RZ, 0x1.2p+21, 0x1.8p+10, 0x0p+0, 0) +T(RZ, 0x1p+124, 0x1p+62, 0x0p+0, 0) +T(RZ, 0x1p+126, 0x1p+63, 0x0p+0, 0) +T(RZ, 0x1p+1020, 0x1p+510, 0x0p+0, 0) +T(RZ, 0x1p+1022, 0x1p+511, 0x0p+0, 0) +T(RZ, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-512, -0x1p+0, INEXACT) +T(RZ, 0x1.0000000000002p-1022, 0x1p-511, -0x1p+0, INEXACT) +T(RZ, 0x1.ffffffffffff7p-1, 0x1.ffffffffffffbp-1, -0x1p-1, INEXACT) +T(RZ, 0x1.ffffffffffff8p-1, 0x1.ffffffffffffbp-1, -0x1p+0, INEXACT) +T(RZ, 0x1.ffffffffffff9p-1, 0x1.ffffffffffffcp-1, -0x1p-1, INEXACT) +T(RZ, 0x1.ffffffffffffap-1, 0x1.ffffffffffffcp-1, -0x1p+0, INEXACT) +T(RZ, 0x1.ffffffffffffbp-1, 0x1.ffffffffffffdp-1, -0x1p-1, INEXACT) +T(RZ, 0x1.ffffffffffffcp-1, 0x1.ffffffffffffdp-1, -0x1p+0, INEXACT) +T(RZ, 0x1.ffffffffffffdp-1, 0x1.ffffffffffffep-1, -0x1p-1, INEXACT) +T(RZ, 0x1.ffffffffffffep-1, 0x1.ffffffffffffep-1, -0x1p+0, INEXACT) +T(RZ, 0x1.0000000000002p+0, 0x1p+0, -0x1p+0, INEXACT) +T(RZ, 0x1.0000000000003p+0, 0x1.0000000000001p+0, -0x1p-1, INEXACT) +T(RZ, 0x1.0000000000004p+0, 0x1.0000000000001p+0, -0x1p+0, INEXACT) +T(RZ, 0x1.0000000000005p+0, 0x1.0000000000002p+0, -0x1p-1, INEXACT) +T(RZ, 0x1.0000000000006p+0, 0x1.0000000000002p+0, -0x1p+0, INEXACT) +T(RZ, 0x1.0000000000007p+0, 0x1.0000000000003p+0, -0x1p-1, INEXACT) +T(RZ, 0x1.ffffffffffffep+1021, 0x1.ffffffffffffep+510, -0x1p+0, INEXACT) +T(RZ, 0x1.0000000000002p+1022, 0x1p+511, -0x1p+0, INEXACT) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, -0x1p-1074, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-1073, nan, 0x0p+0, INVALID) +T(RZ, -0x1.4p-1072, nan, 0x0p+0, INVALID) +T(RZ, -0x1.cp-1072, nan, 0x0p+0, INVALID) +T(RZ, -0x1.2p-1071, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffffffffeep-1023, nan, 0x0p+0, INVALID) +T(RZ,-0x1.ffffffffffff2p-1023, nan, 0x0p+0, INVALID) +T(RZ,-0x1.ffffffffffff8p-1023, nan, 0x0p+0, INVALID) +T(RZ,-0x1.ffffffffffffap-1023, nan, 0x0p+0, INVALID) +T(RZ,-0x1.ffffffffffffcp-1023, nan, 0x0p+0, INVALID) +T(RZ,-0x1.ffffffffffffep-1023, nan, 0x0p+0, INVALID) +T(RZ,-0x1.ffffffffffffdp-1022, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-1021, nan, 0x0p+0, INVALID) +T(RZ,-0x1.0000000000001p-1021, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-52, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-51, nan, 0x0p+0, INVALID) +T(RZ, -0x1.8p-51, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+0, nan, 0x0p+0, INVALID) +T(RZ, -0x1.0000000000002p+1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.8000000000004p+1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.ffffffffffffbp+1, nan, 0x0p+0, INVALID) +T(RZ,-0x1.ffffffffffffcp+1021, nan, 0x0p+0, INVALID) +T(RZ,-0x1.0000000000002p+1022, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffffffffffp+1022, nan, 0x0p+0, INVALID) +T(RZ,-0x1.0000000000002p+1023, nan, 0x0p+0, INVALID) +T(RZ, -inf, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/ucb/sqrtf.h b/test/musl/src/math/ucb/sqrtf.h new file mode 100644 index 00000000..ec1288cd --- /dev/null +++ b/test/musl/src/math/ucb/sqrtf.h @@ -0,0 +1,366 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// sqrt(+-0) is +-0 +T(RN, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +// sqrt(+max) is finite +T(RN, 0x1.fffffep+127, 0x1.fffffep+63, -0x1p-1, INEXACT) +T(RZ, 0x1.fffffep+127, 0x1.fffffep+63, -0x1p-1, INEXACT) +T(RU, 0x1.fffffep+127, 0x1p+64, 0x1p-2, INEXACT) +T(RD, 0x1.fffffep+127, 0x1.fffffep+63, -0x1p-1, INEXACT) +// sqrt(16736281) = 4091 +T(RN, 0x1.fec032p+23, 0x1.ff6p+11, 0x0p+0, 0) +T(RZ, 0x1.fec032p+23, 0x1.ff6p+11, 0x0p+0, 0) +T(RU, 0x1.fec032p+23, 0x1.ff6p+11, 0x0p+0, 0) +T(RD, 0x1.fec032p+23, 0x1.ff6p+11, 0x0p+0, 0) +// sqrt(16088121) = 4011 +T(RN, 0x1.eaf872p+23, 0x1.f56p+11, 0x0p+0, 0) +T(RZ, 0x1.eaf872p+23, 0x1.f56p+11, 0x0p+0, 0) +T(RU, 0x1.eaf872p+23, 0x1.f56p+11, 0x0p+0, 0) +T(RD, 0x1.eaf872p+23, 0x1.f56p+11, 0x0p+0, 0) +// sqrt(4)=2 +T(RN, 0x1p+2, 0x1p+1, 0x0p+0, 0) +T(RZ, 0x1p+2, 0x1p+1, 0x0p+0, 0) +T(RU, 0x1p+2, 0x1p+1, 0x0p+0, 0) +T(RD, 0x1p+2, 0x1p+1, 0x0p+0, 0) +// sqrt(x) for x=1,1+ulp,1-ulp +T(RN, 0x1.000002p+0, 0x1p+0, -0x1p-1, INEXACT) +T(RN, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RN, 0x1.fffffep-1, 0x1.fffffep-1, -0x1p-1, INEXACT) +T(RZ, 0x1.000002p+0, 0x1p+0, -0x1p-1, INEXACT) +T(RZ, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RZ, 0x1.fffffep-1, 0x1.fffffep-1, -0x1p-1, INEXACT) +T(RU, 0x1.000002p+0, 0x1.000002p+0, 0x1p-1, INEXACT) +T(RU, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RU, 0x1.fffffep-1, 0x1p+0, 0x1p-2, INEXACT) +T(RD, 0x1.000002p+0, 0x1p+0, -0x1p-1, INEXACT) +T(RD, 0x1p+0, 0x1p+0, 0x0p+0, 0) +T(RD, 0x1.fffffep-1, 0x1.fffffep-1, -0x1p-1, INEXACT) +// sqrt(+min) is non-zero +T(RN, 0x1p-126, 0x1p-63, 0x0p+0, 0) +T(RZ, 0x1p-126, 0x1p-63, 0x0p+0, 0) +T(RU, 0x1p-126, 0x1p-63, 0x0p+0, 0) +T(RD, 0x1p-126, 0x1p-63, 0x0p+0, 0) +// random arguments between 0 8 +T(RN, 0x1.766bdcp+1, 0x1.b5d7p+0, 0x1.8023f6p-2, INEXACT) +T(RN, 0x1.b6547p+2, 0x1.4efb34p+1, 0x1.ab352ap-2, INEXACT) +T(RN, 0x1.e1653p+2, 0x1.5f0d32p+1, -0x1.3a5a34p-5, INEXACT) +T(RN, 0x1.541ddp+0, 0x1.271372p+0, 0x1.eb2696p-2, INEXACT) +T(RN, 0x1.754c3ep+1, 0x1.b52eb4p+0, -0x1.1c5f7cp-3, INEXACT) +T(RN, 0x1.ebe1e2p+1, 0x1.f5d724p+0, 0x1.e45af6p-2, INEXACT) +T(RN, 0x1.940d8ep+2, 0x1.419dfap+1, 0x1.667d7ap-4, INEXACT) +T(RN, 0x1.dae714p+2, 0x1.5cad1ap+1, -0x1.8e8572p-5, INEXACT) +T(RN, 0x1.a9f2d2p+1, 0x1.d2ff14p+0, -0x1.20826cp-3, INEXACT) +T(RN, 0x1.57dd34p-3, 0x1.a397d8p-2, -0x1.10b108p-3, INEXACT) +// sqrt(min subnormal) is non-zero +T(RN, 0x1p-149, 0x1.6a09e6p-75, -0x1.9fcef4p-3, INEXACT) +T(RZ, 0x1p-149, 0x1.6a09e6p-75, -0x1.9fcef4p-3, INEXACT) +T(RU, 0x1p-149, 0x1.6a09e8p-75, 0x1.980c44p-1, INEXACT) +T(RD, 0x1p-149, 0x1.6a09e6p-75, -0x1.9fcef4p-3, INEXACT) +// sqrt(inf) is inf +T(RN, inf, inf, 0x0p+0, 0) +T(RZ, inf, inf, 0x0p+0, 0) +T(RU, inf, inf, 0x0p+0, 0) +T(RD, inf, inf, 0x0p+0, 0) +// sqrt(nan) is nan +T(RN, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +// sqrt(-ve) is nan +T(RN, -0x1p-149, nan, 0x0p+0, INVALID) +T(RN, -0x1p+0, nan, 0x0p+0, INVALID) +T(RN, -inf, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-149, nan, 0x0p+0, INVALID) +T(RZ, -0x1p+0, nan, 0x0p+0, INVALID) +T(RZ, -inf, nan, 0x0p+0, INVALID) +T(RU, -0x1p-149, nan, 0x0p+0, INVALID) +T(RU, -0x1p+0, nan, 0x0p+0, INVALID) +T(RU, -inf, nan, 0x0p+0, INVALID) +T(RD, -0x1p-149, nan, 0x0p+0, INVALID) +T(RD, -0x1p+0, nan, 0x0p+0, INVALID) +T(RD, -inf, nan, 0x0p+0, INVALID) +T(RD, 0x1p-148, 0x1p-74, 0x0p+0, 0) +T(RD, 0x1p-146, 0x1p-73, 0x0p+0, 0) +T(RD, 0x1p-128, 0x1p-64, 0x0p+0, 0) +T(RD, 0x1p-124, 0x1p-62, 0x0p+0, 0) +T(RD, 0x1.2p-15, 0x1.8p-8, 0x0p+0, 0) +T(RD, 0x1p-8, 0x1p-4, 0x0p+0, 0) +T(RD, 0x1.2p-5, 0x1.8p-3, 0x0p+0, 0) +T(RD, 0x1p-4, 0x1p-2, 0x0p+0, 0) +T(RD, 0x1.2p+3, 0x1.8p+1, 0x0p+0, 0) +T(RD, 0x1p+8, 0x1p+4, 0x0p+0, 0) +T(RD, 0x1.2p+11, 0x1.8p+5, 0x0p+0, 0) +T(RD, 0x1.9f24p+14, 0x1.46p+7, 0x0p+0, 0) +T(RD, 0x1.b3c4p+14, 0x1.4ep+7, 0x0p+0, 0) +T(RD, 0x1.d3a4p+14, 0x1.5ap+7, 0x0p+0, 0) +T(RD, 0x1.f4a4p+14, 0x1.66p+7, 0x0p+0, 0) +T(RD, 0x1.ffe4p+14, 0x1.6ap+7, 0x0p+0, 0) +T(RD, 0x1.2p+21, 0x1.8p+10, 0x0p+0, 0) +T(RD, 0x1p+124, 0x1p+62, 0x0p+0, 0) +T(RD, 0x1p+126, 0x1p+63, 0x0p+0, 0) +T(RD, 0x1.fffffcp-127, 0x1.fffffcp-64, -0x1.fffffep-1, INEXACT) +T(RD, 0x1.000004p-126, 0x1p-63, -0x1.fffffep-1, INEXACT) +T(RD, 0x1.ffffeep-1, 0x1.fffff6p-1, -0x1.ffffd8p-2, INEXACT) +T(RD, 0x1.fffffp-1, 0x1.fffff6p-1, -0x1.fffffp-1, INEXACT) +T(RD, 0x1.fffff2p-1, 0x1.fffff8p-1, -0x1.ffffe8p-2, INEXACT) +T(RD, 0x1.fffff4p-1, 0x1.fffff8p-1, -0x1.fffff6p-1, INEXACT) +T(RD, 0x1.fffff6p-1, 0x1.fffffap-1, -0x1.fffff4p-2, INEXACT) +T(RD, 0x1.fffff8p-1, 0x1.fffffap-1, -0x1.fffffcp-1, INEXACT) +T(RD, 0x1.fffffap-1, 0x1.fffffcp-1, -0x1.fffffcp-2, INEXACT) +T(RD, 0x1.fffffcp-1, 0x1.fffffcp-1, -0x1.fffffep-1, INEXACT) +T(RD, 0x1.000004p+0, 0x1p+0, -0x1.fffffep-1, INEXACT) +T(RD, 0x1.000006p+0, 0x1.000002p+0, -0x1.fffff8p-2, INEXACT) +T(RD, 0x1.000008p+0, 0x1.000002p+0, -0x1.fffff8p-1, INEXACT) +T(RD, 0x1.00000ap+0, 0x1.000004p+0, -0x1.ffffe8p-2, INEXACT) +T(RD, 0x1.00000cp+0, 0x1.000004p+0, -0x1.ffffeep-1, INEXACT) +T(RD, 0x1.00000ep+0, 0x1.000006p+0, -0x1.ffffdp-2, INEXACT) +T(RD, 0x1.fffffcp+125, 0x1.fffffcp+62, -0x1.fffffep-1, INEXACT) +T(RD, 0x1.000004p+126, 0x1p+63, -0x1.fffffep-1, INEXACT) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, -0x1p-148, nan, 0x0p+0, INVALID) +T(RD, -0x1.4p-147, nan, 0x0p+0, INVALID) +T(RD, -0x1.cp-147, nan, 0x0p+0, INVALID) +T(RD, -0x1.2p-146, nan, 0x0p+0, INVALID) +T(RD,-0x1.ffffdcp-127, nan, 0x0p+0, INVALID) +T(RD,-0x1.ffffe4p-127, nan, 0x0p+0, INVALID) +T(RD, -0x1.fffffp-127, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffff4p-127, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffff8p-127, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffcp-127, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffap-126, nan, 0x0p+0, INVALID) +T(RD, -0x1p-125, nan, 0x0p+0, INVALID) +T(RD,-0x1.000002p-125, nan, 0x0p+0, INVALID) +T(RD, -0x1p-23, nan, 0x0p+0, INVALID) +T(RD, -0x1p-22, nan, 0x0p+0, INVALID) +T(RD, -0x1.8p-22, nan, 0x0p+0, INVALID) +T(RD, -0x1.000004p+1, nan, 0x0p+0, INVALID) +T(RD, -0x1.800008p+1, nan, 0x0p+0, INVALID) +T(RD, -0x1.fffff6p+1, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffff8p+125, nan, 0x0p+0, INVALID) +T(RD,-0x1.000004p+126, nan, 0x0p+0, INVALID) +T(RD,-0x1.fffffep+126, nan, 0x0p+0, INVALID) +T(RD,-0x1.000004p+127, nan, 0x0p+0, INVALID) +T(RN, 0x1p-148, 0x1p-74, 0x0p+0, 0) +T(RN, 0x1p-146, 0x1p-73, 0x0p+0, 0) +T(RN, 0x1p-128, 0x1p-64, 0x0p+0, 0) +T(RN, 0x1p-124, 0x1p-62, 0x0p+0, 0) +T(RN, 0x1.2p-15, 0x1.8p-8, 0x0p+0, 0) +T(RN, 0x1p-8, 0x1p-4, 0x0p+0, 0) +T(RN, 0x1.2p-5, 0x1.8p-3, 0x0p+0, 0) +T(RN, 0x1p-4, 0x1p-2, 0x0p+0, 0) +T(RN, 0x1.2p+3, 0x1.8p+1, 0x0p+0, 0) +T(RN, 0x1p+8, 0x1p+4, 0x0p+0, 0) +T(RN, 0x1.2p+11, 0x1.8p+5, 0x0p+0, 0) +T(RN, 0x1.9f24p+14, 0x1.46p+7, 0x0p+0, 0) +T(RN, 0x1.b3c4p+14, 0x1.4ep+7, 0x0p+0, 0) +T(RN, 0x1.d3a4p+14, 0x1.5ap+7, 0x0p+0, 0) +T(RN, 0x1.f4a4p+14, 0x1.66p+7, 0x0p+0, 0) +T(RN, 0x1.ffe4p+14, 0x1.6ap+7, 0x0p+0, 0) +T(RN, 0x1.2p+21, 0x1.8p+10, 0x0p+0, 0) +T(RN, 0x1p+124, 0x1p+62, 0x0p+0, 0) +T(RN, 0x1p+126, 0x1p+63, 0x0p+0, 0) +T(RN, 0x1.fffffcp-127, 0x1.fffffep-64, 0x1.000002p-25, INEXACT) +T(RN, 0x1.000004p-126, 0x1.000002p-63, 0x1.fffffcp-25, INEXACT) +T(RN, 0x1.ffffeep-1, 0x1.fffff6p-1, -0x1.ffffd8p-2, INEXACT) +T(RN, 0x1.fffffp-1, 0x1.fffff8p-1, 0x1.000004p-21, INEXACT) +T(RN, 0x1.fffff2p-1, 0x1.fffff8p-1, -0x1.ffffe8p-2, INEXACT) +T(RN, 0x1.fffff4p-1, 0x1.fffffap-1, 0x1.200004p-22, INEXACT) +T(RN, 0x1.fffff6p-1, 0x1.fffffap-1, -0x1.fffff4p-2, INEXACT) +T(RN, 0x1.fffff8p-1, 0x1.fffffcp-1, 0x1.000002p-23, INEXACT) +T(RN, 0x1.fffffap-1, 0x1.fffffcp-1, -0x1.fffffcp-2, INEXACT) +T(RN, 0x1.fffffcp-1, 0x1.fffffep-1, 0x1.000002p-25, INEXACT) +T(RN, 0x1.000004p+0, 0x1.000002p+0, 0x1.fffffcp-25, INEXACT) +T(RN, 0x1.000006p+0, 0x1.000002p+0, -0x1.fffff8p-2, INEXACT) +T(RN, 0x1.000008p+0, 0x1.000004p+0, 0x1.fffff8p-23, INEXACT) +T(RN, 0x1.00000ap+0, 0x1.000004p+0, -0x1.ffffe8p-2, INEXACT) +T(RN, 0x1.00000cp+0, 0x1.000006p+0, 0x1.1ffffap-21, INEXACT) +T(RN, 0x1.00000ep+0, 0x1.000006p+0, -0x1.ffffdp-2, INEXACT) +T(RN, 0x1.fffffcp+125, 0x1.fffffep+62, 0x1.000002p-25, INEXACT) +T(RN, 0x1.000004p+126, 0x1.000002p+63, 0x1.fffffcp-25, INEXACT) +T(RN, nan, nan, 0x0p+0, 0) +T(RN, -0x1p-148, nan, 0x0p+0, INVALID) +T(RN, -0x1.4p-147, nan, 0x0p+0, INVALID) +T(RN, -0x1.cp-147, nan, 0x0p+0, INVALID) +T(RN, -0x1.2p-146, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffdcp-127, nan, 0x0p+0, INVALID) +T(RN,-0x1.ffffe4p-127, nan, 0x0p+0, INVALID) +T(RN, -0x1.fffffp-127, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffff4p-127, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffff8p-127, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffcp-127, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffap-126, nan, 0x0p+0, INVALID) +T(RN, -0x1p-125, nan, 0x0p+0, INVALID) +T(RN,-0x1.000002p-125, nan, 0x0p+0, INVALID) +T(RN, -0x1p-23, nan, 0x0p+0, INVALID) +T(RN, -0x1p-22, nan, 0x0p+0, INVALID) +T(RN, -0x1.8p-22, nan, 0x0p+0, INVALID) +T(RN, -0x1.000004p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.800008p+1, nan, 0x0p+0, INVALID) +T(RN, -0x1.fffff6p+1, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffff8p+125, nan, 0x0p+0, INVALID) +T(RN,-0x1.000004p+126, nan, 0x0p+0, INVALID) +T(RN,-0x1.fffffep+126, nan, 0x0p+0, INVALID) +T(RN,-0x1.000004p+127, nan, 0x0p+0, INVALID) +T(RU, 0x1p-148, 0x1p-74, 0x0p+0, 0) +T(RU, 0x1p-146, 0x1p-73, 0x0p+0, 0) +T(RU, 0x1p-128, 0x1p-64, 0x0p+0, 0) +T(RU, 0x1p-124, 0x1p-62, 0x0p+0, 0) +T(RU, 0x1.2p-15, 0x1.8p-8, 0x0p+0, 0) +T(RU, 0x1p-8, 0x1p-4, 0x0p+0, 0) +T(RU, 0x1.2p-5, 0x1.8p-3, 0x0p+0, 0) +T(RU, 0x1p-4, 0x1p-2, 0x0p+0, 0) +T(RU, 0x1.2p+3, 0x1.8p+1, 0x0p+0, 0) +T(RU, 0x1p+8, 0x1p+4, 0x0p+0, 0) +T(RU, 0x1.2p+11, 0x1.8p+5, 0x0p+0, 0) +T(RU, 0x1.9f24p+14, 0x1.46p+7, 0x0p+0, 0) +T(RU, 0x1.b3c4p+14, 0x1.4ep+7, 0x0p+0, 0) +T(RU, 0x1.d3a4p+14, 0x1.5ap+7, 0x0p+0, 0) +T(RU, 0x1.f4a4p+14, 0x1.66p+7, 0x0p+0, 0) +T(RU, 0x1.ffe4p+14, 0x1.6ap+7, 0x0p+0, 0) +T(RU, 0x1.2p+21, 0x1.8p+10, 0x0p+0, 0) +T(RU, 0x1p+124, 0x1p+62, 0x0p+0, 0) +T(RU, 0x1p+126, 0x1p+63, 0x0p+0, 0) +T(RU, 0x1.fffffcp-127, 0x1.fffffep-64, 0x1.000002p-25, INEXACT) +T(RU, 0x1.000004p-126, 0x1.000002p-63, 0x1.fffffcp-25, INEXACT) +T(RU, 0x1.ffffeep-1, 0x1.fffff8p-1, 0x1.000014p-1, INEXACT) +T(RU, 0x1.fffffp-1, 0x1.fffff8p-1, 0x1.000004p-21, INEXACT) +T(RU, 0x1.fffff2p-1, 0x1.fffffap-1, 0x1.00000cp-1, INEXACT) +T(RU, 0x1.fffff4p-1, 0x1.fffffap-1, 0x1.200004p-22, INEXACT) +T(RU, 0x1.fffff6p-1, 0x1.fffffcp-1, 0x1.000006p-1, INEXACT) +T(RU, 0x1.fffff8p-1, 0x1.fffffcp-1, 0x1.000002p-23, INEXACT) +T(RU, 0x1.fffffap-1, 0x1.fffffep-1, 0x1.000002p-1, INEXACT) +T(RU, 0x1.fffffcp-1, 0x1.fffffep-1, 0x1.000002p-25, INEXACT) +T(RU, 0x1.000004p+0, 0x1.000002p+0, 0x1.fffffcp-25, INEXACT) +T(RU, 0x1.000006p+0, 0x1.000004p+0, 0x1.000004p-1, INEXACT) +T(RU, 0x1.000008p+0, 0x1.000004p+0, 0x1.fffff8p-23, INEXACT) +T(RU, 0x1.00000ap+0, 0x1.000006p+0, 0x1.00000cp-1, INEXACT) +T(RU, 0x1.00000cp+0, 0x1.000006p+0, 0x1.1ffffap-21, INEXACT) +T(RU, 0x1.00000ep+0, 0x1.000008p+0, 0x1.000018p-1, INEXACT) +T(RU, 0x1.fffffcp+125, 0x1.fffffep+62, 0x1.000002p-25, INEXACT) +T(RU, 0x1.000004p+126, 0x1.000002p+63, 0x1.fffffcp-25, INEXACT) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, -0x1p-148, nan, 0x0p+0, INVALID) +T(RU, -0x1.4p-147, nan, 0x0p+0, INVALID) +T(RU, -0x1.cp-147, nan, 0x0p+0, INVALID) +T(RU, -0x1.2p-146, nan, 0x0p+0, INVALID) +T(RU,-0x1.ffffdcp-127, nan, 0x0p+0, INVALID) +T(RU,-0x1.ffffe4p-127, nan, 0x0p+0, INVALID) +T(RU, -0x1.fffffp-127, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffff4p-127, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffff8p-127, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffcp-127, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffap-126, nan, 0x0p+0, INVALID) +T(RU, -0x1p-125, nan, 0x0p+0, INVALID) +T(RU,-0x1.000002p-125, nan, 0x0p+0, INVALID) +T(RU, -0x1p-23, nan, 0x0p+0, INVALID) +T(RU, -0x1p-22, nan, 0x0p+0, INVALID) +T(RU, -0x1.8p-22, nan, 0x0p+0, INVALID) +T(RU, -0x1.000004p+1, nan, 0x0p+0, INVALID) +T(RU, -0x1.800008p+1, nan, 0x0p+0, INVALID) +T(RU, -0x1.fffff6p+1, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffff8p+125, nan, 0x0p+0, INVALID) +T(RU,-0x1.000004p+126, nan, 0x0p+0, INVALID) +T(RU,-0x1.fffffep+126, nan, 0x0p+0, INVALID) +T(RU,-0x1.000004p+127, nan, 0x0p+0, INVALID) +T(RZ, 0x1p-148, 0x1p-74, 0x0p+0, 0) +T(RZ, 0x1p-146, 0x1p-73, 0x0p+0, 0) +T(RZ, 0x1p-128, 0x1p-64, 0x0p+0, 0) +T(RZ, 0x1p-124, 0x1p-62, 0x0p+0, 0) +T(RZ, 0x1.2p-15, 0x1.8p-8, 0x0p+0, 0) +T(RZ, 0x1p-8, 0x1p-4, 0x0p+0, 0) +T(RZ, 0x1.2p-5, 0x1.8p-3, 0x0p+0, 0) +T(RZ, 0x1p-4, 0x1p-2, 0x0p+0, 0) +T(RZ, 0x1.2p+3, 0x1.8p+1, 0x0p+0, 0) +T(RZ, 0x1p+8, 0x1p+4, 0x0p+0, 0) +T(RZ, 0x1.2p+11, 0x1.8p+5, 0x0p+0, 0) +T(RZ, 0x1.9f24p+14, 0x1.46p+7, 0x0p+0, 0) +T(RZ, 0x1.b3c4p+14, 0x1.4ep+7, 0x0p+0, 0) +T(RZ, 0x1.d3a4p+14, 0x1.5ap+7, 0x0p+0, 0) +T(RZ, 0x1.f4a4p+14, 0x1.66p+7, 0x0p+0, 0) +T(RZ, 0x1.ffe4p+14, 0x1.6ap+7, 0x0p+0, 0) +T(RZ, 0x1.2p+21, 0x1.8p+10, 0x0p+0, 0) +T(RZ, 0x1p+124, 0x1p+62, 0x0p+0, 0) +T(RZ, 0x1p+126, 0x1p+63, 0x0p+0, 0) +T(RZ, 0x1.fffffcp-127, 0x1.fffffcp-64, -0x1.fffffep-1, INEXACT) +T(RZ, 0x1.000004p-126, 0x1p-63, -0x1.fffffep-1, INEXACT) +T(RZ, 0x1.ffffeep-1, 0x1.fffff6p-1, -0x1.ffffd8p-2, INEXACT) +T(RZ, 0x1.fffffp-1, 0x1.fffff6p-1, -0x1.fffffp-1, INEXACT) +T(RZ, 0x1.fffff2p-1, 0x1.fffff8p-1, -0x1.ffffe8p-2, INEXACT) +T(RZ, 0x1.fffff4p-1, 0x1.fffff8p-1, -0x1.fffff6p-1, INEXACT) +T(RZ, 0x1.fffff6p-1, 0x1.fffffap-1, -0x1.fffff4p-2, INEXACT) +T(RZ, 0x1.fffff8p-1, 0x1.fffffap-1, -0x1.fffffcp-1, INEXACT) +T(RZ, 0x1.fffffap-1, 0x1.fffffcp-1, -0x1.fffffcp-2, INEXACT) +T(RZ, 0x1.fffffcp-1, 0x1.fffffcp-1, -0x1.fffffep-1, INEXACT) +T(RZ, 0x1.000004p+0, 0x1p+0, -0x1.fffffep-1, INEXACT) +T(RZ, 0x1.000006p+0, 0x1.000002p+0, -0x1.fffff8p-2, INEXACT) +T(RZ, 0x1.000008p+0, 0x1.000002p+0, -0x1.fffff8p-1, INEXACT) +T(RZ, 0x1.00000ap+0, 0x1.000004p+0, -0x1.ffffe8p-2, INEXACT) +T(RZ, 0x1.00000cp+0, 0x1.000004p+0, -0x1.ffffeep-1, INEXACT) +T(RZ, 0x1.00000ep+0, 0x1.000006p+0, -0x1.ffffdp-2, INEXACT) +T(RZ, 0x1.fffffcp+125, 0x1.fffffcp+62, -0x1.fffffep-1, INEXACT) +T(RZ, 0x1.000004p+126, 0x1p+63, -0x1.fffffep-1, INEXACT) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, -0x1p-148, nan, 0x0p+0, INVALID) +T(RZ, -0x1.4p-147, nan, 0x0p+0, INVALID) +T(RZ, -0x1.cp-147, nan, 0x0p+0, INVALID) +T(RZ, -0x1.2p-146, nan, 0x0p+0, INVALID) +T(RZ,-0x1.ffffdcp-127, nan, 0x0p+0, INVALID) +T(RZ,-0x1.ffffe4p-127, nan, 0x0p+0, INVALID) +T(RZ, -0x1.fffffp-127, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffff4p-127, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffff8p-127, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffcp-127, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffap-126, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-125, nan, 0x0p+0, INVALID) +T(RZ,-0x1.000002p-125, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-23, nan, 0x0p+0, INVALID) +T(RZ, -0x1p-22, nan, 0x0p+0, INVALID) +T(RZ, -0x1.8p-22, nan, 0x0p+0, INVALID) +T(RZ, -0x1.000004p+1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.800008p+1, nan, 0x0p+0, INVALID) +T(RZ, -0x1.fffff6p+1, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffff8p+125, nan, 0x0p+0, INVALID) +T(RZ,-0x1.000004p+126, nan, 0x0p+0, INVALID) +T(RZ,-0x1.fffffep+126, nan, 0x0p+0, INVALID) +T(RZ,-0x1.000004p+127, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/ucb/tan.h b/test/musl/src/math/ucb/tan.h new file mode 100644 index 00000000..4b4cb228 --- /dev/null +++ b/test/musl/src/math/ucb/tan.h @@ -0,0 +1,196 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// tand(+-max) +// tand(tiny) is tiny +T(RN, 0x1p-30, 0x1p-30, -0x1.555556p-10, INEXACT) +T(RN, -0x1p-30, -0x1p-30, 0x1.555556p-10, INEXACT) +T(RN, 0x1p-1022, 0x1p-1022, 0x0p+0, INEXACT) +T(RN, -0x1p-1022, -0x1p-1022, 0x0p+0, INEXACT) +T(RN, 0x1p-1074, 0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1074, -0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +// tand(nan or inf) is nan +T(RN, inf, nan, 0x0p+0, INVALID) +T(RN, -inf, nan, 0x0p+0, INVALID) +T(RN, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +// tand(+-pi/4) is +-1 within 16 ulp +T(RN, 0x1.921fb54442d18p-1, 0x1.fffffffffffffp-1, -0x1.cb3b3ap-2, INEXACT) +T(RN, -0x1.921fb54442d18p-1, -0x1.fffffffffffffp-1, 0x1.cb3b3ap-2, INEXACT) +T(RZ, 0x1.921fb54442d18p-1, 0x1.fffffffffffffp-1, -0x1.cb3b3ap-2, INEXACT) +T(RZ, -0x1.921fb54442d18p-1, -0x1.fffffffffffffp-1, 0x1.cb3b3ap-2, INEXACT) +T(RU, 0x1.921fb54442d18p-1, 0x1p+0, 0x1.1a6264p-2, INEXACT) +T(RU, -0x1.921fb54442d18p-1, -0x1.fffffffffffffp-1, 0x1.cb3b3ap-2, INEXACT) +T(RD, 0x1.921fb54442d18p-1, 0x1.fffffffffffffp-1, -0x1.cb3b3ap-2, INEXACT) +T(RD, -0x1.921fb54442d18p-1, -0x1p+0, -0x1.1a6264p-2, INEXACT) +T(RD, 0x1p-1022, 0x1p-1022, 0x0p+0, INEXACT) +T(RD, 0x1.0000000000001p-1022, 0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RD, 0x1.0000000000002p-1022, 0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RD, 0x1.ffffffffffffbp-1022, 0x1.ffffffffffffbp-1022, 0x0p+0, INEXACT) +T(RD, 0x1p-1021, 0x1p-1021, 0x0p+0, INEXACT) +T(RD, 0x1.0000000000003p-1021, 0x1.0000000000003p-1021, 0x0p+0, INEXACT) +T(RD, 0x1p-1020, 0x1p-1020, 0x0p+0, INEXACT) +T(RD, 0x1.8p-27, 0x1.8p-27, -0x1.2p-2, INEXACT) +T(RD, 0x1p-26, 0x1p-26, -0x1.555556p-2, INEXACT) +T(RD, 0x1p-1074, 0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1073, 0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.2p-1071, 0x1.2p-1071, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1024, 0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1023, 0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, nan, 0x0p+0, INVALID) +T(RD, -inf, nan, 0x0p+0, INVALID) +T(RD, -0x1p-1022,-0x1.0000000000001p-1022, -0x1p+0, INEXACT) +T(RD,-0x1.0000000000001p-1022,-0x1.0000000000002p-1022, -0x1p+0, INEXACT) +T(RD,-0x1.0000000000002p-1022,-0x1.0000000000003p-1022, -0x1p+0, INEXACT) +T(RD, -0x1p-1021,-0x1.0000000000001p-1021, -0x1p+0, INEXACT) +T(RD, -0x1p-1020,-0x1.0000000000001p-1020, -0x1p+0, INEXACT) +T(RD, -0x1.8p-27, -0x1.8000000000001p-27, -0x1.7p-1, INEXACT) +T(RD, -0x1p-26, -0x1.0000000000001p-26, -0x1.555556p-1, INEXACT) +T(RD, -0x1p-1074, -0x1p-1073, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1073, -0x1.8p-1073, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1024,-0x1.0000000000004p-1024, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1023,-0x1.0000000000002p-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffep-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.ffffffffffffep-1023, -0x1p-1022, -0x1p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.0000000000001p-1022, 0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000002p-1022, 0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RN, 0x1.ffffffffffffbp-1022, 0x1.ffffffffffffbp-1022, 0x0p+0, INEXACT) +T(RN, 0x1p-1021, 0x1p-1021, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000003p-1021, 0x1.0000000000003p-1021, 0x0p+0, INEXACT) +T(RN, 0x1p-1020, 0x1p-1020, 0x0p+0, INEXACT) +T(RN, 0x1.8p-27, 0x1.8p-27, -0x1.2p-2, INEXACT) +T(RN, 0x1p-26, 0x1p-26, -0x1.555556p-2, INEXACT) +T(RN,-0x1.0000000000001p-1022,-0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RN,-0x1.0000000000002p-1022,-0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RN,-0x1.ffffffffffffbp-1022,-0x1.ffffffffffffbp-1022, 0x0p+0, INEXACT) +T(RN, -0x1p-1021, -0x1p-1021, 0x0p+0, INEXACT) +T(RN,-0x1.0000000000003p-1021,-0x1.0000000000003p-1021, 0x0p+0, INEXACT) +T(RN, -0x1p-1020, -0x1p-1020, 0x0p+0, INEXACT) +T(RN, -0x1.8p-27, -0x1.8p-27, 0x1.2p-2, INEXACT) +T(RN, -0x1p-26, -0x1p-26, 0x1.555556p-2, INEXACT) +T(RN, 0x1p-1073, 0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.2p-1071, 0x1.2p-1071, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1024, 0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1023, 0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1073, -0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1.2p-1071, -0x1.2p-1071, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1024, -0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1023, -0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffffffffffep-1023,-0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1022, -0x1p-1022, 0x0p+0, INEXACT) +T(RU,-0x1.0000000000001p-1022,-0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RU,-0x1.0000000000002p-1022,-0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RU,-0x1.ffffffffffffbp-1022,-0x1.ffffffffffffbp-1022, 0x0p+0, INEXACT) +T(RU, -0x1p-1021, -0x1p-1021, 0x0p+0, INEXACT) +T(RU,-0x1.0000000000003p-1021,-0x1.0000000000003p-1021, 0x0p+0, INEXACT) +T(RU, -0x1p-1020, -0x1p-1020, 0x0p+0, INEXACT) +T(RU, -0x1.8p-27, -0x1.8p-27, 0x1.2p-2, INEXACT) +T(RU, -0x1p-26, -0x1p-26, 0x1.555556p-2, INEXACT) +T(RU, -0x1p-1074, -0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1073, -0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1.2p-1071, -0x1.2p-1071, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1024, -0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1023, -0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.ffffffffffffep-1023,-0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, nan, 0x0p+0, INVALID) +T(RU, -inf, nan, 0x0p+0, INVALID) +T(RU, 0x1p-1022, 0x1.0000000000001p-1022, 0x1p+0, INEXACT) +T(RU, 0x1.0000000000001p-1022, 0x1.0000000000002p-1022, 0x1p+0, INEXACT) +T(RU, 0x1.0000000000002p-1022, 0x1.0000000000003p-1022, 0x1p+0, INEXACT) +T(RU, 0x1p-1021, 0x1.0000000000001p-1021, 0x1p+0, INEXACT) +T(RU, 0x1p-1020, 0x1.0000000000001p-1020, 0x1p+0, INEXACT) +T(RU, 0x1.8p-27, 0x1.8000000000001p-27, 0x1.7p-1, INEXACT) +T(RU, 0x1p-26, 0x1.0000000000001p-26, 0x1.555556p-1, INEXACT) +T(RU, 0x1p-1074, 0x1p-1073, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1073, 0x1.8p-1073, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1024, 0x1.0000000000004p-1024, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1023, 0x1.0000000000002p-1023, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffep-1023, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.ffffffffffffep-1023, 0x1p-1022, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1022, 0x1p-1022, 0x0p+0, INEXACT) +T(RZ, 0x1.0000000000001p-1022, 0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RZ, 0x1.0000000000002p-1022, 0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RZ, 0x1.ffffffffffffbp-1022, 0x1.ffffffffffffbp-1022, 0x0p+0, INEXACT) +T(RZ, 0x1p-1021, 0x1p-1021, 0x0p+0, INEXACT) +T(RZ, 0x1.0000000000003p-1021, 0x1.0000000000003p-1021, 0x0p+0, INEXACT) +T(RZ, 0x1p-1020, 0x1p-1020, 0x0p+0, INEXACT) +T(RZ, 0x1.8p-27, 0x1.8p-27, -0x1.2p-2, INEXACT) +T(RZ, 0x1p-26, 0x1p-26, -0x1.555556p-2, INEXACT) +T(RZ, -0x1p-1022, -0x1p-1022, 0x0p+0, INEXACT) +T(RZ,-0x1.0000000000001p-1022,-0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RZ,-0x1.0000000000002p-1022,-0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RZ,-0x1.ffffffffffffbp-1022,-0x1.ffffffffffffbp-1022, 0x0p+0, INEXACT) +T(RZ, -0x1p-1021, -0x1p-1021, 0x0p+0, INEXACT) +T(RZ,-0x1.0000000000003p-1021,-0x1.0000000000003p-1021, 0x0p+0, INEXACT) +T(RZ, -0x1p-1020, -0x1p-1020, 0x0p+0, INEXACT) +T(RZ, -0x1.8p-27, -0x1.8p-27, 0x1.2p-2, INEXACT) +T(RZ, -0x1p-26, -0x1p-26, 0x1.555556p-2, INEXACT) +T(RZ, 0x1p-1074, 0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1073, 0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.2p-1071, 0x1.2p-1071, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1024, 0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1023, 0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1074, -0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1073, -0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1.2p-1071, -0x1.2p-1071, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1024, -0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1023, -0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.ffffffffffffep-1023,-0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, inf, nan, 0x0p+0, INVALID) +T(RZ, -inf, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/ucb/tanf.h b/test/musl/src/math/ucb/tanf.h new file mode 100644 index 00000000..7059ddfd --- /dev/null +++ b/test/musl/src/math/ucb/tanf.h @@ -0,0 +1,196 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// tans(+-max) +// tans(tiny) is tiny +T(RN, 0x1p-29, 0x1p-29, -0x1.555556p-37, INEXACT) +T(RN, -0x1p-29, -0x1p-29, 0x1.555556p-37, INEXACT) +T(RN, 0x1p-126, 0x1p-126, 0x0p+0, INEXACT) +T(RN, -0x1p-126, -0x1p-126, 0x0p+0, INEXACT) +T(RN, 0x1p-149, 0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-149, -0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +// tans(+-0) is +-0.0 +T(RN, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +// tans(nan or inf) is nan +T(RN, inf, nan, 0x0p+0, INVALID) +T(RN, -inf, nan, 0x0p+0, INVALID) +T(RN, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RD, 0x1p-126, 0x1p-126, 0x0p+0, INEXACT) +T(RD, 0x1.000002p-126, 0x1.000002p-126, 0x0p+0, INEXACT) +T(RD, 0x1.000004p-126, 0x1.000004p-126, 0x0p+0, INEXACT) +T(RD, 0x1.fffff6p-126, 0x1.fffff6p-126, 0x0p+0, INEXACT) +T(RD, 0x1p-125, 0x1p-125, 0x0p+0, INEXACT) +T(RD, 0x1.000006p-125, 0x1.000006p-125, 0x0p+0, INEXACT) +T(RD, 0x1p-124, 0x1p-124, 0x0p+0, INEXACT) +T(RD, 0x1.8p-27, 0x1.8p-27, -0x1.2p-31, INEXACT) +T(RD, 0x1p-26, 0x1p-26, -0x1.555556p-31, INEXACT) +T(RD, 0x1p-12, 0x1p-12, -0x1.555556p-3, INEXACT) +T(RD, 0x1p-149, 0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-148, 0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.2p-146, 0x1.2p-146, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-128, 0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-127, 0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.fffff8p-127, 0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, inf, nan, 0x0p+0, INVALID) +T(RD, -inf, nan, 0x0p+0, INVALID) +T(RD, -0x1p-126,-0x1.000002p-126, -0x1p+0, INEXACT) +T(RD,-0x1.000002p-126,-0x1.000004p-126, -0x1p+0, INEXACT) +T(RD,-0x1.000004p-126,-0x1.000006p-126, -0x1p+0, INEXACT) +T(RD, -0x1p-125,-0x1.000002p-125, -0x1p+0, INEXACT) +T(RD, -0x1p-124,-0x1.000002p-124, -0x1p+0, INEXACT) +T(RD, -0x1.8p-27, -0x1.800002p-27, -0x1p+0, INEXACT) +T(RD, -0x1p-26, -0x1.000002p-26, -0x1p+0, INEXACT) +T(RD, -0x1p-12, -0x1.000002p-12, -0x1.aaaaaap-1, INEXACT) +T(RD, -0x1p-149, -0x1p-148, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-148, -0x1.8p-148, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-128,-0x1.000008p-128, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-127,-0x1.000004p-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.fffff8p-127,-0x1.fffffcp-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.fffffcp-127, -0x1p-126, -0x1p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.000002p-126, 0x1.000002p-126, 0x0p+0, INEXACT) +T(RN, 0x1.000004p-126, 0x1.000004p-126, 0x0p+0, INEXACT) +T(RN, 0x1.fffff6p-126, 0x1.fffff6p-126, 0x0p+0, INEXACT) +T(RN, 0x1p-125, 0x1p-125, 0x0p+0, INEXACT) +T(RN, 0x1.000006p-125, 0x1.000006p-125, 0x0p+0, INEXACT) +T(RN, 0x1p-124, 0x1p-124, 0x0p+0, INEXACT) +T(RN, 0x1.8p-27, 0x1.8p-27, -0x1.2p-31, INEXACT) +T(RN, 0x1p-26, 0x1p-26, -0x1.555556p-31, INEXACT) +T(RN, 0x1p-12, 0x1p-12, -0x1.555556p-3, INEXACT) +T(RN,-0x1.000002p-126,-0x1.000002p-126, 0x0p+0, INEXACT) +T(RN,-0x1.000004p-126,-0x1.000004p-126, 0x0p+0, INEXACT) +T(RN,-0x1.fffff6p-126,-0x1.fffff6p-126, 0x0p+0, INEXACT) +T(RN, -0x1p-125, -0x1p-125, 0x0p+0, INEXACT) +T(RN,-0x1.000006p-125,-0x1.000006p-125, 0x0p+0, INEXACT) +T(RN, -0x1p-124, -0x1p-124, 0x0p+0, INEXACT) +T(RN, -0x1.8p-27, -0x1.8p-27, 0x1.2p-31, INEXACT) +T(RN, -0x1p-26, -0x1p-26, 0x1.555556p-31, INEXACT) +T(RN, -0x1p-12, -0x1p-12, 0x1.555556p-3, INEXACT) +T(RN, 0x1p-148, 0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.2p-146, 0x1.2p-146, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-128, 0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-127, 0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.fffff8p-127, 0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-148, -0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1.2p-146, -0x1.2p-146, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-128, -0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-127, -0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.fffff8p-127,-0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.fffffcp-127,-0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-126, -0x1p-126, 0x0p+0, INEXACT) +T(RU,-0x1.000002p-126,-0x1.000002p-126, 0x0p+0, INEXACT) +T(RU,-0x1.000004p-126,-0x1.000004p-126, 0x0p+0, INEXACT) +T(RU,-0x1.fffff6p-126,-0x1.fffff6p-126, 0x0p+0, INEXACT) +T(RU, -0x1p-125, -0x1p-125, 0x0p+0, INEXACT) +T(RU,-0x1.000006p-125,-0x1.000006p-125, 0x0p+0, INEXACT) +T(RU, -0x1p-124, -0x1p-124, 0x0p+0, INEXACT) +T(RU, -0x1.8p-27, -0x1.8p-27, 0x1.2p-31, INEXACT) +T(RU, -0x1p-26, -0x1p-26, 0x1.555556p-31, INEXACT) +T(RU, -0x1p-12, -0x1p-12, 0x1.555556p-3, INEXACT) +T(RU, -0x1p-149, -0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-148, -0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1.2p-146, -0x1.2p-146, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-128, -0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-127, -0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.fffff8p-127,-0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.fffffcp-127,-0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, inf, nan, 0x0p+0, INVALID) +T(RU, -inf, nan, 0x0p+0, INVALID) +T(RU, 0x1p-126, 0x1.000002p-126, 0x1p+0, INEXACT) +T(RU, 0x1.000002p-126, 0x1.000004p-126, 0x1p+0, INEXACT) +T(RU, 0x1.000004p-126, 0x1.000006p-126, 0x1p+0, INEXACT) +T(RU, 0x1p-125, 0x1.000002p-125, 0x1p+0, INEXACT) +T(RU, 0x1p-124, 0x1.000002p-124, 0x1p+0, INEXACT) +T(RU, 0x1.8p-27, 0x1.800002p-27, 0x1p+0, INEXACT) +T(RU, 0x1p-26, 0x1.000002p-26, 0x1p+0, INEXACT) +T(RU, 0x1p-12, 0x1.000002p-12, 0x1.aaaaaap-1, INEXACT) +T(RU, 0x1p-149, 0x1p-148, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-148, 0x1.8p-148, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-128, 0x1.000008p-128, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-127, 0x1.000004p-127, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.fffff8p-127, 0x1.fffffcp-127, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.fffffcp-127, 0x1p-126, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-126, 0x1p-126, 0x0p+0, INEXACT) +T(RZ, 0x1.000002p-126, 0x1.000002p-126, 0x0p+0, INEXACT) +T(RZ, 0x1.000004p-126, 0x1.000004p-126, 0x0p+0, INEXACT) +T(RZ, 0x1.fffff6p-126, 0x1.fffff6p-126, 0x0p+0, INEXACT) +T(RZ, 0x1p-125, 0x1p-125, 0x0p+0, INEXACT) +T(RZ, 0x1.000006p-125, 0x1.000006p-125, 0x0p+0, INEXACT) +T(RZ, 0x1p-124, 0x1p-124, 0x0p+0, INEXACT) +T(RZ, 0x1.8p-27, 0x1.8p-27, -0x1.2p-31, INEXACT) +T(RZ, 0x1p-26, 0x1p-26, -0x1.555556p-31, INEXACT) +T(RZ, 0x1p-12, 0x1p-12, -0x1.555556p-3, INEXACT) +T(RZ, -0x1p-126, -0x1p-126, 0x0p+0, INEXACT) +T(RZ,-0x1.000002p-126,-0x1.000002p-126, 0x0p+0, INEXACT) +T(RZ,-0x1.000004p-126,-0x1.000004p-126, 0x0p+0, INEXACT) +T(RZ,-0x1.fffff6p-126,-0x1.fffff6p-126, 0x0p+0, INEXACT) +T(RZ, -0x1p-125, -0x1p-125, 0x0p+0, INEXACT) +T(RZ,-0x1.000006p-125,-0x1.000006p-125, 0x0p+0, INEXACT) +T(RZ, -0x1p-124, -0x1p-124, 0x0p+0, INEXACT) +T(RZ, -0x1.8p-27, -0x1.8p-27, 0x1.2p-31, INEXACT) +T(RZ, -0x1p-26, -0x1p-26, 0x1.555556p-31, INEXACT) +T(RZ, -0x1p-12, -0x1p-12, 0x1.555556p-3, INEXACT) +T(RZ, 0x1p-149, 0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-148, 0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.2p-146, 0x1.2p-146, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-128, 0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-127, 0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.fffff8p-127, 0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-149, -0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-148, -0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1.2p-146, -0x1.2p-146, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-128, -0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-127, -0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.fffff8p-127,-0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.fffffcp-127,-0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, inf, nan, 0x0p+0, INVALID) +T(RZ, -inf, nan, 0x0p+0, INVALID) diff --git a/test/musl/src/math/ucb/tanh.h b/test/musl/src/math/ucb/tanh.h new file mode 100644 index 00000000..6ee2b14f --- /dev/null +++ b/test/musl/src/math/ucb/tanh.h @@ -0,0 +1,283 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// tanhd(tiny)~tiny, tanhd(+-max or inf) = +-1 +T(RN, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RN, 0x1p-1074, 0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1074, -0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1042, 0x1p-1042, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1042, -0x1p-1042, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1022, 0x1p-1022, 0x0p+0, INEXACT) +T(RN, -0x1p-1022, -0x1p-1022, 0x0p+0, INEXACT) +T(RN, 0x1p-67, 0x1p-67, 0x0p+0, INEXACT) +T(RN, -0x1p-67, -0x1p-67, 0x0p+0, INEXACT) +T(RN, 0x1.fffffffffffffp+1023, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.fffffffffffffp+1023, -0x1p+0, 0x0p+0, INEXACT) +T(RN, inf, 0x1p+0, 0x0p+0, 0) +T(RN, -inf, -0x1p+0, 0x0p+0, 0) +// random arguments between -9 9 +T(RN, -0x1.358d5b2b5006dp+1, -0x1.f7f0d680d659fp-1, 0x1.fcb574p-2, INEXACT) +T(RN, 0x1.9a3defb825911p+2, 0x1.ffff4a686706p-1, -0x1.911f74p-3, INEXACT) +T(RN, 0x1.fb23a09de7505p+2, 0x1.fffff73581933p-1, -0x1.a85578p-7, INEXACT) +T(RN, -0x1.80af4fba96889p+2, -0x1.fffe6c66ce5c3p-1, -0x1.726dacp-2, INEXACT) +T(RN, -0x1.38148e27084ddp+1, -0x1.f84024aed09edp-1, -0x1.03eefep-3, INEXACT) +T(RN, -0x1.6a1d61b093c41p-2, -0x1.5bbd2db600bb7p-2, -0x1.954e3p-5, INEXACT) +T(RN, 0x1.4d1e6d18455f5p+2, 0x1.fff81a052883ap-1, 0x1.37ae22p-5, INEXACT) +T(RN, 0x1.ec87f4a51b239p+2, 0x1.fffff21f7f28dp-1, 0x1.0b18p-4, INEXACT) +T(RN, -0x1.833b11079de4dp+0, -0x1.d0971d00e2766p-1, -0x1.5ecb56p-2, INEXACT) +T(RN, -0x1.13e933103b871p+3, -0x1.fffffdd2ff3acp-1, 0x1.b5f834p-3, INEXACT) +T(RZ, -0x1.358d5b2b5006dp+1, -0x1.f7f0d680d659fp-1, 0x1.fcb574p-2, INEXACT) +T(RZ, 0x1.9a3defb825911p+2, 0x1.ffff4a686706p-1, -0x1.911f74p-3, INEXACT) +T(RZ, 0x1.fb23a09de7505p+2, 0x1.fffff73581933p-1, -0x1.a85578p-7, INEXACT) +T(RZ, -0x1.80af4fba96889p+2, -0x1.fffe6c66ce5c2p-1, 0x1.46c92ap-1, INEXACT) +T(RZ, -0x1.38148e27084ddp+1, -0x1.f84024aed09ecp-1, 0x1.bf044p-1, INEXACT) +T(RZ, -0x1.6a1d61b093c41p-2, -0x1.5bbd2db600bb6p-2, 0x1.e6ab1cp-1, INEXACT) +T(RZ, 0x1.4d1e6d18455f5p+2, 0x1.fff81a0528839p-1, -0x1.ec851ep-1, INEXACT) +T(RZ, 0x1.ec87f4a51b239p+2, 0x1.fffff21f7f28cp-1, -0x1.de9dp-1, INEXACT) +T(RZ, -0x1.833b11079de4dp+0, -0x1.d0971d00e2765p-1, 0x1.509a56p-1, INEXACT) +T(RZ, -0x1.13e933103b871p+3, -0x1.fffffdd2ff3acp-1, 0x1.b5f834p-3, INEXACT) +T(RU, -0x1.358d5b2b5006dp+1, -0x1.f7f0d680d659fp-1, 0x1.fcb574p-2, INEXACT) +T(RU, 0x1.9a3defb825911p+2, 0x1.ffff4a6867061p-1, 0x1.9bb824p-1, INEXACT) +T(RU, 0x1.fb23a09de7505p+2, 0x1.fffff73581934p-1, 0x1.f95eaap-1, INEXACT) +T(RU, -0x1.80af4fba96889p+2, -0x1.fffe6c66ce5c2p-1, 0x1.46c92ap-1, INEXACT) +T(RU, -0x1.38148e27084ddp+1, -0x1.f84024aed09ecp-1, 0x1.bf044p-1, INEXACT) +T(RU, -0x1.6a1d61b093c41p-2, -0x1.5bbd2db600bb6p-2, 0x1.e6ab1cp-1, INEXACT) +T(RU, 0x1.4d1e6d18455f5p+2, 0x1.fff81a052883ap-1, 0x1.37ae22p-5, INEXACT) +T(RU, 0x1.ec87f4a51b239p+2, 0x1.fffff21f7f28dp-1, 0x1.0b18p-4, INEXACT) +T(RU, -0x1.833b11079de4dp+0, -0x1.d0971d00e2765p-1, 0x1.509a56p-1, INEXACT) +T(RU, -0x1.13e933103b871p+3, -0x1.fffffdd2ff3acp-1, 0x1.b5f834p-3, INEXACT) +T(RD, -0x1.358d5b2b5006dp+1, -0x1.f7f0d680d65ap-1, -0x1.01a546p-1, INEXACT) +T(RD, 0x1.9a3defb825911p+2, 0x1.ffff4a686706p-1, -0x1.911f74p-3, INEXACT) +T(RD, 0x1.fb23a09de7505p+2, 0x1.fffff73581933p-1, -0x1.a85578p-7, INEXACT) +T(RD, -0x1.80af4fba96889p+2, -0x1.fffe6c66ce5c3p-1, -0x1.726dacp-2, INEXACT) +T(RD, -0x1.38148e27084ddp+1, -0x1.f84024aed09edp-1, -0x1.03eefep-3, INEXACT) +T(RD, -0x1.6a1d61b093c41p-2, -0x1.5bbd2db600bb7p-2, -0x1.954e3p-5, INEXACT) +T(RD, 0x1.4d1e6d18455f5p+2, 0x1.fff81a0528839p-1, -0x1.ec851ep-1, INEXACT) +T(RD, 0x1.ec87f4a51b239p+2, 0x1.fffff21f7f28cp-1, -0x1.de9dp-1, INEXACT) +T(RD, -0x1.833b11079de4dp+0, -0x1.d0971d00e2766p-1, -0x1.5ecb56p-2, INEXACT) +T(RD, -0x1.13e933103b871p+3, -0x1.fffffdd2ff3adp-1, -0x1.9281f4p-1, INEXACT) +// tanhd(nan) is nan +T(RN, nan, nan, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, inf, 0x1p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, -inf, -0x1p+0, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, 0x1.0000000000001p-1022, 0x1p-1022, -0x1p+0, INEXACT) +T(RD, 0x1.0000000000002p-1022, 0x1.0000000000001p-1022, -0x1p+0, INEXACT) +T(RD, 0x1p-1021, 0x1.fffffffffffffp-1022, -0x1p+0, INEXACT) +T(RD, 0x1p-1020, 0x1.fffffffffffffp-1021, -0x1p+0, INEXACT) +T(RD, 0x1p-28, 0x1.fffffffffffffp-29, -0x1.eaaaaap-1, INEXACT) +T(RD, 0x1p-27, 0x1.fffffffffffffp-28, -0x1.aaaaaap-1, INEXACT) +T(RD, 0x1.8p-27, 0x1.7ffffffffffffp-27, -0x1.7p-1, INEXACT) +T(RD, 0x1p-26, 0x1.fffffffffffffp-27, -0x1.555556p-2, INEXACT) +T(RD, 0x1.4p-26, 0x1.3ffffffffffffp-26, -0x1.655556p-2, INEXACT) +T(RD, 0x1.8p-26, 0x1.7fffffffffffep-26, -0x1.cp-1, INEXACT) +T(RD, 0x1.634p+9, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, 0x1p+1022, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, 0x1p+1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, 0x1.ffffffffffffep+1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RD,-0x1.0000000000001p-1022,-0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RD,-0x1.0000000000002p-1022,-0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RD, -0x1p-1021, -0x1p-1021, 0x0p+0, INEXACT) +T(RD, -0x1p-1020, -0x1p-1020, 0x0p+0, INEXACT) +T(RD, -0x1p-28, -0x1p-28, -0x1.555556p-6, INEXACT) +T(RD, -0x1p-27, -0x1p-27, -0x1.555556p-4, INEXACT) +T(RD, -0x1.8p-27, -0x1.8p-27, -0x1.2p-2, INEXACT) +T(RD, -0x1p-26, -0x1p-26, -0x1.555556p-2, INEXACT) +T(RD, -0x1.4p-26, -0x1.4p-26, -0x1.4d5556p-1, INEXACT) +T(RD, -0x1.8p-26, -0x1.7ffffffffffffp-26, -0x1p-3, INEXACT) +T(RD, -0x1.634p+9, -0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p+1022, -0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p+1023, -0x1p+0, 0x0p+0, INEXACT) +T(RD,-0x1.ffffffffffffep+1023, -0x1p+0, 0x0p+0, INEXACT) +T(RD,-0x1.fffffffffffffp+1023, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-1074, 0x0p+0, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1073, 0x1p-1074, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1024, 0x1.ffffffffffff8p-1025, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1023, 0x1.ffffffffffffcp-1024, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffap-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffcp-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-1022, 0x1.ffffffffffffep-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1074, -0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1073, -0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1024, -0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1023, -0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.ffffffffffffep-1023,-0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-1022, -0x1p-1022, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000001p-1022, 0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RN, 0x1.0000000000002p-1022, 0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RN, 0x1p-1021, 0x1p-1021, 0x0p+0, INEXACT) +T(RN, 0x1p-1020, 0x1p-1020, 0x0p+0, INEXACT) +T(RN, 0x1p-28, 0x1p-28, 0x1.555556p-6, INEXACT) +T(RN, 0x1p-27, 0x1p-27, 0x1.555556p-4, INEXACT) +T(RN, 0x1.8p-27, 0x1.8p-27, 0x1.2p-2, INEXACT) +T(RN, 0x1p-26, 0x1.fffffffffffffp-27, -0x1.555556p-2, INEXACT) +T(RN, 0x1.4p-26, 0x1.3ffffffffffffp-26, -0x1.655556p-2, INEXACT) +T(RN, 0x1.8p-26, 0x1.7ffffffffffffp-26, 0x1p-3, INEXACT) +T(RN, 0x1.634p+9, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p+1022, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p+1023, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.ffffffffffffep+1023, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.0000000000001p-1022,-0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RN,-0x1.0000000000002p-1022,-0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RN, -0x1p-1021, -0x1p-1021, 0x0p+0, INEXACT) +T(RN, -0x1p-1020, -0x1p-1020, 0x0p+0, INEXACT) +T(RN, -0x1p-28, -0x1p-28, -0x1.555556p-6, INEXACT) +T(RN, -0x1p-27, -0x1p-27, -0x1.555556p-4, INEXACT) +T(RN, -0x1.8p-27, -0x1.8p-27, -0x1.2p-2, INEXACT) +T(RN, -0x1p-26, -0x1.fffffffffffffp-27, 0x1.555556p-2, INEXACT) +T(RN, -0x1.4p-26, -0x1.3ffffffffffffp-26, 0x1.655556p-2, INEXACT) +T(RN, -0x1.8p-26, -0x1.7ffffffffffffp-26, -0x1p-3, INEXACT) +T(RN, -0x1.634p+9, -0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p+1022, -0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p+1023, -0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.ffffffffffffep+1023, -0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-1073, 0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1024, 0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-1023, 0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1073, -0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1024, -0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-1023, -0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.ffffffffffffep-1023,-0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, nan, nan, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, inf, 0x1p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, -inf, -0x1p+0, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, 0x1.0000000000001p-1022, 0x1.0000000000001p-1022, 0x0p+0, INEXACT) +T(RU, 0x1.0000000000002p-1022, 0x1.0000000000002p-1022, 0x0p+0, INEXACT) +T(RU, 0x1p-1021, 0x1p-1021, 0x0p+0, INEXACT) +T(RU, 0x1p-1020, 0x1p-1020, 0x0p+0, INEXACT) +T(RU, 0x1p-28, 0x1p-28, 0x1.555556p-6, INEXACT) +T(RU, 0x1p-27, 0x1p-27, 0x1.555556p-4, INEXACT) +T(RU, 0x1.8p-27, 0x1.8p-27, 0x1.2p-2, INEXACT) +T(RU, 0x1p-26, 0x1p-26, 0x1.555556p-2, INEXACT) +T(RU, 0x1.4p-26, 0x1.4p-26, 0x1.4d5556p-1, INEXACT) +T(RU, 0x1.8p-26, 0x1.7ffffffffffffp-26, 0x1p-3, INEXACT) +T(RU, 0x1.634p+9, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p+1022, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p+1023, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.ffffffffffffep+1023, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.fffffffffffffp+1023, 0x1p+0, 0x0p+0, INEXACT) +T(RU,-0x1.0000000000001p-1022, -0x1p-1022, 0x1p+0, INEXACT) +T(RU,-0x1.0000000000002p-1022,-0x1.0000000000001p-1022, 0x1p+0, INEXACT) +T(RU, -0x1p-1021,-0x1.fffffffffffffp-1022, 0x1p+0, INEXACT) +T(RU, -0x1p-1020,-0x1.fffffffffffffp-1021, 0x1p+0, INEXACT) +T(RU, -0x1p-28, -0x1.fffffffffffffp-29, 0x1.eaaaaap-1, INEXACT) +T(RU, -0x1p-27, -0x1.fffffffffffffp-28, 0x1.aaaaaap-1, INEXACT) +T(RU, -0x1.8p-27, -0x1.7ffffffffffffp-27, 0x1.7p-1, INEXACT) +T(RU, -0x1p-26, -0x1.fffffffffffffp-27, 0x1.555556p-2, INEXACT) +T(RU, -0x1.4p-26, -0x1.3ffffffffffffp-26, 0x1.655556p-2, INEXACT) +T(RU, -0x1.8p-26, -0x1.7fffffffffffep-26, 0x1.cp-1, INEXACT) +T(RU, -0x1.634p+9, -0x1.fffffffffffffp-1, 0x1p+0, INEXACT) +T(RU, -0x1p+1022, -0x1.fffffffffffffp-1, 0x1p+0, INEXACT) +T(RU, -0x1p+1023, -0x1.fffffffffffffp-1, 0x1p+0, INEXACT) +T(RU,-0x1.ffffffffffffep+1023, -0x1.fffffffffffffp-1, 0x1p+0, INEXACT) +T(RU,-0x1.fffffffffffffp+1023, -0x1.fffffffffffffp-1, 0x1p+0, INEXACT) +T(RU, 0x1p-1074, 0x1p-1074, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1073, 0x1p-1073, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1024, 0x1p-1024, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1023, 0x1p-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffcp-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffep-1023, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-1022, 0x1p-1022, 0x0p+0, INEXACT) +T(RU, -0x1p-1074, -0x0p+0, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1073, -0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1024,-0x1.ffffffffffff8p-1025, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1023,-0x1.ffffffffffffcp-1024, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffap-1023, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.ffffffffffffep-1023,-0x1.ffffffffffffcp-1023, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-1022,-0x1.ffffffffffffep-1023, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, inf, 0x1p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, -inf, -0x1p+0, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, 0x1.0000000000001p-1022, 0x1p-1022, -0x1p+0, INEXACT) +T(RZ, 0x1.0000000000002p-1022, 0x1.0000000000001p-1022, -0x1p+0, INEXACT) +T(RZ, 0x1p-1021, 0x1.fffffffffffffp-1022, -0x1p+0, INEXACT) +T(RZ, 0x1p-1020, 0x1.fffffffffffffp-1021, -0x1p+0, INEXACT) +T(RZ, 0x1p-28, 0x1.fffffffffffffp-29, -0x1.eaaaaap-1, INEXACT) +T(RZ, 0x1p-27, 0x1.fffffffffffffp-28, -0x1.aaaaaap-1, INEXACT) +T(RZ, 0x1.8p-27, 0x1.7ffffffffffffp-27, -0x1.7p-1, INEXACT) +T(RZ, 0x1p-26, 0x1.fffffffffffffp-27, -0x1.555556p-2, INEXACT) +T(RZ, 0x1.4p-26, 0x1.3ffffffffffffp-26, -0x1.655556p-2, INEXACT) +T(RZ, 0x1.8p-26, 0x1.7fffffffffffep-26, -0x1.cp-1, INEXACT) +T(RZ, 0x1.634p+9, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, 0x1p+1022, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, 0x1p+1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, 0x1.ffffffffffffep+1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ, 0x1.fffffffffffffp+1023, 0x1.fffffffffffffp-1, -0x1p+0, INEXACT) +T(RZ,-0x1.0000000000001p-1022, -0x1p-1022, 0x1p+0, INEXACT) +T(RZ,-0x1.0000000000002p-1022,-0x1.0000000000001p-1022, 0x1p+0, INEXACT) +T(RZ, -0x1p-1021,-0x1.fffffffffffffp-1022, 0x1p+0, INEXACT) +T(RZ, -0x1p-1020,-0x1.fffffffffffffp-1021, 0x1p+0, INEXACT) +T(RZ, -0x1p-28, -0x1.fffffffffffffp-29, 0x1.eaaaaap-1, INEXACT) +T(RZ, -0x1p-27, -0x1.fffffffffffffp-28, 0x1.aaaaaap-1, INEXACT) +T(RZ, -0x1.8p-27, -0x1.7ffffffffffffp-27, 0x1.7p-1, INEXACT) +T(RZ, -0x1p-26, -0x1.fffffffffffffp-27, 0x1.555556p-2, INEXACT) +T(RZ, -0x1.4p-26, -0x1.3ffffffffffffp-26, 0x1.655556p-2, INEXACT) +T(RZ, -0x1.8p-26, -0x1.7fffffffffffep-26, 0x1.cp-1, INEXACT) +T(RZ, -0x1.634p+9, -0x1.fffffffffffffp-1, 0x1p+0, INEXACT) +T(RZ, -0x1p+1022, -0x1.fffffffffffffp-1, 0x1p+0, INEXACT) +T(RZ, -0x1p+1023, -0x1.fffffffffffffp-1, 0x1p+0, INEXACT) +T(RZ,-0x1.ffffffffffffep+1023, -0x1.fffffffffffffp-1, 0x1p+0, INEXACT) +T(RZ,-0x1.fffffffffffffp+1023, -0x1.fffffffffffffp-1, 0x1p+0, INEXACT) +T(RZ, 0x1p-1074, 0x0p+0, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1073, 0x1p-1074, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1024, 0x1.ffffffffffff8p-1025, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1023, 0x1.ffffffffffffcp-1024, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.ffffffffffffcp-1023, 0x1.ffffffffffffap-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.ffffffffffffep-1023, 0x1.ffffffffffffcp-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-1022, 0x1.ffffffffffffep-1023, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1074, -0x0p+0, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1073, -0x1p-1074, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1024,-0x1.ffffffffffff8p-1025, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1023,-0x1.ffffffffffffcp-1024, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.ffffffffffffcp-1023,-0x1.ffffffffffffap-1023, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.ffffffffffffep-1023,-0x1.ffffffffffffcp-1023, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-1022,-0x1.ffffffffffffep-1023, 0x1p+0, INEXACT|UNDERFLOW) diff --git a/test/musl/src/math/ucb/tanhf.h b/test/musl/src/math/ucb/tanhf.h new file mode 100644 index 00000000..c2bc8938 --- /dev/null +++ b/test/musl/src/math/ucb/tanhf.h @@ -0,0 +1,271 @@ +// Copyright (C) 1988-1994 Sun Microsystems, Inc. 2550 Garcia Avenue +// Mountain View, California 94043 All rights reserved. +// +// Any person is hereby authorized to download, copy, use, create bug fixes, +// and distribute, subject to the following conditions: +// +// 1. the software may not be redistributed for a fee except as +// reasonable to cover media costs; +// 2. any copy of the software must include this notice, as well as +// any other embedded copyright notices; and +// 3. any distribution of this software or derivative works thereof +// must comply with all applicable U.S. export control laws. +// +// THE SOFTWARE IS MADE AVAILABLE "AS IS" AND WITHOUT EXPRESS OR IMPLIED +// WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE IMPLIED +// WARRANTIES OF DESIGN, MERCHANTIBILITY, FITNESS FOR A PARTICULAR +// PURPOSE, NON-INFRINGEMENT, PERFORMANCE OR CONFORMANCE TO +// SPECIFICATIONS. +// +// BY DOWNLOADING AND/OR USING THIS SOFTWARE, THE USER WAIVES ALL CLAIMS +// AGAINST SUN MICROSYSTEMS, INC. AND ITS AFFILIATED COMPANIES IN ANY +// JURISDICTION, INCLUDING BUT NOT LIMITED TO CLAIMS FOR DAMAGES OR +// EQUITABLE RELIEF BASED ON LOSS OF DATA, AND SPECIFICALLY WAIVES EVEN +// UNKNOWN OR UNANTICIPATED CLAIMS OR LOSSES, PRESENT AND FUTURE. +// +// IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS AFFILIATED +// COMPANIES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, +// INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF IT HAS BEEN ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGES. +// +// This file is provided with no support and without any obligation on the +// part of Sun Microsystems, Inc. ("Sun") or any of its affiliated +// companies to assist in its use, correction, modification or +// enhancement. Nevertheless, and without creating any obligation on its +// part, Sun welcomes your comments concerning the software and requests +// that they be sent to fdlibm-comments@sunpro.sun.com. +// tanh(+-max) = +-1 +T(RN, 0x1.fffffep+127, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.fffffep+127, -0x1p+0, 0x0p+0, INEXACT) +T(RZ, 0x1.fffffep+127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ,-0x1.fffffep+127, -0x1.fffffep-1, 0x1p+0, INEXACT) +T(RU, 0x1.fffffep+127, 0x1p+0, 0x0p+0, INEXACT) +T(RU,-0x1.fffffep+127, -0x1.fffffep-1, 0x1p+0, INEXACT) +T(RD, 0x1.fffffep+127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD,-0x1.fffffep+127, -0x1p+0, 0x0p+0, INEXACT) +// tanh(tiny) :=: tiny +T(RN, 0x1p-29, 0x1p-29, 0x1.555556p-37, INEXACT) +T(RN, -0x1p-29, -0x1p-29, -0x1.555556p-37, INEXACT) +T(RN, 0x1p-126, 0x1p-126, 0x0p+0, INEXACT) +T(RN, -0x1p-126, -0x1p-126, 0x0p+0, INEXACT) +// tanh(+-0) = +-0 +T(RN, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RN, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RZ, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RZ, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RU, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RU, -0x0p+0, -0x0p+0, 0x0p+0, 0) +T(RD, 0x0p+0, 0x0p+0, 0x0p+0, 0) +T(RD, -0x0p+0, -0x0p+0, 0x0p+0, 0) +// random arguments between -9 9 +T(RN, -0x1.358d5cp+1, -0x1.f7f0d6p-1, 0x1.36d18cp-2, INEXACT) +T(RN, 0x1.9a3dfp+2, 0x1.ffff4ap-1, -0x1.a1a278p-3, INEXACT) +T(RN, 0x1.fb23ap+2, 0x1.fffff8p-1, 0x1.94fd3p-2, INEXACT) +T(RN, -0x1.80af5p+2, -0x1.fffe6cp-1, 0x1.9b471ep-3, INEXACT) +T(RN, -0x1.38148ep+1, -0x1.f84024p-1, 0x1.543fb8p-2, INEXACT) +T(RN, -0x1.6a1d62p-2, -0x1.5bbd2ep-2, -0x1.dde122p-8, INEXACT) +T(RN, 0x1.4d1e6ep+2, 0x1.fff81ap-1, -0x1.586d5ap-7, INEXACT) +T(RN, 0x1.ec87f4p+2, 0x1.fffff2p-1, -0x1.f7ee14p-5, INEXACT) +T(RN, -0x1.833b12p+0, -0x1.d0971ep-1, -0x1.4ec0c6p-2, INEXACT) +T(RN, -0x1.13e934p+3, -0x1.fffffep-1, -0x1.680526p-4, INEXACT) +// tanh(nan) is nan +T(RN, nan, nan, 0x0p+0, 0) +T(RN, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RZ, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RU, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +T(RD, nan, nan, 0x0p+0, 0) +// tanh(+-inf) is 1.0 +T(RN, inf, 0x1p+0, 0x0p+0, 0) +T(RN, -inf, -0x1p+0, 0x0p+0, 0) +T(RZ, inf, 0x1p+0, 0x0p+0, 0) +T(RZ, -inf, -0x1p+0, 0x0p+0, 0) +T(RU, inf, 0x1p+0, 0x0p+0, 0) +T(RU, -inf, -0x1p+0, 0x0p+0, 0) +T(RD, inf, 0x1p+0, 0x0p+0, 0) +T(RD, -inf, -0x1p+0, 0x0p+0, 0) +// tanh(+-subnormal) +T(RN, 0x1p-149, 0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-149, -0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.000002p-126, 0x1p-126, -0x1p+0, INEXACT) +T(RD, 0x1.000004p-126, 0x1.000002p-126, -0x1p+0, INEXACT) +T(RD, 0x1p-125, 0x1.fffffep-126, -0x1p+0, INEXACT) +T(RD, 0x1p-124, 0x1.fffffep-125, -0x1p+0, INEXACT) +T(RD, 0x1p-28, 0x1.fffffep-29, -0x1p+0, INEXACT) +T(RD, 0x1p-27, 0x1.fffffep-28, -0x1p+0, INEXACT) +T(RD, 0x1.8p-27, 0x1.7ffffep-27, -0x1p+0, INEXACT) +T(RD, 0x1p-26, 0x1.fffffep-27, -0x1p+0, INEXACT) +T(RD, 0x1.4p-26, 0x1.3ffffep-26, -0x1p+0, INEXACT) +T(RD, 0x1.8p-26, 0x1.7ffffep-26, -0x1p+0, INEXACT) +T(RD, 0x1p-12, 0x1.fffffep-13, -0x1.555556p-1, INEXACT) +T(RD, 0x1.66p+6, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, 0x1.634p+9, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, 0x1p+126, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, 0x1p+127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD, 0x1.fffffcp+127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RD,-0x1.000002p-126,-0x1.000002p-126, 0x0p+0, INEXACT) +T(RD,-0x1.000004p-126,-0x1.000004p-126, 0x0p+0, INEXACT) +T(RD, -0x1p-125, -0x1p-125, 0x0p+0, INEXACT) +T(RD, -0x1p-124, -0x1p-124, 0x0p+0, INEXACT) +T(RD, -0x1p-28, -0x1p-28, -0x1.555556p-35, INEXACT) +T(RD, -0x1p-27, -0x1p-27, -0x1.555556p-33, INEXACT) +T(RD, -0x1.8p-27, -0x1.8p-27, -0x1.2p-31, INEXACT) +T(RD, -0x1p-26, -0x1p-26, -0x1.555556p-31, INEXACT) +T(RD, -0x1.4p-26, -0x1.4p-26, -0x1.4d5556p-30, INEXACT) +T(RD, -0x1.8p-26, -0x1.8p-26, -0x1.2p-29, INEXACT) +T(RD, -0x1p-12, -0x1p-12, -0x1.555554p-3, INEXACT) +T(RD, -0x1.66p+6, -0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1.634p+9, -0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p+126, -0x1p+0, 0x0p+0, INEXACT) +T(RD, -0x1p+127, -0x1p+0, 0x0p+0, INEXACT) +T(RD,-0x1.fffffcp+127, -0x1p+0, 0x0p+0, INEXACT) +T(RD, 0x1p-149, 0x0p+0, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-148, 0x1p-149, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-128, 0x1.fffffp-129, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-127, 0x1.fffff8p-128, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.fffff8p-127, 0x1.fffff4p-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1.fffffcp-127, 0x1.fffff8p-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, 0x1p-126, 0x1.fffffcp-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-149, -0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-148, -0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-128, -0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-127, -0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.fffff8p-127,-0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RD,-0x1.fffffcp-127,-0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RD, -0x1p-126, -0x1p-126, 0x0p+0, INEXACT) +T(RN, 0x1.000002p-126, 0x1.000002p-126, 0x0p+0, INEXACT) +T(RN, 0x1.000004p-126, 0x1.000004p-126, 0x0p+0, INEXACT) +T(RN, 0x1p-125, 0x1p-125, 0x0p+0, INEXACT) +T(RN, 0x1p-124, 0x1p-124, 0x0p+0, INEXACT) +T(RN, 0x1p-28, 0x1p-28, 0x1.555556p-35, INEXACT) +T(RN, 0x1p-27, 0x1p-27, 0x1.555556p-33, INEXACT) +T(RN, 0x1.8p-27, 0x1.8p-27, 0x1.2p-31, INEXACT) +T(RN, 0x1p-26, 0x1p-26, 0x1.555556p-31, INEXACT) +T(RN, 0x1.4p-26, 0x1.4p-26, 0x1.4d5556p-30, INEXACT) +T(RN, 0x1.8p-26, 0x1.8p-26, 0x1.2p-29, INEXACT) +T(RN, 0x1p-12, 0x1p-12, 0x1.555554p-3, INEXACT) +T(RN, 0x1.66p+6, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.634p+9, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p+126, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p+127, 0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1.fffffcp+127, 0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.000002p-126,-0x1.000002p-126, 0x0p+0, INEXACT) +T(RN,-0x1.000004p-126,-0x1.000004p-126, 0x0p+0, INEXACT) +T(RN, -0x1p-125, -0x1p-125, 0x0p+0, INEXACT) +T(RN, -0x1p-124, -0x1p-124, 0x0p+0, INEXACT) +T(RN, -0x1p-28, -0x1p-28, -0x1.555556p-35, INEXACT) +T(RN, -0x1p-27, -0x1p-27, -0x1.555556p-33, INEXACT) +T(RN, -0x1.8p-27, -0x1.8p-27, -0x1.2p-31, INEXACT) +T(RN, -0x1p-26, -0x1p-26, -0x1.555556p-31, INEXACT) +T(RN, -0x1.4p-26, -0x1.4p-26, -0x1.4d5556p-30, INEXACT) +T(RN, -0x1.8p-26, -0x1.8p-26, -0x1.2p-29, INEXACT) +T(RN, -0x1p-12, -0x1p-12, -0x1.555554p-3, INEXACT) +T(RN, -0x1.66p+6, -0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1.634p+9, -0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p+126, -0x1p+0, 0x0p+0, INEXACT) +T(RN, -0x1p+127, -0x1p+0, 0x0p+0, INEXACT) +T(RN,-0x1.fffffcp+127, -0x1p+0, 0x0p+0, INEXACT) +T(RN, 0x1p-148, 0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-128, 0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1p-127, 0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.fffff8p-127, 0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-148, -0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-128, -0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RN, -0x1p-127, -0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.fffff8p-127,-0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RN,-0x1.fffffcp-127,-0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.000002p-126, 0x1.000002p-126, 0x0p+0, INEXACT) +T(RU, 0x1.000004p-126, 0x1.000004p-126, 0x0p+0, INEXACT) +T(RU, 0x1p-125, 0x1p-125, 0x0p+0, INEXACT) +T(RU, 0x1p-124, 0x1p-124, 0x0p+0, INEXACT) +T(RU, 0x1p-28, 0x1p-28, 0x1.555556p-35, INEXACT) +T(RU, 0x1p-27, 0x1p-27, 0x1.555556p-33, INEXACT) +T(RU, 0x1.8p-27, 0x1.8p-27, 0x1.2p-31, INEXACT) +T(RU, 0x1p-26, 0x1p-26, 0x1.555556p-31, INEXACT) +T(RU, 0x1.4p-26, 0x1.4p-26, 0x1.4d5556p-30, INEXACT) +T(RU, 0x1.8p-26, 0x1.8p-26, 0x1.2p-29, INEXACT) +T(RU, 0x1p-12, 0x1p-12, 0x1.555554p-3, INEXACT) +T(RU, 0x1.66p+6, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.634p+9, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p+126, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1p+127, 0x1p+0, 0x0p+0, INEXACT) +T(RU, 0x1.fffffcp+127, 0x1p+0, 0x0p+0, INEXACT) +T(RU,-0x1.000002p-126, -0x1p-126, 0x1p+0, INEXACT) +T(RU,-0x1.000004p-126,-0x1.000002p-126, 0x1p+0, INEXACT) +T(RU, -0x1p-125,-0x1.fffffep-126, 0x1p+0, INEXACT) +T(RU, -0x1p-124,-0x1.fffffep-125, 0x1p+0, INEXACT) +T(RU, -0x1p-28, -0x1.fffffep-29, 0x1p+0, INEXACT) +T(RU, -0x1p-27, -0x1.fffffep-28, 0x1p+0, INEXACT) +T(RU, -0x1.8p-27, -0x1.7ffffep-27, 0x1p+0, INEXACT) +T(RU, -0x1p-26, -0x1.fffffep-27, 0x1p+0, INEXACT) +T(RU, -0x1.4p-26, -0x1.3ffffep-26, 0x1p+0, INEXACT) +T(RU, -0x1.8p-26, -0x1.7ffffep-26, 0x1p+0, INEXACT) +T(RU, -0x1p-12, -0x1.fffffep-13, 0x1.555556p-1, INEXACT) +T(RU, -0x1.66p+6, -0x1.fffffep-1, 0x1p+0, INEXACT) +T(RU, -0x1.634p+9, -0x1.fffffep-1, 0x1p+0, INEXACT) +T(RU, -0x1p+126, -0x1.fffffep-1, 0x1p+0, INEXACT) +T(RU, -0x1p+127, -0x1.fffffep-1, 0x1p+0, INEXACT) +T(RU,-0x1.fffffcp+127, -0x1.fffffep-1, 0x1p+0, INEXACT) +T(RU, 0x1p-149, 0x1p-149, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-148, 0x1p-148, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-128, 0x1p-128, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-127, 0x1p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.fffff8p-127, 0x1.fffff8p-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1.fffffcp-127, 0x1.fffffcp-127, 0x0p+0, INEXACT|UNDERFLOW) +T(RU, 0x1p-126, 0x1p-126, 0x0p+0, INEXACT) +T(RU, -0x1p-149, -0x0p+0, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-148, -0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-128, -0x1.fffffp-129, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-127,-0x1.fffff8p-128, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.fffff8p-127,-0x1.fffff4p-127, 0x1p+0, INEXACT|UNDERFLOW) +T(RU,-0x1.fffffcp-127,-0x1.fffff8p-127, 0x1p+0, INEXACT|UNDERFLOW) +T(RU, -0x1p-126,-0x1.fffffcp-127, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.000002p-126, 0x1p-126, -0x1p+0, INEXACT) +T(RZ, 0x1.000004p-126, 0x1.000002p-126, -0x1p+0, INEXACT) +T(RZ, 0x1p-125, 0x1.fffffep-126, -0x1p+0, INEXACT) +T(RZ, 0x1p-124, 0x1.fffffep-125, -0x1p+0, INEXACT) +T(RZ, 0x1p-28, 0x1.fffffep-29, -0x1p+0, INEXACT) +T(RZ, 0x1p-27, 0x1.fffffep-28, -0x1p+0, INEXACT) +T(RZ, 0x1.8p-27, 0x1.7ffffep-27, -0x1p+0, INEXACT) +T(RZ, 0x1p-26, 0x1.fffffep-27, -0x1p+0, INEXACT) +T(RZ, 0x1.4p-26, 0x1.3ffffep-26, -0x1p+0, INEXACT) +T(RZ, 0x1.8p-26, 0x1.7ffffep-26, -0x1p+0, INEXACT) +T(RZ, 0x1p-12, 0x1.fffffep-13, -0x1.555556p-1, INEXACT) +T(RZ, 0x1.66p+6, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, 0x1.634p+9, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, 0x1p+126, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, 0x1p+127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ, 0x1.fffffcp+127, 0x1.fffffep-1, -0x1p+0, INEXACT) +T(RZ,-0x1.000002p-126, -0x1p-126, 0x1p+0, INEXACT) +T(RZ,-0x1.000004p-126,-0x1.000002p-126, 0x1p+0, INEXACT) +T(RZ, -0x1p-125,-0x1.fffffep-126, 0x1p+0, INEXACT) +T(RZ, -0x1p-124,-0x1.fffffep-125, 0x1p+0, INEXACT) +T(RZ, -0x1p-28, -0x1.fffffep-29, 0x1p+0, INEXACT) +T(RZ, -0x1p-27, -0x1.fffffep-28, 0x1p+0, INEXACT) +T(RZ, -0x1.8p-27, -0x1.7ffffep-27, 0x1p+0, INEXACT) +T(RZ, -0x1p-26, -0x1.fffffep-27, 0x1p+0, INEXACT) +T(RZ, -0x1.4p-26, -0x1.3ffffep-26, 0x1p+0, INEXACT) +T(RZ, -0x1.8p-26, -0x1.7ffffep-26, 0x1p+0, INEXACT) +T(RZ, -0x1p-12, -0x1.fffffep-13, 0x1.555556p-1, INEXACT) +T(RZ, -0x1.66p+6, -0x1.fffffep-1, 0x1p+0, INEXACT) +T(RZ, -0x1.634p+9, -0x1.fffffep-1, 0x1p+0, INEXACT) +T(RZ, -0x1p+126, -0x1.fffffep-1, 0x1p+0, INEXACT) +T(RZ, -0x1p+127, -0x1.fffffep-1, 0x1p+0, INEXACT) +T(RZ,-0x1.fffffcp+127, -0x1.fffffep-1, 0x1p+0, INEXACT) +T(RZ, 0x1p-149, 0x0p+0, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-148, 0x1p-149, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-128, 0x1.fffffp-129, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-127, 0x1.fffff8p-128, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.fffff8p-127, 0x1.fffff4p-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1.fffffcp-127, 0x1.fffff8p-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, 0x1p-126, 0x1.fffffcp-127, -0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-149, -0x0p+0, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-148, -0x1p-149, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-128, -0x1.fffffp-129, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-127,-0x1.fffff8p-128, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.fffff8p-127,-0x1.fffff4p-127, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ,-0x1.fffffcp-127,-0x1.fffff8p-127, 0x1p+0, INEXACT|UNDERFLOW) +T(RZ, -0x1p-126,-0x1.fffffcp-127, 0x1p+0, INEXACT|UNDERFLOW) diff --git a/test/musl/src/math/y0.c b/test/musl/src/math/y0.c new file mode 100644 index 00000000..b5b97b85 --- /dev/null +++ b/test/musl/src/math/y0.c @@ -0,0 +1,48 @@ +#define _XOPEN_SOURCE 700 +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "sanity/y0.h" +#include "special/y0.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, bad, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = y0(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s y0(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + bad = p->x < 0 && !isnan(y) && y != -inf; + if (bad || (!(p->x < 0) && !checkulp(d, p->r))) { + if (!bad && fabsf(d) < 0x1p52f) + printf("X "); + else + err++; + printf("%s:%d: %s y0(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + } + } + return !!err; +} diff --git a/test/musl/src/math/y0f.c b/test/musl/src/math/y0f.c new file mode 100644 index 00000000..d0152798 --- /dev/null +++ b/test/musl/src/math/y0f.c @@ -0,0 +1,49 @@ +#define _DEFAULT_SOURCE 1 +#define _BSD_SOURCE 1 +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "sanity/y0f.h" +#include "special/y0f.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, bad, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = y0f(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s y0f(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + bad = p->x < 0 && !isnan(y) && y != -inf; + if (bad || (!(p->x < 0) && !checkulp(d, p->r))) { + if (!bad && fabsf(d) < 0x1p23f) + printf("X "); + else + err++; + printf("%s:%d: %s y0f(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + } + } + return !!err; +} diff --git a/test/musl/src/math/y1.c b/test/musl/src/math/y1.c new file mode 100644 index 00000000..e31d67d1 --- /dev/null +++ b/test/musl/src/math/y1.c @@ -0,0 +1,44 @@ +#define _XOPEN_SOURCE 700 +#include +#include +#include "mtest.h" + +static struct d_d t[] = { +#include "sanity/y1.h" +#include "special/y1.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct d_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = y1(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s y1(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if ((!(p->x < 0) && !checkulp(d, p->r)) || (p->x < 0 && !isnan(y) && y != -inf)) { + printf("%s:%d: %s y1(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/y1f.c b/test/musl/src/math/y1f.c new file mode 100644 index 00000000..31d44856 --- /dev/null +++ b/test/musl/src/math/y1f.c @@ -0,0 +1,45 @@ +#define _DEFAULT_SOURCE 1 +#define _BSD_SOURCE 1 +#include +#include +#include "mtest.h" + +static struct f_f t[] = { +#include "sanity/y1f.h" +#include "special/y1f.h" + +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + float y; + float d; + int e, i, err = 0; + struct f_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = y1f(p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s y1f(%a)=%a, want %s", + p->file, p->line, rstr(p->r), p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + if ((!(p->x < 0) && !checkulp(d, p->r)) || (p->x < 0 && !isnan(y) && y != -inf)) { + printf("%s:%d: %s y1f(%a) want %a got %a ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/yn.c b/test/musl/src/math/yn.c new file mode 100644 index 00000000..244dbb84 --- /dev/null +++ b/test/musl/src/math/yn.c @@ -0,0 +1,43 @@ +#define _XOPEN_SOURCE 700 +#include +#include +#include "mtest.h" + +static struct di_d t[] = { +#include "sanity/yn.h" +#include "special/yn.h" +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, err = 0; + struct di_d *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = yn(p->i, p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s yn(%lld, %a)=%a, want %s", + p->file, p->line, rstr(p->r), p->i, p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperr(y, p->y, p->dy); + if ((!(p->x < 0) && !checkulp(d, p->r)) || (p->x < 0 && !isnan(y) && y != -inf)) { + printf("%s:%d: %s yn(%lld, %a) want %a got %a, ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->i, p->x, p->y, y, d, d-p->dy, p->dy); + err++; + } + } + return !!err; +} diff --git a/test/musl/src/math/ynf.c b/test/musl/src/math/ynf.c new file mode 100644 index 00000000..8d98977f --- /dev/null +++ b/test/musl/src/math/ynf.c @@ -0,0 +1,48 @@ +#define _DEFAULT_SOURCE 1 +#define _BSD_SOURCE 1 +#include +#include +#include "mtest.h" + +static struct fi_f t[] = { +#include "sanity/ynf.h" +#include "special/ynf.h" +}; + +int main(void) +{ + #pragma STDC FENV_ACCESS ON + double y; + float d; + int e, i, bad, err = 0; + struct fi_f *p; + + for (i = 0; i < sizeof t/sizeof *t; i++) { + p = t + i; + + if (p->r < 0) + continue; + fesetround(p->r); + feclearexcept(FE_ALL_EXCEPT); + y = ynf(p->i, p->x); + e = fetestexcept(INEXACT|INVALID|DIVBYZERO|UNDERFLOW|OVERFLOW); + + if (!checkexcept(e, p->e, p->r)) { + printf("%s:%d: bad fp exception: %s ynf(%lld, %a)=%a, want %s", + p->file, p->line, rstr(p->r), p->i, p->x, p->y, estr(p->e)); + printf(" got %s\n", estr(e)); + err++; + } + d = ulperrf(y, p->y, p->dy); + bad = p->x < 0 && !isnan(y) && y != -inf; + if (bad || (!(p->x < 0) && !checkulp(d, p->r))) { + if (!bad && fabsf(d) < 2.5f) + printf("X "); + else + err++; + printf("%s:%d: %s ynf(%lld, %a) want %a got %a, ulperr %.3f = %a + %a\n", + p->file, p->line, rstr(p->r), p->i, p->x, p->y, y, d, d-p->dy, p->dy); + } + } + return !!err; +} From 71f1e6e1b20cb26c9f448f87aaa2a6fc40961485 Mon Sep 17 00:00:00 2001 From: Chengyu HAN Date: Fri, 2 Feb 2024 14:54:02 -0600 Subject: [PATCH 2/8] test.musl: link with openlibm --- test/musl/.gitignore | 1 + test/musl/config.mak.def | 25 ++++++++++++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/test/musl/.gitignore b/test/musl/.gitignore index 14d4095e..6086be4b 100644 --- a/test/musl/.gitignore +++ b/test/musl/.gitignore @@ -5,3 +5,4 @@ *.exe config.mak REPORT +options.h diff --git a/test/musl/config.mak.def b/test/musl/config.mak.def index 633fef8a..bb344da4 100644 --- a/test/musl/config.mak.def +++ b/test/musl/config.mak.def @@ -3,9 +3,28 @@ CFLAGS += -Wno-unknown-pragmas -fno-builtin -frounding-math CFLAGS += -Werror=implicit-function-declaration -Werror=implicit-int -Werror=pointer-sign -Werror=pointer-arith CFLAGS += -g LDFLAGS += -g -LDLIBS += -lpthread -lm -lrt +# XXX: link libm later +LDLIBS += -lpthread -lrt # glibc specific settings -CFLAGS += -D_FILE_OFFSET_BITS=64 -LDLIBS += -lcrypt -ldl -lresolv -lutil -lpthread +# XXX: Not using the Glibc settings +# CFLAGS += -D_FILE_OFFSET_BITS=64 +# LDLIBS += -lcrypt -ldl -lresolv -lutil -lpthread +# XXX: ---- OpenlibM settings +OPENLIBM_HOME=$(abspath ../..) +include $(OPENLIBM_HOME)/Make.inc + +# Set rpath of tests to builddir for loading shared library +OPENLIBM_LIB = -L$(OPENLIBM_HOME) -lopenlibm +ifneq ($(OS),WINNT) +ifneq ($(OS),Darwin) +OPENLIBM_LIB += -Wl,-rpath=$(OPENLIBM_HOME) +endif +else # WINNT +CFLAGS_add += -DIMPORT_EXPORTS +endif + +CFLAGS += $(CFLAGS_add) +LDFLAGS += $(LDFLAGS_add) +LDLIBS += $(OPENLIBM_LIB) From 86620e1d6374ad2a42d380cff23f2265d8ac19d2 Mon Sep 17 00:00:00 2001 From: Chengyu HAN Date: Fri, 2 Feb 2024 14:55:29 -0600 Subject: [PATCH 3/8] test.musl: use openlibm Replace include: + `` => `` + `` => `` + `` => `` --- test/musl/src/api/complex.c | 5 ++++- test/musl/src/api/fenv.c | 5 ++++- test/musl/src/api/math.c | 5 ++++- test/musl/src/common/mtest.h | 8 +++++--- test/musl/src/math/fpclassify.c | 4 +++- test/musl/src/math/isless.c | 4 +++- 6 files changed, 23 insertions(+), 8 deletions(-) diff --git a/test/musl/src/api/complex.c b/test/musl/src/api/complex.c index 5522233a..fe966099 100644 --- a/test/musl/src/api/complex.c +++ b/test/musl/src/api/complex.c @@ -1,4 +1,7 @@ -#include +// XXX: Use openlibm +// #include +#include + #define T(t) (t*)0; static void f() { diff --git a/test/musl/src/api/fenv.c b/test/musl/src/api/fenv.c index 57907375..4cc4d0dc 100644 --- a/test/musl/src/api/fenv.c +++ b/test/musl/src/api/fenv.c @@ -1,4 +1,7 @@ -#include +// XXX: Use openlibm +// #include +#include + #define T(t) (t*)0; #define F(t,n) {t *y = &x.n;} #define C(n) switch(n){case n:;} diff --git a/test/musl/src/api/math.c b/test/musl/src/api/math.c index 5d6d3f02..4a2935ad 100644 --- a/test/musl/src/api/math.c +++ b/test/musl/src/api/math.c @@ -1,4 +1,7 @@ -#include +// XXX: Use openlibm +// #include +#include + #define T(t) (t*)0; #define C(n) switch(n){case n:;} #define I(t,e) {t x[sizeof(t)==sizeof(e)] = {e};} diff --git a/test/musl/src/common/mtest.h b/test/musl/src/common/mtest.h index 706c1ba2..d28b4e61 100644 --- a/test/musl/src/common/mtest.h +++ b/test/musl/src/common/mtest.h @@ -1,6 +1,9 @@ -#include #include -#include +// XXX: Use openlibm +// #include +// #include +#include +#include #undef RN #undef RZ @@ -132,4 +135,3 @@ static int checkcr(long double y, long double ywant, int r) return isnan(y); return y == ywant && signbit(y) == signbit(ywant); } - diff --git a/test/musl/src/math/fpclassify.c b/test/musl/src/math/fpclassify.c index bc77d8c1..bafb5662 100644 --- a/test/musl/src/math/fpclassify.c +++ b/test/musl/src/math/fpclassify.c @@ -1,5 +1,7 @@ #include -#include +// XXX: Use openlibm +// #include +#include #define T(a,b) {__LINE__, a, b}, #define length(a) (sizeof(a)/sizeof*(a)) diff --git a/test/musl/src/math/isless.c b/test/musl/src/math/isless.c index 595c8f54..81e29feb 100644 --- a/test/musl/src/math/isless.c +++ b/test/musl/src/math/isless.c @@ -1,4 +1,6 @@ -#include +// XXX: Use openlibm +// #include +#include #include "mtest.h" #include "test.h" From 6e189973f38306189367dbf3d7fe9027c2c7aefc Mon Sep 17 00:00:00 2001 From: Chengyu HAN Date: Fri, 26 Jan 2024 00:23:15 -0600 Subject: [PATCH 4/8] test: skip api broken tests --- test/musl/src/api/complex.c | 5 +++-- test/musl/src/api/math.c | 11 ++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/test/musl/src/api/complex.c b/test/musl/src/api/complex.c index fe966099..4ac36dbb 100644 --- a/test/musl/src/api/complex.c +++ b/test/musl/src/api/complex.c @@ -7,8 +7,9 @@ static void f() { T(float complex) -{const float complex c = _Complex_I;} -{const float complex c = I;} +// TODO: test broken! error: imaginary constants are a GCC extension +// {const float complex c = _Complex_I;} +// {const float complex c = I;} {double(*p)(double complex) = cabs;} {float(*p)(float complex) = cabsf;} diff --git a/test/musl/src/api/math.c b/test/musl/src/api/math.c index 4a2935ad..1ba5e417 100644 --- a/test/musl/src/api/math.c +++ b/test/musl/src/api/math.c @@ -1,6 +1,8 @@ // XXX: Use openlibm // #include #include +// TODO: test broken! may add to `openlibm_math.h` +#include #define T(t) (t*)0; #define C(n) switch(n){case n:;} @@ -8,8 +10,10 @@ #define D(n) {double d = n;} static void f() { -T(float_t) -T(double_t) +// TODO: test broken! +// T(float_t) +// T(double_t) + I(int,fpclassify(.0)) I(int,isfinite(.0)) I(int,isgreater(.0,.0)) @@ -181,7 +185,8 @@ C(math_errhandling) {long double(*p)(const char*) = nanl;} {double(*p)(double) = nearbyint;} {float(*p)(float) = nearbyintf;} -{long double(*p)(long double) = nearbyintl;} +// TODO: test broken! undefined reference to `nearbyintl' +// {long double(*p)(long double) = nearbyintl;} {double(*p)(double,double) = nextafter;} {float(*p)(float,float) = nextafterf;} {long double(*p)(long double,long double) = nextafterl;} From 7a93479819343e3cc45c2f91366c3d12f3ed02cd Mon Sep 17 00:00:00 2001 From: Chengyu HAN Date: Fri, 26 Jan 2024 00:48:14 -0600 Subject: [PATCH 5/8] test: skip unimpl funcs --- test/musl/src/math/{ => not-impl}/drem.c | 0 test/musl/src/math/{ => not-impl}/dremf.c | 0 test/musl/src/math/{ => not-impl}/exp10.c | 0 test/musl/src/math/{ => not-impl}/exp10f.c | 0 test/musl/src/math/{ => not-impl}/exp10l.c | 0 test/musl/src/math/{ => not-impl}/pow10.c | 0 test/musl/src/math/{ => not-impl}/pow10f.c | 0 test/musl/src/math/{ => not-impl}/pow10l.c | 0 test/musl/src/math/{ => not-impl}/scalb.c | 0 test/musl/src/math/{ => not-impl}/scalbf.c | 0 10 files changed, 0 insertions(+), 0 deletions(-) rename test/musl/src/math/{ => not-impl}/drem.c (100%) rename test/musl/src/math/{ => not-impl}/dremf.c (100%) rename test/musl/src/math/{ => not-impl}/exp10.c (100%) rename test/musl/src/math/{ => not-impl}/exp10f.c (100%) rename test/musl/src/math/{ => not-impl}/exp10l.c (100%) rename test/musl/src/math/{ => not-impl}/pow10.c (100%) rename test/musl/src/math/{ => not-impl}/pow10f.c (100%) rename test/musl/src/math/{ => not-impl}/pow10l.c (100%) rename test/musl/src/math/{ => not-impl}/scalb.c (100%) rename test/musl/src/math/{ => not-impl}/scalbf.c (100%) diff --git a/test/musl/src/math/drem.c b/test/musl/src/math/not-impl/drem.c similarity index 100% rename from test/musl/src/math/drem.c rename to test/musl/src/math/not-impl/drem.c diff --git a/test/musl/src/math/dremf.c b/test/musl/src/math/not-impl/dremf.c similarity index 100% rename from test/musl/src/math/dremf.c rename to test/musl/src/math/not-impl/dremf.c diff --git a/test/musl/src/math/exp10.c b/test/musl/src/math/not-impl/exp10.c similarity index 100% rename from test/musl/src/math/exp10.c rename to test/musl/src/math/not-impl/exp10.c diff --git a/test/musl/src/math/exp10f.c b/test/musl/src/math/not-impl/exp10f.c similarity index 100% rename from test/musl/src/math/exp10f.c rename to test/musl/src/math/not-impl/exp10f.c diff --git a/test/musl/src/math/exp10l.c b/test/musl/src/math/not-impl/exp10l.c similarity index 100% rename from test/musl/src/math/exp10l.c rename to test/musl/src/math/not-impl/exp10l.c diff --git a/test/musl/src/math/pow10.c b/test/musl/src/math/not-impl/pow10.c similarity index 100% rename from test/musl/src/math/pow10.c rename to test/musl/src/math/not-impl/pow10.c diff --git a/test/musl/src/math/pow10f.c b/test/musl/src/math/not-impl/pow10f.c similarity index 100% rename from test/musl/src/math/pow10f.c rename to test/musl/src/math/not-impl/pow10f.c diff --git a/test/musl/src/math/pow10l.c b/test/musl/src/math/not-impl/pow10l.c similarity index 100% rename from test/musl/src/math/pow10l.c rename to test/musl/src/math/not-impl/pow10l.c diff --git a/test/musl/src/math/scalb.c b/test/musl/src/math/not-impl/scalb.c similarity index 100% rename from test/musl/src/math/scalb.c rename to test/musl/src/math/not-impl/scalb.c diff --git a/test/musl/src/math/scalbf.c b/test/musl/src/math/not-impl/scalbf.c similarity index 100% rename from test/musl/src/math/scalbf.c rename to test/musl/src/math/not-impl/scalbf.c From 33505b976e97880d1e4e39b6cbfcc070d1332f2d Mon Sep 17 00:00:00 2001 From: Chengyu HAN Date: Fri, 26 Jan 2024 00:54:48 -0600 Subject: [PATCH 6/8] test: skip all fp except tests --- test/musl/src/common/mtest.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/musl/src/common/mtest.h b/test/musl/src/common/mtest.h index d28b4e61..4209e558 100644 --- a/test/musl/src/common/mtest.h +++ b/test/musl/src/common/mtest.h @@ -102,6 +102,14 @@ float ulperr(double got, double want, float dwant); float ulperrf(float got, float want, float dwant); float ulperrl(long double got, long double want, float dwant); +// TODO: check fp except +#define _SKIP_ALL_FP_EXCP 1 +#ifdef _SKIP_ALL_FP_EXCP +static int checkexcept(int got, int want, int r) +{ + return 1; +} +#else static int checkexcept(int got, int want, int r) { if (r == RN) @@ -114,6 +122,7 @@ static int checkexcept(int got, int want, int r) #endif return (got|INEXACT|UNDERFLOW) == (want|INEXACT|UNDERFLOW); } +#endif // _SKIP_ALL_FP_EXCP static int checkexceptall(int got, int want, int r) { From a524fd56c92646a276cc793adf4eebf5e48cafc0 Mon Sep 17 00:00:00 2001 From: Chengyu HAN Date: Fri, 26 Jan 2024 00:55:02 -0600 Subject: [PATCH 7/8] test: skip all broken tests --- test/musl/src/math/{ => broken}/fenv.c | 0 test/musl/src/math/{ => broken}/fma.c | 0 test/musl/src/math/{ => broken}/fmaf.c | 0 test/musl/src/math/{ => broken}/fmal.c | 0 test/musl/src/math/{ => broken}/fpclassify.c | 0 test/musl/src/math/{ => broken}/j1.c | 0 test/musl/src/math/{ => broken}/j1f.c | 0 test/musl/src/math/{ => broken}/jn.c | 0 test/musl/src/math/{ => broken}/jnf.c | 0 test/musl/src/math/{ => broken}/nearbyintl.c | 0 test/musl/src/math/{ => broken}/nextafterl.c | 0 test/musl/src/math/{ => broken}/nexttoward.c | 0 test/musl/src/math/{ => broken}/nexttowardl.c | 0 test/musl/src/math/{ => broken}/round.c | 0 test/musl/src/math/{ => broken}/tgamma.c | 0 test/musl/src/math/{ => broken}/yn.c | 0 test/musl/src/math/{ => broken}/ynf.c | 0 17 files changed, 0 insertions(+), 0 deletions(-) rename test/musl/src/math/{ => broken}/fenv.c (100%) rename test/musl/src/math/{ => broken}/fma.c (100%) rename test/musl/src/math/{ => broken}/fmaf.c (100%) rename test/musl/src/math/{ => broken}/fmal.c (100%) rename test/musl/src/math/{ => broken}/fpclassify.c (100%) rename test/musl/src/math/{ => broken}/j1.c (100%) rename test/musl/src/math/{ => broken}/j1f.c (100%) rename test/musl/src/math/{ => broken}/jn.c (100%) rename test/musl/src/math/{ => broken}/jnf.c (100%) rename test/musl/src/math/{ => broken}/nearbyintl.c (100%) rename test/musl/src/math/{ => broken}/nextafterl.c (100%) rename test/musl/src/math/{ => broken}/nexttoward.c (100%) rename test/musl/src/math/{ => broken}/nexttowardl.c (100%) rename test/musl/src/math/{ => broken}/round.c (100%) rename test/musl/src/math/{ => broken}/tgamma.c (100%) rename test/musl/src/math/{ => broken}/yn.c (100%) rename test/musl/src/math/{ => broken}/ynf.c (100%) diff --git a/test/musl/src/math/fenv.c b/test/musl/src/math/broken/fenv.c similarity index 100% rename from test/musl/src/math/fenv.c rename to test/musl/src/math/broken/fenv.c diff --git a/test/musl/src/math/fma.c b/test/musl/src/math/broken/fma.c similarity index 100% rename from test/musl/src/math/fma.c rename to test/musl/src/math/broken/fma.c diff --git a/test/musl/src/math/fmaf.c b/test/musl/src/math/broken/fmaf.c similarity index 100% rename from test/musl/src/math/fmaf.c rename to test/musl/src/math/broken/fmaf.c diff --git a/test/musl/src/math/fmal.c b/test/musl/src/math/broken/fmal.c similarity index 100% rename from test/musl/src/math/fmal.c rename to test/musl/src/math/broken/fmal.c diff --git a/test/musl/src/math/fpclassify.c b/test/musl/src/math/broken/fpclassify.c similarity index 100% rename from test/musl/src/math/fpclassify.c rename to test/musl/src/math/broken/fpclassify.c diff --git a/test/musl/src/math/j1.c b/test/musl/src/math/broken/j1.c similarity index 100% rename from test/musl/src/math/j1.c rename to test/musl/src/math/broken/j1.c diff --git a/test/musl/src/math/j1f.c b/test/musl/src/math/broken/j1f.c similarity index 100% rename from test/musl/src/math/j1f.c rename to test/musl/src/math/broken/j1f.c diff --git a/test/musl/src/math/jn.c b/test/musl/src/math/broken/jn.c similarity index 100% rename from test/musl/src/math/jn.c rename to test/musl/src/math/broken/jn.c diff --git a/test/musl/src/math/jnf.c b/test/musl/src/math/broken/jnf.c similarity index 100% rename from test/musl/src/math/jnf.c rename to test/musl/src/math/broken/jnf.c diff --git a/test/musl/src/math/nearbyintl.c b/test/musl/src/math/broken/nearbyintl.c similarity index 100% rename from test/musl/src/math/nearbyintl.c rename to test/musl/src/math/broken/nearbyintl.c diff --git a/test/musl/src/math/nextafterl.c b/test/musl/src/math/broken/nextafterl.c similarity index 100% rename from test/musl/src/math/nextafterl.c rename to test/musl/src/math/broken/nextafterl.c diff --git a/test/musl/src/math/nexttoward.c b/test/musl/src/math/broken/nexttoward.c similarity index 100% rename from test/musl/src/math/nexttoward.c rename to test/musl/src/math/broken/nexttoward.c diff --git a/test/musl/src/math/nexttowardl.c b/test/musl/src/math/broken/nexttowardl.c similarity index 100% rename from test/musl/src/math/nexttowardl.c rename to test/musl/src/math/broken/nexttowardl.c diff --git a/test/musl/src/math/round.c b/test/musl/src/math/broken/round.c similarity index 100% rename from test/musl/src/math/round.c rename to test/musl/src/math/broken/round.c diff --git a/test/musl/src/math/tgamma.c b/test/musl/src/math/broken/tgamma.c similarity index 100% rename from test/musl/src/math/tgamma.c rename to test/musl/src/math/broken/tgamma.c diff --git a/test/musl/src/math/yn.c b/test/musl/src/math/broken/yn.c similarity index 100% rename from test/musl/src/math/yn.c rename to test/musl/src/math/broken/yn.c diff --git a/test/musl/src/math/ynf.c b/test/musl/src/math/broken/ynf.c similarity index 100% rename from test/musl/src/math/ynf.c rename to test/musl/src/math/broken/ynf.c From 4644b62ab1aff3396cb73fa09b5fdcf115f574fb Mon Sep 17 00:00:00 2001 From: Chengyu HAN Date: Fri, 26 Jan 2024 01:05:30 -0600 Subject: [PATCH 8/8] test: add `test/musl` to target coverage --- Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Makefile b/Makefile index 17e03a07..241385e7 100644 --- a/Makefile +++ b/Makefile @@ -86,6 +86,7 @@ COVERAGE_FILE:=$(COVERAGE_DIR)/libopenlibm.info coverage: clean-coverage mkdir $(COVERAGE_DIR) $(MAKE) test CODE_COVERAGE=1 + $(MAKE) -C test/musl CODE_COVERAGE=1 lcov -d amd64 -d bsdsrc -d ld80 -d src \ --rc lcov_branch_coverage=1 --capture --output-file $(COVERAGE_FILE) genhtml --legend --branch-coverage \ @@ -104,6 +105,7 @@ clean: clean-coverage rm -f libopenlibm.a libopenlibm.*$(SHLIB_EXT)* rm -f ./*/*.gcno $(MAKE) -C test clean + $(MAKE) -C test/musl clean openlibm.pc: openlibm.pc.in Make.inc Makefile echo "version=${VERSION}" > openlibm.pc