Click or drag to resize

DLAEXCRun Method

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.CSLapack
Assembly: 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
)
Request Example View Source

Parameters

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