AERN-RnToRm-0.3.0.2: AERN-RnToRm.cabal
Name: AERN-RnToRm
Version: 0.3.0.2
Cabal-Version: >= 1.2
Build-Type: Simple
License: BSD3
License-File: LICENCE
Author: Michal Konecny (Aston University)
Copyright: (c) 2007-2008 Michal Konecny
Maintainer: mik@konecny.aow.cz
Stability: experimental
Category: Data, Math
Synopsis: polynomial function enclosures (PFEs) approximating exact real functions
Tested-with: GHC ==6.8.2
Description:
AERN-RnToRm provides
datatypes and abstractions for approximating functions
of type @D -> R^m@ where @D@ is a bounded interval in @R^n@
with non-empty interior.
.
Abstractions are provided via 4 type classes:
.
* ERUnitFnBase:
generalises polynomials with floating point coefficients.
.
* ERFnApprox:
generalises functions enclosures on a certain unspecified domain.
.
* ERUnitFnApprox (extends ERFnApprox): generalises function graph enclosures
on the domain @[-1,1]^n@.
.
* ERFnDomApprox (extends ERFnApprox):
generalises function enclosures over a specified and queriable domain box
(an instance of class DomainBox).
.
At all levels, all field operations are supported as well as
some elementary operations, namely exp, sin and cos.
Log and sqrt are planned to be added soon.
End users are expected to work only with implementations of ERFnDomApprox.
.
Implementations of ERUnitFnBase:
.
* ERChebPoly
.
By using the Chebyshev basis on domain @[-1,1]^n@,
we gain simple and optimally rounding degree reduction
as well as relatively simple handling of rounding
in other operations.
.
Implementations of ERUnitFnApprox:
.
* ERFnInterval
.
Implementations of ERFnDomApprox:
.
* ERFnDomTranslApprox:
builds a basic implementation
using an instance of ERUnitFnApprox.
.
* ERFnTuple:
extends another implementation of ERFnDomApprox
to work with lists of functions simultaneously.
.
* ERFnDomEdgesApprox:
separately enclose a function on its domain box
as well as on all the domain's hyper-edges
(including the corners) using
another implementation of ERFnDomApprox.
.
* ERFnPiecewise:
allows the domain box to be bisected
to an arbitrary finite depth
and uses another implementation of ERFnDomApprox
to approximate the function on each segment.
.
Simple examples of usage can be found in /tests/: Demo.hs.
Extra-source-files:
ChangeLog tests/Demo.hs
Flag containers-in-base
Default: False
Library
hs-source-dirs: src
if flag(containers-in-base)
Build-Depends:
base < 3, binary >= 0.4, AERN-Real == 0.9.6
else
Build-Depends:
base >= 3, containers, binary >= 0.4, AERN-Real == 0.9.6
Exposed-modules:
Data.Number.ER.RnToRm,
Data.Number.ER.RnToRm.BisectionTree.Path,
Data.Number.ER.RnToRm.BisectionTree.Integration,
Data.Number.ER.RnToRm.BisectionTree,
Data.Number.ER.RnToRm.DefaultRepr,
Data.Number.ER.RnToRm.UnitDom.ChebyshevBase.Polynom.Basic,
Data.Number.ER.RnToRm.UnitDom.ChebyshevBase.Polynom.Elementary,
Data.Number.ER.RnToRm.UnitDom.ChebyshevBase.Polynom.Field,
Data.Number.ER.RnToRm.UnitDom.ChebyshevBase.Polynom.Integration,
Data.Number.ER.RnToRm.UnitDom.ChebyshevBase.Polynom.Eval,
Data.Number.ER.RnToRm.UnitDom.ChebyshevBase.Polynom.Bounds,
Data.Number.ER.RnToRm.UnitDom.ChebyshevBase.Polynom,
Data.Number.ER.RnToRm.UnitDom.Base,
Data.Number.ER.RnToRm.UnitDom.Approx.Interval,
Data.Number.ER.RnToRm.UnitDom.Approx,
Data.Number.ER.RnToRm.Approx.DomTransl,
Data.Number.ER.RnToRm.Approx.PieceWise,
Data.Number.ER.RnToRm.Approx.DomEdges,
Data.Number.ER.RnToRm.Approx.Tuple,
Data.Number.ER.RnToRm.Approx,
Data.Number.ER.RnToRm.TestingDefs
Extensions:
CPP,
DeriveDataTypeable,
FlexibleContexts,
FlexibleInstances,
FunctionalDependencies,
MultiParamTypeClasses,
UndecidableInstances