pub struct BbqRerank { /* private fields */ }Expand description
Object-safe RerankCodec wrapper around BbqCodec.
The codec starts untrained. encode and prepare_query return
RerankError::NotTrained until train() has been called with a
representative sample of vectors.
from_codec accepts a pre-calibrated BbqCodec (used when restoring
from a snapshot).
Implementations§
Trait Implementations§
Source§impl RerankCodec for BbqRerank
impl RerankCodec for BbqRerank
Source§fn encode(&self, v: &[f32]) -> Result<Vec<u8>, RerankError>
fn encode(&self, v: &[f32]) -> Result<Vec<u8>, RerankError>
Encode a full-precision vector to BBQ 1-bit bytes.
The serialised form is the raw UnifiedQuantizedVector buffer
(as_bytes()): 32-byte QuantHeader followed by dim.div_ceil(8)
sign-packed bits plus 14 bytes of corrective factors in the header.
Source§fn prepare_query(&self, q: &[f32]) -> Result<PreparedQuery, RerankError>
fn prepare_query(&self, q: &[f32]) -> Result<PreparedQuery, RerankError>
Prepare the query by centering it and serialising the exact FP32 centered vector alongside the query norm.
The prepared form is PreparedQuery::Bytes with the layout:
4 bytes query_norm (f32 LE) || dim × 4 bytes centered f32 LE.
Source§fn distance_prepared(
&self,
prepared: &PreparedQuery,
encoded: &[u8],
) -> Result<f32, RerankError>
fn distance_prepared( &self, prepared: &PreparedQuery, encoded: &[u8], ) -> Result<f32, RerankError>
Compute asymmetric L2 distance from a prepared query to a BBQ-encoded candidate.
The query is the exact centered FP32 vector. The stored candidate is
reconstructed from its sign bits and residual_norm (each dim ≈
±norm/√dim). Returns L2 distance between them.
Expects PreparedQuery::Bytes produced by prepare_query.
Auto Trait Implementations§
impl Freeze for BbqRerank
impl RefUnwindSafe for BbqRerank
impl Send for BbqRerank
impl Sync for BbqRerank
impl Unpin for BbqRerank
impl UnsafeUnpin for BbqRerank
impl UnwindSafe for BbqRerank
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
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>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
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
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.