Reduces a complex Hermitian matrix to tridiagonal form.
The routine reduces a complex Hermitian matrix
Ato symmetric tridiagonal form
Tby a unitary similarity transformation:
. The unitary matrix
Qis not formed explicitly but is represented as a product of
n-1 elementary reflectors. Routines are provided to work with
Qin this representation.
(They are described later in this
- Must beCHARACTER*1.'U'or'L'.If,uplo='U'astores the upper triangular part ofA.If,uplo='L'astores the lower triangular part ofA.
- The order of the matrixINTEGER.A().n≥0
- COMPLEXforchetrdDOUBLE COMPLEXforzhetrd.a(is an array containing either upper or lower triangular part of the matrixlda,*)A, as specified byuplo. If, the leadinguplo='U'n-by-nupper triangular part ofacontains the upper triangular part of the matrixA, and the strictly lower triangular part ofAis not referenced. If, the leadinguplo='L'n-by-nlower triangular part ofacontains the lower triangular part of the matrixA, and the strictly upper triangular part ofAis not referenced.The second dimension ofamust be at least max(1,n).workis a workspace array, its dimensionmax(1,.lwork)
- The leading dimension ofINTEGER.a; at least max(1,n).
- The size of theINTEGER.workarray ().lwork≥nIf, then a workspace query is assumed; the routine only calculates the optimal size of thelwork= -1workarray, returns this value as the first entry of theworkarray, and no error message related tolworkis issued by xerbla.SeeApplication Notesfor the suggested value oflwork.
- On exit,if, the diagonal and first superdiagonal ofuplo='U'Aare overwritten by the corresponding elements of the tridiagonal matrixT, and the elements above the first superdiagonal, with the arraytau, represent the orthogonal matrixQas a product of elementary reflectors;if, the diagonal and first subdiagonal ofuplo='L'Aare overwritten by the corresponding elements of the tridiagonal matrixT, and the elements below the first subdiagonal, with the arraytau, represent the orthogonal matrixQas a product of elementary reflectors.