# 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); } } } #