22 #ifndef __MLPACK_CORE_KERNELS_EPANECHNIKOV_KERNEL_HPP
23 #define __MLPACK_CORE_KERNELS_EPANECHNIKOV_KERNEL_HPP
58 template<
typename Vec1Type,
typename Vec2Type>
59 double Evaluate(
const Vec1Type& a,
const Vec2Type& b)
const;
65 double Evaluate(
const double distance)
const;
76 template<
typename VecType>
106 #include "epanechnikov_kernel_impl.hpp"
double ConvolutionIntegral(const VecType &a, const VecType &b)
Obtains the convolution integral [integral of K(||x-a||) K(||b-x||) dx] for the two vectors...
This is a template class that can provide information about various kernels.
EpanechnikovKernel(const double bandwidth=1.0)
Instantiate the Epanechnikov kernel with the given bandwidth (default 1.0).
double inverseBandwidthSquared
Cached value of the inverse bandwidth squared (to speed up computation).
double bandwidth
Bandwidth of the kernel.
The Epanechnikov kernel, defined as.
double Normalizer(const size_t dimension)
Compute the normalizer of this Epanechnikov kernel for the given dimension.
double Evaluate(const Vec1Type &a, const Vec2Type &b) const
Evaluate the Epanechnikov kernel on the given two inputs.
static const bool IsNormalized
If true, then the kernel is normalized: K(x, x) = K(y, y) = 1 for all x.