DPOT05(3)
π DPOT05(3) β like, the whole entire manual page, bestie β¨
okay so this is the dpot05.f page from the LAPACK library manual, and the file lives at /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/dpot05.f π (yes the path is a whole paragraph, we don't talk about it π). It's filed under Library Functions Manual and it's literally just one little subroutine doing its thing. Let's get into it π«Ά
πΈ NAME πΈ
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/dpot05.f
that's it. that's the name. the whole path. she's an icon, she's a mystery, she's a fortran file π
β¨ SYNOPSIS β¨
π¦ Functions/Subroutines π¦
subroutine DPOT05 (uplo, n, nrhs, a, lda, b, ldb, x, ldx, xact, ldxact,
ferr, berr, reslts)
DPOT05 β that's her. that's the girl. π
π Function/Subroutine Documentation π
subroutine DPOT05 (character uplo, 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, double precision,
dimension( * ) berr, double precision, dimension( * ) reslts)
DPOT05 π
(yes, again, she's main character energy, she gets a second intro)
π― Purpose π―
!> !> DPOT05 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. !> !> 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 ) !>
so basically: DPOT05 vibe-checks the error bounds that came out of iterative refinement, for the computed solution to A*X = B, where A is a symmetric n by n matrix. no cap, that's the whole job π₯
RESLTS(1) is the error-bound test β it's norm(X - XACT) / ( norm(X) * FERR ). and if that ratio is not less than one, you get a large value back π big yikes.
RESLTS(2) is the residual from the iterative refinement routine β it's the max of BERR / ( (n+1)*EPS + (*) ), where (*) = (n+1)*UNFL / (min_i (abs(A)*abs(X) +abs(b))_i ). fr fr, that's the formula, i don't make the rules π§
π Parameters π
UPLOβUPLOisCHARACTER*1. it says which triangular half of the symmetric matrixAwe're actually storing, bestie:
!> UPLO is CHARACTER*1 !> Specifies whether the upper or lower triangular part of the !> symmetric matrix A is stored. !> = 'U': Upper triangular !> = 'L': Lower triangular
'U' = upper triangular, 'L' = lower triangular. pick one π
NβNisINTEGER. it's the number of rows of the matricesX,B, andXACT, and also the order of the matrixA. andN >= 0, okay? no negatives π
!> N is INTEGER !> The number of rows of the matrices X, B, and XACT, and the !> order of the matrix A. N >= 0.
NRHSβNRHSisINTEGER. it's the number of columns of the matricesX,B, andXACT. andNRHS >= 0β¨
!> NRHS is INTEGER !> The number of columns of the matrices X, B, and XACT. !> NRHS >= 0.
AβAis aDOUBLE PRECISIONarray, dimension(LDA,N). it's the symmetric matrixAitself π here's the tea: ifUPLO = '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. ifUPLO = '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. so like, half of her is just vibing, unbothered π
!> A is DOUBLE PRECISION 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βLDAisINTEGER. it's the leading dimension of the arrayA, andLDA >= max(1,N)β
!> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N).
BβBis aDOUBLE PRECISIONarray, dimension(LDB,NRHS). these are the right hand side vectors for the system of linear equations π
!> B is DOUBLE PRECISION array, dimension (LDB,NRHS) !> The right hand side vectors for the system of linear !> equations.
LDBβLDBisINTEGER. leading dimension of the arrayB, andLDB >= max(1,N)πΈ
``` !> LDB is INTEGER
!> The leading dimension of the array B. LDB >= max(1,N).
```
XβXis aDOUBLE PRECISIONarray, dimension(LDX,NRHS). these are the computed solution vectors, and each vector is stored as a column of the matrixXπ¦
!> X is DOUBLE PRECISION array, dimension (LDX,NRHS) !> The computed solution vectors. Each vector is stored as a !> column of the matrix X.
LDXβLDXisINTEGER. leading dimension of the arrayX, andLDX >= max(1,N)π₯
!> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N).
XACTβXACTis aDOUBLE PRECISIONarray, dimension(LDX,NRHS). the exact solution vectors, and each vector is stored as a column of the matrixXACTπ (yes the dimension saysLDXnotLDXACT, that's what the original says, i'm just the messenger π«Ά)
!> XACT is DOUBLE PRECISION array, dimension (LDX,NRHS) !> The exact solution vectors. Each vector is stored as a !> column of the matrix XACT.
LDXACTβLDXACTisINTEGER. leading dimension of the arrayXACT, andLDXACT >= max(1,N)β¨
!> LDXACT is INTEGER !> The leading dimension of the array XACT. LDXACT >= max(1,N).
FERRβFERRis aDOUBLE PRECISIONarray, dimension(NRHS). the estimated forward error bounds for each solution vectorXπ ifXTRUEis the true solution,FERRbounds the magnitude of the largest entry in(X - XTRUE)divided by the magnitude of the largest entry inX. it's giving "how far off am i, roughly" energy, we love her π
!> 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.
BERRβBERRis aDOUBLE PRECISIONarray, dimension(NRHS). the componentwise relative backward error of each solution vector β like, the smallest relative change in any entry ofAorBthat makesXan exact solution π
!> 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).
RESLTSβRESLTSis aDOUBLE PRECISIONarray, dimension(2). the maximum over theNRHSsolution vectors of these ratios, and here they are, no cap, exact π
!> 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 + (*) )
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
that's the squad behind it π«Ά all four of them, iconic.
β Definition at line 162 of file dpot05.f. β
yep. line 162. that's where she's defined. iykyk π§
π Author (again) π
Generated automatically by Doxygen for LAPACK from the source code.
so nobody hand-wrote this bad boy, a robot did it for us π slay.
made with love by LAPACK, Version 3.12.0 π and that lil footer path /home/abui...IN/dpot05.f(3)? that's just the vibe check at the door, bestie. bye, mwah! πβ¨π
π¦ 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