pub struct PdxIndex { /* private fields */ }Expand description
A full vector set in PDX layout: a sequence of vertical blocks.
Implementations§
Source§impl PdxIndex
impl PdxIndex
Sourcepub fn from_rows(vectors: &[&[f32]]) -> Self
pub fn from_rows(vectors: &[&[f32]]) -> Self
Build from row-major vectors.
§Panics
If vectors is empty, or any vector’s length differs from the first.
pub fn dim(&self) -> usize
pub fn len(&self) -> usize
pub fn is_empty(&self) -> bool
pub fn block_count(&self) -> usize
Sourcepub fn euclidean_sq_into(&self, query: &[f32], out: &mut [f32])
pub fn euclidean_sq_into(&self, query: &[f32], out: &mut [f32])
Squared euclidean distance from query to every indexed vector.
This is the bulk API the row-major batch path lacks — the second lever in ADR-279 §5.1, worth 1.85–3.04× independently of layout, because it amortizes dispatch and lets the prefetcher see a sequential stream.
§Panics
If out.len() < self.len().
Sourcepub fn dot_into(&self, query: &[f32], out: &mut [f32])
pub fn dot_into(&self, query: &[f32], out: &mut [f32])
Dot product from query to every indexed vector.
Sourcepub fn euclidean_sq(&self, query: &[f32]) -> Vec<f32>
pub fn euclidean_sq(&self, query: &[f32]) -> Vec<f32>
Convenience allocating wrapper.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for PdxIndex
impl RefUnwindSafe for PdxIndex
impl Send for PdxIndex
impl Sync for PdxIndex
impl Unpin for PdxIndex
impl UnsafeUnpin for PdxIndex
impl UnwindSafe for PdxIndex
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
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