Developer Reference for Intel® oneAPI Math Kernel Library for C
?steqr2
Computes all eigenvalues and, optionally, eigenvectors of a symmetric tridiagonal matrix using the implicit QL or QR method.
Syntax
voidssteqr2 ( char*compz , MKL_INT*n , float*d , float*e , float*z , MKL_INT*ldz , MKL_INT*nr , float*work , MKL_INT*info );
voiddsteqr2 ( char*compz , MKL_INT*n , double*d , double*e , double*z , MKL_INT*ldz , MKL_INT*nr , double*work , MKL_INT*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
Must be ‘N’ or ‘I’ .
If compz = 'N' , the function computes eigenvalues only. If compz = 'I' , the function 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 function .
n
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 * n and of local size ldz * nr .
If compz = 'V' , then z contains the orthogonal matrix used in the reduction to tridiagonal form.
ldz
The leading dimension of the array z . Constraints:
ldz ≥ 1 , ldz ≥ max(1, n) , if eigenvectors are desired.
nr
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
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.