1 #include <math.h>
2 #include <stdint.h>
3 
__fpclassify(double x)4 int __fpclassify(double x) {
5     union {
6         double f;
7         uint64_t i;
8     } u = {x};
9     int e = u.i >> 52 & 0x7ff;
10     if (!e)
11         return u.i << 1 ? FP_SUBNORMAL : FP_ZERO;
12     if (e == 0x7ff)
13         return u.i << 12 ? FP_NAN : FP_INFINITE;
14     return FP_NORMAL;
15 }
16