Contents

# ?spgst

Reduces a real symmetric-definite generalized eigenvalue problem to the standard form using packed storage.

## Syntax

Include Files
• mkl.h
Description
The routine reduces real symmetric-definite generalized eigenproblems
A
*
x
=
λ
*
B
*
x
,
A
*
B
*
x
=
λ
*
x
, or
B
*
A
*
x
=
λ
*
x
to the standard form
C
*
y
=
λ
*
y
, using packed matrix storage. Here
A
is a real symmetric matrix, and
B
is a real symmetric positive-definite matrix. Before calling this routine, call
?pptrf
to compute the Cholesky factorization:
B
=
U
T
*U
or
B
=
L*L
T
.
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
T
)*
A
*inv(
U
)
,
z
= inv(
U
)*
y
;
for
uplo
=
'L'
:
C
= inv(
L
)*
A
*inv(
L
T
)
,
z
= inv(
L
T
)*
y
.
If
itype
= 2
, the generalized eigenproblem is
A
*
B
*
z
=
lambda
*
z
for
uplo
=
'U'
:
C
=
U
*
A
*
U
T
,
z
= inv(
U
)*
y
;
for
uplo
=
'L'
:
C
=
L
T
*
A
*
L
,
z
= inv(
L
T
)*
y
.
If
itype
= 3
, the generalized eigenproblem is
B*A
*
z
=
lambda
*
z
for
uplo
=
'U'
:
C
=
U
*
A
*
U
T
,
z
=
U
T
*
y
;
for
uplo
=
'L'
:
C
=
L
T
*
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
T
*U
.
If
uplo
=
'L'
,
ap
stores the packed lower triangle of
A
;
you must supply
B
in the factored form
B
=
L*L
T
.
n
The order of the matrices
A
and
B
(
n
0
).
ap
,
bp
Arrays:
ap
contains the packed upper or lower triangle of
A
.
The dimension of
ap
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
bp
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.