MUQ  0.4.3
muq::Approximation::LinearTransformKernel Class Reference

#include <LinearTransformKernel.h>

Inheritance diagram for muq::Approximation::LinearTransformKernel:

Detailed Description

Given another kernel $k_2(x,y)$ and a linear transformation $A$, this class implements a kernel of the form

\[ k(x,y) = A * k_2(x,y) * A^T. \]

Definition at line 22 of file LinearTransformKernel.h.

Public Member Functions

 LinearTransformKernel (Eigen::MatrixXd const &Ain, std::shared_ptr< KernelBase > Kin)
 
virtual ~LinearTransformKernel ()
 
virtual void FillBlock (Eigen::Ref< const Eigen::VectorXd > const &x1, Eigen::Ref< const Eigen::VectorXd > const &x2, Eigen::Ref< const Eigen::VectorXd > const &params, Eigen::Ref< Eigen::MatrixXd > block) const override
 
virtual void FillPosDerivBlock (Eigen::Ref< const Eigen::VectorXd > const &x1, Eigen::Ref< const Eigen::VectorXd > const &x2, Eigen::Ref< const Eigen::VectorXd > const &params, std::vector< int > const &wrts, Eigen::Ref< Eigen::MatrixXd > block) const override
 
virtual std::shared_ptr< KernelBaseClone () const override
 
- Public Member Functions inherited from muq::Approximation::KernelBase
 KernelBase (unsigned int inputDimIn, unsigned int coDimIn, unsigned int numParamsIn)
 
 KernelBase (unsigned int inputDimIn, std::vector< unsigned int > dimIndsIn, unsigned int coDimIn, unsigned int numParamsIn)
 
virtual ~KernelBase ()
 
virtual std::vector< std::shared_ptr< KernelBase > > GetSeperableComponents ()
 Overridden by ProductKernel. More...
 
virtual Eigen::MatrixXd Evaluate (Eigen::VectorXd const &x1, Eigen::VectorXd const &x2) const
 
virtual Eigen::MatrixXd BuildCovariance (Eigen::MatrixXd const &x) const
 
virtual Eigen::MatrixXd BuildCovariance (Eigen::MatrixXd const &x1, Eigen::MatrixXd const &x2) const
 
virtual void FillCovariance (Eigen::MatrixXd const &xs, Eigen::MatrixXd const &ys, Eigen::Ref< Eigen::MatrixXd > cov) const
 
virtual void FillCovariance (Eigen::MatrixXd const &xs, Eigen::Ref< Eigen::MatrixXd > cov) const
 
virtual void FillDerivCovariance (Eigen::MatrixXd const &xs, Eigen::MatrixXd const &ys, std::vector< int > const &wrts, Eigen::Ref< Eigen::MatrixXd > cov) const
 
virtual Eigen::MatrixXd GetPosDerivative (Eigen::VectorXd const &x1, Eigen::VectorXd const &x2, std::vector< int > const &wrts) const
 Returns derivatives of the kernel with respect to the first input, x1. More...
 
virtual Eigen::MatrixXd GetParamBounds () const
 
virtual Eigen::VectorXd GetParams () const
 
virtual void SetParams (Eigen::VectorXd const &params)
 
virtual std::tuple< std::shared_ptr< muq::Modeling::LinearSDE >, std::shared_ptr< muq::Modeling::LinearOperator >, Eigen::MatrixXd > GetStateSpace (boost::property_tree::ptree sdeOptions=boost::property_tree::ptree()) const
 Returns a state space representation of the covariance kernel. More...
 

Additional Inherited Members

- Public Attributes inherited from muq::Approximation::KernelBase
const std::vector< unsigned int > dimInds
 
const unsigned int inputDim
 
const unsigned int coDim
 
const unsigned int numParams
 

Constructor & Destructor Documentation

◆ LinearTransformKernel()

muq::Approximation::LinearTransformKernel::LinearTransformKernel ( Eigen::MatrixXd const &  Ain,
std::shared_ptr< KernelBase Kin 
)
inline

◆ ~LinearTransformKernel()

virtual muq::Approximation::LinearTransformKernel::~LinearTransformKernel ( )
inlinevirtual

Definition at line 36 of file LinearTransformKernel.h.

Member Function Documentation

◆ Clone()

virtual std::shared_ptr<KernelBase> muq::Approximation::LinearTransformKernel::Clone ( ) const
inlineoverridevirtual

Implements muq::Approximation::KernelBase.

Definition at line 60 of file LinearTransformKernel.h.

References A, and K.

◆ FillBlock()

virtual void muq::Approximation::LinearTransformKernel::FillBlock ( Eigen::Ref< const Eigen::VectorXd > const &  x1,
Eigen::Ref< const Eigen::VectorXd > const &  x2,
Eigen::Ref< const Eigen::VectorXd > const &  params,
Eigen::Ref< Eigen::MatrixXd >  block 
) const
inlineoverridevirtual

For particular points and parameters, this function fills in one block of the covariance matrix.

Implements muq::Approximation::KernelBase.

Definition at line 39 of file LinearTransformKernel.h.

References A, and K.

◆ FillPosDerivBlock()

virtual void muq::Approximation::LinearTransformKernel::FillPosDerivBlock ( Eigen::Ref< const Eigen::VectorXd > const &  x1,
Eigen::Ref< const Eigen::VectorXd > const &  x2,
Eigen::Ref< const Eigen::VectorXd > const &  params,
std::vector< int > const &  wrts,
Eigen::Ref< Eigen::MatrixXd >  block 
) const
inlineoverridevirtual

Evaluates a first or higher order derivative of the covariance kernel with respect to one of the position variables.

Implements muq::Approximation::KernelBase.

Definition at line 49 of file LinearTransformKernel.h.

References A, and K.

Member Data Documentation

◆ A

Eigen::MatrixXd muq::Approximation::LinearTransformKernel::A
private

Definition at line 63 of file LinearTransformKernel.h.

Referenced by Clone(), FillBlock(), and FillPosDerivBlock().

◆ K

std::shared_ptr<KernelBase> muq::Approximation::LinearTransformKernel::K
private

Definition at line 64 of file LinearTransformKernel.h.

Referenced by Clone(), FillBlock(), and FillPosDerivBlock().


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