Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 10/31/2024
Public
Document Table of Contents

?laed0

Used by ?stedc. Computes all eigenvalues and corresponding eigenvectors of an unreduced symmetric tridiagonal matrix using the divide and conquer method.

Syntax

call slaed0( icompq, qsiz, n, d, e, q, ldq, qstore, ldqs, work, iwork, info )

call dlaed0( icompq, qsiz, n, d, e, q, ldq, qstore, ldqs, work, iwork, info )

call claed0( qsiz, n, d, e, q, ldq, qstore, ldqs, rwork, iwork, info )

call zlaed0( qsiz, n, d, e, q, ldq, qstore, ldqs, rwork, iwork, info )

Include Files

  • mkl.fi

Description

Real flavors of this routine compute all eigenvalues and (optionally) corresponding eigenvectors of a symmetric tridiagonal matrix using the divide and conquer method.

Complex flavors claed0/zlaed0 compute all eigenvalues of a symmetric tridiagonal matrix which is one diagonal block of those from reducing a dense or band Hermitian matrix and corresponding eigenvectors of the dense or band matrix.

Input Parameters

icompq

INTEGER. Used with real flavors only.

If icompq = 0, compute eigenvalues only.

If icompq = 1, compute eigenvectors of original dense symmetric matrix also.

On entry, the array q must contain the orthogonal matrix used to reduce the original matrix to tridiagonal form.

If icompq = 2, compute eigenvalues and eigenvectors of the tridiagonal matrix.

qsiz

INTEGER.

The dimension of the orthogonal/unitary matrix used to reduce the full matrix to tridiagonal form; qsizn (for real flavors, qsizn if icompq = 1).

n

INTEGER. The dimension of the symmetric tridiagonal matrix (n 0).

d, e, rwork

REAL for single-precision flavors

DOUBLE PRECISION for double-precision flavors. Arrays:

d(*) contains the main diagonal of the tridiagonal matrix. The dimension of d must be at least max(1, n).

e(*) contains the off-diagonal elements of the tridiagonal matrix. The dimension of e must be at least max(1, n-1).

rwork(*) is a workspace array used in complex flavors only. The dimension of rwork must be at least (1 +3n+2nlog2(n)+3n2), where log2(n) = smallest integer k such that 2kn.

q, qstore

REAL for slaed0

DOUBLE PRECISION for dlaed0

COMPLEX for claed0

DOUBLE COMPLEX for zlaed0.

Arrays: q(ldq, *), qstore(ldqs, *). The second dimension of these arrays must be at least max(1, n).

For real flavors:

If icompq = 0, array q is not referenced.

If icompq = 1, on entry, q is a subset of the columns of the orthogonal matrix used to reduce the full matrix to tridiagonal form corresponding to the subset of the full matrix which is being decomposed at this time.

If icompq = 2, on entry, q will be the identity matrix. The array qstore is a workspace array referenced only when icompq = 1. Used to store parts of the eigenvector matrix when the updating matrix multiplies take place.

For complex flavors:

On entry, q must contain an qsiz-by-n matrix whose columns are unitarily orthonormal. It is a part of the unitary matrix that reduces the full dense Hermitian matrix to a (reducible) symmetric tridiagonal matrix. The array qstore is a workspace array used to store parts of the eigenvector matrix when the updating matrix multiplies take place.

ldq

INTEGER. The leading dimension of the array q; ldq max(1, n).

ldqs

INTEGER. The leading dimension of the array qstore; ldqs max(1, n).

work

REAL for slaed0

DOUBLE PRECISION for dlaed0.

Workspace array, used in real flavors only.

If icompq = 0 or 1, the dimension of work must be at least (1 +3n+2nlog2(n)+3n2), where log2(n) = smallest integer k such that 2kn.

If icompq = 2, the dimension of work must be at least (4n+n2).

iwork

INTEGER.

Workspace array.

For real flavors, if icompq = 0 or 1, and for complex flavors, the dimension of iwork must be at least (6+6n+5nlog2(n)).

For real flavors, if icompq = 2, the dimension of iwork must be at least (3+5n).

Output Parameters

d

On exit, contains eigenvalues in ascending order.

e

On exit, the array is destroyed.

q

If icompq = 2, on exit, q contains the eigenvectors of the tridiagonal matrix.

info

INTEGER.

If info = 0, the execution is successful.

If info = -i, the i-th parameter had an illegal value.

If info = i >0, the algorithm failed to compute an eigenvalue while working on the submatrix lying in rows and columns i/(n+1) through mod(i, n+1).