## SB04RX

### Solving a system of equations in quasi-Hessenberg form with two right-hand sides

[Specification] [Arguments] [Method] [References] [Comments] [Example]

Purpose

      To solve a system of equations in quasi-Hessenberg form
      (Hessenberg form plus two consecutive offdiagonals) with two
      right-hand sides.

Specification

          SUBROUTINE SB04RX( RC, UL, M, A, LDA, LAMBD1, LAMBD2, LAMBD3,
         $                   LAMBD4, D, TOL, IWORK, DWORK, LDDWOR, INFO )
    C     .. Scalar Arguments ..
          CHARACTER         RC, UL
          INTEGER           INFO, LDA, LDDWOR, M
          DOUBLE PRECISION  LAMBD1, LAMBD2, LAMBD3, LAMBD4, TOL
    C     .. Array Arguments ..
          INTEGER           IWORK(*)
          DOUBLE PRECISION  A(LDA,*), D(*), DWORK(LDDWOR,*)

Arguments

Mode Parameters

      RC      CHARACTER*1
              Indicates processing by columns or rows, as follows:
              = 'R':  Row transformations are applied;
              = 'C':  Column transformations are applied.

      UL      CHARACTER*1
              Indicates whether A is upper or lower Hessenberg matrix,
              as follows:
              = 'U':  A is upper Hessenberg;
              = 'L':  A is lower Hessenberg.

Input/Output Parameters

      M       (input) INTEGER
              The order of the matrix A.  M >= 0.

      A       (input) DOUBLE PRECISION array, dimension (LDA,M)
              The leading M-by-M part of this array must contain a
              matrix A in Hessenberg form.

      LDA     INTEGER
              The leading dimension of array A.  LDA >= MAX(1,M).

      LAMBD1, (input) DOUBLE PRECISION
      LAMBD2, These variables must contain the 2-by-2 block to be
      LAMBD3, multiplied to the elements of A.
      LAMBD4

      D       (input/output) DOUBLE PRECISION array, dimension (2*M)
              On entry, this array must contain the two right-hand
              side vectors of the quasi-Hessenberg system, stored
              row-wise.
              On exit, if INFO = 0, this array contains the two solution
              vectors of the quasi-Hessenberg system, stored row-wise.

Tolerances

      TOL     DOUBLE PRECISION
              The tolerance to be used to test for near singularity of
              the triangular factor R of the quasi-Hessenberg matrix.
              A matrix whose estimated condition number is less
              than 1/TOL is considered to be nonsingular.

Workspace

      IWORK   INTEGER array, dimension (2*M)

      DWORK   DOUBLE PRECISION array, dimension (LDDWOR,2*M+3)
              The leading 2*M-by-2*M part of this array is used for
              computing the triangular factor of the QR decomposition
              of the quasi-Hessenberg matrix. The remaining 6*M elements
              are used as workspace for the computation of the
              reciprocal condition estimate.

      LDDWOR  INTEGER
              The leading dimension of array DWORK.
              LDDWOR >= MAX(1,2*M).

Error Indicator

      INFO    INTEGER
              = 0:  successful exit;
              = 1:  if the quasi-Hessenberg matrix is (numerically)
                    singular. That is, its estimated reciprocal
                    condition number is less than or equal to TOL.

Numerical Aspects

      None.

Further Comments

      None

Example

Program Text

      None

Program Data

      None

Program Results

      None

Return to Supporting Routines index