hetri_rook(3)

πŸ’– hetri_rook β€” {he,sy}tri_rook: triangular inverse πŸ’–

okay so this is hetri_rook(3) from the Library Functions Manual, and bestie, it's a whole family of LAPACK routines that do triangular inverse stuff. buckle up πŸŽ€


✨ NAME ✨

hetri_rook β€” {he,sy}tri_rook: triangular inverse. that's it, that's the name, she's concise πŸ’…


🌸 SYNOPSIS 🌸

Functions

  • subroutine chetri_rook (uplo, n, a, lda, ipiv, work, info) β€” CHETRI_ROOK computes the inverse of HE matrix using the factorization obtained with the bounded Bunch-Kaufman ("rook") diagonal pivoting method. (yes the original doc has a stray quote in there, we keep it, we don't touch it, periodt)
  • subroutine csytri_rook (uplo, n, a, lda, ipiv, work, info) β€” CSYTRI_ROOK. that's the whole blurb. iconic minimalist behavior honestly.
  • subroutine dsytri_rook (uplo, n, a, lda, ipiv, work, info) β€” DSYTRI_ROOK. also just her name.
  • subroutine ssytri_rook (uplo, n, a, lda, ipiv, work, info) β€” SSYTRI_ROOK. same energy.
  • subroutine zhetri_rook (uplo, n, a, lda, ipiv, work, info) β€” ZHETRI_ROOK computes the inverse of HE matrix using the factorization obtained with the bounded Bunch-Kaufman ("rook") diagonal pivoting method. (again with the stray quote, leaving it exactly as found 🫢)
  • subroutine zsytri_rook (uplo, n, a, lda, ipiv, work, info) β€” ZSYTRI_ROOK. name only, no notes.

πŸ” Detailed Description πŸ”

this is the section where the page just says "Function Documentation" is next. genuinely that's all it says. the vibes are immaculate, the content is minimal πŸ¦‹


πŸ“– Function Documentation πŸ“–


πŸ’œ chetri_rook

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

CHETRI_ROOK computes the inverse of HE matrix using the factorization obtained with the bounded Bunch-Kaufman ("rook") diagonal pivoting method.

✨ Purpose ✨

CHETRI_ROOK 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_ROOK. like, she takes the factorization her sibling CHETRF_ROOK already did and flips it into an inverse. teamwork, fr fr πŸ’–

🌸 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.
  • 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_ROOK.
    • 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_ROOK.
  • 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.

πŸŽ€ Contributors πŸŽ€

November 2013, Igor Kozachenko, Computer Science Division, University of California, Berkeley

September 2007, Sven Hammarling, Nicholas J. Higham, Craig Lucas, School of Mathematics, University of Manchester

Definition at line 127 of file chetri_rook.f.


πŸ’™ csytri_rook

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

CSYTRI_ROOK β€” that's the entire one-line description, we respect the mystery.

✨ Purpose ✨

CSYTRI_ROOK computes the inverse of a complex symmetric matrix A using the factorization A = U*D*U**T or A = L*D*L**T computed by CSYTRF_ROOK. note: symmetric this time, not Hermitian, and it's the T transpose not H. no cap, that distinction matters πŸ”₯

🌸 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 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_ROOK.
    • 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_ROOK.
  • 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.

πŸŽ€ Contributors πŸŽ€

December 2016, Igor Kozachenko, Computer Science Division, University of California, Berkeley

September 2007, Sven Hammarling, Nicholas J. Higham, Craig Lucas, School of Mathematics, University of Manchester

Definition at line 128 of file csytri_rook.f.


πŸ’š dsytri_rook

   subroutine dsytri_rook (character uplo, integer n, double precision,
       dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, double
       precision, dimension( * ) work, integer info)

DSYTRI_ROOK β€” name only in the synopsis, but the purpose section has the real tea πŸ‘‡

✨ Purpose ✨

DSYTRI_ROOK computes the inverse of a real symmetric matrix A using the factorization A = U*D*U**T or A = L*D*L**T computed by DSYTRF_ROOK. double precision, real symmetric, living her best life πŸ¦‹

🌸 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 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_ROOK.
    • 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_ROOK.
  • 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.

πŸŽ€ Contributors πŸŽ€

April 2012, Igor Kozachenko, Computer Science Division, University of California, Berkeley

September 2007, Sven Hammarling, Nicholas J. Higham, Craig Lucas, School of Mathematics, University of Manchester

Definition at line 128 of file dsytri_rook.f.


πŸ’› ssytri_rook

   subroutine ssytri_rook (character uplo, integer n, real, dimension( lda, * )
       a, integer lda, integer, dimension( * ) ipiv, real, dimension( * ) work,
       integer info)

SSYTRI_ROOK β€” again, short synopsis, big purpose energy.

✨ Purpose ✨

SSYTRI_ROOK computes the inverse of a real symmetric matrix A using the factorization A = U*D*U**T or A = L*D*L**T computed by SSYTRF_ROOK. single precision this time, same iconic factorization flip 🫢

🌸 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 β€” REAL array, dimension (LDA,N) β€” okay so listen πŸ‘‘
    • On entry, it's the block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by SSYTRF_ROOK.
    • On exit, if INFO = 0, you get 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. Bestie, don't touch the half it told you not to touch, fr fr πŸ™ˆ
  • LDA β€” INTEGER. The leading dimension of the array A. LDA >= max(1,N). That's the whole vibe check ✨
  • IPIV β€” INTEGER array, dimension (N). All the details of the interchanges and the block structure of D as determined by SSYTRF_ROOK. This is the receipts from the factorization, iykyk 🧾
  • WORK β€” REAL array, dimension (N). Just the workspace, no drama πŸŽ€
  • INFO β€” INTEGER, and it's literally the mood ring of the whole call πŸ’€
    • = 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 her failing, the matrix was singular first. Periodt 🫢

πŸ‘‘ Author

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

🌸 Contributors

  • April 2012, Igor Kozachenko, Computer Science Division, University of California, Berkeley
  • September 2007, Sven Hammarling, Nicholas J. Higham, Craig Lucas, School of Mathematics, University of Manchester

πŸ“ Definition

Definition at line 128 of file ssytri_rook.f.


πŸ¦‹ zhetri_rook

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

ZHETRI_ROOK computes the inverse of HE matrix using the factorization obtained with the bounded Bunch-Kaufman ("rook") diagonal pivoting method. HE meaning Hermitian, babes πŸ’…

✨ Purpose

ZHETRI_ROOK 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_ROOK. She's the inverse girlie of the ZHETRF_ROOK factorization, that's the whole lore 🌈

πŸ’– Parameters

  • UPLO β€” 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. Pick your fighter, both are valid πŸ’«
  • N β€” INTEGER. The order of the matrix A. N >= 0. Zero is allowed, she's just a tiny matrix πŸ“
  • A β€” 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_ROOK.
    • 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. Same rule as always: the other triangle is off-limits, don't be nosy 🫢
  • LDA β€” INTEGER. The leading dimension of the array A. LDA >= max(1,N). No notes ✨
  • IPIV β€” INTEGER array, dimension (N). Details of the interchanges and the block structure of D as determined by ZHETRF_ROOK. The crossover episode between the two routines, honestly πŸ”₯
  • WORK β€” COMPLEX*16 array, dimension (N). Scratch space, she's just here to help πŸ’œ
  • INFO β€” 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. Can't inverse a singular matrix, that's just math, ngl πŸ’€

πŸ‘‘ Author

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

🌸 Contributors

  • November 2013, Igor Kozachenko, Computer Science Division, University of California, Berkeley
  • September 2007, Sven Hammarling, Nicholas J. Higham, Craig Lucas, School of Mathematics, University of Manchester

πŸ“ Definition

Definition at line 127 of file zhetri_rook.f.


🧚 zsytri_rook

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

ZSYTRI_ROOK β€” the symmetric complex one. Note: symmetric, not Hermitian, the transpose is plain **T here and that is the entire difference, no cap ⭐

✨ Purpose

ZSYTRI_ROOK computes the inverse of a complex symmetric matrix A using the factorization A = U*D*U**T or A = L*D*L**T computed by ZSYTRF_ROOK. Lowkey iconic how tidy that is πŸ¦‹

πŸ’– Parameters

  • UPLO β€” 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 β€” INTEGER. The order of the matrix A. N >= 0.
  • A β€” 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_ROOK.
    • 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. Your half only, bestie, stay in your lane πŸ’…
  • LDA β€” INTEGER. The leading dimension of the array A. LDA >= max(1,N).
  • IPIV β€” INTEGER array, dimension (N). Details of the interchanges and the block structure of D as determined by ZSYTRF_ROOK.
  • WORK β€” COMPLEX*16 array, dimension (N). Workspace, love her 🌸
  • INFO β€” 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. Same singular-matrix tragedy as her sisters 😭

πŸ‘‘ Author

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

🌸 Contributors

  • December 2016, Igor Kozachenko, Computer Science Division, University of California, Berkeley
  • September 2007, Sven Hammarling, Nicholas J. Higham, Craig Lucas, School of Mathematics, University of Manchester

πŸ“ Definition

Definition at line 128 of file zsytri_rook.f.


πŸŽ€ Author

Generated automatically by Doxygen for LAPACK from the source code. Not a human author, a machine author, and honestly? She ate πŸ€–πŸ’–


That's the whole page, bestie β€” four routines, all their arguments, all their INFO values, all the contributor credits, and every single Definition at line intact. Nothing dropped, nothing invented. 🫢

Okay so this whole thing is LAPACK Version 3.12.0, page hetri_rook(3), and it's been a genuine joy, mwah πŸ’‹ Go invert something Hermitian, drink water, and remember: if INFO > 0, it's the matrix's fault, not yours. periodt. πŸŒˆβœ¨πŸ‘‘

πŸ“¦ where this page comes from