The run_multiple() function was failing to correctly backup the agents' edgelist in the case of network models. This was due to a bug in the C++ library that was not correctly copying the edgelist. This has been fixed.
When multiple transitions happened in a single step, e.g., I->E->S, the model was only recording E->S, but not I->S (which is the correct).
In the ModelMeaslesQuarantine model, isolated individuals now have a different parameter for the number of days in isolation. Previously, the same parameter was used for both isolated and quarantined individuals. The new parameter is isolation_period.
The ModelMeaslesQuarantine model changed a couple of parameter names to improve consistency. We also improved the documentation of the model.
The mixing models were using the wrong sampling scheme for the contact event between agents. The new implementation allows using the regular basic reproductive number calculation for its calibration.
The functions distribute_(virus|tool)_to_set now have an additional argument that allows restricting the set of agents.
Added more tests to the ModelMeaslesQuarantine model, as well as to the set_distribution*, distribute_*, and get_agents_states functions.
A large overhaul memory management was performed (C++ side), decreasing the memory footprint by one order of magnitude in some cases.
Adds the ModelMeaslesQuarantine model, which implements a
measles model with quarantine.
Adds the capability of generating model diagrams using mermaid through the draw_mermaid() model function and the ModelDiagram set of functions.
Adds an advanced usage vignette.
Adds more extensive input parameter checks during model creation.
Updates to reflect changes in the epiworld C++ library (mostly bug fixes)
Package now requires R version >=4.1.0, because it uses the pipe |>
The package now includes the LFMCMC module that implements
the likelihood-free Markov Chain Monte Carlo algorithm. This
module is used to estimate the parameters of the models.
The new function add_param() allows the user to add parameters
to the model.
The new function rm_globalevent() allows the user to remove
global events from the model.
The function today() returns the current day (step) of the
simulation.
We changed the versioning system. To allow the R package to increase version number while preserving epiworld (C++) versioning, we added a fourth number that indicates R-only patches (similar to RcppArmadillo).
Starting version 0.3-0, epiworldR is versioned using the same version as the C++ library, epiworld.
Adds the new mixing models ModelSIRMixing and ModelSEIRMixing.
Ports the Entity class. Entities are used to group agents within a model.
Refactors add_tool, add_virus, and add_entity simplifying syntax. Now,
these functions only receive the model and object. Prevalence is
specified in the object itself. add_tool_n and add_virus_n are now
deprecated.
globalaction_* are now defunct. Use globalevent_* instead.
New functions to specify how viruses, tools, and entities are distributed
among agents: distribute_viruses, distribute_tools, and distribute_entities.
run_multiple() after a single
call of run(). Reported on 14.Added missing checks of tool class when adding a model with add_too_n.
Various small improvements.
Added the following models: ModelSEIRD, ModelSEIRDCONN, ModelSIRD, ModelSIRDCONN, and ModelSISD.
Fixed a bug reported on issue 6.
Added a NEWS.md file to track changes to the package.
Fixed bug reported by CRAN about reference to nullptr.
Renamed arguments across Models in favor of consistency.
Figures now show virus/tool name instead of id.
Fixed bug in run_multiple and added more tests (C++).
Redid autoconf and Makevars using RcppArmadillo as a template for checking for OpenMP.