MUQ  0.4.3
muq::Approximation::ProductKernel Class Reference

#include <ProductKernel.h>

Inheritance diagram for muq::Approximation::ProductKernel:

Detailed Description

#ingroup CovarianceKernels

\[ k(x,y) = k_1(x,y)*k_2(x,y) \]

Definition at line 32 of file ProductKernel.h.

Public Member Functions

 ProductKernel (std::shared_ptr< KernelBase > kernel1In, std::shared_ptr< KernelBase > kernel2In)
 
virtual ~ProductKernel ()
 
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
 
virtual std::vector< std::shared_ptr< KernelBase > > GetSeperableComponents () override
 Overridden by ProductKernel. More...
 
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 override
 Returns a state space representation of the covariance kernel. More...
 
- 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 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)
 

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

◆ ProductKernel()

ProductKernel::ProductKernel ( std::shared_ptr< KernelBase kernel1In,
std::shared_ptr< KernelBase kernel2In 
)

◆ ~ProductKernel()

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

Definition at line 39 of file ProductKernel.h.

Member Function Documentation

◆ Clone()

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

Implements muq::Approximation::KernelBase.

Definition at line 89 of file ProductKernel.h.

References kernel1, and kernel2.

Referenced by GetSeperableComponents().

◆ FillBlock()

void ProductKernel::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
overridevirtual

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

Implements muq::Approximation::KernelBase.

Definition at line 23 of file ProductKernel.cpp.

References kernel1, and kernel2.

◆ FillPosDerivBlock()

virtual void muq::Approximation::ProductKernel::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 46 of file ProductKernel.h.

References muq::Approximation::KernelBase::coDim, kernel1, and kernel2.

◆ GetProductStateSpace()

std::tuple< std::shared_ptr< muq::Modeling::LinearSDE >, std::shared_ptr< muq::Modeling::LinearOperator >, Eigen::MatrixXd > ProductKernel::GetProductStateSpace ( std::shared_ptr< PeriodicKernel > const &  kernel1,
std::shared_ptr< KernelBase > const &  kernel2,
boost::property_tree::ptree  sdeOptions 
) const
protected

Construct the new F operator

Construct the new L operator

Construct the new H operator

Definition at line 114 of file ProductKernel.cpp.

References kernel1, kernel2, muq::Modeling::KroneckerProduct(), and muq::Modeling::KroneckerSum().

Referenced by GetStateSpace().

◆ GetSeperableComponents()

std::vector< std::shared_ptr< KernelBase > > ProductKernel::GetSeperableComponents ( )
overridevirtual

Overridden by ProductKernel.

Reimplemented from muq::Approximation::KernelBase.

Definition at line 54 of file ProductKernel.cpp.

References Clone(), kernel1, and kernel2.

◆ GetStateSpace()

std::tuple< std::shared_ptr< muq::Modeling::LinearSDE >, std::shared_ptr< muq::Modeling::LinearOperator >, Eigen::MatrixXd > ProductKernel::GetStateSpace ( boost::property_tree::ptree  sdeOptions = boost::property_tree::ptree()) const
overridevirtual

Returns a state space representation of the covariance kernel.

If this is a one dimensional kernel (i.e., inputDim=1 and coDim=1), this function returns a state space representation of the covariance kernel. In particular, it returns a linear time invariant stochastic differential equation, whose solution, when started with the returned stationary covariance, provides the same information as this Gaussian process. The first component of the vector-valued stochastic differential equation is related to the Gaussian process. See "Kalman filtering and smoothing solutions to temporal Gaussian process regression models," by Jouni Hartikainen and Simo Sarkka, for more information.

Reimplemented from muq::Approximation::KernelBase.

Definition at line 91 of file ProductKernel.cpp.

References GetProductStateSpace(), muq::Utilities::GetTypeName(), kernel1, and kernel2.

Member Data Documentation

◆ kernel1

std::shared_ptr<KernelBase> muq::Approximation::ProductKernel::kernel1
protected

◆ kernel2

std::shared_ptr<KernelBase> muq::Approximation::ProductKernel::kernel2
protected

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