ztgex2(3)
NAME
- ZTGEX2 - swap adjacent diagonal 1 by 1 blocks (A11,B11)
- and (A22,B22)
SYNOPSIS
SUBROUTINE ZTGEX2( WANTQ, WANTZ, N, A, LDA, B, LDB, Q,
LDQ, Z, LDZ, J1, INFO )
LOGICAL WANTQ, WANTZ
INTEGER INFO, J1, LDA, LDB, LDQ, LDZ, N
COMPLEX*16 A( LDA, * ), B( LDB, * ), Q( LDQ, * ),
Z( LDZ, * )
PURPOSE
- ZTGEX2 swaps adjacent diagonal 1 by 1 blocks (A11,B11) and
- (A22,B22) in an upper triangular matrix pair (A, B) by an unitary
- equivalence transformation.
- (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)'
ARGUMENTS
WANTQ (input) LOGICAL
WANTZ (input) LOGICAL
- N (input) INTEGER
- The order of the matrices A and B. N >= 0.
- A (input/output) COMPLEX*16 arrays, dimensions
- (LDA,N)
- On entry, the matrix A in the pair (A, B). On ex
- it, the updated matrix A.
- LDA (input) INTEGER
- The leading dimension of the array A. LDA >=
- max(1,N).
- B (input/output) COMPLEX*16 arrays, dimensions
- (LDB,N)
- On entry, the matrix B in the pair (A, B). On ex
- it, the updated matrix B.
- LDB (input) INTEGER
- The leading dimension of the array B. LDB >=
- max(1,N).
- Q (input/output) COMPLEX*16 array, dimension (LDZ,N)
- If WANTQ = .TRUE, on entry, the unitary matrix Q.
- On exit, the updated matrix Q. Not referenced if WANTQ =
- .FALSE..
- LDQ (input) INTEGER
- The leading dimension of the array Q. LDQ >= 1; If
- WANTQ = .TRUE., LDQ >= N.
- Z (input/output) COMPLEX*16 array, dimension (LDZ,N)
- If WANTZ = .TRUE, on entry, the unitary matrix Z.
- On exit, the updated matrix Z. Not referenced if WANTZ =
- .FALSE..
- LDZ (input) INTEGER
- The leading dimension of the array Z. LDZ >= 1; If
- WANTZ = .TRUE., LDZ >= N.
- J1 (input) INTEGER
- The index to the first block (A11, B11).
- INFO (output) INTEGER
- =0: Successful exit.
=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. - In the current code both weak and strong stability tests
- are performed. The user can omit the strong stability test by
- changing the internal logical parameter WANDS to .FALSE.. See
- ref. [2] for details.
- [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.
- [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 ap - pear in
Numerical Algorithms, 1996. - LAPACK version 3.0 15 June 2000