slaln2(3)
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 pertur
- bation 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 pertur
- bation of A. (A' means A-transpose.) A is an NA x NA real ma
- trix, 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 matri
- ces, 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 on
- ly 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 approxima
- tions, 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 on
- ly 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 over
- flow, 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 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 posi
- tive 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.
- LAPACK version 3.0 15 June 2000