Purpose
  To solve for the N1-by-N2 matrix X, 1 <= N1,N2 <= 2, in
         op(TL)*X*op(TR) + ISGN*X = SCALE*B,
  where TL is N1-by-N1, TR is N2-by-N2, B is N1-by-N2, and ISGN = 1
  or -1.  op(T) = T or T', where T' denotes the transpose of T.
Specification
      SUBROUTINE SB04PX( LTRANL, LTRANR, ISGN, N1, N2, TL, LDTL, TR,
     $                   LDTR, B, LDB, SCALE, X, LDX, XNORM, INFO )
C     .. Scalar Arguments ..
      LOGICAL            LTRANL, LTRANR
      INTEGER            INFO, ISGN, LDB, LDTL, LDTR, LDX, N1, N2
      DOUBLE PRECISION   SCALE, XNORM
C     .. Array Arguments ..
      DOUBLE PRECISION   B( LDB, * ), TL( LDTL, * ), TR( LDTR, * ),
     $                   X( LDX, * )
Arguments
Mode Parameters
  LTRANL  LOGICAL
          Specifies the form of op(TL) to be used, as follows:
          = .FALSE.:  op(TL) = TL,
          = .TRUE. :  op(TL) = TL'.
  LTRANR  LOGICAL
          Specifies the form of op(TR) to be used, as follows:
          = .FALSE.:  op(TR) = TR,
          = .TRUE. :  op(TR) = TR'.
  ISGN    INTEGER
          Specifies the sign of the equation as described before.
          ISGN may only be 1 or -1.
Input/Output Parameters
  N1      (input) INTEGER
          The order of matrix TL.  N1 may only be 0, 1 or 2.
  N2      (input) INTEGER
          The order of matrix TR.  N2 may only be 0, 1 or 2.
  TL      (input) DOUBLE PRECISION array, dimension (LDTL,N1)
          The leading N1-by-N1 part of this array must contain the
          matrix TL.
  LDTL    INTEGER
          The leading dimension of array TL.  LDTL >= MAX(1,N1).
  TR      (input) DOUBLE PRECISION array, dimension (LDTR,N2)
          The leading N2-by-N2 part of this array must contain the
          matrix TR.
  LDTR    INTEGER
          The leading dimension of array TR.  LDTR >= MAX(1,N2).
  B       (input) DOUBLE PRECISION array, dimension (LDB,N2)
          The leading N1-by-N2 part of this array must contain the
          right-hand side of the equation.
  LDB     INTEGER
          The leading dimension of array B.  LDB >= MAX(1,N1).
  SCALE   (output) DOUBLE PRECISION
          The scale factor. SCALE is chosen less than or equal to 1
          to prevent the solution overflowing.
  X       (output) DOUBLE PRECISION array, dimension (LDX,N2)
          The leading N1-by-N2 part of this array contains the
          solution of the equation.
          Note that X may be identified with B in the calling
          statement.
  LDX     INTEGER
          The leading dimension of array X.  LDX >= MAX(1,N1).
  XNORM   (output) DOUBLE PRECISION
          The infinity-norm of the solution.
Error Indicator
  INFO    INTEGER
          = 0:  successful exit;
          = 1:  if TL and -ISGN*TR have almost reciprocal
                eigenvalues, so TL or TR is perturbed to get a
                nonsingular equation.
          NOTE: In the interests of speed, this routine does not
                check the inputs for errors.
Method
The equivalent linear algebraic system of equations is formed and solved using Gaussian elimination with complete pivoting.References
  [1] Anderson, E., Bai, Z., Bischof, C., Demmel, J., Dongarra, J.,
      Du Croz, J., Greenbaum, A., Hammarling, S., McKenney, A.,
      Ostrouchov, S., and Sorensen, D.
      LAPACK Users' Guide: Second Edition.
      SIAM, Philadelphia, 1995.
Numerical Aspects
The algorithm is stable and reliable, since Gaussian elimination with complete pivoting is used.Further Comments
NoneExample
Program Text
NoneProgram Data
NoneProgram Results
None