pbcon(3)

πŸ’… pbcon β€” condition number estimate ✨

okay so this is pbcon(3) from the Library Functions Manual and bestie, it's a four-for-one deal: cpbcon, dpbcon, spbcon and zpbcon all live here. Same energy, different precision. Let's get into it 🫢


🌸 NAME 🌸

pbcon β€” pbcon: condition number estimate


✨ SYNOPSIS ✨

πŸŽ€ Functions

subroutine cpbcon (uplo, n, kd, ab, ldab, anorm, rcond, work, rwork,
    info)
    CPBCON
subroutine dpbcon (uplo, n, kd, ab, ldab, anorm, rcond, work, iwork,
    info)
    DPBCON
subroutine spbcon (uplo, n, kd, ab, ldab, anorm, rcond, work, iwork,
    info)
    SPBCON
subroutine zpbcon (uplo, n, kd, ab, ldab, anorm, rcond, work, rwork,
    info)
    ZPBCON

πŸ¦‹ Detailed Description πŸ¦‹

Literally four subroutines, one job: estimating how close your band matrix is to being a mess. Details below πŸ‘‡


πŸ‘‘ Function Documentation πŸ‘‘

πŸ’– subroutine cpbcon

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

🧚 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))). slay πŸ’…

🌈 Parameters

  • UPLO β€” UPLO is CHARACTER*1
    • = 'U': Upper triangular factor stored in AB;
    • = 'L': Lower triangular factor stored in AB.
  • N β€” N is INTEGER
    • The order of the matrix A. N >= 0.
  • KD β€” KD is INTEGER
    • The number of superdiagonals of the matrix A if UPLO = 'U', or the number of sub-diagonals if UPLO = 'L'. KD >= 0.
  • AB β€” AB is COMPLEX array, dimension (LDAB,N)
    • 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 is stored in the j-th column of the array AB as follows:
    • 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 β€” LDAB is INTEGER
    • The leading dimension of the array AB. LDAB >= KD+1.
  • ANORM β€” ANORM is REAL
    • The 1-norm (or infinity-norm) of the Hermitian band matrix A.
  • RCOND β€” RCOND is 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.
  • WORK β€” WORK is COMPLEX array, dimension (2*N)
  • RWORK β€” RWORK is REAL array, dimension (N)
  • INFO β€” INFO is INTEGER
    • = 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.


πŸ“ subroutine dpbcon

subroutine dpbcon (character uplo, integer n, integer kd, double precision,
    dimension( ldab, * ) ab, integer ldab, double precision anorm, double
    precision rcond, double precision, dimension( * ) work, integer,
    dimension( * ) iwork, integer info)

DPBCON

πŸ’œ Purpose

DPBCON estimates the reciprocal of the condition number (in the 1-norm) of a real symmetric positive definite band matrix, using the Cholesky factorization A = U**T*U or A = L*L**T computed by DPBTRF.

An estimate is obtained for norm(inv(A)), and the reciprocal of the condition number is computed as RCOND = 1 / (ANORM * norm(inv(A))). no cap πŸ’―

🌈 Parameters

  • UPLO β€” UPLO is CHARACTER*1
    • = 'U': Upper triangular factor stored in AB;
    • = 'L': Lower triangular factor stored in AB.
  • N β€” N is INTEGER
    • The order of the matrix A. N >= 0.
  • KD β€” KD is INTEGER
    • The number of superdiagonals of the matrix A if UPLO = 'U', or the number of subdiagonals if UPLO = 'L'. KD >= 0.
  • AB β€” AB is DOUBLE PRECISION array, dimension (LDAB,N)
    • The triangular factor U or L from the Cholesky factorization A = U**T*U or A = L*L**T of the band matrix A, stored in the first KD+1 rows of the array. The j-th column of U or L is stored in the j-th column of the array AB as follows:
    • 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 β€” LDAB is INTEGER
    • The leading dimension of the array AB. LDAB >= KD+1.
  • ANORM β€” ANORM is DOUBLE PRECISION
    • The 1-norm (or infinity-norm) of the symmetric band matrix A.
  • RCOND β€” RCOND is 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 β€” WORK is DOUBLE PRECISION array, dimension (3*N)
  • IWORK β€” IWORK is INTEGER array, dimension (N)
  • INFO β€” INFO is INTEGER
    • = 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 130 of file dpbcon.f.


🧚 subroutine spbcon

subroutine spbcon (character uplo, integer n, integer kd, real, dimension(
    ldab, * ) ab, integer ldab, real anorm, real rcond, real, dimension( * )
    work, integer, dimension( * ) iwork, integer info)

