DLAQSP(3)

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

πŸ’… DLAQSP(3) β€” like, the packed symmetric scaling glow-up πŸ¦‹

okay bestie, so this is a page from the LAPACK manual β€” Library Functions Manual vibes β€” and it's all about one little Fortran subroutine. the source file lives at /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dlaqsp.f (and the header shows it as /home/abui...RC/dlaqsp.f(3), iykyk) ✨


🌸 NAME 🌸

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

that's it, that's the name. girl really said "my name is my address" πŸ’€


✨ SYNOPSIS ✨

🫢 Functions/Subroutines

  • subroutine DLAQSP (uplo, n, ap, s, scond, amax, equed) β€” DLAQSP scales a symmetric/Hermitian matrix in packed storage, using scaling factors computed by sppequ.

πŸ‘‘ Function/Subroutine Documentation πŸ‘‘

subroutine DLAQSP (character uplo, integer n, double precision, dimension( * ) ap, double precision, dimension( * ) s, double precision scond, double precision amax, character equed)

DLAQSP scales a symmetric/Hermitian matrix in packed storage, using scaling factors computed by sppequ. πŸŽ€

πŸ¦‹ Purpose:

!>
!> DLAQSP equilibrates a symmetric matrix A using the scaling factors
!> in the vector S.
!>

so real β€” it takes your symmetric matrix A and gives it the full equilbration treatment using the scale factors chilling in S. no cap. πŸ’…


🌈 Parameters 🌈

πŸ’œ UPLO

!>          UPLO is CHARACTER*1
!>          Specifies whether the upper or lower triangular part of the
!>          symmetric matrix A is stored.
!>          = 'U':  Upper triangular
!>          = 'L':  Lower triangular
!>

character of length 1, bestie. it tells us which triangle of the symmetric matrix A we're storing β€” 'U' for upper triangular, 'L' for lower triangular. pick a lane, not both. ⭐

πŸ“ N

!>          N is INTEGER
!>          The order of the matrix A.  N >= 0.
!>

an integer, the order of matrix A, and it must be N >= 0. no negatives, we don't do that here πŸ™ˆ

🧚 AP

!>          AP is DOUBLE PRECISION array, dimension (N*(N+1)/2)
!>          On entry, the upper or lower triangle of the symmetric matrix
!>          A, packed columnwise in a linear array.  The j-th column of A
!>          is stored in the array AP as follows:
!>          if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
!>          if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.
!>
!>          On exit, the equilibrated matrix:  diag(S) * A * diag(S), in
!>          the same storage format as A.
!>

a DOUBLE PRECISION array of dimension (N*(N+1)/2) β€” packed, iconically compact πŸŽ€

on entry: the upper or lower triangle of the symmetric matrix A, packed columnwise in a linear array. the j-th column of A gets stored like this:

  • if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
  • if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.

on exit: the equilibrated matrix diag(S) * A * diag(S), in the same storage format as A. glow-up complete, same fit, new energy ✨

πŸ”₯ S

!>          S is DOUBLE PRECISION array, dimension (N)
!>          The scale factors for A.
!>

DOUBLE PRECISION array, dimension (N) β€” these are the scale factors for A. the main characters of this whole operation tbh πŸ‘‘

πŸ’– SCOND

!>          SCOND is DOUBLE PRECISION
!>          Ratio of the smallest S(i) to the largest S(i).
!>

DOUBLE PRECISION, and it's literally the ratio of the smallest S(i) to the largest S(i). it's giving "how spread out are your scale factors" 🌸

⭐ AMAX

!>          AMAX is DOUBLE PRECISION
!>          Absolute value of largest matrix entry.
!>

DOUBLE PRECISION β€” the absolute value of the largest matrix entry. the biggest fish in the tank 🐟

πŸŽ€ EQUED

!>          EQUED is CHARACTER*1
!>          Specifies whether or not equilibration was done.
!>          = 'N':  No equilibration.
!>          = 'Y':  Equilibration was done, i.e., A has been replaced by
!>                  diag(S) * A * diag(S).
!>

CHARACTER*1, the receipts on whether equilibration actually happened or not:

  • 'N': no equilibration. nothing happened, we stayed home 🏠
  • 'Y': equilibration was done β€” meaning A has been replaced by diag(S) * A * diag(S). she went OUT πŸ’…πŸ”₯

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

so there are three little threshold gatekeepers deciding if scaling happens πŸ‘€

  • THRESH β€” a threshold 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 β€” 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. fr fr.

🌺 Author 🌺

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

the whole squad contributed, we love a collab 🫢

Definition at line 124 of file dlaqsp.f.


πŸ¦‹ Author (again, yes) πŸ¦‹

Generated automatically by Doxygen for LAPACK from the source code. πŸ€–βœ¨


ngl bestie, this whole page was auto-generated β€” no human hand-wrote this prose, the robot did it. just so you know what you're reading πŸ’–

LAPACK Β· Version 3.12.0 Β· /home/abui...RC/dlaqsp.f(3) β€” and that's the whole page, mwah, slay, bye! πŸ’…πŸŽ€πŸ¦‹β­πŸŒˆ

πŸ“¦ where this page comes from