laqtr#

Functions

void slaqtr(
    const INT  ltran,
    const INT  lreal,
    const INT  n,
    const f32* T,
    const INT  ldt,
    const f32* B,
    const f32  w,
          f32* scale,
          f32* X,
          f32* work,
          INT* info
);
void slaqtr(const INT ltran, const INT lreal, const INT n, const f32 *T, const INT ldt, const f32 *B, const f32 w, f32 *scale, f32 *X, f32 *work, INT *info)#

SLAQTR solves the real quasi-triangular system.

         op(T)*p = scale*c,               if lreal = 1
or the complex quasi-triangular systems
       op(T + iB)*(p+iq) = scale*(c+id),  if lreal = 0
in real arithmetic, where T is upper quasi-triangular. If lreal = 0, then the first diagonal block of T must be 1 by 1, B is the specially structured matrix
           B = [ b(0) b(1) ... b(n-1) ]
               [       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

Specifies the option of conjugate transpose: = 0: op(T+i*B) = T+i*B, = 1: op(T+i*B) = (T+i*B)**T.

in
lreal

Specifies the input matrix structure: = 0: the input is complex, = 1: the input is real.

in
n

The order of T+i*B. n >= 0.

in
T

The upper quasi-triangular matrix T, in Schur canonical form. Dimension (ldt, n).

in
ldt

The leading dimension of T. ldt >= max(1, n).

in
B

Array, dimension (n). The elements to form the matrix B. If lreal = 1, B is not referenced.

in
w

The diagonal element of the matrix B. If lreal = 1, w is not referenced.

out
scale

The scale factor.

inout
X

Array, dimension (2*n). On entry, the right hand side. On exit, overwritten by the solution.

out
work

Workspace array, dimension (n).

out
info

  • = 0: successful exit.

  • = 1: some diagonal 1 by 1 block has been perturbed by a small number SMIN to keep nonsingularity.

  • = 2: some diagonal 2 by 2 block has been perturbed by a small number in SLALN2 to keep nonsingularity.

Functions

void dlaqtr(
    const INT  ltran,
    const INT  lreal,
    const INT  n,
    const f64* T,
    const INT  ldt,
    const f64* B,
    const f64  w,
          f64* scale,
          f64* X,
          f64* work,
          INT* info
);
void dlaqtr(const INT ltran, const INT lreal, const INT n, const f64 *T, const INT ldt, const f64 *B, const f64 w, f64 *scale, f64 *X, f64 *work, INT *info)#

DLAQTR solves the real quasi-triangular system.

         op(T)*p = scale*c,               if lreal = 1
or the complex quasi-triangular systems
       op(T + iB)*(p+iq) = scale*(c+id),  if lreal = 0
in real arithmetic, where T is upper quasi-triangular. If lreal = 0, then the first diagonal block of T must be 1 by 1, B is the specially structured matrix
           B = [ b(0) b(1) ... b(n-1) ]
               [       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

in
ltran

Specifies the option of conjugate transpose: = 0: op(T+i*B) = T+i*B, = 1: op(T+i*B) = (T+i*B)**T.

in
lreal

Specifies the input matrix structure: = 0: the input is complex, = 1: the input is real.

in
n

The order of T+i*B. n >= 0.

in
T

The upper quasi-triangular matrix T, in Schur canonical form. Dimension (ldt, n).

in
ldt

The leading dimension of T. ldt >= max(1, n).

in
B

Array, dimension (n). The elements to form the matrix B. If lreal = 1, B is not referenced.

in
w

The diagonal element of the matrix B. If lreal = 1, w is not referenced.

out
scale

The scale factor.

inout
X

Array, dimension (2*n). On entry, the right hand side. On exit, overwritten by the solution.

out
work

Workspace array, dimension (n).

out
info

  • = 0: successful exit.

  • = 1: some diagonal 1 by 1 block has been perturbed by a small number SMIN to keep nonsingularity.

  • = 2: some diagonal 2 by 2 block has been perturbed by a small number in DLALN2 to keep nonsingularity.