opensrdk_linear_algebra/matrix/ss/
index.rs1use 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}