Closed April-Hannah-Lena closed 1 year ago
Nice, thanks. Great idea to enable the precomposition with the map. Would it be possible to make a BoxFun
behave like a vector, i.e. have addition and scalar multiplication?
Nice, thanks. Great idea to enable the precomposition with the map. Would it be possible to make a
BoxFun
behave like a vector, i.e. have addition and scalar multiplication?
It definitely would be possible, though the interface for custom broadcasting in julia is a bit complicated. I suppose also we have to ask: fundamentally, should a BoxFun be viewed as a vector (where broadcasting etc makes sense), or as a function (operations should be done through composition with other functions)?
The current functionality to would be to use findnz
from SparseArrays to get a vector, perform whatever vector operations on the result, and then create a new BoxFun from that vector. But that requires some knowledge on the internals of the struct. Maybe that workflow can be simplified, e.g. something like
mu = # existing BoxFun
vals = Vector(mu)
A = # some kind of matrix maybe
vals_new = A * vals .+ exp.(vals) # some operation
mu_new = BoxFun(mu, vals_new)
Sorry, I actually meant function, and so more precisely the question is whether we can give the BoxFun
s a vector space structure.
I've updated the documentation to include some new things:
collect(W)
, iteration, etc.The FTLE algorithm has also been updated to make more sense and fit with the GAIO.jl usage pattern.
BoxFun also got two added features:
∘(boxfun::BoxFun, F::BoxMap)
just applies the Koopman operator for F to the BoxFunmore detailed interface for integrating over boxfuns, as shown in the new docstring (the LaTeX is rendered in the actual docs page):
If a BoxSet
B
is passed as the third argument, then the integration is restricted to the boxes inB
The notation
μ(B)
is offered to compute\mu (\bigcup_{b \in B} b)
.