Trait array_math::MatrixMath
source · pub trait MatrixMath<T, const M: usize, const N: usize>: Array2dOps<T, M, N> {
// Required methods
fn identity_matrix() -> Self
where T: ZeroConst + OneConst;
fn mul_matrix<Rhs, const P: usize>(
&self,
rhs: &Self::Array2d<Rhs, N, P>
) -> Self::Array2d<<T as Mul<Rhs>>::Output, M, P>
where T: Mul<Rhs, Output: AddAssign + ZeroConst> + Copy,
Rhs: Copy;
fn pivot_matrix(&self) -> [[T; M]; M]
where T: Neg<Output = T> + ZeroConst + OneConst + PartialOrd + Copy;
fn lup_matrix(&self) -> ([[T; { _ }]; M], [[T; N]; { _ }], [[T; M]; M])
where T: Neg<Output = T> + ZeroConst + OneConst + PartialOrd + Mul<Output = T> + AddAssign + Copy + Sub<Output = T> + Div<Output = T>;
fn lu_matrix(&self) -> ([[T; { _ }]; M], [[T; N]; { _ }])
where T: ZeroConst + OneConst + PartialOrd + Mul<Output = T> + Sub<Output = T> + Div<Output = T> + AddAssign + Copy;
fn det_matrix(&self) -> T
where T: ZeroConst + Neg<Output = T> + OneConst + Copy + AddAssign + PartialOrd + Mul<Output = T> + MulAssign + Sub<Output = T> + Div<Output = T>;
fn is_matrix_invertible(&self) -> bool
where T: ZeroConst + Neg<Output = T> + OneConst + Copy + AddAssign + PartialOrd + MulAssign + Sub<Output = T> + Div<Output = T>;
}Required Methods§
fn identity_matrix() -> Self
fn mul_matrix<Rhs, const P: usize>( &self, rhs: &Self::Array2d<Rhs, N, P> ) -> Self::Array2d<<T as Mul<Rhs>>::Output, M, P>
fn pivot_matrix(&self) -> [[T; M]; M]
fn lup_matrix(&self) -> ([[T; { _ }]; M], [[T; N]; { _ }], [[T; M]; M])
fn lu_matrix(&self) -> ([[T; { _ }]; M], [[T; N]; { _ }])
fn det_matrix(&self) -> T
fn is_matrix_invertible(&self) -> bool
Object Safety§
This trait is not object safe.