141 SUBROUTINE stpmv(UPLO,TRANS,DIAG,N,AP,X,INCX)
149 CHARACTER DIAG,TRANS,UPLO
159 parameter(zero=0.0e+0)
163 INTEGER I,INFO,IX,J,JX,K,KK,KX
177 IF (.NOT.lsame(uplo,
'U') .AND. .NOT.lsame(uplo,
'L'))
THEN
179 ELSE IF (.NOT.lsame(trans,
'N') .AND. .NOT.lsame(trans,
'T') .AND.
180 + .NOT.lsame(trans,
'C'))
THEN
182 ELSE IF (.NOT.lsame(diag,
'U') .AND. .NOT.lsame(diag,
'N'))
THEN
184 ELSE IF (n.LT.0)
THEN
186 ELSE IF (incx.EQ.0)
THEN
190 CALL xerbla(
'STPMV ',info)
198 nounit = lsame(diag,
'N')
205 ELSE IF (incx.NE.1)
THEN
212 IF (lsame(trans,
'N'))
THEN
216 IF (lsame(uplo,
'U'))
THEN
220 IF (x(j).NE.zero)
THEN
224 x(i) = x(i) + temp*ap(k)
227 IF (nounit) x(j) = x(j)*ap(kk+j-1)
234 IF (x(jx).NE.zero)
THEN
237 DO 30 k = kk,kk + j - 2
238 x(ix) = x(ix) + temp*ap(k)
241 IF (nounit) x(jx) = x(jx)*ap(kk+j-1)
251 IF (x(j).NE.zero)
THEN
255 x(i) = x(i) + temp*ap(k)
258 IF (nounit) x(j) = x(j)*ap(kk-n+j)
266 IF (x(jx).NE.zero)
THEN
269 DO 70 k = kk,kk - (n- (j+1)),-1
270 x(ix) = x(ix) + temp*ap(k)
273 IF (nounit) x(jx) = x(jx)*ap(kk-n+j)
284 IF (lsame(uplo,'u
')) THEN
289 IF (NOUNIT) TEMP = TEMP*AP(KK)
292 TEMP = TEMP + AP(K)*X(I)
303 IF (NOUNIT) TEMP = TEMP*AP(KK)
304 DO 110 K = KK - 1,KK - J + 1,-1
306 TEMP = TEMP + AP(K)*X(IX)
318 IF (NOUNIT) TEMP = TEMP*AP(KK)
321 TEMP = TEMP + AP(K)*X(I)
332 IF (NOUNIT) TEMP = TEMP*AP(KK)
333 DO 150 K = KK + 1,KK + N - J
335 TEMP = TEMP + AP(K)*X(IX)
subroutine stpmv(uplo, trans, diag, n, ap, x, incx)
STPMV