ParameterDistribution Class Reference

CPP API: mio::ParameterDistribution Class Reference
mio::ParameterDistribution Class Referenceabstract

#include <parameter_distributions.h>

Public Member Functions

virtual void accept (ConstParameterDistributionVisitor &visitor) const =0
 
virtual void accept (ParameterDistributionVisitor &visitor)=0
 This function implements the visit interface of the visitor pattern. More...
 
void add_predefined_sample (ScalarType sample)
 
virtual ParameterDistributionclone () const =0
 
const std::vector< ScalarType > & get_predefined_samples () const
 
virtual ScalarType get_rand_sample (abm::PersonalRandomNumberGenerator &)=0
 
virtual ScalarType get_rand_sample (RandomNumberGenerator &rng)=0
 
template<class RNG >
ScalarType get_sample (RNG &rng)
 
 ParameterDistribution ()
 
virtual std::vector< ScalarTypeparams () const =0
 Returns the distribution parameters as vector. More...
 
void remove_predefined_samples ()
 
template<class IOContext >
void serialize (IOContext &io) const
 serialize this. More...
 
virtual bool smaller_impl (const ParameterDistribution &other) const =0
 
virtual ~ParameterDistribution ()=default
 

Protected Attributes

std::vector< ScalarTypem_predefined_samples
 

Constructor & Destructor Documentation

◆ ParameterDistribution()

mio::ParameterDistribution::ParameterDistribution ( )
inline

◆ ~ParameterDistribution()

virtual mio::ParameterDistribution::~ParameterDistribution ( )
virtualdefault

Member Function Documentation

◆ accept() [1/2]

virtual void mio::ParameterDistribution::accept ( ConstParameterDistributionVisitor visitor) const
pure virtual

◆ accept() [2/2]

virtual void mio::ParameterDistribution::accept ( ParameterDistributionVisitor visitor)
pure virtual

This function implements the visit interface of the visitor pattern.

It can be used for any ways of working with the class to dispatch the class type. More information here: https://en.wikipedia.org/wiki/Visitor_pattern

◆ add_predefined_sample()

void mio::ParameterDistribution::add_predefined_sample ( ScalarType  sample)
inline

◆ clone()

virtual ParameterDistribution* mio::ParameterDistribution::clone ( ) const
pure virtual

◆ get_predefined_samples()

const std::vector<ScalarType>& mio::ParameterDistribution::get_predefined_samples ( ) const
inline

◆ get_rand_sample() [1/2]

virtual ScalarType mio::ParameterDistribution::get_rand_sample ( abm::PersonalRandomNumberGenerator )
pure virtual

◆ get_rand_sample() [2/2]

virtual ScalarType mio::ParameterDistribution::get_rand_sample ( RandomNumberGenerator &  rng)
pure virtual

◆ get_sample()

template<class RNG >
ScalarType mio::ParameterDistribution::get_sample ( RNG &  rng)
inline

◆ params()

virtual std::vector<ScalarType> mio::ParameterDistribution::params ( ) const
pure virtual

Returns the distribution parameters as vector.

◆ remove_predefined_samples()

void mio::ParameterDistribution::remove_predefined_samples ( )
inline

◆ serialize()

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

serialize this.

See also
mio::serialize

◆ smaller_impl()

virtual bool mio::ParameterDistribution::smaller_impl ( const ParameterDistribution other) const
pure virtual

Member Data Documentation

◆ m_predefined_samples

std::vector<ScalarType> mio::ParameterDistribution::m_predefined_samples
protected