SB04NX - SLICOT Library Routine Documentation

## SB04NX

### Solving a system of equations in Hessenberg form with two consecutive offdiagonals and two right-hand sides

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

Purpose

      To solve a system of equations in Hessenberg form with two
      consecutive offdiagonals and two right-hand sides.

Specification

          SUBROUTINE SB04NX( 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 AB is upper or lower Hessenberg matrix,
              as follows:
              = 'U':  AB is upper Hessenberg;
              = 'L':  AB 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 added
      LAMBD3, to the diagonal blocks 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 Hessenberg system, stored row-wise.
              On exit, if INFO = 0, this array contains the two solution
              vectors of the 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 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 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 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