Skip to content

Commit e66b9c3

Browse files
committed
Added more methods to SparseVector
1 parent 0bcdadd commit e66b9c3

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

src/sparsevec.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,21 @@ impl SparseVector {
4949
}
5050
}
5151

52+
/// Returns the number of dimensions.
53+
pub fn dimensions(&self) -> usize {
54+
self.dim
55+
}
56+
57+
/// Returns the non-zero indices.
58+
pub fn indices(&self) -> &[i32] {
59+
&self.indices
60+
}
61+
62+
/// Returns the non-zero values.
63+
pub fn values(&self) -> &[f32] {
64+
&self.values
65+
}
66+
5267
/// Returns the sparse vector as a `Vec<f32>`.
5368
pub fn to_vec(&self) -> Vec<f32> {
5469
let mut vec = vec![0.0; self.dim];
@@ -98,6 +113,9 @@ mod tests {
98113
fn test_from_dense() {
99114
let vec = SparseVector::from_dense(&[1.0, 0.0, 2.0, 0.0, 3.0, 0.0]);
100115
assert_eq!(vec![1.0, 0.0, 2.0, 0.0, 3.0, 0.0], vec.to_vec());
116+
assert_eq!(6, vec.dimensions());
117+
assert_eq!(&[0, 2, 4], vec.indices());
118+
assert_eq!(&[1.0, 2.0, 3.0], vec.values());
101119
}
102120

103121
#[test]

0 commit comments

Comments
 (0)