32template<
class T,
int O>
45 for (
int i=0;
i<
N;
i++)
48 for (
int j=0;
j<O;
j++)
54 T divN = 2 *
M_PI /
N;
56 for (
int i=0;
i<N90;
i++)
59 T
c = cos(angle),
s = sin(angle);
86 int PO=1<<
i, PNO=1<<(O-
i-1);
97 output[B1]=r1+
r2*
sines[(B1<<(O-
i-1))&N1];
98 output[B2]=r1+
r2*
sines[(B2<<(O-
i-1))&N1];
111 template<
class InType>
134 for (
i=0;
i<order;
i++)
136 int PO=1<<
i, PNO=1<<(order-
i-1);
138 for (
j=0;
j<PNO;
j++)
144 int B2=base+
k+(1<<
i);
147 output[B1]=r1+
r2*
sines[(B1<<(O-
i-1))&N1];
148 output[B2]=r1+
r2*
sines[(B2<<(O-
i-1))&N1];
164 size_t s = 1 << order;
165 size_t s2 = 1 << (order - 1);
166 output[0] = tmp[0].real();
167 output[s2] = tmp[0].imag();
168 for (
size_t i = 1;
i < s2; ++
i)
170 output[
i] = tmp[
i].real();
171 output[
s - 1 -
i] = tmp[
i].imag();
std::complex< float > complex
Definition fft.h:36
void calculateN(InType *input, complex *output, bool inverse, int order) const
Definition fft.h:112
void execute_r2r(int order, float *input, float *output, complex *tmp, bool inverse=false) const
Definition fft.h:161
int scramble[1<< O]
Definition fft.h:38
void calculate(complex *input, complex *output, bool inverse) const
Definition fft.h:64
complex sines[1<< O]
Definition fft.h:39
#define M_PI
Definition compat.h:149
register unsigned k
Definition inflate.c:946
register unsigned j
Definition inflate.c:1576
unsigned v[N_MAX]
Definition inflate.c:1584
register unsigned i
Definition inflate.c:1575
unsigned s
Definition inflate.c:1555
static void r2(register WDL_FFT_REAL *a)
Definition fft.c:1089
#define N
Definition nseel-cfunc.c:36
return c
Definition crypt.c:175