/home/abui...RC/chbgv.f(3)

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

πŸ’… 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) 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. 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) 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. 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' and INFO = 0, Z holds the matrix Z of eigenvectors, with the i-th column of Z holding the eigenvector associated with W(i). and they're normalized so that Z**H*B*Z = I β€” tidy πŸ’…
  • if JOBZ = 'N', then Z is 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: if INFO = -i, the i-th argument had an illegal value. you passed her something cursed, bestie.
  • > 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. she tried, it didn't slay 😭
    • > 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. 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