cggbal(3)

NAME

CGGBAL - balance a pair of general complex matrices (A,B)

SYNOPSIS

SUBROUTINE CGGBAL( JOB, N,  A,  LDA,  B,  LDB,  ILO,  IHI,
LSCALE, RSCALE, WORK, INFO )
    CHARACTER      JOB
    INTEGER        IHI, ILO, INFO, LDA, LDB, N
    REAL           LSCALE( * ), RSCALE( * ), WORK( * )
    COMPLEX        A( LDA, * ), B( LDB, * )

PURPOSE

CGGBAL balances a pair of general complex 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': per
mute 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) COMPLEX array, dimension (LDA,N)
On entry, the input matrix A. On exit, A is over
written by the balanced matrix. If JOB = 'N', A is not refer
enced.
LDA (input) INTEGER
The leading dimension of the array A. LDA >=
max(1,N).
B (input/output) COMPLEX array, dimension (LDB,N)
On entry, the input matrix B. On exit, B is over
written by the balanced matrix. If JOB = 'N', B is not refer
enced.
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 RSCALE(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
Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout