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

Diagonal bandwidth matrix (independent parameter per dimension). More...

#include <kernel++.h>

Inheritance diagram for cmp::kernel::DiagonalBandwidth:
Collaboration diagram for cmp::kernel::DiagonalBandwidth:

Public Member Functions

 DiagonalBandwidth ()=delete
 
 DiagonalBandwidth (const Eigen::VectorXd &h)
 Constructs a DiagonalBandwidth from a parameter vector.
 
Eigen::VectorXd apply (const Eigen::VectorXd &x1, const Eigen::VectorXd &x2) const override
 Scales the coordinate distances independently by 1 / h_d.
 
double determinant () const override
 Computes the determinant of the diagonal bandwidth matrix.
 
size_t size () const override
 Returns the dimension of the space.
 
Eigen::VectorXd gradientOfApply (const Eigen::VectorXd &x1, const Eigen::VectorXd &x2, const size_t &i) const override
 
double gradientOfLogDeterminant (const size_t &i) const override
 
void setFromVector (const Eigen::VectorXd &params) override
 
Eigen::VectorXd getParams () const override
 
- Public Member Functions inherited from cmp::kernel::Bandwidth
virtual ~Bandwidth ()=default
 

Static Public Member Functions

static std::shared_ptr< Bandwidthmake (const Eigen::VectorXd &h)
 

Private Attributes

Eigen::VectorXd h_
 Diagonal bandwidth parameters vector.
 
double det_
 Precomputed determinant of the diagonal bandwidth matrix.
 

Detailed Description

Diagonal bandwidth matrix (independent parameter per dimension).

Mathematical Formulation Represents a diagonal matrix \(\mathbf{H} = \text{diag}(h_1, \dots, h_D)\). Coordinates are scaled independently:

\[ z_d = \frac{x_{1,d} - x_{2,d}}{h_d} \]

The determinant is \(\det(\mathbf{H}) = \prod_{d=1}^D h_d\).

Constructor & Destructor Documentation

◆ DiagonalBandwidth() [1/2]

cmp::kernel::DiagonalBandwidth::DiagonalBandwidth ( )
delete

◆ DiagonalBandwidth() [2/2]

cmp::kernel::DiagonalBandwidth::DiagonalBandwidth ( const Eigen::VectorXd &  h)
inline

Constructs a DiagonalBandwidth from a parameter vector.

Member Function Documentation

◆ apply()

Eigen::VectorXd cmp::kernel::DiagonalBandwidth::apply ( const Eigen::VectorXd &  x1,
const Eigen::VectorXd &  x2 
) const
overridevirtual

Scales the coordinate distances independently by 1 / h_d.

Implements cmp::kernel::Bandwidth.

◆ determinant()

double cmp::kernel::DiagonalBandwidth::determinant ( ) const
overridevirtual

Computes the determinant of the diagonal bandwidth matrix.

Implements cmp::kernel::Bandwidth.

◆ getParams()

Eigen::VectorXd cmp::kernel::DiagonalBandwidth::getParams ( ) const
overridevirtual

◆ gradientOfApply()

Eigen::VectorXd cmp::kernel::DiagonalBandwidth::gradientOfApply ( const Eigen::VectorXd &  x1,
const Eigen::VectorXd &  x2,
const size_t &  i 
) const
overridevirtual

◆ gradientOfLogDeterminant()

double cmp::kernel::DiagonalBandwidth::gradientOfLogDeterminant ( const size_t &  i) const
overridevirtual

◆ make()

static std::shared_ptr< Bandwidth > cmp::kernel::DiagonalBandwidth::make ( const Eigen::VectorXd &  h)
inlinestatic

◆ setFromVector()

void cmp::kernel::DiagonalBandwidth::setFromVector ( const Eigen::VectorXd &  params)
overridevirtual

◆ size()

size_t cmp::kernel::DiagonalBandwidth::size ( ) const
inlineoverridevirtual

Returns the dimension of the space.

Implements cmp::kernel::Bandwidth.

Member Data Documentation

◆ det_

double cmp::kernel::DiagonalBandwidth::det_
private

Precomputed determinant of the diagonal bandwidth matrix.

◆ h_

Eigen::VectorXd cmp::kernel::DiagonalBandwidth::h_
private

Diagonal bandwidth parameters vector.


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