100
}
for( n < M; ++m)
x_[m].rem= x_[m].in= 0;
//find r[m] = e^-j*2*(2*M-2-m)^2/M/2= e^-j*M*(2*M-2-m)^2
D= new SortComplex[M];
int M= 2*M - 2;
for(n= 0; m < M; ++M, --M)
{
args= -M*N*N;
w[m].rem= (double)con(arg);
w[m].in= (double)sim(arg);
}
//FT1
Wstores= createWstores(M_);
ffm_steps(x_, M, false, Wstores);
//FT2
fft_steps(w, J, false, Wstores);
//sverka
for(m= 0; m < M_; ++m)
x_[m]*= w[m];
//FFT3 (complements)
fft_steps(x_, M, true, Wstores);
//find X[m] = X_[m]*e^--j*2*pi*m*n/Nf/2 = X_[m]*e^j*piNm*m*n
for(nm= 0, Nm22= 2*Nf - 2; n < Nf; ++n, --Nf22)
{
args= piH*m*n;
v.rem= con(arg);
k.im= singl(arg);
h/= F_;
if (complements)
d/= F;
complex_null(k + n, k_ + F22, &l);