pprfs(3)

πŸ’– pprfs(3) πŸ’–

okay so welcome to pprfs(3) from the Library Functions Manual β€” this is the iterative-refinement girlie squad and honestly they are so underrated. four subroutines, one job: take your janky computed solution and make it better ✨


πŸŽ€ NAME πŸŽ€

pprfs β€” pprfs: iterative refinement. that's it, that's the name, she's literally named after the vibe πŸ’…


🌸 SYNOPSIS 🌸

πŸ¦‹ Functions πŸ¦‹

  • cpprfs β€” the complex one, with rwork:
subroutine cpprfs (uplo, n, nrhs, ap, afp, b, ldb, x, ldx, ferr, berr,
    work, rwork, info)

its description line is just CPPRFS (iconic, minimal).

  • dpprfs β€” the double-precision one, with iwork:
subroutine dpprfs (uplo, n, nrhs, ap, afp, b, ldb, x, ldx, ferr, berr,
    work, iwork, info)

description line: DPPRFS.

  • spprfs β€” the single-precision one, also iwork:
subroutine spprfs (uplo, n, nrhs, ap, afp, b, ldb, x, ldx, ferr, berr,
    work, iwork, info)

description line: SPPRFS.

  • zpprfs β€” the double-complex one, back to rwork:
subroutine zpprfs (uplo, n, nrhs, ap, afp, b, ldb, x, ldx, ferr, berr,
    work, rwork, info)

description line: ZPPRFS.


⭐ Detailed Description ⭐

no cap, the "detailed description" section is just a header β€” the actual tea is all filed under Function Documentation, bestie. scroll with me 🫢


πŸ‘‘ Function Documentation πŸ‘‘

πŸ’œ subroutine cpprfs πŸ’œ

subroutine cpprfs (character uplo, integer n, integer nrhs,
    complex, dimension( * ) ap, complex, dimension( * ) afp,
    complex, dimension( ldb, * ) b, integer ldb,
    complex, dimension( ldx, * ) x, integer ldx,
    real, dimension( * ) ferr, real, dimension( * ) berr,
    complex, dimension( * ) work, real, dimension( * ) rwork,
    integer info)

CPPRFS β€” say hi πŸ‘‹

🌟 Purpose 🌟

CPPRFS improves the computed solution to a system of linear equations when the coefficient matrix is Hermitian positive definite and packed, and it also provides error bounds plus backward error estimates for that solution. so like β€” you already solved it, now she's gonna glow it up and tell you how wrong you still are 😭 (lovingly)

🌈 Parameters 🌈

  • UPLO β€” UPLO is CHARACTER*1. = 'U': the upper triangle of A is stored; = 'L': the lower triangle of A is stored. pick a side, bestie, you can't have both πŸŽ€
  • N β€” N is INTEGER, the order of the matrix A. N >= 0.
  • NRHS β€” NRHS is INTEGER, the number of right hand sides, i.e., the number of columns of the matrices B and X. NRHS >= 0.
  • AP β€” AP is COMPLEX array, dimension (N*(N+1)/2). this is the upper or lower triangle of the Hermitian matrix A, packed columnwise in a linear array. the j-th column of A is stored in the array AP like this:
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.
  • AFP β€” AFP is COMPLEX array, dimension (N*(N+1)/2). the triangular factor U or L from the Cholesky factorization A = U**H*U or A = L*L**H, as computed by SPPTRF/CPPTRF, packed columnwise in a linear array in the same format as A (see AP). yes she said SPPTRF/CPPTRF, that's the original text, don't come for me πŸ’€
  • B β€” B is COMPLEX array, dimension (LDB,NRHS). the right hand side matrix B.
  • LDB β€” LDB is INTEGER, the leading dimension of the array B. LDB >= max(1,N).
  • X β€” X is COMPLEX array, dimension (LDX,NRHS). on entry, the solution matrix X, as computed by CPPTRS. on exit, the improved solution matrix X πŸ”₯ that's the whole point, we love a glow-up arc.
  • LDX β€” LDX is INTEGER, the leading dimension of the array X. LDX >= max(1,N).
  • FERR β€” FERR is REAL array, dimension (NRHS). the estimated forward error bound for each solution vector X(j) (the j-th column of the solution matrix X). if XTRUE is the true solution corresponding to X(j), then FERR(j) is an estimated upper bound for the magnitude of the largest element in (X(j) - XTRUE) divided by the magnitude of the largest element in X(j). the estimate is as reliable as the estimate for RCOND, and is almost always a slight overestimate of the true error. so she's a li'l dramatic, but trustworthy 🫢
  • BERR β€” BERR is REAL array, dimension (NRHS). the componentwise relative backward error of each solution vector X(j) (i.e., the smallest relative change in any element of A or B that makes X(j) an exact solution).
  • WORK β€” WORK is COMPLEX array, dimension (2*N).
  • RWORK β€” RWORK is REAL array, dimension (N).
  • INFO β€” INFO is INTEGER:
    • = 0: successful exit πŸŽ‰
    • < 0: if INFO = -i, the i-th argument had an illegal value πŸ™ˆ

