NAME
zhegv - compute 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
SYNOPSIS
SUBROUTINE ZHEGV( ITYPE, JOBZ, UPLO, N, A, LDA, B, LDB, W,
WORK, LWORK, RWORK, INFO )
CHARACTER JOBZ, UPLO
INTEGER INFO, ITYPE, LDA, LDB, LWORK, N
DOUBLE PRECISION RWORK( * ), W( * )
COMPLEX*16 A( LDA, * ), B( LDB, * ), WORK( * )
#include <sunperf.h>
void zhegv(int itype, char jobz, char uplo, int n, doub-
lecomplex *za, int lda, doublecomplex *zb, int
ldb, double *w, int *info) ;
PURPOSE
ZHEGV 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.
ARGUMENTS
ITYPE (input) 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 (input) CHARACTER*1
= 'N': Compute eigenvalues only;
= 'V': Compute eigenvalues and eigenvectors.
UPLO (input) CHARACTER*1
= 'U': Upper triangles of A and B are stored;
= 'L': Lower triangles of A and B are stored.
N (input) INTEGER
The order of the matrices A and B. N >= 0.
A (input/output) 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 con-
tains 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 con-
tains the matrix Z of eigenvectors. The eigenvec-
tors are normalized as follows: if ITYPE = 1 or
2, Z**H*B*Z = I; if ITYPE = 3, Z**H*inv(B)*Z = I.
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 (input) INTEGER
The leading dimension of the array A. LDA >=
max(1,N).
B (input/output) 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 con-
tains 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 (input) INTEGER
The leading dimension of the array B. LDB >=
max(1,N).
W (output) DOUBLE PRECISION array, dimension (N)
If INFO = 0, the eigenvalues in ascending order.
WORK (workspace/output) COMPLEX*16 array, dimension
(LWORK)
On exit, if INFO = 0, WORK(1) returns the optimal
LWORK.
LWORK (input) INTEGER
The length of the array WORK. LWORK >=
max(1,2*N-1). For optimal efficiency, LWORK >=
(NB+1)*N, where NB is the blocksize for ZHETRD
returned by ILAENV.
RWORK (workspace) DOUBLE PRECISION array, dimension
(max(1, 3*N-2))
INFO (output) INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an ille-
gal value
> 0: ZPOTRF or ZHEEV returned an error code:
<= N: if INFO = i, ZHEEV failed to converge; i
off-diagonal elements of an intermediate tridiago-
nal form did not converge to zero; > N: if INFO
= N + i, for 1 <= i <= N, then the leading minor
of order i of B is not positive definite. The
factorization of B could not be completed and no
eigenvalues or eigenvectors were computed.
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |