SRC/cung2l.f(3)

πŸ’… SRC/cung2l.f β€” like, the whole entire manual page, bestie

Okay so real talk, this page is the docs for SRC/cung2l.f(3) from the LAPACK library manual, and it is literally about one (1) subroutine. One. And she's iconic for it. Let's get into it 🫢


✨ NAME ✨

SRC/cung2l.f β€” that's her. That's the file. That's the name. Short, sweet, slays πŸ’…


🌸 SYNOPSIS 🌸

Functions/Subroutines

  • subroutine cung2l (m, n, k, a, lda, tau, work, info) β€” CUNG2L generates all or part of the unitary matrix Q from a QL factorization determined by cgeqlf (unblocked algorithm).

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

subroutine cung2l (integer m, integer n, integer k, complex, dimension( lda, * ) a, integer lda, complex, dimension( * ) tau, complex, dimension( * ) work, integer info)

Full signature, verbatim, because we do not play fast and loose with signatures in this house:

subroutine cung2l (integer m, integer n, integer k, complex, dimension( lda,
* ) a, integer lda, complex, dimension( * ) tau, complex, dimension( * )
work, integer info)

CUNG2L generates all or part of the unitary matrix Q from a QL factorization determined by cgeqlf (unblocked algorithm). No cap 🧒


πŸŽ€ Purpose πŸŽ€

So here's the vibe: CUNG2L generates an m-by-n complex matrix Q with orthonormal columns. She is defined as the last n columns of a product of k elementary reflectors of order m β€” okay, slay, that's a mouthful, but the formula keeps it cute:

      Q  =  H(k) . . . H(2) H(1)

…just as returned by CGEQLF. Periodt. πŸ‘‘


πŸ’œ Parameters πŸ’œ

Buckle up bestie, here come all of them, in order, no skipping, no gatekeeping 🌈

  • M β€” M is INTEGER. The number of rows of the matrix Q. M >= 0. Like, at minimum zero, okay? Zero rows is legal. Zero rows is valid. Zero rows is still a matrix. πŸ™ˆ
  • N β€” N is INTEGER. The number of columns of the matrix Q. M >= N >= 0. So N can never outgrow M and can never dip below zero β€” it's a whole mood, honestly, very balanced, main character energy ⭐
  • K β€” K is INTEGER. The number of elementary reflectors whose product defines the matrix Q. N >= K >= 0. Sandwich constraint, love that for her πŸ’–
  • A β€” A is a COMPLEX array, dimension (LDA,N). On entry, the (n-k+i)-th column must contain the vector which defines the elementary reflector H(i), for i = 1,2,...,k, as returned by CGEQLF in the last k columns of its array argument A. On exit, it's the m-by-n matrix Q. Glow-up arc, honestly β€” she goes from "input vectors" to "the whole entire Q" πŸ¦‹βœ¨
  • LDA β€” LDA is INTEGER. The first dimension of the array A. LDA >= max(1,M). Don't forget the max(1,...) bestie, she's not decorative πŸ”₯
  • TAU β€” TAU is a COMPLEX array, dimension (K). TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by CGEQLF. Keep her safe and correct or nothing works 😭
  • WORK β€” WORK is a COMPLEX array, dimension (N). That's it. That's the whole description. She's a workspace, she works, she leaves. Respect πŸ‘‘πŸ«Ά
  • INFO β€” INFO is INTEGER, and here's the tea πŸ“:
    • = 0: successful exit β€” we love a happy ending πŸ’–
    • < 0: if INFO = -i, the i-th argument has an illegal value β€” oop, somebody passed something sus πŸ’€

🧚 Author 🧚

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

Okay legends only, honestly 🌟

FYI, this is also the Definition at line 113 of file cung2l.f. β€” clocked it, wrote it down, not skipping it, iykyk πŸ“Œ

πŸ“ Author (yes, another one, and yes, we're keeping it) πŸ“

Generated automatically by Doxygen for LAPACK from the source code. So technically the robot wrote this section and we're just vibing with it πŸ€–πŸ’…


And that's the whole page, bestie β€” nothing skipped, nothing summarised, every flag and bound and dimension intact. ✨

Little sign-off from me to you: this manual page came from LAPACK Version 3.12.0, and we're reading it as SRC/cung2l.f(3) β€” ty for coming to my TED talk, mwah πŸ’–πŸŽ€πŸŒˆ

πŸ“¦ where this page comes from