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
|
>>> Symbolic a,b;
>>>
>>> IS1 := {[i] : a <= i <= b };
>>> IS2 := {[i] : a+10 <= i <= b+10 };
>>> IS3 := {[i] : a+20 <= i <= b+20 };
>>>
>>> T1 := {[i] -> [i,0]};
>>> T2 := {[i] -> [i,1]};
>>> T3 := {[i] -> [i,2]};
>>>
>>> codegen T1:IS1,T2:IS2,T3:IS3;
for(t1 = a; t1 <= min(b,a+9); t1++) {
s1(t1);
}
for(t1 = a+10; t1 <= min(b,a+19); t1++) {
s1(t1);
s2(t1);
}
for(t1 = a+20; t1 <= b; t1++) {
s1(t1);
s2(t1);
s3(t1);
}
for(t1 = max(a+10,b+1); t1 <= min(b+10,a+19); t1++) {
s2(t1);
}
for(t1 = max(a+20,b+1); t1 <= b+10; t1++) {
s2(t1);
s3(t1);
}
for(t1 = max(a+20,b+11); t1 <= b+20; t1++) {
s3(t1);
}
>>> codegen 2 T1:IS1,T2:IS2,T3:IS3;
for(t1 = a; t1 <= min(b,a+9); t1++) {
s1(t1);
}
for(t1 = a+10; t1 <= min(b,a+19); t1++) {
s1(t1);
s2(t1);
}
for(t1 = a+20; t1 <= b; t1++) {
s1(t1);
s2(t1);
s3(t1);
}
for(t1 = max(a+10,b+1); t1 <= min(b+10,a+19); t1++) {
s2(t1);
}
for(t1 = max(a+20,b+1); t1 <= b+10; t1++) {
s2(t1);
s3(t1);
}
for(t1 = max(a+20,b+11); t1 <= b+20; t1++) {
s3(t1);
}
|