NEXTAFTER(3) BSD Library Functions Manual NEXTAFTER(3)
nextafter, nextafterf, nextafterl, nexttoward -- next representable floating-point number
Math Library (libm, -lm)
nextafter(double x, double y);
nextafterf(float x, float y);
nextafterl(long double x, long double y);
nexttoward(double x, long double y);
The nextafter(), nextafterf(), and nextafterl() functions return the next machine repre-
sentable number from x in direction of y. In other words, if y is less than x, the func-
tions return the largest representable floating-point number less than x. When x equals y,
the value of y is returned. The three functions differ only in the type of the return value
The nexttoward() function is equivalent to the nextafter() family of functions with two
1. The second parameter has a type long double.
2. The return value is y converted to the type of the function, provided that x
Upon successful completion, the described functions return the next representable floating-
point value as described above. If x is finite but an overflow would occur, a range error
follows and the functions return +-HUGE_VAL, +-HUGE_VALF, or +-HUGE_VALL with the same sign
as x. When either x or y is NaN, a NaN is returned. When x is not y but the function value
is subnormal, zero, or underflows, a range error occurs, and either 0.0 or the correct func-
tion value (if representable) is returned.
The described functions conform to ISO/IEC 9899:1999 (``ISO C99'').
BSD September 18, 2011 BSD