Developer Reference

  • 2021.1
  • 12/04/2020
  • Public Content
Contents

?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
?larfb
apply a real block reflector
H
or its transpose
H
T
to a real
m
-by-
n
matrix
C
from either left or right.
The complex flavors of the routine
?larfb
apply a complex block reflector
H
or its conjugate transpose
H
H
to a complex
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
side
=
'L'
: apply
H
or
H
T
for real flavors and
H
or
H
H
for complex flavors from the left.
If
side
=
'R'
: apply
H
or
H
T
for real flavors and
H
or
H
H
for complex flavors from the right.
trans
If
trans
=
'N'
: apply
H
(No transpose).
If
trans
=
'C'
: apply
H
H
(Conjugate transpose).
If
trans
=
'T'
: apply
H
T
(Transpose).
direct
Indicates how
H
is formed from a product of elementary reflectors
If
direct
=
'F'
:
H
=
H
(1)*H(2)*. . . *
H
(
k
)
(forward)
If
direct
=
'B'
:
H
=
H
(
k
)* . . .
H
(2)*
H
(1)
(backward)
storev
Indicates how the vectors which define the elementary reflectors are stored:
If
storev
=
'C'
: Column-wise
If
storev
=
'R'
: Row-wise
m
The number of rows of the matrix
C
.
n
The number of columns of the matrix
C
.
k
The order of the matrix
T
(equal to the number of elementary reflectors whose product defines the block reflector).
v
The size limitations depend on values of parameters
storev
and
side
as described in the following table:
storev
=
C
storev
=
R
side
=
L
side
=
R
side
=
L
side
=
R
Column major
max(1,
ldv
*
k
)
max(1,
ldv
*
k
)
max(1,
ldv
*
m
)
max(1,
ldv
*
n
)
Row major
max(1,
ldv
*
m
)
max(1,
ldv
*
n
)
max(1,
ldv
*
k
)
max(1,
ldv
*
k
)
The matrix
v
.
See
Application Notes
below.
ldv
The leading dimension of the array
v
.It should satisfy the following conditions:
storev
=
C
storev
=
R
side
=
L
side
=
R
side
=
L
side
=
R
Column major
max(1,
m
)
max(1,
n
)
max(1,
k
)
max(1,
k
)
Row major
max(1,
k
)
max(1,
k
)
max(1,
m
)
max(1,
n
)
t
Array, size
at least max(1,
ldt
*
k
)
.
Contains the triangular
k
-by-
k
matrix
T
in the representation of the block reflector.
ldt
The leading dimension of the array
t
.
ldt
k
.
c
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
.
ldc
max(1,
m
)
for column major layout and
ldc
max(1,
n
)
for row major layout
.
Output Parameters
c
On exit,
c
is overwritten by the product of the following:
  • H
    *
    C,
    or
    H
    T
    *
    C,
    or
    C
    *
    H,
    or
    C
    *
    H
    T
    for real flavors
  • H
    *
    C,
    or
    H
    H
    *
    C,
    or
    C
    *
    H,
    or
    C
    *
    H
    H
    for complex flavors
Return Values
This function returns a value
info
.
If
info
= 0
, the execution is successful.
If
info
=
-i
, the
i
-th parameter had an illegal value.
If
info
= -1011
, memory allocation error occurred.
Application Notes
The shape of the matrix
V
and the storage of the vectors which define the
H
(
i
) is best illustrated by the following example with
n
= 5
and
k
= 3
. 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.
Equation
Equation

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.