larfb#

Functions

void slarfb(
    const char*          side,
    const char*          trans,
    const char*          direct,
    const char*          storev,
    const INT            m,
    const INT            n,
    const INT            k,
    const f32*  restrict V,
    const INT            ldv,
    const f32*  restrict T,
    const INT            ldt,
          f32*  restrict C,
    const INT            ldc,
          f32*  restrict work,
    const INT            ldwork
);
void slarfb(const char *side, const char *trans, const char *direct, const char *storev, const INT m, const INT n, const INT k, const f32 *restrict V, const INT ldv, const f32 *restrict T, const INT ldt, f32 *restrict C, const INT ldc, f32 *restrict work, const INT ldwork)#

SLARFB applies a real block reflector H or its transpose H**T to a real m by n matrix C, from either the left or the right.

Parameters

in
side

‘L’: apply from left; ‘R’: apply from right.

in
trans

‘N’: apply H; ‘T’: apply H**T.

in
direct

‘F’: H = H(1)H(2)…H(k) (Forward); ‘B’: H = H(k)…H(2)H(1) (Backward).

in
storev

‘C’: columnwise; ‘R’: rowwise.

in
m

Number of rows of C.

in
n

Number of columns of C.

in
k

Number of elementary reflectors.

in
V

Reflector matrix.

in
ldv

Leading dimension of V.

in
T

k-by-k triangular factor.

in
ldt

Leading dimension of T. ldt >= k.

inout
C

m-by-n matrix. Overwritten on exit.

in
ldc

Leading dimension of C. ldc >= max(1, m).

out
work

Workspace, dimension (ldwork, k).

in
ldwork

Leading dimension of work. ldwork >= max(1, n) if side=’L’; ldwork >= max(1, m) if side=’R’.

Functions

void dlarfb(
    const char*          side,
    const char*          trans,
    const char*          direct,
    const char*          storev,
    const INT            m,
    const INT            n,
    const INT            k,
    const f64*  restrict V,
    const INT            ldv,
    const f64*  restrict T,
    const INT            ldt,
          f64*  restrict C,
    const INT            ldc,
          f64*  restrict work,
    const INT            ldwork
);
void dlarfb(const char *side, const char *trans, const char *direct, const char *storev, const INT m, const INT n, const INT k, const f64 *restrict V, const INT ldv, const f64 *restrict T, const INT ldt, f64 *restrict C, const INT ldc, f64 *restrict work, const INT ldwork)#

DLARFB applies a real block reflector H or its transpose H**T to a real m by n matrix C, from either the left or the right.

Parameters

in
side

‘L’: apply from left; ‘R’: apply from right.

in
trans

‘N’: apply H; ‘T’: apply H**T.

in
direct

‘F’: H = H(1)H(2)…H(k) (Forward); ‘B’: H = H(k)…H(2)H(1) (Backward).

in
storev

‘C’: columnwise; ‘R’: rowwise.

in
m

Number of rows of C.

in
n

Number of columns of C.

in
k

Number of elementary reflectors.

in
V

Reflector matrix.

in
ldv

Leading dimension of V.

in
T

k-by-k triangular factor.

in
ldt

Leading dimension of T. ldt >= k.

inout
C

m-by-n matrix. Overwritten on exit.

in
ldc

Leading dimension of C. ldc >= max(1, m).

out
work

Workspace, dimension (ldwork, k).

in
ldwork

Leading dimension of work. ldwork >= max(1, n) if side=’L’; ldwork >= max(1, m) if side=’R’.

Functions

void clarfb(
    const char*          side,
    const char*          trans,
    const char*          direct,
    const char*          storev,
    const INT            m,
    const INT            n,
    const INT            k,
    const c64*  restrict V,
    const INT            ldv,
    const c64*  restrict T,
    const INT            ldt,
          c64*  restrict C,
    const INT            ldc,
          c64*  restrict work,
    const INT            ldwork
);
void clarfb(const char *side, const char *trans, const char *direct, const char *storev, const INT m, const INT n, const INT k, const c64 *restrict V, const INT ldv, const c64 *restrict T, const INT ldt, c64 *restrict C, const INT ldc, c64 *restrict work, const INT ldwork)#

CLARFB applies a complex block reflector H or its conjugate transpose H**H to a complex m by n matrix C, from either the left or the right.

Parameters

in
side

‘L’: apply from left; ‘R’: apply from right.

in
trans

‘N’: apply H; ‘C’: apply H**H.

in
direct

‘F’: H = H(1)H(2)…H(k) (Forward); ‘B’: H = H(k)…H(2)H(1) (Backward).

in
storev

‘C’: columnwise; ‘R’: rowwise.

in
m

Number of rows of C.

in
n

Number of columns of C.

in
k

Number of elementary reflectors.

in
V

Reflector matrix.

in
ldv

Leading dimension of V.

in
T

k-by-k triangular factor.

in
ldt

Leading dimension of T. ldt >= k.

inout
C

m-by-n matrix. Overwritten on exit.

in
ldc

Leading dimension of C. ldc >= max(1, m).

out
work

Workspace, dimension (ldwork, k).

in
ldwork

Leading dimension of work. ldwork >= max(1, n) if side=’L’; ldwork >= max(1, m) if side=’R’.

Functions

void zlarfb(
    const char*          side,
    const char*          trans,
    const char*          direct,
    const char*          storev,
    const INT            m,
    const INT            n,
    const INT            k,
    const c128* restrict V,
    const INT            ldv,
    const c128* restrict T,
    const INT            ldt,
          c128* restrict C,
    const INT            ldc,
          c128* restrict work,
    const INT            ldwork
);
void zlarfb(const char *side, const char *trans, const char *direct, const char *storev, const INT m, const INT n, const INT k, const c128 *restrict V, const INT ldv, const c128 *restrict T, const INT ldt, c128 *restrict C, const INT ldc, c128 *restrict work, const INT ldwork)#

ZLARFB applies a complex block reflector H or its conjugate transpose H**H to a complex m by n matrix C, from either the left or the right.

Parameters

in
side

‘L’: apply from left; ‘R’: apply from right.

in
trans

‘N’: apply H; ‘C’: apply H**H.

in
direct

‘F’: H = H(1)H(2)…H(k) (Forward); ‘B’: H = H(k)…H(2)H(1) (Backward).

in
storev

‘C’: columnwise; ‘R’: rowwise.

in
m

Number of rows of C.

in
n

Number of columns of C.

in
k

Number of elementary reflectors.

in
V

Reflector matrix.

in
ldv

Leading dimension of V.

in
T

k-by-k triangular factor.

in
ldt

Leading dimension of T. ldt >= k.

inout
C

m-by-n matrix. Overwritten on exit.

in
ldc

Leading dimension of C. ldc >= max(1, m).

out
work

Workspace, dimension (ldwork, k).

in
ldwork

Leading dimension of work. ldwork >= max(1, n) if side=’L’; ldwork >= max(1, m) if side=’R’.