SPOT05(3)

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

okay bestie, welcome to the spot05.f(3) page πŸ’… it lives in the Library Functions Manual, and it’s all about SPOT05 β€” a Fortran subroutine that checks error bounds like it’s doing a vibe check on your linear solve. no cap, every detail is here. grab a strawberry drink πŸ“ and let’s go.

🌸 NAME 🌸

the NAME is literally this exact file path:

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/spot05.f

iconic, chaotic, but that’s the name πŸ’–

✨ SYNOPSIS ✨

Functions/Subroutines

here’s the callable thing, bestie:

       subroutine SPOT05 (uplo, n, nrhs, a, lda, b, ldb, x, ldx, xact, ldxact,
           ferr, berr, reslts)
           SPOT05

πŸ’« Function/Subroutine Documentation πŸ’«

this is the full documentation flex. the signature is long and dramatic, but it’s exactly this:

   subroutine SPOT05 (character uplo, integer n, integer nrhs, real, dimension(
       lda, * ) a, integer lda, 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)
       SPOT05

πŸŽ€ Purpose πŸŽ€

bestie, the purpose is this: SPOT05 tests the error bounds from iterative refinement for the computed solution to a system of equations A*X = B, where A is a symmetric n by n matrix. it’s giving quality control for your solve πŸ”₯

RESLTS(1) is the test of the error bound:

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. that’s the vibe check failing 😭

RESLTS(2) is the residual from the iterative refinement routine:

RESLTS(2) = residual from the iterative refinement routine
          = the maximum of BERR / ( (n+1)*EPS + (*) ), where
            (*) = (n+1)*UNFL / (min_i (abs(A)*abs(X) +abs(b))_i )

🧩 Parameters 🧩

every parameter matters, no skipping πŸ’…

UPLO

UPLO is CHARACTER*1 and tells us whether we’re storing the upper or lower triangular part of the symmetric matrix A.

  • = 'U': Upper triangular
  • = 'L': Lower triangular

N

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

NRHS

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

A

A is REAL array, dimension (LDA,N): the symmetric matrix A.

if UPLO = 'U', the leading n by n upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. if UPLO = 'L', the leading n by n lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.

LDA

LDA is INTEGER: the leading dimension of the array A. LDA >= max(1,N).

B

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

LDB

LDB is INTEGER: the leading dimension of the array 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.

LDX

LDX is INTEGER: the leading dimension of the array 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.

LDXACT

LDXACT is INTEGER: the leading dimension of the array 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.

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).

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 / ( (n+1)*EPS + (*) )

πŸ‘‘ Author πŸ‘‘

the author squad is: Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver, NAG Ltd. πŸ’œ

Definition at line 162 of file spot05.f.

πŸ‘‘ Author πŸ‘‘

this page was generated automatically by Doxygen for LAPACK from the source code.


okay that’s the whole page, bestie. signing off from LAPACK Version 3.12.0, page /home/abui...IN/spot05.f(3) πŸ’–βœ¨ go forth, check those error bounds, and slay. periodt.

πŸ“¦ where this page comes from