SRC/zhbgvd.f(3)
π SRC/zhbgvd.f(3) β ZHBGVD, but make it cute π
okay so bestie, this is the SRC/zhbgvd.f(3) page from the Library Functions Manual, and we're talking about the <rainbow>ZHBGVD</rainbow> subroutine. She computes eigenvalues and optionally eigenvectors for a complex generalized Hermitian-definite banded eigenproblem, and honestly? main character energy. π
πΈ NAME πΈ
SRC/zhbgvd.f β that's the file, periodt. The whole page is serving this one subroutine.
β¨ SYNOPSIS β¨
π Functions/Subroutines π
subroutine zhbgvd (...)βZHBGVD
subroutine zhbgvd (jobz, uplo, n, ka, kb, ab, ldab, bb, ldbb, w, z, ldz,
work, lwork, rwork, lrwork, iwork, liwork, info)
ZHBGVD
π₯ Function/Subroutine Documentation π₯
π subroutine zhbgvd π
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 π¦
okay so <hotpink>ZHBGVD</hotpink> 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, it uses a divide and conquer algorithm. No cap, that's the whole vibe. β¨
π Parameters π
JOBZβJOBZisCHARACTER*1= 'N':Compute eigenvalues only;= 'V':Compute eigenvalues and eigenvectors.
UPLOβUPLOisCHARACTER*1= 'U':Upper triangles ofAandBare stored;= 'L':Lower triangles ofAandBare stored.
NβNisINTEGERThe order of the matricesAandB.N >= 0.KAβKAisINTEGERThe number of superdiagonals of the matrixAifUPLO = 'U', or the number of subdiagonals ifUPLO = 'L'.KA >= 0.KBβKBisINTEGERThe number of superdiagonals of the matrixBifUPLO = 'U', or the number of subdiagonals ifUPLO = 'L'.KB >= 0.ABβABisCOMPLEX*16 array, dimension (LDAB, N)On entry, the upper or lower triangle of the Hermitian band matrixA, stored in the firstka+1rows of the array. Thej-th column ofAis stored in thej-th column of the arrayABas follows:- 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).
- if
On exit, the contents of AB are destroyed. π
LDABβLDABisINTEGERThe leading dimension of the arrayAB.LDAB >= KA+1.BBβBBisCOMPLEX*16 array, dimension (LDBB, N)On entry, the upper or lower triangle of the Hermitian band matrixB, stored in the firstkb+1rows of the array. Thej-th column ofBis stored in thej-th column of the arrayBBas follows:- 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).
- if
On exit, the factor S from the split Cholesky factorization B = S**H*S, as returned by ZPBSTF.
LDBBβLDBBisINTEGERThe leading dimension of the arrayBB.LDBB >= KB+1.WβWisDOUBLE PRECISION array, dimension (N)IfINFO = 0, the eigenvalues in ascending order.ZβZisCOMPLEX*16 array, dimension (LDZ, N)IfJOBZ = 'V', then ifINFO = 0,Zcontains the matrixZof eigenvectors, with thei-th column ofZholding the eigenvector associated withW(i). The eigenvectors are normalized so thatZ**H*B*Z = I. IfJOBZ = 'N', thenZis not referenced.LDZβLDZisINTEGERThe leading dimension of the arrayZ.LDZ >= 1, and ifJOBZ = 'V',LDZ >= N.WORKβWORKisCOMPLEX*16 array, dimension (MAX(1,LWORK))On exit, ifINFO=0,WORK(1)returns the optimalLWORK.LWORKβLWORKisINTEGERThe dimension of the arrayWORK.- If
N <= 1,LWORK >= 1. - If
JOBZ = 'N'andN > 1,LWORK >= N. - If
JOBZ = 'V'andN > 1,LWORK >= 2*N**2.
- If
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βRWORKisDOUBLE PRECISION array, dimension (MAX(1,LRWORK))On exit, ifINFO=0,RWORK(1)returns the optimalLRWORK.LRWORKβLRWORKisINTEGERThe dimension of arrayRWORK.- If
N <= 1,LRWORK >= 1. - If
JOBZ = 'N'andN > 1,LRWORK >= N. - If
JOBZ = 'V'andN > 1,LRWORK >= 1 + 5*N + 2*N**2.
- If
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βIWORKisINTEGER array, dimension (MAX(1,LIWORK))On exit, ifINFO=0,IWORK(1)returns the optimalLIWORK.LIWORKβLIWORKisINTEGERThe dimension of arrayIWORK.- If
JOBZ = 'N'orN <= 1,LIWORK >= 1. - If
JOBZ = 'V'andN > 1,LIWORK >= 3 + 5*N.
- If
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βINFOisINTEGER= 0:successful exit< 0:ifINFO = -i, thei-th argument had an illegal value> 0:ifINFO = i, andiis:<= N:the algorithm failed to converge:ioff-diagonal elements of an intermediate tridiagonal form did not converge to zero;> N:ifINFO = N + i, for1 <= i <= N, thenZPBSTFreturnedINFO = i:Bis not positive definite. The factorization ofBcould 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.
okay bestie, that's the whole page! mwah π this gem is from LAPACK Version 3.12.0, page SRC/zhbgvd.f(3). no date in the footer, but the slay is eternal. π«Ά
π¦ 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