version 1.6, 2010/12/21 13:51:26
|
version 1.7, 2011/07/22 07:38:02
|
Line 17
|
Line 17
|
* |
* |
* where op( X ) is one of |
* where op( X ) is one of |
* |
* |
* op( X ) = X or op( X ) = X' or op( X ) = conjg( X' ), |
* op( X ) = X or op( X ) = X**T or op( X ) = X**H, |
* |
* |
* alpha and beta are scalars, and A, B and C are matrices, with op( A ) |
* alpha and beta are scalars, and A, B and C are matrices, with op( A ) |
* an m by k matrix, op( B ) a k by n matrix and C an m by n matrix. |
* an m by k matrix, op( B ) a k by n matrix and C an m by n matrix. |
Line 31
|
Line 31
|
* |
* |
* TRANSA = 'N' or 'n', op( A ) = A. |
* TRANSA = 'N' or 'n', op( A ) = A. |
* |
* |
* TRANSA = 'T' or 't', op( A ) = A'. |
* TRANSA = 'T' or 't', op( A ) = A**T. |
* |
* |
* TRANSA = 'C' or 'c', op( A ) = conjg( A' ). |
* TRANSA = 'C' or 'c', op( A ) = A**H. |
* |
* |
* Unchanged on exit. |
* Unchanged on exit. |
* |
* |
Line 43
|
Line 43
|
* |
* |
* TRANSB = 'N' or 'n', op( B ) = B. |
* TRANSB = 'N' or 'n', op( B ) = B. |
* |
* |
* TRANSB = 'T' or 't', op( B ) = B'. |
* TRANSB = 'T' or 't', op( B ) = B**T. |
* |
* |
* TRANSB = 'C' or 'c', op( B ) = conjg( B' ). |
* TRANSB = 'C' or 'c', op( B ) = B**H. |
* |
* |
* Unchanged on exit. |
* Unchanged on exit. |
* |
* |
Line 255
|
Line 255
|
90 CONTINUE |
90 CONTINUE |
ELSE IF (CONJA) THEN |
ELSE IF (CONJA) THEN |
* |
* |
* Form C := alpha*conjg( A' )*B + beta*C. |
* Form C := alpha*A**H*B + beta*C. |
* |
* |
DO 120 J = 1,N |
DO 120 J = 1,N |
DO 110 I = 1,M |
DO 110 I = 1,M |
Line 272
|
Line 272
|
120 CONTINUE |
120 CONTINUE |
ELSE |
ELSE |
* |
* |
* Form C := alpha*A'*B + beta*C |
* Form C := alpha*A**T*B + beta*C |
* |
* |
DO 150 J = 1,N |
DO 150 J = 1,N |
DO 140 I = 1,M |
DO 140 I = 1,M |
Line 291
|
Line 291
|
ELSE IF (NOTA) THEN |
ELSE IF (NOTA) THEN |
IF (CONJB) THEN |
IF (CONJB) THEN |
* |
* |
* Form C := alpha*A*conjg( B' ) + beta*C. |
* Form C := alpha*A*B**H + beta*C. |
* |
* |
DO 200 J = 1,N |
DO 200 J = 1,N |
IF (BETA.EQ.ZERO) THEN |
IF (BETA.EQ.ZERO) THEN |
Line 314
|
Line 314
|
200 CONTINUE |
200 CONTINUE |
ELSE |
ELSE |
* |
* |
* Form C := alpha*A*B' + beta*C |
* Form C := alpha*A*B**T + beta*C |
* |
* |
DO 250 J = 1,N |
DO 250 J = 1,N |
IF (BETA.EQ.ZERO) THEN |
IF (BETA.EQ.ZERO) THEN |
Line 339
|
Line 339
|
ELSE IF (CONJA) THEN |
ELSE IF (CONJA) THEN |
IF (CONJB) THEN |
IF (CONJB) THEN |
* |
* |
* Form C := alpha*conjg( A' )*conjg( B' ) + beta*C. |
* Form C := alpha*A**H*B**H + beta*C. |
* |
* |
DO 280 J = 1,N |
DO 280 J = 1,N |
DO 270 I = 1,M |
DO 270 I = 1,M |
Line 356
|
Line 356
|
280 CONTINUE |
280 CONTINUE |
ELSE |
ELSE |
* |
* |
* Form C := alpha*conjg( A' )*B' + beta*C |
* Form C := alpha*A**H*B**T + beta*C |
* |
* |
DO 310 J = 1,N |
DO 310 J = 1,N |
DO 300 I = 1,M |
DO 300 I = 1,M |
Line 375
|
Line 375
|
ELSE |
ELSE |
IF (CONJB) THEN |
IF (CONJB) THEN |
* |
* |
* Form C := alpha*A'*conjg( B' ) + beta*C |
* Form C := alpha*A**T*B**H + beta*C |
* |
* |
DO 340 J = 1,N |
DO 340 J = 1,N |
DO 330 I = 1,M |
DO 330 I = 1,M |
Line 392
|
Line 392
|
340 CONTINUE |
340 CONTINUE |
ELSE |
ELSE |
* |
* |
* Form C := alpha*A'*B' + beta*C |
* Form C := alpha*A**T*B**T + beta*C |
* |
* |
DO 370 J = 1,N |
DO 370 J = 1,N |
DO 360 I = 1,M |
DO 360 I = 1,M |