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
slarz dlarz clarz zlarz
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 H:code:`H` (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' .