opensrdk_linear_algebra/tensor/
matrix.rs

1use crate::{Matrix, Number, Tensor};
2
3impl<T> Tensor<T> for Matrix<T>
4where
5    T: Number,
6{
7    fn rank(&self) -> usize {
8        2
9    }
10
11    fn size(&self, level: usize) -> usize {
12        match level {
13            0 => self.rows(),
14            1 => self.cols(),
15            _ => 0,
16        }
17    }
18
19    fn elem(&self, indices: &[usize]) -> T {
20        self[(indices[0], indices[1])]
21    }
22
23    fn elem_mut(&mut self, indices: &[usize]) -> &mut T {
24        &mut self[(indices[0], indices[1])]
25    }
26}