(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
----------------
.. code-block:: c

    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
======   =====================================================================
