Skip to content
Snippets Groups Projects
Commit 80eb2e36 authored by Bentriou Mahmoud's avatar Bentriou Mahmoud
Browse files

Fix about types of transition arrays

parent 8fa83b7f
No related branches found
No related tags found
No related merge requests found
......@@ -18,7 +18,7 @@ mutable struct ContinuousTimeModel <: Model
map_var_idx::Dict{VariableModel,Int} # maps variable str to index in the state space
_map_obs_var_idx::Dict{VariableModel,Int} # maps variable str to index in the observed state space
map_param_idx::Dict{ParameterModel,Int} # maps parameter str to index in the parameter space
transitions::Vector{<:Transition}
transitions::Vector{Transition}
p::Vector{Float64}
x0::Vector{Int}
t0::Float64
......@@ -35,17 +35,17 @@ struct Trajectory <: AbstractTrajectory
m::ContinuousTimeModel
values::Vector{Vector{Int}}
times::Vector{Float64}
transitions::Vector{<:Transition}
transitions::Vector{Transition}
end
struct Edge
transitions::Vector{<:Transition}
transitions::Vector{Transition}
check_constraints::Function
update_state!::Function
end
struct LHA
transitions::Vector{<:Transition}
transitions::Vector{Transition}
locations::Vector{Location}
Λ::Dict{Location,Function}
locations_init::Vector{Location}
......@@ -74,7 +74,7 @@ struct SynchronizedTrajectory <: AbstractTrajectory
sm::SynchronizedModel
values::Vector{Vector{Int}}
times::Vector{Float64}
transitions::Vector{<:Transition}
transitions::Vector{Transition}
end
struct ParametricModel
......@@ -86,12 +86,13 @@ end
# Constructors
function ContinuousTimeModel(dim_state::Int, dim_params::Int, map_var_idx::Dict{VariableModel,Int},
map_param_idx::Dict{ParameterModel,Int}, transitions::Vector{<:Transition},
map_param_idx::Dict{ParameterModel,Int}, transitions::Vector{<:Transition},
p::Vector{Float64}, x0::Vector{Int}, t0::Float64,
f!::Function, isabsorbing::Function;
g::Vector{VariableModel} = keys(map_var_idx), time_bound::Float64 = Inf,
buffer_size::Int = 10, estim_min_states::Int = 50, name::String = "Unnamed")
dim_obs_state = length(g)
transitions = convert(Vector{Transition}, transitions)
_map_obs_var_idx = Dict()
_g_idx = Vector{Int}(undef, dim_obs_state)
for i = 1:dim_obs_state
......
......@@ -9,7 +9,7 @@ l_tr_ER = [:R1,:R2,:R3]
p_ER = [1.0, 1.0, 1.0]
x0_ER = [100, 100, 0, 0]
t0_ER = 0.0
function ER_f!(xnplus1::Vector{Int}, l_t::Vector{Float64}, l_tr::Vector{<:Transition},
function ER_f!(xnplus1::Vector{Int}, l_t::Vector{Float64}, l_tr::Vector{Transition},
xn::Vector{Int}, tn::Float64, p::Vector{Float64})
@inbounds a1 = p[1] * xn[1] * xn[2]
@inbounds a2 = p[2] * xn[3]
......
......@@ -9,7 +9,7 @@ l_tr_SIR = [:R1,:R2]
p_SIR = [0.0012, 0.05]
x0_SIR = [95, 5, 0]
t0_SIR = 0.0
function SIR_f!(xnplus1::Vector{Int}, l_t::Vector{Float64}, l_tr::Vector{<:Transition},
function SIR_f!(xnplus1::Vector{Int}, l_t::Vector{Float64}, l_tr::Vector{Transition},
xn::Vector{Int}, tn::Float64, p::Vector{Float64})
@inbounds a1 = p[1] * xn[1] * xn[2]
@inbounds a2 = p[2] * xn[2]
......
......@@ -10,7 +10,7 @@ l_tr_SIR_tauleap = [:U]
p_SIR_tauleap = [0.0012, 0.05, 5.0]
x0_SIR_tauleap = [95, 5, 0]
t0_SIR_tauleap = 0.0
function SIR_tauleap_f!(xnplus1::Vector{Int}, l_t::Vector{Float64}, l_tr::Vector{<:Transition},
function SIR_tauleap_f!(xnplus1::Vector{Int}, l_t::Vector{Float64}, l_tr::Vector{Transition},
xn::Vector{Int}, tn::Float64, p::Vector{Float64})
tau = p[3]
a1 = p[1] * xn[1] * xn[2]
......
......@@ -10,7 +10,7 @@ p = [1.0, 1.0, 1.0]
x0 = [100, 100, 0, 0]
t0 = 0.0
function ER_col_f!(xnplus1::Vector{Int}, tnplus1::Vector{Float64}, tr::Vector{<:Transition},
function ER_col_f!(xnplus1::Vector{Int}, tnplus1::Vector{Float64}, tr::Vector{Transition},
xn::AbstractVector{Int}, tn::Float64, p::Vector{Float64})
a1 = p[1] * xn[1] * xn[2]
a2 = p[2] * xn[3]
......
......@@ -9,7 +9,7 @@ l_tr = [:R1,:R2,:R3]
p = [1.0, 1.0, 1.0]
x0 = [100, 100, 0, 0]
t0 = 0.0
function ER_col_buffer_f!(mat_x::Matrix{Int}, l_t::Vector{Float64}, l_tr::Vector{<:Transition}, idx::Int,
function ER_col_buffer_f!(mat_x::Matrix{Int}, l_t::Vector{Float64}, l_tr::Vector{Transition}, idx::Int,
xn::AbstractVector{Int}, tn::Float64, p::Vector{Float64})
a1 = p[1] * xn[1] * xn[2]
a2 = p[2] * xn[3]
......
......@@ -9,7 +9,7 @@ l_tr = [:R1,:R2,:R3]
p = [1.0, 1.0, 1.0]
x0 = [100, 100, 0, 0]
t0 = 0.0
function ER_row_buffer_f!(mat_x::Matrix{Int}, l_t::Vector{Float64}, l_tr::Vector{<:Transition}, idx::Int,
function ER_row_buffer_f!(mat_x::Matrix{Int}, l_t::Vector{Float64}, l_tr::Vector{Transition}, idx::Int,
xn::AbstractVector{Int}, tn::Float64, p::Vector{Float64})
a1 = p[1] * xn[1] * xn[2]
a2 = p[2] * xn[3]
......
......@@ -9,7 +9,7 @@ l_tr = [:R1,:R2]
p = [0.0012, 0.05]
x0 = [95, 5, 0]
t0 = 0.0
function SIR_col_f!(xnplus1::Vector{Int}, tnplus1::Vector{Float64}, tr::Vector{<:Transition},
function SIR_col_f!(xnplus1::Vector{Int}, tnplus1::Vector{Float64}, tr::Vector{Transition},
xn::AbstractVector{Int}, tn::Float64, p::Vector{Float64})
a1 = p[1] * xn[1] * xn[2]
a2 = p[2] * xn[2]
......
......@@ -9,7 +9,7 @@ l_tr = [:R1,:R2]
p = [0.0012, 0.05]
x0 = [95, 5, 0]
t0 = 0.0
function SIR_col_buffer_f!(mat_x::Matrix{Int}, l_t::Vector{Float64}, l_tr::Vector{<:Transition}, idx::Int,
function SIR_col_buffer_f!(mat_x::Matrix{Int}, l_t::Vector{Float64}, l_tr::Vector{Transition}, idx::Int,
xn::AbstractVector{Int}, tn::Float64, p::Vector{Float64})
a1 = p[1] * xn[1] * xn[2]
a2 = p[2] * xn[2]
......
......@@ -9,7 +9,7 @@ l_tr = [:R1,:R2]
p = [0.0012, 0.05]
x0 = [95, 5, 0]
t0 = 0.0
function SIR_row_buffer_f!(mat_x::Matrix{Int}, l_t::Vector{Float64}, l_tr::Vector{<:Transition}, idx::Int,
function SIR_row_buffer_f!(mat_x::Matrix{Int}, l_t::Vector{Float64}, l_tr::Vector{Transition}, idx::Int,
xn::AbstractVector{Int}, tn::Float64, p::Vector{Float64})
a1 = p[1] * xn[1] * xn[2]
a2 = p[2] * xn[2]
......
......@@ -10,7 +10,7 @@ l_tr_poisson = [:R]
p_poisson = [5.0]
x0_poisson = [0]
t0_poisson = 0.0
function poisson_f!(xnplus1::Vector{Int}, l_t::Vector{Float64}, l_tr::Vector{<:Transition},
function poisson_f!(xnplus1::Vector{Int}, l_t::Vector{Float64}, l_tr::Vector{Transition},
xn::Vector{Int}, tn::Float64, p::Vector{Float64})
u1 = rand()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment