Purpose
=======
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.
Namespace: DotNumerics.LinearAlgebra.CSLapackAssembly: DWSIM.MathOps.DotNumerics (in DWSIM.MathOps.DotNumerics.dll) Version: 1.0.0.0 (1.0.0.0)
Syntax public void Run(
bool WANTQ,
int N,
ref double[] T,
int offset_t,
int LDT,
ref double[] Q,
int offset_q,
int LDQ,
int J1,
int N1,
int N2,
ref double[] WORK,
int offset_work,
ref int INFO
)
Public Sub Run (
WANTQ As Boolean,
N As Integer,
ByRef T As Double(),
offset_t As Integer,
LDT As Integer,
ByRef Q As Double(),
offset_q As Integer,
LDQ As Integer,
J1 As Integer,
N1 As Integer,
N2 As Integer,
ByRef WORK As Double(),
offset_work As Integer,
ByRef INFO As Integer
)
Request Example
View SourceParameters
- WANTQ Boolean
-
(input) LOGICAL
= .TRUE. : accumulate the transformation in the matrix Q;
= .FALSE.: do not accumulate the transformation.
- N Int32
-
(input) INTEGER
The order of the matrix T. N .GE. 0.
- T Double
-
must be in Schur canonical form, that is, block upper triangular
- offset_t Int32
-
- LDT Int32
-
(input) INTEGER
The leading dimension of the array T. LDT .GE. max(1,N).
- Q Double
-
(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.
- offset_q Int32
-
- LDQ Int32
-
(input) INTEGER
The leading dimension of the array Q.
LDQ .GE. 1; and if WANTQ is .TRUE., LDQ .GE. N.
- J1 Int32
-
(input) INTEGER
The index of the first row of the first block T11.
- N1 Int32
-
(input) INTEGER
The order of the first block T11. N1 = 0, 1 or 2.
- N2 Int32
-
(input) INTEGER
The order of the second block T22. N2 = 0, 1 or 2.
- WORK Double
-
(workspace) DOUBLE PRECISION array, dimension (N)
- offset_work Int32
-
- INFO Int32
-
(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.
See Also