STPMV/DTPMV/CTPMV/ZTPMV

Matrix-vector multiply

Name STPMV/DTPMV/CTPMV/ZTPMV

Matrix-vector multiply

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 compute

the matrix-vector products Ax, ATx, and A*x, where AT is the transpose of A, and A* is the conjugate transpose of A. Specifically, these subprograms compute matrix-vector products of the forms

x Ax, x AT x, and x A*x.

Refer to “F_STPMV/F_DTPMV/F_CTPMV/F_ZTPMV” on page 403 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).

Lower triangular matrix

If A is

11

0

0

0

21

22

0

0

31

32

33

0

41

42

43

44

308HP MLIB User’s Guide