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

Abstract base class for multivariate KDE bandwidth matrices. More...

#include <kernel++.h>

Inheritance diagram for cmp::kernel::Bandwidth:

Public Member Functions

virtual ~Bandwidth ()=default
 
virtual Eigen::VectorXd apply (const Eigen::VectorXd &x1, const Eigen::VectorXd &x2) const =0
 
virtual double determinant () const =0
 
virtual size_t size () const =0
 
virtual Eigen::VectorXd gradientOfApply (const Eigen::VectorXd &x1, const Eigen::VectorXd &x2, const size_t &i) const =0
 
virtual double gradientOfLogDeterminant (const size_t &i) const =0
 
virtual void setFromVector (const Eigen::VectorXd &params)=0
 
virtual Eigen::VectorXd getParams () const =0
 

Detailed Description

Abstract base class for multivariate KDE bandwidth matrices.

Mathematical Formulation The bandwidth matrix \(\mathbf{H} \in \mathbb{R}^{D \times D}\) acts as a linear transformation scaling spatial distances:

\[ \mathbf{z} = \mathbf{H}^{-1} (\mathbf{x}_1 - \mathbf{x}_2) \]

The smoothing kernel scales inversely with the determinant: \(\frac{1}{\det(\mathbf{H})}\).

Implementation Algorithm Defines virtual methods to compute coordinate scaling (apply), matrix determinant (determinant), and parameter gradients for NLopt optimization.

Constructor & Destructor Documentation

◆ ~Bandwidth()

virtual cmp::kernel::Bandwidth::~Bandwidth ( )
virtualdefault

Member Function Documentation

◆ apply()

virtual Eigen::VectorXd cmp::kernel::Bandwidth::apply ( const Eigen::VectorXd &  x1,
const Eigen::VectorXd &  x2 
) const
pure virtual

◆ determinant()

virtual double cmp::kernel::Bandwidth::determinant ( ) const
pure virtual

◆ getParams()

virtual Eigen::VectorXd cmp::kernel::Bandwidth::getParams ( ) const
pure virtual

◆ gradientOfApply()

virtual Eigen::VectorXd cmp::kernel::Bandwidth::gradientOfApply ( const Eigen::VectorXd &  x1,
const Eigen::VectorXd &  x2,
const size_t &  i 
) const
pure virtual

◆ gradientOfLogDeterminant()

virtual double cmp::kernel::Bandwidth::gradientOfLogDeterminant ( const size_t &  i) const
pure virtual

◆ setFromVector()

virtual void cmp::kernel::Bandwidth::setFromVector ( const Eigen::VectorXd &  params)
pure virtual

◆ size()

virtual size_t cmp::kernel::Bandwidth::size ( ) const
pure virtual

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