1 #ifndef CONCATENATEKERNEL_H
2 #define CONCATENATEKERNEL_H
9 namespace Approximation
27 std::shared_ptr<KernelBase>
const& kernel2In) :
ConcatenateKernel(std::vector<std::shared_ptr<
KernelBase>>({kernel1In, kernel2In})){};
33 virtual std::shared_ptr<KernelBase>
Clone()
const override{
return std::make_shared<ConcatenateKernel>(
kernels);};
35 virtual void FillBlock(Eigen::Ref<const Eigen::VectorXd>
const& x1,
36 Eigen::Ref<const Eigen::VectorXd>
const& x2,
37 Eigen::Ref<const Eigen::VectorXd>
const& params,
38 Eigen::Ref<Eigen::MatrixXd> block)
const override;
41 Eigen::Ref<const Eigen::VectorXd>
const& x2,
42 Eigen::Ref<const Eigen::VectorXd>
const& params,
43 std::vector<int>
const& wrts,
44 Eigen::Ref<Eigen::MatrixXd> block)
const override;
46 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;
53 std::vector<std::shared_ptr<KernelBase>>
kernels;
58 template<
typename KernelType1,
typename KernelType2>
std::vector< std::shared_ptr< KernelBase > > kernels
static unsigned int CountParams(std::vector< std::shared_ptr< KernelBase >> kernels)
ConcatenateKernel(std::shared_ptr< KernelBase > const &kernel1In, std::shared_ptr< KernelBase > const &kernel2In)
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.
virtual std::shared_ptr< KernelBase > Clone() const override
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 ~ConcatenateKernel()=default
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
static unsigned int CountCoDims(std::vector< std::shared_ptr< KernelBase >> kernels)
Base class for all covariance kernels.
ConcatenateKernel Concatenate(KernelType1 const &kernel1, KernelType2 const &kernel2)