150 SUBROUTINE ctrsv(UPLO,TRANS,DIAG,N,A,LDA,X,INCX)
159 CHARACTER DIAG,TRANS,UPLO
162 COMPLEX A(lda,*),X(*)
169 parameter(zero= (0.0e+0,0.0e+0))
173 INTEGER I,INFO,IX,J,JX,KX
174 LOGICAL NOCONJ,NOUNIT
190 IF (.NOT.lsame(uplo,
'U') .AND. .NOT.lsame(uplo,
'L'))
THEN 192 ELSE IF (.NOT.lsame(trans,
'N') .AND. .NOT.lsame(trans,
'T') .AND.
193 + .NOT.lsame(trans,
'C'))
THEN 195 ELSE IF (.NOT.lsame(diag,
'U') .AND. .NOT.lsame(diag,
'N'))
THEN 197 ELSE IF (n.LT.0)
THEN 199 ELSE IF (lda.LT.max(1,n))
THEN 201 ELSE IF (incx.EQ.0)
THEN 205 CALL xerbla(
'CTRSV ',info)
213 noconj = lsame(trans,
'T')
214 nounit = lsame(diag,
'N')
221 ELSE IF (incx.NE.1)
THEN 228 IF (lsame(trans,
'N'))
THEN 232 IF (lsame(uplo,
'U'))
THEN 235 IF (x(j).NE.zero)
THEN 236 IF (nounit) x(j) = x(j)/a(j,j)
239 x(i) = x(i) - temp*a(i,j)
246 IF (x(jx).NE.zero)
THEN 247 IF (nounit) x(jx) = x(jx)/a(j,j)
252 x(ix) = x(ix) - temp*a(i,j)
261 IF (x(j).NE.zero)
THEN 262 IF (nounit) x(j) = x(j)/a(j,j)
265 x(i) = x(i) - temp*a(i,j)
272 IF (x(jx).NE.zero)
THEN 273 IF (nounit) x(jx) = x(jx)/a(j,j)
278 x(ix) = x(ix) - temp*a(i,j)
289 IF (lsame(uplo,
'U'))
THEN 295 temp = temp - a(i,j)*x(i)
297 IF (nounit) temp = temp/a(j,j)
300 temp = temp - conjg(a(i,j))*x(i)
302 IF (nounit) temp = temp/conjg(a(j,j))
313 temp = temp - a(i,j)*x(ix)
316 IF (nounit) temp = temp/a(j,j)
319 temp = temp - conjg(a(i,j))*x(ix)
322 IF (nounit) temp = temp/conjg(a(j,j))
333 DO 150 i = n,j + 1,-1
334 temp = temp - a(i,j)*x(i)
336 IF (nounit) temp = temp/a(j,j)
338 DO 160 i = n,j + 1,-1
339 temp = temp - conjg(a(i,j))*x(i)
341 IF (nounit) temp = temp/conjg(a(j,j))
352 DO 180 i = n,j + 1,-1
353 temp = temp - a(i,j)*x(ix)
356 IF (nounit) temp = temp/a(j,j)
358 DO 190 i = n,j + 1,-1
359 temp = temp - conjg(a(i,j))*x(ix)
362 IF (nounit) temp = temp/conjg(a(j,j))
subroutine ctrsv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
CTRSV
subroutine xerbla(SRNAME, INFO)
XERBLA