?larfx
?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: - , whereH=I-tau*v*vTtauis a real scalar and v is a real vector.
- , whereH=I-tau*v*vHtauis a complex scalar and v is a complex vector.
If , then
tau
= 0H
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: formside='L'H*CIf: formside='R'.C*H
- m
- The number of rows of the matrixC.
- n
- The number of columns of the matrixC.
- v
- Array, size(m) iforside='L'(n) if.side='R'The vectorvin the representation ofH.
- tau
- The valuetauin the representation ofH.
- c
- Array, sizeat least max(1,. On entry, theldc*n) for column major layout and max (1,ldc*m) for row major layoutm-by-nmatrixC.
- ldc
- The leading dimension of the arrayc.lda≥(1,m).
- work
- Workspace array, size(n) iforside='L'(m) if.side='R'workis not referenced ifHhas order < 11.
Output Parameters
- c
- On exit,Cis overwritten by the matrixifH*C, orside='L'ifC*H.side='R'