void fft2D(std::vector<complex>::iterator x, int n1, int n2, int flag) { std::vector<complex> y(n2); int i, n; assert(1 == flag || -1 == flag); n = n1*n2; /*y = (complex *) malloc( n2*sizeof(complex) ); assert(NULL != y);*/ for(i=0; i < n; i += n2) { /* FFT in y */ stockham(x+i, n2, flag, 1, y.begin()); } //free(y); cooley_tukey(x, n, flag, n2); /* FFT in x */ }
void fft2D(complex x[], int n1, int n2, int flag) { complex *y; int i, n; assert(1 == flag || -1 == flag); n = n1*n2; y = (complex *) malloc( n2*sizeof(complex) ); assert(NULL != y); for(i=0; i < n; i += n2) { /* FFT in y */ stockham(x+i, n2, flag, 1, y); } free(y); cooley_tukey(x, n, flag, n2); /* FFT in x */ }