laqtr(3)

NAME
laqtr - laqtr: quasi-triangular solve

SYNOPSIS

  Functions

subroutine dlaqtr (ltran, lreal, n, t, ldt, b, w, scale, x, work, info)
DLAQTR solves a real quasi-triangular system of equations, or a complex quasi-triangular system of special form, in real arithmetic.
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.

Detailed Description

Function Documentation

  subroutine dlaqtr (logical ltran, logical lreal, integer n, double precision, dimension( ldt, * ) t, integer ldt, double precision, dimension( * ) b, double precision w, double precision scale, double precision, dimension( * ) x, double precision, dimension( * ) work, integer info)

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

Purpose:

    !>
    !> DLAQTR 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 DTRSNA.
    !>

Parameters
    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.
    !>

    LREAL

    !>          LREAL is LOGICAL
    !>          On entry, LREAL specifies the input matrix structure:
    !>             = .FALSE.,    the input is complex
    !>             = .TRUE.,     the input is real
    !>

    N

    !>          N is INTEGER
    !>          On entry, N specifies the order of T+i*B. N >= 0.
    !>

    T

    !>          T is 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

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

    B

    !>          B is 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

    !>          W is DOUBLE PRECISION
    !>          On entry, W is the diagonal element of the matrix B.
    !>          If LREAL = .TRUE., W is not referenced.
    !>

    SCALE

    !>          SCALE is DOUBLE PRECISION
    !>          On exit, SCALE is the scale factor.
    !>

    X

    !>          X is 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

    !>          WORK is DOUBLE PRECISION array, dimension (N)
    !>

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

  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.

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

    LREAL

    !>          LREAL is LOGICAL
    !>          On entry, LREAL specifies the input matrix structure:
    !>             = .FALSE.,    the input is complex
    !>             = .TRUE.,     the input is real
    !>

    N

    !>          N is INTEGER
    !>          On entry, N specifies the order of T+i*B. N >= 0.
    !>

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

    LDT

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

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

    W

    !>          W is REAL
    !>          On entry, W is the diagonal element of the matrix B.
    !>          If LREAL = .TRUE., W is not referenced.
    !>

    SCALE

    !>          SCALE is REAL
    !>          On exit, SCALE is the scale factor.
    !>

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

    WORK

    !>          WORK is REAL array, dimension (N)
    !>

    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.

Author

Generated automatically by Doxygen for LAPACK from the source code.