NAME
nextafter,
nextafterf,
nextafterl,
nexttoward,
nexttowardf —
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);
float
nexttowardf(
float
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() and
nexttowardf() functions
are 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.
SEE ALSO
math(3)
STANDARDS
The described functions conform to
ISO/IEC 9899:1999
(“ISO C99”).