EigenSymmetricDC2s

Compute all eigenvalues and, optionally, eigenvectors of a real symmetric or Hermitian (complex conjugated) matrix using the 2stage technique for the reduction to tridiagonal. If eigenvectors are desired, it uses a divide and conquer algorithm (lapack functions SYEVD_2STAGE, HEEVD_2STAGE).

Computing for type matrix<double>

bool  matrix::EigenSymmetricDC2s(
  ENUM_EIG_VALUES     jobv,              // compute eigenvectors or not
  vector&             eigen_values,      // vector of computed eigenvalues
  matrix&               eigen_vectors      // matrix of computed eigenvectors
  );

Computing for type matrix<float>

bool  matrixf::EigenSymmetricDC2s(
  ENUM_EIG_VALUES     jobv,              // compute eigenvectors or not
  vectorf&           eigen_values,      // vector of computed eigenvalues
  matrixf&             eigen_vectors      // matrix of computed eigenvectors
  );

Computing for type matrix<complex>

bool  matrixc::EigenSymmetricDC2s(
  ENUM_EIG_VALUES     jobv,              // compute eigenvectors or not
  vector&             eigen_values,      // vector of computed eigenvalues
  matrixc&             eigen_vectors      // matrix of computed eigenvectors
  );

Computing for type matrix<complexf>

bool  matrixcf::EigenSymmetricDC2s(
  ENUM_EIG_VALUES     jobv,              // compute eigenvectors or not
  vectorf&           eigen_values,      // vector of computed eigenvalues
  matrixcf&             eigen_vectors      // matrix of computed eigenvectors
  );

Parameters

jobv

[in] ENUM_EIG_VALUES enumeration value which determines the method for computing eigenvectors.

eigen_values

[out] Vector of eigenvalues.

eigen_vectors

[out] Matrix of 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 = EIGVALUES_V, eigenvectors and eigenvalues are calculated. In the current OpenBLAS implementation, this value is not supported. Attempting to use it will result in error 4003 (ERR_INVALID_PARAMETER).

If EIGVALUES_N is set, eigenvectors are not calculated. Only eigenvalues are computed.

The input can be a symmetric (Hermitian), upper triangular or lower triangular matrix. Triangular matrices are assumed to be symmetric (Hermitian conjugated).

ENUM_EIG_VALUES

An enumeration that specifies whether to calculate eigenvectors.

ID

Description

EIGVALUES_V

Eigenvectors and eigenvalues are calculated. Not available in this release.

EIGVALUES_N

Only eigenvalues are calculated, without vectors.