148 SUBROUTINE ztrmv(UPLO,TRANS,DIAG,N,A,LDA,X,INCX)
157 CHARACTER DIAG,TRANS,UPLO
160 COMPLEX*16 A(lda,*),X(*)
167 parameter(zero= (0.0d+0,0.0d+0))
171 INTEGER I,INFO,IX,J,JX,KX
172 LOGICAL NOCONJ,NOUNIT
188 IF (.NOT.lsame(uplo,
'U') .AND. .NOT.lsame(uplo,
'L'))
THEN 190 ELSE IF (.NOT.lsame(trans,
'N') .AND. .NOT.lsame(trans,
'T') .AND.
191 + .NOT.lsame(trans,
'C'))
THEN 193 ELSE IF (.NOT.lsame(diag,
'U') .AND. .NOT.lsame(diag,
'N'))
THEN 195 ELSE IF (n.LT.0)
THEN 197 ELSE IF (lda.LT.max(1,n))
THEN 199 ELSE IF (incx.EQ.0)
THEN 203 CALL xerbla(
'ZTRMV ',info)
211 noconj = lsame(trans,
'T')
212 nounit = lsame(diag,
'N')
219 ELSE IF (incx.NE.1)
THEN 226 IF (lsame(trans,
'N'))
THEN 230 IF (lsame(uplo,
'U'))
THEN 233 IF (x(j).NE.zero)
THEN 236 x(i) = x(i) + temp*a(i,j)
238 IF (nounit) x(j) = x(j)*a(j,j)
244 IF (x(jx).NE.zero)
THEN 248 x(ix) = x(ix) + temp*a(i,j)
251 IF (nounit) x(jx) = x(jx)*a(j,j)
259 IF (x(j).NE.zero)
THEN 262 x(i) = x(i) + temp*a(i,j)
264 IF (nounit) x(j) = x(j)*a(j,j)
271 IF (x(jx).NE.zero)
THEN 275 x(ix) = x(ix) + temp*a(i,j)
278 IF (nounit) x(jx) = x(jx)*a(j,j)
288 IF (lsame(uplo,
'U'))
THEN 293 IF (nounit) temp = temp*a(j,j)
295 temp = temp + a(i,j)*x(i)
298 IF (nounit) temp = temp*dconjg(a(j,j))
299 DO 100 i = j - 1,1,-1
300 temp = temp + dconjg(a(i,j))*x(i)
311 IF (nounit) temp = temp*a(j,j)
312 DO 120 i = j - 1,1,-1
314 temp = temp + a(i,j)*x(ix)
317 IF (nounit) temp = temp*dconjg(a(j,j))
318 DO 130 i = j - 1,1,-1
320 temp = temp + dconjg(a(i,j))*x(ix)
332 IF (nounit) temp = temp*a(j,j)
334 temp = temp + a(i,j)*x(i)
337 IF (nounit) temp = temp*dconjg(a(j,j))
339 temp = temp + dconjg(a(i,j))*x(i)
350 IF (nounit) temp = temp*a(j,j)
353 temp = temp + a(i,j)*x(ix)
356 IF (nounit) temp = temp*dconjg(a(j,j))
359 temp = temp + dconjg(a(i,j))*x(ix)
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ztrmv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
ZTRMV