Click or drag to resize

DORMR3Run Method

Purpose ======= DORMR3 overwrites the general real m by n matrix C with Q * C if SIDE = 'L' and TRANS = 'N', or Q'* C if SIDE = 'L' and TRANS = 'T', or C * Q if SIDE = 'R' and TRANS = 'N', or C * Q' if SIDE = 'R' and TRANS = 'T', where Q is a real orthogonal matrix defined as the product of k elementary reflectors Q = H(1) H(2) . . . H(k) as returned by DTZRZF. Q is of order m if SIDE = 'L' and of order n if SIDE = 'R'.

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(
	string SIDE,
	string TRANS,
	int M,
	int N,
	int K,
	int L,
	double[] A,
	int offset_a,
	int LDA,
	double[] TAU,
	int offset_tau,
	ref double[] C,
	int offset_c,
	int LDC,
	ref double[] WORK,
	int offset_work,
	ref int INFO
)
Request Example View Source

Parameters

SIDE  String
(input) CHARACTER*1 = 'L': apply Q or Q' from the Left = 'R': apply Q or Q' from the Right
TRANS  String
(input) CHARACTER*1 = 'N': apply Q (No transpose) = 'T': apply Q' (Transpose)
M  Int32
(input) INTEGER The number of rows of the matrix C. M .GE. 0.
N  Int32
(input) INTEGER The number of columns of the matrix C. N .GE. 0.
K  Int32
(input) INTEGER The number of elementary reflectors whose product defines the matrix Q. If SIDE = 'L', M .GE. K .GE. 0; if SIDE = 'R', N .GE. K .GE. 0.
L  Int32
(input) INTEGER The number of columns of the matrix A containing the meaningful part of the Householder reflectors. If SIDE = 'L', M .GE. L .GE. 0, if SIDE = 'R', N .GE. L .GE. 0.
A  Double
(input) DOUBLE PRECISION array, dimension (LDA,M) if SIDE = 'L', (LDA,N) if SIDE = 'R' The i-th row must contain the vector which defines the elementary reflector H(i), for i = 1,2,...,k, as returned by DTZRZF in the last k rows of its array argument A. A is modified by the routine but restored on exit.
offset_a  Int32
 
LDA  Int32
(input) INTEGER The leading dimension of the array A. LDA .GE. max(1,K).
TAU  Double
(input) DOUBLE PRECISION array, dimension (K) TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by DTZRZF.
offset_tau  Int32
 
C  Double
* Q if SIDE = 'R' and TRANS = 'N', or
offset_c  Int32
 
LDC  Int32
(input) INTEGER The leading dimension of the array C. LDC .GE. max(1,M).
WORK  Double
(workspace) DOUBLE PRECISION array, dimension (N) if SIDE = 'L', (M) if SIDE = 'R'
offset_work  Int32
 
INFO  Int32
(output) INTEGER = 0: successful exit .LT. 0: if INFO = -i, the i-th argument had an illegal value
See Also