pub struct ListBound {
pub list_idx: u32,
pub bound: f32,
}Expand description
Precomputed bounds for best-first list ordering
Fields§
§list_idx: u32List index
bound: f32Bound value (interpretation depends on metric)
Implementations§
Source§impl ListBound
impl ListBound
Sourcepub fn order_for_probing(bounds: &mut [ListBound], metric: DistanceMetric)
pub fn order_for_probing(bounds: &mut [ListBound], metric: DistanceMetric)
Order lists by bound for best-first probing
For similarity metrics: descending order (best first) For distance metrics: ascending order (best first)
Sourcepub fn can_terminate(
kth_score: f32,
best_remaining_bound: f32,
metric: DistanceMetric,
) -> bool
pub fn can_terminate( kth_score: f32, best_remaining_bound: f32, metric: DistanceMetric, ) -> bool
Check if we can terminate based on kth best score and remaining bounds
For similarity: stop if kth_score > best_remaining_bound For distance: stop if kth_score < best_remaining_bound
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ListBound
impl RefUnwindSafe for ListBound
impl Send for ListBound
impl Sync for ListBound
impl Unpin for ListBound
impl UnsafeUnpin for ListBound
impl UnwindSafe for ListBound
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 more