/home/abui.../stpmlqt.f(3)
๐ STPMLQT ๐
Okay bestie, this is the /home/abui.../stpmlqt.f(3) page from the LAPACK Library Functions Manual. The actual source file is /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/stpmlqt.f, and this whole page is about one very specific Fortran subroutine. Letโs get into it. ๐ซถ
NAME
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/stpmlqt.f โ thatโs the file, thatโs the name, no cap. โจ
SYNOPSIS
Functions/Subroutines
subroutine STPMLQT (side, trans, m, n, k, l, mb, v, ldv, t, ldt, a, lda, b, ldb, work, info)โSTPMLQT
subroutine STPMLQT (side, trans, m, n, k, l, mb, v, ldv, t, ldt, a, lda,
b, ldb, work, info)
Function/Subroutine Documentation
subroutine STPMLQT (...)
subroutine STPMLQT (character side, character trans, integer m, integer n,
integer k, integer l, integer mb, real, dimension( ldv, * ) v, integer
ldv, real, dimension( ldt, * ) t, integer ldt, real, dimension( lda, * )
a, integer lda, real, dimension( ldb, * ) b, integer ldb, real,
dimension( * ) work, integer info)
STPMLQT โ thatโs the subroutine, and yes sheโs the main character here. ๐
Purpose
Okay so STPMLQT 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 purpose, periodt. ๐
Parameters
SIDEโSIDEisCHARACTER*1. It controls where Q or Q**T gets applied from:= 'L': applyQorQ**Tfrom the Left.= 'R': applyQorQ**Tfrom the Right.
TRANSโTRANSisCHARACTER*1. It says whether weโre transposing or not:= 'N': No transpose, applyQ.= 'T': Transpose, applyQ**T.
MโMisINTEGER. Itโs the number of rows of the matrixB. Constraint:M >= 0.NโNisINTEGER. Itโs the number of columns of the matrixB. Constraint:N >= 0.KโKisINTEGER. Itโs the number of elementary reflectors whose product defines the matrixQ.LโLisINTEGER. Itโs the order of the trapezoidal part ofV. Constraint:K >= L >= 0. See Further Details for the full tea.MBโMBisINTEGER. Itโs the block size used for the storage ofT. Constraint:K >= MB >= 1. This must be the same value ofMBused to generateTinSTPLQT.VโVisREAL array, dimension (LDV,K). The i-th row must contain the vector which defines the elementary reflectorH(i), fori = 1,2,...,k, as returned bySTPLQTinB. See Further Details.LDVโLDVisINTEGER. Itโs the leading dimension of the arrayV. Constraint:LDV >= K.TโTisREAL array, dimension (LDT,K). These are the upper triangular factors of the block reflectors as returned bySTPLQT, stored as aMB-by-Kmatrix.LDTโLDTisINTEGER. Itโs the leading dimension of the arrayT. Constraint:LDT >= MB.AโAisREAL 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โLDAisINTEGER. Itโs the leading dimension of the arrayA. IfSIDE = 'L',LDA >= max(1,K); ifSIDE = 'R',LDA >= max(1,M).BโBisREAL 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โLDBisINTEGER. Itโs the leading dimension of the arrayB. Constraint:LDB >= max(1,M).WORKโWORKisREAL array. The dimension ofWORKisN*MBifSIDE = 'L', orM*MBifSIDE = 'R'.INFOโINFOisINTEGER. Exit status tea:= 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 stpmlqt.f.
Author
Generated automatically by Doxygen for LAPACK from the source code.
Okay bestie, the footer says LAPACK Version 3.12.0 and /home/abui.../stpmlqt.f(3). As for the date? The footer doesnโt give one, so Iโm not gonna invent it โ we keep the facts cute and correct around here. ๐๐
๐ฆ 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