Visible to Intel only — GUID: GUID-DFD2FE8F-22C2-43C6-835A-F7F54B7F0206
Visible to Intel only — GUID: GUID-DFD2FE8F-22C2-43C6-835A-F7F54B7F0206
?larzt
Forms the triangular factor T of a block reflector H = I - V*T*VH.
Syntax
call slarzt( direct, storev, n, k, v, ldv, tau, t, ldt )
call dlarzt( direct, storev, n, k, v, ldv, tau, t, ldt )
call clarzt( direct, storev, n, k, v, ldv, tau, t, ldt )
call zlarzt( direct, storev, n, k, v, ldv, tau, t, ldt )
Include Files
- mkl.fi
Description
The routine forms the triangular factor T of a real/complex 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*VT (for real flavors) or H = I-V*T*VH (for complex flavors).
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-VT*T*V (for real flavors) or H = I-VH*T*V (for complex flavors).
Currently, only storev = 'R' and direct = 'B' are supported.
Input Parameters
- direct
-
CHARACTER*1.
Specifies the order in which the elementary reflectors are multiplied to form the block reflector:
If direct = 'F': H = H(1)*H(2)*...*H(k) (forward, not supported)
If direct = 'B': H = H(k)*...*H(2)*H(1) (backward)
- storev
-
CHARACTER*1.
Specifies how the vectors which define the elementary reflectors are stored (see also Application Notes below):
If storev = 'C': column-wise (not supported)
If storev = 'R': row-wise
- n
-
INTEGER. The order of the block reflector H. n≥ 0.
- k
-
INTEGER. The order of the triangular factor T (equal to the number of elementary reflectors). k≥ 1.
- v
-
REAL for slarzt
DOUBLE PRECISION for dlarzt
COMPLEX for clarzt
DOUBLE COMPLEX for zlarzt
Array, DIMENSION
(ldv, k) if storev = 'C'
(ldv, n) if storev = 'R' The matrix V.
- ldv
-
INTEGER. The leading dimension of the array v.
If storev = 'C', ldv≥ max(1,n);
if storev = 'R', ldv≥k.
- tau
-
REAL for slarzt
DOUBLE PRECISION for dlarzt
COMPLEX for clarzt
DOUBLE COMPLEX for zlarzt
Array, DIMENSION (k). tau(i) must contain the scalar factor of the elementary reflector H(i).
- ldt
-
INTEGER. The leading dimension of the output array t.
ldt≥k.
Output Parameters
- t
-
REAL for slarzt
DOUBLE PRECISION for dlarzt
COMPLEX for clarzt
DOUBLE COMPLEX for zlarzt
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.
- v
-
The matrix V. See Application Notes below.
Application Notes
The shape of the matrix V and the storage of the vectors which define the H(i) is best illustrated by the following example with n = 5 and k = 3. The elements equal to 1 are not stored; the corresponding array elements are modified but restored on exit. The rest of the array is not used.