Visible to Intel only — GUID: GUID-05E5261F-4748-42CE-96D8-C5DE3F9020F5
Visible to Intel only — GUID: GUID-05E5261F-4748-42CE-96D8-C5DE3F9020F5
?larzb
Applies a block reflector or its transpose/conjugate-transpose to a general matrix.
Syntax
call slarzb( side, trans, direct, storev, m, n, k, l, v, ldv, t, ldt, c, ldc, work, ldwork )
call dlarzb( side, trans, direct, storev, m, n, k, l, v, ldv, t, ldt, c, ldc, work, ldwork )
call clarzb( side, trans, direct, storev, m, n, k, l, v, ldv, t, ldt, c, ldc, work, ldwork )
call zlarzb( side, trans, direct, storev, m, n, k, l, v, ldv, t, ldt, c, ldc, work, ldwork )
Include Files
- mkl.fi
Description
The routine applies a real/complex block reflector H or its transpose HT (or the conjugate transpose HH for complex flavors) to a real/complex distributed m-by-n matrix C from the left or the right. Currently, only storev = 'R' and direct = 'B' are supported.
Input Parameters
- side
-
CHARACTER*1.
If side = 'L': apply H or HT/HH from the left
If side = 'R': apply H or HT/HH from the right
- trans
-
CHARACTER*1.
If trans = 'N': apply H (No transpose)
If trans='C': apply HH (conjugate transpose)
If trans='T': apply HT (transpose transpose)
- direct
-
CHARACTER*1.
Indicates how H is formed from a product of elementary reflectors
= 'F': H = H(1)*H(2)*...*H(k) (forward, not supported)
= 'B': H = H(k)*...*H(2)*H(1) (backward)
- storev
-
CHARACTER*1.
Indicates how the vectors which define the elementary reflectors are stored:
= 'C': Column-wise (not supported)
= 'R': Row-wise.
- m
-
INTEGER. The number of rows of the matrix C.
- n
-
INTEGER. The number of columns of the matrix C.
- k
-
INTEGER. The order of the matrix T (equal to the number of elementary reflectors whose product defines the block reflector).
- l
-
INTEGER. The number of columns of the matrix V containing the meaningful part of the Householder reflectors.
If side = 'L', m≥l≥ 0, if side = 'R', n≥l≥ 0.
- v
-
REAL for slarzb
DOUBLE PRECISION for dlarzb
COMPLEX for clarzb
DOUBLE COMPLEX for zlarzb
Array, DIMENSION (ldv, nv).
If storev = 'C', nv = k;
if storev = 'R', nv = l.
- ldv
-
INTEGER. The leading dimension of the array v.
If storev = 'C', ldv≥l; if storev = 'R', ldv≥k.
- t
-
REAL for slarzb
DOUBLE PRECISION for dlarzb
COMPLEX for clarzb
DOUBLE COMPLEX for zlarzb
Array, DIMENSION (ldt,k). The triangular k-by-k matrix T in the representation of the block reflector.
- ldt
-
INTEGER. The leading dimension of the array t.
ldt≥k.
- c
-
REAL for slarzb
DOUBLE PRECISION for dlarzb
COMPLEX for clarzb
DOUBLE COMPLEX for zlarzb
Array, DIMENSION (ldc,n). On entry, the m-by-n matrix C.
- ldc
-
INTEGER. The leading dimension of the array c.
ldc≥ max(1,m).
- work
-
REAL for slarzb
DOUBLE PRECISION for dlarzb
COMPLEX for clarzb
DOUBLE COMPLEX for zlarzb
Workspace array, DIMENSION (ldwork, k).
- ldwork
-
INTEGER. The leading dimension of the array work.
If side = 'L', ldwork≥ max(1, n);
if side = 'R', ldwork≥ max(1, m).
Output Parameters
- c
-
On exit, C is overwritten by H*C, or HT/HH*C, or C*H, or C*HT/HH.