?larfb
?larfb
Applies a block reflector or its transpose/conjugate-transpose to a general rectangular matrix.
Syntax
lapack_int
LAPACKE_slarfb
(
int
matrix_layout
,
char
side
,
char
trans
,
char
direct
,
char
storev
,
lapack_int
m
,
lapack_int
n
,
lapack_int
k
,
const
float
*
v
,
lapack_int
ldv
,
const
float
*
t
,
lapack_int
ldt
,
float
*
c
,
lapack_int
ldc
);
lapack_int
LAPACKE_dlarfb
(
int
matrix_layout
,
char
side
,
char
trans
,
char
direct
,
char
storev
,
lapack_int
m
,
lapack_int
n
,
lapack_int
k
,
const
double
*
v
,
lapack_int
ldv
,
const
double
*
t
,
lapack_int
ldt
,
double
*
c
,
lapack_int
ldc
);
lapack_int
LAPACKE_clarfb
(
int
matrix_layout
,
char
side
,
char
trans
,
char
direct
,
char
storev
,
lapack_int
m
,
lapack_int
n
,
lapack_int
k
,
const
lapack_complex_float
*
v
,
lapack_int
ldv
,
const
lapack_complex_float
*
t
,
lapack_int
ldt
,
lapack_complex_float
*
c
,
lapack_int
ldc
);
lapack_int
LAPACKE_zlarfb
(
int
matrix_layout
,
char
side
,
char
trans
,
char
direct
,
char
storev
,
lapack_int
m
,
lapack_int
n
,
lapack_int
k
,
const
lapack_complex_double
*
v
,
lapack_int
ldv
,
const
lapack_complex_double
*
t
,
lapack_int
ldt
,
lapack_complex_double
*
c
,
lapack_int
ldc
);
Include Files
- mkl.h
Description
The real flavors of the routine to a real
?larfb
apply a real block reflector H
or its transpose H
T
m
-by-n
matrix C
from either left or right.The complex flavors of the routine to a complex
?larfb
apply a complex block reflector H
or its conjugate transpose H
H
m
-by-n
matrix C
from either left or right.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: applyside='L'HorHfor real flavors andTHorHfor complex flavors from the left.HIf: applyside='R'HorHfor real flavors andTHorHfor complex flavors from the right.H
- trans
- If: applytrans='N'H(No transpose).If: applytrans='C'H(Conjugate transpose).HIf: applytrans='T'H(Transpose).T
- direct
- Indicates howHis formed from a product of elementary reflectorsIf:direct='F'(forward)H=H(1)*H(2)*. . . *H(k)If:direct='B'(backward)H=H(k)* . . .H(2)*H(1)
- storev
- Indicates how the vectors which define the elementary reflectors are stored:If: Column-wisestorev='C'If: Row-wisestorev='R'
- m
- The number of rows of the matrixC.
- n
- The number of columns of the matrixC.
- k
- The order of the matrixT(equal to the number of elementary reflectors whose product defines the block reflector).
- v
- The size limitations depend on values of parametersstorevandsideas described in the following table:storev=Cstorev=Rside=Lside=Rside=Lside=RColumn majormax(1,ldv*k)max(1,ldv*k)max(1,ldv*m)max(1,ldv*n)Row majormax(1,ldv*m)max(1,ldv*n)max(1,ldv*k)max(1,ldv*k)The matrixv.SeeApplication Notesbelow.
- ldv
- The leading dimension of the arrayv.It should satisfy the following conditions:storev=Cstorev=Rside=Lside=Rside=Lside=RColumn majormax(1,m)max(1,n)max(1,k)max(1,k)Row majormax(1,k)max(1,k)max(1,m)max(1,n)
- t
- Array, sizeat least max(1,.ldt*k)Contains the triangulark-by-kmatrixTin the representation of the block reflector.
- ldt
- The leading dimension of the arrayt..ldt≥k
- c
- Array, sizeat least max(1,.ldc*n) for column major layout and max(1,ldc*m) for row major layoutOn entry, them-by-nmatrixC.
- ldc
- The leading dimension of the arrayc.ldc≥max(1,m)for column major layout and.for row major layoutldc≥max(1,n)
Output Parameters
- c
- On exit,cis overwritten by the product of the following:
- H*C,orH*TC,orC*H,orC*Hfor real flavorsT
- H*C,orH*HC,orC*H,orC*Hfor complex flavorsH
Return Values
This function returns a value
info
.If , the execution is successful.
info
= 0If , the
info
= -i
i
-th parameter had an illegal value.If
, memory allocation error occurred.info
= -1011Application Notes
The shape of the matrix and . The elements equal to 1 are not stored; the corresponding array elements are modified but restored on exit. The rest of the array is not
used.
V
and the storage of the vectors which define the H
(i
) is best illustrated by the following example with n
= 5k
= 3
