Previous: dggbak Up: ../lapack-d.html Next: dggglm


dggbal


 NAME
      DGGBAL - balance a pair of general real matrices (A,B) for
      the generalized eigenvalue problem A*X = lambda*B*X

 SYNOPSIS
      SUBROUTINE DGGBAL( JOB, N, A, LDA, B, LDB, ILO, IHI, LSCALE,
                         RSCALE, WORK, INFO )

          CHARACTER      JOB

          INTEGER        IHI, ILO, INFO, LDA, LDB, N

          DOUBLE         PRECISION A( LDA, * ), B( LDB, * ),
                         LSCALE( * ), RSCALE( * ), WORK( * )

 PURPOSE
      DGGBAL balances a pair of general real matrices (A,B) for
      the generalized eigenvalue problem A*X = lambda*B*X.  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, apply-
      ing 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 eigenvec-
      tors.

 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) DOUBLE PRECISION 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     (input) INTEGER
              The leading dimension of the array A. LDA >=
              max(1,N).

      B       (input/output) DOUBLE PRECISION 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     (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) DOUBLE PRECISION array, dimension (N)
              Details about the permutations and scaling factors
              applied to the left side of A and B.  If P(j) is the
              index of the row and column interchanged with row
              and column j, and D(j) is the scaling factor applied
              to row and 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 inter-
              changes are made is N to IHI+1, then 1 to ILO-1.

      RSCALE  (output) DOUBLE PRECISION array, dimension (N)
              Details about the permutations and scaling factors
              applied to the right side of A and B.  If P(j) is
              the index of the row and column interchanged with
              row and column j, and D(j) is the scaling factor
              applied to row and 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) DOUBLE PRECISION array, dimension (6*N)

      INFO    (output) INTEGER
              = 0:  successful exit.
              < 0:  if INFO = -i, the i-th argument had an illegal
              value.

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