• EigenSolver

EigenSolver

Compute eigenvalues and eigenvectors of a regular square matrix using the classical algorithm (lapack function GEEV).

Computing for type matrix<double>

bool  matrix::EigenSolver(
   ENUM_EIG_VECTORS       jobv,     // compute left and right vectors
   vector                 EV,       // vector of computed eigenvalues
   matrix                 VL,       // VL matrix of computed left vectors
   matrix                 VR        // VR matrix of computed right vectors
   );

Computing for type matrix<complex>

bool  matrix::EigenSolver(
   ENUM_EIG_VECTORS       jobv,     // compute left and right vectors
   vectorc                EV,       // vector of computed eigenvalues
   matrixc                VL,       // VL matrix of computed left vectors
   matrixc                VR        // VR matrix of computed right vectors   );

Parameters

jobv

[in] ENUM_EIG_VECTORS enumeration value which determines the method for computing left and right eigenvectors.

EV

[out] Vector of eigenvalues.

VL

[out] Matrix of left eigenvectors.

VR

[out] Matrix of right eigenvectors.

Return Value

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

Note

Computation depends on the value of the jobv parameter.

When jobv is set to SVDZ_N, the left and right vectors are not computed. Only singular values are computed.

When jobv is set to SVDZ_A, the full matrices of the U and VT vectors are computed.

When the value is SVDZ_S, truncated matrices of vectors U and VT are computed.

 

 

Note

Computation depends on the value of the jobv parameter.

If EIGVECTORS_N is set, the left and right vectors are not computed. Only eigenvalues are computed.

With EIGVECTORS_L, only left eigenvectors are computed, right eigenvectors are not computed.

When EIGVECTORS_R is set, only the right eigenvectors are computed, the left vectors are not computed.

With EIGVECTORS_LR, the left and right eigenvectors are computed, Eigenvalues are always computed.

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.

ENUM_EIG_VECTORS

An enumeration that specifies whether to calculate eigenvectors.

ID

Description

EIGVECTORS_N

Only eigenvalues are calculated, without vectors.

EIGVECTORS_L

Only left eigenvectors are computed.

EIGVECTORS_R

Only the right eigenvectors are computed.

EIGVECTORS_LR

Left and right eigenvectors are computed, eigenvalues are always computed.