pub struct QuantizedVector {
pub dimension: usize,
pub bits_per_scalar: u8,
pub data: Vec<u8>,
pub min_values: Vec<f32>,
pub max_values: Vec<f32>,
}Fields§
§dimension: usizeOriginal dimension of the vector
bits_per_scalar: u8Number of bits per scalar (8, 16)
data: Vec<u8>Quantized data
min_values: Vec<f32>Minimum value for each dimension (for dequantization)
max_values: Vec<f32>Maximum value for each dimension (for dequantization)
Implementations§
Source§impl QuantizedVector
impl QuantizedVector
Sourcepub fn quantize_8bit(vector: &[f32]) -> Self
pub fn quantize_8bit(vector: &[f32]) -> Self
Quantize a f32 vector to 8-bit integers
Sourcepub fn quantize_16bit(vector: &[f32]) -> Self
pub fn quantize_16bit(vector: &[f32]) -> Self
Quantize a f32 vector to 16-bit integers
Sourcepub fn dequantize(&self) -> Vec<f32>
pub fn dequantize(&self) -> Vec<f32>
Dequantize back to f32 vector
Sourcepub fn distance(&self, other: &QuantizedVector, metric: DistanceMetric) -> f32
pub fn distance(&self, other: &QuantizedVector, metric: DistanceMetric) -> f32
Calculate distance between two quantized vectors
Sourcepub fn memory_usage(&self) -> usize
pub fn memory_usage(&self) -> usize
Calculate memory usage in bytes
Sourcepub fn compression_ratio(&self) -> f32
pub fn compression_ratio(&self) -> f32
Calculate compression ratio compared to original f32 vector
Trait Implementations§
Source§impl Clone for QuantizedVector
impl Clone for QuantizedVector
Source§fn clone(&self) -> QuantizedVector
fn clone(&self) -> QuantizedVector
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 QuantizedVector
impl Debug for QuantizedVector
Source§impl<'de> Deserialize<'de> for QuantizedVector
impl<'de> Deserialize<'de> for QuantizedVector
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 QuantizedVector
impl RefUnwindSafe for QuantizedVector
impl Send for QuantizedVector
impl Sync for QuantizedVector
impl Unpin for QuantizedVector
impl UnwindSafe for QuantizedVector
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