Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?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 .