arbitrary precision real interval arithmetic.
This package provides bindings and tests for using machine Double values as endpoints for the interval arithmetic defined in packages AERN-Basics and AERN-Real.
Most users of this package will only need to import one end-user API module. There is a choice of three such modules, each providing a different level of abstraction for the type of intervals with Double endpoints:
Numeric.AERN.DoubleBasis.RealApprox
gives RealApprox - an abstract data type limited to operations that interpret each interval strictly as an approximation to a single real number. As an instance of Fractional, the numerical operations safely overapproximate the exact real operations by rounding the intervals outwards.Numeric.AERN.DoubleBasis.RealIntervalApprox
gives RealIntervalApprox - an abstract data type limited to operations that interpret each interval strictly as an approximation to a set of real numbers. All RealApprox operations are available also for RealIntervalApprox. Additionally, one can create approximations that certainly cover two given approximations and one can perform all operations rounding inwards to allow safe semi-deciding of set inclusions. As a consequence of inner rounding, anti-consistent intervals such as [1,0] may arise and are treated using Kaucher arithmetic.Numeric.AERN.DoubleBasis.Interval
gives full access to the interval type, including the Double endpoints.
The accompanying modules Numeric.AERN.DoubleBasis.MRealApprox
, Numeric.AERN.DoubleBasis.MRealIntervalApprox
and Numeric.AERN.DoubleBasis.MInterval
add in-place versions of most of the pure operations provided by the respective above module.
For further information, please refer to the documentation of these six modules and the sample programs in the demo folder.
This package does not compile with ghc 7.0.* due to a compiler bug that has been fixed for the 7.2.1 release. Haddock documentation can be found via http://code.google.com/p/aern/wiki/Main.