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];