version 1.7, 2010/12/21 13:53:57
|
version 1.8, 2011/07/22 07:38:21
|
Line 1
|
Line 1
|
SUBROUTINE ZTRSYL( TRANA, TRANB, ISGN, M, N, A, LDA, B, LDB, C, |
SUBROUTINE ZTRSYL( TRANA, TRANB, ISGN, M, N, A, LDA, B, LDB, C, |
$ LDC, SCALE, INFO ) |
$ LDC, SCALE, INFO ) |
* |
* |
* -- LAPACK routine (version 3.2) -- |
* -- LAPACK routine (version 3.3.1) -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* November 2006 |
* -- April 2011 -- |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
CHARACTER TRANA, TRANB |
CHARACTER TRANA, TRANB |
Line 209
|
Line 209
|
* |
* |
ELSE IF( .NOT.NOTRNA .AND. NOTRNB ) THEN |
ELSE IF( .NOT.NOTRNA .AND. NOTRNB ) THEN |
* |
* |
* Solve A' *X + ISGN*X*B = scale*C. |
* Solve A**H *X + ISGN*X*B = scale*C. |
* |
* |
* The (K,L)th block of X is determined starting from |
* The (K,L)th block of X is determined starting from |
* upper-left corner column by column by |
* upper-left corner column by column by |
* |
* |
* A'(K,K)*X(K,L) + ISGN*X(K,L)*B(L,L) = C(K,L) - R(K,L) |
* A**H(K,K)*X(K,L) + ISGN*X(K,L)*B(L,L) = C(K,L) - R(K,L) |
* |
* |
* Where |
* Where |
* K-1 L-1 |
* K-1 L-1 |
* R(K,L) = SUM [A'(I,K)*X(I,L)] + ISGN*SUM [X(K,J)*B(J,L)] |
* R(K,L) = SUM [A**H(I,K)*X(I,L)] + ISGN*SUM [X(K,J)*B(J,L)] |
* I=1 J=1 |
* I=1 J=1 |
* |
* |
DO 60 L = 1, N |
DO 60 L = 1, N |
DO 50 K = 1, M |
DO 50 K = 1, M |
Line 257
|
Line 257
|
* |
* |
ELSE IF( .NOT.NOTRNA .AND. .NOT.NOTRNB ) THEN |
ELSE IF( .NOT.NOTRNA .AND. .NOT.NOTRNB ) THEN |
* |
* |
* Solve A'*X + ISGN*X*B' = C. |
* Solve A**H*X + ISGN*X*B**H = C. |
* |
* |
* The (K,L)th block of X is determined starting from |
* The (K,L)th block of X is determined starting from |
* upper-right corner column by column by |
* upper-right corner column by column by |
* |
* |
* A'(K,K)*X(K,L) + ISGN*X(K,L)*B'(L,L) = C(K,L) - R(K,L) |
* A**H(K,K)*X(K,L) + ISGN*X(K,L)*B**H(L,L) = C(K,L) - R(K,L) |
* |
* |
* Where |
* Where |
* K-1 |
* K-1 |
* R(K,L) = SUM [A'(I,K)*X(I,L)] + |
* R(K,L) = SUM [A**H(I,K)*X(I,L)] + |
* I=1 |
* I=1 |
* N |
* N |
* ISGN*SUM [X(K,J)*B'(L,J)]. |
* ISGN*SUM [X(K,J)*B**H(L,J)]. |
* J=L+1 |
* J=L+1 |
* |
* |
DO 90 L = N, 1, -1 |
DO 90 L = N, 1, -1 |
Line 309
|
Line 309
|
* |
* |
ELSE IF( NOTRNA .AND. .NOT.NOTRNB ) THEN |
ELSE IF( NOTRNA .AND. .NOT.NOTRNB ) THEN |
* |
* |
* Solve A*X + ISGN*X*B' = C. |
* Solve A*X + ISGN*X*B**H = C. |
* |
* |
* The (K,L)th block of X is determined starting from |
* The (K,L)th block of X is determined starting from |
* bottom-left corner column by column by |
* bottom-left corner column by column by |
* |
* |
* A(K,K)*X(K,L) + ISGN*X(K,L)*B'(L,L) = C(K,L) - R(K,L) |
* A(K,K)*X(K,L) + ISGN*X(K,L)*B**H(L,L) = C(K,L) - R(K,L) |
* |
* |
* Where |
* Where |
* M N |
* M N |
* R(K,L) = SUM [A(K,I)*X(I,L)] + ISGN*SUM [X(K,J)*B'(L,J)] |
* R(K,L) = SUM [A(K,I)*X(I,L)] + ISGN*SUM [X(K,J)*B**H(L,J)] |
* I=K+1 J=L+1 |
* I=K+1 J=L+1 |
* |
* |
DO 120 L = N, 1, -1 |
DO 120 L = N, 1, -1 |