Developer Reference

  • 0.9
  • 09/09/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

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804