Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?steqr2
Computes all eigenvalues and, optionally, eigenvectors of a symmetric tridiagonal matrix using the implicit QL or QR method.
Syntax
call ssteqr2(compz, n, d, e, z, ldz, nr, work, info)
call dsteqr2(compz, n, d, e, z, ldz, nr, work, info)
Include Files
mkl_scalapack.h
Description
ssteqr2 dsteqr2 The ?steqr2 routine function is a modified version of LAPACK routine function ?steqr (Computes all eigenvalues and eigenvectors of a symmetric or Hermitian matrix reduced to tridiagonal form (QR algorithm).) . The ?steqr2 routine function computes all eigenvalues and, optionally, eigenvectors of a symmetric tridiagonal matrix using the implicit QL or QR method. ?steqr2 is modified from ?steqr to allow each ScaLAPACK process running ?steqr2 to perform updates on a distributed matrix Q. Proper usage of ?steqr2 can be gleaned from examination of ScaLAPACK routine function p?syev (Computes all eigenvalues and, optionally, eigenvectors of a symmetric matrix.) .
Input Parameters
compz
CHARACTER*1 . Must be ‘N’ or ‘I’ .
If compz = 'N' , the routine computes eigenvalues only. If compz = 'I' , the routine computes the eigenvalues and eigenvectors of the tridiagonal matrix T .
z must be initialized to the identity matrix by GUID-38967D93-04E2-46BF-8C79-6B005B034451.xml#GUID-38967D93-04E2-46BF-8C79-6B005B034451 or GUID-99363CCB-9A6A-4BBD-88EF-3F441B10FDF5.xml#GUID-99363CCB-9A6A-4BBD-88EF-3F441B10FDF5 prior to entering this subroutine .
n
INTEGER . The order of the matrix T(n ≥ 0) .
- d , e , work
-
REAL for ssteqr2 DOUBLE PRECISION for dsteqr2 Arrays: d contains the diagonal elements of T . The size of d must be at least max(1, n) . e contains the (n-1) subdiagonal elements of T . The size of e must be at least max(1, n-1) . work is a workspace array. The size of work is max(1, 2*n-2) . If compz = 'N' , then work is not referenced.
- z
-
(local) REAL for ssteqr2 DOUBLE PRECISION for dsteqr2
Array of global size n by n and of local size ldz by nr .
If compz = 'V' , then z contains the orthogonal matrix used in the reduction to tridiagonal form.
ldz
INTEGER . The leading dimension of the array z . Constraints:
ldz ≥ 1 , ldz ≥ max(1, n) , if eigenvectors are desired.
nr
INTEGER . nr = max(1, numroc(n, nb, myprow, 0, nprocs)) .
If compz = 'N' , then nr is not referenced.
Output Parameters
- d
-
On exit, the eigenvalues in ascending order, if info = 0 . See also info .
- e
-
On exit, e has been destroyed.
- z
-
On exit, if info = 0 , then, if compz = 'V' , z contains the orthonormal eigenvectors of the original symmetric matrix, and if compz = 'I' , z contains the orthonormal eigenvectors of the symmetric tridiagonal matrix. If compz = 'N' , then z is not referenced.
info
INTEGER .
info = 0 , the exit is successful. info < 0 : if info = -i , the i -th had an illegal value. info > 0 : the algorithm has failed to find all the eigenvalues in a total of 30 n iterations; if info = i , then i elements of e have not converged to zero; on exit, d and e contain the elements of a symmetric tridiagonal matrix, which is orthogonally similar to the original matrix.