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*x
  • A*Bx=(lambda)*x
  • B*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 of A and B are stored;
  • 'L': Lower triangles of A and B are 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 = 1 or 2, Z**H*B*Z = I;
  • if ITYPE = 3, Z**H*inv(B)*Z = I.
๐Ÿ’€ heads up: if JOBZ = 'N', then on exit the upper triangle (if UPLO='U') or the lower triangle (if UPLO='L') of A, 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' and N > 1, LWORK >= N + 1.
  • If JOBZ = 'V' and N > 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' and N > 1, LRWORK >= N.
  • If JOBZ = 'V' and N > 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' and N > 1, LIWORK >= 1.
  • If JOBZ = 'V' and N > 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: if INFO = -i, the i-th argument had an illegal value
  • > 0: ZPOTRF or ZHEEVD returned an error code:
    • <= N: if INFO = i and JOBZ = 'N', then the algorithm failed to converge; i off-diagonal elements of an intermediate tridiagonal form did not converge to zero; if INFO = i and JOBZ = 'V', then the algorithm failed to compute an eigenvalue while working on the submatrix lying in rows and columns INFO/(N+1) through mod(INFO,N+1);
    • > N: if INFO = N + i, for 1 <= i <= N, then the leading principal minor of order i of B is not positive. The factorization of B could 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