STPMV, DTPMV, CTPMV, or ZTPMV Subroutine

Purpose

Performs matrix-vector operations on a packed triangular matrix.

Library

BLAS Library (libblas.a)

FORTRAN Syntax

SUBROUTINE STPMV(UPLO, TRANS, DIAG,
N, AP, X, INCX)
INTEGER  INCX, N
CHARACTER*1  DIAG, TRANS, UPLO
REAL  AP(*),  X(*)

SUBROUTINE DTPMV(UPLO, TRANS, DIAG,
N, AP, X, INCX)
INTEGER INCX,N
CHARACTER*1 DIAG,TRANS,UPLO
DOUBLE PRECISION AP(*), X(*)
SUBROUTINE CTPMV(UPLO, TRANS, DIAG,
N, AP, X, INCX)
INTEGER INCX,N
CHARACTER*1 DIAG,TRANS,UPLO
COMPLEX AP(*), X(*)
SUBROUTINE ZTPMV(UPLO, TRANS, DIAG,
N, AP, X, INCX)
INTEGER INCX,N
CHARACTER*1 DIAG,TRANS,UPLO
COMPLEX*16 AP(*), X(*)

Description

The STPMV, DTPMV, CTPMV, or ZTPMV subroutine performs one of the matrix-vector operations:

x := A * x

OR

x := A' * x

where x is an N element vector and A is an N by N unit, or non-unit, upper or lower triangular matrix, supplied in packed form.

Parameters

Item Description
UPLO On entry, UPLO specifies whether the matrix is an upper or lower triangular matrix as follows:
UPLO = 'U' or 'u'
A is an upper triangular matrix.
UPLO = 'L' or 'l'
A is a lower triangular matrix.

Unchanged on exit.

TRANS On entry, TRANS specifies the operation to be performed as follows:
TRANS = 'N' or 'n'
x := A * x
TRANS = 'T' or 't'
x := A' * x
TRANS = 'C' or 'c'
x := A' * x

Unchanged on exit.

DIAG On entry, DIAG specifies whether or not A is unit triangular as follows:
DIAG = 'U' or 'u'
A is assumed to be unit triangular.
DIAG = 'N' or 'n'
A is not assumed to be unit triangular.

Unchanged on exit.

N On entry, N specifies the order of the matrix A; N must be at least 0; unchanged on exit.
AP A vector of dimension at least ( ( N * (N+1) )/2 ). On entry with UPLO = 'U' or 'u', the array AP must contain the upper triangular matrix packed sequentially, column by column, so that AP(1) contains A(1,1), AP(2) and AP(3) contain A(1,2) and A(2,2) respectively, and so on. On entry with UPLO = 'L' or 'l', the array AP must contain the lower triangular matrix packed sequentially, column by column, so that AP(1) contains A(1,1), AP(2) and AP(3) contain A(2,1) and A(3,1) respectively, and so on. When DIAG = 'U' or 'u', the diagonal elements of A are not referenced, but are assumed to be unity; unchanged on exit.
X A vector of dimension at least (1 + (N-1 ) * abs( INCX ) ); on entry, the incremented array X must contain the N element vector x; on exit, X is overwritten with the transformed vector x.
INCX On entry, INCX specifies the increment for the elements of X; INCX must not be 0; unchanged on exit.