#include <ProductKernel.h>
#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 ¶ms, 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 ¶ms, std::vector< int > const &wrts, Eigen::Ref< Eigen::MatrixXd > block) const override |
virtual std::shared_ptr< KernelBase > | Clone () 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 ¶ms) |
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 |
ProductKernel::ProductKernel | ( | std::shared_ptr< KernelBase > | kernel1In, |
std::shared_ptr< KernelBase > | kernel2In | ||
) |
Definition at line 7 of file ProductKernel.cpp.
References muq::Approximation::KernelBase::cachedParams, kernel1, kernel2, and muq::Approximation::KernelBase::numParams.
|
inlinevirtual |
Definition at line 39 of file ProductKernel.h.
|
inlineoverridevirtual |
Implements muq::Approximation::KernelBase.
Definition at line 89 of file ProductKernel.h.
References kernel1, and kernel2.
Referenced by GetSeperableComponents().
|
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.
|
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.
|
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().
|
overridevirtual |
Overridden by ProductKernel.
Reimplemented from muq::Approximation::KernelBase.
Definition at line 54 of file ProductKernel.cpp.
|
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.
|
protected |
Definition at line 135 of file ProductKernel.h.
Referenced by Clone(), FillBlock(), FillPosDerivBlock(), GetProductStateSpace(), GetSeperableComponents(), GetStateSpace(), and ProductKernel().
|
protected |
Definition at line 136 of file ProductKernel.h.
Referenced by Clone(), FillBlock(), FillPosDerivBlock(), GetProductStateSpace(), GetSeperableComponents(), GetStateSpace(), and ProductKernel().