190 SUBROUTINE dsymm(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
198 DOUBLE PRECISION ALPHA,BETA
199 INTEGER LDA,LDB,LDC,M,N
203 DOUBLE PRECISION A(lda,*),B(ldb,*),C(ldc,*)
219 DOUBLE PRECISION TEMP1,TEMP2
220 INTEGER I,INFO,J,K,NROWA
224 DOUBLE PRECISION ONE,ZERO
225 parameter(one=1.0d+0,zero=0.0d+0)
230 IF (lsame(side,
'L'))
THEN 235 upper = lsame(uplo,
'U')
240 IF ((.NOT.lsame(side,
'L')) .AND. (.NOT.lsame(side,
'R')))
THEN 242 ELSE IF ((.NOT.upper) .AND. (.NOT.lsame(uplo,
'L')))
THEN 244 ELSE IF (m.LT.0)
THEN 246 ELSE IF (n.LT.0)
THEN 248 ELSE IF (lda.LT.max(1,nrowa))
THEN 250 ELSE IF (ldb.LT.max(1,m))
THEN 252 ELSE IF (ldc.LT.max(1,m))
THEN 256 CALL xerbla(
'DSYMM ',info)
262 IF ((m.EQ.0) .OR. (n.EQ.0) .OR.
263 + ((alpha.EQ.zero).AND. (beta.EQ.one)))
RETURN 267 IF (alpha.EQ.zero)
THEN 268 IF (beta.EQ.zero)
THEN 286 IF (lsame(side,
'L'))
THEN 296 c(k,j) = c(k,j) + temp1*a(k,i)
297 temp2 = temp2 + b(k,j)*a(k,i)
299 IF (beta.EQ.zero)
THEN 300 c(i,j) = temp1*a(i,i) + alpha*temp2
302 c(i,j) = beta*c(i,j) + temp1*a(i,i) +
313 c(k,j) = c(k,j) + temp1*a(k,i)
314 temp2 = temp2 + b(k,j)*a(k,i)
316 IF (beta.EQ.zero)
THEN 317 c(i,j) = temp1*a(i,i) + alpha*temp2
319 c(i,j) = beta*c(i,j) + temp1*a(i,i) +
331 IF (beta.EQ.zero)
THEN 333 c(i,j) = temp1*b(i,j)
337 c(i,j) = beta*c(i,j) + temp1*b(i,j)
347 c(i,j) = c(i,j) + temp1*b(i,k)
357 c(i,j) = c(i,j) + temp1*b(i,k)
subroutine dsymm(SIDE, UPLO, M, N, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
DSYMM
subroutine xerbla(SRNAME, INFO)
XERBLA