NAME

zggbal - balance a pair of general complex matrices (A,B)


SYNOPSIS

  SUBROUTINE ZGGBAL( JOB, N, A, LDA, B, LDB, ILO, IHI, LSCALE, RSCALE, 
 *      WORK, INFO)
  CHARACTER * 1 JOB
  DOUBLE COMPLEX A(LDA,*), B(LDB,*)
  INTEGER N, LDA, LDB, ILO, IHI, INFO
  DOUBLE PRECISION LSCALE(*), RSCALE(*), WORK(*)
  SUBROUTINE ZGGBAL_64( JOB, N, A, LDA, B, LDB, ILO, IHI, LSCALE, 
 *      RSCALE, WORK, INFO)
  CHARACTER * 1 JOB
  DOUBLE COMPLEX A(LDA,*), B(LDB,*)
  INTEGER*8 N, LDA, LDB, ILO, IHI, INFO
  DOUBLE PRECISION LSCALE(*), RSCALE(*), WORK(*)

F95 INTERFACE

  SUBROUTINE GGBAL( JOB, [N], A, [LDA], B, [LDB], ILO, IHI, LSCALE, 
 *       RSCALE, [WORK], [INFO])
  CHARACTER(LEN=1) :: JOB
  COMPLEX(8), DIMENSION(:,:) :: A, B
  INTEGER :: N, LDA, LDB, ILO, IHI, INFO
  REAL(8), DIMENSION(:) :: LSCALE, RSCALE, WORK
  SUBROUTINE GGBAL_64( JOB, [N], A, [LDA], B, [LDB], ILO, IHI, LSCALE, 
 *       RSCALE, [WORK], [INFO])
  CHARACTER(LEN=1) :: JOB
  COMPLEX(8), DIMENSION(:,:) :: A, B
  INTEGER(8) :: N, LDA, LDB, ILO, IHI, INFO
  REAL(8), DIMENSION(:) :: LSCALE, RSCALE, WORK

C INTERFACE

#include <sunperf.h>

void zggbal(char job, int n, doublecomplex *a, int lda, doublecomplex *b, int ldb, int *ilo, int *ihi, double *lscale, double *rscale, int *info);

void zggbal_64(char job, long n, doublecomplex *a, long lda, doublecomplex *b, long ldb, long *ilo, long *ihi, double *lscale, double *rscale, long *info);


PURPOSE

zggbal balances a pair of general complex matrices (A,B). This involves, first, permuting A and B by similarity transformations to isolate eigenvalues in the first 1 to ILO$-$1 and last IHI+1 to N elements on the diagonal; and second, applying a diagonal similarity transformation to rows and columns ILO to IHI to make the rows and columns as close in norm as possible. Both steps are optional.

Balancing may reduce the 1-norm of the matrices, and improve the accuracy of the computed eigenvalues and/or eigenvectors in the generalized eigenvalue problem A*x = lambda*B*x.


ARGUMENTS


FURTHER DETAILS

See R.C. WARD, Balancing the generalized eigenvalue problem, SIAM J. Sci. Stat. Comp. 2 (1981), 141-152.