struct fft_context fft;
};
-/* cos(2*pi*x/n) for 0<=x<=n/4, followed by its reverse */
-DECLARE_ALIGNED_16(fftsample_t, ff_cos_16[8]);
-DECLARE_ALIGNED_16(fftsample_t, ff_cos_32[16]);
-DECLARE_ALIGNED_16(fftsample_t, ff_cos_64[32]);
-DECLARE_ALIGNED_16(fftsample_t, ff_cos_128[64]);
-DECLARE_ALIGNED_16(fftsample_t, ff_cos_256[128]);
-DECLARE_ALIGNED_16(fftsample_t, ff_cos_512[256]);
-DECLARE_ALIGNED_16(fftsample_t, ff_cos_1024[512]);
-DECLARE_ALIGNED_16(fftsample_t, ff_cos_2048[1024]);
-DECLARE_ALIGNED_16(fftsample_t, ff_cos_4096[2048]);
-DECLARE_ALIGNED_16(fftsample_t, ff_cos_8192[4096]);
-DECLARE_ALIGNED_16(fftsample_t, ff_cos_16384[8192]);
-DECLARE_ALIGNED_16(fftsample_t, ff_cos_32768[16384]);
-DECLARE_ALIGNED_16(fftsample_t, ff_cos_65536[32768]);
-
-static fftsample_t *ff_cos_tabs[] = {
- ff_cos_16, ff_cos_32, ff_cos_64, ff_cos_128, ff_cos_256,
- ff_cos_512, ff_cos_1024, ff_cos_2048, ff_cos_4096, ff_cos_8192,
- ff_cos_16384, ff_cos_32768, ff_cos_65536,
+/** cos(2 * pi * x / n) for 0 <= x <= n / 4, followed by its reverse */
+#define COSINE_TAB(n) fftsample_t cos_ ## n[n / 2] __aligned(16)
+
+COSINE_TAB(16);
+COSINE_TAB(32);
+COSINE_TAB(64);
+COSINE_TAB(128);
+COSINE_TAB(256);
+COSINE_TAB(512);
+COSINE_TAB(1024);
+COSINE_TAB(2048);
+COSINE_TAB(4096);
+COSINE_TAB(8192);
+COSINE_TAB(16384);
+COSINE_TAB(32768);
+COSINE_TAB(65536);
+
+static fftsample_t *cos_tabs[] = {
+ cos_16, cos_32, cos_64, cos_128, cos_256, cos_512, cos_1024, cos_2048,
+ cos_4096, cos_8192, cos_16384, cos_32768, cos_65536,
};
static int split_radix_permutation(int i, int n)
fft##n2(z);\
fft##n4(z+n4*2);\
fft##n4(z+n4*3);\
- pass(z,ff_cos_##n,n4/2);\
+ pass(z,cos_##n,n4/2);\
}
static void fft4(struct fft_complex *z)
{
TRANSFORM_ZERO(z[0], z[4], z[8], z[12]);
TRANSFORM(z[2], z[6], z[10], z[14], SQRTHALF, SQRTHALF);
- TRANSFORM(z[1], z[5], z[9], z[13], ff_cos_16[1], ff_cos_16[3]);
- TRANSFORM(z[3], z[7], z[11], z[15], ff_cos_16[3], ff_cos_16[1]);
+ TRANSFORM(z[1], z[5], z[9], z[13], cos_16[1], cos_16[3]);
+ TRANSFORM(z[3], z[7], z[11], z[15], cos_16[3], cos_16[1]);
}
DECL_FFT(32, 16, 8)
for (j = 4; j <= nbits; j++) {
int k = 1 << j;
double freq = 2 * M_PI / k;
- fftsample_t *tab = ff_cos_tabs[j - 4];
+ fftsample_t *tab = cos_tabs[j - 4];
for (i = 0; i <= k / 4; i++)
tab[i] = cos(i * freq);
for (i = 1; i < k / 4; i++)