SET_HIGH_WORD
{SET_HIGH_WORD(x,(hx&0x800fffff)|(k<<20)); return x;}
SET_HIGH_WORD(x,(hx&0x800fffff)|(k<<20));
SET_HIGH_WORD(x,(hx&0x7fffffff)|(hy&0x80000000));
SET_HIGH_WORD(z,zh ^ 0x80000000);
SET_HIGH_WORD(x,ix);
SET_HIGH_WORD(y,hy+(k<<20)); /* add k to y's exponent */
SET_HIGH_WORD(y,hy+((k+1000)<<20)); /* add k to y's exponent */
SET_HIGH_WORD(t1,ha);
SET_HIGH_WORD(yy1,hb);
SET_HIGH_WORD(t1,ha+0x00100000);
SET_HIGH_WORD(t1,high+(k<<20));
SET_HIGH_WORD(a,ha); /* a <- |a| */
SET_HIGH_WORD(b,hb); /* b <- |b| */
SET_HIGH_WORD(a,ha);
SET_HIGH_WORD(b,hb);
SET_HIGH_WORD(t1,0x7fd00000); /* t1=2^1022 */
SET_HIGH_WORD(a,ha);
SET_HIGH_WORD(b,hb);
SET_HIGH_WORD(x,hx|(i^0x3ff00000)); /* normalize x or x/2 */
SET_HIGH_WORD(x,hx);
SET_HIGH_WORD(x,hx|(i^0x3ff00000)); /* normalize x or x/2 */
SET_HIGH_WORD(ax,ix);
SET_HIGH_WORD(t_h,((ix>>1)|0x20000000)+0x00080000+(k<<18));
SET_HIGH_WORD(t,n&~(0x000fffff>>k));
else SET_HIGH_WORD(z,j);
SET_HIGH_WORD(z, ix - ((int32_t)(e0<<20)));
SET_HIGH_WORD(x,hx^sx);
SET_HIGH_WORD(x,hx); /* x <- |x| */
{SET_HIGH_WORD(t,0x43500000); /* set t= 2**54 */
t*=x; GET_HIGH_WORD(high,t); SET_HIGH_WORD(t,high/3+B2);
SET_HIGH_WORD(t,hx/3+B1);
SET_HIGH_WORD(t,high|sign);
SET_HIGH_WORD(x,(hx&0x7fffffff)|(hy&0x80000000));
SET_HIGH_WORD(y,high+(k<<20)); /* add k to y's exponent */
SET_HIGH_WORD(t,0x3ff00000 - (0x200000>>k)); /* t=1-2^-k */
SET_HIGH_WORD(y,high+(k<<20)); /* add k to y's exponent */
SET_HIGH_WORD(t,((0x3ff-k)<<20)); /* 2^-k */
SET_HIGH_WORD(y,high+(k<<20)); /* add k to y's exponent */
SET_HIGH_WORD(u,hu|0x3ff00000); /* normalize u */
SET_HIGH_WORD(u,hu|0x3fe00000); /* normalize u/2 */
SET_HIGH_WORD(x,hx^sx);
SET_HIGH_WORD(x,i0);
SET_HIGH_WORD(t,(i0&0x7fffffff)|(sx<<31));