Developer Reference

  • 2020.2
  • 07/15/2020
  • Public Content
Contents

?stevd

Computes all eigenvalues and, optionally, all eigenvectors of a real symmetric tridiagonal matrix using divide and conquer algorithm.

Syntax

call sstevd
(
job
z,
n
,
d
,
e
,
z
,
ldz
,
work
,
lwork
,
iwork
,
liwork
,
info
)
call dstevd
(
job
z,
n
,
d
,
e
,
z
,
ldz
,
work
,
lwork
,
iwork
,
liwork
,
info
)
call stevd
(
d
,
e
[
,
z
]
[
,
info
]
)
Include Files
  • mkl.fi
    ,
    lapack.f90
Description
The routine computes all the eigenvalues, and optionally all the eigenvectors, of a real symmetric tridiagonal matrix
T
. In other words, the routine can compute the spectral factorization of
T
as:
T
=
Z
*
Λ
*
Z
T
.
Here
Λ
is a diagonal matrix whose diagonal elements are the eigenvalues
λ
i
, and
Z
is the orthogonal matrix whose columns are the eigenvectors
z
i
. Thus,
T
*
z
i
=
λ
i
*
z
i
for
i
= 1, 2, ...,
n
.
If the eigenvectors are requested, then this routine uses a divide and conquer algorithm to compute eigenvalues and eigenvectors. However, if only eigenvalues are required, then it uses the Pal-Walker-Kahan variant of the
QL
or
QR
algorithm.
There is no complex analogue of this routine.
Input Parameters
jobz
CHARACTER*1
.
Must be
'N'
or
'V'
.
If
jobz
=
'N'
, then only eigenvalues are computed.
If
jobz
=
'V'
, then eigenvalues and eigenvectors are computed.
n
INTEGER
.
The order of the matrix
T
(
n
0
).
d
,
e
,
work
REAL
for
sstevd
DOUBLE PRECISION
for
dstevd
.
Arrays:
d
(*)
contains the
n
diagonal elements of the tridiagonal matrix
T
.
The dimension of
d
must be at least max(1,
n
).
e
(*)
contains the
n
-1 off-diagonal elements of
T
.
The dimension of
e
must be at least max(1,
n
). The
n-
th element of this array is used as workspace.
work
(*) is a workspace array.
The dimension of
work
must be at least
lwork
.
ldz
INTEGER
.
The leading dimension of the output array
z
. Constraints: