SRC/chbgst.f(3)

πŸ¦‹ SRC/chbgst.f β€” like, the chbgst era πŸ’…

okay so bestie, welcome to the LAPACK corner of the man pages β€” this one's from Library Functions Manual, page SRC/chbgst.f(3), and it's genuinely the moment. grab a snack, we're getting into banded Hermitian-definite generalized eigenproblems πŸŽ€


✨ SYNOPSIS ✨

functions / subroutines (the cast πŸ’–)

subroutine chbgst (vect, uplo, n, ka, kb, ab, ldab, bb, ldbb, x, ldx,
    work, rwork, info)

CHBGST β€” that's the icon, that's the whole vibe.


🌸 Function/Subroutine Documentation 🌸

subroutine chbgst (character vect, character uplo, integer n, integer ka,
    integer kb, complex, dimension( ldab, * ) ab, integer ldab, complex,
    dimension( ldbb, * ) bb, integer ldbb, complex, dimension( ldx, * ) x,
    integer ldx, complex, dimension( * ) work, real, dimension( * ) rwork,
    integer info)

CHBGST 🫢 (yes it's the same name twice, she contains multitudes)

πŸ’œ Purpose πŸ’œ

no cap, here's what she does:

CHBGST reduces a complex Hermitian-definite banded generalized eigenproblem A*x = lambda*B*x to standard form C*y = lambda*y, such that C has the same bandwidth as A.
B must have been previously factorized as SH*S by CPBSTF, using a split Cholesky factorization. A is overwritten by C = XH*A*X, where X = S**(-1)*Q and Q is a unitary matrix chosen to preserve the bandwidth of A.

literally so iconic of her. the way that she keeps the bandwidth intact? obsessed. πŸ”₯

πŸŽ€ Parameters πŸŽ€

okay now the whole group chat, one by one. every single one, we're not skipping anybody πŸ’…

  • VECT
VECT is CHARACTER*1 = 'N': do not form the transformation matrix X; = 'V': form X.

so like, 'N' means X stays unformed (she's not doing that today πŸ™ˆ), and 'V' means yes bestie, form X.

  • UPLO
UPLO is CHARACTER*1 = 'U': Upper triangle of A is stored; = 'L': Lower triangle of A is stored.

pick your triangle, no wrong answers πŸ’–

  • N
N is INTEGER The order of the matrices A and B. N >= 0.

zero is fine, negative is not, that's the rule ⭐

  • KA
KA is INTEGER The number of superdiagonals of the matrix A if UPLO = 'U', or the number of subdiagonals if UPLO = 'L'. KA >= 0.
  • KB
KB is INTEGER The number of superdiagonals of the matrix B if UPLO = 'U', or the number of subdiagonals if UPLO = 'L'. KA >= KB >= 0.

πŸ‘‘ note the constraint β€” KA >= KB >= 0, that's non-negotiable, the math said so.

  • AB
AB is COMPLEX array, dimension (LDAB,N) On entry, the upper or lower triangle of the Hermitian band matrix A, stored in the first ka+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(ka+1+i-j,j) = A(i,j) for max(1,j-ka)<=i<=j; if UPLO = 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+ka).
On exit, the transformed matrix X**H*A*X, stored in the same format as A.

she comes in as A and leaves as X**H*A*X β€” main character transformation arc, honestly 🌈

  • LDAB
LDAB is INTEGER The leading dimension of the array AB. LDAB >= KA+1.
  • BB
BB is COMPLEX array, dimension (LDBB,N) The banded factor S from the split Cholesky factorization of B, as returned by CPBSTF, stored in the first kb+1 rows of the array.

so like, CPBSTF already did the work, BB is the receipt 🧾

  • LDBB
LDBB is INTEGER The leading dimension of the array BB. LDBB >= KB+1.
  • X
X is COMPLEX array, dimension (LDX,N) If VECT = 'V', the n-by-n matrix X. If VECT = 'N', the array X is not referenced.

not referenced, bestie. she's literally not invited to the function πŸ“

  • LDX
LDX is INTEGER The leading dimension of the array X. LDX >= max(1,N) if VECT = 'V'; LDX >= 1 otherwise.

two different rules depending on VECT, keep up, it's giving conditional πŸ’€

  • WORK
WORK is COMPLEX array, dimension (N)
  • RWORK
RWORK is REAL array, dimension (N)

real vibes only in this one πŸ’…

  • INFO
INFO is INTEGER = 0: successful exit < 0: if INFO = -i, the i-th argument had an illegal value.

so 0 = slay, we ate. negative = somebody passed a bad argument and it's on them, not her 😭


πŸ‘‘ Author πŸ‘‘

the legends behind it:

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

also, for the record: Definition at line 163 of file chbgst.f. πŸ“


πŸ’« Author πŸ’«

Generated automatically by Doxygen for LAPACK from the source code.

(it's giving "made by the robots, blessed by the robots" πŸ€–βœ¨)


okay that's the whole page bestie, no skips, no summaries, we read the ENTIRE thing. LAPACK, Version 3.12.0, and this was SRC/chbgst.f(3) β€” periodt. πŸ’–πŸŽ€πŸ¦‹πŸŒΈπŸ’œ

πŸ“¦ where this page comes from