Developer Reference

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

?hpgst

Reduces a generalized eigenvalue problem with a Hermitian matrix to a standard eigenvalue problem using packed storage.

Syntax

lapack_int
LAPACKE_chpgst
(
int
matrix_layout
,
lapack_int
itype
,
char
uplo
,
lapack_int
n
,
lapack_complex_float
*
ap
,
const
lapack_complex_float
*
bp
);
lapack_int
LAPACKE_zhpgst
(
int
matrix_layout
,
lapack_int
itype
,
char
uplo
,
lapack_int
n
,
lapack_complex_double
*
ap
,
const
lapack_complex_double
*
bp
);
Include Files
  • mkl.h
Description
The routine reduces generalized eigenproblems with Hermitian matrices
A
*
z
=
λ
*
B
*
z
,
A
*
B
*
z
=
λ
*
z
, or
B
*
A
*
z
=
λ
*
z
.
to standard eigenproblems
C
*
y
=
λ
*
y
, using packed matrix storage. Here
A
is a complex Hermitian matrix, and
B
is a complex Hermitian positive-definite matrix. Before calling this routine, you must call
?pptrf
to compute the Cholesky factorization:
B
=
U
H
*U
or
B
=
L*L
H
.
Input Parameters
matrix_layout
Specifies whether matrix storage layout is row major (
LAPACK_ROW_MAJOR
) or column major (
LAPACK_COL_MAJOR
).
itype
Must be 1 or 2 or 3.
If
itype
= 1
, the generalized eigenproblem is
A*z
=
lambda
*B*z
for
uplo
=
'U'
:
C
= inv(
U
H
)*
A
*inv(
U
)
,
z
= inv(
U
)*
y
;
for
uplo
=
'L'
:
C
= inv(
L
)*
A
*inv(
L
H
)
,
z
= inv(
L
H
)*
y
.
If
itype
= 2
, the generalized eigenproblem is
A
*
B
*
z
=
lambda
*
z
for
uplo
=
'U'
:
C
=
U
*
A
*
U
H
,
z
= inv(
U
)*
y
;
for
uplo
=
'L'
:
C
=
L
H
*
A
*
L
,
z
= inv(
L
H
)*
y
.
If
itype
= 3
, the generalized eigenproblem is
B*A
*
z
=
lambda
*
z
for
uplo
=
'U'
:
C
=
U
*
A
*
U
H
,
z
=
U
H
*
y
;
for
uplo
=
'L'
:
C
=
L
H
*
A
*
L
,
z
=
L
*
y
.
uplo
Must be
'U'
or
'L'
.
If
uplo
=
'U'
,
ap
stores the packed upper triangle of
A
; you must supply
B
in the factored form
B
=
U
H
*U
.
If
uplo
=
'L'
,
ap
stores the packed lower triangle of
A
; you must supply
B
in the factored form
B =
L*L
H
.
n
The order of the matrices
A
and
B
(
n
0
).
ap
,
Arrays:
ap
contains the packed upper or lower triangle of
A
.
The dimension of
a
must be at least max(1,
n
*(
n
+1)/2).
bp
contains the packed Cholesky factor of
B
(as returned by
?pptrf
with the same
uplo
value).
The dimension of
b
must be at least max(1,
n
*(
n
+1)/2).
Output Parameters
ap
The upper or lower triangle of
A
is overwritten by the upper or lower triangle of
C
, as specified by the arguments
itype
and
uplo
.
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.
Application Notes
Forming the reduced matrix
C
is a stable procedure. However, it involves implicit multiplication by inv(
B
) (if
itype
= 1
) or
B
(if
itype
= 2
or 3). When the routine is used as a step in the computation of eigenvalues and eigenvectors of the original problem, there may be a significant loss of accuracy if
B
is ill-conditioned with respect to inversion.
The approximate number of floating-point operations is
n
3
.

Product and Performance Information

1

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