aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2019-09-28 08:57:29 +0000
committerDimitry Andric <dim@FreeBSD.org>2019-09-28 08:57:29 +0000
commitbc4f7cabbe20fbc3ca6bff0daaca1dcba4bc72ac (patch)
tree8bf6cc290e95f91d4d1477879cbd7fa7e6aaeff1
parent923263dddd270bd3efb79b83c0bea924593747fe (diff)
Notes
-rw-r--r--lib/msun/src/e_exp.c4
-rw-r--r--lib/msun/src/e_expf.c4
-rw-r--r--lib/msun/src/s_expm1.c2
-rw-r--r--lib/msun/src/s_expm1f.c2
4 files changed, 6 insertions, 6 deletions
diff --git a/lib/msun/src/e_exp.c b/lib/msun/src/e_exp.c
index 5b9a10c1a3d6..5403e3756e0c 100644
--- a/lib/msun/src/e_exp.c
+++ b/lib/msun/src/e_exp.c
@@ -143,9 +143,9 @@ __ieee754_exp(double x) /* default IEEE double exp */
/* x is now in primary range */
t = x*x;
if(k >= -1021)
- INSERT_WORDS(twopk,0x3ff00000+(k<<20), 0);
+ INSERT_WORDS(twopk,((u_int32_t)(0x3ff+k))<<20, 0);
else
- INSERT_WORDS(twopk,0x3ff00000+((k+1000)<<20), 0);
+ INSERT_WORDS(twopk,((u_int32_t)(0x3ff+(k+1000)))<<20, 0);
c = x - t*(P1+t*(P2+t*(P3+t*(P4+t*P5))));
if(k==0) return one-((x*c)/(c-2.0)-x);
else y = one-((lo-(x*c)/(2.0-c))-hi);
diff --git a/lib/msun/src/e_expf.c b/lib/msun/src/e_expf.c
index 5f4649244f77..f554fd6cdee7 100644
--- a/lib/msun/src/e_expf.c
+++ b/lib/msun/src/e_expf.c
@@ -80,9 +80,9 @@ __ieee754_expf(float x) /* default IEEE double exp */
/* x is now in primary range */
t = x*x;
if(k >= -125)
- SET_FLOAT_WORD(twopk,0x3f800000+(k<<23));
+ SET_FLOAT_WORD(twopk,((u_int32_t)(0x7f+k))<<23);
else
- SET_FLOAT_WORD(twopk,0x3f800000+((k+100)<<23));
+ SET_FLOAT_WORD(twopk,((u_int32_t)(0x7f+(k+100)))<<23);
c = x - t*(P1+t*P2);
if(k==0) return one-((x*c)/(c-(float)2.0)-x);
else y = one-((lo-(x*c)/((float)2.0-c))-hi);
diff --git a/lib/msun/src/s_expm1.c b/lib/msun/src/s_expm1.c
index 3de7bfbc837a..2a030b29c7f4 100644
--- a/lib/msun/src/s_expm1.c
+++ b/lib/msun/src/s_expm1.c
@@ -186,7 +186,7 @@ expm1(double x)
e = hxs*((r1-t)/(6.0 - x*t));
if(k==0) return x - (x*e-hxs); /* c is 0 */
else {
- INSERT_WORDS(twopk,0x3ff00000+(k<<20),0); /* 2^k */
+ INSERT_WORDS(twopk,((u_int32_t)(0x3ff+k))<<20,0); /* 2^k */
e = (x*(e-c)-c);
e -= hxs;
if(k== -1) return 0.5*(x-e)-0.5;
diff --git a/lib/msun/src/s_expm1f.c b/lib/msun/src/s_expm1f.c
index 483472ce69b8..da8f49ddec08 100644
--- a/lib/msun/src/s_expm1f.c
+++ b/lib/msun/src/s_expm1f.c
@@ -92,7 +92,7 @@ expm1f(float x)
e = hxs*((r1-t)/((float)6.0 - x*t));
if(k==0) return x - (x*e-hxs); /* c is 0 */
else {
- SET_FLOAT_WORD(twopk,0x3f800000+(k<<23)); /* 2^k */
+ SET_FLOAT_WORD(twopk,((u_int32_t)(0x7f+k))<<23); /* 2^k */
e = (x*(e-c)-c);
e -= hxs;
if(k== -1) return (float)0.5*(x-e)-(float)0.5;