28 two54 = 1.80143985094819840000e+16,
29 twom54 = 5.55111512312578270212e-17,
34 double scalbn (
double x,
int n)
43 k = (hx&0x7ff00000)>>20;
45 if ((lx|(hx&0x7fffffff))==0)
return x;
48 k = ((hx&0x7ff00000)>>20) - 54;
49 if (n< -50000)
return tiny*x;
51 if (k==0x7ff)
return x+x;
53 if (k > 0x7fe)
return huge*
copysign(huge,x);
55 {
__HI(x) = (hx&0x800fffff)|(k<<20);
return x;}
61 __HI(x) = (hx&0x800fffff)|(k<<20);