1 //
2 // BAGEL - Brilliantly Advanced General Electronic Structure Library
3 // Filename: MRCI_gen2.cc
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/mrci/MRCI_tasks2.h>
29
30 using namespace std;
31 using namespace bagel;
32 using namespace bagel::SMITH;
33 using namespace bagel::SMITH::MRCI;
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>,3> in = {{t[1], t[2], t[3]}};
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& x0 : *range[1])
41 for (auto& x3 : *range[1])
42 for (auto& x4 : *range[1])
43 for (auto& x2 : *range[1])
44 for (auto& x5 : *range[1])
45 for (auto& x1 : *range[1])
46 if (t[0]->is_local(x1, x5, x2, x4, x3, x0))
47 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x1, x5, x2, x4, x3, x0}}, 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>,4> in = {{t[1], t[2], t[3], t[4]}};
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()*range[1]->nblock()*range[1]->nblock());
55 for (auto& x2 : *range[1])
56 for (auto& x3 : *range[1])
57 for (auto& x0 : *range[1])
58 for (auto& x4 : *range[1])
59 for (auto& x5 : *range[1])
60 for (auto& x1 : *range[1])
61 for (auto& x6 : *range[1])
62 for (auto& x7 : *range[1])
63 if (t[0]->is_local(x7, x6, x1, x5, x4, x0, x3, x2))
64 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x6, x1, x5, x4, x0, x3, x2}}, in, t[0], range));
65 }
66
Task52(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)67 Task52::Task52(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
68 array<shared_ptr<const Tensor>,4> in = {{t[1], t[2], t[3], t[4]}};
69 out_ = t[0];
70 in_ = in;
71 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());
72 for (auto& x0 : *range[1])
73 for (auto& x2 : *range[1])
74 for (auto& x3 : *range[1])
75 for (auto& x4 : *range[1])
76 for (auto& x5 : *range[1])
77 for (auto& x1 : *range[1])
78 for (auto& x6 : *range[1])
79 for (auto& x7 : *range[1])
80 if (t[0]->is_local(x7, x6, x1, x5, x4, x3, x2, x0))
81 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x6, x1, x5, x4, x3, x2, x0}}, in, t[0], range));
82 }
83
Task53(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)84 Task53::Task53(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
85 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
86 out_ = t[0];
87 in_ = in;
88 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
89 for (auto& x2 : *range[1])
90 for (auto& x3 : *range[1])
91 for (auto& x0 : *range[1])
92 for (auto& x4 : *range[1])
93 for (auto& x5 : *range[1])
94 for (auto& x1 : *range[1])
95 if (t[0]->is_local(x1, x5, x4, x0, x3, x2))
96 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x1, x5, x4, x0, x3, x2}}, in, t[0], range));
97 }
98
Task54(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)99 Task54::Task54(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
100 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
101 out_ = t[0];
102 in_ = in;
103 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
104 for (auto& x0 : *range[1])
105 for (auto& x2 : *range[1])
106 for (auto& x3 : *range[1])
107 for (auto& x4 : *range[1])
108 for (auto& x5 : *range[1])
109 for (auto& x1 : *range[1])
110 if (t[0]->is_local(x1, x5, x4, x3, x2, x0))
111 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x1, x5, x4, x3, x2, x0}}, in, t[0], range));
112 }
113
Task55(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)114 Task55::Task55(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
115 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
116 out_ = t[0];
117 in_ = in;
118 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
119 for (auto& x0 : *range[1])
120 for (auto& x1 : *range[1])
121 for (auto& x2 : *range[1])
122 for (auto& x3 : *range[1])
123 for (auto& x5 : *range[1])
124 for (auto& x4 : *range[1])
125 if (t[0]->is_local(x4, x5, x3, x2, x1, x0))
126 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x4, x5, x3, x2, x1, x0}}, in, t[0], range));
127 }
128
Task56(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)129 Task56::Task56(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
130 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
131 out_ = t[0];
132 in_ = in;
133 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
134 for (auto& x2 : *range[1])
135 for (auto& x3 : *range[1])
136 for (auto& x4 : *range[1])
137 for (auto& x1 : *range[1])
138 for (auto& x0 : *range[1])
139 for (auto& x5 : *range[1])
140 if (t[0]->is_local(x5, x0, x1, x4, x3, x2))
141 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x0, x1, x4, x3, x2}}, 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());
149 for (auto& x3 : *range[1])
150 for (auto& x1 : *range[1])
151 for (auto& x4 : *range[1])
152 for (auto& x2 : *range[1])
153 for (auto& x0 : *range[1])
154 for (auto& x5 : *range[1])
155 if (t[0]->is_local(x5, x0, x2, x4, x1, x3))
156 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x0, x2, x4, x1, x3}}, in, t[0], range));
157 }
158
Task58(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)159 Task58::Task58(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
160 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
161 out_ = t[0];
162 in_ = in;
163 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
164 for (auto& x2 : *range[1])
165 for (auto& x1 : *range[1])
166 for (auto& x4 : *range[1])
167 for (auto& x3 : *range[1])
168 for (auto& x0 : *range[1])
169 for (auto& x5 : *range[1])
170 if (t[0]->is_local(x5, x0, x3, x4, x1, x2))
171 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x0, x3, x4, x1, x2}}, in, t[0], range));
172 }
173
Task59(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)174 Task59::Task59(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
175 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
176 out_ = t[0];
177 in_ = in;
178 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
179 for (auto& x0 : *range[1])
180 for (auto& x2 : *range[1])
181 for (auto& x4 : *range[1])
182 for (auto& x1 : *range[1])
183 for (auto& x3 : *range[1])
184 for (auto& x5 : *range[1])
185 if (t[0]->is_local(x5, x3, x1, x4, x2, x0))
186 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x3, x1, x4, x2, x0}}, in, t[0], range));
187 }
188
Task60(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)189 Task60::Task60(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
190 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
191 out_ = t[0];
192 in_ = in;
193 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
194 for (auto& x0 : *range[1])
195 for (auto& x3 : *range[1])
196 for (auto& x4 : *range[1])
197 for (auto& x1 : *range[1])
198 for (auto& x2 : *range[1])
199 for (auto& x5 : *range[1])
200 if (t[0]->is_local(x5, x2, x1, x4, x3, x0))
201 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x2, x1, x4, x3, x0}}, in, t[0], range));
202 }
203
Task61(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)204 Task61::Task61(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
205 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
206 out_ = t[0];
207 in_ = in;
208 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
209 for (auto& x0 : *range[1])
210 for (auto& x1 : *range[1])
211 for (auto& x2 : *range[1])
212 for (auto& x3 : *range[1])
213 for (auto& x4 : *range[1])
214 for (auto& x5 : *range[1])
215 if (t[0]->is_local(x5, x4, x3, x2, x1, x0))
216 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x4, x3, x2, x1, x0}}, in, t[0], range));
217 }
218
Task62(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)219 Task62::Task62(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
220 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
221 out_ = t[0];
222 in_ = in;
223 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
224 for (auto& x2 : *range[1])
225 for (auto& x1 : *range[1])
226 for (auto& x0 : *range[1])
227 for (auto& x3 : *range[1])
228 for (auto& x4 : *range[1])
229 for (auto& x5 : *range[1])
230 if (t[0]->is_local(x5, x4, x3, x0, x1, x2))
231 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x4, x3, x0, x1, x2}}, in, t[0], range));
232 }
233
Task63(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)234 Task63::Task63(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
235 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
236 out_ = t[0];
237 in_ = in;
238 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());
239 for (auto& x2 : *range[1])
240 for (auto& x3 : *range[1])
241 for (auto& x4 : *range[1])
242 for (auto& x1 : *range[1])
243 for (auto& x5 : *range[1])
244 for (auto& x6 : *range[1])
245 for (auto& x0 : *range[1])
246 for (auto& x7 : *range[1])
247 if (t[0]->is_local(x7, x0, x6, x5, x1, x4, x3, x2))
248 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x0, x6, x5, x1, x4, x3, x2}}, in, t[0], range));
249 }
250
Task64(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)251 Task64::Task64(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
252 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
253 out_ = t[0];
254 in_ = in;
255 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());
256 for (auto& x2 : *range[1])
257 for (auto& x1 : *range[1])
258 for (auto& x3 : *range[1])
259 for (auto& x4 : *range[1])
260 for (auto& x5 : *range[1])
261 for (auto& x6 : *range[1])
262 for (auto& x0 : *range[1])
263 for (auto& x7 : *range[1])
264 if (t[0]->is_local(x7, x0, x6, x5, x4, x3, x1, x2))
265 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x0, x6, x5, x4, x3, x1, x2}}, in, t[0], range));
266 }
267
Task65(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)268 Task65::Task65(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
269 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
270 out_ = t[0];
271 in_ = in;
272 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
273 for (auto& x0 : *range[1])
274 for (auto& x1 : *range[1])
275 for (auto& x3 : *range[1])
276 for (auto& x4 : *range[1])
277 for (auto& x2 : *range[1])
278 for (auto& x5 : *range[1])
279 if (t[0]->is_local(x5, x2, x4, x3, x1, x0))
280 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x2, x4, x3, x1, x0}}, in, t[0], range));
281 }
282
Task66(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)283 Task66::Task66(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
284 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
285 out_ = t[0];
286 in_ = in;
287 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
288 for (auto& x3 : *range[1])
289 for (auto& x1 : *range[1])
290 for (auto& x2 : *range[1])
291 for (auto& x4 : *range[1])
292 for (auto& x0 : *range[1])
293 for (auto& x5 : *range[1])
294 if (t[0]->is_local(x5, x0, x4, x2, x1, x3))
295 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x0, x4, x2, x1, x3}}, in, t[0], range));
296 }
297
Task67(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)298 Task67::Task67(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
299 array<shared_ptr<const Tensor>,4> in = {{t[1], t[2], t[3], t[4]}};
300 out_ = t[0];
301 in_ = in;
302 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
303 for (auto& x4 : *range[1])
304 for (auto& x1 : *range[1])
305 for (auto& x0 : *range[1])
306 for (auto& x5 : *range[1])
307 for (auto& x2 : *range[1])
308 for (auto& x3 : *range[1])
309 if (t[0]->is_local(x5, x0, x1, x4))
310 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x0, x1, x4, x3, x2}}, in, t[0], range));
311 }
312
Task68(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)313 Task68::Task68(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
314 array<shared_ptr<const Tensor>,4> in = {{t[1], t[2], t[3], t[4]}};
315 out_ = t[0];
316 in_ = in;
317 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
318 for (auto& x0 : *range[1])
319 for (auto& x1 : *range[1])
320 for (auto& x4 : *range[1])
321 for (auto& x5 : *range[1])
322 for (auto& x2 : *range[1])
323 for (auto& x3 : *range[1])
324 if (t[0]->is_local(x5, x4, x1, x0))
325 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x4, x1, x0, x3, x2}}, in, t[0], range));
326 }
327
Task69(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)328 Task69::Task69(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
329 array<shared_ptr<const Tensor>,5> in = {{t[1], t[2], t[3], t[4], t[5]}};
330 out_ = t[0];
331 in_ = in;
332 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());
333 for (auto& x6 : *range[1])
334 for (auto& x1 : *range[1])
335 for (auto& x0 : *range[1])
336 for (auto& x7 : *range[1])
337 for (auto& x2 : *range[1])
338 for (auto& x3 : *range[1])
339 for (auto& x4 : *range[1])
340 for (auto& x5 : *range[1])
341 if (t[0]->is_local(x7, x0, x1, x6))
342 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x0, x1, x6, x5, x4, x3, x2}}, in, t[0], range));
343 }
344
Task70(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)345 Task70::Task70(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
346 array<shared_ptr<const Tensor>,5> in = {{t[1], t[2], t[3], t[4], t[5]}};
347 out_ = t[0];
348 in_ = in;
349 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());
350 for (auto& x0 : *range[1])
351 for (auto& x1 : *range[1])
352 for (auto& x6 : *range[1])
353 for (auto& x7 : *range[1])
354 for (auto& x2 : *range[1])
355 for (auto& x3 : *range[1])
356 for (auto& x4 : *range[1])
357 for (auto& x5 : *range[1])
358 if (t[0]->is_local(x7, x6, x1, x0))
359 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x6, x1, x0, x5, x4, x3, 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>,4> in = {{t[1], t[2], t[3], t[4]}};
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()*range[1]->nblock()*range[1]->nblock());
367 for (auto& x0 : *range[1])
368 for (auto& x1 : *range[1])
369 for (auto& x2 : *range[1])
370 for (auto& x3 : *range[1])
371 for (auto& x5 : *range[1])
372 for (auto& x4 : *range[1])
373 for (auto& x6 : *range[1])
374 for (auto& x7 : *range[1])
375 if (t[0]->is_local(x7, x6, x4, x5, x3, x2, x1, x0))
376 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x6, x4, x5, x3, x2, x1, x0}}, in, t[0], range));
377 }
378
Task72(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)379 Task72::Task72(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
380 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
381 out_ = t[0];
382 in_ = in;
383 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
384 for (auto& x0 : *range[1])
385 for (auto& x1 : *range[1])
386 for (auto& x4 : *range[1])
387 for (auto& x3 : *range[1])
388 for (auto& x2 : *range[1])
389 for (auto& x5 : *range[1])
390 if (t[0]->is_local(x5, x2, x3, x4, x1, x0))
391 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x2, x3, x4, x1, x0}}, in, t[0], range));
392 }
393
Task73(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)394 Task73::Task73(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
395 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
396 out_ = t[0];
397 in_ = in;
398 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());
399 for (auto& x0 : *range[1])
400 for (auto& x1 : *range[1])
401 for (auto& x2 : *range[1])
402 for (auto& x3 : *range[1])
403 for (auto& x5 : *range[1])
404 for (auto& x6 : *range[1])
405 for (auto& x4 : *range[1])
406 for (auto& x7 : *range[1])
407 if (t[0]->is_local(x7, x4, x6, x5, x3, x2, x1, x0))
408 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x4, x6, x5, x3, x2, x1, x0}}, in, t[0], range));
409 }
410
Task74(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)411 Task74::Task74(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
412 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
413 out_ = t[0];
414 in_ = in;
415 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());
416 for (auto& x0 : *range[1])
417 for (auto& x1 : *range[1])
418 for (auto& x3 : *range[1])
419 for (auto& x4 : *range[1])
420 for (auto& x5 : *range[1])
421 for (auto& x6 : *range[1])
422 for (auto& x2 : *range[1])
423 for (auto& x7 : *range[1])
424 if (t[0]->is_local(x7, x2, x6, x5, x4, x3, x1, x0))
425 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x2, x6, x5, x4, x3, x1, x0}}, in, t[0], range));
426 }
427
Task75(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)428 Task75::Task75(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
429 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
430 out_ = t[0];
431 in_ = in;
432 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
433 for (auto& x0 : *range[1])
434 for (auto& x1 : *range[1])
435 for (auto& x2 : *range[1])
436 for (auto& x4 : *range[1])
437 for (auto& x3 : *range[1])
438 for (auto& x5 : *range[1])
439 if (t[0]->is_local(x5, x3, x4, x2, x1, x0))
440 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x3, x4, x2, x1, x0}}, in, t[0], range));
441 }
442
Task76(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)443 Task76::Task76(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
444 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
445 out_ = t[0];
446 in_ = in;
447 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
448 for (auto& x1 : *range[1])
449 for (auto& x2 : *range[1])
450 for (auto& x4 : *range[1])
451 for (auto& x3 : *range[1])
452 for (auto& x0 : *range[1])
453 for (auto& x5 : *range[1])
454 if (t[0]->is_local(x5, x0, x3, x4, x2, x1))
455 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x0, x3, x4, x2, x1}}, in, t[0], range));
456 }
457
Task77(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)458 Task77::Task77(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
459 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
460 out_ = t[0];
461 in_ = in;
462 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
463 for (auto& x1 : *range[1])
464 for (auto& x2 : *range[1])
465 for (auto& x0 : *range[1])
466 for (auto& x3 : *range[1])
467 for (auto& x4 : *range[1])
468 for (auto& x5 : *range[1])
469 if (t[0]->is_local(x5, x4, x3, x0, x2, x1))
470 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x4, x3, x0, x2, x1}}, in, t[0], range));
471 }
472
Task78(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)473 Task78::Task78(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
474 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
475 out_ = t[0];
476 in_ = in;
477 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
478 for (auto& x1 : *range[1])
479 for (auto& x2 : *range[1])
480 for (auto& x3 : *range[1])
481 for (auto& x4 : *range[1])
482 for (auto& x0 : *range[1])
483 for (auto& x5 : *range[1])
484 if (t[0]->is_local(x5, x0, x4, x3, x2, x1))
485 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x0, x4, x3, x2, x1}}, in, t[0], range));
486 }
487
Task79(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)488 Task79::Task79(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
489 array<shared_ptr<const Tensor>,1> in = {{t[1]}};
490 out_ = t[0];
491 in_ = in;
492 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
493 for (auto& x1 : *range[1])
494 for (auto& x2 : *range[1])
495 for (auto& x0 : *range[1])
496 for (auto& x3 : *range[1])
497 if (t[0]->is_local(x3, x0, x2, x1))
498 subtasks_.push_back(make_shared<Task_local>(array<const Index,4>{{x3, x0, x2, x1}}, in, t[0], range));
499 }
500
Task80(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)501 Task80::Task80(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
502 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
503 out_ = t[0];
504 in_ = in;
505 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());
506 for (auto& x1 : *range[1])
507 for (auto& x2 : *range[1])
508 for (auto& x0 : *range[1])
509 for (auto& x4 : *range[1])
510 for (auto& x5 : *range[1])
511 for (auto& x3 : *range[1])
512 for (auto& x6 : *range[1])
513 for (auto& x7 : *range[1])
514 if (t[0]->is_local(x7, x6, x3, x5, x4, x0, x2, x1))
515 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x6, x3, x5, x4, x0, x2, x1}}, in, t[0], range));
516 }
517
Task81(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)518 Task81::Task81(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
519 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
520 out_ = t[0];
521 in_ = in;
522 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
523 for (auto& x1 : *range[1])
524 for (auto& x2 : *range[1])
525 for (auto& x0 : *range[1])
526 for (auto& x3 : *range[1])
527 for (auto& x5 : *range[1])
528 for (auto& x4 : *range[1])
529 if (t[0]->is_local(x4, x5, x3, x0, x2, x1))
530 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x4, x5, x3, x0, x2, x1}}, in, t[0], range));
531 }
532
Task82(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)533 Task82::Task82(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
534 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
535 out_ = t[0];
536 in_ = in;
537 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());
538 for (auto& x1 : *range[1])
539 for (auto& x2 : *range[1])
540 for (auto& x3 : *range[1])
541 for (auto& x4 : *range[1])
542 for (auto& x6 : *range[1])
543 for (auto& x5 : *range[1])
544 for (auto& x0 : *range[1])
545 for (auto& x7 : *range[1])
546 if (t[0]->is_local(x7, x0, x5, x6, x4, x3, x2, x1))
547 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x0, x5, x6, x4, x3, x2, x1}}, in, t[0], range));
548 }
549
Task83(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)550 Task83::Task83(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
551 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
552 out_ = t[0];
553 in_ = in;
554 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());
555 for (auto& x1 : *range[1])
556 for (auto& x2 : *range[1])
557 for (auto& x4 : *range[1])
558 for (auto& x5 : *range[1])
559 for (auto& x6 : *range[1])
560 for (auto& x3 : *range[1])
561 for (auto& x0 : *range[1])
562 for (auto& x7 : *range[1])
563 if (t[0]->is_local(x7, x0, x3, x6, x5, x4, x2, x1))
564 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x0, x3, x6, x5, x4, x2, x1}}, in, t[0], range));
565 }
566
Task84(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)567 Task84::Task84(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
568 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
569 out_ = t[0];
570 in_ = in;
571 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());
572 for (auto& x1 : *range[1])
573 for (auto& x2 : *range[1])
574 for (auto& x3 : *range[1])
575 for (auto& x4 : *range[1])
576 for (auto& x0 : *range[1])
577 for (auto& x5 : *range[1])
578 for (auto& x6 : *range[1])
579 for (auto& x7 : *range[1])
580 if (t[0]->is_local(x7, x6, x5, x0, x4, x3, x2, x1))
581 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x6, x5, x0, x4, x3, x2, x1}}, in, t[0], range));
582 }
583
Task85(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)584 Task85::Task85(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
585 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
586 out_ = t[0];
587 in_ = in;
588 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());
589 for (auto& x1 : *range[1])
590 for (auto& x2 : *range[1])
591 for (auto& x0 : *range[1])
592 for (auto& x3 : *range[1])
593 for (auto& x4 : *range[1])
594 for (auto& x5 : *range[1])
595 for (auto& x6 : *range[1])
596 for (auto& x7 : *range[1])
597 if (t[0]->is_local(x7, x6, x5, x4, x3, x0, x2, x1))
598 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x6, x5, x4, x3, x0, x2, x1}}, in, t[0], range));
599 }
600
Task86(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)601 Task86::Task86(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
602 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
603 out_ = t[0];
604 in_ = in;
605 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());
606 for (auto& x1 : *range[1])
607 for (auto& x2 : *range[1])
608 for (auto& x3 : *range[1])
609 for (auto& x4 : *range[1])
610 for (auto& x5 : *range[1])
611 for (auto& x6 : *range[1])
612 for (auto& x0 : *range[1])
613 for (auto& x7 : *range[1])
614 if (t[0]->is_local(x7, x0, x6, x5, x4, x3, x2, x1))
615 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x0, x6, x5, x4, x3, x2, x1}}, in, t[0], range));
616 }
617
Task87(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)618 Task87::Task87(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
619 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
620 out_ = t[0];
621 in_ = in;
622 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());
623 for (auto& x1 : *range[1])
624 for (auto& x2 : *range[1])
625 for (auto& x0 : *range[1])
626 for (auto& x3 : *range[1])
627 for (auto& x5 : *range[1])
628 for (auto& x6 : *range[1])
629 for (auto& x4 : *range[1])
630 for (auto& x7 : *range[1])
631 if (t[0]->is_local(x7, x4, x6, x5, x3, x0, x2, x1))
632 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x4, x6, x5, x3, x0, x2, x1}}, in, t[0], range));
633 }
634
Task88(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)635 Task88::Task88(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
636 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
637 out_ = t[0];
638 in_ = in;
639 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());
640 for (auto& x1 : *range[1])
641 for (auto& x2 : *range[1])
642 for (auto& x0 : *range[1])
643 for (auto& x4 : *range[1])
644 for (auto& x5 : *range[1])
645 for (auto& x6 : *range[1])
646 for (auto& x3 : *range[1])
647 for (auto& x7 : *range[1])
648 if (t[0]->is_local(x7, x3, x6, x5, x4, x0, x2, x1))
649 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x3, x6, x5, x4, x0, x2, x1}}, in, t[0], range));
650 }
651
Task89(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)652 Task89::Task89(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
653 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
654 out_ = t[0];
655 in_ = in;
656 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
657 for (auto& x1 : *range[1])
658 for (auto& x2 : *range[1])
659 for (auto& x0 : *range[1])
660 for (auto& x4 : *range[1])
661 for (auto& x3 : *range[1])
662 for (auto& x5 : *range[1])
663 if (t[0]->is_local(x5, x3, x4, x0, x2, x1))
664 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x3, x4, x0, x2, x1}}, in, t[0], range));
665 }
666
Task90(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)667 Task90::Task90(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
668 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
669 out_ = t[0];
670 in_ = in;
671 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());
672 for (auto& x1 : *range[1])
673 for (auto& x2 : *range[1])
674 for (auto& x4 : *range[1])
675 for (auto& x5 : *range[1])
676 for (auto& x3 : *range[1])
677 for (auto& x6 : *range[1])
678 for (auto& x0 : *range[1])
679 for (auto& x7 : *range[1])
680 if (t[0]->is_local(x7, x0, x6, x3, x5, x4, x2, x1))
681 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x0, x6, x3, x5, x4, x2, x1}}, in, t[0], range));
682 }
683
Task91(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)684 Task91::Task91(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
685 array<shared_ptr<const Tensor>,4> in = {{t[1], t[2], t[3], t[4]}};
686 out_ = t[0];
687 in_ = in;
688 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());
689 for (auto& x1 : *range[1])
690 for (auto& x2 : *range[1])
691 for (auto& x5 : *range[1])
692 for (auto& x6 : *range[1])
693 for (auto& x0 : *range[1])
694 for (auto& x7 : *range[1])
695 for (auto& x3 : *range[1])
696 for (auto& x4 : *range[1])
697 if (t[0]->is_local(x7, x0, x6, x5, x2, x1))
698 subtasks_.push_back(make_shared<Task_local>(array<const Index,8>{{x7, x0, x6, x5, x2, x1, x4, x3}}, in, t[0], range));
699 }
700
Task92(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)701 Task92::Task92(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
702 array<shared_ptr<const Tensor>,4> in = {{t[1], t[2], t[3], t[4]}};
703 out_ = t[0];
704 in_ = in;
705 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());
706 for (auto& x1 : *range[1])
707 for (auto& x2 : *range[1])
708 for (auto& x7 : *range[1])
709 for (auto& x8 : *range[1])
710 for (auto& x0 : *range[1])
711 for (auto& x9 : *range[1])
712 for (auto& x3 : *range[1])
713 for (auto& x4 : *range[1])
714 for (auto& x5 : *range[1])
715 for (auto& x6 : *range[1])
716 if (t[0]->is_local(x9, x0, x8, x7, x2, x1))
717 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));
718 }
719
Task93(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)720 Task93::Task93(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
721 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
722 out_ = t[0];
723 in_ = in;
724 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
725 for (auto& x0 : *range[1])
726 for (auto& x2 : *range[1])
727 for (auto& x3 : *range[1])
728 for (auto& x4 : *range[1])
729 for (auto& x1 : *range[1])
730 for (auto& x5 : *range[1])
731 if (t[0]->is_local(x5, x1, x4, x3, x2, x0))
732 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x1, x4, x3, x2, x0}}, in, t[0], range));
733 }
734
Task94(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)735 Task94::Task94(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
736 array<shared_ptr<const Tensor>,1> in = {{t[1]}};
737 out_ = t[0];
738 in_ = in;
739 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
740 for (auto& x0 : *range[1])
741 for (auto& x2 : *range[1])
742 for (auto& x1 : *range[1])
743 for (auto& x3 : *range[1])
744 if (t[0]->is_local(x3, x1, x2, x0))
745 subtasks_.push_back(make_shared<Task_local>(array<const Index,4>{{x3, x1, x2, x0}}, in, t[0], range));
746 }
747
Task95(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)748 Task95::Task95(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
749 array<shared_ptr<const Tensor>,1> in = {{t[1]}};
750 out_ = t[0];
751 in_ = in;
752 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
753 for (auto& x2 : *range[1])
754 for (auto& x3 : *range[1])
755 for (auto& x1 : *range[1])
756 for (auto& x4 : *range[1])
757 for (auto& x0 : *range[1])
758 for (auto& x5 : *range[1])
759 if (t[0]->is_local(x5, x0, x4, x1, x3, x2))
760 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x0, x4, x1, x3, x2}}, in, t[0], range));
761 }
762
Task96(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)763 Task96::Task96(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
764 array<shared_ptr<const Tensor>,3> in = {{t[1], t[2], t[3]}};
765 out_ = t[0];
766 in_ = in;
767 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
768 for (auto& x0 : *range[1])
769 for (auto& x3 : *range[1])
770 for (auto& x1 : *range[1])
771 for (auto& x2 : *range[1])
772 if (t[0]->is_local(x3, x0))
773 subtasks_.push_back(make_shared<Task_local>(array<const Index,4>{{x3, x0, x2, x1}}, in, t[0], range));
774 }
775
Task97(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)776 Task97::Task97(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
777 array<shared_ptr<const Tensor>,4> in = {{t[1], t[2], t[3], t[4]}};
778 out_ = t[0];
779 in_ = in;
780 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
781 for (auto& x0 : *range[1])
782 for (auto& x5 : *range[1])
783 for (auto& x1 : *range[1])
784 for (auto& x2 : *range[1])
785 for (auto& x3 : *range[1])
786 for (auto& x4 : *range[1])
787 if (t[0]->is_local(x5, x0))
788 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x0, x4, x3, x2, x1}}, in, t[0], range));
789 }
790
Task98(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)791 Task98::Task98(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
792 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
793 out_ = t[0];
794 in_ = in;
795 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
796 for (auto& x1 : *range[1])
797 for (auto& x3 : *range[1])
798 for (auto& x4 : *range[1])
799 for (auto& x2 : *range[1])
800 for (auto& x0 : *range[1])
801 for (auto& x5 : *range[1])
802 if (t[0]->is_local(x5, x0, x2, x4, x3, x1))
803 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x0, x2, x4, x3, x1}}, in, t[0], range));
804 }
805
Task99(vector<shared_ptr<Tensor>> t,array<shared_ptr<const IndexRange>,3> range)806 Task99::Task99(vector<shared_ptr<Tensor>> t, array<shared_ptr<const IndexRange>,3> range) {
807 array<shared_ptr<const Tensor>,2> in = {{t[1], t[2]}};
808 out_ = t[0];
809 in_ = in;
810 subtasks_.reserve(range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock()*range[1]->nblock());
811 for (auto& x0 : *range[1])
812 for (auto& x2 : *range[1])
813 for (auto& x1 : *range[1])
814 for (auto& x3 : *range[1])
815 for (auto& x4 : *range[1])
816 for (auto& x5 : *range[1])
817 if (t[0]->is_local(x5, x4, x3, x1, x2, x0))
818 subtasks_.push_back(make_shared<Task_local>(array<const Index,6>{{x5, x4, x3, x1, x2, x0}}, in, t[0], range));
819 }
820
821 #endif
822