Contents

# ?sygst

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

## Syntax

Include Files
• mkl.h
Description
The routine reduces real symmetric-definite generalized eigenproblems
A
*
z
=
λ
*
B
*
z
,
A
*
B
*
z
=
λ
*
z
, or
B
*
A
*
z
=
λ
*
z
to the standard form
C
*
y
=
λ
*
y
. Here
A
is a real symmetric matrix, and
B
is a real symmetric positive-definite matrix. Before calling this routine, call
?potrf
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'
, the array
a
stores the upper triangle of
A
; you must supply
B
in the factored form
B
=
U
T
*U
.
If
uplo
=
'L'
, the array
a
stores the 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
).
,
b
Arrays:
a
(size max(1,
lda
*
n
))
contains the upper or lower triangle of
A
.
b
(size max(1,
ldb
*
n
))
contains the Cholesky-factored matrix
B
:
B
=
U
T
*U
or
B
=
L*L
T
(as returned by
?potrf
).
lda
a
; at least max(1,
n
).
ldb
b
; at least max(1,
n
).
Output Parameters
a
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