/home/abui...RC/ztfsm.f(3)
π NAME π
okay so bestie, this page is literally about a file, not a command β it's the man page for
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/ztfsm.f
which is a Fortran source file from LAPACK, and the little star in ztfsm.f doesn't mean anything cutesy, it's just how Fortran files get documented. anyway, welcome to the group chat π
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine ZTFSM (transr, side, uplo, trans, diag, m, n, alpha, a, b,
ldb)
so like, ZTFSM solves a matrix equation where one operand is a triangular matrix in RFP format. that's the whole vibe π₯
π¦ Function/Subroutine Documentation π¦
subroutine ZTFSM (character transr, character side, character uplo,
character trans, character diag, integer m, integer n, complex*16 alpha,
complex*16, dimension( 0: * ) a, complex*16, dimension( 0: ldb-1, 0: * )
b, integer ldb)
ZTFSM solves a matrix equation (one operand is a triangular matrix in RFP format). icon behavior, honestly π
πΈ Purpose πΈ
it's a Level 3 BLAS like routine for A in RFP Format. ZTFSM solves the matrix equation
op( A )*X = alpha*B or X*op( A ) = alpha*B
where alpha is a scalar, X and B are m by n matrices, A is a unit, or non-unit, upper or lower triangular matrix and op( A ) is one of
op( A ) = A or op( A ) = A**H.
A is in Rectangular Full Packed (RFP) Format.
the matrix X is overwritten on B. not me giving you the answer by destroying your input array π that's just how it is bestie.
π Parameters π
TRANSRβTRANSR is CHARACTER*1= 'N': The Normal Form of RFP A is stored;= 'C': The Conjugate-transpose Form of RFP A is stored.
SIDEβSIDE is CHARACTER*1On entry,SIDEspecifies whetherop( A )appears on the left or right ofXas follows:SIDE = 'L' or 'l'βop( A )*X = alpha*B.SIDE = 'R' or 'r'βX*op( A ) = alpha*B.
Unchanged on exit.
UPLOβUPLO is CHARACTER*1On entry,UPLOspecifies whether the RFP matrixAcame from an upper or lower triangular matrix as follows:UPLO = 'U' or 'u'β RFPAcame from an upper triangular matrixUPLO = 'L' or 'l'β RFPAcame from a lower triangular matrix
Unchanged on exit.
TRANSβTRANS is CHARACTER*1On entry,TRANSspecifies the form ofop( A )to be used in the matrix multiplication as follows:TRANS = 'N' or 'n'βop( A ) = A.TRANS = 'C' or 'c'βop( A ) = conjg( A' ).
Unchanged on exit.
DIAGβDIAG is CHARACTER*1On entry,DIAGspecifies whether or not RFPAis unit triangular as follows:DIAG = 'U' or 'u'βAis assumed to be unit triangular.DIAG = 'N' or 'n'βAis not assumed to be unit triangular.
Unchanged on exit.
MβM is INTEGEROn entry,Mspecifies the number of rows ofB.Mmust be at least zero. Unchanged on exit.NβN is INTEGEROn entry,Nspecifies the number of columns ofB.Nmust be at least zero. Unchanged on exit.ALPHAβALPHA is COMPLEX*16On entry,ALPHAspecifies the scalaralpha. Whenalphais zero thenAis not referenced andBneed not be set before entry. Unchanged on exit.AβA is COMPLEX*16 array, dimension (N*(N+1)/2)NT = N*(N+1)/2. On entry, the matrixAin RFP Format. RFP Format is described byTRANSR,UPLOandNas follows: IfTRANSR='N'then RFPAis(0:N,0:K-1)whenNis even;K=N/2. RFPAis(0:N-1,0:K)whenNis odd;K=N/2. IfTRANSR = 'C'then RFP is the Conjugate-transpose of RFPAas defined whenTRANSR = 'N'. The contents of RFPAare defined byUPLOas follows: IfUPLO = 'U'the RFPAcontains theNTelements of upper packedAeither in normal or conjugate-transpose Format. IfUPLO = 'L'the RFPAcontains theNTelements of lower packedAeither in normal or conjugate-transpose Format. The LDA of RFPAis(N+1)/2whenTRANSR = 'C'. WhenTRANSRis'N'the LDA isN+1whenNis even and isNwhen is odd. See the Note below for more details. Unchanged on exit.BβB is COMPLEX*16 array, dimension (LDB,N)Before entry, the leadingmbynpart of the arrayBmust contain the right-hand side matrixB, and on exit is overwritten by the solution matrixX.LDBβLDB is INTEGEROn entry,LDBspecifies the first dimension ofBas declared in the calling (sub) program.LDBmust be at leastmax( 1, m ). Unchanged on exit.
π«Ά heads up bestie:Bgets absolutely demolished β it comes in as your right-hand side and leaves asX. copy it first if you still need it, iykyk.
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
the whole squad really said "we built this" π
π Further Details: π
okay this is the part where it gets lowkey gorgeous β the diagrams are literally art. keeping them exactly as they are because you do NOT want me paraphrasing linear algebra ASCII, bestie.
First, Standard Packed Format when N is even. Example where N = 6.
AP is Upper AP is Lower
00 01 02 03 04 05 00
11 12 13 14 15 10 11
22 23 24 25 20 21 22
33 34 35 30 31 32 33
44 45 40 41 42 43 44
55 50 51 52 53 54 55
Let TRANSR = 'N'. RFP holds AP as follows: For UPLO = 'U' the upper trapezoid A(0:5,0:2) consists of the last three columns of AP upper. The lower triangle A(4:6,0:2) consists of conjugate-transpose of the first three columns of AP upper. For UPLO = 'L' the lower trapezoid A(1:6,0:2) consists of the first three columns of AP lower. The upper triangle A(0:2,0:2) consists of conjugate-transpose of the last three columns of AP lower. To denote conjugate we place -- above the element. This covers the case N even and TRANSR = 'N'.
RFP A RFP A
-- -- --
03 04 05 33 43 53
-- --
13 14 15 00 44 54
--
23 24 25 10 11 55
33 34 35 20 21 22
--
00 44 45 30 31 32
-- --
01 11 55 40 41 42
-- -- --
02 12 22 50 51 52
Now let TRANSR = 'C'. RFP A in both UPLO cases is just the conjugate-transpose of RFP A above. One therefore gets:
RFP A RFP A
-- -- -- -- -- -- -- -- -- --
03 13 23 33 00 01 02 33 00 10 20 30 40 50
-- -- -- -- -- -- -- -- -- --
04 14 24 34 44 11 12 43 44 11 21 31 41 51
-- -- -- -- -- -- -- -- -- --
05 15 25 35 45 55 22 53 54 55 22 32 42 52
Next, Standard Packed Format when N is odd. Example where N = 5.
AP is Upper AP is Lower
00 01 02 03 04 00
11 12 13 14 10 11
22 23 24 20 21 22
33 34 30 31 32 33
44 40 41 42 43 44
Let TRANSR = 'N'. RFP holds AP as follows: For UPLO = 'U' the upper trapezoid A(0:4,0:2) consists of the last three columns of AP upper. The lower triangle A(3:4,0:1) consists of conjugate-transpose of the first two columns of AP upper. For UPLO = 'L' the lower trapezoid A(0:4,0:2) consists of the first three columns of AP lower. The upper triangle A(0:1,1:2) consists of conjugate-transpose of the last two columns of AP lower. To denote conjugate we place -- above the element. This covers the case N odd and TRANSR = 'N'.
RFP A RFP A
-- --
02 03 04 00 33 43
--
12 13 14 10 11 44
22 23 24 20 21 22
--
00 33 34 30 31 32
-- --
01 11 44 40 41 42
Now let TRANSR = 'C'. RFP A in both UPLO cases is just the conjugate-transpose of RFP A above. One therefore gets:
RFP A RFP A
-- -- -- -- -- -- -- -- --
02 12 22 00 01 00 10 20 30 40 50
-- -- -- -- -- -- -- -- --
03 13 23 33 11 33 11 21 31 41 51
-- -- -- -- -- -- -- -- --
04 14 24 34 44 43 44 22 32 42 52
Definition at line 296 of file ztfsm.f. π
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
yes bestie, a robot wrote the documentation about the code. it's giving meta. it's giving full circle. π
LAPACK Β· Version 3.12.0 Β· /home/abui...RC/ztfsm.f(3)
and that's the whole page, bestie β slayed, documented, and every last -- in place. periodt. πβ¨ππ¦
π¦ 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