Previous: slaqsy Up: ../lapack-s.html Next: slar2v


slaqtr


 NAME
      SLAQTR - solve the real quasi-triangular system   op(T)*p =
      scale*c, if LREAL = .TRUE

 SYNOPSIS
      SUBROUTINE SLAQTR( LTRAN, LREAL, N, T, LDT, B, W, SCALE, X,
                         WORK, INFO )

          LOGICAL        LREAL, LTRAN

          INTEGER        INFO, LDT, N

          REAL           SCALE, W

          REAL           B( * ), T( LDT, * ), WORK( * ), X( * )

 PURPOSE
      SLAQTR solves the real quasi-triangular system

      or the complex quasi-triangular systems

                 op(T + iB)*(p+iq) = scale*(c+id),  if LREAL =
      .FALSE.

      in real arithmetic, where T is upper quasi-triangular.
      If LREAL = .FALSE., then the first diagonal block of T must
      be 1 by 1, B is the specially structured matrix

                     B = [ b(1) b(2) ... b(n) ]
                         [       w            ]
                         [           w        ]
                         [              .     ]
                         [                 w  ]

      op(A) = A or A', A' denotes the conjugate transpose of
      matrix A.

      On input, X = [ c ].  On output, X = [ p ].
                    [ d ]                  [ q ]

      This subroutine is designed for the condition number estima-
      tion in routine STRSNA.

 ARGUMENTS
      LTRAN   (input) LOGICAL
              On entry, LTRAN specifies the option of conjugate
              transpose: = .FALSE.,    op(T+i*B) = T+i*B, =
              .TRUE.,     op(T+i*B) = (T+i*B)'.

      LREAL   (input) LOGICAL
              On entry, LREAL specifies the input matrix

              structure: = .FALSE.,    the input is complex =
              .TRUE.,     the input is real

      N       (input) INTEGER
              On entry, N specifies the order of T+i*B. N >= 0.

      T       (input) REAL array, dimension(LDT,N)
              On entry, T contains a matrix in Schur canonical
              form.  If LREAL = .FALSE., then the first diagonal
              block of T must be 1 by 1.

      LDT     (input) INTEGER
              The leading dimension of the matrix T. LDT >=
              max(1,N).

      B       (input) REAL array, dimension(N)
              On entry, B contains the elements to form the matrix
              B as described above.  If LREAL = .TRUE., B is not
              referenced.

      W       (input) REAL
              On entry, W is the diagonal element of the matrix B.
              If LREAL = .TRUE., W is not referenced.

      SCALE   (output) REAL
              On exit, SCALE is the scale factor.

      X       (input/output) REAL array, dimension(2*N)
              On entry, X contains the right hand side of the sys-
              tem.  On exit, X is overwritten by the solution.

      WORK    (workspace) REAL array, dimension(N)

      INFO    (output) INTEGER
              On exit, INFO is set to 0: successful exit.
              1: the some diagonal 1 by 1 block has been perturbed
              by a small number SMIN to keep nonsingularity.  2:
              the some diagonal 2 by 2 block has been perturbed by
              a small number in SLALN2 to keep nonsingularity.
              NOTE: In the interests of speed, this routine does
              not check the inputs for errors.