CBAL(3F)
CBAL, SCBAL - EISPACK routine. This subroutine is a complex version of BALANCE.
As shipped in IRIX 6.5.19. Unchanged since IRIX 6.5.
NAME CBAL, SCBAL - EISPACK routine. This subroutine is a complex version of BALANCE. SYNOPSYS subroutine cbal(nm, n, ar, ai, low, igh, scale) integer nm, n, low, igh double precision ar(nm,n), ai(nm,n), scale(n) subroutine scbal(nm, n, ar, ai, low, igh, scale) integer nm, n, low, igh real ar(nm,n), ai(nm,n), scale(n) DESCRIPTION This subroutine balances a COMPLEX matrix and isolates eigenvalues whenever possible. 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. AR and AI contain the real and imaginary parts, respectively, of the complex matrix to be balanced. On OUTPUT AR and AI contain the real and imaginary parts, respectively, of the balanced matrix. LOW and IGH are two integers such that AR(I,J) and AI(I,J) are 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 CBALANCE appears in CBAL 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