Index: fusl/src/math/__fpclassify.c |
diff --git a/fusl/src/math/__fpclassify.c b/fusl/src/math/__fpclassify.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f7c0e2dfac828616b43f76664c6821de1b348f8d |
--- /dev/null |
+++ b/fusl/src/math/__fpclassify.c |
@@ -0,0 +1,11 @@ |
+#include <math.h> |
+#include <stdint.h> |
+ |
+int __fpclassify(double x) |
+{ |
+ union {double f; uint64_t i;} u = {x}; |
+ int e = u.i>>52 & 0x7ff; |
+ if (!e) return u.i<<1 ? FP_SUBNORMAL : FP_ZERO; |
+ if (e==0x7ff) return u.i<<12 ? FP_NAN : FP_INFINITE; |
+ return FP_NORMAL; |
+} |