63 #pragma warning ( disable : 4756 )
68 dp_h[] = { 0.0, 5.84962487220764160156e-01,},
69 dp_l[] = { 0.0, 1.35003920212974897128e-08,},
77 L1 = 5.99999999999994648725e-01,
78 L2 = 4.28571428578550184252e-01,
79 L3 = 3.33333329818377432918e-01,
80 L4 = 2.72728123808534006489e-01,
81 L5 = 2.30660745775561754067e-01,
82 L6 = 2.06975017800338417784e-01,
83 P1 = 1.66666666666666019037e-01,
84 P2 = -2.77777777770155933842e-03,
85 P3 = 6.61375632143793436117e-05,
86 P4 = -1.65339022054652515390e-06,
87 P5 = 4.13813679705723846039e-08,
88 lg2 = 6.93147180559945286227e-01,
89 lg2_h = 6.93147182464599609375e-01,
90 lg2_l = -1.90465429995776804525e-09,
91 ovt = 8.0085662595372944372e-0017,
92 cp = 9.61796693925975554329e-01,
93 cp_h = 9.61796700954437255859e-01,
94 cp_l = -7.02846165095275826516e-09,
95 ivln2 = 1.44269504088896338700e+00,
101 double z,ax,z_h,z_l,p_h,p_l;
109 if (hx==0x3ff00000 && lx==0) {
118 if((iy|ly)==0)
return one;
121 if(ix > 0x7ff00000 || ((ix==0x7ff00000)&&(lx!=0)) ||
122 iy > 0x7ff00000 || ((iy==0x7ff00000)&&(ly!=0)))
132 if(iy>=0x43400000) yisint = 2;
133 else if(iy>=0x3ff00000) {
137 if((
j<<(52-
k))==ly) yisint = 2-(
j&1);
140 if((
j<<(20-
k))==iy) yisint = 2-(
j&1);
147 if (iy==0x7ff00000) {
148 if (((ix-0x3ff00000)|lx)==0)
150 if (ix >= 0x3ff00000)
151 return (hy>=0) ?
y :
zero;
153 return (hy<0) ? -
y :
zero;
156 if(hy<0)
return one/
x;
else return x;
158 if(hy==0x40000000)
return x*
x;
168 if(ix==0x7ff00000||ix==0||ix==0x3ff00000){
172 if(((ix-0x3ff00000)|yisint)==0) {
196 w = (
t*
t)*(0.5-
t*(0.3333333333333333333333-
t*0.25));
203 double s2,s_h,s_l,t_h,t_l;
208 n += ((ix)>>20)-0x3ff;
213 else if(
j<0xBB67A)
k=1;
214 else {
k=0;
n+=1;ix -= 0x00100000;}
226 t_l = ax - (t_h-
bp[
k]);
227 s_l =
v*((u-s_h*t_h)-s_h*t_l);
235 t_l =
r-((t_h-3.0)-s2);
253 if(((((
u_int32_t)hx>>31)-1)|(yisint-1))==0)
264 if(((
j-0x40900000)|
i)!=0)
269 }
else if((
j&0x7fffffff)>=0x4090cc00 ) {
270 if(((
j-0xc090cc00)|
i)!=0)
283 n =
j+(0x00100000>>(
k+1));
284 k = ((
n&0x7fffffff)>>20)-0x3ff;
287 n = ((
n&0x000fffff)|0x00100000)>>(20-
k);
312 double pow(
double x,
double y)
315 if (_LIB_VERSION == _IEEE_|| isnan(
y))
319 return __kernel_standard(
x,
y, 42);
324 return __kernel_standard(
x,
y, 20);
325 if (isfinite(
y) &&
y < 0.0)
326 return __kernel_standard(
x,
y,23);
330 if (isfinite(
x) && isfinite(
y)) {
332 return __kernel_standard(
x,
y, 24);
333 return __kernel_standard(
x,
y, 21);
336 if (
z == 0.0 && isfinite(
x) && isfinite(
y))
337 return __kernel_standard(
x,
y, 22);