Eig

Trait Eig 

Source
pub trait Eig<T: ComplexFloat> {
    // Required methods
    fn eig<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> EigResult<T>;
    fn eig_full<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> EigResult<T>;
    fn eig_values<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> EigResult<T>;
    fn eigh<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> EigResult<T>;
    fn eigs<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> EigResult<T>;
    fn schur<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> SchurResult<T>;
    fn schur_overwrite<L: Layout>(
        &self,
        a: &mut DSlice<T, 2, L>,
        t: &mut DSlice<T, 2, Dense>,
        z: &mut DSlice<T, 2, Dense>,
    ) -> Result<(), SchurError>;
    fn schur_complex<L: Layout>(
        &self,
        a: &mut DSlice<T, 2, L>,
    ) -> SchurResult<T>;
    fn schur_complex_overwrite<L: Layout>(
        &self,
        a: &mut DSlice<T, 2, L>,
        t: &mut DSlice<T, 2, Dense>,
        z: &mut DSlice<T, 2, Dense>,
    ) -> Result<(), SchurError>;
}
Expand description

Eigenvalue decomposition operations of general and Hermitian/symmetric matrices

Required Methods§

Source

fn eig<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> EigResult<T>

Compute eigenvalues and right eigenvectors with new allocated matrices The matrix A satisfies: A * v = λ * v where v are the right eigenvectors

Source

fn eig_full<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> EigResult<T>

Compute eigenvalues and both left/right eigenvectors with new allocated matrices The matrix A satisfies: A * vr = λ * vr and vl^H * A = λ * vl^H where vr are right eigenvectors and vl are left eigenvectors

Source

fn eig_values<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> EigResult<T>

Compute only eigenvalues with new allocated vectors

Source

fn eigh<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> EigResult<T>

Compute eigenvalues and eigenvectors of a Hermitian matrix (input should be complex)

Source

fn eigs<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> EigResult<T>

Compute eigenvalues and eigenvectors of a symmetric matrix (input should be real)

Source

fn schur<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> SchurResult<T>

Compute Schur decomposition with new allocated matrices

Source

fn schur_overwrite<L: Layout>( &self, a: &mut DSlice<T, 2, L>, t: &mut DSlice<T, 2, Dense>, z: &mut DSlice<T, 2, Dense>, ) -> Result<(), SchurError>

Compute Schur decomposition overwriting existing matrices

Source

fn schur_complex<L: Layout>(&self, a: &mut DSlice<T, 2, L>) -> SchurResult<T>

Compute Schur (complex) decomposition with new allocated matrices

Source

fn schur_complex_overwrite<L: Layout>( &self, a: &mut DSlice<T, 2, L>, t: &mut DSlice<T, 2, Dense>, z: &mut DSlice<T, 2, Dense>, ) -> Result<(), SchurError>

Compute Schur complex) decomposition overwriting existing matrices

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.

Implementors§