Unformatted version of **ai12s/ai12-0453-1.txt version 1.4**

Other versions for file**ai12s/ai12-0453-1.txt**

Other versions for file

!standard A.5.1(35) 22-12-15 AI12-0453-1/02

!standard A.5.1(47)

!standard A.5.3(32)

!standard A.5.3(35)

!standard B.3.3(17/2)

!standard C.1(12)

!standard C.1(13)

!standard C.1(14)

!standard C.1(15)

!standard C.3(16)

!standard C.3(20)

!standard G.2.1(14)

!standard G.2.3(6)

!standard G.2.3(20)

!standard G.2.3(21)

!standard G.2.5(4)

!standard G.2.6(2)

!standard G.2.6(3)

!class presentation 22-12-06

!status Amendment 1-2012 22-12-15

!status ARG Approved 13-0-0 23-01-19

!status work item 22-12-06

!status received 22-11-04

!priority Low

!difficulty Easy

!qualifier Omission

!subject Remove "i.e." and "e.g."

!standard A.5.3(32)

!standard A.5.3(35)

!standard B.3.3(17/2)

!standard C.1(12)

!standard C.1(13)

!standard C.1(14)

!standard C.1(15)

!standard C.3(16)

!standard C.3(20)

!standard G.2.1(14)

!standard G.2.3(6)

!standard G.2.3(20)

!standard G.2.3(21)

!standard G.2.5(4)

!standard G.2.6(2)

!standard G.2.6(3)

!class presentation 22-12-06

!status Amendment 1-2012 22-12-15

!status ARG Approved 13-0-0 23-01-19

!status work item 22-12-06

!status received 22-11-04

!priority Low

!difficulty Easy

!qualifier Omission

!subject Remove "i.e." and "e.g."

!summary

Replace all uses of "i.e." with "that is" and all uses of "e.g." with
"for example".

!question

The ISO editors want all of the existing uses of "i.e." and "e.g." changed to
remove the trailing comma. Our internal wording guidance asks us to avoid
these abbrevations. Should they all be replaced? (Yes.)

!recommendation

!wording

[Editor's note: Most of these paragraphs are worded unusually, and perhaps
a more general rewrite would eliminate the need for a parenthetical remark and
"that is".]

Modify A.5.1(35):

When one parameter of a function with multiple parameters represents a pole
and another is outside the function's domain, the latter takes precedence
[(i.e.,]{and} Numerics.Argument_Error is raised[)].

Modify A.5.1(47):

* A zero result that is not a prescribed result ([i.e.]{that is}, one that

results from rounding or underflow) has the correct mathematical sign.

Modify A.5.3(32):

The function yields the value Floor(X), [i.e.]{that is}, the largest (most
positive) integral value less than or equal to X. When X is zero, the result
has the sign of X; a zero result otherwise has a positive sign.

Modify A.5.3(35):

The function yields the value Ceiling(X), [i.e.]{that is}, the smallest (most
negative) integral value greater than or equal to X. When X is zero, the result
has the sign of X; a zero result otherwise has a negative sign when
S'Signed_Zeros is True.

Modify B.3.3(17/2):

* The check performed when addressing a variant component ([i.e.]{that is}, a

component that was declared in a variant part) of an unchecked union object
that the object has this component (see 4.1.3).

Modify C.1(12):

* Atomic read-modify-write operations — [e.g.]{for example}, test and set,

compare and swap, decrement and test, enqueue/dequeue.

Modify C.1(13):

* Standard numeric functions — [e.g.]{for example}, sin, log.

Modify C.1(14):

* String manipulation operations — [e.g.]{for example}, translate and test.

Modify C.1(15):

* Vector operations — [e.g.]{for example}, compare vector against thresholds.

[Editor's note: There are some AARM notes that should be changed accordingly.
These include A.5.3(29.b), A.5.3(67.a), G.2.1(3.b), G.2.3(6.a).
We do not show the changes needed here.]

Modify C.3(16):

4.
Any implementation- or hardware-specific activity that happens before a
user-defined interrupt handler gets control ([e.g.]{for example}, reading
device registers, acknowledging devices).

Modify C.3(20):

8.
The treatment of interrupt occurrences that are generated while the interrupt
is blocked; [i.e.]{that is}, whether one or more occurrences are held for later
delivery, or all are lost.

