Index: fusl/src/math/__fpclassifyf.c |
diff --git a/fusl/src/math/__fpclassifyf.c b/fusl/src/math/__fpclassifyf.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..fd00eb1bcdc62e08c2ed1c8bdb8ac09dce3d0b52 |
--- /dev/null |
+++ b/fusl/src/math/__fpclassifyf.c |
@@ -0,0 +1,11 @@ |
+#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; |
+} |