- All Implemented Interfaces:
- Serializable, Comparable<Real>, javolution.lang.Immutable, javolution.lang.Realtime, javolution.lang.ValueType, javolution.xml.XMLSerializable, Field<Real>, GroupAdditive<Real>, GroupMultiplicative<Real>, Ring<Real>, Structure<Real>
This class represents a real number of arbitrary precision with known/guaranteed uncertainty. A real number consists of a
significand, a maximum
error(on the significand value) and a decimal
(significand \xc2\xb1 error) \xc2\xb7 10exponent).
Reals number can be
exact(e.g. integer values scaled by a power of ten). Exactness is maintained for
Ringoperations (e.g. addition, multiplication), but typically lost when a multiplicative
inverseis calculated. The minimum precision used for exact numbers is set by
context localsetting, default
Operations on instances of this class are quite fast as information substantially below the precision level (aka noise) is not processed/stored. There is no limit on a real precision but precision degenerates (due to numeric errors) and calculations accelerate as more and more operations are performed.
Instances of this class can be utilized to find approximate solutions to linear equations using the
Matrixclass for which high-precision reals is often required, the primitive type
doublebeing not accurate enough to resolve equations when the matrix\'s size exceeds 100x100. Furthermore, even for small matrices the "qualified" result is indicative of possible system singularities.