tprfb(3)
β¨ tprfb(3) β¨ β Library Functions Manual
okay so bestie, welcome to tprfb π
this page is the whole glow-up of larfb's energy: it applies a block reflector Q (like larfb does) but for the triangular-pentagonal store. it's giving custom reflector representation, no cap.
π NAME π
tprfb β tprfb: applies Q (like larfb)
πΈ SYNOPSIS πΈ
Functions
subroutine ctprfb (side, trans, direct, storev, m, n, k, l, v, ldv, t,
ldt, a, lda, b, ldb, work, ldwork)
CTPRFB applies a complex "triangular-pentagonal" block reflector to a complex matrix, which is composed of two blocks. π
subroutine dtprfb (side, trans, direct, storev, m, n, k, l, v, ldv, t,
ldt, a, lda, b, ldb, work, ldwork)
DTPRFB applies a real "triangular-pentagonal" block reflector to a real matrix, which is composed of two blocks.
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.
subroutine ztprfb (side, trans, direct, storev, m, n, k, l, v, ldv, t,
ldt, a, lda, b, ldb, work, ldwork)
ZTPRFB applies a complex "triangular-pentagonal" block reflector to a complex matrix, which is composed of two blocks. β
π¦ Detailed Description π¦
bestie. this is where it gets real. we're going deep, four routines at a time. π«Ά
π Function Documentation π
π₯ subroutine ctprfb π₯
subroutine ctprfb (character side, character trans, character direct,
character storev, integer m, integer n, integer k, integer l, 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( ldwork, * )
work, integer ldwork)
CTPRFB applies a complex "triangular-pentagonal" block reflector to a complex matrix, which is composed of two blocks. it's literally the whole personality of this routine, ok? π
β¨ Purpose: β¨
CTPRFB applies a complex block reflector H or its conjugate transpose H**H to a complex matrix C, which is composed of two blocks A and B, either from the left or right. that's it, that's the vibe. π
π Parameters π
SIDEβCHARACTER*1= 'L': applyHorH**Hfrom the Left= 'R': applyHorH**Hfrom the Right
TRANSβCHARACTER*1= 'N': applyH(No transpose)= 'C': applyH**H(Conjugate transpose)
DIRECTβCHARACTER*1Indicates howHis 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βCHARACTER*1Indicates how the vectors which define the elementary reflectors are stored:= 'C': Columns= 'R': Rows
MβINTEGERThe number of rows of the matrixB.M >= 0.NβINTEGERThe number of columns of the matrixB.N >= 0.KβINTEGERThe order of the matrixT, i.e. the number of elementary reflectors whose product defines the block reflector.K >= 0.LβINTEGERThe order of the trapezoidal part ofV.K >= L >= 0. See Further Details.VβCOMPLEX 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 reflectors H(1), H(2), ..., H(K). See Further Details.
LDVβINTEGERThe leading dimension of the arrayV. IfSTOREV = 'C'andSIDE = 'L',LDV >= max(1,M); ifSTOREV = 'C'andSIDE = 'R',LDV >= max(1,N); ifSTOREV = 'R',LDV >= K.TβCOMPLEX array, dimension(LDT,K)The triangularK-by-KmatrixTin the representation of the block reflector.LDTβINTEGERThe leading dimension of the arrayT.LDT >= K.AβCOMPLEX array, dimension
(LDA,N) if SIDE = 'L' or (LDA,K) if SIDE = 'R'
On entry, the K-by-N or M-by-K matrix A. On exit, A is overwritten by the corresponding block of H*C or H**H*C or C*H or C*H**H. See Further Details.
LDAβINTEGERThe leading dimension of the arrayA. IfSIDE = 'L',LDA >= max(1,K); IfSIDE = 'R',LDA >= max(1,M).BβCOMPLEX array, dimension(LDB,N)On entry, theM-by-NmatrixB. On exit,Bis overwritten by the corresponding block ofH*CorH**H*CorC*HorC*H**H. See Further Details.LDBβINTEGERThe leading dimension of the arrayB.LDB >= max(1,M).WORKβCOMPLEX array, dimension
(LDWORK,N) if SIDE = 'L',
(LDWORK,K) if SIDE = 'R'.
LDWORKβINTEGERThe leading dimension of the arrayWORK. IfSIDE = 'L',LDWORK >= K; ifSIDE = 'R',LDWORK >= M.
π Author π
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
π§ Further Details: π§
The matrix 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. π (yes, the trapezoid leaves when L=0, iconic behaviour)
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 ctprfb.f. π
π subroutine dtprfb π
subroutine dtprfb (character side, character trans, character direct,
character storev, integer m, integer n, integer k, integer l, 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( ldwork, * ) work, integer ldwork)
DTPRFB applies a real "triangular-pentagonal" block reflector to a real matrix, which is composed of two blocks. yes bestie, it's the real one β DOUBLE PRECISION everywhere, no imaginary parts invited π
β¨ Purpose: β¨
DTPRFB 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βCHARACTER*1= 'L': applyHorH**Tfrom the Left= 'R': applyHorH**Tfrom the Right
TRANSβCHARACTER*1= 'N': applyH(No transpose)= 'T': applyH**T(Transpose)
DIRECTβCHARACTER*1Indicates howHis 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βCHARACTER*1Indicates how the vectors which define the elementary reflectors are stored:= 'C': Columns= 'R': Rows
MβINTEGERThe number of rows of the matrixB.M >= 0.NβINTEGERThe number of columns of the matrixB.N >= 0.KβINTEGERThe order of the matrixT, i.e. the number of elementary reflectors whose product defines the block reflector.K >= 0.LβINTEGERThe order of the trapezoidal part ofV.K >= L >= 0. See Further Details.VβDOUBLE PRECISION 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 reflectors H(1), H(2), ..., H(K). See Further Details.
LDV
okay bestie that's where this part stops β the LDV description is being dramatic and continuing in the next part, so don't go anywhere π
β¨
LDVβ okay soLDVis anINTEGER, and it's the leading dimension of the arrayV, bestie. IfSTOREV = 'C'andSIDE = 'L', thenLDV >= max(1,M); ifSTOREV = 'C'andSIDE = 'R', thenLDV >= max(1,N); and ifSTOREV = 'R', thenLDV >= K. No cap, that's the rule πTβTis aDOUBLE PRECISIONarray, dimension(LDT,K). It's the triangularK-by-KmatrixTin the representation of the block reflector. Iconic little triangle, honestly πLDTβLDTis anINTEGER, the leading dimension of the arrayT. AndLDT >= K. Periodt β¨AβAis aDOUBLE PRECISIONarray, dimension(LDA,N)ifSIDE = 'L'or(LDA,K)ifSIDE = 'R'. On entry, it's theK-by-NorM-by-KmatrixA. On exit,Ais overwritten by the corresponding block ofH*CorH**T*CorC*HorC*H**T. See Further Details, bestie πLDAβLDAis anINTEGER, the leading dimension of the arrayA. IfSIDE = 'L', thenLDA >= max(1,K); ifSIDE = 'R', thenLDA >= max(1,M). Slay those bounds πΈBβBis aDOUBLE PRECISIONarray, dimension(LDB,N). On entry, it's theM-by-NmatrixB. On exit,Bis overwritten by the corresponding block ofH*CorH**T*CorC*HorC*H**T. See Further Details. She's getting rewritten, not ignored πLDBβLDBis anINTEGER, the leading dimension of the arrayB. AndLDB >= max(1,M). That's the vibe check forLDBπ¦WORKβWORKis aDOUBLE PRECISIONarray, dimension(LDWORK,N)ifSIDE = 'L', or(LDWORK,K)ifSIDE = 'R'. The workspace is lowkey doing the most π«ΆLDWORKβLDWORKis anINTEGER, the leading dimension of the arrayWORK. IfSIDE = 'L', thenLDWORK >= K; ifSIDE = 'R', thenLDWORK >= M. That's the whole rule, no extra lore β¨
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
β¨ Further Details β¨
The matrix 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. She's a combo situation, not a single matrix, iykyk π
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. It's giving shape-shifter, but make it linear algebra π§
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)
And the size situation, because context is everything:
- If
STOREV = 'C'andSIDE = 'L',VisM-by-KwithV2L-by-K. - If
STOREV = 'C'andSIDE = 'R',VisN-by-KwithV2L-by-K. - If
STOREV = 'R'andSIDE = 'L',VisK-by-MwithV2K-by-L. - If
STOREV = 'R'andSIDE = 'R',VisK-by-NwithV2K-by-L.
Definition at line 249 of file dtprfb.f.
π¦ subroutine stprfb π¦
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. Same energy as before, but now we're in REAL territory, bestie π
π 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. Left or right, she's applying either way π
β¨ Parameters β¨
SIDEβSIDEisCHARACTER*1.= 'L': applyHorH**Tfrom the Left.= 'R': applyHorH**Tfrom the Right. Pick a side, any side πTRANSβTRANSisCHARACTER*1.= 'N': applyH(No transpose).= 'T': applyH**T(Transpose). TheTstands for "transpose era", obviously β¨DIRECTβDIRECTisCHARACTER*1, and it indicates howHis 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). Forward or backward, she contains multitudes π¦STOREVβSTOREVisCHARACTER*1, and it indicates how the vectors which define the elementary reflectors are stored.= 'C': Columns.= 'R': Rows. Columns or rows, the vectors are stored with intention πMβMis anINTEGER. It's the number of rows of the matrixB. AndM >= 0. Respect the zero case, bestie π«ΆNβNis anINTEGER. It's the number of columns of the matrixB. AndN >= 0. Again: zero is valid, no erasure πΈKβKis anINTEGER. It's the order of the matrixT, i.e. the number of elementary reflectors whose product defines the block reflector. AndK >= 0. The reflectors are reflecting, periodt πLβLis anINTEGER. It's the order of the trapezoidal part ofV. AndK >= L >= 0. See Further Details. Trapezoidal era is real π₯VβVis aREALarray, dimension(LDV,K)ifSTOREV = 'C',(LDV,M)ifSTOREV = 'R'andSIDE = 'L', or(LDV,N)ifSTOREV = 'R'andSIDE = 'R'. It's the pentagonal matrixV, which contains the elementary reflectorsH(1), H(2), ..., H(K). See Further Details. Pentagonal, not regular pentagon, don't get it twisted π§LDVβLDVis anINTEGER, the leading dimension of the arrayV. IfSTOREV = 'C'andSIDE = 'L', thenLDV >= max(1,M); ifSTOREV = 'C'andSIDE = 'R', thenLDV >= max(1,N); ifSTOREV = 'R', thenLDV >= K. Same leading-dimension rules, new datatype, no cap πTβTis aREALarray, dimension(LDT,K). It's the triangularK-by-KmatrixTin the representation of the block reflector. Triangular and thriving βLDTβLDTis anINTEGER, the leading dimension of the arrayT. AndLDT >= K. That's it, that's the constraint πAβAis aREALarray, dimension(LDA,N)ifSIDE = 'L'or(LDA,K)ifSIDE = 'R'. On entry, it's theK-by-NorM-by-KmatrixA. On exit,Ais overwritten by the corresponding block ofH*CorH**T*CorC*HorC*H**T. See Further Details. She enters as herself and leaves as the corresponding block, main character behavior πLDAβLDAis anINTEGER, the leading dimension of the arrayA. IfSIDE = 'L', thenLDA >= max(1,K); ifSIDE = 'R', thenLDA >= max(1,M). KeepLDAfed and happy πΈBβBis aREALarray, dimension(LDB,N). On entry, it's theM-by-NmatrixB. On exit,Bis overwritten by the corresponding block ofH*CorH**T*CorC*HorC*H**T. See Further Details. Overwritten, but make it fashion πLDBβLDBis anINTEGER, the leading dimension of the arrayB. AndLDB >= max(1,M). TheBmatrix deserves proper leading-dimension care π¦WORKβWORKis aREALarray, dimension(LDWORK,N)ifSIDE = 'L', or(LDWORK,K)ifSIDE = 'R'. Workspace stays working, honestly π«ΆLDWORKβLDWORKis anINTEGER, the leading dimension of the arrayWORK. IfSIDE = 'L', thenLDWORK >= K; ifSIDE = 'R', thenLDWORK >= M. Respect the workspace bounds, bestie β¨
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
πΈ Further Details πΈ
okay so the matrix C is a composite matrix made from blocks A and B. Block B is M-by-N; if SIDE = 'R', then A is M-by-K, and if SIDE = 'L', then A is 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]
- V2 is upper trapezoidal (first L rows of K-by-K upper triangular)
If DIRECT = 'F' and STOREV = 'R': V = [V1 V2]
- V2 is lower trapezoidal (first L columns of K-by-K lower triangular)
If DIRECT = 'B' and STOREV = 'C': V = [V2]
[V1]
- V2 is lower trapezoidal (last L rows of K-by-K lower triangular)
If DIRECT = 'B' and STOREV = 'R': V = [V2 V1]
- V2 is upper trapezoidal (last L columns of K-by-K upper 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.
π subroutine ztprfb β complex edition π
subroutine ztprfb (character side, character trans, character direct,
character storev, integer m, integer n, integer k, integer l,
complex*16, dimension( ldv, * ) v, integer ldv, complex*16, dimension(
ldt, * ) t, integer ldt, complex*16, dimension( lda, * ) a, integer lda,
complex*16, dimension( ldb, * ) b, integer ldb, complex*16, dimension(
ldwork, * ) work, integer ldwork)
ZTPRFB applies a complex "triangular-pentagonal" block reflector to a complex matrix, which is composed of two blocks. iconic behavior honestly β¨
π Purpose π
ZTPRFB applies a complex block reflector H or its conjugate transpose H**H to a complex matrix C, which is composed of two blocks A and B, either from the left or right. π¦
π Parameters (the whole guest list) π
SIDEβSIDEisCHARACTER*1;= 'L': applyHorH**Hfrom the Left;= 'R': applyHorH**Hfrom the Right.TRANSβTRANSisCHARACTER*1;= 'N': applyH(No transpose);= 'C': applyH**H(Conjugate transpose).DIRECTβDIRECTisCHARACTER*1; indicates howHis 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 matrixB.M >= 0.NβNisINTEGER; the number of columns of the matrixB.N >= 0.KβKisINTEGER; the order of the matrixT, i.e. the number of elementary reflectors whose product defines the block reflector.K >= 0.LβLisINTEGER; the order of the trapezoidal part ofV.K >= L >= 0. See Further Details.VβVisCOMPLEX*16array, dimension(LDV,K)ifSTOREV = 'C';(LDV,M)ifSTOREV = 'R'andSIDE = 'L';(LDV,N)ifSTOREV = 'R'andSIDE = 'R'. The pentagonal matrixV, which contains the elementary reflectorsH(1), H(2), ..., H(K). See Further Details.LDVβLDVisINTEGER; the leading dimension of the arrayV. IfSTOREV = 'C'andSIDE = 'L',LDV >= max(1,M); ifSTOREV = 'C'andSIDE = 'R',LDV >= max(1,N); ifSTOREV = 'R',LDV >= K.TβTisCOMPLEX*16array, dimension(LDT,K). The triangularK-by-KmatrixTin the representation of the block reflector.LDTβLDTisINTEGER; the leading dimension of the arrayT.LDT >= K.AβAisCOMPLEX*16array, 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 ofH*CorH**H*CorC*HorC*H**H. See Further Details.LDAβLDAisINTEGER; the leading dimension of the arrayA. IfSIDE = 'L',LDA >= max(1,K); IfSIDE = 'R',LDA >= max(1,M).BβBisCOMPLEX*16array, dimension(LDB,N). On entry, theM-by-NmatrixB. On exit,Bis overwritten by the corresponding block ofH*CorH**H*CorC*HorC*H**H. See Further Details.LDBβLDBisINTEGER; the leading dimension of the arrayB.LDB >= max(1,M).WORKβWORKisCOMPLEX*16array, dimension(LDWORK,N)ifSIDE = 'L',(LDWORK,K)ifSIDE = 'R'.LDWORKβLDWORKisINTEGER; the leading dimension of the arrayWORK. IfSIDE = 'L',LDWORK >= K; ifSIDE = 'R',LDWORK >= M.
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
β¨ Further Details: the encore β¨
The matrix 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]
- V2 is upper trapezoidal (first L rows of K-by-K upper triangular)
If DIRECT = 'F' and STOREV = 'R': V = [V1 V2]
- V2 is lower trapezoidal (first L columns of K-by-K lower triangular)
If DIRECT = 'B' and STOREV = 'C': V = [V2]
[V1]
- V2 is lower trapezoidal (last L rows of K-by-K lower triangular)
If DIRECT = 'B' and STOREV = 'R': V = [V2 V1]
- V2 is upper trapezoidal (last L columns of K-by-K upper 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 ztprfb.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
Cute sign-off, bestie: this page is from LAPACK, Version 3.12.0, and the footer's date-ish spot ends with tprfb(3) β no separate date printed in this copy, no cap. πβ¨
π¦ 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