Next: , Previous: A.4.9, Up: Annex A


A.5 The Numerics Packages

1
The library package Numerics is the parent of several child units that provide facilities for mathematical computation. One child, the generic package Generic_Elementary_Functions, is defined in A.5.1, together with nongeneric equivalents; two others, the package Float_Random and the generic package Discrete_Random, are defined in A.5.2. Additional (optional) children are defined in Annex G, "Annex G Numerics".

Static Semantics

2/1
This paragraph was deleted.

3/2

     {00388AI95−00388−01} package Ada.Numerics is   pragma Pure(Numerics);
        Argument_Error exception;
        Pi constant :=
               3.14159_26535_89793_23846_26433_83279_50288_41971_69399_37511;
        PI  constant := Pi;
         constant :=
               2.71828_18284_59045_23536_02874_71352_66249_77572_47093_69996;
     end Ada.Numerics;

4
The Argument_Error exception is raised by a subprogram in a child unit of Numerics to signal that one or more of the actual subprogram parameters are outside the domain of the corresponding mathematical function.

Implementation Permissions

5
The implementation may specify the values of Pi and e to a larger number of significant digits.

5.a

Reason: 51 digits seem more than adequate for all present computers; converted to binary, the values given above are accurate to more than 160 bits. Nevertheless, the permission allows implementations to accommodate unforeseen hardware advances.
Extensions to Ada 83

5.b

{extensions to Ada 83} Numerics and its children were not predefined in Ada 83.
Extensions to Ada 95

5.c/2

{00388AI95−00388−01} {extensions to Ada 95} The alternative declaration of PI is new.