Skip to main content

Sq8Rerank

Struct Sq8Rerank 

Source
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

Source

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.

Source

pub fn from_codec(codec: Sq8Codec) -> Self

Wrap an already-trained Sq8Codec.

Trait Implementations§

Source§

impl RerankCodec for Sq8Rerank

Source§

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>

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>

Compute asymmetric L2 distance from a prepared FP32 query to an SQ8-encoded candidate.

Source§

fn train(&mut self, samples: &[&[f32]]) -> Result<(), RerankError>

Calibrate from a sample of vectors.

Replaces the current codec state. Requires at least one sample.

Source§

fn name(&self) -> CodecName

Identity tag for mismatch detection.
Source§

fn to_bytes(&self) -> Result<Vec<u8>, RerankError>

Serialize trained state to bytes. Each codec uses its own magic header (NDSQ / NDBIN / NDPQ / NDRBQ / NDBBQ). The bytes are codec-specific; rerank_codec_from_bytes is used for restore, paired with name().

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> ArchivePointee for T

Source§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
Source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> LayoutRaw for T

Source§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Returns the layout of the type.
Source§

impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
where T: SharedNiching<N1, N2>, N1: Niching<T>, N2: Niching<T>,

Source§

unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool

Returns whether the given value has been niched. Read more
Source§

fn resolve_niched(out: Place<NichedOption<T, N1>>)

Writes data to out indicating that a T is niched.
Source§

impl<T> Pointee for T

Source§

type Metadata = ()

The metadata type for pointers and references to this type.
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more