- float y,hi,lo,c,t,e,hxs,hfx,r1,twopk;
- int32_t k,xsb;
- uint32_t hx;
-
- GET_FLOAT_WORD(hx, x);
- xsb = hx&0x80000000; /* sign bit of x */
- hx &= 0x7fffffff; /* high word of |x| */
+ float_t y,hi,lo,c,t,e,hxs,hfx,r1,twopk;
+ union {float f; uint32_t i;} u = {x};
+ uint32_t hx = u.i & 0x7fffffff;
+ int k, sign = u.i >> 31;