Skip to main content

AdaptiveQuantizer

Struct AdaptiveQuantizer 

Source
pub struct AdaptiveQuantizer { /* private fields */ }
Expand description

Adaptive quantizer that supports per-vector bit-width selection and tier promotion/demotion.

Wraps three TurboQuantizer instances (hot/warm/cold) and provides methods to encode at a specific tier, promote to higher precision, or demote to lower precision.

Implementations§

Source§

impl AdaptiveQuantizer

Source

pub fn builder(dim: usize, seed: u64) -> AdaptiveBuilder

Create a builder for an adaptive quantizer.

§Arguments
  • dim — Vector dimension
  • seed — Random seed for deterministic quantization
Source

pub fn encode_adaptive( &self, vector: &[f32], tier: Tier, ) -> Result<AdaptiveCode>

Encode a vector at the specified tier.

Source

pub fn decode_adaptive(&self, code: &AdaptiveCode) -> Vec<f32>

Decode an adaptive code back to an approximate vector.

Source

pub fn inner_product_estimate( &self, code: &AdaptiveCode, query: &[f32], ) -> Result<f32>

Estimate inner product between a code and a query vector.

Source

pub fn promote(&self, code: &AdaptiveCode) -> Result<AdaptiveCode>

Promote a code to a higher-precision tier.

Decodes the current code and re-encodes at the next tier up. Hot codes cannot be promoted further.

Note: Promotion operates on the approximate reconstruction, not the original vector. The result is lower quality than encoding the original vector directly at the target tier. Use when the original is unavailable.

Source

pub fn demote(&self, code: &AdaptiveCode) -> Result<AdaptiveCode>

Demote a code to a lower-precision tier.

Decodes the current code and re-encodes at the next tier down. Cold codes cannot be demoted further.

Source

pub fn dim(&self) -> usize

Return the vector dimension.

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> 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<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> 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