void mayer_ifft(int n, REAL *real, REAL *imag) { REAL a,b,c,d; REAL q,r,s,t; int i,j,k; mayer_fht(real,n); mayer_fht(imag,n); for (i=1,j=n-1,k=n/2;i<k;i++,j--) { a = real[i]; b = real[j]; q=a+b; r=a-b; c = imag[i]; d = imag[j]; s=c+d; t=c-d; imag[i] = (s+r)*0.5; imag[j] = (s-r)*0.5; real[i] = (q-t)*0.5; real[j] = (q+t)*0.5; } }
void mayer_realifft(int n, REAL *real) { REAL a,b; int i,j,k; for (i=1,j=n-1,k=n/2;i<k;i++,j--) { a = real[i]; b = real[j]; real[j] = (a-b); real[i] = (a+b); } mayer_fht(real,n); }
void mayer_realifft(int n, REAL *real) { #ifdef ROCKBOX REAL a,b; #else REAL a,b,c,d; #endif int i,j,k; for (i=1,j=n-1,k=n/2;i<k;i++,j--) { a = real[i]; b = real[j]; real[j] = (a-b); real[i] = (a+b); } mayer_fht(real,n); }