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) β€” CHETRI
  • subroutine csytri (uplo, n, a, lda, ipiv, work, info) β€” CSYTRI
  • subroutine dsytri (uplo, n, a, lda, ipiv, work, info) β€” DSYTRI
  • subroutine ssytri (uplo, n, a, lda, ipiv, work, info) β€” SSYTRI
  • subroutine zhetri (uplo, n, a, lda, ipiv, work, info) β€” ZHETRI
  • subroutine 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 β€” UPLO is CHARACTER*1. it specifies whether the details of the factorization are stored as an upper or lower triangular matrix.
    • = 'U': upper triangular, form is A = U*D*U**H;
    • = 'L': lower triangular, form is A = L*D*L**H.
  • N β€” N is INTEGER. the order of the matrix A. N >= 0.
  • A β€” A is COMPLEX array, dimension (LDA,N).
    • On entry, the block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by CHETRF.
    • On exit, if INFO = 0, the (Hermitian) inverse of the original matrix. If UPLO = 'U', the upper triangular part of the inverse is formed and the part of A below the diagonal is not referenced; if UPLO = 'L' the lower triangular part of the inverse is formed and the part of A above the diagonal is not referenced.
  • LDA β€” LDA is INTEGER. the leading dimension of the array A. LDA >= max(1,N).
  • IPIV β€” IPIV is INTEGER array, dimension (N). details of the interchanges and the block structure of D as determined by CHETRF.
  • WORK β€” WORK is COMPLEX array, dimension (N).
  • INFO β€” INFO is INTEGER.
    • = 0: successful exit
    • < 0: if INFO = -i, the i-th argument had an illegal value
    • > 0: if INFO = 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 β€” UPLO is CHARACTER*1. it specifies whether the details of the factorization are stored as an upper or lower triangular matrix.
    • = 'U': upper triangular, form is A = U*D*U**T;
    • = 'L': lower triangular, form is A = L*D*L**T.
  • N β€” N is INTEGER. the order of the matrix A. N >= 0.
  • A β€” A is COMPLEX array, dimension (LDA,N).
    • On entry, the block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by CSYTRF.
    • On exit, if INFO = 0, the (symmetric) inverse of the original matrix. If UPLO = 'U', the upper triangular part of the inverse is formed and the part of A below the diagonal is not referenced; if UPLO = 'L' the lower triangular part of the inverse is formed and the part of A above the diagonal is not referenced.
  • LDA β€” LDA is INTEGER. the leading dimension of the array A. LDA >= max(1,N).
  • IPIV β€” IPIV is INTEGER array, dimension (N). details of the interchanges and the block structure of D as determined by CSYTRF.
  • WORK β€” WORK is COMPLEX array, dimension (2*N). ⚠️ yes bestie, 2*N β€” this one's hungrier than her sisters, do not skimp on the workspace.
  • INFO β€” INFO is INTEGER.
    • = 0: successful exit
    • < 0: if INFO = -i, the i-th argument had an illegal value
    • > 0: if INFO = 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 β€” UPLO is CHARACTER*1. it specifies whether the details of the factorization are stored as an upper or lower triangular matrix.
    • = 'U': upper triangular, form is A = U*D*U**T;
    • = 'L': lower triangular, form is A = L*D*L**T.
  • N β€” N is INTEGER. the order of the matrix A. N >= 0.
  • A β€” A is DOUBLE PRECISION array, dimension (LDA,N).
    • On entry, the block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by DSYTRF.
    • On exit, if INFO = 0, the (symmetric) inverse of the original matrix. If UPLO = 'U', the upper triangular part of the inverse is formed and the part of A below the diagonal is not referenced; if UPLO = 'L' the lower triangular part of the inverse is formed and the part of A above the diagonal is not referenced.
  • LDA β€” LDA is INTEGER. the leading dimension of the array A. LDA >= max(1,N).
  • IPIV β€” IPIV is INTEGER array, dimension (N). details of the interchanges and the block structure of D as determined by DSYTRF.
  • WORK β€” WORK is DOUBLE PRECISION array, dimension (N).
  • INFO β€” INFO is INTEGER.
    • = 0: successful exit
    • < 0: if INFO = -i, the i-th argument had an illegal value
    • > 0: if INFO = 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 β€” UPLO is CHARACTER*1. it specifies whether the details of the factorization are stored as an upper or lower triangular matrix.
    • = 'U': upper triangular, form is A = U*D*U**T;
    • = 'L': lower triangular, form is A = L*D*L**T.
  • N β€” N is INTEGER. the order of the matrix A. N >= 0.
  • A β€” A is REAL array, dimension (LDA,N).
    • On entry, the block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by SSYTRF.
    • On exit, if INFO = 0, the (symmetric) inverse of the original matrix. If UPLO = 'U', the upper triangular part of the inverse is formed and the part of A below the diagonal is not referenced; if UPLO = 'L' the lower triangular part of the inverse is formed and the part of A above the diagonal is not referenced.
  • LDA β€” LDA is INTEGER. the leading dimension of the array A. LDA >= max(1,N).
  • IPIV β€” IPIV is INTEGER array, dimension (N). details of the interchanges and the block structure of D as determined by SSYTRF.
  • WORK β€” WORK is REAL array, dimension (N).
  • INFO β€” INFO is INTEGER.
    • = 0: successful exit
    • < 0: if INFO = -i, the i-th argument had an illegal value
    • > 0: if INFO = 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 ✨

  • UPLO is CHARACTER*1
  • Tells us whether the deets of the factorization got stored as an upper or lower triangular matrix, bestie:
    • = 'U': upper triangular, form is A = U*D*U**H;
    • = 'L': lower triangular, form is A = L*D*L**H.

