CUNM2L(3)
π CUNM2L (3) β like, the whole entire manual page, bestie
okay so real talk: this page lives at /home/abui...RC/cunm2l.f(3) and it's part of the LAPACK Library Functions Manual. yes, the LAPACK. the icon behavior. let's get into it π«Ά
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/cunm2l.f
that's the file, that's the whole name section, she's just a girl standing in front of a build path asking you to love her π (it's the Fortran source for CUNM2L, iykyk)
πΈ SYNOPSIS πΈ
Functions/Subroutines
subroutine CUNM2L (side, trans, m, n, k, a, lda, tau, c, ldc, work,
info)
CUNM2L multiplies a general matrix by the unitary matrix from a QL factorization determined by cgeqlf (unblocked algorithm). lowkey the whole plot right there β¨
π¦ Function/Subroutine Documentation π¦
subroutine CUNM2L (character side, character trans, integer m, integer n,
integer k, complex, dimension( lda, * ) a, integer lda, complex,
dimension( * ) tau, complex, dimension( ldc, * ) c, integer ldc,
complex, dimension( * ) work, integer info)
CUNM2L multiplies a general matrix by the unitary matrix from a QL factorization determined by cgeqlf (unblocked algorithm). no cap, that's the summary, and she's serving it twice because she can π
π Purpose π
!> !> CUNM2L overwrites the general complex m-by-n matrix C with !> !> Q * C if SIDE = 'L' and TRANS = 'N', or !> !> QH* C if SIDE = 'L' and TRANS = 'C', or !> !> C * Q if SIDE = 'R' and TRANS = 'N', or !> !> C * QH if SIDE = 'R' and TRANS = 'C', !> !> where Q is a complex unitary matrix defined as the product of k !> elementary reflectors !> !> Q = H(k) . . . H(2) H(1) !> !> as returned by CGEQLF. Q is of order m if SIDE = 'L' and of order n !> if SIDE = 'R'. !>
so basically C gets completely overwritten (rip to whatever was in there before, she did NOT survive π) and Q is out here being a product of k elementary reflectors, in that exact order Q = H(k) . . . H(2) H(1), straight from CGEQLF. and Q's order? m if SIDE = 'L', n if SIDE = 'R'. main character energy depending on which side she's on π
π Parameters π
SIDEβSIDEisCHARACTER*1.= 'L': applyQorQ**Hfrom the Left.= 'R': applyQorQ**Hfrom the Right. pick a side, bestie, it's giving left-vs-right discourse βTRANSβTRANSisCHARACTER*1.= 'N': applyQ(No transpose).= 'C': applyQ**H(Conjugate transpose). nah because the conjugate transpose is right there π¦MβMisINTEGER. The number of rows of the matrixC.M >= 0. rows, periodt.NβNisINTEGER. The number of columns of the matrixC.N >= 0. columns, also periodt.KβKisINTEGER. The number of elementary reflectors whose product defines the matrixQ. IfSIDE = 'L',M >= K >= 0; ifSIDE = 'R',N >= K >= 0. so K's limits are literally side-dependent, respect the boundaries πAβAisCOMPLEXarray, dimension(LDA,K). The i-th column must contain the vector which defines the elementary reflectorH(i), fori = 1,2,...,k, as returned byCGEQLFin the last k columns of its array argumentA.Ais modified by the routine but restored on exit. ok so she borrows your array, β¨ rearranges it β¨, and puts it back. iconic, courteous, no notes πLDAβLDAisINTEGER. The leading dimension of the arrayA. IfSIDE = 'L',LDA >= max(1,M); ifSIDE = 'R',LDA >= max(1,N). don't fumble the leading dimension, it WILL notice πTAUβTAUisCOMPLEXarray, dimension(K).TAU(i)must contain the scalar factor of the elementary reflectorH(i), as returned byCGEQLF. one scalar factor per reflector, she's organized like that πCβCisCOMPLEXarray, dimension(LDC,N). On entry, the m-by-n matrixC. On exit,Cis overwritten byQ*CorQ**H*CorC*Q**HorC*Q. entry vs exit, glow-up arc, we love a transformation πΈLDCβLDCisINTEGER. The leading dimension of the arrayC.LDC >= max(1,M). yes it'sMhere, notN, don't come for me, that's what it says π«ΆWORKβWORKisCOMPLEXarray, dimension(N)ifSIDE = 'L',(M)ifSIDE = 'R'. scratch space that switches sizes based on the side. she's flexible β¨INFOβINFOisINTEGER.= 0: successful exit.< 0: ifINFO = -i, the i-th argument had an illegal value. so if INFO comes back negative, that's the universe telling you argument number i was a little chaotic π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
four legends, one subroutine. ate and left no crumbs π₯
β Definition β
Definition at line 157 of file cunm2l.f. that's the exact line, go look, i'll wait π
π Author (the meta one) π
Generated automatically by Doxygen for LAPACK from the source code. not a human, just a very diligent little documentation machine π§
okay that's the whole page, nothing skipped, nothing merged, all facts intact β and to close out: this beauty is LAPACK Version 3.12.0, dated to that same /home/abui...RC/cunm2l.f(3) footer energy. bye bestie, go multiply something πβ¨π
π¦ where this page comes from
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms