Intel® oneAPI Math Kernel Library Developer Reference - Fortran
Solves a real quasi-triangular system of equations, or a complex quasi-triangular system of special form, in real arithmetic.
call slaqtr( ltran, lreal, n, t, ldt, b, w, scale, x, work, info )
call dlaqtr( ltran, lreal, n, t, ldt, b, w, scale, x, work, info )
The routine ?laqtr 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
op(A) = A or AT, AT denotes the transpose of matrix A.
On input,
This routine is designed for the condition number estimation in routine ?trsna.
LOGICAL.
On entry, ltran specifies the option of conjugate transpose:
= .FALSE., op(T + iB) = T + iB,
= .TRUE., op(T + iB) = (T + iB)T.
LOGICAL.
On entry, lreal specifies the input matrix structure:
= .FALSE., the input is complex
= .TRUE., the input is real.
INTEGER.
On entry, n specifies the order of T + iB. n≥ 0.
REAL for slaqtr
DOUBLE PRECISION for dlaqtr
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.
INTEGER. The leading dimension of the matrix T.
ldt≥ max(1,n).
REAL for slaqtr
DOUBLE PRECISION for dlaqtr
Array, dimension (n). On entry, b contains the elements to form the matrix B as described above. If lreal = .TRUE., b is not referenced.
REAL for slaqtr
DOUBLE PRECISION for dlaqtr
On entry, w is the diagonal element of the matrix B.
If lreal = .TRUE., w is not referenced.
REAL for slaqtr
DOUBLE PRECISION for dlaqtr
Array, dimension (2n). On entry, x contains the right hand side of the system.
REAL for slaqtr
DOUBLE PRECISION for dlaqtr
Workspace array, dimension (n).
REAL for slaqtr
DOUBLE PRECISION for dlaqtr
On exit, scale is the scale factor.
On exit, X is overwritten by the solution.
INTEGER.
If info = 0: successful exit.
If info = 1: the some diagonal 1-by-1 block has been perturbed by a small number smin to keep nonsingularity.
If info = 2: the some diagonal 2-by-2 block has been perturbed by a small number in ?laln2 to keep nonsingularity.
For higher speed, this routine does not check the inputs for errors.