>>> symbolic n; >>> >>> I1 := {[i,j] : 1 <= i < j <= n}; >>> I2 := {[i,j,k] : 1 <= i < j,k <= n}; >>> I3 := {[i] : 1 <= i <= n}; >>> I4 := {[i,j] : 1 <= j < i <= n}; >>> I5 := {[i] : 1 <= i <= n}; >>> >>> T1 := {[i,j] -> [i-1,0,n-i,n-j]}; >>> T2 := {[i,j,k] -> [i-1,1,n-i,n-j]}; >>> T3 := {[i] -> [0,0,0,i]}; >>> T4 := {[i,j] -> [j+n-1,0,i,j]}; >>> T5 := {[i] -> [i+n-2,1,0,0]}; >>> >>> T1(I1); {[In_1,0,n-In_1-1,In_4]: 0 <= In_1 && 2+In_1+In_4 <= n && 0 <= In_4} >>> T2(I2); {[In_1,1,n-In_1-1,In_4]: 0 <= In_1 && 2+In_1+In_4 <= n && 0 <= In_4} >>> T3(I3); {[0,0,0,i]: 1 <= i <= n} >>> T4(I4); {[In_1,0,i,In_1-n+1]: i <= n <= In_1 && 2+In_1 <= n+i} >>> T5(I5); {[In_1,1,0,0]: n-1 <= In_1 <= 2n-2} >>> codegen T1:I1,T2:I2; for(t1 = 0; t1 <= n-2; t1++) { for(t4 = 0; t4 <= -t1+n-2; t4++) { s1(t1+1,n-t4); } for(t4 = 0; t4 <= -t1+n-2; t4++) { s2(t1+1,n-t4,N/A); } } >>> codegen T1:I1,T2:I2,T3:I3,T4:I4,T5:I5; for(t1 = 0; t1 <= 2*n-2; t1++) { if (t1 <= 0) { for(t4 = 1; t4 <= n; t4++) { s3(t4); } } for(t4 = 0; t4 <= -t1+n-2; t4++) { s1(t1+1,n-t4); } if (t1 >= n) { for(t3 = -n+t1+2; t3 <= n; t3++) { s4(t3,t1-n+1); } } for(t4 = 0; t4 <= -t1+n-2; t4++) { s2(t1+1,n-t4,N/A); } if (t1 >= n-1) { s5(-n+t1+2); } } >>> codegen 2 T1:I1,T2:I2,T3:I3,T4:I4,T5:I5; for(t4 = 1; t4 <= n; t4++) { s3(t4); } for(t4 = 0; t4 <= n-2; t4++) { s1(1,-t4+n); } for(t4 = 0; t4 <= n-2; t4++) { s2(1,-t4+n,N/A); } if (n == 1) { s5(-n+2); } for(t1 = 1; t1 <= n-2; t1++) { for(t4 = 0; t4 <= -t1+n-2; t4++) { s1(t1+1,n-t4); } for(t4 = 0; t4 <= -t1+n-2; t4++) { s2(t1+1,n-t4,N/A); } } if (n >= 2) { s5(1); } for(t1 = max(n,1); t1 <= 2*n-2; t1++) { for(t3 = t1-n+2; t3 <= n; t3++) { s4(t3,t1-n+1); } s5(-n+t1+2); }