diff --git a/matrix/src/lib.rs b/matrix/src/lib.rs index 9064302..8dc26af 100644 --- a/matrix/src/lib.rs +++ b/matrix/src/lib.rs @@ -65,6 +65,27 @@ pub fn mul + Copy + AddAssign + From>( Some(c) } +pub fn det + Copy + Add>(a: &Matrix) -> Option> { + if ! check_valid(a) { + return None; + } + if a[0].len() != a.len() { + return None; + } + let j = 0; + for i in 1..n { + let _pre_minor: Matrix = vec![&a[0..i], &a[i+1..]]; + let mut pre_minor: Metrix = vec![vec![]]; + for m in _pre_minor { + if m == j { + continue; + } + pre_minor[m].push + } + let minor = det(&pre_minor); + + } +} #[allow(dead_code)] fn gen_matrix>(i: usize, j: usize) -> Option> { if !(i > 0 && j > 0) {