Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?larf
Applies an elementary reflector to a general rectangular matrix.
Syntax
call slarf ( side , m , n , v , incv , tau , c , ldc , work )
call dlarf ( side , m , n , v , incv , tau , c , ldc , work )
call clarf ( side , m , n , v , incv , tau , c , ldc , work )
call zlarf ( side , m , n , v , incv , tau , c , ldc , work )
Include Files
mkl.fi
Description
slarf dlarf clarf zlarf
The routine 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 one of the following forms:
H = I - tau*v*v^{T} where tau is a real scalar and v is a real vector. If tau = 0 , then H is taken to be the unit matrix. H = I - tau*v*v^{H} where tau is a complex scalar and v is a complex vector. If tau = 0 , then H is taken to be the unit matrix. For clarf / zlarf , to apply H:code:`H` (the conjugate transpose of H ), supply conjg( tau ) instead of tau .
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 .
- v
-
REAL for slarf DOUBLE PRECISION for dlarf COMPLEX for clarf DOUBLE COMPLEX for zlarf Array, DIMENSION (1 + (m-1)*abs(incv)) if side = 'L' or (1 + (n-1)*abs(incv)) if side = 'R' . The vector v in the representation of H . v is not used if tau = 0.
- incv
-
INTEGER . The increment between elements of v . incv≠ 0 .
- tau
-
REAL for slarf DOUBLE PRECISION for dlarf COMPLEX for clarf DOUBLE COMPLEX for zlarf The value tau in the representation of H .
- c
-
REAL for slarf DOUBLE PRECISION for dlarf COMPLEX for clarf DOUBLE COMPLEX for zlarf 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 slarf DOUBLE PRECISION for dlarf COMPLEX for clarf DOUBLE COMPLEX for zlarf 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' .