ZLARZT(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

🌸 NAME 🌸

okay so bestie, welcome to the Library Functions Manual πŸ’– β€” this whole page is literally all about /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zlarzt.f, which is the source file for ZLARZT, and yeah the manpage NAME section is just that path, no cap 🫢


✨ SYNOPSIS ✨

🫢 Functions/Subroutines

  • subroutine ZLARZT (direct, storev, n, k, v, ldv, tau, t, ldt) β€” ZLARZT forms the triangular factor T of a block reflector H = I - vtvH. it's giving linear algebra main character energy πŸ”₯

πŸ’– Function/Subroutine Documentation πŸ’–

here's the full signature, copy it exactly bestie, no typos allowed:

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

ZLARZT forms the triangular factor T of a block reflector H = I - vtvH. that's the whole vibe ✨

🎯 Purpose

ZLARZT 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 * VH 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 - VH * T * V Currently, only STOREV = 'R' and DIRECT = 'B' are supported.
⚠️ okay so real talk β€” only STOREV = 'R' and DIRECT = 'B' actually work right now. everything else is a someday-maybe. don't come for me, I don't make the rules πŸ’€

🧚 Parameters

  • DIRECT β€” is CHARACTER*1. it decides the order the elementary reflectors get multiplied in to build the block reflector, periodt:
    • = 'F': H = H(1) H(2) . . . H(k) β€” that's Forward, and ngl it's not supported yet πŸ™ˆ
    • = 'B': H = H(k) . . . H(2) H(1) β€” that's Backward, and this one ate πŸ‘‘
  • STOREV β€” is CHARACTER*1. it says how the vectors defining the elementary reflectors are stored (peep Further Details too, iykyk):
    • = 'C': columnwise β€” not supported yet 😭
    • = 'R': rowwise β€” yes bestie, this is the one 🌈
  • N β€” is INTEGER. the order of the block reflector H. constraint: N >= 0. πŸŽ€
  • K β€” is INTEGER. the order of the triangular factor T β€” which is literally the number of elementary reflectors. constraint: K >= 1. ⭐
  • V β€” is COMPLEX*16 array, dimension
    • (LDV,K) if STOREV = 'C'
    • (LDV,N) if STOREV = 'R'

it's the matrix V, see further details below πŸ‘‡ πŸ’œ

  • LDV β€” is INTEGER. the leading dimension of the array V. so: if STOREV = 'C', then LDV >= max(1,N); if STOREV = 'R', then LDV >= K. πŸ’…
  • TAU β€” is COMPLEX*16 array, dimension (K). TAU(i) must contain the scalar factor of the elementary reflector H(i). no skipping, every single i πŸ“
  • T β€” is COMPLEX*16 array, dimension (LDT,K). this is 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. and the rest of the array? not used. ignored. irrelevant. πŸ’€
  • LDT β€” is INTEGER. the leading dimension of the array T. constraint: 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.

okay this diagram is genuinely iconic, stare at it until it makes sense bestie 🧚✨

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 zlarzt.f.


πŸ’œ Author πŸ’œ

this page was Generated automatically by Doxygen for LAPACK from the source code. so like, a robot wrote it, but I rewrote it with taste πŸ’…


and that's the whole page, bestie! πŸŽ€ this was LAPACK, Version 3.12.0, and the page itself lives at /home/abui...RC/zlarzt.f(3) β€” go forth and form those triangular factors, you absolute icon πŸ‘‘πŸ’–βœ¨

πŸ“¦ where this page comes from