28 #include <queso/MetropolisHastingsSGOptions.h> 
   29 #include <queso/TKGroup.h> 
   30 #include <queso/VectorRV.h> 
   31 #include <queso/VectorSpace.h> 
   32 #include <queso/MarkovChainPositionData.h> 
   33 #include <queso/ScalarFunctionSynchronizer.h> 
   34 #include <queso/SequenceOfVectors.h> 
   35 #include <queso/ArrayOfSequences.h> 
   38 #include <queso/SharedPtr.h> 
   45 template <
class P_V, 
class P_M>
 
  125 template <
class P_V = GslVector, 
class P_M = GslMatrix>
 
  143                        const P_V&                          initialPosition,
 
  144                        const P_M*                          inputProposalCovMatrix);
 
  150                        const P_V&                          initialPosition,
 
  151                        double                              initialLogPrior,
 
  152                        double                              initialLogLikelihood,
 
  153                        const P_M*                          inputProposalCovMatrix);
 
  158                        const P_V&                           initialPosition,
 
  159                        const P_M*                           inputProposalCovMatrix);
 
  164                        const P_V&                           initialPosition,
 
  165                        double                               initialLogPrior,
 
  166                        double                               initialLogLikelihood,
 
  167                        const P_M*                           inputProposalCovMatrix);
 
  211   void   print                    (std::ostream& os) 
const;
 
  236                                    unsigned int                        chainSize,
 
  242   void adapt(
unsigned int positionId,
 
  269                                    const std::string&                  inputFileType,
 
  270                                    unsigned int                        chainSize,
 
  277                                    unsigned int                               idOfFirstPositionInSubChain,
 
  278                                    double&                                    lastChainSize,
 
  280                                    P_M&                                       lastAdaptedCovMatrix);
 
  285                                    const std::vector<unsigned int                        >& inputTKStageIds);
 
  295                                    std::ofstream&                             ofsvar) 
const;
 
  307   typename SharedPtr<BaseTKGroup<P_V,P_M> >::Type 
m_tk;
 
unsigned int m_stageIdForDebugging
 
bool m_nullInputProposalCovMatrix
 
bool acceptAlpha(double alpha)
Decides whether or not to accept alpha. 
 
P_M * m_lastAdaptedCovMatrix
 
bool delayedRejection(unsigned int positionId, const MarkovChainPositionData< P_V > ¤tPositionData, MarkovChainPositionData< P_V > ¤tCandidateData)
Does delayed rejection. 
 
void commonConstructor()
Reads the options values from the options input file. 
 
unsigned int numOutOfTargetSupport
 
This class reads the options for the Metropolis-Hastings generator of samples from an input file...
 
~MetropolisHastingsSG()
Destructor. 
 
This (virtual) class sets up the environment underlying the use of the QUESO library by an executable...
 
MHRawChainInfoStruct & operator=(const MHRawChainInfoStruct &rhs)
Assignment operator. 
 
void getRawChainInfo(MHRawChainInfoStruct &info) const 
Gets information from the raw chain. 
 
void updateAdaptedCovMatrix(const BaseVectorSequence< P_V, P_M > &subChain, unsigned int idOfFirstPositionInSubChain, double &lastChainSize, P_V &lastMean, P_M &lastAdaptedCovMatrix)
This method updates the adapted covariance matrix. 
 
void copy(const MHRawChainInfoStruct &src)
Copies Metropolis-Hastings chain info from src to this. 
 
void generateFullChain(const P_V &valuesOf1stPosition, unsigned int chainSize, BaseVectorSequence< P_V, P_M > &workingChain, ScalarSequence< double > *workingLogLikelihoodValues, ScalarSequence< double > *workingLogTargetValues)
This method generates the chain. 
 
MHRawChainInfoStruct & operator+=(const MHRawChainInfoStruct &rhs)
Addition assignment operator. 
 
unsigned int numRejections
 
void readFullChain(const std::string &inputFileName, const std::string &inputFileType, unsigned int chainSize, BaseVectorSequence< P_V, P_M > &workingChain)
This method reads the chain contents. 
 
void adapt(unsigned int positionId, BaseVectorSequence< P_V, P_M > &workingChain)
Adaptive Metropolis method that deals with adapting the proposal covariance matrix. 
 
MHRawChainInfoStruct()
Constructor. 
 
const BaseJointPdf< P_V, P_M > & m_targetPdf
 
void print(std::ostream &os) const 
TODO: Prints the sequence. 
 
A templated class that represents a Metropolis-Hastings generator of samples. 
 
std::vector< bool > m_parameterEnabledStatus
 
MetropolisHastingsSGOptions * m_oldOptions
 
std::vector< unsigned int > m_idsOfUniquePositions
 
double m_initialLogLikelihoodValue
 
unsigned int m_numDisabledParameters
 
void reset()
Resets Metropolis-Hastings chain info. 
 
const MhOptionsValues * m_optionsObj
 
This class provides options for each level of the Multilevel sequence generator if no input file is a...
 
void mpiSum(const MpiComm &comm, MHRawChainInfoStruct &sumInfo)
Calculates the MPI sum of this. 
 
unsigned int m_positionIdForDebugging
 
SharedPtr< Algorithm< P_V, P_M > >::Type m_algorithm
 
unsigned int numOutOfTargetSupportInDR
 
void transformInitialCovMatrixToGaussianSpace(const BoxSubset< P_V, P_M > &boxSubset)
 
A struct that represents a Metropolis-Hastings sample. 
 
MetropolisHastingsSG(const char *prefix, const MhOptionsValues *alternativeOptionsValues, const BaseVectorRV< P_V, P_M > &sourceRv, const P_V &initialPosition, const P_M *inputProposalCovMatrix)
Constructor. 
 
MHRawChainInfoStruct m_rawChainInfo
 
friend std::ostream & operator<<(std::ostream &os, const MetropolisHastingsSG< P_V, P_M > &obj)
 
The QUESO MPI Communicator Class. 
 
P_M m_initialProposalCovMatrix
 
double m_initialLogPriorValue
 
This base class allows the representation of a transition kernel. 
 
bool m_userDidNotProvideOptions
 
double alpha(const std::vector< MarkovChainPositionData< P_V > * > &inputPositions, const std::vector< unsigned int > &inputTKStageIds)
Calculates acceptance ratio. 
 
const ScalarFunctionSynchronizer< P_V, P_M > * m_targetPdfSynchronizer
 
std::vector< double > m_alphaQuotients
 
unsigned int numTargetCalls
 
const VectorSpace< P_V, P_M > & m_vectorSpace
 
This class provides options for the Metropolis-Hastings generator of samples if no input file is avai...
 
~MHRawChainInfoStruct()
Destructor. 
 
unsigned int m_numPositionsNotSubWritten
 
std::vector< double > m_logTargets
 
void generateSequence(BaseVectorSequence< P_V, P_M > &workingChain, ScalarSequence< double > *workingLogLikelihoodValues, ScalarSequence< double > *workingLogTargetValues)
Method to generate the chain. 
 
bool m_computeInitialPriorAndLikelihoodValues
 
const BaseEnvironment & m_env
 
SharedPtr< BaseTKGroup< P_V, P_M > >::Type m_tk
 
int writeInfo(const BaseVectorSequence< P_V, P_M > &workingChain, std::ofstream &ofsvar) const 
Writes information about the Markov chain in a file. 
 
const BaseTKGroup< P_V, P_M > & transitionKernel() const 
Returns the underlying transition kernel for this sequence generator. 
 
A templated class that represents a Markov Chain.