void IFFT(complex<double>*FD,complex<double>*TD,int r)
{
   long count;
   int i;
   complex<double>*X;
   count=1<<r;
   X=new complex<double>[count];
   memcpy(X,FD,sizeof(complex<double>)*count);
   for(i=0;i<count;i++)
   {
      X[i]=complex<double>(X[i].real(),-X[i].imag());
   }
   FFT(X,TD,r);
   for(i=0;i<count;i++)
   {
     TD[i]=complex<double>(TD[i].real()/count,-TD[i].imag()/count);
   }
   delete X;
}