CHEGVD(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

πŸ’… CHEGVD(3) β€” chegvd.f(3) from the Library Functions Manual

🌸 NAME

Bestie, this manual page is literally for /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/chegvd.f. That's the whole NAME moment. πŸ’–

✨ SYNOPSIS

πŸ› οΈ Functions/Subroutines

subroutine CHEGVD (itype, jobz, uplo, n, a, lda, b, ldb, w, work, lwork,
    rwork, lrwork, iwork, liwork, info)
    CHEGVD

πŸ“š Function/Subroutine Documentation

subroutine CHEGVD (integer itype, character jobz, character uplo, integer n,
    complex, dimension( lda, * ) a, integer lda, complex, dimension( ldb, *
    ) b, integer ldb, real, dimension( * ) w, complex, dimension( * ) work,
    integer lwork, real, dimension( * ) rwork, integer lrwork, integer,
    dimension( * ) iwork, integer liwork, integer info)
    CHEGVD

🎯 Purpose

Okay so CHEGVD 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 and B is also positive definite. If eigenvectors are desired, it uses a divide and conquer algorithm. Slay. ✨

πŸ’– Parameters

🌟 ITYPE

Type: 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

Type: CHARACTER*1

  • = 'N': compute eigenvalues only;
  • = 'V': compute eigenvalues and eigenvectors.

🌈 UPLO

Type: CHARACTER*1

  • = 'U': upper triangles of A and B are stored;
  • = 'L': lower triangles of A and B are stored.

πŸŽ€ N

Type: INTEGER

The order of the matrices A and B. N >= 0.

πŸ’œ A

Type: COMPLEX 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.
Destroyed alert, bestie: 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

Type: INTEGER

The leading dimension of the array A. LDA >= max(1,N).

πŸ“ B

Type: COMPLEX 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

Type: INTEGER

The leading dimension of the array B. LDB >= max(1,N).

⭐ W

Type: REAL array, dimension (N)

If INFO = 0, the eigenvalues in ascending order.

πŸ”₯ WORK

Type: COMPLEX array, dimension (MAX(1,LWORK))

On exit, if INFO = 0, WORK(1) returns the optimal LWORK.

πŸ‘‘ LWORK

Type: 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

Type: REAL array, dimension (MAX(1,LRWORK))

On exit, if INFO = 0, RWORK(1) returns the optimal LRWORK.

🫢 LRWORK

Type: 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

Type: INTEGER array, dimension (MAX(1,LIWORK))

On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.

πŸŽ€ LIWORK

Type: 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

Type: INTEGER

  • = 0: successful exit.
  • < 0: if INFO = -i, the i-th argument had an illegal value.
  • > 0: CPOTRF or CHEEVD 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

Modified so that no backsubstitution is performed if CHEEVD 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 at line 241 of file chegvd.f.

πŸ€– Author

Generated automatically by Doxygen for LAPACK from the source code.


Okay bestie, that's the whole tea. The footer on this one says LAPACK Version 3.12.0 and /home/abui...RC/chegvd.f(3). Periodt. πŸ’–πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from