59 #ifdef POK_NEEDS_LIBMATH
63 #include "math_private.h"
66 one = 1.00000000000000000000e+00,
68 pio2_hi = 1.57079632679489655800e+00,
69 pio2_lo = 6.12323399573676603587e-17,
70 pio4_hi = 7.85398163397448278999e-01,
72 pS0 = 1.66666666666666657415e-01,
73 pS1 = -3.25565818622400915405e-01,
74 pS2 = 2.01212532134862925881e-01,
75 pS3 = -4.00555345006794114027e-02,
76 pS4 = 7.91534994289814532176e-04,
77 pS5 = 3.47933107596021167570e-05,
78 qS1 = -2.40339491173441421878e+00,
79 qS2 = 2.02094576023350569471e+00,
80 qS3 = -6.88283971605453293030e-01,
81 qS4 = 7.70381505559019352791e-02;
84 __ieee754_asin(
double x)
95 if(((ix-0x3ff00000)|lx)==0)
97 return x*pio2_hi+x*pio2_lo;
99 }
else if (ix<0x3fe00000) {
101 if(huge+x>one)
return x;
104 p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5)))));
105 q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4)));
112 p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5)))));
113 q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4)));
114 s = __ieee754_sqrt(t);
117 t = pio2_hi-(2.0*(s+s*w)-pio2_lo);
123 p = 2.0*s*r-(pio2_lo-2.0*c);
127 if(hx>0)
return t;
else return -t;