SRC/stbrfs.f(3)

πŸ’… SRC/stbrfs.f πŸ’…

okay so this is a page out of the Library Functions Manual β€” it's the glow-up doc for SRC/stbrfs.f, and bestie, it's giving "linear algebra but make it make sense." Let's get into it 🫢


✨ NAME ✨

SRC/stbrfs.f β€” no cap, that's literally the name πŸ’–


πŸ¦‹ SYNOPSIS πŸ¦‹

Functions/Subroutines

  • subroutine stbrfs (uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, x, ldx, ferr, berr, work, iwork, info) β€” STBRFS, the main character πŸ‘‘

πŸ’– Function/Subroutine Documentation πŸ’–

🌈 subroutine stbrfs 🌈

here's the full signature, copied exactly, don't @ me:

subroutine stbrfs (character uplo, character trans, character diag, integer
    n, integer kd, integer nrhs, real, dimension( ldab, * ) ab, integer
    ldab, real, dimension( ldb, * ) b, integer ldb, real, dimension( ldx, *
    ) x, integer ldx, real, dimension( * ) ferr, real, dimension( * ) berr,
    real, dimension( * ) work, integer, dimension( * ) iwork, integer info)

✨ STBRFS ✨


πŸŽ€ Purpose πŸŽ€

STBRFS provides error bounds and backward error estimates for the solution to a system of linear equations with a triangular band coefficient matrix.

basically it's the vibe-checker for your answer πŸ”₯ it looks at the solution and tells you how wrong it might be.

The solution matrix X must be computed by STBTRS or some other means before entering this routine. STBRFS does not do iterative refinement because doing so cannot improve the backward error.

so like β€” do the solving first, bestie. X has to already exist before you come here. and nope, no iterative refinement in this routine, because (and this is a direct quote from the math gods) doing so cannot improve the backward error. periodt πŸ’…


🌸 Parameters 🌸

  • UPLO β€” CHARACTER*1, telling us which triangle we're dealing with:
    • = 'U': A is upper triangular;
    • = 'L': A is lower triangular.
  • TRANS β€” CHARACTER*1, specifies the form of the system of equations:
    • = 'N': A * X = B (No transpose)
    • = 'T': A**T * X = B (Transpose)
    • = 'C': A**H * X = B (Conjugate transpose = Transpose)
  • DIAG β€” CHARACTER*1:
    • = 'N': A is non-unit triangular;
    • = 'U': A is unit triangular.
  • N β€” INTEGER. The order of the matrix A. N >= 0.
  • KD β€” INTEGER. The number of superdiagonals or subdiagonals of the triangular band matrix A. KD >= 0.
  • NRHS β€” INTEGER. The number of right hand sides, i.e., the number of columns of the matrices B and X. NRHS >= 0.
  • AB β€” REAL array, dimension (LDAB,N). The upper or lower triangular band matrix A, stored in the first kd+1 rows of the array. The j-th column of A is stored in the j-th column of the array AB as follows:
if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
if UPLO = 'L', AB(1+i-j,j)    = A(i,j) for j<=i<=min(n,j+kd).

If DIAG = 'U', the diagonal elements of A are not referenced and are assumed to be 1. iconic behavior honestly πŸ™ˆ

  • LDAB β€” INTEGER. The leading dimension of the array AB. LDAB >= KD+1.
  • B β€” REAL array, dimension (LDB,NRHS). The right hand side matrix B.
  • LDB β€” INTEGER. The leading dimension of the array B. LDB >= max(1,N).
  • X β€” REAL array, dimension (LDX,NRHS). The solution matrix X.
  • LDX β€” INTEGER. The leading dimension of the array X. LDX >= max(1,N).
  • FERR β€” REAL array, dimension (NRHS). The estimated forward error bound for each solution vector X(j) (the j-th column of the solution matrix X). If XTRUE is the true solution corresponding to X(j), FERR(j) is an estimated upper bound for the magnitude of the largest element in (X(j) - XTRUE) divided by the magnitude of the largest element in X(j). The estimate is as reliable as the estimate for RCOND, and is almost always a slight overestimate of the true error. so it's a little dramatic, but like, in a safe direction πŸŽ€
  • BERR β€” REAL array, dimension (NRHS). The componentwise relative backward error of each solution vector X(j) (i.e., the smallest relative change in any element of A or B that makes X(j) an exact solution). lowkey the "how much would we have to fudge things to be right" number πŸ’€
  • WORK β€” REAL array, dimension (3*N).
  • IWORK β€” INTEGER array, dimension (N).
  • INFO β€” 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 186 of file stbrfs.f. ✨


πŸ’€ Author πŸ’€

Generated automatically by Doxygen for LAPACK from the source code. not a human wrote this footer, it's the machine's little signature 🫢


and that's the whole page, bestie β€” LAPACK, Version 3.12.0, dated with the footer tag SRC/stbrfs.f(3). slay, go compute some error bounds responsibly πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from