Developer Reference

  • 2020.2
  • 07/15/2020
  • Public Content
Contents

?gghd3

Reduces a pair of matrices to generalized upper Hessenberg form.

Syntax

call sgghd3
(
compq
,
compz
,
n
,
ilo
,
ihi
,
a
,
lda
,
b
,
ldb
,
q
,
ldq
,
z
,
ldz
,
work
,
lwork
,
info
)
call dgghd3
(
compq
,
compz
,
n
,
ilo
,
ihi
,
a
,
lda
,
b
,
ldb
,
q
,
ldq
,
z
,
ldz
,
work
,
lwork
,
info
)
call cgghd3
(
compq
,
compz
,
n
,
ilo
,
ihi
,
a
,
lda
,
b
,
ldb
,
q
,
ldq
,
z
,
ldz
,
work
,
lwork
,
info
)
call zgghd3
(
compq
,
compz
,
n
,
ilo
,
ihi
,
a
,
lda
,
b
,
ldb
,
q
,
ldq
,
z
,
ldz
,
work
,
lwork
,
info
)
Include Files
  • mkl.fi
Description
?gghd3
reduces a pair of real or complex matrices (
A
,
B
) to generalized upper Hessenberg form using orthogonal/unitary transformations, where
A
is a general matrix and
B
is upper triangular. The form of the generalized eigenvalue problem is
A
*
x
=
λ
*
B
*
x
,
and
B
is typically made upper triangular by computing its QR factorization and moving the orthogonal/unitary matrix
Q
to the left side of the equation.
This subroutine simultaneously reduces
A
to a Hessenberg matrix
H
:
Q
T
*
A
*
Z
=
H
for real flavors
or
Q
T
*
A
*
Z
=
H
for complex flavors
and transforms
B
to another upper triangular matrix
T
:
Q
T
*
B
*
Z
=
T
for real flavors
or
Q
T
*
B
*
Z
=
T
for complex flavors
in order to reduce the problem to its standard form
H
*
y
=
λ
*
T
*
y
where
y
=
Z
T
*
x
for real flavors
or
y
=
Z
T
*
x
for complex flavors.
The orthogonal/unitary matrices
Q
and
Z
are determined as products of Givens rotations. They may either be formed explicitly, or they may be postmultiplied into input matrices
Q
1
and
Z
1
, so that
for real flavors:
Q
1
*
A
*
Z
1
T
= (
Q
1
*
Q
) *
H
* (
Z
1
*
Z
)
T
Q
1