geequb(3)
okay bestie, welcome to geequb(3) from the Library Functions Manual β she does equilibration with power of 2 energy, and honestly? iconic. β¨
π NAME π
geequbβgeequb: equilibration, power of 2
πΈ SYNOPSIS πΈ
π Functions π
cgeequb β CGEEQUB
subroutine cgeequb (m, n, a, lda, r, c, rowcnd, colcnd, amax, info)
dgeequb β DGEEQUB
subroutine dgeequb (m, n, a, lda, r, c, rowcnd, colcnd, amax, info)
sgeequb β SGEEQUB
subroutine sgeequb (m, n, a, lda, r, c, rowcnd, colcnd, amax, info)
zgeequb β ZGEEQUB
subroutine zgeequb (m, n, a, lda, r, c, rowcnd, colcnd, amax, info)
π¦ Detailed Description π¦
the detailed deets live in Function Documentation below β no cap, that's where the whole breakdown is. π
π Function Documentation π
π§ subroutine cgeequb π§
subroutine cgeequb (integer m, integer n, complex, dimension( lda, * ) a, integer lda, real, dimension( * ) r, real, dimension( * ) c, real rowcnd, real colcnd, real amax, integer info)
CGEEQUB
β¨ Purpose β¨
okay so CGEEQUB computes row and column scalings β the whole goal is to equilibrate an M-by-N matrix A and reduce its condition number. R returns the row scale factors and C returns the column scale factors, and they're chosen to try to make the largest element in each row and column of the matrix B (with elements B(i,j)=R(i)*A(i,j)*C(j)) have an absolute value of at most the radix. π«Ά
R(i) and C(j) are restricted to be a power of the radix between SMLNUM = smallest safe number and BIGNUM = largest safe number. Use of these scaling factors is not guaranteed to reduce the condition number of A, but it works well in practice β lowkey reliable. π
This routine differs from CGEEQU by restricting the scaling factors to a power of the radix. Barring over- and underflow, scaling by these factors introduces no additional rounding errors. However, the scaled entries' magnitudes are no longer approximately 1 but lie between sqrt(radix) and 1/sqrt(radix). π that range is the whole personality, fr.
π Parameters π
MβM is INTEGER. The number of rows of the matrixA.M >= 0.NβN is INTEGER. The number of columns of the matrixA.N >= 0.AβA is COMPLEX array, dimension (LDA,N). TheM-by-Nmatrix whose equilibration factors are to be computed.LDAβLDA is INTEGER. The leading dimension of the arrayA.LDA >= max(1,M).RβR is REAL array, dimension (M). IfINFO = 0orINFO > M,Rcontains the row scale factors forA.CβC is REAL array, dimension (N). IfINFO = 0,Ccontains the column scale factors forA.ROWCNDβROWCND is REAL. IfINFO = 0orINFO > M,ROWCNDcontains the ratio of the smallestR(i)to the largestR(i). IfROWCND >= 0.1andAMAXis neither too large nor too small, it is not worth scaling byR.COLCNDβCOLCND is REAL. IfINFO = 0,COLCNDcontains the ratio of the smallestC(i)to the largestC(i). IfCOLCND >= 0.1, it is not worth scaling byC.AMAXβAMAX is REAL. Absolute value of largest matrix element. IfAMAXis very close to overflow or very close to underflow, the matrix should be scaled.INFOβINFO is INTEGER.= 0: successful exit< 0: ifINFO = -i, thei-th argument had an illegal value> 0: ifINFO = i, andiis<= M: thei-th row ofAis exactly zero> M: the(i-M)-th column ofAis exactly zero
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 145 of file cgeequb.f.
π§ subroutine dgeequb π§
subroutine dgeequb (integer m, integer n, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( * ) r, double precision, dimension( * ) c, double precision rowcnd, double precision colcnd, double precision amax, integer info)
DGEEQUB
β¨ Purpose β¨
okay so DGEEQUB computes row and column scalings β the whole goal is to equilibrate an M-by-N matrix A and reduce its condition number. R returns the row scale factors and C returns the column scale factors, and they're chosen to try to make the largest element in each row and column of the matrix B (with elements B(i,j)=R(i)*A(i,j)*C(j)) have an absolute value of at most the radix. π«Ά
R(i) and C(j) are restricted to be a power of the radix between SMLNUM = smallest safe number and BIGNUM = largest safe number. Use of these scaling factors is not guaranteed to reduce the condition number of A, but it works well in practice β lowkey reliable. π
This routine differs from DGEEQU by restricting the scaling factors to a power of the radix. Barring over- and underflow, scaling by these factors introduces no additional rounding errors. However, the scaled entries' magnitudes are no longer approximately 1 but lie between sqrt(radix) and 1/sqrt(radix). π that range is the whole personality, fr.
π Parameters π
MβM is INTEGER. The number of rows of the matrixA.M >= 0.NβN is INTEGER. The number of columns of the matrixA.N >= 0.AβA is DOUBLE PRECISION array, dimension (LDA,N). TheM-by-Nmatrix whose equilibration factors are to be computed.LDAβLDA is INTEGER. The leading dimension of the arrayA.LDA >= max(1,M).RβR is DOUBLE PRECISION array, dimension (M). IfINFO = 0orINFO > M,Rcontains the row scale factors forA.CβC is DOUBLE PRECISION array, dimension (N). IfINFO = 0,Ccontains the column scale factors forA.ROWCNDβROWCND is DOUBLE PRECISION. IfINFO = 0orINFO > M,ROWCNDcontains the ratio of the smallestR(i)to the largestR(i). IfROWCND >= 0.1andAMAXis neither too large nor too small, it is not worth scaling byR.COLCNDβCOLCND is DOUBLE PRECISION. IfINFO = 0,COLCNDcontains the ratio of the smallestC(i)to the largestC(i). IfCOLCND >= 0.1, it is not worth scaling byC.AMAXβAMAX is DOUBLE PRECISION. Absolute value of largest matrix element. IfAMAXis very close to overflow or very close to underflow, the matrix should be scaled.INFOβINFO is INTEGER.= 0: successful exit< 0: ifINFO = -i, thei-th argument had an illegal value> 0: ifINFO = i, andiis<= M: thei-th row ofAis exactly zero> M: the(i-M)-th column ofAis exactly zero
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 144 of file dgeequb.f.
π§ subroutine sgeequb π§
subroutine sgeequb (integer m, integer n, real, dimension( lda, * ) a, integer lda, real, dimension( * ) r, real, dimension( * ) c, real rowcnd, real colcnd, real amax, integer info)
SGEEQUB
β¨ Purpose β¨
okay so SGEEQUB computes row and column scalings β the whole goal is to equilibrate an M-by-N matrix A and reduce its condition number. R returns the row scale factors and C returns the column scale factors, and they're chosen to try to make the largest element in each row and column of the matrix B (with elements B(i,j)=R(i)*A(i,j)*C(j)) have an absolute value of at most the radix. π«Ά
R(i) and C(j) are restricted to be a power of the radix between SMLNUM = smallest safe number and BIGNUM = largest safe number. Use of these scaling factors is not guaranteed to reduce the condition number of A, but it works well in practice β lowkey reliable. π
This routine differs from SGEEQU by restricting the scaling factors to a power of the radix. Barring over- and underflow, scaling by these factors introduces no additional rounding errors. However, the scaled entries' magnitudes are no longer approximately 1 but lie between sqrt(radix) and 1/sqrt(radix). π that range is the whole personality, fr.
π Parameters π
MβM is INTEGER. The number of rows of the matrixA.M >= 0.NβN is INTEGER. The number of columns of the matrixA.N >= 0.AβA is REAL array, dimension (LDA,N). TheM-by-Nmatrix whose equilibration factors are to be computed.LDAβLDA is INTEGER. The leading dimension of the arrayA.LDA >= max(1,M).RβR is REAL array, dimension (M). IfINFO = 0orINFO > M,Rcontains the row scale factors forA.CβC is REAL array, dimension (N). IfINFO = 0,Ccontains the column scale factors forA.ROWCNDβROWCND is REAL. IfINFO = 0orINFO > M,ROWCNDcontains the ratio of the smallestR(i)to the largestR(i). IfROWCND >= 0.1andAMAXis neither too large nor too small, it is not worth scaling byR.COLCNDβCOLCND is REAL. IfINFO = 0,COLCNDcontains the ratio of the smallestC(i)to the largestC(i). IfCOLCND >= 0.1, it is not worth scaling byC.AMAXβAMAX is REAL. Absolute value of largest matrix element. IfAMAXis very close to overflow or very close to underflow, the matrix should be scaled.
INFO
(bestie, the original page cuts off right here mid-INFO β part 2 picks it up, so don't close the tab π
β¨)
INFOβ it's anINTEGER, bestie, and it's the vibe check for the whole call:= 0: successful exit π< 0: ifINFO = -i, the i-th argument had an illegal value π> 0: ifINFO = i, andiis<= M: the i-th row of A is exactly zero π> M: the (i-M)-th column of A is exactly zero π
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 144 of file sgeequb.f.
π¦ The ZGEEQUB era
subroutine zgeequb (integer m, integer n, complex*16, dimension( lda, * ) a,
integer lda, double precision, dimension( * ) r, double precision,
dimension( * ) c, double precision rowcnd, double precision colcnd,
double precision amax, integer info)
β ZGEEQUB
Purpose:
ok so this one is the complex*16 sibling of the whole situation we just discussed, and it ATE π
ZGEEQUB computes row and column scalings intended to equilibrate an M-by-N matrix A and reduce its condition number. R returns the row scale factors and C the column scale factors, chosen to try to make the largest element in each row and column of the matrix B with elements B(i,j)=R(i)*A(i,j)*C(j) have an absolute value of at most the radix. iconic behavior honestly β¨
R(i) and C(j) are restricted to be a power of the radix between SMLNUM = smallest safe number and BIGNUM = largest safe number. Heads up though β use of these scaling factors is not guaranteed to reduce the condition number of A, but it works well in practice. no cap, it just vibes π«Ά
π This routine differs fromZGEEQUby restricting the scaling factors to a power of the radix. Barring over- and underflow, scaling by these factors introduces no additional rounding errors. However, the scaled entries' magnitudes are no longer approximately 1 but lie betweensqrt(radix)and1/sqrt(radix). lowkey important, don't skip this one.
πΈ Parameters
MβMisINTEGER. The number of rows of the matrix A.M >= 0. (yes, it can be zero, we love a flexible king π)NβNisINTEGER. The number of columns of the matrix A.N >= 0.AβAisCOMPLEX*16array, dimension(LDA,N). The M-by-N matrix whose equilibration factors are to be computed. main character matrix energy π¦LDAβLDAisINTEGER. The leading dimension of the array A.LDA >= max(1,M). respect the leading dimension bestie, it WILL catch you πRβRisDOUBLE PRECISIONarray, dimension(M). IfINFO = 0orINFO > M, R contains the row scale factors for A.CβCisDOUBLE PRECISIONarray, dimension(N). IfINFO = 0, C contains the column scale factors for A.ROWCNDβROWCNDisDOUBLE PRECISION. IfINFO = 0orINFO > M, ROWCND contains the ratio of the smallestR(i)to the largestR(i). IfROWCND >= 0.1andAMAXis neither too large nor too small, it is not worth scaling by R. like, don't bother, it's fine β¨COLCNDβCOLCNDisDOUBLE PRECISION. IfINFO = 0, COLCND contains the ratio of the smallestC(i)to the largestC(i). IfCOLCND >= 0.1, it is not worth scaling by C. same energy, different axis π«ΆAMAXβAMAXisDOUBLE PRECISION. Absolute value of largest matrix element. IfAMAXis very close to overflow or very close to underflow, the matrix should be scaled. like actually should. please. πINFOβINFOisINTEGER, the final report card:= 0: successful exit π₯< 0: ifINFO = -i, the i-th argument had an illegal value π> 0: ifINFO = i, andiis<= M: the i-th row of A is exactly zero π> M: the (i-M)-th column of A is exactly zero π
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 145 of file zgeequb.f.
π Author (the meta one)
Generated automatically by Doxygen for LAPACK from the source code. not a human, just a robot doing its little job π€β¨
and that's the whole page bestie, ily, go equilibrate something π this was geeque b(3) from LAPACK, Version 3.12.0 β mwah, see u next manpage π«Άππ¦
π¦ 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