178 SUBROUTINE ctrmm(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB)
188 CHARACTER DIAG,SIDE,TRANSA,UPLO
191 COMPLEX A(lda,*),B(ldb,*)
208 INTEGER I,INFO,J,K,NROWA
209 LOGICAL LSIDE,NOCONJ,NOUNIT,UPPER
213 parameter(one= (1.0e+0,0.0e+0))
215 parameter(zero= (0.0e+0,0.0e+0))
220 lside = lsame(side,
'L')
226 noconj = lsame(transa,
'T')
227 nounit = lsame(diag,
'N')
228 upper = lsame(uplo,
'U')
231 IF ((.NOT.lside) .AND. (.NOT.lsame(side,
'R')))
THEN 233 ELSE IF ((.NOT.upper) .AND. (.NOT.lsame(uplo,
'L')))
THEN 235 ELSE IF ((.NOT.lsame(transa,
'N')) .AND.
236 + (.NOT.lsame(transa,
'T')) .AND.
237 + (.NOT.lsame(transa,
'C')))
THEN 239 ELSE IF ((.NOT.lsame(diag,
'U')) .AND. (.NOT.lsame(diag,
'N')))
THEN 241 ELSE IF (m.LT.0)
THEN 243 ELSE IF (n.LT.0)
THEN 245 ELSE IF (lda.LT.max(1,nrowa))
THEN 247 ELSE IF (ldb.LT.max(1,m))
THEN 251 CALL xerbla(
'CTRMM ',info)
257 IF (m.EQ.0 .OR. n.EQ.0)
RETURN 261 IF (alpha.EQ.zero)
THEN 273 IF (lsame(transa,
'N'))
THEN 280 IF (b(k,j).NE.zero)
THEN 283 b(i,j) = b(i,j) + temp*a(i,k)
285 IF (nounit) temp = temp*a(k,k)
293 IF (b(k,j).NE.zero)
THEN 296 IF (nounit) b(k,j) = b(k,j)*a(k,k)
298 b(i,j) = b(i,j) + temp*a(i,k)
313 IF (nounit) temp = temp*a(i,i)
315 temp = temp + a(k,i)*b(k,j)
318 IF (nounit) temp = temp*conjg(a(i,i))
320 temp = temp + conjg(a(k,i))*b(k,j)
331 IF (nounit) temp = temp*a(i,i)
333 temp = temp + a(k,i)*b(k,j)
336 IF (nounit) temp = temp*conjg(a(i,i))
338 temp = temp + conjg(a(k,i))*b(k,j)
347 IF (lsame(transa,
'N'))
THEN 354 IF (nounit) temp = temp*a(j,j)
359 IF (a(k,j).NE.zero)
THEN 362 b(i,j) = b(i,j) + temp*b(i,k)
370 IF (nounit) temp = temp*a(j,j)
375 IF (a(k,j).NE.zero)
THEN 378 b(i,j) = b(i,j) + temp*b(i,k)
391 IF (a(j,k).NE.zero)
THEN 395 temp = alpha*conjg(a(j,k))
398 b(i,j) = b(i,j) + temp*b(i,k)
407 temp = temp*conjg(a(k,k))
410 IF (temp.NE.one)
THEN 419 IF (a(j,k).NE.zero)
THEN 423 temp = alpha*conjg(a(j,k))
426 b(i,j) = b(i,j) + temp*b(i,k)
435 temp = temp*conjg(a(k,k))
438 IF (temp.NE.one)
THEN subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ctrmm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
CTRMM