[−][src]Trait acap::distance::Metric
Marker trait for metric spaces.
A metric must be symmetric and obey the triangle inequality. More precisely, let x
, y
,
and z
be any elements of a metric space, and let d(x, y) = x.distance(y).value()
. Then the
following rules must hold:
d(x, x) == 0
,d(x, y) == d(y, z)
(symmetry), andd(x, z) <= d(x, y) + d(y, z)
(triangle inequality).
Those conditions also imply the following condition:
d(x, y) >= 0
(non-negativity)
Because we do not prohibit d(x, y) == 0
for distinct x
and y
, these spaces are more
properly known as pseudometric spaces. This distinction is usually unimportant.
Implementations on Foreign Types
impl<'k, 'v, K: Metric<V>, V> Metric<&'v V> for &'k K
[src]
Blanket Metric implementation for references.
Implementors
impl<T> Metric<Euclidean<T>> for Euclidean<T> where
T: Coordinates,
EuclideanDistance<T::Value>: Distance,
[src]
T: Coordinates,
EuclideanDistance<T::Value>: Distance,
Euclidean distance is a metric.
impl<T> Metric<Euclidean<T>> for T where
T: Coordinates,
EuclideanDistance<T::Value>: Distance,
[src]
T: Coordinates,
EuclideanDistance<T::Value>: Distance,
impl<T> Metric<T> for Euclidean<T> where
T: Coordinates,
EuclideanDistance<T::Value>: Distance,
[src]
T: Coordinates,
EuclideanDistance<T::Value>: Distance,
impl<T: Coordinates> Metric<Chebyshev<T>> for Chebyshev<T>
[src]
Chebyshev distance is a metric.
impl<T: Coordinates> Metric<Chebyshev<T>> for T
[src]
impl<T: Coordinates> Metric<Taxicab<T>> for Taxicab<T>
[src]
Taxicab distance is a metric.
impl<T: Coordinates> Metric<Taxicab<T>> for T
[src]
impl<T: Coordinates> Metric<T> for Chebyshev<T>
[src]
impl<T: Coordinates> Metric<T> for Taxicab<T>
[src]
impl<T: PrimInt> Metric<Hamming<T>> for Hamming<T>
[src]
Hamming distance is a metric.