AERN-RnToRm-0.4.9.1: polynomial function enclosures (PFEs) approximating exact real functionsSource codeContentsIndex
Data.Number.ER.RnToRm.BisectionTree.Integration
Portabilityportable
Stabilityexperimental
Maintainermik@konecny.aow.cz
Description
To be imported qualified, usually with prefix BTINTEG.
Synopsis
zipFromOrigin :: (ERIntApprox d, DomainIntBox box varid d, Show v1, Show v2, Show valPass) => ValueSplitter box varid d v1 -> ValueCombiner box varid d v1 -> EffortIndex -> varid -> d -> Maybe box -> (Maybe valPass -> Maybe valPass -> [BisectionTree box varid d v1] -> [BisectionTree box varid d v2]) -> (EffortIndex -> Depth -> box -> [v1] -> [v2] -> Bool) -> (EffortIndex -> Depth -> box -> [v1] -> (valPass, [v2], valPass)) -> (EffortIndex -> Depth -> box -> valPass -> [v1] -> ([v2], valPass)) -> (EffortIndex -> Depth -> box -> [v1] -> valPass -> (valPass, [v2])) -> [BisectionTree box varid d v1] -> [BisectionTree box varid d v2]
zipOnSubdomain :: (ERIntApprox d, DomainIntBox box varid d) => ValueSplitter box varid d v1 -> EffortIndex -> Depth -> box -> (box -> [v1] -> [v2]) -> (box -> [v1] -> [v2]) -> (box -> [v1] -> [v2]) -> [BisectionTree box varid d v1] -> [BisectionTree box varid d v2]
Documentation
zipFromOriginSource
:: (ERIntApprox d, DomainIntBox box varid d, Show v1, Show v2, Show valPass)
=> ValueSplitter box varid d v1
-> ValueCombiner box varid d v1
-> EffortIndex
-> varidvariable x (ie axis or direction) to integrate in
-> dorigin in terms of variable x
-> Maybe boxsupport, ie the domain on which to zip (automatically extended to include origin when projected to x)
-> Maybe valPass -> Maybe valPass -> [BisectionTree box varid d v1] -> [BisectionTree box varid d v2]what to do outside the support, possibly being passed values from left/right when leaving the support
-> EffortIndex -> Depth -> box -> [v1] -> [v2] -> Boolshould a leaf be split?
-> EffortIndex -> Depth -> box -> [v1] -> (valPass, [v2], valPass)integrator for a leaf containing the origin
-> EffortIndex -> Depth -> box -> valPass -> [v1] -> ([v2], valPass)integrator over a leaf that sees the origin towards -infinity
-> EffortIndex -> Depth -> box -> [v1] -> valPass -> (valPass, [v2])integrator over a leaf that sees the origin towards +infinity
-> [BisectionTree box varid d v1]input functions
-> [BisectionTree box varid d v2]

output functions

The number of output functions does not have to be the same as the number of input functions.

Transform a bunch of bisection trees over the same domain by integrating them in a very abstract sense. The trees are unified in their splitting patterns in the process. By supplying certain parameters, this function can in fact perform numerical integration of piece-wise polynomial functions.

It can be also viewed as a zipping+folding operator over bisection trees that generates another bunch of bisection trees, synchronously traversing the original trees from a certain point on a selected axis outwards in both directions, carrying some data along.

zipOnSubdomainSource
:: (ERIntApprox d, DomainIntBox box varid d)
=> ValueSplitter box varid d v1
-> EffortIndex
-> Depthdepth limit
-> boxsubdomain sd
-> box -> [v1] -> [v2]what to do with values inside sd
-> box -> [v1] -> [v2]what to do with values outside sd but touching it
-> box -> [v1] -> [v2]what to do with values outside sd
-> [BisectionTree box varid d v1]
-> [BisectionTree box varid d v2]

Zip a list of bisection trees in synchrony but do something else inside and not inside a given subdomain.

Further splitting at default points will be done up to the given depth in an attempt to separate the subdomain as well as possible.

If the subdomain is not properly isolated by the splitting at the maximum depth, splits are made at irregular points to ensure full isolation of the subdomain.

Produced by Haddock version 2.4.2