141 SUBROUTINE ztpmv(UPLO,TRANS,DIAG,N,AP,X,INCX)
149 CHARACTER DIAG,TRANS,UPLO
152 COMPLEX*16 AP(*),X(*)
159 parameter(zero= (0.0d+0,0.0d+0))
163 INTEGER I,INFO,IX,J,JX,K,KK,KX
164 LOGICAL NOCONJ,NOUNIT
180 IF (.NOT.lsame(uplo,
'U') .AND. .NOT.lsame(uplo,
'L'))
THEN
182 ELSE IF (.NOT.lsame(trans,
'N') .AND. .NOT.lsame(trans,
'T') .AND.
183 + .NOT.lsame(trans,
'C'))
THEN
185 ELSE IF (.NOT.lsame(diag,
'U') .AND. .NOT.lsame(diag,
'N'))
THEN
187 ELSE IF (n.LT.0)
THEN
189 ELSE IF (incx.EQ.0)
THEN
193 CALL xerbla(
'ZTPMV ',info)
201 noconj = lsame(trans,
'T')
202 nounit = lsame(diag,
'N')
209 ELSE IF (incx.NE.1)
THEN
216 IF (lsame(trans,
'N'))
THEN
220 IF (lsame(uplo,
'U'))
THEN
224 IF (x(j).NE.zero)
THEN
228 x(i) = x(i) + temp*ap(k)
231 IF (nounit) x(j) = x(j)*ap(kk+j-1)
238 IF (x(jx).NE.zero)
THEN
241 DO 30 k = kk,kk + j - 2
242 x(ix) = x(ix) + temp*ap(k)
245 IF (nounit) x(jx) = x(jx)*ap(kk+j-1)
255 IF (x(j).NE.zero)
THEN
259 x(i) = x(i) + temp*ap(k)
262 IF (nounit) x(j) = x(j)*ap(kk-n+j)
270 IF (x(jx).NE.zero)
THEN
273 DO 70 k = kk,kk - (n- (j+1)),-1
274 x(ix) = x(ix) + temp*ap(k)
277 IF (nounit) x(jx) = x(jx)*ap(kk-n+j)
288 IF (lsame(uplo,
'U'))
THEN
295 IF (nounit) temp = temp*ap(kk)
297 temp = temp + ap(k)*x(i)
301 IF (nounit) temp = temp*dconjg(ap(kk))
302 DO 100 i = j - 1,1,-1
303 temp = temp + dconjg(ap(k))*x(i)
316 IF (nounit) temp = temp*ap(kk)
317 DO 120 k = kk - 1,kk - j + 1,-1
319 temp = temp + ap(k)*x(ix)
322 IF (nounit) temp = temp*dconjg(ap(kk))
323 DO 130 k = kk - 1,kk - j + 1,-1
325 temp = temp + dconjg(ap(k))*x(ix)
340 IF (nounit) temp = temp*ap(kk)
342 temp = temp + ap(k)*x(i)
346 IF (nounit) temp = temp*dconjg(ap(kk))
348 temp = temp + dconjg(ap(k))*x(i)
361 IF (nounit) temp = temp*ap(kk)
362 DO 180 k = kk + 1,kk + n - j
364 temp = temp + ap(k)*x(ix)
367 IF (nounit) temp = temp*dconjg(ap(kk))
368 DO 190 k = kk + 1,kk + n - j
370 temp = temp + dconjg(ap(k))*x(ix)
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ztpmv(UPLO, TRANS, DIAG, N, AP, X, INCX)
ZTPMV