pub trait Distance<F: Float>: Clone + Send + Sync + Unpin {
fn distance<D: Dimension>(
&self,
a: ArrayView<'_, F, D>,
b: ArrayView<'_, F, D>
) -> F;
fn rdistance<D: Dimension>(
&self,
a: ArrayView<'_, F, D>,
b: ArrayView<'_, F, D>
) -> F { ... }
fn rdist_to_dist(&self, rdist: F) -> F { ... }
fn dist_to_rdist(&self, dist: F) -> F { ... }
}
Expand description
A distance function that can be used in spatial algorithms such as nearest neighbour.
Required Methods
Provided Methods
A faster version of the distance metric that keeps the order of the distance function. That
is, dist(a, b) > dist(c, d)
implies rdist(a, b) > rdist(c, d)
. For most algorithms this
is the same as distance
. Unlike distance
, this function does not need to satisfy
the Triangle Inequality.
fn rdist_to_dist(&self, rdist: F) -> F
fn rdist_to_dist(&self, rdist: F) -> F
Converts the result of rdistance
to distance
fn dist_to_rdist(&self, dist: F) -> F
fn dist_to_rdist(&self, dist: F) -> F
Converts the result of distance
to rdistance