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 aCHARACTER*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 isA = U*D*U**H;= 'L':lower triangular, form isA = L*D*L**H.
Nβ it's anINTEGER, the order of the matrixA. Constraint fr:N >= 0.Aβ it's aCOMPLEX*16array, dimension(LDA,N). This holds the block diagonal matrixDand the multipliers used to obtain the factorUorL, exactly as computed byCHETRF_ROOK.LDAβ it's anINTEGER, the leading dimension of the arrayA. Constraint:LDA >= max(1,N).IPIVβ it's anINTEGERarray, dimension(N). It carries the details of the interchanges and the block structure ofDas determined byCHETRF_ROOK. iykyk πANORMβ it's aDOUBLE PRECISION, the 1-norm of the original matrixA.RCONDβ it's aDOUBLE PRECISION, the reciprocal of the condition number of the matrixA, computed asRCOND = 1/(ANORM * AINVNM), whereAINVNMis an estimate of the 1-norm ofinv(A)computed in this routine.WORKβ it's aCOMPLEX*16array, dimension(2*N). That's it, that's the buffer π§INFOβ it's anINTEGER, and it's giving status report:= 0:successful exit β¨< 0:ifINFO = -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
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms