CMP++: Uncertainty Quantification & Bayesian Calibration
Loading...
Searching...
No Matches
cmp::distribution::MultivariateStudentDistribution Class Reference

#include <distribution.h>

Inheritance diagram for cmp::distribution::MultivariateStudentDistribution:
Collaboration diagram for cmp::distribution::MultivariateStudentDistribution:

Public Member Functions

template<typename LDLTDerived >
 MultivariateStudentDistribution (const Eigen::Ref< const Eigen::VectorXd > &mean, const Eigen::LDLT< LDLTDerived > &ldltDecomposition, double nu)
 
 MultivariateStudentDistribution (const Eigen::Ref< const Eigen::VectorXd > &mean, const Eigen::Ref< const Eigen::MatrixXd > &cov, double nu)
 
 MultivariateStudentDistribution ()=default
 
double logPDF (const Eigen::Ref< const Eigen::VectorXd > &x) const
 
double logJumpPDF (const Eigen::Ref< const Eigen::VectorXd > &jump)
 
double squaredMahalanobis (const Eigen::Ref< const Eigen::VectorXd > &jump) const
 
Eigen::VectorXd sample (std::default_random_engine &rng, const double &gamma=1.0)
 
Eigen::VectorXd get () const
 
void set (const Eigen::Ref< const Eigen::VectorXd > &x)
 
void setMean (const Eigen::Ref< const Eigen::VectorXd > &mean)
 
void setLdltDecomposition (const Eigen::LDLT< Eigen::MatrixXd > &ldltDecomposition)
 
void setDoFs (double nu)
 
Eigen::MatrixXd toCanonical (const Eigen::MatrixXd &x) const
 
Eigen::MatrixXd toPhysical (const Eigen::MatrixXd &z) const
 
size_t dimension () const
 
- Public Member Functions inherited from cmp::distribution::ProposalDistribution< MultivariateStudentDistribution >
double logJumpPDF (const Eigen::Ref< const Eigen::VectorXd > &jump)
 
Eigen::VectorXd sample (std::default_random_engine &rng, const double &gamma)
 
Eigen::VectorXd sample (std::default_random_engine &rng)
 
double squaredMahalanobis (const Eigen::Ref< const Eigen::VectorXd > &jump) const
 
Eigen::VectorXd get () const
 
void set (const Eigen::Ref< const Eigen::VectorXd > &x)
 
- Public Member Functions inherited from cmp::distribution::MultivariateDistribution< Derived >
double logPDF (const Eigen::Ref< const Eigen::VectorXd > &x) const
 Computes the joint log probability density function (log-PDF) of the distribution.
 
Eigen::VectorXd sample (std::default_random_engine &rng)
 Draws a single vector sample from the joint distribution.
 
Eigen::MatrixXd toCanonical (const Eigen::MatrixXd &x) const
 Transforms physical samples to standard canonical space.
 
Eigen::MatrixXd fromCanonical (const Eigen::MatrixXd &x) const
 Transforms standard canonical samples back to physical space.
 
size_t dimension () const
 Returns the dimensionality of the multivariate space.
 

Static Public Member Functions

static double logPDF (const Eigen::Ref< const Eigen::VectorXd > &res, const Eigen::LDLT< Eigen::MatrixXd > &ldltDecomposition, const double &nu)
 
static MultivariateStudentDistribution canonical (const size_t dim, const double nu)
 

Private Attributes

Eigen::VectorXd mean_
 Mean vector.
 
Eigen::LDLT< Eigen::MatrixXd > ldltDecomposition_
 LDLT decomposition of the covariance scale matrix.
 
double dofs_
 Degrees of freedom parameter (nu).
 
std::normal_distribution< doubledistN_
 Normal distribution helper for coordinate sampling.
 

Constructor & Destructor Documentation

◆ MultivariateStudentDistribution() [1/3]

