The L_p metric for arbitrary integer p, with an option to take the root. More...
|void||serialize (Archive &, const unsigned int)|
|Serialize the metric (nothing to do). More...|
|static VecTypeA::elem_type||Evaluate (const VecTypeA &a, const VecTypeB &b)|
|Computes the distance between two points. More...|
|static const int||Power = TPower|
|The power of the metric. More...|
|static const bool||TakeRoot = TTakeRoot|
|Whether or not the root is taken. More...|
template<int TPower, bool TTakeRoot = true>
class mlpack::metric::LMetric< TPower, TTakeRoot >
The L_p metric for arbitrary integer p, with an option to take the root.
This class implements the standard L_p metric for two arbitrary vectors and of dimensionality :
The value of p is given as a template parameter.
In addition, the function can be simplified, neglecting the p-root calculation. This is done by specifying the TakeRoot template parameter to be false. Then,
It is faster to compute that distance, so TakeRoot is by default off. However, when TakeRoot is false, the distance given is not actually a true metric – it does not satisfy the triangle inequality. Some mlpack methods do not require the triangle inequality to operate correctly (such as the BinarySpaceTree), but setting TakeRoot = false in some cases will cause incorrect results.
A few convenience typedefs are given:
- Template Parameters
Power Power of metric; i.e. Power = 1 gives the L1-norm (Manhattan distance). TakeRoot If true, the Power'th root of the result is taken before it is returned. Setting this to false causes the metric to not satisfy the Triangle Inequality (be careful!).
Constructor & Destructor Documentation
Member Function Documentation
Computes the distance between two points.
- Template Parameters
VecTypeA Type of first vector (generally arma::vec or arma::sp_vec). VecTypeB Type of second vector.
a First vector. b Second vector.
- Distance between vectors a and b.
Referenced by SphericalKernel::ConvolutionIntegral(), GaussianKernel::ConvolutionIntegral(), SphericalKernel::Evaluate(), TriangularKernel::Evaluate(), LaplacianKernel::Evaluate(), GaussianKernel::Evaluate(), and LMetric< TPower, TTakeRoot >::LMetric().
Member Data Documentation
The documentation for this class was generated from the following file:
Generated by 1.8.13