1 #ifndef SQUAREDEXPKERNEL_H
2 #define SQUAREDEXPKERNEL_H
9 namespace Approximation
36 {0.0, std::numeric_limits<double>::infinity()},
37 {1
e-10, std::numeric_limits<double>::infinity()})
44 Eigen::Vector2d sigmaBounds,
63 {0.0, std::numeric_limits<double>::infinity()},
64 {1
e-10, std::numeric_limits<double>::infinity()} )
70 Eigen::Vector2d sigmaBounds,
86 template<
typename ScalarType1,
typename ScalarType2,
typename ScalarType3>
87 void FillBlockImpl(Eigen::Ref<
const Eigen::Matrix<ScalarType1, Eigen::Dynamic, 1>>
const& x1,
88 Eigen::Ref<
const Eigen::Matrix<ScalarType1, Eigen::Dynamic, 1>>
const& x2,
89 Eigen::Ref<
const Eigen::Matrix<ScalarType2, Eigen::Dynamic, 1>>
const& params,
90 Eigen::Ref<Eigen::Matrix<ScalarType3,Eigen::Dynamic, Eigen::Dynamic>> block)
const
92 ScalarType1 squaredDist = (x1-x2).squaredNorm();
93 block(0,0) = params(0)*exp(-0.5*squaredDist/(params(1)*params(1)));
Eigen::VectorXd cachedParams
const std::vector< unsigned int > dimInds
Eigen::MatrixXd paramBounds
Base class in CRTP pattern for covariance kernels.
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
SquaredExpKernel(unsigned dimIn, double sigma2In, double lengthIn, Eigen::Vector2d sigmaBounds, Eigen::Vector2d lengthBounds)
SquaredExpKernel(unsigned dimIn, double sigma2In, double lengthIn)
SquaredExpKernel(unsigned dimIn, std::vector< unsigned > dimInds, double sigma2In, double lengthIn)
SquaredExpKernel(unsigned dimIn, std::vector< unsigned > dimInds, double sigma2In, double lengthIn, Eigen::Vector2d sigmaBounds, Eigen::Vector2d lengthBounds)
virtual ~SquaredExpKernel()