sgebal(3)
NAME
SGEBAL - balance a general real matrix A
SYNOPSIS
SUBROUTINE SGEBAL( JOB, N, A, LDA, ILO, IHI, SCALE, INFO )
CHARACTER JOB
INTEGER IHI, ILO, INFO, LDA, N
REAL A( LDA, * ), SCALE( * )
PURPOSE
- SGEBAL balances a general real matrix A. This involves,
- first, permuting A by a similarity transformation to isolate
- eigenvalues in the first 1 to ILO-1 and last IHI+1 to N elements
- 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 option
- al.
- Balancing may reduce the 1-norm of the matrix, and improve
- the accuracy of the computed eigenvalues and/or eigenvectors.
ARGUMENTS
- JOB (input) CHARACTER*1
- Specifies the operations to be performed on A:
= 'N': none: simply set ILO = 1, IHI = N, - SCALE(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 matrix A. N >= 0.
- A (input/output) REAL 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 ref
- erenced. See Further Details. LDA (input) INTEGER The lead
- ing dimension of the array A. LDA >= max(1,N).
- ILO (output) INTEGER
- IHI (output) INTEGER ILO and IHI are set to
- integers such that on exit A(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.
- SCALE (output) REAL array, dimension (N)
- Details of the permutations and scaling factors
- applied to A. If P(j) is the index of the row and column inter
- changed with row and column j and D(j) is the scaling factor ap
- plied to row and column j, then SCALE(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.
- INFO (output) INTEGER
- = 0: successful exit.
< 0: if INFO = -i, the i-th argument had an ille - gal value.
FURTHER DETAILS
- The permutations consist of row and column interchanges
- which put the matrix in the form
( T1 X Y )- P A P = ( 0 B Z )
- ( 0 0 T2 )
- where T1 and T2 are upper triangular matrices whose eigen
- values lie along the diagonal. The column indices ILO and IHI
- mark the starting and ending columns of the submatrix B. Balanc
- ing consists of applying a diagonal similarity transformation
- inv(D) * B * D to make the 1-norms of each row of B and its cor
- responding column nearly equal. The output matrix is
( T1 X*D Y )
( 0 inv(D)*B*D inv(D)*Z ).
( 0 0 T2 )- Information about the permutations P and the diagonal ma
- trix D is returned in the vector SCALE.
- This subroutine is based on the EISPACK routine BALANC.
- Modified by Tzu-Yi Chen, Computer Science Division, Uni
- versity of
- California at Berkeley, USA
- LAPACK version 3.0 15 June 2000