39 #ifdef POK_NEEDS_LIBMATH
42 #include "math_private.h"
44 static const double huge = 1.0e300;
51 EXTRACT_WORDS(i0,i1,x);
52 jj0 = ((i0>>20)&0x7ff)-0x3ff;
56 if(i0<0) {i0=0x80000000;i1=0;}
57 else if((i0|i1)!=0) { i0=0x3ff00000;i1=0;}
60 i = (0x000fffff)>>jj0;
61 if(((i0&i)|i1)==0)
return x;
63 if(i0>0) i0 += (0x00100000)>>jj0;
68 if(jj0==0x400)
return x+x;
71 i = ((uint32_t)(0xffffffff))>>(jj0-20);
72 if((i1&i)==0)
return x;
77 j = i1 + (1<<(52-jj0));
78 if(j<(uint32_t)i1) i0+=1;
85 INSERT_WORDS(x,i0,i1);