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
VECTisCHARACTER*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
UPLOisCHARACTER*1='U': Upper triangle of A is stored; ='L': Lower triangle of A is stored.
pick your triangle, no wrong answers π
N
NisINTEGERThe order of the matrices A and B.N >= 0.
zero is fine, negative is not, that's the rule β
KA
KAisINTEGERThe number of superdiagonals of the matrix A ifUPLO = 'U', or the number of subdiagonals ifUPLO = 'L'.KA >= 0.
KB
KBisINTEGERThe number of superdiagonals of the matrix B ifUPLO = 'U', or the number of subdiagonals ifUPLO = 'L'.KA >= KB >= 0.
π note the constraint β KA >= KB >= 0, that's non-negotiable, the math said so.
AB
ABisCOMPLEXarray, dimension(LDAB,N)On entry, the upper or lower triangle of the Hermitian band matrix A, stored in the firstka+1rows of the array. The j-th column of A is stored in the j-th column of the array AB as follows: ifUPLO = 'U',AB(ka+1+i-j,j) = A(i,j)formax(1,j-ka)<=i<=j; ifUPLO = 'L',AB(1+i-j,j) = A(i,j)forj<=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
LDABisINTEGERThe leading dimension of the array AB.LDAB >= KA+1.
BB
BBisCOMPLEXarray, dimension(LDBB,N)The banded factor S from the split Cholesky factorization of B, as returned by CPBSTF, stored in the firstkb+1rows of the array.
so like, CPBSTF already did the work, BB is the receipt π§Ύ
LDBB
LDBBisINTEGERThe leading dimension of the array BB.LDBB >= KB+1.
X
XisCOMPLEXarray, dimension(LDX,N)IfVECT = 'V', the n-by-n matrix X. IfVECT = 'N', the array X is not referenced.
not referenced, bestie. she's literally not invited to the function π
LDX
LDXisINTEGERThe leading dimension of the array X.LDX >= max(1,N)ifVECT = 'V';LDX >= 1otherwise.
two different rules depending on VECT, keep up, it's giving conditional π
WORK
WORKisCOMPLEXarray, dimension(N)
RWORK
RWORKisREALarray, dimension(N)
real vibes only in this one π
INFO
INFOisINTEGER=0: successful exit <0: ifINFO = -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
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms