SRC/zunmbr.f(3)
π¦ SRC/zunmbr.f(3) β Library Functions Manual π
πΈ NAME πΈ
SRC/zunmbr.f
Thatβs the page name, bestie β iconic little LAPACK subroutine page energy β¨
β¨ SYNOPSIS β¨
π§ Functions/Subroutines π§
subroutine zunmbr (vect, side, trans, m, n, k, a, lda, tau, c, ldc,
work, lwork, info)
ZUNMBR
π Function/Subroutine Documentation π
subroutine zunmbr (character vect, character side, character trans, integer
m, integer n, integer k, complex*16, dimension( lda, * ) a, integer lda,
complex*16, dimension( * ) tau, complex*16, dimension( ldc, * ) c,
integer ldc, complex*16, dimension( * ) work, integer lwork, integer
info)
ZUNMBR
π Purpose π
okay so hereβs the tea β β if VECT = 'Q', ZUNMBR 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', ZUNMBR 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 ZGEBRD 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. No cap, thatβs literally the setup π
Let nq = m if SIDE = 'L' and nq = n if SIDE = 'R'. Thus nq is 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 π
one bullet per parameter because we are organized and cute like that π«Ά
VECTβVECT is CHARACTER*1= 'Q': apply Q or Q**H;= 'P': apply P or P**H.
SIDEβSIDE is CHARACTER*1= 'L': apply Q, QH, P or PH from the Left;= 'R': apply Q, QH, P or PH from the Right.
TRANSβTRANS is CHARACTER*1= 'N': No transpose, apply Q or P;= 'C': Conjugate transpose, apply QH or PH.
MβM is INTEGERβ the number of rows of the matrixC.M >= 0, periodt.NβN is INTEGERβ the number of columns of the matrixC.N >= 0, slay.KβK is INTEGERβ ifVECT = 'Q', the number of columns in the original matrix reduced byZGEBRD. IfVECT = 'P', the number of rows in the original matrix reduced byZGEBRD.K >= 0.AβA is COMPLEX*16 array, dimension
(LDA,min(nq,K)) if VECT = 'Q'
(LDA,nq) if VECT = 'P'
The vectors which define the elementary reflectors H(i) and G(i), whose products determine the matrices Q and P, as returned by ZGEBRD.
LDAβLDA is INTEGERβ the leading dimension of the arrayA. IfVECT = 'Q',LDA >= max(1,nq);ifVECT = 'P',LDA >= max(1,min(nq,K)).TAUβTAU is COMPLEX*16 array, dimension (min(nq,K))βTAU(i)must contain the scalar factor of the elementary reflectorH(i)orG(i)which determinesQorP, as returned byZGEBRDin the array argumentTAUQorTAUP.CβC is COMPLEX*16 array, 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βLDC is INTEGERβ the leading dimension of the arrayC.LDC >= max(1,M).WORKβWORK is COMPLEX*16 array, dimension (MAX(1,LWORK))β on exit, ifINFO = 0,WORK(1)returns the optimalLWORK.LWORKβLWORK is INTEGERβ the dimension of the arrayWORK. IfSIDE = 'L',LWORK >= max(1,N);ifSIDE = 'R',LWORK >= max(1,M);ifN = 0 or M = 0,LWORK >= 1. For optimum performanceLWORK >= max(1,N*NB)ifSIDE = 'L', andLWORK >= max(1,M*NB)ifSIDE = 'R', whereNBis the optimal blocksize. (NB = 0 if M = 0 or N = 0.)
If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA.
INFOβINFO is 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 at line 194 of file zunmbr.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
cute sign-off, bestie: source/version is LAPACK Version 3.12.0, page is SRC/zunmbr.f(3), and the footer didnβt give me a date, so Iβm not inventing one β periodt πβ¨
π¦ 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