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