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

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

#include <covariance.h>

Inheritance diagram for cmp::covariance::Sum:
Collaboration diagram for cmp::covariance::Sum:

Public Member Functions

 Sum ()=default
 
 Sum (const Sum &)=default
 
 Sum (Sum &&)=default
 
Sumoperator= (const Sum &)=default
 
Sumoperator= (Sum &&)=default
 
 Sum (std::shared_ptr< Covariance > k1, std::shared_ptr< Covariance > k2)
 Constructs a sum covariance function from two kernels.
 
double eval (const Eigen::VectorXd &x1, const Eigen::VectorXd &x2, const Eigen::VectorXd &par) const
 Evaluates the sum 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 sum 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 sum 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 sum covariance.
 

Private Attributes

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

Detailed Description

Represents the sum of two covariance functions.

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

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

Constructor & Destructor Documentation

◆ Sum() [1/4]

cmp::covariance::Sum::Sum ( )
default

◆ Sum() [2/4]

cmp::covariance::Sum::Sum ( const Sum )
default

◆ Sum() [3/4]

cmp::covariance::Sum::Sum ( Sum &&  )
default

◆ Sum() [4/4]

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

Constructs a sum covariance function from two kernels.

Member Function Documentation

◆ eval()

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

Evaluates the sum kernel.

Implements cmp::covariance::Covariance.

◆ evalGradient()

double cmp::covariance::Sum::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 sum kernel.

Implements cmp::covariance::Covariance.

◆ evalHessian()

double cmp::covariance::Sum::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 sum kernel.

Implements cmp::covariance::Covariance.

◆ make()

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

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

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

Member Data Documentation

◆ leftCovariance_

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

Left operand covariance function.

◆ rightCovariance_

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

Right operand covariance function.


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