Skip to main content

VectorQuantizer

Trait VectorQuantizer 

Source
pub trait VectorQuantizer: Send + Sync {
    // Required methods
    fn encode(&self, vector: &[f32]) -> Vec<u8> ;
    fn decode(&self, codes: &[u8]) -> Vec<f32>;
    fn asymmetric_distance(&self, query: &[f32], codes: &[u8]) -> f32;
    fn compression_ratio(&self, dim: usize) -> f32;
}
Expand description

Shared interface for vector quantizers (PQ, F16, Int8).

Required Methods§

Source

fn encode(&self, vector: &[f32]) -> Vec<u8>

Encode a float vector into compressed bytes.

Source

fn decode(&self, codes: &[u8]) -> Vec<f32>

Decode compressed bytes back to an approximate float vector.

Source

fn asymmetric_distance(&self, query: &[f32], codes: &[u8]) -> f32

Compute asymmetric distance: exact query vs quantized database vector.

Source

fn compression_ratio(&self, dim: usize) -> f32

Compression ratio for a given dimension (original bytes / compressed bytes).

Implementors§