[MN-dev] [mndiff]: r140 - in trunk/noe: ldpc.c noe_internal.h

michael subversion at mplayerhq.hu
Fri Apr 10 20:17:54 CEST 2009


Author: michael
Date: Fri Apr 10 20:17:54 2009
New Revision: 140

Log:
Factorize swaping.

Modified:
   trunk/noe/ldpc.c
   trunk/noe/noe_internal.h

Modified: trunk/noe/ldpc.c
==============================================================================
--- trunk/noe/ldpc.c	Fri Apr 10 20:08:58 2009	(r139)
+++ trunk/noe/ldpc.c	Fri Apr 10 20:17:54 2009	(r140)
@@ -57,19 +57,11 @@ int inverse(ELEM *matrix, int width, int
             }
         }
         if(j != i){
-            for(k=0; k<height; k++){
-                int t= matrix[j + k*width ];
-                matrix[j + k*width]= matrix[i + k*width];
-                matrix[i + k*width]= t;
-            }
-
-            k= erasure_pos[j];
-            erasure_pos[j]= erasure_pos[i];
-            erasure_pos[i]= k;
+            for(k=0; k<height; k++)
+                SWAP(int, matrix[j + k*width ], matrix[i + k*width])
 
-            k= col_weight[j];
-            col_weight[j]= col_weight[i];
-            col_weight[i]= k;
+            SWAP(int, erasure_pos[j], erasure_pos[i])
+            SWAP(int, col_weight [j], col_weight [i])
         }
 
         bestweight= width+1;
@@ -85,7 +77,7 @@ int inverse(ELEM *matrix, int width, int
             if(j>=0){
                 unsigned int inve= EXT(log)[inv(matrix[i + j*width])];
 
-                k= row_weight[j]; row_weight[j]= row_weight[p]; row_weight[p]= k;
+                SWAP(int, row_weight[j], row_weight[p])
                 k=0;
                 for(m=i; m<width; m++){
                     ELEM t= matrix[m + j*width];

Modified: trunk/noe/noe_internal.h
==============================================================================
--- trunk/noe/noe_internal.h	Fri Apr 10 20:08:58 2009	(r139)
+++ trunk/noe/noe_internal.h	Fri Apr 10 20:17:54 2009	(r140)
@@ -18,6 +18,7 @@
 
 #define NOE_MAX(a,b) ((a) > (b) ? (a) : (b))
 #define NOE_MIN(a,b) ((a) > (b) ? (b) : (a))
+#define SWAP(type,a,b) {type NOE_temp=b; b=a; a=NOE_temp;}
 
 static inline uint64_t rdtsc(void)
 {



More information about the Mndiff-dev mailing list