Developer Reference

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

?tgexc

Reorders the generalized Schur decomposition of a pair of matrices (A,B) so that one diagonal block of (A,B) moves to another row index.

Syntax

call stgexc
(
wantq
,
wantz
,
n
,
a
,
lda
,
b
,
ldb
,
q
,
ldq
,
z
,
ldz
,
ifst
,
ilst
,
work
,
lwork
,
info
)
call dtgexc
(
wantq
,
wantz
,
n
,
a
,
lda
,
b
,
ldb
,
q
,
ldq
,
z
,
ldz
,
ifst
,
ilst
,
work
,
lwork
,
info
)
call ctgexc
(
wantq
,
wantz
,
n
,
a
,
lda
,
b
,
ldb
,
q
,
ldq
,
z
,
ldz
,
ifst
,
ilst
,
info
)
call ztgexc
(
wantq
,
wantz
,
n
,
a
,
lda
,
b
,
ldb
,
q
,
ldq
,
z
,
ldz
,
ifst
,
ilst
,
info
)
call tgexc
(
a
,
b
[
,
ifst
]
[
,
ilst
]
[
,
z
]
[
,
q
]
[
,
info
]
)
Include Files
  • mkl.fi
    ,
    lapack.f90
Description
The routine reorders the generalized real-Schur/Schur decomposition of a real/complex matrix pair (
A
,
B
) using an orthogonal/unitary equivalence transformation
(
A
,
B
) =
Q
*(
A
,
B
)*
Z
H
,
so that the diagonal block of (
A
,
B
) with row index
ifst
is moved to row
ilst
. Matrix pair (
A
,
B
) must be in a generalized real-Schur/Schur canonical form (as returned by gges), that is,
A
is block upper triangular with 1-by-1 and 2-by-2 diagonal blocks and
B
is upper triangular. Optionally, the matrices
Q
and
Z
of generalized Schur vectors are updated.
Q
in
*
A
in
*
Z
in
T
=
Q
out
*
A
out
*
Z
out
T
Q
in
*
B
in
*
Z
in
T
=
Q
out
*
B
out
*
Z
out
T
.
Input Parameters
wantq
,
wantz