SRC/dtpttr.f(3)

πŸ’… SRC/dtpttr.f β€” a whole LAPACK man page, but make it cute

okay bestie, gather round, because we're diving into SRC/dtpttr.f from the Library Functions Manual and honestly? she's lowkey iconic. it's giving "small routine, big personality." let's get into it 🫢


✨ SYNOPSIS ✨

🧚 Functions/Subroutines

  • subroutine dtpttr (uplo, n, ap, a, lda, info) β€” DTPTTR copies a triangular matrix from the standard packed format (TP) to the standard full format (TR). that's the whole gig. she unpacks. she delivers. periodt. πŸŽ€

πŸ”₯ Function/Subroutine Documentation πŸ”₯

πŸ’œ subroutine dtpttr

subroutine dtpttr (character uplo, integer n, double precision, dimension( * ) ap, double precision, dimension( lda, * ) a, integer lda, integer info)

DTPTTR copies a triangular matrix from the standard packed format (TP) to the standard full format (TR).

🌸 Purpose:

!>
!> DTPTTR copies a triangular matrix A from standard packed format (TP)
!> to standard full format (TR).
!>

literally her entire personality: take the squished-up packed triangle, spread it out into the full triangle. no notes. πŸ‘‘

🌈 Parameters

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

so like, which half of the triangle are we even talking about? 'U' = upper girly, 'L' = lower girly. pick one, bestie, you can't have both πŸ’…

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

the order of matrix A. and yes, N >= 0 β€” zero is allowed, don't be weird about it πŸ™ˆ

  • AP
!>          AP is DOUBLE PRECISION 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.
!>

okay so this is the packed one β€” dimension ( N*(N+1)/2 ), packed columnwise into a linear array, no cap. on entry it holds the upper-or-lower triangular matrix A. the j-th column lives at:

  • 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.

those index formulas? memorise them or cry about them, your call 😭 iykyk.

  • A
!>          A is DOUBLE PRECISION array, dimension ( LDA, N )
!>          On exit, the triangular matrix A.  If UPLO = 'U', the leading
!>          N-by-N upper triangular part of A contains the upper
!>          triangular part of the matrix A, and the strictly lower
!>          triangular part of A is not referenced.  If UPLO = 'L', the
!>          leading N-by-N lower triangular part of A contains the lower
!>          triangular part of the matrix A, and the strictly upper
!>          triangular part of A is not referenced.
!>

this one's dimension ( LDA, N ) and on exit she's the triangular matrix A, all spread out. if UPLO = 'U', the leading N-by-N upper triangular part of A holds the upper triangular part of the matrix A β€” and the strictly lower triangular part is not referenced, don't even look at her. if UPLO = 'L', it's the flip: the leading N-by-N lower triangular part of A holds the lower triangular part, and the strictly upper triangular part is not referenced. mind your business on the other half, respectfully πŸ™…β€β™€οΈ

  • LDA
!>          LDA is INTEGER
!>          The leading dimension of the array A.  LDA >= max(1,N).
!>

leading dimension of the array A. LDA >= max(1,N) β€” that's the vibe check, and yes, max(1,N) is doing the heavy lifting so N = 0 doesn't ruin everything πŸ¦‹

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

the receipts πŸ“‹: = 0 means successful exit, slay. < 0 means if INFO = -i, the i-th argument had an illegal value β€” somebody typed nonsense, and this is the callout πŸ’€

πŸ‘‘ Author

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

⭐ Definition

Definition at line 103 of file dtpttr.f.


πŸŽ€ Author

Generated automatically by Doxygen for LAPACK from the source code. yes, a robot wrote this, and she ate πŸ“


ngl bestie, the real takeaway: packed in, full out, UPLO picks the triangle, INFO tells you if anyone fumbled. everything else is just index math and main character energy ✨

and that's the whole page β€” LAPACK, Version 3.12.0, documented in SRC/dtpttr.f(3). go forth and unpack your triangles, queen πŸ’–πŸŒˆ

πŸ“¦ where this page comes from