SRC/zhegvd.f(3)
๐ธ SRC/zhegvd.f(3) โ Library Functions Manual ๐ธ
okay so bestie, welcome to the manual page for SRC/zhegvd.f(3) from the Library Functions Manual. This is the <purple>zhegvd</purple> subroutine, and it's giving extremely competent linear-algebra main-character energy. ๐
๐ NAME ๐
SRC/zhegvd.f
โจ SYNOPSIS โจ
๐ง Functions/Subroutines
subroutine zhegvd (itype, jobz, uplo, n, a, lda, b, ldb, w, work, lwork,
rwork, lrwork, iwork, liwork, info)
ZHEGVD
๐ Function/Subroutine Documentation ๐
subroutine zhegvd (integer itype, character jobz, character uplo, integer n,
complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension(
ldb, * ) b, integer ldb, double precision, dimension( * ) w, complex*16,
dimension( * ) work, integer lwork, double precision, dimension( * )
rwork, integer lrwork, integer, dimension( * ) iwork, integer liwork,
integer info)
ZHEGVD
๐ฏ Purpose
Bestie, here's the tea: ZHEGVD computes all the eigenvalues, and optionally the eigenvectors, of a complex generalized Hermitian-definite eigenproblem. The forms are:
A*x=(lambda)*B*xA*Bx=(lambda)*xB*A*x=(lambda)*x
Here A and B are assumed to be Hermitian, and B is also <hotpink>positive definite</hotpink>. If eigenvectors are desired, it uses a divide and conquer algorithm. Slay. โจ
๐งฎ Parameters
๐ธ ITYPE
ITYPE is INTEGER. It 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 ofAandBare stored;'L': Lower triangles ofAandBare stored.
๐ N
N is INTEGER. The order of the matrices A and B. N >= 0.
๐ A
A is COMPLEX*16 array, dimension (LDA, N).
On entry, the Hermitian matrix A. If UPLO = 'U', the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A. If UPLO = 'L', the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A.
On exit, if JOBZ = 'V', then if INFO = 0, A contains the matrix Z of eigenvectors. The eigenvectors are normalized as follows:
- if
ITYPE = 1or2,Z**H*B*Z = I; - if
ITYPE = 3,Z**H*inv(B)*Z = I.
๐ heads up: ifJOBZ = 'N', then on exit the upper triangle (ifUPLO='U') or the lower triangle (ifUPLO='L') ofA, including the diagonal, is destroyed.
๐ LDA
LDA is INTEGER. The leading dimension of the array A. LDA >= max(1,N).
๐ B
B is COMPLEX*16 array, dimension (LDB, N).
On entry, the Hermitian matrix B. If UPLO = 'U', the leading N-by-N upper triangular part of B contains the upper triangular part of the matrix B. If UPLO = 'L', the leading N-by-N lower triangular part of B contains the lower triangular part of the matrix B.
On exit, if INFO <= N, the part of B containing the matrix is overwritten by the triangular factor U or L from the Cholesky factorization B = U**H*U or B = L*L**H.
๐ง LDB
LDB is INTEGER. The leading dimension of the array B. LDB >= max(1,N).
๐ W
W is DOUBLE PRECISION array, dimension (N). If INFO = 0, the eigenvalues in ascending order.
๐ฅ WORK
WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)). On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
๐ง LWORK
LWORK is INTEGER. The length of the array WORK.
- If
N <= 1,LWORK >= 1. - If
JOBZ = 'N'andN > 1,LWORK >= N + 1. - If
JOBZ = 'V'andN > 1,LWORK >= 2*N + 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 DOUBLE PRECISION array, dimension (MAX(1,LRWORK)). On exit, if INFO = 0, RWORK(1) returns the optimal LRWORK.
๐ธ LRWORK
LRWORK is INTEGER. The dimension of the array RWORK.
- 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 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 the array IWORK.
- If
N <= 1,LIWORK >= 1. - If
JOBZ = 'N'andN > 1,LIWORK >= 1. - If
JOBZ = 'V'andN > 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.
= 0: successful exit< 0: ifINFO = -i, thei-th argument had an illegal value> 0:ZPOTRForZHEEVDreturned an error code:<= N: ifINFO = iandJOBZ = 'N', then the algorithm failed to converge;ioff-diagonal elements of an intermediate tridiagonal form did not converge to zero; ifINFO = iandJOBZ = 'V', then the algorithm failed to compute an eigenvalue while working on the submatrix lying in rows and columnsINFO/(N+1)throughmod(INFO,N+1);> 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.
๐ Further Details
This version was modified so that no backsubstitution is performed if ZHEEVD fails to converge (NEIG in old code could be greater than N causing out of bounds reference to A - reported by Ralf Meyer). Also corrected the description of INFO and the test on ITYPE. Sven, 16 Feb 05.
๐ซถ Contributors
Mark Fahey, Department of Mathematics, Univ. of Kentucky, USA
๐ Definition
Definition at line 241 of file zhegvd.f.
๐ค Author
Generated automatically by Doxygen for LAPACK from the source code.
๐ And that's the whole page, bestie. This is LAPACK Version 3.12.0, SRC/zhegvd.f(3), Library Functions Manual โ go forth and slay your Hermitian-definite problems. โจ๐
๐ฆ 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