196 SUBROUTINE ctgexc( WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z,
197 $ LDZ, IFST, ILST, INFO )
205 INTEGER IFST, ILST, INFO, LDA, LDB, LDQ, LDZ, N
208 COMPLEX A( LDA, * ), B( LDB, * ), Q( LDQ, * ),
229 ELSE IF( lda.LT.max( 1, n ) )
THEN
231 ELSE IF( ldb.LT.max( 1, n ) )
THEN
233 ELSE IF( ldq.LT.1 .OR. wantq .AND. ( ldq.LT.max( 1, n ) ) )
THEN
235 ELSE IF( ldz.LT.1 .OR. wantz .AND. ( ldz.LT.max( 1, n ) ) )
THEN
237 ELSE IF( ifst.LT.1 .OR. ifst.GT.n )
THEN
239 ELSE IF( ilst.LT.1 .OR. ilst.GT.n )
THEN
243 CALL xerbla(
'CTGEXC', -info )
254 IF( ifst.LT.ilst )
THEN
262 CALL ctgex2( wantq, wantz, n, a, lda, b, ldb, q, ldq, z,
280 CALL ctgex2( wantq, wantz, n, a, lda, b, ldb, q, ldq, z,
subroutine ctgex2(wantq, wantz, n, a, lda, b, ldb, q, ldq, z, ldz, j1, info)
CTGEX2 swaps adjacent diagonal blocks in an upper (quasi) triangular matrix pair by an unitary equiva...
subroutine ctgexc(wantq, wantz, n, a, lda, b, ldb, q, ldq, z, ldz, ifst, ilst, info)
CTGEXC