DGBT05(3)

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

πŸ’… NAME

ok so bestie, this page is literally all about /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/dgbt05.f β€” that's the file, that's the manual page dgbt05.f(3), and honestly? it's a whole vibe.


✨ SYNOPSIS ✨

Functions/Subroutines

  • subroutine DGBT05 (trans, n, kl, ku, nrhs, ab, ldab, b, ldb, x, ldx, xact, ldxact, ferr, berr, reslts) β€” the one and only DGBT05, no cap 🫢

πŸŽ€ Function/Subroutine Documentation πŸŽ€

subroutine DGBT05 (character trans, integer n, integer kl, integer ku, integer nrhs, double precision, dimension( ldab, * ) ab, integer ldab, double precision, dimension( ldb, * ) b, integer ldb, double precision, dimension( ldx, * ) x, integer ldx, double precision, dimension( ldxact, * ) xact, integer ldxact, double precision, dimension( * ) ferr, double precision, dimension( * ) berr, double precision, dimension( * ) reslts)

DGBT05 β€” she's the main character of this whole page πŸ’–

Purpose πŸ¦‹

!>
!> DGBT05 tests the error bounds from iterative refinement for the
!> computed solution to a system of equations op(A)*X = B, where A is a
!> general band matrix of order n with kl subdiagonals and ku
!> superdiagonals and op(A) = A or A**T, depending on TRANS.
!>
!> 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(op(A))*abs(X) +abs(b))_i )
!>             and NZ = max. number of nonzeros in any row of A, plus 1
!>

so like, she's out here testing error bounds from iterative refinement on op(A)*X = B, where A is a general band matrix of order n, with kl subdiagonals and ku superdiagonals, and op(A) = A or A**T depending on TRANS. iconic behavior honestly 🌸


Parameters πŸ’œ

  • TRANS β€” TRANS is CHARACTER*1. this queen specifies the form of the system of equations, okurrr:
    • = '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 number of rows of the matrices X, B, and XACT, and the order of the matrix A. N >= 0. so N is literally the boss of how many rows we're dealing with 🫑
  • KL β€” KL is INTEGER. the number of subdiagonals within the band of A. KL >= 0. lowkey the downward reach of the band ✨
  • KU β€” KU is INTEGER. the number of superdiagonals within the band of A. KU >= 0. and KU is the upward reach, balanced queen that she is 🌈
  • NRHS β€” NRHS is INTEGER. the number of columns of the matrices X, B, and XACT. NRHS >= 0. basically how many right-hand sides are invited to the party πŸŽ‰
  • AB β€” AB is DOUBLE PRECISION array, dimension (LDAB,N). 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:
AB(ku+1+i-j,j) = A(i,j) for max(1,j-ku)<=i<=min(n,j+kl).

(yes the indexing is a little extra, but she's worth it ngl)

  • LDAB β€” LDAB is INTEGER. the leading dimension of the array AB. LDAB >= KL+KU+1. do NOT disrespect this bound πŸ’€
  • B β€” B is DOUBLE PRECISION array, dimension (LDB,NRHS). the right hand side vectors for the system of linear equations. the "= B" part of the whole situation, yk?
  • LDB β€” LDB is INTEGER. the leading dimension of the array B. LDB >= max(1,N).
  • X β€” X is DOUBLE PRECISION array, dimension (LDX,NRHS). the computed solution vectors. each vector is stored as a column of the matrix X. she's the computed one, aka the try-hard πŸŽ€
  • LDX β€” LDX is INTEGER. the leading dimension of the array X. LDX >= max(1,N).
  • XACT β€” XACT is DOUBLE PRECISION array, dimension (LDX,NRHS). the exact solution vectors. each vector is stored as a column of the matrix XACT. the standard. the blueprint. the "what it should be" πŸ‘‘
  • LDXACT β€” LDXACT is INTEGER. the leading dimension of the array XACT. LDXACT >= max(1,N). (yes bestie, the declaration says dimension (LDX,NRHS) but the leading dim is LDXACT β€” that's just how the original rolls, I don't make the rules πŸ™ˆ)
  • FERR β€” FERR is DOUBLE PRECISION 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. so like, a fancy way of saying "how far off are we, relative to how big we are" πŸ’…
  • BERR β€” BERR is DOUBLE PRECISION 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 "how much would we have to tweak the inputs to make this look perfect" metric πŸ¦‹
  • RESLTS β€” RESLTS is DOUBLE PRECISION 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 + (*) )

Author 🌟

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

the whole squad came together for this one, fr fr 🫢


Definition at line 174 of file dgbt05.f.


🧚 Author (the meta one) 🧚

Generated automatically by Doxygen for LAPACK from the source code. not a human, just vibes and a parser 😭✨


and that's the whole page bestie β€” every flag, every bound, every formula, nothing skipped. you're so welcome πŸ’–

LAPACK Β· Version 3.12.0 Β· /home/abui...IN/dgbt05.f(3) β€” mwah, that's the sign-off, go slay your linear algebra πŸŽ€πŸ’…πŸ”₯

πŸ“¦ where this page comes from