projects
/
musl
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
make sem_wait and sem_timedwait interruptible by signals
[musl]
/
src
/
math
/
trunc.c
1
#include "libm.h"
2
3
double trunc(double x)
4
{
5
union {double f; uint64_t i;} u = {x};
6
int e = (int)(u.i >> 52 & 0x7ff) - 0x3ff + 12;
7
uint64_t m;
8
9
if (e >= 52 + 12)
10
return x;
11
if (e < 12)
12
e = 1;
13
m = -1ULL >> e;
14
if ((u.i & m) == 0)
15
return x;
16
FORCE_EVAL(x + 0x1p120f);
17
u.i &= ~m;
18
return u.f;
19
}