BALANC(3F)

BALANC, SBALANC - EISPACK routine. This subroutine balances a REAL matrix and isolates eigenvalues whenever possible.

As shipped in IRIX 6.5.15. Unchanged since IRIX 6.5.

NAME
     BALANC, SBALANC  -  EISPACK routine.  This subroutine balances a REAL
     matrix and isolates eigenvalues whenever possible.


SYNOPSYS
          subroutine  balanc(nm, n, a, low, igh, scale)
             integer          nm, n, a, low, igh
             double precision a(nm,n), scale(n)

          subroutine sbalanc(nm, n, a, low, igh, scale)
             integer          nm, n, a, low, igh
             real             a(nm,n), scale(n)



DESCRIPTION
     On INPUT

     NM must be set to the row dimension of two-dimensional array parameters
     as declared in the calling program dimension statement.

     N is the order of the matrix.

     A contains the input matrix to be balanced. On OUTPUT

     A contains the balanced matrix.

     LOW and IGH are two integers such that A(I,J) is equal to zero if
        (1) I is greater than J and
        (2) J=1,...,LOW-1 or I=IGH+1,...,N.

     SCALE contains information determining the
        permutations and scaling factors used.  Suppose that the principal
     submatrix in rows LOW through IGH has been balanced, that P(J) denotes
     the index interchanged with J during the permutation step, and that the
     elements of the diagonal matrix used are denoted by D(I,J).  Then

     SCALE (J) = P(J),    for J = 1,...,LOW-1
        = D(J,J),      J = LOW,...,IGH
        = P(J)         J = IGH+1,...,N.  The order in which the interchanges
     are made is N to IGH+1, then 1 TO LOW-1.  Note that 1 is returned for IGH
     if IGH is zero formally.  The ALGOL procedure EXC contained in BALANCE
     appears in

     BALANC in line.  (Note that the ALGOL roles of identifiers K,L have been
     reversed.)  Questions and comments should be directed to B. S. Garbow,
     Applied Mathematics Division, ARGONNE NATIONAL LABORATORY