pub trait MatExt: Sized + Copy {
type Scalar;
type Vector;
type SymmetricEigen;
type Svd;
// Required methods
fn abs(&self) -> Self;
fn try_inverse(&self) -> Option<Self>;
fn swap_cols(&mut self, a: usize, b: usize);
fn swap_rows(&mut self, a: usize, b: usize);
fn symmetric_eigen(&self) -> Self::SymmetricEigen;
fn symmetric_eigenvalues(&self) -> Self::Vector;
fn svd(&self) -> Self::Svd;
}Expand description
Extension trait for square matrix types.
Provides additional functionality not available in glam:
abs()- element-wise absolute valuetry_inverse()- inverse with singularity checkswap_cols()/swap_rows()- column/row swappingsymmetric_eigen()- eigendecomposition for symmetric matrices
Required Associated Types§
Sourcetype SymmetricEigen
type SymmetricEigen
The symmetric eigen decomposition type.
Required Methods§
Sourcefn try_inverse(&self) -> Option<Self>
fn try_inverse(&self) -> Option<Self>
Tries to invert the matrix, returning None if not invertible.
Sourcefn symmetric_eigen(&self) -> Self::SymmetricEigen
fn symmetric_eigen(&self) -> Self::SymmetricEigen
Computes the symmetric eigendecomposition.
If self isn’t symmetric, expect incorrect results.
Sourcefn symmetric_eigenvalues(&self) -> Self::Vector
fn symmetric_eigenvalues(&self) -> Self::Vector
Computes the eigenvalues of a symmetric matrix.
If self isn’t symmetric, expect incorrect results.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.