1if (M >= 0 && N >= 0)
2 for (int c0 = -4; c0 <= 3 * M + N; c0 += 1) {
3 if (3 * M >= c0 + 4 && (c0 + 1) % 3 == 0) {
4 S1((c0 + 4) / 3, 0);
5 } else if (c0 >= 3 * M) {
6 S2(M, -3 * M + c0);
7 }
8 for (int c1 = max(-3 * M + c0 + 3, (c0 + 6) % 3); c1 <= min(N - 1, c0); c1 += 3) {
9 S2((c0 - c1) / 3, c1);
10 S1(((c0 - c1) / 3) + 1, c1 + 1);
11 }
12 if (N >= c0 + 4 && c0 >= -3) {
13 S1(0, c0 + 4);
14 } else if (3 * M + N >= c0 + 3 && c0 >= N && (N - c0) % 3 == 0) {
15 S2((-N + c0) / 3, N);
16 }
17 for (int c1 = max(-3 * M + c0, (c0 + 6) % 3); c1 <= min(N, c0); c1 += 3)
18 S3((c0 - c1) / 3, c1);
19 }
20

source code of polly/lib/External/isl/test_inputs/codegen/cloog/reservoir-liu-zhuge1.c