DLAQTR(3F) DLAQTR(3F)
DLAQTR  solve the real quasitriangular system op(T)*p = scale*c, if
LREAL = .TRUE
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( * )
DLAQTR solves the real quasitriangular system
or the complex quasitriangular systems
op(T + iB)*(p+iq) = scale*(c+id), if LREAL = .FALSE.
in real arithmetic, where T is upper quasitriangular.
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.
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
Page 1
DLAQTR(3F) DLAQTR(3F)
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.
DLAQTR(3F) DLAQTR(3F)
DLAQTR  solve the real quasitriangular system op(T)*p = scale*c, if
LREAL = .TRUE
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( * )
DLAQTR solves the real quasitriangular system
or the complex quasitriangular systems
op(T + iB)*(p+iq) = scale*(c+id), if LREAL = .FALSE.
in real arithmetic, where T is upper quasitriangular.
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.
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
Page 1
DLAQTR(3F) DLAQTR(3F)
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.
PPPPaaaaggggeeee 2222 [ Back ]
