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

Computes the distance between two points. For most spatial algorithms to work correctly, this metric must satisfy the Triangle Inequality.

Panics if the points have different dimensions.

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.

Converts the result of rdistance to distance

Converts the result of distance to rdistance

Implementors