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