CGGBAL(3)                  MathKeisan LAPACK routine                 CGGBAL(3)



NAME
       CGGBAL - a pair of general complex matrices (A,B)

SYNOPSIS
       SUBROUTINE CGGBAL( JOB,  N,  A,  LDA, B, LDB, ILO, IHI, LSCALE, RSCALE,
                          WORK, INFO )

           CHARACTER      JOB

           INTEGER        IHI, ILO, INFO, LDA, LDB, N

           REAL           LSCALE( * ), RSCALE( * ), WORK( * )

           COMPLEX        A( LDA, * ), B( LDB, * )

PURPOSE
       CGGBAL 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  ele-
       ments  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 accu-
       racy of the computed eigenvalues and/or eigenvectors in the generalized
       eigenvalue problem A*x = lambda*B*x.


ARGUMENTS
       JOB     (input) CHARACTER*1
               Specifies the operations to be performed on A and B:
               = 'N':  none:  simply set ILO = 1, IHI = N, LSCALE(I) = 1.0 and
               RSCALE(I) = 1.0 for i=1,...,N; = 'P':  permute only;
               = 'S':  scale only;
               = 'B':  both permute and scale.

       N       (input) INTEGER
               The order of the matrices A and B.  N >= 0.

       A       (input/output) COMPLEX array, dimension (LDA,N)
               On entry, the input matrix A.  On exit, A is overwritten by the
               balanced matrix.  If JOB = 'N', A is not referenced.

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

       B       (input/output) COMPLEX array, dimension (LDB,N)
               On entry, the input matrix B.  On exit, B is overwritten by the
               balanced matrix.  If JOB = 'N', B is not referenced.

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

       ILO     (output) INTEGER
               IHI     (output) INTEGER ILO and IHI are set to  integers  such
               that  on  exit  A(i,j)  =  0  and  B(i,j)  = 0 if i > j and j =
               1,...,ILO-1 or i = IHI+1,...,N.  If JOB = 'N' or 'S', ILO  =  1
               and IHI = N.

       LSCALE  (output) REAL array, dimension (N)
               Details  of the permutations and scaling factors applied to the
               left side of A and  B.   If  P(j)  is  the  index  of  the  row
               interchanged with row j, and D(j) is the scaling factor applied
               to row j, then LSCALE(j) = P(j)    for J = 1,...,ILO-1  =  D(j)
               for  J  = ILO,...,IHI = P(j)    for J = IHI+1,...,N.  The order
               in which the interchanges are made is N to  IHI+1,  then  1  to
               ILO-1.

       RSCALE  (output) REAL array, dimension (N)
               Details  of the permutations and scaling factors applied to the
               right side of A and B.  If P(j) is  the  index  of  the  column
               interchanged  with  column  j,  and  D(j) is the scaling factor
               applied  to  column  j,  then  RSCALE(j)  =  P(j)     for  J  =
               1,...,ILO-1  =  D(j)     for  J = ILO,...,IHI = P(j)    for J =
               IHI+1,...,N.  The order in which the interchanges are made is N
               to IHI+1, then 1 to ILO-1.

       WORK    (workspace) REAL array, dimension (lwork)
               lwork must be at least max(1,6*N) when JOB = 'S' or 'B', and at
               least 1 when JOB = 'N' or 'P'.

       INFO    (output) INTEGER
               = 0:  successful exit
               < 0:  if INFO = -i, the i-th argument had an illegal value.

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




 LAPACK routine (version 3.1)    November 2006                       CGGBAL(3)