SRC/zunm22.f(3)
π¦ SRC/zunm22.f β Library Functions Manual π¦
β¨ NAME β¨
SRC/zunm22.f
okay bestie, this is the page for the LAPACK routine zunm22, and it is lowkey iconic: it multiplies a general matrix by a banded unitary matrix. π
π SYNOPSIS π
π Functions/Subroutines π
subroutine zunm22β the actual glow-up:
subroutine zunm22 (side, trans, m, n, n1, n2, q, ldq, c, ldc, work,
lwork, info)
ZUNM22 multiplies a general matrix by a banded unitary matrix. β¨
π Function/Subroutine Documentation π
subroutine zunm22 (character side, character trans, integer m, integer n,
integer n1, integer n2, complex*16, dimension( ldq, * ) q, integer ldq,
complex*16, dimension( ldc, * ) c, integer ldc, complex*16, dimension( *
) work, integer lwork, integer info)
ZUNM22 multiplies a general matrix by a banded unitary matrix. π«Ά
π― Purpose π―
Bestie, here's the whole point: ZUNM22 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 of order NQ, with NQ = M if SIDE = 'L' and NQ = N if SIDE = 'R'.
The unitary matrix Q processes a 2-by-2 block structure
[ Q11 Q12 ]
Q = [ ]
[ Q21 Q22 ],
where Q12 is an N1-by-N1 lower triangular matrix and Q21 is an N2-by-N2 upper triangular matrix. π
πΈ Parameters πΈ
SIDEβSIDEisCHARACTER*1;= 'L': applyQorQ**Hfrom the Left;= 'R': applyQorQ**Hfrom the Right.TRANSβTRANSisCHARACTER*1;= 'N': applyQ(No transpose);= 'C': applyQ**H(Conjugate transpose).MβMisINTEGER; the number of rows of the matrixC.M >= 0.NβNisINTEGER; the number of columns of the matrixC.N >= 0.N1βN1isINTEGER; the dimension ofQ12.N1 >= 0.N2βN2isINTEGER; the dimension ofQ21.N2 >= 0.- The following requirement must be satisfied:
N1 + N2 = MifSIDE = 'L'andN1 + N2 = NifSIDE = 'R'. π«‘ QβQisCOMPLEX*16array, dimension(LDQ,M)ifSIDE = 'L';(LDQ,N)ifSIDE = 'R'.LDQβLDQisINTEGER; the leading dimension of the arrayQ.LDQ >= max(1,M)ifSIDE = 'L';LDQ >= max(1,N)ifSIDE = 'R'.CβCisCOMPLEX*16array, dimension(LDC,N). On entry, theM-by-NmatrixC. On exit,Cis overwritten byQ*CorQ**H*CorC*Q**HorC*Q.LDCβLDCisINTEGER; the leading dimension of the arrayC.LDC >= max(1,M).WORKβWORKisCOMPLEX*16array, dimension(MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK.LWORKβLWORKisINTEGER; the dimension of the arrayWORK. IfSIDE = 'L',LWORK >= max(1,N); ifSIDE = 'R',LWORK >= max(1,M). For optimum performanceLWORK >= M*N.
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βINFOisINTEGER;= 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 160 of file zunm22.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code. β¨
π Cute sign-off: this page is rockin' LAPACK Version 3.12.0, with source/page SRC/zunm22.f(3) β that's the footer energy, bestie, and we are out! π«Άπ
π¦ 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