DPOT05(3)

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

πŸ’… 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 β€” UPLO is CHARACTER*1. it says which triangular half of the symmetric matrix A we'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 β€” N is INTEGER. it's the number of rows of the matrices X, B, and XACT, and also the order of the matrix A. and N >= 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 β€” NRHS is INTEGER. it's the number of columns of the matrices X, B, and XACT. and NRHS >= 0 ✨
!> NRHS is INTEGER !> The number of columns of the matrices X, B, and XACT. !> NRHS >= 0.
  • A β€” A is a DOUBLE PRECISION array, dimension (LDA,N). it's the symmetric matrix A itself πŸŽ€ here's the tea: 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. 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 β€” LDA is INTEGER. it's the leading dimension of the array A, and LDA >= max(1,N) ⭐
!> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N).
  • B β€” B is a DOUBLE PRECISION array, 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 β€” LDB is INTEGER. leading dimension of the array B, and LDB >= max(1,N) 🌸
``` !> LDB is INTEGER

!> The leading dimension of the array B. LDB >= max(1,N).

```
  • X β€” X is a DOUBLE PRECISION array, dimension (LDX,NRHS). these are the computed solution vectors, and each vector is stored as a column of the matrix X πŸ¦‹
!> X is DOUBLE PRECISION array, dimension (LDX,NRHS) !> The computed solution vectors. Each vector is stored as a !> column of the matrix X.
  • LDX β€” LDX is INTEGER. leading dimension of the array X, and LDX >= max(1,N) πŸ”₯
!> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N).
  • XACT β€” XACT is a DOUBLE PRECISION array, dimension (LDX,NRHS). the exact solution vectors, and each vector is stored as a column of the matrix XACT πŸ’œ (yes the dimension says LDX not LDXACT, 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 β€” LDXACT is INTEGER. leading dimension of the array XACT, and LDXACT >= max(1,N) ✨
!> LDXACT is INTEGER !> The leading dimension of the array XACT. LDXACT >= max(1,N).
  • FERR β€” FERR is a 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. 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 β€” BERR is a DOUBLE PRECISION array, dimension (NRHS). the componentwise relative backward error of each solution vector β€” like, the smallest relative change in any entry of A or B that makes X an 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 β€” RESLTS is a DOUBLE PRECISION array, dimension (2). the maximum over the NRHS solution 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