NEXTAFTER(3) BSD Programmer's Manual NEXTAFTER(3)

**nextafter**, **nextafterf** - next representable floating-point number

libm

**#include <math.h>**
*double*
**nextafter**(*double x*, *double y*);
*float*
**nextafterf**(*float x*, *float y*);

The **nextafter**() and **nextafterf**() 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*.

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 ei-
ther *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.

math(3)

The described functions conform to ISO/IEC 9899:1999 ("ISO C99").
MirBSD #10-current February 9, 2014 1