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.
183 + .NOT.lsame(trans,
'T') .AND.
184 + .NOT.lsame(trans,
'C'))
THEN
186 ELSE IF (.NOT.lsame(diag,
'U') .AND.
187 + .NOT.lsame(diag,
'N'))
THEN
189 ELSE IF (n.LT.0)
THEN
191 ELSE IF (incx.EQ.0)
THEN
195 CALL xerbla(
'ZTPMV ',info)
203 noconj = lsame(trans,
'T')
204 nounit = lsame(diag,
'N')
211 ELSE IF (incx.NE.1)
THEN
218 IF (lsame(trans,
'N'))
THEN
222 IF (lsame(uplo,
'U'))
THEN
226 IF (x(j).NE.zero)
THEN
230 x(i) = x(i) + temp*ap(k)
233 IF (nounit) x(j) = x(j)*ap(kk+j-1)
240 IF (x(jx).NE.zero)
THEN
243 DO 30 k = kk,kk + j - 2
244 x(ix) = x(ix) + temp*ap(k)
247 IF (nounit) x(jx) = x(jx)*ap(kk+j-1)
257 IF (x(j).NE.zero)
THEN
261 x(i) = x(i) + temp*ap(k)
264 IF (nounit) x(j) = x(j)*ap(kk-n+j)
272 IF (x(jx).NE.zero)
THEN
275 DO 70 k = kk,kk - (n- (j+1)),-1
276 x(ix) = x(ix) + temp*ap(k)
279 IF (nounit) x(jx) = x(jx)*ap(kk-n+j)
290 IF (lsame(uplo,
'U'))
THEN
297 IF (nounit) temp = temp*ap(kk)
299 temp = temp + ap(k)*x(i)
303 IF (nounit) temp = temp*dconjg(ap(kk))
304 DO 100 i = j - 1,1,-1
305 temp = temp + dconjg(ap(k))*x(i)
318 IF (nounit) temp = temp*ap(kk)
319 DO 120 k = kk - 1,kk - j + 1,-1
321 temp = temp + ap(k)*x(ix)
324 IF (nounit) temp = temp*dconjg(ap(kk))
325 DO 130 k = kk - 1,kk - j + 1,-1
327 temp = temp + dconjg(ap(k))*x(ix)
342 IF (nounit) temp = temp*ap(kk)
344 temp = temp + ap(k)*x(i)
348 IF (nounit) temp = temp*dconjg(ap(kk))
350 temp = temp + dconjg(ap(k))*x(i)
363 IF (nounit) temp = temp*ap(kk)
364 DO 180 k = kk + 1,kk + n - j
366 temp = temp + ap(k)*x(ix)
369 IF (nounit) temp = temp*dconjg(ap(kk))
370 DO 190 k = kk + 1,kk + n - j
372 temp = temp + dconjg(ap(k))*x(ix)
subroutine xerbla(srname, info)
subroutine ztpmv(uplo, trans, diag, n, ap, x, incx)
ZTPMV