summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Libraries/LibM/math.cpp7
-rw-r--r--Libraries/LibM/math.h5
2 files changed, 12 insertions, 0 deletions
diff --git a/Libraries/LibM/math.cpp b/Libraries/LibM/math.cpp
index ffa6483ccb..fc1e1ec38a 100644
--- a/Libraries/LibM/math.cpp
+++ b/Libraries/LibM/math.cpp
@@ -536,4 +536,11 @@ double erfc(double x)
{
return 1 - erf(x);
}
+
+int isnormal(double x)
+{
+ if (x < 0)
+ x = -x;
+ return x >= DOUBLE_MIN && x <= DOUBLE_MAX;
+}
}
diff --git a/Libraries/LibM/math.h b/Libraries/LibM/math.h
index 36b971560f..2783f1af59 100644
--- a/Libraries/LibM/math.h
+++ b/Libraries/LibM/math.h
@@ -42,6 +42,9 @@ __BEGIN_DECLS
#define M_SQRT2 1.4142135623730951
#define M_SQRT1_2 0.7071067811865475
+#define DOUBLE_MAX ((double)0b0111111111101111111111111111111111111111111111111111111111111111)
+#define DOUBLE_MIN ((double)0b0000000000010000000000000000000000000000000000000000000000000000)
+
double acos(double);
float acosf(float);
double asin(double);
@@ -110,4 +113,6 @@ double hypot(double, double);
double erf(double);
double erfc(double);
+int isnormal(double);
+
__END_DECLS