pub trait GeneralisedEigenvalueSolvable {
type NumType;
type RealType;
// Required methods
fn solve_generalised_eigenvalue_problem_with_canonical_orthogonalisation(
&self,
complex_symmetric: bool,
thresh_offdiag: Self::RealType,
thresh_zeroov: Self::RealType,
eigenvalue_comparison_mode: EigenvalueComparisonMode,
) -> Result<GeneralisedEigenvalueResult<Self::NumType>, Error>;
fn solve_generalised_eigenvalue_problem_with_ggev(
&self,
complex_symmetric: bool,
thresh_offdiag: Self::RealType,
thresh_zeroov: Self::RealType,
eigenvalue_comparison_mode: EigenvalueComparisonMode,
) -> Result<GeneralisedEigenvalueResult<Self::NumType>, Error>;
}Expand description
Trait to solve the generalised eigenvalue equation for a pair of square matrices $\mathbf{A}$
and $\mathbf{B}$:
\mathbf{A} \mathbf{v} = \lambda \mathbf{B} \mathbf{v},where $\mathbf{A}$ and $\mathbf{B}$ are in general non-Hermitian and non-positive-definite.
Required Associated Types§
Required Methods§
Sourcefn solve_generalised_eigenvalue_problem_with_canonical_orthogonalisation(
&self,
complex_symmetric: bool,
thresh_offdiag: Self::RealType,
thresh_zeroov: Self::RealType,
eigenvalue_comparison_mode: EigenvalueComparisonMode,
) -> Result<GeneralisedEigenvalueResult<Self::NumType>, Error>
fn solve_generalised_eigenvalue_problem_with_canonical_orthogonalisation( &self, complex_symmetric: bool, thresh_offdiag: Self::RealType, thresh_zeroov: Self::RealType, eigenvalue_comparison_mode: EigenvalueComparisonMode, ) -> Result<GeneralisedEigenvalueResult<Self::NumType>, Error>
Solves the auxiliary generalised eigenvalue problem
\tilde{\mathbf{A}} \tilde{\mathbf{v}} = \tilde{\lambda} \tilde{\mathbf{B}} \tilde{\mathbf{v}},where $\tilde{\mathbf{B}}$ is the canonical-orthogonalised version of $\mathbf{B}$. If
$\mathbf{B}$ is not of full rank, then the two eigenvalue problems are different.
§Arguments
complex_symmetric- Boolean indicating whether the provided pair of matrices are complex-symmetric.thresh_offdiag- Threshold for checking if any off-diagonal elements are non-zero when verifying orthogonality.thresh_zeroov- Threshold for determining zero eigenvalues of $\mathbf{B}$.eigenvalue_comparison_mode- Comparison mode for sorting eigenvalues and their corresponding eigenvectors.
§Returns
The generalised eigenvalue result.
Sourcefn solve_generalised_eigenvalue_problem_with_ggev(
&self,
complex_symmetric: bool,
thresh_offdiag: Self::RealType,
thresh_zeroov: Self::RealType,
eigenvalue_comparison_mode: EigenvalueComparisonMode,
) -> Result<GeneralisedEigenvalueResult<Self::NumType>, Error>
fn solve_generalised_eigenvalue_problem_with_ggev( &self, complex_symmetric: bool, thresh_offdiag: Self::RealType, thresh_zeroov: Self::RealType, eigenvalue_comparison_mode: EigenvalueComparisonMode, ) -> Result<GeneralisedEigenvalueResult<Self::NumType>, Error>
Solves the generalised eigenvalue problem using LAPACK’s ?ggev generalised eigensolver.
Note that this can be numerically unstable if $\mathbf{B}$ is not of full rank.
§Arguments
complex_symmetric- Boolean indicating whether the provided pair of matrices are complex-symmetric.thresh_offdiag- Threshold for checking if any off-diagonal elements are non-zero when verifying orthogonality.thresh_zeroov- Threshold for determining zero eigenvalues of $\mathbf{B}$.eigenvalue_comparison_mode- Comparison mode for sorting eigenvalues and their corresponding eigenvectors.
§Returns
The generalised eigenvalue result.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".