(S|D)SYEVD¶
Single and double SYEVD.
Description¶
Computes the eigenvalues and (optionally) eigenvectors of a symmetric matrix using a divide-and-conquer algorithm.
Right eigenvectors satisfy:

Left eigenvectors satisfy:

Computed eigenvectors are normalized.
LAPACK Interface¶
void ssyevd(const char *JOBZ, const char *UPLO, const qml_long *N, float *A,
const qml_long *LDA, float *W, float *WORK, const qml_long *LWORK,
qml_long *IWORK, const qml_long *LIWORK, qml_long *INFO);
void dsyevd(const char *JOBZ, const char *UPLO, const qml_long *N, double *A,
const qml_long *LDA, double *W, double *WORK, const qml_long *LWORK,
qml_long *IWORK, const qml_long *LIWORK, 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 (-1 to query) |
| IWORK | Integer work space of size at least LIWORK |
| LIWORK | Size of integer work space (-1 to query) |
| INFO | 0 on success, <0 for illegal arguments, >0 if convergence failed |