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;