NEXTAFTER(3)

NAME
nextafter, nextafterf, nextafterl, nexttoward - next representable floating-point number

LIBRARY
libm

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:

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 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 , a 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.

SEE ALSO
ieee(3), math(3)

STANDARDS
The described functions conform to isoC-99.

BUGS
Currently the float and long double variants of nexttoward() are not supported in NetBSD.