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 firstkd+1rows 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 vectorX(j)(the j-th column of the solution matrix X). IfXTRUEis the true solution corresponding toX(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 inX(j). The estimate is as reliable as the estimate forRCOND, 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 vectorX(j)(i.e., the smallest relative change in any element of A or B that makesX(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: ifINFO = -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
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms