STPTTF(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

πŸ’… NAME πŸ’…

ok so real talk, this page is from the Library Functions Manual, and the "name" is literally just this absolute file path, no cap:

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/stpttf.f

like that's it, that's the name, she's built different 🫢


✨ SYNOPSIS ✨

Functions/Subroutines

subroutine STPTTF (transr, uplo, n, ap, arf, info)

STPTTF copies a triangular matrix from the standard packed format (TP) to the rectangular full packed format (TF). that's the whole gig bestie, one job, and she does it πŸ’–


πŸ¦‹ Function/Subroutine Documentation πŸ¦‹

subroutine STPTTF (character transr, character uplo, integer n, real,
     dimension( 0: * ) ap, real, dimension( 0: * ) arf, integer info)

STPTTF copies a triangular matrix from the standard packed format (TP) to the rectangular full packed format (TF). lowkey iconic of her ngl 🌸


🌈 Purpose 🌈

!>
!> STPTTF copies a triangular matrix A from standard packed format (TP)
!> to rectangular full packed format (TF).
!>

so u hand her a triangular matrix A all squished into standard packed format (TP), and she hands it back repacked into rectangular full packed format (TF). glow-up in array form ✨


πŸŽ€ Parameters πŸŽ€

TRANSR

!>          TRANSR is CHARACTER*1
!>          = 'N':  ARF in Normal format is wanted;
!>          = 'T':  ARF in Conjugate-transpose format is wanted.
!>

UPLO

!>          UPLO is CHARACTER*1
!>          = 'U':  A is upper triangular;
!>          = 'L':  A is lower triangular.
!>

N

!>          N is INTEGER
!>          The order of the matrix A.  N >= 0.
!>

AP

!>          AP is REAL array, dimension ( N*(N+1)/2 ),
!>          On entry, the upper or lower triangular matrix A, packed
!>          columnwise in a linear array. The j-th column of A is stored
!>          in the array AP as follows:
!>          if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
!>          if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.
!>

this is your input, bestie. on entry she's holding the upper or lower triangular matrix A, packed columnwise into one linear array. the indexing formulas above are exactly how the j-th column of A gets stored, don't @ me πŸ’…

ARF

!>          ARF is REAL array, dimension ( N*(N+1)/2 ),
!>          On exit, the upper or lower triangular matrix A stored in
!>          RFP format. For a further discussion see Notes below.
!>

this is the output, the after photo. on exit it's the same upper or lower triangular matrix A but stored in RFP format. and yes, for a further discussion see Notes below πŸ‘€

INFO

!>          INFO is INTEGER
!>          = 0:  successful exit
!>          < 0:  if INFO = -i, the i-th argument had an illegal value
!>

0 means slay, we move. anything negative means one of your arguments was out of pocket and she's telling you which one πŸ”₯


πŸ‘‘ Author πŸ‘‘

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

the whole friend group showed up for this one 🫢


πŸ”₯ Further Details πŸ”₯

ok so this is the part where she sits you down and draws diagrams on a napkin. pay attention bestie, the vibes are about to get structural.

even N, TRANSR = 'N'

!>
!>  We first consider Rectangular Full Packed (RFP) Format when N is
!>  even. We give an 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
!>  the 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
!>  the transpose of the last three columns of AP lower.
!>  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
!>

even N, TRANSR = 'T'

!>  Now let TRANSR = 'T'. RFP A in both UPLO cases is just the
!>  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
!>

transpose. that's it. that's the tweet. πŸ’€

odd N, TRANSR = 'N'

!>
!>  We then consider Rectangular Full Packed (RFP) Format when N is
!>  odd. We give an 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
!>  the 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
!>  the transpose of the last two columns of AP lower.
!>  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
!>

odd N, TRANSR = 'T'

!>  Now let TRANSR = 'T'. RFP A in both UPLO cases is just the
!>  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
!>

again: transpose of the above, both UPLO cases, every time. she's consistent and we love her for it ⭐


⭐ Author ⭐

(yes bestie, there's a second author section, don't ask)

Generated automatically by Doxygen for LAPACK from the source code.


ngl the whole page is machine-generated, so if the diagrams look like a spreadsheet had a baby, that's why πŸ™ˆ

and that's the page!! LAPACK, Version 3.12.0, living at /home/abui...RC/stpttf.f(3) β€” definition at line 185 of file stpttf.f, for the record πŸ’œ mwah, go pack some triangles πŸŽ€

πŸ“¦ where this page comes from