IEEE_REAL(3I) Last changed: 1-6-98
IEEE_REAL - Converts x to a real value
IEEE_REAL ([X=]x [, [Y=]y])
UNICOS/mk and IRIX systems
CRAY T90 systems that support IEEE floating-point arithmetic
CF90 and MIPSpro 7 Fortran 90 compiler extension to Fortran 90
IEEE Standard for Binary Floating-point Arithmetic
The IEEE_REAL intrinsic function converts x to a real value according
to the rounding mode currently in effect. It accepts the following
arguments:
x Can be of type real or integer. It can be scalar or an
array.
y If specified, must be scalar and of type real.
IEEE_REAL is an elemental function. The name of this intrinsic cannot
be passed as an argument.
The IEEE intrinsic procedures use the named constants contained in a
system module, so you must include one of the following statements in
your program:
* On UNICOS and UNICOS/mk systems: USE CRI_IEEE_DEFINITIONS
* On UNICOS, UNICOS/mk, and IRIX systems: USE FTN_IEEE_DEFINITIONS
The CRI_IEEE_DEFINITIONS module is obsolescent. It will be removed
for the CF90 4.0 release.
The result type and type parameters are as follows. If y is absent,
the result type and type parameter are default real. If y is present,
the result type and type parameter are the same type and type
parameter as y. If x is an array, the result is an array of the same
shape as x.
If y is absent, the result is a default real rounded from x according
to the rounding mode currently in effect. When x is of type integer,
this form of IEEE_REAL is useful for converting an integer value that
has more significant bits than the number of bits in the mantissa of
the default real format or the format of y. IEEE_REAL, in this case,
rounds the integer according to the number of bits in the mantissa.
For example, suppose that on some machine an integer can hold 5
decimal digits, but the floating-point format of the same size can
only hold 4. The result of IEEE_REAL(10126) on this machine would be
1.013E+3 if the current rounding mode is round-to-nearest. This form
of IEEE_REAL is also useful when converting a double precision y to
(default) single precision and, in the process, rounding the
fractional value in the mantissa according to the rounding mode
currently in effect.
If y is present, the result is of type real with the same kind type
parameter value as y and whose value is rounded from x according to
the rounding mode currently in effect. This form of IEEE_REAL has
essentially the same uses as those described in the previous
paragraph, but it allows you to specify a result type of something
other than default real. For example, this form would be useful to
convert quad precision real to double precision (and rounding in the
process) on IRIX systems.
If x is scalar, the result is scalar.
If x is an array, the result is an array in which each element is the
value of x rounded to the type and type parameter of y.
i ! Assume that the following program is compiled and executed on
! a 32-bit machine.
INTEGER k
... ! X is filled with a value that
... ! has more than 23 significant bits.
PRINT *, IEEE_REAL(k)
Variable k is converted to type default real and rounded to fit into
23 bits according to the rounding mode currently in effect.
Intrinsic Procedures Reference Manual, publication SR-2138, for the
printed version of this man page.
IEEE_REAL(3I) Last changed: 1-6-98
IEEE_REAL - Converts x to a real value
IEEE_REAL ([X=]x [, [Y=]y])
UNICOS/mk and IRIX systems
CRAY T90 systems that support IEEE floating-point arithmetic
CF90 and MIPSpro 7 Fortran 90 compiler extension to Fortran 90
IEEE Standard for Binary Floating-point Arithmetic
The IEEE_REAL intrinsic function converts x to a real value according
to the rounding mode currently in effect. It accepts the following
arguments:
x Can be of type real or integer. It can be scalar or an
array.
y If specified, must be scalar and of type real.
IEEE_REAL is an elemental function. The name of this intrinsic cannot
be passed as an argument.
The IEEE intrinsic procedures use the named constants contained in a
system module, so you must include one of the following statements in
your program:
* On UNICOS and UNICOS/mk systems: USE CRI_IEEE_DEFINITIONS
* On UNICOS, UNICOS/mk, and IRIX systems: USE FTN_IEEE_DEFINITIONS
The CRI_IEEE_DEFINITIONS module is obsolescent. It will be removed
for the CF90 4.0 release.
The result type and type parameters are as follows. If y is absent,
the result type and type parameter are default real. If y is present,
the result type and type parameter are the same type and type
parameter as y. If x is an array, the result is an array of the same
shape as x.
If y is absent, the result is a default real rounded from x according
to the rounding mode currently in effect. When x is of type integer,
this form of IEEE_REAL is useful for converting an integer value that
has more significant bits than the number of bits in the mantissa of
the default real format or the format of y. IEEE_REAL, in this case,
rounds the integer according to the number of bits in the mantissa.
For example, suppose that on some machine an integer can hold 5
decimal digits, but the floating-point format of the same size can
only hold 4. The result of IEEE_REAL(10126) on this machine would be
1.013E+3 if the current rounding mode is round-to-nearest. This form
of IEEE_REAL is also useful when converting a double precision y to
(default) single precision and, in the process, rounding the
fractional value in the mantissa according to the rounding mode
currently in effect.
If y is present, the result is of type real with the same kind type
parameter value as y and whose value is rounded from x according to
the rounding mode currently in effect. This form of IEEE_REAL has
essentially the same uses as those described in the previous
paragraph, but it allows you to specify a result type of something
other than default real. For example, this form would be useful to
convert quad precision real to double precision (and rounding in the
process) on IRIX systems.
If x is scalar, the result is scalar.
If x is an array, the result is an array in which each element is the
value of x rounded to the type and type parameter of y.
i ! Assume that the following program is compiled and executed on
! a 32-bit machine.
INTEGER k
... ! X is filled with a value that
... ! has more than 23 significant bits.
PRINT *, IEEE_REAL(k)
Variable k is converted to type default real and rounded to fit into
23 bits according to the rounding mode currently in effect.
Intrinsic Procedures Reference Manual, publication SR-2138, for the
printed version of this man page.
[ Back ]
|