[MN-dev] [mndiff]: r135 - trunk/noe/ldpc.c
michael
subversion at mplayerhq.hu
Fri Apr 10 13:15:00 CEST 2009
Author: michael
Date: Fri Apr 10 13:15:00 2009
New Revision: 135
Log:
Change solver to favor sparse rows, 50% sparser final matrix.
Modified:
trunk/noe/ldpc.c
Modified: trunk/noe/ldpc.c
==============================================================================
--- trunk/noe/ldpc.c Fri Apr 10 12:56:45 2009 (r134)
+++ trunk/noe/ldpc.c Fri Apr 10 13:15:00 2009 (r135)
@@ -48,8 +48,20 @@ int inverse(ELEM *matrix, int width, int
unsigned int logline[width];
for(p=i=0; i<solvew; i++){
- for(j=p; j<height; j++){
- if(matrix[i + j*width]){
+ int bestweight= width+1;
+ j=-1;
+ for(k=p; k<height; k++){
+ if(matrix[i + k*width]){
+ int weight=0;
+ for(m=i; m<width; m++)
+ weight += !!matrix[m + k*width];
+ if(weight < bestweight){
+ bestweight=weight;
+ j= k;
+ }
+ }
+ }
+ if(j>=0){
unsigned int inve= EXT(log)[inv(matrix[i + j*width])];
for(m=i; m<width; m++){
ELEM t= matrix[m + j*width];
@@ -65,9 +77,7 @@ int inverse(ELEM *matrix, int width, int
}
}
p++;
- break;
}
- }
}
return p;
More information about the Mndiff-dev
mailing list