The LA_TRISOL function is used in conjunction with the LA_TRIDC procedure to solve a set of *n* linear equations in *n *unknowns, *AX* = *B*, where *A* is a tridiagonal array. The parameter *A* is input not as the original array, but as its LU decomposition, created by the routine LA_TRIDC.

The LA_TRISOL function may also be used to solve for multiple systems of linear equations, with each column of *B* representing a different set of equations. In this case, the result is a *k*-by-*n* array where each of the *k* columns represents the solution vector for that set of equations.

LA_TRISOL is based on the following LAPACK routines:

Output Type |
LAPACK Routine |

Float |
sgttrs |

Double |
dgttrs |

Complex |
cgttrs |

Double complex |
zgttrs |

## Examples

For an example of using this routine see LA_TRIMPROVE.

## Syntax

*Result* = LA_TRISOL( *AL*, *A*, *AU*, *U2*, *Index*, *B* [, /DOUBLE] )

## Return Value

The result is an *n*-element vector or *k*-by-*n* array.

## Arguments

### AL

The (*n* - 1) elements of the lower bidiagonal array, created by the LA_TRIDC procedure.

### A

The *n* diagonal elements of the upper triangular array, created by the LA_TRIDC procedure.

### AU

The (*n* - 1) superdiagonal elements of the upper triangular array, created by the LA_TRIDC procedure.

### U2

The (*n* - 2) elements of the second superdiagonal of the upper triangular array, created by the LA_TRIDC procedure.

### Index

An input vector, created by the LA_TRIDC procedure, containing the row permutations which occurred as a result of partial pivoting.

### B

An *n*-element input vector containing the right-hand side of the linear system, or a *k*-by-*n* array, where each of the *k* columns represents a different linear system.

## Keywords

### DOUBLE

Set this keyword to use double-precision for computations and to return a double-precision (real or complex) result. Set DOUBLE = 0 to use single-precision for computations and to return a single-precision (real or complex) result. The default is /DOUBLE if *AL* is double precision, otherwise the default is DOUBLE = 0.

## Version History

5.6 |
Introduced |

## Resources and References

For details see Anderson et al., *LAPACK Users' Guide*, 3rd ed., SIAM, 1999.

## See Also

LA_TRIDC, LA_TRIMPROVE, TRISOL