aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/fftease/src/fold.c
diff options
context:
space:
mode:
authorThomas Grill <xovo@users.sourceforge.net>2003-01-19 21:11:59 +0000
committerThomas Grill <xovo@users.sourceforge.net>2003-01-19 21:11:59 +0000
commitcada39a002fbbe9bc848f963c3eb7faa65122228 (patch)
treea6b4c611989fa15cf0f59c656c81a2e388041324 /externals/grill/fftease/src/fold.c
parent9ff5ccdea43ff2a954c1a400516dc6858e188e9c (diff)
""
svn path=/trunk/; revision=345
Diffstat (limited to 'externals/grill/fftease/src/fold.c')
-rw-r--r--externals/grill/fftease/src/fold.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/externals/grill/fftease/src/fold.c b/externals/grill/fftease/src/fold.c
index 2c380032..5b9ce476 100644
--- a/externals/grill/fftease/src/fold.c
+++ b/externals/grill/fftease/src/fold.c
@@ -6,6 +6,7 @@
*/
void fold( float *I, float *W, int Nw, float *O, int N, int n )
{
+#if 1
int i;
for ( i = 0; i < N; i++ ) O[i] = 0.;
@@ -16,6 +17,21 @@ void fold( float *I, float *W, int Nw, float *O, int N, int n )
O[n] += I[i]*W[i];
if ( ++n == N ) n = 0;
}
+#else
+ int i;
+
+ for ( i = 0; i < N; i++ )
+ O[i] = 0.;
+
+ while ( n < 0 )
+ n += N;
+ n %= N;
+ for ( i = 0; i < Nw; i++ ) {
+ O[n] += I[i]*W[i];
+ if ( ++n == N )
+ n = 0;
+ }
+#endif
}
@@ -26,6 +42,7 @@ void fold( float *I, float *W, int Nw, float *O, int N, int n )
*/
void overlapadd( float *I, int N, float *W, float *O, int Nw, int n )
{
+#if 1
int i ;
while ( n < 0 ) n += N ;
n %= N ;
@@ -34,5 +51,17 @@ void overlapadd( float *I, int N, float *W, float *O, int Nw, int n )
O[i] += I[n]*W[i] ;
if ( ++n == N ) n = 0 ;
}
+#else
+ int i ;
+ while ( n < 0 )
+ n += N ;
+ n %= N ;
+ for ( i = 0 ; i < Nw ; i++ ) {
+ O[i] += I[n]*W[i] ;
+ if ( ++n == N )
+ n = 0 ;
+ }
+
+#endif
}