pub struct L2ListMetadata {
pub centroid: Vec<f32>,
pub radius: f32,
pub mean_radius: f32,
pub vector_count: u32,
}Expand description
Metadata for L2 distance bounds (centroid + radius)
Fields§
§centroid: Vec<f32>Centroid of the list
radius: f32Maximum L2 distance from centroid to any vector in list
mean_radius: f32Mean L2 distance from centroid
vector_count: u32Number of vectors
Implementations§
Source§impl L2ListMetadata
impl L2ListMetadata
Sourcepub fn from_vectors(vectors: &[Vec<f32>], centroid: &[f32]) -> Self
pub fn from_vectors(vectors: &[Vec<f32>], centroid: &[f32]) -> Self
Build from vectors
Sourcepub fn lower_bound(&self, query: &[f32]) -> f32
pub fn lower_bound(&self, query: &[f32]) -> f32
Compute lower bound on L2 distance from query to any vector in list
LB = max(0, dist(q, c) - radius)
Trait Implementations§
Source§impl Clone for L2ListMetadata
impl Clone for L2ListMetadata
Source§fn clone(&self) -> L2ListMetadata
fn clone(&self) -> L2ListMetadata
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 L2ListMetadata
impl RefUnwindSafe for L2ListMetadata
impl Send for L2ListMetadata
impl Sync for L2ListMetadata
impl Unpin for L2ListMetadata
impl UnsafeUnpin for L2ListMetadata
impl UnwindSafe for L2ListMetadata
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