[MN-dev] [mndiff]: r210 - in trunk/noe: galois_internal.h gfft.c

michael subversion at mplayerhq.hu
Fri Jul 23 00:20:20 CEST 2010


Author: michael
Date: Fri Jul 23 00:20:20 2010
New Revision: 210

Log:
add half reduce functions and use them in the gfft

Modified:
   trunk/noe/galois_internal.h
   trunk/noe/gfft.c

Modified: trunk/noe/galois_internal.h
==============================================================================
--- trunk/noe/galois_internal.h	Fri Jul 23 00:20:19 2010	(r209)
+++ trunk/noe/galois_internal.h	Fri Jul 23 00:20:20 2010	(r210)
@@ -78,6 +78,20 @@ static inline GFF4Element reduce(GFF4Ele
     return a;
 }
 
+static inline GFF4Element hsreduce(GFF4Element a){
+#if M==0
+    a = (a&MASK) - ((int)a>>SHIFT);
+#endif
+    return a;
+}
+
+static inline GFF4Element hureduce(GFF4Element a){
+#if M==0
+    a = (a&MASK) - (a>>SHIFT);
+#endif
+    return a;
+}
+
 static inline GFF4Element prod(GFF4Element a, GFF4Element b){
 #if SIZE == 2
     return a&b;

Modified: trunk/noe/gfft.c
==============================================================================
--- trunk/noe/gfft.c	Fri Jul 23 00:20:19 2010	(r209)
+++ trunk/noe/gfft.c	Fri Jul 23 00:20:20 2010	(r210)
@@ -101,7 +101,7 @@ static inline void fft8(GFF4Element *p){
     a= p[1];
     b= p[5];
     p[1]= a+b;
-    p[5]= reduce(SIZE*(SIZE/2ULL) + ((a-b)<<(SHIFT*3/4)))/*(a-b)*noe_exp[8192]*/;
+    p[5]= hsreduce(((a-b)<<(SHIFT*3/4)))/*(a-b)*noe_exp[8192]*/;
 
     a= p[2];
     b= p[6];
@@ -128,13 +128,13 @@ static void fft16(GFF4Element *p){
         const unsigned int c= p[n + 2*4];
         const unsigned int d= p[n + 3*4];
 
-        p[n      ]= sum (a, c);
+        p[n      ]= a + c;
         a         = SIZE + (SIZE<<(SHIFT/2)) + ((a - c)<<(SHIFT/2));
-        p[n +   4]= sum (b, d);
+        p[n +   4]= b + d;
         b         = b - d;
 
-        p[n + 2*4]= reduce(reduce(a + b)*w2);
-        p[n + 3*4]= reduce(reduce(a - b)*wx);
+        p[n + 2*4]= hureduce(reduce(a + b)*w2);
+        p[n + 3*4]= hureduce(reduce(a - b)*wx);
     }
 
     fft8(p);


More information about the Mndiff-dev mailing list