/home/abui...nvf_rook.f(3)
π
/home/abui...nvf_rook.f β oh we're in the Library Functions Manual bestie, buckle up π
okay so this is one of those auto-generated LAPACK pages and honestly? it's lowkey iconic. it's a Fortran source file page for zsyconvf_rook.f, and it's giving β¨ "I convert factorizations for a living" β¨ energy.
πΈ NAME πΈ
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zsyconvf_rook.f
yes that's the whole name. it's a whole path. she's long. she's committed. periodt π
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine ZSYCONVF_ROOK (uplo, way, n, a, lda, e, ipiv, info)
ZSYCONVF_ROOK β that's her. that's the icon herself.
π¦ Function/Subroutine Documentation π¦
subroutine ZSYCONVF_ROOK (character uplo, character way, integer n,
complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension( *
) e, integer, dimension( * ) ipiv, integer info)
ZSYCONVF_ROOK
π Purpose π
okay so here's the tea, bestie β this routine is a format converter. it takes factorization output in one layout and flips it into another. no cap.
If parameterWAY = 'C':ZSYCONVF_ROOKconverts the factorization output format used inZSYTRF_ROOKprovided on entry in parameterAinto the factorization output format used inZSYTRF_RK(orZSYTRF_BK) that is stored on exit in parametersAandE.IPIVformat forZSYTRF_ROOKandZSYTRF_RK(orZSYTRF_BK) is the same and is not converted.
If parameterWAY = 'R':ZSYCONVF_ROOKperforms the conversion in reverse direction, i.e. converts the factorization output format used inZSYTRF_RK(orZSYTRF_BK) provided on entry in parametersAandEinto the factorization output format used inZSYTRF_ROOKthat is stored on exit in parameterA.IPIVformat forZSYTRF_ROOKandZSYTRF_RK(orZSYTRF_BK) is the same and is not converted.
ZSYCONVF_ROOKcan also convert in Hermitian matrix case, i.e. between formats used inZHETRF_ROOKandZHETRF_RK(orZHETRF_BK).
so she's bilingual π forward and backward, symmetric and Hermitian. versatile queen.
π Parameters π
UPLO
UPLOisCHARACTER*1Specifies whether the details of the factorization are stored as an upper or lower triangular matrixA. ='U': Upper triangular ='L': Lower triangular
pick your triangle, bestie πΊ
WAY
WAYisCHARACTER*1='C': Convert ='R': Revert
'C' = convert, 'R' = revert. two moods, both valid π«Ά
N
NisINTEGERThe order of the matrixA.N >= 0.
the size. the ~vibe~. and yes, N >= 0 is a hard requirement, don't come at her with a negative π
A
AisCOMPLEX*16array, dimension(LDA,N)
1) If WAY ='C':
On entry, contains factorization details in format used inZSYTRF_ROOK: a) all elements of the symmetric block diagonal matrixDon the diagonal ofAand on superdiagonal (or subdiagonal) ofA, and b) IfUPLO = 'U': multipliers used to obtain factorUin the superdiagonal part ofA. IfUPLO = 'L': multipliers used to obtain factorLin the superdiagonal part ofA. On exit, contains factorization details in format used inZSYTRF_RKorZSYTRF_BK: a) ONLY diagonal elements of the symmetric block diagonal matrixDon the diagonal ofA, i.e.D(k,k) = A(k,k); (superdiagonal (or subdiagonal) elements ofDare stored on exit in arrayE), and b) IfUPLO = 'U': factorUin the superdiagonal part ofA. IfUPLO = 'L': factorLin the subdiagonal part ofA.
2) If WAY = 'R':
On entry, contains factorization details in format used inZSYTRF_RKorZSYTRF_BK: a) ONLY diagonal elements of the symmetric block diagonal matrixDon the diagonal ofA, i.e.D(k,k) = A(k,k); (superdiagonal (or subdiagonal) elements ofDare stored on exit in arrayE), and b) IfUPLO = 'U': factorUin the superdiagonal part ofA. IfUPLO = 'L': factorLin the subdiagonal part ofA. On exit, contains factorization details in format used inZSYTRF_ROOK: a) all elements of the symmetric block diagonal matrixDon the diagonal ofAand on superdiagonal (or subdiagonal) ofA, and b) IfUPLO = 'U': multipliers used to obtain factorUin the superdiagonal part ofA. IfUPLO = 'L': multipliers used to obtain factorLin the superdiagonal part ofA.
she literally contains multitudes π
LDA
LDAisINTEGERThe leading dimension of the arrayA.LDA >= max(1,N).
leading dimension, iconic. must satisfy LDA >= max(1,N) β that's not a suggestion, that's the law βοΈ
E
EisCOMPLEX*16array, dimension(N)
1) If WAY ='C':
On entry, just a workspace. On exit, contains the superdiagonal (or subdiagonal) elements of the symmetric block diagonal matrixDwith 1-by-1 or 2-by-2 diagonal blocks, where IfUPLO = 'U':E(i) = D(i-1,i),i=2:N,E(1)is set to 0; IfUPLO = '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 matrixDwith 1-by-1 or 2-by-2 diagonal blocks, where IfUPLO = 'U':E(i) = D(i-1,i),i=2:N,E(1)not referenced; IfUPLO = 'L':E(i) = D(i+1,i),i=1:N-1,E(N)not referenced. On exit, is not changed
glow-up note: in 'C' mode E starts as just a workspace and becomes something. character development fr fr π±
IPIV
IPIVisINTEGERarray, dimension(N)On entry, details of the interchanges and the block structure ofDas determined: 1) byZSYTRF_ROOK, ifWAY ='C'; 2) byZSYTRF_RK(orZSYTRF_BK), ifWAY ='R'. TheIPIVformat is the same for all these routines. On exit, is not changed.
she literally does not touch IPIV. it stays exactly as it is. respect π
INFO
INFOisINTEGER=0: successful exit <0: ifINFO = -i, thei-thargument had an illegal value
so if INFO is negative, it's snitching on which argument you fumbled π -i means the i-th one. read the room.
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
the whole squad showed up. academic royalty honestly π
π§ Contributors: π§
November 2017, Igor Kozachenko, Computer Science Division, University of California, Berkeley
shoutout Igor, November 2017, CS Division, UC Berkeley β the main character who wrote this π«‘β¨
β Definition at line 199 of file zsyconvf_rook.f. β
line 199. noted. if you're reading the source, that's where she lives π
πΈ Author πΈ
Generated automatically by Doxygen for LAPACK from the source code.
not a human. a machine. and yet she ate π€π
and that's the whole page bestie!! π this was LAPACK, Version 3.12.0, dated /home/abui...nvf_rook.f(3) β mwah, go convert some factorizations, ily ππ¦β¨
π¦ 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