SRC/cunmlq.f(3)
π SRC/cunmlq.f(3)
okay so this is the Library Functions Manual, and todayβs main character is CUNMLQ β a complex unitary reflector queen π
πΈ NAME πΈ
SRC/cunmlq.f β yes bestie, thatβs the file weβre reading, and we are not skimming it.
β¨ SYNOPSIS β¨
π§ Functions/Subroutines π§
subroutine cunmlqβ the routine herself, with the whole argument squad listed below.
subroutine cunmlq (side, trans, m, n, k, a, lda, tau, c, ldc, work,
lwork, info)
CUNMLQ (yes, the name again, iconic)
π Function/Subroutine Documentation π
subroutine cunmlq (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)
CUNMLQ β okay, deep breath, hereβs what she does.
π¦ Purpose π¦
CUNMLQ 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
where Q is a complex unitary matrix defined as the product of k elementary reflectors:
Q = H(k)**H . . . H(2)**H H(1)**H
as returned by CGELQF. Q is of order M if SIDE = 'L' and of order N if SIDE = 'R'.
π Parameters π
SIDEβSIDE is CHARACTER*1.= 'L': apply Q or Q**H from the Left;= 'R': apply Q or Q**H from the Right.
TRANSβTRANS is CHARACTER*1.= 'N': No transpose, apply Q;= 'C': Conjugate transpose, apply Q**H.
MβM is INTEGER. The number of rows of the matrixC.M >= 0.NβN is INTEGER. The number of columns of the matrixC.N >= 0.KβK is INTEGER. The number of elementary reflectors whose product defines the matrixQ.- If
SIDE = 'L',M >= K >= 0; - if
SIDE = 'R',N >= K >= 0.
- If
AβA is COMPLEX array, dimension(LDA,M)ifSIDE = 'L',(LDA,N)ifSIDE = 'R'
The i-th row must contain the vector which defines the elementary reflector H(i), for i = 1,2,...,k, as returned by CGELQF in the first k rows of its array argument A.
LDAβLDA is INTEGER. The leading dimension of the arrayA.LDA >= max(1,K).TAUβTAU is COMPLEX array, dimension (K).TAU(i)must contain the scalar factor of the elementary reflectorH(i), as returned byCGELQF.CβC is COMPLEX array, dimension (LDC,N). On entry, the M-by-N matrixC. On exit,Cis overwritten byQ*CorQ**H*CorC*Q**HorC*Q.LDCβLDC is INTEGER. The leading dimension of the arrayC.LDC >= max(1,M).WORKβWORK is COMPLEX array, dimension (MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK.LWORKβLWORK is INTEGER. The dimension of the arrayWORK.- If
SIDE = 'L',LWORK >= max(1,N); - if
SIDE = 'R',LWORK >= max(1,M). - For good performance,
LWORKshould generally be larger.
- If
Heads up, bestie: 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. π
INFOβINFO is INTEGER.= 0: successful exit< 0: if INFO = -i, the i-th argument had an illegal value
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 166 of file cunmlq.f.
πͺ Author πͺ
Generated automatically by Doxygen for LAPACK from the source code.
Catch you in the source, bestie β this one is LAPACK Version 3.12.0, from SRC/cunmlq.f(3). 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