This is fold.c in view mode; [Download] [Up]
/*
* multiply current input I by window W (both of length Nw);
* using modulus arithmetic, fold and rotate windowed input
* into output array O of (FFT) length N according to current
* input time n
*/
fold( I, W, Nw, O, N, n )
float I[], W[], O[] ; int Nw, N, n ;
{
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 ;
}
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.