SRC/zggbal.f(3)

NAME
SRC/zggbal.f

SYNOPSIS

  Functions/Subroutines
subroutine zggbal (job, n, a, lda, b, ldb, ilo, ihi, lscale, rscale, work, info)
ZGGBAL

Function/Subroutine Documentation

  subroutine zggbal (character job, integer n, complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension( ldb, * ) b, integer ldb, integer ilo, integer ihi, double precision, dimension( * ) lscale, double precision, dimension( * ) rscale, double precision, dimension( * ) work, integer info)

ZGGBAL

Purpose:

    !>
    !> ZGGBAL balances a pair of general complex matrices (A,B).  This
    !> involves, first, permuting A and B by similarity transformations 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 optional.
    !>
    !> Balancing may reduce the 1-norm of the matrices, and improve the
    !> accuracy of the computed eigenvalues and/or eigenvectors in the
    !> generalized eigenvalue problem A*x = lambda*B*x.
    !>

Parameters
    JOB

    !>          JOB is 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

    !>          N is INTEGER
    !>          The order of the matrices A and B.  N >= 0.
    !>

    A

    !>          A is COMPLEX*16 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 referenced.
    !>

    LDA

    !>          LDA is INTEGER
    !>          The leading dimension of the array A. LDA >= max(1,N).
    !>

    B

    !>          B is COMPLEX*16 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 referenced.
    !>

    LDB

    !>          LDB is INTEGER
    !>          The leading dimension of the array B. LDB >= max(1,N).
    !>

    ILO

    !>          ILO is INTEGER
    !>

    IHI

    !>          IHI is 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

    !>          LSCALE is DOUBLE PRECISION 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
    !>          applied 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

    !>          RSCALE is DOUBLE PRECISION 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

    !>          WORK is DOUBLE PRECISION array, dimension (lwork)
    !>          lwork must be at least max(1,6*N) when JOB = 'S' or 'B', and
    !>          at least 1 when JOB = 'N' or 'P'.
    !>

    INFO

    !>          INFO is INTEGER
    !>          = 0:  successful exit
    !>          < 0:  if INFO = -i, the i-th argument had an illegal value.
    !>

Author
    Univ. of Tennessee

    Univ. of California Berkeley

    Univ. of Colorado Denver

    NAG Ltd.

Further Details:

    !>
    !>  See R.C. WARD, Balancing the generalized eigenvalue problem,
    !>                 SIAM J. Sci. Stat. Comp. 2 (1981), 141-152.
    !>

Definition at line 175 of file zggbal.f.

Author

Generated automatically by Doxygen for LAPACK from the source code.