148 SUBROUTINE ctrmv(UPLO,TRANS,DIAG,N,A,LDA,X,INCX)
157 CHARACTER diag,trans,uplo
160 COMPLEX a(lda,*),x(*)
167 parameter(zero= (0.0e+0,0.0e+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(
'CTRMV ',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*conjg(a(j,j))
299 DO 100 i = j - 1,1,-1
300 temp = temp + conjg(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*conjg(a(j,j))
318 DO 130 i = j - 1,1,-1
320 temp = temp + conjg(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*conjg(a(j,j))
339 temp = temp + conjg(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*conjg(a(j,j))
359 temp = temp + conjg(a(i,j))*x(ix)