Contents
ztgexc - reorder the generalized Schur decomposition of a
complex matrix pair (A,B), using an unitary equivalence
transformation (A, B) := Q * (A, B) * Z', so that the diago-
nal block of (A, B) with row index IFST is moved to row ILST
SUBROUTINE ZTGEXC(WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z, LDZ,
IFST, ILST, INFO)
DOUBLE COMPLEX A(LDA,*), B(LDB,*), Q(LDQ,*), Z(LDZ,*)
INTEGER N, LDA, LDB, LDQ, LDZ, IFST, ILST, INFO
LOGICAL WANTQ, WANTZ
SUBROUTINE ZTGEXC_64(WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z, LDZ,
IFST, ILST, INFO)
DOUBLE COMPLEX A(LDA,*), B(LDB,*), Q(LDQ,*), Z(LDZ,*)
INTEGER*8 N, LDA, LDB, LDQ, LDZ, IFST, ILST, INFO
LOGICAL*8 WANTQ, WANTZ
F95 INTERFACE
SUBROUTINE TGEXC(WANTQ, WANTZ, [N], A, [LDA], B, [LDB], Q, [LDQ], Z,
[LDZ], IFST, ILST, [INFO])
COMPLEX(8), DIMENSION(:,:) :: A, B, Q, Z
INTEGER :: N, LDA, LDB, LDQ, LDZ, IFST, ILST, INFO
LOGICAL :: WANTQ, WANTZ
SUBROUTINE TGEXC_64(WANTQ, WANTZ, [N], A, [LDA], B, [LDB], Q, [LDQ],
Z, [LDZ], IFST, ILST, [INFO])
COMPLEX(8), DIMENSION(:,:) :: A, B, Q, Z
INTEGER(8) :: N, LDA, LDB, LDQ, LDZ, IFST, ILST, INFO
LOGICAL(8) :: WANTQ, WANTZ
C INTERFACE
#include <sunperf.h>
void ztgexc(int wantq, int wantz, int n, doublecomplex *a,
int lda, doublecomplex *b, int ldb, doublecomplex
*q, int ldq, doublecomplex *z, int ldz, int *ifst,
int *ilst, int *info);
void ztgexc_64(long wantq, long wantz, long n, doublecomplex
*a, long lda, doublecomplex *b, long ldb, doub-
lecomplex *q, long ldq, doublecomplex *z, long
ldz, long *ifst, long *ilst, long *info);
ztgexc reorders the generalized Schur decomposition of a
complex matrix pair (A,B), using an unitary equivalence
transformation (A, B) := Q * (A, B) * Z', so that the diago-
nal block of (A, B) with row index IFST is moved to row
ILST.
(A, B) must be in generalized Schur canonical form, that is,
A and B are both 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)'
WANTQ (input)
WANTZ (input)
N (input) The order of the matrices A and B. N >= 0.
A (input/output)
On entry, the upper triangular matrix A in the
pair (A, B). On exit, the updated matrix A.
LDA (input)
The leading dimension of the array A. LDA >=
max(1,N).
B (input/output)
On entry, the upper triangular matrix B in the
pair (A, B). On exit, the updated matrix B.
LDB (input)
The leading dimension of the array B. LDB >=
max(1,N).
Q (input/output)
On entry, if WANTQ = .TRUE., the unitary matrix Q.
On exit, the updated matrix Q. If WANTQ =
.FALSE., Q is not referenced.
LDQ (input)
The leading dimension of the array Q. LDQ >= 1; If
WANTQ = .TRUE., LDQ >= N.
Z (input/output)
On entry, if WANTZ = .TRUE., the unitary matrix Z.
On exit, the updated matrix Z. If WANTZ =
.FALSE., Z is not referenced.
LDZ (input)
The leading dimension of the array Z. LDZ >= 1; If
WANTZ = .TRUE., LDZ >= N.
IFST (input/output)
Specify the reordering of the diagonal blocks of
(A, B). The block with row index IFST is moved to
row ILST, by a sequence of swapping between adja-
cent blocks.
ILST (input/output)
See the description of IFST.
INFO (output)
=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- conditioned. (A, B) may have been par-
tially reordered, and ILST points to the first row
of the current position of the block being moved.
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 Eigenvalues
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.
[2] B. Kagstrom and P. Poromaa; Computing Eigenspaces with
Specified
Eigenvalues of a Regular Matrix Pair (A, B) and Condi-
tion
Estimation: Theory, Algorithms and Software, Report
UMINF - 94.04, Department of Computing Science, Umea
University,
S-901 87 Umea, Sweden, 1994. Also as LAPACK Working Note
87.
To appear in Numerical Algorithms, 1996.
[3] B. Kagstrom and P. Poromaa, LAPACK-Style Algorithms and
Software
for Solving the Generalized Sylvester Equation and
Estimating the
Separation between Regular Matrix Pairs, Report UMINF -
93.23,
Department of Computing Science, Umea University, S-901
87 Umea,
Sweden, December 1993, Revised April 1994, Also as
LAPACK working
Note 75. To appear in ACM Trans. on Math. Software, Vol
22, No 1,
1996.