注册 登录
编程论坛 C++教室

求调试 编译 此 按时间轴选、输入自然序、输出自然序、N=2的L次方的FTT算法C++程序。

艾洛西姆 发布于 2013-04-03 11:51, 744 次点击
不知为何,我无法调试,一直提示缺少文件,求指导,求算法DEBUG。

#include<complex.h>
int FFT(complex * a,int l)
{   
     const doule pai=3.141592653589793;
     complex u,w,t;
     unsigned n=1,nv2,nml,k,le,lei,ip;
     unsigned i,j,m;
     double tmp;     
     n<<=l;
     nv2=n>>1;
     nml=n-1;
     i=0;
     for(i=0;i<nml;i++)
     {
          if(i<j)
          {
                t=a[j];
                a[j]=a[i];
                a[i]=t;
           }
           k=nv2;
           while(k<=j)
           {
                j-=k;
                k>>=1
            }
            j+=k;
       }
le=1;
     for(m=1;m<=1;m++)
     {
          lei=le;
          le<<=1;
          u=complex(1,0);
          tmp=pai/lei;
              w=complex(cos(tmp),-sin(tmp));
              for(j=0;j<lei;j++)
              {
                    ip=i+lei;
                    t=a[ip]*u;
                    a[ip]=a[i]-t;
                    a[i]+=t;
               }
               u*=w;
           }
     }
     return 0;
}
2 回复
#2
fanpengpeng2013-04-03 12:37
加上#include<cmath>试试
#3
shmilyflf2013-04-04 00:46
你这个只是贴的一个函数的实现吗?还要我们自己写测试程序吗?
1