146 SUBROUTINE ztrmv(UPLO,TRANS,DIAG,N,A,LDA,X,INCX)
154 CHARACTER DIAG,TRANS,UPLO
157 COMPLEX*16 A(LDA,*),X(*)
164 parameter(zero= (0.0d+0,0.0d+0))
168 INTEGER I,INFO,IX,J,JX,KX
169 LOGICAL NOCONJ,NOUNIT
185 IF (.NOT.lsame(uplo,
'U') .AND. .NOT.lsame(uplo,
'L'))
THEN
187 ELSE IF (.NOT.lsame(trans,
'N') .AND.
188 + .NOT.lsame(trans,
'T') .AND.
189 + .NOT.lsame(trans,
'C'))
THEN
191 ELSE IF (.NOT.lsame(diag,
'U') .AND.
192 + .NOT.lsame(diag,
'N'))
THEN
194 ELSE IF (n.LT.0)
THEN
196 ELSE IF (lda.LT.max(1,n))
THEN
198 ELSE IF (incx.EQ.0)
THEN
202 CALL xerbla(
'ZTRMV ',info)
210 noconj = lsame(trans,
'T')
211 nounit = lsame(diag,
'N')
218 ELSE IF (incx.NE.1)
THEN
225 IF (lsame(trans,
'N'))
THEN
229 IF (lsame(uplo,
'U'))
THEN
232 IF (x(j).NE.zero)
THEN
235 x(i) = x(i) + temp*a(i,j)
237 IF (nounit) x(j) = x(j)*a(j,j)
243 IF (x(jx).NE.zero)
THEN
247 x(ix) = x(ix) + temp*a(i,j)
250 IF (nounit) x(jx) = x(jx)*a(j,j)
258 IF (x(j).NE.zero)
THEN
261 x(i) = x(i) + temp*a(i,j)
263 IF (nounit) x(j) = x(j)*a(j,j)
270 IF (x(jx).NE.zero)
THEN
274 x(ix) = x(ix) + temp*a(i,j)
277 IF (nounit) x(jx) = x(jx)*a(j,j)
287 IF (lsame(uplo,
'U'))
THEN
292 IF (nounit) temp = temp*a(j,j)
294 temp = temp + a(i,j)*x(i)
297 IF (nounit) temp = temp*dconjg(a(j,j))
298 DO 100 i = j - 1,1,-1
299 temp = temp + dconjg(a(i,j))*x(i)
310 IF (nounit) temp = temp*a(j,j)
311 DO 120 i = j - 1,1,-1
313 temp = temp + a(i,j)*x(ix)
316 IF (nounit) temp = temp*dconjg(a(j,j))
317 DO 130 i = j - 1,1,-1
319 temp = temp + dconjg(a(i,j))*x(ix)
331 IF (nounit) temp = temp*a(j,j)
333 temp = temp + a(i,j)*x(i)
336 IF (nounit) temp = temp*dconjg(a(j,j))
338 temp = temp + dconjg(a(i,j))*x(i)
349 IF (nounit) temp = temp*a(j,j)
352 temp = temp + a(i,j)*x(ix)
355 IF (nounit) temp = temp*dconjg(a(j,j))
358 temp = temp + dconjg(a(i,j))*x(ix)
subroutine xerbla(srname, info)
subroutine ztrmv(uplo, trans, diag, n, a, lda, x, incx)
ZTRMV