1/* Generated from ../../../git/cloog/test/classen.cloog by CLooG 0.14.0-76-gfd78716 gmp bits in 1.73s. */
2extern void hash(int);
3
4/* Useful macros. */
5#define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d))
6#define ceild(n,d)  (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d))
7#define max(x,y)    ((x) > (y) ? (x) : (y))
8#define min(x,y)    ((x) < (y) ? (x) : (y))
9
10#define S1(coordT1,coordP1,other1,other2) { hash(1); hash(coordT1); hash(coordP1); hash(other1); hash(other2); }
11#define S2(coordT1,coordP1,other1,other2,other3,other4,other5,other6) { hash(2); hash(coordT1); hash(coordP1); hash(other1); hash(other2); hash(other3); hash(other4); hash(other5); hash(other6); }
12#define S3(coordT1,coordP1,other1,other2,other3,other4,other5,other6) { hash(3); hash(coordT1); hash(coordP1); hash(other1); hash(other2); hash(other3); hash(other4); hash(other5); hash(other6); }
13#define S4(coordT1,coordP1,other1,other2,other3,other4,other5,other6) { hash(4); hash(coordT1); hash(coordP1); hash(other1); hash(other2); hash(other3); hash(other4); hash(other5); hash(other6); }
14#define S5(coordT1,coordP1,other1,other2,other3,other4,other5,other6) { hash(5); hash(coordT1); hash(coordP1); hash(other1); hash(other2); hash(other3); hash(other4); hash(other5); hash(other6); }
15#define S6(coordT1,coordP1,other1,other2,other3,other4,other5,other6) { hash(6); hash(coordT1); hash(coordP1); hash(other1); hash(other2); hash(other3); hash(other4); hash(other5); hash(other6); }
16#define S7(coordT1,coordP1,other1,other2,other3,other4,other5,other6) { hash(7); hash(coordT1); hash(coordP1); hash(other1); hash(other2); hash(other3); hash(other4); hash(other5); hash(other6); }
17#define S8(coordT1,coordP1) { hash(8); hash(coordT1); hash(coordP1); }
18
19void test(int m)
20{
21  /* Scattering iterators. */
22  int glT1, rp1, local1, local2;
23  /* Original iterators. */
24  int coordT1, coordP1, other1, other2, other3, other4, other5, other6;
25  if (m >= 2) {
26    S1(0,1,1,1) ;
27    S2(0,1,1,1,1,1,2,1) ;
28    S3(0,1,1,2,1,1,1,2) ;
29    S4(0,1,2,2,1,1,2,2) ;
30    S8(0,1) ;
31  }
32  if (m == 1) {
33    S1(0,1,1,1) ;
34    S8(0,1) ;
35  }
36  if (m >= 3) {
37    S5(0,1,1,1,1,1,2,1) ;
38    S1(1,1,2,1) ;
39    S2(1,1,2,1,2,1,3,1) ;
40    S3(1,1,2,2,2,1,2,2) ;
41    S4(1,1,3,2,2,1,3,2) ;
42    S6(0,1,1,2,1,1,1,2) ;
43    S7(0,1,2,2,1,1,2,2) ;
44    S1(1,2,1,2) ;
45    S2(1,2,2,2,1,2,2,2) ;
46    S3(1,2,2,3,1,2,1,3) ;
47    S4(1,2,3,3,1,2,2,3) ;
48    for (coordP1=1;coordP1<=2;coordP1++) {
49      S8(1,coordP1) ;
50    }
51  }
52  for (glT1=2;glT1<=m-2;glT1++) {
53    coordT1 = glT1-1 ;
54    other5 = glT1+1 ;
55    S5(glT1-1,1,glT1,1,glT1,1,glT1+1,1) ;
56    other1 = glT1+1 ;
57    S1(glT1,1,glT1+1,1) ;
58    local1 = glT1+1 ;
59    other1 = glT1+1 ;
60    other3 = glT1+1 ;
61    other5 = glT1+2 ;
62    S2(glT1,1,glT1+1,1,glT1+1,1,glT1+2,1) ;
63    other3 = glT1+1 ;
64    other5 = glT1+1 ;
65    S3(glT1,1,glT1+1,2,glT1+1,1,glT1+1,2) ;
66    other1 = glT1+2 ;
67    other3 = glT1+1 ;
68    other5 = glT1+2 ;
69    S4(glT1,1,glT1+2,2,glT1+1,1,glT1+2,2) ;
70    for (rp1=2;rp1<=glT1;rp1++) {
71      local1 = glT1-rp1+1 ;
72      coordT1 = glT1-1 ;
73      other3 = glT1-rp1+1 ;
74      other5 = glT1-rp1+2 ;
75      S5(glT1-1,rp1,glT1,rp1,glT1-rp1+1,rp1,glT1-rp1+2,rp1) ;
76      local1 = glT1-rp1+2 ;
77      local2 = rp1-1 ;
78      coordT1 = glT1-1 ;
79      coordP1 = rp1-1 ;
80      other3 = glT1-rp1+2 ;
81      other4 = rp1-1 ;
82      other5 = glT1-rp1+2 ;
83      S6(glT1-1,rp1-1,glT1,rp1,glT1-rp1+2,rp1-1,glT1-rp1+2,rp1) ;
84      other1 = glT1+1 ;
85      other3 = glT1-rp1+2 ;
86      other4 = rp1-1 ;
87      other5 = glT1-rp1+3 ;
88      S7(glT1-1,rp1-1,glT1+1,rp1,glT1-rp1+2,rp1-1,glT1-rp1+3,rp1) ;
89      other1 = glT1-rp1+2 ;
90      S1(glT1,rp1,glT1-rp1+2,rp1) ;
91      local1 = glT1-rp1+2 ;
92      other1 = glT1+1 ;
93      other3 = glT1-rp1+2 ;
94      other5 = glT1-rp1+3 ;
95      S2(glT1,rp1,glT1+1,rp1,glT1-rp1+2,rp1,glT1-rp1+3,rp1) ;
96      other2 = rp1+1 ;
97      other3 = glT1-rp1+2 ;
98      other5 = glT1-rp1+2 ;
99      other6 = rp1+1 ;
100      S3(glT1,rp1,glT1+1,rp1+1,glT1-rp1+2,rp1,glT1-rp1+2,rp1+1) ;
101      other1 = glT1+2 ;
102      other2 = rp1+1 ;
103      other3 = glT1-rp1+2 ;
104      other5 = glT1-rp1+3 ;
105      other6 = rp1+1 ;
106      S4(glT1,rp1,glT1+2,rp1+1,glT1-rp1+2,rp1,glT1-rp1+3,rp1+1) ;
107    }
108    rp1 = glT1+1 ;
109    coordT1 = glT1-1 ;
110    other2 = glT1+1 ;
111    other6 = glT1+1 ;
112    S6(glT1-1,glT1,glT1,glT1+1,1,glT1,1,glT1+1) ;
113    other1 = glT1+1 ;
114    other2 = glT1+1 ;
115    other6 = glT1+1 ;
116    S7(glT1-1,glT1,glT1+1,glT1+1,1,glT1,2,glT1+1) ;
117    coordP1 = glT1+1 ;
118    other2 = glT1+1 ;
119    S1(glT1,glT1+1,1,glT1+1) ;
120    local2 = glT1+1 ;
121    coordP1 = glT1+1 ;
122    other1 = glT1+1 ;
123    other2 = glT1+1 ;
124    other4 = glT1+1 ;
125    other6 = glT1+1 ;
126    S2(glT1,glT1+1,glT1+1,glT1+1,1,glT1+1,2,glT1+1) ;
127    other2 = glT1+2 ;
128    other4 = glT1+1 ;
129    other6 = glT1+2 ;
130    S3(glT1,glT1+1,glT1+1,glT1+2,1,glT1+1,1,glT1+2) ;
131    other1 = glT1+2 ;
132    other2 = glT1+2 ;
133    other4 = glT1+1 ;
134    other6 = glT1+2 ;
135    S4(glT1,glT1+1,glT1+2,glT1+2,1,glT1+1,2,glT1+2) ;
136    for (coordP1=1;coordP1<=glT1+1;coordP1++) {
137      S8(glT1,coordP1) ;
138    }
139  }
140  if (m >= 3) {
141    glT1 = m-1 ;
142    local1 = m-1 ;
143    coordT1 = m-2 ;
144    other1 = m-1 ;
145    other3 = m-1 ;
146    S5(m-2,1,m-1,1,m-1,1,m,1) ;
147    coordT1 = m-1 ;
148    S1(m-1,1,m,1) ;
149    coordT1 = m-1 ;
150    S3(m-1,1,m,2,m,1,m,2) ;
151    for (rp1=2;rp1<=m-1;rp1++) {
152      local1 = -rp1+m ;
153      coordT1 = m-2 ;
154      other1 = m-1 ;
155      other3 = -rp1+m ;
156      other5 = -rp1+m+1 ;
157      S5(m-2,rp1,m-1,rp1,-rp1+m,rp1,-rp1+m+1,rp1) ;
158      local1 = -rp1+m+1 ;
159      local2 = rp1-1 ;
160      coordT1 = m-2 ;
161      coordP1 = rp1-1 ;
162      other1 = m-1 ;
163      other3 = -rp1+m+1 ;
164      other4 = rp1-1 ;
165      other5 = -rp1+m+1 ;
166      S6(m-2,rp1-1,m-1,rp1,-rp1+m+1,rp1-1,-rp1+m+1,rp1) ;
167      other3 = -rp1+m+1 ;
168      other4 = rp1-1 ;
169      other5 = -rp1+m+2 ;
170      S7(m-2,rp1-1,m,rp1,-rp1+m+1,rp1-1,-rp1+m+2,rp1) ;
171      coordT1 = m-1 ;
172      other1 = -rp1+m+1 ;
173      S1(m-1,rp1,-rp1+m+1,rp1) ;
174      local1 = -rp1+m+1 ;
175      coordT1 = m-1 ;
176      other3 = -rp1+m+1 ;
177      other5 = -rp1+m+2 ;
178      S2(m-1,rp1,m,rp1,-rp1+m+1,rp1,-rp1+m+2,rp1) ;
179      other2 = rp1+1 ;
180      other3 = -rp1+m+1 ;
181      other5 = -rp1+m+1 ;
182      other6 = rp1+1 ;
183      S3(m-1,rp1,m,rp1+1,-rp1+m+1,rp1,-rp1+m+1,rp1+1) ;
184      other1 = m+1 ;
185      other2 = rp1+1 ;
186      other3 = -rp1+m+1 ;
187      other5 = -rp1+m+2 ;
188      other6 = rp1+1 ;
189      S4(m-1,rp1,m+1,rp1+1,-rp1+m+1,rp1,-rp1+m+2,rp1+1) ;
190    }
191    local2 = m-1 ;
192    coordT1 = m-2 ;
193    coordP1 = m-1 ;
194    other1 = m-1 ;
195    other4 = m-1 ;
196    S6(m-2,m-1,m-1,m,1,m-1,1,m) ;
197    other4 = m-1 ;
198    S7(m-2,m-1,m,m,1,m-1,2,m) ;
199    coordT1 = m-1 ;
200    S1(m-1,m,1,m) ;
201    coordT1 = m-1 ;
202    S2(m-1,m,m,m,1,m,2,m) ;
203    coordT1 = m-1 ;
204    for (coordP1=1;coordP1<=m;coordP1++) {
205      S8(m-1,coordP1) ;
206    }
207  }
208  for (glT1=m;glT1<=2*m-4;glT1++) {
209    rp1 = glT1-m+2 ;
210    local1 = m-1 ;
211    local2 = glT1-m+2 ;
212    coordT1 = glT1-1 ;
213    coordP1 = glT1-m+2 ;
214    other2 = glT1-m+2 ;
215    other3 = m-1 ;
216    other4 = glT1-m+2 ;
217    other6 = glT1-m+2 ;
218    S5(glT1-1,glT1-m+2,glT1,glT1-m+2,m-1,glT1-m+2,m,glT1-m+2) ;
219    local2 = glT1-m+1 ;
220    coordT1 = glT1-1 ;
221    coordP1 = glT1-m+1 ;
222    other2 = glT1-m+2 ;
223    other4 = glT1-m+1 ;
224    other6 = glT1-m+2 ;
225    S6(glT1-1,glT1-m+1,glT1,glT1-m+2,m,glT1-m+1,m,glT1-m+2) ;
226    coordP1 = glT1-m+2 ;
227    other2 = glT1-m+2 ;
228    S1(glT1,glT1-m+2,m,glT1-m+2) ;
229    local2 = glT1-m+2 ;
230    coordP1 = glT1-m+2 ;
231    other1 = glT1+1 ;
232    other2 = glT1-m+3 ;
233    other4 = glT1-m+2 ;
234    other6 = glT1-m+3 ;
235    S3(glT1,glT1-m+2,glT1+1,glT1-m+3,m,glT1-m+2,m,glT1-m+3) ;
236    for (rp1=glT1-m+3;rp1<=m-1;rp1++) {
237      local1 = glT1-rp1+1 ;
238      coordT1 = glT1-1 ;
239      other3 = glT1-rp1+1 ;
240      other5 = glT1-rp1+2 ;
241      S5(glT1-1,rp1,glT1,rp1,glT1-rp1+1,rp1,glT1-rp1+2,rp1) ;
242      local1 = glT1-rp1+2 ;
243      local2 = rp1-1 ;
244      coordT1 = glT1-1 ;
245      coordP1 = rp1-1 ;
246      other3 = glT1-rp1+2 ;
247      other4 = rp1-1 ;
248      other5 = glT1-rp1+2 ;
249      S6(glT1-1,rp1-1,glT1,rp1,glT1-rp1+2,rp1-1,glT1-rp1+2,rp1) ;
250      other1 = glT1+1 ;
251      other3 = glT1-rp1+2 ;
252      other4 = rp1-1 ;
253      other5 = glT1-rp1+3 ;
254      S7(glT1-1,rp1-1,glT1+1,rp1,glT1-rp1+2,rp1-1,glT1-rp1+3,rp1) ;
255      other1 = glT1-rp1+2 ;
256      S1(glT1,rp1,glT1-rp1+2,rp1) ;
257      local1 = glT1-rp1+2 ;
258      other1 = glT1+1 ;
259      other3 = glT1-rp1+2 ;
260      other5 = glT1-rp1+3 ;
261      S2(glT1,rp1,glT1+1,rp1,glT1-rp1+2,rp1,glT1-rp1+3,rp1) ;
262      other2 = rp1+1 ;
263      other3 = glT1-rp1+2 ;
264      other5 = glT1-rp1+2 ;
265      other6 = rp1+1 ;
266      S3(glT1,rp1,glT1+1,rp1+1,glT1-rp1+2,rp1,glT1-rp1+2,rp1+1) ;
267      other1 = glT1+2 ;
268      other2 = rp1+1 ;
269      other3 = glT1-rp1+2 ;
270      other5 = glT1-rp1+3 ;
271      other6 = rp1+1 ;
272      S4(glT1,rp1,glT1+2,rp1+1,glT1-rp1+2,rp1,glT1-rp1+3,rp1+1) ;
273    }
274    local1 = glT1-m+1 ;
275    coordT1 = glT1-1 ;
276    other3 = glT1-m+1 ;
277    other5 = glT1-m+2 ;
278    S5(glT1-1,m,glT1,m,glT1-m+1,m,glT1-m+2,m) ;
279    local1 = glT1-m+2 ;
280    local2 = m-1 ;
281    coordT1 = glT1-1 ;
282    coordP1 = m-1 ;
283    other3 = glT1-m+2 ;
284    other4 = m-1 ;
285    other5 = glT1-m+2 ;
286    S6(glT1-1,m-1,glT1,m,glT1-m+2,m-1,glT1-m+2,m) ;
287    other1 = glT1+1 ;
288    other3 = glT1-m+2 ;
289    other4 = m-1 ;
290    other5 = glT1-m+3 ;
291    S7(glT1-1,m-1,glT1+1,m,glT1-m+2,m-1,glT1-m+3,m) ;
292    other1 = glT1-m+2 ;
293    S1(glT1,m,glT1-m+2,m) ;
294    local1 = glT1-m+2 ;
295    other1 = glT1+1 ;
296    other3 = glT1-m+2 ;
297    other5 = glT1-m+3 ;
298    S2(glT1,m,glT1+1,m,glT1-m+2,m,glT1-m+3,m) ;
299    for (coordP1=glT1-m+2;coordP1<=m;coordP1++) {
300      S8(glT1,coordP1) ;
301    }
302  }
303  if (m >= 3) {
304    glT1 = 2*m-3 ;
305    rp1 = m-1 ;
306    local1 = m-1 ;
307    local2 = m-1 ;
308    coordT1 = 2*m-4 ;
309    coordP1 = m-1 ;
310    other1 = 2*m-3 ;
311    other2 = m-1 ;
312    other3 = m-1 ;
313    other4 = m-1 ;
314    other6 = m-1 ;
315    S5(2*m-4,m-1,2*m-3,m-1,m-1,m-1,m,m-1) ;
316    local2 = m-2 ;
317    coordT1 = 2*m-4 ;
318    coordP1 = m-2 ;
319    other1 = 2*m-3 ;
320    other2 = m-1 ;
321    other4 = m-2 ;
322    other6 = m-1 ;
323    S6(2*m-4,m-2,2*m-3,m-1,m,m-2,m,m-1) ;
324    coordT1 = 2*m-3 ;
325    coordP1 = m-1 ;
326    other2 = m-1 ;
327    S1(2*m-3,m-1,m,m-1) ;
328    local2 = m-1 ;
329    coordT1 = 2*m-3 ;
330    coordP1 = m-1 ;
331    other1 = 2*m-2 ;
332    other4 = m-1 ;
333    S3(2*m-3,m-1,2*m-2,m,m,m-1,m,m) ;
334    local1 = m-2 ;
335    coordT1 = 2*m-4 ;
336    other1 = 2*m-3 ;
337    other3 = m-2 ;
338    other5 = m-1 ;
339    S5(2*m-4,m,2*m-3,m,m-2,m,m-1,m) ;
340    local1 = m-1 ;
341    local2 = m-1 ;
342    coordT1 = 2*m-4 ;
343    coordP1 = m-1 ;
344    other1 = 2*m-3 ;
345    other3 = m-1 ;
346    other4 = m-1 ;
347    other5 = m-1 ;
348    S6(2*m-4,m-1,2*m-3,m,m-1,m-1,m-1,m) ;
349    other1 = 2*m-2 ;
350    other3 = m-1 ;
351    other4 = m-1 ;
352    S7(2*m-4,m-1,2*m-2,m,m-1,m-1,m,m) ;
353    coordT1 = 2*m-3 ;
354    other1 = m-1 ;
355    S1(2*m-3,m,m-1,m) ;
356    local1 = m-1 ;
357    coordT1 = 2*m-3 ;
358    other1 = 2*m-2 ;
359    other3 = m-1 ;
360    S2(2*m-3,m,2*m-2,m,m-1,m,m,m) ;
361    coordT1 = 2*m-3 ;
362    for (coordP1=m-1;coordP1<=m;coordP1++) {
363      S8(2*m-3,coordP1) ;
364    }
365  }
366  if (m == 2) {
367    S5(0,1,1,1,1,1,2,1) ;
368    S1(1,1,2,1) ;
369    S3(1,1,2,2,2,1,2,2) ;
370    S6(0,1,1,2,1,1,1,2) ;
371    S7(0,1,2,2,1,1,2,2) ;
372    S1(1,2,1,2) ;
373    S2(1,2,2,2,1,2,2,2) ;
374    for (coordP1=1;coordP1<=2;coordP1++) {
375      S8(1,coordP1) ;
376    }
377  }
378  if (m >= 2) {
379    glT1 = 2*m-2 ;
380    local1 = m-1 ;
381    coordT1 = 2*m-3 ;
382    other1 = 2*m-2 ;
383    other3 = m-1 ;
384    S5(2*m-3,m,2*m-2,m,m-1,m,m,m) ;
385    local2 = m-1 ;
386    coordT1 = 2*m-3 ;
387    coordP1 = m-1 ;
388    other1 = 2*m-2 ;
389    other4 = m-1 ;
390    S6(2*m-3,m-1,2*m-2,m,m,m-1,m,m) ;
391    coordT1 = 2*m-2 ;
392    S1(2*m-2,m,m,m) ;
393    coordT1 = 2*m-2 ;
394    S8(2*m-2,m) ;
395  }
396}
397