5 union {float f; uint32_t i;} u = {.f = x};
16 if (w < 0x3f800000 - (12<<23)) {
17 FORCE_EVAL(x + 0x1p120f);
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);