rust_linear_algebra/matrix/
identity.rs

1use super::Matrix;
2use crate::num::One;
3
4pub fn identity_mat<K>(cols: usize, rows: usize) -> Matrix<K>
5where
6    K: Copy + Default + One,
7{
8    let mut elements = vec![vec![K::default(); cols]; rows];
9
10    let min_dim = usize::min(cols, rows);
11    for i in 0..min_dim {
12        elements[i][i] = K::one();
13    }
14
15    Matrix { elements }
16}