====================================================================
dlaqtr examples
====================================================================

====================================================================
Man Page Details
====================================================================

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

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

           LOGICAL        LREAL, LTRAN

           INTEGER        INFO, LDT, N

           DOUBLE         PRECISION SCALE, W

           DOUBLE         PRECISION B( * ), T( LDT, * ), WORK( * ), X( * )

PURPOSE
       DLAQTR 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 estimation in rou-
       tine DTRSNA.


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) DOUBLE PRECISION array, dimension (LDT,N)
               On  entry,  T  contains  a  matrix in Schur canonical form.  If
               LREAL = .FALSE., then the first diagonal block of T mu be 1  by
               1.

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

       B       (input) DOUBLE PRECISION 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) DOUBLE PRECISION
               On entry, W is the diagonal element of the matrix B.  If  LREAL
               = .TRUE., W is not referenced.

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

       X       (input/output) DOUBLE PRECISION array, dimension (2*N)
               On  entry,  X  contains  the right hand side of the system.  On
               exit, X is overwritten by the solution.

       WORK    (workspace) DOUBLE PRECISION 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 DLALN2 to  keep
               nonsingularity.   NOTE: In the interests of speed, this routine
               does not check the inputs for errors.

