min_exp : INT ;
-- This feature is the minimum negative integer x such that b^(x-1) is
-- in the range of normalized floating point numbers.
min_exp10 : INT ;
-- This feature is the minimum negative integer x such that 10^x is in
-- the range of normalized floating point numbers.
max_exp : INT ;
-- This feature is the maximum permissible binary exponent value for
-- numbers of this class
max_exp10 : INT ;
-- This feature is the maximum integer value x s.t 10^x is in the range
-- of values in this class.
epsilon : NTP ;
-- This feature is the minimum positive value x s.t 1.0 + x /= x
digits : INT ;
-- This feature is the number of decimal digits of precision for values
-- in this class.
mantissa_bits : INT ;
-- This feature is the number of bits in the significand, including the
-- implied bit referrred to in the specification.
Max_Precision : CARD ;
-- This feature is the number of decimal digits in a number above which
-- rounding problems occur in arithmetic operations.
Num_Bits : CARD ;
-- This feature is the total number of binary digits in the representation of values of this class.
is_nan : BOOL ;
-- This returns true if and only if self is not the representation of
-- a number in the real number value domain, otherwise false.
quiet_NaN(
sig : INT
) : NTP ;
-- This routine returns the representation which is interpreted by
-- the IEEE arithmetic model as being a quiet (ie non-interrupting) NaN.
-- The argument is not used in this implementation. Built-in to this
-- implementation.
signalling_NaN(
sig : INT
) : NTP ;
-- This routine returns the representation which is interpreted by
-- the IEEE arithmetic model as a signalling (ie interrupt generating) NaN.
-- The argument is unused in this implementation.
infinity : NTP ;
-- This routine returns the representation of infinity -- which is
-- implementation-dependent.
min_normal : NTP ;
-- This routine returns the smallest normalized positive number
-- in this class.
max_normal : NTP ;
-- This routine returns the largest normalized positive number
-- in this class.
min_subnormal : NTP ;
-- This routine returns the smallest un-normalized positive number
-- in this class.
max_subnormal : NTP ;
-- This routine returns the largest un-normalized positive number
-- in this class.
is_normal : BOOL ;
-- This predicate returns true if and only if self is a normalised
-- number. Built-in to this implementation.
is_subnormal : BOOL ;
-- This predicate returns true if and only if self is an un-normalised
-- number.
signbit_set : BOOL ;
-- This predicate returns true if and only if the sign bit of self is
-- set. The number, however, can be one of the special values in addition
-- to being a negative number if this is set.
is_finite : BOOL ;
-- This predicate returns true if and only if self is zero, subnormal
-- or normal.
is_inf : BOOL ;
-- This predicate returns true if and only if self is infinite.
unbiassed_exponent : INT ;
-- This routine returns the unbiassed exponent of self.
--
-- NOTE The IEEE 754 standard specifies that exponent storage shall be
-- unsigned - being given an offset or bias in order to achieve this.
copysign(
other : NTP
) : NTP ;
-- This routine returns self with the sign bit set to be the same as
-- the sign bit of other. This routine is provided to overcome some of
-- the limitations of certain IEEE 754 implementations which have two values
-- of zero - in order to make comparison for zero possible.
nextup : NTP ;
-- This routine returns the value in the IEEE model number domain which
-- is the successor in that domain of the value of self.
nextdown : NTP ;
-- This routine returns the value in the IEEE model number domain which
-- is the predecessor in that domain of the value of self.
-- get_representation(
-- out sign : BOOL,
-- out exp : INT,
-- out mantissa : INT
-- ) ;
-- This routine splits up the floating point coding into its sign,
-- exponent and mantissa components which are returned in the arguments.
-- BECAUSE OF DIFFERING MANTISSA SIZES THIS CANNOT BE IN THE ABSTRACTION!!
remainder(
other : NTP
) : NTP ;
-- This feature returns a remainder of self with respect to other; that
-- is, the result is one of the numbers that differs from self by an integral
-- multiple of other -- '(self - result)/other' is an integral value.