J3/01-235
Date: 2001/06/04
To: J3
From: /Interop
Subject: Unresolved issue 213
Ref: 99-179, IEEE TR
Edits and references are to J3/01-007r1.
Issue 213: [376: 33-42]
1. Summary
One of the edits of 99-179 introduces a conflict between the standard document 01-007r1 and the IEEE TR. This paper describes the conflict and gives a solution.
2. Description
The standard 01-007r1 has the following restriction on IEEE_SET_ROUNDING_MODE:
"Restriction: A program is prohibited from invoking this procedure unless IEEE_SUPPORT_ROUNDING(ROUND_VALUE,X) is true for some X such that IEEE_SUPPORT_DATATYPE(X) is true."
This conflicts with the IEEE TR, which has the following description of the restriction on IEEE_SET_ROUNDING_MODE:
"IEEE_SUPPORT_ROUNDING(ROUND_VALUE,X) shall be true for any X such that IEEE_SUPPORT_DATATYPE(X) is true."
As a result, the IEEE TR disallows using IEEE_SET_ROUNDING_MODE in the following example, but 01-007r1 allows it:
=================================================
X IEEE_SUPPORT_DATATYPE(X)
=================================================
real (kind=4) .true.
real (kind=8) .true.
real (kind=16) .true.
=================================================
============================================================
X IEEE_SUPPORT_ROUNDING(ROUND_VALUE, X)
============================================================
real (kind=4) .true.
real (kind=8) .true.
real (kind=16) .false.
============================================================
The edits repair the conflict, and also repair a typo in section 15.9.29.
3. Edits
[376:30-32]
Change the sentence:
"A program is prohibited from invoking this procedure unless
IEEE_SUPPORT_ROUNDING(ROUND_VALUE,X) is true for some X such that
IEEE_SUPPORT_DATATYPE(X) is true."
to
"A program is prohibited from invoking this procedure with a ROUND_VALUE such that IEEE_SUPPORT_ROUNDING(ROUND_VALUE,X) is false for some X."
[376:33-42] Delete J3 note.
[380:20] Replace:
"CALL IEEE_SET_ROUNDING(ROUND_VALUE)"
to
"CALL IEEE_SET_ROUNDING_MODE(ROUND_VALUE)"