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