Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 3/22/2024
Public
Document Table of Contents

?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)

Description

The ?steqr2routine is a modified version of LAPACK routine ?steqr. The ?steqr2routine 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 p?syev.

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 p?laset or ?laset 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 nby n and of local size ldzby 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 30n 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.

See Also