Math
The math group provides inline functions for working with floating point numbers. It aims to control Epsilon (the precision of the number) in order to allow rational computation of the binary boolean comparison operators. It also provides for discontinuous mathematical operators, floor(), ciel(), round() and so on.
Math provides a very fast integer square root, compatible with a 32 bit unsigned argument.
A class for the management of complex numbers, with standard complex operators, is available.
A class is available for storage and manipulation of large integers. A comprehensive range of operators is available. The length (bit size) of such integers is limited only by the compute power available on the target hardware. The module does not currently use MMX, but it's use has been identified as beneficial. Prototype implementations of the MMX extensions have been tested. The extensions are avoided (currently) for reasons of source code compatibility.
Classes for managing numeric ranges are available for each of the basic types, including floating point. These classes allow 1 dimensional ranges to be specified and interfered.
|