ieee_exponent(3I)

IEEE_EXPONENT - Returns the unbiased exponent of x

As shipped in IRIX 6.5.30. Last changed in IRIX 6.5.19.

NAME
     IEEE_EXPONENT - Returns the unbiased exponent of x

SYNOPSIS
     IEEE_EXPONENT ([X=]x[, [Y=]y])

STANDARDS
     Fortran extension

     IEEE Standard for Binary Floating-point Arithmetic

DESCRIPTION
     The IEEE_EXPONENT intrinsic function returns the unbiased exponent of
     x.  This function corresponds to the logb function described in the
     IEEE standard appendix of recommended functions.

     The IEEE_EXPONENT function accepts the following arguments:

     x         Must be of type real.  Can be a scalar or array value.

     y         Can be of type integer or real.  Must be a scalar value.

     IEEE_EXPONENT is an elemental function.  The name of this intrinsic
     cannot be passed as an argument.

RESULT TYPE AND TYPE PARAMETER
     If x is a scalar, the result is a scalar.  If x is an array, the
     result is an array of the same shape as x.

     If y is absent, the result is of type default integer.

     If y is present and is of type integer, the result is of type integer
     and has the same kind type parameter value as y.

     If y is present and is of type real, the result is of type real and
     has the same kind type parameter value as y.

RETURN VALUES
     The result is the value of the unbiased exponent of x.

     If y is absent and x is +inf, -inf, or NaN, the result is HUGE(0).  If
     x is 0.0, the result is -HUGE(0).

     If y is present and of type integer and x is +inf, -inf, or NaN, the
     result is HUGE(y).  If x is 0.0, the result is -HUGE(y).

     If y is present and of type real, the value is an integral value in
     floating-point format.  If x is a NaN, the result is a NaN.  If x is
     +inf or -inf, the result is +inf.  If x is 0.0, the result is -inf and
     the division by zero exception is raised.

     When x is positive and finite, the expression IEEE_BINARY_SCALE(X,-
     IEEE_EXPONENT(X)) lies strictly between 0 and 2; it is less than 1
     only when x is denormalized.

EXAMPLES
     Example 1.

          REAL   x
          ...                 ! Compute X.
          PRINT *, "Unbiased exponent of X:", IEEE_EXPONENT(x)

     The PRINT statement prints the unbiased exponent of x as a default
     integer value as long as x is not one of the exceptional values noted
     in the RETURN VALUES section.

     Example 2.  Program ieexp.f90 uses several intrinsic procedures:

                REAL(8) X

                PRINT *," TEST EXPONENT and IEEE_EXPONENT of HUGE"
                X = HUGE(1.0_8)

          ! HUGE scaled to 0.xxx
                PRINT *," F90 EXPONENT of x=",EXPONENT(x)

          ! HUGE scaled to x.xx
                PRINT *," Unbiased IEEE_EXPONENT of x=",IEEE_EXPONENT(x)

                PRINT *," TEST EXPONENT and IEEE_EXPONENT of TINY"
                X = TINY(1.0_8)

          ! TINY scaled to 0.xxx
                PRINT *," F90 EXPONENT of x=",EXPONENT(x)

          ! TINY scaled to x.xx
                PRINT *," Unbiased IEEE_EXPONENT of x=",IEEE_EXPONENT(x)
                END

     The output from this program is as follows:

            TEST EXPONENT and IEEE_EXPONENT of HUGE
            F90 EXPONENT of x= 1024
            Unbiased IEEE_EXPONENT of x= 1023
            TEST EXPONENT and IEEE_EXPONENT of TINY
            F90 EXPONENT of x= -1021
            Unbiased IEEE_EXPONENT of x= -1022