27 float factor =
M_PI / (ndct * 2);
28 float in1, in2, in3, in4;
29 for (
int i = 0; i < ndct / 4; i++) {
30 in1 =
data[i * 2 + 0];
31 in2 =
data[i * 2 + 1];
32 in3 =
data[ndct - i * 2 - 1];
33 in4 =
data[ndct - i * 2 - 2];
36 in1 * cos(factor * (i * 2 + 0))
37 + in3 * cos(factor * ((ndct - i * 2)))
41 -in1 * sin(factor * (i * 2))
42 + in3 * sin(factor * ((ndct - i * 2)))
45 data[ndct - i * 2 + 0 - 2] = (
46 in2 * cos(factor * (i * 2 + 1 + 0.5) )
47 + in4 * cos(factor * ((ndct - i * 2 - 1) - 0.5) )
50 data[ndct - i * 2 + 1 - 2] = (
51 in2 * sin(factor * (i * 2 + 1))
52 + in4 * sin(-factor * ((ndct - i * 2 - 1)) )
66 for (
int i = 0; i < ndct / 4; i++) {
67 in1 =
data[2 * i + 0];
68 in2 =
data[2 * i + 1];
70 in3 =
data[ndct - 2 * i - 2];
71 in4 =
data[ndct - 2 * i - 1];
74 in1 * cos(factor * (0 + i * 2))
75 + in2 * sin(factor * (0 + i * 2))
78 data[ndct - i * 2 - 1] = (
79 in1 * cos(factor * (ndct - i * 2))
80 - in2 * sin(factor * (ndct - i * 2))
84 in3 * cos(factor * (2 + i * 2))
85 - in4 * sin(factor * (2 + i * 2))
88 data[ndct - i * 2 - 2] = (
89 in3 * cos(factor * (ndct - i * 2 - 2) )
90 + in4 * sin(factor * (ndct - i * 2 - 2) )