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.
lapack_int LAPACKE_ssterf (lapack_int n, float* d, float* e);
lapack_int LAPACKE_dsterf (lapack_int n, double* d, double* e);
- mkl.h
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
-
The order of the matrix T (n≥ 0).
- d, e
-
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.
This function returns a value info.
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.
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.