Developer Reference

  • 2021.1
  • 12/04/2020
  • Public Content
Contents

?hbgvd

Computes all eigenvalues and, optionally, eigenvectors of a complex generalized Hermitian positive-definite eigenproblem with banded matrices. If eigenvectors are desired, it uses a divide and conquer method.

Syntax

lapack_int LAPACKE_chbgvd
(
int
matrix_layout
,
char
jobz
,
char
uplo
,
lapack_int
n
,
lapack_int
ka
,
lapack_int
kb
,
lapack_complex_float*
ab
,
lapack_int
ldab
,
lapack_complex_float*
bb
,
lapack_int
ldbb
,
float*
w
,
lapack_complex_float*
z
,
lapack_int
ldz
);
lapack_int LAPACKE_zhbgvd
(
int
matrix_layout
,
char
jobz
,
char
uplo
,
lapack_int
n
,
lapack_int
ka
,
lapack_int
kb
,
lapack_complex_double*
ab
,
lapack_int
ldab
,
lapack_complex_double*
bb
,
lapack_int
ldbb
,
double*
w
,
lapack_complex_double*
z
,
lapack_int
ldz
);
Include Files
  • mkl.h
Description
The routine computes all the eigenvalues, and optionally, the eigenvectors of a complex generalized Hermitian positive-definite banded eigenproblem, of the form
A
*
x
=
λ
*
B
*
x
. Here
A
and
B
are assumed to be Hermitian and banded, and
B
is also positive definite.
If eigenvectors are desired, it uses a divide and conquer 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
jobz
=
'N'
, then compute eigenvalues only.
If
jobz
=
'V'
, then compute eigenvalues and eigenvectors.
uplo
Must be
'U'
or
'L'
.
If
uplo
=
'U'
, arrays
ab
and
bb
store the upper triangles of
A
and
B
;
If
uplo
=
'L'
, arrays
ab
and
bb
store the lower triangles of
A
and
B
.
n
The order of the matrices
A
and
B
(
n
0
).
ka
The number of super- or sub-diagonals in
A
(
ka
0
).
kb
The number of super- or sub-diagonals in
B
(
kb
0).
ab
,
bb
Arrays:
ab
(size at least max(1,
ldab
*
n
) for column major layout and max(1,
ldab
*(
ka
+ 1)) for row major layout)
is an array containing either upper or lower triangular part of the Hermitian matrix
A
(as specified by
uplo
) in band storage format.
bb
(size at least max(1,
ldbb
*
n
) for column major layout and max(1,
ldbb
*(
kb
+ 1)) for row major layout)
is an array containing either upper or lower triangular part of the Hermitian matrix
B
(as specified by
uplo
) in band storage format.
ldab
The leading dimension of the array
ab
; must be at least
ka
+1.
ldbb
The leading dimension of the array
bb
; must be at least
kb
+1.
ldz
The leading dimension of the output array
z
;
ldz
1
. If
jobz
=
'V'
,
ldz
max(1,
n
)
.
Output Parameters
ab
On exit, the contents of
ab
are overwritten.
bb
On exit, contains the factor
S
from the split Cholesky factorization
B
=
S
H
*S
, as returned by pbstf/pbstf.
w
Array, size at least max(1,
n
) .
If
info
= 0
, contains the eigenvalues in ascending order.
z
Array
z
(size at least max(1,
ldz
*
n
))
.
If
jobz
=
'V'
, then if
info
= 0
,
z
contains the matrix
Z
of eigenvectors, with the
i
-th column of
z
holding the eigenvector associated with
w
(
i
). The eigenvectors are normalized so that
Z
H
*
B
*
Z
= I
.
If
jobz
=
'N'
, then
z
is not referenced.
Return Values
This function returns a value
info
.
If
info
=0
, the execution is successful.
If
info
=
-i
, the
i
-th parameter had an illegal value.
If
info
> 0
, and
if
i
n
, the algorithm failed to converge, and
i
off-diagonal elements of an intermediate tridiagonal did not converge to zero;
if
info
=
n
+
i
, for
1
i
n
, then pbstf/pbstf returned
info
=
i
and
B
is not positive-definite. The factorization of
B
could not be completed and no eigenvalues or eigenvectors were computed.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.