Accuracy of a relation between two static univ 86-07-23 AI-00103/06 1
| !standard 04.10 (04) 86-07-23 AI-00103/06
| !class ramification 85-09-04
| !status approved by WG9/AJPO 86-07-22
| !status approved by Director, AJPO 86-07-22
| !status approved by WG9/Ada Board 86-07-22
| !status approved by Ada Board 86-07-22
!status approved by WG9 85-11-18
!status committee-approved (10-0-0) 85-09-04
!status work-item 84-06-11
!status received 83-11-07
!references 83-00154, 83-00659, 83-00665
!topic Accuracy of a relation between two static universal real operands
!summary 85-09-17
The relational and membership operations for static universal real operands
must be evaluated exactly.
!question 85-09-17
The last sentence of section 4.10(4) says "if a universal expression is a
static expression, then the evaluation must be exact". However, no
corresponding rule exists for the evaluation of a static expression such as
0.1 = 0.01E1
which is intended always to deliver the result TRUE. This is because an
expression with result type BOOLEAN is not classed as a universal expression.
Must static relational and membership expressions with universal real
operands be evaluated exactly?
!response 85-10-17
The Standard defines the accuracy of relational and membership operations in
terms of model numbers of the type (see 4.5.7(10,11)). According to
3.5.6(3), a set of model numbers is associated with every real type, and
3.5.6(5) says universal real is a real type, so there are model numbers for
the type universal real. The Standard does not specify the form of the model
numbers (e.g., do they have the form specified in 3.5.7(4) with infinite
mantissa, or the form given by 3.5.9(4) with an appropriate 'SMALL?), but
regardless of the form that is considered to be used, it does seem clear from
4.10(4) that the model interval for a static universal real expression is a
point, and so relational and membership operations for static universal real
operands are to be evaluated exactly, as required by 4.5.7(10) when comparing
model numbers of a type.