## SB04NY

### Solving a system of equations in Hessenberg form with one offdiagonal and one right-hand side

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

Purpose

      To solve a system of equations in Hessenberg form with one
      offdiagonal and one right-hand side.

Specification

          SUBROUTINE SB04NY( RC, UL, M, A, LDA, LAMBDA, D, TOL, IWORK,
         $                   DWORK, LDDWOR, INFO )
    C     .. Scalar Arguments ..
          CHARACTER         RC, UL
          INTEGER           INFO, LDA, LDDWOR, M
          DOUBLE PRECISION  LAMBDA, 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).

      LAMBDA  (input) DOUBLE PRECISION
              This variable must contain the value to be added to the
              diagonal elements of A.

      D       (input/output) DOUBLE PRECISION array, dimension (M)
              On entry, this array must contain the right-hand side
              vector of the Hessenberg system.
              On exit, if INFO = 0, this array contains the solution
              vector of the Hessenberg system.

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 (M)

      DWORK   DOUBLE PRECISION array, dimension (LDDWOR,M+3)
              The leading M-by-M part of this array is used for
              computing the triangular factor of the QR decomposition
              of the Hessenberg matrix. The remaining 3*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,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