SRC/zhecon_rook.f(3)

πŸ’œ SRC/zhecon_rook.f(3)

okay so this is a page from the Library Functions Manual (LAPACK, Version 3.12.0) and bestie, it's literally all about one little subroutine that does a huge vibe check on your Hermitian matrix. Let's get into it 🫢


✨ NAME ✨

SRC/zhecon_rook.f β€” that's the file, that's the whole name section, we move πŸ’…


🌸 SYNOPSIS 🌸

Functions/Subroutines

subroutine zhecon_rook (uplo, n, a, lda, ipiv, anorm, rcond, work, info)

ZHECON_ROOK estimates the reciprocal of the condition number for HE matrices using factorization obtained with one of the bounded diagonal pivoting methods (max 2 interchanges) β€” no cap, that's the whole flex πŸ”₯


πŸ¦‹ Function/Subroutine Documentation πŸ¦‹

subroutine zhecon_rook

subroutine zhecon_rook (character uplo, integer n, complex*16, dimension(
    lda, * ) a, integer lda, integer, dimension( * ) ipiv, double precision
    anorm, double precision rcond, complex*16, dimension( * ) work, integer
    info)

ZHECON_ROOK estimates the reciprocal of the condition number for HE matrices using factorization obtained with one of the bounded diagonal pivoting methods (max 2 interchanges). iconic behavior honestly πŸ‘‘

πŸ’« Purpose:

!>
!> ZHECON_ROOK estimates the reciprocal of the condition number of a complex
!> Hermitian matrix A using the factorization A = U*D*U**H or
!> A = L*D*L**H computed by CHETRF_ROOK.
!>
!> An estimate is obtained for norm(inv(A)), and the reciprocal of the
!> condition number is computed as RCOND = 1 / (ANORM * norm(inv(A))).
!>

so basically: it takes your already-factored matrix, estimates norm(inv(A)), and then hits you with RCOND = 1 / (ANORM * norm(inv(A))). math girlie stuff, we love to see it ✨

πŸŽ€ Parameters

  • UPLO β€” it's a CHARACTER*1, and it tells us whether the factorization details are stored as an upper or lower triangular matrix. The options are:
    • = 'U': upper triangular, form is A = U*D*U**H;
    • = 'L': lower triangular, form is A = L*D*L**H.
  • N β€” it's an INTEGER, the order of the matrix A. Constraint fr: N >= 0.
  • A β€” it's a COMPLEX*16 array, dimension (LDA,N). This holds the block diagonal matrix D and the multipliers used to obtain the factor U or L, exactly as computed by CHETRF_ROOK.
  • LDA β€” it's an INTEGER, the leading dimension of the array A. Constraint: LDA >= max(1,N).
  • IPIV β€” it's an INTEGER array, dimension (N). It carries the details of the interchanges and the block structure of D as determined by CHETRF_ROOK. iykyk πŸ’…
  • ANORM β€” it's a DOUBLE PRECISION, the 1-norm of the original matrix A.
  • RCOND β€” it's a DOUBLE PRECISION, the reciprocal of the condition number of the matrix A, computed as RCOND = 1/(ANORM * AINVNM), where AINVNM is an estimate of the 1-norm of inv(A) computed in this routine.
  • WORK β€” it's a COMPLEX*16 array, dimension (2*N). That's it, that's the buffer 🧚
  • INFO β€” it's an INTEGER, and it's giving status report:
    • = 0: successful exit ✨
    • < 0: if INFO = -i, the i-th argument had an illegal value πŸ’€

🌈 Author

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

⭐ Contributors:

!>
!>  June 2017,  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 the whole squad, periodt 🫢

Definition at line 137 of file zhecon_rook.f.

πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for LAPACK from the source code. (not me writing this by hand, the robots did it, and honestly? they ate πŸ€–βœ¨)


and that's the whole page bestie!! πŸŽ€ source + version + date tea: this was pulled from LAPACK Version 3.12.0, page SRC/zhecon_rook.f(3) β€” go forth and condition your numbers responsibly πŸ’–πŸ¦‹

πŸ“¦ where this page comes from