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

Represents the product of two covariance functions. More...

#include <covariance.h>

Inheritance diagram for cmp::covariance::Product:
Collaboration diagram for cmp::covariance::Product:

Public Member Functions

 Product (const Product &)=default
 
 Product (Product &&)=default
 
Productoperator= (const Product &)=default
 
Productoperator= (Product &&)=default
 
 Product (std::shared_ptr< Covariance > k1, std::shared_ptr< Covariance > k2)
 Constructs a product covariance function from two kernels.
 
double eval (const Eigen::VectorXd &x1, const Eigen::VectorXd &x2, const Eigen::VectorXd &par) const
 Evaluates the product kernel.
 
double evalGradient (const Eigen::VectorXd &x1, const Eigen::VectorXd &x2, const Eigen::VectorXd &par, const size_t &i) const
 Evaluates the partial derivative of the product kernel.
 
double evalHessian (const Eigen::VectorXd &x1, const Eigen::VectorXd &x2, const Eigen::VectorXd &par, const size_t &i, const size_t &j) const
 Evaluates the second-order partial derivative of the product kernel.
 
- Public Member Functions inherited from cmp::covariance::Covariance
virtual ~Covariance ()=default
 

Static Public Member Functions

static std::shared_ptr< Covariancemake (std::shared_ptr< Covariance > k1, std::shared_ptr< Covariance > k2)
 Factory method to create a shared pointer to a product covariance.
 

Private Attributes

std::shared_ptr< CovarianceleftCovariance_
 Left operand covariance function.
 
std::shared_ptr< CovariancerightCovariance_
 Right operand covariance function.
 

Detailed Description

Represents the product of two covariance functions.

Mathematical Formulation For two covariance kernels \(k_1\) and \(k_2\), the product kernel is:

\[ k_{\text{prod}}(\mathbf{x}_1, \mathbf{x}_2; \boldsymbol{\theta}) = k_1(\mathbf{x}_1, \mathbf{x}_2; \boldsymbol{\theta}) \times k_2(\mathbf{x}_1, \mathbf{x}_2; \boldsymbol{\theta}) \]

Constructor & Destructor Documentation

◆ Product() [1/3]

cmp::covariance::Product::Product ( const Product )
default

◆ Product() [2/3]

cmp::covariance::Product::Product ( Product &&  )
default

◆ Product() [3/3]

cmp::covariance::Product::Product ( std::shared_ptr< Covariance k1,
std::shared_ptr< Covariance k2 
)
inline

Constructs a product covariance function from two kernels.

Member Function Documentation

◆ eval()

double cmp::covariance::Product::eval ( const Eigen::VectorXd &  x1,
const Eigen::VectorXd &  x2,
const Eigen::VectorXd &  par 
) const
inlinevirtual

Evaluates the product kernel.

Implements cmp::covariance::Covariance.

◆ evalGradient()

double cmp::covariance::Product::evalGradient ( const Eigen::VectorXd &  x1,
const Eigen::VectorXd &  x2,
const Eigen::VectorXd &  par,
const size_t &  i 
) const
inlinevirtual

Evaluates the partial derivative of the product kernel.

Implements cmp::covariance::Covariance.

◆ evalHessian()

double cmp::covariance::Product::evalHessian ( const Eigen::VectorXd &  x1,
const Eigen::VectorXd &  x2,
const Eigen::VectorXd &  par,
const size_t &  i,
const size_t &  j 
) const
inlinevirtual

Evaluates the second-order partial derivative of the product kernel.

Implements cmp::covariance::Covariance.

◆ make()

static std::shared_ptr< Covariance > cmp::covariance::Product::make ( std::shared_ptr< Covariance k1,
std::shared_ptr< Covariance k2 
)
inlinestatic

Factory method to create a shared pointer to a product covariance.

◆ operator=() [1/2]

Product & cmp::covariance::Product::operator= ( const Product )
default

◆ operator=() [2/2]

Product & cmp::covariance::Product::operator= ( Product &&  )
default

Member Data Documentation

◆ leftCovariance_

std::shared_ptr<Covariance> cmp::covariance::Product::leftCovariance_
private

Left operand covariance function.

◆ rightCovariance_

std::shared_ptr<Covariance> cmp::covariance::Product::rightCovariance_
private

Right operand covariance function.


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