- EigenSolver
- EigenSolverX
- EigenSolverShur
- EigenSolver2
- EigenSolver2X
- EigenSolver2Shur
- EigenSolver2Blocked
- EigenSolver2ShurBlocked
EigenSolver2ShurBlocked
Compute a pair of regular square matrices of generalized eigenvalues, generalized eigenvectors, generalized Schur forms, as well as left and right Schur vectors (lapack function GGES3).
Сomputes the generalized eigenvalues, the generalized real/complex Schur form (S,T), optionally, the left and/or right matrices of Schur vectors (VSL and VSR) for a pair of n-by-n real/complex nonsymmetric matrices (A,B). This gives the generalized Schur factorization:
(A,B) = ( vsl*S *vsrH, vsl*T*vsrH )
Optionally, it also orders the eigenvalues so that a selected cluster of eigenvalues appears in the leading diagonal blocks of the upper quasi-triangular matrix S and the upper triangular matrix T. The leading columns of vsl and vsr then form an orthonormal/unitary basis for the corresponding left and right eigenspaces (deflating subspaces).
Computing for type matrix<double>
bool matrix::EigenSolver2ShurBlocked(
|
Computing for type matrix<float>
bool matrix::EigenSolver2ShurBlocked(
|
Computing for type matrix<complex>
bool matrix::EigenSolver2ShurBlocked(
|
Computing for type matrix<complexf>
bool matrix::EigenSolver2ShurBlocked(
|
Parameters
B
[in] The second matrix in the pair.
jobvs
[in] ENUM_EIG_VECTORS enumeration value which determines the method for computing left and right eigenvectors.
alpha
[out] Vector of eigenvalues.
beta
[out] Vector of eigenvalue divisors.
shur_s
[out] Matrix S, block upper triangular Schur matrix (Schur form for the input matrix).
shur_t
[out] Matrix T, block upper triangular Schur matrix (Schur form for the second matrix in the pair).
vsl
[out] Matrix of left Schur vectors VSL.
vsr
[out] Matrix of right Schur vectors VSR.
Return Value
The function returns 'true' on success or 'false' if an error occurs.
Note
Computation depends on the jobvs parameter values.
The second matrix in the pair must be the same size as the first (input) one.
Real (non-complex) matrices can have a complex solution. Therefore, the vector of eigenvalues must be complex. In case of a complex solution, the error code is set to 4019 (ERR_MATH_OVERFLOW). Otherwise, only the real parts of the complex values of the eigenvalue vector should be used.
EigenSolverShur
An enumeration defining the need to compute eigenvectors.
ID |
Description |
---|---|
EIGVECTORS_N |
Only eigenvalues are computed, without vectors. |
EIGVECTORS_L |
Only left eigenvectors are computed. |
EIGVECTORS_R |
Only right eigenvectors are computed. |
EIGVECTORS_LR |
Left and right eigenvectors are computed, eigenvalues are always computed. |