#include <math.h> | |
extern void abort(void); | |
#define C99_MATH_TESTS(nan, inf, huge, norm, 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 (zero) != FP_ZERO) \ | |
abort (); \ | |
\ | |
\ | |
if (!isnan (nan)) \ | |
abort (); \ | |
\ | |
if (isnan (inf)) \ | |
abort (); \ | |
\ | |
if (isnan (huge)) \ | |
abort (); \ | |
\ | |
if (isnan (norm)) \ | |
abort (); \ | |
\ | |
if (isnan (zero)) \ | |
abort (); \ | |
\ | |
\ | |
if (isinf (nan)) \ | |
abort (); \ | |
\ | |
if (!isinf (inf)) \ | |
abort (); \ | |
\ | |
if (!isinf (huge)) \ | |
abort (); \ | |
\ | |
if (isnan (norm)) \ | |
abort (); \ | |
\ | |
if (isinf (zero)) \ | |
abort (); \ | |
\ | |
\ | |
if (isfinite (nan)) \ | |
abort (); \ | |
\ | |
if (isfinite (inf)) \ | |
abort (); \ | |
\ | |
if (isfinite (huge)) \ | |
abort (); \ | |
\ | |
if (!isfinite (norm)) \ | |
abort (); \ | |
\ | |
if (!isfinite (zero)) \ | |
abort (); \ | |
\ | |
\ | |
if (isnormal (nan)) \ | |
abort (); \ | |
\ | |
if (isnormal (inf)) \ | |
abort (); \ | |
\ | |
if (isnormal (huge)) \ | |
abort (); \ | |
\ | |
if (!isnormal (norm)) \ | |
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 (); \ | |
} |