EigenSolverShur

Compute eigenvalues, upper triangular matrix in Schur form, and matrix of Schur vectors (lapack function GEES). See also Schur decomposition.

Computing for type matrix<double>

bool  matrix::EigenSolverShur(
   ENUM_EIG_VECTORS      jobvs,                   // method to compute Shur vectors
   vectorc&              eigen_values,            // vector of computed eigenvalues
   matrix&               shur_matrix,             // matrix in Schur form
   matrix&               shur_vectors             // matrix of Schur vectors
   );

Computing for type matrix<float>

bool  matrixf::EigenSolverShur(
   ENUM_EIG_VECTORS      jobvs,                   // method to compute Shur vectors
   vectorcf&             eigen_values,            // vector of computed eigenvalues
   matrixf&              shur_matrix,             // matrix in Schur form
   matrixf&              shur_vectors             // matrix of Schur vectors
   );

Computing for type matrix<complex>

bool  matrixc::EigenSolverShur(
   ENUM_EIG_VECTORS      jobvs,                   // method to compute Shur vectors
   vectorc&              eigen_values,            // vector of computed eigenvalues
   matrixc&              shur_matrix,             // matrix in Schur form
   matrixc&              shur_vectors             // matrix of Schur vectors
   );

Computing for type matrix<complexf>

bool  matrixcf::EigenSolverShur(
   ENUM_EIG_VECTORS      jobvs,                   // method to compute Shur vectors
   vectorcf&             eigen_values,            // vector of computed eigenvalues
   matrixcf&             shur_matrix,             // matrix in Schur form
   matrixcf&             shur_vectors             // matrix of Schur vectors
   );

Parameters

jobvs

[in]  Value from the ENUM_EIG_SHUR enumeration, which defines the method for computing Shur vectors.

eigen_values

[out] Vector of eigenvalues.

shur_matrix

[out]  Upper triangular Schur matrix (Schur form for the input matrix).

shur_vectors

[out]  Matrix of Schur vectors; it is not computed if the jobvs parameter is set to N.

Return Value

Return true if successful, otherwise false in case of an error.

Note

Computation depends on the jobvs parameter values.

Real (non-complex) matrices can have a complex solution. Therefore, the input 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

EIGSHUR_N

Schur vectors are not computed

EIGSHUR_V

Schur vectors are computed