summaryrefslogtreecommitdiffstats
path: root/lib/msun
diff options
context:
space:
mode:
Diffstat (limited to 'lib/msun')
-rw-r--r--lib/msun/src/s_cbrt.c13
-rw-r--r--lib/msun/src/s_cbrtf.c13
2 files changed, 14 insertions, 12 deletions
diff --git a/lib/msun/src/s_cbrt.c b/lib/msun/src/s_cbrt.c
index 4b140c7..853337b 100644
--- a/lib/msun/src/s_cbrt.c
+++ b/lib/msun/src/s_cbrt.c
@@ -63,12 +63,13 @@ cbrt(double x)
* subtraction virtually to keep e >= 0 so that ordinary integer
* division rounds towards minus infinity; this is also efficient.
*/
- if(hx<0x00100000) /* subnormal number */
- {SET_HIGH_WORD(t,0x43500000); /* set t= 2**54 */
- t*=x; GET_HIGH_WORD(high,t); SET_HIGH_WORD(t,high/3+B2);
- }
- else
- SET_HIGH_WORD(t,hx/3+B1);
+ if(hx<0x00100000) { /* subnormal number */
+ SET_HIGH_WORD(t,0x43500000); /* set t= 2**54 */
+ t*=x;
+ GET_HIGH_WORD(high,t);
+ SET_HIGH_WORD(t,high/3+B2);
+ } else
+ SET_HIGH_WORD(t,hx/3+B1);
/* new cbrt to 23 bits; may be implemented in single precision */
r=t*t/x;
diff --git a/lib/msun/src/s_cbrtf.c b/lib/msun/src/s_cbrtf.c
index 6de11e5..3af0e40 100644
--- a/lib/msun/src/s_cbrtf.c
+++ b/lib/msun/src/s_cbrtf.c
@@ -52,12 +52,13 @@ cbrtf(float x)
SET_FLOAT_WORD(x,hx); /* x <- |x| */
/* rough cbrt to 5 bits */
- if(hx<0x00800000) /* subnormal number */
- {SET_FLOAT_WORD(t,0x4b800000); /* set t= 2**24 */
- t*=x; GET_FLOAT_WORD(high,t); SET_FLOAT_WORD(t,high/3+B2);
- }
- else
- SET_FLOAT_WORD(t,hx/3+B1);
+ if(hx<0x00800000) { /* subnormal number */
+ SET_FLOAT_WORD(t,0x4b800000); /* set t= 2**24 */
+ t*=x;
+ GET_FLOAT_WORD(high,t);
+ SET_FLOAT_WORD(t,high/3+B2);
+ } else
+ SET_FLOAT_WORD(t,hx/3+B1);
/* new cbrt to 23 bits */
r=t*t/x;
OpenPOWER on IntegriCloud