#define DOMAIN 1
#define SING 2
struct exception
{
int type;
char *name;
double arg1;
double arg2;
double retval;
}
;
#define FP_NAN 0
#define FP_INFINITE 1
#define FP_ZERO 2
#define FP_SUBNORMAL 3
#define FP_NORMAL 4
#define isnormal(x) (fpclassify (x) == FP_NORMAL)
#define isfinite(x) (sizeof (x) == sizeof (float) ? __finitef (x) : sizeof (x) == sizeof (double)? __finite (x) : __finitel (x))
#define isinf(x) (sizeof (x) == sizeof (float) ? __isinff (x): sizeof (x) == sizeof (double) ? __isinf (x) : __isinfl (x))
#define isnan(x) (sizeof (x) == sizeof (float) ? __isnanf (x) : sizeof (x) == sizeof (double) ? __isnan (x) : __isnanl (x))
#define HUGE_VAL 0x1.0p2047
#define HUGE_VALF 0x1.0p255f
#define HUGE_VALL 0x1.0p32767L
#define NAN ((float)0x7fc00000UL)
#define M_1_PI 0.31830988618379067154
#define M_LOG10E 0.43429448190325182765
#define M_2_PI 0.63661977236758134308
#define M_LN2 0.69314718055994530942
#define M_SQRT1_2 0.70710678118654752440
#define M_PI_4 0.78539816339744830962
#define M_2_SQRTPI 1.12837916709551257390
#define M_SQRT2 1.41421356237309504880
#define M_LOG2E 1.4426950408889634074
#define M_PI_2 1.57079632679489661923
#define M_LN10 2.30258509299404568402
#define M_E 2.7182818284590452354
#define M_PI 3.14159265358979323846
#define INFINITY HUGE_VALF
#define MATH_ERRNO 1
#define MATH_ERREXCEPT 2
#define isunordered(u, v) (__extension__({ __typeof__(u) __u = (u); __typeof__(v) __v = (v);fpclassify (__u) == FP_NAN || fpclassify (__v) == FP_NAN; }))
#define islessgreater(x, y) (__extension__({ __typeof__(x) __x = (x); __typeof__(y) __y = (y);!isunordered (__x, __y) & & (__x < __y || __y < __x); }))
#define isless(x,y) (__extension__({ __typeof__(x) __x = (x); __typeof__(y) __y = (y);!isunordered (__x, __y) & & __x < __y; }))
#define islessequal(x, y) (__extension__({ __typeof__(x) __x = (x); __typeof__(y) __y = (y);!isunordered (__x, __y) & & __x <= __y; }))
#define isgreater(x,y) (__extension__({ __typeof__(x) __x = (x); __typeof__(y) __y = (y);!isunordered (__x, __y) & & __x > __y; }))
#define isgreaterequal(x,y) (__extension__({ __typeof__(x) __x = (x); __typeof__(y) __y = (y);!isunordered (__x, __y) & & __x >= __y; })) |