J3/03-146
To: J3
From: UK Fortran panel
Subject: Edits for UK comment MTC8 (IEEE_CLASS_TYPE extension)
Date: 13 March 2003
1. Introduction
Comment MTC8 was
Add the value IEEE_NOT_IEEE to IEEE_CLASS_TYPE
This is needed for implementing the module on systems which are
basically IEEE, but do not implement all of it. It is analogous to
IEEE_OTHER for IEEE_ROUND_TYPE. It might be needed, for example, if
an unformatted file were written in a program executing with
gradual underflow enabled and read with it disabled.
2. Discussion
The function IEEE_CLASS is prohibited from
(a) returning IEEE_POSITIVE_INF/IEEE_NEGATIVE_INF when IEEE_SUPPORT_INF is
not true.
(b) returning IEEE_POSITIVE_NAN/IEEE_NEGATIVE_NAN when IEEE_SUPPORT_NAN is
not true.
(c) returning IEEE_POSITIVE_DENORMAL/IEEE_NEGATIVE_DENORMAL when
IEEE_SUPPORT_DENORMAL is not true.
Therefore an extra return value is needed to indicate when the argument
value is of a not (fully) supported classification.
3. Edits to 02-007r3
[356:31] Before "." insert ", and IEEE_OTHER_VALUE".
{BTW, the current text is missing the conjunction.}
[363:20-364:1] Replace by
"<> The result value shall be IEEE_SIGNALING_NAN or
IEEE_QUIET_NAN if IEEE_SUPPORT_NAN(X) has the value true and the
value of X is a signaling or quiet NaN, respectively. The result
value shall be IEEE_NEGATIVE_INF or IEEE_POSITIVE_INF if
IEEE_SUPPORT_INF(X) has the value true and the value of X is
negative or positive infinity, respectively. The result value
shall be IEEE_NEGATIVE_DENORMAL or IEEE_POSITIVE_DENORMAL if
IEEE_SUPPORT_DENORMAL(X) has the value true and the value of X is
a negative or positive denormalized value, respectively. The
result value shall be IEEE_NEGATIVE_NORMAL, IEEE_NEGATIVE_ZERO,
IEEE_POSITIVE_ZERO, or IEEE_POSITIVE_NORMAL if value of X is
negative normal, negative zero, positive zero, or positive
normal, respectively. Otherwise, the result value shall be
IEEE_OTHER_VALUE."
{We have taken the opportunity to say explicitly that IEEE_QUIET_NAN
is returned for a quiet Nan, etc.}
[364:2+] Add note:
"NOTE 14.8a. The result value IEEE_OTHER_VALUE is needed for
implementing the module on systems which are basically IEEE, but do
not implement all of it. It might be needed, for example, if an
unformatted file were written in a program executing with gradual
underflow enabled and read with it disabled."
===END===