This is a purely cosmetic change.
In particular, we prefer
for (int c1 = max(0, c0); c1 < min(N, N + c0); c1 += 1)
over
for (int c1 = max(0, c0); c1 <= min(N - 1, N + c0 - 1); c1 += 1)
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
return graft;
}
+/* Does "aff" have a negative constant term?
+ */
+static int aff_constant_is_negative(__isl_take isl_set *set,
+ __isl_take isl_aff *aff, void *user)
+{
+ int *neg = user;
+ isl_int v;
+
+ isl_int_init(v);
+ isl_aff_get_constant(aff, &v);
+ *neg = isl_int_is_neg(v);
+ isl_int_clear(v);
+ isl_set_free(set);
+ isl_aff_free(aff);
+
+ return *neg ? 0 : -1;
+}
+
+/* Does "pa" have a negative constant term over its entire domain?
+ */
+static int pw_aff_constant_is_negative(__isl_take isl_pw_aff *pa, void *user)
+{
+ int r;
+ int *neg = user;
+
+ r = isl_pw_aff_foreach_piece(pa, &aff_constant_is_negative, user);
+ isl_pw_aff_free(pa);
+
+ return *neg ? 0 : -1;
+}
+
+/* Does each element in "list" have a negative constant term?
+ *
+ * The callback terminates the iteration as soon an element has been
+ * found that does not have a negative constant term.
+ */
+static int list_constant_is_negative(__isl_keep isl_pw_aff_list *list)
+{
+ int neg = 1;
+
+ if (isl_pw_aff_list_foreach(list,
+ &pw_aff_constant_is_negative, &neg) < 0 && neg)
+ return -1;
+
+ return neg;
+}
+
+/* Add 1 to each of the elements in "list", where each of these elements
+ * is defined over the internal schedule space of "build".
+ */
+static __isl_give isl_pw_aff_list *list_add_one(
+ __isl_take isl_pw_aff_list *list, __isl_keep isl_ast_build *build)
+{
+ int i, n;
+ isl_space *space;
+ isl_aff *aff;
+ isl_pw_aff *one;
+
+ space = isl_ast_build_get_space(build, 1);
+ aff = isl_aff_zero_on_domain(isl_local_space_from_space(space));
+ aff = isl_aff_add_constant_si(aff, 1);
+ one = isl_pw_aff_from_aff(aff);
+
+ n = isl_pw_aff_list_n_pw_aff(list);
+ for (i = 0; i < n; ++i) {
+ isl_pw_aff *pa;
+ pa = isl_pw_aff_list_get_pw_aff(list, i);
+ pa = isl_pw_aff_add(pa, isl_pw_aff_copy(one));
+ list = isl_pw_aff_list_set_pw_aff(list, i, pa);
+ }
+
+ isl_pw_aff_free(one);
+
+ return list;
+}
+
/* Set the condition part of the for node graft->node in case
* the upper bound is represented as a list of piecewise affine expressions.
*
* In particular, set the condition to
*
* iterator <= min(list of upper bounds)
+ *
+ * If each of the upper bounds has a negative constant term, then
+ * set the condition to
+ *
+ * iterator < min(list of (upper bound + 1)s)
+ *
*/
static __isl_give isl_ast_graft *set_for_cond_from_list(
__isl_take isl_ast_graft *graft, __isl_keep isl_pw_aff_list *list,
__isl_keep isl_ast_build *build)
{
+ int neg;
isl_ast_expr *bound, *iterator, *cond;
+ enum isl_ast_op_type type = isl_ast_op_le;
if (!graft || !list)
return isl_ast_graft_free(graft);
+ neg = list_constant_is_negative(list);
+ if (neg < 0)
+ return isl_ast_graft_free(graft);
+ list = isl_pw_aff_list_copy(list);
+ if (neg) {
+ list = list_add_one(list, build);
+ type = isl_ast_op_lt;
+ }
+
bound = reduce_list(isl_ast_op_min, list, build);
iterator = isl_ast_expr_copy(graft->node->u.f.iterator);
- cond = isl_ast_expr_alloc_binary(isl_ast_op_le, iterator, bound);
+ cond = isl_ast_expr_alloc_binary(type, iterator, bound);
graft->node->u.f.cond = cond;
+ isl_pw_aff_list_free(list);
if (!graft->node->u.f.cond)
return isl_ast_graft_free(graft);
return graft;
for (int c0 = 1; c0 <= n; c0 += 1) {
S1(c0);
- for (int c2 = 1; c2 <= c0 - 1; c2 += 1)
+ for (int c2 = 1; c2 < c0; c2 += 1)
S2(c0, c2);
S3(c0);
for (int c2 = c0 + 1; c2 <= n; c2 += 1) {
S4(c0, c2);
- for (int c4 = 1; c4 <= c0 - 1; c4 += 1)
+ for (int c4 = 1; c4 < c0; c4 += 1)
S5(c0, c2, c4);
S6(c0, c2);
}
for (int c2 = c1 + 1; c2 <= M; c2 += 1)
S4(c1, c2);
}
- for (int c0 = 1; c0 <= 3 * M - 2; c0 += 3) {
+ for (int c0 = 1; c0 < 3 * M - 1; c0 += 3) {
S3((c0 + 2) / 3);
for (int c1 = (c0 + 5) / 3; c1 <= M; c1 += 1) {
S6((c0 + 2) / 3, c1);
- for (int c4 = (c0 + 5) / 3; c4 <= c1 - 1; c4 += 1)
+ for (int c4 = (c0 + 5) / 3; c4 < c1; c4 += 1)
S5(c4, c1, (c0 + 2) / 3);
}
for (int c1 = (c0 + 5) / 3; c1 <= M; c1 += 1)
for (int c0 = -N + 1; c0 <= N; c0 += 1) {
- for (int c1 = max(0, c0); c1 <= min(N - 1, N + c0 - 1); c1 += 1)
+ for (int c1 = max(0, c0); c1 < min(N, N + c0); c1 += 1)
S1(c1, -c0 + c1);
- for (int c1 = max(c0 - 1, 0); c1 <= min(N + c0 - 2, N - 1); c1 += 1)
+ for (int c1 = max(c0 - 1, 0); c1 < min(N + c0 - 1, N); c1 += 1)
S2(c1, -c0 + c1 + 1);
}
S2(0, 1, 1, 1, 1, 1, 2, 1);
S8(0, 1);
}
- for (int c0 = 1; c0 <= 2 * m - 4; c0 += 1) {
+ for (int c0 = 1; c0 < 2 * m - 3; c0 += 1) {
if (c0 + 1 == m) {
S5(m - 2, 1, m - 1, 1, m - 1, 1, m, 1);
S1(m - 1, 1, m, 1);
S1(c0);
S2(c0);
}
- for (int c0 = max(T_66 + 1, 0); c0 <= T_2 - 1; c0 += 1)
+ for (int c0 = max(T_66 + 1, 0); c0 < T_2; c0 += 1)
S1(c0);
if (T_67 == 0 && T_2 == 0)
S1(0);
S8(1, 0, 3);
for (int c0 = 2; c0 <= 9; c0 += 1) {
S2(c0, -7, 0);
- for (int c1 = -7; c1 <= c0 - 9; c1 += 1)
+ for (int c1 = -7; c1 < c0 - 8; c1 += 1)
S3(c0, c1, 1);
S6(c0, c0 - 9, 2);
S8(c0, 0, 3);
- for (int c1 = 1; c1 <= c0 - 1; c1 += 1)
+ for (int c1 = 1; c1 < c0; c1 += 1)
S5(c0, c1, 3);
}
S2(10, -7, 0);
for (int c0 = 1; c0 <= 10000; c0 += 1)
for (int c1 = 1000; c1 <= 1016; c1 += 1)
- for (int c2 = 1; c2 <= 2 * c1 - 1999; c2 += 1) {
+ for (int c2 = 1; c2 < 2 * c1 - 1998; c2 += 1) {
if (c2 + 1999 == 2 * c1 && c1 <= 1008)
S2(c0, c1, 2 * c1 - 1999, 1, c0, 2 * c1 - 1000, 1, 2, c0, c1 - 499, 2 * c1 - 1999, c0, 2 * c1 - 1999, c1 - 999, c1 - 999);
if (c1 % 2 == 0 && c2 == 1)
{
for (int c0 = 0; c0 <= 14; c0 += 1)
- for (int c1 = 0; c1 <= n - 15; c1 += 1)
+ for (int c1 = 0; c1 < n - 14; c1 += 1)
S1(c0, c1);
for (int c0 = 15; c0 <= n; c0 += 1) {
for (int c1 = 0; c1 <= 9; c1 += 1)
S1(c0, c1);
- for (int c1 = 10; c1 <= n - 15; c1 += 1) {
+ for (int c1 = 10; c1 < n - 14; c1 += 1) {
S1(c0, c1);
S2(c0, c1);
}
S3(1, 1);
for (int c0 = 2; c0 <= M; c0 += 1) {
S1(c0, 1);
- for (int c1 = 2; c1 <= c0 - 1; c1 += 1)
+ for (int c1 = 2; c1 < c0; c1 += 1)
S2(c0, c1);
S4(c0, c0);
}
S1(3, 1);
for (int c0 = 4; c0 <= M + 1; c0 += 1) {
S1(c0, 1);
- for (int c1 = 2; c1 <= (c0 + 1) / 2 - 1; c1 += 1)
+ for (int c1 = 2; c1 < (c0 + 1) / 2; c1 += 1)
S2(c0, c1);
if (c0 % 2 == 0)
S4(c0, c0 / 2);
}
for (int c0 = M + 2; c0 <= 2 * M; c0 += 1) {
- for (int c1 = -M + c0; c1 <= (c0 + 1) / 2 - 1; c1 += 1)
+ for (int c1 = -M + c0; c1 < (c0 + 1) / 2; c1 += 1)
S2(c0, c1);
if (c0 % 2 == 0)
S4(c0, c0 / 2);
-for (int c0 = 1; c0 <= M - 1; c0 += 1)
+for (int c0 = 1; c0 < M; c0 += 1)
for (int c1 = c0 + 1; c1 <= M; c1 += 1) {
- for (int c3 = 1; c3 <= c0 - 1; c3 += 1)
+ for (int c3 = 1; c3 < c0; c3 += 1)
S1(c0, c3, c1);
for (int c3 = c0 + 1; c3 <= M; c3 += 1)
S2(c0, c3, c1);
{
for (int c0 = 1; c0 <= 4; c0 += 1)
- for (int c1 = 5; c1 <= M - 10; c1 += 1)
+ for (int c1 = 5; c1 < M - 9; c1 += 1)
S1(c0, c1);
- for (int c0 = 5; c0 <= M - 10; c0 += 1) {
+ for (int c0 = 5; c0 < M - 9; c0 += 1) {
for (int c1 = -c0 + 1; c1 <= 4; c1 += 1)
S2(c0 + c1, c0);
for (int c1 = 5; c1 <= min(M - c0, M - 10); c1 += 1) {
S1(c0, c1);
S2(c0 + c1, c0);
}
- for (int c1 = M - c0 + 1; c1 <= M - 10; c1 += 1)
+ for (int c1 = M - c0 + 1; c1 < M - 9; c1 += 1)
S1(c0, c1);
for (int c1 = M - 9; c1 <= M - c0; c1 += 1)
S2(c0 + c1, c0);
}
for (int c0 = M - 9; c0 <= M; c0 += 1)
- for (int c1 = 5; c1 <= M - 10; c1 += 1)
+ for (int c1 = 5; c1 < M - 9; c1 += 1)
S1(c0, c1);
}
S1(0, 0);
for (int c0 = 1; c0 <= N; c0 += 1) {
S2(c0, 0);
- for (int c1 = 1; c1 <= c0 - 1; c1 += 1)
+ for (int c1 = 1; c1 < c0; c1 += 1)
S6(c0, c1);
S3(c0, c0);
}
S6(N + 1, c1);
S8(N + 1, c1);
}
- for (int c0 = N + 2; c0 <= 2 * M - N - 2; c0 += 1) {
+ for (int c0 = N + 2; c0 < 2 * M - N - 1; c0 += 1) {
S7(c0, -N + (N + c0 + 1) / 2 - 1);
if ((-N + c0) % 2 == 0) {
S5(c0, (-N + c0) / 2);
S8(c0, (-N + c0) / 2);
}
- for (int c1 = c0 - (N + c0 + 1) / 2 + 1; c1 <= (N + c0 + 1) / 2 - 1; c1 += 1) {
+ for (int c1 = c0 - (N + c0 + 1) / 2 + 1; c1 < (N + c0 + 1) / 2; c1 += 1) {
S6(c0, c1);
S8(c0, c1);
}
S8(c0, (N + c0) / 2);
}
}
- for (int c0 = 2 * M - N - 1; c0 <= 2 * M - 2; c0 += 1)
- for (int c1 = -M + c0 + 1; c1 <= M - 1; c1 += 1)
+ for (int c0 = 2 * M - N - 1; c0 < 2 * M - 1; c0 += 1)
+ for (int c1 = -M + c0 + 1; c1 < M; c1 += 1)
S6(c0, c1);
}
for (int c0 = 1; c0 <= M; c0 += 1) {
- for (int c1 = 1; c1 <= c0 - 1; c1 += 1)
+ for (int c1 = 1; c1 < c0; c1 += 1)
S1(c0, c1);
S1(c0, c0);
S2(c0, c0);
for (int c1 = 0; c1 <= 7; c1 += 1)
S1(1, c1);
for (int c0 = 2; c0 <= 6; c0 += 1) {
- for (int c1 = 0; c1 <= c0 - 2; c1 += 1)
+ for (int c1 = 0; c1 < c0 - 1; c1 += 1)
S2(c0, c1);
for (int c1 = c0 - 1; c1 <= 4; c1 += 1) {
S1(c0, c1);
for (int c1 = 0; c1 <= m; c1 += 1)
S1(1, c1);
for (int c0 = 2; c0 <= n; c0 += 1) {
- for (int c1 = 0; c1 <= c0 - 2; c1 += 1)
+ for (int c1 = 0; c1 < c0 - 1; c1 += 1)
S2(c0, c1);
for (int c1 = c0 - 1; c1 <= n; c1 += 1) {
S1(c0, c1);
for (int c0 = 1; c0 <= n; c0 += 1) {
for (int c1 = 2; c1 <= n; c1 += 1)
- for (int c2 = 1; c2 <= min(c0 - 1, c1 - 1); c2 += 1)
+ for (int c2 = 1; c2 < min(c0, c1); c2 += 1)
S2(c2, c1, c0);
for (int c3 = c0 + 1; c3 <= n; c3 += 1)
S1(c0, c3);
for (int c0 = 1; c0 <= n; c0 += 1) {
for (int c1 = 2; c1 <= n; c1 += 1)
- for (int c2 = 1; c2 <= min(c0 - 1, c1 - 1); c2 += 1)
+ for (int c2 = 1; c2 < min(c0, c1); c2 += 1)
S2(c0, c1, c2, c1, c0);
for (int c3 = c0 + 1; c3 <= n; c3 += 1)
S1(c0, n, c0, c3);
for (int c0 = 1; c0 <= M; c0 += 1) {
- for (int c1 = 1; c1 <= c0 - 1; c1 += 1)
+ for (int c1 = 1; c1 < c0; c1 += 1)
for (int c2 = c1 + 1; c2 <= M; c2 += 1)
S2(c0, c1, c2, c2, c0);
for (int c3 = c0 + 1; c3 <= M; c3 += 1)
if (M >= 3 && N >= 4)
- for (int c0 = 1; c0 <= (2 * M + 2 * N - 2) / 5 - 1; c0 += 1)
+ for (int c0 = 1; c0 < (2 * M + 2 * N - 2) / 5; c0 += 1)
for (int c1 = max(c0 - c0 / 2, c0 - (M + 2) / 5); c1 <= min(min((2 * N + 5 * c0 + 1) / 10, c0), (M + 2 * N) / 5 - 1); c1 += 1)
for (int c2 = max(max(max(max(c0 - (N + 5 * c0 + 2) / 10, c1 - (N + 1) / 5), c0 - c1 - 1), 0), c0 - (M + N - 1) / 5); c2 <= min(min(min(c0 - c1 + (N - 1) / 5 + 1, (N + 5 * c0 + 3) / 10), c1), (M + N - 2) / 5); c2 += 1)
for (int c3 = max(max(max(c1 + c2 - (N - 2) / 5 - 1, 2 * c2 - (N + 2) / 5), 2 * c1 - 2 * N / 5), c0); c3 <= min(min(min(min(min(c0 + 1, c1 + c2 + 1), c2 + (M + N) / 5), (2 * M + 2 * N - 1) / 5 - 1), c1 + (M - 2) / 5 + 1), 2 * c2 + (N - 2) / 5 + 1); c3 += 1)
if (N >= 1) {
S1(0);
if (N == 1) {
- for (int c3 = 0; c3 <= M - 1; c3 += 1)
+ for (int c3 = 0; c3 < M; c3 += 1)
S2(0, c3);
S3(0);
- for (int c3 = 0; c3 <= M - 1; c3 += 1)
+ for (int c3 = 0; c3 < M; c3 += 1)
S4(0, c3);
S10(0);
S5(0);
} else {
- for (int c3 = 0; c3 <= M - 1; c3 += 1)
+ for (int c3 = 0; c3 < M; c3 += 1)
S2(0, c3);
S3(0);
- for (int c3 = 0; c3 <= M - 1; c3 += 1)
+ for (int c3 = 0; c3 < M; c3 += 1)
S4(0, c3);
S10(0);
S1(1);
S5(0);
}
- for (int c1 = 2; c1 <= N - 1; c1 += 1) {
- for (int c3 = c1 - 1; c3 <= N - 1; c3 += 1) {
+ for (int c1 = 2; c1 < N; c1 += 1) {
+ for (int c3 = c1 - 1; c3 < N; c3 += 1) {
S6(c1 - 2, c3);
- for (int c5 = c1 - 2; c5 <= M - 1; c5 += 1)
+ for (int c5 = c1 - 2; c5 < M; c5 += 1)
S7(c1 - 2, c3, c5);
S8(c1 - 2, c3);
- for (int c5 = c1 - 2; c5 <= M - 1; c5 += 1)
+ for (int c5 = c1 - 2; c5 < M; c5 += 1)
S9(c1 - 2, c3, c5);
}
- for (int c3 = c1 - 1; c3 <= M - 1; c3 += 1)
+ for (int c3 = c1 - 1; c3 < M; c3 += 1)
S2(c1 - 1, c3);
S3(c1 - 1);
- for (int c3 = c1 - 1; c3 <= M - 1; c3 += 1)
+ for (int c3 = c1 - 1; c3 < M; c3 += 1)
S4(c1 - 1, c3);
S10(c1 - 1);
S1(c1);
}
if (N >= 2) {
S6(N - 2, N - 1);
- for (int c5 = N - 2; c5 <= M - 1; c5 += 1)
+ for (int c5 = N - 2; c5 < M; c5 += 1)
S7(N - 2, N - 1, c5);
S8(N - 2, N - 1);
- for (int c5 = N - 2; c5 <= M - 1; c5 += 1)
+ for (int c5 = N - 2; c5 < M; c5 += 1)
S9(N - 2, N - 1, c5);
- for (int c3 = N - 1; c3 <= M - 1; c3 += 1)
+ for (int c3 = N - 1; c3 < M; c3 += 1)
S2(N - 1, c3);
S3(N - 1);
- for (int c3 = N - 1; c3 <= M - 1; c3 += 1)
+ for (int c3 = N - 1; c3 < M; c3 += 1)
S4(N - 1, c3);
S10(N - 1);
S5(N - 1);
-for (int c1 = 2; c1 <= 3 * M - 1; c1 += 1) {
+for (int c1 = 2; c1 < 3 * M; c1 += 1) {
if ((c1 - 2) % 3 == 0)
S1((c1 + 1) / 3);
for (int c3 = (c1 + 1) / 3 + 1; c3 <= min(c1 - 2, M); c3 += 1)
-for (int c1 = 0; c1 <= M - 1; c1 += 1)
- for (int c3 = 0; c3 <= M - 1; c3 += 1)
+for (int c1 = 0; c1 < M; c1 += 1)
+ for (int c3 = 0; c3 < M; c3 += 1)
S1(c1, c3);
for (int c1 = 1; c1 <= M; c1 += 1) {
- for (int c3 = 2; c3 <= N - 1; c3 += 1)
- for (int c5 = 2; c5 <= N - 1; c5 += 1)
+ for (int c3 = 2; c3 < N; c3 += 1)
+ for (int c5 = 2; c5 < N; c5 += 1)
S1(c1, c3, c5);
- for (int c3 = 2; c3 <= N - 1; c3 += 1)
- for (int c5 = 2; c5 <= N - 1; c5 += 1)
+ for (int c3 = 2; c3 < N; c3 += 1)
+ for (int c5 = 2; c5 < N; c5 += 1)
S2(c1, c3, c5);
}
for (int c3 = 2; c3 <= N; c3 += 1)
S2(c1, c3);
for (int c1 = 1; c1 <= M; c1 += 1)
- for (int c3 = 1; c3 <= N - 1; c3 += 1)
+ for (int c3 = 1; c3 < N; c3 += 1)
S3(c1, c3);
}
for (int c1 = 5; c1 <= 5 * M; c1 += 1) {
- for (int c3 = max(2, -floord(M - c1 - 1, 4) - 1); c3 <= min((c1 + 1) / 3 - 3, M - 1); c3 += 1)
- for (int c5 = max(c1 - c3 - (M + c1 + 1) / 2 - 2, 1); c5 <= min(c3 - 1, -2 * c3 + (c1 + c3) / 2 - 3); c5 += 1)
+ for (int c3 = max(2, -floord(M - c1 - 1, 4) - 1); c3 < min((c1 + 1) / 3 - 2, M); c3 += 1)
+ for (int c5 = max(c1 - c3 - (M + c1 + 1) / 2 - 2, 1); c5 < min(c3, -2 * c3 + (c1 + c3) / 2 - 2); c5 += 1)
S1(c1 - 2 * c3 - 2 * c5 - 5, c3, c5);
- for (int c3 = max(1, -floord(M - c1 - 1, 4) - 1); c3 <= (c1 + 1) / 5 - 1; c3 += 1)
+ for (int c3 = max(1, -floord(M - c1 - 1, 4) - 1); c3 < (c1 + 1) / 5; c3 += 1)
S2(c1 - 4 * c3 - 3, c3);
if (c1 % 5 == 0)
S4(c1 / 5);
- for (int c3 = max(-((c1 + 2) % 3) + 3, 2 * c1 - 3 * ((M + c1 + 1) / 2) + 1); c3 <= (c1 + 1) / 5 - 1; c3 += 3)
+ for (int c3 = max(-((c1 + 2) % 3) + 3, 2 * c1 - 3 * ((M + c1 + 1) / 2) + 1); c3 < (c1 + 1) / 5; c3 += 3)
S3((c1 - 2 * c3 - 1) / 3, c3);
}
-for (int c1 = 1; c1 <= 2 * M - 2; c1 += 1) {
- for (int c3 = max(-c1 + 1, -M + 1); c3 <= -1; c3 += 1) {
+for (int c1 = 1; c1 < 2 * M - 1; c1 += 1) {
+ for (int c3 = max(-c1 + 1, -M + 1); c3 < 0; c3 += 1) {
for (int c7 = max(-M + c1 + 1, 1); c7 <= min(c1 + c3, M - 1); c7 += 1)
S1(c7, c1 + c3 - c7, -c3);
- for (int c5 = max(-c3, -M + c1 + 1); c5 <= min(M - 1, c1 - 1); c5 += 1)
+ for (int c5 = max(-c3, -M + c1 + 1); c5 < min(M, c1); c5 += 1)
S2(c1 - c5, c3 + c5, c5);
}
for (int c7 = max(1, -M + c1 + 1); c7 <= min(c1, M - 1); c7 += 1)
{
if (N >= 2)
- for (int c1 = 1; c1 <= O - 1; c1 += 1) {
+ for (int c1 = 1; c1 < O; c1 += 1) {
for (int c5 = 1; c5 <= M; c5 += 1)
S1(c1, 1, c5);
- for (int c5 = 1; c5 <= M - 1; c5 += 1) {
+ for (int c5 = 1; c5 < M; c5 += 1) {
S6(c1, 1, c5);
S7(c1, 1, c5);
}
S3(c1, 1, c5);
for (int c5 = 1; c5 <= M; c5 += 1)
S1(c1, 2, c5);
- for (int c5 = 1; c5 <= M - 1; c5 += 1) {
+ for (int c5 = 1; c5 < M; c5 += 1) {
S6(c1, 2, c5);
S7(c1, 2, c5);
}
- for (int c5 = 1; c5 <= M - 1; c5 += 1)
+ for (int c5 = 1; c5 < M; c5 += 1)
S11(c1, 1, c5);
} else {
for (int c5 = 1; c5 <= M; c5 += 1)
S3(c1, 1, c5);
- for (int c5 = 1; c5 <= M - 1; c5 += 1)
+ for (int c5 = 1; c5 < M; c5 += 1)
S11(c1, 1, c5);
}
- for (int c3 = 3; c3 <= 2 * N - 5; c3 += 2) {
- for (int c5 = 1; c5 <= M - 1; c5 += 1)
+ for (int c3 = 3; c3 < 2 * N - 4; c3 += 2) {
+ for (int c5 = 1; c5 < M; c5 += 1)
S10(c1, (c3 - 1) / 2, c5);
for (int c5 = 1; c5 <= M; c5 += 1)
S3(c1, (c3 + 1) / 2, c5);
for (int c5 = 1; c5 <= M; c5 += 1)
S1(c1, (c3 + 3) / 2, c5);
- for (int c5 = 1; c5 <= M - 1; c5 += 1) {
+ for (int c5 = 1; c5 < M; c5 += 1) {
S6(c1, (c3 + 3) / 2, c5);
S7(c1, (c3 + 3) / 2, c5);
}
- for (int c5 = 1; c5 <= M - 1; c5 += 1)
+ for (int c5 = 1; c5 < M; c5 += 1)
S11(c1, (c3 + 1) / 2, c5);
}
if (N >= 3) {
- for (int c5 = 1; c5 <= M - 1; c5 += 1)
+ for (int c5 = 1; c5 < M; c5 += 1)
S10(c1, N - 2, c5);
for (int c5 = 1; c5 <= M; c5 += 1)
S3(c1, N - 1, c5);
- for (int c5 = 1; c5 <= M - 1; c5 += 1)
+ for (int c5 = 1; c5 < M; c5 += 1)
S11(c1, N - 1, c5);
}
- for (int c5 = 1; c5 <= M - 1; c5 += 1)
+ for (int c5 = 1; c5 < M; c5 += 1)
S10(c1, N - 1, c5);
}
- for (int c1 = 1; c1 <= O - 1; c1 += 1)
- for (int c3 = 1; c3 <= N - 1; c3 += 1) {
+ for (int c1 = 1; c1 < O; c1 += 1)
+ for (int c3 = 1; c3 < N; c3 += 1) {
for (int c5 = 1; c5 <= M; c5 += 1)
S2(c1, c3, c5);
- for (int c5 = 1; c5 <= M - 1; c5 += 1)
+ for (int c5 = 1; c5 < M; c5 += 1)
S8(c1, c3, c5);
- for (int c5 = 1; c5 <= M - 1; c5 += 1)
+ for (int c5 = 1; c5 < M; c5 += 1)
S9(c1, c3, c5);
}
- for (int c1 = 1; c1 <= O - 1; c1 += 1)
- for (int c3 = 1; c3 <= N - 1; c3 += 1)
- for (int c5 = 1; c5 <= M - 1; c5 += 1)
+ for (int c1 = 1; c1 < O; c1 += 1)
+ for (int c3 = 1; c3 < N; c3 += 1)
+ for (int c5 = 1; c5 < M; c5 += 1)
S4(c1, c3, c5);
- for (int c1 = 1; c1 <= O - 1; c1 += 1)
- for (int c3 = 1; c3 <= N - 1; c3 += 1)
- for (int c5 = 1; c5 <= M - 1; c5 += 1)
+ for (int c1 = 1; c1 < O; c1 += 1)
+ for (int c3 = 1; c3 < N; c3 += 1)
+ for (int c5 = 1; c5 < M; c5 += 1)
S5(c1, c3, c5);
- for (int c1 = R; c1 <= O - 1; c1 += 1)
- for (int c3 = Q; c3 <= N - 1; c3 += 1)
- for (int c5 = P; c5 <= M - 1; c5 += 1)
+ for (int c1 = R; c1 < O; c1 += 1)
+ for (int c3 = Q; c3 < N; c3 += 1)
+ for (int c5 = P; c5 < M; c5 += 1)
S12(c1, c3, c5);
- for (int c1 = R; c1 <= O - 1; c1 += 1)
- for (int c3 = Q; c3 <= N - 1; c3 += 1)
- for (int c5 = 1; c5 <= M - 1; c5 += 1)
+ for (int c1 = R; c1 < O; c1 += 1)
+ for (int c3 = Q; c3 < N; c3 += 1)
+ for (int c5 = 1; c5 < M; c5 += 1)
S13(c1, c3, c5);
- for (int c1 = R; c1 <= O - 1; c1 += 1)
- for (int c3 = 1; c3 <= N - 1; c3 += 1)
- for (int c5 = P; c5 <= M - 1; c5 += 1)
+ for (int c1 = R; c1 < O; c1 += 1)
+ for (int c3 = 1; c3 < N; c3 += 1)
+ for (int c5 = P; c5 < M; c5 += 1)
S14(c1, c3, c5);
- for (int c1 = R; c1 <= O - 1; c1 += 1)
- for (int c3 = 1; c3 <= N - 1; c3 += 1)
- for (int c5 = 1; c5 <= M - 1; c5 += 1)
+ for (int c1 = R; c1 < O; c1 += 1)
+ for (int c3 = 1; c3 < N; c3 += 1)
+ for (int c5 = 1; c5 < M; c5 += 1)
S15(c1, c3, c5);
}
{
- for (int c1 = 1; c1 <= O - 1; c1 += 1)
- for (int c3 = Q; c3 <= N - 1; c3 += 1)
- for (int c5 = P; c5 <= M - 1; c5 += 1)
+ for (int c1 = 1; c1 < O; c1 += 1)
+ for (int c3 = Q; c3 < N; c3 += 1)
+ for (int c5 = P; c5 < M; c5 += 1)
S1(c1, c3, c5);
- for (int c1 = 1; c1 <= O - 1; c1 += 1)
- for (int c3 = Q; c3 <= N - 1; c3 += 1)
- for (int c5 = 1; c5 <= M - 1; c5 += 1)
+ for (int c1 = 1; c1 < O; c1 += 1)
+ for (int c3 = Q; c3 < N; c3 += 1)
+ for (int c5 = 1; c5 < M; c5 += 1)
S2(c1, c3, c5);
- for (int c1 = 1; c1 <= O - 1; c1 += 1)
- for (int c3 = 1; c3 <= N - 1; c3 += 1)
- for (int c5 = P; c5 <= M - 1; c5 += 1)
+ for (int c1 = 1; c1 < O; c1 += 1)
+ for (int c3 = 1; c3 < N; c3 += 1)
+ for (int c5 = P; c5 < M; c5 += 1)
S3(c1, c3, c5);
- for (int c1 = 1; c1 <= O - 1; c1 += 1)
- for (int c3 = 1; c3 <= N - 1; c3 += 1)
- for (int c5 = 1; c5 <= M - 1; c5 += 1)
+ for (int c1 = 1; c1 < O; c1 += 1)
+ for (int c3 = 1; c3 < N; c3 += 1)
+ for (int c5 = 1; c5 < M; c5 += 1)
S4(c1, c3, c5);
}
-for (int c1 = 2; c1 <= O - 1; c1 += 1)
- for (int c3 = 3; c3 <= 2 * N - 3; c3 += 2) {
+for (int c1 = 2; c1 < O; c1 += 1)
+ for (int c3 = 3; c3 < 2 * N - 2; c3 += 2) {
for (int c5 = 1; c5 <= M; c5 += 1) {
S1(c1, (c3 + 1) / 2, c5);
S2(c1, (c3 + 1) / 2, c5);
}
- for (int c5 = 2; c5 <= M - 1; c5 += 1)
+ for (int c5 = 2; c5 < M; c5 += 1)
S3(c1, (c3 + 1) / 2, c5);
}
-for (int c1 = 2; c1 <= O - 1; c1 += 1)
- for (int c3 = 3; c3 <= 2 * N - 3; c3 += 2) {
+for (int c1 = 2; c1 < O; c1 += 1)
+ for (int c3 = 3; c3 < 2 * N - 2; c3 += 2) {
for (int c5 = 1; c5 <= M; c5 += 1) {
S1(c1, (c3 + 1) / 2, c5);
S2(c1, (c3 + 1) / 2, c5);
}
- for (int c5 = 2; c5 <= M - 1; c5 += 1)
+ for (int c5 = 2; c5 < M; c5 += 1)
S3(c1, (c3 + 1) / 2, c5);
}
if (N >= 3 && M >= 2)
- for (int c1 = 2; c1 <= O - 1; c1 += 1) {
+ for (int c1 = 2; c1 < O; c1 += 1) {
for (int c5 = 2; c5 <= M; c5 += 1)
S1(c1, 2, c5);
- for (int c3 = 3; c3 <= N - 1; c3 += 1) {
+ for (int c3 = 3; c3 < N; c3 += 1) {
for (int c5 = 2; c5 <= M; c5 += 1)
S2(c1, c3 - 1, c5);
if (M >= 3) {
S4(c1, c3 - 1, 2);
- for (int c5 = 2; c5 <= M - 2; c5 += 1) {
+ for (int c5 = 2; c5 < M - 1; c5 += 1) {
S3(c1, c3 - 1, c5);
S5(c1, c3 - 1, c5);
S4(c1, c3 - 1, c5 + 1);
S2(c1, N - 1, c5);
if (M >= 3) {
S4(c1, N - 1, 2);
- for (int c5 = 2; c5 <= M - 2; c5 += 1) {
+ for (int c5 = 2; c5 < M - 1; c5 += 1) {
S3(c1, N - 1, c5);
S5(c1, N - 1, c5);
S4(c1, N - 1, c5 + 1);
for (int c1 = 1; c1 <= M; c1 += 1)
- for (int c3 = 1; c3 <= 2 * N - 1; c3 += 1) {
- for (int c5 = max(1, -N + c3); c5 <= (c3 + 1) / 2 - 1; c5 += 1)
+ for (int c3 = 1; c3 < 2 * N; c3 += 1) {
+ for (int c5 = max(1, -N + c3); c5 < (c3 + 1) / 2; c5 += 1)
S1(c1, c3 - c5, c5);
if ((c3 - 1) % 2 == 0)
S2(c1, (c3 + 1) / 2);
-for (int c1 = 3; c1 <= 2 * M - 1; c1 += 1) {
+for (int c1 = 3; c1 < 2 * M; c1 += 1) {
for (int c3 = c1 - (c1 + 1) / 2 + 2; c3 <= M; c3 += 1)
- for (int c7 = c1 - (c1 + 1) / 2 + 1; c7 <= min(c1 - 1, c3 - 1); c7 += 1)
+ for (int c7 = c1 - (c1 + 1) / 2 + 1; c7 < min(c1, c3); c7 += 1)
S1(c7, c1 - c7, c3);
- for (int c3 = max(1, -M + c1); c3 <= (c1 + 1) / 2 - 1; c3 += 1)
+ for (int c3 = max(1, -M + c1); c3 < (c1 + 1) / 2; c3 += 1)
S2(c1 - c3, c3);
for (int c3 = c1 - (c1 + 1) / 2 + 2; c3 <= M; c3 += 1)
- for (int c7 = c1 - (c1 + 1) / 2 + 1; c7 <= min(c1 - 1, c3 - 1); c7 += 1)
+ for (int c7 = c1 - (c1 + 1) / 2 + 1; c7 < min(c1, c3); c7 += 1)
S3(c7, c1 - c7, c3);
}
for (int c1 = 1; c1 <= M; c1 += 1) {
- for (int c3 = 2; c3 <= N - 1; c3 += 1)
- for (int c5 = 2; c5 <= N - 1; c5 += 1)
+ for (int c3 = 2; c3 < N; c3 += 1)
+ for (int c5 = 2; c5 < N; c5 += 1)
S1(c1, c3, c5);
- for (int c3 = 2; c3 <= N - 1; c3 += 1)
- for (int c5 = 2; c5 <= N - 1; c5 += 1)
+ for (int c3 = 2; c3 < N; c3 += 1)
+ for (int c5 = 2; c5 < N; c5 += 1)
S2(c1, c3, c5);
}
for (int c2 = 3 * c0 + 1; c2 <= min(n, 3 * c0 + 3); c2 += 1)
S1(c2, c0);
for (int c0 = floord(n, 3); c0 <= floord(n, 3) + floord(n, 3); c0 += 1)
- for (int c1 = 0; c1 <= n - 1; c1 += 1)
+ for (int c1 = 0; c1 < n; c1 += 1)
for (int c3 = max(-n + 3 * c0, 1); c3 <= min(-n + 3 * c0 + 4, n); c3 += 1)
if (((3 * c0 - c3 + 2) % 3) + n + c3 >= 3 * c0 + 2 && 3 * c0 + 4 >= ((3 * c0 - c3 + 2) % 3) + n + c3)
S2(c1 + 1, c3, 0, n / 3, c0 - n / 3);
for (int c1 = 7; c1 <= 11; c1 += 1)
S8(4, c1, 0);
for (int c0 = 5; c0 <= 6; c0 += 1) {
- for (int c1 = -4; c1 <= c0 - 9; c1 += 1)
+ for (int c1 = -4; c1 < c0 - 8; c1 += 1)
S6(c0, c1, 0);
- for (int c1 = c0 - 9; c1 <= -1; c1 += 1)
+ for (int c1 = c0 - 9; c1 < 0; c1 += 1)
S7(c0, c1, 0);
S3(c0, 0, 0);
S7(c0, 0, 0);
- for (int c1 = 1; c1 <= c0 - 4; c1 += 1)
+ for (int c1 = 1; c1 < c0 - 3; c1 += 1)
S4(c0, c1, -1);
for (int c1 = c0 - 4; c1 <= 4; c1 += 1)
S5(c0, c1, 0);
for (int c1 = 7; c1 <= 11; c1 += 1)
S8(c0, c1, 0);
}
- for (int c1 = -4; c1 <= -2; c1 += 1)
+ for (int c1 = -4; c1 < -1; c1 += 1)
S6(7, c1, 0);
- for (int c1 = -2; c1 <= -1; c1 += 1)
+ for (int c1 = -2; c1 < 0; c1 += 1)
S7(7, c1, 0);
S3(7, 0, 0);
S7(7, 0, 0);
S22(7, 9, 0);
for (int c1 = 10; c1 <= 11; c1 += 1)
S8(7, c1, 0);
- for (int c1 = -4; c1 <= -1; c1 += 1)
+ for (int c1 = -4; c1 < 0; c1 += 1)
S6(8, c1, 0);
S7(8, -1, 0);
S3(8, 0, 0);
S19(8, 1, 0);
S15(8, 1, 4);
S18(8, 1, 4);
- for (int c2 = -4; c2 <= -3; c2 += 1) {
+ for (int c2 = -4; c2 < -2; c2 += 1) {
S14(8, 2, c2);
S20(8, 2, c2);
}
S20(8, 2, 0);
S15(8, 2, 4);
S18(8, 2, 4);
- for (int c2 = -4; c2 <= -2; c2 += 1) {
+ for (int c2 = -4; c2 < -1; c2 += 1) {
S14(8, 3, c2);
S20(8, 3, c2);
}
S20(8, 3, 0);
S15(8, 3, 4);
S18(8, 3, 4);
- for (int c2 = -4; c2 <= -2; c2 += 1) {
+ for (int c2 = -4; c2 < -1; c2 += 1) {
S14(8, 4, c2);
S20(8, 4, c2);
}
}
}
S20(9, 3, -4);
- for (int c2 = -3; c2 <= -2; c2 += 1) {
+ for (int c2 = -3; c2 < -1; c2 += 1) {
S14(9, 3, c2);
S20(9, 3, c2);
}
S18(9, 3, c2);
}
S20(9, 4, -4);
- for (int c2 = -3; c2 <= -1; c2 += 1) {
+ for (int c2 = -3; c2 < 0; c2 += 1) {
S14(9, 4, c2);
S20(9, 4, c2);
}
S18(10, c1, c2);
}
}
- for (int c2 = -4; c2 <= -3; c2 += 1)
+ for (int c2 = -4; c2 < -2; c2 += 1)
S20(10, 4, c2);
- for (int c2 = -2; c2 <= -1; c2 += 1) {
+ for (int c2 = -2; c2 < 0; c2 += 1) {
S14(10, 4, c2);
S20(10, 4, c2);
}
{
S1();
S2();
- for (int c1 = 0; c1 <= N - 1; c1 += 1)
- for (int c3 = 0; c3 <= N - 1; c3 += 1) {
+ for (int c1 = 0; c1 < N; c1 += 1)
+ for (int c3 = 0; c3 < N; c3 += 1) {
S4(c1, c3);
S5(c1, c3);
}
- for (int c1 = 0; c1 <= N - 1; c1 += 1)
- for (int c3 = 0; c3 <= N - 1; c3 += 1)
+ for (int c1 = 0; c1 < N; c1 += 1)
+ for (int c3 = 0; c3 < N; c3 += 1)
for (int c5 = 0; c5 <= (N - 1) / 32; c5 += 1) {
S7(c1, c3, c5, 32 * c5);
for (int c7 = 32 * c5 + 1; c7 <= min(N - 1, 32 * c5 + 31); c7 += 1) {
if (2 * n >= c0 + 1 && c0 >= 3)
S4(c0 - c0 / 2 - 1, c0 / 2 + 1);
if (2 * n >= c0 + 1 && c0 + 2 >= 2 * n) {
- for (int c2 = 1; c2 <= -n + c0 - 1; c2 += 1)
+ for (int c2 = 1; c2 < -n + c0; c2 += 1)
S5(-n + c0, n, c2);
} else if (2 * n >= c0 + 3 && c0 >= 5) {
S4(c0 - c0 / 2 - 2, c0 / 2 + 2);
- for (int c2 = 1; c2 <= (c0 + 1) / 2 - 2; c2 += 1)
+ for (int c2 = 1; c2 < (c0 + 1) / 2 - 1; c2 += 1)
S5(c0 - c0 / 2 - 1, c0 / 2 + 1, c2);
}
for (int c1 = -((c0 + 1) / 2) + 3; c1 <= min(n - c0, -1); c1 += 1) {
}
if (c0 >= n + 2 && 2 * n >= c0 + 3) {
S6(-n + c0 + 1, n - 1);
- for (int c2 = 1; c2 <= -n + c0 - 1; c2 += 1)
+ for (int c2 = 1; c2 < -n + c0; c2 += 1)
S5(-n + c0, n, c2);
}
if (2 * n >= c0 + 1 && c0 >= n + 3)
S1(3);
if (c0 % 2 == 0)
S3(c0 / 2);
- for (int c1 = max(-n + c0, 1); c1 <= (c0 + 1) / 2 - 1; c1 += 1)
+ for (int c1 = max(-n + c0, 1); c1 < (c0 + 1) / 2; c1 += 1)
S2(c0 - c1, c1);
}
for (int c0 = max(-27 * n + 2, 2 * n + 1); c0 <= n + 29; c0 += 1)
if (2 * n >= c0 + 1) {
S4(c0 - c0 / 2 - 1, c0 / 2 + 1);
if (c0 + 2 >= 2 * n) {
- for (int c2 = 1; c2 <= -n + c0 - 1; c2 += 1)
+ for (int c2 = 1; c2 < -n + c0; c2 += 1)
S5(-n + c0, n, c2);
} else {
S4(c0 - c0 / 2 - 2, c0 / 2 + 2);
- for (int c2 = 1; c2 <= (c0 + 1) / 2 - 2; c2 += 1)
+ for (int c2 = 1; c2 < (c0 + 1) / 2 - 1; c2 += 1)
S5(c0 - c0 / 2 - 1, c0 / 2 + 1, c2);
}
for (int c1 = -((c0 + 1) / 2) + 3; c1 <= n - c0; c1 += 1) {
}
if (2 * n >= c0 + 3) {
S6(-n + c0 + 1, n - 1);
- for (int c2 = 1; c2 <= -n + c0 - 1; c2 += 1)
+ for (int c2 = 1; c2 < -n + c0; c2 += 1)
S5(-n + c0, n, c2);
}
S6(-n + c0, n);
}
if (c0 % 2 == 0)
S3(c0 / 2);
- for (int c1 = -n + c0; c1 <= (c0 + 1) / 2 - 1; c1 += 1)
+ for (int c1 = -n + c0; c1 < (c0 + 1) / 2; c1 += 1)
S2(c0 - c1, c1);
}
}
if (c0 >= 3) {
S4(c0 - c0 / 2 - 1, c0 / 2 + 1);
if (c0 + 2 >= 2 * n) {
- for (int c2 = 1; c2 <= -n + c0 - 1; c2 += 1)
+ for (int c2 = 1; c2 < -n + c0; c2 += 1)
S5(-n + c0, n, c2);
} else if (c0 >= 5) {
S4(c0 - c0 / 2 - 2, c0 / 2 + 2);
- for (int c2 = 1; c2 <= (c0 + 1) / 2 - 2; c2 += 1)
+ for (int c2 = 1; c2 < (c0 + 1) / 2 - 1; c2 += 1)
S5(c0 - c0 / 2 - 1, c0 / 2 + 1, c2);
}
}
}
if (2 * n >= c0 + 3 && c0 >= n + 2) {
S6(-n + c0 + 1, n - 1);
- for (int c2 = 1; c2 <= -n + c0 - 1; c2 += 1)
+ for (int c2 = 1; c2 < -n + c0; c2 += 1)
S5(-n + c0, n, c2);
}
if (c0 >= n + 3) {
S1(1);
if (c0 % 2 == 0)
S3(c0 / 2);
- for (int c1 = max(-n + c0, 1); c1 <= (c0 + 1) / 2 - 1; c1 += 1)
+ for (int c1 = max(-n + c0, 1); c1 < (c0 + 1) / 2; c1 += 1)
S2(c0 - c1, c1);
}
for (int c0 = n + 30; c0 <= 2 * n; c0 += 1) {
if (2 * n >= c0 + 1) {
S4(c0 - c0 / 2 - 1, c0 / 2 + 1);
if (c0 + 2 >= 2 * n) {
- for (int c2 = 1; c2 <= -n + c0 - 1; c2 += 1)
+ for (int c2 = 1; c2 < -n + c0; c2 += 1)
S5(-n + c0, n, c2);
} else {
S4(c0 - c0 / 2 - 2, c0 / 2 + 2);
- for (int c2 = 1; c2 <= (c0 + 1) / 2 - 2; c2 += 1)
+ for (int c2 = 1; c2 < (c0 + 1) / 2 - 1; c2 += 1)
S5(c0 - c0 / 2 - 1, c0 / 2 + 1, c2);
}
for (int c1 = -((c0 + 1) / 2) + 3; c1 <= n - c0; c1 += 1) {
}
if (2 * n >= c0 + 3) {
S6(-n + c0 + 1, n - 1);
- for (int c2 = 1; c2 <= -n + c0 - 1; c2 += 1)
+ for (int c2 = 1; c2 < -n + c0; c2 += 1)
S5(-n + c0, n, c2);
}
S6(-n + c0, n);
}
if (c0 % 2 == 0)
S3(c0 / 2);
- for (int c1 = -n + c0; c1 <= (c0 + 1) / 2 - 1; c1 += 1)
+ for (int c1 = -n + c0; c1 < (c0 + 1) / 2; c1 += 1)
S2(c0 - c1, c1);
}
}
{
- for (int c0 = 1; c0 <= n - 1; c0 += 1) {
+ for (int c0 = 1; c0 < n; c0 += 1) {
for (int c2 = c0 + 1; c2 <= n; c2 += 1)
S1(c0, c2);
- for (int c1 = 1; c1 <= c0 - 1; c1 += 1)
+ for (int c1 = 1; c1 < c0; c1 += 1)
for (int c2 = c1 + 1; c2 <= n; c2 += 1)
S2(c1, c2, c0);
}
- for (int c1 = 1; c1 <= n - 1; c1 += 1)
+ for (int c1 = 1; c1 < n; c1 += 1)
for (int c2 = c1 + 1; c2 <= n; c2 += 1)
S2(c1, c2, n);
}
for (int c1 = 1; c1 <= M; c1 += 1)
S2(c1);
for (int c0 = 2; c0 <= M; c0 += 1) {
- for (int c2 = 1; c2 <= c0 - 1; c2 += 1)
+ for (int c2 = 1; c2 < c0; c2 += 1)
S1(c0, c2);
for (int c2 = c0 + 1; c2 <= M; c2 += 1)
- for (int c3 = 1; c3 <= c0 - 1; c3 += 1)
+ for (int c3 = 1; c3 < c0; c3 += 1)
S3(c0, c2, c3);
- for (int c1 = 1; c1 <= c0 - 1; c1 += 1)
+ for (int c1 = 1; c1 < c0; c1 += 1)
S4(c1, c0);
}
}
{
for (int c1 = 2; c1 <= n; c1 += 1)
s0(c1);
- for (int c1 = 1; c1 <= n - 1; c1 += 1) {
+ for (int c1 = 1; c1 < n; c1 += 1) {
for (int c3 = c1 + 1; c3 <= n; c3 += 1)
s1(c3, c1);
s2(c1 + 1);
{
for (int c1 = 2; c1 <= n; c1 += 1)
s0(c1);
- for (int c1 = 1; c1 <= n - 1; c1 += 1) {
+ for (int c1 = 1; c1 < n; c1 += 1) {
for (int c3 = c1 + 1; c3 <= n; c3 += 1)
s1(c3, c1);
s2(c1 + 1);
for (int c0 = 1; c0 <= 8; c0 += 1) {
if (c0 <= 6)
- for (int c1 = 0; c1 <= c0 - 2; c1 += 1)
+ for (int c1 = 0; c1 < c0 - 1; c1 += 1)
s1(c0, c1);
if (c0 >= 2) {
for (int c1 = c0 - 1; c1 <= 4; c1 += 1) {
for (int c1 = 0; c1 <= 7; c1 += 1)
s0(1, c1);
for (int c0 = 2; c0 <= 6; c0 += 1) {
- for (int c1 = 0; c1 <= c0 - 2; c1 += 1)
+ for (int c1 = 0; c1 < c0 - 1; c1 += 1)
s1(c0, c1);
for (int c1 = c0 - 1; c1 <= 4; c1 += 1) {
s1(c0, c1);
{
for (int c4 = 1; c4 <= n; c4 += 1)
s2(c4);
- for (int c1 = 1; c1 <= n - 1; c1 += 1) {
- for (int c4 = 0; c4 <= n - c1 - 1; c4 += 1)
+ for (int c1 = 1; c1 < n; c1 += 1) {
+ for (int c4 = 0; c4 < n - c1; c4 += 1)
s0(c1, n - c4);
- for (int c3 = 0; c3 <= n - c1 - 1; c3 += 1)
+ for (int c3 = 0; c3 < n - c1; c3 += 1)
for (int c4 = c1 + 1; c4 <= n; c4 += 1)
s1(c1, n - c3, c4);
}
-for (int c0 = 0; c0 <= n - 2; c0 += 1) {
- for (int c3 = 0; c3 <= n - c0 - 2; c3 += 1)
+for (int c0 = 0; c0 < n - 1; c0 += 1) {
+ for (int c3 = 0; c3 < n - c0 - 1; c3 += 1)
s0(c0 + 1, n - c3);
- for (int c3 = 0; c3 <= n - c0 - 2; c3 += 1)
+ for (int c3 = 0; c3 < n - c0 - 1; c3 += 1)
for (int c6 = c0 + 2; c6 <= n; c6 += 1)
s1(c0 + 1, n - c3, c6);
}
{
for (int c3 = 1; c3 <= n; c3 += 1)
s2(c3);
- for (int c0 = 0; c0 <= n - 2; c0 += 1) {
- for (int c3 = 0; c3 <= n - c0 - 2; c3 += 1)
+ for (int c0 = 0; c0 < n - 1; c0 += 1) {
+ for (int c3 = 0; c3 < n - c0 - 1; c3 += 1)
s0(c0 + 1, n - c3);
- for (int c3 = 0; c3 <= n - c0 - 2; c3 += 1)
+ for (int c3 = 0; c3 < n - c0 - 1; c3 += 1)
for (int c6 = c0 + 2; c6 <= n; c6 += 1)
s1(c0 + 1, n - c3, c6);
}
- for (int c0 = n - 1; c0 <= 2 * n - 2; c0 += 1) {
+ for (int c0 = n - 1; c0 < 2 * n - 1; c0 += 1) {
if (c0 >= n)
for (int c2 = -n + c0 + 2; c2 <= n; c2 += 1)
s3(c2, -n + c0 + 1);
{
for (int c3 = 1; c3 <= n; c3 += 1)
s2(c3);
- for (int c0 = 0; c0 <= n - 2; c0 += 1) {
- for (int c3 = 0; c3 <= n - c0 - 2; c3 += 1)
+ for (int c0 = 0; c0 < n - 1; c0 += 1) {
+ for (int c3 = 0; c3 < n - c0 - 1; c3 += 1)
s0(c0 + 1, n - c3);
- for (int c3 = 0; c3 <= n - c0 - 2; c3 += 1)
+ for (int c3 = 0; c3 < n - c0 - 1; c3 += 1)
for (int c6 = c0 + 2; c6 <= n; c6 += 1)
s1(c0 + 1, n - c3, c6);
}
- for (int c0 = n - 1; c0 <= 2 * n - 2; c0 += 1) {
+ for (int c0 = n - 1; c0 < 2 * n - 1; c0 += 1) {
if (c0 >= n)
for (int c2 = -n + c0 + 2; c2 <= n; c2 += 1)
s3(c2, -n + c0 + 1);
-for (int c0 = 0; c0 <= n - 2; c0 += 1) {
- for (int c3 = 0; c3 <= n - c0 - 2; c3 += 1)
+for (int c0 = 0; c0 < n - 1; c0 += 1) {
+ for (int c3 = 0; c3 < n - c0 - 1; c3 += 1)
s0(c0 + 1, n - c3);
- for (int c3 = 0; c3 <= n - c0 - 2; c3 += 1)
+ for (int c3 = 0; c3 < n - c0 - 1; c3 += 1)
for (int c6 = c0 + 2; c6 <= n; c6 += 1)
s1(c0 + 1, n - c3, c6);
}
{
for (int c3 = 1; c3 <= n; c3 += 1)
s2(c3);
- for (int c0 = 0; c0 <= n - 2; c0 += 1) {
- for (int c3 = 0; c3 <= n - c0 - 2; c3 += 1)
+ for (int c0 = 0; c0 < n - 1; c0 += 1) {
+ for (int c3 = 0; c3 < n - c0 - 1; c3 += 1)
s0(c0 + 1, n - c3);
- for (int c3 = 0; c3 <= n - c0 - 2; c3 += 1)
+ for (int c3 = 0; c3 < n - c0 - 1; c3 += 1)
for (int c6 = c0 + 2; c6 <= n; c6 += 1)
s1(c0 + 1, n - c3, c6);
}
- for (int c0 = n - 1; c0 <= 2 * n - 2; c0 += 1) {
+ for (int c0 = n - 1; c0 < 2 * n - 1; c0 += 1) {
if (c0 >= n)
for (int c2 = -n + c0 + 2; c2 <= n; c2 += 1)
s3(c2, -n + c0 + 1);
for (int c0 = 2; c0 <= n; c0 += 1)
for (int c1 = 1; c1 <= n; c1 += 1) {
- for (int c3 = 1; c3 <= min(c0 - 1, c1 - 1); c3 += 1)
+ for (int c3 = 1; c3 < min(c0, c1); c3 += 1)
s1(c3, c0, c1);
if (c0 >= c1 + 1)
s0(c1, c0);
for (int c0 = 2; c0 <= n; c0 += 1)
for (int c1 = 1; c1 <= n; c1 += 1) {
- for (int c3 = 1; c3 <= min(c0 - 1, c1 - 1); c3 += 1)
+ for (int c3 = 1; c3 < min(c0, c1); c3 += 1)
s1(c3, c0, c1);
if (c0 >= c1 + 1)
s0(c1, c0);
-for (int c0 = 1; c0 <= n - 1; c0 += 4)
+for (int c0 = 1; c0 < n; c0 += 4)
for (int c1 = c0 + 1; c1 <= n; c1 += 6)
s0(c0, c1);
-for (int c0 = 1; c0 <= n - 1; c0 += 64)
+for (int c0 = 1; c0 < n; c0 += 64)
for (int c1 = c0 - 1; c1 <= n; c1 += 64)
for (int c2 = c0; c2 <= n; c2 += 1) {
for (int c3 = c0; c3 <= min(min(c2 - 1, c0 + 63), c1 + 62); c3 += 1)
-for (int c0 = 1; c0 <= n - 1; c0 += 64)
+for (int c0 = 1; c0 < n; c0 += 64)
for (int c1 = c0 - 1; c1 <= n; c1 += 64)
for (int c2 = c0; c2 <= n; c2 += 1) {
for (int c3 = c0; c3 <= min(min(c2 - 1, c0 + 63), c1 + 62); c3 += 1)
-for (int c0 = 1; c0 <= n - 1; c0 += 64)
+for (int c0 = 1; c0 < n; c0 += 64)
for (int c1 = c0 - 1; c1 <= n; c1 += 64)
for (int c2 = c0; c2 <= n; c2 += 1) {
for (int c3 = c0; c3 <= min(min(c2 - 1, c0 + 63), c1 + 62); c3 += 1)
-for (int c0 = 1; c0 <= n - 1; c0 += 64)
+for (int c0 = 1; c0 < n; c0 += 64)
for (int c1 = c0 - 1; c1 <= n; c1 += 64) {
for (int c2 = c0; c2 <= min(c0 + 63, n); c2 += 1) {
for (int c3 = c0; c3 <= min(c1 + 62, c2 - 1); c3 += 1)
for (int c0 = 1; c0 <= n; c0 += 1)
for (int c1 = 2; c1 <= n; c1 += 1) {
- for (int c3 = 1; c3 <= min(c0 - 1, c1 - 1); c3 += 1)
+ for (int c3 = 1; c3 < min(c0, c1); c3 += 1)
s1(c3, c1, c0);
if (c1 >= c0 + 1)
s0(c0, c1);
for (int c0 = 1; c0 <= n; c0 += 1)
for (int c1 = 2; c1 <= n; c1 += 1) {
- for (int c3 = 1; c3 <= min(c0 - 1, c1 - 1); c3 += 1)
+ for (int c3 = 1; c3 < min(c0, c1); c3 += 1)
s1(c3, c1, c0);
if (c1 >= c0 + 1)
s0(c0, c1);
if (n >= 2)
for (int c0 = 1; c0 <= n; c0 += 1) {
for (int c1 = 2; c1 <= c0; c1 += 1)
- for (int c3 = 1; c3 <= c1 - 1; c3 += 1)
+ for (int c3 = 1; c3 < c1; c3 += 1)
s1(c3, c1, c0);
for (int c1 = c0 + 1; c1 <= n; c1 += 1) {
- for (int c3 = 1; c3 <= c0 - 1; c3 += 1)
+ for (int c3 = 1; c3 < c0; c3 += 1)
s1(c3, c1, c0);
s0(c0, c1);
}
for (int c0 = 1; c0 <= morb; c0 += 1)
for (int c1 = 1; c1 <= np; c1 += 1) {
- for (int c2 = 1; c2 <= c1 - 1; c2 += 1)
+ for (int c2 = 1; c2 < c1; c2 += 1)
s1(c1, c2, c0);
s0(c1, c1, c0);
s1(c1, c1, c0);
s0(1, 1, 1, 0, 0);
s0(1, 1, 1, N - 1, 0);
} else
- for (int c3 = 0; c3 <= N - 1; c3 += 1)
+ for (int c3 = 0; c3 < N; c3 += 1)
s0(1, 0, 1, c3, 0);
for (int c1 = 0; c1 <= floord(T - 1, 1000); c1 += 1)
for (int c2 = 1000 * c1 + 1; c2 <= min(N + 1000 * c1 + 997, N + T - 3); c2 += 1)
{
- for (int c1 = 0; c1 <= N - 1; c1 += 1)
+ for (int c1 = 0; c1 < N; c1 += 1)
s0(1, c1, 1, 0, 0);
for (int c1 = 0; c1 <= floord(T - 1, 500); c1 += 1)
for (int c2 = 1000 * c1; c2 <= min(N + 1000 * c1 + 997, N + 2 * T - 3); c2 += 1) {
{
- for (int c1 = -1; c1 <= (T >= 1 ? T - 1 : -1); c1 += 1)
- for (int c2 = 0; c2 <= N - 1; c2 += 1)
+ for (int c1 = -1; c1 < (T >= 1 ? T : 0); c1 += 1)
+ for (int c2 = 0; c2 < N; c2 += 1)
if (c2 == 0 && c1 >= 0 && T >= c1 + 1) {
s0(1, c1, 0, 0, 0);
} else if (c2 + 1 == N && T >= c1 + 1 && c1 >= 0) {
}
if (T >= 1)
for (int c3 = -floord(T - 2, 4000); c3 <= floord(N - T - 2, 4000) + 1; c3 += 1)
- for (int c4 = max(2 * T + 4000 * c3 - 4001, T); c4 <= min(2 * T + 4000 * c3 - 2, N + T - 3); c4 += 1)
+ for (int c4 = max(2 * T + 4000 * c3 - 4001, T); c4 < min(2 * T + 4000 * c3 - 1, N + T - 2); c4 += 1)
s6(2, T - 1, 1, -T + c4 + 1, 1);
}
{
- for (int c1 = 0; c1 <= N - 1; c1 += 1)
+ for (int c1 = 0; c1 < N; c1 += 1)
s0(1, c1, 1, 0, 0);
- for (int c1 = 0; c1 <= T - 1; c1 += 1) {
- for (int c3 = 0; c3 <= N - 1; c3 += 1)
+ for (int c1 = 0; c1 < T; c1 += 1) {
+ for (int c3 = 0; c3 < N; c3 += 1)
s1(2, c1, 0, c3, 1);
- for (int c3 = 1; c3 <= N - 2; c3 += 1)
+ for (int c3 = 1; c3 < N - 1; c3 += 1)
s2(2, c1, 1, c3, 1);
}
}