SLAQGB(3)
π SLAQGB(3) β like, the band-matrix glow-up page π
okay so bestie, welcome to slaqgb.f(3) from the Library Functions Manual β yes that whole path situation, we'll get to it. This is a Fortran girlie and she's about to balance your band matrix so hard. β¨
πΈ NAME πΈ
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/slaqgb.f
That's the whole name. Yes, the entire path. She said "my name is my address" and honestly? iconic. π
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine SLAQGB (m, n, kl, ku, ab, ldab, r, c, rowcnd, colcnd, amax, equed)β SLAQGB scales a general band matrix, using row and column scaling factors computed bysgbequ.
π Function/Subroutine Documentation π
subroutine SLAQGB (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, character equed)
SLAQGB scales a general band matrix, using row and column scaling factors computed by sgbequ. no cap, that's literally her job. π«Ά
Purpose:
!>
!> SLAQGB equilibrates a general M by N band matrix A with KL
!> subdiagonals and KU superdiagonals using the row and scaling factors
!> in the vectors R and C.
!>
So she takes your band matrix A β M by N, KL subdiagonals, KU superdiagonals β and equilibrates it using the row and column scale factors chilling in R and C. main character energy tbh. π
β¨ Parameters β¨
M
!> M is INTEGER
!> The number of rows of the matrix A. M >= 0.
!>
Number of rows in A. Must be M >= 0. zero rows? valid. negative rows? not invited to the party. π
N
!> N is INTEGER
!> The number of columns of the matrix A. N >= 0.
!>
Number of columns in A. N >= 0. same vibe check as M. π«
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. down-below diagonals, basically. πΈ
KU
!> KU is INTEGER
!> The number of superdiagonals within the band of A. KU >= 0.
!>
How many superdiagonals live inside the band of A. KU >= 0. up-above diagonals, her upward-facing sisters. β
AB
!> AB is REAL 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(m,j+kl)
!>
!> On exit, the equilibrated matrix, in the same storage format
!> as A. See EQUED for the form of the equilibrated matrix.
!>
AB is a REAL array, dimension (LDAB,N). On entry it's your matrix A in band storage, sitting in rows 1 to KL+KU+1. Column j of A goes in column j of AB, and the mapping is exactly:
AB(ku+1+i-j,j) = A(i,j) for max(1,j-ku)<=i<=min(m,j+kl)
On exit it's the equilibrated matrix, same storage format as A. Which form of equilibrated? check EQUED, she'll tell you. π
LDAB
!> LDAB is INTEGER
!> The leading dimension of the array AB. LDA >= KL+KU+1.
!>
Leading dimension of the array AB. The requirement is LDA >= KL+KU+1. (yes it says LDA there, not LDAB β we're just reporting what the page says, bestie, don't come for me π)
R
!> R is REAL array, dimension (M)
!> The row scale factors for A.
!>
REAL array, dimension (M). These are the row scale factors for A. π
C
!> C is REAL array, dimension (N)
!> The column scale factors for A.
!>
REAL array, dimension (N). The column scale factors for A. π
ROWCND
!> ROWCND is REAL
!> Ratio of the smallest R(i) to the largest R(i).
!>
A REAL. It's the ratio of the smallest R(i) to the largest R(i). so like, the spread of your row factors. π
COLCND
!> COLCND is REAL
!> Ratio of the smallest C(i) to the largest C(i).
!>
A REAL. Ratio of the smallest C(i) to the largest C(i). same energy, column edition. π§
AMAX
!> AMAX is REAL
!> Absolute value of largest matrix entry.
!>
A REAL β the absolute value of the largest entry in the matrix. the biggest slay in the room. π₯
EQUED
!> EQUED is CHARACTER*1
!> Specifies the form of equilibration that was done.
!> = 'N': No equilibration
!> = 'R': Row equilibration, i.e., A has been premultiplied by
!> diag(R).
!> = 'C': Column equilibration, i.e., A has been postmultiplied
!> by diag(C).
!> = 'B': Both row and column equilibration, i.e., A has been
!> replaced by diag(R) * A * diag(C).
!>
CHARACTER*1. Tells you which form of equilibration actually went down:
'N'β no equilibration. nothing happened, she was already perfect. π'R'β row equilibration, i.e.Awas premultiplied bydiag(R).'C'β column equilibration, i.e.Awas postmultiplied bydiag(C).'B'β both row and column equilibration, i.e.Awas replaced bydiag(R) * A * diag(C). the full glow-up. π
π Internal Parameters: π
!> THRESH is a threshold value used to decide if row or column scaling
!> should be done based on the ratio of the row or column scaling
!> factors. If ROWCND < THRESH, row scaling is done, and if
!> COLCND < THRESH, column scaling is done.
!>
!> LARGE and SMALL are threshold values used to decide if row scaling
!> should be done based on the absolute size of the largest matrix
!> element. If AMAX > LARGE or AMAX < SMALL, row scaling is done.
!>
so THRESH is the threshold that decides whether row or column scaling happens, based on the ratio of the row or column scaling factors. if ROWCND < THRESH, row scaling is done; if COLCND < THRESH, column scaling is done. π
and LARGE and SMALL are the threshold values that decide if row scaling happens based on the absolute size of the largest matrix element. if AMAX > LARGE or AMAX < SMALL, row scaling is done. that's the whole vibe check, fr fr. β¨
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 157 of file slaqgb.f.
π Author (the meta one) π
Generated automatically by Doxygen for LAPACK from the source code. not a human, just a very thorough little robot. π€π
heads up bestie: this page is documentation of a Fortran routine, so all the numbers and array bounds are load-bearing. don't round them, don't "fix" them, don't @ me. π
okay that's the whole page!! mwah π β this cutie was served up as LAPACK, Version 3.12.0, and the header/footer situation was literally /home/abui...RC/slaqgb.f(3) the whole time. see you in the next man page, bestie π«Άπ¦πΈ
π¦ 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