STBT05(3)

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

πŸ’… STBT05 (yes bestie, it's a stbt05.f situation)

okay so real talk β€” this page is from the Library Functions Manual, and it's all about one lil Fortran subroutine called STBT05 that lives in /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/stbt05.f. she's a LAPACK testing girlie. no cap. πŸŽ€


✨ NAME ✨

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/stbt05.f β€” that's literally where she lives, that's the whole name, she's a file path and she's iconic for it πŸ’β€β™€οΈ


πŸ¦‹ SYNOPSIS πŸ¦‹

Functions/Subroutines

  • subroutine STBT05 (uplo, trans, diag, n, kd, nrhs, ab, ldab, b, ldb, x, ldx, xact, ldxact, ferr, berr, reslts) β€” the whole squad, present and accounted for 🌸
  • STBT05 β€” yeah she's her own little heading too, main character energy fr fr

πŸ‘‘ Function/Subroutine Documentation πŸ‘‘

subroutine STBT05

here's the full signature, verbatim, don't touch, she's precious ✨

subroutine STBT05 (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( ldxact, * ) xact, integer ldxact,
    real, dimension( * ) ferr, real, dimension( * ) berr, real, dimension( *
    ) reslts)

STBT05 β€” again, yes, that's the name, we love a self-titled moment πŸ’…


🧚 Purpose 🧚

okay so what does she do, bestie:

!>
!> STBT05 tests the error bounds from iterative refinement for the
!> computed solution to a system of equations A*X = B, where A is a
!> triangular band matrix.
!>
!> RESLTS(1) = test of the error bound
!>           = norm(X - XACT) / ( norm(X) * FERR )
!>
!> A large value is returned if this ratio is not less than one.
!>
!> RESLTS(2) = residual from the iterative refinement routine
!>           = the maximum of BERR / ( NZ*EPS + (*) ), where
!>             (*) = NZ*UNFL / (min_i (abs(A)*abs(X) +abs(b))_i )
!>             and NZ = max. number of nonzeros in any row of A, plus 1
!>

so like β€” she checks the error bounds from iterative refinement on the computed solution to A*X = B where A is a triangular band matrix. RESLTS(1) is the error bound test, and if that ratio isn't less than one you get a big value back (screaming, crying, throwing up 😭). RESLTS(2) is the residual from the iterative refinement routine, and NZ is the max number of nonzeros in any row of A, plus 1. periodt.


🌈 Parameters 🌈

UPLO

!>          UPLO is CHARACTER*1
!>          Specifies whether the matrix A is upper or lower triangular.
!>          = 'U':  Upper triangular
!>          = 'L':  Lower triangular
!>

tells you if A is upper or lower triangular β€” 'U' for upper, 'L' for lower 🫢

TRANS

!>          TRANS is CHARACTER*1
!>          Specifies the form of the system of equations.
!>          = 'N':  A * X = B  (No transpose)
!>          = 'T':  A'* X = B  (Transpose)
!>          = 'C':  A'* X = B  (Conjugate transpose = Transpose)
!>

which form the system takes: 'N' means A * X = B (no transpose), 'T' means A'* X = B (transpose), and 'C' means A'* X = B (conjugate transpose, which equals transpose here β€” yeah, same thing, we said what we said πŸ’€)

DIAG

!>          DIAG is CHARACTER*1
!>          Specifies whether or not the matrix A is unit triangular.
!>          = 'N':  Non-unit triangular
!>          = 'U':  Unit triangular
!>

is A unit triangular or not β€” 'N' for non-unit, 'U' for unit ✨

N

!>          N is INTEGER
!>          The number of rows of the matrices X, B, and XACT, and the
!>          order of the matrix A.  N >= 0.
!>

number of rows of X, B, and XACT, and the order of A. N >= 0, no negatives allowed bestie 🚫

KD

!>          KD is INTEGER
!>          The number of super-diagonals of the matrix A if UPLO = 'U',
!>          or the number of sub-diagonals if UPLO = 'L'.  KD >= 0.
!>

number of super-diagonals if UPLO = 'U', or sub-diagonals if UPLO = 'L'. KD >= 0 πŸ’œ

NRHS

!>          NRHS is INTEGER
!>          The number of columns of the matrices X, B, and XACT.
!>          NRHS >= 0.
!>

number of columns of X, B, and XACT. NRHS >= 0 πŸ“

AB

!>          AB is 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.
!>

the upper or lower triangular band matrix A, stored in the first kd+1 rows of the array. the j-th column of A lives in the j-th column of AB like this: 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). and heads up β€” if DIAG = 'U', the diagonal elements of A are not referenced and are assumed to be 1. don't come for her πŸ™ˆ

