# A SCoP from matmul (matmul.B.main.scop1.cloog) to check normalization # # Options: # cloog -f 8 -l 9 vasilache.cloog # # Correct: # S1; # S2; # for (p0=0;p0<=N-1;p0++) { # for (p1=0;p1<=N-1;p1++) { # S4(i = p0,j = p1); # S5(i = p0,j = p1); # } # } # for (p0=0;p0<=N-1;p0++) { # for (p1=0;p1<=N-1;p1++) { # for (p2=0;p2<=floord(N-1,32);p2++) { # S7(i = p0,j = p1,k = p2,l = 32*p2); # for (p3=32*p2+1;p3<=min(N-1,32*p2+31);p3++) { # S6(i = p0,j = p1,k = p2,l = p3-1); # S7(i = p0,j = p1,k = p2,l = p3); # } # if (p2 >= ceild(N-32,32)) { # S6(i = p0,j = p1,k = p2,l = N-1); # } # if (p2 <= floord(N-33,32)) { # S6(i = p0,j = p1,k = p2,l = 32*p2+31); # } # } # } # } # S8; # # # NOT correct: # S1 ; # S2 ; # for (p1=0;p1<=N-1;p1++) { # for (p3=0;p3<=N-1;p3++) { # S4(i = p1,j = p3) ; # S5(i = p1,j = p3) ; # } # } # for (p1=0;p1<=N-1;p1++) { # for (p3=0;p3<=N-1;p3++) { # for (p5=0;p5<=floord(N-1,32);p5++) { # if (p5 <= 0) { # S7(i = p1,j = p3,k = p5,l = 0) ; # } # p7 = 32*p5 ; # l = 32*p5 ; # S7(i = p1,j = p3,k = p5) ; # for (p7=max(32*p5+1,1);p7<=min(32*p5+31,N-1);p7++) { # l = p7-1 ; # S6(i = p1,j = p3,k = p5) ; # S7(i = p1,j = p3,k = p5,l = p7) ; # } # if (p5 >= ceild(N-32,32)) { # l = N-1 ; # S6(i = p1,j = p3,k = p5) ; # } # p7 = 32*p5+32 ; # l = 32*p5+31 ; # S6(i = p1,j = p3,k = p5) ; # } # } # } # S8 ; c # language is C # ---------- CONTEXT ---------- 1 # Context (constraints on parameters) 2 4 # 1 lines, 4 columns 1 -1 0 3 1 0 1 -100 0 # Automatically find parameter names # ---------- STATEMENTS ---------- 8 # Number of statements 1 # Statement has a non resticted domain 1 4 1 0 0 0 0 0 0 1 # Statement has a non resticted domain 1 4 1 0 0 0 0 0 0 1 # Statement has 1 domain 1 4 1 1 0 -79 0 0 0 1 # Statement has 1 domain 4 6 1 1 0 0 0 0 1 -1 0 0 1 -1 1 0 1 0 0 0 1 0 -1 0 1 -1 0 0 0 1 # Statement has 1 domain 4 6 1 1 0 0 0 0 1 -1 0 0 1 -1 1 0 1 0 0 0 1 0 -1 0 1 -1 0 0 0 1 # Statement has 1 domain 8 8 1 1 0 0 0 0 0 0 1 -1 0 0 0 0 1 -1 1 0 1 0 0 0 0 0 1 0 -1 0 0 0 1 -1 1 0 0 0 1 0 0 0 1 0 0 0 -1 0 1 -1 1 0 0 -32 1 0 0 0 1 0 0 32 -1 0 0 31 0 0 0 1 # Statement has 1 domain 8 8 1 1 0 0 0 0 0 0 1 -1 0 0 0 0 1 -1 1 0 1 0 0 0 0 0 1 0 -1 0 0 0 1 -1 1 0 0 0 1 0 0 0 1 0 0 0 -1 0 1 -1 1 0 0 -32 1 0 0 0 1 0 0 32 -1 0 0 31 0 0 0 1 # Statement has a non resticted domain 1 4 1 0 0 0 0 0 0 0 # Automatically find iterator names. # ---------- SCATTERING FUNCTIONS ---------- 8 # Number of scattering functions 9 13 # p0 p1 p2 p3 p4 p5 p6 p7 p8 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 # Beta 3 0 0 0 0 0 0 0 0 1 0 0 0 0 # Alpha & Gamma 4 0 0 0 0 0 0 0 0 0 1 0 0 0 # Beta 4 9 13 # p0 p1 p2 p3 p4 p5 p6 p7 p8 0 1 0 0 0 0 0 0 0 0 0 0 -1 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 # Beta 3 0 0 0 0 0 0 0 0 1 0 0 0 0 # Alpha & Gamma 4 0 0 0 0 0 0 0 0 0 1 0 0 0 # Beta 4 9 13 # p0 p1 p2 p3 p4 p5 p6 p7 p8 0 1 0 0 0 0 0 0 0 0 0 0 -2 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 # Beta 3 0 0 0 0 0 0 0 0 1 0 0 0 0 # Alpha & Gamma 4 0 0 0 0 0 0 0 0 0 1 0 0 0 # Beta 4 9 15 # p0 p1 p2 p3 p4 p5 p6 p7 p8 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -3 # Beta 0 0 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 # Alpha & Gamma 4 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 # Beta 4 9 15 # p0 p1 p2 p3 p4 p5 p6 p7 p8 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -3 # Beta 0 0 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 -1 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 # Alpha & Gamma 4 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 # Beta 4 9 17 # p0 p1 p2 p3 p4 p5 p6 p7 p8 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -4 # Beta 0 0 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 -1 # Alpha & Gamma 4 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 4 9 17 # p0 p1 p2 p3 p4 p5 p6 p7 p8 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -4 # Beta 0 0 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 # Alpha & Gamma 4 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 # Beta 4 9 13 # p0 p1 p2 p3 p4 p5 p6 p7 p8 0 1 0 0 0 0 0 0 0 0 0 0 -5 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 # Beta 3 0 0 0 0 0 0 0 0 1 0 0 0 0 # Alpha & Gamma 4 0 0 0 0 0 0 0 0 0 1 0 0 0 # Beta 4 1 # Set the scattering parameter names. p0 p1 p2 p3 p4 p5 p6 p7 p8