DLAGTS  - may be used to solve one of the systems of equa­
       tions  (T - lambda*I)*x = y or (T - lambda*I)'*x = y,


SYNOPSIS

       SUBROUTINE DLAGTS( JOB, N, A, B, C, D, IN, Y, TOL, INFO )

           INTEGER        INFO, JOB, N

           DOUBLE         PRECISION TOL

           INTEGER        IN( * )

           DOUBLE         PRECISION A( * ), B( * ), C( * ), D(  *
                          ), Y( * )


PURPOSE

       DLAGTS  may  be  used to solve one of the systems of equa­
       tions (T - lambda*I)*x = y or (T - lambda*I)'*x = y, where
       T  is  an  n by n tridiagonal matrix, for x, following the
       factorization of (T - lambda*I) as

          (T - lambda*I) = P*L*U ,

       by routine DLAGTF. The choice of equation to be solved  is
       controlled  by the argument JOB, and in each case there is
       an option to perturb zero or very small diagonal  elements
       of  U,  this option being intended for use in applications
       such as inverse iteration.


ARGUMENTS

       JOB     (input) INTEGER
               Specifies the job to be  performed  by  DLAGTS  as
               follows:
               =   1:  The equations  (T - lambda*I)x = y  are to
               be solved, but diagonal elements of U are  not  to
               be   perturbed.    =   -1:  The  equations   (T  -
               lambda*I)x = y  are to be solved and, if  overflow
               would  otherwise occur, the diagonal elements of U
               are to be perturbed. See argument  TOL  below.   =
               2:  The equations  (T - lambda*I)'x = y  are to be
               solved, but diagonal elements of U are not  to  be
               perturbed.   = -2: The equations  (T - lambda*I)'x
               = y  are to be solved and, if overflow would  oth­
               erwise occur, the diagonal elements of U are to be
               perturbed. See argument TOL below.

       N       (input) INTEGER
               The order of the matrix T.

       A       (input) DOUBLE PRECISION array, dimension (N)
               On entry, A must contain the diagonal elements  of
               U as returned from DLAGTF.

               On  entry, B must contain the first super-diagonal
               elements of U as returned from DLAGTF.

       C       (input) DOUBLE PRECISION array, dimension (N-1)
               On entry, C must contain the sub-diagonal elements
               of L as returned from DLAGTF.

       D       (input) DOUBLE PRECISION array, dimension (N-2)
               On entry, D must contain the second super-diagonal
               elements of U as returned from DLAGTF.

       IN      (input) INTEGER array, dimension (N)
               On entry, IN must contain details of the matrix  P
               as returned from DLAGTF.

       Y       (input/output) DOUBLE PRECISION array, dimension
               (N)
               On entry, the right hand side vector y.  On  exit,
               Y is overwritten by the solution vector x.

       TOL     (input/output) DOUBLE PRECISION
               On entry, with  JOB .lt. 0, TOL should be the min­
               imum perturbation to be made to very small  diago­
               nal  elements of U.  TOL should normally be chosen
               as about eps*norm(U), where eps  is  the  relative
               machine  precision, but if TOL is supplied as non-
               positive, then it is reset to eps*max( abs( u(i,j)
               )  ).  If  JOB .gt. 0  then TOL is not referenced.

               On exit, TOL is changed as described  above,  only
               if  TOL is non-positive on entry. Otherwise TOL is
               unchanged.

       INFO    (output) INTEGER
               = 0   : successful exit
               element of the solution vector x.  This  can  only
               occur  when JOB is supplied as positive and either
               means that a diagonal element of U is very  small,
               or that the elements of the right-hand side vector
               y are very large.


Man(1) output converted with man2html