ppequ(3)

πŸ’– NAME πŸ’–

okay bestie, welcome to the ppequ(3) library functions manual page β€” the one and only home of ppequ: equilibration. This is where the packed-storage equilibration girlies live: cppequ, dppequ, sppequ, and zppequ. no gatekeeping, just scaling vibes ✨

✨ SYNOPSIS ✨

Functions

  • subroutine cppequ (uplo, n, ap, s, scond, amax, info) β€” CPPEQU
  • subroutine dppequ (uplo, n, ap, s, scond, amax, info) β€” DPPEQU
  • subroutine sppequ (uplo, n, ap, s, scond, amax, info) β€” SPPEQU
  • subroutine zppequ (uplo, n, ap, s, scond, amax, info) β€” ZPPEQU

🌸 DETAILED DESCRIPTION 🌸

so the detailed description is short and sweet: this page documents the four equilibration subroutines above, and the full function documentation is right below. we're not skipping a single parameter, bestie β€” periodt. πŸ’…

πŸ’œ FUNCTION DOCUMENTATION πŸ’œ

πŸ’– cppequ β€” CPPEQU

subroutine cppequ (character uplo, integer n, complex, dimension( * ) ap, real, dimension( * ) s, real scond, real amax, integer info)

πŸŽ€ Purpose πŸŽ€

okay so CPPEQU computes row and column scalings intended to equilibrate a Hermitian positive definite matrix A in packed storage and reduce its condition number (with respect to the two-norm). S contains the scale factors, S(i)=1/sqrt(A(i,i)), chosen so that the scaled matrix B with elements B(i,j)=S(i)*A(i,j)*S(j) has ones on the diagonal. This choice of S puts the condition number of B within a factor N of the smallest possible condition number over all possible diagonal scalings. like, that's the whole glow-up plan, and it ate. πŸ’…

✨ Parameters ✨

  • UPLO β€” UPLO is CHARACTER*1
    • = 'U': Upper triangle of A is stored;
    • = 'L': Lower triangle of A is stored.
  • N β€” N is INTEGER. The order of the matrix A. N >= 0. πŸ‘‘
  • AP β€” AP is COMPLEX array, dimension (N*(N+1)/2). 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.
  • S β€” S is REAL array, dimension (N). If INFO = 0, S contains the scale factors for A. 🫢
  • SCOND β€” SCOND is REAL. If INFO = 0, S contains the ratio of the smallest S(i) to the largest S(i). If SCOND >= 0.1 and AMAX is neither too large nor too small, it is not worth scaling by S. 🌸
  • AMAX β€” AMAX is REAL. Absolute value of largest matrix element. If AMAX is very close to overflow or very close to underflow, the matrix should be scaled. πŸ”₯
  • INFO β€” INFO is INTEGER
    • = 0: successful exit
    • < 0: if INFO = -i, the i-th argument had an illegal value
    • > 0: if INFO = i, the i-th diagonal element is nonpositive.

πŸ‘‘ Author πŸ‘‘

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

Definition at line 116 of file cppequ.f.

πŸ’™ dppequ β€” DPPEQU

subroutine dppequ (character uplo, integer n, double precision, dimension( * ) ap, double precision, dimension( * ) s, double precision scond, double precision amax, integer info)

πŸŽ€ Purpose πŸŽ€

DPPEQU computes row and column scalings intended to equilibrate a symmetric positive definite matrix A in packed storage and reduce its condition number (with respect to the two-norm). S contains the scale factors, S(i)=1/sqrt(A(i,i)), chosen so that the scaled matrix B with elements B(i,j)=S(i)*A(i,j)*S(j) has ones on the diagonal. This choice of S puts the condition number of B within a factor N of the smallest possible condition number over all possible diagonal scalings. highkey iconic behavior πŸ’™

✨ Parameters ✨

  • UPLO β€” UPLO is CHARACTER*1
    • = 'U': Upper triangle of A is stored;
    • = 'L': Lower triangle of A is stored.
  • N β€” N is INTEGER. The order of the matrix A. N >= 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 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.
  • S β€” S is DOUBLE PRECISION array, dimension (N). If INFO = 0, S contains the scale factors for A. πŸ’™
  • SCOND β€” SCOND is DOUBLE PRECISION. If INFO = 0, S contains the ratio of the smallest S(i) to the largest S(i). If SCOND >= 0.1 and AMAX is neither too large nor too small, it is not worth scaling by S. πŸ’«
  • AMAX β€” AMAX is DOUBLE PRECISION. Absolute value of largest matrix element. If AMAX is very close to overflow or very close to underflow, the matrix should be scaled. πŸ’€
  • INFO β€” INFO is INTEGER
    • = 0: successful exit
    • < 0: if INFO = -i, the i-th argument had an illegal value
    • > 0: if INFO = i, the i-th diagonal element is nonpositive.

