Intel® oneAPI Math Kernel Library Developer Reference - Fortran
Applies an elementary reflector (as returned by ?tzrzf) to a general matrix.
call slarz( side, m, n, l, v, incv, tau, c, ldc, work )
call dlarz( side, m, n, l, v, incv, tau, c, ldc, work )
call clarz( side, m, n, l, v, incv, tau, c, ldc, work )
call zlarz( side, m, n, l, v, incv, tau, c, ldc, work )
The routine ?larz applies a real/complex elementary reflector H to a real/complex m-by-n matrix C, from either the left or the right. H is represented in the forms
H = I-tau*v*vT for real flavors and H = I-tau*v*vH for complex flavors,
where tau is a real/complex scalar and v is a real/complex vector, respectively.
If tau = 0, then H is taken to be the unit matrix.
For complex flavors, to apply HH (the conjugate transpose of H), supply conjg(tau) instead of tau.
H is a product of k elementary reflectors as returned by ?tzrzf.
CHARACTER*1.
If side = 'L': form H*C
If side = 'R': form C*H
INTEGER. The number of rows of the matrix C.
INTEGER. The number of columns of the matrix C.
INTEGER. The number of entries of the vector v containing the meaningful part of the Householder vectors.
If side = 'L', m≥L≥ 0,
if side = 'R', n≥L≥ 0.
REAL for slarz
DOUBLE PRECISION for dlarz
COMPLEX for clarz
DOUBLE COMPLEX for zlarz
Array, DIMENSION (1+(l-1)*abs(incv)).
The vector v in the representation of H as returned by ?tzrzf.
v is not used if tau = 0.
INTEGER. The increment between elements of v.
incv≠ 0.
REAL for slarz
DOUBLE PRECISION for dlarz
COMPLEX for clarz
DOUBLE COMPLEX for zlarz
The value tau in the representation of H.
REAL for slarz
DOUBLE PRECISION for dlarz
COMPLEX for clarz
DOUBLE COMPLEX for zlarz
Array, DIMENSION (ldc,n).
On entry, the m-by-n matrix C.
INTEGER. The leading dimension of the array c.
ldc≥ max(1,m).
REAL for slarz
DOUBLE PRECISION for dlarz
COMPLEX for clarz
DOUBLE COMPLEX for zlarz
Workspace array, DIMENSION
(n) if side = 'L' or
(m) if side = 'R'.
On exit, C is overwritten by the matrix H*C if side = 'L', or C*H if side = 'R'.