188 SUBROUTINE dsymm(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
195 DOUBLE PRECISION ALPHA,BETA
196 INTEGER LDA,LDB,LDC,M,N
200 DOUBLE PRECISION A(lda,*),B(ldb,*),C(ldc,*)
216 DOUBLE PRECISION TEMP1,TEMP2
217 INTEGER I,INFO,J,K,NROWA
221 DOUBLE PRECISION ONE,ZERO
222 parameter(one=1.0d+0,zero=0.0d+0)
227 IF (lsame(side,
'L'))
THEN 232 upper = lsame(uplo,
'U')
237 IF ((.NOT.lsame(side,
'L')) .AND. (.NOT.lsame(side,
'R')))
THEN 239 ELSE IF ((.NOT.upper) .AND. (.NOT.lsame(uplo,
'L')))
THEN 241 ELSE IF (m.LT.0)
THEN 243 ELSE IF (n.LT.0)
THEN 245 ELSE IF (lda.LT.max(1,nrowa))
THEN 247 ELSE IF (ldb.LT.max(1,m))
THEN 249 ELSE IF (ldc.LT.max(1,m))
THEN 253 CALL xerbla(
'DSYMM ',info)
259 IF ((m.EQ.0) .OR. (n.EQ.0) .OR.
260 + ((alpha.EQ.zero).AND. (beta.EQ.one)))
RETURN 264 IF (alpha.EQ.zero)
THEN 265 IF (beta.EQ.zero)
THEN 283 IF (lsame(side,
'L'))
THEN 293 c(k,j) = c(k,j) + temp1*a(k,i)
294 temp2 = temp2 + b(k,j)*a(k,i)
296 IF (beta.EQ.zero)
THEN 297 c(i,j) = temp1*a(i,i) + alpha*temp2
299 c(i,j) = beta*c(i,j) + temp1*a(i,i) +
310 c(k,j) = c(k,j) + temp1*a(k,i)
311 temp2 = temp2 + b(k,j)*a(k,i)
313 IF (beta.EQ.zero)
THEN 314 c(i,j) = temp1*a(i,i) + alpha*temp2
316 c(i,j) = beta*c(i,j) + temp1*a(i,i) +
328 IF (beta.EQ.zero)
THEN 330 c(i,j) = temp1*b(i,j)
334 c(i,j) = beta*c(i,j) + temp1*b(i,j)
344 c(i,j) = c(i,j) + temp1*b(i,k)
354 c(i,j) = c(i,j) + temp1*b(i,k)
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dsymm(SIDE, UPLO, M, N, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
DSYMM