DPPEQU(3)
π 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 ofAis stored β¨'L'β lower triangle ofAis 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)for1<=i<=j - if
UPLO = 'L',AP(i + (j-1)*(2n-j)/2) = A(i,j)forj<=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β ifINFO = -i, thei-th argument had an illegal value π> 0β ifINFO = i, thei-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
- 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