SLALN2(3)      LAPACK routine of NEC Numeric Library Collection      SLALN2(3)



NAME
       SLALN2  - a system of the form (ca A - w D ) X = s B or (ca A' - w D) X
       = s B with possible scaling ("s") and perturbation of A

SYNOPSIS
       SUBROUTINE SLALN2( LTRANS, NA, NW, SMIN, CA, A, LDA, D1,  D2,  B,  LDB,
                          WR, WI, X, LDX, SCALE, XNORM, INFO )


       PURPOSE
              SLALN2 solves a system of the form  (ca A - w D ) X = s B or (ca
              A' - w D) X = s B   with possible scaling ("s") and perturbation
              of A.  (A' means A-transpose.)

              A  is  an NA x NA real matrix, ca is a real scalar, D is an NA x
              NA real diagonal matrix, w is a real or complex value, and X and
              B are NA x 1 matrices -- real if w is real, complex if w is com-
              plex.  NA may be 1 or 2.

              If w is complex, X and B are represented as NA x 2 matrices, the
              first  column  of  each being the real part and the second being
              the imaginary part.

              "s" is a scaling factor (.LE. 1), computed by SLALN2,  which  is
              so chosen that X can be computed without overflow.  X is further
              scaled if necessary to assure that norm(ca A - w  D)*norm(X)  is
              less than overflow.

              If  both  singular  values  of  (ca A - w D) are less than SMIN,
              SMIN*identity will be used instead of (ca A - w D).  If only one
              singular  value  is  less than SMIN, one element of (ca A - w D)
              will be perturbed enough to make  the  smallest  singular  value
              roughly  SMIN.  If both singular values are at least SMIN, (ca A
              - w D) will not be perturbed.  In  any  case,  the  perturbation
              will  be at most some small multiple of max( SMIN, ulp*norm(ca A
              - w D) ).  The singular values  are  computed  by  infinity-norm
              approximations,  and  thus will only be correct to a factor of 2
              or so.

              Note: all input quantities are assumed to be smaller than  over-
              flow by a reasonable factor.  (See BIGNUM.)


ARGUMENTS
       LTRANS  (input) LOGICAL
               =.TRUE.:  A-transpose will be used.
               =.FALSE.: A will be used (not transposed.)

       NA      (input) INTEGER
               The size of the matrix A.  It may (only) be 1 or 2.

       NW      (input) INTEGER
               1  if "w" is real, 2 if "w" is complex.  It may only be 1 or 2.

       SMIN    (input) REAL
               The desired lower bound on the  singular  values  of  A.   This
               should be a safe distance away from underflow or overflow, say,
               between (underflow/machine precision) and  (machine precision *
               overflow ).  (See BIGNUM and ULP.)

       CA      (input) REAL
               The coefficient c, which A is multiplied by.

       A       (input) REAL array, dimension (LDA,NA)
               The NA x NA matrix A.

       LDA     (input) INTEGER
               The leading dimension of A.  It must be at least NA.

       D1      (input) REAL
               The 1,1 element in the diagonal matrix D.

       D2      (input) REAL
               The 2,2 element in the diagonal matrix D.  Not used if NW=1.

       B       (input) REAL array, dimension (LDB,NW)
               The  NA  x NW matrix B (right-hand side).  If NW=2 ("w" is com-
               plex), column 1 contains the real part of B and column  2  con-
               tains the imaginary part.

       LDB     (input) INTEGER
               The leading dimension of B.  It must be at least NA.

       WR      (input) REAL
               The real part of the scalar "w".

       WI      (input) REAL
               The imaginary part of the scalar "w".  Not used if NW=1.

       X       (output) REAL array, dimension (LDX,NW)
               The  NA  x  NW  matrix X (unknowns), as computed by SLALN2.  If
               NW=2 ("w" is complex), on exit, column 1 will contain the  real
               part of X and column 2 will contain the imaginary part.

       LDX     (input) INTEGER
               The leading dimension of X.  It must be at least NA.

       SCALE   (output) REAL
               The  scale  factor  that B must be multiplied by to insure that
               overflow does not occur when computing X.  Thus, (ca A - w D) X
               will  be SCALE*B, not B (ignoring perturbations of A.)  It will
               be at most 1.

       XNORM   (output) REAL
               The infinity-norm of X, when X is regarded as an NA x  NW  real
               matrix.

       INFO    (output) INTEGER
               An  error  flag.   It will be set to zero if no error occurs, a
               negative number if an argument is in error, or a positive  num-
               ber  if   ca A - w D  had to be perturbed.  The possible values
               are:
               = 0: No error occurred, and (ca A - w D) did  not  have  to  be
               perturbed.   =  1: (ca A - w D) had to be perturbed to make its
               smallest (or only) singular value greater than SMIN.  NOTE:  In
               the  interests of speed, this routine does not check the inputs
               for errors.



LAPACK routine                  31 October 2017                      SLALN2(3)