Names data structure to store all textual names
[openscop.git] / tests / test_matmult.scop
blob50ef98e1884160dfa5fbfc9d579c99227770fceb
1 # Matmul example, relation representation
3 <OpenScop>
5 # =============================================== Global
6 # Backend Language
9 # Context
10 CONTEXT
11 1 3 0 0 0 1
12    1    1   -1    ## N-1 >= 0
14 # Parameter names are provided
16 # Parameter names
17
19 # Number of statements
22 # =============================================== Statement 1
23 # Number of relations describing the statement
26 # ----------------------------------------------  1.1 Domain
27 DOMAIN
28 4 5 2 0 0 1
29 # e/i   i    j    N    1
30    1    1    0    0    0    ## i >= 0
31    1   -1    0    1   -1    ## -i+N-1 >= 0
32    1    0    1    0    0    ## j >= 0
33    1    0   -1    1   -1    ## -j+N-1 >= 0
35 # ----------------------------------------------  1.2 Scattering
36 SCATTERING
37 5 10 5 2 0 1
38 # e/i  s1   s2   s3   s4   s5    i    j    N    1 
39    0   -1    0    0    0    0    0    0    0    0    ## s1 = 0
40    0    0   -1    0    0    0    1    0    0    0    ## s2 = i
41    0    0    0   -1    0    0    0    0    0    0    ## s3 = 0
42    0    0    0    0   -1    0    0    1    0    0    ## s4 = j
43    0    0    0    0    0   -1    0    0    0    0    ## s5 = 0
45 # ----------------------------------------------  1.3 Access
46 WRITE
47 3 8 3 2 0 1
48 # e/i  Arr  [1]  [2]   i    j    N    1
49    0   -1    0    0    0    0    0    1    ## C
50    0    0   -1    0    1    0    0    0    ##  [i]
51    0    0    0   -1    0    1    0    0    ##     [j]
53 # ----------------------------------------------  1.4 Body
54 # Statement body is provided
56 # Original iterator names
57 i j 
58 # Statement body
59 C[i][j] = 0.0;
62 # =============================================== Statement 2
63 # Number of relations describing the statement
66 # ----------------------------------------------  2.1 Domain
67 DOMAIN
68 6 6 3 0 0 1
69 # e/i   i    j    k    N    1
70    1    1    0    0    0    0    ## i >= 0
71    1   -1    0    0    1   -1    ## -i+N-1 >= 0
72    1    0    1    0    0    0    ## j >= 0
73    1    0   -1    0    1   -1    ## -j+N-1 >= 0
74    1    0    0    1    0    0    ## k >= 0
75    1    0    0   -1    1   -1    ## -k+N-1 >= 0
77 # ----------------------------------------------  2.2 Scattering
78 SCATTERING
79 7 13 7 3 0 1
80 # e/i  s1   s2   s3   s4   s5   s6   s7    i    j    k    N    1
81    0   -1    0    0    0    0    0    0    0    0    0    0    0   ## s1 = 0
82    0    0   -1    0    0    0    0    0    1    0    0    0    0   ## s2 = i
83    0    0    0   -1    0    0    0    0    0    0    0    0    0   ## s3 = 0
84    0    0    0    0   -1    0    0    0    0    1    0    0    0   ## s4 = j
85    0    0    0    0    0   -1    0    0    0    0    0    0    1   ## s5 = 1
86    0    0    0    0    0    0   -1    0    0    0    1    0    0   ## s6 = k
87    0    0    0    0    0    0    0   -1    0    0    0    0    0   ## s7 = 0
89 # ----------------------------------------------  2.3 Access
90 WRITE
91 3 9 3 3 0 1
92 # e/i  Arr  [1]  [2]   i    j    k    N    1
93    0   -1    0    0    0    0    0    0    1    ## C
94    0    0   -1    0    1    0    0    0    0    ##  [i]
95    0    0    0   -1    0    1    0    0    0    ##     [j]
97 READ
98 3 9 3 3 0 1
99 # e/i  Arr  [1]  [2]   i    j    k    N    1
100    0   -1    0    0    0    0    0    0    1    ## C
101    0    0   -1    0    1    0    0    0    0    ##  [i]
102    0    0    0   -1    0    1    0    0    0    ##     [j]
104 READ
105 3 9 3 3 0 1
106 # e/i  Arr  [1]  [2]   i    j    k    N    1
107    0   -1    0    0    0    0    0    0    2    ## A
108    0    0   -1    0    1    0    0    0    0    ##  [i]
109    0    0    0   -1    0    0    1    0    0    ##     [k]
111 READ
112 3 9 3 3 0 1
113 # e/i  Arr  [1]  [2]   i    j    k    N    1
114    0   -1    0    0    0    0    0    0    3    ## B
115    0    0   -1    0    0    0    1    0    0    ##  [k]
116    0    0    0   -1    0    1    0    0    0    ##     [j]
118 # ----------------------------------------------  2.4 Body
119 # Statement body is provided
121 # Original iterator names
122 i j k 
123 # Statement body
124 C[i][j] = C[i][j] + A[i][k] * B[k][j];
126 </OpenScop>