(j3.2006) J3 Fortran interp letter ballot #32 revised - due 9-Jan-2015

Robert Corbett robert.corbett
Fri Jan 9 03:00:37 EST 2015


The following Fortran interpretations are being balloted:

Yes  No   Number    Title

-Y-  ---  F08/0105  Is the ASYNCHRONOUS attribute allowed with the
                      VALUE attribute?
-Y-  ---  F08/0110  Interdependence of specifier values in input/output
                      statements
-Y-  ---  F08/0115  ASYNCHRONOUS and argument passing
-Y-  ---  F08/0116  Interoperable procedures
-Y-  ---  F08/0117  TARGET and coindexed arguments
-Y-  ---  F08/0118  Subobject of variable in variable definition context
-Y-  ---  F08/0119  Branching to END BLOCK and END CRITICAL
-Y-  ---  F08/0120  Is the name of a procedure pointer a local identifier?
-Y-  ---  F08/0121  Add to introduction defined operations in
                      specification exprs
-Y-  ---  F08/0122  Types with coarray components
---  -N-  F08/0123  SPACING intrinsic
-Y-  ---  F08/0124  Coindexed object with polymorphic subcomponent

----------------------------------------------------------------------
F08/0123 N

The results of applying the intrinsic functions SPACING and RRSPACING
to subnormal values were the subject of interpretation F03/0055.  A
copy of that interpretation appears below.  Interpretation F03/0055
included edits that were incorporated in the Fortran 2008 standard.

The proposed revised specification for the intrinsic function SPACING
and the existing text are equivalent if the value of e\sub{min} is
chosen properly for the KIND of real value.  The text that F03/0055
added assumes that the value of e\sub{min} for a processor that
supports subnormal numbers is the exponent of the smallest positive
representable number.  The Fortran 2008 standard does not spell out
how the value of e\sub{min} is to be chosen, which must be
addressed if the results of the intrinsic function SPACING are to be
fully specified.

If a different value of e\sub{min} is chosen, the result of SPACING
for the value 0.0 becomes problematic.  For example, if the value
of e\sub{min} is chosen to be -126 for IEEE single-precision, the
value of SPACING(0.0) will be 1.1754944E-38, while the value of
SPACING(X) for a nonzero subnormal value will be 1.4012985E-45.
SPACING(0.0) should not be greater than SPACING(X).

================

NUMBER: F03/0055
TITLE: Denormal inputs to SPACING and RRSPACING
KEYWORDS: denormal, intrinsic, SPACING, RRSPACING
DEFECT TYPE: Erratum
STATUS: Passed by J3 letter ballot

QUESTION:

What results do SPACING and RRSPACING return if the value of X lies
outside the model of 13.4, in particular if it is denormal?

In the definition of EXPONENT, the words 'of the model representation
for the value of X' appear; but in the definition of SPACING and
RRSPACING, the words are 'for the model representation of X'.
Was this difference intended? Is the intention to indicate that for
SPACING and RRSPACING, the model is that of all reals with the same
kind type parameter value as X?

In the IEEE model, the spacing between any two adjacent denorms is
equal to the smallest denorm. Is it intended that this value be
returned by SPACING?

ANSWER:

The informal description refers to 'model numbers near the argument
value', but the text does not reflect this.  Edits are provided to
correct this.

Yes, the difference was intended. In both models, the lower
bound on the exponent has a profound effect on the spacing of
tiny values, so it is important that it be taken into account.

It was intended to refer to the model for all the reals with the
same kind type parameter value as X. Here is it the model of 13.4
that is involved, as the words in 13.4 make clear. If the argument
value is a positive denorm, the model numbers near it are
TINY(X) and 0. Their spacing is TINY(X).

Edits are provided to make this intention clear.

EDITS:

Page and line numbers refer to J3/04-007.

[347:22] Subclause 13.7.100, Result Value, line 2. Replace
"the model representation of X." by "the value nearest to X in the
model for real values whose kind type parameter is that of X; if
there are two such values, the value of greater absolute value is
taken."

[353:9] Subclause 13.7.113, Result Value, line 2. Replace
"the model representation of X." by "the value nearest to X in the
model for real values whose kind type parameter is that of X; if
there are two such values, the value of greater absolute value is
taken."

SUBMITTED BY: John Reid

HISTORY: 05-153    m171  Passed by J3 meeting
          05-170    m172  Passed J3 letter ballot #11

----------------------------------------------------------------------



More information about the J3 mailing list