SRC/dtrttf.f(3)
SRC/dtrttf.f π
okay bestie, welcome to the Library Functions Manual β this is the SRC/dtrttf.f page, and yes it's giving serious LAPACK main-character energy. β¨
β¨ NAME β¨
SRC/dtrttf.f
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine dtrttf (transr, uplo, n, a, lda, arf, info)β DTRTTF copies a triangular matrix from the standard full format (TR) to the rectangular full packed format (TF). no cap, that's the whole vibe π
π Function/Subroutine Documentation π
subroutine dtrttf (character transr, character uplo, integer n, double
precision, dimension( 0: lda-1, 0: * ) a, integer lda, double precision,
dimension( 0: * ) arf, integer info)
DTRTTF copies a triangular matrix from the standard full format (TR) to the rectangular full packed format (TF).
π― Purpose
lowkey the whole point, here's the exact energy:
!>
!> DTRTTF copies a triangular matrix A from standard full format (TR)
!> to rectangular full packed format (TF) .
!>
π§Έ Parameters
TRANSR β bestie, this is the CHARACTER*1 that picks the form:
!> TRANSR is CHARACTER*1
!> = 'N': ARF in Normal form is wanted;
!> = 'T': ARF in Transpose form is wanted.
!>
UPLO β another CHARACTER*1, this one says which triangle we're storing:
!> UPLO is CHARACTER*1
!> = 'U': Upper triangle of A is stored;
!> = 'L': Lower triangle of A is stored.
!>
N β the order of matrix A, okay? N >= 0.
!> N is INTEGER
!> The order of the matrix A. N >= 0.
!>
A β the double precision array itself, dimension (LDA,N). Here's the exact lore:
!> A is DOUBLE PRECISION array, dimension (LDA,N).
!> On entry, 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.
!>
LDA β leading dimension of A, and it gotta be LDA >= max(1,N). π
!> LDA is INTEGER
!> The leading dimension of the matrix A. LDA >= max(1,N).
!>
ARF β double precision array, dimension (NT), where NT=N*(N+1)/2. On exit, the triangular matrix A in RFP format. slay.
!> ARF is DOUBLE PRECISION array, dimension (NT).
!> NT=N*(N+1)/2. On exit, the triangular matrix A in RFP format.
!>
INFO β the status bestie:
!> INFO is INTEGER
!> = 0: successful exit
!> < 0: if INFO = -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 this is the iconic RFP format deep-dive, and I'm obsessed. Here's the exact original breakdown, all the matrices and everything β do not lose a single digit π₯:
!>
!> 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
the source literally says: Definition at line 193 of file dtrttf.f.
π€ Author (generated)
Generated automatically by Doxygen for LAPACK from the source code.
and that's the tea π«Ά this page is LAPACK Version 3.12.0, final cut SRC/dtrttf.f(3) β mwah πβ¨
π¦ 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