queso-0.57.1
|
A class for handling hybrid (transformed) Gaussians with bounds. More...
#include <InvLogitGaussianJointPdf.h>
Public Member Functions | |
virtual void | print (std::ostream &os) const |
Prints the distribution. More... | |
Constructor/Destructor methods | |
InvLogitGaussianJointPdf (const char *prefix, const BoxSubset< V, M > &domainBoxSubset, const V &lawExpVector, const V &lawVarVector) | |
Constructor. More... | |
InvLogitGaussianJointPdf (const char *prefix, const BoxSubset< V, M > &domainBoxSubset, const V &lawExpVector, const M &lawCovMatrix) | |
Constructor. More... | |
~InvLogitGaussianJointPdf () | |
Destructor. More... | |
Math methods | |
double | actualValue (const V &domainVector, const V *domainDirection, V *gradVector, M *hessianMatrix, V *hessianEffect) const |
Actual value of the (transformed) Gaussian PDF. More... | |
double | lnValue (const V &domainVector, const V *domainDirection, V *gradVector, M *hessianMatrix, V *hessianEffect) const |
Logarithm of the value of the (transformed) 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 of the Gaussian (not transformed) 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 of the Gaussian (not transformed) 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 |
Private Attributes | |
V * | m_lawExpVector |
V * | m_lawVarVector |
bool | m_diagonalCovMatrix |
const M * | m_lawCovMatrix |
const BoxSubset< V, M > & | m_domainBoxSubset |
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... | |
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... | |
A class for handling hybrid (transformed) Gaussians with bounds.
This class allows the mathematical definition of a Gaussian PDF in dimensions of a VectorSubset that are unbounded, and a logit
transformed Gaussian PDF in dimensions that have a lower or upper (or both) bound. For the bounded directions, the PDF is
\[ p(x) = \frac{1}{2 \sigma^2 \pi} \exp \left( - \frac12 (\mbox{logit} x - \mu)^2 \right) \mbox{logit}'(x), \quad x \in [a, b], \]
where logit
is defined as
\[ \mbox{logit}(x) = \log \left( \frac{x - a}{b - x} \right), \quad x \in [a, b]. \]
Definition at line 58 of file InvLogitGaussianJointPdf.h.
QUESO::InvLogitGaussianJointPdf< V, M >::InvLogitGaussianJointPdf | ( | const char * | prefix, |
const BoxSubset< V, M > & | domainBoxSubset, | ||
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
(for the Gaussian, not the transformed Gaussian), and a vector of covariance values lawVarVector
(an alternative representation for a diagonal covariance matrix).
Definition at line 33 of file InvLogitGaussianJointPdf.C.
QUESO::InvLogitGaussianJointPdf< V, M >::InvLogitGaussianJointPdf | ( | const char * | prefix, |
const BoxSubset< V, M > & | domainBoxSubset, | ||
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
(for the Gaussian, not the transformed Gaussian), and a covariance matrix, lawCovMatrix
.
Definition at line 51 of file InvLogitGaussianJointPdf.C.
QUESO::InvLogitGaussianJointPdf< V, M >::~InvLogitGaussianJointPdf | ( | ) |
Destructor.
Definition at line 68 of file InvLogitGaussianJointPdf.C.
|
virtual |
Actual value of the (transformed) Gaussian PDF.
This method calls lnValue() and applies the exponential to it.
Implements QUESO::BaseJointPdf< V, M >.
Definition at line 117 of file InvLogitGaussianJointPdf.C.
|
virtual |
Computes the logarithm of the normalization factor.
This routine calls BaseJointPdf::commonComputeLogOfNormalizationFactor().
Implements QUESO::BaseJointPdf< V, M >.
Definition at line 257 of file InvLogitGaussianJointPdf.C.
References QUESO::BaseJointPdf< V, M >::commonComputeLogOfNormalizationFactor().
|
virtual |
Mean value of the underlying random variable.
Reimplemented from QUESO::BaseJointPdf< V, M >.
Definition at line 233 of file InvLogitGaussianJointPdf.C.
|
virtual |
Covariance matrix of the underlying random variable.
Reimplemented from QUESO::BaseJointPdf< V, M >.
Definition at line 245 of file InvLogitGaussianJointPdf.C.
const M & QUESO::InvLogitGaussianJointPdf< V, M >::lawCovMatrix | ( | ) | const |
Returns the covariance matrix; access to protected attribute m_lawCovMatrix.
Definition at line 295 of file InvLogitGaussianJointPdf.C.
Referenced by QUESO::TransformedScaledCovMatrixTKGroup< V, M >::setPreComputingPosition().
const V & QUESO::InvLogitGaussianJointPdf< V, M >::lawExpVector | ( | ) | const |
Access to the vector of mean values of the Gaussian (not transformed) and private attribute: m_lawExpVector.
Definition at line 77 of file InvLogitGaussianJointPdf.C.
const V & QUESO::InvLogitGaussianJointPdf< V, M >::lawVarVector | ( | ) | const |
Access to the vector of variance values and private attribute: m_lawVarVector.
Definition at line 84 of file InvLogitGaussianJointPdf.C.
|
virtual |
Logarithm of the value of the (transformed) 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} + \log \mbox{logit}'(domainVector_i), \]
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 133 of file InvLogitGaussianJointPdf.C.
References QUESO::queso_isfinite().
|
virtual |
Prints the distribution.
When the mean and variance are printed, what's printed is the mean and variance of the underlying Gaussian distribution, not the output of the distributionMean
and distributionVariance
methods.
Reimplemented from QUESO::BaseJointPdf< V, M >.
Definition at line 91 of file InvLogitGaussianJointPdf.C.
void QUESO::InvLogitGaussianJointPdf< 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 286 of file InvLogitGaussianJointPdf.C.
void QUESO::InvLogitGaussianJointPdf< V, M >::updateLawExpVector | ( | const V & | newLawExpVector | ) |
Updates the mean of the Gaussian (not transformed) with the new value newLawExpVector
.
This method deletes old expected values (allocated at construction or last call to this method).
Definition at line 277 of file InvLogitGaussianJointPdf.C.
|
private |
Definition at line 165 of file InvLogitGaussianJointPdf.h.
|
private |
Definition at line 168 of file InvLogitGaussianJointPdf.h.
|
private |
Definition at line 166 of file InvLogitGaussianJointPdf.h.
|
private |
Definition at line 163 of file InvLogitGaussianJointPdf.h.
|
private |
Definition at line 164 of file InvLogitGaussianJointPdf.h.