template<typename LDLTDerived >
cmp::distribution::MultivariateStudentDistribution::MultivariateStudentDistribution ( const Eigen::Ref< const Eigen::VectorXd > &  mean,
const Eigen::LDLT< LDLTDerived > &  ldltDecomposition,
double  nu 
)
inline

◆ MultivariateStudentDistribution() [2/3]

cmp::distribution::MultivariateStudentDistribution::MultivariateStudentDistribution ( const Eigen::Ref< const Eigen::VectorXd > &  mean,
const Eigen::Ref< const Eigen::MatrixXd > &  cov,
double  nu 
)
inline

◆ MultivariateStudentDistribution() [3/3]

cmp::distribution::MultivariateStudentDistribution::MultivariateStudentDistribution ( )
default

Member Function Documentation

◆ canonical()

static MultivariateStudentDistribution cmp::distribution::MultivariateStudentDistribution::canonical ( const size_t  dim,
const double  nu 
)
inlinestatic

◆ dimension()

size_t cmp::distribution::MultivariateStudentDistribution::dimension ( ) const
inline

◆ get()

Eigen::VectorXd cmp::distribution::MultivariateStudentDistribution::get ( ) const
inline

◆ logJumpPDF()

double cmp::distribution::MultivariateStudentDistribution::logJumpPDF ( const Eigen::Ref< const Eigen::VectorXd > &  jump)
inline

◆ logPDF() [1/2]

static double cmp::distribution::MultivariateStudentDistribution::logPDF ( const Eigen::Ref< const Eigen::VectorXd > &  res,
const Eigen::LDLT< Eigen::MatrixXd > &  ldltDecomposition,
const double nu 
)
inlinestatic

◆ logPDF() [2/2]

double cmp::distribution::MultivariateStudentDistribution::logPDF ( const Eigen::Ref< const Eigen::VectorXd > &  x) const
inline

◆ sample()

Eigen::VectorXd cmp::distribution::MultivariateStudentDistribution::sample ( std::default_random_engine &  rng,
const double gamma = 1.0 
)
inline

◆ set()

void cmp::distribution::MultivariateStudentDistribution::set ( const Eigen::Ref< const Eigen::VectorXd > &  x)
inline

◆ setDoFs()

void cmp::distribution::MultivariateStudentDistribution::setDoFs ( double  nu)
inline

◆ setLdltDecomposition()

void cmp::distribution::MultivariateStudentDistribution::setLdltDecomposition ( const Eigen::LDLT< Eigen::MatrixXd > &  ldltDecomposition)
inline

◆ setMean()

void cmp::distribution::MultivariateStudentDistribution::setMean ( const Eigen::Ref< const Eigen::VectorXd > &  mean)
inline

◆ squaredMahalanobis()

double cmp::distribution::MultivariateStudentDistribution::squaredMahalanobis ( const Eigen::Ref< const Eigen::VectorXd > &  jump) const
inline

◆ toCanonical()

Eigen::MatrixXd cmp::distribution::MultivariateStudentDistribution::toCanonical ( const Eigen::MatrixXd &  x) const
inline

◆ toPhysical()

Eigen::MatrixXd cmp::distribution::MultivariateStudentDistribution::toPhysical ( const Eigen::MatrixXd &  z) const
inline

Member Data Documentation

◆ distN_

std::normal_distribution<double> cmp::distribution::MultivariateStudentDistribution::distN_
private

Normal distribution helper for coordinate sampling.

◆ dofs_

double cmp::distribution::MultivariateStudentDistribution::dofs_
private

Degrees of freedom parameter (nu).

◆ ldltDecomposition_

Eigen::LDLT<Eigen::MatrixXd> cmp::distribution::MultivariateStudentDistribution::ldltDecomposition_
private

LDLT decomposition of the covariance scale matrix.

◆ mean_

Eigen::VectorXd cmp::distribution::MultivariateStudentDistribution::mean_
private

Mean vector.


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