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*1and it's literally telling you which formatARFis 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 INTEGERand 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
- 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