rust_linear_algebra/matrix/
trace.rs

1use super::Matrix;
2use std::ops::Add;
3
4impl<K> Matrix<K>
5where
6    K: Copy + Default + Add<Output = K>,
7{
8    pub fn trace(&self) -> K {
9        if self.cols() != self.rows() {
10            panic!("Matrix must be a square");
11        }
12
13        (1..self.rows()).fold(self.elements[0][0], |acc, i| acc + self.elements[i][i])
14    }
15}