pub struct SparseVector {
pub values: HashMap<usize, f32>,
pub dimensions: usize,
pub metadata: Option<HashMap<String, String>>,
}
Expand description
Sparse vector representation using a hash map for efficient storage
Fields§
§values: HashMap<usize, f32>
Non-zero values indexed by their position
dimensions: usize
Total dimensions of the vector
metadata: Option<HashMap<String, String>>
Optional metadata
Implementations§
Source§impl SparseVector
impl SparseVector
Sourcepub fn new(
indices: Vec<usize>,
values: Vec<f32>,
dimensions: usize,
) -> Result<Self, VectorError>
pub fn new( indices: Vec<usize>, values: Vec<f32>, dimensions: usize, ) -> Result<Self, VectorError>
Create a new sparse vector from indices and values
Sourcepub fn from_dense(dense: &Vector) -> Self
pub fn from_dense(dense: &Vector) -> Self
Create sparse vector from dense vector
Sourcepub fn dot(&self, other: &SparseVector) -> Result<f32, VectorError>
pub fn dot(&self, other: &SparseVector) -> Result<f32, VectorError>
Dot product with another sparse vector
Sourcepub fn cosine_similarity(
&self,
other: &SparseVector,
) -> Result<f32, VectorError>
pub fn cosine_similarity( &self, other: &SparseVector, ) -> Result<f32, VectorError>
Compute cosine similarity with another sparse vector
Sourcepub fn add(&self, other: &SparseVector) -> Result<SparseVector, VectorError>
pub fn add(&self, other: &SparseVector) -> Result<SparseVector, VectorError>
Add another sparse vector
Sourcepub fn subtract(
&self,
other: &SparseVector,
) -> Result<SparseVector, VectorError>
pub fn subtract( &self, other: &SparseVector, ) -> Result<SparseVector, VectorError>
Subtract another sparse vector
Sourcepub fn scale(&self, scalar: f32) -> SparseVector
pub fn scale(&self, scalar: f32) -> SparseVector
Scale by scalar
Sourcepub fn normalize(&self) -> SparseVector
pub fn normalize(&self) -> SparseVector
Normalize to unit length
Trait Implementations§
Source§impl Clone for SparseVector
impl Clone for SparseVector
Source§fn clone(&self) -> SparseVector
fn clone(&self) -> SparseVector
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 SparseVector
impl Debug for SparseVector
Source§impl<'de> Deserialize<'de> for SparseVector
impl<'de> Deserialize<'de> for SparseVector
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
Source§impl PartialEq for SparseVector
impl PartialEq for SparseVector
Source§impl Serialize for SparseVector
impl Serialize for SparseVector
impl StructuralPartialEq for SparseVector
Auto Trait Implementations§
impl Freeze for SparseVector
impl RefUnwindSafe for SparseVector
impl Send for SparseVector
impl Sync for SparseVector
impl Unpin for SparseVector
impl UnwindSafe for SparseVector
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.