SRC/clarzt.f(3)

πŸ’… SRC/clarzt.f(3) β€” Library Functions Manual πŸ’…

okay bestie, buckle up: this is the page for clarzt, and it’s lowkey all about building the triangular factor T of a block reflector. no cap, it’s giving linear-algebra main character energy. ✨

🌸 NAME 🌸

  • SRC/clarzt.f β€” that’s the page name, periodt.

✨ SYNOPSIS ✨

Functions/Subroutines

subroutine clarzt (direct, storev, n, k, v, ldv, tau, t, ldt)

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

πŸ¦‹ Function/Subroutine Documentation πŸ¦‹

subroutine clarzt (character direct, character storev, integer n, integer k, complex, dimension( ldv, * ) v, integer ldv, complex, dimension( * ) tau, complex, dimension( ldt, * ) t, integer ldt)

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

πŸŽ€ Purpose πŸŽ€

So basically, CLARZT forms the triangular factor T of a complex block reflector H of order > n, and that reflector is defined as a product of k elementary reflectors. iconic.

If DIRECT = 'F', then H = H(1) H(2) . . . H(k) and T is upper triangular.

If DIRECT = 'B', then 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
Currently, only STOREV = 'R' and DIRECT = 'B' are supported. bestie, that’s the vibe check: don’t come in here expecting the other combos yet. πŸ’€

🧸 Parameters 🧸

DIRECT

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

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

N is INTEGER

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

K

K is INTEGER

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

V

V is COMPLEX array, dimension

(LDV,K) if STOREV = 'C'
(LDV,N) if STOREV = 'R'

The matrix V. See further details.

LDV

LDV is INTEGER

The leading dimension of the array V.

If STOREV = 'C', LDV >= max(1,N); if STOREV = 'R', LDV >= K.

TAU

TAU is COMPLEX array, dimension (K)

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

T

T is COMPLEX 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

LDT is INTEGER

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

πŸ‘‘ Author πŸ‘‘

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

🫢 Contributors 🫢

A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA

🌈 Further Details 🌈

The shape of the matrix V and the storage of the vectors which define the H(i) is best illustrated by the following example with n = 5 and k = 3. The elements equal to 1 are not stored; the corresponding array elements are modified but restored on exit. The rest of the array is not used.

!>  DIRECT = 'F' and STOREV = 'C':         DIRECT = 'F' and STOREV = 'R':
!>
!>                                              ______V_____
!>         ( v1 v2 v3 )                        /            \
!>         ( v1 v2 v3 )                      ( v1 v1 v1 v1 v1 . . . . 1 )
!>     V = ( v1 v2 v3 )                      ( v2 v2 v2 v2 v2 . . . 1   )
!>         ( v1 v2 v3 )                      ( v3 v3 v3 v3 v3 . . 1     )
!>         ( v1 v2 v3 )
!>            .  .  .
!>            .  .  .
!>            1  .  .
!>               1  .
!>                  1
!>
!>  DIRECT = 'B' and STOREV = 'C':         DIRECT = 'B' and STOREV = 'R':
!>
!>                                                        ______V_____
!>            1                                          /            \
!>            .  1                           ( 1 . . . . v1 v1 v1 v1 v1 )
!>            .  .  1                        ( . 1 . . . v2 v2 v2 v2 v2 )
!>            .  .  .                        ( . . 1 . . v3 v3 v3 v3 v3 )
!>            .  .  .
!>         ( v1 v2 v3 )
!>         ( v1 v2 v3 )
!>     V = ( v1 v2 v3 )
!>         ( v1 v2 v3 )
!>         ( v1 v2 v3 )
!>

Definition at line 184 of file clarzt.f.

πŸ“œ Author πŸ“œ

Generated automatically by Doxygen for LAPACK from the source code.


πŸ’– that’s the whole SRC/clarzt.f(3) page, bestie. Source/version vibes: LAPACK Version 3.12.0; page source: SRC/clarzt.f(3). The original footer didn’t list a date, so I’m not inventing one β€” no cap. 🫢✨

πŸ“¦ where this page comes from