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 * 1 JOB, COMPZ
  COMPLEX H(LDH,*), W(*), Z(LDZ,*), WORK(*)
  INTEGER N, ILO, IHI, LDH, LDZ, LWORK, INFO
  SUBROUTINE CHSEQR_64( JOB, COMPZ, N, ILO, IHI, H, LDH, W, Z, LDZ, 
 *      WORK, LWORK, INFO)
  CHARACTER * 1 JOB, COMPZ
  COMPLEX H(LDH,*), W(*), Z(LDZ,*), WORK(*)
  INTEGER*8 N, ILO, IHI, LDH, LDZ, LWORK, INFO

F95 INTERFACE

  SUBROUTINE HSEQR( JOB, COMPZ, N, ILO, IHI, H, [LDH], W, Z, [LDZ], 
 *       [WORK], [LWORK], [INFO])
  CHARACTER(LEN=1) :: JOB, COMPZ
  COMPLEX, DIMENSION(:) :: W, WORK
  COMPLEX, DIMENSION(:,:) :: H, Z
  INTEGER :: N, ILO, IHI, LDH, LDZ, LWORK, INFO
  SUBROUTINE HSEQR_64( JOB, COMPZ, N, ILO, IHI, H, [LDH], W, Z, [LDZ], 
 *       [WORK], [LWORK], [INFO])
  CHARACTER(LEN=1) :: JOB, COMPZ
  COMPLEX, DIMENSION(:) :: W, WORK
  COMPLEX, DIMENSION(:,:) :: H, Z
  INTEGER(8) :: N, ILO, IHI, LDH, LDZ, LWORK, INFO

C INTERFACE

#include <sunperf.h>

void chseqr(char job, char compz, int n, int ilo, int ihi, complex *h, int ldh, complex *w, complex *z, int ldz, int *info);

void chseqr_64(char job, char compz, long n, long ilo, long ihi, complex *h, long ldh, complex *w, complex *z, long ldz, long *info);


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