188 SUBROUTINE ssymm(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
196 INTEGER LDA,LDB,LDC,M,N
200 REAL A(LDA,*),B(LDB,*),C(LDC,*)
217 INTEGER I,INFO,J,K,NROWA
222 parameter(one=1.0e+0,zero=0.0e+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.
241 + (.NOT.lsame(uplo,
'L')))
THEN
243 ELSE IF (m.LT.0)
THEN
245 ELSE IF (n.LT.0)
THEN
247 ELSE IF (lda.LT.max(1,nrowa))
THEN
249 ELSE IF (ldb.LT.max(1,m))
THEN
251 ELSE IF (ldc.LT.max(1,m))
THEN
255 CALL xerbla(
'SSYMM ',info)
261 IF ((m.EQ.0) .OR. (n.EQ.0) .OR.
262 + ((alpha.EQ.zero).AND. (beta.EQ.one)))
RETURN
266 IF (alpha.EQ.zero)
THEN
267 IF (beta.EQ.zero)
THEN
285 IF (lsame(side,
'L'))
THEN
295 c(k,j) = c(k,j) + temp1*a(k,i)
296 temp2 = temp2 + b(k,j)*a(k,i)
298 IF (beta.EQ.zero)
THEN
299 c(i,j) = temp1*a(i,i) + alpha*temp2
301 c(i,j) = beta*c(i,j) + temp1*a(i,i) +
312 c(k,j) = c(k,j) + temp1*a(k,i)
313 temp2 = temp2 + b(k,j)*a(k,i)
315 IF (beta.EQ.zero)
THEN
316 c(i,j) = temp1*a(i,i) + alpha*temp2
318 c(i,j) = beta*c(i,j) + temp1*a(i,i) +
330 IF (beta.EQ.zero)
THEN
332 c(i,j) = temp1*b(i,j)
336 c(i,j) = beta*c(i,j) + temp1*b(i,j)
346 c(i,j) = c(i,j) + temp1*b(i,k)
356 c(i,j) = c(i,j) + temp1*b(i,k)
subroutine xerbla(srname, info)
subroutine ssymm(side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)
SSYMM