]> matita.cs.unibo.it Git - pkg-cerco/acc.git/blob - tests/clight/fir4.c
Imported Upstream version 0.2
[pkg-cerco/acc.git] / tests / clight / fir4.c
1 int fir4_c[] = {1129,60034,64720,5595,494,59867,65370,5724,5724,65370,59867,494,5595,64720,60034,1129};\r
2 int fir4_in[] = {1, 0, 16384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7986, 8993, 1808, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096};\r
3 \r
4 int fir4(int fir4_in[], int fir4_c[], int fir4_out[], int size) {\r
5     int i,j, tmp1, tmp2, tmp3, tmp4;\r
6         int x[16];\r
7         int adx = 0;\r
8         int res = 0;\r
9         \r
10         for(i = 0; i < 16; i = i+1){\r
11                 x[i] = 0;\r
12         }\r
13         \r
14         for (j = 0; j < size; j = j+1) {\r
15                 x[adx] = fir4_in[j];\r
16                 res = 0;\r
17                 \r
18             for(i = 0; i < 16; i = i+4){\r
19                     tmp1 = (x[adx]*fir4_c[i]);\r
20                     tmp2 = (x[(adx+1)%16]*fir4_c[i+1]);\r
21                     tmp3 = (x[(adx+2)%16]*fir4_c[i+2]);\r
22                     tmp4 = (x[(adx+3)%16]*fir4_c[i+3]);\r
23                     res = res + tmp1 + tmp2 + tmp3 + tmp4;\r
24                     adx = (adx+4)%16;\r
25             }\r
26             adx=(adx+1)%16;\r
27             fir4_out[j] = res >> 16;\r
28     }\r
29         return 0;\r
30 }\r
31 \r
32 int main(){\r
33         int fir4_out[16];\r
34         return fir4(fir4_in,fir4_c,fir4_out,16);\r
35 }\r