iRRAM – Exact Arithmetic in C++

The iRRAM is a C++ package for error-free real arithmetic based on the concept of a Real-RAM. Its capabilities range from ordinary arithmetic over trigonometric functions to linear algebra and even differential equations.

A program for the iRRAM is coded in ordinary C++, but may use a special class REAL, that behaves like real numbers without any error. A quite small set of operations is allowed to be used directly with variables of this type: usual arithmetic operations, tests and conversion to/from integer or other types. On top of them, programms may use (almost) all programming methods from C++, like defining own data types (like real matrices or complex numbers, which are already implemented in this way).

The ability of computing limits of (special) sequences seems to be a unique feature of the iRRAM. The limited scope of algebraic or symbolic computations on real numbers is left as soon as these operators are used. From this point on, Type 2 Theory of Effectivity (TTE) (see CCA Net) is the best fitting theoretical model. One unavoidable drawback is that only continuous functions on real numbers can be implemented. However, the iRRAM uses the concept of multi-valued functions significantly facilitating the formulations of algorithms.