packages feed

AERN-Real-0.9.3: AERN-Real.cabal

Name:           AERN-Real
Version:        0.9.3
Cabal-Version:  >= 1.2
Build-Type:     Simple
License:        BSD3
License-File:   LICENCE
Author:         Michal Konecny
Copyright:      (c) 2007-2008 Michal Konecny, Amin Farjudian, Jan Duracz 
Maintainer:     Michal Konecny
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