Modify G.2.1(14):

For any predefined relation on operands of a floating point type T, the
implementation may deliver any value ([i.e.]{that is}, either True or False)
obtained by applying the (exact) mathematical comparison to values arbitrarily
chosen from the respective operand intervals.

Modify G.2.3(6):

When one operand of a fixed-fixed multiplication or division is of type
universal_real, that operand is not implicitly converted in the usual sense,
since the context does not determine a unique target type, but the accuracy of
the result of the multiplication or division ([i.e.]{that is}, whether the
result has to belong to the perfect result set or merely the close result
set) depends on the value of the operand of type universal_real and on the
types of the other operand and of the result.

Modify G.2.3(20):

The result of a fixed point multiplication or division shall belong either to
the perfect result set or to the close result set, as described below, if
overflow does not occur. In the following cases, if the result type is a fixed
point type, let s be its small; otherwise, [i.e.]{that is} when the result type
is an integer type, let s be 1.0.

Modify G.2.3(21):

* For a multiplication or division neither of whose operands is of type

universal_real, let l and r be the smalls of the left and right operands. For
a multiplication, if (l · r) / s is an integer or the reciprocal of an integer
(the smalls are said to be “compatible” in this case), the result shall belong
to the perfect result set; otherwise, it belongs to the close result set. For
a division, if l / (r · s) is an integer or the reciprocal of an integer
([i.e.]{that is}, the smalls are compatible), the result shall belong to the
perfect result set; otherwise, it belongs to the close result set.

Modify G.2.5(4):

The implementations of Numerics.Float_Random.Random and
Numerics.Discrete_Random.Random shall pass at least 85% of the individual
trials in a suite of statistical tests. For Numerics.Float_Random, the tests
are applied directly to the floating point values generated ([i.e.]{that is},
they are not converted to integers first), while for Numerics.Discrete_Random
they are applied to the generated values of various discrete types. Each test
suite performs 6 different tests, with each test repeated 10 times, yielding
a total of 60 individual trials. An individual trial is deemed to pass if
the chi-square value (or other statistic) calculated for the observed counts
or distribution falls within the range of values corresponding to the 2.5 and
97.5 percentage points for the relevant degrees of freedom ([i.e.]{that is},
it shall be neither too high nor too low). For the purpose of determining the
degrees of freedom, measurement categories are combined whenever the expected
counts are fewer than 5.

Modify G.2.6(2):

When an exception is not raised, the result of evaluating a real function of
an instance CT of Numerics.Generic_Complex_Types ([i.e.]{that is}, a function
that yields a value of subtype CT.Real'Base or CT.Imaginary) belongs to a
result interval defined as for a real elementary function (see G.2.4).

Modify G.2.6(3):

When an exception is not raised, each component of the result of evaluating a
complex function of such an instance, or of an instance of
Numerics.Generic_Complex_Elementary_Functions obtained by instantiating the
latter with CT ([i.e.]{that is}, a function that yields a value of subtype
CT.Complex), also belongs to a result interval. The result intervals for the
components of the result are either defined by a maximum relative error bound
or by a maximum box error bound. When the result interval for the real (resp.,
imaginary) component is defined by maximum relative error, it is defined as
for that of a real function, relative to the exact value of the real (resp.,
imaginary) part of the result of the corresponding mathematical function. When
defined by maximum box error, the result interval for a component of the result
is the smallest model interval of CT.Real that contains all the values of the
corresponding part of f · (1.0 + d), where f is the exact complex value of the
corresponding mathematical function at the given parameter values, d is
complex, and |d| is less than or equal to the given maximum box error. The
function delivers a value that belongs to the result interval (or a value
both of whose components belong to their respective result intervals) when
both bounds of the result interval(s) belong to the safe range of CT.Real;
otherwise,

!discussion

The authors of the numerics parts of the RM loved to use i.e. and e.g.;
they are almost never used otherwise. We make the RM more consistent by
eliminating all of these uses.

The editor previously wanted to make this change, but did not because there
were so many occurrences. However, since we need to change all of these for
ISO reasons anyway, we might as well bring the wording up to match our own
guidance.

!ASIS

No ASIS effect.

!ACATS test

!appendix

****************************************************************

Questions? Ask the ACAA Technical Agent