14. A computer-implemented method for providing a common generic interface that supports various mathematical properties comprising the steps of: providing a statically typed software development language that implements, in the logic of a computing device, a public arithmetic class having an object model that includes a public generic interface that defines basic arithmetic operations, thereby allowing basic arithmetic operations to be performed on a plurality of numeric types, the public generic interface being implementable by the plurality of numeric types, a public arithmetic descriptor class that describes the numeric properties of each of the plurality of numeric types implementing the public generic interface, and an arithmetic capabilities enumeration used by the public arithmetic descriptor class; changing, using the public generic interface, to a second one of the numeric types in response to a determination that a result of an operation being performed on a first one of the numeric types would not fit within a range supported by the first one of the numeric types; and retrieving, using the arithmetic capabilities enumeration, one or more mathematical properties for a particular one of the numeric types being used in a particular circumstance.
14. A computer-implemented method for providing a common generic interface that supports various mathematical properties comprising the steps of: providing a statically typed software development language that implements, in the logic of a computing device, a public arithmetic class having an object model that includes a public generic interface that defines basic arithmetic operations, thereby allowing basic arithmetic operations to be performed on a plurality of numeric types, the public generic interface being implementable by the plurality of numeric types, a public arithmetic descriptor class that describes the numeric properties of each of the plurality of numeric types implementing the public generic interface, and an arithmetic capabilities enumeration used by the public arithmetic descriptor class; changing, using the public generic interface, to a second one of the numeric types in response to a determination that a result of an operation being performed on a first one of the numeric types would not fit within a range supported by the first one of the numeric types; and retrieving, using the arithmetic capabilities enumeration, one or more mathematical properties for a particular one of the numeric types being used in a particular circumstance. 18. A computer-readable storage device having computer-executable instructions recorded thereon for causing a computer to perform the steps recited in claim 14 .