Portability  nonportable (requires fenv.h) 

Stability  experimental 
Maintainer  mik@konecny.aow.cz 
This module bundles some of the most important functionality of the AERNReal package. It is intended to be imported *qualified*.
AERNReal provides datatypes and abstractions for approximating exact real numbers and a basic arithmetic over such approximations. The approach is inspired to some degree by Mueller's iRRAM and Lambov's RealLib (both are C++ libraries for exact real arithmetic).
Abstractions are provided via 4 type classes:

ERRealBase
: generalises floating point numbers (not exported here, used only internally) 
ERApprox
: generalises measurable subsets of real numbers 
ERIntApprox
: generalises interval neighbourhoods of real numbers 
ERApproxElementary
: generalises real number approximations that support elementary operations
For ERRealBase we give several implementations. The default is an arbitrary precision floating point type that uses Double for lower precisions and an Integerbased simulation for higher precisions. Rational numbers can be used as one of the alternatives. Augustsson's Data.Number.BigFloat can be easily wrapped as an instance of ERRealBase except that it uses a different method to control precision. Optionally, one can also have MPFR floating point numbers via package hmpfr if compiled with USE_MPFR.
ERIntApprox is implemented via outwardsrounded arbitrary precision interval arithmetic. Any instance of ERRealBase can be used for the endpoints of the intervals.
ERApproxElementary is implemented generically for any implementation of ERIntApprox. This way some of the most common elementary operations are provided, notably: sqrt, exp, log, sin, cos, atan. These operations converge to an arbitrary precision and also work well over larger intervals without excessive wrapping.
There is also some support for generic Taylor series, interval Newton method and simple numerical integration.