SLAGTS  - 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 SLAGTS( JOB, N, A, B, C, D, IN, Y, TOL, INFO )

           INTEGER        INFO, JOB, N

           REAL           TOL

           INTEGER        IN( * )

           REAL           A( * ), B( * ), C( * ), D( * ), Y( * )


PURPOSE

       SLAGTS 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 SLAGTF. 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 SLAGTS 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) REAL array, dimension (N)
               On  entry, A must contain the diagonal elements of
               U as returned from SLAGTF.

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

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

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

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

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

       TOL     (input/output) REAL
               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