29 #ifdef POK_NEEDS_LIBMATH
42 #include "math_private.h"
46 4.50359962737049600000e+15,
47 -4.50359962737049600000e+15,
56 EXTRACT_WORDS(i0,i1,x);
58 jj0 = ((i0>>20)&0x7ff)-0x3ff;
61 if(((i0&0x7fffffff)|i1)==0)
return x;
64 i0 |= ((i1|-i1)>>12)&0x80000;
69 SET_HIGH_WORD(t,(i0&0x7fffffff)|(sx<<31));
72 i = (0x000fffff)>>jj0;
73 if(((i0&i)|i1)==0)
return x;
76 if(jj0==19) i1 = 0x40000000;
else
77 i0 = (i0&(~i))|((0x20000)>>jj0);
81 if(jj0==0x400)
return x+x;
84 i = ((uint32_t)(0xffffffff))>>(jj0-20);
85 if((i1&i)==0)
return x;
87 if((i1&i)!=0) i1 = (i1&(~i))|((0x40000000)>>(jj0-20));
89 INSERT_WORDS(x,i0,i1);