The package becomes more meta to reach higher performance.
This commit groups the change operated to the creation of models and simulate function of a ContinuousTimeModel. The general idea is to create a concrete type and a simulate function per model creation by metaprogramming. - Now, ContinuousTimeModel is an abstract type. Each creation of a model defines a concrete type T <: ContinuousTimeModel by meta programming. - f! and isabsorbing ContinuousTimeModel fields are Symbols. - simulate(::ContinuousTimeModel) is run by multiple dispatch, according to the type of the model. Can't run the whole tests for now but unit/simulate_available_models.jl runs properly (i've updated the list of models in this commit), and I've manually checked in the repl that simulations run correctly (distributed / plots).
Showing
- core/MarkovProcesses.jl 2 additions, 1 deletioncore/MarkovProcesses.jl
- core/common.jl 52 additions, 42 deletionscore/common.jl
- core/lha.jl 179 additions, 173 deletionscore/lha.jl
- core/model.jl 304 additions, 287 deletionscore/model.jl
- core/network_model.jl 61 additions, 43 deletionscore/network_model.jl
- core/trajectory.jl 1 addition, 2 deletionscore/trajectory.jl
- core/utils.jl 3 additions, 3 deletionscore/utils.jl
- models/ER.jl 6 additions, 3 deletionsmodels/ER.jl
- models/SIR.jl 6 additions, 4 deletionsmodels/SIR.jl
- models/SIR_tauleap.jl 10 additions, 7 deletionsmodels/SIR_tauleap.jl
- models/doping_3way_oscillator.jl 0 additions, 2 deletionsmodels/doping_3way_oscillator.jl
- models/intracellular_viral_infection.jl 0 additions, 2 deletionsmodels/intracellular_viral_infection.jl
- models/poisson.jl 10 additions, 8 deletionsmodels/poisson.jl
- models/repressilator.jl 2 additions, 4 deletionsmodels/repressilator.jl
- models/square_wave_oscillator.jl 9 additions, 6 deletionsmodels/square_wave_oscillator.jl
- tests/unit/simulate_available_models.jl 8 additions, 0 deletionstests/unit/simulate_available_models.jl
Loading
Please register or sign in to comment