DLATDF  -  use the LU factorization of the n-by-n matrix Z
       computed by DGETC2 and  computes  a  contribution  to  the
       reciprocal  Dif-estimate  by  solving Z * x = b for x, and
       choosing the r.h.s


SYNOPSIS

       SUBROUTINE DLATDF( IJOB, N, Z, LDZ,  RHS,  RDSUM,  RDSCAL,
                          IPIV, JPIV )

           INTEGER        IJOB, LDZ, N

           DOUBLE         PRECISION RDSCAL, RDSUM

           INTEGER        IPIV( * ), JPIV( * )

           DOUBLE         PRECISION RHS( * ), Z( LDZ, * )


PURPOSE

       DLATDF  uses  the  LU factorization of the n-by-n matrix Z
       computed by DGETC2 and  computes  a  contribution  to  the
       reciprocal  Dif-estimate  by  solving Z * x = b for x, and
       choosing the r.h.s. b such that the norm of x is as  large
       as  possible. On entry RHS = b holds the contribution from
       earlier solved sub-systems, and on return RHS = x.

       The factorization of Z returned by DGETC2 has the form Z =
       P*L*U*Q,  where  P  and  Q  are permutation matrices. L is
       lower triangular with unit  diagonal  elements  and  U  is
       upper triangular.


ARGUMENTS

       IJOB    (input) INTEGER
               IJOB = 2: First compute an approximative null-vec­
               tor e of Z using DGECON, e is normalized and solve
               for  Zx = +-e - f with the sign giving the greater
               value of 2-norm(x). About 5 times as expensive  as
               Default.   IJOB  .ne. 2: Local look ahead strategy
               where all entries of the r.h.s. b  is  choosen  as
               either +1 or -1 (Default).

       N       (input) INTEGER
               The number of columns of the matrix Z.

       Z       (input) DOUBLE PRECISION array, dimension (LDZ, N)
               On entry, the LU part of the factorization of  the
               n-by-n matrix Z computed by DGETC2:  Z = P * L * U
               * Q

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

               N.
               On entry, RHS contains  contributions  from  other
               subsystems.  On exit, RHS contains the solution of
               the subsystem with entries acoording to the  value
               of IJOB (see above).

       RDSUM   (input/output) DOUBLE PRECISION
               On entry, the sum of squares of computed contribu­
               tions to the  Dif-estimate  under  computation  by
               DTGSYL,  where  the  scaling  factor  RDSCAL  (see
               below) has been factored out.  On exit, the corre­
               sponding sum of squares updated with the contribu­
               tions from the current sub-system.  If TRANS = 'T'
               RDSUM  is  not  touched.   NOTE:  RDSUM only makes
               sense when DTGSY2 is called by STGSYL.

       RDSCAL  (input/output) DOUBLE PRECISION
               On entry, scaling factor used to prevent  overflow
               in  RDSUM.   On exit, RDSCAL is updated w.r.t. the
               current contributions in RDSUM.  If TRANS  =  'T',
               RDSCAL  is  not  touched.  NOTE: RDSCAL only makes
               sense when DTGSY2 is called by DTGSYL.

       IPIV    (input) INTEGER array, dimension (N).
               The pivot indices; for 1 <= i <= N, row i  of  the
               matrix has been interchanged with row IPIV(i).

       JPIV    (input) INTEGER array, dimension (N).
               The  pivot  indices;  for 1 <= j <= N, column j of
               the  matrix  has  been  interchanged  with  column
               JPIV(j).


FURTHER DETAILS

       Based on contributions by
          Bo  Kagstrom and Peter Poromaa, Department of Computing
       Science,
          Umea University, S-901 87 Umea, Sweden.

       This routine is  a  further  developed  implementation  of
       algorithm  BSOLVE in [1] using complete pivoting in the LU
       factorization.

       [1] Bo Kagstrom and Lars Westin,
           Generalized Schur Methods  with  Condition  Estimators
       for
           Solving   the  Generalized  Sylvester  Equation,  IEEE
       Transactions
           on Automatic Control, Vol. 34, No. 7,  July  1989,  pp
       745-751.

       [2] Peter Poromaa,
           On Efficient and Robust Estimators for the Separation
           between two Regular Matrix Pairs with Applications in

       of
           Computing Science, Umea  University,  S-901  87  Umea,
       Sweden, 1995.


Man(1) output converted with man2html