148 SUBROUTINE dtrmv(UPLO,TRANS,DIAG,N,A,LDA,X,INCX)
157 CHARACTER DIAG,TRANS,UPLO
160 DOUBLE PRECISION A(lda,*),X(*)
166 DOUBLE PRECISION ZERO
167 parameter(zero=0.0d+0)
170 DOUBLE PRECISION TEMP
171 INTEGER I,INFO,IX,J,JX,KX
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(
'DTRMV ',info)
211 nounit = lsame(diag,
'N')
218 ELSE IF (incx.NE.1)
THEN 225 IF (lsame(trans,
'N'))
THEN 229 IF (lsame(uplo,
'U'))
THEN 232 IF (x(j).NE.zero)
THEN 235 x(i) = x(i) + temp*a(i,j)
237 IF (nounit) x(j) = x(j)*a(j,j)
243 IF (x(jx).NE.zero)
THEN 247 x(ix) = x(ix) + temp*a(i,j)
250 IF (nounit) x(jx) = x(jx)*a(j,j)
258 IF (x(j).NE.zero)
THEN 261 x(i) = x(i) + temp*a(i,j)
263 IF (nounit) x(j) = x(j)*a(j,j)
270 IF (x(jx).NE.zero)
THEN 274 x(ix) = x(ix) + temp*a(i,j)
277 IF (nounit) x(jx) = x(jx)*a(j,j)
287 IF (lsame(uplo,
'U'))
THEN 291 IF (nounit) temp = temp*a(j,j)
293 temp = temp + a(i,j)*x(i)
302 IF (nounit) temp = temp*a(j,j)
303 DO 110 i = j - 1,1,-1
305 temp = temp + a(i,j)*x(ix)
315 IF (nounit) temp = temp*a(j,j)
317 temp = temp + a(i,j)*x(i)
326 IF (nounit) temp = temp*a(j,j)
329 temp = temp + a(i,j)*x(ix)
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dtrmv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
DTRMV