Merge commit 'd803bfe2b1fe7f5e219e50ac20d6801a0a58ac75' as 'vendor/ruvector'
This commit is contained in:
22
vendor/ruvector/crates/rvf/rvf-quant/src/traits.rs
vendored
Normal file
22
vendor/ruvector/crates/rvf/rvf-quant/src/traits.rs
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
//! Common quantization trait shared by all quantizer types.
|
||||
|
||||
use crate::tier::TemperatureTier;
|
||||
use alloc::vec::Vec;
|
||||
|
||||
/// Trait for vector quantization codecs.
|
||||
///
|
||||
/// Every quantizer can encode a float vector into a compact byte representation
|
||||
/// and decode it back to an approximate float vector.
|
||||
pub trait Quantizer {
|
||||
/// Encode a float vector into compact codes.
|
||||
fn encode(&self, vector: &[f32]) -> Vec<u8>;
|
||||
|
||||
/// Decode compact codes back to an approximate float vector.
|
||||
fn decode(&self, codes: &[u8]) -> Vec<f32>;
|
||||
|
||||
/// The temperature tier this quantizer is designed for.
|
||||
fn tier(&self) -> TemperatureTier;
|
||||
|
||||
/// The dimensionality this quantizer was trained for.
|
||||
fn dim(&self) -> usize;
|
||||
}
|
||||
Reference in New Issue
Block a user