KJB
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | List of all members
Single_dimension_proposer< Model > Class Template Reference

#include <sample_proposer.h>

Public Types

typedef Mh_model_proposer
< double >::Type 
Proposer
 
typedef Get_model_parameter
< Model >::Type 
Get_param
 
typedef Set_model_parameter
< Model >::Type 
Set_param
 
typedef Model_dimension< Model >
::Type 
Dimension
 
typedef std::vector< ProposerProposer_vector
 

Public Member Functions

 Single_dimension_proposer (const Proposer_vector &proposers, const Get_param &get_param=get_vector_model_parameter< Model >, const Set_param &set_param=set_vector_model_parameter< Model >, const Dimension &model_dimension=get_vector_model_dimension< Model >)
 Constructs a Single_dimension_proposer with a uniform distribution. More...
 
 Single_dimension_proposer (const Proposer_vector &proposers, const kjb::Categorical_distribution< int > &dist, const Get_param &get_param=get_vector_model_parameter< Model >, const Set_param &set_param=set_vector_model_parameter< Model >, const Dimension &model_dimension=get_vector_model_dimension< Model >)
 Constructs a Single_dimension_proposer with the given proposers and their distribution. More...
 
Mh_proposal_result operator() (const Model &m, Model &m_p) const
 Proposes new model. More...
 
int get_last_modified_dimension () const
 Returns the most recently changed dimension of the model. More...
 

Detailed Description

template<typename Model>
class Single_dimension_proposer< Model >

Template Parameters
ModelThe model type. Must comply with BaseModel concept.

Single_dimension_proposer is a proposer that proposes models by changing a single dimension – chosen according to a distribution – of the given model. It receives a vector of proposers, one for each dimension of the model. At each iteration it chooses a dimension at random and proposes that dimension of the new model using the corresponding proposer. The rest of the proposed model is the same as the given model. Clearly, the number of proposers must be equal to the dimension of the model.

There is one exception to this: if given only ONE proposer, Single_dimension_proposer will use that proposer no matter what dimension of the model was chosen.

Note that the user must provide a parameter setter and a parameter getter; otherwise, vector getters and setters are used.

Member Typedef Documentation

template<typename Model >
typedef Model_dimension<Model>::Type Single_dimension_proposer< Model >::Dimension
template<typename Model >
typedef Get_model_parameter<Model>::Type Single_dimension_proposer< Model >::Get_param
template<typename Model >
typedef Mh_model_proposer<double>::Type Single_dimension_proposer< Model >::Proposer
template<typename Model >
typedef std::vector<Proposer> Single_dimension_proposer< Model >::Proposer_vector
template<typename Model >
typedef Set_model_parameter<Model>::Type Single_dimension_proposer< Model >::Set_param

Constructor & Destructor Documentation

template<typename Model >
Single_dimension_proposer< Model >::Single_dimension_proposer ( const Proposer_vector proposers,
const Get_param get_param = get_vector_model_parameter<Model>,
const Set_param set_param = set_vector_model_parameter<Model>,
const Dimension model_dimension = get_vector_model_dimension<Model> 
)
inline

Constructs a Single_dimension_proposer with a uniform distribution.

template<typename Model >
Single_dimension_proposer< Model >::Single_dimension_proposer ( const Proposer_vector proposers,
const kjb::Categorical_distribution< int > &  dist,
const Get_param get_param = get_vector_model_parameter<Model>,
const Set_param set_param = set_vector_model_parameter<Model>,
const Dimension model_dimension = get_vector_model_dimension<Model> 
)
inline

Constructs a Single_dimension_proposer with the given proposers and their distribution.

Member Function Documentation

template<typename Model >
int Single_dimension_proposer< Model >::get_last_modified_dimension ( ) const
inline

Returns the most recently changed dimension of the model.

template<typename Model >
Mh_proposal_result Single_dimension_proposer< Model >::operator() ( const Model &  m,
Model &  m_p 
) const
inline

Proposes new model.

See Mh_model_proposer concept for more information


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