190 SUBROUTINE chemm(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
198 INTEGER LDA,LDB,LDC,M,N
202 COMPLEX A(lda,*),B(ldb,*),C(ldc,*)
215 INTRINSIC conjg,max,real
219 INTEGER I,INFO,J,K,NROWA
224 parameter(one= (1.0e+0,0.0e+0))
226 parameter(zero= (0.0e+0,0.0e+0))
231 IF (lsame(side,
'L'))
THEN 236 upper = lsame(uplo,
'U')
241 IF ((.NOT.lsame(side,
'L')) .AND. (.NOT.lsame(side,
'R')))
THEN 243 ELSE IF ((.NOT.upper) .AND. (.NOT.lsame(uplo,
'L')))
THEN 245 ELSE IF (m.LT.0)
THEN 247 ELSE IF (n.LT.0)
THEN 249 ELSE IF (lda.LT.max(1,nrowa))
THEN 251 ELSE IF (ldb.LT.max(1,m))
THEN 253 ELSE IF (ldc.LT.max(1,m))
THEN 257 CALL xerbla(
'CHEMM ',info)
263 IF ((m.EQ.0) .OR. (n.EQ.0) .OR.
264 + ((alpha.EQ.zero).AND. (beta.EQ.one)))
RETURN 268 IF (alpha.EQ.zero)
THEN 269 IF (beta.EQ.zero)
THEN 287 IF (lsame(side,
'L'))
THEN 297 c(k,j) = c(k,j) + temp1*a(k,i)
298 temp2 = temp2 + b(k,j)*conjg(a(k,i))
300 IF (beta.EQ.zero)
THEN 301 c(i,j) = temp1*
REAL(A(I,I)) + ALPHA*TEMP2
303 c(i,j) = beta*c(i,j) + temp1*
REAL(A(I,I)) +
314 c(k,j) = c(k,j) + temp1*a(k,i)
315 temp2 = temp2 + b(k,j)*conjg(a(k,i))
317 IF (beta.EQ.zero)
THEN 318 c(i,j) = temp1*
REAL(A(I,I)) + ALPHA*TEMP2
320 c(i,j) = beta*c(i,j) + temp1*
REAL(A(I,I)) +
331 temp1 = alpha*
REAL(a(j,j))
332 IF (beta.EQ.zero)
THEN 334 c(i,j) = temp1*b(i,j)
338 c(i,j) = beta*c(i,j) + temp1*b(i,j)
345 temp1 = alpha*conjg(a(j,k))
348 c(i,j) = c(i,j) + temp1*b(i,k)
353 temp1 = alpha*conjg(a(j,k))
358 c(i,j) = c(i,j) + temp1*b(i,k)
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine chemm(SIDE, UPLO, M, N, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
CHEMM