blob: aff81b319ca6c49bb47834ac4b37b052b8ef9cea [file] [log] [blame]
#include <math.h>
extern void abort(void);
#define C99_MATH_TESTS(nan, inf, huge, norm, sub, zero) \
{ \
if (fpclassify (nan) != FP_NAN) \
abort (); \
\
if (fpclassify (inf) != FP_INFINITE) \
abort (); \
\
if (fpclassify (huge) != FP_INFINITE) \
abort (); \
\
if (fpclassify (norm) != FP_NORMAL) \
abort (); \
\
if (fpclassify (sub) != FP_SUBNORMAL) \
abort (); \
\
if (fpclassify (zero) != FP_ZERO) \
abort (); \
\
\
if (!isnan (nan)) \
abort (); \
\
if (isnan (inf)) \
abort (); \
\
if (isnan (huge)) \
abort (); \
\
if (isnan (norm)) \
abort (); \
\
if (isnan (sub)) \
abort (); \
\
if (isnan (zero)) \
abort (); \
\
\
if (isinf (nan)) \
abort (); \
\
if (!isinf (inf)) \
abort (); \
\
if (!isinf (huge)) \
abort (); \
\
if (isinf (norm)) \
abort (); \
\
if (isinf (sub)) \
abort (); \
\
if (isinf (zero)) \
abort (); \
\
\
if (isfinite (nan)) \
abort (); \
\
if (isfinite (inf)) \
abort (); \
\
if (isfinite (huge)) \
abort (); \
\
if (!isfinite (norm)) \
abort (); \
\
if (!isfinite (sub)) \
abort (); \
\
if (!isfinite (zero)) \
abort (); \
\
\
if (isnormal (nan)) \
abort (); \
\
if (isnormal (inf)) \
abort (); \
\
if (isnormal (huge)) \
abort (); \
\
if (!isnormal (norm)) \
abort (); \
\
if (isnormal (sub)) \
abort (); \
\
if (isnormal (zero)) \
abort (); \
\
\
if (signbit (norm)) \
abort (); \
\
if (!signbit (-(norm))) \
abort (); \
\
\
if (!isgreater ((inf), (norm))) \
abort (); \
\
if (!isgreaterequal ((inf), (huge))) \
abort (); \
\
if (!isless ((norm), (inf))) \
abort (); \
\
if (!islessequal ((huge), (inf))) \
abort (); \
\
if (!islessgreater ((inf), (norm))) \
abort (); \
\
if (!isunordered ((nan), (norm))) \
abort (); \
}