stgexc(3)

NAME

STGEXC - reorder the generalized real Schur decomposition
of a real matrix pair (A,B) using an orthogonal equivalence
transformation (A, B) = Q * (A, B) * Z',

SYNOPSIS

SUBROUTINE STGEXC( WANTQ, WANTZ, N, A,  LDA,  B,  LDB,  Q,
LDQ, Z, LDZ, IFST, ILST, WORK, LWORK, INFO )
    LOGICAL        WANTQ, WANTZ
    INTEGER         IFST,  ILST, INFO, LDA, LDB, LDQ, LDZ,
LWORK, N
    REAL           A( LDA, * ), B( LDB, * ), Q( LDQ, *  ),
WORK( * ), Z( LDZ, * )

PURPOSE

STGEXC reorders the generalized real Schur decomposition
of a real matrix pair (A,B) using an orthogonal equivalence
transformation (A, B) = Q * (A, B) * Z', so that the diagonal
block of (A, B) with row index IFST is moved to row ILST.
(A, B) must be in generalized real Schur canonical form
(as returned by SGGES), i.e. A is block upper triangular with
1-by-1 and 2-by-2 diagonal blocks. B is upper triangular.
Optionally, the matrices Q and Z of generalized Schur vec
tors are updated.

Q(in) * A(in) * Z(in)' = Q(out) * A(out) * Z(out)'
Q(in) * B(in) * Z(in)' = Q(out) * B(out) * Z(out)'

ARGUMENTS

WANTQ (input) LOGICAL

WANTZ (input) LOGICAL

N (input) INTEGER
The order of the matrices A and B. N >= 0.
A (input/output) REAL array, dimension (LDA,N)
On entry, the matrix A in generalized real Schur
canonical form. On exit, the updated matrix A, again in general
ized real Schur canonical form.
LDA (input) INTEGER
The leading dimension of the array A. LDA >=
max(1,N).
B (input/output) REAL array, dimension (LDB,N)
On entry, the matrix B in generalized real Schur
canonical form (A,B). On exit, the updated matrix B, again in
generalized real Schur canonical form (A,B).
LDB (input) INTEGER
The leading dimension of the array B. LDB >=
max(1,N).
Q (input/output) REAL array, dimension (LDZ,N)
On entry, if WANTQ = .TRUE., the orthogonal matrix
Q. On exit, the updated matrix Q. If WANTQ = .FALSE., Q is not
referenced.
LDQ (input) INTEGER
The leading dimension of the array Q. LDQ >= 1.
If WANTQ = .TRUE., LDQ >= N.
Z (input/output) REAL array, dimension (LDZ,N)
On entry, if WANTZ = .TRUE., the orthogonal matrix
Z. On exit, the updated matrix Z. If WANTZ = .FALSE., Z is not
referenced.
LDZ (input) INTEGER
The leading dimension of the array Z. LDZ >= 1.
If WANTZ = .TRUE., LDZ >= N.
IFST (input/output) INTEGER
ILST (input/output) INTEGER Specify the re
ordering of the diagonal blocks of (A, B). The block with row
index IFST is moved to row ILST, by a sequence of swapping be
tween adjacent blocks. On exit, if IFST pointed on entry to the
second row of a 2-by-2 block, it is changed to point to the first
row; ILST always points to the first row of the block in its fi
nal position (which may differ from its input value by +1 or -1).
1 <= IFST, ILST <= N.
WORK (workspace/output) REAL array, dimension (LWORK)
On exit, if INFO = 0, WORK(1) returns the optimal
LWORK.
LWORK (input) INTEGER
The dimension of the array WORK. LWORK >= 4*N +
16.
If LWORK = -1, then a workspace query is assumed;
the routine only calculates the optimal size of the WORK array,
returns this value as the first entry of the WORK array, and no
error message related to LWORK is issued by XERBLA.
INFO (output) INTEGER
=0: successful exit.
<0: if INFO = -i, the i-th argument had an ille
gal value.
=1: The transformed matrix pair (A, B) would be
too far from generalized Schur form; the problem is ill- condi
tioned. (A, B) may have been partially reordered, and ILST points
to the first row of the current position of the block being
moved.

FURTHER DETAILS

Based on contributions by
Bo Kagstrom and Peter Poromaa, Department of Computing
Science,
Umea University, S-901 87 Umea, Sweden.
[1] B. Kagstrom; A Direct Method for Reordering Eigenval
ues in the
Generalized Real Schur Form of a Regular Matrix Pair
(A, B), in
M.S. Moonen et al (eds), Linear Algebra for Large
Scale and
Real-Time Applications, Kluwer Academic Publ. 1993, pp
195-218.
LAPACK version 3.0 15 June 2000
Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout