DGET07(3)

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

πŸ’… DGET07(3) β€” dget07.f, from the LAPACK Library Functions Manual πŸŽ€

okay bestie so this page is from the LAPACK Library Functions Manual (that's the manual name, slay) and the file it documents lives at /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/dget07.f β€” yes that's the whole NAME section, it's literally just the path, very "my name is my address" of it. iconic honestly.


✨ SYNOPSIS ✨

🫢 Functions/Subroutines

subroutine DGET07 (trans, n, nrhs, a, lda, b, ldb, x, ldx, xact, ldxact,
    ferr, chkferr, berr, reslts)

DGET07 β€” the group chat is calling πŸ’–


🌸 Function/Subroutine Documentation 🌸

subroutine DGET07 (character trans, integer n, integer nrhs, double
    precision, dimension( lda, * ) a, integer lda, 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, logical chkferr, double
    precision, dimension( * ) berr, double precision, dimension( * ) reslts)

DGET07 😌

πŸ’œ Purpose πŸ’œ

!> !> DGET07 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 n by n matrix 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 / ( (n+1)*EPS + (*) ), where !> (*) = (n+1)*UNFL / (min_i (abs(op(A))*abs(X) +abs(b))_i ) !>

so basically this routine is the vibe-check manager for iterative refinement β€” it peeks at your computed solution to op(A)*X = B (where A is a general n by n matrix and op(A) is either A or A**T, depending on TRANS) and is like "girl… are these error bounds actually bounds" 😭✨

two things come back in RESLTS:

  1. RESLTS(1) = norm(X - XACT) / ( norm(X) * FERR ) β€” the error bound test, and if that ratio isn't less than one you get a large value back, i.e. the test is failing, ngl.
  2. RESLTS(2) = BERR / ( (n+1)*EPS + (*) ), maximized over stuff, where (*) = (n+1)*UNFL / (min_i (abs(op(A))*abs(X) +abs(b))_i ).

yes king, get those bounds checked πŸ‘‘


πŸ¦‹ Parameters πŸ¦‹

  • TRANS β€” TRANS is CHARACTER*1. it says what shape the system is taking, lowkey the main character of the input list:
    • = '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 and XACT. N >= 0. zero is allowed, she's flexible πŸ’…
  • NRHS β€” NRHS is INTEGER. the number of columns of the matrices X and XACT. NRHS >= 0.
  • A β€” A is DOUBLE PRECISION array, dimension (LDA,N). the original n by n matrix A. the blueprint. the moment.
  • LDA β€” LDA is INTEGER. the leading dimension of the array A. LDA >= max(1,N). don't disrespect her.
  • B β€” B is DOUBLE PRECISION array, dimension (LDB,NRHS). the right hand side vectors for the system of linear equations. the "what we're tryna solve for" energy πŸŽ€
  • 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 computed, not exact, we're all doing our best 😭
  • 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 unattainable standard, fr fr ✨
  • LDXACT β€” LDXACT is INTEGER. the leading dimension of the array XACT. LDXACT >= max(1,N).
  • 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, how far off are we, relative-style 🫢
  • CHKFERR β€” CHKFERR is LOGICAL. set to .TRUE. to check FERR, .FALSE. not to check FERR. and here's the tea: when the test system is ill-conditioned, the solution in XACT may be incorrect. so yeah, that's a real caveat, bestie, don't come for the results if the system is messy πŸ™ˆ
  • 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 lie to make this correct" number πŸ’€
  • RESLTS β€” RESLTS is DOUBLE PRECISION array, dimension (2). the maximum over the NRHS solution vectors of these ratios:
    • RESLTS(1) = norm(X - XACT) / ( norm(X) * FERR )
    • RESLTS(2) = BERR / ( (n+1)*EPS + (*) )

πŸ‘‘ Author πŸ‘‘

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

Definition at line 163 of file dget07.f. β€” go look, line 163, she's right there πŸ’–


🌈 Author (of this here page) 🌈

Generated automatically by Doxygen for LAPACK from the source code. not a human, just vibes and a parser πŸ€–βœ¨


⭐ little reminder before you go: this page is part of LAPACK, Version 3.12.0, and the whole thing signs off as /home/abui...IN/dget07.f(3) β€” mwah, bye bestie, go check those bounds πŸ’…πŸŽ€πŸ¦‹
πŸ“¦ where this page comes from