1 #ifndef CONSTANTKERNEL_H
2 #define CONSTANTKERNEL_H
9 namespace Approximation
30 const double sigma2In,
31 const Eigen::Vector2d sigmaBounds = {0.0, std::numeric_limits<double>::infinity()});
35 const double sigma2In,
36 const Eigen::Vector2d sigmaBounds = {0.0, std::numeric_limits<double>::infinity()});
39 Eigen::MatrixXd
const& sigma2In,
40 const Eigen::Vector2d sigmaBounds = {0.0, std::numeric_limits<double>::infinity()});
44 Eigen::MatrixXd
const& sigma2In,
45 const Eigen::Vector2d sigmaBounds = {0.0, std::numeric_limits<double>::infinity()});
49 template<
typename ScalarType1,
typename ScalarType2,
typename ScalarType3>
50 void FillBlockImpl(Eigen::Ref<
const Eigen::Matrix<ScalarType1, Eigen::Dynamic, 1>>
const& x1,
51 Eigen::Ref<
const Eigen::Matrix<ScalarType1, Eigen::Dynamic, 1>>
const& x2,
52 Eigen::Ref<
const Eigen::Matrix<ScalarType2, Eigen::Dynamic, 1>>
const& params,
53 Eigen::Ref<Eigen::Matrix<ScalarType3,Eigen::Dynamic, Eigen::Dynamic>> block)
const
56 for(
int i=0; i<
coDim; ++i){
57 for(
int j=0; j<=i; ++j){
58 block(i,j) = params(ind);
59 block(j,i) = block(i,j);
66 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;
72 return 0.5*cov.rows()*(cov.rows()+1);
void FillBlockImpl(Eigen::Ref< const Eigen::Matrix< ScalarType1, Eigen::Dynamic, 1 >> const &x1, Eigen::Ref< const Eigen::Matrix< ScalarType1, Eigen::Dynamic, 1 >> const &x2, Eigen::Ref< const Eigen::Matrix< ScalarType2, Eigen::Dynamic, 1 >> const ¶ms, Eigen::Ref< Eigen::Matrix< ScalarType3, Eigen::Dynamic, Eigen::Dynamic >> block) const
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.
ConstantKernel(unsigned dim, const double sigma2In, const Eigen::Vector2d sigmaBounds={0.0, std::numeric_limits< double >::infinity()})
virtual ~ConstantKernel()=default
static unsigned GetNumParams(Eigen::MatrixXd const &cov)
const std::vector< unsigned int > dimInds
Base class in CRTP pattern for covariance kernels.