CHSEQR(l)		LAPACK routine (version	1.1)		    CHSEQR(l)

NAME
  CHSEQR - compute the eigenvalues of a	complex	upper Hessenberg matrix	H,
  and, optionally, the matrices	T and Z	from the Schur decomposition H = Z T
  Z**H,	where T	is an upper triangular matrix (the Schur form),	and Z is the
  unitary matrix of Schur vectors

SYNOPSIS

  SUBROUTINE CHSEQR( JOB, COMPZ, N, ILO, IHI, H, LDH, W, Z, LDZ, WORK, LWORK,
		     INFO )

      CHARACTER	     COMPZ, JOB

      INTEGER	     IHI, ILO, INFO, LDH, LDZ, LWORK, N

      COMPLEX	     H(	LDH, * ), W( * ), WORK(	* ), Z(	LDZ, * )

PURPOSE
  CHSEQR computes the eigenvalues of a complex upper Hessenberg	matrix H,
  and, optionally, the matrices	T and Z	from the Schur decomposition H = Z T
  Z**H,	where T	is an upper triangular matrix (the Schur form),	and Z is the
  unitary matrix of Schur vectors.

  Optionally Z may be postmultiplied into an input unitary matrix Q, so	that
  this routine can give	the Schur factorization	of a matrix A which has	been
  reduced to the Hessenberg form H by the unitary matrix Q:  A = Q*H*Q**H =
  (QZ)*T*(QZ)**H.

ARGUMENTS

  JOB	  (input) CHARACTER*1
	  = 'E': compute eigenvalues only;
	  = 'S': compute eigenvalues and the Schur form	T.

  COMPZ	  (input) CHARACTER*1
	  = 'N': no Schur vectors are computed;
	  = 'I': Z is initialized to the unit matrix and the matrix Z of
	  Schur	vectors	of H is	returned; = 'V': Z must	contain	an unitary
	  matrix Q on entry, and the product Q*Z is returned.

  N	  (input) INTEGER
	  The order of the matrix H.  N	>= 0.

  ILO	  (input) INTEGER
	  IHI	  (input) INTEGER It is	assumed	that H is already upper	tri-
	  angular in rows and columns 1:ILO-1 and IHI+1:N. ILO and IHI are
	  normally set by a previous call to CGEBAL, and then passed to
	  CGEHRD when the matrix output	by CGEBAL is reduced to	Hessenberg
	  form.	Otherwise ILO and IHI should be	set to 1 and N respectively.
	  1 <= ILO <= max(1,IHI); IHI <= N.

  H	  (input/output) COMPLEX array,	dimension (LDH,N)
	  On entry, the	upper Hessenberg matrix	H.  On exit, if	JOB = 'S', H
	  contains the upper triangular	matrix T from the Schur	decomposition
	  (the Schur form). If JOB = 'E', the contents of H are	unspecified
	  on exit.

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

  W	  (output) COMPLEX array, dimension (N)
	  The computed eigenvalues. If JOB = 'S', the eigenvalues are stored
	  in the same order as on the diagonal of the Schur form returned in
	  H, with W(i) = H(i,i).

  Z	  (input/output) COMPLEX array,	dimension (LDZ,N)
	  If COMPZ = 'N': Z is not referenced.
	  If COMPZ = 'I': on entry, Z need not be set, and on exit, Z con-
	  tains	the unitary matrix Z of	the Schur vectors of H.	 If COMPZ =
	  'V': on entry	Z must contain an N-by-N matrix	Q, which is assumed
	  to be	equal to the unit matrix except	for the	submatrix
	  Z(ILO:IHI,ILO:IHI); on exit Z	contains Q*Z.  Normally	Q is the uni-
	  tary matrix generated	by CUNGHR after	the call to CGEHRD which
	  formed the Hessenberg	matrix H.

  LDZ	  (input) INTEGER
	  The leading dimension	of the array Z.	 LDZ >=	max(1,N) if COMPZ =
	  'I' or 'V'; LDZ >= 1 otherwise.

  WORK	  (workspace) COMPLEX array, dimension (N)

  LWORK	  (input) INTEGER
	  This argument	is currently redundant.

  INFO	  (output) INTEGER
	  = 0:	successful exit
	  < 0:	if INFO	= -i, the i-th argument	had an illegal value
	  > 0:	if INFO	= i, CHSEQR failed to compute all the eigenvalues in
	  a total of 30*(IHI-ILO+1) iterations;	elements 1:ilo-1 and i+1:n of
	  W contain those eigenvalues which have been successfully computed.


Back to the listing of computational routines for eigenvalue problems