pub fn lu_matrix<T, const M: usize, const N: usize>( matrix: &[[T; N]; M] ) -> ([[T; { _ }]; M], [[T; N]; { _ }])where T: Zero + One + PartialOrd + Mul<Output = T> + Sub<Output = T> + Div<Output = T> + AddAssign + Copy,