Monte Carlo Integration Library 1.0
High-performance Monte Carlo methods for numerical integration and optimization
Public Member Functions | List of all members
mc::proposals::Proposal< dim > Class Template Referenceabstract

Abstract proposal distribution interface. More...

#include <proposal.hpp>

Inheritance diagram for mc::proposals::Proposal< dim >:
Collaboration diagram for mc::proposals::Proposal< dim >:

Public Member Functions

virtual ~Proposal ()=default
 Virtual destructor for proper cleanup.
 
virtual mc::geom::Point< dimsample (std::mt19937 &rng) const =0
 Draw a random sample from the proposal distribution.
 
virtual double pdf (const mc::geom::Point< dim > &x) const =0
 Evaluate the proposal probability density function.
 

Detailed Description

template<size_t dim>
class mc::proposals::Proposal< dim >

Abstract proposal distribution interface.

Template Parameters
dimDimensionality of the distribution

A proposal distribution q(x) is used in importance sampling to approximate the integrand or in MCMC to propose candidate moves. The efficiency of these algorithms depends on how well q(x) approximates the target.

Definition at line 28 of file proposal.hpp.

Constructor & Destructor Documentation

◆ ~Proposal()

template<size_t dim>
virtual mc::proposals::Proposal< dim >::~Proposal ( )
virtualdefault

Virtual destructor for proper cleanup.

Member Function Documentation

◆ pdf()

template<size_t dim>
virtual double mc::proposals::Proposal< dim >::pdf ( const mc::geom::Point< dim > &  x) const
pure virtual

Evaluate the proposal probability density function.

Parameters
xQuery point
Returns
q(x), the probability density at x

Must be non-zero everywhere in the support of the integrand.

Implemented in mc::proposals::UniformProposal< dim >, mc::proposals::GaussianProposal< dim >, and mc::proposals::MixtureProposal< dim >.

◆ sample()

template<size_t dim>
virtual mc::geom::Point< dim > mc::proposals::Proposal< dim >::sample ( std::mt19937 &  rng) const
pure virtual

Draw a random sample from the proposal distribution.

Parameters
rngMersenne Twister random generator
Returns
Point distributed according to q(x)

Implemented in mc::proposals::GaussianProposal< dim >, mc::proposals::MixtureProposal< dim >, and mc::proposals::UniformProposal< dim >.


The documentation for this class was generated from the following file: