NAME

sgees - compute for an N-by-N real nonsymmetric matrix A, the eigenvalues, the real Schur form T, and, optionally, the matrix of Schur vectors Z


SYNOPSIS

  SUBROUTINE SGEES( JOBZ, SORTEV, SELECT, N, A, LDA, NOUT, WR, WI, Z, 
 *      LDZ, WORK, LDWORK, WORK3, INFO)
  CHARACTER * 1 JOBZ, SORTEV
  INTEGER N, LDA, NOUT, LDZ, LDWORK, INFO
  LOGICAL SELECT
  LOGICAL WORK3(*)
  REAL A(LDA,*), WR(*), WI(*), Z(LDZ,*), WORK(*)
  SUBROUTINE SGEES_64( JOBZ, SORTEV, SELECT, N, A, LDA, NOUT, WR, WI, 
 *      Z, LDZ, WORK, LDWORK, WORK3, INFO)
  CHARACTER * 1 JOBZ, SORTEV
  INTEGER*8 N, LDA, NOUT, LDZ, LDWORK, INFO
  LOGICAL*8 SELECT
  LOGICAL*8 WORK3(*)
  REAL A(LDA,*), WR(*), WI(*), Z(LDZ,*), WORK(*)

F95 INTERFACE

  SUBROUTINE GEES( JOBZ, SORTEV, SELECT, [N], A, [LDA], NOUT, WR, WI, 
 *       Z, [LDZ], [WORK], [LDWORK], [WORK3], [INFO])
  CHARACTER(LEN=1) :: JOBZ, SORTEV
  INTEGER :: N, LDA, NOUT, LDZ, LDWORK, INFO
  LOGICAL :: SELECT
  LOGICAL, DIMENSION(:) :: WORK3
  REAL, DIMENSION(:) :: WR, WI, WORK
  REAL, DIMENSION(:,:) :: A, Z
  SUBROUTINE GEES_64( JOBZ, SORTEV, SELECT, [N], A, [LDA], NOUT, WR, 
 *       WI, Z, [LDZ], [WORK], [LDWORK], [WORK3], [INFO])
  CHARACTER(LEN=1) :: JOBZ, SORTEV
  INTEGER(8) :: N, LDA, NOUT, LDZ, LDWORK, INFO
  LOGICAL(8) :: SELECT
  LOGICAL(8), DIMENSION(:) :: WORK3
  REAL, DIMENSION(:) :: WR, WI, WORK
  REAL, DIMENSION(:,:) :: A, Z

C INTERFACE

#include <sunperf.h>

void sgees(char jobz, char sortev, logical(*select)(float,float), int n, float *a, int lda, int *nout, float *wr, float *wi, float *z, int ldz, int *info);

void sgees_64(char jobz, char sortev, logical(*select)(float,float), long n, float *a, long lda, long *nout, float *wr, float *wi, float *z, long ldz, long *info);


PURPOSE

sgees computes for an N-by-N real nonsymmetric matrix A, the eigenvalues, the real Schur form T, and, optionally, the matrix of Schur vectors Z. This gives the Schur factorization A = Z*T*(Z**T).

Optionally, it also orders the eigenvalues on the diagonal of the real Schur form so that selected eigenvalues are at the top left. The leading columns of Z then form an orthonormal basis for the invariant subspace corresponding to the selected eigenvalues.

A matrix is in real Schur form if it is upper quasi-triangular with 1-by-1 and 2-by-2 blocks. 2-by-2 blocks will be standardized in the form

        [  a  b  ]
        [  c  a  ]

where b*c < 0. The eigenvalues of such a block are a +- sqrt(bc).


ARGUMENTS