hops
Static Public Member Functions | List of all members
hops::MarkovChainFactory Class Reference

#include <MarkovChainFactory.hpp>

Collaboration diagram for hops::MarkovChainFactory:
Collaboration graph

Static Public Member Functions

template<typename MatrixType , typename VectorType , typename Proposal >
static std::unique_ptr< MarkovChaincreateMarkovChain (Proposal m_proposal)
 Creates a Markov chain for uniform sampling of convex polytopes using an arbitrary m_proposal class. More...
 
template<typename MatrixType , typename VectorType >
static std::unique_ptr< MarkovChaincreateMarkovChain (MarkovChainType type, MatrixType inequalityLhs, VectorType inequalityRhs, VectorType startingPoint)
 Creates a Markov chain for uniform sampling of convex polytopes. More...
 
template<typename MatrixType , typename VectorType , typename Proposal >
static std::unique_ptr< MarkovChaincreateMarkovChain (Proposal m_proposal, MatrixType unroundingTransformation, VectorType unroundingShift)
 Creates a Markov chain for uniform sampling of rounded convex polytopes. More...
 
template<typename MatrixType , typename VectorType >
static std::unique_ptr< MarkovChaincreateMarkovChain (MarkovChainType type, MatrixType roundedInequalityLhs, VectorType roundedInequalityRhs, VectorType startingPoint, MatrixType unroundingTransformation, VectorType unroundingShift)
 Creates a Markov chain for uniform sampling of rounded convex polytopes. More...
 
template<typename MatrixType , typename VectorType , typename Proposal >
static std::unique_ptr< MarkovChaincreateMarkovChain (Proposal m_proposal, std::shared_ptr< Model > model)
 Creates a Markov chain for sampling the likelihood of a with the domain of a convex polytope. More...
 
template<typename MatrixType , typename VectorType >
static std::unique_ptr< MarkovChaincreateMarkovChain (MarkovChainType type, MatrixType inequalityLhs, VectorType inequalityRhs, VectorType startingPoint, const std::shared_ptr< Model > &model)
 Creates a Markov chain for sampling the likelihood of a model with the domain of a convex polytope. More...
 
template<typename MatrixType , typename VectorType >
static std::unique_ptr< MarkovChaincreateMarkovChainWithParallelTempering (MarkovChainType type, MatrixType inequalityLhs, VectorType inequalityRhs, VectorType startingPoint, const std::shared_ptr< Model > &model, RandomNumberGenerator synchronizedRandomNumberGenerator)
 Creates a Markov chain for sampling the likelihood of a model with the domain of a convex polytope with parallel tempering. More...
 
template<typename MatrixType , typename VectorType , typename Proposal >
static std::unique_ptr< MarkovChaincreateMarkovChain (Proposal m_proposal, MatrixType unroundingTransformation, VectorType unroundingShift, std::shared_ptr< Model > model)
 Creates a Markov chain for sampling the likelihood of a model with the domain of a rounded convex polytope. More...
 
template<typename MatrixType , typename VectorType >
static std::unique_ptr< MarkovChaincreateMarkovChain (MarkovChainType type, MatrixType roundedInequalityLhs, VectorType roundedInequalityRhs, VectorType startingPoint, MatrixType unroundingTransformation, VectorType unroundingShift, const std::shared_ptr< Model > &model)
 Creates a Markov chain for sampling the likelihood of a model with the domain of a rounded convex polytope. More...
 
template<typename MatrixType , typename VectorType >
static std::unique_ptr< MarkovChaincreateMarkovChainWithParallelTempering (MarkovChainType type, MatrixType roundedInequalityLhs, VectorType roundedInequalityRhs, VectorType startingPoint, MatrixType unroundingTransformation, VectorType unroundingShift, const std::shared_ptr< Model > &model, RandomNumberGenerator synchronizedRandomNumberGenerator)
 Creates a Markov chain for sampling the likelihood of a model with the domain of a rounded convex polytope with parallel tempering. More...
 

Member Function Documentation

◆ createMarkovChain() [1/8]

template<typename MatrixType , typename VectorType >
static std::unique_ptr<MarkovChain> hops::MarkovChainFactory::createMarkovChain ( MarkovChainType  type,
MatrixType  inequalityLhs,
VectorType  inequalityRhs,
VectorType  startingPoint 
)
inlinestatic

Creates a Markov chain for uniform sampling of convex polytopes.

Template Parameters
MatrixType
VectorType
Parameters
type
inequalityLhs
inequalityRhs
startingPoint
Returns

◆ createMarkovChain() [2/8]

template<typename MatrixType , typename VectorType >
static std::unique_ptr<MarkovChain> hops::MarkovChainFactory::createMarkovChain ( MarkovChainType  type,
MatrixType  inequalityLhs,
VectorType  inequalityRhs,
VectorType  startingPoint,
const std::shared_ptr< Model > &  model 
)
inlinestatic

Creates a Markov chain for sampling the likelihood of a model with the domain of a convex polytope.

Template Parameters
MatrixType
VectorType
Model
Parameters
type
inequalityLhs
inequalityRhs
startingPoint
model
Returns

◆ createMarkovChain() [3/8]

