diff options
author | Rich Felker <dalias@aerifal.cx> | 2012-08-13 14:51:43 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2012-08-13 14:51:43 -0400 |
commit | 2242bf616b893e85886ed0a2348b96bf1cf7623e (patch) | |
tree | e6e88ad8040ab298898509aabe5a77fee0808d12 | |
parent | 0c42beb5f90fe5583c2cae5a31c2ef68847974e3 (diff) | |
download | musl-2242bf616b893e85886ed0a2348b96bf1cf7623e.zip musl-2242bf616b893e85886ed0a2348b96bf1cf7623e.tar.gz musl-2242bf616b893e85886ed0a2348b96bf1cf7623e.tar.bz2 |
add significand[fl] math functions
-rw-r--r-- | include/math.h | 4 | ||||
-rw-r--r-- | src/math/significand.c | 7 | ||||
-rw-r--r-- | src/math/significandf.c | 7 | ||||
-rw-r--r-- | src/math/significandl.c | 7 |
4 files changed, 25 insertions, 0 deletions
diff --git a/include/math.h b/include/math.h index 583dc3d..656f786 100644 --- a/include/math.h +++ b/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 diff --git a/src/math/significand.c b/src/math/significand.c new file mode 100644 index 0000000..40d9aa9 --- /dev/null +++ b/src/math/significand.c @@ -0,0 +1,7 @@ +#define _GNU_SOURCE +#include <math.h> + +double significand(double x) +{ + return scalbn(x, -ilogb(x)); +} diff --git a/src/math/significandf.c b/src/math/significandf.c new file mode 100644 index 0000000..8a697e1 --- /dev/null +++ b/src/math/significandf.c @@ -0,0 +1,7 @@ +#define _GNU_SOURCE +#include <math.h> + +float significandf(float x) +{ + return scalbnf(x, -ilogbf(x)); +} diff --git a/src/math/significandl.c b/src/math/significandl.c new file mode 100644 index 0000000..c1d68cd --- /dev/null +++ b/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)); +} |