hbgvd(3)

okay so you opened hbgvd(3) from the Library Functions Manual and honestly? iconic choice. let's get into it πŸ’–

✨ NAME ✨

hbgvd β€” {hb,sb}gvd: eig, divide and conquer πŸŽ€


🌸 SYNOPSIS 🌸

Functions

  • chbgvd :
subroutine chbgvd (jobz, uplo, n, ka, kb, ab, ldab, bb, ldbb, w, z, ldz,
    work, lwork, rwork, lrwork, iwork, liwork, info)
    CHBGVD
  • dsbgvd :
subroutine dsbgvd (jobz, uplo, n, ka, kb, ab, ldab, bb, ldbb, w, z, ldz,
    work, lwork, iwork, liwork, info)
    DSBGVD
  • ssbgvd :
subroutine ssbgvd (jobz, uplo, n, ka, kb, ab, ldab, bb, ldbb, w, z, ldz,
    work, lwork, iwork, liwork, info)
    SSBGVD
  • zhbgvd :
subroutine zhbgvd (jobz, uplo, n, ka, kb, ab, ldab, bb, ldbb, w, z, ldz,
    work, lwork, rwork, lrwork, iwork, liwork, info)
    ZHBGVD

πŸ¦‹ Detailed Description πŸ¦‹

so the original page literally just vibes here with the heading and nothing under it 😭 no cap, that's the whole section. moving on bestie.


πŸ‘‘ Function Documentation πŸ‘‘

chbgvd

subroutine chbgvd (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, integer lwork, real, dimension( * ) rwork, integer lrwork, integer, dimension( * ) iwork, integer liwork, integer info) CHBGVD

πŸ’« Purpose πŸ’«

okay so CHBGVD computes all the eigenvalues, and optionally the eigenvectors, of a complex generalized Hermitian-definite banded eigenproblem, and the form is:

A*x=(lambda)*B*x

here A and B are assumed to be Hermitian and banded, and B is also positive definite. if you want eigenvectors, it uses a divide and conquer algorithm. slay. πŸ’…

