diff options
Diffstat (limited to 'test/published/Web')
-rw-r--r-- | test/published/Web/web1.cloog | 81 | ||||
-rw-r--r-- | test/published/Web/web2.cloog | 85 | ||||
-rw-r--r-- | test/published/Web/web3.cloog | 73 | ||||
-rw-r--r-- | test/published/Web/web4.cloog | 62 | ||||
-rw-r--r-- | test/published/Web/web5.cloog | 261 | ||||
-rw-r--r-- | test/published/Web/web6.cloog | 269 | ||||
-rw-r--r-- | test/published/Web/web7.cloog | 30 |
7 files changed, 0 insertions, 861 deletions
diff --git a/test/published/Web/web1.cloog b/test/published/Web/web1.cloog deleted file mode 100644 index 060a059..0000000 --- a/test/published/Web/web1.cloog +++ /dev/null @@ -1,81 +0,0 @@ -# CLooG example file #1. -# Please read this example carefully to understand how the input file is made. -# Do not worry, it is quite easy ! -# -################################################################################ -# The problem here is to generate the scanning code for the integral points # -# inside a 2-dimensional polyhedron (geometrically a square). # -# | # -# j^ | # -# | i>=2 | # -# | | i<=n | # -# | | | | # -# n-+-*****--j<=n | for (i=2;i<=n;i++) { # -# | ***** | for (j=2;j<=n;j++) { # -# | ***** ==> S1 ; # -# | ***** | } # -# 2-+-*****--j>=2 | } # -# | | | | # -# 0-+-+---+--->i | # -# | | | | # -# 0 2 n | # -# | # -# Context : n>=2 | # -# System : 2<=i<=n | # -# 2<=j<=m | # -# | # -################################################################################ -# -# Comments begin with a # and finish with the line. -# Typically, a ClooG input file has 7 points: - -# 1. First we need to set the output language, here: C. You can also prefer to -# set f for FORTRAN. -c - -# 2. Second, we have to give the constraints on parameters (i.e. unknown values -# that are constant during scanning) here {n | n>=2}. The constraints are -# described using a matrix. First we give the row and column numbers. Then -# we give the constraints themselves. The first number is 0 if the constraint -# is an equality =0, it is 1 if the constraint is an inequality >=0. The -# other entries are the coefficients of the parameters and then the scalar. -1 3 # 1 row, 3 columns -# n 1 -1 1 -2 # this means 1*n + -2*1 >= 0, i.e. n>=2 - -# 3. Third, let us set the parameter names. We just put 0 if we want to let -# CLooG decide names, 1 otherwise. If we put 1, at the next line we give the -# space-separated parameter list (here we set only n). -1 -n - -# 4. Fourth we give the number of polyhedra to scan, here 1. -1 - -# 5. Fifth, we give the list of polyhedra. Each polyhedron is described using -# three parts: -# 5.1 Each co-called polyhedron may be actually an union of disjoint -# polyhedra, so we begin with precising the number of disjoint polyhedra -# of the union (here 1, there is only one part). -# 5.2 The constraint matrix, in the same way as in part 2. First column is -# the equality/inequality tag, then the variable coefficients, then the -# parameter coefficients, then the scalar. Here we want the following -# domain: {i, j | 2<=i<=n 2<=j<=n}. -# 5.3 A line with three zeroes, this is historical. -1 # 1 the union has only one element -4 5 # 4 rows, 5 columns -# i j n 1 -1 1 0 0 -2 # i-2>=0, i.e. i>=2 -1 -1 0 1 0 # -i+n>=0, i.e. i<=n -1 0 1 0 -2 # j-2>=0, i.e. j>=2 -1 0 -1 1 0 # -j+n>=0, i.e. j<=n -0 0 0 # 3 zeroes ! - -# 6. Sixth, let us set the iterator names. We just put 0 if we want to let CLooG -# decide names, 1 otherwise. If we put 1, at the next line we give the -# space-separated iterator list (here we let CLooG do). -0 - -# 7. Seventh, let us define a scanning order. But let us study it later and just -# put 0: CLoog can scan the polyhedra in the way it wants ! -0 diff --git a/test/published/Web/web2.cloog b/test/published/Web/web2.cloog deleted file mode 100644 index 7293f90..0000000 --- a/test/published/Web/web2.cloog +++ /dev/null @@ -1,85 +0,0 @@ -# CLooG example file #2. -# Please read the first example which is fully documented to understand the -# six first parts of the input file. This example explains the seventh one. -# -################################################################################ -# The problem here is to impose a scanning order for the polyhedron of the # -# first example : the points are ordered by i+j values (a well known skewing). # -# | | # -# j^ | i^ i<=c1-2 | # -# | i>=2 | | c1>=4 / c1<=2*n | # -# | | i<=n | | | / | i>=c1-n | # -# | | | | | | / |/ | # -# n-+-*****--j<=n | n-+---+---*****--i<=n | for (c1=4;c1<=2*n;c1++){ # -# | ***** | | | *****| | for (i=max(c1-n,2); # -# | ***** ==> | | ***** | ==> i<=min(c1-2,n);i++){ # -# | ***** | | |***** | | j = c1-i ; # -# 2-+-*****--j>=2 | 2-+---*****---+--i>=2 | S1 ; # -# | | | | | /| / | | } # -# 0-+-+---+--->i | 0-+---+-------+--->c1 | } # -# | | | | | | | | # -# 0 2 n | 0 4 2n | # -# | | # -# Context : n>=2 | Scattering function: | # -# System : 2<=i<=n | c1=i+j | # -# 2<=j<=m | | # -# | | # -################################################################################ -# -# 1. Language: C -c - -# 2. Parameters {n | n>= 2} -1 3 -# n 1 -1 1 -2 - -# 3. We set manually the parameter name: n -1 -n - -# 4. Number of polyhedra: -1 - -# 5. The polyhedron description: -1 -# {j, j | 2<=i<=n 2<=j<=n} -4 5 -# i j n 1 -1 1 0 0 -2 # i>=2 -1 -1 0 1 0 # i<=n -1 0 1 0 -2 # j>=2 -1 0 -1 1 0 # j<=n -0 0 0 # 3 zeroes ! - -# 6. We let CLooG choose the iterator names -0 - -# 7. Seventh, we define the scanning order. In CLooG speaking, we talk about -# scattering functions (a shortcut for scheduling, allocation etc.). It may -# be useful to read the CLooG documentation about this point since it is -# not trivial if you are not comfortable with transformations in the polytope -# model. We describe them in three parts: -# 7.1 The number of scattering functions. It must be either 0 (in this case -# there is no particular scanning order and CLooG will do what it wants) -# or the number of polyhedra (set in part 4.). -# 7.2 The list of scattering functions. Each scattering function is a -# constraint matrix (as those that describe context or polyhedra) but -# made exclusively of equalities. They equate each new scattering -# dimension with an affine expression of the original polyhedron -# dimensions, the parameters and the scalar. CLooG will only respect the -# ordering given by the scattering dimensions. If there are several -# scattering dimensions, CLooG will use the lexicographic ordering (the -# first dimension leads, then the second one and so on). Every scattering -# functions must have the same number of scattering dimensions. -# Here we have c1=i+j, a one-dimensional scattering. It means that the -# points of the original polyhedron with the same i+j value will be -# scanned during the same iteration of the outer loop. -# 7.3 We set the scattering dimension names. We just put 0 if we want to let -# CLooG decide names, 1 otherwise. If we put 1, at the next line we give -# the space-separated parameter list. -1 # One scattering function (since there is only one polyhedron) -1 6 # The scattering function is a matrix of one row and six columns -# c1 i j n 1 -0 1 -1 -1 0 0 # c1 = i+j -0 # We let CLooG choose the scattering dimension names diff --git a/test/published/Web/web3.cloog b/test/published/Web/web3.cloog deleted file mode 100644 index e719a5c..0000000 --- a/test/published/Web/web3.cloog +++ /dev/null @@ -1,73 +0,0 @@ -# CLooG example file #3. -# Please read the first example which is fully documented to understand the -# different parts of this input file. -# -################################################################################ -# The problem here is to generate the scanning code for the integral points # -# inside two different 2-dimensional polyhedra (geometrically two rectangles). # -# | # -# j^ | # -# | (P1)i>=2 | for (i=2;i<=p-1;i++) # -# Context: | | (P2)i>=m | | for (j=2;j<=n;j++) # -# m>n>p>2 | | | (P1)i<=n | | | S1 ; # -# | | | | (P2)i<=p | # -# P1 System: | | | | | | for (i=p;i<=n;i++) # -# 2<=i<=n m-+-+-@@@@@--(P2)j<=p | | for (j=2;j<=p-1;j++) # -# 2<=j<=n | | @@@@@ ==> | | S1 ; # -# n-+-**###@@--(P1)j<=n | | for (j=p;j<=n;j++) # -# P2 System: | **###@@ | | | S1 ; # -# p<=i<=m p-+-**###@@--(P2)j>=m | | | S2 ; # -# p<=j<=m | ***** | | | for (j=n+1;j<=m;j++) # -# 2-+-*****-+--(P1)j>=2 | | | S2 ; # -# *:P1 alone | | | | | | # -# @:P2 alone 0-+-+-+-+-+-->i | for (i=n+1;i<=m;i++) # -# #:P1 and P2 | | | | | | | for (j=p;j<=m;j++) # -# 0 2 p n m | | | S2 ; # -# | # -################################################################################ - -# 1. Language: C -c - -# 2. Parameters {m,n,p | m>n>p>2} -3 5 # 3 rows and 5 columns -# m n p 1 -1 0 0 1 -3 # p>=3 (i.e. p>2) -1 0 1 -1 -1 # n>=p+1 (i.e. n>p) -1 1 -1 0 -1 # m>=n+1 (i.e. m>n) - -# 3. We set manually the parameter name: m, n and p -1 -m n p - -# 4. Number of polyhedra: -2 - -# 5. The polyhedron description: -# - the first one -1 -# {i, j | 2<=i<=n 2<=j<=n} -4 7 # 4 rows, 7 columns -# i j m n p 1 -1 1 0 0 0 0 -2 # i>=2 -1 -1 0 0 1 0 0 # i<=n -1 0 1 0 0 0 -2 # j>=2 -1 0 -1 0 1 0 0 # j<=n -0 0 0 # 3 zeroes ! - -# - the second one -1 -# {j, j | p<=i<=m p<=j<=m} -4 7 # 4 rows, 7 columns -# i j m n p 1 -1 1 0 0 0 -1 0 # i>=p -1 -1 0 1 0 0 0 # i<=m -1 0 1 0 0 -1 0 # j>=p -1 0 -1 1 0 0 0 # j<=m -0 0 0 # 3 zeroes ! - -# 6. We let CLooG choose the iterator names -0 - -# 7. Let CLoog scan the polyhedra in the way it wants. -0 diff --git a/test/published/Web/web4.cloog b/test/published/Web/web4.cloog deleted file mode 100644 index cf71f20..0000000 --- a/test/published/Web/web4.cloog +++ /dev/null @@ -1,62 +0,0 @@ -# CLooG example file #4. -# Please read the first example which is fully documented to understand the -# different parts of this input file. -# -################################################################################ -# The problem here is to scan a single non-rectangular polyhedron. # -# | # -# j^ i>=2 | # -# | | j<=n+2-i | # -# | |\ | i<=n | # -# | | \ | | # -# m-+-****---+-j<=m | for (i=2;i<=n;i++) { # -# | ***** | | for (j=2;j<=min(m,-i+n+2);j++) { # -# | ****** | ==> S1 ; # -# | *******| | } # -# 2-+-********-j>=2 | } # -# | | |\ | # -# 0-+-+------+--->i | # -# | | | | # -# 0 2 n | # -# Context : n>=2 | # -# m>=2 | # -# System : 2<=i<=n | # -# 2<=j<=m | # -# j<=n+2-i | # -# | # -################################################################################ -# -# 1. Language: C -c - -# 2. Parameters {n,m | n>=2 m>=2} -2 4 # 2 rows ans 4 columns -# m n 1 -1 1 0 -2 # m>=2 -1 0 1 -2 # n>=2 - -# 3. We set manually the parameter name: m, n -1 -m n - -# 4. Number of polyhedra: -1 - -# 5. The polyhedron description: -1 -# {i, j | 2<=i<=n 2<=j<=m n+2-i-j>=0} -5 6 # 5 rows and 6 columns -# i j m n 1 -1 1 0 0 0 -2 # i>=2 -1 -1 0 0 1 0 # i<=n -1 0 1 0 0 -2 # j>=2 -1 0 -1 1 0 0 # j<=m -1 -1 -1 0 1 2 # j<=n+2-i -0 0 0 # 3 zeroes ! - -# 6. We set manually the iterator names: i, j -1 -i j - -# 7. Let CLoog scan the polyhedron in the way it wants. -0 diff --git a/test/published/Web/web5.cloog b/test/published/Web/web5.cloog deleted file mode 100644 index 381339b..0000000 --- a/test/published/Web/web5.cloog +++ /dev/null @@ -1,261 +0,0 @@ -# CLooG example file #5. -# Please read the first and second examples which are fully documented to -# understand the different parts of the input file. -# -################################################################################ -# do i=1,n The problem here is to regenerate a # -# | do j =1,i-1 real-life Cholesau kernel according to # -# | | if (j.EQ.1) then the original scheduling (see the user's # -#S1| | | s1(i,j)=a(i,j)s4(j,i)**2 manual for more details). The original # -# | | else program is given on the left. For each # -#S2| | | s1(i,j)=s1(i,j-1)-s4(j,i)**2 statement the original schedule is: # -# | if (i .EQ. 1) then T_S1(i,j) =(i,0,j,0,0,0) # -#S3| | s2(i)=sqrt(a(i,i)) T_S2(i,j) =(i,0,j,1,0,0) # -# | else T_S3(i) =(i,1,0,0,0,0) # -#S4| | s2(i)=sqrt (s1(i,i-1)) T_S4(i) =(i,2,0,0,0,0) # -# | do k=i+1,n T_S5(i,j,k)=(i,3,j,0,k,0) # -# | | do l=1,i-1 T_S6(i,j,k)=(i,3,j,0,k,1) # -# | | | if (l .EQ. 1) then T_S7(i,j) =(i,3,j,1,0,0) # -#S5| | | | s3(i,k,l)=a(k,i)-(s4(l,k)*s4(l,i)) T_S8(i,j) =(i,3,j,2,0,0) # -# | | | else # -#S6| | | | s3(i,k,l)=s3(i,k,l-1)-(s4(l,k)*s4(l,i)) # -# | | if (i .EQ.1) then # -#S7| | | s4(i,k)=a(k,i)/s2(i) Note that in the generated code there # -# | | else are no more conditions. # -#S8| | | s4(i,k)=s3(i,k,i-1)/s2(i) # -################################################################################ -# -#------------------------------------CONTEXT------------------------------------ - -# 1. language: FORTRAN -f - -# 2. Parameters {n | n>=10} -1 3 -# n 1 -1 1 -10 # n>=10 - -# 3. We set manually the parameter name: n -1 -n - -#-----------------------------------POLYHEDRA----------------------------------- - -# 4. Number of polyhedra: -8 - -# Polyhedron #1 -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 # 3 zeroes ! - -# Polyhedron #2 -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 # 3 zeroes ! - -# Polyhedron #3 -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 # 3 zeroes ! - -# Polyhedron #4 -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 # 3 zeroes ! - -# Polyhedron #5 -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 # 3 zeroes ! - -# Polyhedron #6 -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 # 3 zeroes ! - -# Polyhedron #7 -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 # 3 zeroes ! - -# Polyhedron #8 -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 # 3 zeroes ! - -# 6. We let CLooG choose the iterator names -0 - -#----------------------------------SCATTERING----------------------------------- - -# 7. Scattering functions ORIGINAL SCHEDULING -8 - -# Scattering function for polyhedron #1: T_S1(i,j) =(i,0,j,0,0,0) -6 11 -# c1 c2 c3 c4 c5 c6 i j n 1 -0 1 0 0 0 0 0 -1 0 0 0 # i -0 0 1 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 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 - -# Scattering function for polyhedron #2: T_S2(i,j) =(i,0,j,1,0,0) -6 11 -# c1 c2 c3 c4 c5 c6 i j n 1 -0 1 0 0 0 0 0 -1 0 0 0 # i -0 0 1 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 1 0 0 0 0 0 -1 # 1 -0 0 0 0 0 1 0 0 0 0 0 # 0 -0 0 0 0 0 0 1 0 0 0 0 # 0 - -# Scattering function for polyhedron #3: T_S3(i) =(i,1,0,0,0,0) -6 10 -# c1 c2 c3 c4 c5 c6 i n 1 -0 1 0 0 0 0 0 -1 0 0 # i -0 0 1 0 0 0 0 0 0 -1 # 1 -0 0 0 1 0 0 0 0 0 0 # 0 -0 0 0 0 1 0 0 0 0 0 # 0 -0 0 0 0 0 1 0 0 0 0 # 0 -0 0 0 0 0 0 1 0 0 0 # 0 - -# Scattering function for polyhedron #4: T_S4(i) =(i,2,0,0,0,0) -6 10 -# c1 c2 c3 c4 c5 c6 i n 1 -0 1 0 0 0 0 0 -1 0 0 # i -0 0 1 0 0 0 0 0 0 -2 # 2 -0 0 0 1 0 0 0 0 0 0 # 0 -0 0 0 0 1 0 0 0 0 0 # 0 -0 0 0 0 0 1 0 0 0 0 # 0 -0 0 0 0 0 0 1 0 0 0 # 0 - -# Scattering function for polyhedron #5: T_S5(i,j,k)=(i,3,j,0,k,0) -6 12 -# c1 c2 c3 c4 c5 c6 i j k n 1 -0 1 0 0 0 0 0 -1 0 0 0 0 # i -0 0 1 0 0 0 0 0 0 0 0 -3 # 3 -0 0 0 1 0 0 0 0 -1 0 0 0 # j -0 0 0 0 1 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 1 0 0 0 0 0 # 0 - -# Scattering function for polyhedron #6: T_S6(i,j,k)=(i,3,j,0,k,1) -6 12 -# c1 c2 c3 c4 c5 c6 i j k n 1 -0 1 0 0 0 0 0 -1 0 0 0 0 # i -0 0 1 0 0 0 0 0 0 0 0 -3 # 3 -0 0 0 1 0 0 0 0 -1 0 0 0 # j -0 0 0 0 1 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 1 0 0 0 0 -1 # 1 - -# Scattering function for polyhedron #7: T_S7(i,j) =(i,3,j,1,0,0) -6 11 -# c1 c2 c3 c4 c5 c6 i j n 1 -0 1 0 0 0 0 0 -1 0 0 0 # i -0 0 1 0 0 0 0 0 0 0 -3 # 3 -0 0 0 1 0 0 0 0 -1 0 0 # j -0 0 0 0 1 0 0 0 0 0 -1 # 1 -0 0 0 0 0 1 0 0 0 0 0 # 0 -0 0 0 0 0 0 1 0 0 0 0 # 0 - -# Scattering function for polyhedron #8: T_S8(i,j) =(i,3,j,2,0,0) -6 11 -# c1 c2 c3 c4 c5 c6 i j n 1 -0 1 0 0 0 0 0 -1 0 0 0 # i -0 0 1 0 0 0 0 0 0 0 -3 # 3 -0 0 0 1 0 0 0 0 -1 0 0 # j -0 0 0 0 1 0 0 0 0 0 -2 # 2 -0 0 0 0 0 1 0 0 0 0 0 # 0 -0 0 0 0 0 0 1 0 0 0 0 # 0 - -# We want to set manually the scattering dimension names. -1 -c1 c2 c3 c4 c5 c6 diff --git a/test/published/Web/web6.cloog b/test/published/Web/web6.cloog deleted file mode 100644 index bd33077..0000000 --- a/test/published/Web/web6.cloog +++ /dev/null @@ -1,269 +0,0 @@ -# CLooG example file #6. -# Please read the first and second examples which are fully documented to -# understand the different parts of the input file. -# -################################################################################ -# do i=1,n The problem here is to generate the # -# | do j =1,i-1 transformation of a real-life Cholesau # -# | | if (j.EQ.1) then kernel according to the allocation # -#S1| | | s1(i,j)=a(i,j)s4(j,i)**2 functions given by a good automatic # -# | | else parallelizer (e.g. PAF or LooPo). For # -#S2| | | s1(i,j)=s1(i,j-1)-s4(j,i)**2 each statement the new schedule is: # -# | if (i .EQ. 1) then T_S1(i,j) =(i+j-1,i,0,j,0,0,0) # -#S3| | s2(i)=sqrt(a(i,i)) T_S2(i,j) =(i, i,0,j,1,0,0 # -# | else T_S3(i) =(i-1, i,1,0,0,0,0 # -#S4| | s2(i)=sqrt (s1(i,i-1)) T_S4(i) =(0, i,2,0,0,0,0) # -# | do k=i+1,n T_S5(i,j,k)=(j+k-1,i,3,j,0,k,0) # -# | | do l=1,i-1 T_S6(i,j,k)=(k, i,3,j,0,k,1) # -# | | | if (l .EQ. 1) then T_S7(i,j) =(i+j, i,3,j,1,0,0) # -#S5| | | | s3(i,k,l)=a(k,i)-(s4(l,k)*s4(l,i)) T_S8(i,j) =(j, i,3,j,2,0,0) # -# | | | else # -#S6| | | | s3(i,k,l)=s3(i,k,l-1)-(s4(l,k)*s4(l,i)) # -# | | if (i .EQ.1) then In the generated code, every instances # -#S7| | | s4(i,k)=a(k,i)/s2(i) with the same p value are executed on # -# | | else processor number p (an allocation pb). # -#S8| | | s4(i,k)=s3(i,k,i-1)/s2(i) For a better view, use -fsp 2 option. # -################################################################################ -# -#------------------------------------CONTEXT------------------------------------ - -# 1. language: FORTRAN -f - -# 2. Parameters {n | n>=10} -1 3 -# n 1 -1 1 -10 # n>=10 - -# 3. We set manually the parameter name: n -1 -n - -#-----------------------------------POLYHEDRA----------------------------------- - -# 4. Number of polyhedra: -8 - -# Polyhedron #1 -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 # 3 zeroes ! - -# Polyhedron #2 -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 # 3 zeroes ! - -# Polyhedron #3 -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 # 3 zeroes ! - -# Polyhedron #4 -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 # 3 zeroes ! - -# Polyhedron #5 -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 # 3 zeroes ! - -# Polyhedron #6 -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 # 3 zeroes ! - -# Polyhedron #7 -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 # 3 zeroes ! - -# Polyhedron #8 -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 # 3 zeroes ! - -# 6. We let CLooG choose the iterator names -0 - -#----------------------------------SCATTERING----------------------------------- - -# 7. Scattering functions ALLOCATION + ORIGINAL SCHEDULING -8 - -# Scattering function for polyhedron #1: T_S1(i,j) =(i+j-1,i,0,j,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 -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 - -# Scattering function for polyhedron #2: T_S2(i,j) =(i,i,0,j,1,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 - -# Scattering function for polyhedron #3: T_S3(i) =(i-1,i,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 -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 - -# Scattering function for polyhedron #4: T_S4(i) =(0,i,2,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 - -# Scattering function for polyhedron #5: T_S5(i,j,k)=(j+k-1,i,3,j,0,k,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 - -# Scattering function for polyhedron #6: T_S6(i,j,k)=(k,i,3,j,0,k,1) -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 - -# Scattering function for polyhedron #7: T_S7(i,j) =(i+j,i,3,j,1,0,0) -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 - -# Scattering function for polyhedron #8: T_S8(i,j) =(j,i,3,j,2,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 - -# We want to set manually the scattering dimension names. -1 -p c1 c2 c3 c4 c5 c6 diff --git a/test/published/Web/web7.cloog b/test/published/Web/web7.cloog deleted file mode 100644 index 29b860b..0000000 --- a/test/published/Web/web7.cloog +++ /dev/null @@ -1,30 +0,0 @@ -# CLooG example file #7: A useful basis to start writing its own input file. -# 1. Language: C -c - -# 2. Parameters {M | M>=0}. -1 3 -# M 1 -1 1 0 - -# 3. We let CLooG choose the parameter names. -0 - -# 4. Number of polyhedra: -1 - -# 5. Polyhedron #1 {i, j | 0<=i<=M 0<=j<=M}. -1 -4 5 -# i j M 1 -1 1 0 0 0 -1 -1 0 1 0 -1 0 1 0 0 -1 0 -1 1 0 -0 0 0 - -# 6. We let CLooG choose the iterator names. -0 - -# 7. Let CLoog scan the polyhedra in the way it wants. -0 |