SRC/ctpmqrt.f(3)
π SRC/ctpmqrt.f π
okay so this is the SRC/ctpmqrt.f(3) page from the Library Functions Manual, and we are diving in, bestie π«Άβ¨
πΈ NAME πΈ
SRC/ctpmqrt.f β that's literally the NAME section, and yes it's just the file path. iconic minimalism π
β¨ SYNOPSIS β¨
Functions/Subroutines
here's the function reveal:
subroutine ctpmqrt (side, trans, m, n, k, l, nb, v, ldv, t, ldt, a, lda,
b, ldb, work, info)
CTPMQRT is the main-character routine name π
π Function/Subroutine Documentation π
π«Ά subroutine ctpmqrt
subroutine ctpmqrt (character side, character trans, integer m, integer n,
integer k, integer l, integer nb, complex, dimension( ldv, * ) v,
integer ldv, complex, dimension( ldt, * ) t, integer ldt, complex,
dimension( lda, * ) a, integer lda, complex, dimension( ldb, * ) b,
integer ldb, complex, dimension( * ) work, integer info)
CTPMQRT again, because the page said it twice and we respect the repetition π
π― Purpose
ok so CTPMQRT applies a complex orthogonal matrix Q obtained from a complex block reflector H to a general complex matrix C, which consists of two blocks A and B. that's the whole vibe β¨
π Parameters
SIDEβCHARACTER*1.= 'L': applyQorQ**Hfrom the Left;= 'R': applyQorQ**Hfrom the Right. πTRANSβCHARACTER*1.= 'N': No transpose, applyQ;= 'C': Conjugate transpose, applyQ**H. π₯MβINTEGER. The number of rows of the matrixB.M >= 0.NβINTEGER. The number of columns of the matrixB.N >= 0.KβINTEGER. The number of elementary reflectors whose product defines the matrixQ.LβINTEGER. The order of the trapezoidal part ofV.K >= L >= 0. See Further Details.NBβINTEGER. The block size used for the storage ofT.K >= NB >= 1. This must be the same value ofNBused to generateTinCTPQRT.VβCOMPLEX array, dimension (LDV,K). Thei-th column must contain the vector which defines the elementary reflectorH(i), fori = 1,2,...,k, as returned byCTPQRTinB. See Further Details.LDVβINTEGER. The leading dimension of the arrayV. IfSIDE = 'L',LDV >= max(1,M); ifSIDE = 'R',LDV >= max(1,N).TβCOMPLEX array, dimension (LDT,K). The upper triangular factors of the block reflectors as returned byCTPQRT, stored as aNB-by-Kmatrix.LDTβINTEGER. The leading dimension of the arrayT.LDT >= NB.AβCOMPLEX array, dimension (LDA,N) if SIDE = 'L' or (LDA,K) if SIDE = 'R'. On entry, theK-by-NorM-by-KmatrixA. On exit,Ais overwritten by the corresponding block ofQ*CorQ**H*CorC*QorC*Q**H. See Further Details.LDAβINTEGER. The leading dimension of the arrayA. IfSIDE = 'L',LDC >= max(1,K); IfSIDE = 'R',LDC >= max(1,M). (not me side-eyeing the page sayingLDChere β I'm just relaying the tea π)BβCOMPLEX array, dimension (LDB,N). On entry, theM-by-NmatrixB. On exit,Bis overwritten by the corresponding block ofQ*CorQ**H*CorC*QorC*Q**H. See Further Details.LDBβINTEGER. The leading dimension of the arrayB.LDB >= max(1,M).WORKβCOMPLEX array. The dimension ofWORKisN*NBifSIDE = 'L', orM*NBifSIDE = 'R'.INFOβINTEGER.= 0: successful exit;< 0: ifINFO = -i, thei-th argument had an illegal value.
π Author
Univ. of TennesseeUniv. of California BerkeleyUniv. of Colorado DenverNAG Ltd.
π Further Details
the columns of the pentagonal matrix V contain the elementary reflectors H(1), H(2), ..., H(K); V is composed of a rectangular block V1 and a trapezoidal block V2:
V = [V1]
[V2].
The size of the trapezoidal block V2 is determined by the parameter L, where 0 <= L <= K; V2 is upper trapezoidal, consisting of the first L rows of a K-by-K upper triangular matrix. If L=K, V2 is upper triangular; if L=0, there is no trapezoidal block, hence V = V1 is rectangular.
If SIDE = 'L':
C = [A] where A is K-by-N, B is M-by-N and V is M-by-K.
[B]
If SIDE = 'R':
C = [A B] where A is M-by-K, B is M-by-N and V is N-by-K.
The complex orthogonal matrix Q is formed from V and T.
- If
TRANS='N'andSIDE='L',Cis on exit replaced withQ * C. - If
TRANS='C'andSIDE='L',Cis on exit replaced withQ**H * C. - If
TRANS='N'andSIDE='R',Cis on exit replaced withC * Q. - If
TRANS='C'andSIDE='R',Cis on exit replaced withC * Q**H.
Definition at line 214 of file ctpmqrt.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
LAPACK Version 3.12.0, source SRC/ctpmqrt.f(3) β that's the whole page, bestie, bye! πβ¨
π¦ 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