CTPT05(3)

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

πŸ¦‹ CTPT05(3) β€” LAPACK Library Functions Manual πŸ¦‹

okay bestie, so this one lives at /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/ctpt05.f and it's literally a whole vibe. it's a subroutine, it's in the LAPACK testing folder, and it's about to check somebody's iterative refinement. let's get into it πŸ’…


✨ SYNOPSIS ✨

🌸 Functions/Subroutines

subroutine CTPT05 (uplo, trans, diag, n, nrhs, ap, b, ldb, x, ldx, xact,
    ldxact, ferr, berr, reslts)
    CTPT05

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

subroutine CTPT05 (character uplo, character trans, character diag, integer
    n, integer nrhs, complex, dimension( * ) ap, complex, dimension( ldb, *
    ) b, integer ldb, complex, dimension( ldx, * ) x, integer ldx, complex,
    dimension( ldxact, * ) xact, integer ldxact, real, dimension( * ) ferr,
    real, dimension( * ) berr, real, dimension( * ) reslts)

Yep, that's CTPT05. here we go πŸ‘‘

πŸ’– Purpose πŸ’–

bestie, CTPT05 tests the error bounds from iterative refinement for the computed solution to a system of equations A*X = B, where A is a triangular matrix in packed storage format. no cap, that's the whole job.

so the results shake out like this:

RESLTS(1) = test of the error bound
          = norm(X - XACT) / ( norm(X) * FERR )

and a large value is returned if this ratio is not less than one πŸ‘€ β€” like, that's the flag, that's the "something's off" signal, fr fr.

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 )

periodt. πŸ’…


🧚 Parameters 🧚

okay so here's every single one of them, no skipping:

  • UPLO β€” CHARACTER*1. Specifies whether the matrix A is upper or lower triangular:
    • 'U': Upper triangular
    • 'L': Lower triangular
  • TRANS β€” 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)
  • DIAG β€” CHARACTER*1. Specifies whether or not the matrix A is unit triangular:
    • 'N': Non-unit triangular
    • 'U': Unit triangular
  • N β€” INTEGER. The number of rows of the matrices X, B, and XACT, and the order of the matrix A. N >= 0.
  • NRHS β€” INTEGER. The number of columns of the matrices X, B, and XACT. NRHS >= 0.
  • AP β€” COMPLEX array, dimension (N*(N+1)/2). The upper or lower triangular matrix A, packed columnwise in a linear array. The j-th column of A is stored in the array AP as follows:
    • if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
    • if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.

If DIAG = 'U', the diagonal elements of A are not referenced and are assumed to be 1. (iconic of them honestly)

  • B β€” COMPLEX array, dimension (LDB,NRHS). The right hand side vectors for the system of linear equations.
  • LDB β€” INTEGER. The leading dimension of the array B. LDB >= max(1,N).
  • X β€” COMPLEX array, dimension (LDX,NRHS). The computed solution vectors. Each vector is stored as a column of the matrix X.
  • LDX β€” INTEGER. The leading dimension of the array X. LDX >= max(1,N).
  • XACT β€” COMPLEX array, dimension (LDX,NRHS). The exact solution vectors. Each vector is stored as a column of the matrix XACT. ✨ the truth ✨
  • LDXACT β€” INTEGER. The leading dimension of the array XACT. LDXACT >= max(1,N).
  • FERR β€” 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 β€” 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 β€” 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 whole squad behind this one, give them their flowers 🫢:

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

Definition at line 173 of file ctpt05.f. πŸ“


⭐ Author (again, but the doxygen one) ⭐

Generated automatically by Doxygen for LAPACK from the source code. yes, a robot wrote the docs, and honestly? she ate. πŸ’€


lowkey a reminder bestie: LDB, LDX, and LDXACT all have to be >= max(1,N) or this is not going to go well for you. the manpage says it, so i'm saying it. πŸ™ˆ

πŸ’– that's the whole page! LAPACK, Version 3.12.0, footer date and all β€” this was /home/abui...IN/ctpt05.f(3), and you absolutely understood it. slay. go test those error bounds. πŸŽ€βœ¨πŸ¦‹

πŸ“¦ where this page comes from