ZUPMTR(3)
π
ZUPMTR(3) β like, the Library Functions Manual page for zupmtr.f π
okay bestie, so this is the manual page for /home/abui...RC/zupmtr.f(3) from the Library Functions Manual, and it is genuinely so iconic of LAPACK to name a file and then make that the NAME section. we love a self-titled queen. π
β¨ SYNOPSIS β¨
Functions/Subroutines π¦
subroutine ZUPMTR (side, uplo, trans, m, n, ap, tau, c, ldc, work, info)
ZUPMTR β that's it, that's the whole description. main character energy fr.
π Function/Subroutine Documentation π
subroutine ZUPMTR (character side, character uplo, character trans, integer
m, integer n, complex*16, dimension( * ) ap, complex*16, dimension( * )
tau, complex*16, dimension( ldc, * ) c, integer ldc, complex*16,
dimension( * ) work, integer info)
ZUPMTR π
Purpose π―
fortran !> !> ZUPMTR 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'. Q is defined as the product of !> nq-1 elementary reflectors, as returned by ZHPTRD using packed !> storage: !> !> if UPLO = 'U', Q = H(nq-1) . . . H(2) H(1); !> !> if UPLO = 'L', Q = H(1) H(2) . . . H(nq-1). !>
so basically: it takes your matrix C (complex, M-by-N) and replaces it with Q*C, Q**H*C, C*Q, or C*Q**H depending on SIDE and TRANS. and Q? Q is a complex unitary matrix of order nq β where nq = m if SIDE = 'L' and nq = n if SIDE = 'R' β built from nq-1 elementary reflectors that ZHPTRD handed you earlier in packed storage. it's giving "we already did the hard part, this is just the glow-up." β¨
and the order matters, bestie β no cap:
- if
UPLO = 'U', thenQ = H(nq-1) . . . H(2) H(1); - if
UPLO = 'L', thenQ = H(1) H(2) . . . H(nq-1).
Parameters πΈ
SIDEβSIDEisCHARACTER*1. it decides which sideQswings in from:= 'L': applyQorQ**Hfrom the Left;= 'R': applyQorQ**Hfrom the Right.
UPLOβUPLOisCHARACTER*1. tells us which triangular packed storage your precious previous call toZHPTRDused:= 'U': Upper triangular packed storage used in previous call toZHPTRD;= 'L': Lower triangular packed storage used in previous call toZHPTRD.
TRANSβTRANSisCHARACTER*1. the transpose vibe check:= 'N': No transpose, applyQ;= 'C': Conjugate transpose, applyQ**H.
MβMisINTEGER. the number of rows of the matrixC.M >= 0. (zero rows? valid. slay.)NβNisINTEGER. the number of columns of the matrixC.N >= 0.APβAPisCOMPLEX*16array, dimension
(M*(M+1)/2) if SIDE = 'L'
(N*(N+1)/2) if SIDE = 'R'
these are the vectors which define the elementary reflectors, as returned by ZHPTRD. heads up tho: AP is modified by the routine but restored on exit. so it gets messed with and then puts itself back together. resilience. π
TAUβTAUisCOMPLEX*16array, dimension(M-1)ifSIDE = 'L'or(N-1)ifSIDE = 'R'.TAU(i)must contain the scalar factor of the elementary reflectorH(i), as returned byZHPTRD. iykyk.CβCisCOMPLEX*16array, dimension(LDC,N). on entry, theM-by-NmatrixC. on exit,Cis overwritten byQ*CorQ**H*CorC*Q**HorC*Q. it does not survive the transformation, bestie, it becomes the transformation. π¦LDCβLDCisINTEGER. the leading dimension of the arrayC.LDC >= max(1,M). respect the constraint or perish.WORKβWORKisCOMPLEX*16array, dimension
(N) if SIDE = 'L'
(M) if SIDE = 'R'
workspace. give it a little room to breathe. π«Ά
INFOβINFOisINTEGER. the receipts:= 0: successful exit π< 0: ifINFO = -i, the i-th argument had an illegal value π
Author βοΈ
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition π
Definition at line 148 of file zupmtr.f.
Author (the meta one) π
Generated automatically by Doxygen for LAPACK from the source code. no human hands touched this prose, which honestly explains a lot.
π fr fr warning: thatWORKarray sizing and thoseLDC >= max(1,M)/M >= 0/N >= 0constraints are not decoration. violate them andINFOwill come back negative and point at exactly which argument you disrespected.
okay that's the whole page, you ate that πβ¨
π ~ LAPACK, Version 3.12.0 ~ π
signed off from /home/abui...RC/zupmtr.f(3) β luv u, go call ZHPTRD first π
π¦ 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