🌸 N 🌸

  • N is INTEGER
  • The order of the matrix A. N >= 0, always.

πŸ¦‹ A πŸ¦‹

  • A is COMPLEX*16 array, dimension (LDA,N)
  • On entry: the block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by ZHETRF.
  • On exit, if INFO = 0, the (Hermitian) inverse of the original matrix. If UPLO = 'U', the upper triangular part of the inverse is formed and the part of A below the diagonal is not referenced; if UPLO = 'L' the lower triangular part of the inverse is formed and the part of A above the diagonal is not referenced. So yeah, half of it is literally just vibing, unread πŸ’…

πŸŽ€ LDA πŸŽ€

  • LDA is INTEGER
  • The leading dimension of the array A. LDA >= max(1,N).

⭐ IPIV ⭐

  • IPIV is INTEGER array, dimension (N)
  • All the details of the interchanges and the block structure of D, as determined by ZHETRF.

πŸ“ WORK πŸ“

  • WORK is COMPLEX*16 array, dimension (N)

πŸ’€ INFO πŸ’€

  • INFO is INTEGER
  • = 0: successful exit β€” slay πŸŽ‰
  • < 0: if INFO = -i, the i-th argument had an illegal value
  • > 0: if INFO = 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 🫢

ZSYTRI 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 ZSYTRF.

Note the energy shift: this one's symmetric with a plain **T transpose, not Hermitian with **H. Know the difference, iykyk 😌

✨ Parameters ✨

✨ UPLO ✨

  • UPLO is CHARACTER*1
  • Specifies whether the details of the factorization are stored as an upper or lower triangular matrix:
    • = 'U': upper triangular, form is A = U*D*U**T;
    • = 'L': lower triangular, form is A = L*D*L**T.

🌈 N 🌈

  • N is INTEGER
  • The order of the matrix A. N >= 0.

🧚 A 🧚

  • A is COMPLEX*16 array, dimension (LDA,N)
  • On entry: the block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by ZSYTRF.
  • On exit, if INFO = 0, the (symmetric) inverse of the original matrix. If UPLO = 'U', the upper triangular part of the inverse is formed and the part of A below the diagonal is not referenced; if UPLO = 'L' the lower triangular part of the inverse is formed and the part of A above the diagonal is not referenced. Same deal β€” the other half of the array is not even looked at πŸ‘‘

πŸ’œ LDA πŸ’œ

  • LDA is INTEGER
  • The leading dimension of the array A. LDA >= max(1,N).

πŸ”₯ IPIV πŸ”₯

  • IPIV is INTEGER array, dimension (N)
  • Details of the interchanges and the block structure of D, as determined by ZSYTRF.

😭 WORK 😭

  • WORK is COMPLEX*16 array, dimension (2*N)
Real talk: it's (2*N) here, not (N) like in ZHETRI. Do not reuse the same workspace sizing and then act surprised. That's not the vibe.

🐚 INFO 🐚

  • INFO is INTEGER
  • = 0: successful exit
  • < 0: if INFO = -i, the i-th argument had an illegal value
  • > 0: if INFO = 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