pub trait NearestNeighbourIndex<F: Float>: Send + Sync + Unpin {
    fn k_nearest<'b>(
        &self,
        point: ArrayView1<'b, F>,
        k: usize
    ) -> Result<Vec<(ArrayView1<'_, F>, usize)>, NnError>; fn within_range<'b>(
        &self,
        point: ArrayView1<'b, F>,
        range: F
    ) -> Result<Vec<(ArrayView1<'_, F>, usize)>, NnError>; }
Expand description

A spatial index structure over a set of points, created by NearestNeighbour. Allows efficient computation of nearest neighbour and range queries over the set of points. Individual points are represented as one-dimensional array views.

Required Methods

Returns the k points in the index that are the closest to the provided point, along with their positions in the original dataset. Points are returned in ascending order of the distance away from the provided points, and less than k points will be returned if the index contains fewer than k.

Returns an error if the provided point has different dimensionality than the index’s points.

Returns all the points in the index that are within the specified distance to the provided point, along with their positions in the original dataset. The points are not guaranteed to be in any order, though many algorithms return the points in order of distance.

Returns an error if the provided point has different dimensionality than the index’s points.

Implementors