SRC/zsytri_rook.f(3)

πŸ’… SRC/zsytri_rook.f ✨

okay so this is a page from the LAPACK manual (Library Functions Manual), and it's literally all about one tiny icon of a subroutine. buckle up bestie, we're doing linear algebra πŸŽ€


🌸 SYNOPSIS 🌸

Functions/Subroutines

  • subroutine zsytri_rook (uplo, n, a, lda, ipiv, work, info) β€” the one and only ZSYTRI_ROOK πŸ¦‹

πŸ‘‘ Function/Subroutine Documentation πŸ‘‘

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

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

like, it inverts your complex symmetric matrix A, using the factorization A = U*D*U**T or A = L*D*L**T that ZSYTRF_ROOK already handed you. no cap, that's the whole job πŸ’–


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

so UPLO is a CHARACTER*1 and it tells you which triangle the factorization details live in β€” upper or lower. the two moods:

  • = '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. !>

N is an INTEGER, the order of the matrix A. it must be N >= 0. bestie with a negative N? not on my watch πŸ’€

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

A is a COMPLEX*16 array, dimension (LDA,N). two whole eras for this one:

  • on entry β€” it's holding the block diagonal matrix D plus the multipliers used to obtain the factor U or L, exactly as computed by ZSYTRF_ROOK.
  • on exit β€” if INFO = 0, you get the (symmetric) inverse of the original matrix πŸ’… and here's the vibe check: 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 like, don't go reading the other half, it's giving ✨nothing✨

LDA

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

LDA is an INTEGER β€” the leading dimension of the array A, and it needs LDA >= max(1,N). main character constraint fr fr 🫢

IPIV

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

IPIV is an INTEGER array, dimension (N) β€” the details of the interchanges and the block structure of D, as determined by ZSYTRF_ROOK. it's basically the receipts πŸ“‹

WORK

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

WORK is a COMPLEX*16 array, dimension (N). it works, hence the name (jk, it's scratch space 🧹).

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

INFO is an INTEGER, the status report of the whole operation:

  • = 0 β€” successful exit, we ate πŸ”₯
  • < 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 😭 no inverse for you

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

shoutout to Igor Kozachenko (December 2016, Computer Science Division, University of California, Berkeley) and to Sven Hammarling, Nicholas J. Higham and Craig Lucas (September 2007, School of Mathematics, University of Manchester) β€” iconic contributors, periodt πŸ‘‘

πŸ“ Definition at line 128 of file zsytri_rook.f.


πŸ’œ Author

Generated automatically by Doxygen for LAPACK from the source code. (yes, the robots wrote this one πŸ€–)


okay that's the whole page bestie, every flag, every constraint, every vibes-based caveat. LAPACK, Version 3.12.0, SRC/zsytri_rook.f(3) β€” mwah, slay, go invert something symmetric πŸ’‹βœ¨πŸŽ€

πŸ“¦ where this page comes from