/home/abui.../dtpmlqt.f(3)
π
dtpmlqt.f(3) β Library Functions Manual π
okay bestie, welcome to dtpmlqt.f(3) from the Library Functions Manual β yes, the manual name is literally folded right up here so we don't have to copy that whole header line, slay. This page is giving big <purple>Fortran subroutine documentation</purple> energy, and we're gonna keep every tiny detail exactly where it belongs. periodt. π
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dtpmlqt.f
πΈ SYNOPSIS πΈ
Functions/Subroutines
subroutine DTPMLQT (side, trans, m, n, k, l, mb, v, ldv, t, ldt, a, lda,
b, ldb, work, info)
DTPMLQT
π Function/Subroutine Documentation π
subroutine DTPMLQT (character side, character trans, integer m, integer n,
integer k, integer l, integer mb, double precision, dimension( ldv, * )
v, integer ldv, double precision, dimension( ldt, * ) t, integer ldt,
double precision, dimension( lda, * ) a, integer lda, double precision,
dimension( ldb, * ) b, integer ldb, double precision, dimension( * )
work, integer info)
DTPMLQT
π Purpose
okay so the source says DTPMQRT right there β not DTPMLQT β and we are not fixing it, bestie, because the whole point is keeping the facts exactly as written:
DTPMQRT applies a real orthogonal matrix Q obtained from a real block reflector H to a general real matrix C, which consists of two blocks A and B. that's the whole plot. π«Ά
π Parameters
SIDEβSIDE is CHARACTER*1;= 'L': applyQorQ**Tfrom the Left;= 'R': applyQorQ**Tfrom the Right.TRANSβTRANS is CHARACTER*1;= 'N': No transpose, applyQ;= 'T': Transpose, applyQ**T.MβM is INTEGER; the number of rows of the matrixB.M >= 0.NβN is INTEGER; the number of columns of the matrixB.N >= 0.KβK is INTEGER; the number of elementary reflectors whose product defines the matrixQ.LβL is INTEGER; the order of the trapezoidal part ofV.K >= L >= 0. See Further Details.MBβMB is INTEGER; the block size used for the storage ofT.K >= MB >= 1. This must be the same value ofMBused to generateTinDTPLQT.VβV is DOUBLE PRECISION array, dimension (LDV,K); the i-th row must contain the vector which defines the elementary reflectorH(i), fori = 1,2,...,k, as returned byDTPLQTinB. See Further Details.LDVβLDV is INTEGER; the leading dimension of the arrayV.LDV >= K.TβT is DOUBLE PRECISION array, dimension (LDT,K); the upper triangular factors of the block reflectors as returned byDTPLQT, stored as aMB-by-Kmatrix.LDTβLDT is INTEGER; the leading dimension of the arrayT.LDT >= MB.AβA is DOUBLE PRECISION array, dimension(LDA,N)ifSIDE = 'L'or(LDA,K)ifSIDE = 'R'. On entry, theK-by-NorM-by-KmatrixA. On exit,Ais overwritten by the corresponding block ofQ*CorQ**T*CorC*QorC*Q**T. See Further Details.LDAβLDA is INTEGER; the leading dimension of the arrayA. IfSIDE = 'L',LDA >= max(1,K); IfSIDE = 'R',LDA >= max(1,M).BβB is DOUBLE PRECISION array, dimension (LDB,N). On entry, theM-by-NmatrixB. On exit,Bis overwritten by the corresponding block ofQ*CorQ**T*CorC*QorC*Q**T. See Further Details.LDBβLDB is INTEGER; the leading dimension of the arrayB.LDB >= max(1,M).WORKβWORK is DOUBLE PRECISION array. The dimension ofWORKisN*MBifSIDE = 'L', orM*MBifSIDE = 'R'.INFOβINFO is INTEGER;= 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.
π¦ 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 lower trapezoidal, consisting of the first L rows of a K-by-K upper triangular matrix. If L=K, V2 is lower 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 K-by-M.
[B]
If SIDE = 'R': C = [A B] where A is M-by-K, B is M-by-N and V is K-by-N.
The real orthogonal matrix Q is formed from V and T.
- If
TRANS='N'andSIDE='L',Cis on exit replaced withQ * C. - If
TRANS='T'andSIDE='L',Cis on exit replaced withQ**T * C. - If
TRANS='N'andSIDE='R',Cis on exit replaced withC * Q. - If
TRANS='T'andSIDE='R',Cis on exit replaced withC * Q**T.
Definition at line 212 of file dtpmlqt.f.
π Author
Generated automatically by Doxygen for LAPACK from the source code.
πβ¨ and that's the whole page, bestie! Source/version/file vibe check: LAPACK, Version 3.12.0, from /home/abui.../dtpmlqt.f(3). no cap, we kept every detail. byeee π«Άπ
π¦ 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