IEEE_NEXT_AFTER(X, Y)
Type
An elemental IEEE function. Returns the next machine-representable neighbor of X in the direction towards Y.
Module
IEEE_ARITHMETIC
Syntax
Where X and Y are of type real.
Result type and attributes
Where the result is the same type and kind as X.
Rules
To ensure compliance with the Fortran 2003 standard, the IEEE_SUPPORT_DATATYPE(X) and IEEE_SUPPORT_DATATYPE(Y) must return with a value of true.
If X and Y are equal the function returns X without signaling an exception. If X and Y are not equal, the function returns the next machine-representable neighbor of X in the direction towards Y.
The neighbors of zero, of either sign, are both nonzero.
IEEE_OVERFLOW and IEEE_INEXACT are signaled when X is finite but IEEE_NEXT_AFTER(X, Y) is infinite.
IEEE_UNDERFLOW and IEEE_INEXACT are signaled when IEEE_NEXT_AFTER(X, Y) is denormalized or zero.
If X or Y is a quiet NaN, the result is one of the input NaN values.
Examples
USE, INTRINSIC :: IEEE_ARITHMETIC
REAL :: X = 1.0, Y = 2.0
IF (IEEE_SUPPORT_DATATYPE(X)) THEN
PRINT *, (IEEE_NEXT_AFTER(X,Y) == X + EPSILON(X)) ! Prints true
ENDIF
USE, INTRINSIC :: IEEE_ARITHMETIC
REAL(4) :: X = 0.0, Y = 1.0
IF (IEEE_SUPPORT_DATATYPE(X)) THEN
PRINT *, (IEEE_NEXT_AFTER(X,Y) == 2.0**(-149)) ! Prints true
ENDIF


