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