MCKL
Monte Carlo Kernel Library
Public Types | Public Member Functions | List of all members
mckl::PMCMCMutation< Param, T, U > Class Template Reference

Particle Markov chain Monte Carlo mutation. More...

#include <mckl/algorithm/pmcmc.hpp>

Public Types

using eval_type = std::function< double(typename Particle< T >::rng_type &, param_type &)>
 
using param_type = Param
 
using pf_type = SMCSampler< T, U >
 
using prior_type = std::function< double(const param_type &)>
 
using size_type = typename Particle< T >::size_type
 
using state_type = T
 

Public Member Functions

template<typename Prior , typename... Args>
 PMCMCMutation (std::size_t N, std::size_t M, Prior &&prior, Args &&... args)
 
PMCMCMutation< Param, T, U > clone () const
 
std::size_t operator() (std::size_t iter, param_type &param)
 
pf_typepf ()
 
pf_typepf () const
 
template<typename Prior >
void prior (Prior &&prior)
 
void reset ()
 
template<typename Eval >
std::size_t update (Eval &&eval)
 Add a new evaluation object for the update step. More...
 

Detailed Description

template<typename Param, typename T, typename U = double>
class mckl::PMCMCMutation< Param, T, U >

Particle Markov chain Monte Carlo mutation.

Definition at line 73 of file pmcmc.hpp.

Member Typedef Documentation

◆ eval_type

template<typename Param, typename T, typename U = double>
using mckl::PMCMCMutation< Param, T, U >::eval_type = std::function<double(typename Particle<T>::rng_type &, param_type &)>

Definition at line 80 of file pmcmc.hpp.

◆ param_type

template<typename Param, typename T, typename U = double>
using mckl::PMCMCMutation< Param, T, U >::param_type = Param

Definition at line 76 of file pmcmc.hpp.

◆ pf_type

template<typename Param, typename T, typename U = double>
using mckl::PMCMCMutation< Param, T, U >::pf_type = SMCSampler<T, U>

Definition at line 82 of file pmcmc.hpp.

◆ prior_type

template<typename Param, typename T, typename U = double>
using mckl::PMCMCMutation< Param, T, U >::prior_type = std::function<double(const param_type &)>

Definition at line 81 of file pmcmc.hpp.

◆ size_type

template<typename Param, typename T, typename U = double>
using mckl::PMCMCMutation< Param, T, U >::size_type = typename Particle<T>::size_type

Definition at line 78 of file pmcmc.hpp.

◆ state_type

template<typename Param, typename T, typename U = double>
using mckl::PMCMCMutation< Param, T, U >::state_type = T

Definition at line 77 of file pmcmc.hpp.

Constructor & Destructor Documentation

◆ PMCMCMutation()

template<typename Param, typename T, typename U = double>
template<typename Prior , typename... Args>
mckl::PMCMCMutation< Param, T, U >::PMCMCMutation ( std::size_t  N,
std::size_t  M,
Prior &&  prior,
Args &&...  args 
)
inline

Definition at line 85 of file pmcmc.hpp.

Member Function Documentation

◆ clone()

template<typename Param, typename T, typename U = double>
PMCMCMutation<Param, T, U> mckl::PMCMCMutation< Param, T, U >::clone ( ) const
inline

Definition at line 100 of file pmcmc.hpp.

◆ operator()()

template<typename Param, typename T, typename U = double>
std::size_t mckl::PMCMCMutation< Param, T, U >::operator() ( std::size_t  iter,
param_type param 
)
inline

Definition at line 125 of file pmcmc.hpp.

◆ pf() [1/2]

template<typename Param, typename T, typename U = double>
pf_type& mckl::PMCMCMutation< Param, T, U >::pf ( )
inline

Definition at line 96 of file pmcmc.hpp.

◆ pf() [2/2]

template<typename Param, typename T, typename U = double>
pf_type& mckl::PMCMCMutation< Param, T, U >::pf ( ) const
inline

Definition at line 98 of file pmcmc.hpp.

◆ prior()

template<typename Param, typename T, typename U = double>
template<typename Prior >
void mckl::PMCMCMutation< Param, T, U >::prior ( Prior &&  prior)
inline

Definition at line 111 of file pmcmc.hpp.

◆ reset()

template<typename Param, typename T, typename U = double>
void mckl::PMCMCMutation< Param, T, U >::reset ( )
inline

Definition at line 90 of file pmcmc.hpp.

◆ update()

template<typename Param, typename T, typename U = double>
template<typename Eval >
std::size_t mckl::PMCMCMutation< Param, T, U >::update ( Eval &&  eval)
inline

Add a new evaluation object for the update step.

Definition at line 118 of file pmcmc.hpp.