# ?trtrs

Solves a triangular system of interval linear equations by backward substitution procedure.

## Syntax

call sitrtrs(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info)

call ditrtrs(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info)

call crtrtrs(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info)

call zrtrtrs(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info)

call cctrtrs(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info)

call zctrtrs(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info)

## Description

The routine ?trtrs solves for X the following systems of interval linear equations with a triangular matrix A and multiple right-hand sides stored in B:

`A*X = B`, if `trans = 'N'`

`AT*X = B`, if `trans = 'T'`

`AH*X = B`, if `trans =` 'C' (for complex matrices only).

The routine implements backward substitution algorithm and produces optimal enclosures of the solution sets to interval linear systems, which is due to the simple structure of the matrix A.

## Input Parameters

uplo

  CHARACTER(1). Must be one of 'U' , 'L' , 'u', or 'l'.

  Indicates whether A is upper or lower triangular.

  If `uplo = 'U'` or 'u', then A is upper triangular.

  If `uplo = 'L'` or 'l', then A is lower triangular.

trans

  CHARACTER(1). Must be one of 'N', 'T', 'C', 'n', 't', or 'c'.

  If `trans = 'N'` or 'n', then `A*X = B` is solved for X.

  If `trans = 'T'` or 't', then AT*X = B is solved for X.

  If `trans =` 'C' or 'c', then `AH*X = B` is solved for X.

diag

  CHARACTER(1). Must be one of 'N', 'U', 'n', or 'u'.

  If `diag = 'N'` or 'n', then A is not a unit triangular matrix.

  If `diag = 'U'` or 'u', then A is unit triangular: diagonal elements of A are assumed to be 1 and not referenced in the array a.

n

  INTEGER. The order of A, the number of rows in `B (n≥0)`.

nrhs

  INTEGER. The number of right-hand sides `(nrhs≥0)`.

a, b

  S_INTERVAL for sitrtrs.

  D_INTERVAL for ditrtrs.

  CR_INTERVAL for crtrtrs.

  ZR_INTERVAL for zrtrtrs.

  CC_INTERVAL for cctrtrs.

  ZC_INTERVAL for zctrtrs.

  Arrays: `a (lda,*)`, `b (ldb,*)`.

  The array a contains the matrix A.

  The array b contains the matrix B , whose columns are the right-hand sides for the systems of equations. The second dimension of a must be at least `max(1,n)` and the second dimension of b must be at least `max(1,nrhs)`.

lda

  INTEGER. The first dimension of a, `lda ≥ max(1, n)`.

ldb

  INTEGER. The first dimension of b, `ldb ≥ max(1, n)`.

## Output Parameters

b

  Overwritten by the solution matrix X.

info

  INTEGER.

  If `info = 0`, the execution is successful.

  If ``info ≥ 0``, the execution is not successful.

  If `info = -i`, the i-th parameter has an illegal value.

Parent topic: Routines for Fast Solution of Interval Systems