queso-0.57.1
|
A class for handling Gaussian joint PDFs. More...
#include <GaussianJointPdf.h>
Public Member Functions | |
virtual void | print (std::ostream &os) const |
Print method for informational and logging purposes. More... | |
Constructor/Destructor methods | |
GaussianJointPdf (const char *prefix, const VectorSet< V, M > &domainSet, const V &lawExpVector, const V &lawVarVector) | |
Constructor. More... | |
GaussianJointPdf (const char *prefix, const VectorSet< V, M > &domainSet, const V &lawExpVector, const M &lawCovMatrix) | |
Constructor. More... | |
~GaussianJointPdf () | |
Destructor. More... | |
Math methods | |
double | actualValue (const V &domainVector, const V *domainDirection, V *gradVector, M *hessianMatrix, V *hessianEffect) const |
Actual value of the Gaussian PDF: More... | |
double | lnValue (const V &domainVector, const V *domainDirection, V *gradVector, M *hessianMatrix, V *hessianEffect) const |
Logarithm of the value of the Gaussian PDF (scalar function). More... | |
virtual void | distributionMean (V &meanVector) const |
Mean value of the underlying random variable. More... | |
virtual void | distributionVariance (M &covMatrix) const |
Covariance matrix of the underlying random variable. More... | |
double | computeLogOfNormalizationFactor (unsigned int numSamples, bool updateFactorInternally) const |
Computes the logarithm of the normalization factor. More... | |
void | updateLawExpVector (const V &newLawExpVector) |
Updates the mean with the new value newLawExpVector . More... | |
void | updateLawCovMatrix (const M &newLawCovMatrix) |
Updates the lower triangular matrix from Cholesky decomposition of the covariance matrix to the new value newLowerCholLawCovMatrix . More... | |
const M & | lawCovMatrix () const |
Returns the covariance matrix; access to protected attribute m_lawCovMatrix. More... | |
const V & | lawExpVector () const |
Access to the vector of mean values and private attribute: m_lawExpVector. More... | |
const V & | lawVarVector () const |
Access to the vector of variance values and private attribute: m_lawVarVector. More... | |
Public Member Functions inherited from QUESO::BaseJointPdf< V, M > | |
BaseJointPdf (const char *prefix, const VectorSet< V, M > &domainSet) | |
Default constructor. More... | |
virtual | ~BaseJointPdf () |
Destructor. More... | |
virtual void | setNormalizationStyle (unsigned int value) const |
void | setLogOfNormalizationFactor (double value) const |
Sets a logarithmic value to be used in the normalization factor (stored in the protected attribute m_normalizationStyle.) More... | |
Public Member Functions inherited from QUESO::BaseScalarFunction< V, M > | |
void | setFiniteDifferenceStepSize (double fdStepSize) |
Sets the step size for finite differencing gradients. More... | |
void | setFiniteDifferenceStepSize (unsigned int i, double fdStepSize) |
BaseScalarFunction (const char *prefix, const VectorSet< V, M > &domainSet) | |
Default constructor. More... | |
virtual | ~BaseScalarFunction () |
Destructor. More... | |
const VectorSet< V, M > & | domainSet () const |
Access to the protected attribute m_domainSet: domain set of the scalar function. More... | |
virtual double | lnValue (const V &domainVector) const |
Returns the logarithm of the function at domainVector . More... | |
virtual double | lnValue (const V &domainVector, V &gradVector) const |
Returns the logarithm of the function and its gradient at domainVector . More... | |
virtual double | lnValue (const V &domainVector, V &gradVector, const V &domainDirection, V &hessianEffect) const |
Protected Attributes | |
V * | m_lawExpVector |
V * | m_lawVarVector |
bool | m_diagonalCovMatrix |
const M * | m_lawCovMatrix |
Protected Attributes inherited from QUESO::BaseJointPdf< V, M > | |
unsigned int | m_normalizationStyle |
double | m_logOfNormalizationFactor |
Protected Attributes inherited from QUESO::BaseScalarFunction< V, M > | |
const BaseEnvironment & | m_env |
std::string | m_prefix |
const VectorSet< V, M > & | m_domainSet |
Domain set of the scalar function. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from QUESO::BaseJointPdf< V, M > | |
double | commonComputeLogOfNormalizationFactor (unsigned int numSamples, bool updateFactorInternally) const |
Common method (to the derived classes) to compute the logarithm of the normalization factor. More... | |
A class for handling Gaussian joint PDFs.
This class allows the mathematical definition of a Gaussian Joint PDF.
Definition at line 50 of file GaussianJointPdf.h.
QUESO::GaussianJointPdf< V, M >::GaussianJointPdf | ( | const char * | prefix, |
const VectorSet< V, M > & | domainSet, | ||
const V & | lawExpVector, | ||
const V & | lawVarVector | ||
) |
Constructor.
Constructs a new object, given a prefix and the domain of the PDF, a vector of mean values, lawExpVector
, and a vector of covariance values lawVarVector
(an alternative representation for a diagonal covariance matrix).
Definition at line 33 of file GaussianJointPdf.C.
References QUESO::BaseEnvironment::displayVerbosity(), QUESO::GaussianJointPdf< V, M >::lawExpVector(), QUESO::GaussianJointPdf< V, M >::lawVarVector(), QUESO::BaseScalarFunction< V, M >::m_env, QUESO::BaseScalarFunction< V, M >::m_prefix, and QUESO::BaseEnvironment::subDisplayFile().
QUESO::GaussianJointPdf< V, M >::GaussianJointPdf | ( | const char * | prefix, |
const VectorSet< V, M > & | domainSet, | ||
const V & | lawExpVector, | ||
const M & | lawCovMatrix | ||
) |
Constructor.
Constructs a new object, given a prefix and the image set of the vector realizer, a vector of mean values, lawExpVector
, and a covariance matrix, lawCovMatrix
.
Definition at line 68 of file GaussianJointPdf.C.
References QUESO::BaseEnvironment::displayVerbosity(), QUESO::GaussianJointPdf< V, M >::lawExpVector(), QUESO::BaseScalarFunction< V, M >::m_env, QUESO::BaseScalarFunction< V, M >::m_prefix, and QUESO::BaseEnvironment::subDisplayFile().
QUESO::GaussianJointPdf< V, M >::~GaussianJointPdf | ( | ) |
|
virtual |
Actual value of the Gaussian PDF:
This method calls lnValue() and applies the exponential to it.
Implements QUESO::BaseJointPdf< V, M >.
Definition at line 152 of file GaussianJointPdf.C.
References QUESO::queso_require_equal_to_msg.
|
virtual |
Computes the logarithm of the normalization factor.
This routine calls BaseJointPdf::commonComputeLogOfNormalizationFactor().
Implements QUESO::BaseJointPdf< V, M >.
Definition at line 329 of file GaussianJointPdf.C.
References QUESO::BaseJointPdf< V, M >::commonComputeLogOfNormalizationFactor().
|
virtual |
Mean value of the underlying random variable.
Reimplemented from QUESO::BaseJointPdf< V, M >.
Definition at line 301 of file GaussianJointPdf.C.
|
virtual |
Covariance matrix of the underlying random variable.
Reimplemented from QUESO::BaseJointPdf< V, M >.
Definition at line 308 of file GaussianJointPdf.C.
const M & QUESO::GaussianJointPdf< V, M >::lawCovMatrix | ( | ) | const |
Returns the covariance matrix; access to protected attribute m_lawCovMatrix.
Definition at line 369 of file GaussianJointPdf.C.
Referenced by QUESO::ScaledCovMatrixTKGroup< V, M >::setPreComputingPosition(), and QUESO::MetropolisAdjustedLangevinTK< V, M >::setPreComputingPosition().
const V & QUESO::GaussianJointPdf< V, M >::lawExpVector | ( | ) | const |
Access to the vector of mean values and private attribute: m_lawExpVector.
Definition at line 111 of file GaussianJointPdf.C.
Referenced by QUESO::GaussianJointPdf< V, M >::GaussianJointPdf().
const V & QUESO::GaussianJointPdf< V, M >::lawVarVector | ( | ) | const |
Access to the vector of variance values and private attribute: m_lawVarVector.
Definition at line 118 of file GaussianJointPdf.C.
Referenced by QUESO::GaussianJointPdf< V, M >::GaussianJointPdf().
|
virtual |
Logarithm of the value of the Gaussian PDF (scalar function).
The ln(value) comes from a summation of the Gaussian density:
\[ lnValue =- \sum_i \frac{1}{\sqrt{|covMatrix|} \sqrt{2 \pi}} exp(-\frac{(domainVector_i - lawExpVector_i)* covMatrix^{-1}* (domainVector_i - lawExpVector_i) }{2}, \]
where the \( covMatrix \) may recovered via this->lawVarVector()
, in case of diagonal matrices or via this->m_lawCovMatrix
, otherwise.
Reimplemented from QUESO::BaseScalarFunction< V, M >.
Definition at line 201 of file GaussianJointPdf.C.
|
virtual |
Print method for informational and logging purposes.
Reimplemented from QUESO::BaseJointPdf< V, M >.
Definition at line 125 of file GaussianJointPdf.C.
void QUESO::GaussianJointPdf< V, M >::updateLawCovMatrix | ( | const M & | newLawCovMatrix | ) |
Updates the lower triangular matrix from Cholesky decomposition of the covariance matrix to the new value newLowerCholLawCovMatrix
.
This method deletes old expected values (allocated at construction or last call to this method).
Definition at line 359 of file GaussianJointPdf.C.
void QUESO::GaussianJointPdf< V, M >::updateLawExpVector | ( | const V & | newLawExpVector | ) |
Updates the mean with the new value newLawExpVector
.
This method deletes old expected values (allocated at construction or last call to this method).
Definition at line 349 of file GaussianJointPdf.C.
|
protected |
Definition at line 126 of file GaussianJointPdf.h.
|
protected |
Definition at line 127 of file GaussianJointPdf.h.
|
protected |
Definition at line 124 of file GaussianJointPdf.h.
|
protected |
Definition at line 125 of file GaussianJointPdf.h.