Browse Source

add significand[fl] math functions

Rich Felker 12 years ago
parent
commit
2242bf616b
4 changed files with 25 additions and 0 deletions
  1. 4 0
      include/math.h
  2. 7 0
      src/math/significand.c
  3. 7 0
      src/math/significandf.c
  4. 7 0
      src/math/significandl.c

+ 4 - 0
include/math.h

@@ -400,6 +400,10 @@ long double exp10l(long double);
 double      pow10(double);
 float       pow10f(float);
 long double pow10l(long double);
+
+double      significand(double);
+float       significandf(float);
+long double significandl(long double);
 #endif
 
 #ifdef __cplusplus

+ 7 - 0
src/math/significand.c

@@ -0,0 +1,7 @@
+#define _GNU_SOURCE
+#include <math.h>
+
+double significand(double x)
+{
+	return scalbn(x, -ilogb(x));
+}

+ 7 - 0
src/math/significandf.c

@@ -0,0 +1,7 @@
+#define _GNU_SOURCE
+#include <math.h>
+
+float significandf(float x)
+{
+	return scalbnf(x, -ilogbf(x));
+}

+ 7 - 0
src/math/significandl.c

@@ -0,0 +1,7 @@
+#define _GNU_SOURCE
+#include <math.h>
+
+long double significandl(long double x)
+{
+	return scalbnl(x, -ilogbl(x));
+}