Print this page
*** 103,113 ****
/* INDENT ON */
double
asin(double x) {
double t, w, p, q, c, r, s;
! int hx, ix;
hx = ((int *) &x)[HIWORD];
ix = hx & 0x7fffffff;
if (ix >= 0x3ff00000) { /* |x| >= 1 */
if (((ix - 0x3ff00000) | ((int *) &x)[LOWORD]) == 0)
--- 103,113 ----
/* INDENT ON */
double
asin(double x) {
double t, w, p, q, c, r, s;
! int hx, ix, i;
hx = ((int *) &x)[HIWORD];
ix = hx & 0x7fffffff;
if (ix >= 0x3ff00000) { /* |x| >= 1 */
if (((ix - 0x3ff00000) | ((int *) &x)[LOWORD]) == 0)
*** 123,137 ****
else
return _SVID_libm_err(x, x, 2);
}
else if (ix < 0x3fe00000) { /* |x| < 0.5 */
if (ix < 0x3e400000) { /* if |x| < 2**-27 */
! if (huge + x > one)
return x; /* return x with inexact if
* x != 0 */
}
- else
t = x * x;
p = t * (pS0 + t * (pS1 + t * (pS2 + t * (pS3 +
t * (pS4 + t * pS5)))));
q = one + t * (qS1 + t * (qS2 + t * (qS3 + t * qS4)));
w = p / q;
--- 123,136 ----
else
return _SVID_libm_err(x, x, 2);
}
else if (ix < 0x3fe00000) { /* |x| < 0.5 */
if (ix < 0x3e400000) { /* if |x| < 2**-27 */
! if ((i = (int) x) == 0)
return x; /* return x with inexact if
* x != 0 */
}
t = x * x;
p = t * (pS0 + t * (pS1 + t * (pS2 + t * (pS3 +
t * (pS4 + t * pS5)))));
q = one + t * (qS1 + t * (qS2 + t * (qS3 + t * qS4)));
w = p / q;