EigenSymmetricDC

Compute eigenvalues and eigenvectors of a symmetric or Hermitian (complex conjugated) matrix using the divide-and-conquer algorithm (lapack functions SYEVD, HEEVD).

Computing for type matrix<double>

bool  matrix::EigenSymmetricDC(
  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::EigenSymmetricDC(
  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::EigenSymmetricDC(
  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::EigenSymmetricDC(
  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.

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.

EIGVALUES_N

Only eigenvalues are calculated, without vectors.