Routines (alphabetical) > Routines: L > LA_TRISOL

# LA_TRISOL

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