template<typename MatrixType , typename VectorType >
static std::unique_ptr<MarkovChain> hops::MarkovChainFactory::createMarkovChain ( MarkovChainType  type,
MatrixType  roundedInequalityLhs,
VectorType  roundedInequalityRhs,
VectorType  startingPoint,
MatrixType  unroundingTransformation,
VectorType  unroundingShift 
)
inlinestatic

Creates a Markov chain for uniform sampling of rounded convex polytopes.

Template Parameters
MatrixType
VectorType
Parameters
type
roundedInequalityLhs
roundedInequalityRhs
startingPoint
unroundingTransformation
unroundingShift
Returns

◆ createMarkovChain() [4/8]

template<typename MatrixType , typename VectorType >
static std::unique_ptr<MarkovChain> hops::MarkovChainFactory::createMarkovChain ( MarkovChainType  type,
MatrixType  roundedInequalityLhs,
VectorType  roundedInequalityRhs,
VectorType  startingPoint,
MatrixType  unroundingTransformation,
VectorType  unroundingShift,
const std::shared_ptr< Model > &  model 
)
inlinestatic

Creates a Markov chain for sampling the likelihood of a model with the domain of a rounded convex polytope.

Template Parameters
MatrixType
VectorType
Model
Parameters
type
roundedInequalityLhs
roundedInequalityRhs
startingPoint
unroundingTransformation
unroundingShift
model
Returns

◆ createMarkovChain() [5/8]

template<typename MatrixType , typename VectorType , typename Proposal >
static std::unique_ptr<MarkovChain> hops::MarkovChainFactory::createMarkovChain ( Proposal  m_proposal)
inlinestatic

Creates a Markov chain for uniform sampling of convex polytopes using an arbitrary m_proposal class.

Template Parameters
MatrixType
VectorType
Proposal
Parameters
m_proposal
Returns

◆ createMarkovChain() [6/8]

template<typename MatrixType , typename VectorType , typename Proposal >
static std::unique_ptr<MarkovChain> hops::MarkovChainFactory::createMarkovChain ( Proposal  m_proposal,
MatrixType  unroundingTransformation,
VectorType  unroundingShift 
)
inlinestatic

Creates a Markov chain for uniform sampling of rounded convex polytopes.

Template Parameters
MatrixType
VectorType
Proposal
Parameters
m_proposal
unroundingTransformation
unroundingShift
Returns

◆ createMarkovChain() [7/8]

template<typename MatrixType , typename VectorType , typename Proposal >
static std::unique_ptr<MarkovChain> hops::MarkovChainFactory::createMarkovChain ( Proposal  m_proposal,
MatrixType  unroundingTransformation,
VectorType  unroundingShift,
std::shared_ptr< Model model 
)
inlinestatic

Creates a Markov chain for sampling the likelihood of a model with the domain of a rounded convex polytope.

Template Parameters
MatrixType
VectorType
Model
Proposal
Parameters
m_proposal
unroundingTransformation
unroundingShift
model
Returns

◆ createMarkovChain() [8/8]

template<typename MatrixType , typename VectorType , typename Proposal >
static std::unique_ptr<MarkovChain> hops::MarkovChainFactory::createMarkovChain ( Proposal  m_proposal,
std::shared_ptr< Model model 
)
inlinestatic

Creates a Markov chain for sampling the likelihood of a with the domain of a convex polytope.

Template Parameters
MatrixType
VectorType
Model
Proposal
Parameters
m_proposal
model
Returns

◆ createMarkovChainWithParallelTempering() [1/2]

template<typename MatrixType , typename VectorType >
static std::unique_ptr<MarkovChain> hops::MarkovChainFactory::createMarkovChainWithParallelTempering ( MarkovChainType  type,
MatrixType  inequalityLhs,
VectorType  inequalityRhs,
VectorType  startingPoint,
const std::shared_ptr< Model > &  model,
RandomNumberGenerator  synchronizedRandomNumberGenerator 
)
inlinestatic

Creates a Markov chain for sampling the likelihood of a model with the domain of a convex polytope with parallel tempering.

Template Parameters
MatrixType
VectorType
Model
Parameters
type
inequalityLhs
inequalityRhs
startingPoint
model
synchronizedRandomNumberGeneratorrequired for efficient parallel tempering
Returns

◆ createMarkovChainWithParallelTempering() [2/2]

template<typename MatrixType , typename VectorType >
static std::unique_ptr<MarkovChain> hops::MarkovChainFactory::createMarkovChainWithParallelTempering ( MarkovChainType  type,
MatrixType  roundedInequalityLhs,
VectorType  roundedInequalityRhs,
VectorType  startingPoint,
MatrixType  unroundingTransformation,
VectorType  unroundingShift,
const std::shared_ptr< Model > &  model,
RandomNumberGenerator  synchronizedRandomNumberGenerator 
)
inlinestatic

Creates a Markov chain for sampling the likelihood of a model with the domain of a rounded convex polytope with parallel tempering.

Template Parameters
MatrixType
VectorType
Model
Parameters
type
roundedInequalityLhs
roundedInequalityRhs
startingPoint
unroundingTransformation
unroundingShift
model
synchronizedRandomNumberGenerator(required for efficient parallel tempering)
Returns

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