ZHPEVD(3)
okay bestie, welcome to ZHPEVD(3) from the Library Functions Manual β the LAPACK page for the packed-storage complex Hermitian eigen routine. Buckle up, itβs giving βmath but make it cuteβ π β¨
π NAME π
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zhpevd.f β yes, thatβs the exact file path this page documents, no cap.
π SYNOPSIS π
Functions/Subroutines
subroutine ZHPEVD (jobz, uplo, n, ap, w, z, ldz, work, lwork, rwork,
lrwork, iwork, liwork, info)
ZHPEVD computes the eigenvalues and, optionally, the left and/or
right eigenvectors for OTHER matrices
π¦ Function/Subroutine Documentation π¦
Hereβs the full typed signature, copied exactly because she is iconic and we do not mess with code:
subroutine ZHPEVD (character jobz, character uplo, integer n, complex*16,
dimension( * ) ap, 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)
ZHPEVD computes the eigenvalues and, optionally, the left and/or right
eigenvectors for OTHER matrices
β¨ Purpose β¨
This absolute icon computes all the eigenvalues and, optionally, eigenvectors of a complex Hermitian matrix A in packed storage. If eigenvectors are desired, it uses a divide and conquer algorithm. And yes, the one-liner says it computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices β thatβs the official vibe, fr fr.
π Parameters π
JOBZβCHARACTER*1. What do you want, bestie?= 'N': Compute eigenvalues only;= 'V': Compute eigenvalues and eigenvectors.
UPLOβCHARACTER*1. Which triangle are we storing?= 'U': Upper triangle of A is stored;= 'L': Lower triangle of A is stored.
NβINTEGER. The order of the matrix A.N >= 0.APβCOMPLEX*16 array, dimension (N*(N+1)/2). On entry, the upper or lower triangle of the Hermitian matrix A, packed columnwise in a linear array. The j-th column of A is stored in the arrayAPas follows:- if
UPLO = 'U',AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j; - if
UPLO = 'L',AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n. - On exit:
APis overwritten by values generated during the reduction to tridiagonal form. IfUPLO = 'U', the diagonal and first superdiagonal of the tridiagonal matrixToverwrite the corresponding elements of A, and ifUPLO = 'L', the diagonal and first subdiagonal ofToverwrite the corresponding elements of A.
- if
WβDOUBLE PRECISION array, dimension (N). IfINFO = 0, the eigenvalues in ascending order.ZβCOMPLEX*16 array, dimension (LDZ, N). IfJOBZ = 'V', then ifINFO = 0,Zcontains the orthonormal eigenvectors of the matrix A, with the i-th column ofZholding the eigenvector associated withW(i). IfJOBZ = 'N', thenZis not referenced.LDZβINTEGER. The leading dimension of the arrayZ.LDZ >= 1, and ifJOBZ = 'V',LDZ >= max(1,N).WORKβCOMPLEX*16 array, dimension (MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the requiredLWORK.LWORKβINTEGER. The dimension of arrayWORK.- If
N <= 1,LWORKmust be at least1. - If
JOBZ = 'N'andN > 1,LWORKmust be at leastN. - If
JOBZ = 'V'andN > 1,LWORKmust be at least2*N. - If
LWORK = -1, then a workspace query is assumed; the routine only calculates the required sizes of theWORK,RWORKandIWORKarrays, returns these values as the first entries of theWORK,RWORKandIWORKarrays, and no error message related toLWORKorLRWORKorLIWORKis issued byXERBLA.
- If
RWORKβDOUBLE PRECISION array, dimension (MAX(1,LRWORK)). On exit, ifINFO = 0,RWORK(1)returns the requiredLRWORK.LRWORKβINTEGER. The dimension of arrayRWORK.- If
N <= 1,LRWORKmust be at least1. - 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 required sizes of theWORK,RWORKandIWORKarrays, returns these values as the first entries of theWORK,RWORKandIWORKarrays, and no error message related toLWORKorLRWORKorLIWORKis issued byXERBLA.
- If
IWORKβINTEGER array, dimension (MAX(1,LIWORK)). On exit, ifINFO = 0,IWORK(1)returns the requiredLIWORK.LIWORKβINTEGER. The dimension of arrayIWORK.- If
JOBZ = 'N'orN <= 1,LIWORKmust be at least1. - 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 required sizes of theWORK,RWORKandIWORKarrays, returns these values as the first entries of theWORK,RWORKandIWORKarrays, and no error message related toLWORKorLRWORKorLIWORKis issued byXERBLA.
- If
INFOβINTEGER.= 0: successful exit< 0: ifINFO = -i, the i-th argument had an illegal value.> 0: ifINFO = i, the algorithm failed to converge; i off-diagonal elements of an intermediate tridiagonal form did not converge to zero.
Vibe check: an INFO > 0 is not a slay β it means the algorithm failed to converge, exactly as listed above. π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 192 of file zhpevd.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
π Thatβs the whole page, bestie β footer tea: source/version is LAPACK, Version 3.12.0, and the page path is /home/abui...RC/zhpevd.f(3). Mwah, go solve those Hermitian eigenvalues. π«Ά
π¦ 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