LAPACK  3.5.0
LAPACK: Linear Algebra PACKage
 All Classes Files Functions Variables Typedefs Macros
slaqtr.f File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine slaqtr (LTRAN, LREAL, N, T, LDT, B, W, SCALE, X, WORK, INFO)
 SLAQTR solves a real quasi-triangular system of equations, or a complex quasi-triangular system of special form, in real arithmetic. More...
 

Function/Subroutine Documentation

subroutine slaqtr ( logical  LTRAN,
logical  LREAL,
integer  N,
real, dimension( ldt, * )  T,
integer  LDT,
real, dimension( * )  B,
real  W,
real  SCALE,
real, dimension( * )  X,
real, dimension( * )  WORK,
integer  INFO 
)

SLAQTR solves a real quasi-triangular system of equations, or a complex quasi-triangular system of special form, in real arithmetic.

Download SLAQTR + dependencies [TGZ] [ZIP] [TXT]

Purpose:
 SLAQTR solves the real quasi-triangular system

              op(T)*p = scale*c,               if LREAL = .TRUE.

 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**T, A**T denotes the 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 STRSNA.
Parameters
[in]LTRAN
          LTRAN is 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)**T.
[in]LREAL
          LREAL is LOGICAL
          On entry, LREAL specifies the input matrix structure:
             = .FALSE.,    the input is complex
             = .TRUE.,     the input is real
[in]N
          N is INTEGER
          On entry, N specifies the order of T+i*B. N >= 0.
[in]T
          T is 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.
[in]LDT
          LDT is INTEGER
          The leading dimension of the matrix T. LDT >= max(1,N).
[in]B
          B is 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.
[in]W
          W is REAL
          On entry, W is the diagonal element of the matrix B.
          If LREAL = .TRUE., W is not referenced.
[out]SCALE
          SCALE is REAL
          On exit, SCALE is the scale factor.
[in,out]X
          X is REAL array, dimension (2*N)
          On entry, X contains the right hand side of the system.
          On exit, X is overwritten by the solution.
[out]WORK
          WORK is REAL array, dimension (N)
[out]INFO
          INFO is 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.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date
September 2012

Definition at line 165 of file slaqtr.f.

Here is the call graph for this function:

Here is the caller graph for this function: