e_asin.c (e142bd0ec91facabc2d14f1f7e1ff8fd995caf73) e_asin.c (e044d80d08bf0eca40f938c05dd34a951f4a0814)
1
2/* @(#)e_asin.c 1.3 95/01/18 */
3/*
4 * ====================================================
5 * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
6 *
7 * Developed at SunSoft, a Sun Microsystems, Inc. business.
8 * Permission to use, copy, modify, and distribute this

--- 68 unchanged lines hidden (view full) ---

77 if(ix>= 0x3ff00000) { /* |x|>= 1 */
78 u_int32_t lx;
79 GET_LOW_WORD(lx,x);
80 if(((ix-0x3ff00000)|lx)==0)
81 /* asin(1)=+-pi/2 with inexact */
82 return x*pio2_hi+x*pio2_lo;
83 return (x-x)/(x-x); /* asin(|x|>1) is NaN */
84 } else if (ix<0x3fe00000) { /* |x|<0.5 */
1
2/* @(#)e_asin.c 1.3 95/01/18 */
3/*
4 * ====================================================
5 * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
6 *
7 * Developed at SunSoft, a Sun Microsystems, Inc. business.
8 * Permission to use, copy, modify, and distribute this

--- 68 unchanged lines hidden (view full) ---

77 if(ix>= 0x3ff00000) { /* |x|>= 1 */
78 u_int32_t lx;
79 GET_LOW_WORD(lx,x);
80 if(((ix-0x3ff00000)|lx)==0)
81 /* asin(1)=+-pi/2 with inexact */
82 return x*pio2_hi+x*pio2_lo;
83 return (x-x)/(x-x); /* asin(|x|>1) is NaN */
84 } else if (ix<0x3fe00000) { /* |x|<0.5 */
85 if(ix<0x3e400000) { /* if |x| < 2**-27 */
85 if(ix<0x3e500000) { /* if |x| < 2**-26 */
86 if(huge+x>one) return x;/* return x with inexact if x!=0*/
87 }
88 t = x*x;
89 p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5)))));
90 q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4)));
91 w = p/q;
92 return x+x*w;
93 }

--- 24 unchanged lines hidden ---
86 if(huge+x>one) return x;/* return x with inexact if x!=0*/
87 }
88 t = x*x;
89 p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5)))));
90 q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4)));
91 w = p/q;
92 return x+x*w;
93 }

--- 24 unchanged lines hidden ---