use crate::{
matrix::{
math::{inverse, row_reduce},
matrix::Matrix,
},
number::traits::fractional::Fractional,
};
pub fn plu_decomposition<N, const R: usize, const C: usize>(
m: &Matrix<N, R, C>,
) -> (Matrix<N, R, R>, Matrix<N, R, R>, Matrix<N, R, C>)
where
N: Fractional,
{
let (_, p, lt, reduced) = row_reduce(m);
(
p,
inverse(<).expect(
"Error[matrix::extra::plu_decomposition]: Failed to retrieve the inverse of 'lt'.",
),
reduced,
)
}
pub fn eigen_values() {
todo!()
}
pub fn linear_solve() {
todo!()
}
pub fn eigen_system() {
todo!()
}