J.3 Reduced Accuracy Subtypes
1
A digits_constraint may
be used to define a floating point subtype with a new value for its requested
decimal precision, as reflected by its Digits attribute. Similarly, a
delta_constraint may be used to define an
ordinary fixed point subtype with a new value for its delta, as
reflected by its Delta attribute.
Syntax
2
delta_constraint ::= delta static_expression [
range_constraint]
Name Resolution Rules
3
The
expression
of a
delta_constraint is expected to be of
any real type.
Legality Rules
4
The expression of a delta_constraint
shall be static.
5
For a subtype_indication
with a delta_constraint, the subtype_mark
shall denote an ordinary fixed point subtype.
6
For a
subtype_indication
with a
digits_constraint, the
subtype_mark
shall denote either a decimal fixed point subtype or a floating point
subtype (notwithstanding the rule given in
3.5.9
that only allows a decimal fixed point subtype).
Static Semantics
7
A subtype_indication with
a subtype_mark that denotes an ordinary fixed
point subtype and a delta_constraint defines
an ordinary fixed point subtype with a delta given by the value
of the expression of the delta_constraint.
If the delta_constraint includes a range_constraint,
then the ordinary fixed point subtype is constrained by the range_constraint.
8
A subtype_indication with
a subtype_mark that denotes a floating point
subtype and a digits_constraint defines a
floating point subtype with a requested decimal precision (as reflected
by its Digits attribute) given by the value of the expression
of the digits_constraint. If the digits_constraint
includes a range_constraint, then the floating
point subtype is constrained by the range_constraint.
Dynamic Semantics
9
A
delta_constraint
is
compatible with an ordinary fixed point subtype if the value
of the
expression is no less than the
delta
of the subtype, and the
range_constraint,
if any, is compatible with the subtype.
10
A
digits_constraint
is
compatible with a floating point subtype if the value of the
expression is no greater than the requested
decimal precision of the subtype, and the
range_constraint,
if any, is compatible with the subtype.
11
The elaboration of a
delta_constraint
consists of the elaboration of the
range_constraint,
if any.