projects
/
musl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
correct locking in stdio functions that tried to be lock-free
[musl]
/
src
/
math
/
expl.c
diff --git
a/src/math/expl.c
b/src/math/expl.c
index
898cf1a
..
b289ffe
100644
(file)
--- a/
src/math/expl.c
+++ b/
src/math/expl.c
@@
-74,12
+74,12
@@
long double expl(long double x)
}
#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
}
#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
-static long double P[3] = {
+static
const
long double P[3] = {
1.2617719307481059087798E-4L,
3.0299440770744196129956E-2L,
9.9999999999999999991025E-1L,
};
1.2617719307481059087798E-4L,
3.0299440770744196129956E-2L,
9.9999999999999999991025E-1L,
};
-static long double Q[4] = {
+static
const
long double Q[4] = {
3.0019850513866445504159E-6L,
2.5244834034968410419224E-3L,
2.2726554820815502876593E-1L,
3.0019850513866445504159E-6L,
2.5244834034968410419224E-3L,
2.2726554820815502876593E-1L,
@@
-102,13
+102,13
@@
long double expl(long double x)
if (x > MAXLOGL)
return INFINITY;
if (x < MINLOGL)
if (x > MAXLOGL)
return INFINITY;
if (x < MINLOGL)
- return 0.0
L
;
+ return 0.0;
/* Express e**x = e**g 2**n
* = e**g e**(n loge(2))
* = e**(g + n loge(2))
*/
/* Express e**x = e**g 2**n
* = e**g e**(n loge(2))
* = e**(g + n loge(2))
*/
- px = floorl(LOG2EL * x + 0.5
L
); /* floor() truncates toward -infinity. */
+ px = floorl(LOG2EL * x + 0.5); /* floor() truncates toward -infinity. */
n = px;
x -= px * C1;
x -= px * C2;
n = px;
x -= px * C1;
x -= px * C2;
@@
-120,8
+120,8
@@
long double expl(long double x)
xx = x * x;
px = x * __polevll(xx, P, 2);
x = px/(__polevll(xx, Q, 3) - px);
xx = x * x;
px = x * __polevll(xx, P, 2);
x = px/(__polevll(xx, Q, 3) - px);
- x = 1.0
L + ldexpl(x, 1)
;
- x =
ldexp
l(x, n);
+ x = 1.0
+ 2.0 * x
;
+ x =
scalbn
l(x, n);
return x;
}
#endif
return x;
}
#endif