146 SUBROUTINE ctrmv(UPLO,TRANS,DIAG,N,A,LDA,X,INCX)
154 CHARACTER DIAG,TRANS,UPLO
157 COMPLEX A(lda,*),X(*)
164 parameter(zero= (0.0e+0,0.0e+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(
'CTRMV ',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*conjg(a(j,j))
296 DO 100 i = j - 1,1,-1
297 temp = temp + conjg(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*conjg(a(j,j))
315 DO 130 i = j - 1,1,-1
317 temp = temp + conjg(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*conjg(a(j,j))
336 temp = temp + conjg(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*conjg(a(j,j))
356 temp = temp + conjg(a(i,j))*x(ix)
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ctrmv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
CTRMV