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§
Sourcefn decode(&self, codes: &[u8]) -> Vec<f32>
fn decode(&self, codes: &[u8]) -> Vec<f32>
Decode compressed bytes back to an approximate float vector.
Sourcefn asymmetric_distance(&self, query: &[f32], codes: &[u8]) -> f32
fn asymmetric_distance(&self, query: &[f32], codes: &[u8]) -> f32
Compute asymmetric distance: exact query vs quantized database vector.
Sourcefn compression_ratio(&self, dim: usize) -> f32
fn compression_ratio(&self, dim: usize) -> f32
Compression ratio for a given dimension (original bytes / compressed bytes).