## MB05OY

### Restoring a matrix after balancing transformations (permutations and scalings)

[Specification] [Arguments] [Method] [References] [Comments] [Example]

Purpose

      To restore a matrix after it has been transformed by applying
      balancing transformations (permutations and scalings), as
      determined by LAPACK Library routine DGEBAL.

Specification

          SUBROUTINE MB05OY( JOB, N, LOW, IGH, A, LDA, SCALE, INFO )
    C     .. Scalar Arguments ..
          CHARACTER         JOB
          INTEGER           IGH, INFO, LDA, LOW, N
    C     .. Array Arguments ..
          DOUBLE PRECISION  A(LDA,*), SCALE(*)

Arguments

Mode Parameters

      JOB     CHARACTER*1
              Specifies the type of backward transformation required,
              as follows:
              = 'N', do nothing, return immediately;
              = 'P', do backward transformation for permutation only;
              = 'S', do backward transformation for scaling only;
              = 'B', do backward transformations for both permutation
                     and scaling.
              JOB must be the same as the argument JOB supplied
              to DGEBAL.

Input/Output Parameters

      N       (input) INTEGER
              The order of the matrix A.  N >= 0.

      LOW     (input) INTEGER
      IGH     (input) INTEGER
              The integers LOW and IGH determined by DGEBAL.
              1 <= LOW <= IGH <= N, if N > 0; LOW=1 and IGH=0, if N=0.

      A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
              On entry, the leading N-by-N part of this array must
              contain the matrix to be back-transformed.
              On exit, the leading N-by-N part of this array contains
              the transformed matrix.

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

      SCALE   (input) DOUBLE PRECISION array, dimension (N)
              Details of the permutation and scaling factors, as
              returned by DGEBAL.

Error Indicator

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

Method

      Let P be a permutation matrix, and D a diagonal matrix of scaling
      factors, both of order N. The routine computes
                      -1
         A <-- P D A D  P'.

      where the permutation and scaling factors are encoded in the
      array SCALE.

References

      None.

Numerical Aspects

                                2
      The algorithm requires O(N ) operations.

Further Comments

      None

Example

Program Text

      None

Program Data

      None

Program Results

      None

Return to Supporting Routines index