sggbal(3)
NAME
SGGBAL - balance a pair of general real matrices (A,B)
SYNOPSIS
SUBROUTINE SGGBAL( JOB, N, A, LDA, B, LDB, ILO, IHI,
LSCALE, RSCALE, WORK, INFO )
CHARACTER JOB
INTEGER IHI, ILO, INFO, LDA, LDB, N
REAL A( LDA, * ), B( LDB, * ), LSCALE( * ),
RSCALE( * ), WORK( * )
PURPOSE
- SGGBAL balances a pair of general real matrices (A,B).
- This involves, first, permuting A and B by similarity transforma
- tions to isolate eigenvalues in the first 1 to ILO$-$1 and last
- IHI+1 to N elements on the diagonal; and second, applying a diag
- onal similarity transformation to rows and columns ILO to IHI to
- make the rows and columns as close in norm as possible. Both
- steps are optional.
- Balancing may reduce the 1-norm of the matrices, and im
- prove the accuracy of the computed eigenvalues and/or eigenvec
- tors in the generalized eigenvalue problem A*x = lambda*B*x.
ARGUMENTS
- JOB (input) CHARACTER*1
- Specifies the operations to be performed on A and
- B:
= 'N': none: simply set ILO = 1, IHI = N, - LSCALE(I) = 1.0 and RSCALE(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 matrices A and B. 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.
- LDA (input) INTEGER
- The leading dimension of the array A. LDA >=
- max(1,N).
- B (input/output) REAL array, dimension (LDB,N)
- On entry, the input matrix B. On exit, B is
- overwritten by the balanced matrix. If JOB = 'N', B is not ref
- erenced.
- LDB (input) INTEGER
- The leading dimension of the array B. LDB >=
- max(1,N).
- ILO (output) INTEGER
- IHI (output) INTEGER ILO and IHI are set to
- integers such that on exit A(i,j) = 0 and B(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.
- LSCALE (output) REAL array, dimension (N)
- Details of the permutations and scaling factors
- applied to the left side of A and B. If P(j) is the index of the
- row interchanged with row j, and D(j) is the scaling factor ap
- plied to row j, then LSCALE(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.
- RSCALE (output) REAL array, dimension (N)
- Details of the permutations and scaling factors
- applied to the right side of A and B. If P(j) is the index of
- the column interchanged with column j, and D(j) is the scaling
- factor applied to column j, then LSCALE(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.
- WORK (workspace) REAL array, dimension (6*N)
- INFO (output) INTEGER
- = 0: successful exit
< 0: if INFO = -i, the i-th argument had an ille - gal value.
FURTHER DETAILS
- See R.C. WARD, Balancing the generalized eigenvalue prob
- lem,
- SIAM J. Sci. Stat. Comp. 2 (1981), 141-152.
- LAPACK version 3.0 15 June 2000