SPBCON

⭐ Purpose

SPBCON estimates the reciprocal of the condition number (in the 1-norm) of a real symmetric positive definite band matrix, using the Cholesky factorization A = U**T*U or A = L*L**T computed by SPBTRF.

An estimate is obtained for norm(inv(A)), and the reciprocal of the condition number is computed as RCOND = 1 / (ANORM * norm(inv(A))). it's giving single precision excellence 😌

🌈 Parameters

  • UPLO β€” UPLO is CHARACTER*1
    • = 'U': Upper triangular factor stored in AB;
    • = 'L': Lower triangular factor stored in AB.
  • N β€” N is INTEGER
    • The order of the matrix A. N >= 0.
  • KD β€” KD is INTEGER
    • The number of superdiagonals of the matrix A if UPLO = 'U', or the number of subdiagonals if UPLO = 'L'. KD >= 0.
  • AB β€” AB is REAL array, dimension (LDAB,N)
    • The triangular factor U or L from the Cholesky factorization A = U**T*U or A = L*L**T of the band matrix A, stored in the first KD+1 rows of the array. The j-th column of U or L is stored in the j-th column of the array AB as follows:
    • 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 β€” LDAB is INTEGER
    • The leading dimension of the array AB. LDAB >= KD+1.
  • ANORM β€” ANORM is REAL
    • The 1-norm (or infinity-norm) of the symmetric band matrix A.
  • RCOND β€” RCOND is 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.
  • WORK β€” WORK is REAL array, dimension (3*N)
  • IWORK β€” IWORK is INTEGER array, dimension (N)
  • INFO β€” INFO is INTEGER
    • = 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 130 of file spbcon.f.


πŸ¦‹ subroutine zpbcon

subroutine zpbcon (character uplo, integer n, integer kd, complex*16,
    dimension( ldab, * ) ab, integer ldab, double precision anorm, double
    precision rcond, complex*16, dimension( * ) work, double precision,
    dimension( * ) rwork, integer info)

ZPBCON

🌟 Purpose

ZPBCON 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 ZPBTRF.

An estimate is obtained for norm(inv(A)), and the reciprocal of the condition number is computed as RCOND = 1 / (ANORM * norm(inv(A))). double precision complex, double the drama πŸ’€βœ¨

🌈 Parameters

  • UPLO β€” UPLO is CHARACTER*1
    • = 'U': Upper triangular factor stored in AB;
    • = 'L': Lower triangular factor stored in AB.
  • N β€” N is INTEGER
    • The order of the matrix A. N >= 0.
  • KD β€” KD is INTEGER
    • The number of superdiagonals of the matrix A if UPLO = 'U', or the number of sub-diagonals if UPLO = 'L'. KD >= 0.
  • AB β€” AB is COMPLEX*16 array, dimension (LDAB,N)
    • 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 is stored in the j-th column of the array AB as follows:
    • 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

🫢 okay bestie, this is where page one runs out β€” LDAB and the rest of ZPBCON's parameters are waiting for you in part 2. don't move πŸ’–

LDAB is INTEGER β€” the leading dimension of the array AB. And bestie, it must satisfy LDAB >= KD+1, that's the law πŸ’…

ANORM is DOUBLE PRECISION β€” the 1-norm (or infinity-norm) of the Hermitian band matrix A. That's it, that's the whole vibe ✨

RCOND is 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. So yeah, RCOND is literally doing the math equivalent of being handed the aux cord 😭

WORK is COMPLEX*16 array, dimension (2*N) β€” scratch space, let it cook πŸ“

RWORK is DOUBLE PRECISION array, dimension (N) β€” more scratch space, this one's all real, no imaginary drama πŸ™ˆ

INFO is INTEGER β€” the receipts, bestie:

  • = 0: successful exit πŸŽ‰ slay
  • < 0: if INFO = -i, the i-th argument had an illegal value πŸ’€ somebody typed something cursed, go check argument number i

πŸ‘‘ AUTHOR πŸ‘‘

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

Definition at line 131 of file zpbcon.f.

πŸ€– AUTHOR (the sequel) πŸ€–

Generated automatically by Doxygen for LAPACK from the source code. Not me, not you, not a human with feelings β€” a machine 🫢 iconic behaviour honestly.


And that's a wrap on pbcon(3), bestie β€” this came straight from LAPACK, Version 3.12.0, page pbcon(3), courtesy of the good people at LAPACK πŸ’– Go forth and estimate those condition numbers responsibly, mwah πŸ˜˜πŸ’…πŸŒΈ

πŸ“¦ where this page comes from