LARZT - 5.2 English - 68552

AOCL API Guide (68552)

Document ID
68552
Release Date
2025-12-29
Version
5.2 English
template<typename T>
void larzt(char *direct, char *storev, integer *n, integer *k, T *v, integer *ldv, T *tau, T *t, integer *ldt)#

LARZT forms the triangular factor T of a block reflector H = I - vtvH.

Purpose:

 LARZT 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

 Currently, only STOREV = 'R' and DIRECT = 'B' are supported.
Parameters:
  • DIRECT[in]

    DIRECT is CHARACTER*1

    Specifies the order in which the elementary reflectors are multiplied to form the block reflector:

    = ‘F’: H = H(1) H(2) … H(k) (Forward, not supported yet)

    = ‘B’: H = H(k) … H(2) H(1) (Backward)

  • STOREV[in]

    STOREV is CHARACTER*1

    Specifies how the vectors which define the elementary reflectors are stored (see also Further Details):

    = ‘C’: columnwise (not supported yet)

    = ‘R’: rowwise

  • N[in]

    N is INTEGER

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

  • K[in]

    K is INTEGER

    The order of the triangular factor T (= the number of elementary reflectors). K >= 1.

  • V[inout]

    V is REAL array, dimension

    (LDV,K) if STOREV = ‘C’

    (LDV,N) if STOREV = ‘R’

    The matrix V. See further details.

  • LDV[in]

    LDV is INTEGER

    The leading dimension of the array V. If STOREV = ‘C’, LDV >= fla_max(1,N); if STOREV = ‘R’, LDV >= K.

  • TAU[in]

    TAU is REAL array, dimension (K)

    TAU(i) must contain the scalar factor of the elementary reflector H(i).

  • T[out]

    T is REAL array, dimension (LDT,K)

    The k by k triangular factor T of the block reflector. If DIRECT = ‘F’, T is upper triangular; if DIRECT = ‘B’, T is lower triangular. The rest of the array is not used.

  • LDT[in]

    LDT is INTEGER

    The leading dimension of the array T. LDT >= K.