heequb(3)
π¦ heequb(3) π¦
okay so this whole page lives in the Library Functions Manual, and the star of the show is heequb β which is really the squad name for {he,sy}equb: equilibration, power of 2. bestie, it's a whole family of Fortran subroutines that rescale your matrix so it stops being dramatic π
πΈ NAME πΈ
heequb β {he,sy}equb: equilibration, power of 2 β¨
π SYNOPSIS π
Functions
subroutine cheequb (uplo, n, a, lda, s, scond, amax, work, info)β CHEEQUB πsubroutine csyequb (uplo, n, a, lda, s, scond, amax, work, info)β CSYEQUB π¦subroutine dsyequb (uplo, n, a, lda, s, scond, amax, work, info)β DSYEQUB πΈsubroutine ssyequb (uplo, n, a, lda, s, scond, amax, work, info)β SSYEQUB βsubroutine zheequb (uplo, n, a, lda, s, scond, amax, work, info)β ZHEEQUB πsubroutine zsyequb (uplo, n, a, lda, s, scond, amax, work, info)β ZSYEQUB π
π Detailed Description π
ngl the "Detailed Description" section is giving empty-group-chat energy β there's literally nothing in it here, so we go straight to the good stuff π«Ά
π₯ Function Documentation π₯
π«Ά cheequb β CHEEQUB
subroutine cheequb (character uplo, integer n, complex, dimension( lda, * )
a, integer lda, real, dimension( * ) s, real scond, real amax, complex,
dimension( * ) work, integer info)
β¨ Purpose β¨
CHEEQUB computes row and column scalings intended to equilibrate a Hermitian matrix A (with respect to the Euclidean norm) and reduce its condition number. The scale factors S are computed by the BIN algorithm (see references) so that the scaled matrix B with elements B(i,j) = S(i)*A(i,j)*S(j) has a condition number within a factor N of the smallest possible condition number over all possible diagonal scalings. it's giving "make your matrix less of a mess" and honestly? iconic π
π 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.AβA is COMPLEX array, dimension (LDA,N)β the N-by-N Hermitian matrix whose scaling factors are to be computed.LDAβLDA is INTEGERβ the leading dimension of the array A.LDA >= max(1,N).SβS is REAL array, dimension (N)β ifINFO = 0, S contains the scale factors for A.SCONDβSCOND is REALβ ifINFO = 0, S contains the ratio of the smallestS(i)to the largestS(i). IfSCOND >= 0.1and AMAX is neither too large nor too small, it is not worth scaling by S. (lowkey "don't bother" energy π« )AMAXβAMAX is REALβ largest absolute value of any matrix element. If AMAX is very close to overflow or very close to underflow, the matrix should be scaled.WORKβWORK is COMPLEX array, dimension (2*N)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.
π¦ References π¦
Livne, O.E. and Golub, G.H., "Scaling by Binormalization", Numerical Algorithms, vol. 35, no. 1, pp. 97-120, January 2004. DOI 10.1023/B:NUMA.0000016606.32820.69 Tech report version: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.3.1679
Definition at line 131 of file cheequb.f.
π¦ csyequb β CSYEQUB
subroutine csyequb (character uplo, integer n, complex, dimension( lda, * )
a, integer lda, real, dimension( * ) s, real scond, real amax, complex,
dimension( * ) work, integer info)
β¨ Purpose β¨
CSYEQUB computes row and column scalings intended to equilibrate a symmetric matrix A (with respect to the Euclidean norm) and reduce its condition number. The scale factors S are computed by the BIN algorithm (see references) so that the scaled matrix B with elements B(i,j) = S(i)*A(i,j)*S(j) has a condition number within a factor N of the smallest possible condition number over all possible diagonal scalings. same energy as CHEEQUB but it's the symmetric sibling, periodt π
π 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.AβA is COMPLEX array, dimension (LDA,N)β the N-by-N symmetric matrix whose scaling factors are to be computed.LDAβLDA is INTEGERβ the leading dimension of the array A.LDA >= max(1,N).SβS is REAL array, dimension (N)β ifINFO = 0, S contains the scale factors for A.SCONDβSCOND is REALβ ifINFO = 0, S contains the ratio of the smallestS(i)to the largestS(i). IfSCOND >= 0.1and AMAX is neither too large nor too small, it is not worth scaling by S.AMAXβAMAX is REALβ largest absolute value of any matrix element. If AMAX is very close to overflow or very close to underflow, the matrix should be scaled.WORKβWORK is COMPLEX array, dimension (2*N)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.
π¦ References π¦
Livne, O.E. and Golub, G.H., "Scaling by Binormalization", Numerical Algorithms, vol. 35, no. 1, pp. 97-120, January 2004. DOI 10.1023/B:NUMA.0000016606.32820.69 Tech report version: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.3.1679
Definition at line 131 of file csyequb.f.
πΈ dsyequb β DSYEQUB
subroutine dsyequb (character uplo, integer n, double precision, dimension(
lda, * ) a, integer lda, double precision, dimension( * ) s, double
precision scond, double precision amax, double precision, dimension( * )
work, integer info)
β¨ Purpose β¨
DSYEQUB computes row and column scalings intended to equilibrate a symmetric matrix A (with respect to the Euclidean norm) and reduce its condition number. The scale factors S are computed by the BIN algorithm (see references) so that the scaled matrix B with elements B(i,j) = S(i)*A(i,j)*S(j) has a condition number within a factor N of the smallest possible condition number over all possible diagonal scalings. double precision edition, no cap π§
π 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.AβA is DOUBLE PRECISION array, dimension (LDA,N)β the N-by-N symmetric matrix whose scaling factors are to be computed.LDAβLDA is INTEGERβ the leading dimension of the array A.LDA >= max(1,N).SβS is DOUBLE PRECISION array, dimension (N)β ifINFO = 0, S contains the scale factors for A.SCONDβSCOND is DOUBLE PRECISIONβ ifINFO = 0, S contains the ratio of the smallestS(i)to the largestS(i). IfSCOND >= 0.1and AMAX is neither too large nor too small, it is not worth scaling by S.AMAXβAMAX is DOUBLE PRECISIONβ largest absolute value of any matrix element. If AMAX is very close to overflow or very close to underflow, the matrix should be scaled.WORKβWORK is DOUBLE PRECISION array, dimension (2*N)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.
π¦ References π¦
Livne, O.E. and Golub, G.H., "Scaling by Binormalization", Numerical Algorithms, vol. 35, no. 1, pp. 97-120, January 2004. DOI 10.1023/B:NUMA.0000016606.32820.69 Tech report version: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.3.1679
Definition at line 130 of file dsyequb.f.
β ssyequb β SSYEQUB
subroutine ssyequb (character uplo, integer n, real, dimension( lda, * ) a,
integer lda, real, dimension( * ) s, real scond, real amax, real,
dimension( * ) work, integer info)
β¨ Purpose β¨
SSYEQUB computes row and column scalings intended to equilibrate a symmetric matrix A (with respect to the Euclidean norm) and reduce its condition number. The scale factors S are computed by the BIN algorithm (see references) so that the scaled matrix B with elements B(i,j) = S(i)*A(i,j)*S(j) has a condition number within a factor N of the smallest possible condition number over all possible diagonal scalings. single precision but make it fashion β
π 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.AβA is REAL array, dimension (LDA,N)β the N-by-N symmetric matrix whose scaling factors are to be computed.LDAβLDA is INTEGERβ the leading dimension of the array A.LDA >= max(1,N).SβS is REAL array, dimension (N)β ifINFO = 0, S contains the scale factors for A.SCONDβSCOND is REALSCONDβ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. π like, don't bother, bestie, it's already fine.AMAXβAMAXisREAL. Largest absolute value of any matrix element. IfAMAXis very close to overflow or very close to underflow, the matrix should be scaled. π¨ like hello?? danger zone, scale it.WORKβWORKisREAL array, dimension (2*N).INFOβINFOisINTEGER= 0: successful exit β¨< 0: ifINFO = -i, the i-th argument had an illegal value π> 0: ifINFO = i, the i-th diagonal element is nonpositive. π
πΈ Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
(no cap, the whole academic avengers assembled for this one π«Ά)
π References:
Livne, O.E. and Golub, G.H., "Scaling by Binormalization", Numerical Algorithms, vol. 35, no. 1, pp. 97-120, January 2004. DOI 10.1023/B:NUMA.0000016606.32820.69 Tech report version: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.3.1679
Definition at line 130 of file ssyequb.f.
π¦ subroutine zheequb
subroutine zheequb (character uplo, integer n, complex*16, dimension( lda, * ) a, integer lda, double precision, dimension( * ) s, double precision scond, double precision amax, complex*16, dimension( * ) work, integer info)
ZHEEQUB β the complex*16 Hermitian girlie π
β¨ Purpose:
ZHEEQUB computes row and column scalings intended to equilibrate a Hermitian matrix A (with respect to the Euclidean norm) and reduce its condition number. The scale factors S are computed by the BIN algorithm (see references) so that the scaled matrix B with elements B(i,j) = S(i)*A(i,j)*S(j) has a condition number within a factor N of the smallest possible condition number over all possible diagonal scalings.
like, it's out here finding the glow-up for your matrix β¨ so the condition number is, at worst, a factor N off from the absolute best possible diagonal scaling. iconic behaviour, honestly. π
π Parameters
UPLOβUPLOisCHARACTER*1= 'U': Upper triangle ofAis stored;= 'L': Lower triangle ofAis stored.
NβNisINTEGER. The order of the matrixA.N >= 0.AβAisCOMPLEX*16 array, dimension (LDA,N). TheN-by-NHermitian matrix whose scaling factors are to be computed.LDAβLDAisINTEGER. The leading dimension of the arrayA.LDA >= max(1,N).SβSisDOUBLE PRECISION array, 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. π save yourself the effort babes.AMAXβAMAXisDOUBLE PRECISION. Largest absolute value of any matrix element. IfAMAXis very close to overflow or very close to underflow, the matrix should be scaled. β οΈ fr fr, scale it before it becomes a whole crisis.WORKβWORKisCOMPLEX*16 array, dimension (2*N).INFOβINFOisINTEGER= 0: successful exit β¨< 0: ifINFO = -i, the i-th argument had an illegal value π> 0: ifINFO = i, the i-th diagonal element is nonpositive. π
πΈ Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
π References:
Livne, O.E. and Golub, G.H., "Scaling by Binormalization", Numerical Algorithms, vol. 35, no. 1, pp. 97-120, January 2004. DOI 10.1023/B:NUMA.0000016606.32820.69 Tech report version: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.3.1679
Definition at line 131 of file zheequb.f.
π subroutine zsyequb
subroutine zsyequb (character uplo, integer n, complex*16, dimension( lda, * ) a, integer lda, double precision, dimension( * ) s, double precision scond, double precision amax, complex*16, dimension( * ) work, integer info)
ZSYEQUB β same energy, but symmetric this time π¦ (Hermitian's chill cousin, iykyk)
β¨ Purpose:
ZSYEQUB computes row and column scalings intended to equilibrate a symmetric matrix A (with respect to the Euclidean norm) and reduce its condition number. The scale factors S are computed by the BIN algorithm (see references) so that the scaled matrix B with elements B(i,j) = S(i)*A(i,j)*S(j) has a condition number within a factor N of the smallest possible condition number over all possible diagonal scalings.
literally the same slay as ZHEEQUB but for a symmetric A β the BIN algorithm does the work, and your condition number ends up within a factor N of the best possible diagonal scaling. no notes. π
π Parameters
UPLOβUPLOisCHARACTER*1= 'U': Upper triangle ofAis stored;= 'L': Lower triangle ofAis stored.
NβNisINTEGER. The order of the matrixA.N >= 0.AβAisCOMPLEX*16 array, dimension (LDA,N). TheN-by-Nsymmetric matrix whose scaling factors are to be computed.LDAβLDAisINTEGER. The leading dimension of the arrayA.LDA >= max(1,N).SβSisDOUBLE PRECISION array, 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. Largest absolute value of any matrix element. IfAMAXis very close to overflow or very close to underflow, the matrix should be scaled. π¨WORKβWORKisCOMPLEX*16 array, dimension (2*N).INFOβINFOisINTEGER= 0: successful exit β¨< 0: ifINFO = -i, the i-th argument had an illegal value π> 0: ifINFO = i, the i-th diagonal element is nonpositive. π
πΈ Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
π References:
Livne, O.E. and Golub, G.H., "Scaling by Binormalization", Numerical Algorithms, vol. 35, no. 1, pp. 97-120, January 2004. DOI 10.1023/B:NUMA.0000016606.32820.69 Tech report version: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.3.1679
Definition at line 131 of file zsyequb.f.
π Author
Generated automatically by Doxygen for LAPACK from the source code.
and that's the whole page, bestie!! πβ¨ this little beauty is from LAPACK, Version 3.12.0, and you clocked it as heequb(3) β auto-generated by Doxygen straight from the LAPACK source code, so every word up there is canon. go scale something responsibly. ππ¦π
π¦ 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