ZPOT05(3)
π ZPOT05(3) β like, the zpot05.f page from the LAPACK manual, bestie
okay so this is a Library Functions Manual page, and literally the whole thing lives at:
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/zpot05.f
like that's the whole vibe. it's a Fortran file in the LAPACK TESTING/LIN directory and it's about to test somebody's error bounds. no cap. π§
β¨ SYNOPSIS β¨
πΈ Functions/Subroutines
subroutine ZPOT05 (uplo, n, nrhs, a, lda, b, ldb, x, ldx, xact, ldxact,
ferr, berr, reslts)
ZPOT05
π Function/Subroutine Documentation π
π¦ the signature, in full, verbatim, no edits
subroutine ZPOT05 (character uplo, integer n, integer nrhs, complex*16,
dimension( lda, * ) a, integer lda, complex*16, dimension( ldb, * ) b,
integer ldb, complex*16, dimension( ldx, * ) x, integer ldx, complex*16,
dimension( ldxact, * ) xact, integer ldxact, double precision,
dimension( * ) ferr, double precision, dimension( * ) berr, double
precision, dimension( * ) reslts)
ZPOT05
honestly? iconic. look at all those arguments. she's got range. π
π₯ Purpose π₯
bestie, listen. ZPOT05 tests the error bounds from iterative refinement for the computed solution to a system of equations A*X = B, where A is a Hermitian n by n matrix. that's the whole job. that's her main character energy.
here's the math, and i'm giving it to you exactly how she wrote it:
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. π«Ά (so like... big number = bad news, iykyk.)
and then:
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. that's it. that's the purpose.
β Parameters β
π UPLO
UPLO is CHARACTER*1 β it specifies whether the upper or lower triangular part of the Hermitian matrix A is stored. that's the vibe check for where your data lives:
= '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. so N >= 0, obviously. π
π NRHS
NRHS is INTEGER β the number of columns of the matrices X, B, and XACT. NRHS >= 0. slay.
π A
A is COMPLEX*16 array, dimension (LDA,N) β the Hermitian matrix A. here's the tea:
- if
UPLO = 'U', the leading n by n upper triangular part ofAcontains the upper triangular part of the matrixA, and the strictly lower triangular part ofAis not referenced. - if
UPLO = 'L', the leading n by n lower triangular part ofAcontains the lower triangular part of the matrixA, and the strictly upper triangular part ofAis not referenced.
π LDA
LDA is INTEGER β the leading dimension of the array A. LDA >= max(1,N). don't come at her with a smaller number, she will know. π
π B
B is COMPLEX*16 array, dimension (LDB,NRHS) β the right hand side vectors for the system of linear equations. the "= B" part of A*X = B. iconic.
π LDB
LDB is INTEGER β the leading dimension of the array B. LDB >= max(1,N). π
π X
X is COMPLEX*16 array, dimension (LDX,NRHS) β the computed solution vectors. each vector is stored as a column of the matrix X. note the word computed, she's being precise about it. π
π LDX
LDX is INTEGER β the leading dimension of the array X. LDX >= max(1,N).
π XACT
XACT is COMPLEX*16 array, dimension (LDX,NRHS) β the exact solution vectors. each vector is stored as a column of the matrix XACT. yes the dimension is written as LDX here, that's not a typo on my part, that's literally what the page says. π¦
π 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. so like, 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. that's the definition, i'm not paraphrasing that one, it's load-bearing. π«Ά
π 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). lowkey the most interesting one ngl.
π 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 / ( (n+1)*EPS + (*) )
two slots, two ratios, maximum over all NRHS vectors. she contains multitudes. β¨
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
a whole committee of legends, fr fr. π«Ά
π Definition at line 163 of file zpot05.f. β go look, it's really there.
π Author (the other one) π
Generated automatically by Doxygen for LAPACK from the source code. so nobody hand-wrote this part, the robot did. respect the robot. π€
and that's the page!! π
this whole thing ships with LAPACK, Version 3.12.0, and the file it came from is that /home/abui...IN/zpot05.f(3) path at the bottom (yeah, the truncated one β that's literally how it's printed, don't @ me). mwah, go test those error bounds bestie πππ¦πΈ
π¦ 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