From 890ff5ee9c7fd351957abd45b6c64990b4c7759d Mon Sep 17 00:00:00 2001 From: langou Date: Wed, 26 Jan 2011 14:02:05 +0000 Subject: 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 --- SRC/ssytri2x.f | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'SRC/ssytri2x.f') diff --git a/SRC/ssytri2x.f b/SRC/ssytri2x.f index f628aa82..29168dba 100644 --- a/SRC/ssytri2x.f +++ b/SRC/ssytri2x.f @@ -308,15 +308,15 @@ DO WHILE ( I .LE. N ) IF( IPIV(I) .GT. 0 ) THEN IP=IPIV(I) - IF (I .LT. IP) CALL SSYSWAPR( UPLO, N, A, I ,IP ) - IF (I .GT. IP) CALL SSYSWAPR( UPLO, N, A, IP ,I ) + IF (I .LT. IP) CALL SSYSWAPR( UPLO, N, A, LDA, I ,IP ) + IF (I .GT. IP) CALL SSYSWAPR( UPLO, N, A, LDA, IP ,I ) ELSE IP=-IPIV(I) I=I+1 IF ( (I-1) .LT. IP) - $ CALL SSYSWAPR( UPLO, N, A, I-1 ,IP ) + $ CALL SSYSWAPR( UPLO, N, A, LDA, I-1 ,IP ) IF ( (I-1) .GT. IP) - $ CALL SSYSWAPR( UPLO, N, A, IP ,I-1 ) + $ CALL SSYSWAPR( UPLO, N, A, LDA, IP ,I-1 ) ENDIF I=I+1 END DO @@ -487,12 +487,12 @@ DO WHILE ( I .GE. 1 ) IF( IPIV(I) .GT. 0 ) THEN IP=IPIV(I) - IF (I .LT. IP) CALL SSYSWAPR( UPLO, N, A, I ,IP ) - IF (I .GT. IP) CALL SSYSWAPR( UPLO, N, A, IP ,I ) + IF (I .LT. IP) CALL SSYSWAPR( UPLO, N, A, LDA, I ,IP ) + IF (I .GT. IP) CALL SSYSWAPR( UPLO, N, A, LDA, IP ,I ) ELSE IP=-IPIV(I) - IF ( I .LT. IP) CALL SSYSWAPR( UPLO, N, A, I ,IP ) - IF ( I .GT. IP) CALL SSYSWAPR( UPLO, N, A, IP ,I ) + IF ( I .LT. IP) CALL SSYSWAPR( UPLO, N, A, LDA, I ,IP ) + IF ( I .GT. IP) CALL SSYSWAPR( UPLO, N, A, LDA, IP ,I ) I=I-1 ENDIF I=I-1 -- cgit v1.2.3