143 SUBROUTINE ztpmv(UPLO,TRANS,DIAG,N,AP,X,INCX)
152 CHARACTER DIAG,TRANS,UPLO
155 COMPLEX*16 AP(*),X(*)
162 parameter(zero= (0.0d+0,0.0d+0))
166 INTEGER I,INFO,IX,J,JX,K,KK,KX
167 LOGICAL NOCONJ,NOUNIT
183 IF (.NOT.lsame(uplo,
'U') .AND. .NOT.lsame(uplo,
'L'))
THEN
185 ELSE IF (.NOT.lsame(trans,
'N') .AND. .NOT.lsame(trans,
'T') .AND.
186 + .NOT.lsame(trans,
'C'))
THEN
188 ELSE IF (.NOT.lsame(diag,
'U') .AND. .NOT.lsame(diag,
'N'))
THEN
190 ELSE IF (n.LT.0)
THEN
192 ELSE IF (incx.EQ.0)
THEN
196 CALL xerbla(
'ZTPMV ',info)
204 noconj = lsame(trans,
'T')
205 nounit = lsame(diag,
'N')
212 ELSE IF (incx.NE.1)
THEN
219 IF (lsame(trans,
'N'))
THEN
223 IF (lsame(uplo,
'U'))
THEN
227 IF (x(j).NE.zero)
THEN
231 x(i) = x(i) + temp*ap(k)
234 IF (nounit) x(j) = x(j)*ap(kk+j-1)
241 IF (x(jx).NE.zero)
THEN
244 DO 30 k = kk,kk + j - 2
245 x(ix) = x(ix) + temp*ap(k)
248 IF (nounit) x(jx) = x(jx)*ap(kk+j-1)
258 IF (x(j).NE.zero)
THEN
262 x(i) = x(i) + temp*ap(k)
265 IF (nounit) x(j) = x(j)*ap(kk-n+j)
273 IF (x(jx).NE.zero)
THEN
276 DO 70 k = kk,kk - (n- (j+1)),-1
277 x(ix) = x(ix) + temp*ap(k)
280 IF (nounit) x(jx) = x(jx)*ap(kk-n+j)
291 IF (lsame(uplo,
'U'))
THEN
298 IF (nounit) temp = temp*ap(kk)
300 temp = temp + ap(k)*x(i)
304 IF (nounit) temp = temp*dconjg(ap(kk))
305 DO 100 i = j - 1,1,-1
306 temp = temp + dconjg(ap(k))*x(i)
319 IF (nounit) temp = temp*ap(kk)
320 DO 120 k = kk - 1,kk - j + 1,-1
322 temp = temp + ap(k)*x(ix)
325 IF (nounit) temp = temp*dconjg(ap(kk))
326 DO 130 k = kk - 1,kk - j + 1,-1
328 temp = temp + dconjg(ap(k))*x(ix)
343 IF (nounit) temp = temp*ap(kk)
345 temp = temp + ap(k)*x(i)
349 IF (nounit) temp = temp*dconjg(ap(kk))
351 temp = temp + dconjg(ap(k))*x(i)
364 IF (nounit) temp = temp*ap(kk)
365 DO 180 k = kk + 1,kk + n - j
367 temp = temp + ap(k)*x(ix)
370 IF (nounit) temp = temp*dconjg(ap(kk))
371 DO 190 k = kk + 1,kk + n - j
373 temp = temp + dconjg(ap(k))*x(ix)
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ztpmv(UPLO, TRANS, DIAG, N, AP, X, INCX)
ZTPMV