Lines Matching refs:hx
32 int32_t n,hx,hy,hz,ix,iy,sx,i;
35 GET_FLOAT_WORD(hx,x);
37 sxy = (hx ^ hy) & 0x80000000;
38 sx = hx&0x80000000; /* sign of x */
39 hx ^=sx; /* |x| */
43 if(hy==0||hx>=0x7f800000||hy>0x7f800000) /* y=0,NaN;or x not finite */
45 if(hx<hy) {
48 } else if(hx==hy) {
54 if(hx<0x00800000) { /* subnormal x */
55 for (ix = -126,i=(hx<<8); i>0; i<<=1) ix -=1;
56 } else ix = (hx>>23)-127;
63 /* set up {hx,lx}, {hy,ly} and align y to x */
65 hx = 0x00800000|(0x007fffff&hx);
68 hx <<= n;
81 hz=hx-hy;
82 if(hz<0) hx = hx << 1;
83 else {hx = hz << 1; q++;}
86 hz=hx-hy;
87 if(hz>=0) {hx=hz;q++;}
90 if(hx==0) { /* return sign(x)*0 */
95 while(hx<0x00800000) { /* normalize x */
96 hx <<= 1;
100 hx = ((hx-0x00800000)|((iy+127)<<23));
103 hx >>= n;
106 SET_FLOAT_WORD(x,hx);
117 GET_FLOAT_WORD(hx,x);
118 SET_FLOAT_WORD(x,hx^sx);