1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
|
>>> symbolic N3,M,N;
>>>
>>>
>>> s0:= {[t,i,j] : 0 <= j <= N-1 && 0 <= i <= M-1 && 0 <= t <= N3-1 };
>>> t0:={[t,i,j] -> [0,t,0,i,0,j,0]};
>>> s1:= {[t,j] : 0 <= j <= N-1 && 0 <= t <= N3-1};
>>>
>>> t1:={[t,j] -> [0,t,1,j,0,0,0]};
>>> s2:= {[t,i] : 0 <= i <= M-1 && 0 <= t <= N3-1};
>>> t2:={[t,i] -> [0,t,2,i,0,0,0]};
>>>
>>> s3:= {[t] : 0 <= t <= N3-1 };
>>>
>>> t3:={[t] -> [0,t,3,0,0,0,0]};
>>>
>>> s4:= {[t,i,j] : 0 <= j <= N-1 && i=M-1 && 0 <= t <= N3-1 };
>>> t4:={[t,i,j] -> [0,t,4,i,0,j,0] };
>>> s5:= {[t,j] : 0 <= j <= N-1 && 0 <= t <= N3-1 };
>>>
>>> t5:={[t,j] -> [0,t,8,j,0,0,0]};
>>>
>>> s6:= {[t,i] : 0 <= i <= M-1 && 0 <= t <= N3-1 };
>>>
>>> t6:={[t,i] -> [0,t,9,i,0,0,0]};
>>>
>>> s7:= {[t] : 0 <= t <= N3-1 };
>>>
>>> t7:={[t] -> [0,t,10,0,0,0,0]};
>>>
>>> s8:= {[t,i,j] : 0 <= j <= N-1 && M-2 <= i <= M-1 && 0 <= t <= N3-1 };
>>> t8:= {[t,i,j] -> [0,t,12,i,0,j,0]};
>>> s9:= {[t,j] : 0 <= j <= N-1 && 0 <= t <= N3-1 };
>>>
>>> t9:={[t,j] -> [0,t,15,j,0,0,0]};
>>> s10:= {[t,i] : 0 <= i <= M-1 && 0 <= t <= N3-1 };
>>> t10:={[t,i] -> [0,t,16,i,3,0,0]};
>>>
>>> s11:= {[t] : 0 <= t <= N3-1 };
>>>
>>> t11:={[t] -> [0,t,17,0,0,0,0]};
>>>
>>> s12:= {[t,i,j] : 0 <= j <= N-1 && 0 <= i <= 1 && 0 <= t <= N3-1 };
>>> t12:= {[t,i,j] -> [0,t,11,i,0,j,0]};
>>> s13:= {[t,i,j] : N-2 <= j <= N-1 && 2 <= i <= M-3 && 0 <= t <= N3-1 };
>>> t13:= {[t,i,j] -> [0,t,14,i,0,j,0]};
>>> s14:= {[t,i,j] : 0 <= j <= 1 && 2 <= i <= M-3 && 0 <= t <= N3-1 };
>>> t14:= {[t,i,j] -> [0,t,13,i,0,j,0]};
>>> s15:= {[t,i,j] : 2 <= j <= N-3 && 2 <= i <= M-3 && 0 <= t <= N3-1 };
>>> t15:={[t,i,j] -> [0,t,0,i+3,0,j+2,2]};
>>>
>>> s16:= {[t,i,j] : 0 <= j <= N-1 && i=0 && 0 <= t <= N3-1 };
>>> t16:={[t,i,j] -> [0,t,5,i,0,j,0] };
>>>
>>> s17:= {[t,i,j] : j =N-1 && 1<= i <=M-2 && 0 <= t <= N3-1 };
>>> t17:={[t,i,j] -> [0,t,6,i,0,j,0] };
>>>
>>> s18:= {[t,i,j] : j =0 && 1<= i <=M-2 && 0 <= t <= N3-1};
>>> t18:={[t,i,j] -> [0,t,7,i,0,j,0] };
>>>
>>> s19:= {[t,i,j] :1 <= j <= N-2 && 1 <= i <= M-2 && 0 <= t <= N3-1 };
>>> t19:={[t,i,j] -> [0,t,0,i+2,0,j+1,1]};
>>>
>>>
>>>
>>> codegen 2 t0:s0,t1:s1,t2:s2,t3:s3,t4:s4,t5:s5,t6:s6,t7:s7,t8:s8,t9:s9,t10:s10,t11:s11,t12:s12,t13:s13,t14:s14,t15:s15,t16:s16,t17:s17,t18:s18,t19:s19;
for(t2 = 0; t2 <= N3-1; t2++) {
if (N >= 1) {
for(t4 = 0; t4 <= min(2,M-1); t4++) {
for(t6 = 0; t6 <= N-1; t6++) {
s0(t2,t4,t6);
}
}
for(t4 = 3; t4 <= min(M-1,4); t4++) {
for(t6 = 0; t6 <= min(1,N-1); t6++) {
s0(t2,t4,t6);
}
for(t6 = 2; t6 <= min(3,N-1); t6++) {
s0(t2,t4,t6);
s19(t2,t4-2,t6-1);
}
for(t6 = 4; t6 <= N-1; t6++) {
s0(t2,t4,t6);
s19(t2,t4-2,t6-1);
}
}
for(t4 = 5; t4 <= M-1; t4++) {
for(t6 = 0; t6 <= min(1,N-1); t6++) {
s0(t2,t4,t6);
}
for(t6 = 2; t6 <= min(N-1,3); t6++) {
s0(t2,t4,t6);
s19(t2,t4-2,t6-1);
}
for(t6 = 4; t6 <= N-1; t6++) {
s0(t2,t4,t6);
s19(t2,t4-2,t6-1);
s15(t2,t4-3,t6-2);
}
}
}
if (M >= 3) {
if (M >= 5) {
for(t6 = 2; t6 <= min(N-1,3); t6++) {
s19(t2,M-2,t6-1);
}
for(t6 = 4; t6 <= N-1; t6++) {
s19(t2,M-2,t6-1);
s15(t2,M-3,t6-2);
}
}
else {
for(t6 = 2; t6 <= N-1; t6++) {
s19(t2,M-2,t6-1);
}
}
}
for(t4 = 0; t4 <= N-1; t4++) {
s1(t2,t4);
}
for(t4 = 0; t4 <= M-1; t4++) {
s2(t2,t4);
}
s3(t2);
for(t6 = 0; t6 <= N-1; t6++) {
s4(t2,M-1,t6);
}
for(t6 = 0; t6 <= N-1; t6++) {
s16(t2,0,t6);
}
for(t4 = 1; t4 <= M-2; t4++) {
s17(t2,t4,N-1);
}
for(t4 = 1; t4 <= M-2; t4++) {
s18(t2,t4,0);
}
for(t4 = 0; t4 <= N-1; t4++) {
s5(t2,t4);
}
for(t4 = 0; t4 <= M-1; t4++) {
s6(t2,t4);
}
s7(t2);
if (N >= 1) {
for(t4 = 0; t4 <= 1; t4++) {
for(t6 = 0; t6 <= N-1; t6++) {
s12(t2,t4,t6);
}
}
for(t4 = M-2; t4 <= M-1; t4++) {
for(t6 = 0; t6 <= N-1; t6++) {
s8(t2,t4,t6);
}
}
}
for(t4 = 2; t4 <= M-3; t4++) {
for(t6 = 0; t6 <= 1; t6++) {
s14(t2,t4,t6);
}
}
for(t4 = 2; t4 <= M-3; t4++) {
for(t6 = N-2; t6 <= N-1; t6++) {
s13(t2,t4,t6);
}
}
for(t4 = 0; t4 <= N-1; t4++) {
s9(t2,t4);
}
for(t4 = 0; t4 <= M-1; t4++) {
s10(t2,t4);
}
s11(t2);
}
>>> #codegen 2 s0,t1:s1,t2:s2,t3:s3,t4:s4,t5:s5,t6:s6,t7:s7,t8:s8,t9:s9,t10:s10,t11:s11,t12:s12,t13:s13,t14:s14,t15:s15,t16:s16,t17:s17,t18:s18,t19:s19;
>>>
>>>
|