SRC/dtfttp.f(3)

✨ SRC/dtfttp.f ✨

okay so bestie, this is a whole entire LAPACK manpage and honestly? it's giving "math girlie explains her homework" vibes πŸ’…. We're looking at dtfttp.f from the LAPACK Library Functions Manual, and no cap, it's actually kinda iconic once you get past the Fortran.


πŸŽ€ SYNOPSIS πŸŽ€

Functions/Subroutines

  • subroutine dtfttp (transr, uplo, n, arf, ap, info) β€” DTFTTP copies a triangular matrix from the rectangular full packed format (TF) to the standard packed format (TP).

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

subroutine dtfttp (character transr, character uplo, integer n, double precision, dimension( 0: * ) arf, double precision, dimension( 0: * ) ap, integer info)

DTFTTP copies a triangular matrix from the rectangular full packed format (TF) to the standard packed format (TP).

πŸ’– Purpose:

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

like, that's the whole point of her existence, periodt ✨


🌸 Parameters

  • TRANSR β€” TRANSR is CHARACTER*1 and it's literally telling you which format ARF is in:
!>          = 'N':  ARF is in Normal format;
!>          = 'T':  ARF is in Transpose format;
  • UPLO β€” also CHARACTER*1, and it's the vibe check for which triangle we're dealing with:
!>          = 'U':  A is upper triangular;
!>          = 'L':  A is lower triangular.
  • N β€” N is INTEGER, no cap. This is the order of the matrix A. And lowkey important: N >= 0. we respect the bounds in this house 🫢
  • ARF β€” ARF is DOUBLE PRECISION array, dimension ( N*(N+1)/2 ). On entry, this holds the upper or lower triangular matrix A stored in RFP format. For a further discussion, see Notes below. (we will be getting into it, don't worry)
  • AP β€” AP is DOUBLE PRECISION array, dimension ( N*(N+1)/2 ). On exit, this is the upper or lower triangular matrix A, packed columnwise in a linear array. And here's the exact tea on how the j-th column of A gets stored:
!>          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.

(copy these formulas exactly, bestie, they're not vibesβ€”they're facts)

  • INFO β€” INFO is INTEGER and it's the emotional state report:
!>          = 0:  successful exit
!>          < 0:  if INFO = -i, the i-th argument had an illegal value

so if INFO is negative, like, something went wrong with that argument. rude πŸ’€


πŸ‘‘ Author

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

(these are the legends who made it happen, we stan)


🌈 Further Details:

okay this is the part where she gets detailed, and we absolutely are not skipping it because every single diagram matters.
!>
!>  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
!>
!>  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
!>
!>
!>  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
!>
!>  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
!>

like... the way these matrices are arranged? highkey satisfying if you're into that. and if you're not? lowkey fair, but she said what she said πŸ’…

Definition at line 186 of file dtfttp.f.


πŸ‘‘ Author

Generated automatically by Doxygen for LAPACK from the source code.


LAPACK β€’ Version 3.12.0 β€’ SRC/dtfttp.f(3)

okay that's the whole thing bestie, you ate that, go forth and pack those triangular matrices πŸ«Άβœ¨πŸ’–

πŸ“¦ where this page comes from