AbstractParameterDistribution Class Reference

CPP API: mio::AbstractParameterDistribution Class Reference
mio::AbstractParameterDistribution Class Reference

This class represents an arbitrary ParameterDistribution. More...

#include <abstract_parameter_distribution.h>

Public Member Functions

 AbstractParameterDistribution ()
 
 AbstractParameterDistribution (AbstractParameterDistribution &&other)
 
 AbstractParameterDistribution (AbstractParameterDistribution &other)
 
 AbstractParameterDistribution (const AbstractParameterDistribution &other)
 
template<class Impl >
 AbstractParameterDistribution (Impl &&dist)
 The implementation handed to the constructor should have get_sample function overloaded with mio::RandomNumberGenerator and mio::abm::PersonalRandomNumberGenerator as input arguments. More...
 
ScalarType get (abm::PersonalRandomNumberGenerator &rng) const
 Returns a value sampled with the given distribution. More...
 
ScalarType get (RandomNumberGenerator &rng) const
 Returns a value sampled with the given distribution. More...
 
bool operator< (const AbstractParameterDistribution &other) const
 
AbstractParameterDistributionoperator= (AbstractParameterDistribution &&other)=default
 
AbstractParameterDistributionoperator= (const AbstractParameterDistribution &other)=default
 
std::vector< ScalarTypeparams () const
 Get the parameters of the given distribution. More...
 
template<class IOContext >
void serialize (IOContext &io) const
 serialize an AbstractParameterDistribution. More...
 

Private Attributes

std::shared_ptr< void > m_dist
 Underlying distribtuion. More...
 
ScalarType(* sample_impl1 )(void *, RandomNumberGenerator &)
 Sample function of the distribution which gets a RandomNumberGenerator as rng. More...
 
ScalarType(* sample_impl2 )(void *, abm::PersonalRandomNumberGenerator &)
 Sample function of the distribution which gets a abm::PersonalRandomNumberGenerator as rng. More...
 

Detailed Description

This class represents an arbitrary ParameterDistribution.

See also
mio::ParameterDistribution This class can for instance be used for model parameters that should have an arbitrary distribution.

Constructor & Destructor Documentation

◆ AbstractParameterDistribution() [1/5]

template<class Impl >
mio::AbstractParameterDistribution::AbstractParameterDistribution ( Impl &&  dist)
inline

The implementation handed to the constructor should have get_sample function overloaded with mio::RandomNumberGenerator and mio::abm::PersonalRandomNumberGenerator as input arguments.

◆ AbstractParameterDistribution() [2/5]

mio::AbstractParameterDistribution::AbstractParameterDistribution ( AbstractParameterDistribution other)
inline

◆ AbstractParameterDistribution() [3/5]

mio::AbstractParameterDistribution::AbstractParameterDistribution ( AbstractParameterDistribution &&  other)
inline

◆ AbstractParameterDistribution() [4/5]

mio::AbstractParameterDistribution::AbstractParameterDistribution ( const AbstractParameterDistribution other)
inline

◆ AbstractParameterDistribution() [5/5]

mio::AbstractParameterDistribution::AbstractParameterDistribution ( )
inline

Member Function Documentation

◆ get() [1/2]

ScalarType mio::AbstractParameterDistribution::get ( abm::PersonalRandomNumberGenerator rng) const
inline

Returns a value sampled with the given distribution.

Parameters
[in]rngabm::PersonalRandomNumberGenerator used for sampling.

◆ get() [2/2]

ScalarType mio::AbstractParameterDistribution::get ( RandomNumberGenerator &  rng) const
inline

Returns a value sampled with the given distribution.

Parameters
[in]rngRandomNumberGenerator used for sampling.

◆ operator<()

bool mio::AbstractParameterDistribution::operator< ( const AbstractParameterDistribution other) const
inline

◆ operator=() [1/2]

AbstractParameterDistribution& mio::AbstractParameterDistribution::operator= ( AbstractParameterDistribution &&  other)
default

◆ operator=() [2/2]

AbstractParameterDistribution& mio::AbstractParameterDistribution::operator= ( const AbstractParameterDistribution other)
default

◆ params()

std::vector<ScalarType> mio::AbstractParameterDistribution::params ( ) const
inline

Get the parameters of the given distribution.

◆ serialize()

template<class IOContext >
void mio::AbstractParameterDistribution::serialize ( IOContext &  io) const
inline

Member Data Documentation

◆ m_dist

std::shared_ptr<void> mio::AbstractParameterDistribution::m_dist
private

Underlying distribtuion.

◆ sample_impl1

ScalarType(* mio::AbstractParameterDistribution::sample_impl1) (void *, RandomNumberGenerator &)
private

Sample function of the distribution which gets a RandomNumberGenerator as rng.

◆ sample_impl2

ScalarType(* mio::AbstractParameterDistribution::sample_impl2) (void *, abm::PersonalRandomNumberGenerator &)
private

Sample function of the distribution which gets a abm::PersonalRandomNumberGenerator as rng.