(S|D)SYTRD¶
Single and double SYTRD.
Description¶
Reduces a symmetric matrix to symmetric tridiagonal form using an orthogonal similarity transform.

The matrix T is symmetric tridiagonal and the matrix Q is orthogonal.
The matrix Q is not stored explicitly. Instead, the elements above or below the diagonal of A together with TAU store Q as the product of scaled elementary reflectors.
When UPLO is U:


The vector v has components i+1 through n of zero, component i is 1, and components 1 through i-1 are stored in the columns of A above the superdiagonal.
When UPLO is L:


The vector v has components 1 through i of zero, component i+1 is 1, and components i+2 through N are stored in the columns of A below the subdiagonal.
LAPACK Interface¶
void ssytrd(const char *UPLO, const qml_long *N, float *A, const qml_long *LDA,
float *D, float *E, float *TAU, float *WORK, const qml_long *LWORK,
qml_long *INFO);
void dsytrd(const char *UPLO, const qml_long *N, double *A, const qml_long *LDA,
double *D, double *E, double *TAU, double *WORK, const qml_long *LWORK,
qml_long *INFO);
Arguments¶
| UPLO | Store upper ‘U’ or lower ‘L’ triangular part of A |
| N | Number of rows and columns of A |
| A | Symmetric matrix, overwritten by T and reflector vectors on exit |
| LDA | Leading dimension of A |
| D | On exit contains diagonal elements of T |
| E | On exit contains the off diagonal elements of T |
| TAU | On exit contains vector of scale factors for reflectors |
| WORK | Work space of size at least LWORK |
| LWORK | Size of work space (-1 to query) |
| INFO | 0 on success |