Solve triangular system

STPSV/DTPSV/CTPSV/ZTPSV

Name STPSV/DTPSV/CTPSV/ZTPSV

Solve triangular system

Purpose Given an n-by-nupper- or lower-triangular matrix A stored in packed form as described in “Matrix Storage” and an n-vector x, these subprograms overwrite x with the solution y to the system of linear equations Ay = x. This is the forward elimination or back substitution step of Gaussian elimination. Optionally, A can

be replaced by AT, the transpose of A, or by A*, the conjugate transpose of A. Specifically, these subprograms compute

x A–1x, x ATx, and x A–*x,

where AT is the inverse of the transpose of A, and A–*is the inverse of the conjugate transpose of A.

These subprograms are more primitive than the LAPACK linear equation solvers. As such, they are intended to supplement but not replace them, serving instead as building blocks in constructing optimized linear algebra software. In fact, many of the LAPACK subprograms have been recoded to call these subprograms.

Refer to “F_STPSV/F_DTPSV/F_CTPSV/F_ZTPSV” on page 406 for a description of the equivalent BLAS Standard subprograms.

Matrix You supply the upper or lower triangle of A, stored column-by-column in packed

Storage form in a 1-dimensional array. This saves memory compared to storing the entire matrix.

The following examples illustrate the packed storage of a triangular matrix.

Upper triangular matrix

If A is

11

12

13

14

0

22

23

24

0

0

33

34

0

0

0

44

then A is packed column by column into an array ap as follows:

k

1

2

3

4

5

6

7

8

9

10

ap(k)

11

12

22

13

23

33

14

24

34

44

 

 

 

 

 

 

 

 

 

 

 

Upper-triangular matrix element aij is stored in array element ap(i+(j⋅(j−1))/2).

Chapter 3 Basic Matrix Operations 313