Hi Adhemerval, float sgn = copysignf (2.0f, x); float r = math_narrow_eval (sgn * 0x1.fffffep127f); + __set_errno (ERANGE); return r; Why not replace all that with return __math_uflowf (x < 0)? Cheers, Wilco