larft#

Functions

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

SLARFT forms the triangular factor T of a real 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**T

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**T * T * V

Uses the recursive Elmroth-Gustavson algorithm.

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 dlarft(
    const char*          direct,
    const char*          storev,
    const INT            n,
    const INT            k,
    const f64*  restrict V,
    const INT            ldv,
    const f64*  restrict tau,
          f64*  restrict T,
    const INT            ldt
);
void dlarft(const char *direct, const char *storev, const INT n, const INT k, const f64 *restrict V, const INT ldv, const f64 *restrict tau, f64 *restrict T, const INT ldt)#

DLARFT forms the triangular factor T of a real 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**T

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**T * T * V

Uses the recursive Elmroth-Gustavson algorithm.

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 clarft(
    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(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 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

Uses the recursive Elmroth-Gustavson algorithm.

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(
    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(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 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

Uses the recursive Elmroth-Gustavson algorithm.

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.