Visible to Intel only — GUID: GUID-608AF230-E51B-408B-B6C0-591C4AC7A1E7
Visible to Intel only — GUID: GUID-608AF230-E51B-408B-B6C0-591C4AC7A1E7
?sterf
Computes all eigenvalues of a real symmetric tridiagonal matrix using QR algorithm.
call ssterf(n, d, e, info)
call dsterf(n, d, e, info)
call sterf(d, e [,info])
- mkl.fi, lapack.f90
The routine computes all the eigenvalues of a real symmetric tridiagonal matrix T (which can be obtained by reducing a symmetric or Hermitian matrix to tridiagonal form). The routine uses a square-root-free variant of the QR algorithm.
If you need not only the eigenvalues but also the eigenvectors, call steqr.
- n
-
INTEGER. The order of the matrix T (n≥ 0).
- d, e
-
REAL for ssterf
DOUBLE PRECISION for dsterf.
Arrays:
d(*) contains the diagonal elements of T.
The dimension of d must be at least max(1, n).
e(*) contains the off-diagonal elements of T.
The dimension of e must be at least max(1, n-1).
- d
-
The n eigenvalues in ascending order, unless info > 0.
See also info.
- e
-
On exit, the array is overwritten; see info.
- info
-
INTEGER.
If info = 0, the execution is successful.
If info = i, the algorithm failed to find all the eigenvalues after 30n iterations:
i off-diagonal elements have not converged to zero. On exit, d and e contain, respectively, the diagonal and off-diagonal elements of a tridiagonal matrix orthogonally similar to T.
If info = -i, the i-th parameter had an illegal value.
Routines in Fortran 95 interface have fewer arguments in the calling sequence than their FORTRAN 77 counterparts. For general conventions applied to skip redundant or restorable arguments, see Fortran 95 Interface Conventions.
Specific details for the routine sterf interface are the following:
- d
-
Holds the vector of length n.
- e
-
Holds the vector of length (n-1).
The computed eigenvalues and eigenvectors are exact for a matrix T+E such that ||E||2 = O(ε)*||T||2, where ε is the machine precision.
If λi is an exact eigenvalue, and mi is the corresponding computed value, then
|μi - λi| ≤c(n)*ε*||T||2
where c(n) is a modestly increasing function of n.
The total number of floating-point operations depends on how rapidly the algorithm converges. Typically, it is about 14n2.