DSYGV(l)	     LAPACK driver routine (version 1.1)	     DSYGV(l)

NAME
  DSYGV	- compute all the eigenvalues, and optionally, the eigenvectors	of a
  real generalized symmetric-definite eigenproblem, of the form
  A*x=(lambda)*B*x, A*Bx=(lambda)*x, or	B*A*x=(lambda)*x

SYNOPSIS

  SUBROUTINE DSYGV( ITYPE, JOBZ, UPLO, N, A, LDA, B, LDB, W, WORK, LWORK,
		    INFO )

      CHARACTER	    JOBZ, UPLO

      INTEGER	    INFO, ITYPE, LDA, LDB, LWORK, N

      DOUBLE	    PRECISION A( LDA, *	), B( LDB, * ),	W( * ),	WORK( *	)

PURPOSE
  DSYGV	computes all the eigenvalues, and optionally, the eigenvectors of a
  real generalized symmetric-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	symmetric 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 matrix A.  N	>= 0.

  A	  (input/output) DOUBLE	PRECISION array, dimension (LDA, N)
	  On entry, the	symmetric 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 triangu-
	  lar 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**T*B*Z = I;	if ITYPE = 3, Z**T*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	des-
	  troyed.

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

  B	  (input/output) DOUBLE	PRECISION array, dimension (LDB, N)
	  On entry, the	symmetric 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 triangu-
	  lar 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	fac-
	  torization B = U**T*U	or B = L*L**T.

  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) DOUBLE PRECISION 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,3*N-1).	 For optimal
	  efficiency, LWORK >= (NB+2)*N, where NB is the blocksize for DSYTRD
	  returned by ILAENV.

  INFO	  (output) INTEGER
	  = 0:	successful exit
	  < 0:	if INFO	= -i, the i-th argument	had an illegal value
	  > 0:	DPOTRF or DSYEV	returned an error code:
	  <= N:	 if INFO = i, DSYEV failed to converge;	i off-diagonal ele-
	  ments	of an intermediate tridiagonal 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 com-
	  puted.


Back to the listing of simple driver routines