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

Represents a custom user-defined covariance function using std::function wrappers. More...

#include <covariance.h>

Inheritance diagram for cmp::covariance::Custom:
Collaboration diagram for cmp::covariance::Custom:

Public Member Functions

 Custom (const Custom &)=default
 
 Custom (Custom &&)=default
 
Customoperator= (const Custom &)=default
 
Customoperator= (Custom &&)=default
 
 Custom (std::function< double(const Eigen::VectorXd &, const Eigen::VectorXd &, const Eigen::VectorXd &)> eval, std::function< double(const Eigen::VectorXd &, const Eigen::VectorXd &, const Eigen::VectorXd &, const size_t &)> evalGradient, std::function< double(const Eigen::VectorXd &, const Eigen::VectorXd &, const Eigen::VectorXd &, const size_t &, const size_t &)> evalHessian)
 Constructs a custom covariance kernel with evaluation, gradient, and Hessian functions.
 
double eval (const Eigen::VectorXd &x1, const Eigen::VectorXd &x2, const Eigen::VectorXd &par) const
 Evaluates the custom kernel.
 
double evalGradient (const Eigen::VectorXd &x1, const Eigen::VectorXd &x2, const Eigen::VectorXd &par, const size_t &i) const
 Evaluates the custom kernel's gradient.
 
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 custom kernel's Hessian.
 
std::shared_ptr< Custommake (std::function< double(const Eigen::VectorXd &, const Eigen::VectorXd &, const Eigen::VectorXd &)> eval, std::function< double(const Eigen::VectorXd &, const Eigen::VectorXd &, const Eigen::VectorXd &, const size_t &)> evalGradient, std::function< double(const Eigen::VectorXd &, const Eigen::VectorXd &, const Eigen::VectorXd &, const size_t &, const size_t &)> evalHessian)
 Factory method for creating a shared pointer to a custom covariance.
 
- Public Member Functions inherited from cmp::covariance::Covariance
virtual ~Covariance ()=default
 

Private Attributes

std::function< double(const Eigen::VectorXd &, const Eigen::VectorXd &, const Eigen::VectorXd &)> eval_
 Custom kernel evaluation function.
 
std::function< double(const Eigen::VectorXd &, const Eigen::VectorXd &, const Eigen::VectorXd &, const size_t &)> evalGradient_
 Custom gradient evaluation function.
 
std::function< double(const Eigen::VectorXd &, const Eigen::VectorXd &, const Eigen::VectorXd &, const size_t &, const size_t &)> evalHessian_
 Custom Hessian evaluation function.
 

Detailed Description

Represents a custom user-defined covariance function using std::function wrappers.

Constructor & Destructor Documentation

◆ Custom() [1/3]

cmp::covariance::Custom::Custom ( const Custom )
default

◆ Custom() [2/3]

cmp::covariance::Custom::Custom ( Custom &&  )
default

◆ Custom() [3/3]

cmp::covariance::Custom::Custom ( std::function< double(const Eigen::VectorXd &, const Eigen::VectorXd &, const Eigen::VectorXd &)>  eval,
std::function< double(const Eigen::VectorXd &, const Eigen::VectorXd &, const Eigen::VectorXd &, const size_t &)>  evalGradient,
std::function< double(const Eigen::VectorXd &, const Eigen::VectorXd &, const Eigen::VectorXd &, const size_t &, const size_t &)>  evalHessian 
)
inline

Constructs a custom covariance kernel with evaluation, gradient, and Hessian functions.

Member Function Documentation

◆ eval()

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

Evaluates the custom kernel.

Implements cmp::covariance::Covariance.

◆ evalGradient()

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

Evaluates the custom kernel's gradient.

Implements cmp::covariance::Covariance.

◆ evalHessian()

double cmp::covariance::Custom::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 custom kernel's Hessian.

Implements cmp::covariance::Covariance.

◆ make()

std::shared_ptr< Custom > cmp::covariance::Custom::make ( std::function< double(const Eigen::VectorXd &, const Eigen::VectorXd &, const Eigen::VectorXd &)>  eval,
std::function< double(const Eigen::VectorXd &, const Eigen::VectorXd &, const Eigen::VectorXd &, const size_t &)>  evalGradient,
std::function< double(const Eigen::VectorXd &, const Eigen::VectorXd &, const Eigen::VectorXd &, const size_t &, const size_t &)>  evalHessian 
)
inline

Factory method for creating a shared pointer to a custom covariance.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

Member Data Documentation

◆ eval_

std::function<double(const Eigen::VectorXd&, const Eigen::VectorXd&, const Eigen::VectorXd&)> cmp::covariance::Custom::eval_
private

Custom kernel evaluation function.

◆ evalGradient_

std::function<double(const Eigen::VectorXd&, const Eigen::VectorXd&, const Eigen::VectorXd&, const size_t&)> cmp::covariance::Custom::evalGradient_
private

Custom gradient evaluation function.

◆ evalHessian_

std::function<double(const Eigen::VectorXd&, const Eigen::VectorXd&, const Eigen::VectorXd&, const size_t&, const size_t&)> cmp::covariance::Custom::evalHessian_
private

Custom Hessian evaluation function.


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