Portability | portable |
---|---|
Stability | experimental |
Maintainer | mik@konecny.aow.cz |
To be imported qualified, usually with prefix BTINTEG.
- 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
:: (ERIntApprox d, DomainIntBox box varid d, Show v1, Show v2, Show valPass) | |
=> ValueSplitter box varid d v1 | |
-> ValueCombiner box varid d v1 | |
-> EffortIndex | |
-> varid | variable |
-> d | origin in terms of variable |
-> Maybe box | support, ie the domain on which to zip
(automatically extended to include origin when projected to |
-> (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] -> Bool) | should 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.
:: (ERIntApprox d, DomainIntBox box varid d) | |
=> ValueSplitter box varid d v1 | |
-> EffortIndex | |
-> Depth | depth limit |
-> box | subdomain |
-> (box -> [v1] -> [v2]) | what to do with values inside |
-> (box -> [v1] -> [v2]) | what to do with values outside |
-> (box -> [v1] -> [v2]) | what to do with values outside |
-> [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.