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