# Section 8.12:
Numeric Classes

This section of the required library contains definitions of those abstractions and classes which provide numeric values (including the class MONEY!).

1. Abstract Classes

   1. $NFE - this abstraction is defined over Numeric Field Elements (hence the name $NFE) which have a unity and other positive values (although not necessarily a zero value).
   2. $ZERO - this abstraction models the concept of zero as a number.
   3. $ADD_OPS - this abstraction models the concepts of addition and subtraction of numbers.
   4. $CONVERSION - this abstraction models all value conversion operations between the different numeric model values (without any loss of precision/accuracy).
   5. $ARITHMETIC - this abstraction models numeric types having multiplicative operations in their range and domain.
   6. $LIMITED - this abstraction models the concept of implementation limitations on the range of values representable for some numeric type.
   7. $SIGNED - this abstraction over the domain of signed number classes models operations which apply to values of those classes only.
   8. $COUNTS - this abstraction over the domain of exact number classes models the concept of counting methods.
   9. $SEQUENCERS - this abstraction over the domain of exact number classes models the concept of number sequences.
   10. $ROUNDING - this abstraction models the mathematical domain of approximate number transformation to an exact value by rounding/truncating, etc.
   11. $VALUE_ITERS - this abstraction models the domain of numeric classes which provide features for value iteration.
   12. $IEEE_FLOAT - this abstraction models the special operations on approximate number values sepcified by the IEEE 754 standard.
   13. $LOG_OPS - this abstraction models the mathematical domain of numbers for which logarithmic operations are appropriate.
   14. $ORDINAL - this abstraction models the mathematical domain of ordinal numbers.
   15. $SIMPLE_NUM - this abstraction models those numeric classes for which the concept of a linear range and tolerances is meaningful.
   16. $WHOLE_NUM - this abstraction models those numeric classes which have an exact representation in an implementation.
   17. $CARDINAL - this abstraction models the mathematical domain of cardinal numbers.
   18. $INTEGER - this abstraction models the mathematical domain of integer numbers.
   19. $RATIONAL - this abstraction models the mathematical domain of rational numbers.
   20. $REAL - this abstraction models the mathematical domain of real numbers.
   21. $COMPLEX - this abstraction models complex numbers consisting of real and imaginary parts.
   22. $RANGE - this abstraction models sub-ranges of simple numeric types.
   23. $RANDOM_GEN - this abstraction models a random number generator.

2. Immutable Classes

   1. CARD - this class implements numbers in the Natural number domain within the limitations specified in this definition document (see Annex A).
   2. FIELD - this class implements numbers in the Natural number domain within the limitations specified in this definition document (see Annex A) as in a closed Galois field where no arithmetic underflow or overflow occurs.
   3. INT - this class implements numbers in the Whole number domain within the limitations specified in this definition document (see Annex A).
   4. FLT - this class implements numbers in the Real number domain within the limitations specified by the standard specified in Section 4 for single length numbers.
   5. FLTD - this class implements numbers in the Real number domain within the limitations specified by the standard specified in Section 4 for double length numbers.
   6. CPX - this class implements numbers in the Complex number domain as having two single length real number components.
   7. CPXD - this class implements numbers in the Complex number domain as having two double length real number components.
   8. MONETARY_UNITS - this enumeration class implements all of the world currencies, together with their exchange rates.
   9. RANGE - this class implements a subrange of the Natural number domain as values of type CARD.
   10. INT_RANGE - this class implements a subrange of the Whole number domain as values of type INT.

3. Reference Classes

   1. INTI - this class implements numbers in the mathematical domain of whole numbers - with potentially infinite range - which shall only depend on the storage capacity of the machine executing a program. An object of this class has immutable semantics.
   2. RAT - this class implements numbers in the mathematical domain of rational numbers - with potentially infinite range and precision - which shall only depend on the storage capacity of the machine executing a program. An object of this class has immutable semantics.
   3. MONEY - this class implements values in a money domain in the domain of the culture in which a program is executing.
   4. WHITE_GEN - this class generates random numbers ideally as white noise.
   5. RANDOM - this class providea random numbers of various numeric types and ranges as produced by a white noise generator.

| Language Index |  | Library Index

Comments or enquiries should be made to Keith Hopper. Page last modified: Wednesday, 21 February 2001. |