keep track of indentation of extracted code
[pet.git] / tests / QR.scop
blobdca28de228e215147e34e2e81a9e9a34e09c0a4e
1 start: 285
2 end: 840
3 indent: '    '
4 context: '[K, N] -> {  : N <= 16 and N >= 8 and K >= 100 and K <= 1000 }'
5 context_value: '[K, N] -> {  : K = 256 }'
6 arrays:
7 - context: '[N] -> {  : N >= 0 }'
8   extent: '[N, K] -> { R[i0, i1] : i0 >= 0 and i0 <= -1 + N and i1 <= -1 + N and i1
9     >= 0 }'
10   element_type: int
11   element_size: 4
12 - context: '[N, K] -> {  : K >= 0 and N >= 0 }'
13   extent: '[N, K] -> { X[i0, i1] : i1 <= -1 + N and i1 >= 0 and i0 <= -1 + K and i0
14     >= 0 }'
15   element_type: int
16   element_size: 4
17 - context: '{  :  }'
18   extent: '[N, K] -> { t[] }'
19   element_type: int
20   element_size: 4
21 statements:
22 - line: 19
23   domain: '[N, K] -> { S_0[j, i] : i >= j and j >= 0 and i <= -1 + N }'
24   schedule: '[N] -> { S_0[j, i] -> [0, j, i] }'
25   body:
26     type: op
27     operation: =
28     arguments:
29     - type: access
30       relation: '[N, K] -> { S_0[j, i] -> R[j, i] }'
31       index: '[N, K] -> { S_0[j, i] -> R[(j), (i)] }'
32       reference: __pet_ref_0
33       read: 0
34       write: 1
35     - type: call
36       name: Zero
37 - line: 23
38   domain: '[N, K] -> { S_1[k, j] : j <= -1 + N and j >= 0 and k <= -1 + K and k >=
39     0 }'
40   schedule: '[K, N] -> { S_1[k, j] -> [1, k, j] }'
41   body:
42     type: op
43     operation: =
44     arguments:
45     - type: access
46       relation: '[N, K] -> { S_1[k, j] -> X[k, j] }'
47       index: '[N, K] -> { S_1[k, j] -> X[(k), (j)] }'
48       reference: __pet_ref_1
49       read: 0
50       write: 1
51     - type: call
52       name: ReadMatrix
53 - line: 27
54   domain: '[N, K] -> { S_2[k, j] : j <= -1 + N and j >= 0 and k <= -1 + K and k >=
55     0 }'
56   schedule: '[K, N] -> { S_2[k, j] -> [2, k, j, 0] }'
57   body:
58     type: call
59     name: Vectorize
60     arguments:
61     - type: access
62       relation: '[N, K] -> { S_2[k, j] -> R[j, j] }'
63       index: '[N, K] -> { S_2[k, j] -> R[(j), (j)] }'
64       reference: __pet_ref_2
65       read: 1
66       write: 0
67     - type: access
68       relation: '[N, K] -> { S_2[k, j] -> X[k, j] }'
69       index: '[N, K] -> { S_2[k, j] -> X[(k), (j)] }'
70       reference: __pet_ref_3
71       read: 1
72       write: 0
73     - type: op
74       operation: '&'
75       arguments:
76       - type: access
77         relation: '[N, K] -> { S_2[k, j] -> R[j, j] }'
78         index: '[N, K] -> { S_2[k, j] -> R[(j), (j)] }'
79         reference: __pet_ref_4
80         read: 0
81         write: 1
82     - type: op
83       operation: '&'
84       arguments:
85       - type: access
86         relation: '[N, K] -> { S_2[k, j] -> X[k, j] }'
87         index: '[N, K] -> { S_2[k, j] -> X[(k), (j)] }'
88         reference: __pet_ref_5
89         read: 0
90         write: 1
91     - type: op
92       operation: '&'
93       arguments:
94       - type: access
95         relation: '[N, K] -> { S_2[k, j] -> t[] }'
96         index: '[N, K] -> { S_2[k, j] -> t[] }'
97         reference: __pet_ref_6
98         read: 0
99         write: 1
100 - line: 29
101   domain: '[N, K] -> { S_3[k, j, i] : i >= 1 + j and j >= 0 and k <= -1 + K and k
102     >= 0 and i <= -1 + N }'
103   schedule: '[K, N] -> { S_3[k, j, i] -> [2, k, j, 1, i] }'
104   body:
105     type: call
106     name: Rotate
107     arguments:
108     - type: access
109       relation: '[N, K] -> { S_3[k, j, i] -> R[j, i] }'
110       index: '[N, K] -> { S_3[k, j, i] -> R[(j), (i)] }'
111       reference: __pet_ref_7
112       read: 1
113       write: 0
114     - type: access
115       relation: '[N, K] -> { S_3[k, j, i] -> X[k, i] }'
116       index: '[N, K] -> { S_3[k, j, i] -> X[(k), (i)] }'
117       reference: __pet_ref_8
118       read: 1
119       write: 0
120     - type: access
121       relation: '[N, K] -> { S_3[k, j, i] -> t[] }'
122       index: '[N, K] -> { S_3[k, j, i] -> t[] }'
123       reference: __pet_ref_9
124       read: 1
125       write: 0
126     - type: op
127       operation: '&'
128       arguments:
129       - type: access
130         relation: '[N, K] -> { S_3[k, j, i] -> R[j, i] }'
131         index: '[N, K] -> { S_3[k, j, i] -> R[(j), (i)] }'
132         reference: __pet_ref_10
133         read: 0
134         write: 1
135     - type: op
136       operation: '&'
137       arguments:
138       - type: access
139         relation: '[N, K] -> { S_3[k, j, i] -> X[k, i] }'
140         index: '[N, K] -> { S_3[k, j, i] -> X[(k), (i)] }'
141         reference: __pet_ref_11
142         read: 0
143         write: 1
144     - type: op
145       operation: '&'
146       arguments:
147       - type: access
148         relation: '[N, K] -> { S_3[k, j, i] -> t[] }'
149         index: '[N, K] -> { S_3[k, j, i] -> t[] }'
150         reference: __pet_ref_12
151         read: 0
152         write: 1
153 - line: 34
154   domain: '[N, K] -> { S_4[j, i] : i >= j and j >= 0 and i <= -1 + N }'
155   schedule: '[N] -> { S_4[j, i] -> [3, j, i] }'
156   body:
157     type: call
158     name: WriteMatrix
159     arguments:
160     - type: access
161       relation: '[N, K] -> { S_4[j, i] -> R[j, i] }'
162       index: '[N, K] -> { S_4[j, i] -> R[(j), (i)] }'
163       reference: __pet_ref_13
164       read: 1
165       write: 0