CXML
stpmv, dtpmv, ctpmv, ztpmv
Matrix-vector product for a triangular matrix
in packed form
FORMAT
{S,D,C,Z}TPMV (uplo, trans, diag, n, ap, x, incx)
Arguments
uplo character*1
On entry, specifies whether the matrix A is an upper-
or lower-triangular matrix:
If uplo = 'U' or 'u', A is an upper-triangular matrix.
If uplo = 'L' or 'l', A is a lower-triangular matrix.
On exit, uplo is unchanged.
trans character*1
On entry, specifies the operation to be performed:
If trans = 'N' or 'n', the operation is x = Ax.
If trans = 'T' or 't', the operation is x =
transp(A)*x.
If trans = 'C' or 'c', the operation is x =
conjug_transp(A)*x.
On exit, trans is unchanged.
diag character*1
On entry, specifies whether the matrix A is unit-
triangular:
If diag = 'U' or 'u', A is a unit-triangular matrix.
If diag = 'N' or 'n', A is not a unit-triangular
matrix.
On exit, diag is unchanged.
n integer*4
On entry, the order of the matrix A; n >= 0.
On exit, n is unchanged.
ap real*4 | real*8 | complex*8 | complex*16
On entry, a one-dimensional array AP of length at least
n(n + 1)/2.
If uplo specifies the upper triangular part of the matrix A, the array
contains those elements of the matrix, packed sequentially, column by
column, so that AP(1) contains a(11), AP(2) and AP(3) contain a(12) and
a(22) respectively, and so on.
If uplo specifies the lower triangular part to the matrix A, so that AP(1)
contains a(11), AP(2) and AP(3) contain a(21) and a(31) respectively, and
so on.
If diag is equal to the diagonal elements of A are not referenced, but are
assumed to be unity.
On exit, ap is unchanged.
x real*4 | real*8 | complex*8 | complex*16
On entry, a one-dimensional array X of length at least
(1+(n-1)*|incx|). Array X contains the vector x.
On exit, x is overwritten with the transformed vector
x.
incx integer*4
On entry, the increment for the elements of X; incx
must not equal zero.
On exit, incx is unchanged.
Description
The _TPMV subprograms compute a matrix-vector product for a triangular
matrix stored in packed form or its transpose:
x = Ax or x = transp(A)*x. In addition to these operations, the CTPMV
and ZTPMV subprograms compute a matrix-vector product for the conjugate
transpose: x = conjug_transp(A)*x .
x is a vector with n elements and A is an n by n, unit or non-unit, upper-
or lower-triangular matrix, supplied in packed form.
Example
REAL*4 AP(250), X(20)
INCX = 1
N = 20
CALL STPMV('U','N','N',N,AP,X,INCX)
This FORTRAN code computes the product x = Ax where A is an upper-
triangular matrix of order 20, with non-unit diagonal, stored in packed
form.
CXML Home Page Index of CXML Routines