NAME
nextafter
,
nextafterf
, nextafterl
,
nexttoward
, nexttowardf
,
nexttowardl
—
next representable floating-point
number
LIBRARY
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);
float
nexttowardf
(float
x, long double
y);
long double
nexttowardl
(long
double x, long double
y);
DESCRIPTION
Thenextafter
(),
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.
nexttowardl
()
is equivalent to
nextafterl
().
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
STANDARDS
The described functions conform to ISO/IEC 9899:1999 (“ISO C99”).