SRC/zhetri.f(3)

πŸ’… NAME

SRC/zhetri.f β€” bestie, this is the page for the zhetri subroutine, and it's literally about computing an inverse. Iconic behavior only. ✨


🌸 SYNOPSIS

Functions/Subroutines

  • subroutine zhetri (uplo, n, a, lda, ipiv, work, info) β€” the short-and-sweet call, aka ZHETRI's little business card πŸŽ€

πŸ¦‹ Function/Subroutine Documentation

subroutine zhetri (character uplo, integer n, complex*16, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, complex*16, dimension( * ) work, integer info)

ZHETRI. That's her name, no cap. πŸ‘‘

πŸ’– 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.
!>

So basically: you already let ZHETRF do its thing and hand you the factorization, and now zhetri takes that factorial tea β˜• and flips it into the actual inverse of A. Complex Hermitian indefinite matrix? Slay, she's flexible like that. 🌈


✨ 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**H;
!>          = 'L':  Lower triangular, form is A = L*D*L**H.
!>

One character, one vibe check. It tells her where the factorization details are chilling β€” upper triangle or lower triangle, bestie, pick a lane. πŸ’…

N

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

The order of matrix A. And it's gotta be N >= 0, periodt. No negative order energy allowed here. 🚫

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.
!>

A is a COMPLEX*16 array, dimension (LDA,N) β€” and this one has a whole glow-up arc, okay? πŸ¦‹

On entry: she's holding the block diagonal matrix D plus the multipliers that got you the factor U or L, exactly as ZHETRF computed them. So A walks in carrying the factorization.

On exit: if INFO = 0, honey, she's the (Hermitian) inverse of the original matrix. Main character transformation. ✨

But notice the details, because they matter: if UPLO = 'U', only the upper triangular part of the inverse gets formed, and the part of A below the diagonal is not referenced. If UPLO = 'L', it's the flip β€” the lower triangular part of the inverse is formed and the part of A above the diagonal is not referenced. Respect the boundaries, bestie. πŸ’…

LDA

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

The leading dimension of array A, and it's gotta satisfy LDA >= max(1,N). That's the rule, no negotiating. πŸŽ€

IPIV

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

An INTEGER array of dimension (N), holding all the gossip: the details of the interchanges and the block structure of D, exactly as ZHETRF determined them. iykyk. πŸ™ˆ

WORK

!>          WORK is COMPLEX*16 array, dimension (N)
!>

A COMPLEX*16 array of dimension (N). It's the workspace β€” the backstage crew of this whole operation. 🫢

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.
!>

The receipts. πŸ’€ INTEGER, and here's how to read her mood:

  • = 0: successful exit. We ate. πŸ”₯
  • < 0: if INFO = -i, the i-th argument had an illegal value. Somebody passed her something shady.
  • > 0: if INFO = i, then D(i,i) = 0 β€” the matrix is singular and its inverse could not be computed. 😭 Yeah, that one's a real dead end, not gonna sugarcoat it.

πŸ‘‘ Author

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.


⭐ Definition at line 113 of file zhetri.f.


🧚 Author (the meta one)

Generated automatically by Doxygen for LAPACK from the source code.


πŸ’– Cute little sign-off: this whole page is LAPACK, Version 3.12.0, and it lives at SRC/zhetri.f(3). Bye bestie, go invert something! πŸŽ€βœ¨πŸŒΈ
πŸ“¦ where this page comes from