NEXTAFTER(3)

NAME
nextafter, nextafterf, nextafterl, nexttoward, nexttowardf, nexttowardl - floating point number manipulation

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);

Link with -lm.

Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

All functions shown above: _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 || _ISOC99_SOURCE; or cc -std=c99

DESCRIPTION
The nextafter() functions return the next representable neighbor of x in the direction towards y. The size of the step between x and the result depends on the type of the result. If x = y the function simply returns y. If either value is NaN, then NaN is returned. Otherwise a value corresponding to the value of the least significant bit in the mantissa is added or subtracted, depending on the direction.

The nexttoward() functions do the same as the nextafter() functions, except that they have a long double second argument.

These functions will signal overflow or underflow if the result goes outside of the range of normalized numbers.

CONFORMING TO
C99. This function is defined in IEC 559 (and the appendix with recommended functions in IEEE 754/IEEE 854).

SEE ALSO
nearbyint(3)