LAPACK
3.4.2
LAPACK: Linear Algebra PACKage
|
Go to the source code of this file.
Functions/Subroutines | |
subroutine | dlaexc (WANTQ, N, T, LDT, Q, LDQ, J1, N1, N2, WORK, INFO) |
DLAEXC swaps adjacent diagonal blocks of a real upper quasi-triangular matrix in Schur canonical form, by an orthogonal similarity transformation. |
subroutine dlaexc | ( | logical | WANTQ, |
integer | N, | ||
double precision, dimension( ldt, * ) | T, | ||
integer | LDT, | ||
double precision, dimension( ldq, * ) | Q, | ||
integer | LDQ, | ||
integer | J1, | ||
integer | N1, | ||
integer | N2, | ||
double precision, dimension( * ) | WORK, | ||
integer | INFO | ||
) |
DLAEXC swaps adjacent diagonal blocks of a real upper quasi-triangular matrix in Schur canonical form, by an orthogonal similarity transformation.
Download DLAEXC + dependencies [TGZ] [ZIP] [TXT]DLAEXC 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.
[in] | WANTQ | WANTQ is LOGICAL = .TRUE. : accumulate the transformation in the matrix Q; = .FALSE.: do not accumulate the transformation. |
[in] | N | N is INTEGER The order of the matrix T. N >= 0. |
[in,out] | T | T is DOUBLE PRECISION 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. |
[in] | LDT | LDT is INTEGER The leading dimension of the array T. LDT >= max(1,N). |
[in,out] | Q | Q is 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. |
[in] | LDQ | LDQ is INTEGER The leading dimension of the array Q. LDQ >= 1; and if WANTQ is .TRUE., LDQ >= N. |
[in] | J1 | J1 is INTEGER The index of the first row of the first block T11. |
[in] | N1 | N1 is INTEGER The order of the first block T11. N1 = 0, 1 or 2. |
[in] | N2 | N2 is INTEGER The order of the second block T22. N2 = 0, 1 or 2. |
[out] | WORK | WORK is DOUBLE PRECISION array, dimension (N) |
[out] | INFO | INFO is 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. |
Definition at line 138 of file dlaexc.f.