opensrdk_linear_algebra/matrix/ss/
index.rs

1use super::SparseMatrix;
2use crate::number::Number;
3use std::ops::Index;
4use std::ops::IndexMut;
5
6impl<T> Index<(usize, usize)> for SparseMatrix<T>
7where
8  T: Number,
9{
10  type Output = T;
11
12  fn index(&self, index: (usize, usize)) -> &Self::Output {
13    self.elems.get(&index).unwrap_or(&self.default)
14  }
15}
16
17impl<T> IndexMut<(usize, usize)> for SparseMatrix<T>
18where
19  T: Number,
20{
21  fn index_mut(&mut self, index: (usize, usize)) -> &mut Self::Output {
22    self.elems.entry(index).or_default()
23  }
24}