First commit : 0.14.0 version (with roadmap in doc instead of
[cloog/uuh.git] / test / published / Web / web6.cloog
blobbd33077dca39324faf47af372720a27e397820de
1 # CLooG example file #6.
2 # Please read the first and second examples which are fully documented to
3 # understand the different parts of the input file.
5 ################################################################################
6 #  do i=1,n                            The problem here is to generate the     #
7 #  | do j =1,i-1                       transformation of a real-life Cholesau  #
8 #  | | if (j.EQ.1) then                kernel according to the allocation      #
9 #S1| | | s1(i,j)=a(i,j)s4(j,i)**2      functions given by a good automatic     #
10 #  | | else                            parallelizer (e.g. PAF or LooPo). For   #
11 #S2| | | s1(i,j)=s1(i,j-1)-s4(j,i)**2  each statement the new schedule is:     #
12 #  | if (i .EQ. 1) then                        T_S1(i,j)  =(i+j-1,i,0,j,0,0,0) #
13 #S3| | s2(i)=sqrt(a(i,i))                      T_S2(i,j)  =(i,    i,0,j,1,0,0  #
14 #  | else                                      T_S3(i)    =(i-1,  i,1,0,0,0,0  #
15 #S4| | s2(i)=sqrt (s1(i,i-1))                  T_S4(i)    =(0,    i,2,0,0,0,0) #
16 #  | do k=i+1,n                                T_S5(i,j,k)=(j+k-1,i,3,j,0,k,0) #
17 #  | | do l=1,i-1                              T_S6(i,j,k)=(k,    i,3,j,0,k,1) #
18 #  | | | if (l .EQ. 1) then                    T_S7(i,j)  =(i+j,  i,3,j,1,0,0) #
19 #S5| | | | s3(i,k,l)=a(k,i)-(s4(l,k)*s4(l,i))  T_S8(i,j)  =(j,    i,3,j,2,0,0) #
20 #  | | | else                                                                  #
21 #S6| | | | s3(i,k,l)=s3(i,k,l-1)-(s4(l,k)*s4(l,i))                             #
22 #  | | if (i .EQ.1) then               In the generated code, every instances  #
23 #S7| | | s4(i,k)=a(k,i)/s2(i)          with the same p value are executed on   #
24 #  | | else                            processor number p (an allocation pb).  #
25 #S8| | | s4(i,k)=s3(i,k,i-1)/s2(i)     For a better view, use -fsp 2 option.   #
26 ################################################################################
28 #------------------------------------CONTEXT------------------------------------
30 # 1. language: FORTRAN
33 # 2. Parameters {n | n>=10}
34 1 3
35 #  n  1
36 1  1 -10 # n>=10
38 # 3. We set manually the parameter name: n
42 #-----------------------------------POLYHEDRA-----------------------------------
44 # 4. Number of polyhedra:
47 # Polyhedron #1
49 # {i, j | 1<=i<=n; 1<=j<=i-1; j=1}
50 5 5
51 #  i  j  n  1
52 1  1  0  0 -1 # 1<=i
53 1 -1  0  1  0 # i<=n
54 1  0  1  0 -1 # 1<=j
55 1  1 -1  0 -1 # j<=i-1
56 0  0  1  0 -1 # j=1
57 0  0  0       # 3 zeroes !
59 # Polyhedron #2
61 # {i, j | 1<=i<=n; 1<=j<=i-1; j!=1}
62 5 5
63 #  i  j  n  1
64 1  1  0  0 -1 # 1<=i
65 1 -1  0  1  0 # i<=n
66 1  0  1  0 -1 # 1<=j
67 1  1 -1  0 -1 # j<=i-1
68 1  0  1  0 -2 # j>=2
69 5 5
70 #  i  j  n  1
71 1  1  0  0 -1 # 1<=i
72 1 -1  0  1  0 # i<=n
73 1  0  1  0 -1 # 1<=j
74 1  1 -1  0 -1 # j<=i-1
75 1  0 -1  0  0 # j<=0
76 0  0  0       # 3 zeroes !
78 # Polyhedron #3
80 # {i | 1<=i<=n; i=1}
81 3 4
82 #  i  n  1
83 1  1  0 -1 # 1<=i
84 1 -1  1  0 # i<=n
85 0  1  0 -1 # i=1
86 0  0  0    # 3 zeroes !
88 # Polyhedron #4
90 # {i | 1<=i<=n; i!=1}
91 3 4
92 #  i  n  1
93 1  1  0 -1 # 1<=i
94 1 -1  1  0 # i<=n
95 1  1  0 -2 # i>=2
96 3 4
97 #  i  n  1
98 1  1  0 -1 # 1<=i
99 1 -1  1  0 # i<=n
100 1 -1  0  0 # i<=0
101 0  0  0    # 3 zeroes !
103 # Polyhedron #5
105 # {i, j | 1<=i<=n; i+1<=j<=n; 1<=k<=i-1; k=1}
106 7 6
107 #  i  j  k  n  1
108 1  1  0  0  0 -1 # 1<=i
109 1 -1  0  0  1  0 # i<=n
110 1 -1  1  0  0 -1 # i+1<=j
111 1  0 -1  0  1  0 # j<=n
112 1  0  0  1  0 -1 # 1<=k
113 1  1  0 -1  0 -1 # k<=i-1
114 0  0  0  1  0 -1 # k=1
115 0  0  0          # 3 zeroes !
117 # Polyhedron #6
119 # {i, j | 1<=i<=n; i+1<=j<=n; 1<=k<=i-1; k!=1}
120 7 6
121 #  i  j  k  n  1
122 1  1  0  0  0 -1 # 1<=i
123 1 -1  0  0  1  0 # i<=n
124 1 -1  1  0  0 -1 # i+1<=j
125 1  0 -1  0  1  0 # j<=n
126 1  0  0  1  0 -1 # 1<=k
127 1  1  0 -1  0 -1 # k<=i-1
128 1  0  0  1  0 -2 # k>=2
129 7 6
130 #  i  j  k  n  1
131 1  1  0  0  0 -1 # 1<=i
132 1 -1  0  0  1  0 # i<=n
133 1 -1  1  0  0 -1 # i+1<=j
134 1  0 -1  0  1  0 # j<=n
135 1  0  0  1  0 -1 # 1<=k
136 1  1  0 -1  0 -1 # k<=i-1
137 1  0  0 -1  0  0 # k<=0
138 0  0  0          # 3 zeroes !
140 # Polyhedron #7
142 # {i, j | 1<=i<=n; i+1<=j<=n; i=1}
143 5 5
144 #  i  j  n  1
145 1  1  0  0 -1 # 1<=i
146 1 -1  0  1  0 # i<=n
147 1 -1  1  0 -1 # i+1<=j
148 1  0 -1  1  0 # j<=n
149 0  1  0  0 -1 # i=1
150 0  0  0       # 3 zeroes !
152 # Polyhedron #8
154 # {i, j | 1<=i<=n; i+1<=j<=n; i!=1}
155 5 5
156 #  i  j  n  1
157 1  1  0  0 -1 # 1<=i
158 1 -1  0  1  0 # i<=n
159 1 -1  1  0 -1 # i+1<=j
160 1  0 -1  1  0 # j<=n
161 1  1  0  0 -2 # i>=2
162 5 5
163 #  i  j  n  1
164 1  1  0  0 -1 # 1<=i
165 1 -1  0  1  0 # i<=n
166 1 -1  1  0 -1 # i+1<=j
167 1  0 -1  1  0 # j<=n
168 1 -1  0  0  0 # i<=0
169 0  0  0       # 3 zeroes !
171 # 6. We let CLooG choose the iterator names
174 #----------------------------------SCATTERING-----------------------------------
176 # 7. Scattering functions ALLOCATION + ORIGINAL SCHEDULING
179 # Scattering function for polyhedron #1: T_S1(i,j)  =(i+j-1,i,0,j,0,0,0)
180 7 12
181 #  p c1 c2 c3 c4 c5 c6  i  j  n  1
182 0  1  0  0  0  0  0  0 -1 -1  0  1 # ins1: i+j-1
183 0  0  1  0  0  0  0  0 -1  0  0  0 # i
184 0  0  0  1  0  0  0  0  0  0  0  0 # 0
185 0  0  0  0  1  0  0  0  0 -1  0  0 # j
186 0  0  0  0  0  1  0  0  0  0  0  0 # 0
187 0  0  0  0  0  0  1  0  0  0  0  0 # 0
188 0  0  0  0  0  0  0  1  0  0  0  0 # 0
190 # Scattering function for polyhedron #2: T_S2(i,j)  =(i,i,0,j,1,0,0)
191 7 12
192 #  p c1 c2 c3 c4 c5 c6  i  j  n  1
193 0  1  0  0  0  0  0  0 -1  0  0  0 # ins2: i
194 0  0  1  0  0  0  0  0 -1  0  0  0 # i
195 0  0  0  1  0  0  0  0  0  0  0  0 # 0
196 0  0  0  0  1  0  0  0  0 -1  0  0 # j
197 0  0  0  0  0  1  0  0  0  0  0 -1 # 1
198 0  0  0  0  0  0  1  0  0  0  0  0 # 0
199 0  0  0  0  0  0  0  1  0  0  0  0 # 0
201 # Scattering function for polyhedron #3: T_S3(i)    =(i-1,i,1,0,0,0,0)
202 7 11
203 #  p c1 c2 c3 c4 c5 c6  i  n  1
204 0  1  0  0  0  0  0  0 -1  0  1 # ins3: i-1
205 0  0  1  0  0  0  0  0 -1  0  0 # i
206 0  0  0  1  0  0  0  0  0  0 -1 # 1
207 0  0  0  0  1  0  0  0  0  0  0 # 0
208 0  0  0  0  0  1  0  0  0  0  0 # 0
209 0  0  0  0  0  0  1  0  0  0  0 # 0
210 0  0  0  0  0  0  0  1  0  0  0 # 0
212 # Scattering function for polyhedron #4: T_S4(i)    =(0,i,2,0,0,0,0)
213 7 11
214 #  p c1 c2 c3 c4 c5 c6  i  n  1
215 0  1  0  0  0  0  0  0  0  0  0 # ins4: 0
216 0  0  1  0  0  0  0  0 -1  0  0 # i
217 0  0  0  1  0  0  0  0  0  0 -2 # 2
218 0  0  0  0  1  0  0  0  0  0  0 # 0
219 0  0  0  0  0  1  0  0  0  0  0 # 0
220 0  0  0  0  0  0  1  0  0  0  0 # 0
221 0  0  0  0  0  0  0  1  0  0  0 # 0
223 # Scattering function for polyhedron #5: T_S5(i,j,k)=(j+k-1,i,3,j,0,k,0)
224 7 13
225 #  p c1 c2 c3 c4 c5 c6  i  j  k  n  1
226 0  1  0  0  0  0  0  0  0 -1 -1  0  1 # ins 5: j+k-1
227 0  0  1  0  0  0  0  0 -1  0  0  0  0 # i
228 0  0  0  1  0  0  0  0  0  0  0  0 -3 # 3
229 0  0  0  0  1  0  0  0  0 -1  0  0  0 # j
230 0  0  0  0  0  1  0  0  0  0  0  0  0 # 0
231 0  0  0  0  0  0  1  0  0  0 -1  0  0 # k
232 0  0  0  0  0  0  0  1  0  0  0  0  0 # 0
234 # Scattering function for polyhedron #6: T_S6(i,j,k)=(k,i,3,j,0,k,1)
235 7 13
236 #  p c1 c2 c3 c4 c5 c6  i  j  k  n  1
237 0  1  0  0  0  0  0  0  0  0 -1  0  0 # ins 6: k
238 0  0  1  0  0  0  0  0 -1  0  0  0  0 # i
239 0  0  0  1  0  0  0  0  0  0  0  0 -3 # 3
240 0  0  0  0  1  0  0  0  0 -1  0  0  0 # j
241 0  0  0  0  0  1  0  0  0  0  0  0  0 # 0
242 0  0  0  0  0  0  1  0  0  0 -1  0  0 # k
243 0  0  0  0  0  0  0  1  0  0  0  0 -1 # 1
245 # Scattering function for polyhedron #7: T_S7(i,j)  =(i+j,i,3,j,1,0,0)
246 7 12
247 #  p c1 c2 c3 c4 c5 c6  i  j  n  1
248 0  1  0  0  0  0  0  0 -1 -1  0  0 # ins 7: i+j
249 0  0  1  0  0  0  0  0 -1  0  0  0 # i
250 0  0  0  1  0  0  0  0  0  0  0 -3 # 3
251 0  0  0  0  1  0  0  0  0 -1  0  0 # j
252 0  0  0  0  0  1  0  0  0  0  0 -1 # 1
253 0  0  0  0  0  0  1  0  0  0  0  0 # 0
254 0  0  0  0  0  0  0  1  0  0  0  0 # 0
256 # Scattering function for polyhedron #8: T_S8(i,j)  =(j,i,3,j,2,0,0)
257 7 12
258 #  p c1 c2 c3 c4 c5 c6  i  j  n  1
259 0  1  0  0  0  0  0  0  0 -1  0  0 # ins 8: j
260 0  0  1  0  0  0  0  0 -1  0  0  0 # i
261 0  0  0  1  0  0  0  0  0  0  0 -3 # 3
262 0  0  0  0  1  0  0  0  0 -1  0  0 # j
263 0  0  0  0  0  1  0  0  0  0  0 -2 # 2
264 0  0  0  0  0  0  1  0  0  0  0  0 # 0
265 0  0  0  0  0  0  0  1  0  0  0  0 # 0
267 # We want to set manually the scattering dimension names.
269 p c1 c2 c3 c4 c5 c6