MUQ  0.4.3
SumKernel.h
Go to the documentation of this file.
1 #ifndef SUMKERNEL_H
2 #define SUMKERNEL_H
3 
5 
6 
7 namespace muq
8 {
9 namespace Approximation
10 {
11 
21 class SumKernel : public KernelBase
22 {
23 
24 public:
25  SumKernel(std::shared_ptr<KernelBase> kernel1In,
26  std::shared_ptr<KernelBase> kernel2In);
27 
28  virtual ~SumKernel(){};
29 
30  virtual std::shared_ptr<KernelBase> Clone() const override{return std::make_shared<SumKernel>(kernel1,kernel2);};
31 
32  virtual void FillBlock(Eigen::Ref<const Eigen::VectorXd> const& x1,
33  Eigen::Ref<const Eigen::VectorXd> const& x2,
34  Eigen::Ref<const Eigen::VectorXd> const& params,
35  Eigen::Ref<Eigen::MatrixXd> block) const override;
36 
37 
38  virtual void FillPosDerivBlock(Eigen::Ref<const Eigen::VectorXd> const& x1,
39  Eigen::Ref<const Eigen::VectorXd> const& x2,
40  Eigen::Ref<const Eigen::VectorXd> const& params,
41  std::vector<int> const& wrts,
42  Eigen::Ref<Eigen::MatrixXd> block) const override;
43 
44 
45  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;
46 
47 private:
48  std::shared_ptr<KernelBase> kernel1;
49  std::shared_ptr<KernelBase> kernel2;
50 };
51 
52 
54 SumKernel operator+(KernelType1 const& k1, KernelType2 const& k2)
55 {
56  return SumKernel(k1.Clone(), k2.Clone());
57 }
58 
59 std::shared_ptr<SumKernel> operator+(std::shared_ptr<KernelBase> k1, std::shared_ptr<KernelBase> k2);
60 
61 } // namespace Approximation
62 } // namespace muq
63 
64 
65 #endif
Base class for all covariance kernels.
Definition: KernelBase.h:36
std::shared_ptr< KernelBase > kernel1
Definition: SumKernel.h:48
std::shared_ptr< KernelBase > kernel2
Definition: SumKernel.h:49
virtual std::shared_ptr< KernelBase > Clone() const override
Definition: SumKernel.h:30
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
Definition: SumKernel.cpp:40
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
Definition: SumKernel.cpp:25
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.
Definition: SumKernel.cpp:54
SumKernel(std::shared_ptr< KernelBase > kernel1In, std::shared_ptr< KernelBase > kernel2In)
Definition: SumKernel.cpp:10
SumMean operator+(MeanType1 const &mu1, MeanType2 const &mu2)
int int FloatType value
Definition: json.h:15223