poequ(3)
π poequ(3) β the LAPACK equilibration girlies π
okay so bestie, welcome to poequ, a whole family of LAPACK subroutines that do equilibration, and yes that is the actual name in the NAME section, no cap. This page lives in the Library Functions Manual and honestly? It's giving "four nearly identical siblings and they're all iconic in their own typing way." Let's get into it π
β¨ SYNOPSIS β¨
Like, here's the whole squad, all four of them, same vibe, different precision:
subroutine cpoequ (n, a, lda, s, scond, amax, info)
subroutine dpoequ (n, a, lda, s, scond, amax, info)
subroutine spoequ (n, a, lda, s, scond, amax, info)
subroutine zpoequ (n, a, lda, s, scond, amax, info)
cpoequβ theCPOEQUone πdpoequβ theDPOEQUone πspoequβ theSPOEQUone πzpoequβ theZPOEQUone π
π¦ Detailed Description π¦
The whole page is basically a Function Documentation situation β four subroutines, each one equilibration, each one documented below with its full signature, purpose, parameters, author credits, and the exact source line it lives on. No skipping, we're doing all of them, periodt.
πΈ Function Documentation πΈ
π subroutine cpoequ
subroutine cpoequ (integer n, complex, dimension( lda, * ) a, integer lda,
real, dimension( * ) s, real scond, real amax, integer info)
CPOEQU
π«Ά Purpose:
so the actual job: CPOEQU computes row and column scalings intended to equilibrate a Hermitian positive definite matrix A 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. And like, 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. slay π
π Parameters
NβNisINTEGER. The order of the matrixA.N >= 0.AβAisCOMPLEXarray, dimension(LDA,N). TheN-by-NHermitian positive definite matrix whose scaling factors are to be computed. Only the diagonal elements ofAare referenced. (yes, only the diagonal, she's low-maintenance like that)LDAβLDAisINTEGER. The leading dimension of the arrayA.LDA >= max(1,N).SβSisREALarray, dimension(N). IfINFO = 0,Scontains the scale factors forA.SCONDβSCONDisREAL. IfINFO = 0,Scontains the ratio of the smallestS(i)to the largestS(i). IfSCOND >= 0.1andAMAXis neither too large nor too small, it is not worth scaling byS. (so like, don't bother, bestie)AMAXβAMAXisREAL. Absolute value of largest matrix element. IfAMAXis very close to overflow or very close to underflow, the matrix should be scaled.INFOβINFOisINTEGER:= 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 112 of file cpoequ.f.
π subroutine dpoequ
subroutine dpoequ (integer n, double precision, dimension( lda, * ) a,
integer lda, double precision, dimension( * ) s, double precision scond,
double precision amax, integer info)
DPOEQU
π«Ά Purpose:
DPOEQU computes row and column scalings intended to equilibrate a symmetric positive definite matrix A 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. same energy, double the precision π§
π Parameters
NβNisINTEGER. The order of the matrixA.N >= 0.AβAisDOUBLE PRECISIONarray, dimension(LDA,N). TheN-by-Nsymmetric positive definite matrix whose scaling factors are to be computed. Only the diagonal elements ofAare referenced.LDAβLDAisINTEGER. The leading dimension of the arrayA.LDA >= max(1,N).SβSisDOUBLE PRECISIONarray, dimension(N). IfINFO = 0,Scontains the scale factors forA.SCONDβSCONDisDOUBLE PRECISION. IfINFO = 0,Scontains the ratio of the smallestS(i)to the largestS(i). IfSCOND >= 0.1andAMAXis neither too large nor too small, it is not worth scaling byS.AMAXβAMAXisDOUBLE PRECISION. Absolute value of largest matrix element. IfAMAXis very close to overflow or very close to underflow, the matrix should be scaled.INFOβINFOisINTEGER:= 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 111 of file dpoequ.f.
π subroutine spoequ
subroutine spoequ (integer n, real, dimension( lda, * ) a, integer lda,
real, dimension( * ) s, real scond, real amax, integer info)
SPOEQU
π«Ά Purpose:
SPOEQU computes row and column scalings intended to equilibrate a symmetric positive definite matrix A 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. single precision but make it fashion π
π Parameters
NβNisINTEGER. The order of the matrixA.N >= 0.AβAisREALarray, dimension(LDA,N). TheN-by-Nsymmetric positive definite matrix whose scaling factors are to be computed. Only the diagonal elements ofAare referenced.LDAβLDAisINTEGER. The leading dimension of the arrayA.LDA >= max(1,N).SβSisREALarray, dimension(N). IfINFO = 0,Scontains the scale factors forA.SCONDβSCONDisREAL. IfINFO = 0,Scontains the ratio of the smallestS(i)to the largestS(i). IfSCOND >= 0.1andAMAXis neither too large nor too small, it is not worth scaling byS.AMAXβAMAXisREAL. Absolute value of largest matrix element. IfAMAXis very close to overflow or very close to underflow, the matrix should be scaled.INFOβINFOisINTEGER:= 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 111 of file spoequ.f.
π subroutine zpoequ
subroutine zpoequ (integer n, complex*16, dimension( lda, * ) a, integer
lda, double precision, dimension( * ) s, double precision scond, double
precision amax, integer info)
ZPOEQU
π«Ά Purpose:
ZPOEQU computes row and column scalings intended to equilibrate a Hermitian positive definite matrix A 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. complex*16 and serving main character energy, we love to see it π
π Parameters
NβNisINTEGER. The order of the matrixA.N >= 0.AβAisCOMPLEX*16array, dimension(LDA,N). TheN-by-NHermitian positive definite matrix whose scaling factors are to be computed. Only the diagonal elements ofAare referenced.LDAβLDAisINTEGER. The leading dimension of the arrayA.LDA >= max(1,N).SβSisDOUBLE PRECISIONarray, dimension(N). IfINFO = 0,Scontains the scale factors forA.SCONDβSCONDisDOUBLE PRECISION. IfINFO = 0,Scontains the ratio of the smallestS(i)to the largestS(i). IfSCOND >= 0.1andAMAXis neither too large nor too small, it is not worth scaling byS.AMAXβAMAXisDOUBLE PRECISION. Absolute value of largest matrix element. IfAMAXis very close to overflow or very close to underflow, the matrix should be scaled.INFOβINFOisINTEGER:= 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 112 of file zpoequ.f.
ok tiny note bestie:SCONDandAMAXare only meaningful whenINFO = 0, and ifSCOND >= 0.1withAMAXneither too big nor too small, scaling bySis literally not worth it. Also ifINFO > 0you got a nonpositive diagonal element, which for a positive definite matrix is a whole crisis π
π Author π
Generated automatically by Doxygen for LAPACK from the source code. (she was built by the machines, and she ate π«Ά)
and that's the whole page, bestie π LAPACK, Version 3.12.0, dated poequ(3) β you're officially caught up, iykyk β¨ππ
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms