brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · ec6daad Raw
64 lines · c
1if (m >= 1) {2  S1(0, 1, 1, 1);3  if (m >= 2) {4    S4(0, 1, 2, 2, 1, 1, 2, 2);5    S3(0, 1, 1, 2, 1, 1, 1, 2);6    S2(0, 1, 1, 1, 1, 1, 2, 1);7  }8  S8(0, 1);9  for (int c0 = 1; c0 < 2 * m - 1; c0 += 1) {10    if (2 * m >= c0 + 3) {11      if (c0 + 1 == m) {12        S5(m - 2, 1, m - 1, 1, m - 1, 1, m, 1);13        S1(m - 1, 1, m, 1);14        S3(m - 1, 1, m, 2, m, 1, m, 2);15      } else if (c0 >= m) {16        S5(c0 - 1, -m + c0 + 2, c0, -m + c0 + 2, m - 1, -m + c0 + 2, m, -m + c0 + 2);17        S6(c0 - 1, -m + c0 + 1, c0, -m + c0 + 2, m, -m + c0 + 1, m, -m + c0 + 2);18        S1(c0, -m + c0 + 2, m, -m + c0 + 2);19        S3(c0, -m + c0 + 2, c0 + 1, -m + c0 + 3, m, -m + c0 + 2, m, -m + c0 + 3);20      } else {21        S5(c0 - 1, 1, c0, 1, c0, 1, c0 + 1, 1);22        S1(c0, 1, c0 + 1, 1);23        S3(c0, 1, c0 + 1, 2, c0 + 1, 1, c0 + 1, 2);24        S4(c0, 1, c0 + 2, 2, c0 + 1, 1, c0 + 2, 2);25        S2(c0, 1, c0 + 1, 1, c0 + 1, 1, c0 + 2, 1);26      }27      for (int c1 = max(2, -m + c0 + 3); c1 <= min(m - 1, c0); c1 += 1) {28        S5(c0 - 1, c1, c0, c1, c0 - c1 + 1, c1, c0 - c1 + 2, c1);29        S6(c0 - 1, c1 - 1, c0, c1, c0 - c1 + 2, c1 - 1, c0 - c1 + 2, c1);30        S7(c0 - 1, c1 - 1, c0 + 1, c1, c0 - c1 + 2, c1 - 1, c0 - c1 + 3, c1);31        S1(c0, c1, c0 - c1 + 2, c1);32        S3(c0, c1, c0 + 1, c1 + 1, c0 - c1 + 2, c1, c0 - c1 + 2, c1 + 1);33        S4(c0, c1, c0 + 2, c1 + 1, c0 - c1 + 2, c1, c0 - c1 + 3, c1 + 1);34        S2(c0, c1, c0 + 1, c1, c0 - c1 + 2, c1, c0 - c1 + 3, c1);35      }36      if (c0 + 1 == m) {37        S6(m - 2, m - 1, m - 1, m, 1, m - 1, 1, m);38        S7(m - 2, m - 1, m, m, 1, m - 1, 2, m);39        S1(m - 1, m, 1, m);40        S2(m - 1, m, m, m, 1, m, 2, m);41      } else if (c0 >= m) {42        S5(c0 - 1, m, c0, m, -m + c0 + 1, m, -m + c0 + 2, m);43        S6(c0 - 1, m - 1, c0, m, -m + c0 + 2, m - 1, -m + c0 + 2, m);44        S7(c0 - 1, m - 1, c0 + 1, m, -m + c0 + 2, m - 1, -m + c0 + 3, m);45        S1(c0, m, -m + c0 + 2, m);46        S2(c0, m, c0 + 1, m, -m + c0 + 2, m, -m + c0 + 3, m);47      } else {48        S6(c0 - 1, c0, c0, c0 + 1, 1, c0, 1, c0 + 1);49        S7(c0 - 1, c0, c0 + 1, c0 + 1, 1, c0, 2, c0 + 1);50        S1(c0, c0 + 1, 1, c0 + 1);51        S3(c0, c0 + 1, c0 + 1, c0 + 2, 1, c0 + 1, 1, c0 + 2);52        S4(c0, c0 + 1, c0 + 2, c0 + 2, 1, c0 + 1, 2, c0 + 2);53        S2(c0, c0 + 1, c0 + 1, c0 + 1, 1, c0 + 1, 2, c0 + 1);54      }55    } else {56      S5(2 * m - 3, m, 2 * m - 2, m, m - 1, m, m, m);57      S6(2 * m - 3, m - 1, 2 * m - 2, m, m, m - 1, m, m);58      S1(2 * m - 2, m, m, m);59    }60    for (int c2 = max(1, -m + c0 + 2); c2 <= min(m, c0 + 1); c2 += 1)61      S8(c0, c2);62  }63}64