SRC/dlaqsb.f(3)

πŸ’… SRC/dlaqsb.f β€” the glow-up your band matrix deserves

okay bestie, gather round, because today we're talking about DLAQSB β€” a literal icon from the LAPACK library, living her best life at line 139 of dlaqsb.f. she scales symmetric/Hermitian band matrices using scaling factors computed by spbequ, and honestly? she ate. πŸ’–


✨ SYNOPSIS ✨

🧚 Functions/Subroutines

subroutine dlaqsb (uplo, n, kd, ab, ldab, s, scond, amax, equed)

DLAQSB scales a symmetric/Hermitian band matrix, using scaling factors computed by spbequ. no cap, that's the whole vibe.


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

subroutine dlaqsb (character uplo, integer n, integer kd,
     double precision, dimension( ldab, * ) ab, integer ldab,
     double precision, dimension( * ) s, double precision scond,
     double precision amax, character equed)

DLAQSB scales a symmetric/Hermitian band matrix, using scaling factors computed by spbequ. she's giving main character energy fr fr.

🌸 Purpose

DLAQSB equilibrates a symmetric band matrix A using the scaling factors in the vector S. literally her whole job and she does it flawlessly πŸ’…

πŸŽ€ Parameters

  • UPLO β€” UPLO is CHARACTER*1. it tells us whether the upper or lower triangular part of the symmetric matrix A is stored, and here are your options:
    • = 'U': Upper triangular πŸ‘‘
    • = 'L': Lower triangular πŸ¦‹
  • N β€” N is INTEGER. the order of the matrix A. N >= 0. respect the N, bestie, she's not optional.
  • KD β€” KD is INTEGER. the number of super-diagonals of the matrix A if UPLO = 'U', or the number of sub-diagonals if UPLO = 'L'. must have KD >= 0. keep it positive (or zero), ok?
  • AB β€” AB is DOUBLE PRECISION array, dimension (LDAB,N). ooooh this is the juicy one:
    • On entry: the upper or lower triangle of the symmetric band matrix A, stored in the first KD+1 rows of the array. The j-th column of A is stored in the j-th column of the array AB as follows:
      • if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
      • if UPLO = 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+kd).
    • On exit, if INFO = 0, you get the triangular factor U or L from the Cholesky factorization A = U**T*U or A = L*L**T of the band matrix A, in the same storage format as A. it's giving transformation arc ✨
  • LDAB β€” LDAB is INTEGER. the leading dimension of the array AB. must be LDAB >= KD+1. don't skimp on the leading dimension bestie, she needs her space.
  • S β€” S is DOUBLE PRECISION array, dimension (N). the scale factors for A. iconic.
  • SCOND β€” SCOND is DOUBLE PRECISION. the ratio of the smallest S(i) to the largest S(i). tiny queen, big queen, the ratio is the moment πŸŽ€
  • AMAX β€” AMAX is DOUBLE PRECISION. absolute value of largest matrix entry. she's the biggest vibe in the matrix fr fr.
  • EQUED β€” EQUED is CHARACTER*1. tells you whether or not equilibration was done, and here's the tea:
    • = 'N': No equilibration. nope, didn't happen πŸ™ˆ
    • = 'Y': Equilibration was done, i.e., A has been replaced by diag(S) * A * diag(S). yes bestie, slay πŸ’…

πŸ”₯ Internal Parameters

  • THRESH is a threshold value used to decide if scaling should be done based on the ratio of the scaling factors. if SCOND < THRESH, scaling is done. periodt.
  • LARGE and SMALL are threshold values used to decide if scaling should be done based on the absolute size of the largest matrix element. if AMAX > LARGE or AMAX < SMALL, scaling is done. two little gatekeepers, love that for us 🫢

πŸ‘‘ Author πŸ‘‘

the absolute legends who made this happen:

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

Definition at line 139 of file dlaqsb.f. iykyk.


🌈 Author 🌈

Generated automatically by Doxygen for LAPACK from the source code. the robots did this one, and they lowkey snapped ✨


LAPACK β€” Version 3.12.0 πŸ’œ and that's the whole page bestie, SRC/dlaqsb.f(3) signed, sealed, delivered, no cap πŸŽ€πŸ¦‹πŸ’–

πŸ“¦ where this page comes from