CMP++: Uncertainty Quantification & Bayesian Calibration
Loading...
Searching...
No Matches
cmp::distribution::MultivariateDistribution< Derived > Class Template Reference

CRTP base class for all multivariate probability distributions. More...

#include <distribution.h>

Inheritance diagram for cmp::distribution::MultivariateDistribution< Derived >:

Public Member Functions

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.
 

Detailed Description

template<typename Derived>
class cmp::distribution::MultivariateDistribution< Derived >

CRTP base class for all multivariate probability distributions.

Mathematical Formulation Defines a probability distribution over a random vector \(\mathbf{X} \in \mathbb{R}^d\) with joint probability density function \(p(\mathbf{x})\). Provides static polymorphic interfaces for:

  • Joint log-likelihood: \(\log p(\mathbf{x})\)
  • Vector sampling: drawing \(\mathbf{x} \sim p(\mathbf{x})\)
  • Canonical transformations (bijective mapping to/from standard multivariate space).

    Implementation Algorithm Uses the Curiously Recurring Template Pattern (CRTP) to implement static polymorphism.

Member Function Documentation

◆ dimension()

template<typename Derived >
size_t cmp::distribution::MultivariateDistribution< Derived >::dimension ( ) const
inline

Returns the dimensionality of the multivariate space.

◆ fromCanonical()

template<typename Derived >
Eigen::MatrixXd cmp::distribution::MultivariateDistribution< Derived >::fromCanonical ( const Eigen::MatrixXd &  x) const
inline

Transforms standard canonical samples back to physical space.

Parameters
xMatrix of canonical samples.
Returns
Matrix of physical samples.

◆ logPDF()

template<typename Derived >
double cmp::distribution::MultivariateDistribution< Derived >::logPDF ( const Eigen::Ref< const Eigen::VectorXd > &  x) const
inline

Computes the joint log probability density function (log-PDF) of the distribution.

Parameters
xVector point at which to evaluate the log-PDF.
Returns
Evaluated log-PDF.

◆ sample()

template<typename Derived >
Eigen::VectorXd cmp::distribution::MultivariateDistribution< Derived >::sample ( std::default_random_engine &  rng)
inline

Draws a single vector sample from the joint distribution.

Parameters
rngRandom number engine.
Returns
Random vector sample.

◆ toCanonical()

template<typename Derived >
Eigen::MatrixXd cmp::distribution::MultivariateDistribution< Derived >::toCanonical ( const Eigen::MatrixXd &  x) const
inline

Transforms physical samples to standard canonical space.

Parameters
xMatrix of physical samples (each row is a sample).
Returns
Matrix of canonical samples.

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