1 2 3 4 5 6 7 8 9 10 11 12 13 14
#include <stdint.h> #include <math.h> int __fpclassifyf(float __x) { union { float __f; __uint32_t __i; } __y = { __x }; int __ee = __y.__i>>23 & 0xff; if (!__ee) return __y.__i<<1 ? FP_SUBNORMAL : FP_ZERO; if (__ee==0xff) return __y.__i<<9 ? FP_NAN : FP_INFINITE; return FP_NORMAL; }