| NEXTAFTER(3) | Library Functions Manual | NEXTAFTER(3) | 
NAME
 nextafter, nextafterf, nextafterl, nexttoward — next representable floating-point number
LIBRARY
 Math Library (libm, -lm)
SYNOPSIS
 #include <math.h>
double
nextafter(double x, double y);
float
nextafterf(float x, float y);
long double
nextafterl(long double x, long double y);
double
nexttoward(double x, long double y);
 
DESCRIPTION
 The 
nextafter(), 
nextafterf(), and 
nextafterl() functions return the next machine representable number from 
x in direction of 
y. In other words, if 
y is less than 
x, the functions 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 and 
x.
The nexttoward() function is equivalent to the nextafter() family of functions with two exceptions:
- 
The second parameter has a type long double.
- 
The return value is y converted to the type of the function, provided that x equals y.
 
RETURN VALUES
 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 function value (if representable) is returned.
STANDARDS
 The described functions conform to ISO/IEC 9899:1999 (“ISO C99”).