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 strsv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
STRSV
subroutine xerbla(SRNAME, INFO)
XERBLA