﻿!standard A.5.1(35) 22-12-06 AI12-0453-1/01 !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 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 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 (See Summary.) !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.]{that is}, 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 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 ****************************************************************