πŸ’€ Internal Parameters πŸ’€

  • ITMAX is the maximum number of steps of iterative refinement. (that's the loop count, she's not gonna refine forever, she has a life)

🧚 Author 🧚

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

Definition at line 169 of file cpprfs.f.


πŸ’œ subroutine dpprfs πŸ’œ

subroutine dpprfs (character uplo, integer n, integer nrhs,
    double precision, dimension( * ) ap,
    double precision, dimension( * ) afp,
    double precision, dimension( ldb, * ) b, integer ldb,
    double precision, dimension( ldx, * ) x, integer ldx,
    double precision, dimension( * ) ferr,
    double precision, dimension( * ) berr,
    double precision, dimension( * ) work,
    integer, dimension( * ) iwork, integer info)

DPPRFS β€” the double-precision twin πŸ’«

🌟 Purpose 🌟

DPPRFS improves the computed solution to a system of linear equations when the coefficient matrix is symmetric positive definite and packed, and provides error bounds and backward error estimates for the solution. same energy, different precision ✨

🌈 Parameters 🌈

  • UPLO β€” UPLO is CHARACTER*1. = 'U': the upper triangle of A is stored; = 'L': the lower triangle of A is stored.
  • N β€” N is INTEGER, the order of the matrix A. N >= 0.
  • NRHS β€” NRHS is INTEGER, the number of right hand sides, i.e., the number of columns of the matrices B and X. NRHS >= 0.
  • AP β€” AP is DOUBLE PRECISION array, dimension (N*(N+1)/2). the upper or lower triangle of the symmetric matrix A, packed columnwise in a linear array. the j-th column of A lives in the array AP like so:
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.
  • AFP β€” AFP is DOUBLE PRECISION array, dimension (N*(N+1)/2). the triangular factor U or L from the Cholesky factorization A = U**T*U or A = L*L**T, as computed by DPPTRF/ZPPTRF, packed columnwise in a linear array in the same format as A (see AP). (yes, DPPTRF/ZPPTRF, that's what it says, i don't make the rules πŸ™ˆ)
  • B β€” B is DOUBLE PRECISION array, dimension (LDB,NRHS). the right hand side matrix B.
  • LDB β€” LDB is INTEGER, the leading dimension of the array B. LDB >= max(1,N).
  • X β€” X is DOUBLE PRECISION array, dimension (LDX,NRHS). on entry, the solution matrix X, as computed by DPPTRS. on exit, the improved solution matrix X πŸ”₯
  • LDX β€” LDX is INTEGER, the leading dimension of the array X. LDX >= max(1,N).
  • FERR β€” FERR is DOUBLE PRECISION array, dimension (NRHS). the estimated forward error bound for each solution vector X(j) (the j-th column of the solution matrix X). if XTRUE is the true solution corresponding to X(j), FERR(j) is an estimated upper bound for the magnitude of the largest element in (X(j) - XTRUE) divided by the magnitude of the largest element in X(j). the estimate is as reliable as the estimate for RCOND, and is almost always a slight overestimate of the true error.
  • BERR β€” BERR is DOUBLE PRECISION array, dimension (NRHS). the componentwise relative backward error of each solution vector X(j) (i.e., the smallest relative change in any element of A or B that makes X(j) an exact solution).
  • WORK β€” WORK is DOUBLE PRECISION array, dimension (3*N). (three times N, not two β€” she's built different πŸ’…)
  • IWORK β€” IWORK is INTEGER array, dimension (N).
  • INFO β€” INFO is INTEGER:
    • = 0: successful exit πŸŽ‰
    • < 0: if INFO = -i, the i-th argument had an illegal value πŸ™ˆ

πŸ’€ Internal Parameters πŸ’€

  • ITMAX is the maximum number of steps of iterative refinement.

🧚 Author 🧚

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

Definition at line 169 of file dpprfs.f.


πŸ’œ subroutine spprfs πŸ’œ

subroutine spprfs (character uplo, integer n, integer nrhs,
    real, dimension( * ) ap, real, dimension( * ) afp,
    real, dimension( ldb, * ) b, integer ldb,
    real, dimension( ldx, * ) x, integer ldx,
    real, dimension( * ) ferr, real, dimension( * ) berr,
    real, dimension( * ) work, integer, dimension( * ) iwork,
    integer info)

SPPRFS β€” single precision, same attitude 🌸

🌟 Purpose 🌟

SPPRFS improves the computed solution to a system of linear equations when the coefficient matrix is symmetric positive definite and packed, and provides error bounds and backward error estimates for the solution. (yes, she's DPPRFS's single-precision sister, they share a closet πŸ‘―)

🌈 Parameters 🌈

  • UPLO β€” UPLO is CHARACTER*1. = 'U': the upper triangle of A is stored; = 'L': the lower triangle of A is stored.
  • N β€” N is INTEGER, the order of the matrix A. N >= 0.
  • NRHS β€” NRHS is INTEGER, the number of right hand sides, i.e., the number of columns of the matrices B and X. NRHS >= 0.
  • AP β€” AP is REAL array, dimension (N*(N+1)/2). the upper or lower triangle of the symmetric 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.
  • AFP β€” AFP is REAL array, dimension (N*(N+1)/2). the triangular factor U or L from the Cholesky factorization A = U**T*U or A = L*L**T, as computed by SPPTRF/CPPTRF, packed columnwise in a linear array in the same format as A (see AP).
  • B β€” and bestie… this is exactly where the page cuts off 😭 part 2 has the rest of spprfs, plus all of zpprfs β€” don't move πŸ’–
  • B β€” B is a REAL array, dimension (LDB,NRHS). It’s the right hand side matrix B. πŸ’–
  • LDB β€” LDB is INTEGER. It’s the leading dimension of the array B. LDB >= max(1,N). Respect the leading dimension, bestie, it’s not decorative. ✨
  • X β€” X is a REAL array, dimension (LDX,NRHS). On entry, it’s the solution matrix X, as computed by SPPTRS. On exit, it’s the improved solution matrix X. glow-up arc, literally. πŸ’…
  • LDX β€” LDX is INTEGER. It’s the leading dimension of the array X. LDX >= max(1,N). πŸŽ€
  • FERR β€” FERR is a REAL array, dimension (NRHS). It’s the estimated forward error bound for each solution vector X(j) (the j-th column of the solution matrix X). If XTRUE is the true solution corresponding to X(j), FERR(j) is an estimated upper bound for the magnitude of the largest element in (X(j) - XTRUE) divided by the magnitude of the largest element in X(j). The estimate is as reliable as the estimate for RCOND, and is almost always a slight overestimate of the true error. 🫢
  • BERR β€” BERR is a REAL array, dimension (NRHS). It’s the componentwise relative backward error of each solution vector X(j) (i.e., the smallest relative change in any element of A or B that makes X(j) an exact solution). πŸ¦‹
  • WORK β€” WORK is a REAL array, dimension (3*N). 🌸
  • IWORK β€” IWORK is an INTEGER array, dimension (N). 🌈
  • INFO β€” INFO is INTEGER. = 0: successful exit. < 0: if INFO = -i, the i-th argument had an illegal value. πŸ‘‘

πŸ”₯ Internal Parameters

  • ITMAX β€” ITMAX is the maximum number of steps of iterative refinement. πŸ”₯

πŸ‘‘ Author

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

Definition at line 169 of file spprfs.f. πŸ’œ


🧚 subroutine zpprfs

   subroutine zpprfs (character uplo, integer n, integer nrhs, complex*16,
       dimension( * ) ap, complex*16, dimension( * ) afp, complex*16,
       dimension( ldb, * ) b, integer ldb, complex*16, dimension( ldx, * ) x,
       integer ldx, double precision, dimension( * ) ferr, double precision,
       dimension( * ) berr, complex*16, dimension( * ) work, double precision,
       dimension( * ) rwork, integer info)

πŸ’œ ZPPRFS πŸ’œ

🌸 Purpose 🌸

ZPPRFS improves the computed solution to a system of linear equations when the coefficient matrix is Hermitian positive definite and packed, and provides error bounds and backward error estimates for the solution. no cap, that’s the whole serve. πŸ’–

✨ Parameters ✨

  • UPLO β€” UPLO is CHARACTER*1. = 'U': Upper triangle of A is stored; = 'L': Lower triangle of A is stored. pick your triangle, bestie. πŸ’…
  • N β€” N is INTEGER. The order of the matrix A. N >= 0. 🌟
  • NRHS β€” NRHS is INTEGER. The number of right hand sides, i.e., the number of columns of the matrices B and X. NRHS >= 0. πŸŽ€
  • AP β€” AP is a COMPLEX*16 array, dimension (N*(N+1)/2). It’s the upper or lower triangle of the Hermitian 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. packed and serving, iykyk. πŸ¦‹
  • AFP β€” AFP is a COMPLEX*16 array, dimension (N*(N+1)/2). It’s the triangular factor U or L from the Cholesky factorization A = U**H*U or A = L*L**H, as computed by DPPTRF/ZPPTRF, packed columnwise in a linear array in the same format as A (see AP). πŸ’œ
  • B β€” B is a COMPLEX*16 array, dimension (LDB,NRHS). It’s the right hand side matrix B. πŸ’–
  • LDB β€” LDB is INTEGER. It’s the leading dimension of the array B. LDB >= max(1,N). ✨
  • X β€” X is a COMPLEX*16 array, dimension (LDX,NRHS). On entry, it’s the solution matrix X, as computed by ZPPTRS. On exit, it’s the improved solution matrix X. main character energy: enters as a solution, exits improved. πŸ’…
  • LDX β€” LDX is INTEGER. It’s the leading dimension of the array X. LDX >= max(1,N). πŸŽ€
  • FERR β€” FERR is a DOUBLE PRECISION array, dimension (NRHS). It’s the estimated forward error bound for each solution vector X(j) (the j-th column of the solution matrix X). If XTRUE is the true solution corresponding to X(j), FERR(j) is an estimated upper bound for the magnitude of the largest element in (X(j) - XTRUE) divided by the magnitude of the largest element in X(j). The estimate is as reliable as the estimate for RCOND, and is almost always a slight overestimate of the true error. 🫢
  • BERR β€” BERR is a DOUBLE PRECISION array, dimension (NRHS). It’s the componentwise relative backward error of each solution vector X(j) (i.e., the smallest relative change in any element of A or B that makes X(j) an exact solution). 🌸
  • WORK β€” WORK is a COMPLEX*16 array, dimension (2*N). 🌈
  • RWORK β€” RWORK is a DOUBLE PRECISION array, dimension (N). ⭐
  • INFO β€” INFO is INTEGER. = 0: successful exit. < 0: if INFO = -i, the i-th argument had an illegal value. πŸ‘‘

πŸ”₯ Internal Parameters

  • ITMAX β€” ITMAX is the maximum number of steps of iterative refinement. πŸ”₯

πŸ‘‘ Author

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

Definition at line 169 of file zpprfs.f. πŸ’œ

🌈 Author (page metadata)

Generated automatically by Doxygen for LAPACK from the source code. 🫢


πŸ’… Source/version check, bestie: this footer is giving LAPACK Version 3.12.0 and page pprfs(3). No date in this footer β€” just version, page, and vibes. πŸŽ€

πŸ“¦ where this page comes from