summaryrefslogtreecommitdiff
path: root/omega/examples/old_test/p.delft.oc-rt
blob: d59a886d88bbf8e70d22d0b8cbd8820dfe972319 (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
# Omega Calculator v1.2 (based on Omega Library 1.2, August, 2000):
# # Generate local code for this HPF code fragment
# # !HPF$ template T(0:150,0:150)
# # !HPF$ align X(I,J) with T(3*I,3*J)
# A := { [i,j] -> [3i,3j] };
# 
# # !HPF$ processors P(0:3, 0:3)
# # !HPF$ distribute
# # !HPF$  T(cyclic(4), cyclic(4)) onto P
# D := { [t1,t2] -> [p1,p2,c1,c2,l1,l2] :
# 		t1 = 16c1+4p1+l1 
# 		&& t2 = 16c2+4p2+l2 
# 		&& 0 <= p1,p2 <= 3
# 		&& 0 <= l1,l2 <= 3 };
# 
# #      do I = 0, 14
# #         Y(I,I) = 1.0
# #      enddo
# I := { [i] : 0 <= i <= 14 };
# 
# X := { [i] -> [i,i] };
# 
# R := D(A(X(I)));
# 
# R;

{[p1,p1,c1,c1,l1,l1]: Exists ( alpha : p1+l1+c1 = 3alpha && 0 <= p1 <= -4c1+10, 3 && 0 <= l1 <= 3 && 0 <= c1)}

# 
# symbolic P1,P2;
# 
# selectLocal := {[P1,P2,c1,c2,l1,l2] -> [c1,c2,l1,l2]};
# 
# codegen selectLocal(R);
if (P1 == P2 && P1 >= 0 && P1 <= 3) {
  for(t1 = 0; t1 <= min(-P1+4,2); t1++) {
    for(t3 = intMod((-P1-t1),3); t3 <= 3; t3 += 3) {
      s1(t1,t1,t3,t3);
    }
  }
}

#