/home/abui...nvf_rook.f(3)
π
/home/abui...nvf_rook.f(3) β Library Functions Manual β¨
okay so bestie, this page lives in the Library Functions Manual section and it's literally all about one LAPACK subroutine, so buckle up π
πΈ NAME πΈ
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/csyconvf_rook.f
yes, the NAME is a whole entire file path. iconic of her, honestly. that's the source file, no cap π
β¨ SYNOPSIS β¨
π¦ Functions/Subroutines
subroutine CSYCONVF_ROOK (uplo, way, n, a, lda, e, ipiv, info)
CSYCONVF_ROOK β that's her, that's the whole function π«Ά
π Function/Subroutine Documentation π
subroutine CSYCONVF_ROOK (character uplo, character way, integer n, complex,
dimension( lda, * ) a, integer lda, complex, dimension( * ) e, integer,
dimension( * ) ipiv, integer info)
CSYCONVF_ROOK π
π§ Purpose:
If parameter WAY = 'C':CSYCONVF_ROOKconverts the factorization output format used inCSYTRF_ROOKprovided on entry in parameter A into the factorization output format used inCSYTRF_RK(orCSYTRF_BK) that is stored on exit in parameters A and E. IPIV format forCSYTRF_ROOKandCSYTRF_RK(orCSYTRF_BK) is the same and is not converted. If parameter WAY = 'R':CSYCONVF_ROOKperforms the conversion in reverse direction, i.e. converts the factorization output format used inCSYTRF_RK(orCSYTRF_BK) provided on entry in parameters A and E into the factorization output format used inCSYTRF_ROOKthat is stored on exit in parameter A. IPIV format forCSYTRF_ROOKandCSYTRF_RK(orCSYTRF_BK) is the same and is not converted.CSYCONVF_ROOKcan also convert in Hermitian matrix case, i.e. between formats used inCHETRF_ROOKandCHETRF_RK(orCHETRF_BK).
so basically she's a translator between two friend groups of factorization formats, and she can go both ways, and the IPIV format just... stays the same the whole time. no conversion needed, she's already fluent π
π Parameters π
UPLO
UPLOisCHARACTER*1Specifies whether the details of the factorization are stored as an upper or lower triangular matrix A. ='U': Upper triangular ='L': Lower triangular
pick your triangle, bestie β up or down, there is no in-between π
WAY
WAYisCHARACTER*1='C': Convert ='R': Revert
one letter decides the whole direction of the journey. main character energy fr fr π₯
N
NisINTEGERThe order of the matrix A.N >= 0.
just don't be negative, that's the whole vibe check β¨
A
AisCOMPLEXarray, dimension(LDA,N)1) If WAY ='C': On entry, contains factorization details in format used inCSYTRF_ROOK: a) all elements of the symmetric block diagonal matrix D on the diagonal of A and on superdiagonal (or subdiagonal) of A, and b) If UPLO ='U': multipliers used to obtain factor U in the superdiagonal part of A. If UPLO ='L': multipliers used to obtain factor L in the superdiagonal part of A. On exit, contains factorization details in format used inCSYTRF_RKorCSYTRF_BK: a) ONLY diagonal elements of the symmetric block diagonal matrix D on the diagonal of A, i.e.D(k,k) = A(k,k);(superdiagonal (or subdiagonal) elements of D are stored on exit in array E), and b) If UPLO ='U': factor U in the superdiagonal part of A. If UPLO ='L': factor L in the subdiagonal part of A. 2) If WAY ='R': On entry, contains factorization details in format used inCSYTRF_RKorCSYTRF_BK: a) ONLY diagonal elements of the symmetric block diagonal matrix D on the diagonal of A, i.e.D(k,k) = A(k,k);(superdiagonal (or subdiagonal) elements of D are stored on exit in array E), and b) If UPLO ='U': factor U in the superdiagonal part of A. If UPLO ='L': factor L in the subdiagonal part of A. On exit, contains factorization details in format used inCSYTRF_ROOK: a) all elements of the symmetric block diagonal matrix D on the diagonal of A and on superdiagonal (or subdiagonal) of A, and b) If UPLO ='U': multipliers used to obtain factor U in the superdiagonal part of A. If UPLO ='L': multipliers used to obtain factor L in the superdiagonal part of A.
literally the switch-up queen of the whole routine β she goes in one format and comes out another, and then back again if you ask nicely π
note that the subdiagonal/superdiagonal gymnastics completely depend on whether UPLO is 'U' or 'L', so read that carefully, no skipping π«Ά
LDA
LDAisINTEGERThe leading dimension of the array A.LDA >= max(1,N).
the classic. respect the leading dimension or perish π
E
EisCOMPLEXarray, dimension(N)1) If WAY ='C': On entry, just a workspace. On exit, contains the superdiagonal (or subdiagonal) elements of the symmetric block diagonal matrix D with 1-by-1 or 2-by-2 diagonal blocks, where If UPLO ='U':E(i) = D(i-1,i),i=2:N,E(1)is set to 0; If UPLO ='L':E(i) = D(i+1,i),i=1:N-1,E(N)is set to 0. 2) If WAY ='R': On entry, contains the superdiagonal (or subdiagonal) elements of the symmetric block diagonal matrix D with 1-by-1 or 2-by-2 diagonal blocks, where If UPLO ='U':E(i) = D(i-1,i),i=2:N,E(1)not referenced; If UPLO ='L':E(i) = D(i+1,i),i=1:N-1,E(N)not referenced. On exit, is not changed
so in the 'C' direction she starts as an empty little workspace and comes out absolutely booked and busy with the D off-diagonals. in the 'R' direction she already knows everything and leaves untouched. queen behavior π
IPIV
IPIVisINTEGERarray, dimension(N)On entry, details of the interchanges and the block structure of D as determined: 1) byCSYTRF_ROOK, if WAY ='C'; 2) byCSYTRF_RK(orCSYTRF_BK), if WAY ='R'. The IPIV format is the same for all these routines. On exit, is not changed.
untouched, unbothered, unbothered. the format matches across all of them so she literally doesn't have to lift a finger π
INFO
INFOisINTEGER= 0: successful exit < 0: ifINFO = -i, the i-th argument had an illegal value
zero means slay, negative means one of your arguments was messy π
π Author π
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
the whole squad contributed, we love a collab π«Ά
π§ Contributors: π§
November 2017, Igor Kozachenko, Computer Science Division, University of California, Berkeley
shoutout Igor, November 2017, CS Division, UC Berkeley β a legend, fr fr β
π Definition at line 199 of file csyconvf_rook.f.
line 199, bestie. go look π
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
(not a human, a robot, and honestly she ate π€β¨)
and that's the whole page! this is LAPACK, Version 3.12.0, straight out of /home/abui...nvf_rook.f(3) β mwah, go convert something π
πΈπ
π¦ 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