/home/abui...RC/chbgv.f(3)
π CHBGV β the generalized Hermitian-definite banded eigenproblem girlie
ok so this page is from the Library Functions Manual and it lives at /home/abui...RC/chbgv.f(3) β yes that's the actual filename, she's got a whole path for a name, main character energy fr. It's a section 3 man page, so it's a library function. Buckle up bestie π
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/chbgv.f
that's it. that's the name. it's literally the whole path to the Fortran source file. no cap, that's just how Doxygen does it π
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine CHBGV (jobz, uplo, n, ka, kb, ab, ldab, bb, ldbb, w, z, ldz,
work, rwork, info)
CHBGV β that's her π
π Function/Subroutine Documentation π
subroutine CHBGV (character jobz, character uplo, integer n, integer ka,
integer kb, complex, dimension( ldab, * ) ab, integer ldab, complex,
dimension( ldbb, * ) bb, integer ldbb, real, dimension( * ) w, complex,
dimension( ldz, * ) z, integer ldz, complex, dimension( * ) work, real,
dimension( * ) rwork, integer info)
CHBGV
πΈ Purpose πΈ
!>!> CHBGV computes all the eigenvalues, and optionally, the eigenvectors!> of a complex generalized Hermitian-definite banded eigenproblem, of!> the form A*x=(lambda)*B*x. Here A and B are assumed to be Hermitian!> and banded, and B is also positive definite.!>
so basically she's solving A*x=(lambda)*B*x for you β a complex generalized Hermitian-definite banded eigenproblem. A and B are both Hermitian and banded, and B has to be positive definite too. it's giving "I do it all" and honestly? she does β¨
π Parameters π
JOBZ
!> JOBZ is CHARACTER*1!> = 'N': Compute eigenvalues only;!> = 'V': Compute eigenvalues and eigenvectors.!>
it's a CHARACTER*1 and it's literally the vibe check for how much you want back:
'N'β eigenvalues only, minimal effort, we love a low-effort queen π'V'β eigenvalues and eigenvectors, she's doing the most and we're obsessed π₯
UPLO
!> UPLO is CHARACTER*1!> = 'U': Upper triangles of A and B are stored;!> = 'L': Lower triangles of A and B are stored.!>
also CHARACTER*1, tells her which triangle of A and B you actually bothered to store:
'U'β upper triangles of A and B are stored'L'β lower triangles of A and B are stored
pick one, she's not gonna guess π«Ά
N
!> N is INTEGER!> The order of the matrices A and B. N >= 0.!>
INTEGER, the order of the matrices A and B. and N >= 0 β don't be weird about it π
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.!>
INTEGER. how many superdiagonals A has when UPLO = 'U', or how many subdiagonals when UPLO = 'L'. KA >= 0, periodt.
KB
!> KB is INTEGER!> The number of superdiagonals of the matrix B if UPLO = 'U',!> or the number of subdiagonals if UPLO = 'L'. KB >= 0.!>
INTEGER. same deal as KA but for B. superdiagonals if UPLO = 'U', subdiagonals if UPLO = 'L'. KB >= 0. slay.
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 contents of AB are destroyed.!>
COMPLEX array, dimension (LDAB, N) β this is matrix A's moment π
on entry: the upper or lower triangle of the Hermitian band matrix A, chillin' in the first ka+1 rows of the array. the j-th column of A lives in the j-th column of AB like this:
- if
UPLO = 'U',AB(ka+1+i-j,j) = A(i,j)formax(1,j-ka)<=i<=j; - if
UPLO = 'L',AB(1+i-j,j) = A(i,j)forj<=i<=min(n,j+ka).
β οΈ on exit, the contents of AB are destroyed. she ate and left no crumbs. if you needed that data, sorry bestie π
LDAB
!> LDAB is INTEGER!> The leading dimension of the array AB. LDAB >= KA+1.!>
INTEGER, leading dimension of the array AB. LDAB >= KA+1. non-negotiable.
BB
!> BB is COMPLEX array, dimension (LDBB, N)!> On entry, the upper or lower triangle of the Hermitian band!> matrix B, stored in the first kb+1 rows of the array. The!> j-th column of B is stored in the j-th column of the array BB!> as follows:!> if UPLO = 'U', BB(kb+1+i-j,j) = B(i,j) for max(1,j-kb)<=i<=j;!> if UPLO = 'L', BB(1+i-j,j) = B(i,j) for j<=i<=min(n,j+kb).!>!> On exit, the factor S from the split Cholesky factorization!> B = S**H*S, as returned by CPBSTF.!>
COMPLEX array, dimension (LDBB, N) β B's turn to shine π
on entry: the upper or lower triangle of the Hermitian band matrix B, in the first kb+1 rows of the array. the j-th column of B sits in the j-th column of BB like so:
- if
UPLO = 'U',BB(kb+1+i-j,j) = B(i,j)formax(1,j-kb)<=i<=j; - if
UPLO = 'L',BB(1+i-j,j) = B(i,j)forj<=i<=min(n,j+kb).
on exit: the factor S from the split Cholesky factorization B = S**H*S, as returned by CPBSTF. she transformed, honestly iconic β¨
LDBB
!> LDBB is INTEGER!> The leading dimension of the array BB. LDBB >= KB+1.!>
INTEGER, leading dimension of the array BB. LDBB >= KB+1. same rules, different array.
W
!> W is REAL array, dimension (N)!> If INFO = 0, the eigenvalues in ascending order.!>
REAL array, dimension (N). if INFO = 0, this is where the eigenvalues live, in ascending order. sorted, organized, she's got her life together π
Z
!> Z is COMPLEX array, dimension (LDZ, N)!> If JOBZ = 'V', then if INFO = 0, Z contains the matrix Z of!> eigenvectors, with the i-th column of Z holding the!> eigenvector associated with W(i). The eigenvectors are!> normalized so that Z**H*B*Z = I.!> If JOBZ = 'N', then Z is not referenced.!>
COMPLEX array, dimension (LDZ, N).
- if
JOBZ = 'V'andINFO = 0,Zholds the matrix Z of eigenvectors, with thei-th column of Z holding the eigenvector associated withW(i). and they're normalized so thatZ**H*B*Z = Iβ tidy π - if
JOBZ = 'N', thenZis not referenced. she doesn't even look at it. ignored. blocked. π
LDZ
!> LDZ is INTEGER!> The leading dimension of the array Z. LDZ >= 1, and if!> JOBZ = 'V', LDZ >= N.!>
INTEGER, leading dimension of the array Z. LDZ >= 1, and if JOBZ = 'V', then LDZ >= N. conditional requirements, we love a nuanced queen π¦
WORK
!> WORK is COMPLEX array, dimension (N)!>
COMPLEX array, dimension (N). she works hard but you never see her π€
RWORK
!> RWORK is REAL array, dimension (3*N)!>
REAL array, dimension (3*N). three whole Ns. that's a lot of room, go off.
INFO
!> INFO is INTEGER!> = 0: successful exit!> < 0: if INFO = -i, the i-th argument had an illegal value!> > 0: if INFO = i, and i is:!> <= N: the algorithm failed to converge:!> i off-diagonal elements of an intermediate!> tridiagonal form did not converge to zero;!> > N: if INFO = N + i, for 1 <= i <= N, then CPBSTF!> returned INFO = i: B is not positive definite.!> The factorization of B could not be completed and!> no eigenvalues or eigenvectors were computed.!>
INTEGER β the receipts π
= 0: successful exit. we cheered π< 0: ifINFO = -i, thei-th argument had an illegal value. you passed her something cursed, bestie.> 0: ifINFO = i, andiis:<= N: the algorithm failed to converge βioff-diagonal elements of an intermediate tridiagonal form did not converge to zero. she tried, it didn't slay π> N: ifINFO = N + i, for1 <= i <= N, thenCPBSTFreturnedINFO = i: B is not positive definite. The factorization of B could not be completed and no eigenvalues or eigenvectors were computed. yeah that's a whole nothing-burger. π
π§ Author π§
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
the whole squad collaborated on this one, group project that actually worked out π«Ά
Definition at line 181 of file chbgv.f. π
β Author β
Generated automatically by Doxygen for LAPACK from the source code. she was written by a machine, she has no flaws, we stan an auto-generated icon π€π
and that's the whole page bestie!! π this is LAPACK Version 3.12.0 and the file is /home/abui...RC/chbgv.f(3) β go forth and compute all those eigenvalues, you absolute legend π¦π slay β¨
π¦ 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