DLAQSP(3)
π 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 bysppequ.
π 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)for1<=i<=j; - if
UPLO = 'L',AP(i + (j-1)*(2n-j)/2) = A(i,j)forj<=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 bydiag(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. ifSCOND < THRESH, scaling is done. periodt.LARGEandSMALLβ threshold values used to decide if scaling should be done based on the absolute size of the largest matrix element. ifAMAX > LARGEorAMAX < 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
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms