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