Dear All,
I am trying to make PiecewiseDeterministicMarkovProcesses.jl (I am the creator) work with StaticArrays.jl. To this end, I try running the example file by appending
using StaticArrays
sxc0 = @MVector [ 1.0 ]
sxd0 = @MVector [1]
res = @time PDMP.chv_diffeq!(sxc0, sxd0, F_fd!, R_fd!,Dummy!, nu_fd, parms, 0.0, 10.0,false; n_jumps = 30, ode = Tsit5(),save_positions = (false, false))
However, I am unable to even create a problem as I get the error:
ERROR: DimensionMismatch("expected input array of length 1, got length 2")
Stacktrace:
[1] dimension_mismatch_fail(::Type, ::Array{Float64,1}) at /Users/rveltz/.julia/packages/StaticArrays/VyRz3/src/convert.jl:18
[2] convert at /Users/rveltz/.julia/packages/StaticArrays/VyRz3/src/convert.jl:23 [inlined]
[3] PiecewiseDeterministicMarkovProcesses.PDMPProblem{Float64,Int64,MArray{Tuple{1},Float64,1,1},MArray{Tuple{1},Int64,1,1},Array{Int64,2},Array{Float64,1},typeof(F_fd!),typeof(R_fd!),typeof(PiecewiseDeterministicMarkovProcesses.Delta_dummy)}(::MArray{Tuple{1},Float64,1,1}, ::MArray{Tuple{1},Int64,1,1}, ::typeof(F_fd!), ::typeof(R_fd!), ::typeof(PiecewiseDeterministicMarkovProcesses.Delta_dummy), ::Array{Int64,2}, ::Array{Float64,1}, ::Float64, ::Float64, ::Bool, ::Bool, ::Bool) at /Users/rveltz/work/prog_gd/julia/dev/PiecewiseDeterministicMarkovProcesses.jl/src/utils.jl:44
[4] #chv_diffeq!#70 at /Users/rveltz/work/prog_gd/julia/dev/PiecewiseDeterministicMarkovProcesses.jl/src/chvdiffeq.jl:68 [inlined]
[5] (::getfield(PiecewiseDeterministicMarkovProcesses, Symbol("#kw##chv_diffeq!")))(::NamedTuple{(:n_jumps, :ode, :save_positions),Tuple{Int64,Tsit5,Tuple{Bool,Bool}}}, ::typeof(chv_diffeq!), ::MArray{Tuple{1},Float64,1,1}, ::MArray{Tuple{1},Int64,1,1}, ::typeof(F_fd!), ::typeof(R_fd!), ::typeof(PiecewiseDeterministicMarkovProcesses.Delta_dummy), ::Array{Int64,2}, ::Array{Float64,1}, ::Float64, ::Float64, ::Bool) at none:0
[6] top-level scope at none:0
Please note that the following works!! So the issue seems to be related to sxc0
.
res = @time PDMP.chv_diffeq!(xc0, sxd0, F_fd!, R_fd!,Dummy!, nu_fd, parms, 0.0, 10.0,false; n_jumps = 30, ode = Tsit5(),save_positions = (false, false))
I spend some time trying to debug it but I am stuck. I would appreciate if one can give me a little push.
Thank you for your help,
Best regards