SRC/cunmbr.f(3)
π NAME π
okay bestie, welcome to the SRC/cunmbr.f page from the Library Functions Manual β itβs literally the home of the CUNMBR subroutine, and weβre about to get into it. no cap, every detail is staying right here. π
β¨ SYNOPSIS β¨
πΈ Functions/Subroutines πΈ
subroutine cunmbr (vect, side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info)βCUNMBR
π¦ Function/Subroutine Documentation π¦
π subroutine cunmbr π
subroutine cunmbr (character vect, 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 lwork, integer info)
CUNMBR
π Purpose π
okay so hereβs the vibe check: if VECT = 'Q', CUNMBR overwrites the general complex M-by-N matrix C with:
SIDE = 'L' SIDE = 'R'
TRANS = 'N': Q * C C * Q
TRANS = 'C': Q**H * C C * Q**H
And if VECT = 'P', CUNMBR overwrites the general complex M-by-N matrix C with:
SIDE = 'L' SIDE = 'R'
TRANS = 'N': P * C C * P
TRANS = 'C': P**H * C C * P**H
Here Q and P**H are the unitary matrices determined by CGEBRD when reducing a complex matrix A to bidiagonal form: A = Q * B * P**H. Q and P**H are defined as products of elementary reflectors H(i) and G(i) respectively. iconic math behavior, honestly.
Let nq = m if SIDE = 'L' and nq = n if SIDE = 'R'. So nq is literally the order of the unitary matrix Q or P**H that is applied.
If VECT = 'Q', A is assumed to have been an NQ-by-K matrix: if nq >= k, Q = H(1) H(2) . . . H(k); if nq < k, Q = H(1) H(2) . . . H(nq-1).
If VECT = 'P', A is assumed to have been a K-by-NQ matrix: if k < nq, P = G(1) G(2) . . . G(k); if k >= nq, P = G(1) G(2) . . . G(nq-1).
π Parameters π
VECTβ this one isCHARACTER*1. Drop in'Q'and youβre applyingQorQ**H; drop in'P'and itβsPorP**H. pick your fighter.SIDEβCHARACTER*1.'L'means applyQ,Q**H,PorP**Hfrom the Left;'R'means apply them from the Right. left or right, no in-between.TRANSβCHARACTER*1.'N': No transpose, applyQorP;'C': Conjugate transpose, applyQ**HorP**H.MβINTEGER. The number of rows of the matrixC. Constraint:M >= 0.NβINTEGER. The number of columns of the matrixC. Constraint:N >= 0.KβINTEGER. IfVECT = 'Q', itβs the number of columns in the original matrix reduced byCGEBRD. IfVECT = 'P', itβs the number of rows in the original matrix reduced byCGEBRD. Constraint:K >= 0.AβCOMPLEXarray, dimension(LDA,min(nq,K))ifVECT = 'Q', or(LDA,nq)ifVECT = 'P'. These are the vectors which define the elementary reflectorsH(i)andG(i), whose products determine the matricesQandP, as returned byCGEBRD.LDAβINTEGER. The leading dimension of the arrayA. IfVECT = 'Q',LDA >= max(1,nq); ifVECT = 'P',LDA >= max(1,min(nq,K)).TAUβCOMPLEXarray, dimension(min(nq,K)).TAU(i)must contain the scalar factor of the elementary reflectorH(i)orG(i)which determinesQorP, as returned byCGEBRDin the array argumentTAUQorTAUP.CβCOMPLEXarray, dimension(LDC,N). On entry, theM-by-NmatrixC. On exit,Cis overwritten byQ*CorQ**H*CorC*Q**HorC*QorP*CorP**H*CorC*PorC*P**H.LDCβINTEGER. The leading dimension of the arrayC. Constraint:LDC >= max(1,M).WORKβCOMPLEXarray, dimension(MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK.LWORKβINTEGER. The dimension of the arrayWORK. IfSIDE = 'L',LWORK >= max(1,N); ifSIDE = 'R',LWORK >= max(1,M); ifN = 0orM = 0,LWORK >= 1. For optimum performanceLWORK >= max(1,N*NB)ifSIDE = 'L', andLWORK >= max(1,M*NB)ifSIDE = 'R', whereNBis the optimal blocksize. (NB = 0ifM = 0orN = 0.) IfLWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of theWORKarray, returns this value as the first entry of theWORKarray, and no error message related toLWORKis issued byXERBLA. workspace query era.INFOβINTEGER.= 0: successful exit.< 0: ifINFO = -i, thei-th argument had an illegal value.
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π Definition
Definition at line 195 of file cunmbr.f.
πͺ Author
Generated automatically by Doxygen for LAPACK from the source code.
okay thatβs the whole page, bestie β from LAPACK Version 3.12.0, page SRC/cunmbr.f(3). slay your linear algebra era π
β¨π«Ά
π¦ 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