slaexc(3)
NAME
- SLAEXC - swap adjacent diagonal blocks T11 and T22 of or
- der 1 or 2 in an upper quasi-triangular matrix T by an orthogonal
- similarity transformation
SYNOPSIS
SUBROUTINE SLAEXC( WANTQ, N, T, LDT, Q, LDQ, J1, N1, N2,
WORK, INFO )
LOGICAL WANTQ
INTEGER INFO, J1, LDQ, LDT, N, N1, N2
REAL Q( LDQ, * ), T( LDT, * ), WORK( * )
PURPOSE
- SLAEXC swaps adjacent diagonal blocks T11 and T22 of order
- 1 or 2 in an upper quasi-triangular matrix T by an orthogonal
- similarity transformation. T must be in Schur canonical form,
- that is, block upper triangular with 1-by-1 and 2-by-2 diagonal
- blocks; each 2-by-2 diagonal block has its diagonal elemnts equal
- and its off-diagonal elements of opposite sign.
ARGUMENTS
- WANTQ (input) LOGICAL
- = .TRUE. : accumulate the transformation in the
- matrix Q;
= .FALSE.: do not accumulate the transformation.
- N (input) INTEGER
- The order of the matrix T. N >= 0.
- T (input/output) REAL array, dimension (LDT,N)
- On entry, the upper quasi-triangular matrix T, in
- Schur canonical form. On exit, the updated matrix T, again in
- Schur canonical form.
- LDT (input) INTEGER
- The leading dimension of the array T. LDT >=
- max(1,N).
- Q (input/output) REAL array, dimension (LDQ,N)
- On entry, if WANTQ is .TRUE., the orthogonal ma
- trix Q. On exit, if WANTQ is .TRUE., the updated matrix Q. If
- WANTQ is .FALSE., Q is not referenced.
- LDQ (input) INTEGER
- The leading dimension of the array Q. LDQ >= 1;
- and if WANTQ is .TRUE., LDQ >= N.
- J1 (input) INTEGER
- The index of the first row of the first block T11.
- N1 (input) INTEGER
- The order of the first block T11. N1 = 0, 1 or 2.
- N2 (input) INTEGER
- The order of the second block T22. N2 = 0, 1 or 2.
- WORK (workspace) REAL array, dimension (N)
- INFO (output) INTEGER
- = 0: successful exit
= 1: the transformed matrix T would be too far
- from Schur form; the blocks are not swapped and T and Q are un
- changed.
- LAPACK version 3.0 15 June 2000