projects
/
oweals
/
musl.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
math: use the rounding idiom consistently
[oweals/musl.git]
/
src
/
math
/
scalbnl.c
1
#include "libm.h"
2
3
#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
4
long double scalbnl(long double x, int n)
5
{
6
return scalbn(x, n);
7
}
8
#elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
9
long double scalbnl(long double x, int n)
10
{
11
union ldshape u;
12
13
if (n > 16383) {
14
x *= 0x1p16383L;
15
n -= 16383;
16
if (n > 16383) {
17
x *= 0x1p16383L;
18
n -= 16383;
19
if (n > 16383)
20
n = 16383;
21
}
22
} else if (n < -16382) {
23
x *= 0x1p-16382L;
24
n += 16382;
25
if (n < -16382) {
26
x *= 0x1p-16382L;
27
n += 16382;
28
if (n < -16382)
29
n = -16382;
30
}
31
}
32
u.f = 1.0;
33
u.i.se = 0x3fff + n;
34
return x * u.f;
35
}
36
#endif