168 SUBROUTINE dsyrk(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC)
175 DOUBLE PRECISION ALPHA,BETA
180 DOUBLE PRECISION A(lda,*),C(ldc,*)
196 DOUBLE PRECISION TEMP
197 INTEGER I,INFO,J,L,NROWA
201 DOUBLE PRECISION ONE,ZERO
202 parameter(one=1.0d+0,zero=0.0d+0)
207 IF (lsame(trans,
'N'))
THEN 212 upper = lsame(uplo,
'U')
215 IF ((.NOT.upper) .AND. (.NOT.lsame(uplo,
'L')))
THEN 217 ELSE IF ((.NOT.lsame(trans,
'N')) .AND.
218 + (.NOT.lsame(trans,
'T')) .AND.
219 + (.NOT.lsame(trans,
'C')))
THEN 221 ELSE IF (n.LT.0)
THEN 223 ELSE IF (k.LT.0)
THEN 225 ELSE IF (lda.LT.max(1,nrowa))
THEN 227 ELSE IF (ldc.LT.max(1,n))
THEN 231 CALL xerbla(
'DSYRK ',info)
237 IF ((n.EQ.0) .OR. (((alpha.EQ.zero).OR.
238 + (k.EQ.0)).AND. (beta.EQ.one)))
RETURN 242 IF (alpha.EQ.zero)
THEN 244 IF (beta.EQ.zero)
THEN 258 IF (beta.EQ.zero)
THEN 277 IF (lsame(trans,
'N'))
THEN 283 IF (beta.EQ.zero)
THEN 287 ELSE IF (beta.NE.one)
THEN 293 IF (a(j,l).NE.zero)
THEN 296 c(i,j) = c(i,j) + temp*a(i,l)
303 IF (beta.EQ.zero)
THEN 307 ELSE IF (beta.NE.one)
THEN 313 IF (a(j,l).NE.zero)
THEN 316 c(i,j) = c(i,j) + temp*a(i,l)
331 temp = temp + a(l,i)*a(l,j)
333 IF (beta.EQ.zero)
THEN 336 c(i,j) = alpha*temp + beta*c(i,j)
345 temp = temp + a(l,i)*a(l,j)
347 IF (beta.EQ.zero)
THEN 350 c(i,j) = alpha*temp + beta*c(i,j)
subroutine dsyrk(UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)
DSYRK
subroutine xerbla(SRNAME, INFO)
XERBLA