SLAQGB(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

πŸ’… 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 by sgbequ.

πŸ’– 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. A was premultiplied by diag(R).
  • 'C' β€” column equilibration, i.e. A was postmultiplied by diag(C).
  • 'B' β€” both row and column equilibration, i.e. A was replaced by diag(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