SGBRFS(3)
π 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 matrixA. requirement:N >= 0. no negative orders, we don't do that here. πKLβKL is INTEGER. the number of subdiagonals within the band ofA. requirement:KL >= 0. (sub = below, remember it, iykyk)KUβKU is INTEGER. the number of superdiagonals within the band ofA. 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 matricesBandX. requirement:NRHS >= 0.ABβAB is REAL array, dimension (LDAB,N). this is the original band matrixA, stored in rows1toKL+KU+1. the j-th column ofAis stored in the j-th column of the arrayABlike 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 arrayAB. requirement:LDAB >= KL+KU+1.AFBβAFB is REAL array, dimension (LDAFB,N). all the deets of the LU factorization of the band matrixA, as computed bySGBTRF.Uis stored as an upper triangular band matrix withKL+KUsuperdiagonals in rows1toKL+KU+1, and the multipliers used during the factorization are stored in rowsKL+KU+2to2*KL+KU+1. love that for them. π§LDAFBβLDAFB is INTEGER. the leading dimension of the arrayAFB. 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 fromSGBTRF; for1<=i<=N, rowiof the matrix was interchanged with rowIPIV(i).BβB is REAL array, dimension (LDB,NRHS). the right hand side matrixB. that's it, that's the girl.LDBβLDB is INTEGER. the leading dimension of the arrayB. requirement:LDB >= max(1,N).XβX is REAL array, dimension (LDX,NRHS). on entry: the solution matrixX, as computed bySGBTRS. on exit: the improved solution matrixX. glow-up complete. πLDXβLDX is INTEGER. the leading dimension of the arrayX. requirement:LDX >= max(1,N).FERRβFERR is REAL array, dimension (NRHS). the estimated forward error bound for each solution vectorX(j)(the j-th column of the solution matrixX). ifXTRUEis the true solution corresponding toX(j), thenFERR(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 inX(j). and here's the honest part: the estimate is as reliable as the estimate forRCOND, 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 vectorX(j)β i.e., the smallest relative change in any element ofAorBthat makesX(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: ifINFO = -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
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms