59 #include "gen_twiddle_fft16x16.h"
65 # define PI 3.14159265358979323846
73 static short d2s(
double d)
76 if (d >= 32767.0)
return 32767;
77 if (d <= -32768.0)
return -32768;
104 for (j = 1, k = 0; j < n >> 2; j = j << 2) {
105 for (i = 0; i < n >> 2; i += j << 1) {
106 w[k + 11] =
d2s(M * cos(6.0 *
PI * (i + j) / n));
107 w[k + 10] =
d2s(M * sin(6.0 *
PI * (i + j) / n));
108 w[k + 9] =
d2s(M * cos(6.0 *
PI * (i ) / n));
109 w[k + 8] =
d2s(M * sin(6.0 *
PI * (i ) / n));
111 w[k + 7] = -
d2s(M * cos(4.0 *
PI * (i + j) / n));
112 w[k + 6] = -
d2s(M * sin(4.0 *
PI * (i + j) / n));
113 w[k + 5] = -
d2s(M * cos(4.0 *
PI * (i ) / n));
114 w[k + 4] = -
d2s(M * sin(4.0 *
PI * (i ) / n));
116 w[k + 3] =
d2s(M * cos(2.0 *
PI * (i + j) / n));
117 w[k + 2] =
d2s(M * sin(2.0 *
PI * (i + j) / n));
118 w[k + 1] =
d2s(M * cos(2.0 *
PI * (i ) / n));
119 w[k + 0] =
d2s(M * sin(2.0 *
PI * (i ) / n));
133 for (j = 1, k = 0; j < n >> 2; j = j << 2) {
134 for (i = 0; i < n >> 2; i += j << 1) {
135 w[k + 11] = -
d2s(M * sin(6.0 *
PI * (i + j) / n));
136 w[k + 10] =
d2s(M * cos(6.0 *
PI * (i + j) / n));
137 w[k + 9] = -
d2s(M * sin(6.0 *
PI * (i ) / n));
138 w[k + 8] =
d2s(M * cos(6.0 *
PI * (i ) / n));
140 w[k + 7] =
d2s(M * sin(4.0 *
PI * (i + j) / n));
141 w[k + 6] = -
d2s(M * cos(4.0 *
PI * (i + j) / n));
142 w[k + 5] =
d2s(M * sin(4.0 *
PI * (i ) / n));
143 w[k + 4] = -
d2s(M * cos(4.0 *
PI * (i ) / n));
145 w[k + 3] = -
d2s(M * sin(2.0 *
PI * (i + j) / n));
146 w[k + 2] =
d2s(M * cos(2.0 *
PI * (i + j) / n));
147 w[k + 1] = -
d2s(M * sin(2.0 *
PI * (i ) / n));
148 w[k + 0] =
d2s(M * cos(2.0 *
PI * (i ) / n));