immutable class FLTD < $REAL{FLTD}, $FLT_FMT |
---|
**** |
________This_class_embodies_normal_arithmetic_(NOT_including_trigonometric) ___operations_on_a_floating_point_approximate_number_representation.___This ___has_been_chosn_to_be_the_single_32-bit_IEEE_754-1984_standard ___representation.___For_convenience_of_implementation,_most_of_the_operations ___are_done_in_terms_of_the_double_length_version_operations_for_portability. ________This_source_text_provides_for_optional_inclusion_of_logarithmic ___and_exponential_functions_as_a_group_using_the_LOG_EXP_FUNCTIONS_partial ___class.___Bessel,_gamma_and_erf_functions_may_additionally_be_included ___from_the_partial_class_MATH_FUNCTIONS. ___NOTE_1.___The_class_ANGLED_in_the_Geometric_section_of_this_library_has ________been_extracted_from_here_since_the_(inverse)_trigonometric_operations ________are_conversions_between_an_angle_domain_and_the_domain_of_numbers ________or_factors. ________2.___This_class_and_FLT_are_exceptions_to_the_general_rule_in ________the_required_library_that_immutable_classes_all_inherit_from_$BINARY. |
const Decimal_Multiplier : SAME := 10.0d ; |
---|
**** |
const Max_Precision : CARD := 16 ; |
---|
**** | digits for representation! |
const Num_Bits : CARD := 64 ; |
---|
**** | IEEE double size numbers |
const digits : INT := 15 ; |
---|
**** | No of decimal digits of precn |
const epsilon : SAME := 2.2204460492503131e-16d ; |
---|
**** | min x > 0.0 s.t, 1.0+x/=x |
const half : SAME := 0.5d ; |
---|
**** | used in rounding! |
const mantissa_bits : INT := 53 ; |
---|
**** | No of bits in the significand, including an implied bit. |
const max_exp10 : INT := 308 ; |
---|
**** | max x s.t 10^x is in range. |
const max_exp : INT := 1024 ; |
---|
**** | maximum permissible exponent |
const min_exp10 : INT := -307 ; |
---|
const min_exp : INT := -1021 ; |
---|
const one : SAME := 1.0d ; |
---|
const zero : SAME := 0.0d ; |
---|
**** | See $NFE. |
abs : SAME |
---|
card : CARD |
---|
ceiling : SAME |
---|
copysign(other : SAME) : SAME |
---|
cos:SAME |
---|
create(val : CARD) : SAME |
---|
**** | This routine returns the value of val converted to a floating point
___representation. |
create(val : FIELD) : SAME |
---|
**** |
__This_routine_returns_the_value_of_val_converted_to_a_floating_point ___representation. |
create(val : FLT) : SAME |
---|
**** | This routine returns the value of val converted to a floating point representation. |
create(val : FLTD) : SAME |
---|
**** | This routine returns the value of val. It is provided to ensure
___symmetry_of_arithmetic_conversion/creation_routines. |
create(val : INT) : SAME |
---|
**** | This routine returns the value of val converted to a floating point
___representation. |
create(val : INTI) : SAME |
---|
create(val : RAT) : SAME |
---|
cube_root : SAME |
---|
div(other : SAME) : SAME |
---|
double_inv_pi : SAME |
---|
**** | This is a 'routine' returning the implementation-dependent
___approximation_to_twice_the_inverse_of_pi.___Built-in_to_this ___implementation. |
double_sqrt_pi : SAME |
---|
**** | This is a 'routine' returning the implementation-dependent
___approximation_to_twice_the_inverse_of_the_square_root_of_pi.___Built-in_to ___this_implementation. |
e : SAME |
---|
**** | This is a 'routine' returning the implementation-dependent
___approximation_to_the_mathematical_natural_logarithm_base.___Built-in_to ___this_implementation. |
exp : SAME |
---|
**** | This routine returns the exponential e^self. Built-in. |
field : FIELD |
---|
floor : SAME |
---|
flt : FLT |
---|
fltd : FLTD |
---|
get_representation(out sign : BOOL,out exp : INT,out mantissa_lo,out mantissa_hi : CARD) |
---|
half_pi : SAME |
---|
**** |
__This_is_a_'routine'_returning_the_implementation-dependent ___approximation_to_pi/2.___Built-in_to_this_implementation. |
infinity : SAME |
---|
**** | This routine returns the representation of infinity -- which is
___implementation-dependent.___Built-in_to_this_implementation. |
int : INT |
---|
inti : INTI |
---|
inv_pi : SAME |
---|
**** | This is a 'routine' returning the implementation-dependent
___approximation_to_the_inverse_of_pi.___Built-in_to_this_implementation. |
inv_sqrt_2 : SAME |
---|
**** |
__This_is_a_'routine'_returning_the_implementation-dependent __approximation_to_one_divided_by_the_square-root_of_2.___Built-in_to_this __implementation. |
is_eq(other : SAME) : BOOL |
---|
**** | This routine returns tru if and only if self and other have the same
___value.___Built-in_to_this_implementation. |
is_finite : BOOL |
---|
**** | This routine returns true if and only if self is zero, subnormal
___or_normal.___Built-in_to_this_implementation. |
is_inf : BOOL |
---|
**** | This routine returns true if and only if self is infinite. Built-in
___to_this_implementation. |
is_lt(other : SAME) : BOOL |
---|
**** | This rouitne returns true if and only if other is less than self. Built-in to this implementation. |
is_normal : BOOL |
---|
**** | This routine returns true if and only if self is a normalised number. Built-in to this implementation. |
is_subnormal : BOOL |
---|
**** | This routine returns true if and only if self is an un-normalised
___number.___Built-in_to_this_implementation. |
is_zero : BOOL |
---|
**** | This routine returns true if and only if self is zero. Built-in to
___this_implementation. |
log10_e : SAME |
---|
**** | This is a 'routine' returning the implementation-dependent
___approximation_to_e.log10. |
log2_e : SAME |
---|
**** | This is a 'routine' returning the implementation-dependent
___approximation_to_e.log2. |
log : SAME |
---|
**** | This routine returns the natural logarithm of self. Built-in. |
log_10 : SAME |
---|
**** | This is a 'routine' returning the implementation-dependent
___approximation_to_the_natural_logarithm_of_10. |
log_2 : SAME |
---|
**** | This is a 'routine' returning the implementation-dependent
___approximation_to_the_natural_logarithm_of_2. |
max_normal : SAME |
---|
**** | This routine returns the largest normalized positive number
___in_this_class.___Built-in_to_this_implementation. |
max_subnormal : SAME |
---|
**** | This routine returns the largest un-normalized positive number
___in_this_class.___Built-in_to_this_implementation. |
min_normal : SAME |
---|
**** |
__This_routine_returns_the_smallest_normalized_positive_number ___in_this_class.___Built-in_to_this_implementation. |
min_subnormal : SAME |
---|
**** | This routine returns the smallest un-normalized positive number
___in_this_class.___Built-in_to_this_implementation. |
minus(other : SAME) : SAME |
---|
mod(other : SAME) : SAME |
---|
negate : SAME |
---|
nextdown : SAME |
---|
nextup : SAME |
---|
pi : SAME |
---|
**** | This is a 'routine' returning the implementation-dependent
___approximation_to_the_mathematical_number_pi.___Built-in_to_this ___implementation. |
plus(other : SAME) : SAME |
---|
pow(arg : SAME) : SAME |
---|
**** | This routine returns self raised to the arg'th power. Note that
___self.pow(0.0)_=_1.0_for_all_self.___Built-in. |
quarter_pi : SAME |
---|
**** |
__This_is_a_'routine'_returning_the_implementation-dependent ___approximation_to_pi/4.___Built-in_to_this_implementation. |
quiet_NaN(sig : INT) : SAME |
---|
**** | 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. |
rat : RAT |
---|
remainder(other : SAME) : SAME |
---|
round : SAME |
---|
scale_by(exp : INT) : SAME |
---|
signalling_NaN(sig : INT) : SAME |
---|
**** | 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.___Built-in_to_this ___implementation. |
signbit_set : BOOL |
---|
**** | This routine returns true if and only if the sign bit of self is
___set.___Built-in_to_this_implementation. |
sin:SAME |
---|
sqrt : SAME |
---|
sqrt_2 : SAME |
---|
**** |
__This_is_a_'routine'_returning_the_implementation-dependent ___approximation_to_the_square_root_of_2.___Built-in_to_this_implementation. |
tan:SAME |
---|
times(other : SAME) : SAME |
---|
truncate : SAME |
---|
unbiassed_exponent : INT |
---|
const asize : CARD := 8 ; |
---|
**** | ---------------???????? FUDGE!! |
cos_approx(x2, xn:SAME, n:CARD):SAME |
---|
**** | n+2-th and later terms of Tayler series. x2=x^2, xn=(+-1) x^n/n! |
cos_approx:SAME |
---|
cuberoot : SAME |
---|
**** | This routine returns the cube root of self. It is provided
___to_avoid_the_circularity_in_cube_and_cube-root_pre-requisites!__Built-in ___to_this_implementation. |
next_down : SAME |
---|
**** | This routine returns the next lower representable number from self.
___Note_that_this_version_has_NO_pre_requisites_in_order_to_prevent ___circularity_between_the_public_versions_of_nextup_and_nextdown.__Built-in ___to_this_implementation. |
next_up : SAME |
---|
**** | This private routine returns the next higher representable number
___from_self.___Note_that_this_version_has_NO_pre_requisites_in_order_to ___prevent_circularity_between_the_public_versions_of_nextup_and_nextdown. ___Built-in_to_this_implementation. |
sin_approx(x2, xn:SAME, n:CARD):SAME |
---|
**** | n+2-th and later terms of Tayler series. x2=x^2, xn=(+-1) x^n/n! |
sin_approx:SAME |
---|
square_root : SAME |
---|
**** | This private routine returns the square root of self. It is provided
___to_avoid_the_circularity_in_square_and_square-root_pre-requisites! ___Built-in_to_this_implementation. |