[MN-dev] [mndiff]: r173 - trunk/ffvotetov/ffvotetov.c

michael subversion at mplayerhq.hu
Thu Dec 17 02:03:53 CET 2009


Author: michael
Date: Thu Dec 17 02:03:52 2009
New Revision: 173

Log:
Never implement an algorithm based on its description on wikipedia.

Modified:
   trunk/ffvotetov/ffvotetov.c

Modified: trunk/ffvotetov/ffvotetov.c
==============================================================================
--- trunk/ffvotetov/ffvotetov.c	Wed Dec 16 14:42:18 2009	(r172)
+++ trunk/ffvotetov/ffvotetov.c	Thu Dec 17 02:03:52 2009	(r173)
@@ -35,7 +35,7 @@ int sums[CANDIDATES_MAX], subs[CANDIDATE
 int pair_matrix[CANDIDATES_MAX][CANDIDATES_MAX];
 int pair_ranking_matrix[CANDIDATES_MAX][CANDIDATES_MAX];
 
-int cssd_beats[CANDIDATES_MAX][CANDIDATES_MAX];;
+int64_t cssd_beats[CANDIDATES_MAX][CANDIDATES_MAX];;
 
 int contains_loop(const int matrix[CANDIDATES_MAX][CANDIDATES_MAX]){
     int m[CANDIDATES_MAX][CANDIDATES_MAX];
@@ -81,17 +81,17 @@ void print_condorcet_winners(const int m
     }
 }
 
-void beatpath(int strength[CANDIDATES_MAX], const int matrix[CANDIDATES_MAX][CANDIDATES_MAX], int a){
+void beatpath(int64_t strength[CANDIDATES_MAX], const int matrix[CANDIDATES_MAX][CANDIDATES_MAX], int a){
     int i, j, changed;
 
     for(i=0; i<canditate_count; i++)
-        strength[i]= matrix[a][i] > matrix[i][a] ? matrix[a][i] : 0;
+        strength[i]= matrix[a][i] > matrix[i][a] ? (matrix[a][i]<<24) - matrix[i][a] : 0;
 
     do{
         changed=0;
         for(i=0; i<canditate_count; i++){
             for(j=0; j<canditate_count; j++){
-                int diff= matrix[i][j] > matrix[j][i] ? matrix[i][j]: 0;
+                int64_t diff= matrix[i][j] > matrix[j][i] ? (matrix[i][j]<<24) - matrix[j][i]: 0;
                 if(strength[i] < diff)
                     diff= strength[i];
                 if(strength[j] < diff){


More information about the Mndiff-dev mailing list