(S|D|C|Z)STEDC¶
Single, double, single complex, and double complex STEDC.
Description¶
Computes the eigenvalues of a symmetric tridiagonal matrix and optionally the eigenvectors.
Uses a divide-and-conquer method. If COMPZ is V then Z must be set to the orthogonal matrix that reduces the original symmetric matrix to tridiagonal form.
LAPACK Interface¶
void sstedc(const char *COMPZ, const qml_long *N, float *D, float *E, float *Z,
const qml_long *LDZ, float *WORK, const qml_long *LWORK,
qml_long *IWORK, const qml_long *LIWORK, qml_long *INFO);
void dstedc(const char *COMPZ, const qml_long *N, double *D, double *E, double *Z,
const qml_long *LDZ, double *WORK, const qml_long *LWORK,
qml_long *IWORK, const qml_long *LIWORK, qml_long *INFO);
void cstedc(const char *COMPZ, const qml_long *N, float *D, float *E,
qml_single_complex *Z, const qml_long *LDZ, qml_single_complex *WORK,
const qml_long *LWORK, float *RWORK, const qml_long *LRWORK,
qml_long *IWORK, const qml_long *LIWORK, qml_long *INFO);
void zstedc(const char *COMPZ, const qml_long *N, double *D, double *E,
qml_double_complex *Z, const qml_long *LDZ, qml_double_complex *WORK,
const qml_long *LWORK, double *RWORK, const qml_long *LRWORK,
qml_long *IWORK, const qml_long *LIWORK, qml_long *INFO);
Arguments¶
| COMPZ | Computes eigenvalues only (‘N’), eigenvalues and eigenvectors (‘V’), or eigenvectors and eigenvalues of tridiagonal input (‘I’) |
| N | Order of the matrix |
| D | Array of diagonal entries, overwritten with eigenvalues on exit |
| E | Array of subdiagonal entries, overwritten on exit |
| Z | Orthogonal matrix to reduce to tridiagonal form, overwritten with eigenvectors |
| LDZ | Leading dimension of Z |
| WORK | Work space of size at least LWORK |
| LWORK | Size of work space (-1 to query) |
| RWORK | Work space of size LRWORK |
| LRWORK | Size of work space (-1 to query) |
| IWORK | Integer work space of size LIWORK |
| LIWORK | Size of integer work space (-1 to query) |
| INFO | 0 on success, <0 for illegal arguments, >0 on failure to converge |