projects
/
musl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix failure to flush stderr when fflush(0) is called
[musl]
/
src
/
math
/
modf.c
diff --git
a/src/math/modf.c
b/src/math/modf.c
index
de45069
..
1c8a1db
100644
(file)
--- a/
src/math/modf.c
+++ b/
src/math/modf.c
@@
-1,37
+1,34
@@
-#include <math.h>
-#include <stdint.h>
+#include "libm.h"
double modf(double x, double *iptr)
{
double modf(double x, double *iptr)
{
- union {double
x; uint64_t n
;} u = {x};
+ union {double
f; uint64_t i
;} u = {x};
uint64_t mask;
uint64_t mask;
- int e;
-
- e = (int)(u.n>>52 & 0x7ff) - 0x3ff;
+ int e = (int)(u.i>>52 & 0x7ff) - 0x3ff;
/* no fractional part */
if (e >= 52) {
*iptr = x;
/* no fractional part */
if (e >= 52) {
*iptr = x;
- if (e == 0x400 && u.
n
<<12 != 0) /* nan */
+ if (e == 0x400 && u.
i
<<12 != 0) /* nan */
return x;
return x;
- u.
n &= (uint64_t)1
<<63;
- return u.
x
;
+ u.
i &= 1ULL
<<63;
+ return u.
f
;
}
/* no integral part*/
if (e < 0) {
}
/* no integral part*/
if (e < 0) {
- u.
n &= (uint64_t)1
<<63;
- *iptr = u.
x
;
+ u.
i &= 1ULL
<<63;
+ *iptr = u.
f
;
return x;
}
return x;
}
- mask =
(uint64_t)-1>>12 >>
e;
- if ((u.
n
& mask) == 0) {
+ mask =
-1ULL>>12>>
e;
+ if ((u.
i
& mask) == 0) {
*iptr = x;
*iptr = x;
- u.
n &= (uint64_t)1
<<63;
- return u.
x
;
+ u.
i &= 1ULL
<<63;
+ return u.
f
;
}
}
- u.
n
&= ~mask;
- *iptr = u.
x
;
- return x -
*iptr
;
+ u.
i
&= ~mask;
+ *iptr = u.
f
;
+ return x -
u.f
;
}
}