summaryrefslogtreecommitdiff
path: root/AERN-RnToRm.cabal
blob: 3625f7b368b2bd28404513c6098d5c68fdeee76d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
Name:           AERN-RnToRm
Version:        0.3.0
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.
        (/Not exported here, used only internally./)
     .
        * ERFnApprox:
        generalises functions enclosures on a certain unspecified domain.
     .
        * ERUnitFnApprox (extends ERFnApprox): generalises function graph enclosures
        on the domain @[-1,1]^n@.
        (/Not exported here, used only internally./)
     .
        * ERFnDomApprox (extends ERFnApprox):
        generalises function enclosures over a specified and queriable domain box
        (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. 
     .
     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