mirror of
https://git.planet-casio.com/Lephenixnoir/OpenLibm.git
synced 2024-12-29 13:03:42 +01:00
Suppress a compiler warning generated by Clang.
Clang doesn't like it if you bitshift negative numbers, as the behaviour of it is undefined. Solve this by first shifting, followed by negating. This was fixed similarly in FreeBSD.
This commit is contained in:
parent
78c0afb2a7
commit
62c7361aab
1 changed files with 2 additions and 2 deletions
|
@ -375,14 +375,14 @@ exp2(double x)
|
||||||
/* Compute r = exp2(y) = exp2t[i0] * p(z - eps[i]). */
|
/* Compute r = exp2(y) = exp2t[i0] * p(z - eps[i]). */
|
||||||
t = tbl[i0]; /* exp2t[i0] */
|
t = tbl[i0]; /* exp2t[i0] */
|
||||||
z -= tbl[i0 + 1]; /* eps[i0] */
|
z -= tbl[i0 + 1]; /* eps[i0] */
|
||||||
if (k >= -1021 << 20)
|
if (k >= -(1021 << 20))
|
||||||
INSERT_WORDS(twopk, 0x3ff00000 + k, 0);
|
INSERT_WORDS(twopk, 0x3ff00000 + k, 0);
|
||||||
else
|
else
|
||||||
INSERT_WORDS(twopkp1000, 0x3ff00000 + k + (1000 << 20), 0);
|
INSERT_WORDS(twopkp1000, 0x3ff00000 + k + (1000 << 20), 0);
|
||||||
r = t + t * z * (P1 + z * (P2 + z * (P3 + z * (P4 + z * P5))));
|
r = t + t * z * (P1 + z * (P2 + z * (P3 + z * (P4 + z * P5))));
|
||||||
|
|
||||||
/* Scale by 2**(k>>20). */
|
/* Scale by 2**(k>>20). */
|
||||||
if(k >= -1021 << 20) {
|
if(k >= -(1021 << 20)) {
|
||||||
if (k == 1024 << 20)
|
if (k == 1024 << 20)
|
||||||
return (r * 2.0 * 0x1p1023);
|
return (r * 2.0 * 0x1p1023);
|
||||||
return (r * twopk);
|
return (r * twopk);
|
||||||
|
|
Loading…
Reference in a new issue