?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

The C interfaces are specified in the mkl_scalapack.h include file.

Description

The ?steqr2 routine is a modified version of LAPACK routine ?steqr. The ?steqr2 routine 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 single-precision flavors

DOUBLE PRECISION for double-precision flavors.

Arrays: d contains the diagonal elements of T. The dimension of d must be at least max(1, n).

e contains the (n-1) subdiagonal elements of T. The dimension of e must be at least max(1, n-1).

work is a workspace array. The dimension 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, global DIMENSION (n, n), local DIMENSION (ldz, 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

REAL array, DIMENSION (n), for ssteqr2.

DOUBLE PRECISION array, DIMENSION (n), for dsteqr2.

On exit, the eigenvalues in ascending order, if info = 0.

See also info.

e

REAL array, DIMENSION (n-1), for ssteqr2.

DOUBLE PRECISION array, DIMENSION (n-1), for dsteqr2.

On exit, e has been destroyed.

z

(local)

REAL for ssteqr2

DOUBLE PRECISION for dsteqr2

Array, global DIMENSION (n, n), local DIMENSION (ldz, nr).

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.


Submit feedback on this help topic

Copyright © 1994 - 2011, Intel Corporation. All rights reserved.