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 a CHARACTER*1, bestie, and it picks a side:
    • = 'U': the Upper triangular factor is stored in AB;
    • = 'L': the Lower triangular factor is stored in AB.
  • N β€” an INTEGER. The order of the matrix A. Constraint: N >= 0. (No negative orders, babe, that's not a thing πŸ™ˆ)
  • KD β€” an INTEGER. The number of superdiagonals of the matrix A if UPLO = 'U', or the number of sub-diagonals if UPLO = 'L'. Constraint: KD >= 0.
  • AB β€” a COMPLEX array, dimension (LDAB,N). This is the triangular factor U or L from the Cholesky factorization A = U**H*U or A = L*L**H of the band matrix A, stored in the first KD+1 rows of the array 🧚 The j-th column of U or L lives in the j-th column of AB like this:
    • if UPLO ='U', AB(kd+1+i-j,j) = U(i,j) for max(1,j-kd)<=i<=j;
    • if UPLO ='L', AB(1+i-j,j) = L(i,j) for j<=i<=min(n,j+kd).
  • LDAB β€” an INTEGER. The leading dimension of the array AB. Constraint: LDAB >= KD+1. (Respect the leading dimension or it will not respect you πŸ’€)
  • ANORM β€” a REAL. The 1-norm (or infinity-norm) of the Hermitian band matrix A. Slay.
  • RCOND β€” a REAL. 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. This is the whole point of the function, no cap πŸ‘‘
  • WORK β€” a COMPLEX array, dimension (2*N). Scratch space, doing its little job 🫢
  • RWORK β€” a REAL array, dimension (N). More scratch space, also iconic.
  • INFO β€” an INTEGER. The receipts:
    • = 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.

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 negative INFO pointing 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