diff options
author | langou <langou@users.noreply.github.com> | 2011-01-26 14:02:05 +0000 |
---|---|---|
committer | langou <langou@users.noreply.github.com> | 2011-01-26 14:02:05 +0000 |
commit | 890ff5ee9c7fd351957abd45b6c64990b4c7759d (patch) | |
tree | cfd4d8feb85994e4067b38c235764e4bd96fb1ee /SRC/zhetri2x.f | |
parent | 99c4971bd83367bd650ca2c39199aa9fa22b1141 (diff) | |
download | lapack-890ff5ee9c7fd351957abd45b6c64990b4c7759d.tar.gz lapack-890ff5ee9c7fd351957abd45b6c64990b4c7759d.tar.bz2 lapack-890ff5ee9c7fd351957abd45b6c64990b4c7759d.zip |
1) Je viens de modifier le fichier timer_dsytri2.c de telle sorte a ce qu'il
traite les matrices avec des lda.
Exemple:
> gfortran timer_dsytri2.c /Users/langou/Documents/lapack-dev-trunk.svn/lapack_LINUX.a -framework vecLib
> ./a.out -U -lda 1079 -n 100
DSYTRI2 info=0, check=1.891597e-14
Dispo dans ldlt.git. Marche bien. Upper ou Lower. LDA different de N ou pas. Le
check est
|| A . inv(A) - I || / || A ||
(Je pense que il faut diviser par || A || * || inv(A) ||, pas tres important.)
2) Du coup, dans ce commit, je rectifie tous les codes. Cela compile. Je n'ai
pas verifie les testings. Je n'ai pas ecrit de driver pour verifier. (Le driver
n'est que pour la version DOUBLE.)
JL
Diffstat (limited to 'SRC/zhetri2x.f')
-rw-r--r-- | SRC/zhetri2x.f | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/SRC/zhetri2x.f b/SRC/zhetri2x.f index 0d3f489e..481ff6f0 100644 --- a/SRC/zhetri2x.f +++ b/SRC/zhetri2x.f @@ -311,15 +311,15 @@ DO WHILE ( I .LE. N ) IF( IPIV(I) .GT. 0 ) THEN IP=IPIV(I) - IF (I .LT. IP) CALL ZHESWAPR( UPLO, N, A, I ,IP ) - IF (I .GT. IP) CALL ZHESWAPR( UPLO, N, A, IP ,I ) + IF (I .LT. IP) CALL ZHESWAPR( UPLO, N, A, LDA, I ,IP ) + IF (I .GT. IP) CALL ZHESWAPR( UPLO, N, A, LDA, IP ,I ) ELSE IP=-IPIV(I) I=I+1 IF ( (I-1) .LT. IP) - $ CALL ZHESWAPR( UPLO, N, A, I-1 ,IP ) + $ CALL ZHESWAPR( UPLO, N, A, LDA, I-1 ,IP ) IF ( (I-1) .GT. IP) - $ CALL ZHESWAPR( UPLO, N, A, IP ,I-1 ) + $ CALL ZHESWAPR( UPLO, N, A, LDA, IP ,I-1 ) ENDIF I=I+1 END DO @@ -488,12 +488,12 @@ DO WHILE ( I .GE. 1 ) IF( IPIV(I) .GT. 0 ) THEN IP=IPIV(I) - IF (I .LT. IP) CALL ZHESWAPR( UPLO, N, A, I ,IP ) - IF (I .GT. IP) CALL ZHESWAPR( UPLO, N, A, IP ,I ) + IF (I .LT. IP) CALL ZHESWAPR( UPLO, N, A, LDA, I ,IP ) + IF (I .GT. IP) CALL ZHESWAPR( UPLO, N, A, LDA, IP ,I ) ELSE IP=-IPIV(I) - IF ( I .LT. IP) CALL ZHESWAPR( UPLO, N, A, I ,IP ) - IF ( I .GT. IP) CALL ZHESWAPR( UPLO, N, A, IP ,I ) + IF ( I .LT. IP) CALL ZHESWAPR( UPLO, N, A, LDA, I ,IP ) + IF ( I .GT. IP) CALL ZHESWAPR( UPLO, N, A, LDA, IP ,I ) I=I-1 ENDIF I=I-1 |