---
name: "doubleGTsolve"
section: "3"
platform: "linux"
package: "liblapack-doc"
version: "3.11.0-2"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/doubleGTsolve"
---

# doubleGTsolve(3)

double

## NAME

doubleGTsolve - double

## SYNOPSIS

### Functions

subroutine **dgtsv** (N, NRHS, DL, D, DU, B, LDB, INFO)\
  **DGTSV computes the solution to system of linear equations A \* X = B for GT matrices**   subroutine **dgtsvx** (FACT, TRANS, N, NRHS, DL, D, DU, DLF, DF, DUF, DU2, IPIV, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, IWORK, INFO)\
  **DGTSVX computes the solution to system of linear equations A \* X = B for GT matrices**

## Detailed Description

This is the group of double solve driver functions for GT matrices

## Function Documentation

### subroutine dgtsv (integer N, integer NRHS, double precision, dimension( \* ) DL, double precision, dimension( \* ) D, double precision, dimension( \* ) DU, double precision, dimension( ldb, \* ) B, integer LDB, integer INFO)

 **DGTSV computes the solution to system of linear equations A \* X = B for GT matrices**

**Purpose:**

```
 DGTSV  solves the equation
    A*X = B,
 where A is an n by n tridiagonal matrix, by Gaussian elimination with
 partial pivoting.
 Note that the equation  A**T*X = B  may be solved by interchanging the
 order of the arguments DU and DL.
```

**Parameters**

*N*

```
          N is INTEGER
          The order of the matrix A.  N >= 0.
```

*NRHS*

```
          NRHS is INTEGER
          The number of right hand sides, i.e., the number of columns
          of the matrix B.  NRHS >= 0.
```

*DL*

```
          DL is DOUBLE PRECISION array, dimension (N-1)
          On entry, DL must contain the (n-1) sub-diagonal elements of
          A.
          On exit, DL is overwritten by the (n-2) elements of the
          second super-diagonal of the upper triangular matrix U from
          the LU factorization of A, in DL(1), ..., DL(n-2).
```

*D*

```
          D is DOUBLE PRECISION array, dimension (N)
          On entry, D must contain the diagonal elements of A.
          On exit, D is overwritten by the n diagonal elements of U.
```

*DU*

```
          DU is DOUBLE PRECISION array, dimension (N-1)
          On entry, DU must contain the (n-1) super-diagonal elements
          of A.
          On exit, DU is overwritten by the (n-1) elements of the first
          super-diagonal of U.
```

*B*

```
          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          On entry, the N by NRHS matrix of right hand side matrix B.
          On exit, if INFO = 0, the N by NRHS solution matrix X.
```

*LDB*

```
          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).
```

*INFO*

```
          INFO is INTEGER
          = 0: successful exit
          < 0: if INFO = -i, the i-th argument had an illegal value
          > 0: if INFO = i, U(i,i) is exactly zero, and the solution
               has not been computed.  The factorization has not been
               completed unless i = N.
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

### subroutine dgtsvx (character FACT, character TRANS, integer N, integer NRHS, double precision, dimension( \* ) DL, double precision, dimension( \* ) D, double precision, dimension( \* ) DU, double precision, dimension( \* ) DLF, double precision, dimension( \* ) DF, double precision, dimension( \* ) DUF, double precision, dimension( \* ) DU2, integer, dimension( \* ) IPIV, double precision, dimension( ldb, \* ) B, integer LDB, double precision, dimension( ldx, \* ) X, integer LDX, double precision RCOND, double precision, dimension( \* ) FERR, double precision, dimension( \* ) BERR, double precision, dimension( \* ) WORK, integer, dimension( \* ) IWORK, integer INFO)

 **DGTSVX computes the solution to system of linear equations A \* X = B for GT matrices**

**Purpose:**

```
 DGTSVX uses the LU factorization to compute the solution to a real
 system of linear equations A * X = B or A**T * X = B,
 where A is a tridiagonal matrix of order N and X and B are N-by-NRHS
 matrices.
 Error bounds on the solution and a condition estimate are also
 provided.
```

**Description:**

```
 The following steps are performed:
 1. If FACT = 'N', the LU decomposition is used to factor the matrix A
    as A = L * U, where L is a product of permutation and unit lower
    bidiagonal matrices and U is upper triangular with nonzeros in
    only the main diagonal and first two superdiagonals.
 2. If some U(i,i)=0, so that U is exactly singular, then the routine
    returns with INFO = i. Otherwise, the factored form of A is used
    to estimate the condition number of the matrix A.  If the
    reciprocal of the condition number is less than machine precision,
    INFO = N+1 is returned as a warning, but the routine still goes on
    to solve for X and compute error bounds as described below.
 3. The system of equations is solved for X using the factored form
    of A.
 4. Iterative refinement is applied to improve the computed solution
    matrix and calculate error bounds and backward error estimates
    for it.
```

**Parameters**

*FACT*

```
          FACT is CHARACTER*1
          Specifies whether or not the factored form of A has been
          supplied on entry.
          = 'F':  DLF, DF, DUF, DU2, and IPIV contain the factored
                  form of A; DL, D, DU, DLF, DF, DUF, DU2 and IPIV
                  will not be modified.
          = 'N':  The matrix will be copied to DLF, DF, and DUF
                  and factored.
