(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