1 //
2 // BAGEL - Brilliantly Advanced General Electronic Structure Library
3 // Filename: RelMRCI_tasks2.h
4 // Copyright (C) 2014 Toru Shiozaki
5 //
6 // Author: Toru Shiozaki <shiozaki@northwestern.edu>
7 // Maintainer: Shiozaki group
8 //
9 // This file is part of the BAGEL package.
10 //
11 // This program is free software: you can redistribute it and/or modify
12 // it under the terms of the GNU General Public License as published by
13 // the Free Software Foundation, either version 3 of the License, or
14 // (at your option) any later version.
15 //
16 // This program is distributed in the hope that it will be useful,
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 // GNU General Public License for more details.
20 //
21 // You should have received a copy of the GNU General Public License
22 // along with this program. If not, see <http://www.gnu.org/licenses/>.
23 //
24
25 #include <bagel_config.h>
26 #ifdef COMPILE_SMITH
27
28 #include <src/smith/relmrci/RelMRCI_tasks2.h>
29
30 using namespace std;
31 using namespace bagel;
32 using namespace bagel::SMITH;
33 using namespace bagel::SMITH::RelMRCI;
34
Task50(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)35 Task50::Task50(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
36 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
37 out_ = t[0];
38 in_ = in;
39 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
40 for (auto& x5 : *range[1])
41 for (auto& x4 : *range[1])
42 for (auto& x3 : *range[1])
43 for (auto& x0 : *range[1])
44 for (auto& x2 : *range[1])
45 for (auto& x1 : *range[1])
46 if (t[0]->is_local(x5, x4, x3, x0, x2, x1))
47 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x4, x3, x0, x2, x1}}, in, t[0], range));
48 }
49
Task51(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)50 Task51::Task51(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
51 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
52 out_ = t[0];
53 in_ = in;
54 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
55 for (auto& x5 : *range[1])
56 for (auto& x0 : *range[1])
57 for (auto& x4 : *range[1])
58 for (auto& x3 : *range[1])
59 for (auto& x2 : *range[1])
60 for (auto& x1 : *range[1])
61 if (t[0]->is_local(x5, x0, x4, x3, x2, x1))
62 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x0, x4, x3, x2, x1}}, in, t[0], range));
63 }
64
Task52(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)65 Task52::Task52(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
66 array<shared_ptr<const Tensor>,1> in = {{t[1]}};
67 out_ = t[0];
68 in_ = in;
69 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
70 for (auto& x3 : *range[1])
71 for (auto& x0 : *range[1])
72 for (auto& x2 : *range[1])
73 for (auto& x1 : *range[1])
74 if (t[0]->is_local(x3, x0, x2, x1))
75 subtasks_.push_back(make_shared<Task_local>(array<const Index,4>{{x3, x0, x2, x1}}, in, t[0], range));
76 }
77
Task53(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)78 Task53::Task53(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
79 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
80 out_ = t[0];
81 in_ = in;
82 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
83 for (auto& x7 : *range[1])
84 for (auto& x6 : *range[1])
85 for (auto& x3 : *range[1])
86 for (auto& x5 : *range[1])
87 for (auto& x4 : *range[1])
88 for (auto& x0 : *range[1])
89 for (auto& x2 : *range[1])
90 for (auto& x1 : *range[1])
91 if (t[0]->is_local(x7, x6, x3, x5, x4, x0, x2, x1))
92 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x6, x3, x5, x4, x0, x2, x1}}, in, t[0], range));
93 }
94
Task54(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)95 Task54::Task54(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
96 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
97 out_ = t[0];
98 in_ = in;
99 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
100 for (auto& x4 : *range[1])
101 for (auto& x5 : *range[1])
102 for (auto& x3 : *range[1])
103 for (auto& x0 : *range[1])
104 for (auto& x2 : *range[1])
105 for (auto& x1 : *range[1])
106 if (t[0]->is_local(x4, x5, x3, x0, x2, x1))
107 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x4, x5, x3, x0, x2, x1}}, in, t[0], range));
108 }
109
Task55(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)110 Task55::Task55(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
111 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
112 out_ = t[0];
113 in_ = in;
114 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
115 for (auto& x7 : *range[1])
116 for (auto& x6 : *range[1])
117 for (auto& x5 : *range[1])
118 for (auto& x0 : *range[1])
119 for (auto& x4 : *range[1])
120 for (auto& x3 : *range[1])
121 for (auto& x2 : *range[1])
122 for (auto& x1 : *range[1])
123 if (t[0]->is_local(x7, x6, x5, x0, x4, x3, x2, x1))
124 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x6, x5, x0, x4, x3, x2, x1}}, in, t[0], range));
125 }
126
Task56(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)127 Task56::Task56(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
128 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
129 out_ = t[0];
130 in_ = in;
131 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
132 for (auto& x7 : *range[1])
133 for (auto& x6 : *range[1])
134 for (auto& x5 : *range[1])
135 for (auto& x4 : *range[1])
136 for (auto& x3 : *range[1])
137 for (auto& x0 : *range[1])
138 for (auto& x2 : *range[1])
139 for (auto& x1 : *range[1])
140 if (t[0]->is_local(x7, x6, x5, x4, x3, x0, x2, x1))
141 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x6, x5, x4, x3, x0, x2, x1}}, in, t[0], range));
142 }
143
Task57(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)144 Task57::Task57(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
145 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
146 out_ = t[0];
147 in_ = in;
148 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
149 for (auto& x7 : *range[1])
150 for (auto& x0 : *range[1])
151 for (auto& x6 : *range[1])
152 for (auto& x5 : *range[1])
153 for (auto& x4 : *range[1])
154 for (auto& x3 : *range[1])
155 for (auto& x2 : *range[1])
156 for (auto& x1 : *range[1])
157 if (t[0]->is_local(x7, x0, x6, x5, x4, x3, x2, x1))
158 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x0, x6, x5, x4, x3, x2, x1}}, in, t[0], range));
159 }
160
Task58(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)161 Task58::Task58(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
162 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
163 out_ = t[0];
164 in_ = in;
165 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
166 for (auto& x7 : *range[1])
167 for (auto& x4 : *range[1])
168 for (auto& x6 : *range[1])
169 for (auto& x5 : *range[1])
170 for (auto& x3 : *range[1])
171 for (auto& x0 : *range[1])
172 for (auto& x2 : *range[1])
173 for (auto& x1 : *range[1])
174 if (t[0]->is_local(x7, x4, x6, x5, x3, x0, x2, x1))
175 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x4, x6, x5, x3, x0, x2, x1}}, in, t[0], range));
176 }
177
Task59(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)178 Task59::Task59(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
179 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
180 out_ = t[0];
181 in_ = in;
182 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
183 for (auto& x7 : *range[1])
184 for (auto& x3 : *range[1])
185 for (auto& x6 : *range[1])
186 for (auto& x5 : *range[1])
187 for (auto& x4 : *range[1])
188 for (auto& x0 : *range[1])
189 for (auto& x2 : *range[1])
190 for (auto& x1 : *range[1])
191 if (t[0]->is_local(x7, x3, x6, x5, x4, x0, x2, x1))
192 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x3, x6, x5, x4, x0, x2, x1}}, in, t[0], range));
193 }
194
Task60(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)195 Task60::Task60(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
196 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
197 out_ = t[0];
198 in_ = in;
199 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
200 for (auto& x5 : *range[1])
201 for (auto& x0 : *range[1])
202 for (auto& x3 : *range[1])
203 for (auto& x4 : *range[1])
204 for (auto& x2 : *range[1])
205 for (auto& x1 : *range[1])
206 if (t[0]->is_local(x5, x0, x3, x4, x2, x1))
207 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x0, x3, x4, x2, x1}}, in, t[0], range));
208 }
209
Task61(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)210 Task61::Task61(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
211 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
212 out_ = t[0];
213 in_ = in;
214 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
215 for (auto& x5 : *range[1])
216 for (auto& x3 : *range[1])
217 for (auto& x4 : *range[1])
218 for (auto& x0 : *range[1])
219 for (auto& x2 : *range[1])
220 for (auto& x1 : *range[1])
221 if (t[0]->is_local(x5, x3, x4, x0, x2, x1))
222 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x3, x4, x0, x2, x1}}, in, t[0], range));
223 }
224
Task62(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)225 Task62::Task62(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
226 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
227 out_ = t[0];
228 in_ = in;
229 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
230 for (auto& x7 : *range[1])
231 for (auto& x0 : *range[1])
232 for (auto& x6 : *range[1])
233 for (auto& x3 : *range[1])
234 for (auto& x5 : *range[1])
235 for (auto& x4 : *range[1])
236 for (auto& x2 : *range[1])
237 for (auto& x1 : *range[1])
238 if (t[0]->is_local(x7, x0, x6, x3, x5, x4, x2, x1))
239 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x0, x6, x3, x5, x4, x2, x1}}, in, t[0], range));
240 }
241
Task63(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)242 Task63::Task63(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
243 array<shared_ptr<const Tensor>,4> in = {{t[1], t[2], t[3], t[4]}};
244 out_ = t[0];
245 in_ = in;
246 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
247 for (auto& x7 : *range[1])
248 for (auto& x0 : *range[1])
249 for (auto& x6 : *range[1])
250 for (auto& x5 : *range[1])
251 for (auto& x2 : *range[1])
252 for (auto& x1 : *range[1])
253 for (auto& x4 : *range[1])
254 for (auto& x3 : *range[1])
255 if (t[0]->is_local(x7, x0, x6, x5, x2, x1))
256 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x0, x6, x5, x2, x1, x4, x3}}, in, t[0], range));
257 }
258
Task64(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)259 Task64::Task64(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
260 array<shared_ptr<const Tensor>,4> in = {{t[1], t[2], t[3], t[4]}};
261 out_ = t[0];
262 in_ = in;
263 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
264 for (auto& x9 : *range[1])
265 for (auto& x0 : *range[1])
266 for (auto& x8 : *range[1])
267 for (auto& x7 : *range[1])
268 for (auto& x2 : *range[1])
269 for (auto& x1 : *range[1])
270 for (auto& x6 : *range[1])
271 for (auto& x5 : *range[1])
272 for (auto& x4 : *range[1])
273 for (auto& x3 : *range[1])
274 if (t[0]->is_local(x9, x0, x8, x7, x2, x1))
275 subtasks_.push_back(make_shared<Task_local>(array<const Index,10>{{x9, x0, x8, x7, x2, x1, x6, x5, x4, x3}}, in, t[0], range));
276 }
277
Task65(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)278 Task65::Task65(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
279 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
280 out_ = t[0];
281 in_ = in;
282 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
283 for (auto& x5 : *range[1])
284 for (auto& x4 : *range[1])
285 for (auto& x1 : *range[1])
286 for (auto& x3 : *range[1])
287 for (auto& x2 : *range[1])
288 for (auto& x0 : *range[1])
289 if (t[0]->is_local(x5, x4, x1, x3, x2, x0))
290 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x4, x1, x3, x2, x0}}, in, t[0], range));
291 }
292
Task66(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)293 Task66::Task66(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
294 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
295 out_ = t[0];
296 in_ = in;
297 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
298 for (auto& x1 : *range[1])
299 for (auto& x3 : *range[1])
300 for (auto& x2 : *range[1])
301 for (auto& x0 : *range[1])
302 if (t[0]->is_local(x1, x3, x2, x0))
303 subtasks_.push_back(make_shared<Task_local>(array<const Index,4>{{x1, x3, x2, x0}}, in, t[0], range));
304 }
305
Task67(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)306 Task67::Task67(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
307 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
308 out_ = t[0];
309 in_ = in;
310 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
311 for (auto& x5 : *range[1])
312 for (auto& x0 : *range[1])
313 for (auto& x4 : *range[1])
314 for (auto& x3 : *range[1])
315 for (auto& x1 : *range[1])
316 for (auto& x2 : *range[1])
317 if (t[0]->is_local(x5, x0, x4, x3, x1, x2))
318 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x0, x4, x3, x1, x2}}, in, t[0], range));
319 }
320
Task68(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)321 Task68::Task68(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
322 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
323 out_ = t[0];
324 in_ = in;
325 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
326 for (auto& x5 : *range[1])
327 for (auto& x1 : *range[1])
328 for (auto& x4 : *range[1])
329 for (auto& x3 : *range[1])
330 for (auto& x2 : *range[1])
331 for (auto& x0 : *range[1])
332 if (t[0]->is_local(x5, x1, x4, x3, x2, x0))
333 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x1, x4, x3, x2, x0}}, in, t[0], range));
334 }
335
Task69(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)336 Task69::Task69(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
337 array<shared_ptr<const Tensor>,1> in = {{t[1]}};
338 out_ = t[0];
339 in_ = in;
340 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
341 for (auto& x3 : *range[1])
342 for (auto& x1 : *range[1])
343 for (auto& x2 : *range[1])
344 for (auto& x0 : *range[1])
345 if (t[0]->is_local(x3, x1, x2, x0))
346 subtasks_.push_back(make_shared<Task_local>(array<const Index,4>{{x3, x1, x2, x0}}, in, t[0], range));
347 }
348
Task70(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)349 Task70::Task70(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
350 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
351 out_ = t[0];
352 in_ = in;
353 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
354 for (auto& x3 : *range[1])
355 for (auto& x0 : *range[1])
356 for (auto& x1 : *range[1])
357 for (auto& x2 : *range[1])
358 if (t[0]->is_local(x3, x0, x1, x2))
359 subtasks_.push_back(make_shared<Task_local>(array<const Index,4>{{x3, x0, x1, x2}}, in, t[0], range));
360 }
361
Task71(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)362 Task71::Task71(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
363 array<shared_ptr<const Tensor>,1> in = {{t[1]}};
364 out_ = t[0];
365 in_ = in;
366 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
367 for (auto& x5 : *range[1])
368 for (auto& x0 : *range[1])
369 for (auto& x4 : *range[1])
370 for (auto& x1 : *range[1])
371 for (auto& x3 : *range[1])
372 for (auto& x2 : *range[1])
373 if (t[0]->is_local(x5, x0, x4, x1, x3, x2))
374 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x0, x4, x1, x3, x2}}, in, t[0], range));
375 }
376
Task72(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)377 Task72::Task72(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
378 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
379 out_ = t[0];
380 in_ = in;
381 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
382 for (auto& x3 : *range[1])
383 for (auto& x0 : *range[1])
384 for (auto& x2 : *range[1])
385 for (auto& x1 : *range[1])
386 if (t[0]->is_local(x3, x0))
387 subtasks_.push_back(make_shared<Task_local>(array<const Index,4>{{x3, x0, x2, x1}}, in, t[0], range));
388 }
389
Task73(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)390 Task73::Task73(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
391 array<shared_ptr<const Tensor>,4> in = {{t[1], t[2], t[3], t[4]}};
392 out_ = t[0];
393 in_ = in;
394 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
395 for (auto& x5 : *range[1])
396 for (auto& x0 : *range[1])
397 for (auto& x4 : *range[1])
398 for (auto& x3 : *range[1])
399 for (auto& x2 : *range[1])
400 for (auto& x1 : *range[1])
401 if (t[0]->is_local(x5, x0))
402 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x0, x4, x3, x2, x1}}, in, t[0], range));
403 }
404
Task74(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)405 Task74::Task74(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
406 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
407 out_ = t[0];
408 in_ = in;
409 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
410 for (auto& x5 : *range[1])
411 for (auto& x4 : *range[1])
412 for (auto& x3 : *range[1])
413 for (auto& x1 : *range[1])
414 for (auto& x2 : *range[1])
415 for (auto& x0 : *range[1])
416 if (t[0]->is_local(x5, x4, x3, x1, x2, x0))
417 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x4, x3, x1, x2, x0}}, in, t[0], range));
418 }
419
Task75(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)420 Task75::Task75(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
421 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
422 out_ = t[0];
423 in_ = in;
424 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
425 for (auto& x7 : *range[1])
426 for (auto& x0 : *range[1])
427 for (auto& x6 : *range[1])
428 for (auto& x5 : *range[1])
429 for (auto& x4 : *range[1])
430 for (auto& x1 : *range[1])
431 for (auto& x3 : *range[1])
432 for (auto& x2 : *range[1])
433 if (t[0]->is_local(x7, x0, x6, x5, x4, x1, x3, x2))
434 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x0, x6, x5, x4, x1, x3, x2}}, in, t[0], range));
435 }
436
Task76(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)437 Task76::Task76(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
438 array<shared_ptr<const Tensor>,1> in = {{t[1]}};
439 out_ = t[0];
440 in_ = in;
441 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
442 for (auto& x5 : *range[1])
443 for (auto& x0 : *range[1])
444 for (auto& x4 : *range[1])
445 for (auto& x2 : *range[1])
446 for (auto& x3 : *range[1])
447 for (auto& x1 : *range[1])
448 if (t[0]->is_local(x5, x0, x4, x2, x3, x1))
449 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x0, x4, x2, x3, x1}}, in, t[0], range));
450 }
451
Task77(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)452 Task77::Task77(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
453 array<shared_ptr<const Tensor>,5> in = {{t[1], t[2], t[3], t[4], t[5]}};
454 out_ = t[0];
455 in_ = in;
456 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
457 for (auto& x0 : *range[1])
458 for (auto& x5 : *range[1])
459 for (auto& x1 : *range[1])
460 for (auto& x4 : *range[1])
461 for (auto& x3 : *range[1])
462 for (auto& x2 : *range[1])
463 if (t[0]->is_local(x0, x5, x1, x4))
464 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x0, x5, x1, x4, x3, x2}}, in, t[0], range));
465 }
466
Task78(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)467 Task78::Task78(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
468 array<shared_ptr<const Tensor>,6> in = {{t[1], t[2], t[3], t[4], t[5], t[6]}};
469 out_ = t[0];
470 in_ = in;
471 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
472 for (auto& x0 : *range[1])
473 for (auto& x7 : *range[1])
474 for (auto& x1 : *range[1])
475 for (auto& x6 : *range[1])
476 for (auto& x5 : *range[1])
477 for (auto& x4 : *range[1])
478 for (auto& x3 : *range[1])
479 for (auto& x2 : *range[1])
480 if (t[0]->is_local(x0, x7, x1, x6))
481 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x0, x7, x1, x6, x5, x4, x3, x2}}, in, t[0], range));
482 }
483
Task79(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)484 Task79::Task79(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
485 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
486 out_ = t[0];
487 in_ = in;
488 for (auto& x1 : *range[1])
489 for (auto& x0 : *range[1])
490 if (t[0]->is_local())
491 subtasks_.push_back(make_shared<Task_local>(array<const Index,2>{{x1, x0}}, in, t[0], range));
492 }
493
Task80(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)494 Task80::Task80(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
495 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
496 out_ = t[0];
497 in_ = in;
498 for (auto& x3 : *range[1])
499 for (auto& x2 : *range[1])
500 for (auto& x1 : *range[1])
501 for (auto& x0 : *range[1])
502 if (t[0]->is_local())
503 subtasks_.push_back(make_shared<Task_local>(array<const Index,4>{{x3, x2, x1, x0}}, in, t[0], range));
504 }
505
Task81(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)506 Task81::Task81(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
507 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
508 out_ = t[0];
509 in_ = in;
510 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
511 for (auto& x5 : *range[1])
512 for (auto& x0 : *range[1])
513 for (auto& x4 : *range[1])
514 for (auto& x1 : *range[1])
515 for (auto& x3 : *range[1])
516 for (auto& x2 : *range[1])
517 if (t[0]->is_local(x5, x0, x4, x1))
518 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x0, x4, x1, x3, x2}}, in, t[0], range));
519 }
520
Task82(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)521 Task82::Task82(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
522 array<shared_ptr<const Tensor>,4> in = {{t[1], t[2], t[3], t[4]}};
523 out_ = t[0];
524 in_ = in;
525 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
526 for (auto& x7 : *range[1])
527 for (auto& x0 : *range[1])
528 for (auto& x6 : *range[1])
529 for (auto& x1 : *range[1])
530 for (auto& x5 : *range[1])
531 for (auto& x4 : *range[1])
532 for (auto& x3 : *range[1])
533 for (auto& x2 : *range[1])
534 if (t[0]->is_local(x7, x0, x6, x1))
535 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x0, x6, x1, x5, x4, x3, x2}}, in, t[0], range));
536 }
537
Task83(vector<shared_ptr<Tensor>> t,const bool reset)538 Task83::Task83(vector<shared_ptr<Tensor>> t, const bool reset) : reset_(reset) {
539 r_ = t[0];
540 }
541
Task84(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)542 Task84::Task84(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
543 array<shared_ptr<const Tensor>,1> in = {{t[1]}};
544 out_ = t[0];
545 in_ = in;
546 subtasks_.reserve(range[1]->nblock()*range[0]->nblock()*range[1]->nblock()*range[0]->nblock());
547 for (auto& x0 : *range[1])
548 for (auto& c1 : *range[0])
549 for (auto& x1 : *range[1])
550 for (auto& c2 : *range[0])
551 if (t[0]->is_local(c2, x1, c1, x0))
552 subtasks_.push_back(make_shared<Task_local>(array<const Index,4>{{c2, x1, c1, x0}}, in, t[0], range));
553 }
554
Task85(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)555 Task85::Task85(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
556 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
557 out_ = t[0];
558 in_ = in;
559 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[0]->nblock()*range[0]->nblock());
560 for (auto& x1 : *range[1])
561 for (auto& x0 : *range[1])
562 for (auto& c1 : *range[0])
563 for (auto& c2 : *range[0])
564 if (t[0]->is_local(c2, c1, x0, x1))
565 subtasks_.push_back(make_shared<Task_local>(array<const Index,4>{{c2, c1, x0, x1}}, in, t[0], range));
566 }
567
Task86(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)568 Task86::Task86(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
569 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
570 out_ = t[0];
571 in_ = in;
572 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[0]->nblock()*range[0]->nblock());
573 for (auto& x2 : *range[1])
574 for (auto& x3 : *range[1])
575 for (auto& c1 : *range[0])
576 for (auto& c2 : *range[0])
577 if (t[0]->is_local(c2, c1, x3, x2))
578 subtasks_.push_back(make_shared<Task_local>(array<const Index,4>{{c2, c1, x3, x2}}, in, t[0], range));
579 }
580
Task87(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)581 Task87::Task87(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
582 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
583 out_ = t[0];
584 in_ = in;
585 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[0]->nblock()*range[0]->nblock());
586 for (auto& x2 : *range[1])
587 for (auto& x3 : *range[1])
588 for (auto& c1 : *range[0])
589 for (auto& c2 : *range[0])
590 if (t[0]->is_local(c2, c1, x3, x2))
591 subtasks_.push_back(make_shared<Task_local>(array<const Index,4>{{c2, c1, x3, x2}}, in, t[0], range));
592 }
593
Task88(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)594 Task88::Task88(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
595 array<shared_ptr<const Tensor>,1> in = {{t[1]}};
596 out_ = t[0];
597 in_ = in;
598 subtasks_.reserve(range[0]->nblock()*range[0]->nblock()*range[1]->nblock()*range[2]->nblock());
599 for (auto& c3 : *range[0])
600 for (auto& c2 : *range[0])
601 for (auto& x2 : *range[1])
602 for (auto& a4 : *range[2])
603 if (t[0]->is_local(a4, x2, c2, c3))
604 subtasks_.push_back(make_shared<Task_local>(array<const Index,4>{{a4, x2, c2, c3}}, in, t[0], range));
605 }
606
Task89(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)607 Task89::Task89(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
608 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
609 out_ = t[0];
610 in_ = in;
611 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[0]->nblock()*range[0]->nblock());
612 for (auto& x2 : *range[1])
613 for (auto& x3 : *range[1])
614 for (auto& c1 : *range[0])
615 for (auto& c2 : *range[0])
616 if (t[0]->is_local(c2, c1, x3, x2))
617 subtasks_.push_back(make_shared<Task_local>(array<const Index,4>{{c2, c1, x3, x2}}, in, t[0], range));
618 }
619
Task90(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)620 Task90::Task90(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
621 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
622 out_ = t[0];
623 in_ = in;
624 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[0]->nblock()*range[0]->nblock());
625 for (auto& x1 : *range[1])
626 for (auto& x0 : *range[1])
627 for (auto& c1 : *range[0])
628 for (auto& c2 : *range[0])
629 if (t[0]->is_local(c2, c1, x0, x1))
630 subtasks_.push_back(make_shared<Task_local>(array<const Index,4>{{c2, c1, x0, x1}}, in, t[0], range));
631 }
632
Task91(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)633 Task91::Task91(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
634 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
635 out_ = t[0];
636 in_ = in;
637 subtasks_.reserve(range[0]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
638 for (auto& c1 : *range[0])
639 for (auto& x2 : *range[1])
640 for (auto& x1 : *range[1])
641 for (auto& x0 : *range[1])
642 if (t[0]->is_local(x0, x1, x2, c1))
643 subtasks_.push_back(make_shared<Task_local>(array<const Index,4>{{x0, x1, x2, c1}}, in, t[0], range));
644 }
645
Task92(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)646 Task92::Task92(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
647 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
648 out_ = t[0];
649 in_ = in;
650 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[0]->nblock()*range[0]->nblock());
651 for (auto& x1 : *range[1])
652 for (auto& x0 : *range[1])
653 for (auto& c1 : *range[0])
654 for (auto& c2 : *range[0])
655 if (t[0]->is_local(c2, c1, x0, x1))
656 subtasks_.push_back(make_shared<Task_local>(array<const Index,4>{{c2, c1, x0, x1}}, in, t[0], range));
657 }
658
Task93(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)659 Task93::Task93(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
660 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
661 out_ = t[0];
662 in_ = in;
663 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[0]->nblock()*range[0]->nblock());
664 for (auto& x2 : *range[1])
665 for (auto& x3 : *range[1])
666 for (auto& c2 : *range[0])
667 for (auto& c1 : *range[0])
668 if (t[0]->is_local(c1, c2, x3, x2))
669 subtasks_.push_back(make_shared<Task_local>(array<const Index,4>{{c1, c2, x3, x2}}, in, t[0], range));
670 }
671
Task94(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)672 Task94::Task94(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
673 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
674 out_ = t[0];
675 in_ = in;
676 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[0]->nblock()*range[0]->nblock());
677 for (auto& x2 : *range[1])
678 for (auto& x3 : *range[1])
679 for (auto& c2 : *range[0])
680 for (auto& c1 : *range[0])
681 if (t[0]->is_local(c1, c2, x3, x2))
682 subtasks_.push_back(make_shared<Task_local>(array<const Index,4>{{c1, c2, x3, x2}}, in, t[0], range));
683 }
684
Task95(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)685 Task95::Task95(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
686 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
687 out_ = t[0];
688 in_ = in;
689 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[0]->nblock()*range[0]->nblock());
690 for (auto& x1 : *range[1])
691 for (auto& x0 : *range[1])
692 for (auto& c1 : *range[0])
693 for (auto& c2 : *range[0])
694 if (t[0]->is_local(c2, c1, x0, x1))
695 subtasks_.push_back(make_shared<Task_local>(array<const Index,4>{{c2, c1, x0, x1}}, in, t[0], range));
696 }
697
Task96(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)698 Task96::Task96(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
699 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
700 out_ = t[0];
701 in_ = in;
702 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[0]->nblock()*range[1]->nblock()*range[1]->nblock()*range[0]->nblock());
703 for (auto& x4 : *range[1])
704 for (auto& x5 : *range[1])
705 for (auto& c1 : *range[0])
706 for (auto& x2 : *range[1])
707 for (auto& x3 : *range[1])
708 for (auto& c2 : *range[0])
709 if (t[0]->is_local(c2, x3, x2, c1, x5, x4))
710 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{c2, x3, x2, c1, x5, x4}}, in, t[0], range));
711 }
712
Task97(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)713 Task97::Task97(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
714 array<shared_ptr<const Tensor>,1> in = {{t[1]}};
715 out_ = t[0];
716 in_ = in;
717 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[0]->nblock()*range[0]->nblock());
718 for (auto& x2 : *range[1])
719 for (auto& x3 : *range[1])
720 for (auto& c3 : *range[0])
721 for (auto& c2 : *range[0])
722 if (t[0]->is_local(c2, c3, x3, x2))
723 subtasks_.push_back(make_shared<Task_local>(array<const Index,4>{{c2, c3, x3, x2}}, in, t[0], range));
724 }
725
Task98(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)726 Task98::Task98(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
727 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
728 out_ = t[0];
729 in_ = in;
730 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[0]->nblock()*range[0]->nblock());
731 for (auto& x1 : *range[1])
732 for (auto& x0 : *range[1])
733 for (auto& c1 : *range[0])
734 for (auto& c2 : *range[0])
735 if (t[0]->is_local(c2, c1, x0, x1))
736 subtasks_.push_back(make_shared<Task_local>(array<const Index,4>{{c2, c1, x0, x1}}, in, t[0], range));
737 }
738
Task99(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)739 Task99::Task99(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
740 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
741 out_ = t[0];
742 in_ = in;
743 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[0]->nblock()*range[1]->nblock()*range[1]->nblock()*range[0]->nblock());
744 for (auto& x4 : *range[1])
745 for (auto& x5 : *range[1])
746 for (auto& c1 : *range[0])
747 for (auto& x2 : *range[1])
748 for (auto& x3 : *range[1])
749 for (auto& c2 : *range[0])
750 if (t[0]->is_local(c2, x3, x2, c1, x5, x4))
751 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{c2, x3, x2, c1, x5, x4}}, in, t[0], range));
752 }
753
754 #endif
755