pub struct IvfCoarseQuantizer { /* private fields */ }Expand description
IVF (Inverted File) coarse quantizer for sub-linear search.
Stores k centroids and a mapping from each entry index to its
nearest centroid. At query time, only the nprobe nearest cells
to the query are scanned, reducing search from O(N) to O(N/k * nprobe).
With k = sqrt(N) and nprobe constant, this is O(sqrt(N)).
Implementations§
Source§impl IvfCoarseQuantizer
impl IvfCoarseQuantizer
Sourcepub fn num_centroids(&self) -> usize
pub fn num_centroids(&self) -> usize
Number of centroids.
Sourcepub fn set_nprobe(&mut self, nprobe: usize)
pub fn set_nprobe(&mut self, nprobe: usize)
Set the default nprobe value.
Sourcepub fn assignments(&self) -> &[usize]
pub fn assignments(&self) -> &[usize]
Return the assignments slice.
Sourcepub fn inverted_lists(&self) -> Vec<Vec<usize>>
pub fn inverted_lists(&self) -> Vec<Vec<usize>>
Build inverted lists: for each centroid, the list of entry indices assigned to it.
Trait Implementations§
Source§impl Clone for IvfCoarseQuantizer
impl Clone for IvfCoarseQuantizer
Source§fn clone(&self) -> IvfCoarseQuantizer
fn clone(&self) -> IvfCoarseQuantizer
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for IvfCoarseQuantizer
impl RefUnwindSafe for IvfCoarseQuantizer
impl Send for IvfCoarseQuantizer
impl Sync for IvfCoarseQuantizer
impl Unpin for IvfCoarseQuantizer
impl UnsafeUnpin for IvfCoarseQuantizer
impl UnwindSafe for IvfCoarseQuantizer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.