gbequb(3)
π
gbequb(3) β gbequb: equilibration, power of 2
okay so bestie, welcome to gbequb β it's a whole family of routines (four of them, one for each flavour of float) and they're all about making your matrix behave. no cap, this page is a long one, so hydrate first. π
β¨ NAME β¨
gbequb β gbequb: equilibration, power of 2
like, that's the whole name. short, iconic, to the point. π
πΈ SYNOPSIS πΈ
Functions
the whole squad, assembled:
subroutine cgbequb (m, n, kl, ku, ab, ldab, r, c, rowcnd, colcnd, amax, info)
subroutine dgbequb (m, n, kl, ku, ab, ldab, r, c, rowcnd, colcnd, amax, info)
subroutine sgbequb (m, n, kl, ku, ab, ldab, r, c, rowcnd, colcnd, amax, info)
subroutine zgbequb (m, n, kl, ku, ab, ldab, r, c, rowcnd, colcnd, amax, info)
cgbequbβ CGBEQUB, the complex one πdgbequbβ DGBEQUB, the double precision one πsgbequbβ SGBEQUB, the real single precision one πzgbequbβ ZGBEQUB, the complex double precision one β¨
same energy, different types. pick your fighter. π«Ά
π¦ DETAILED DESCRIPTION π¦
she does not have a big prose intro here β the details live in the Function Documentation below, where each routine gets its own full breakdown. go read the one that matches your precision and slay. π
π FUNCTION DOCUMENTATION π
π subroutine cgbequb (integer m, integer n, integer kl, integer ku, complex, dimension( ldab, * ) ab, integer ldab, real, dimension( * ) r, real, dimension( * ) c, real rowcnd, real colcnd, real amax, integer info)
CGBEQUB
π« Purpose:
ok so picture this: CGBEQUB 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. literally balancing the whole thing out. βοΈ
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 tho: use of these scaling factors is not guaranteed to reduce the condition number of A, but it works well in practice. π
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 β and this is the trade-off, bestie β the scaled entries' magnitudes are no longer approximately 1 but lie between sqrt(radix) and 1/sqrt(radix). close enough, honestly. π
π Parameters
MβM is INTEGER. the number of rows of the matrix A.M >= 0.NβN is INTEGER. the number of columns of the matrix A.N >= 0.KLβKL is INTEGER. the number of subdiagonals within the band of A.KL >= 0.KUβKU is INTEGER. the number of superdiagonals within the band of A.KU >= 0.ABβAB is COMPLEX array, dimension (LDAB,N). on entry, the matrix A in band storage, in rows 1 toKL+KU+1. the j-th column of A is stored in the j-th column of the array AB as follows:AB(KU+1+i-j,j) = A(i,j) for max(1,j-KU)<=i<=min(N,j+kl). iykyk πLDABβLDAB is INTEGER. the leading dimension of the array A.LDAB >= max(1,M).RβR is REAL array, dimension (M). ifINFO = 0orINFO > M, R contains the row scale factors for A.CβC is REAL array, dimension (N). ifINFO = 0, C contains the column scale factors for A.ROWCNDβROWCND is REAL. ifINFO = 0orINFO > M, ROWCND contains the ratio of the smallestR(i)to the largestR(i). ifROWCND >= 0.1and AMAX is neither too large nor too small, it is not worth scaling by R. so like, don't bother babes.COLCNDβCOLCND is REAL. ifINFO = 0, COLCND contains the ratio of the smallestC(i)to the largestC(i). ifCOLCND >= 0.1, it is not worth scaling by C.AMAXβAMAX is REAL. absolute value of largest matrix element. if AMAX is very close to overflow or very close to underflow, the matrix should be scaled. π¨INFOβINFO is INTEGER:= 0: successful exit π< 0: ifINFO = -i, the i-th argument had an illegal value> 0: ifINFO = i, and i is<= 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 159 of file cgbequb.f.
π subroutine dgbequb (integer m, integer n, integer kl, integer ku, double precision, dimension( ldab, * ) ab, integer ldab, double precision, dimension( * ) r, double precision, dimension( * ) c, double precision rowcnd, double precision colcnd, double precision amax, integer info)
DGBEQUB
π« Purpose:
DGBEQUB 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. same energy as her complex sister, just double precision. π
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 works well in practice.
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). trade-offs, we love them. β¨
π Parameters
MβM is INTEGER. the number of rows of the matrix A.M >= 0.NβN is INTEGER. the number of columns of the matrix A.N >= 0.KLβKL is INTEGER. the number of subdiagonals within the band of A.KL >= 0.KUβKU is INTEGER. the number of superdiagonals within the band of A.KU >= 0.ABβAB is DOUBLE PRECISION array, dimension (LDAB,N). on entry, the matrix A in band storage, in rows 1 toKL+KU+1. the j-th column of A is stored in the j-th column of the array AB as follows:AB(KU+1+i-j,j) = A(i,j) for max(1,j-KU)<=i<=min(N,j+kl).LDABβLDAB is INTEGER. the leading dimension of the array A.LDAB >= max(1,M).RβR is DOUBLE PRECISION array, dimension (M). ifINFO = 0orINFO > M, R contains the row scale factors for A.CβC is DOUBLE PRECISION array, dimension (N). ifINFO = 0, C contains the column scale factors for A.ROWCNDβROWCND is DOUBLE PRECISION. ifINFO = 0orINFO > M, ROWCND contains the ratio of the smallestR(i)to the largestR(i). ifROWCND >= 0.1and AMAX is neither too large nor too small, it is not worth scaling by R.COLCNDβCOLCND is DOUBLE 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.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.INFOβINFO is INTEGER:= 0: successful exit π< 0: ifINFO = -i, the i-th argument had an illegal value> 0: ifINFO = i, and i is<= 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 158 of file dgbequb.f.
β subroutine sgbequb (integer m, integer n, integer kl, integer ku, real, dimension( ldab, * ) ab, integer ldab, real, dimension( * ) r, real, dimension( * ) c, real rowcnd, real colcnd, real amax, integer info)
SGBEQUB
π« Purpose:
SGBEQUB 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. the single-precision real girlie of the group. π
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 works well in practice.
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).
π Parameters
MβM is INTEGER. the number of rows of the matrix A.M >= 0.NβN is INTEGER. the number of columns of the matrix A.N >= 0.KLβKL is INTEGER. the number of subdiagonals within the band of A.KL >= 0.KUβKU is INTEGER. the number of superdiagonals within the band of A.KU >= 0.ABβAB is REAL array, dimension (LDAB,N). on entry, the matrix A in band storage, in rows 1 toKL+KU+1. the j-th column of A is stored in the j-th column of the array AB as follows:AB(KU+1+i-j,j) = A(i,j) for max(1,j-KU)<=i<=min(N,j+kl).
okay bestie, we're back inside the sgbequb parameter list β no recap, just the rest of the glow-up:
LDABβINTEGER. the leading dimension of the array A.LDAB >= max(1,M). πRβREAL array, dimension (M). ifINFO = 0orINFO > M, R contains the row scale factors for A. β¨CβREAL array, dimension (N). ifINFO = 0, C contains the column scale factors for A. πROWCNDβREAL. ifINFO = 0orINFO > M, ROWCND contains the ratio of the smallestR(i)to the largestR(i). ifROWCND >= 0.1and AMAX is neither too large nor too small, it is not worth scaling by R. π¦COLCNDβREAL. ifINFO = 0, COLCND contains the ratio of the smallestC(i)to the largestC(i). ifCOLCND >= 0.1, it is not worth scaling by C. πΈAMAXβREAL. absolute value of largest matrix element. if AMAX is very close to overflow or very close to underflow, the matrix should be scaled. πINFOβINTEGER, the exit tea β:= 0: successful exit< 0: ifINFO = -i, the i-th argument had an illegal value> 0: ifINFO = i, and i is:<= 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 158 of file sgbequb.f.
π subroutine zgbequb (ZGBEQUB)
subroutine zgbequb (integer m, integer n, integer kl, integer ku,
complex*16, dimension( ldab, * ) ab, integer ldab, double precision,
dimension( * ) r, double precision, dimension( * ) c, double precision
rowcnd, double precision colcnd, double precision amax, integer info)
π― Purpose
ZGBEQUB 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. π
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 works well in practice. no cap.
This routine differs from ZGEEQU 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). π§
πΈ Parameters
MβINTEGER. the number of rows of the matrix A.M >= 0. π¦NβINTEGER. the number of columns of the matrix A.N >= 0. π¦KLβINTEGER. the number of subdiagonals within the band of A.KL >= 0. πKUβINTEGER. the number of superdiagonals within the band of A.KU >= 0. πABβCOMPLEX*16 array, dimension (LDAB,N). on entry, the matrix A in band storage, in rows1toKL+KU+1. the j-th column of A is stored in the j-th column of the array AB as follows:AB(KU+1+i-j,j) = A(i,j)formax(1,j-KU)<=i<=min(N,j+kl). π«ΆLDABβINTEGER. the leading dimension of the array A.LDAB >= max(1,M). β¨RβDOUBLE PRECISION array, dimension (M). ifINFO = 0orINFO > M, R contains the row scale factors for A. πCβDOUBLE PRECISION array, dimension (N). ifINFO = 0, C contains the column scale factors for A. πROWCNDβDOUBLE PRECISION. ifINFO = 0orINFO > M, ROWCND contains the ratio of the smallestR(i)to the largestR(i). ifROWCND >= 0.1and AMAX is neither too large nor too small, it is not worth scaling by R. π₯COLCNDβDOUBLE 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. π₯AMAXβ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. πINFOβINTEGER, the exit tea again β:= 0: successful exit< 0: ifINFO = -i, the i-th argument had an illegal value> 0: ifINFO = i, and i is:<= 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 159 of file zgbequb.f.
β¨ Author
Generated automatically by Doxygen for LAPACK from the source code.
and that's the whole page, bestie β huge kiss to LAPACK Version 3.12.0 and the gbequb(3) page itself, mwah πβ¨
π¦ 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