STPT05(3)
πΈ STPT05(3) β like, the triangular-packed error-bound tester, bestie πΈ
okay so first things first, the manual name here is Library Functions Manual, and the whole page lives at /home/abui...IN/stpt05.f(3). Cute. Let's get into it π
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/stpt05.f
that's the whole name section. yes, it's just a path. she's lowkey minimal, we respect it π
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine STPT05 (uplo, trans, diag, n, nrhs, ap, b, ldb, x, ldx, xact,
ldxact, ferr, berr, reslts)
STPT05
π Function/Subroutine Documentation π
subroutine STPT05 (character uplo, character trans, character diag, integer
n, integer nrhs, real, dimension( * ) ap, 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)
STPT05
π§ Purpose π§
ok so here's the vibe β STPT05 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. iconic behavior honestly β¨
!>
!> STPT05 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.
!>
!> 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(A)*abs(X) +abs(b))_i )
!>
one (1) thing to note, bestie β a large value comes back if that ratio is not less than one. so like, big number = bad vibes. noted π«Ά
π Parameters π
UPLO
!> UPLO is CHARACTER*1
!> Specifies whether the matrix A is upper or lower triangular.
!> = 'U': Upper triangular
!> = 'L': Lower triangular
!>
which triangle are we even talking about. 'U' upper, 'L' lower, pick your fighter π
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)
!>
'N' = no transpose, 'T' = transpose, 'C' = conjugate transpose β and for real matrices 'C' is literally just 'T', so she's giving the same energy twice π
DIAG
!> DIAG is CHARACTER*1
!> Specifies whether or not the matrix A is unit triangular.
!> = 'N': Non-unit triangular
!> = 'U': Unit triangular
!>
is the diagonal unit or not. 'N' = not unit, 'U' = unit. that's the whole thing π
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, periodt β
NRHS
!> NRHS is INTEGER
!> The number of columns of the matrices X, B, and XACT.
!> NRHS >= 0.
!>
how many columns X, B, and XACT have. NRHS >= 0 π
AP
!> AP is REAL 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.
!>
the matrix A herself, packed columnwise into a linear array, dimension (N*(N+1)/2). the indexing is giving math girlie so here it is again, exactly:
- if
UPLO = 'U',AP(i + (j-1)*j/2) = A(i,j)for1<=i<=j; - if
UPLO = 'L',AP(i + (j-1)*(2n-j)/2) = A(i,j)forj<=i<=n.
and ifDIAG = 'U', the diagonal elements ofAare not referenced and are assumed to be1. so don't go putting stuff there and expecting it to matter π
B
!> B is REAL array, dimension (LDB,NRHS)
!> The right hand side vectors for the system of linear
!> equations.
!>
the right hand side vectors, dimension (LDB,NRHS). she's the "= B" in A*X = B π
LDB
!> LDB is INTEGER
!> The leading dimension of the array B. LDB >= max(1,N).
!>
leading dimension of B, and LDB >= max(1,N). don't test her on this one πΈ
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, dimension (LDX,NRHS), one vector per 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), same drill π¦
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, dimension (LDX,NRHS), each stored as a column of XACT. yes the dimension says LDX and not LDXACT β that's what the page says, don't come for me π
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.
!>
the estimated forward error bounds for each solution vector X, dimension (NRHS). 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. she's a bounder, she bounds π
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, dimension (NRHS) β i.e., the smallest relative change in any entry of A or B that makes X an exact solution. the way she's literally "how much do i gotta nudge you to make this correct" π₯
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 + (*) )
!>
the payoff, dimension (2). it's the maximum over the NRHS solution vectors of the ratios:
RESLTS(1) = norm(X - XACT) / ( norm(X) * FERR )
RESLTS(2) = BERR / ( (n+1)*EPS + (*) )
main character array honestly π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
and she's Definition at line 172 of file stpt05.f. β go look, it's right there π
β Author β
Generated automatically by Doxygen for LAPACK from the source code. a bot wrote this page, and honestly? she ate π€β¨
and that's the whole thing bestie, mwah π«Ά
LAPACK β Version 3.12.0 β /home/abui...IN/stpt05.f(3) π no cap, that's the version and the date-ish footer info, signed off with love from your favorite triangular-packed testing girlie πΈ
π¦ where this page comes from
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms