5 union {float f
; uint32_t i
;} u
= {.f
= x
};
16 if (w
< 0x3f800000 - (12<<23)) {
17 FORCE_EVAL(x
+ 0x1p
120f
);
21 return 1 + t
*t
/(2*(1+t
));
24 /* |x| < log(FLT_MAX) */
27 return 0.5f
*(t
+ 1/t
);
30 /* |x| > log(FLT_MAX) or nan */
31 t
= __expo2f(x
, 1.0f
);