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
|
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]};
first := {[i,*,*,*] -> [i]};
first(T1(I1));
first(T2(I2));
first(T3(I3));
first(T4(I4));
first(T5(I5));
T1(I1);
T2(I2);
T3(I3);
T4(I4);
T5(I5);
codegen T1:I1,T2:I2;
codegen T1:I1,T2:I2,T3:I3,T4:I4,T5:I5;
|