/home/abui.../zgbequb.f(3)
π NAME π
okay so this page is literally all about /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zgbequb.f β that's the file, bestie, the whole vibe of this manual page lives right there in section 3 (Library Functions Manual, iykyk) π«Ά
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine ZGBEQUB (m, n, kl, ku, ab, ldab, r, c, rowcnd, colcnd, amax, info)β that's the icon herself, ZGBEQUB π
π¦ Function/Subroutine Documentation π¦
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)
ZGBEQUB β she's the main character here, no cap π
π 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. !> !> 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). !>
so like, the whole point is making your matrix behave π she picks row scales R and column scales C so that the biggest element of B (where B(i,j)=R(i)*A(i,j)*C(j) fr fr) lands at most at the radix. and the cute part? the scale factors are restricted to powers of the radix between SMLNUM (smallest safe number) and BIGNUM (largest safe number) πΈ also important: this is NOT guaranteed to reduce the condition number of A, it just works well in practice β noted, always noted π and the tea about how she differs from ZGEEQU? no extra rounding errors barring over- and underflow, but the scaled entries' magnitudes aren't approximately 1 anymore, they sit between sqrt(radix) and 1/sqrt(radix). periodt β¨
π Parameters π
M
!> M is INTEGER !> The number of rows of the matrix A. M >= 0. !>
the row count of A, and she's gotta be M >= 0 π
N
!> N is INTEGER !> The number of columns of the matrix A. N >= 0. !>
column count of A, N >= 0 babes π
KL
!> KL is INTEGER !> The number of subdiagonals within the band of A. KL >= 0. !>
how many subdiagonals live inside the band of A, KL >= 0 π«
KU
!> KU is INTEGER !> The number of superdiagonals within the band of A. KU >= 0. !>
and how many superdiagonals are in the band of A, KU >= 0 π¦
AB
!> AB is COMPLEX*16 array, dimension (LDAB,N) !> On entry, the matrix A in band storage, in rows 1 to KL+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) !>
this is A but in band storage, dimension (LDAB,N), sitting in rows 1 to KL+KU+1. the mapping is iconic:
AB(KU+1+i-j,j) = A(i,j) for max(1,j-KU)<=i<=min(N,j+kl)
write that down, bestie, you WILL be tested π
LDAB
!> LDAB is INTEGER !> The leading dimension of the array A. LDAB >= max(1,M). !>
leading dimension of the array A, and it's LDAB >= max(1,M) β no arguing π
R
!> R is DOUBLE PRECISION array, dimension (M) !> If INFO = 0 or INFO > M, R contains the row scale factors !> for A. !>
double precision array, dimension (M), and when INFO = 0 or INFO > M she's carrying the row scale factors for A π
C
!> C is DOUBLE PRECISION array, dimension (N) !> If INFO = 0, C contains the column scale factors for A. !>
double precision array, dimension (N), and if INFO = 0, C holds the column scale factors for A π
ROWCND
!> ROWCND is DOUBLE PRECISION !> If INFO = 0 or INFO > M, ROWCND contains the ratio of the !> smallest R(i) to the largest R(i). If ROWCND >= 0.1 and !> AMAX is neither too large nor too small, it is not worth !> scaling by R. !>
double precision. if INFO = 0 or INFO > M, she's the ratio of the smallest R(i) to the largest R(i). and like β if ROWCND >= 0.1 AND AMAX is neither too big nor too small, then lowkey it's not worth scaling by R at all π
COLCND
!> COLCND is DOUBLE PRECISION !> If INFO = 0, COLCND contains the ratio of the smallest !> C(i) to the largest C(i). If COLCND >= 0.1, it is not !> worth scaling by C. !>
double precision. if INFO = 0, she's the ratio of the smallest C(i) to the largest C(i), and if COLCND >= 0.1, not worth scaling by C, simple as π
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. !>
double precision, the absolute value of the largest matrix element. if AMAX is very close to overflow or very close to underflow β girl, scale that matrix, the matrix should be scaled π₯
INFO
!> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -i, the i-th argument had an illegal value !> > 0: if INFO = 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 !>
the receipts, integer style:
= 0: successful exit, slay π< 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.
the whole squad came through π«Ά
Definition at line 159 of file zgbequb.f β yes, line 159, mark it β
π Author π
Generated automatically by Doxygen for LAPACK from the source code. not a human, just Doxygen doing her little thing π€β¨
okay that's the whole page bestie, and for the cute sign-off: this fine piece of documentation is LAPACK, Version 3.12.0, and it's the zgbequb.f(3) page, mwah π go equilibrate something π
π
π¦ 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