Trait linfa_nn::NearestNeighbourIndex
source · [−]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.
fn within_range<'b>(
&self,
point: ArrayView1<'b, F>,
range: F
) -> Result<Vec<(ArrayView1<'_, F>, usize)>, NnError>
fn within_range<'b>(
&self,
point: ArrayView1<'b, F>,
range: F
) -> Result<Vec<(ArrayView1<'_, F>, usize)>, NnError>
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.