pub struct Sq8Rerank { /* private fields */ }Expand description
Object-safe RerankCodec wrapper around Sq8Codec.
train() calls Sq8Codec::calibrate to fit per-dimension min/max from a
sample of vectors. Subsequent encode / distance_prepared calls use the
calibrated codec.
Implementations§
Source§impl Sq8Rerank
impl Sq8Rerank
Sourcepub fn new(dim: usize) -> Self
pub fn new(dim: usize) -> Self
Create an untrained wrapper with a default-calibrated codec.
The default codec treats every dimension’s min as 0.0 and max as 1.0,
which is suitable for normalized embeddings. For best accuracy call
train() with representative samples before encoding.
Sourcepub fn from_codec(codec: Sq8Codec) -> Self
pub fn from_codec(codec: Sq8Codec) -> Self
Wrap an already-trained Sq8Codec.
Trait Implementations§
Source§impl RerankCodec for Sq8Rerank
impl RerankCodec for Sq8Rerank
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 SQ8 bytes.
The serialized form is the raw UnifiedQuantizedVector buffer
(as_bytes()), which embeds a 32-byte QuantHeader followed by
dim packed INT8 codes.
Source§fn prepare_query(&self, q: &[f32]) -> Result<PreparedQuery, RerankError>
fn prepare_query(&self, q: &[f32]) -> Result<PreparedQuery, RerankError>
Prepare the query for repeated distance calls.
SQ8 is asymmetric: the query is kept in full FP32 precision while
candidates are INT8. The prepared form is therefore PreparedQuery::Raw.
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 FP32 query to an SQ8-encoded candidate.
Auto Trait Implementations§
impl Freeze for Sq8Rerank
impl RefUnwindSafe for Sq8Rerank
impl Send for Sq8Rerank
impl Sync for Sq8Rerank
impl Unpin for Sq8Rerank
impl UnsafeUnpin for Sq8Rerank
impl UnwindSafe for Sq8Rerank
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.