186 SUBROUTINE zgemm(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
193 COMPLEX*16 ALPHA,BETA
194 INTEGER K,LDA,LDB,LDC,M,N
195 CHARACTER TRANSA,TRANSB
198 COMPLEX*16 A(LDA,*),B(LDB,*),C(LDC,*)
215 INTEGER I,INFO,J,L,NROWA,NROWB
216 LOGICAL CONJA,CONJB,NOTA,NOTB
220 parameter(one= (1.0d+0,0.0d+0))
222 parameter(zero= (0.0d+0,0.0d+0))
230 nota = lsame(transa,
'N')
231 notb = lsame(transb,
'N')
232 conja = lsame(transa,
'C')
233 conjb = lsame(transb,
'C')
248 IF ((.NOT.nota) .AND. (.NOT.conja) .AND.
249 + (.NOT.lsame(transa,
'T')))
THEN
251 ELSE IF ((.NOT.notb) .AND. (.NOT.conjb) .AND.
252 + (.NOT.lsame(transb,
'T')))
THEN
254 ELSE IF (m.LT.0)
THEN
256 ELSE IF (n.LT.0)
THEN
258 ELSE IF (k.LT.0)
THEN
260 ELSE IF (lda.LT.max(1,nrowa))
THEN
262 ELSE IF (ldb.LT.max(1,nrowb))
THEN
264 ELSE IF (ldc.LT.max(1,m))
THEN
268 CALL xerbla(
'ZGEMM ',info)
274 IF ((m.EQ.0) .OR. (n.EQ.0) .OR.
275 + (((alpha.EQ.zero).OR. (k.EQ.0)).AND. (beta.EQ.one)))
RETURN
279 IF (alpha.EQ.zero)
THEN
280 IF (beta.EQ.zero)
THEN
304 IF (beta.EQ.zero)
THEN
308 ELSE IF (beta.NE.one)
THEN
316 c(i,j) = c(i,j) + temp*a(i,l)
328 temp = temp + dconjg(a(l,i))*b(l,j)
330 IF (beta.EQ.zero)
THEN
333 c(i,j) = alpha*temp + beta*c(i,j)
345 temp = temp + a(l,i)*b(l,j)
347 IF (beta.EQ.zero)
THEN
350 c(i,j) = alpha*temp + beta*c(i,j)
361 IF (beta.EQ.zero)
THEN
365 ELSE IF (beta.NE.one)
THEN
371 temp = alpha*dconjg(b(j,l))
373 c(i,j) = c(i,j) + temp*a(i,l)
382 IF (beta.EQ.zero)
THEN
386 ELSE IF (beta.NE.one)
THEN
394 c(i,j) = c(i,j) + temp*a(i,l)
408 temp = temp + dconjg(a(l,i))*dconjg(b(j,l))
410 IF (beta.EQ.zero)
THEN
413 c(i,j) = alpha*temp + beta*c(i,j)
425 temp = temp + dconjg(a(l,i))*b(j,l)
427 IF (beta.EQ.zero)
THEN
430 c(i,j) = alpha*temp + beta*c(i,j)
444 temp = temp + a(l,i)*dconjg(b(j,l))
446 IF (beta.EQ.zero)
THEN
449 c(i,j) = alpha*temp + beta*c(i,j)
461 temp = temp + a(l,i)*b(j,l)
463 IF (beta.EQ.zero)
THEN
466 c(i,j) = alpha*temp + beta*c(i,j)
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zgemm(TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
ZGEMM