hetri(3)
π hetri(3) π
okay so real talk: this is from the Library Functions Manual, and it's the manual page for hetri β the {he,sy}tri girlies, aka the triangular inverse squad. Six whole subroutines live here and every single one of them is about undoing a factorization that somebody else already did. no cap, it's giving "inverse era" π¦
β¨ NAME β¨
hetri β {he,sy}tri: triangular inverse. that's the whole name, bestie, she's concise π
πΈ SYNOPSIS πΈ
π Functions
subroutine chetri (uplo, n, a, lda, ipiv, work, info)βCHETRIsubroutine csytri (uplo, n, a, lda, ipiv, work, info)βCSYTRIsubroutine dsytri (uplo, n, a, lda, ipiv, work, info)βDSYTRIsubroutine ssytri (uplo, n, a, lda, ipiv, work, info)βSSYTRIsubroutine zhetri (uplo, n, a, lda, ipiv, work, info)βZHETRIsubroutine zsytri (uplo, n, a, lda, ipiv, work, info)βZSYTRI
π¦ Detailed Description π¦
this is where it gets juicy β the function documentation, one baddie at a time π
π₯ Function Documentation π₯
β subroutine chetri (character uplo, integer n, complex, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, complex, dimension( * ) work, integer info)
π CHETRI
Purpose:
CHETRI computes the inverse of a complex Hermitian indefinite matrix A using the factorization A = U*D*U**H or A = L*D*L**H computed by CHETRF. it's giving "you did CHETRF, now let me finish the job" β¨
Parameters
UPLOβUPLOisCHARACTER*1. it specifies whether the details of the factorization are stored as an upper or lower triangular matrix.= 'U': upper triangular, form isA = U*D*U**H;= 'L': lower triangular, form isA = L*D*L**H.
NβNisINTEGER. the order of the matrixA.N >= 0.AβAisCOMPLEXarray, dimension(LDA,N).- On entry, the block diagonal matrix
Dand the multipliers used to obtain the factorUorLas computed byCHETRF. - On exit, if
INFO = 0, the (Hermitian) inverse of the original matrix. IfUPLO = 'U', the upper triangular part of the inverse is formed and the part ofAbelow the diagonal is not referenced; ifUPLO = 'L'the lower triangular part of the inverse is formed and the part ofAabove the diagonal is not referenced.
- On entry, the block diagonal matrix
LDAβLDAisINTEGER. the leading dimension of the arrayA.LDA >= max(1,N).IPIVβIPIVisINTEGERarray, dimension(N). details of the interchanges and the block structure ofDas determined byCHETRF.WORKβWORKisCOMPLEXarray, dimension(N).INFOβINFOisINTEGER.= 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.
π Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 113 of file chetri.f.
β 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 factorization A = U*D*U**T or A = L*D*L**T computed by CSYTRF. symmetric this time, not Hermitian β note the **T, bestie, the transpose is doing the work π
Parameters
UPLOβUPLOisCHARACTER*1. it specifies whether the details of the factorization 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βNisINTEGER. the order of the matrixA.N >= 0.AβAisCOMPLEXarray, dimension(LDA,N).- On entry, the block diagonal matrix
Dand the multipliers used to obtain the factorUorLas computed byCSYTRF. - On exit, if
INFO = 0, the (symmetric) inverse of the original matrix. IfUPLO = 'U', the upper triangular part of the inverse is formed and the part ofAbelow the diagonal is not referenced; ifUPLO = 'L'the lower triangular part of the inverse is formed and the part ofAabove the diagonal is not referenced.
- On entry, the block diagonal matrix
LDAβLDAisINTEGER. the leading dimension of the arrayA.LDA >= max(1,N).IPIVβIPIVisINTEGERarray, dimension(N). details of the interchanges and the block structure ofDas determined byCSYTRF.WORKβWORKisCOMPLEXarray, dimension(2*N). β οΈ yes bestie,2*Nβ this one's hungrier than her sisters, do not skimp on the workspace.INFOβINFOisINTEGER.= 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.
π Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 113 of file csytri.f.
β subroutine dsytri (character uplo, integer n, double precision, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, double precision, dimension( * ) work, integer info)
π DSYTRI
Purpose:
DSYTRI computes the inverse of a real symmetric indefinite matrix A using the factorization A = U*D*U**T or A = L*D*L**T computed by DSYTRF. double precision, real symmetric, absolutely ate π₯
Parameters
UPLOβUPLOisCHARACTER*1. it specifies whether the details of the factorization 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βNisINTEGER. the order of the matrixA.N >= 0.AβAisDOUBLE PRECISIONarray, dimension(LDA,N).- On entry, the block diagonal matrix
Dand the multipliers used to obtain the factorUorLas computed byDSYTRF. - On exit, if
INFO = 0, the (symmetric) inverse of the original matrix. IfUPLO = 'U', the upper triangular part of the inverse is formed and the part ofAbelow the diagonal is not referenced; ifUPLO = 'L'the lower triangular part of the inverse is formed and the part ofAabove the diagonal is not referenced.
- On entry, the block diagonal matrix
LDAβLDAisINTEGER. the leading dimension of the arrayA.LDA >= max(1,N).IPIVβIPIVisINTEGERarray, dimension(N). details of the interchanges and the block structure ofDas determined byDSYTRF.WORKβWORKisDOUBLE PRECISIONarray, dimension(N).INFOβINFOisINTEGER.= 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.
π Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 113 of file dsytri.f.
β subroutine ssytri (character uplo, integer n, real, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, real, dimension( * ) work, integer info)
π SSYTRI
Purpose:
SSYTRI computes the inverse of a real symmetric indefinite matrix A using the factorization A = U*D*U**T or A = L*D*L**T computed by SSYTRF. single precision version, same energy, smaller floats π
Parameters
UPLOβUPLOisCHARACTER*1. it specifies whether the details of the factorization 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βNisINTEGER. the order of the matrixA.N >= 0.AβAisREALarray, dimension(LDA,N).- On entry, the block diagonal matrix
Dand the multipliers used to obtain the factorUorLas computed bySSYTRF. - On exit, if
INFO = 0, the (symmetric) inverse of the original matrix. IfUPLO = 'U', the upper triangular part of the inverse is formed and the part ofAbelow the diagonal is not referenced; ifUPLO = 'L'the lower triangular part of the inverse is formed and the part ofAabove the diagonal is not referenced.
- On entry, the block diagonal matrix
LDAβLDAisINTEGER. the leading dimension of the arrayA.LDA >= max(1,N).IPIVβIPIVisINTEGERarray, dimension(N). details of the interchanges and the block structure ofDas determined bySSYTRF.WORKβWORKisREALarray, dimension(N).INFOβINFOisINTEGER.= 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.
π Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 113 of file ssytri.f.
β subroutine zhetri (character uplo, integer n, complex*16, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, complex*16, dimension( * ) work, integer info)
π ZHETRI
Purpose:
ZHETRI computes the inverse of a complex Hermitian indefinite matrix A using the factorization A = U*D*U**H or A = L*D*L**H computed by ZHETRF. the double-complex Hermitian main character, she's literally the blueprint π
Parameters
π UPLO
and this is where part one of the page runs out, bestie β UPLO is only just getting introduced... the rest of her parameters are in part two π«Ά
β¨ UPLO β¨
UPLOisCHARACTER*1- Tells us whether the deets of the factorization got stored as an upper or lower triangular matrix, bestie:
= 'U':upper triangular, form isA = U*D*U**H;= 'L':lower triangular, form isA = L*D*L**H.
πΈ N πΈ
NisINTEGER- The order of the matrix
A.N >= 0, always.
π¦ A π¦
AisCOMPLEX*16array, dimension(LDA,N)- On entry: the block diagonal matrix
Dand the multipliers used to obtain the factorUorLas computed byZHETRF. - On exit, if
INFO = 0, the (Hermitian) inverse of the original matrix. IfUPLO = 'U', the upper triangular part of the inverse is formed and the part ofAbelow the diagonal is not referenced; ifUPLO = 'L'the lower triangular part of the inverse is formed and the part ofAabove the diagonal is not referenced. So yeah, half of it is literally just vibing, unread π
π LDA π
LDAisINTEGER- The leading dimension of the array
A.LDA >= max(1,N).
β IPIV β
IPIVisINTEGERarray, dimension(N)- All the details of the interchanges and the block structure of
D, as determined byZHETRF.
π WORK π
WORKisCOMPLEX*16array, dimension(N)
π INFO π
INFOisINTEGER= 0:successful exit β slay π< 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. Not me showing up to invert a singular matrix π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 113 of file zhetri.f.
π¦ okay now the next one β ZSYTRI π¦
subroutine zsytri (character uplo, integer n, complex*16, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, complex*16, dimension( * ) work, integer info)
π«Ά Purpose π«Ά
ZSYTRIcomputes the inverse of a complex symmetric indefinite matrixAusing the factorizationA = U*D*U**TorA = L*D*L**Tcomputed byZSYTRF.
Note the energy shift: this one's symmetric with a plain **T transpose, not Hermitian with **H. Know the difference, iykyk π
β¨ Parameters β¨
β¨ UPLO β¨
UPLOisCHARACTER*1- Specifies whether the details of the factorization 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 π
NisINTEGER- The order of the matrix
A.N >= 0.
π§ A π§
AisCOMPLEX*16array, dimension(LDA,N)- On entry: the block diagonal matrix
Dand the multipliers used to obtain the factorUorLas computed byZSYTRF. - On exit, if
INFO = 0, the (symmetric) inverse of the original matrix. IfUPLO = 'U', the upper triangular part of the inverse is formed and the part ofAbelow the diagonal is not referenced; ifUPLO = 'L'the lower triangular part of the inverse is formed and the part ofAabove the diagonal is not referenced. Same deal β the other half of the array is not even looked at π
π LDA π
LDAisINTEGER- The leading dimension of the array
A.LDA >= max(1,N).
π₯ IPIV π₯
IPIVisINTEGERarray, dimension(N)- Details of the interchanges and the block structure of
D, as determined byZSYTRF.
π WORK π
WORKisCOMPLEX*16array, dimension(2*N)
Real talk: it's(2*N)here, not(N)like inZHETRI. Do not reuse the same workspace sizing and then act surprised. That's not the vibe.
π INFO π
INFOisINTEGER= 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. Singular matrix found dead in a ditch π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 113 of file zsytri.f.
π Author π
This whole page was generated automatically by Doxygen for LAPACK from the source code β nobody hand-typed this, it's giving β¨ automation β¨.
and that's the whole page, bestie, you made it to the end π«Ά This was hetri(3) from LAPACK, Version 3.12.0 β go forth and invert responsibly, and remember: INFO never lies π
β¨
π¦ 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