Prev | Up | Next | Back | Forward
TOC -- / --.-- / --.--.-- | Index | Search | Syntax | Help


F.2 The Package Decimal

Static Semantics
(1)
The library package Decimal has the following declaration:
(2)
       package Ada.Decimal is
          pragma Pure(Decimal);
(3)
          Max_Scale : constant := implementation-defined;
          Min_Scale : constant := implementation-defined;
(4)
          Min_Delta : constant := 10.0**(-Max_Scale);
          Max_Delta : constant := 10.0**(-Min_Scale);
(5)
          Max_Decimal_Digits : constant := implementation-defined;
(6)
          generic
             type Dividend_Type  is delta <> digits <>;
             type Divisor_Type   is delta <> digits <>;
             type Quotient_Type  is delta <> digits <>;
             type Remainder_Type is delta <> digits <>;
          procedure Divide (Dividend  : in Dividend_Type;
                            Divisor   : in Divisor_Type;
                            Quotient  : out Quotient_Type;
                            Remainder : out Remainder_Type);
          pragma Convention(Intrinsic, Divide);
(7)
       end Ada.Decimal;
(8)
Max_Scale is the largest N such that 10.0**(-N) is allowed as a decimal type's delta. Its type is universal_integer.
(9)
Min_Scale is the smallest N such that 10.0**(-N) is allowed as a decimal type's delta. Its type is universal_integer.
(10)
Min_Delta is the smallest value allowed for delta in a decimal_fixed_point_definition. Its type is universal_real.
(11)
Max_Delta is the largest value allowed for delta in a decimal_fixed_point_definition. Its type is universal_real.
(12)
Max_Decimal_Digits is the largest value allowed for digits in a decimal_fixed_point_definition. Its type is universal_integer.
Static Semantics
(13)
The effect of Divide is as follows. The value of Quotient is Quotient_Type(Dividend/Divisor). The value of Remainder is Remainder_Type(Intermediate), where Intermediate is the difference between Dividend and the product of Divisor and Quotient; this result is computed exactly.
Implementation Requirements
(14)
Decimal.Max_Decimal_Digits shall be at least 18.
(15)
Decimal.Max_Scale shall be at least 18.
(16)
Decimal.Min_Scale shall be at most 0.

(17)


Prev | Up | Next | Back | Forward
TOC -- / --.-- / --.--.-- | Index | Search | Syntax | Help

Ada WWW Home -- Email comments, additions, corrections, gripes, kudos, etc. to:

Magnus Kempe -- Magnus.Kempe@di.epfl.ch
Copyright statement
Page last generated: 95-03-12