:: (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 x (ie axis or direction) to integrate in
|
-> d | origin in terms of variable x
|
-> Maybe (box) | support, 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] -> 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.
|