Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?larz
Applies an elementary reflector (as returned by ?tzrzf ) to a general matrix.
Syntax
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)
Include Files
mkl.fi
Description
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*v^{T} for real flavors and H = I-tau*v*v^{H} 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 .
Input Parameters
- side
-
CHARACTER*1 . If side = 'L' : form H * C If side = 'R' : form C * H
- m
-
INTEGER . The number of rows of the matrix C .
- n
-
INTEGER . The number of columns of the matrix C .
- l
-
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 .
- v
-
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 .
- incv
-
INTEGER . The increment between elements of v . incv≠ 0 .
- tau
-
REAL for slarz DOUBLE PRECISION for dlarz COMPLEX for clarz DOUBLE COMPLEX for zlarz The value tau in the representation of H .
- c
-
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 .
- ldc
-
INTEGER . The leading dimension of the array c . ldc≥ max(1,m) .
- work
-
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' .
Output Parameters
- c
-
On exit, C is overwritten by the matrix H * C if side = 'L' , or C * H if side = 'R' .