DLAEXC(3F) DLAEXC(3F)
DLAEXC  swap adjacent diagonal blocks T11 and T22 of order 1 or 2 in an
upper quasitriangular matrix T by an orthogonal similarity
transformation
SUBROUTINE DLAEXC( WANTQ, N, T, LDT, Q, LDQ, J1, N1, N2, WORK, INFO )
LOGICAL WANTQ
INTEGER INFO, J1, LDQ, LDT, N, N1, N2
DOUBLE PRECISION Q( LDQ, * ), T( LDT, * ), WORK( * )
DLAEXC swaps adjacent diagonal blocks T11 and T22 of order 1 or 2 in an
upper quasitriangular matrix T by an orthogonal similarity
transformation.
T must be in Schur canonical form, that is, block upper triangular with
1by1 and 2by2 diagonal blocks; each 2by2 diagonal block has its
diagonal elemnts equal and its offdiagonal elements of opposite sign.
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) DOUBLE PRECISION array, dimension (LDT,N)
On entry, the upper quasitriangular 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) DOUBLE PRECISION 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.
Page 1
DLAEXC(3F) DLAEXC(3F)
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) DOUBLE PRECISION 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.
DLAEXC(3F) DLAEXC(3F)
DLAEXC  swap adjacent diagonal blocks T11 and T22 of order 1 or 2 in an
upper quasitriangular matrix T by an orthogonal similarity
transformation
SUBROUTINE DLAEXC( WANTQ, N, T, LDT, Q, LDQ, J1, N1, N2, WORK, INFO )
LOGICAL WANTQ
INTEGER INFO, J1, LDQ, LDT, N, N1, N2
DOUBLE PRECISION Q( LDQ, * ), T( LDT, * ), WORK( * )
DLAEXC swaps adjacent diagonal blocks T11 and T22 of order 1 or 2 in an
upper quasitriangular matrix T by an orthogonal similarity
transformation.
T must be in Schur canonical form, that is, block upper triangular with
1by1 and 2by2 diagonal blocks; each 2by2 diagonal block has its
diagonal elemnts equal and its offdiagonal elements of opposite sign.
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) DOUBLE PRECISION array, dimension (LDT,N)
On entry, the upper quasitriangular 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) DOUBLE PRECISION 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.
Page 1
DLAEXC(3F) DLAEXC(3F)
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) DOUBLE PRECISION 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.
PPPPaaaaggggeeee 2222 [ Back ]
