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 bycgeqlf(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βMisINTEGER. 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βNisINTEGER. 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βKisINTEGER. The number of elementary reflectors whose product defines the matrix Q.N >= K >= 0. Sandwich constraint, love that for her πAβAis aCOMPLEXarray, dimension(LDA,N). On entry, the(n-k+i)-th column must contain the vector which defines the elementary reflectorH(i), fori = 1,2,...,k, as returned byCGEQLFin the lastkcolumns of its array argumentA. 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βLDAisINTEGER. The first dimension of the arrayA.LDA >= max(1,M). Don't forget themax(1,...)bestie, she's not decorative π₯TAUβTAUis aCOMPLEXarray, dimension(K).TAU(i)must contain the scalar factor of the elementary reflectorH(i), as returned byCGEQLF. Keep her safe and correct or nothing works πWORKβWORKis aCOMPLEXarray, dimension(N). That's it. That's the whole description. She's a workspace, she works, she leaves. Respect ππ«ΆINFOβINFOisINTEGER, and here's the tea π:= 0: successful exit β we love a happy ending π< 0: ifINFO = -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
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms