DLANGB(3)

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

✨ DLANGB(3) ✨ β€” the band-matrix norm bestie πŸ’…

okay so picture this: it's a LAPACK library functions manual page, the file is dlangb.f(3), and it literally lives at /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dlangb.f β€” yes that's the whole path, she's got a lot going on but she's iconic πŸŽ€


🌸 NAME 🌸

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dlangb.f

that's it. that's the name. she said "my identity is my path" and honestly? respect 🫢


✨ SYNOPSIS ✨

Functions/Subroutines

  • double precision function DLANGB (norm, n, kl, ku, ab, ldab, work) β€” bestie, this one returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value of any element of a general band matrix. so many options, so little time πŸ’–

πŸ¦‹ Function/Subroutine Documentation πŸ¦‹

double precision function DLANGB (character norm, integer n, integer kl,
    integer ku, double precision, dimension( ldab, * ) ab, integer ldab,
    double precision, dimension( * ) work)

okay so full transparency: DLANGB returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value of any element of a general band matrix. that's the whole personality. no cap πŸ”₯

πŸ’œ 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.
!>

so like. it's an n by n band matrix A. she's got kl sub-diagonals (below the main character diagonal) and ku super-diagonals (above it). and DLANGB is gonna tell you a norm of her. pick your fighter, we'll get to that πŸŽ€

⭐ Returns ⭐

DLANGB πŸ‘‘ β€” here's the little menu of what she hands back, straight from the source:

!>
!>    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).  Note that  max(abs(A(i,j)))  is not a consistent matrix norm.
!>

so to translate the vibe check: norm1 = the one norm of a matrix (that's the maximum column sum, periodt). normI = the infinity norm of a matrix (maximum row sum, she's the row girlie). normF = the Frobenius norm of a matrix (square root of sum of squares, the ✨spicy✨ one).

and heads up bestie: max(abs(A(i,j))) is not a consistent matrix norm. not me warning you about this. the original said it, so I'm saying it. don't get caught out πŸ™ˆ

🌈 Parameters 🌈

NORM

!>          NORM is CHARACTER*1
!>          Specifies the value to be returned in DLANGB as described
!>          above.
!>

NORM is CHARACTER*1 β€” it literally specifies which value gets returned in DLANGB, as described above. pick your letter, bestie ✨

N

!>          N is INTEGER
!>          The order of the matrix A.  N >= 0.  When N = 0, DLANGB is
!>          set to zero.
!>

N is INTEGER β€” the order of the matrix A. it's gotta be N >= 0. and the fun little edge case: when N = 0, DLANGB is set to zero. she's a zero, she's free, she's thriving πŸ’€

KL

!>          KL is INTEGER
!>          The number of sub-diagonals of the matrix A.  KL >= 0.
!>

KL is INTEGER β€” the number of sub-diagonals of the matrix A. and yes, KL >= 0. the sub-diagonals said "we exist" πŸ’…

KU

!>          KU is INTEGER
!>          The number of super-diagonals of the matrix A.  KU >= 0.
!>

KU is INTEGER β€” the number of super-diagonals of the matrix A. also KU >= 0 because we do not do negative diagonals in this house πŸŽ€

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).
!>

AB is a DOUBLE PRECISION array, dimension (LDAB,N) β†’ and here's the cute part: the band matrix A is 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).

that's the whole storage lore, memorize it iykyk 🧚

LDAB

!>          LDAB is INTEGER
!>          The leading dimension of the array AB.  LDAB >= KL+KU+1.
!>

LDAB is INTEGER β€” the leading dimension of the array AB, and it must be LDAB >= KL+KU+1. she's the main character dimension πŸ‘‘

WORK

!>          WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)),
!>          where LWORK >= N when NORM = 'I'; otherwise, WORK is not
!>          referenced.
!>

WORK is a DOUBLE PRECISION array, dimension (MAX(1,LWORK)), where LWORK >= N when NORM = 'I'. otherwise? WORK is not referenced. she's just sitting there. not invited to the function. we still love her 🫢

🍼 Author 🍼

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

the whole squad, honestly πŸ’–

Definition at line 122 of file dlangb.f.

πŸ’€ Author (the auto-generated one) πŸ’€

Generated automatically by Doxygen for LAPACK from the source code. not a human, just a little robot doing her best πŸ€–βœ¨


lowkey though β€” this is a norm helper, so treat NORM, N, KL, KU, LDAB and the AB layout with respect. LDAB >= KL+KU+1 isn't a suggestion, bestie, it's a requirement πŸŽ€

slay, that's the whole page πŸ’… this baby is LAPACK Version 3.12.0, and she came from /home/abui...RC/dlangb.f(3) β€” see you at the next manpage, mwah πŸ’œπŸ¦‹

πŸ“¦ where this page comes from