Developer Reference

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

?heev

Computes all eigenvalues and, optionally, eigenvectors of a Hermitian matrix.

Syntax

call cheev
(
jobz
,
uplo
,
n
,
a
,
lda
,
w
,
work
,
lwork
,
rwork
,
info
)
call zheev
(
jobz
,
uplo
,
n
,
a
,
lda
,
w
,
work
,
lwork
,
rwork
,
info
)
call heev
(
a
,
w
[
,
jobz
]
[
,
uplo
]
[
,
info
]
)
Include Files
  • mkl.fi
    ,
    lapack.f90
Description
The routine computes all eigenvalues and, optionally, eigenvectors of a complex Hermitian matrix
A
.
Note that for most cases of complex Hermitian eigenvalue problems the default choice should be heevr function as its underlying algorithm is faster and uses less workspace.
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.
uplo
CHARACTER*1
.
Must be
'U'
or
'L'
.
If
uplo
=
'U'
,
a
stores the upper triangular part of
A
.
If
uplo
=
'L'
,
a
stores the lower triangular part of
A
.
n
INTEGER
.
The order of the matrix
A
(
n
0
).
a
,
work
COMPLEX
for
cheev
DOUBLE COMPLEX
for
zheev
Arrays:
a
(
lda
,*)
is an array containing either upper or lower triangular part of the Hermitian matrix
A
, as specified by
uplo
.
The second dimension of
a
must be at least max(1,
n
).
work
is a workspace array, its dimension
max(1,
lwork
)
.
lda
INTEGER
.
The leading dimension of the array
a
. Must be at least max(1,
n
).
lwork
INTEGER
.
The dimension of the array
work
. C
onstraint:
lwork
max(1, 2
n
-1)
.
If
lwork
= -1
, then a workspace query is assumed; the routine only calculates the optimal size of the
work
array, returns this value as the first entry of the
work
array, and no error message related to
lwork
is issued by xerbla.
See
Application Notes
for the suggested value of
lwork
.
rwork
REAL
for
cheev
DOUBLE PRECISION
for
zheev
.
Workspace array, size at least max(1, 3
n
-2).
Output Parameters
a
On exit, if
jobz
=
'V'
, then if
info
= 0
, array
a
contains the orthonormal eigenvectors of the matrix
A
.
If
jobz
=
'N'
, then on exit the lower triangle
(if
uplo
=
'L'
) or the upper triangle (if