>>> 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; >>> >>>