SLAEXC
November 2006
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.
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 matrix 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 unchanged. |