148 SUBROUTINE strsv(UPLO,TRANS,DIAG,N,A,LDA,X,INCX)
156 CHARACTER DIAG,TRANS,UPLO
166 parameter(zero=0.0e+0)
170 INTEGER I,INFO,IX,J,JX,KX
187 IF (.NOT.lsame(uplo,
'U') .AND. .NOT.lsame(uplo,
'L'))
THEN
189 ELSE IF (.NOT.lsame(trans,
'N') .AND. .NOT.lsame(trans,
'T') .AND.
190 + .NOT.lsame(trans,
'C'))
THEN
192 ELSE IF (.NOT.lsame(diag,
'U') .AND. .NOT.lsame(diag,
'N'))
THEN
194 ELSE IF (n.LT.0)
THEN
196 ELSE IF (lda.LT.max(1,n))
THEN
198 ELSE IF (incx.EQ.0)
THEN
202 CALL xerbla(
'STRSV ',info)
210 nounit = lsame(diag,
'N')
217 ELSE IF (incx.NE.1)
THEN
224 IF (lsame(trans,
'N'))
THEN
228 IF (lsame(uplo,
'U'))
THEN
231 IF (x(j).NE.zero)
THEN
232 IF (nounit) x(j) = x(j)/a(j,j)
235 x(i) = x(i) - temp*a(i,j)
242 IF (x(jx).NE.zero)
THEN
243 IF (nounit) x(jx) = x(jx)/a(j,j)
248 x(ix) = x(ix) - temp*a(i,j)
257 IF (x(j).NE.zero)
THEN
258 IF (nounit) x(j) = x(j)/a(j,j)
261 x(i) = x(i) - temp*a(i,j)
268 IF (x(jx).NE.zero)
THEN
269 IF (nounit) x(jx) = x(jx)/a(j,j)
274 x(ix) = x(ix) - temp*a(i,j)
285 IF (lsame(uplo,
'U'))
THEN
290 temp = temp - a(i,j)*x(i)
292 IF (nounit) temp = temp/a(j,j)
301 temp = temp - a(i,j)*x(ix)
304 IF (nounit) temp = temp/a(j,j)
313 DO 130 i = n,j + 1,-1
314 temp = temp - a(i,j)*x(i)
316 IF (nounit) temp = temp/a(j,j)
325 DO 150 i = n,j + 1,-1
326 temp = temp - a(i,j)*x(ix)
329 IF (nounit) temp = temp/a(j,j)
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine strsv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
STRSV