SRC/zhpgvd.f(3)
πΈ NAME πΈ
SRC/zhpgvd.f β that's the name, bestie. This is from the Library Functions Manual, and the page itself is SRC/zhpgvd.f(3), folded in right here so we know exactly what we're vibing with. β¨
π SYNOPSIS π
π Functions/Subroutines π
subroutine zhpgvd (itype, jobz, uplo, n, ap, bp, w, z, ldz, work, lwork,
rwork, lrwork, iwork, liwork, info)
ZHPGVD
π¦ Function/Subroutine Documentation π¦
subroutine zhpgvd (integer itype, character jobz, character uplo, integer n,
complex*16, dimension( * ) ap, complex*16, dimension( * ) bp, 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)
ZHPGVD is the main character here. π
π Purpose π
ZHPGVD computes all the eigenvalues and, optionally, the eigenvectors of a complex generalized Hermitian-definite eigenproblem, of the form A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x. Here A and B are assumed to be Hermitian, stored in packed format, and B is also positive definite.
If eigenvectors are desired, it uses a divide and conquer algorithm. β¨
π Parameters π
ITYPEβITYPE is INTEGER. Specifies the problem type to be solved:= 1: A*x = (lambda)*B*x= 2: A*B*x = (lambda)*x= 3: B*A*x = (lambda)*x
JOBZβJOBZ is CHARACTER*1.= 'N': Compute eigenvalues only;= 'V': Compute eigenvalues and eigenvectors.
UPLOβUPLO is CHARACTER*1.= '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 matricesAandB.N >= 0.APβAP is COMPLEX*16 array, dimension (N*(N+1)/2). On entry, the upper or lower triangle of the Hermitian matrixA, packed columnwise in a linear array. Thej-th column ofAis stored in the arrayAPas follows:- if
UPLO = 'U',AP(i + (j-1)*j/2) = A(i,j)for1<=i<=j; - if
UPLO = 'L',AP(i + (j-1)*(2*n-j)/2) = A(i,j)forj<=i<=n.
- if
On exit, the contents of AP are destroyed. π
BPβBP is COMPLEX*16 array, dimension (N*(N+1)/2). On entry, the upper or lower triangle of the Hermitian matrixB, packed columnwise in a linear array. Thej-th column ofBis stored in the arrayBPas follows:- if
UPLO = 'U',BP(i + (j-1)*j/2) = B(i,j)for1<=i<=j; - if
UPLO = 'L',BP(i + (j-1)*(2*n-j)/2) = B(i,j)forj<=i<=n.
- if
On exit, the triangular factor U or L from the Cholesky factorization B = U**H*U or B = L*L**H, in the same storage format as B. π
WβW is DOUBLE PRECISION array, dimension (N). IfINFO = 0, the eigenvalues in ascending order.ZβZ is COMPLEX*16 array, dimension (LDZ, N). IfJOBZ = 'V', then ifINFO = 0,Zcontains the matrixZof eigenvectors. The eigenvectors are normalized as follows:- if
ITYPE = 1or2,Z**H*B*Z = I; - if
ITYPE = 3,Z**H*inv(B)*Z = I.
- if
If JOBZ = 'N', then Z is not referenced.
LDZβLDZ is INTEGER. The leading dimension of the arrayZ.LDZ >= 1, and ifJOBZ = 'V',LDZ >= max(1,N).WORKβWORK is COMPLEX*16 array, dimension (MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the requiredLWORK.LWORKβLWORK is INTEGER. The dimension of the arrayWORK.- If
N <= 1,LWORK >= 1. - If
JOBZ = 'N'andN > 1,LWORK >= N. - If
JOBZ = 'V'andN > 1,LWORK >= 2*N.
- If
If LWORK = -1, then a workspace query is assumed; the routine only calculates the required 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 DOUBLE PRECISION array, dimension (MAX(1,LRWORK)). On exit, ifINFO = 0,RWORK(1)returns the requiredLRWORK.LRWORKβLRWORK is INTEGER. The 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 required 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, ifINFO = 0,IWORK(1)returns the requiredLIWORK.LIWORKβLIWORK is INTEGER. The 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 required 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.= 0: successful exit< 0: ifINFO = -i, thei-th argument had an illegal value> 0:ZPPTRForZHPEVDreturned an error code:<= N: ifINFO = i,ZHPEVDfailed to converge;ioff-diagonal elements of an intermediate tridiagonal form did not convergeto zero;> N: ifINFO = N + i, for1 <= i <= n, then the leading principal minor of orderiofBis not positive. 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 223 of file zhpgvd.f. π
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
π okay that's a wrap, bestie: this page is from LAPACK Version 3.12.0 and it's the SRC/zhpgvd.f(3) page. Slay, 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