Purpose
=======
DLARFT forms the triangular factor T of a real block reflector H
of order n, which is defined as a product of k elementary reflectors.
If DIRECT = 'F', H = H(1) H(2) . . . H(k) and T is upper triangular;
If DIRECT = 'B', H = H(k) . . . H(2) H(1) and T is lower triangular.
If STOREV = 'C', the vector which defines the elementary reflector
H(i) is stored in the i-th column of the array V, and
H = I - V * T * V'
If STOREV = 'R', the vector which defines the elementary reflector
H(i) is stored in the i-th row of the array V, and
H = I - V' * T * V
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(
string DIRECT,
string STOREV,
int N,
int K,
ref double[] V,
int offset_v,
int LDV,
double[] TAU,
int offset_tau,
ref double[] T,
int offset_t,
int LDT
)
Public Sub Run (
DIRECT As String,
STOREV As String,
N As Integer,
K As Integer,
ByRef V As Double(),
offset_v As Integer,
LDV As Integer,
TAU As Double(),
offset_tau As Integer,
ByRef T As Double(),
offset_t As Integer,
LDT As Integer
)
Request Example
View SourceParameters
- DIRECT String
-
(input) CHARACTER*1
Specifies the order in which the elementary reflectors are
multiplied to form the block reflector:
= 'F': H = H(1) H(2) . . . H(k) (Forward)
= 'B': H = H(k) . . . H(2) H(1) (Backward)
- STOREV String
-
(input) CHARACTER*1
Specifies how the vectors which define the elementary
reflectors are stored (see also Further Details):
= 'C': columnwise
= 'R': rowwise
- N Int32
-
(input) INTEGER
The order of the block reflector H. N .GE. 0.
- K Int32
-
(input) INTEGER
The order of the triangular factor T (= the number of
elementary reflectors). K .GE. 1.
- V Double
-
(input/output) DOUBLE PRECISION array, dimension
(LDV,K) if STOREV = 'C'
(LDV,N) if STOREV = 'R'
The matrix V. See further details.
- offset_v Int32
-
- LDV Int32
-
(input) INTEGER
The leading dimension of the array V.
If STOREV = 'C', LDV .GE. max(1,N); if STOREV = 'R', LDV .GE. K.
- TAU Double
-
(input) DOUBLE PRECISION array, dimension (K)
TAU(i) must contain the scalar factor of the elementary
reflector H(i).
- offset_tau Int32
-
- T Double
-
(output) DOUBLE PRECISION array, dimension (LDT,K)
The k by k triangular factor T of the block reflector.
If DIRECT = 'F', T is upper triangular; if DIRECT = 'B', T is
lower triangular. The rest of the array is not used.
- offset_t Int32
-
- LDT Int32
-
(input) INTEGER
The leading dimension of the array T. LDT .GE. K.
See Also