SRC/cpbcon.f(3)
π SRC/cpbcon.f β like, the whole glow-up β¨
okay bestie, buckle up, because this is the CPBCON page from the LAPACK library manual (that's the "Library Functions Manual" vibe, iykyk) and it's honestly serving serious numerical-linear-algebra main character energy π
πΈ SYNOPSIS πΈ
Functions/Subroutines
subroutine cpbcon (uplo, n, kd, ab, ldab, anorm, rcond, work, rwork, info)
CPBCON β that's the name, that's the icon π
π¦ Function/Subroutine Documentation π¦
subroutine cpbcon (character uplo, integer n, integer kd, complex,
dimension( ldab, * ) ab, integer ldab, real anorm, real rcond, complex,
dimension( * ) work, real, dimension( * ) rwork, integer info)
CPBCON π
(yes, again, because we love a dramatic reveal)
β¨ Purpose β¨
!> !> CPBCON estimates the reciprocal of the condition number (in the !> 1-norm) of a complex Hermitian positive definite band matrix using !> the Cholesky factorization A = U**H*U or A = L*L**H computed by !> CPBTRF. !> !> 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: this routine is the vibe-check for how "sensitive" your Hermitian positive definite band matrix is π₯ It hands you back the reciprocal of the 1-norm condition number, using the Cholesky factorization that CPBTRF already computed for you. It gets an estimate for norm(inv(A)) and then does the math: RCOND = 1 / (ANORM * norm(inv(A))). Periodt. π
π Parameters π
UPLOβ it's aCHARACTER*1, bestie, and it picks a side:= 'U': the Upper triangular factor is stored inAB;= 'L': the Lower triangular factor is stored inAB.
Nβ anINTEGER. The order of the matrixA. Constraint:N >= 0. (No negative orders, babe, that's not a thing π)KDβ anINTEGER. The number of superdiagonals of the matrixAifUPLO = 'U', or the number of sub-diagonals ifUPLO = 'L'. Constraint:KD >= 0.ABβ aCOMPLEXarray, dimension(LDAB,N). This is the triangular factorUorLfrom the Cholesky factorizationA = U**H*UorA = L*L**Hof the band matrixA, stored in the firstKD+1rows of the array π§ The j-th column ofUorLlives in the j-th column ofABlike this:- if
UPLO ='U',AB(kd+1+i-j,j) = U(i,j)formax(1,j-kd)<=i<=j; - if
UPLO ='L',AB(1+i-j,j) = L(i,j)forj<=i<=min(n,j+kd).
- if
LDABβ anINTEGER. The leading dimension of the arrayAB. Constraint:LDAB >= KD+1. (Respect the leading dimension or it will not respect you π)ANORMβ aREAL. The 1-norm (or infinity-norm) of the Hermitian band matrixA. Slay.RCONDβ aREAL. 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. This is the whole point of the function, no cap πWORKβ aCOMPLEXarray, dimension(2*N). Scratch space, doing its little job π«ΆRWORKβ aREALarray, dimension(N). More scratch space, also iconic.INFOβ anINTEGER. The receipts:= 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.
Definition at line 131 of file cpbcon.f. π
β Author (again, but make it meta) β
Generated automatically by Doxygen for LAPACK from the source code. Not me writing it by hand, the robots did that one π€β¨
Heads up bestie: the argument constraints are real βN >= 0,KD >= 0,LDAB >= KD+1β and if you break one, you get a negativeINFOpointing at the offending argument. That's the routine's way of saying "not me having to tell you this" π
okay that's the whole page, ilysm for reading, go factor some band matrices π¦
β LAPACK, Version 3.12.0, dated SRC/cpbcon.f(3), signing off with a little kiss π
π¦ 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