Skip to content

Class measles::SamplerMixing

template <typename TSeq>

ClassList > measles > SamplerMixing

Reusable contact sampler for mixing models with two infectious stages. More...

  • #include <measles.hpp>

Public Functions

Type Name
SamplerMixing () = default
Default constructor.
SamplerMixing (int primary_infectious_state_, int reduced_infectious_state_, std::string reduced_contact_reduction_param_, std::vector< int > contact_states_)
Constructs and configures the sampler.
void configure (int primary_infectious_state_, int reduced_infectious_state_, std::string reduced_contact_reduction_param_, std::vector< int > contact_states_)
Configures state indices and contact-selection settings.
const std::vector< size_t > & get_sampled_agents () const
Returns the internal sampled-agent buffer (const).
std::vector< size_t > & get_sampled_agents ()
Returns the internal sampled-agent buffer.
void reset (Model< TSeq > & model)
Resets internal buffers and recomputes infectious pools.
size_t sample (Agent< TSeq > * agent, Model< TSeq > & model, const ContactMatrix & contact_matrix)
Samples infectious contacts into the internal sampled-agent buffer.
size_t sample (Agent< TSeq > * agent, Model< TSeq > & model, const ContactMatrix & contact_matrix, std::vector< size_t > & sampled_agents_)
Samples infectious contacts into a user-provided buffer.
void update (Model< TSeq > & model)
Updates infectious pools and per-group sampling weights.

Detailed Description

The sampler keeps the per-entity infectious-agent accounting and contact sampling buffer used by ModelMeaslesMixing. The primary infectious state is sampled at full weight; the reduced infectious state is sampled with a relative contact rate computed as 1 minus a model parameter such as "Rash reduction contact rate".

Template parameters:

  • TSeq Type for genetic sequences (default: EPI_DEFAULT_TSEQ)

Public Functions Documentation

function SamplerMixing [1/2]

Default constructor.

measles::SamplerMixing::SamplerMixing () = default


function SamplerMixing [2/2]

Constructs and configures the sampler.

inline measles::SamplerMixing::SamplerMixing (
    int primary_infectious_state_,
    int reduced_infectious_state_,
    std::string reduced_contact_reduction_param_,
    std::vector< int > contact_states_
) 

Parameters:

  • primary_infectious_state_ State index for fully infectious agents.
  • reduced_infectious_state_ State index for reduced-infectious agents.
  • reduced_contact_reduction_param_ Model parameter name controlling reduced infectious contact reduction.
  • contact_states_ Explicit states eligible for contact.

function configure

Configures state indices and contact-selection settings.

inline void measles::SamplerMixing::configure (
    int primary_infectious_state_,
    int reduced_infectious_state_,
    std::string reduced_contact_reduction_param_,
    std::vector< int > contact_states_
) 

Parameters:

  • primary_infectious_state_ State index for fully infectious agents.
  • reduced_infectious_state_ State index for reduced-infectious agents.
  • reduced_contact_reduction_param_ Model parameter name controlling reduced infectious contact reduction.
  • contact_states_ Explicit states eligible for contact.

function get_sampled_agents [1/2]

Returns the internal sampled-agent buffer (const).

inline const std::vector< size_t > & measles::SamplerMixing::get_sampled_agents () const


function get_sampled_agents [2/2]

Returns the internal sampled-agent buffer.

inline std::vector< size_t > & measles::SamplerMixing::get_sampled_agents () 


function reset

Resets internal buffers and recomputes infectious pools.

inline void measles::SamplerMixing::reset (
    Model < TSeq > & model
) 

Parameters:

  • model Model containing current agents and entities.

function sample [1/2]

Samples infectious contacts into the internal sampled-agent buffer.

inline size_t measles::SamplerMixing::sample (
    Agent < TSeq > * agent,
    Model < TSeq > & model,
    const ContactMatrix & contact_matrix
) 

Parameters:

  • agent Agent for which contacts are sampled.
  • model Model containing current agent states.
  • contact_matrix Matrix with between-group contact rates.

Returns:

Number of sampled contacts written to the internal buffer.


function sample [2/2]

Samples infectious contacts into a user-provided buffer.

inline size_t measles::SamplerMixing::sample (
    Agent < TSeq > * agent,
    Model < TSeq > & model,
    const ContactMatrix & contact_matrix,
    std::vector< size_t > & sampled_agents_
) 

Parameters:

  • agent Agent for which contacts are sampled.
  • model Model containing current agent states.
  • contact_matrix Matrix with between-group contact rates.
  • sampled_agents_ Output buffer receiving sampled agent ids.

Returns:

Number of sampled contacts written to sampled_agents_.


function update

Updates infectious pools and per-group sampling weights.

inline void measles::SamplerMixing::update (
    Model < TSeq > & model
) 

Parameters:

  • model Model containing current agents and entities.


The documentation for this class was generated from the following file include/measles/samplermixing.hpp