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. .NOT.lsame(trans,
'T') .AND.
188 + .NOT.lsame(trans,
'C'))
THEN
190 ELSE IF (.NOT.lsame(diag,
'U') .AND. .NOT.lsame(diag,
'N'))
THEN
192 ELSE IF (n.LT.0)
THEN
194 ELSE IF (lda.LT.max(1,n))
THEN
196 ELSE IF (incx.EQ.0)
THEN
200 CALL xerbla(
'ZTRMV ',info)
208 noconj = lsame(trans,
'T')
209 nounit = lsame(diag,
'N')
216 ELSE IF (incx.NE.1)
THEN
223 IF (lsame(trans,
'N'))
THEN
227 IF (lsame(uplo,
'U'))
THEN
230 IF (x(j).NE.zero)
THEN
233 x(i) = x(i) + temp*a(i,j)
235 IF (nounit) x(j) = x(j)*a(j,j)
241 IF (x(jx).NE.zero)
THEN
245 x(ix) = x(ix) + temp*a(i,j)
248 IF (nounit) x(jx) = x(jx)*a(j,j)
256 IF (x(j).NE.zero)
THEN
259 x(i) = x(i) + temp*a(i,j)
261 IF (nounit) x(j) = x(j)*a(j,j)
268 IF (x(jx).NE.zero)
THEN
272 x(ix) = x(ix) + temp*a(i,j)
275 IF (nounit) x(jx) = x(jx)*a(j,j)
285 IF (lsame(uplo,
'U'))
THEN
290 IF (nounit) temp = temp*a(j,j)
292 temp = temp + a(i,j)*x(i)
295 IF (nounit) temp = temp*dconjg(a(j,j))
296 DO 100 i = j - 1,1,-1
297 temp = temp + dconjg(a(i,j))*x(i)
308 IF (nounit) temp = temp*a(j,j)
309 DO 120 i = j - 1,1,-1
311 temp = temp + a(i,j)*x(ix)
314 IF (nounit) temp = temp*dconjg(a(j,j))
315 DO 130 i = j - 1,1,-1
317 temp = temp + dconjg(a(i,j))*x(ix)
329 IF (nounit) temp = temp*a(j,j)
331 temp = temp + a(i,j)*x(i)
334 IF (nounit) temp = temp*dconjg(a(j,j))
336 temp = temp + dconjg(a(i,j))*x(i)
347 IF (nounit) temp = temp*a(j,j)
350 temp = temp + a(i,j)*x(ix)
353 IF (nounit) temp = temp*dconjg(a(j,j))
356 temp = temp + dconjg(a(i,j))*x(ix)
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ztrmv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
ZTRMV