1 # Matmul example, relation representation
5 # =============================================== Global
14 # Parameter names are provided
21 # Number of statements
24 # =============================================== Statement 1
25 # Number of relations describing the statement
28 # ---------------------------------------------- 1.1 Domain
33 1 -1 0 1 -1 ## -i+N-1 >= 0
35 1 0 -1 1 -1 ## -j+N-1 >= 0
37 # ---------------------------------------------- 1.2 Scattering
40 # e/i s1 s2 s3 s4 s5 i j N 1
41 0 -1 0 0 0 0 0 0 0 0 ## s1 = 0
42 0 0 -1 0 0 0 1 0 0 0 ## s2 = i
43 0 0 0 -1 0 0 0 0 0 0 ## s3 = 0
44 0 0 0 0 -1 0 0 1 0 0 ## s4 = j
45 0 0 0 0 0 -1 0 0 0 0 ## s5 = 0
47 # ---------------------------------------------- 1.3 Access
50 # e/i Arr [1] [2] i j N 1
52 0 0 -1 0 1 0 0 0 ## [i]
53 0 0 0 -1 0 1 0 0 ## [j]
55 # ---------------------------------------------- 1.4 Body
56 # Statement body is provided
59 # Number of original iterators
61 # Original iterator names
67 # =============================================== Statement 2
68 # Number of relations describing the statement
71 # ---------------------------------------------- 2.1 Domain
76 1 -1 0 0 1 -1 ## -i+N-1 >= 0
78 1 0 -1 0 1 -1 ## -j+N-1 >= 0
80 1 0 0 -1 1 -1 ## -k+N-1 >= 0
82 # ---------------------------------------------- 2.2 Scattering
85 # e/i s1 s2 s3 s4 s5 s6 s7 i j k N 1
86 0 -1 0 0 0 0 0 0 0 0 0 0 0 ## s1 = 0
87 0 0 -1 0 0 0 0 0 1 0 0 0 0 ## s2 = i
88 0 0 0 -1 0 0 0 0 0 0 0 0 0 ## s3 = 0
89 0 0 0 0 -1 0 0 0 0 1 0 0 0 ## s4 = j
90 0 0 0 0 0 -1 0 0 0 0 0 0 1 ## s5 = 1
91 0 0 0 0 0 0 -1 0 0 0 1 0 0 ## s6 = k
92 0 0 0 0 0 0 0 -1 0 0 0 0 0 ## s7 = 0
94 # ---------------------------------------------- 2.3 Access
97 # e/i Arr [1] [2] i j k N 1
98 0 -1 0 0 0 0 0 0 1 ## C
99 0 0 -1 0 1 0 0 0 0 ## [i]
100 0 0 0 -1 0 1 0 0 0 ## [j]
104 # e/i Arr [1] [2] i j k N 1
105 0 -1 0 0 0 0 0 0 1 ## C
106 0 0 -1 0 1 0 0 0 0 ## [i]
107 0 0 0 -1 0 1 0 0 0 ## [j]
111 # e/i Arr [1] [2] i j k N 1
112 0 -1 0 0 0 0 0 0 2 ## A
113 0 0 -1 0 1 0 0 0 0 ## [i]
114 0 0 0 -1 0 0 1 0 0 ## [k]
118 # e/i Arr [1] [2] i j k N 1
119 0 -1 0 0 0 0 0 0 3 ## B
120 0 0 -1 0 0 0 1 0 0 ## [k]
121 0 0 0 -1 0 1 0 0 0 ## [j]
123 # ---------------------------------------------- 2.4 Body
124 # Statement body is provided
127 # Number of original iterators
129 # Original iterator names
132 C[i][j] = C[i][j] + A[i][k] * B[k][j];