?hbevd
?hbevd
Computes all eigenvalues and, optionally, all eigenvectors of a complex Hermitian band matrix using divide and conquer algorithm.
Syntax
lapack_int LAPACKE_chbevd
(
int
matrix_layout
,
char
jobz
,
char
uplo
,
lapack_int
n
,
lapack_int
kd
,
lapack_complex_float*
ab
,
lapack_int
ldab
,
float*
w
,
lapack_complex_float*
z
,
lapack_int
ldz
);
lapack_int LAPACKE_zhbevd
(
int
matrix_layout
,
char
jobz
,
char
uplo
,
lapack_int
n
,
lapack_int
kd
,
lapack_complex_double*
ab
,
lapack_int
ldab
,
double*
w
,
lapack_complex_double*
z
,
lapack_int
ldz
);
Include Files
- mkl.h
Description
The routine computes all the eigenvalues, and optionally all the eigenvectors, of a complex Hermitian band matrix .
A
. In other words, it can compute the spectral factorization of A
as: A
= Z*
Λ*
Z
H
Here , and . Thus,
Λ
is a real diagonal matrix whose diagonal elements are the eigenvalues λ
i
Z
is the (complex) unitary matrix whose columns are the eigenvectors z
i
A*z
i
λ
i
*z
i
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. 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'abstores the upper triangular part ofA.If,uplo='L'abstores the lower triangular part ofA.
- n
- The order of the matrixA().n≥0
- kd
- The number of super- or sub-diagonals inA().kd≥0
- ab
- ab(size at least max(1,is an array containing either upper or lower triangular part of the Hermitian matrixldab*n) for column major layout and at least max(1,ldab*(kd+ 1)) for row major layout)A(as specified byuplo) in band storage format.
- ldab
- The leading dimension ofab; must be at leastkd+1for column major layout and.nfor row major layout
- ldz
- The leading dimension of the output arrayz.Constraints:if, thenjobz='N';ldz≥1if, thenjobz='V'ldz≥max(1,n) .
Output Parameters
- w
- Array, size at least max(1,n).If, contains the eigenvalues of the matrixinfo= 0Ain ascending order. See alsoinfo.
- z
- Array, sizemax(1,.ldz*nifand at least 1 ifjob='V'job='N'If, then this array is overwritten by the unitary matrixjobz='V'Zwhich contains the eigenvectors ofA. Thei-th column ofZcontains the eigenvector which corresponds to the eigenvalue.w[i- 1]If, thenjobz='N'zis not referenced.
- ab
- On exit, this array is overwritten by the values generated during the reduction to tridiagonal form.
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.