doubleGBauxiliary(3)

πŸ“¦
version 3.11.0 Β· 2 versions
, in debian bookworm

πŸ’– doubleGBauxiliary(3) πŸ’–

okay bestie, welcome to the LAPACK manual, and specifically to doubleGBauxiliary β€” yeah the name is giving "internal group page" energy, but she's important, I promise. πŸŽ€


✨ NAME ✨

doubleGBauxiliary β€” double. that's it, that's the name. she's the double-precision auxiliary squad. πŸ’…


🌸 SYNOPSIS 🌸

Functions πŸ¦‹

  • double precision function dlangb (NORM, N, KL, KU, AB, LDAB, WORK) β€” DLANGB returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value of any element of general band matrix. she does all four, no cap. ✨
  • subroutine dlaqgb (M, N, KL, KU, AB, LDAB, R, C, ROWCND, COLCND, AMAX, EQUED) β€” DLAQGB scales a general band matrix, using row and column scaling factors computed by sgbequ. glow-up service, basically. πŸ’–

πŸ‘‘ Detailed Description πŸ‘‘

This is the group of double auxiliary functions for GB matrices. that's the whole vibe. if you have a general band matrix and you need double precision help, this is the group chat you join. 🫢


πŸ”₯ Function Documentation πŸ”₯

πŸ’œ dlangb

double precision function dlangb (character NORM, integer N, integer KL,
    integer KU, double precision, dimension( ldab, * ) AB, integer LDAB,
    double precision, dimension( * ) WORK)

DLANGB returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value of any element of general band matrix.

⭐ Purpose

DLANGB  returns the value of the one norm,  or the Frobenius norm, or
the  infinity norm,  or the element of  largest absolute value  of an
n by n band matrix  A,  with kl sub-diagonals and ku super-diagonals.

πŸ’« Returns

DLANGB returns:

DLANGB = ( max(abs(A(i,j))), NORM = 'M' or 'm'
         (
         ( norm1(A),         NORM = '1', 'O' or 'o'
         (
         ( normI(A),         NORM = 'I' or 'i'
         (
         ( normF(A),         NORM = 'F', 'f', 'E' or 'e'

where norm1 denotes the one norm of a matrix (maximum column sum), normI denotes the infinity norm of a matrix (maximum row sum) and normF denotes the Frobenius norm of a matrix (square root of sum of squares). and heads up bestie β€” max(abs(A(i,j))) is not a consistent matrix norm. it's giving "technically not a norm but we still ship it." 😭

🌈 Parameters

  • NORM β€” NORM is CHARACTER*1. Specifies the value to be returned in DLANGB as described above. pick your fighter. πŸ’…
  • N β€” N is INTEGER. The order of the matrix A. N >= 0. When N = 0, DLANGB is set to zero. empty matrix? zero, periodt.
  • KL β€” KL is INTEGER. The number of sub-diagonals of the matrix A. KL >= 0.
  • KU β€” KU is INTEGER. The number of super-diagonals of the matrix A. KU >= 0.
  • AB β€” AB is DOUBLE PRECISION array, dimension (LDAB,N). The band matrix A, stored 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).

yes the index math is a lot. stare at it, breathe, it'll click. 🧚

  • LDAB β€” LDAB is INTEGER. The leading dimension of the array AB. LDAB >= KL+KU+1. do not skip this, the compiler will not warn you and your results will be cursed. πŸ’€
  • WORK β€” WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)), where LWORK >= N when NORM = 'I'; otherwise, WORK is not referenced. so if you're not asking for the infinity norm, she doesn't even look at it. iconic behaviour honestly. πŸ™ˆ

πŸŽ€ Author

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

πŸ’– dlaqgb

subroutine dlaqgb (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, character EQUED)

DLAQGB scales a general band matrix, using row and column scaling factors computed by sgbequ.

✨ Purpose

DLAQGB 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.

equilibrate = make the numbers behave. she's the responsible friend. πŸ’…

πŸ¦‹ 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 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.

same array, different girl. she walked in as A and left as the equilibrated version. πŸ’«

  • LDAB β€” LDAB is INTEGER. The leading dimension of the array AB. LDA >= KL+KU+1.

(yes it says LDA, not LDAB. that's what the page says, so that's what I'm telling you. copying the lore faithfully fr fr. πŸ™ˆ)

  • R β€” R is DOUBLE PRECISION array, dimension (M). The row scale factors for A.
  • C β€” C is DOUBLE PRECISION array, dimension (N). The column scale factors for A.
  • ROWCND β€” ROWCND is DOUBLE PRECISION. Ratio of the smallest R(i) to the largest R(i).
  • COLCND β€” COLCND is DOUBLE PRECISION. Ratio of the smallest C(i) to the largest C(i).
  • AMAX β€” AMAX is DOUBLE PRECISION. Absolute value of largest matrix entry.
  • 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).

four options, pick your destiny. πŸ‘‘

🌸 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.

internal means internal, bestie β€” these are the vibes-check thresholds behind the curtain. 🧚

πŸ’œ Author

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

🌈 Author 🌈

Generated automatically by Doxygen for LAPACK from the source code. so yes, a robot wrote the original and I just gave it a personality. slay. πŸ€–πŸ’…


and that's the whole page, bestie!! πŸ’– this was LAPACK Version 3.11.0, dated Sun Nov 27 2022 β€” so if you're reading this from a future release, pls check the current docs too, because manpages do get glow-ups. mwah, bye!! πŸŽ€βœ¨πŸ¦‹

πŸ“¦ where this page comes from