>>> symbolic n; >>> I1 := {[k,i] : 1 <= k < i <= n }; >>> I2 := {[k,i,j] : 1 <= k < i,j <= n }; >>> T1 := {[k,i] -> [i,k,1,0]}; >>> T2 := {[k,i,j] -> [i,j,0,k]}; >>> T1(I1); {[i,k,1,0]: 1 <= k < i <= n} >>> T2(I2); {[i,j,0,k]: 1 <= k < i,j <= n} >>> codegen T1:I1,T2:I2; for(t1 = 2; t1 <= n; t1++) { for(t2 = 1; t2 <= n; t2++) { for(t4 = 1; t4 <= min(t1-1,t2-1); t4++) { s2(t4,t1,t2); } if (t2 <= t1-1) { s1(t2,t1); } } } >>> codegen 2 T1:I1,T2:I2; for(t1 = 2; t1 <= n; t1++) { s1(1,t1); for(t2 = 2; t2 <= t1-1; t2++) { for(t4 = 1; t4 <= t2-1; t4++) { s2(t4,t1,t2); } s1(t2,t1); } for(t2 = t1; t2 <= n; t2++) { for(t4 = 1; t4 <= t1-1; t4++) { s2(t4,t1,t2); } } }