_BALANC(3F) _BALANC(3F)
BALANC, SBALANC - EISPACK routine. This subroutine balances a REAL
matrix and isolates eigenvalues whenever possible.
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)
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
PPPPaaaaggggeeee 1111 [ Back ]
|