Name: AERN-Real Version: 0.9.3.1 Cabal-Version: >= 1.2 Build-Type: Simple License: BSD3 License-File: LICENCE Author: Michal Konecny (Aston University) Copyright: (c) 2007-2008 Michal Konecny, Amin Farjudian, Jan Duracz Maintainer: mik@konecny.aow.cz Stability: experimental Category: Data, Math Synopsis: datatypes and abstractions for approximating exact real numbers Tested-with: GHC ==6.8.2 Description: Datatypes and abstractions for approximating exact real numbers and a basic arithmetic over such approximations. The design 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: abstracts floating point numbers . * ERApprox: abstracts neighbourhoods of real numbers . * ERIntApprox: abstracts neighbourhoods of real numbers that are known to be intervals . * ERApproxElementary: abstracts 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 Integer-based 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. . ERIntApprox is implemented via outwards-rounded 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. Extra-source-files: HISTORY tests/Test1.hs Flag containers-in-base Default: False Library hs-source-dirs: src if flag(containers-in-base) Build-Depends: base < 3, binary >= 0.4, haskell98 else Build-Depends: base >= 3, containers, binary >= 0.4, haskell98 Exposed-modules: Data.Number.ER, Data.Number.ER.Real, Data.Number.ER.Real.DefaultRepr, Data.Number.ER.Real.Base.MachineDouble, Data.Number.ER.Real.Base.CombinedMachineAP, Data.Number.ER.Real.Base.Rational, Data.Number.ER.Real.Base.Float, Data.Number.ER.Real.Base, Data.Number.ER.Real.Arithmetic.Elementary, Data.Number.ER.Real.Arithmetic.Integration, Data.Number.ER.Real.Arithmetic.Taylor, Data.Number.ER.Real.Arithmetic.Newton, Data.Number.ER.Real.Approx.Sequence, Data.Number.ER.Real.Approx.Elementary, Data.Number.ER.Real.Approx.Interval, Data.Number.ER.Real.Approx, Data.Number.ER.PlusMinus, Data.Number.ER.BasicTypes, Data.Number.ER.Misc, Data.Number.ER.ExtendedInteger Extensions: DeriveDataTypeable, ForeignFunctionInterface, ScopedTypeVariables