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.

Definition at line 163 of file dlaqtr.f.

  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.

Definition at line 163 of file slaqtr.f.

Author

Generated automatically by Doxygen for LAPACK from the source code.