DPPEQU(3)

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

πŸ’– DPPEQU πŸ’–

ok so first things first, bestie: this page lives in the Library Functions Manual and it's the doc for /home/abui...RC/dppequ.f(3). yes the path is giving truncated-and-mysterious, that's just how it is, don't @ me. πŸŽ€


✨ NAME ✨

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dppequ.f β€” that's the file, that's the name, we move. πŸ’…


🌸 SYNOPSIS 🌸

Functions/Subroutines

subroutine DPPEQU (uplo, n, ap, s, scond, amax, info)

DPPEQU


πŸ¦‹ Function/Subroutine Documentation πŸ¦‹

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

DPPEQU

πŸŽ€ Purpose πŸŽ€

ok so listen, this is the whole vibe:

!>
!> 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.
!>

like literally it's out here computing row and column scalings to equilibrate a symmetric positive definite matrix A in packed storage and reduce its condition number (with respect to the two-norm) β€” main character energy fr fr. S holds the scale factors, S(i)=1/sqrt(A(i,i)), picked so that the scaled matrix B with elements B(i,j)=S(i)*A(i,j)*S(j) has ones on the diagonal. and 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. obsessed. πŸ”₯

πŸ’œ Parameters πŸ’œ

UPLO

!>          UPLO is CHARACTER*1
!>          = 'U':  Upper triangle of A is stored;
!>          = 'L':  Lower triangle of A is stored.
!>

UPLO is CHARACTER*1 and it's literally just "which half are we storing":

  • '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.
!>

N is INTEGER, the order of the matrix A. and it's gotta be N >= 0, no negatives bestie. 🫢

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.
!>

AP is a DOUBLE PRECISION array, dimension (N*(N+1)/2) β€” yup, packed, no wasted space, very mindful very demure. it's 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 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

iykyk. πŸ’€

S

!>          S is DOUBLE PRECISION array, dimension (N)
!>          If INFO = 0, S contains the scale factors for A.
!>

S is a DOUBLE PRECISION array, dimension (N). if INFO = 0, S contains the scale factors for A. slay. πŸ’–

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.
!>

SCOND is DOUBLE PRECISION. if INFO = 0, S contains the ratio of the smallest S(i) to the largest S(i) β€” that's what the docs say, word for word, we're keeping it. and if SCOND >= 0.1 and AMAX is neither too large nor too small, it is not worth scaling by S. so like, save yourself the trouble, bestie. πŸ™ˆ

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.
!>

AMAX is DOUBLE PRECISION β€” absolute value of the largest matrix element. if AMAX is very close to overflow or very close to underflow, the matrix should be scaled. that's a vibe check for your numbers. ⚠️

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.
!>

INFO is INTEGER and it's the receipts:

  • = 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.


⭐ Author ⭐

Generated automatically by Doxygen for LAPACK from the source code.


aaaand that's the whole page, no cap. shoutout to LAPACK Version 3.12.0 for serving this, and to the footer path /home/abui...RC/dppequ.f(3) β€” may she rest in packed storage. πŸ§šπŸŒˆπŸ’…

πŸ“¦ where this page comes from