190 SUBROUTINE csymm(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
199 INTEGER lda,ldb,ldc,m,n
203 COMPLEX a(lda,*),b(ldb,*),c(ldc,*)
220 INTEGER i,info,j,k,nrowa
225 parameter(one= (1.0e+0,0.0e+0))
227 parameter(zero= (0.0e+0,0.0e+0))
232 IF (
lsame(side,
'L'))
THEN
237 upper =
lsame(uplo,
'U')
242 IF ((.NOT.
lsame(side,
'L')) .AND. (.NOT.
lsame(side,
'R')))
THEN
244 ELSE IF ((.NOT.upper) .AND. (.NOT.
lsame(uplo,
'L')))
THEN
246 ELSE IF (m.LT.0)
THEN
248 ELSE IF (n.LT.0)
THEN
250 ELSE IF (lda.LT.max(1,nrowa))
THEN
252 ELSE IF (ldb.LT.max(1,m))
THEN
254 ELSE IF (ldc.LT.max(1,m))
THEN
258 CALL
xerbla(
'CSYMM ',info)
264 IF ((m.EQ.0) .OR. (n.EQ.0) .OR.
265 + ((alpha.EQ.zero).AND. (beta.EQ.one))) return
269 IF (alpha.EQ.zero)
THEN
270 IF (beta.EQ.zero)
THEN
288 IF (
lsame(side,
'L'))
THEN
298 c(k,j) = c(k,j) + temp1*a(k,i)
299 temp2 = temp2 + b(k,j)*a(k,i)
301 IF (beta.EQ.zero)
THEN
302 c(i,j) = temp1*a(i,i) + alpha*temp2
304 c(i,j) = beta*c(i,j) + temp1*a(i,i) +
315 c(k,j) = c(k,j) + temp1*a(k,i)
316 temp2 = temp2 + b(k,j)*a(k,i)
318 IF (beta.EQ.zero)
THEN
319 c(i,j) = temp1*a(i,i) + alpha*temp2
321 c(i,j) = beta*c(i,j) + temp1*a(i,i) +
333 IF (beta.EQ.zero)
THEN
335 c(i,j) = temp1*b(i,j)
339 c(i,j) = beta*c(i,j) + temp1*b(i,j)
349 c(i,j) = c(i,j) + temp1*b(i,k)
359 c(i,j) = c(i,j) + temp1*b(i,k)