pub struct ScalarQuantizer { /* private fields */ }Expand description
Scalar quantizer for compressing float32 vectors
Implementations§
Source§impl ScalarQuantizer
impl ScalarQuantizer
Sourcepub fn new(config: QuantizationConfig) -> Self
pub fn new(config: QuantizationConfig) -> Self
Create a new scalar quantizer
Sourcepub fn fit(&mut self, vectors: &[Vec<f32>]) -> Result<()>
pub fn fit(&mut self, vectors: &[Vec<f32>]) -> Result<()>
Fit quantizer to training data
Computes per-dimension min/max values for quantization.
Sourcepub fn dequantize(&self, quantized: &[u8]) -> Vec<f32>
pub fn dequantize(&self, quantized: &[u8]) -> Vec<f32>
Dequantize a uint8/int8 vector back to float32
Sourcepub fn dequantize_batch(&self, quantized: &[Vec<u8>]) -> Vec<Vec<f32>>
pub fn dequantize_batch(&self, quantized: &[Vec<u8>]) -> Vec<Vec<f32>>
Dequantize multiple vectors
Sourcepub fn quantized_distance(&self, a: &[u8], b: &[u8]) -> f32
pub fn quantized_distance(&self, a: &[u8], b: &[u8]) -> f32
Compute approximate distance between quantized vectors
This is faster than dequantizing and computing distance on float32. Uses SIMD-optimized Manhattan distance for maximum performance.
Sourcepub fn compression_ratio(&self) -> f32
pub fn compression_ratio(&self) -> f32
Get compression ratio
Sourcepub fn memory_savings(&self) -> f32
pub fn memory_savings(&self) -> f32
Get memory savings percentage
Sourcepub fn dimensions(&self) -> usize
pub fn dimensions(&self) -> usize
Get number of dimensions
Trait Implementations§
Source§impl Clone for ScalarQuantizer
impl Clone for ScalarQuantizer
Source§fn clone(&self) -> ScalarQuantizer
fn clone(&self) -> ScalarQuantizer
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ScalarQuantizer
impl Debug for ScalarQuantizer
Source§impl<'de> Deserialize<'de> for ScalarQuantizer
impl<'de> Deserialize<'de> for ScalarQuantizer
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ScalarQuantizer
impl RefUnwindSafe for ScalarQuantizer
impl Send for ScalarQuantizer
impl Sync for ScalarQuantizer
impl Unpin for ScalarQuantizer
impl UnwindSafe for ScalarQuantizer
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
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