Previous: slaic1 Up: ../lapack-s.html Next: slamch


slaln2


 NAME
      SLALN2 - solve 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 per-
      turbation of A

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

          LOGICAL        LTRANS

          INTEGER        INFO, LDA, LDB, LDX, NA, NW

          REAL           CA, D1, D2, SCALE, SMIN, WI, WR, XNORM

          REAL           A( LDA, * ), B( LDB, * ), X( LDX, * )

 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 per-
      turbation 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 complex.  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 com-
      puted 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
      overflow 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 preci-
              sion) 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 entry in the diagonal matrix D.

      D2      (input) REAL
              The 2,2 entry 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 complex), column 1 contains the real part of
              B and column 2 contains 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 number 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.