1#  A SCoP from matmul (matmul.B.main.scop1.cloog) to check normalization
2#
3#  Options:
4#  cloog -f 8 -l 9 vasilache.cloog
5#  
6#  Correct:
7#  S1;
8#  S2;
9#  for (p0=0;p0<=N-1;p0++) {
10#   for (p1=0;p1<=N-1;p1++) {
11#     S4(i = p0,j = p1);
12#     S5(i = p0,j = p1);
13#   }
14#  }
15#  for (p0=0;p0<=N-1;p0++) {
16#   for (p1=0;p1<=N-1;p1++) {
17#     for (p2=0;p2<=floord(N-1,32);p2++) {
18#       S7(i = p0,j = p1,k = p2,l = 32*p2);
19#       for (p3=32*p2+1;p3<=min(N-1,32*p2+31);p3++) {
20#         S6(i = p0,j = p1,k = p2,l = p3-1);
21#         S7(i = p0,j = p1,k = p2,l = p3);
22#       }
23#       if (p2 >= ceild(N-32,32)) {
24#         S6(i = p0,j = p1,k = p2,l = N-1);
25#       }
26#       if (p2 <= floord(N-33,32)) {
27#         S6(i = p0,j = p1,k = p2,l = 32*p2+31);
28#       }
29#     }
30#   }
31#  }
32#  S8;
33#  
34#  
35#  NOT correct:
36#  S1 ;
37#  S2 ;
38#  for (p1=0;p1<=N-1;p1++) {
39#   for (p3=0;p3<=N-1;p3++) {
40#     S4(i = p1,j = p3) ;
41#     S5(i = p1,j = p3) ;
42#   }
43#  }
44#  for (p1=0;p1<=N-1;p1++) {
45#   for (p3=0;p3<=N-1;p3++) {
46#     for (p5=0;p5<=floord(N-1,32);p5++) {
47#       if (p5 <= 0) {
48#         S7(i = p1,j = p3,k = p5,l = 0) ;
49#       }
50#       p7 = 32*p5 ;
51#       l = 32*p5 ;
52#       S7(i = p1,j = p3,k = p5) ;
53#       for (p7=max(32*p5+1,1);p7<=min(32*p5+31,N-1);p7++) {
54#         l = p7-1 ;
55#         S6(i = p1,j = p3,k = p5) ;
56#         S7(i = p1,j = p3,k = p5,l = p7) ;
57#       }
58#       if (p5 >= ceild(N-32,32)) {
59#         l = N-1 ;
60#         S6(i = p1,j = p3,k = p5) ;
61#       }
62#       p7 = 32*p5+32 ;
63#       l = 32*p5+31 ;
64#       S6(i = p1,j = p3,k = p5) ;
65#     }
66#   }
67#  }
68#    S8 ;
69
70
71
72c # language is C
73# ---------- CONTEXT ----------
74# Context (constraints on parameters)
752    4     # 1 lines, 4 columns
761    -1   0    3    
771    0    1    -100 
78
79
800 # Automatically find parameter names
81
82# ---------- STATEMENTS ----------
838 # Number of statements
84
851 # Statement has a non resticted domain
861    4    
871    0    0    0    
880    0    0    
89
901 # Statement has a non resticted domain
911    4    
921    0    0    0    
930    0    0    
94
951 # Statement has 1 domain
961    4    
971    1    0    -79  
980    0    0    
99
1001 # Statement has 1 domain
1014    6    
1021    1    0    0    0    0    
1031    -1   0    0    1    -1   
1041    0    1    0    0    0    
1051    0    -1   0    1    -1   
1060    0    0    
107
1081 # Statement has 1 domain
1094    6    
1101    1    0    0    0    0    
1111    -1   0    0    1    -1   
1121    0    1    0    0    0    
1131    0    -1   0    1    -1   
1140    0    0    
115
1161 # Statement has 1 domain
1178    8    
1181    1    0    0    0    0    0    0    
1191    -1   0    0    0    0    1    -1   
1201    0    1    0    0    0    0    0    
1211    0    -1   0    0    0    1    -1   
1221    0    0    0    1    0    0    0    
1231    0    0    0    -1   0    1    -1   
1241    0    0    -32  1    0    0    0    
1251    0    0    32   -1   0    0    31   
1260    0    0    
127
1281 # Statement has 1 domain
1298    8    
1301    1    0    0    0    0    0    0    
1311    -1   0    0    0    0    1    -1   
1321    0    1    0    0    0    0    0    
1331    0    -1   0    0    0    1    -1   
1341    0    0    0    1    0    0    0    
1351    0    0    0    -1   0    1    -1   
1361    0    0    -32  1    0    0    0    
1371    0    0    32   -1   0    0    31   
1380    0    0    
139
1401 # Statement has a non resticted domain
1411    4    
1421    0    0    0    
1430    0    0    
144
1450 # Automatically find iterator names.
146
147# ---------- SCATTERING FUNCTIONS ----------
1488 # Number of scattering functions
149
1509    13   
151#    p0   p1   p2   p3   p4   p5   p6   p7   p8   
1520    1    0    0    0    0    0    0    0    0                   0    0    0     # Beta 0
1530    0    1    0    0    0    0    0    0    0                   0    0    0     # Alpha & Gamma 1
1540    0    0    1    0    0    0    0    0    0                   0    0    0     # Beta 1
1550    0    0    0    1    0    0    0    0    0                   0    0    0     # Alpha & Gamma 2
1560    0    0    0    0    1    0    0    0    0                   0    0    0     # Beta 2
1570    0    0    0    0    0    1    0    0    0                   0    0    0     # Alpha & Gamma 3
1580    0    0    0    0    0    0    1    0    0                   0    0    0     # Beta 3
1590    0    0    0    0    0    0    0    1    0                   0    0    0     # Alpha & Gamma 4
1600    0    0    0    0    0    0    0    0    1                   0    0    0     # Beta 4
161
1629    13   
163#    p0   p1   p2   p3   p4   p5   p6   p7   p8   
1640    1    0    0    0    0    0    0    0    0                   0    0    -1    # Beta 0
1650    0    1    0    0    0    0    0    0    0                   0    0    0     # Alpha & Gamma 1
1660    0    0    1    0    0    0    0    0    0                   0    0    0     # Beta 1
1670    0    0    0    1    0    0    0    0    0                   0    0    0     # Alpha & Gamma 2
1680    0    0    0    0    1    0    0    0    0                   0    0    0     # Beta 2
1690    0    0    0    0    0    1    0    0    0                   0    0    0     # Alpha & Gamma 3
1700    0    0    0    0    0    0    1    0    0                   0    0    0     # Beta 3
1710    0    0    0    0    0    0    0    1    0                   0    0    0     # Alpha & Gamma 4
1720    0    0    0    0    0    0    0    0    1                   0    0    0     # Beta 4
173
1749    13   
175#    p0   p1   p2   p3   p4   p5   p6   p7   p8   
1760    1    0    0    0    0    0    0    0    0                   0    0    -2    # Beta 0
1770    0    1    0    0    0    0    0    0    0                   0    0    0     # Alpha & Gamma 1
1780    0    0    1    0    0    0    0    0    0                   0    0    0     # Beta 1
1790    0    0    0    1    0    0    0    0    0                   0    0    0     # Alpha & Gamma 2
1800    0    0    0    0    1    0    0    0    0                   0    0    0     # Beta 2
1810    0    0    0    0    0    1    0    0    0                   0    0    0     # Alpha & Gamma 3
1820    0    0    0    0    0    0    1    0    0                   0    0    0     # Beta 3
1830    0    0    0    0    0    0    0    1    0                   0    0    0     # Alpha & Gamma 4
1840    0    0    0    0    0    0    0    0    1                   0    0    0     # Beta 4
185
1869    15   
187#    p0   p1   p2   p3   p4   p5   p6   p7   p8   
1880    1    0    0    0    0    0    0    0    0         0    0              0    0    -3    # Beta 0
1890    0    1    0    0    0    0    0    0    0         -1   0              0    0    0     # Alpha & Gamma 1
1900    0    0    1    0    0    0    0    0    0         0    0              0    0    0     # Beta 1
1910    0    0    0    1    0    0    0    0    0         0    -1             0    0    0     # Alpha & Gamma 2
1920    0    0    0    0    1    0    0    0    0         0    0              0    0    0     # Beta 2
1930    0    0    0    0    0    1    0    0    0         0    0              0    0    0     # Alpha & Gamma 3
1940    0    0    0    0    0    0    1    0    0         0    0              0    0    0     # Beta 3
1950    0    0    0    0    0    0    0    1    0         0    0              0    0    0     # Alpha & Gamma 4
1960    0    0    0    0    0    0    0    0    1         0    0              0    0    0     # Beta 4
197
1989    15   
199#    p0   p1   p2   p3   p4   p5   p6   p7   p8   
2000    1    0    0    0    0    0    0    0    0         0    0              0    0    -3    # Beta 0
2010    0    1    0    0    0    0    0    0    0         -1   0              0    0    0     # Alpha & Gamma 1
2020    0    0    1    0    0    0    0    0    0         0    0              0    0    0     # Beta 1
2030    0    0    0    1    0    0    0    0    0         0    -1             0    0    0     # Alpha & Gamma 2
2040    0    0    0    0    1    0    0    0    0         0    0              0    0    -1    # Beta 2
2050    0    0    0    0    0    1    0    0    0         0    0              0    0    0     # Alpha & Gamma 3
2060    0    0    0    0    0    0    1    0    0         0    0              0    0    0     # Beta 3
2070    0    0    0    0    0    0    0    1    0         0    0              0    0    0     # Alpha & Gamma 4
2080    0    0    0    0    0    0    0    0    1         0    0              0    0    0     # Beta 4
209
2109    17   
211#    p0   p1   p2   p3   p4   p5   p6   p7   p8   
2120    1    0    0    0    0    0    0    0    0         0    0    0    0              0    0    -4    # Beta 0
2130    0    1    0    0    0    0    0    0    0         -1   0    0    0              0    0    0     # Alpha & Gamma 1
2140    0    0    1    0    0    0    0    0    0         0    0    0    0              0    0    0     # Beta 1
2150    0    0    0    1    0    0    0    0    0         0    -1   0    0              0    0    0     # Alpha & Gamma 2
2160    0    0    0    0    1    0    0    0    0         0    0    0    0              0    0    0     # Beta 2
2170    0    0    0    0    0    1    0    0    0         0    0    -1   0              0    0    0     # Alpha & Gamma 3
2180    0    0    0    0    0    0    1    0    0         0    0    0    0              0    0    0     # Beta 3
2190    0    0    0    0    0    0    0    1    0         0    0    0    -1             0    0    -1    # Alpha & Gamma 4
2200    0    0    0    0    0    0    0    0    1         0    0    0    0              0    0    0     # Beta 4
221
2229    17   
223#    p0   p1   p2   p3   p4   p5   p6   p7   p8   
2240    1    0    0    0    0    0    0    0    0         0    0    0    0              0    0    -4    # Beta 0
2250    0    1    0    0    0    0    0    0    0         -1   0    0    0              0    0    0     # Alpha & Gamma 1
2260    0    0    1    0    0    0    0    0    0         0    0    0    0              0    0    0     # Beta 1
2270    0    0    0    1    0    0    0    0    0         0    -1   0    0              0    0    0     # Alpha & Gamma 2
2280    0    0    0    0    1    0    0    0    0         0    0    0    0              0    0    0     # Beta 2
2290    0    0    0    0    0    1    0    0    0         0    0    -1   0              0    0    0     # Alpha & Gamma 3
2300    0    0    0    0    0    0    1    0    0         0    0    0    0              0    0    0     # Beta 3
2310    0    0    0    0    0    0    0    1    0         0    0    0    -1             0    0    0     # Alpha & Gamma 4
2320    0    0    0    0    0    0    0    0    1         0    0    0    0              0    0    -1    # Beta 4
233
2349    13   
235#    p0   p1   p2   p3   p4   p5   p6   p7   p8   
2360    1    0    0    0    0    0    0    0    0                   0    0    -5    # Beta 0
2370    0    1    0    0    0    0    0    0    0                   0    0    0     # Alpha & Gamma 1
2380    0    0    1    0    0    0    0    0    0                   0    0    0     # Beta 1
2390    0    0    0    1    0    0    0    0    0                   0    0    0     # Alpha & Gamma 2
2400    0    0    0    0    1    0    0    0    0                   0    0    0     # Beta 2
2410    0    0    0    0    0    1    0    0    0                   0    0    0     # Alpha & Gamma 3
2420    0    0    0    0    0    0    1    0    0                   0    0    0     # Beta 3
2430    0    0    0    0    0    0    0    1    0                   0    0    0     # Alpha & Gamma 4
2440    0    0    0    0    0    0    0    0    1                   0    0    0     # Beta 4
245
2461 # Set the scattering parameter names.
247p0 p1 p2 p3 p4 p5 p6 p7 p8 
248
249