diff options
author | nsz <nsz@port70.net> | 2012-03-19 23:27:45 +0100 |
---|---|---|
committer | nsz <nsz@port70.net> | 2012-03-19 23:27:45 +0100 |
commit | 75483499dad38b97f5dabb710635e6a8bbbb1c84 (patch) | |
tree | 521da945aa4281d4c26ca22ead8ee2b30355ef0b /src/math/modfl.c | |
parent | 2786c7d21611b9fa3b2fe356542cf213e7dd0ba4 (diff) | |
download | musl-75483499dad38b97f5dabb710635e6a8bbbb1c84.tar.gz musl-75483499dad38b97f5dabb710635e6a8bbbb1c84.tar.bz2 musl-75483499dad38b97f5dabb710635e6a8bbbb1c84.tar.xz musl-75483499dad38b97f5dabb710635e6a8bbbb1c84.zip |
new modff.c code, fix nan handling in modfl
Diffstat (limited to 'src/math/modfl.c')
-rw-r--r-- | src/math/modfl.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/math/modfl.c b/src/math/modfl.c index 2ca67b11..6520a1c2 100644 --- a/src/math/modfl.c +++ b/src/math/modfl.c @@ -54,7 +54,7 @@ long double modfl(long double x, long double *iptr) /* The number of fraction bits in manh, not counting the integer bit */ #define HIBITS (LDBL_MANT_DIG - LDBL_MANL_SIZE) -static const long double zero[] = { 0.0L, -0.0L }; +static const long double zero[] = { 0.0, -0.0 }; long double modfl(long double x, long double *iptr) { @@ -81,7 +81,7 @@ long double modfl(long double x, long double *iptr) return x - ux.e; } else if (e >= LDBL_MANT_DIG - 1) { /* x has no fraction part. */ *iptr = x; - if (x != x) /* Handle NaNs. */ + if (e == LDBL_MAX_EXP && (ux.bits.manh|ux.bits.manl)) /* nan */ return x; return zero[ux.bits.sign]; } else { /* Fraction part is in manl. */ |