1# program cholesau 2# 3# integer i, j, k,l,n 4# real a(10,10),s1(10,10),s2(10),s3(10,10,10),s4(10,10) 5# 6# do i=1,n 7# do j =1,i-1 8# if (j.EQ.1) then 9# s1(i,j)=a(i,j)s4(j,i)**2 10# else 11# s1(i,j)=s1(i,j-1)-s4(j,i)**2 12# end if 13# end do 14# if (i .EQ. 1) then 15# s2(i)=sqrt(a(i,i)) 16# else 17# s2(i)=sqrt (s1(i,i-1)) 18# end if 19# do k=i+1,n 20# do l=1,i-1 21# if (l .EQ. 1) then 22# s3(i,k,l)=a(k,i)-(s4(l,k)*s4(l,i)) 23# else 24# s3(i,k,l)=s3(i,k,l-1)-(s4(l,k)*s4(l,i)) 25# end if 26# end do 27# if (i .EQ.1) then 28# s4(i,k)=a(k,i)/s2(i) 29# else 30# s4(i,k)=s3(i,k,i-1)/s2(i) 31# end if 32# end do 33# end do 34# end 35 36 37# language: FORTRAN 38f 39 40# One parameter : n >= 10 411 3 42# n 1 431 1 -10 44# We want to set the parameter names... 451 46# and 'n' is the name of the unique parameter 47n 48 498 # Number of statements: 8. 50 511 52# {i, j | 1<=i<=n; 1<=j<=i-1; j=1} 535 5 54# i j n 1 551 1 0 0 -1 # 1<=i 561 -1 0 1 0 # i<=n 571 0 1 0 -1 # 1<=j 581 1 -1 0 -1 # j<=i-1 590 0 1 0 -1 # j=1 600 0 0 61 622 63# {i, j | 1<=i<=n; 1<=j<=i-1; j!=1} 645 5 65# i j n 1 661 1 0 0 -1 # 1<=i 671 -1 0 1 0 # i<=n 681 0 1 0 -1 # 1<=j 691 1 -1 0 -1 # j<=i-1 701 0 1 0 -2 # j>=2 715 5 72# i j n 1 731 1 0 0 -1 # 1<=i 741 -1 0 1 0 # i<=n 751 0 1 0 -1 # 1<=j 761 1 -1 0 -1 # j<=i-1 771 0 -1 0 0 # j<=0 780 0 0 79 801 81# {i | 1<=i<=n; i=1} 823 4 83# i n 1 841 1 0 -1 # 1<=i 851 -1 1 0 # i<=n 860 1 0 -1 # i=1 870 0 0 88 892 90# {i | 1<=i<=n; i!=1} 913 4 92# i n 1 931 1 0 -1 # 1<=i 941 -1 1 0 # i<=n 951 1 0 -2 # i>=2 963 4 97# i n 1 981 1 0 -1 # 1<=i 991 -1 1 0 # i<=n 1001 -1 0 0 # i<=0 1010 0 0 102 1031 104# {i, j | 1<=i<=n; i+1<=j<=n; 1<=k<=i-1; k=1} 1057 6 106# i j k n 1 1071 1 0 0 0 -1 # 1<=i 1081 -1 0 0 1 0 # i<=n 1091 -1 1 0 0 -1 # i+1<=j 1101 0 -1 0 1 0 # j<=n 1111 0 0 1 0 -1 # 1<=k 1121 1 0 -1 0 -1 # k<=i-1 1130 0 0 1 0 -1 # k=1 1140 0 0 115 1162 117# {i, j | 1<=i<=n; i+1<=j<=n; 1<=k<=i-1; k!=1} 1187 6 119# i j k n 1 1201 1 0 0 0 -1 # 1<=i 1211 -1 0 0 1 0 # i<=n 1221 -1 1 0 0 -1 # i+1<=j 1231 0 -1 0 1 0 # j<=n 1241 0 0 1 0 -1 # 1<=k 1251 1 0 -1 0 -1 # k<=i-1 1261 0 0 1 0 -2 # k>=2 1277 6 128# i j k n 1 1291 1 0 0 0 -1 # 1<=i 1301 -1 0 0 1 0 # i<=n 1311 -1 1 0 0 -1 # i+1<=j 1321 0 -1 0 1 0 # j<=n 1331 0 0 1 0 -1 # 1<=k 1341 1 0 -1 0 -1 # k<=i-1 1351 0 0 -1 0 0 # k<=0 1360 0 0 137 1381 139# {i, j | 1<=i<=n; i+1<=j<=n; i=1} 1405 5 141# i j n 1 1421 1 0 0 -1 # 1<=i 1431 -1 0 1 0 # i<=n 1441 -1 1 0 -1 # i+1<=j 1451 0 -1 1 0 # j<=n 1460 1 0 0 -1 # i=1 1470 0 0 148 1492 150# {i, j | 1<=i<=n; i+1<=j<=n; i!=1} 1515 5 152# i j n 1 1531 1 0 0 -1 # 1<=i 1541 -1 0 1 0 # i<=n 1551 -1 1 0 -1 # i+1<=j 1561 0 -1 1 0 # j<=n 1571 1 0 0 -2 # i>=2 1585 5 159# i j n 1 1601 1 0 0 -1 # 1<=i 1611 -1 0 1 0 # i<=n 1621 -1 1 0 -1 # i+1<=j 1631 0 -1 1 0 # j<=n 1641 -1 0 0 0 # i<=0 1650 0 0 166 167# We want to let CLooG set the iterator names. 1680 169 1708 171# Scattering functions ALLOCATION + ORIGINAL SCHEDULING 1727 12 173# p c1 c2 c3 c4 c5 c6 i j n 1 1740 1 0 0 0 0 0 0 -1 -1 0 1 # ins1 : i+j-1 1750 0 1 0 0 0 0 0 -1 0 0 0 # i 1760 0 0 1 0 0 0 0 0 0 0 0 # 0 1770 0 0 0 1 0 0 0 0 -1 0 0 # j 1780 0 0 0 0 1 0 0 0 0 0 0 # 0 1790 0 0 0 0 0 1 0 0 0 0 0 # 0 1800 0 0 0 0 0 0 1 0 0 0 0 # 0 181 1827 12 183# p c1 c2 c3 c4 c5 c6 i j n 1 1840 1 0 0 0 0 0 0 -1 0 0 0 # ins2 : i 1850 0 1 0 0 0 0 0 -1 0 0 0 # i 1860 0 0 1 0 0 0 0 0 0 0 0 # 0 1870 0 0 0 1 0 0 0 0 -1 0 0 # j 1880 0 0 0 0 1 0 0 0 0 0 -1 # 1 1890 0 0 0 0 0 1 0 0 0 0 0 # 0 1900 0 0 0 0 0 0 1 0 0 0 0 # 0 191 1927 11 193# p c1 c2 c3 c4 c5 c6 i n 1 1940 1 0 0 0 0 0 0 -1 0 1 # ins3 : i-1 1950 0 1 0 0 0 0 0 -1 0 0 # i 1960 0 0 1 0 0 0 0 0 0 -1 # 1 1970 0 0 0 1 0 0 0 0 0 0 # 0 1980 0 0 0 0 1 0 0 0 0 0 # 0 1990 0 0 0 0 0 1 0 0 0 0 # 0 2000 0 0 0 0 0 0 1 0 0 0 # 0 201 2027 11 203# p c1 c2 c3 c4 c5 c6 i n 1 2040 1 0 0 0 0 0 0 0 0 0 # ins4 : 0 2050 0 1 0 0 0 0 0 -1 0 0 # i 2060 0 0 1 0 0 0 0 0 0 -2 # 2 2070 0 0 0 1 0 0 0 0 0 0 # 0 2080 0 0 0 0 1 0 0 0 0 0 # 0 2090 0 0 0 0 0 1 0 0 0 0 # 0 2100 0 0 0 0 0 0 1 0 0 0 # 0 211 2127 13 213# p c1 c2 c3 c4 c5 c6 i j k n 1 2140 1 0 0 0 0 0 0 0 -1 -1 0 1 # ins 5 : j+k-1 2150 0 1 0 0 0 0 0 -1 0 0 0 0 # i 2160 0 0 1 0 0 0 0 0 0 0 0 -3 # 3 2170 0 0 0 1 0 0 0 0 -1 0 0 0 # j 2180 0 0 0 0 1 0 0 0 0 0 0 0 # 0 2190 0 0 0 0 0 1 0 0 0 -1 0 0 # k 2200 0 0 0 0 0 0 1 0 0 0 0 0 # 0 221 2227 13 223# p c1 c2 c3 c4 c5 c6 i j k n 1 2240 1 0 0 0 0 0 0 0 0 -1 0 0 # ins 6 : k 2250 0 1 0 0 0 0 0 -1 0 0 0 0 # i 2260 0 0 1 0 0 0 0 0 0 0 0 -3 # 3 2270 0 0 0 1 0 0 0 0 -1 0 0 0 # j 2280 0 0 0 0 1 0 0 0 0 0 0 0 # 0 2290 0 0 0 0 0 1 0 0 0 -1 0 0 # k 2300 0 0 0 0 0 0 1 0 0 0 0 -1 # 1 231 2327 12 233# p c1 c2 c3 c4 c5 c6 i j n 1 2340 1 0 0 0 0 0 0 -1 -1 0 0 # ins 7 : i+j 2350 0 1 0 0 0 0 0 -1 0 0 0 # i 2360 0 0 1 0 0 0 0 0 0 0 -3 # 3 2370 0 0 0 1 0 0 0 0 -1 0 0 # j 2380 0 0 0 0 1 0 0 0 0 0 -1 # 1 2390 0 0 0 0 0 1 0 0 0 0 0 # 0 2400 0 0 0 0 0 0 1 0 0 0 0 # 0 241 2427 12 243# p c1 c2 c3 c4 c5 c6 i j n 1 2440 1 0 0 0 0 0 0 0 -1 0 0 # ins 8 : j 2450 0 1 0 0 0 0 0 -1 0 0 0 # i 2460 0 0 1 0 0 0 0 0 0 0 -3 # 3 2470 0 0 0 1 0 0 0 0 -1 0 0 # j 2480 0 0 0 0 1 0 0 0 0 0 -2 # 2 2490 0 0 0 0 0 1 0 0 0 0 0 # 0 2500 0 0 0 0 0 0 1 0 0 0 0 # 0 251 2521 # We want to set the scatering dimension names. 253proc c1 c2 c3 c4 c5 c6 254 255