🧚 Parameters 🧚

  • JOBZ β€” JOBZ is CHARACTER*1. two moods:
    • = 'N': compute eigenvalues only;
    • = 'V': compute eigenvalues and eigenvectors.
  • UPLO β€” UPLO is CHARACTER*1. pick your triangle:
    • = 'U': upper triangles of A and B are stored;
    • = 'L': lower triangles of A and B are stored.
  • N β€” N is INTEGER. the order of the matrices A and B. N >= 0.
  • 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'. KB >= 0.
  • 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. bestie she's gone, no refunds πŸ’€
  • LDAB β€” LDAB is INTEGER. the leading dimension of the array AB. LDAB >= KA+1.
  • 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.

  • LDBB β€” LDBB is INTEGER. the leading dimension of the array BB. LDBB >= KB+1.
  • W β€” W is REAL array, dimension (N). if INFO = 0, the eigenvalues in ascending order. ✨
  • 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 (she's not invited to the party).
  • LDZ β€” LDZ is INTEGER. the leading dimension of the array Z. LDZ >= 1, and if JOBZ = 'V', LDZ >= N.
  • WORK β€” WORK is COMPLEX array, dimension (MAX(1,LWORK)). on exit, if INFO=0, WORK(1) returns the optimal LWORK.
  • LWORK β€” LWORK is INTEGER. the dimension of the array WORK. the sizing tea:
    • if N <= 1, LWORK >= 1.
    • if JOBZ = 'N' and N > 1, LWORK >= N.
    • if JOBZ = 'V' and N > 1, LWORK >= 2*N**2.
if LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal sizes of the WORK, RWORK and IWORK arrays, returns these values as the first entries of the WORK, RWORK and IWORK arrays, and no error message related to LWORK or LRWORK or LIWORK is issued by XERBLA.
  • RWORK β€” RWORK is REAL array, dimension (MAX(1,LRWORK)). on exit, if INFO=0, RWORK(1) returns the optimal LRWORK.
  • LRWORK β€” LRWORK is INTEGER. the dimension of array RWORK. the sizing tea, round two:
    • if N <= 1, LRWORK >= 1.
    • if JOBZ = 'N' and N > 1, LRWORK >= N.
    • if JOBZ = 'V' and N > 1, LRWORK >= 1 + 5*N + 2*N**2.
if LRWORK = -1, then a workspace query is assumed; the routine only calculates the optimal sizes of the WORK, RWORK and IWORK arrays, returns these values as the first entries of the WORK, RWORK and IWORK arrays, and no error message related to LWORK or LRWORK or LIWORK is issued by XERBLA.
  • IWORK β€” IWORK is INTEGER array, dimension (MAX(1,LIWORK)). on exit, if INFO=0, IWORK(1) returns the optimal LIWORK.
  • LIWORK β€” LIWORK is INTEGER. the dimension of array IWORK:
    • if JOBZ = 'N' or N <= 1, LIWORK >= 1.
    • if JOBZ = 'V' and N > 1, LIWORK >= 3 + 5*N.
if LIWORK = -1, then a workspace query is assumed; the routine only calculates the optimal sizes of the WORK, RWORK and IWORK arrays, returns these values as the first entries of the WORK, RWORK and IWORK arrays, and no error message related to LWORK or LRWORK or LIWORK is issued by XERBLA.
  • INFO β€” INFO is INTEGER. the receipts:
    • = 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. 😭

🌈 Author 🌈

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

🫢 Contributors 🫢

  • Mark Fahey, Department of Mathematics, Univ. of Kentucky, USA

Definition at line 243 of file chbgvd.f.


dsbgvd

subroutine dsbgvd (character jobz, character uplo, integer n, integer ka, integer kb, double precision, dimension( ldab, * ) ab, integer ldab, double precision, dimension( ldbb, * ) bb, integer ldbb, double precision, dimension( * ) w, double precision, dimension( ldz, * ) z, integer ldz, double precision, dimension( * ) work, integer lwork, integer, dimension( * ) iwork, integer liwork, integer info) DSBGVD

πŸ’« Purpose πŸ’«

DSBGVD computes all the eigenvalues, and optionally the eigenvectors, of a real generalized symmetric-definite banded eigenproblem, of the form:

A*x=(lambda)*B*x

here A and B are assumed to be symmetric and banded, and B is also positive definite. if eigenvectors are desired, it uses a divide and conquer algorithm. πŸ”₯

🧚 Parameters 🧚

  • JOBZ β€” JOBZ is CHARACTER*1. pick a lane:
    • = 'N': compute eigenvalues only;
    • = 'V': compute eigenvalues and eigenvectors.
  • UPLO β€” UPLO is CHARACTER*1. pick your triangle:
    • = 'U': upper triangles of A and B are stored;
    • = 'L': lower triangles of A and B are stored.
  • N β€” N is INTEGER. the order of the matrices A and B. N >= 0.
  • 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'. KB >= 0.
  • AB β€” AB is DOUBLE PRECISION array, dimension (LDAB, N). on entry, the upper or lower triangle of the symmetric 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. yeah she's not coming back 🫑
  • LDAB β€” LDAB is INTEGER. the leading dimension of the array AB. LDAB >= KA+1.
  • BB β€” …
  • BB β€” bestie, this is a DOUBLE PRECISION array, dimension (LDBB, N). On entry, it holds the upper or lower triangle of the symmetric band matrix B, stored in the first kb+1 rows of the array. The j-th column of B lives in the j-th column of BB like this: if UPLO = 'U', then BB(ka+1+i-j,j) = B(i,j) for max(1,j-kb)<=i<=j; if UPLO = 'L', then BB(1+i-j,j) = B(i,j) for j<=i<=min(n,j+kb). On exit, it holds the factor S from the split Cholesky factorization B = S**T*S, as returned by DPBSTF. πŸ’–
  • LDBB β€” an INTEGER. This is the leading dimension of the array BB. You need LDBB >= KB+1. No skimping. ✨
  • W β€” a DOUBLE PRECISION array, dimension (N). If INFO = 0, it contains the eigenvalues in ascending order. Slay. πŸ‘‘
  • Z β€” a DOUBLE PRECISION array, dimension (LDZ, N). If JOBZ = 'V', then when 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 Z**T*B*Z = I. If JOBZ = 'N', then Z is literally not referenced. Bye. πŸ¦‹
  • LDZ β€” an INTEGER. The leading dimension of the array Z. LDZ >= 1, and if JOBZ = 'V', then LDZ >= max(1,N). Periodt. πŸ’…
  • WORK β€” a DOUBLE PRECISION array, dimension (MAX(1,LWORK)). On exit, if INFO = 0, WORK(1) returns the optimal LWORK. It's giving workspace realness. πŸŽ€
  • LWORK β€” an INTEGER. The dimension of the array WORK. Here's the tea: if N <= 1, then LWORK >= 1. If JOBZ = 'N' and N > 1, then LWORK >= 2*N. If JOBZ = 'V' and N > 1, then LWORK >= 1 + 5*N + 2*N**2. And if LWORK = -1, then a workspace query is assumed β€” the routine only calculates the optimal sizes of the WORK and IWORK arrays, returns these values as the first entries of the WORK and IWORK arrays, and no error message related to LWORK or LIWORK is issued by XERBLA. Iconic. πŸ”₯
  • IWORK β€” an INTEGER array, dimension (MAX(1,LIWORK)). On exit, if LIWORK > 0, IWORK(1) returns the optimal LIWORK. πŸ’œ
  • LIWORK β€” an INTEGER. The dimension of the array IWORK. If JOBZ = 'N' or N <= 1, then LIWORK >= 1. If JOBZ = 'V' and N > 1, then LIWORK >= 3 + 5*N. If LIWORK = -1, then a workspace query is assumed; the routine only calculates the optimal sizes of the WORK and IWORK arrays, returns these values as the first entries of the WORK and IWORK arrays, and no error message related to LWORK or LIWORK is issued by XERBLA. Same energy. ✨
  • INFO β€” an INTEGER. = 0: successful exit, we love to see it. < 0: if INFO = -i, the i-th argument had an illegal value (oops). > 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 DPBSTF returned INFO = i: B is not positive definite. The factorization of B could not be completed and no eigenvalues or eigenvectors were computed. Big yikes. πŸ’€

πŸ‘‘ Author πŸ‘‘

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

🌟 Contributors 🌟

Mark Fahey, Department of Mathematics, Univ. of Kentucky, USA

Definition at line 219 of file dsbgvd.f.


πŸ¦‹ subroutine ssbgvd πŸ¦‹

   subroutine ssbgvd (character jobz, character uplo, integer n, integer ka,
       integer kb, real, dimension( ldab, * ) ab, integer ldab, real,
       dimension( ldbb, * ) bb, integer ldbb, real, dimension( * ) w, real,
       dimension( ldz, * ) z, integer ldz, real, dimension( * ) work, integer
       lwork, integer, dimension( * ) iwork, integer liwork, integer info)
       SSBGVD

πŸ’– SSBGVD πŸ’–

πŸ’« Purpose πŸ’«

SSBGVD computes all the eigenvalues, and optionally, the eigenvectors of a real generalized symmetric-definite banded eigenproblem, of the form A*x=(lambda)*B*x. Here A and B are assumed to be symmetric and banded, and B is also positive definite. If eigenvectors are desired, it uses a divide and conquer algorithm. It's giving main character energy, fr fr. 🌈

✨ Parameters ✨

  • JOBZ β€” a CHARACTER*1. = 'N': compute eigenvalues only; = 'V': compute eigenvalues and eigenvectors. Choose your fighter. πŸ’…
  • UPLO β€” a CHARACTER*1. = 'U': upper triangles of A and B are stored; = 'L': lower triangles of A and B are stored. Pick a side. πŸŽ€
  • N β€” an INTEGER. The order of the matrices A and B. N >= 0. Respect the dimension. ✨
  • KA β€” an INTEGER. The number of superdiagonals of the matrix A if UPLO = 'U', or the number of subdiagonals if UPLO = 'L'. KA >= 0. No cap. 🧚
  • KB β€” an INTEGER. The number of superdiagonals of the matrix B if UPLO = 'U', or the number of subdiagonals if UPLO = 'L'. KB >= 0. Another one. πŸ’œ
  • AB β€” a REAL array, dimension (LDAB, N). On entry, the upper or lower triangle of the symmetric 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', then AB(ka+1+i-j,j) = A(i,j) for max(1,j-ka)<=i<=j; if UPLO = 'L', then AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+ka). On exit, the contents of AB are destroyed. So don't get attached. 😭
  • LDAB β€” an INTEGER. The leading dimension of the array AB. LDAB >= KA+1. You gotta. πŸ”₯
  • BB β€” a REAL array, dimension (LDBB, N). On entry, the upper or lower triangle of the symmetric 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', then BB(ka+1+i-j,j) = B(i,j) for max(1,j-kb)<=i<=j; if UPLO = 'L', then 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**T*S, as returned by SPBSTF. πŸ’–
  • LDBB β€” an INTEGER. The leading dimension of the array BB. LDBB >= KB+1. Yes bestie. 🌸
  • W β€” a REAL array, dimension (N). If INFO = 0, the eigenvalues in ascending order. Gorgeous. πŸ‘‘
  • Z β€” a REAL 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 Z**T*B*Z = I. If JOBZ = 'N', then Z is not referenced. Not even a little. πŸ¦‹
  • LDZ β€” an INTEGER. The leading dimension of the array Z. LDZ >= 1, and if JOBZ = 'V', then LDZ >= max(1,N). Standard. πŸ’…
  • WORK β€” a REAL array, dimension (MAX(1,LWORK)). On exit, if INFO = 0, WORK(1) returns the optimal LWORK. Workspace queen. πŸŽ€
  • LWORK β€” an INTEGER. The dimension of the array WORK. If N <= 1, then LWORK >= 1. If JOBZ = 'N' and N > 1, then LWORK >= 3*N. If JOBZ = 'V' and N > 1, then LWORK >= 1 + 5*N + 2*N**2. If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal sizes of the WORK and IWORK arrays, returns these values as the first entries of the WORK and IWORK arrays, and no error message related to LWORK or LIWORK is issued by XERBLA. Same drill. πŸ”₯
  • IWORK β€” an INTEGER array, dimension (MAX(1,LIWORK)). On exit, if LIWORK > 0, IWORK(1) returns the optimal LIWORK. πŸ’œ
  • LIWORK β€” an INTEGER. The dimension of the array IWORK. If JOBZ = 'N' or N <= 1, then LIWORK >= 1. If JOBZ = 'V' and N > 1, then LIWORK >= 3 + 5*N. If LIWORK = -1, then a workspace query is assumed; the routine only calculates the optimal sizes of the WORK and IWORK arrays, returns these values as the first entries of the WORK and IWORK arrays, and no error message related to LWORK or LIWORK is issued by XERBLA. You know the vibe. ✨
  • INFO β€” an INTEGER. = 0: successful exit, we cheer. < 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 SPBSTF returned INFO = i: B is not positive definite. The factorization of B could not be completed and no eigenvalues or eigenvectors were computed. Tragic. πŸ’€

πŸ‘‘ Author πŸ‘‘

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

🌟 Contributors 🌟

Mark Fahey, Department of Mathematics, Univ. of Kentucky, USA

Definition at line 219 of file ssbgvd.f.

   subroutine zhbgvd (character jobz, character uplo, integer n, integer ka,
       integer kb, complex*16, dimension( ldab, * ) ab, integer ldab,
       complex*16, dimension( ldbb, * ) bb, integer ldbb, double precision,
       dimension( * ) w, complex*16, dimension( ldz, * ) z, integer ldz,
       complex*16, dimension( * ) work, integer lwork, double precision,
       dimension( * ) rwork, integer lrwork, integer, dimension( * ) iwork,
       integer liwork, integer info)
       ZHBGVD

🎯 Purpose 🎯

Ok so ZHBGVD is literally that girl πŸ’… β€” she 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. If eigenvectors are desired, she uses a divide and conquer algorithm. No cap, she’s iconic. ✨

πŸ› οΈ Parameters πŸ› οΈ

  • JOBZ β€” is CHARACTER*1
    • = 'N': Compute eigenvalues only;
    • = 'V': Compute eigenvalues and eigenvectors.
  • UPLO β€” is CHARACTER*1
    • = 'U': Upper triangles of A and B are stored;
    • = 'L': Lower triangles of A and B are stored.
  • N β€” is INTEGER
    • The order of the matrices A and B. N >= 0.
  • 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 β€” is INTEGER
    • The number of superdiagonals of the matrix B if UPLO = 'U', or the number of subdiagonals if UPLO = 'L'. KB >= 0.
  • AB β€” is COMPLEX*16 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.
  • LDAB β€” is INTEGER
    • The leading dimension of the array AB. LDAB >= KA+1.
  • BB β€” is COMPLEX*16 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 ZPBSTF.
  • LDBB β€” is INTEGER
    • The leading dimension of the array BB. LDBB >= KB+1.
  • W β€” is DOUBLE PRECISION array, dimension (N)
    • If INFO = 0, the eigenvalues in ascending order.
  • Z β€” is COMPLEX*16 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.
  • LDZ β€” is INTEGER
    • The leading dimension of the array Z. LDZ >= 1, and if JOBZ = 'V', LDZ >= N.
  • WORK β€” is COMPLEX*16 array, dimension (MAX(1,LWORK))
    • On exit, if INFO=0, WORK(1) returns the optimal LWORK.
  • LWORK β€” is INTEGER
    • The dimension of the array WORK.
    • If N <= 1, LWORK >= 1.
    • If JOBZ = 'N' and N > 1, LWORK >= N.
    • If JOBZ = 'V' and N > 1, LWORK >= 2*N**2.
    • If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal sizes of the WORK, RWORK and IWORK arrays, returns these values as the first entries of the WORK, RWORK and IWORK arrays, and no error message related to LWORK or LRWORK or LIWORK is issued by XERBLA.
  • RWORK β€” is DOUBLE PRECISION array, dimension (MAX(1,LRWORK))
    • On exit, if INFO=0, RWORK(1) returns the optimal LRWORK.
  • LRWORK β€” is INTEGER
    • The dimension of array RWORK.
    • If N <= 1, LRWORK >= 1.
    • If JOBZ = 'N' and N > 1, LRWORK >= N.
    • If JOBZ = 'V' and N > 1, LRWORK >= 1 + 5*N + 2*N**2.
    • If LRWORK = -1, then a workspace query is assumed; the routine only calculates the optimal sizes of the WORK, RWORK and IWORK arrays, returns these values as the first entries of the WORK, RWORK and IWORK arrays, and no error message related to LWORK or LRWORK or LIWORK is issued by XERBLA.
  • IWORK β€” is INTEGER array, dimension (MAX(1,LIWORK))
    • On exit, if INFO=0, IWORK(1) returns the optimal LIWORK.
  • LIWORK β€” is INTEGER
    • The dimension of array IWORK.
    • If JOBZ = 'N' or N <= 1, LIWORK >= 1.
    • If JOBZ = 'V' and N > 1, LIWORK >= 3 + 5*N.
    • If LIWORK = -1, then a workspace query is assumed; the routine only calculates the optimal sizes of the WORK, RWORK and IWORK arrays, returns these values as the first entries of the WORK, RWORK and IWORK arrays, and no error message related to LWORK or LRWORK or LIWORK is issued by XERBLA.
  • 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 ZPBSTF returned INFO = i: B is not positive definite. The factorization of B could not be completed and no eigenvalues or eigenvectors were computed.

πŸ‘‘ Author πŸ‘‘

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

🌸 Contributors 🌸

  • Mark Fahey, Department of Mathematics, Univ. of Kentucky, USA

Definition at line 243 of file zhbgvd.f.

Author: Generated automatically by Doxygen for LAPACK from the source code.

And that’s the tea, bestie! 🫢 This iconic page was served to you by LAPACK Version 3.12.0, also known as hbgvd(3) in the footer. Now go out there and slay those Hermitian banded eigenvalues like the main character you are. πŸ’–πŸ‘‘βœ¨
πŸ“¦ where this page comes from