DLAQTR(3f)

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 routine 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.