// ft using GSL void ft_gsl(size_t N, const cmpvec& little_x, cmpvec& big_X) { big_X.clear(); FFTCalc fftCalc(N); fftCalc.setData(little_x); fftCalc.performFFT(); fftCalc.getData(big_X); assert(little_x.size() == big_X.size()); }
void FFT::dofft86(long (*x)[2], const int bits) { unsigned int i,j; long *xe=x[1<<bits];//position du dernier element long *xi; //position actuelle long curcos,cursin; for (i=POW-bits; i<POW; ++i)//i:0->1->2->...->11 { const unsigned long s2dk=SAMPLES2>>i;//1024->512->256->128->64->32->16->8->4->2->1 const unsigned long d2=s2dk<<1;//*2 for (j=0; j<s2dk; ++j) { curcos=cossintab[j<<i][0];// posi cos actuelle cursin=cossintab[j<<i][1];// posi sin actuelle for (xi=x[j]; xi<xe; xi=xi+(d2<<1)) //*2 fftCalc(xi, curcos,cursin, d2); } } }