[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