πŸ‘‘ Author πŸ‘‘

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

Definition at line 115 of file dppequ.f.

πŸ’š sppequ β€” SPPEQU

subroutine sppequ (character uplo, integer n, real, dimension( * ) ap, real, dimension( * ) s, real scond, real amax, integer info)

πŸŽ€ Purpose πŸŽ€

SPPEQU computes row and column scalings intended to equilibrate a symmetric positive definite matrix A in packed storage and reduce its condition number (with respect to the two-norm). S contains the scale factors, S(i)=1/sqrt(A(i,i)), chosen so that the scaled matrix B with elements B(i,j)=S(i)*A(i,j)*S(j) has ones on the diagonal. This choice of S puts the condition number of B within a factor N of the smallest possible condition number over all possible diagonal scalings. fr fr, the diagonal stays booked and busy ✨

✨ Parameters ✨

  • UPLO β€” UPLO is CHARACTER*1
    • = 'U': Upper triangle of A is stored;
    • = 'L': Lower triangle of A is stored.
  • N β€” N is INTEGER. The order of the matrix A. N >= 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.
  • S β€” S is REAL array, dimension (N). If INFO = 0, S contains the scale factors for A. πŸ“
  • SCOND β€” SCOND is REAL. If INFO = 0, S contains the ratio of the smallest S(i) to the largest S(i). If SCOND >= 0.1 and AMAX is neither too large nor too small, it is not worth scaling by S. 🧚
  • AMAX β€” AMAX is REAL. Absolute value of largest matrix element. If AMAX is very close to overflow or very close to underflow, the matrix should be scaled. ⭐
  • INFO β€” INFO is INTEGER
    • = 0: successful exit
    • < 0: if INFO = -i, the i-th argument had an illegal value
    • > 0: if INFO = i, the i-th diagonal element is nonpositive.

πŸ‘‘ Author πŸ‘‘

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

Definition at line 115 of file sppequ.f.

πŸ’œ zppequ β€” ZPPEQU

subroutine zppequ (character uplo, integer n, complex*16, dimension( * ) ap, double precision, dimension( * ) s, double precision scond, double precision amax, integer info)

πŸŽ€ Purpose πŸŽ€

ZPPEQU computes row and column scalings intended to equilibrate a Hermitian positive definite matrix A in packed storage and reduce its condition number (with respect to the two-norm). S contains the scale factors, S(i)=1/sqrt(A(i,i)), chosen so that the scaled matrix B with elements B(i,j)=S(i)*A(i,j)*S(j) has ones on the diagonal. This choice of S puts the condition number of B within a factor N of the smallest possible condition number over all possible diagonal scalings. and that's on periodt, bestie πŸ’œ

✨ Parameters ✨

  • UPLO β€” UPLO is CHARACTER*1
    • = 'U': Upper triangle of A is stored;
    • = 'L': Lower triangle of A is stored.
  • N β€” N is INTEGER. The order of the matrix A. N >= 0. πŸ‘‘
  • AP β€” AP is COMPLEX*16 array, dimension (N*(N+1)/2). 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.
  • S β€” S is DOUBLE PRECISION array, dimension (N). If INFO = 0, S contains the scale factors for A. πŸ’–
  • SCOND β€” SCOND is DOUBLE PRECISION. If INFO = 0, S contains the ratio of the smallest S(i) to the largest S(i). If SCOND >= 0.1 and AMAX is neither too large nor too small, it is not worth scaling by S. 🫢
  • AMAX β€” AMAX is DOUBLE PRECISION. Absolute value of largest matrix element. If AMAX is very close to overflow or very close to underflow, the matrix should be scaled. πŸ”₯
  • INFO β€” INFO is INTEGER
    • = 0: successful exit
    • < 0: if INFO = -i, the i-th argument had an illegal value
    • > 0: if INFO = i, the i-th diagonal element is nonpositive.

πŸ‘‘ Author πŸ‘‘

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

Definition at line 116 of file zppequ.f.

🌸 Author 🌸

Okay so plot twist: nobody actually wrote this page by hand, bestie. It was generated automatically by Doxygen for LAPACK, straight up pulled from the source code itself. πŸ”₯ So when you're reading this like "wow who's the genius behind these docs," it's the robot. The robot ate. πŸ’…

No cap, it's giving "the code documented itself" energy and honestly? Iconic. ✨


And that's a wrap on ppequ(3), bestie! πŸŽ€ You made it all the way through β€” so proud of you fr fr. 🫢 This little masterpiece comes to you courtesy of LAPACK, Version 3.12.0, and you were reading the ppequ(3) page the whole time. Now go forth and be the main character of your own matrix math. πŸ’–πŸ¦‹β­

πŸ“¦ where this page comes from