summaryrefslogtreecommitdiff
path: root/omega/examples/old_test/olda.oc-rt
blob: 52e3406942f6f179e61a2a005fb4c997a9e76ea1 (plain)
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
>>> T10:={[mp,mq,mi] -> [mi,mq,mp,0]};
>>> T20:={[mp,mq,mi] -> [mi,mp,mq,1]};
>>> 
>>> Symbolic np,morb;
>>> IS10 := {[mp,mq,mi]: 1 <= mp <= np && 1 <= mq <= mp && 1 <= mi <= morb};
>>> IS20 := IS10;
>>> 
>>> codegen T10:IS10,T20:IS20;
if (np >= 1) {
  for(t1 = 1; t1 <= morb; t1++) {
    for(t2 = 1; t2 <= np; t2++) {
      for(t3 = 1; t3 <= t2-1; t3++) {
        s2(t2,t3,t1);
      }
      s1(t2,t2,t1);
      s2(t2,t2,t1);
      for(t3 = t2+1; t3 <= np; t3++) {
        s1(t3,t2,t1);
      }
    }
  }
}

>>> codegen 2 T10:IS10,T20:IS20;
if (np >= 1) {
  for(t1 = 1; t1 <= morb; t1++) {
    s1(1,1,t1);
    s2(1,1,t1);
    for(t3 = 2; t3 <= np; t3++) {
      s1(t3,1,t1);
    }
    for(t2 = 2; t2 <= np-1; t2++) {
      for(t3 = 1; t3 <= t2-1; t3++) {
        s2(t2,t3,t1);
      }
      s1(t2,t2,t1);
      s2(t2,t2,t1);
      for(t3 = t2+1; t3 <= np; t3++) {
        s1(t3,t2,t1);
      }
    }
    for(t3 = 1; t3 <= np-1; t3++) {
      s2(np,t3,t1);
    }
    if (np >= 2) {
      s1(np,np,t1);
      s2(np,np,t1);
    }
  }
}