Developer Reference for Intel® oneAPI Math Kernel Library for C
?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
lapack_int LAPACKE_slarfx(int matrix_layout, char side, lapack_int m, lapack_int n,
const float *v, float tau, float *c, lapack_int ldc,
float *work);
lapack_int LAPACKE_dlarfx(int matrix_layout, char side, lapack_int m, lapack_int n,
const double *v, double tau, double *c, lapack_int ldc,
double *work);
lapack_int LAPACKE_clarfx(int matrix_layout, char side, lapack_int m, lapack_int n,
const lapack_complex_float *v, lapack_complex_float tau,
lapack_complex_float *c, lapack_int ldc,
lapack_complex_float *work);
lapack_int LAPACKE_zlarfx(int matrix_layout, char side, lapack_int m, lapack_int n,
const lapack_complex_double *v, lapack_complex_double tau,
lapack_complex_double *c, lapack_int ldc,
lapack_complex_double *work);
Include Files
mkl.h
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
A <datatype> placeholder, if present, is used for the C interface data types in the C interface section above. See C Interface Conventions for the C interface principal conventions and type definitions.
side
If side = 'L' : form H*C If side = 'R' : form C*H .
m
The number of rows of the matrix C .
n
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 at least max(1, ldc * n ) for column major layout and max (1, ldc * m ) for row major layout . On entry, the m -by- n matrix C .
ldc
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' .