LDAB

!>          LDAB is INTEGER
!>          The leading dimension of the array AB.  LDAB >= KD+1.
!>

leading dimension of AB. LDAB >= KD+1 ⭐

B

!>          B is REAL array, dimension (LDB,NRHS)
!>          The right hand side vectors for the system of linear
!>          equations.
!>

the right hand side vectors for the system of linear equations, as she should πŸ’–

LDB

!>          LDB is INTEGER
!>          The leading dimension of the array B.  LDB >= max(1,N).
!>

leading dimension of B. LDB >= max(1,N) βœ…

X

!>          X is REAL array, dimension (LDX,NRHS)
!>          The computed solution vectors.  Each vector is stored as a
!>          column of the matrix X.
!>

the computed solution vectors, each one chilling as a column of X 🌸

LDX

!>          LDX is INTEGER
!>          The leading dimension of the array X.  LDX >= max(1,N).
!>

leading dimension of X. LDX >= max(1,N) πŸŽ€

XACT

!>          XACT is REAL array, dimension (LDX,NRHS)
!>          The exact solution vectors.  Each vector is stored as a
!>          column of the matrix XACT.
!>

the exact solution vectors β€” the real ones, the truth-tellers β€” each stored as a column of XACT πŸ‘‘

LDXACT

!>          LDXACT is INTEGER
!>          The leading dimension of the array XACT.  LDXACT >= max(1,N).
!>

leading dimension of XACT. LDXACT >= max(1,N) πŸ¦‹

FERR

!>          FERR is REAL array, dimension (NRHS)
!>          The estimated forward error bounds for each solution vector
!>          X.  If XTRUE is the true solution, FERR bounds the magnitude
!>          of the largest entry in (X - XTRUE) divided by the magnitude
!>          of the largest entry in X.
!>

estimated forward error bounds for each solution vector X. if XTRUE is the true solution, FERR bounds the magnitude of the largest entry in (X - XTRUE) divided by the magnitude of the largest entry in X. math is mathing πŸ”₯

BERR

!>          BERR is REAL array, dimension (NRHS)
!>          The componentwise relative backward error of each solution
!>          vector (i.e., the smallest relative change in any entry of A
!>          or B that makes X an exact solution).
!>

the componentwise relative backward error of each solution vector β€” i.e. the smallest relative change in any entry of A or B that makes X an exact solution. she's precise like that πŸ’…

RESLTS

!>          RESLTS is REAL array, dimension (2)
!>          The maximum over the NRHS solution vectors of the ratios:
!>          RESLTS(1) = norm(X - XACT) / ( norm(X) * FERR )
!>          RESLTS(2) = BERR / ( NZ*EPS + (*) )
!>

the maximum over the NRHS solution vectors of the ratios: RESLTS(1) = norm(X - XACT) / ( norm(X) * FERR ) and RESLTS(2) = BERR / ( NZ*EPS + (*) ). two slots, both booked and busy ✨

ngl, RESLTS has dimension (2) and if you write past that, that's on you bestie, the manpage told you πŸ’€

🌟 Author 🌟

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

the whole academic + NAG collab, we love a group project that actually got finished 🫢

Definition at line 187 of file stbt05.f. β€” line 187, remember it, there will not be a quiz but still πŸ“


🧚 Author (the meta one) 🧚

Generated automatically by Doxygen for LAPACK from the source code. she wasn't written, she was generated, and honestly? still ate πŸ’…


mwah πŸ’œ that's the whole page β€” this is LAPACK, Version 3.12.0, dated /home/abui...IN/stbt05.f(3) (yes the date is a file path, don't ask, it's giving auto-generated chaos πŸŽ€). now go test those error bounds, bestie, you've got this! 🌈✨

πŸ“¦ where this page comes from