The LA_TRIRED procedure reduces a real symmetric or complex Hermitian array to real tridiagonal form T. If the array is real symmetric then the decomposition is A = Q T QT, where Q is orthogonal. If the array is complex Hermitian then the decomposition is A = Q T QH, where Q is unitary. The superscript T represents the transpose while superscript H represents the Hermitian, or transpose complex conjugate.
LA_TRIRED is based on the following LAPACK routines:
Output Type |
LAPACK Routine |
Float |
ssytrd, sorgtr |
Double |
dsytrd, dorgtr |
Complex |
chetrd, cungtr |
Double complex |
zhetrd, zungtr |
Examples
See LA_TRIQL for an example of using this procedure.
Syntax
LA_TRIRED, Array, D, E [, /DOUBLE] [, /UPPER]
Arguments
Array
A named variable containing the real or complex array to decompose. Only the lower triangular portion of Array is used (or upper if the /UPPER keyword is set). This procedure returns Array as the real orthogonal (or complex unitary) Q array used to reduce the original array to tridiagonal form.
D
An n-element output vector containing the real diagonal elements of the tridiagonal array. Note that D is always real.
E
An (n - 1) element output vector containing the real subdiagonal elements of the tridiagonal array. Note that E is always real.
Keywords
DOUBLE
Set this keyword to use double-precision for computations and to return a double-precision (real) result. Set DOUBLE = 0 to use single-precision for computations and to return a single-precision (real) result. The default is /DOUBLE if Array is double precision, otherwise the default is DOUBLE = 0.
UPPER
If this keyword is set, then only the upper triangular portion of Array is used, and the upper triangular array is returned. The default is to use the lower triangular portion and return the lower triangular array.
Version History
Resources and References
For details see Anderson et al., LAPACK Users' Guide, 3rd ed., SIAM, 1999.
See Also
LA_TRIQL, TRIRED