?heev
?heev
Computes all eigenvalues and, optionally, eigenvectors of a Hermitian matrix.
Syntax
lapack_int LAPACKE_cheev
(
int
matrix_layout
,
char
jobz
,
char
uplo
,
lapack_int
n
,
lapack_complex_float*
a
,
lapack_int
lda
,
float*
w
);
lapack_int LAPACKE_zheev
(
int
matrix_layout
,
char
jobz
,
char
uplo
,
lapack_int
n
,
lapack_complex_double*
a
,
lapack_int
lda
,
double*
w
);
Include Files
- mkl.h
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
- matrix_layout
- Specifies whether matrix storage layout is row major (LAPACK_ROW_MAJOR) or column major (LAPACK_COL_MAJOR).
- jobz
- Must be'N'or'V'.If, then only eigenvalues are computed.jobz='N'If, then eigenvalues and eigenvectors are computed.jobz='V'
- uplo
- Must be'U'or'L'.If,uplo='U'astores the upper triangular part ofA.If,uplo='L'astores the lower triangular part ofA.
- n
- The order of the matrixA().n≥0
- a
- a(size max(1,is an array containing either upper or lower triangular part of the Hermitian matrixlda*n))A, as specified byuplo.
- lda
- The leading dimension of the arraya. Must be at least max(1,n).
Output Parameters
- a
- On exit, if, then ifjobz='V', arrayinfo= 0acontains the orthonormal eigenvectors of the matrixA.If, then on exit the lower trianglejobz='N'(if) or the upper triangle (ifuplo='L') ofuplo='U'A, including the diagonal, is overwritten.
- w
- Array, size at least max(1,n).If, contains the eigenvalues of the matrixinfo= 0Ain ascending order.
Return Values
This function returns a value
info
.If , the execution is successful.
info
=0If , the
info
= -i
i
-th parameter had an illegal value.If , then the algorithm failed to converge;
info
= i
i
indicates the number of elements of an intermediate tridiagonal form which did not converge to zero.