ZLAQHE(3)

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

πŸ’… ZLAQHE(3) β€” ok so hear me out, bestie

So this is a manual page from the Library Functions Manual, and it lives at /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zlaqhe.f β€” which, yes, is a whole entire path, but that's literally the name of the page so we're keeping it, no cap. 🫢


✨ NAME ✨

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

That's it. That's the name. She's a file path and she's thriving. πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

Functions/Subroutines

subroutine ZLAQHE (uplo, n, a, lda, s, scond, amax, equed)

ZLAQHE scales a Hermitian matrix. Iconic behaviour, honestly. 🌸


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

subroutine ZLAQHE (character uplo, integer n, complex*16, dimension( lda, * ) a, integer lda, double precision, dimension( * ) s, double precision scond, double precision amax, character equed)

ZLAQHE scales a Hermitian matrix. (Yes we're saying it again, she's a repeater and she's right.) ✨

πŸ’œ Purpose

ZLAQHE equilibrates a Hermitian matrix A using the scaling factors in the vector S.

Bestie, "equilibrate" here just means balancing her out β€” she takes the scaling factors sitting in the vector S and uses them to rescale the matrix A. Main character energy, mathematically speaking. πŸ”₯


🌈 Parameters

πŸ“ UPLO

UPLO is CHARACTER*1 and it specifies whether the upper or lower triangular part of the Hermitian matrix A is stored. So like, which half of her are we actually looking at:

  • = 'U': Upper triangular
  • = 'L': Lower triangular

🧚 N

N is INTEGER β€” the order of the matrix A. And N >= 0, okay? That's the vibe check. πŸ’«

🌸 A

A is COMPLEX*16 array, dimension (LDA,N).

On entry, this is the Hermitian matrix A. If UPLO = 'U', the leading n by n upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced (she's not even looking at it, don't worry about her πŸ’€). If UPLO = 'L', the leading n by n lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.

On exit, if EQUED = 'Y', you get the equilibrated matrix:

diag(S) * A * diag(S)

Periodt. πŸ‘‘

πŸŽ€ LDA

LDA is INTEGER β€” the leading dimension of the array A. And LDA >= max(N,1). Respect the constraint, she means it. 🫢

⭐ S

S is DOUBLE PRECISION array, dimension (N) β€” the scale factors for A. Little loves doing little scaling. πŸ’–

πŸ¦‹ SCOND

SCOND is DOUBLE PRECISION β€” the ratio of the smallest S(i) to the largest S(i). Tiny-over-big, we love a ratio. 🌈

πŸ”₯ AMAX

AMAX is DOUBLE PRECISION β€” the absolute value of the largest matrix entry. Big girl energy. πŸ‘‘

πŸ’€ EQUED

EQUED is CHARACTER*1 β€” specifies whether or not equilibration was done. The receipts, basically:

  • = 'N': No equilibration
  • = 'Y': Equilibration was done, i.e., A has been replaced by diag(S) * A * diag(S)

πŸ™ˆ 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 the tea is: she checks both the ratio situation and the absolute-size situation before deciding to scale. Two vibe checks, not one. 😌


πŸŽ€ Author

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

Definition at line 133 of file zlaqhe.f. Slay. ✨


πŸ’– Author (again, but the other one)

Generated automatically by Doxygen for LAPACK from the source code. Not a human, just Doxygen doing her thing, and honestly? She ate. πŸ“


Ok that's the whole page bestie, go equilibrate something responsibly πŸ’…

LAPACK β€” Version 3.12.0 🌟 and the file is /home/abui...RC/zlaqhe.f(3), mwah, bye πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from