Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?larfx
Applies an elementary reflector to a general rectangular matrix, with loop unrolling when the reflector has order less than or equal to 10.
Syntax
call slarfx(side, m, n, v, tau, c, ldc, work)
call dlarfx(side, m, n, v, tau, c, ldc, work)
call clarfx(side, m, n, v, tau, c, ldc, work)
call zlarfx(side, m, n, v, tau, c, ldc, work)
Include Files
mkl.fi
Description
The routine ?larfx 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 following forms:
H = I - tau*v*v^{T} , where tau is a real scalar and v is a real vector. 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.
Input Parameters
The data types are given for the Fortran interface.
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 slarfx DOUBLE PRECISION for dlarfx COMPLEX for clarfx DOUBLE COMPLEX for zlarfx Array, size ( m ) if side = 'L' or ( n ) if side = 'R' . The vector v in the representation of H .
- tau
-
REAL for slarfx DOUBLE PRECISION for dlarfx COMPLEX for clarfx DOUBLE COMPLEX for zlarfx The value tau in the representation of H .
- c
-
REAL for slarfx DOUBLE PRECISION for dlarfx COMPLEX for clarfx DOUBLE COMPLEX for zlarfx
Array, size ldc by n . On entry, the m -by- n matrix C .
ldc
INTEGER . The leading dimension of the array c . lda ≥ (1, m ).
- work
-
REAL for slarfx DOUBLE PRECISION for dlarfx COMPLEX for clarfx DOUBLE COMPLEX for zlarfx Workspace array, size ( n ) if side = 'L' or ( m ) if side = 'R' . work is not referenced if H has order < 11.
Output Parameters
- c
-
On exit, C is overwritten by the matrix H*C if side = 'L' , or C*H if side = 'R' .