SRC/stprfb.f(3)
π NAME
SRC/stprfb.f β straight from the Library Functions Manual, bestie. This is the page for STPRFB, and it's giving "real matrix glow-up" energy. π
β¨ SYNOPSIS
Functions/Subroutines
subroutine stprfb (side, trans, direct, storev, m, n, k, l, v, ldv, t, ldt, a, lda, b, ldb, work, ldwork)β STPRFB applies a real "triangular-pentagonal" block reflector to a real matrix, which is composed of two blocks. π«Ά
π¦ Function/Subroutine Documentation
subroutine stprfb (character side, character trans, character direct,
character storev, integer m, integer n, integer k, integer l, 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( ldwork, * ) work, integer ldwork)
STPRFB applies a real "triangular-pentagonal" block reflector to a real matrix, which is composed of two blocks. π«
β¨ Purpose
STPRFB applies a real block reflector H or its transpose H**T to a real matrix C, which is composed of two blocks A and B, either from the left or right.
π Parameters
SIDE
SIDEisCHARACTER*1= 'L': applyHorH**Tfrom the Left= 'R': applyHorH**Tfrom the Right
TRANS
TRANSisCHARACTER*1= 'N': applyH(No transpose)= 'T': applyH**T(Transpose)
DIRECT
DIRECTisCHARACTER*1- Indicates how
His formed from a product of elementary reflectors = 'F':H = H(1) H(2) . . . H(k)(Forward)= 'B':H = H(k) . . . H(2) H(1)(Backward)
STOREV
STOREVisCHARACTER*1- Indicates how the vectors which define the elementary reflectors are stored:
= 'C': Columns= 'R': Rows
M
MisINTEGER- The number of rows of the matrix
B. M >= 0.
N
NisINTEGER- The number of columns of the matrix
B. N >= 0.
K
KisINTEGER- The order of the matrix
T, i.e. the number of elementary reflectors whose product defines the block reflector. K >= 0.
L
LisINTEGER- The order of the trapezoidal part of
V. K >= L >= 0.See Further Details.
V
VisREAL array, dimension
(LDV,K) if STOREV = 'C'
(LDV,M) if STOREV = 'R' and SIDE = 'L'
(LDV,N) if STOREV = 'R' and SIDE = 'R'
- The pentagonal matrix
V, which contains the elementary reflectorsH(1), H(2), ..., H(K). See Further Details.
LDV
LDVisINTEGER- The leading dimension of the array
V. - If
STOREV = 'C'andSIDE = 'L',LDV >= max(1,M); - if
STOREV = 'C'andSIDE = 'R',LDV >= max(1,N); - if
STOREV = 'R',LDV >= K.
T
TisREAL array, dimension(LDT,K)- The triangular
K-by-KmatrixTin the representation of the block reflector.
LDT
LDTisINTEGER- The leading dimension of the array
T. LDT >= K.
A
AisREAL array, dimension(LDA,N)ifSIDE = 'L'or(LDA,K)ifSIDE = 'R'- On entry, the
K-by-NorM-by-KmatrixA. - On exit,
Ais overwritten by the corresponding block ofH*CorH**T*CorC*HorC*H**T. See Further Details.
LDA
LDAisINTEGER- The leading dimension of the array
A. - If
SIDE = 'L',LDA >= max(1,K); - If
SIDE = 'R',LDA >= max(1,M).
B
BisREAL array, dimension(LDB,N)- On entry, the
M-by-NmatrixB. - On exit,
Bis overwritten by the corresponding block ofH*CorH**T*CorC*HorC*H**T. See Further Details.
LDB
LDBisINTEGER- The leading dimension of the array
B. LDB >= max(1,M).
WORK
WORKisREAL array, dimension(LDWORK,N)ifSIDE = 'L',(LDWORK,K)ifSIDE = 'R'.
LDWORK
LDWORKisINTEGER- The leading dimension of the array
WORK. - If
SIDE = 'L',LDWORK >= K; - if
SIDE = 'R',LDWORK >= M.
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
πΈ Further Details
C is a composite matrix formed from blocks A and B. The block B is of size M-by-N; if SIDE = 'R', A is of size M-by-K, and if SIDE = 'L', A is of size K-by-N.
If SIDE = 'R' and DIRECT = 'F', C = [A B].
If SIDE = 'L' and DIRECT = 'F':
C = [A]
[B].
If SIDE = 'R' and DIRECT = 'B', C = [B A].
If SIDE = 'L' and DIRECT = 'B':
C = [B]
[A].
The pentagonal matrix V is composed of a rectangular block V1 and a trapezoidal block V2. The size of the trapezoidal block is determined by the parameter L, where 0<=L<=K. If L=K, the V2 block of V is triangular; if L=0, there is no trapezoidal block, thus V = V1 is rectangular.
If DIRECT = 'F' and STOREV = 'C':
V = [V1]
[V2]
V2is upper trapezoidal (firstLrows ofK-by-Kupper triangular)
If DIRECT = 'F' and STOREV = 'R':
V = [V1 V2]
V2is lower trapezoidal (firstLcolumns ofK-by-Klower triangular)
If DIRECT = 'B' and STOREV = 'C':
V = [V2]
[V1]
V2is lower trapezoidal (lastLrows ofK-by-Klower triangular)
If DIRECT = 'B' and STOREV = 'R':
V = [V2 V1]
V2is upper trapezoidal (lastLcolumns ofK-by-Kupper triangular)
If STOREV = 'C' and SIDE = 'L', V is M-by-K with V2 L-by-K.
If STOREV = 'C' and SIDE = 'R', V is N-by-K with V2 L-by-K.
If STOREV = 'R' and SIDE = 'L', V is K-by-M with V2 K-by-L.
If STOREV = 'R' and SIDE = 'R', V is K-by-N with V2 K-by-L.
Definition at line 249 of file stprfb.f.
π«Ά Author
Generated automatically by Doxygen for LAPACK from the source code.
π okay bestie, that's the whole page. The footer vibes: LAPACK Version 3.12.0, source file SRC/stprfb.f(3), and the original footer doesn't show a date, so I'm not making one up. Periodt. π«Άβ¨
π¦ 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