179 SUBROUTINE ztrsm(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB)
188 CHARACTER DIAG,,TRANSA,UPLO
191 COMPLEX*16 A(LDA,*),B(LDB,*)
208 INTEGER I,INFO,J,K,NROWA
209 LOGICAL LSIDE,,NOUNIT,UPPER
213 parameter(one= (1.0d+0,0.0d+0))
215 parameter(zero= (0.0d+0,0.0d+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.LT.
ELSE IF (M0) THEN
243.LT.
ELSE IF (N0) THEN
245.LT.
ELSE IF (LDAMAX(1,NROWA)) THEN
247.LT.
ELSE IF (LDBMAX(1,M)) THEN
251 CALL XERBLA('ztrsm ',INFO)
257.EQ..OR..EQ.
IF (M0 N0) RETURN
261.EQ.
IF (ALPHAZERO) THEN
273 IF (LSAME(TRANSA,'n
')) THEN
279.NE.
IF (ALPHAONE) THEN
281 B(I,J) = ALPHA*B(I,J)
285.NE.
IF (B(K,J)ZERO) THEN
286 IF (NOUNIT) B(K,J) = B(K,J)/A(K,K)
288 B(I,J) = B(I,J) - B(K,J)*A(I,K)
295.NE.
IF (ALPHAONE) THEN
297 B(I,J) = ALPHA*B(I,J)
301.NE.
IF (B(K,J)ZERO) THEN
302 IF (NOUNIT) B(K,J) = B(K,J)/A(K,K)
304 B(I,J) = B(I,J) - B(K,J)*A(I,K)
321 TEMP = TEMP - A(K,I)*B(K,J)
323 IF (NOUNIT) TEMP = TEMP/A(I,I)
326 TEMP = TEMP - DCONJG(A(K,I))*B(K,J)
328 IF (NOUNIT) TEMP = TEMP/DCONJG(A(I,I))
339 TEMP = TEMP - A(K,I)*B(K,J)
341 IF (NOUNIT) TEMP = TEMP/A(I,I)
344 TEMP = TEMP - DCONJG(A(K,I))*B(K,J)
346 IF (NOUNIT) TEMP = TEMP/DCONJG(A(I,I))
354 IF (LSAME(TRANSA,'n
')) THEN
360.NE.
IF (ALPHAONE) THEN
362 B(I,J) = ALPHA*B(I,J)
366.NE.
IF (A(K,J)ZERO) THEN
368 B(I,J) = B(I,J) - A(K,J)*B(I,K)
381.NE.
IF (ALPHAONE) THEN
383 B(I,J) = ALPHA*B(I,J)
387.NE.
IF (A(K,J)ZERO) THEN
389 B(I,J) = B(I,J) - A(K,J)*B(I,K)
412 TEMP = ONE/DCONJG(A(K,K))
419.NE.
IF (A(J,K)ZERO) THEN
423 TEMP = DCONJG(A(J,K))
426 B(I,J) = B(I,J) - TEMP*B(I,K)
430.NE.
IF (ALPHAONE) THEN
432 B(I,K) = ALPHA*B(I,K)
442 TEMP = ONE/DCONJG(A(K,K))
449.NE.
IF (A(J,K)ZERO) THEN
453 TEMP = DCONJG(A(J,K))
456 B(I,J) = B(I,J) - TEMP*B(I,K)
460.NE.
IF (ALPHAONE) THEN
462 B(I,K) = ALPHA*B(I,K)
subroutine ztrsm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
ZTRSM