Skip to main content

Quantizer

Trait Quantizer 

Source
pub trait Quantizer: Send + Sync {
    type Quantized: Clone + Send + Sync;

    // Required methods
    fn quantize(&self, vector: &[f32]) -> Self::Quantized;
    fn dequantize(&self, quantized: &Self::Quantized) -> Vec<f32>;
    fn distance_quantized(
        &self,
        a: &Self::Quantized,
        b: &Self::Quantized,
    ) -> f32;
    fn distance_asymmetric(
        &self,
        query: &[f32],
        quantized: &Self::Quantized,
    ) -> f32;
}
Expand description

Trait for vector quantization

Required Associated Types§

Source

type Quantized: Clone + Send + Sync

Quantized representation type

Required Methods§

Source

fn quantize(&self, vector: &[f32]) -> Self::Quantized

Quantize a vector

Source

fn dequantize(&self, quantized: &Self::Quantized) -> Vec<f32>

Dequantize back to f32 (lossy)

Source

fn distance_quantized(&self, a: &Self::Quantized, b: &Self::Quantized) -> f32

Compute distance between quantized vectors (fast path)

Source

fn distance_asymmetric(&self, query: &[f32], quantized: &Self::Quantized) -> f32

Compute distance between f32 query and quantized vector (asymmetric)

Implementors§