larft_lvl2#

Functions

void clarft_lvl2(
    const char*          direct,
    const char*          storev,
    const INT            n,
    const INT            k,
    const c64*  restrict V,
    const INT            ldv,
    const c64*  restrict tau,
          c64*  restrict T,
    const INT            ldt
);
void clarft_lvl2(const char *direct, const char *storev, const INT n, const INT k, const c64 *restrict V, const INT ldv, const c64 *restrict tau, c64 *restrict T, const INT ldt)#

CLARFT_LVL2 forms the triangular factor T of a complex block reflector H of order n, which is defined as a product of k elementary reflectors.

If DIRECT = ‘F’, H = H(1) H(2) … H(k) and T is upper triangular; If DIRECT = ‘B’, H = H(k) … H(2) H(1) and T is lower triangular.

If STOREV = ‘C’, the vector which defines the elementary reflector H(i) is stored in the i-th column of the array V, and H = I - V * T * V**H

If STOREV = ‘R’, the vector which defines the elementary reflector H(i) is stored in the i-th row of the array V, and H = I - V**H * T * V

Parameters

in
direct

‘F’: Forward; ‘B’: Backward.

in
storev

‘C’: Columnwise; ‘R’: Rowwise.

in
n

The order of the block reflector H. n >= 0.

in
k

The order of T (number of reflectors). k >= 1.

in
V

The matrix V containing reflector vectors. Dimension (ldv, k) if storev=’C’, (ldv, n) if storev=’R’.

in
ldv

Leading dimension of V.

in
tau

Array of dimension k. Scalar factors of reflectors.

out
T

The k-by-k triangular factor T. Dimension (ldt, k).

in
ldt

Leading dimension of T. ldt >= k.

Functions

void zlarft_lvl2(
    const char*          direct,
    const char*          storev,
    const INT            n,
    const INT            k,
    const c128* restrict V,
    const INT            ldv,
    const c128* restrict tau,
          c128* restrict T,
    const INT            ldt
);
void zlarft_lvl2(const char *direct, const char *storev, const INT n, const INT k, const c128 *restrict V, const INT ldv, const c128 *restrict tau, c128 *restrict T, const INT ldt)#

ZLARFT_LVL2 forms the triangular factor T of a complex block reflector H of order n, which is defined as a product of k elementary reflectors.

If DIRECT = ‘F’, H = H(1) H(2) … H(k) and T is upper triangular; If DIRECT = ‘B’, H = H(k) … H(2) H(1) and T is lower triangular.

If STOREV = ‘C’, the vector which defines the elementary reflector H(i) is stored in the i-th column of the array V, and H = I - V * T * V**H

If STOREV = ‘R’, the vector which defines the elementary reflector H(i) is stored in the i-th row of the array V, and H = I - V**H * T * V

Parameters

in
direct

‘F’: Forward; ‘B’: Backward.

in
storev

‘C’: Columnwise; ‘R’: Rowwise.

in
n

The order of the block reflector H. n >= 0.

in
k

The order of T (number of reflectors). k >= 1.

in
V

The matrix V containing reflector vectors. Dimension (ldv, k) if storev=’C’, (ldv, n) if storev=’R’.

in
ldv

Leading dimension of V.

in
tau

Array of dimension k. Scalar factors of reflectors.

out
T

The k-by-k triangular factor T. Dimension (ldt, k).

in
ldt

Leading dimension of T. ldt >= k.