Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 11/07/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

?steqr2

Computes all eigenvalues and, optionally, eigenvectors of a symmetric tridiagonal matrix using the implicit QL or QR method.

Syntax

void ssteqr2 (char *compz , MKL_INT *n , float *d , float *e , float *z , MKL_INT *ldz , MKL_INT *nr , float *work , MKL_INT *info );

void dsteqr2 (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

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

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 p?laset or ?laset prior to entering this function.

n

The order of the matrix T(n 0).

d, e, work

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)

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