#include <math.h> | |
#include <stdint.h> | |
int __fpclassifyf(float x) { | |
union { | |
float f; | |
uint32_t i; | |
} u = {x}; | |
int e = u.i >> 23 & 0xff; | |
if (!e) | |
return u.i << 1 ? FP_SUBNORMAL : FP_ZERO; | |
if (e == 0xff) | |
return u.i << 9 ? FP_NAN : FP_INFINITE; | |
return FP_NORMAL; | |
} |