tfttp(3)
tfttp(3) π β¨
Okay bestie, this is the tfttp page from the Library Functions Manual β and it's serving triangular matrix, RFP (tf) to packed (tp) realness. We're moving a triangular matrix out of rectangular full packed format (TF) and into standard packed format (TP). Four routines do the exact same glow-up for different data types. No cap. π«Ά
β¨ NAME β¨
tfttp β tfttp: triangular matrix, RFP (tf) to packed (tp)
πΈ SYNOPSIS πΈ
Functions
subroutine ctfttp (transr, uplo, n, arf, ap, info)βCTFTTPcopies a triangular matrix from the rectangular full packed format (TF) to the standard packed format (TP).subroutine dtfttp (transr, uplo, n, arf, ap, info)βDTFTTPcopies a triangular matrix from the rectangular full packed format (TF) to the standard packed format (TP).subroutine stfttp (transr, uplo, n, arf, ap, info)βSTFTTPcopies a triangular matrix from the rectangular full packed format (TF) to the standard packed format (TP).subroutine ztfttp (transr, uplo, n, arf, ap, info)βZTFTTPcopies a triangular matrix from the rectangular full packed format (TF) to the standard packed format (TP).
π Detailed Description π
This is the intro zone, bestie β the actual function tea is right below. π
π Function Documentation π
subroutine ctfttp
subroutine ctfttp (character transr, character uplo, integer n, complex, dimension( 0: * ) arf, complex, dimension( 0: * ) ap, integer info)
CTFTTP copies a triangular matrix from the rectangular full packed format (TF) to the standard packed format (TP).
Purpose
The whole point: CTFTTP copies a triangular matrix A from rectangular full packed format (TF) to standard packed format (TP).
Parameters
TRANSRβTRANSRisCHARACTER*1.= 'N':ARFis in Normal format;= 'C':ARFis in Conjugate-transpose format;
UPLOβUPLOisCHARACTER*1.= 'U':Ais upper triangular;= 'L':Ais lower triangular.
NβNisINTEGER. The order of the matrixA.N >= 0.ARFβARFisCOMPLEX array, dimension ( N*(N+1)/2 ),On entry, the upper or lower triangular matrixAstored in RFP format. For a further discussion see Notes below.APβAPisCOMPLEX array, dimension ( N*(N+1)/2 ),On exit, the upper or lower triangular matrixA, packed columnwise in a linear array. The j-th column ofAis stored in the arrayAPas follows:- if
UPLO = 'U',AP(i + (j-1)*j/2) = A(i,j)for1<=i<=j; - if
UPLO = 'L',AP(i + (j-1)*(2n-j)/2) = A(i,j)forj<=i<=n.
- if
INFOβINFOisINTEGER.= 0:successful exit< 0:ifINFO = -i, the i-th argument had an illegal value
Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Further Details
First up: standard packed format when N is even. Example time: 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
Now let TRANSR = 'N'. RFP holds AP like this:
- For
UPLO = 'U', the upper trapezoidA(0:5,0:2)consists of the last three columns ofAPupper. The lower triangleA(4:6,0:2)consists of conjugate-transpose of the first three columns ofAPupper. - For
UPLO = 'L', the lower trapezoidA(1:6,0:2)consists of the first three columns ofAPlower. The upper triangleA(0:2,0:2)consists of conjugate-transpose of the last three columns ofAPlower.
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. So you get:
!> 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: 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 trapezoidA(0:4,0:2)consists of the last three columns ofAPupper. The lower triangleA(3:4,0:1)consists of conjugate-transpose of the first two columns ofAPupper. - For
UPLO = 'L', the lower trapezoidA(0:4,0:2)consists of the first three columns ofAPlower. The upper triangleA(0:1,1:2)consists of conjugate-transpose of the last two columns ofAPlower.
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. So you get:
!> 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 207 of file ctfttp.f.
subroutine dtfttp
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).
Parameters
TRANSRβTRANSRisCHARACTER*1.= 'N':ARFis in Normal format;= 'T':ARFis in Transpose format;
UPLOβUPLOisCHARACTER*1.= 'U':Ais upper triangular;= 'L':Ais lower triangular.
NβNisINTEGER. The order of the matrixA.N >= 0.ARFβARFisDOUBLE PRECISION array, dimension ( N*(N+1)/2 ),On entry, the upper or lower triangular matrixAstored in RFP format. For a further discussion see Notes below.APβAPisDOUBLE PRECISION array, dimension ( N*(N+1)/2 ),On exit, the upper or lower triangular matrixA, packed columnwise in a linear array. The j-th column ofAis stored in the arrayAPas follows:- if
UPLO = 'U',AP(i + (j-1)*j/2) = A(i,j)for1<=i<=j; - if
UPLO = 'L',AP(i + (j-1)*(2n-j)/2) = A(i,j)forj<=i<=n.
- if
INFOβINFOisINTEGER.= 0:successful exit< 0:ifINFO = -i, the i-th argument had an illegal value
Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Further Details:
okay so before we even touch the next subroutine, we gotta actually look at the RFP (Rectangular Full Packed) format with our own two eyes, because ngl it's giving geometry class but make it fashion π β¨
the even-N situation, bestie (N = 6) π
so first we consider RFP format when N is even. Example time: 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 like this, and I need you to lock in π:
- For UPLO =
'U', the upper trapezoidA(0:5,0:2)consists of the last three columns of AP upper. The lower triangleA(4:6,0:2)consists of the transpose of the first three columns of AP upper. - For UPLO =
'L', the lower trapezoidA(1:6,0:2)consists of the first three columns of AP lower. The upper triangleA(0:2,0:2)consists of the transpose of the last three columns of AP lower.
That 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 β plot twist β let TRANSR = 'T'. RFP A in both UPLO cases is just the transpose of RFP A above. So one therefore gets, and yes it's iconic:
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
and now the odd-N one π¦ (N = 5)
okay so then we consider RFP format when N is odd. Example: 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, no cap:
- For UPLO =
'U', the upper trapezoidA(0:4,0:2)consists of the last three columns of AP upper. The lower triangleA(3:4,0:1)consists of the transpose of the first two columns of AP upper. - For UPLO =
'L', the lower trapezoidA(0:4,0:2)consists of the first three columns of AP lower. The upper triangleA(0:1,1:2)consists of the transpose of the last two columns of AP lower.
That 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
subroutine stfttp (character transr, character uplo, integer n, real, dimension( 0: * ) arf, real, dimension( 0: * ) ap, integer info)
subroutine stfttp (character transr, character uplo, integer n, real,
dimension( 0: * ) arf, real, dimension( 0: * ) ap, integer info)
STFTTP copies a triangular matrix from the rectangular full packed format (TF) to the standard packed format (TP). Basically a glow-up from one storage format to another, and she ate π₯
Purpose:
STFTTP copies a triangular matrix A from rectangular full packed format (TF) to standard packed format (TP). That's it, that's the whole mission, periodt π
Parameters
TRANSRβ it's aCHARACTER*1:= 'N':ARF is in Normal format;= 'T':ARF is in Transpose format;
UPLOβ also aCHARACTER*1:= 'U':A is upper triangular;= 'L':A is lower triangular.
NβINTEGER, the order of the matrix A. Constraint bestie:N >= 0.ARFβREALarray, dimension( N*(N+1)/2 ). On entry, the upper or lower triangular matrix A stored in RFP format. For a further discussion see Notes below. πAPβREALarray, dimension( N*(N+1)/2 ). On exit, the upper or lower triangular matrix A, packed columnwise in a linear array. The j-th column of A is stored in the arrayAPas follows:- if
UPLO = 'U',AP(i + (j-1)*j/2) = A(i,j)for1<=i<=j; - if
UPLO = 'L',AP(i + (j-1)*(2n-j)/2) = A(i,j)forj<=i<=n.
- if
INFOβINTEGER:= 0:successful exit π< 0:ifINFO = -i, the i-th argument had an illegal value π
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Further Details:
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
Definition at line 186 of file stfttp.f.
subroutine ztfttp (character transr, character uplo, integer n, complex*16, dimension( 0: * ) arf, complex*16, dimension( 0: * ) ap, integer info)
subroutine ztfttp (character transr, character uplo, integer n, complex*16,
dimension( 0: * ) arf, complex*16, dimension( 0: * ) ap, integer info)
ZTFTTP</purl> β okay fixing that, ZTFTTP copies a triangular matrix from the rectangular full packed format (TF) to the standard packed format (TP). Same errand as stfttp but she's complex now, main character energy π
Purpose:
ZTFTTP copies a triangular matrix A from rectangular full packed format (TF) to standard packed format (TP).
Parameters
TRANSRβCHARACTER*1, and note bestie, this one's different from the real version:= 'N':ARF is in Normal format;= 'C':ARF is in Conjugate-transpose format;
UPLOβCHARACTER*1:= 'U':A is upper triangular;= 'L':A is lower triangular.
NβINTEGER, the order of the matrix A.N >= 0.ARFβCOMPLEX*16array, dimension( N*(N+1)/2 ). On entry, the upper or lower triangular matrix A stored in RFP format. For a further discussion see Notes below.APβCOMPLEX*16array, dimension( N*(N+1)/2 ). On exit, the upper or lower triangular matrix A, packed columnwise in a linear array. The j-th column of A is stored in the arrayAPas follows:- if
UPLO = 'U',AP(i + (j-1)*j/2) = A(i,j)for1<=i<=j; - if
UPLO = 'L',AP(i + (j-1)*(2n-j)/2) = A(i,j)forj<=i<=n.
- if
INFOisINTEGERβ the vibe check at the end, and she never lies π= 0: successful exit β we ate, zero crumbs, glowing skin β¨< 0: ifINFO = -i, the i-th argument had an illegal value β so like, argument number i showed up to the function in the wrong outfit π bestie go fix it
π Author
Okay so this whole thing was a group project and honestly they carried:
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Four institutions, one matrix format, no drama. Iconic behavior fr fr π«Ά
π Further Details
Grab a snack, bestie, this is the part where the packed format gets explained with, like, actual diagrams. It's giving math lecture but make it cute. π
So first we're considering Standard Packed Format when N is even. Example time: 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
Now let TRANSR = 'N'. RFP holds AP as follows:
- For
UPLO = 'U'the upper trapezoidA(0:5,0:2)consists of the last three columns ofAPupper. The lower triangleA(4:6,0:2)consists of conjugate-transpose of the first three columns ofAPupper. - For
UPLO = 'L'the lower trapezoidA(1:6,0:2)consists of the first three columns ofAPlower. The upper triangleA(0:2,0:2)consists of conjugate-transpose of the last three columns ofAPlower.
To denote conjugate we place -- above the element. This covers the case N even and TRANSR = 'N'. Look at her go π¦
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 β and yes the little --s moved, she's flexible like that π
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 we consider Standard Packed Format when N is odd. Example where N = 5. Same energy, different number π₯
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 trapezoidA(0:4,0:2)consists of the last three columns ofAPupper. The lower triangleA(3:4,0:1)consists of conjugate-transpose of the first two columns ofAPupper. - For
UPLO = 'L'the lower trapezoidA(0:4,0:2)consists of the first three columns ofAPlower. The upper triangleA(0:1,1:2)consists of conjugate-transpose of the last two columns ofAPlower.
To denote conjugate we place -- above the element. This covers the case N odd and TRANSR = 'N'. Periodt. β¨
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 207 of file ztfttp.f. π (yes she lives in a .f file, we respect the Fortran queen)
π Author (the auto-generated one)
Generated automatically by Doxygen for LAPACK from the source code. Not a human, just a little robot doing its best π€π
And that's the whole page, bestie! You read all three parts, you understood the trapezoids, you survived the -- notation β genuinely main character energy. π₯π
Signed, sealed, delivered: this was LAPACK, Version 3.12.0, page tfttp(3). Go forth and pack your matrices responsibly π¦πΈπ
π¦ 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