(C|Z)HEEV¶
Single complex and double complex HEEV.
Description¶
Computes the eigenvalues and (optionally) eigenvectors of a Hermitian matrix.
Right eigenvectors satisfy:

Left eigenvectors satisfy:

Computed eigenvectors are normalized to have Euclidean unit length and largest real component.
LAPACK Interface¶
void cheev(const char *JOBZ, const char *UPLO, const qml_long *N,
qml_single_complex *A, const qml_long *LDA, float *W,
qml_single_complex *WORK, const qml_long *LWORK, float *RWORK,
qml_long *INFO);
void zheev(const char *JOBZ, const char *UPLO, const qml_long *N,
qml_double_complex *A, const qml_long *LDA, double *W,
qml_double_complex *WORK, const qml_long *LWORK, double *RWORK,
qml_long *INFO);
Arguments¶
| JOBZ | Compute eigenvectors and store in A if ‘V’, otherwise do not compute |
| UPLO | Specify whether to use ‘U’ upper triangular or ‘L’ lower triangular part of A |
| N | Number of rows and columns of A |
| A | Matrix of size N x N, overwritten on exit |
| LDA | Leading dimension of A |
| W | Array of size N containing eigenvalues on exit |
| WORK | Work space of size at least LWORK |
| LWORK | Size of work space, at least 2N-1 but optimally a larger multiple of N (-1 to query) |
| RWORK | Work space of size 3N-2 |
| INFO | 0 on success |