STFTTR(3)
π STFTTR
okay so bestie, we're in the LAPACK Library Functions Manual today and the file we're stanning is literally /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/stfttr.f β yes that's the whole path, i'm not typing it twice, it's giving "my home directory is a novel" π
π NAME
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/stfttr.f
like⦠that's the file. that's the whole name section. slay.
β¨ SYNOPSIS
πΈ Functions/Subroutines
subroutine STFTTR (transr, uplo, n, arf, a, lda, info)β STFTTR copies a triangular matrix from the rectangular full packed format (TF) to the standard full format (TR).
π«Ά Function/Subroutine Documentation
π the actual subroutine
subroutine STFTTR (character transr, character uplo, integer n, real,
dimension( 0: * ) arf, real, dimension( 0: lda-1, 0: * ) a, integer lda,
integer info)
STFTTR copies a triangular matrix from the rectangular full packed format (TF) to the standard full format (TR). it's a glow-up in matrix form, no cap β¨
π₯ Purpose:
!>
!> STFTTR copies a triangular matrix A from rectangular full packed
!> format (TF) to standard full format (TR).
!>
like, it takes your triangle out of the squished RFP packaging and unfolds it into a normal, roomy array. unpacking haul vlog energy π
π Parameters
π« TRANSR
!> TRANSR is CHARACTER*1
!> = 'N': ARF is in Normal format;
!> = 'T': ARF is in Transpose format.
!>
so TRANSR tells us which way ARF is facing β 'N' = Normal format, 'T' = Transpose format. pick your fighter π¦
π¦ UPLO
!> UPLO is CHARACTER*1
!> = 'U': A is upper triangular;
!> = 'L': A is lower triangular.
!>
'U' means A is upper triangular, 'L' means A is lower triangular. top half or bottom half, choose wisely bestie π
β N
!> N is INTEGER
!> The order of the matrices ARF and A. N >= 0.
!>
N is an INTEGER: the order of the matrices ARF and A, and N >= 0 is non-negotiable, fr fr.
π ARF
!> ARF is REAL array, dimension (N*(N+1)/2).
!> On entry, the upper (if UPLO = 'U') or lower (if UPLO = 'L')
!> matrix A in RFP format. See the below for more
!> details.
!>
ARF is a REAL array with dimension (N*(N+1)/2) β and yes, that's the input side. on entry it holds the upper (if UPLO = 'U') or lower (if UPLO = 'L') matrix A in RFP format. "See the below for more details" β the original literally says that, i'm not fixing it, i'm just reporting π (the details are down in Further Details, keep scrolling π)
π§ A
!> A is REAL array, dimension (LDA,N)
!> On exit, the triangular matrix A. If UPLO = 'U', the
!> leading N-by-N upper triangular part of the array A contains
!> the upper triangular matrix, and the strictly lower
!> triangular part of A is not referenced. If UPLO = 'L', the
!> leading N-by-N lower triangular part of the array A contains
!> the lower triangular matrix, and the strictly upper
!> triangular part of A is not referenced.
!>
A is a REAL array, dimension (LDA,N), and on exit it's the triangular matrix, periodt. if UPLO = 'U', the leading N-by-N upper triangular part of A holds the upper triangular matrix, and the strictly lower triangular part of A is not referenced (so don't come for it, it's not part of the conversation π). if UPLO = 'L', the leading N-by-N lower triangular part of A holds the lower triangular matrix, and the strictly upper triangular part of A is not referenced. symmetrical queen behavior π
π LDA
!> LDA is INTEGER
!> The leading dimension of the array A. LDA >= max(1,N).
!>
LDA is an INTEGER: the leading dimension of the array A, and LDA >= max(1,N). that's max(1,N) bestie, do not skip the max, the 1 is load-bearing π«Ά
π₯ INFO
!> INFO is INTEGER
!> = 0: successful exit
!> < 0: if INFO = -i, the i-th argument had an illegal value
!>
INFO is an INTEGER and it's your little status report: = 0 means successful exit (we love a clean exit π), < 0 means if INFO = -i, the i-th argument had an illegal value (somebody in the group chat misbehaved, and INFO is naming names π).
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
the whole squad is credited, we love to see it π«Ά
π 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
!>
okay so that block is a LOT but it's literally the whole "how does RFP packing actually look" lore and you're gonna read it because i said so π§ the even case first (N = 6), then TRANSR = 'N' vs TRANSR = 'T', then the odd case (N = 5) and the same two flavors. every index, every row, every column β it's all up there, i did not touch a single digit, i promise on my life π
π« Definition at line 195 of file stfttr.f.
π Author
Generated automatically by Doxygen for LAPACK from the source code.
(yeah that's a second Author section, the original has two, i don't make the rules, i just vibe with them π )
signing off π«Ά β this page came to you from LAPACK, Version 3.12.0, dated /home/abui...RC/stfttr.f(3), and honestly? iconic. drink some water, go to bed, and remember: LDA >= max(1,N). periodt πΈβ¨
π¦ where this page comes from
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms