176 SUBROUTINE ctrmm(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB)
185 CHARACTER DIAG,SIDE,TRANSA,UPLO
188 COMPLEX A(lda,*),B(ldb,*)
205 INTEGER I,INFO,J,K,NROWA
206 LOGICAL LSIDE,NOCONJ,NOUNIT,UPPER
210 parameter(one= (1.0e+0,0.0e+0))
212 parameter(zero= (0.0e+0,0.0e+0))
217 lside = lsame(side,
'L')
223 noconj = lsame(transa,
'T')
224 nounit = lsame(diag,
'N')
225 upper = lsame(uplo,
'U')
228 IF ((.NOT.lside) .AND. (.NOT.lsame(side,
'R')))
THEN 230 ELSE IF ((.NOT.upper) .AND. (.NOT.lsame(uplo,
'L')))
THEN 232 ELSE IF ((.NOT.lsame(transa,
'N')) .AND.
233 + (.NOT.lsame(transa,
'T')) .AND.
234 + (.NOT.lsame(transa,
'C')))
THEN 236 ELSE IF ((.NOT.lsame(diag,
'U')) .AND. (.NOT.lsame(diag,
'N')))
THEN 238 ELSE IF (m.LT.0)
THEN 240 ELSE IF (n.LT.0)
THEN 242 ELSE IF (lda.LT.max(1,nrowa))
THEN 244 ELSE IF (ldb.LT.max(1,m))
THEN 248 CALL xerbla(
'CTRMM ',info)
254 IF (m.EQ.0 .OR. n.EQ.0)
RETURN 258 IF (alpha.EQ.zero)
THEN 270 IF (lsame(transa,
'N'))
THEN 277 IF (b(k,j).NE.zero)
THEN 280 b(i,j) = b(i,j) + temp*a(i,k)
282 IF (nounit) temp = temp*a(k,k)
290 IF (b(k,j).NE.zero)
THEN 293 IF (nounit) b(k,j) = b(k,j)*a(k,k)
295 b(i,j) = b(i,j) + temp*a(i,k)
310 IF (nounit) temp = temp*a(i,i)
312 temp = temp + a(k,i)*b(k,j)
315 IF (nounit) temp = temp*conjg(a(i,i))
317 temp = temp + conjg(a(k,i))*b(k,j)
328 IF (nounit) temp = temp*a(i,i)
330 temp = temp + a(k,i)*b(k,j)
333 IF (nounit) temp = temp*conjg(a(i,i))
335 temp = temp + conjg(a(k,i))*b(k,j)
344 IF (lsame(transa,
'N'))
THEN 351 IF (nounit) temp = temp*a(j,j)
356 IF (a(k,j).NE.zero)
THEN 359 b(i,j) = b(i,j) + temp*b(i,k)
367 IF (nounit) temp = temp*a(j,j)
372 IF (a(k,j).NE.zero)
THEN 375 b(i,j) = b(i,j) + temp*b(i,k)
388 IF (a(j,k).NE.zero)
THEN 392 temp = alpha*conjg(a(j,k))
395 b(i,j) = b(i,j) + temp*b(i,k)
404 temp = temp*conjg(a(k,k))
407 IF (temp.NE.one)
THEN 416 IF (a(j,k).NE.zero)
THEN 420 temp = alpha*conjg(a(j,k))
423 b(i,j) = b(i,j) + temp*b(i,k)
432 temp = temp*conjg(a(k,k))
435 IF (temp.NE.one)
THEN subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ctrmm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
CTRMM