12 #ifndef MLPACK_CORE_KERNELS_EPANECHNIKOV_KERNEL_HPP
13 #define MLPACK_CORE_KERNELS_EPANECHNIKOV_KERNEL_HPP
40 inverseBandwidthSquared(1.0 / (bandwidth * bandwidth))
51 template<
typename VecTypeA,
typename VecTypeB>
52 double Evaluate(
const VecTypeA& a,
const VecTypeB& b)
const;
58 double Evaluate(
const double distance)
const;
65 double Gradient(
const double distance)
const;
82 template<
typename VecTypeA,
typename VecTypeB>
95 template<
typename Archive>
96 void Serialize(Archive& ar,
const unsigned int version);
102 double inverseBandwidthSquared;
121 #include "epanechnikov_kernel_impl.hpp"
This is a template class that can provide information about various kernels.
The core includes that mlpack expects; standard C++ includes and Armadillo.
double Evaluate(const VecTypeA &a, const VecTypeB &b) const
Evaluate the Epanechnikov kernel on the given two inputs.
EpanechnikovKernel(const double bandwidth=1.0)
Instantiate the Epanechnikov kernel with the given bandwidth (default 1.0).
double Normalizer(const size_t dimension)
Compute the normalizer of this Epanechnikov kernel for the given dimension.
double GradientForSquaredDistance(const double distanceSquared) const
Evaluate the Gradient of Epanechnikov kernel given that the squared distance between the two input po...
The Epanechnikov kernel, defined as.
static const bool IsNormalized
If true, then the kernel is normalized: K(x, x) = K(y, y) = 1 for all x.
double Gradient(const double distance) const
Evaluate the Gradient of Epanechnikov kernel given that the distance between the two input points is ...
void Serialize(Archive &ar, const unsigned int version)
Serialize the kernel.
static const bool UsesSquaredDistance
If true, then the kernel include a squared distance, ||x - y||^2 .
double ConvolutionIntegral(const VecTypeA &a, const VecTypeB &b)
Obtains the convolution integral [integral of K(||x-a||) K(||b-x||) dx] for the two vectors...