14 lines
296 B
C
14 lines
296 B
C
#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;
|
|
}
|