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.
238 + (.NOT.lsame(side,
'R')))
THEN
240 ELSE IF ((.NOT.upper) .AND. (.NOT.lsame(uplo,
'L')))
THEN
242 ELSE IF (m.LT.0)
THEN
244 ELSE IF (n.LT.0)
THEN
246 ELSE IF (lda.LT.max(1,nrowa))
THEN
248 ELSE IF (ldb.LT.max(1,m))
THEN
250 ELSE IF (ldc.LT.max(1,m))
THEN
254 CALL xerbla(
'DSYMM ',info)
260 IF ((m.EQ.0) .OR. (n.EQ.0) .OR.
261 + ((alpha.EQ.zero).AND. (beta.EQ.one)))
RETURN
265 IF (alpha.EQ.zero)
THEN
266 IF (beta.EQ.zero)
THEN
284 IF (lsame(side,
'L'))
THEN
294 c(k,j) = c(k,j) + temp1*a(k,i)
295 temp2 = temp2 + b(k,j)*a(k,i)
297 IF (beta.EQ.zero)
THEN
298 c(i,j) = temp1*a(i,i) + alpha*temp2
300 c(i,j) = beta*c(i,j) + temp1*a(i,i) +
311 c(k,j) = c(k,j) + temp1*a(k,i)
312 temp2 = temp2 + b(k,j)*a(k,i)
314 IF (beta.EQ.zero)
THEN
315 c(i,j) = temp1*a(i,i) + alpha*temp2
317 c(i,j) = beta*c(i,j) + temp1*a(i,i) +
329 IF (beta.EQ.zero)
THEN
331 c(i,j) = temp1*b(i,j)
335 c(i,j) = beta*c(i,j) + temp1*b(i,j)
345 c(i,j) = c(i,j) + temp1*b(i,k)
355 c(i,j) = c(i,j) + temp1*b(i,k)
subroutine xerbla(srname, info)
subroutine dsymm(side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)
DSYMM