Contents   Index   Previous   Next


G.2 Numeric Performance Requirements

Implementation Requirements

1
   {accuracy} {strict mode} Implementations shall provide a user-selectable mode in which the accuracy and other numeric performance requirements detailed in the following subclauses are observed. This mode, referred to as the strict mode, may or may not be the default mode; it directly affects the results of the predefined arithmetic operations of real types and the results of the subprograms in children of the Numerics package, and indirectly affects the operations in other language defined packages. {relaxed mode} Implementations shall also provide the opposing mode, which is known as the relaxed mode.
1.a
Reason: On the assumption that the users of an implementation that does not support the Numerics Annex have no particular need for numerical performance, such an implementation has no obligation to meet any particular requirements in this area. On the other hand, users of an implementation that does support the Numerics Annex are provided with a way of ensuring that their programs achieve a known level of numerical performance and that the performance is portable to other such implementations. The relaxed mode is provided to allow implementers to offer an efficient but not fully accurate alternative in the case that the strict mode entails a time overhead that some users may find excessive. In some of its areas of impact, the relaxed mode may be fully equivalent to the strict mode.
1.b
Implementation Note: The relaxed mode may, for example, be used to exploit the implementation of (some of) the elementary functions in hardware, when available. Such implementations often do not meet the accuracy requirements of the strict mode, or do not meet them over the specified range of parameter values, but compensate in other ways that may be important to the user, such as their extreme speed.
1.c
Ramification: For implementations supporting the Numerics Annex, the choice of mode has no effect on the selection of a representation for a real type or on the values of attributes of a real type.

Implementation Permissions

2
   Either mode may be the default mode.
2.a
Implementation defined: Whether the strict mode or the relaxed mode is the default.
3
   The two modes need not actually be different.

Extensions to Ada 83

3.a
{extensions to Ada 83} The choice between strict and relaxed numeric performance was not available in Ada 83.

Contents   Index   Previous   Next   Legal