Go to the first, previous, next, last section, table of contents.


3.5.10 Operations of Fixed Point Types

Static Semantics

  1. The following attributes are defined for every fixed point subtype S:
  2. S'Small
    S'Small denotes the small of the type of S. The value of
    this attribute is of the type universal_real. Small may
    be specified for nonderived fixed point types via an
    attribute_definition_clause, See section 13.3 Representation Attributes; the expression
    of such a clause shall be static.
    
  3. S'Delta
    S'Delta denotes the delta of the fixed point subtype S. The
    value of this attribute is of the type universal_real.
    
  4. S'Fore
    S'Fore yields the minimum number of characters needed
    before the decimal point for the decimal representation
    of any value of the subtype S, assuming that the
    representation does not include an exponent, but
    includes a one-character prefix that is either a minus
    sign or a space. (This minimum number does not include
    superfluous zeros or underlines, and is at least 2.) The
    value of this attribute is of the type
    universal_integer.
    
  5. S'Aft
    S'Aft yields the number of decimal digits needed after the
    decimal point to accommodate the delta of the subtype S,
    unless the delta of the subtype S is greater than 0.1, in
    which case the attribute yields the value one. (S'Aft is the
    smallest positive integer N for which (10**N)*S'Delta is
    greater than or equal to one.) The value of this attribute
    is of the type universal_integer.
    
  6. The following additional attributes are defined for every decimal fixed point subtype S:
  7. S'Digits
    S'Digits denotes the digits of the decimal fixed point
    subtype S, which corresponds to the number of decimal digits
    that are representable in objects of the subtype. The value
    of this attribute is of the type universal_integer. Its
    value is determined as follows:
    
    1. For a first subtype or a subtype defined by a subtype_indication with a digits_constraint, the digits is the value of the expression given after the reserved word digits;
    2. For a subtype defined by a subtype_indication without a digits_constraint, the digits of the subtype is the same as that of the subtype denoted by the subtype_mark in the subtype_indication.
    3. The digits of a base subtype is the largest integer D such that the range -(10**D-1)*delta .. +(10**D-1)*delta is included in the base range of the type.

  1. S'Scale
    S'Scale denotes the scale of the subtype S, defined as the
    value N such that S'Delta = 10.0**(-N). The scale indicates
    the position of the point relative to the rightmost
    significant digits of values of subtype S. The value of this
    attribute is of the type universal_integer.
    
  2. S'Round
      S'Round denotes a function with the following specification:
    1. function S'Round(X : universal_real)
        return S'Base
      
    2. The function returns the value obtained by rounding X (away from 0, if X is midway between two values of the type of S).

    NOTES

  1. (37) All subtypes of a fixed point type will have the same value for the Delta attribute, in the absence of delta_constraints, See section J.3 Reduced Accuracy Subtypes.
  2. (38) S'Scale is not always the same as S'Aft for a decimal subtype; for example, if S'Delta = 1.0 then S'Aft is 1 while S'Scale is 0.
  3. (39) The predefined operations of a fixed point type include the assignment operation, qualification, the membership tests, and explicit conversion to and from other numeric types. They also include the relational operators and the following predefined arithmetic operators: the binary and unary adding operators - and +, multiplying operators, and the unary operator abs.
  4. (40) As for all types, objects of a fixed point type have Size and Address attributes, See section 13.3 Representation Attributes. Other attributes of fixed point types are defined in See section A.5.4 Attributes of Fixed Point Types.


Go to the first, previous, next, last section, table of contents.