(S|D|C|Z)LARFB¶
Single, double, single complex, and double complex LARFB.
Description¶
Applies a block reflector to a rectangular matrix from the left or right.
If SIDE is ‘L’,

If SIDE is ‘R’,

If TRANS is ‘T’ then
is used. If TRANS is ‘C’ then
is used.
The block reflector matrix is formed as a product of elementary reflectors. When DIRECT is ‘F’:

When DIRECT is ‘B’:

The vectors that define each elementary reflector are stored either as rows or columns of a matrix V depending on STOREV.
LAPACK Interface¶
void slarfb(const char *SIDE, const char *TRANS, const char *DIRECT, const char *STOREV,
const qml_long *M, const qml_long *N, const qml_long *K, const float *V,
const qml_long *LDV, const float *T, const qml_long *LDT, float *C,
const qml_long *LDC, float *WORK, const qml_long *LDWORK);
void dlarfb(const char *SIDE, const char *TRANS, const char *DIRECT, const char *STOREV,
const qml_long *M, const qml_long *N, const qml_long *K, const double *V,
const qml_long *LDV, const double *T, const qml_long *LDT, double *C,
const qml_long *LDC, double *WORK, const qml_long *LDWORK);
void clarfb(const char *SIDE, const char *TRANS, const char *DIRECT, const char *STOREV,
const qml_long *M, const qml_long *N, const qml_long *K,
const qml_single_complex *V, const qml_long *LDV, const qml_single_complex *T,
const qml_long *LDT, qml_single_complex *C, const qml_long *LDC,
qml_single_complex *WORK, const qml_long *LDWORK);
void zlarfb(const char *SIDE, const char *TRANS, const char *DIRECT, const char *STOREV,
const qml_long *M, const qml_long *N, const qml_long *K,
const qml_double_complex *V, const qml_long *LDV, const qml_double_complex *T,
const qml_long *LDT, qml_double_complex *C, const qml_long *LDC,
qml_double_complex *WORK, const qml_long *LDWORK);
Arguments¶
| SIDE | Which side to mulplify reflector from, ‘L’ or ‘R’ |
| TRANS | Whether to transpose reflector matrix, ‘N’, ‘T’, or ‘C’ |
| DIRECT | Direction to apply elementary reflectors |
| STOREV | Storage format of elementary reflector vectors |
| M | Number of rows of C |
| N | Number of columns of C |
| K | The number of elementary reflectors in the block |
| V | Matrix storing reflector vectors |
| LDV | Leading dimension of V |
| T | Triangular K x K matrix storing reflectors |
| LDT | Leading dimension of T |
| C | Matrix of size M x N |
| LDC | Leading dimension of C |
| WORK | Work space matrix of size at least N x K if SIDE is ‘L’, or M x K if SIDE is ‘R’ |
| LDWORK | Leading dimension of WORK matrix |