I’ve defined my own subtype of DenseArray called CartesianState. The source code is available here. The following functionality works…
state = CartesianState(randn(6))
similar(state)
SymbolicUtils.Code.create_array(::Type{<:CartesianState}, ...)
# others
I’d like to use my custom array as a type for DifferentialEquations solvers. I can use my new array type to make an ODEProblem, and solving the problem returns a valid ODESolution.
The ODESolution u field is a Vector of CartesianState values – great! But when I interpolate between time steps via (::ODESolution)(t), I get a Vector{Float64} back.
I’ve traced this back to OrdinaryDiffEq.ode_interpolation, but I can’t figure out where that function’s output type is determined. Does anyone know offhand?