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.