1 2 3 4 5 6 7 8 9 10
#include "libm.h" int __fpclassify(double x) { union dshape u = { x }; int e = u.bits>>52 & 0x7ff; if (!e) return u.bits<<1 ? FP_SUBNORMAL : FP_ZERO; if (e==0x7ff) return u.bits<<12 ? FP_NAN : FP_INFINITE; return FP_NORMAL; }