# ?gegss

Solves a system of interval linear equations by interval Gauss-Seidel iteration.

## Syntax

call sigegss(trans, n, nrhs, a, lda, b, ldb, encl, epsilon, nits, info)

call digegss(trans, n, nrhs, a, lda, b, ldb, encl, epsilon, nits, info)

call crgegss(trans, n, nrhs, a, lda, b, ldb, encl, epsilon, nits, info)

call zrgegss(trans, n, nrhs, a, lda, b, ldb, encl, epsilon, nits, info)

call ccgegss(trans, n, nrhs, a, lda, b, ldb, encl, epsilon, nits, info)

call zcgegss(trans, n, nrhs, a, lda, b, ldb, encl, epsilon, nits, info)

## Description

The routine ?gegss uses the interval Gauss-Seidel iteration to compute an enclosure of a portion of the solution set to the following interval linear system of equations:

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

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

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

See “Interval Linear Solvers Code Examples” for example code on using this routine.

## Input Parameters

trans

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

  Indicates the form of the equations system:

  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.

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

  D_INTERVAL for digegss.

  CR_INTERVAL for crgegss.

  ZR_INTERVAL for zrgegss.

  CC_INTERVAL for ccgegss.

  ZC_INTERVAL for zcgegss.

  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.

lda

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

ldb

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

encl

  S_INTERVAL for sigegss.

  D_INTERVAL for digegss.

  CR_INTERVAL for crgegss.

  ZR_INTERVAL for zrgegss.

  CC_INTERVAL for ccgegss.

  ZC_INTERVAL for zcgegss.

  Array: encl (ldb,*).

  The array encl defines the interval box bounding the portion of the solution set that the routine estimates.

epsilon

  REAL for sigegss, crgegss, and ccgegss.

  DOUBLE PRECISION for digegss, zrgegss, and zcgegss.

  The prescribed accuracy of the esimate.

nits

  INTEGER. The number of Gauss-Seidel iterations alloted, `nits ≥ 0`.

## Output Parameters

b

  Overwritten by an enclosure of the solution matrix X.

info

  INTEGER.

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

  If `info= `i ≥ 0`,` then the diagonal element `a(i,i)` of the matrix contains zero. The execution of the routine did not fail, but it is recommended to interchange the rows and/or columns of the matrix so as to exclude zero-containing elements from its main diagonal.

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

## Application Notes

Interval Gauss-Seidel iteration is a local solver of interval linear systems, which means that it is mainly intended for computing enclosures of portions of the solution set bounded by a given interval box in the space Rn.

If the goal is to compute, by ?gegss, an enclosure of the entire solution set to an interval linear system of equations, then its initial (crude) enclosure should be provided through enclargument.

Parent topic: Routines for Fast Solution of Interval Systems