version 1.7, 2010/12/21 13:53:39
|
version 1.8, 2011/07/22 07:38:11
|
Line 1
|
Line 1
|
SUBROUTINE DSYGS2( ITYPE, UPLO, N, A, LDA, B, LDB, INFO ) |
SUBROUTINE DSYGS2( ITYPE, UPLO, N, A, LDA, B, LDB, 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 UPLO |
CHARACTER UPLO |
Line 20
|
Line 20
|
* to standard form. |
* to standard form. |
* |
* |
* If ITYPE = 1, the problem is A*x = lambda*B*x, |
* If ITYPE = 1, the problem is A*x = lambda*B*x, |
* and A is overwritten by inv(U')*A*inv(U) or inv(L)*A*inv(L') |
* and A is overwritten by inv(U**T)*A*inv(U) or inv(L)*A*inv(L**T) |
* |
* |
* If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or |
* If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or |
* B*A*x = lambda*x, and A is overwritten by U*A*U` or L'*A*L. |
* B*A*x = lambda*x, and A is overwritten by U*A*U**T or L**T *A*L. |
* |
* |
* B must have been previously factorized as U'*U or L*L' by DPOTRF. |
* B must have been previously factorized as U**T *U or L*L**T by DPOTRF. |
* |
* |
* Arguments |
* Arguments |
* ========= |
* ========= |
* |
* |
* ITYPE (input) INTEGER |
* ITYPE (input) INTEGER |
* = 1: compute inv(U')*A*inv(U) or inv(L)*A*inv(L'); |
* = 1: compute inv(U**T)*A*inv(U) or inv(L)*A*inv(L**T); |
* = 2 or 3: compute U*A*U' or L'*A*L. |
* = 2 or 3: compute U*A*U**T or L**T *A*L. |
* |
* |
* UPLO (input) CHARACTER*1 |
* UPLO (input) CHARACTER*1 |
* Specifies whether the upper or lower triangular part of the |
* Specifies whether the upper or lower triangular part of the |
Line 115
|
Line 115
|
IF( ITYPE.EQ.1 ) THEN |
IF( ITYPE.EQ.1 ) THEN |
IF( UPPER ) THEN |
IF( UPPER ) THEN |
* |
* |
* Compute inv(U')*A*inv(U) |
* Compute inv(U**T)*A*inv(U) |
* |
* |
DO 10 K = 1, N |
DO 10 K = 1, N |
* |
* |
Line 140
|
Line 140
|
10 CONTINUE |
10 CONTINUE |
ELSE |
ELSE |
* |
* |
* Compute inv(L)*A*inv(L') |
* Compute inv(L)*A*inv(L**T) |
* |
* |
DO 20 K = 1, N |
DO 20 K = 1, N |
* |
* |
Line 165
|
Line 165
|
ELSE |
ELSE |
IF( UPPER ) THEN |
IF( UPPER ) THEN |
* |
* |
* Compute U*A*U' |
* Compute U*A*U**T |
* |
* |
DO 30 K = 1, N |
DO 30 K = 1, N |
* |
* |
Line 185
|
Line 185
|
30 CONTINUE |
30 CONTINUE |
ELSE |
ELSE |
* |
* |
* Compute L'*A*L |
* Compute L**T *A*L |
* |
* |
DO 40 K = 1, N |
DO 40 K = 1, N |
* |
* |