150 SUBROUTINE strsv(UPLO,TRANS,DIAG,N,A,LDA,X,INCX)
159 CHARACTER DIAG,TRANS,UPLO
169 parameter(zero=0.0e+0)
173 INTEGER I,INFO,IX,J,JX,KX
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(
'STRSV ',info)
213 nounit = lsame(diag,
'N')
220 ELSE IF (incx.NE.1)
THEN 227 IF (lsame(trans,
'N'))
THEN 231 IF (lsame(uplo,
'U'))
THEN 234 IF (x(j).NE.zero)
THEN 235 IF (nounit) x(j) = x(j)/a(j,j)
238 x(i) = x(i) - temp*a(i,j)
245 IF (x(jx).NE.zero)
THEN 246 IF (nounit) x(jx) = x(jx)/a(j,j)
251 x(ix) = x(ix) - temp*a(i,j)
260 IF (x(j).NE.zero)
THEN 261 IF (nounit) x(j) = x(j)/a(j,j)
264 x(i) = x(i) - temp*a(i,j)
271 IF (x(jx).NE.zero)
THEN 272 IF (nounit) x(jx) = x(jx)/a(j,j)
277 x(ix) = x(ix) - temp*a(i,j)
288 IF (lsame(uplo,
'U'))
THEN 293 temp = temp - a(i,j)*x(i)
295 IF (nounit) temp = temp/a(j,j)
304 temp = temp - a(i,j)*x(ix)
307 IF (nounit) temp = temp/a(j,j)
316 DO 130 i = n,j + 1,-1
317 temp = temp - a(i,j)*x(i)
319 IF (nounit) temp = temp/a(j,j)
328 DO 150 i = n,j + 1,-1
329 temp = temp - a(i,j)*x(ix)
332 IF (nounit) temp = temp/a(j,j)
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine strsv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
STRSV