SGBRFS(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

πŸ’… SGBRFS(3) β€” like, the banded-solver glow-up page

okay bestie so real quick: this is a page from the Library Functions Manual, and the file it documents lives at /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/sgbrfs.f. Yes that's a whole path, no I'm not shortening it, it's part of the lore. πŸŽ€


✨ NAME ✨

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/sgbrfs.f β€” that's the file, that's the vibe, we move.


🌸 SYNOPSIS 🌸

Functions/Subroutines

subroutine SGBRFS (trans, n, kl, ku, nrhs, ab, ldab, afb, ldafb, ipiv,
    b, ldb, x, ldx, ferr, berr, work, iwork, info)

SGBRFS πŸ’–


πŸ¦‹ Function/Subroutine Documentation πŸ¦‹

subroutine SGBRFS (character trans, integer n, integer kl, integer ku,
    integer nrhs, real, dimension( ldab, * ) ab, integer ldab, real,
    dimension( ldafb, * ) afb, integer ldafb, integer, dimension( * ) ipiv,
    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)

SGBRFS 🫢

🎯 Purpose 🎯

!> !> SGBRFS improves the computed solution to a system of linear !> equations when the coefficient matrix is banded, and provides !> error bounds and backward error estimates for the solution. !>

so like. it takes your solution and makes it better β€” that's the whole plot. banded coefficient matrix? it's giving main character. and it hands you error bounds plus backward error estimates, so you know how much to trust the answer. iconique. ✨

πŸ’« Parameters πŸ’«

  • TRANS β€” TRANS is CHARACTER*1. it tells us which form of the system of equations we're dealing with, and honestly the options are:
    • = 'N': A * X = B (No transpose)
    • = 'T': A**T * X = B (Transpose)
    • = 'C': A**H * X = B (Conjugate transpose = Transpose)
  • N β€” N is INTEGER. the order of the matrix A. requirement: N >= 0. no negative orders, we don't do that here. 😌
  • KL β€” KL is INTEGER. the number of subdiagonals within the band of A. requirement: KL >= 0. (sub = below, remember it, iykyk)
  • KU β€” KU is INTEGER. the number of superdiagonals within the band of A. requirement: KU >= 0. (super = above, you got this πŸ’œ)
  • NRHS β€” NRHS is INTEGER. the number of right hand sides, aka the number of columns of the matrices B and X. requirement: NRHS >= 0.
  • AB β€” AB is REAL array, dimension (LDAB,N). this is the original band matrix A, stored in rows 1 to KL+KU+1. the j-th column of A is stored in the j-th column of the array AB like this, write it down bestie:
AB(ku+1+i-j,j) = A(i,j) for max(1,j-ku)<=i<=min(n,j+kl)
  • LDAB β€” LDAB is INTEGER. the leading dimension of the array AB. requirement: LDAB >= KL+KU+1.
  • AFB β€” AFB is REAL array, dimension (LDAFB,N). all the deets of the LU factorization of the band matrix A, as computed by SGBTRF. U is stored as an upper triangular band matrix with KL+KU superdiagonals in rows 1 to KL+KU+1, and the multipliers used during the factorization are stored in rows KL+KU+2 to 2*KL+KU+1. love that for them. 🧚
  • LDAFB β€” LDAFB is INTEGER. the leading dimension of the array AFB. requirement, and I quote: LDAFB >= 2*KL*KU+1. (that's literally what it says, I'm not touching it 🫣)
  • IPIV β€” IPIV is INTEGER array, dimension (N). the pivot indices from SGBTRF; for 1<=i<=N, row i of the matrix was interchanged with row IPIV(i).
  • B β€” B is REAL array, dimension (LDB,NRHS). the right hand side matrix B. that's it, that's the girl.
  • LDB β€” LDB is INTEGER. the leading dimension of the array B. requirement: LDB >= max(1,N).
  • X β€” X is REAL array, dimension (LDX,NRHS). on entry: the solution matrix X, as computed by SGBTRS. on exit: the improved solution matrix X. glow-up complete. πŸ’…
  • LDX β€” LDX is INTEGER. the leading dimension of the array X. requirement: LDX >= max(1,N).
  • FERR β€” FERR is 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), then 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). and here's the honest part: the estimate is as reliable as the estimate for RCOND, and it's almost always a slight overestimate of the true error. lowkey humble of it. 😭
  • BERR β€” BERR is 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. the way that's the definition… obsessed. πŸ”₯
  • WORK β€” WORK is REAL array, dimension (3*N).
  • IWORK β€” IWORK is INTEGER array, dimension (N).
  • INFO β€” INFO is INTEGER, and it's the whole report card:
    • = 0: successful exit (slay πŸ’–)
    • < 0: if INFO = -i, the i-th argument had an illegal value (not slay πŸ’€)

πŸ” Internal Parameters πŸ”

!> ITMAX is the maximum number of steps of iterative refinement. !>

ITMAX. that's the max number of steps of iterative refinement. internal. don't touch. πŸ™ˆ

πŸ‘‘ Author πŸ‘‘

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

Definition at line 202 of file sgbrfs.f.


⭐ Author ⭐

Generated automatically by Doxygen for LAPACK from the source code. (not a person, a little robot did this, and honestly? it ate. πŸ€–βœ¨)


and that's the page bestie!! πŸ’– made with LAPACK Version 3.12.0, dated /home/abui...RC/sgbrfs.f(3) β€” mwah, go improve some solutions, ily, bye πŸŽ€πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from