1/* Generated from ../../../git/cloog/test/vivien.cloog by CLooG 0.14.0-76-gef19709 gmp bits in 0.78s. */ 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) { hash(1); hash(i); } 11#define S2(i,j) { hash(2); hash(i); hash(j); } 12#define S3(i) { hash(3); hash(i); } 13#define S4(i,j) { hash(4); hash(i); hash(j); } 14#define S5(i,j,k) { hash(5); hash(i); hash(j); hash(k); } 15#define S6(i,j) { hash(6); hash(i); hash(j); } 16 17void test(int n) 18{ 19 /* Scattering iterators. */ 20 int p1, p2, p3; 21 /* Original iterators. */ 22 int i, j, k; 23 for (p1=-54*n+4;p1<=min(4,4*n+1);p1++) { 24 if (p1%2 == 0) { 25 i = (p1-2)/2 ; 26 S1((p1-2)/2) ; 27 } 28 } 29 if (n >= 1) { 30 S3(1) ; 31 } 32 if (n >= 2) { 33 S4(1,2) ; 34 S1(2) ; 35 S6(1,2) ; 36 } 37 for (p1=max(-54*n+4,4*n+2);p1<=6;p1++) { 38 if (p1%2 == 0) { 39 i = (p1-2)/2 ; 40 S1((p1-2)/2) ; 41 } 42 } 43 for (p1=7;p1<=min(min(2*n+2,9),floord(4*n+12,3));p1++) { 44 for (p2=ceild(-p1+2,4);p2<=-1;p2++) { 45 if (p1%2 == 0) { 46 j = (p1+2*p2)/2 ; 47 S4(-p2,(p1+2*p2)/2) ; 48 } 49 } 50 if ((p1+3)%4 == 0) { 51 i = (p1-1)/4 ; 52 S3((p1-1)/4) ; 53 } 54 if (p1%2 == 0) { 55 i = (p1-2)/2 ; 56 S1((p1-2)/2) ; 57 } 58 if (p1%2 == 0) { 59 j = (p1-2)/2 ; 60 S6(1,(p1-2)/2) ; 61 } 62 if ((p1+1)%2 == 0) { 63 i = (p1-3)/2 ; 64 S2((p1-3)/2,1) ; 65 } 66 } 67 for (p1=2*n+3;p1<=min(9,4*n-2);p1++) { 68 for (p2=ceild(-p1+2,4);p2<=floord(-p1+2*n,2);p2++) { 69 if (p1%2 == 0) { 70 j = (p1+2*p2)/2 ; 71 S4(-p2,(p1+2*p2)/2) ; 72 } 73 } 74 if ((p1+3)%4 == 0) { 75 i = (p1-1)/4 ; 76 S3((p1-1)/4) ; 77 } 78 if (p1%2 == 0) { 79 i = (p1-2)/2 ; 80 S1((p1-2)/2) ; 81 } 82 for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { 83 if ((p1+1)%2 == 0) { 84 i = (p1-2*p2-1)/2 ; 85 S2((p1-2*p2-1)/2,p2) ; 86 } 87 } 88 } 89 if (n >= 4) { 90 S4(2,3) ; 91 S4(1,4) ; 92 S5(2,3,1) ; 93 S6(2,3) ; 94 S1(4) ; 95 S6(1,4) ; 96 } 97 if (n == 3) { 98 S4(2,3) ; 99 S5(2,3,1) ; 100 S6(2,3) ; 101 S1(4) ; 102 } 103 for (p1=11;p1<=min(12,2*n+2);p1++) { 104 p2 = floord(-p1+5,4) ; 105 if (p1%2 == 0) { 106 j = (p1+2*p2)/2 ; 107 S4(-p2,(p1+2*p2)/2) ; 108 } 109 for (p2=ceild(-p1+6,4);p2<=-1;p2++) { 110 if (p1%2 == 0) { 111 j = (p1+2*p2)/2 ; 112 S4(-p2,(p1+2*p2)/2) ; 113 } 114 for (p3=1;p3<=-p2;p3++) { 115 i = -p2+1 ; 116 if (p1%2 == 0) { 117 j = (p1+2*p2-2)/2 ; 118 S5(-p2+1,(p1+2*p2-2)/2,p3) ; 119 } 120 } 121 } 122 if (p1%2 == 0) { 123 j = (p1-4)/2 ; 124 S6(2,(p1-4)/2) ; 125 } 126 if (p1%2 == 0) { 127 i = (p1-2)/2 ; 128 S1((p1-2)/2) ; 129 } 130 if (p1%2 == 0) { 131 j = (p1-2)/2 ; 132 S6(1,(p1-2)/2) ; 133 } 134 if ((p1+1)%2 == 0) { 135 i = (p1-3)/2 ; 136 S2((p1-3)/2,1) ; 137 } 138 for (p2=2;p2<=floord(p1-3,4);p2++) { 139 if ((p1+1)%2 == 0) { 140 i = (p1-2*p2-1)/2 ; 141 S2((p1-2*p2-1)/2,p2) ; 142 } 143 } 144 } 145 if (n == 4) { 146 S2(4,1) ; 147 S2(3,2) ; 148 } 149 if (n == 5) { 150 S3(3) ; 151 S2(5,1) ; 152 S2(4,2) ; 153 } 154 if (n >= 6) { 155 S3(3) ; 156 S2(5,1) ; 157 S2(4,2) ; 158 } 159 if ((n <= 4) && (n >= 4)) { 160 p1 = 2*n+4 ; 161 for (p2=ceild(-n-1,2);p2<=-2;p2++) { 162 j = p2+n+2 ; 163 S4(-p2,p2+n+2) ; 164 } 165 for (p2=ceild(-n+1,2);p2<=-1;p2++) { 166 for (p3=1;p3<=-p2;p3++) { 167 i = -p2+1 ; 168 j = p2+n+1 ; 169 S5(-p2+1,p2+n+1,p3) ; 170 } 171 } 172 S6(2,n) ; 173 i = n+1 ; 174 S1(n+1) ; 175 } 176 for (p1=14;p1<=2*n+2;p1++) { 177 p2 = floord(-p1+5,4) ; 178 if (p1%2 == 0) { 179 j = (p1+2*p2)/2 ; 180 S4(-p2,(p1+2*p2)/2) ; 181 } 182 p2 = floord(-p1+9,4) ; 183 if (p1%2 == 0) { 184 j = (p1+2*p2)/2 ; 185 S4(-p2,(p1+2*p2)/2) ; 186 } 187 for (p3=1;p3<=-p2;p3++) { 188 i = -p2+1 ; 189 if (p1%2 == 0) { 190 j = (p1+2*p2-2)/2 ; 191 S5(-p2+1,(p1+2*p2-2)/2,p3) ; 192 } 193 } 194 for (p2=ceild(-p1+10,4);p2<=-1;p2++) { 195 if (p1%2 == 0) { 196 j = (p1+2*p2)/2 ; 197 S4(-p2,(p1+2*p2)/2) ; 198 } 199 i = -p2+2 ; 200 if (p1%2 == 0) { 201 j = (p1+2*p2-4)/2 ; 202 S6(-p2+2,(p1+2*p2-4)/2) ; 203 } 204 for (p3=1;p3<=-p2;p3++) { 205 i = -p2+1 ; 206 if (p1%2 == 0) { 207 j = (p1+2*p2-2)/2 ; 208 S5(-p2+1,(p1+2*p2-2)/2,p3) ; 209 } 210 } 211 } 212 if (p1%2 == 0) { 213 j = (p1-4)/2 ; 214 S6(2,(p1-4)/2) ; 215 } 216 if ((p1+3)%4 == 0) { 217 i = (p1-1)/4 ; 218 S3((p1-1)/4) ; 219 } 220 if (p1%2 == 0) { 221 i = (p1-2)/2 ; 222 S1((p1-2)/2) ; 223 } 224 if (p1%2 == 0) { 225 j = (p1-2)/2 ; 226 S6(1,(p1-2)/2) ; 227 } 228 if ((p1+1)%2 == 0) { 229 i = (p1-3)/2 ; 230 S2((p1-3)/2,1) ; 231 } 232 for (p2=2;p2<=floord(p1-3,4);p2++) { 233 if ((p1+1)%2 == 0) { 234 i = (p1-2*p2-1)/2 ; 235 S2((p1-2*p2-1)/2,p2) ; 236 } 237 } 238 } 239 if ((n <= 4) && (n >= 4)) { 240 S3(3) ; 241 for (p2=-n+6;p2<=2;p2++) { 242 i = -p2+6 ; 243 S2(-p2+6,p2) ; 244 } 245 } 246 if (n >= 7) { 247 p1 = 2*n+3 ; 248 if ((n+1)%2 == 0) { 249 i = (n+1)/2 ; 250 S3((n+1)/2) ; 251 } 252 S2(n,1) ; 253 for (p2=2;p2<=floord(n,2);p2++) { 254 i = -p2+n+1 ; 255 S2(-p2+n+1,p2) ; 256 } 257 } 258 if ((n <= 6) && (n >= 6)) { 259 p1 = 2*n+3 ; 260 if ((n+1)%2 == 0) { 261 i = (n+1)/2 ; 262 S3((n+1)/2) ; 263 } 264 S2(n,1) ; 265 for (p2=2;p2<=floord(n,2);p2++) { 266 i = -p2+n+1 ; 267 S2(-p2+n+1,p2) ; 268 } 269 } 270 if (n >= 7) { 271 p1 = 2*n+4 ; 272 for (p2=ceild(-n-1,2);p2<=floord(-2*n+1,4);p2++) { 273 j = p2+n+2 ; 274 S4(-p2,p2+n+2) ; 275 } 276 for (p2=ceild(-n+1,2);p2<=floord(-2*n+5,4);p2++) { 277 j = p2+n+2 ; 278 S4(-p2,p2+n+2) ; 279 for (p3=1;p3<=-p2;p3++) { 280 i = -p2+1 ; 281 j = p2+n+1 ; 282 S5(-p2+1,p2+n+1,p3) ; 283 } 284 } 285 for (p2=ceild(-n+3,2);p2<=-2;p2++) { 286 j = p2+n+2 ; 287 S4(-p2,p2+n+2) ; 288 i = -p2+2 ; 289 j = p2+n ; 290 S6(-p2+2,p2+n) ; 291 for (p3=1;p3<=-p2;p3++) { 292 i = -p2+1 ; 293 j = p2+n+1 ; 294 S5(-p2+1,p2+n+1,p3) ; 295 } 296 } 297 j = n-1 ; 298 S6(3,n-1) ; 299 S5(2,n,1) ; 300 S6(2,n) ; 301 i = n+1 ; 302 S1(n+1) ; 303 } 304 if ((n <= 5) && (n >= 5)) { 305 p1 = 2*n+4 ; 306 for (p2=ceild(-n-1,2);p2<=floord(-2*n+1,4);p2++) { 307 j = p2+n+2 ; 308 S4(-p2,p2+n+2) ; 309 } 310 for (p2=ceild(-n+1,2);p2<=-2;p2++) { 311 j = p2+n+2 ; 312 S4(-p2,p2+n+2) ; 313 for (p3=1;p3<=-p2;p3++) { 314 i = -p2+1 ; 315 j = p2+n+1 ; 316 S5(-p2+1,p2+n+1,p3) ; 317 } 318 } 319 for (p2=-1;p2<=floord(-2*n+5,4);p2++) { 320 for (p3=1;p3<=-p2;p3++) { 321 i = -p2+1 ; 322 j = p2+n+1 ; 323 S5(-p2+1,p2+n+1,p3) ; 324 } 325 } 326 for (p2=ceild(-n+3,2);p2<=-1;p2++) { 327 i = -p2+2 ; 328 j = p2+n ; 329 S6(-p2+2,p2+n) ; 330 for (p3=1;p3<=-p2;p3++) { 331 i = -p2+1 ; 332 j = p2+n+1 ; 333 S5(-p2+1,p2+n+1,p3) ; 334 } 335 } 336 S6(2,n) ; 337 i = n+1 ; 338 S1(n+1) ; 339 } 340 if ((n <= 6) && (n >= 6)) { 341 p1 = 2*n+4 ; 342 for (p2=ceild(-n-1,2);p2<=floord(-2*n+1,4);p2++) { 343 j = p2+n+2 ; 344 S4(-p2,p2+n+2) ; 345 } 346 for (p2=ceild(-n+1,2);p2<=-2;p2++) { 347 j = p2+n+2 ; 348 S4(-p2,p2+n+2) ; 349 for (p3=1;p3<=-p2;p3++) { 350 i = -p2+1 ; 351 j = p2+n+1 ; 352 S5(-p2+1,p2+n+1,p3) ; 353 } 354 } 355 j = n-1 ; 356 S6(3,n-1) ; 357 S5(2,n,1) ; 358 S6(2,n) ; 359 i = n+1 ; 360 S1(n+1) ; 361 } 362 for (p1=2*n+5;p1<=min(4*n-10,2*n+58);p1++) { 363 p2 = floord(-p1+5,4) ; 364 if (p1%2 == 0) { 365 j = (p1+2*p2)/2 ; 366 S4(-p2,(p1+2*p2)/2) ; 367 } 368 p2 = floord(-p1+9,4) ; 369 if (p1%2 == 0) { 370 j = (p1+2*p2)/2 ; 371 S4(-p2,(p1+2*p2)/2) ; 372 } 373 for (p3=1;p3<=-p2;p3++) { 374 i = -p2+1 ; 375 if (p1%2 == 0) { 376 j = (p1+2*p2-2)/2 ; 377 S5(-p2+1,(p1+2*p2-2)/2,p3) ; 378 } 379 } 380 for (p2=ceild(-p1+10,4);p2<=floord(-p1+2*n,2);p2++) { 381 if (p1%2 == 0) { 382 j = (p1+2*p2)/2 ; 383 S4(-p2,(p1+2*p2)/2) ; 384 } 385 i = -p2+2 ; 386 if (p1%2 == 0) { 387 j = (p1+2*p2-4)/2 ; 388 S6(-p2+2,(p1+2*p2-4)/2) ; 389 } 390 for (p3=1;p3<=-p2;p3++) { 391 i = -p2+1 ; 392 if (p1%2 == 0) { 393 j = (p1+2*p2-2)/2 ; 394 S5(-p2+1,(p1+2*p2-2)/2,p3) ; 395 } 396 } 397 } 398 p2 = floord(-p1+2*n+2,2) ; 399 i = -p2+2 ; 400 if (p1%2 == 0) { 401 j = (p1+2*p2-4)/2 ; 402 S6(-p2+2,(p1+2*p2-4)/2) ; 403 } 404 for (p3=1;p3<=-p2;p3++) { 405 i = -p2+1 ; 406 if (p1%2 == 0) { 407 j = (p1+2*p2-2)/2 ; 408 S5(-p2+1,(p1+2*p2-2)/2,p3) ; 409 } 410 } 411 for (p2=ceild(-p1+2*n+3,2);p2<=min(floord(-p1+2*n+4,2),-1);p2++) { 412 i = -p2+2 ; 413 if (p1%2 == 0) { 414 j = (p1+2*p2-4)/2 ; 415 S6(-p2+2,(p1+2*p2-4)/2) ; 416 } 417 } 418 if ((p1+3)%4 == 0) { 419 i = (p1-1)/4 ; 420 S3((p1-1)/4) ; 421 } 422 if (p1%2 == 0) { 423 i = (p1-2)/2 ; 424 S1((p1-2)/2) ; 425 } 426 for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { 427 if ((p1+1)%2 == 0) { 428 i = (p1-2*p2-1)/2 ; 429 S2((p1-2*p2-1)/2,p2) ; 430 } 431 } 432 } 433 for (p1=max(4*n-9,2*n+5);p1<=min(4*n-8,2*n+58);p1++) { 434 p2 = floord(-p1+5,4) ; 435 if (p1%2 == 0) { 436 j = (p1+2*p2)/2 ; 437 S4(-p2,(p1+2*p2)/2) ; 438 } 439 for (p2=ceild(-p1+6,4);p2<=floord(-p1+2*n,2);p2++) { 440 if (p1%2 == 0) { 441 j = (p1+2*p2)/2 ; 442 S4(-p2,(p1+2*p2)/2) ; 443 } 444 for (p3=1;p3<=-p2;p3++) { 445 i = -p2+1 ; 446 if (p1%2 == 0) { 447 j = (p1+2*p2-2)/2 ; 448 S5(-p2+1,(p1+2*p2-2)/2,p3) ; 449 } 450 } 451 } 452 p2 = floord(-p1+2*n+2,2) ; 453 i = -p2+2 ; 454 if (p1%2 == 0) { 455 j = (p1+2*p2-4)/2 ; 456 S6(-p2+2,(p1+2*p2-4)/2) ; 457 } 458 for (p3=1;p3<=-p2;p3++) { 459 i = -p2+1 ; 460 if (p1%2 == 0) { 461 j = (p1+2*p2-2)/2 ; 462 S5(-p2+1,(p1+2*p2-2)/2,p3) ; 463 } 464 } 465 for (p2=ceild(-p1+2*n+3,2);p2<=min(floord(-p1+2*n+4,2),-1);p2++) { 466 i = -p2+2 ; 467 if (p1%2 == 0) { 468 j = (p1+2*p2-4)/2 ; 469 S6(-p2+2,(p1+2*p2-4)/2) ; 470 } 471 } 472 if ((p1+3)%4 == 0) { 473 i = (p1-1)/4 ; 474 S3((p1-1)/4) ; 475 } 476 if (p1%2 == 0) { 477 i = (p1-2)/2 ; 478 S1((p1-2)/2) ; 479 } 480 for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { 481 if ((p1+1)%2 == 0) { 482 i = (p1-2*p2-1)/2 ; 483 S2((p1-2*p2-1)/2,p2) ; 484 } 485 } 486 } 487 for (p1=max(4*n-7,2*n+5);p1<=min(4*n-6,2*n+58);p1++) { 488 p2 = floord(-p1+5,4) ; 489 if (p1%2 == 0) { 490 j = (p1+2*p2)/2 ; 491 S4(-p2,(p1+2*p2)/2) ; 492 } 493 for (p2=ceild(-p1+6,4);p2<=floord(-p1+2*n,2);p2++) { 494 if (p1%2 == 0) { 495 j = (p1+2*p2)/2 ; 496 S4(-p2,(p1+2*p2)/2) ; 497 } 498 for (p3=1;p3<=-p2;p3++) { 499 i = -p2+1 ; 500 if (p1%2 == 0) { 501 j = (p1+2*p2-2)/2 ; 502 S5(-p2+1,(p1+2*p2-2)/2,p3) ; 503 } 504 } 505 } 506 for (p2=ceild(-p1+2*n+1,2);p2<=floord(-p1+9,4);p2++) { 507 for (p3=1;p3<=-p2;p3++) { 508 i = -p2+1 ; 509 if (p1%2 == 0) { 510 j = (p1+2*p2-2)/2 ; 511 S5(-p2+1,(p1+2*p2-2)/2,p3) ; 512 } 513 } 514 } 515 for (p2=ceild(-p1+10,4);p2<=floord(-p1+2*n+2,2);p2++) { 516 i = -p2+2 ; 517 if (p1%2 == 0) { 518 j = (p1+2*p2-4)/2 ; 519 S6(-p2+2,(p1+2*p2-4)/2) ; 520 } 521 for (p3=1;p3<=-p2;p3++) { 522 i = -p2+1 ; 523 if (p1%2 == 0) { 524 j = (p1+2*p2-2)/2 ; 525 S5(-p2+1,(p1+2*p2-2)/2,p3) ; 526 } 527 } 528 } 529 for (p2=ceild(-p1+2*n+3,2);p2<=min(floord(-p1+2*n+4,2),-1);p2++) { 530 i = -p2+2 ; 531 if (p1%2 == 0) { 532 j = (p1+2*p2-4)/2 ; 533 S6(-p2+2,(p1+2*p2-4)/2) ; 534 } 535 } 536 if ((p1+3)%4 == 0) { 537 i = (p1-1)/4 ; 538 S3((p1-1)/4) ; 539 } 540 if (p1%2 == 0) { 541 i = (p1-2)/2 ; 542 S1((p1-2)/2) ; 543 } 544 for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { 545 if ((p1+1)%2 == 0) { 546 i = (p1-2*p2-1)/2 ; 547 S2((p1-2*p2-1)/2,p2) ; 548 } 549 } 550 } 551 for (p1=max(max(4*n-5,14),2*n+5);p1<=min(4*n-2,2*n+58);p1++) { 552 for (p2=ceild(-p1+2,4);p2<=floord(-p1+2*n,2);p2++) { 553 if (p1%2 == 0) { 554 j = (p1+2*p2)/2 ; 555 S4(-p2,(p1+2*p2)/2) ; 556 } 557 } 558 for (p2=max(ceild(-p1+2*n+1,2),ceild(-p1+6,4));p2<=floord(-p1+2*n+2,2);p2++) { 559 for (p3=1;p3<=-p2;p3++) { 560 i = -p2+1 ; 561 if (p1%2 == 0) { 562 j = (p1+2*p2-2)/2 ; 563 S5(-p2+1,(p1+2*p2-2)/2,p3) ; 564 } 565 } 566 } 567 for (p2=max(ceild(-p1+10,4),ceild(-p1+2*n+3,2));p2<=min(floord(-p1+2*n+4,2),-1);p2++) { 568 i = -p2+2 ; 569 if (p1%2 == 0) { 570 j = (p1+2*p2-4)/2 ; 571 S6(-p2+2,(p1+2*p2-4)/2) ; 572 } 573 } 574 if ((p1+3)%4 == 0) { 575 i = (p1-1)/4 ; 576 S3((p1-1)/4) ; 577 } 578 if (p1%2 == 0) { 579 i = (p1-2)/2 ; 580 S1((p1-2)/2) ; 581 } 582 for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { 583 if ((p1+1)%2 == 0) { 584 i = (p1-2*p2-1)/2 ; 585 S2((p1-2*p2-1)/2,p2) ; 586 } 587 } 588 } 589 if ((n >= 2) && (n <= 29)) { 590 p1 = 4*n-1 ; 591 p2 = n-1 ; 592 j = n-1 ; 593 S2(n,n-1) ; 594 } 595 for (p1=2*n+59;p1<=4*n-10;p1++) { 596 p2 = floord(-p1+5,4) ; 597 if (p1%2 == 0) { 598 j = (p1+2*p2)/2 ; 599 S4(-p2,(p1+2*p2)/2) ; 600 } 601 p2 = floord(-p1+9,4) ; 602 if (p1%2 == 0) { 603 j = (p1+2*p2)/2 ; 604 S4(-p2,(p1+2*p2)/2) ; 605 } 606 for (p3=1;p3<=-p2;p3++) { 607 i = -p2+1 ; 608 if (p1%2 == 0) { 609 j = (p1+2*p2-2)/2 ; 610 S5(-p2+1,(p1+2*p2-2)/2,p3) ; 611 } 612 } 613 for (p2=ceild(-p1+10,4);p2<=floord(-p1+2*n,2);p2++) { 614 if (p1%2 == 0) { 615 j = (p1+2*p2)/2 ; 616 S4(-p2,(p1+2*p2)/2) ; 617 } 618 i = -p2+2 ; 619 if (p1%2 == 0) { 620 j = (p1+2*p2-4)/2 ; 621 S6(-p2+2,(p1+2*p2-4)/2) ; 622 } 623 for (p3=1;p3<=-p2;p3++) { 624 i = -p2+1 ; 625 if (p1%2 == 0) { 626 j = (p1+2*p2-2)/2 ; 627 S5(-p2+1,(p1+2*p2-2)/2,p3) ; 628 } 629 } 630 } 631 p2 = floord(-p1+2*n+2,2) ; 632 i = -p2+2 ; 633 if (p1%2 == 0) { 634 j = (p1+2*p2-4)/2 ; 635 S6(-p2+2,(p1+2*p2-4)/2) ; 636 } 637 for (p3=1;p3<=-p2;p3++) { 638 i = -p2+1 ; 639 if (p1%2 == 0) { 640 j = (p1+2*p2-2)/2 ; 641 S5(-p2+1,(p1+2*p2-2)/2,p3) ; 642 } 643 } 644 p2 = floord(-p1+2*n+4,2) ; 645 i = -p2+2 ; 646 if (p1%2 == 0) { 647 j = (p1+2*p2-4)/2 ; 648 S6(-p2+2,(p1+2*p2-4)/2) ; 649 } 650 if ((p1+3)%4 == 0) { 651 i = (p1-1)/4 ; 652 S3((p1-1)/4) ; 653 } 654 for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { 655 if ((p1+1)%2 == 0) { 656 i = (p1-2*p2-1)/2 ; 657 S2((p1-2*p2-1)/2,p2) ; 658 } 659 } 660 } 661 for (p1=max(4*n-9,2*n+59);p1<=4*n-8;p1++) { 662 p2 = floord(-p1+5,4) ; 663 if (p1%2 == 0) { 664 j = (p1+2*p2)/2 ; 665 S4(-p2,(p1+2*p2)/2) ; 666 } 667 for (p2=ceild(-p1+6,4);p2<=floord(-p1+2*n,2);p2++) { 668 if (p1%2 == 0) { 669 j = (p1+2*p2)/2 ; 670 S4(-p2,(p1+2*p2)/2) ; 671 } 672 for (p3=1;p3<=-p2;p3++) { 673 i = -p2+1 ; 674 if (p1%2 == 0) { 675 j = (p1+2*p2-2)/2 ; 676 S5(-p2+1,(p1+2*p2-2)/2,p3) ; 677 } 678 } 679 } 680 p2 = floord(-p1+2*n+2,2) ; 681 i = -p2+2 ; 682 if (p1%2 == 0) { 683 j = (p1+2*p2-4)/2 ; 684 S6(-p2+2,(p1+2*p2-4)/2) ; 685 } 686 for (p3=1;p3<=-p2;p3++) { 687 i = -p2+1 ; 688 if (p1%2 == 0) { 689 j = (p1+2*p2-2)/2 ; 690 S5(-p2+1,(p1+2*p2-2)/2,p3) ; 691 } 692 } 693 p2 = floord(-p1+2*n+4,2) ; 694 i = -p2+2 ; 695 if (p1%2 == 0) { 696 j = (p1+2*p2-4)/2 ; 697 S6(-p2+2,(p1+2*p2-4)/2) ; 698 } 699 if ((p1+3)%4 == 0) { 700 i = (p1-1)/4 ; 701 S3((p1-1)/4) ; 702 } 703 for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { 704 if ((p1+1)%2 == 0) { 705 i = (p1-2*p2-1)/2 ; 706 S2((p1-2*p2-1)/2,p2) ; 707 } 708 } 709 } 710 for (p1=max(4*n-7,2*n+59);p1<=4*n-6;p1++) { 711 p2 = floord(-p1+5,4) ; 712 if (p1%2 == 0) { 713 j = (p1+2*p2)/2 ; 714 S4(-p2,(p1+2*p2)/2) ; 715 } 716 for (p2=ceild(-p1+6,4);p2<=floord(-p1+2*n,2);p2++) { 717 if (p1%2 == 0) { 718 j = (p1+2*p2)/2 ; 719 S4(-p2,(p1+2*p2)/2) ; 720 } 721 for (p3=1;p3<=-p2;p3++) { 722 i = -p2+1 ; 723 if (p1%2 == 0) { 724 j = (p1+2*p2-2)/2 ; 725 S5(-p2+1,(p1+2*p2-2)/2,p3) ; 726 } 727 } 728 } 729 for (p2=ceild(-p1+2*n+1,2);p2<=floord(-p1+9,4);p2++) { 730 for (p3=1;p3<=-p2;p3++) { 731 i = -p2+1 ; 732 if (p1%2 == 0) { 733 j = (p1+2*p2-2)/2 ; 734 S5(-p2+1,(p1+2*p2-2)/2,p3) ; 735 } 736 } 737 } 738 for (p2=ceild(-p1+10,4);p2<=floord(-p1+2*n+2,2);p2++) { 739 i = -p2+2 ; 740 if (p1%2 == 0) { 741 j = (p1+2*p2-4)/2 ; 742 S6(-p2+2,(p1+2*p2-4)/2) ; 743 } 744 for (p3=1;p3<=-p2;p3++) { 745 i = -p2+1 ; 746 if (p1%2 == 0) { 747 j = (p1+2*p2-2)/2 ; 748 S5(-p2+1,(p1+2*p2-2)/2,p3) ; 749 } 750 } 751 } 752 p2 = floord(-p1+2*n+4,2) ; 753 i = -p2+2 ; 754 if (p1%2 == 0) { 755 j = (p1+2*p2-4)/2 ; 756 S6(-p2+2,(p1+2*p2-4)/2) ; 757 } 758 if ((p1+3)%4 == 0) { 759 i = (p1-1)/4 ; 760 S3((p1-1)/4) ; 761 } 762 for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { 763 if ((p1+1)%2 == 0) { 764 i = (p1-2*p2-1)/2 ; 765 S2((p1-2*p2-1)/2,p2) ; 766 } 767 } 768 } 769 for (p1=max(4*n-5,2*n+59);p1<=4*n-2;p1++) { 770 for (p2=ceild(-p1+2,4);p2<=floord(-p1+2*n,2);p2++) { 771 if (p1%2 == 0) { 772 j = (p1+2*p2)/2 ; 773 S4(-p2,(p1+2*p2)/2) ; 774 } 775 } 776 for (p2=max(ceild(-p1+2*n+1,2),ceild(-p1+6,4));p2<=floord(-p1+2*n+2,2);p2++) { 777 for (p3=1;p3<=-p2;p3++) { 778 i = -p2+1 ; 779 if (p1%2 == 0) { 780 j = (p1+2*p2-2)/2 ; 781 S5(-p2+1,(p1+2*p2-2)/2,p3) ; 782 } 783 } 784 } 785 for (p2=max(ceild(-p1+10,4),ceild(-p1+2*n+3,2));p2<=floord(-p1+2*n+4,2);p2++) { 786 i = -p2+2 ; 787 if (p1%2 == 0) { 788 j = (p1+2*p2-4)/2 ; 789 S6(-p2+2,(p1+2*p2-4)/2) ; 790 } 791 } 792 if ((p1+3)%4 == 0) { 793 i = (p1-1)/4 ; 794 S3((p1-1)/4) ; 795 } 796 for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { 797 if ((p1+1)%2 == 0) { 798 i = (p1-2*p2-1)/2 ; 799 S2((p1-2*p2-1)/2,p2) ; 800 } 801 } 802 } 803 for (p1=max(4*n,7);p1<=min(4*n+1,2*n+58);p1++) { 804 if ((p1+3)%4 == 0) { 805 i = (p1-1)/4 ; 806 S3((p1-1)/4) ; 807 } 808 if (p1%2 == 0) { 809 i = (p1-2)/2 ; 810 S1((p1-2)/2) ; 811 } 812 } 813 if (n >= 30) { 814 p1 = 4*n-1 ; 815 p2 = n-1 ; 816 j = n-1 ; 817 S2(n,n-1) ; 818 } 819 for (p1=max(max(-54*n+4,4*n+2),7);p1<=2*n+58;p1++) { 820 if (p1%2 == 0) { 821 i = (p1-2)/2 ; 822 S1((p1-2)/2) ; 823 } 824 } 825 for (p1=max(4*n,2*n+59);p1<=4*n+1;p1++) { 826 if ((p1+3)%4 == 0) { 827 i = (p1-1)/4 ; 828 S3((p1-1)/4) ; 829 } 830 } 831} 832