CMP++: Uncertainty Quantification & Bayesian Calibration
Loading...
Searching...
No Matches
cmp::covariance::Covariance Class Referenceabstract

Abstract base class for all covariance (kernel) functions. More...

#include <covariance.h>

Inheritance diagram for cmp::covariance::Covariance:

Public Member Functions

virtual ~Covariance ()=default
 
virtual double eval (const Eigen::VectorXd &x1, const Eigen::VectorXd &x2, const Eigen::VectorXd &par) const =0
 
virtual double evalGradient (const Eigen::VectorXd &x1, const Eigen::VectorXd &x2, const Eigen::VectorXd &par, const size_t &i) const =0
 
virtual double evalHessian (const Eigen::VectorXd &x1, const Eigen::VectorXd &x2, const Eigen::VectorXd &par, const size_t &i, const size_t &j) const =0
 

Detailed Description

Abstract base class for all covariance (kernel) functions.

Mathematical Formulation A covariance function (kernel) \(k: \mathbb{R}^D \times \mathbb{R}^D \to \mathbb{R}\) defines the covariance between GP values at any two inputs \(\mathbf{x}_1, \mathbf{x}_2\):

\[ \text{Cov}(f(\mathbf{x}_1), f(\mathbf{x}_2)) = k(\mathbf{x}_1, \mathbf{x}_2; \boldsymbol{\theta}) \]

where \(\boldsymbol{\theta}\) is the vector of kernel hyperparameters. The function must be symmetric and positive semi-definite:

\[ \sum_{i=1}^n \sum_{j=1}^n c_i c_j k(\mathbf{x}_i, \mathbf{x}_j) \ge 0 \quad \forall c_i \in \mathbb{R} \]

Implementation Algorithm Provides a virtual interface for evaluating the covariance value (eval), its first-order gradient (evalGradient) with respect to a hyperparameter \(\theta_i\), and its second-order Hessian (evalHessian) with respect to hyperparameters \(\theta_i, \theta_j\).

Constructor & Destructor Documentation

◆ ~Covariance()

virtual cmp::covariance::Covariance::~Covariance ( )
virtualdefault

Member Function Documentation

◆ eval()

virtual double cmp::covariance::Covariance::eval ( const Eigen::VectorXd &  x1,
const Eigen::VectorXd &  x2,
const Eigen::VectorXd &  par 
) const
pure virtual

◆ evalGradient()

virtual double cmp::covariance::Covariance::evalGradient ( const Eigen::VectorXd &  x1,
const Eigen::VectorXd &  x2,
const Eigen::VectorXd &  par,
const size_t &  i 
) const
pure virtual

◆ evalHessian()

virtual double cmp::covariance::Covariance::evalHessian ( const Eigen::VectorXd &  x1,
const Eigen::VectorXd &  x2,
const Eigen::VectorXd &  par,
const size_t &  i,
const size_t &  j 
) const
pure virtual

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