SRC/zhbevd.f(3)
okay bestie, this is SRC/zhbevd.f(3) from the Library Functions Manual β a Fortran LAPACK page about zhbevd, and we are about to give band-matrix eigenvalues the group-chat treatment π
β¨
π NAME π
SRC/zhbevd.f
πΈ SYNOPSIS πΈ
β¨ Functions/Subroutines β¨
subroutine zhbevd (jobz, uplo, n, kd, ab, ldab, w, z, ldz, work, lwork,
rwork, lrwork, iwork, liwork, info)
The vibe in one line: ZHBEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices.
π₯ Function/Subroutine Documentation π₯
here is the whole signature, no cap:
subroutine zhbevd (character jobz, character uplo, integer n, integer kd,
complex*16, dimension( ldab, * ) ab, integer ldab, 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)
ZHBEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices
π« Purpose π«
okay so the purpose is literally this: ZHBEVD computes all the eigenvalues and, optionally, eigenvectors of a complex Hermitian band matrix A. If eigenvectors are desired, it uses a divide and conquer algorithm.
π Parameters π
JOBZβJOBZ is CHARACTER*1= 'N': Compute eigenvalues only;= 'V': Compute eigenvalues and eigenvectors.
UPLOβUPLO is CHARACTER*1= 'U': Upper triangle of A is stored;= 'L': Lower triangle of A is stored.
NβN is INTEGER- The order of the matrix
A.N >= 0.
- The order of the matrix
KDβKD is INTEGER- The number of superdiagonals of the matrix
AifUPLO = 'U', or the number of subdiagonals ifUPLO = 'L'.KD >= 0.
- The number of superdiagonals of the matrix
ABβAB is COMPLEX*16 array, dimension (LDAB, N)- On entry, the upper or lower triangle of the Hermitian band matrix
A, stored in the firstKD+1rows of the array. The j-th column ofAis stored in the j-th column of the arrayABas follows:- if
UPLO = 'U',AB(kd+1+i-j,j) = A(i,j)formax(1,j-kd)<=i<=j; - if
UPLO = 'L',AB(1+i-j,j) = A(i,j)forj<=i<=min(n,j+kd).
- if
- On exit,
ABis overwritten by values generated during the reduction to tridiagonal form. IfUPLO = 'U', the first superdiagonal and the diagonal of the tridiagonal matrixTare returned in rowsKDandKD+1ofAB, and ifUPLO = 'L', the diagonal and first subdiagonal ofTare returned in the first two rows ofAB.
- On entry, the upper or lower triangle of the Hermitian band matrix
LDABβLDAB is INTEGER- The leading dimension of the array
AB.LDAB >= KD + 1.
- The leading dimension of the array
WβW is DOUBLE PRECISION array, dimension (N)- If
INFO = 0, the eigenvalues in ascending order.
- If
ZβZ is COMPLEX*16 array, dimension (LDZ, N)- If
JOBZ = 'V', then ifINFO = 0,Zcontains the orthonormal eigenvectors of the matrixA, with the i-th column ofZholding the eigenvector associated withW(i). - If
JOBZ = 'N', thenZis not referenced.
- If
LDZβLDZ is INTEGER- The leading dimension of the array
Z.LDZ >= 1, and ifJOBZ = 'V',LDZ >= max(1,N).
- The leading dimension of the array
WORKβWORK is COMPLEX*16 array, dimension (MAX(1,LWORK))- On exit, if
INFO = 0,WORK(1)returns the optimalLWORK.
- On exit, if
LWORKβLWORK is INTEGER- The dimension of the array
WORK. - If
N <= 1,LWORKmust be at least 1. - If
JOBZ = 'N'andN > 1,LWORKmust be at leastN. - If
JOBZ = 'V'andN > 1,LWORKmust be at least2*N**2. - If
LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal sizes of theWORK,RWORKandIWORKarrays, returns these values as the first entries of theWORK,RWORKandIWORKarrays, and no error message related toLWORKorLRWORKorLIWORKis issued byXERBLA.
- The dimension of the array
RWORKβRWORK is DOUBLE PRECISION array, dimension (LRWORK)- On exit, if
INFO = 0,RWORK(1)returns the optimalLRWORK.
- On exit, if
LRWORKβLRWORK is INTEGER- The dimension of array
RWORK. - If
N <= 1,LRWORKmust be at least 1. - If
JOBZ = 'N'andN > 1,LRWORKmust be at leastN. - If
JOBZ = 'V'andN > 1,LRWORKmust be at least1 + 5*N + 2*N**2. - If
LRWORK = -1, then a workspace query is assumed; the routine only calculates the optimal sizes of theWORK,RWORKandIWORKarrays, returns these values as the first entries of theWORK,RWORKandIWORKarrays, and no error message related toLWORKorLRWORKorLIWORKis issued byXERBLA.
- The dimension of array
IWORKβIWORK is INTEGER array, dimension (MAX(1,LIWORK))- On exit, if
INFO = 0,IWORK(1)returns the optimalLIWORK.
- On exit, if
LIWORKβLIWORK is INTEGER- The dimension of array
IWORK. - If
JOBZ = 'N'orN <= 1,LIWORKmust be at least 1. - If
JOBZ = 'V'andN > 1,LIWORKmust be at least3 + 5*N . - If
LIWORK = -1, then a workspace query is assumed; the routine only calculates the optimal sizes of theWORK,RWORKandIWORKarrays, returns these values as the first entries of theWORK,RWORKandIWORKarrays, and no error message related toLWORKorLRWORKorLIWORKis issued byXERBLA.
- The dimension of array
INFOβINFO is INTEGER= 0: successful exit.< 0: if INFO = -i, the i-th argument had an illegal value.> 0: if INFO = i, the algorithm failed to converge; i off-diagonal elements of an intermediate tridiagonal form did not converge to zero.
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 207 of file zhbevd.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
mwah π this page is from LAPACK Version 3.12.0, source SRC/zhbevd.f(3), and thatβs the whole vibe. 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