# program cholesau # # integer i, j, k,l,n # real a(10,10),s1(10,10),s2(10),s3(10,10,10),s4(10,10) # # do i=1,n # do j =1,i-1 # if (j.EQ.1) then # s1(i,j)=a(i,j)s4(j,i)**2 # else # s1(i,j)=s1(i,j-1)-s4(j,i)**2 # end if # end do # if (i .EQ. 1) then # s2(i)=sqrt(a(i,i)) # else # s2(i)=sqrt (s1(i,i-1)) # end if # do k=i+1,n # do l=1,i-1 # if (l .EQ. 1) then # s3(i,k,l)=a(k,i)-(s4(l,k)*s4(l,i)) # else # s3(i,k,l)=s3(i,k,l-1)-(s4(l,k)*s4(l,i)) # end if # end do # if (i .EQ.1) then # s4(i,k)=a(k,i)/s2(i) # else # s4(i,k)=s3(i,k,i-1)/s2(i) # end if # end do # end do # end # language: FORTRAN f # One parameter : n >= 10 1 3 # n 1 1 1 -10 # We want to set the parameter names... 1 # and 'n' is the name of the unique parameter n 8 # Number of statements: 8. 1 # {i, j | 1<=i<=n; 1<=j<=i-1; j=1} 5 5 # i j n 1 1 1 0 0 -1 # 1<=i 1 -1 0 1 0 # i<=n 1 0 1 0 -1 # 1<=j 1 1 -1 0 -1 # j<=i-1 0 0 1 0 -1 # j=1 0 0 0 2 # {i, j | 1<=i<=n; 1<=j<=i-1; j!=1} 5 5 # i j n 1 1 1 0 0 -1 # 1<=i 1 -1 0 1 0 # i<=n 1 0 1 0 -1 # 1<=j 1 1 -1 0 -1 # j<=i-1 1 0 1 0 -2 # j>=2 5 5 # i j n 1 1 1 0 0 -1 # 1<=i 1 -1 0 1 0 # i<=n 1 0 1 0 -1 # 1<=j 1 1 -1 0 -1 # j<=i-1 1 0 -1 0 0 # j<=0 0 0 0 1 # {i | 1<=i<=n; i=1} 3 4 # i n 1 1 1 0 -1 # 1<=i 1 -1 1 0 # i<=n 0 1 0 -1 # i=1 0 0 0 2 # {i | 1<=i<=n; i!=1} 3 4 # i n 1 1 1 0 -1 # 1<=i 1 -1 1 0 # i<=n 1 1 0 -2 # i>=2 3 4 # i n 1 1 1 0 -1 # 1<=i 1 -1 1 0 # i<=n 1 -1 0 0 # i<=0 0 0 0 1 # {i, j | 1<=i<=n; i+1<=j<=n; 1<=k<=i-1; k=1} 7 6 # i j k n 1 1 1 0 0 0 -1 # 1<=i 1 -1 0 0 1 0 # i<=n 1 -1 1 0 0 -1 # i+1<=j 1 0 -1 0 1 0 # j<=n 1 0 0 1 0 -1 # 1<=k 1 1 0 -1 0 -1 # k<=i-1 0 0 0 1 0 -1 # k=1 0 0 0 2 # {i, j | 1<=i<=n; i+1<=j<=n; 1<=k<=i-1; k!=1} 7 6 # i j k n 1 1 1 0 0 0 -1 # 1<=i 1 -1 0 0 1 0 # i<=n 1 -1 1 0 0 -1 # i+1<=j 1 0 -1 0 1 0 # j<=n 1 0 0 1 0 -1 # 1<=k 1 1 0 -1 0 -1 # k<=i-1 1 0 0 1 0 -2 # k>=2 7 6 # i j k n 1 1 1 0 0 0 -1 # 1<=i 1 -1 0 0 1 0 # i<=n 1 -1 1 0 0 -1 # i+1<=j 1 0 -1 0 1 0 # j<=n 1 0 0 1 0 -1 # 1<=k 1 1 0 -1 0 -1 # k<=i-1 1 0 0 -1 0 0 # k<=0 0 0 0 1 # {i, j | 1<=i<=n; i+1<=j<=n; i=1} 5 5 # i j n 1 1 1 0 0 -1 # 1<=i 1 -1 0 1 0 # i<=n 1 -1 1 0 -1 # i+1<=j 1 0 -1 1 0 # j<=n 0 1 0 0 -1 # i=1 0 0 0 2 # {i, j | 1<=i<=n; i+1<=j<=n; i!=1} 5 5 # i j n 1 1 1 0 0 -1 # 1<=i 1 -1 0 1 0 # i<=n 1 -1 1 0 -1 # i+1<=j 1 0 -1 1 0 # j<=n 1 1 0 0 -2 # i>=2 5 5 # i j n 1 1 1 0 0 -1 # 1<=i 1 -1 0 1 0 # i<=n 1 -1 1 0 -1 # i+1<=j 1 0 -1 1 0 # j<=n 1 -1 0 0 0 # i<=0 0 0 0 # We want to let CLooG set the iterator names. 0 8 # Scattering functions ALLOCATION + ORIGINAL SCHEDULING 7 12 # p c1 c2 c3 c4 c5 c6 i j n 1 0 1 0 0 0 0 0 0 -1 -1 0 1 # ins1 : i+j-1 0 0 1 0 0 0 0 0 -1 0 0 0 # i 0 0 0 1 0 0 0 0 0 0 0 0 # 0 0 0 0 0 1 0 0 0 0 -1 0 0 # j 0 0 0 0 0 1 0 0 0 0 0 0 # 0 0 0 0 0 0 0 1 0 0 0 0 0 # 0 0 0 0 0 0 0 0 1 0 0 0 0 # 0 7 12 # p c1 c2 c3 c4 c5 c6 i j n 1 0 1 0 0 0 0 0 0 -1 0 0 0 # ins2 : i 0 0 1 0 0 0 0 0 -1 0 0 0 # i 0 0 0 1 0 0 0 0 0 0 0 0 # 0 0 0 0 0 1 0 0 0 0 -1 0 0 # j 0 0 0 0 0 1 0 0 0 0 0 -1 # 1 0 0 0 0 0 0 1 0 0 0 0 0 # 0 0 0 0 0 0 0 0 1 0 0 0 0 # 0 7 11 # p c1 c2 c3 c4 c5 c6 i n 1 0 1 0 0 0 0 0 0 -1 0 1 # ins3 : i-1 0 0 1 0 0 0 0 0 -1 0 0 # i 0 0 0 1 0 0 0 0 0 0 -1 # 1 0 0 0 0 1 0 0 0 0 0 0 # 0 0 0 0 0 0 1 0 0 0 0 0 # 0 0 0 0 0 0 0 1 0 0 0 0 # 0 0 0 0 0 0 0 0 1 0 0 0 # 0 7 11 # p c1 c2 c3 c4 c5 c6 i n 1 0 1 0 0 0 0 0 0 0 0 0 # ins4 : 0 0 0 1 0 0 0 0 0 -1 0 0 # i 0 0 0 1 0 0 0 0 0 0 -2 # 2 0 0 0 0 1 0 0 0 0 0 0 # 0 0 0 0 0 0 1 0 0 0 0 0 # 0 0 0 0 0 0 0 1 0 0 0 0 # 0 0 0 0 0 0 0 0 1 0 0 0 # 0 7 13 # p c1 c2 c3 c4 c5 c6 i j k n 1 0 1 0 0 0 0 0 0 0 -1 -1 0 1 # ins 5 : j+k-1 0 0 1 0 0 0 0 0 -1 0 0 0 0 # i 0 0 0 1 0 0 0 0 0 0 0 0 -3 # 3 0 0 0 0 1 0 0 0 0 -1 0 0 0 # j 0 0 0 0 0 1 0 0 0 0 0 0 0 # 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 # k 0 0 0 0 0 0 0 1 0 0 0 0 0 # 0 7 13 # p c1 c2 c3 c4 c5 c6 i j k n 1 0 1 0 0 0 0 0 0 0 0 -1 0 0 # ins 6 : k 0 0 1 0 0 0 0 0 -1 0 0 0 0 # i 0 0 0 1 0 0 0 0 0 0 0 0 -3 # 3 0 0 0 0 1 0 0 0 0 -1 0 0 0 # j 0 0 0 0 0 1 0 0 0 0 0 0 0 # 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 # k 0 0 0 0 0 0 0 1 0 0 0 0 -1 # 1 7 12 # p c1 c2 c3 c4 c5 c6 i j n 1 0 1 0 0 0 0 0 0 -1 -1 0 0 # ins 7 : i+j 0 0 1 0 0 0 0 0 -1 0 0 0 # i 0 0 0 1 0 0 0 0 0 0 0 -3 # 3 0 0 0 0 1 0 0 0 0 -1 0 0 # j 0 0 0 0 0 1 0 0 0 0 0 -1 # 1 0 0 0 0 0 0 1 0 0 0 0 0 # 0 0 0 0 0 0 0 0 1 0 0 0 0 # 0 7 12 # p c1 c2 c3 c4 c5 c6 i j n 1 0 1 0 0 0 0 0 0 0 -1 0 0 # ins 8 : j 0 0 1 0 0 0 0 0 -1 0 0 0 # i 0 0 0 1 0 0 0 0 0 0 0 -3 # 3 0 0 0 0 1 0 0 0 0 -1 0 0 # j 0 0 0 0 0 1 0 0 0 0 0 -2 # 2 0 0 0 0 0 0 1 0 0 0 0 0 # 0 0 0 0 0 0 0 0 1 0 0 0 0 # 0 1 # We want to set the scatering dimension names. proc c1 c2 c3 c4 c5 c6