SRC/csytri.f(3)
π SRC/csytri.f π
okay so bestie, gather round, because this is the manual page for SRC/csytri.f, straight out of the Library Functions Manual β and it's genuinely iconic. no cap. β¨
π¦ NAME π¦
SRC/csytri.f β that's it, that's the name, she's mysterious like that π
πΈ SYNOPSIS πΈ
Functions/Subroutines
subroutine csytri (uplo, n, a, lda, ipiv, work, info)β CSYTRI, the main character herself π
π Function/Subroutine Documentation π
subroutine csytri π§
here's the whole glow-up, full signature, nothing skipped:
subroutine csytri (character uplo, integer n, complex, dimension( lda, * )
a, integer lda, integer, dimension( * ) ipiv, complex, dimension( * )
work, integer info)
CSYTRI β¨
Purpose:
!> !> CSYTRI computes the inverse of a complex symmetric indefinite matrix !> A using the factorizationA = U*D*U**TorA = L*D*L**Tcomputed by !> CSYTRF. !>
so yeah β she doesn't invent the factorization, she takes what CSYTRF already did and flips it into an inverse. team effort fr fr π«Ά
Parameters π
UPLOβUPLO is CHARACTER*1, and it's literally just telling you whether the factorization details are stored as an upper or lower triangular matrix:= 'U': Upper triangular, form isA = U*D*U**T;= 'L': Lower triangular, form isA = L*D*L**T.
NβN is INTEGER, aka the order of the matrixA. and listen:N >= 0. respect the boundary bestie πAβA is COMPLEX array, dimension (LDA,N). on entry? it's the block diagonal matrixDplus the multipliers used to obtain the factorUorLas computed byCSYTRF. on exit, ifINFO = 0, it's the (symmetric) inverse of the original matrix π iconic transformation honestly. and the details, because they matter:- If
UPLO = 'U', the upper triangular part of the inverse is formed and the part ofAbelow the diagonal is not referenced; - if
UPLO = 'L'the lower triangular part of the inverse is formed and the part ofAabove the diagonal is not referenced.
- If
LDAβLDA is INTEGER, the leading dimension of the arrayA. and the rule isLDA >= max(1,N)β no wiggle room, she said what she said πIPIVβIPIV is INTEGER array, dimension (N). this one's carrying the details of the interchanges and the block structure ofDas determined byCSYTRF. iykyk πWORKβWORK is COMPLEX array, dimension (2*N)β just a workspace, doing her little job quietly, we love her πINFOβINFO is INTEGER, the vibe check at the end:= 0: successful exit π< 0: ifINFO = -i, the i-th argument had an illegal value π> 0: ifINFO = i,D(i,i) = 0; the matrix is singular and its inverse could not be computed π
lowkey important: that last one is the "she's singular, the inverse is NOT happening" case. not a warning to gloss over, bestie β no inverse for you. π₯
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
also: Definition at line 113 of file csytri.f. β go look, she's there πΈ
β Author (again, but make it doxygen) β
Generated automatically by Doxygen for LAPACK from the source code. π€β¨
so that's the whole page angel, every flag, every dimension, every >= max(1,N), untouched and accounted for π
signing off from LAPACK, Version 3.12.0, dated SRC/csytri.f(3) β mwah, go invert something symmetric π¦π
π¦ 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