```

*TRANS*

```
          TRANS is CHARACTER*1
          Specifies the form of the system of equations:
          = 'N':  A * X = B     (No transpose)
          = 'T':  A**T * X = B  (Transpose)
          = 'C':  A**H * X = B  (Conjugate transpose = Transpose)
```

*N*

```
          N is INTEGER
          The order of the matrix A.  N >= 0.
```

*NRHS*

```
          NRHS is INTEGER
          The number of right hand sides, i.e., the number of columns
          of the matrix B.  NRHS >= 0.
```

*DL*

```
          DL is DOUBLE PRECISION array, dimension (N-1)
          The (n-1) subdiagonal elements of A.
```

*D*

```
          D is DOUBLE PRECISION array, dimension (N)
          The n diagonal elements of A.
```

*DU*

```
          DU is DOUBLE PRECISION array, dimension (N-1)
          The (n-1) superdiagonal elements of A.
```

*DLF*

```
          DLF is DOUBLE PRECISION array, dimension (N-1)
          If FACT = 'F', then DLF is an input argument and on entry
          contains the (n-1) multipliers that define the matrix L from
          the LU factorization of A as computed by DGTTRF.
          If FACT = 'N', then DLF is an output argument and on exit
          contains the (n-1) multipliers that define the matrix L from
          the LU factorization of A.
```

*DF*

```
          DF is DOUBLE PRECISION array, dimension (N)
          If FACT = 'F', then DF is an input argument and on entry
          contains the n diagonal elements of the upper triangular
          matrix U from the LU factorization of A.
          If FACT = 'N', then DF is an output argument and on exit
          contains the n diagonal elements of the upper triangular
          matrix U from the LU factorization of A.
```

*DUF*

```
          DUF is DOUBLE PRECISION array, dimension (N-1)
          If FACT = 'F', then DUF is an input argument and on entry
          contains the (n-1) elements of the first superdiagonal of U.
          If FACT = 'N', then DUF is an output argument and on exit
          contains the (n-1) elements of the first superdiagonal of U.
```

*DU2*

```
          DU2 is DOUBLE PRECISION array, dimension (N-2)
          If FACT = 'F', then DU2 is an input argument and on entry
          contains the (n-2) elements of the second superdiagonal of
          U.
          If FACT = 'N', then DU2 is an output argument and on exit
          contains the (n-2) elements of the second superdiagonal of
          U.
```

*IPIV*

```
          IPIV is INTEGER array, dimension (N)
          If FACT = 'F', then IPIV is an input argument and on entry
          contains the pivot indices from the LU factorization of A as
          computed by DGTTRF.
          If FACT = 'N', then IPIV is an output argument and on exit
          contains the pivot indices from the LU factorization of A;
          row i of the matrix was interchanged with row IPIV(i).
          IPIV(i) will always be either i or i+1; IPIV(i) = i indicates
          a row interchange was not required.
```

*B*

```
          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
          The N-by-NRHS right hand side matrix B.
```

*LDB*

```
          LDB is INTEGER
          The leading dimension of the array B.  LDB >= max(1,N).
```

*X*

```
          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
          If INFO = 0 or INFO = N+1, the N-by-NRHS solution matrix X.
```

*LDX*

```
          LDX is INTEGER
          The leading dimension of the array X.  LDX >= max(1,N).
```

*RCOND*

```
          RCOND is DOUBLE PRECISION
          The estimate of the reciprocal condition number of the matrix
          A.  If RCOND is less than the machine precision (in
          particular, if RCOND = 0), the matrix is singular to working
          precision.  This condition is indicated by a return code of
          INFO > 0.
```

*FERR*

```
          FERR is DOUBLE PRECISION array, dimension (NRHS)
          The estimated forward error bound for each solution vector
          X(j) (the j-th column of the solution matrix X).
          If XTRUE is the true solution corresponding to X(j), FERR(j)
          is an estimated upper bound for the magnitude of the largest
          element in (X(j) - XTRUE) divided by the magnitude of the
          largest element in X(j).  The estimate is as reliable as
          the estimate for RCOND, and is almost always a slight
          overestimate of the true error.
```

*BERR*

```
          BERR is DOUBLE PRECISION array, dimension (NRHS)
          The componentwise relative backward error of each solution
          vector X(j) (i.e., the smallest relative change in
          any element of A or B that makes X(j) an exact solution).
```

*WORK*

```
          WORK is DOUBLE PRECISION array, dimension (3*N)
```

*IWORK*

```
          IWORK is INTEGER array, dimension (N)
```

*INFO*

```
          INFO is INTEGER
          = 0:  successful exit
          < 0:  if INFO = -i, the i-th argument had an illegal value
          > 0:  if INFO = i, and i is
                <= N:  U(i,i) is exactly zero.  The factorization
                       has not been completed unless i = N, but the
                       factor U is exactly singular, so the solution
                       and error bounds could not be computed.
                       RCOND = 0 is returned.
                = N+1: U is nonsingular, but RCOND is less than machine
                       precision, meaning that the matrix is singular
                       to working precision.  Nevertheless, the
                       solution and error bounds are computed because
                       there are a number of situations where the
                       computed solution can be more accurate than the
                       value of RCOND would suggest.
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
