1 //
2 // BAGEL - Brilliantly Advanced General Electronic Structure Library
3 // Filename: RelCASPT2_residualqq.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 
29 #include <src/smith/relcaspt2/RelCASPT2.h>
30 #include <src/smith/relcaspt2/RelCASPT2_tasks.h>
31 
32 using namespace std;
33 using namespace bagel;
34 using namespace bagel::SMITH;
35 
make_residualq(const bool reset,const bool diagonal)36 shared_ptr<Queue> RelCASPT2::RelCASPT2::make_residualq(const bool reset, const bool diagonal) {
37 
38   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
39   auto residualq = make_shared<Queue>();
40   auto tensor30 = vector<shared_ptr<Tensor>>{r};
41   auto task30 = make_shared<Task30>(tensor30, reset);
42   residualq->add_task(task30);
43 
44   vector<IndexRange> I0_index = {closed_, closed_, active_, active_};
45   auto I0 = make_shared<Tensor>(I0_index);
46   auto tensor31 = vector<shared_ptr<Tensor>>{r, I0};
47   auto task31 = make_shared<Task31>(tensor31, pindex);
48   task31->add_dep(task30);
49   residualq->add_task(task31);
50 
51   auto tensor32 = vector<shared_ptr<Tensor>>{I0, Gamma0_(), t2};
52   auto task32 = make_shared<Task32>(tensor32, pindex);
53   task31->add_dep(task32);
54   task32->add_dep(task30);
55   residualq->add_task(task32);
56 
57   auto tensor33 = vector<shared_ptr<Tensor>>{I0, Gamma92_(), t2};
58   auto task33 = make_shared<Task33>(tensor33, pindex, this->e0_);
59   task31->add_dep(task33);
60   task33->add_dep(task30);
61   residualq->add_task(task33);
62 
63   vector<IndexRange> I2_index = {closed_, active_, active_, closed_};
64   auto I2 = make_shared<Tensor>(I2_index);
65   auto tensor34 = vector<shared_ptr<Tensor>>{r, I2};
66   auto task34 = make_shared<Task34>(tensor34, pindex);
67   task34->add_dep(task30);
68   residualq->add_task(task34);
69 
70   vector<IndexRange> I3_index = {closed_, closed_, active_, active_};
71   auto I3 = make_shared<Tensor>(I3_index);
72   auto tensor35 = vector<shared_ptr<Tensor>>{I2, f1_, I3};
73   auto task35 = make_shared<Task35>(tensor35, pindex);
74   task34->add_dep(task35);
75   task35->add_dep(task30);
76   residualq->add_task(task35);
77 
78   auto tensor36 = vector<shared_ptr<Tensor>>{I3, Gamma92_(), t2};
79   auto task36 = make_shared<Task36>(tensor36, pindex);
80   task35->add_dep(task36);
81   task36->add_dep(task30);
82   residualq->add_task(task36);
83 
84   vector<IndexRange> I6_index = {closed_, active_, active_, active_};
85   auto I6 = make_shared<Tensor>(I6_index);
86   auto tensor37 = vector<shared_ptr<Tensor>>{I2, f1_, I6};
87   auto task37 = make_shared<Task37>(tensor37, pindex);
88   task34->add_dep(task37);
89   task37->add_dep(task30);
90   residualq->add_task(task37);
91 
92   auto tensor38 = vector<shared_ptr<Tensor>>{I6, Gamma2_(), t2};
93   auto task38 = make_shared<Task38>(tensor38, pindex);
94   task37->add_dep(task38);
95   task38->add_dep(task30);
96   residualq->add_task(task38);
97 
98   vector<IndexRange> I9_index = {closed_, closed_, active_, active_};
99   auto I9 = make_shared<Tensor>(I9_index);
100   auto tensor39 = vector<shared_ptr<Tensor>>{I2, Gamma3_(), I9};
101   auto task39 = make_shared<Task39>(tensor39, pindex);
102   task34->add_dep(task39);
103   task39->add_dep(task30);
104   residualq->add_task(task39);
105 
106   auto tensor40 = vector<shared_ptr<Tensor>>{I9, f1_, t2};
107   auto task40 = make_shared<Task40>(tensor40, pindex);
108   task39->add_dep(task40);
109   task40->add_dep(task30);
110   residualq->add_task(task40);
111 
112   vector<IndexRange> I11_index = {closed_, active_, active_, active_};
113   auto I11 = make_shared<Tensor>(I11_index);
114   auto tensor41 = vector<shared_ptr<Tensor>>{r, I11};
115   auto task41 = make_shared<Task41>(tensor41, pindex);
116   task41->add_dep(task30);
117   residualq->add_task(task41);
118 
119   vector<IndexRange> I12_index = {closed_, active_, active_, active_};
120   auto I12 = make_shared<Tensor>(I12_index);
121   auto tensor42 = vector<shared_ptr<Tensor>>{I11, Gamma4_(), I12};
122   auto task42 = make_shared<Task42>(tensor42, pindex);
123   task41->add_dep(task42);
124   task42->add_dep(task30);
125   residualq->add_task(task42);
126 
127   auto tensor43 = vector<shared_ptr<Tensor>>{I12, f1_, t2};
128   auto task43 = make_shared<Task43>(tensor43, pindex);
129   task42->add_dep(task43);
130   task43->add_dep(task30);
131   residualq->add_task(task43);
132 
133   auto tensor44 = vector<shared_ptr<Tensor>>{I11, Gamma5_(), t2};
134   auto task44 = make_shared<Task44>(tensor44, pindex);
135   task41->add_dep(task44);
136   task44->add_dep(task30);
137   residualq->add_task(task44);
138 
139   vector<IndexRange> I17_index = {closed_, active_, active_, active_};
140   auto I17 = make_shared<Tensor>(I17_index);
141   auto tensor45 = vector<shared_ptr<Tensor>>{I11, f1_, I17};
142   auto task45 = make_shared<Task45>(tensor45, pindex);
143   task41->add_dep(task45);
144   task45->add_dep(task30);
145   residualq->add_task(task45);
146 
147   auto tensor46 = vector<shared_ptr<Tensor>>{I17, Gamma6_(), t2};
148   auto task46 = make_shared<Task46>(tensor46, pindex);
149   task45->add_dep(task46);
150   task46->add_dep(task30);
151   residualq->add_task(task46);
152 
153   vector<IndexRange> I20_index = {closed_, active_};
154   auto I20 = make_shared<Tensor>(I20_index);
155   auto tensor47 = vector<shared_ptr<Tensor>>{I11, Gamma7_(), I20};
156   auto task47 = make_shared<Task47>(tensor47, pindex);
157   task41->add_dep(task47);
158   task47->add_dep(task30);
159   residualq->add_task(task47);
160 
161   vector<IndexRange> I21_index = {closed_, virt_, closed_, active_};
162   auto I21 = make_shared<Tensor>(I21_index);
163   auto tensor48 = vector<shared_ptr<Tensor>>{I20, f1_, I21};
164   auto task48 = make_shared<Task48>(tensor48, pindex);
165   task47->add_dep(task48);
166   task48->add_dep(task30);
167   residualq->add_task(task48);
168 
169   auto tensor49 = vector<shared_ptr<Tensor>>{I21, t2};
170   auto task49 = make_shared<Task49>(tensor49, pindex);
171   task48->add_dep(task49);
172   task49->add_dep(task30);
173   residualq->add_task(task49);
174 
175   vector<IndexRange> I26_index = {active_, closed_, active_, active_};
176   auto I26 = make_shared<Tensor>(I26_index);
177   auto tensor50 = vector<shared_ptr<Tensor>>{I11, Gamma9_(), I26};
178   auto task50 = make_shared<Task50>(tensor50, pindex);
179   task41->add_dep(task50);
180   task50->add_dep(task30);
181   residualq->add_task(task50);
182 
183   auto tensor51 = vector<shared_ptr<Tensor>>{I26, f1_, t2};
184   auto task51 = make_shared<Task51>(tensor51, pindex);
185   task50->add_dep(task51);
186   task51->add_dep(task30);
187   residualq->add_task(task51);
188 
189   vector<IndexRange> I29_index = {closed_, active_, active_, active_};
190   auto I29 = make_shared<Tensor>(I29_index);
191   auto tensor52 = vector<shared_ptr<Tensor>>{I11, Gamma6_(), I29};
192   auto task52 = make_shared<Task52>(tensor52, pindex);
193   task41->add_dep(task52);
194   task52->add_dep(task30);
195   residualq->add_task(task52);
196 
197   auto tensor53 = vector<shared_ptr<Tensor>>{I29, t2};
198   auto task53 = make_shared<Task53>(tensor53, pindex, this->e0_);
199   task52->add_dep(task53);
200   task53->add_dep(task30);
201   residualq->add_task(task53);
202 
203   auto tensor54 = vector<shared_ptr<Tensor>>{I29, f1_, t2};
204   auto task54 = make_shared<Task54>(tensor54, pindex);
205   task52->add_dep(task54);
206   task54->add_dep(task30);
207   residualq->add_task(task54);
208 
209   vector<IndexRange> I31_index = {closed_, closed_, active_, virt_};
210   auto I31 = make_shared<Tensor>(I31_index);
211   auto tensor55 = vector<shared_ptr<Tensor>>{r, I31};
212   auto task55 = make_shared<Task55>(tensor55, pindex);
213   task55->add_dep(task30);
214   residualq->add_task(task55);
215 
216   vector<IndexRange> I32_index = {closed_, closed_, active_, active_};
217   auto I32 = make_shared<Tensor>(I32_index);
218   auto tensor56 = vector<shared_ptr<Tensor>>{I31, f1_, I32};
219   auto task56 = make_shared<Task56>(tensor56, pindex);
220   task55->add_dep(task56);
221   task56->add_dep(task30);
222   residualq->add_task(task56);
223 
224   auto tensor57 = vector<shared_ptr<Tensor>>{I32, Gamma3_(), t2};
225   auto task57 = make_shared<Task57>(tensor57, pindex);
226   task56->add_dep(task57);
227   task57->add_dep(task30);
228   residualq->add_task(task57);
229 
230   vector<IndexRange> I35_index = {closed_, active_};
231   auto I35 = make_shared<Tensor>(I35_index);
232   auto tensor58 = vector<shared_ptr<Tensor>>{I31, f1_, I35};
233   auto task58 = make_shared<Task58>(tensor58, pindex);
234   task55->add_dep(task58);
235   task58->add_dep(task30);
236   residualq->add_task(task58);
237 
238   auto tensor59 = vector<shared_ptr<Tensor>>{I35, Gamma12_(), t2};
239   auto task59 = make_shared<Task59>(tensor59, pindex);
240   task58->add_dep(task59);
241   task59->add_dep(task30);
242   residualq->add_task(task59);
243 
244   vector<IndexRange> I38_index = {closed_, active_};
245   auto I38 = make_shared<Tensor>(I38_index);
246   auto tensor60 = vector<shared_ptr<Tensor>>{I31, f1_, I38};
247   auto task60 = make_shared<Task60>(tensor60, pindex);
248   task55->add_dep(task60);
249   task60->add_dep(task30);
250   residualq->add_task(task60);
251 
252   auto tensor61 = vector<shared_ptr<Tensor>>{I38, Gamma12_(), t2};
253   auto task61 = make_shared<Task61>(tensor61, pindex);
254   task60->add_dep(task61);
255   task61->add_dep(task30);
256   residualq->add_task(task61);
257 
258   vector<IndexRange> I41_index = {closed_, virt_, closed_, active_};
259   auto I41 = make_shared<Tensor>(I41_index);
260   auto tensor62 = vector<shared_ptr<Tensor>>{I31, Gamma14_(), I41};
261   auto task62 = make_shared<Task62>(tensor62, pindex);
262   task55->add_dep(task62);
263   task62->add_dep(task30);
264   residualq->add_task(task62);
265 
266   auto tensor63 = vector<shared_ptr<Tensor>>{I41, t2};
267   auto task63 = make_shared<Task63>(tensor63, pindex);
268   task62->add_dep(task63);
269   task63->add_dep(task30);
270   residualq->add_task(task63);
271 
272   vector<IndexRange> I45_index = {closed_, virt_, closed_, active_};
273   auto I45 = make_shared<Tensor>(I45_index);
274   auto tensor64 = vector<shared_ptr<Tensor>>{I31, f1_, I45};
275   auto task64 = make_shared<Task64>(tensor64, pindex);
276   task55->add_dep(task64);
277   task64->add_dep(task30);
278   residualq->add_task(task64);
279 
280   vector<IndexRange> I46_index = {closed_, virt_, closed_, active_};
281   auto I46 = make_shared<Tensor>(I46_index);
282   auto tensor65 = vector<shared_ptr<Tensor>>{I45, Gamma16_(), I46};
283   auto task65 = make_shared<Task65>(tensor65, pindex);
284   task64->add_dep(task65);
285   task65->add_dep(task30);
286   residualq->add_task(task65);
287 
288   auto tensor66 = vector<shared_ptr<Tensor>>{I46, t2};
289   auto task66 = make_shared<Task66>(tensor66, pindex);
290   task65->add_dep(task66);
291   task66->add_dep(task30);
292   residualq->add_task(task66);
293 
294   vector<IndexRange> I51_index = {closed_, virt_, closed_, active_};
295   auto I51 = make_shared<Tensor>(I51_index);
296   auto tensor67 = vector<shared_ptr<Tensor>>{I31, f1_, I51};
297   auto task67 = make_shared<Task67>(tensor67, pindex);
298   task55->add_dep(task67);
299   task67->add_dep(task30);
300   residualq->add_task(task67);
301 
302   vector<IndexRange> I52_index = {closed_, virt_, closed_, active_};
303   auto I52 = make_shared<Tensor>(I52_index);
304   auto tensor68 = vector<shared_ptr<Tensor>>{I51, Gamma16_(), I52};
305   auto task68 = make_shared<Task68>(tensor68, pindex);
306   task67->add_dep(task68);
307   task68->add_dep(task30);
308   residualq->add_task(task68);
309 
310   auto tensor69 = vector<shared_ptr<Tensor>>{I52, t2};
311   auto task69 = make_shared<Task69>(tensor69, pindex);
312   task68->add_dep(task69);
313   task69->add_dep(task30);
314   residualq->add_task(task69);
315 
316   vector<IndexRange> I54_index = {closed_, virt_, closed_, active_};
317   auto I54 = make_shared<Tensor>(I54_index);
318   auto tensor70 = vector<shared_ptr<Tensor>>{I31, f1_, I54};
319   auto task70 = make_shared<Task70>(tensor70, pindex);
320   task55->add_dep(task70);
321   task70->add_dep(task30);
322   residualq->add_task(task70);
323 
324   vector<IndexRange> I55_index = {closed_, virt_, closed_, active_};
325   auto I55 = make_shared<Tensor>(I55_index);
326   auto tensor71 = vector<shared_ptr<Tensor>>{I54, Gamma16_(), I55};
327   auto task71 = make_shared<Task71>(tensor71, pindex);
328   task70->add_dep(task71);
329   task71->add_dep(task30);
330   residualq->add_task(task71);
331 
332   auto tensor72 = vector<shared_ptr<Tensor>>{I55, t2};
333   auto task72 = make_shared<Task72>(tensor72, pindex);
334   task71->add_dep(task72);
335   task72->add_dep(task30);
336   residualq->add_task(task72);
337 
338   vector<IndexRange> I63_index = {virt_, closed_, active_, active_};
339   auto I63 = make_shared<Tensor>(I63_index);
340   auto tensor73 = vector<shared_ptr<Tensor>>{I31, f1_, I63};
341   auto task73 = make_shared<Task73>(tensor73, pindex);
342   task55->add_dep(task73);
343   task73->add_dep(task30);
344   residualq->add_task(task73);
345 
346   auto tensor74 = vector<shared_ptr<Tensor>>{I63, Gamma22_(), t2};
347   auto task74 = make_shared<Task74>(tensor74, pindex);
348   task73->add_dep(task74);
349   task74->add_dep(task30);
350   residualq->add_task(task74);
351 
352   auto tensor75 = vector<shared_ptr<Tensor>>{I63, Gamma12_(), t2};
353   auto task75 = make_shared<Task75>(tensor75, pindex);
354   task73->add_dep(task75);
355   task75->add_dep(task30);
356   residualq->add_task(task75);
357 
358   vector<IndexRange> I66_index = {virt_, closed_, active_, active_};
359   auto I66 = make_shared<Tensor>(I66_index);
360   auto tensor76 = vector<shared_ptr<Tensor>>{I31, f1_, I66};
361   auto task76 = make_shared<Task76>(tensor76, pindex);
362   task55->add_dep(task76);
363   task76->add_dep(task30);
364   residualq->add_task(task76);
365 
366   vector<IndexRange> I67_index = {active_, virt_, closed_, active_};
367   auto I67 = make_shared<Tensor>(I67_index);
368   auto tensor77 = vector<shared_ptr<Tensor>>{I66, Gamma12_(), I67};
369   auto task77 = make_shared<Task77>(tensor77, pindex);
370   task76->add_dep(task77);
371   task77->add_dep(task30);
372   residualq->add_task(task77);
373 
374   auto tensor78 = vector<shared_ptr<Tensor>>{I67, t2};
375   auto task78 = make_shared<Task78>(tensor78, pindex);
376   task77->add_dep(task78);
377   task78->add_dep(task30);
378   residualq->add_task(task78);
379 
380   vector<IndexRange> I75_index = {virt_, active_};
381   auto I75 = make_shared<Tensor>(I75_index);
382   auto tensor79 = vector<shared_ptr<Tensor>>{I31, t2, I75};
383   auto task79 = make_shared<Task79>(tensor79, pindex);
384   task55->add_dep(task79);
385   task79->add_dep(task30);
386   residualq->add_task(task79);
387 
388   auto tensor80 = vector<shared_ptr<Tensor>>{I75, Gamma16_(), f1_};
389   auto task80 = make_shared<Task80>(tensor80, pindex);
390   task79->add_dep(task80);
391   task80->add_dep(task30);
392   residualq->add_task(task80);
393 
394   vector<IndexRange> I78_index = {virt_, active_};
395   auto I78 = make_shared<Tensor>(I78_index);
396   auto tensor81 = vector<shared_ptr<Tensor>>{I31, t2, I78};
397   auto task81 = make_shared<Task81>(tensor81, pindex);
398   task55->add_dep(task81);
399   task81->add_dep(task30);
400   residualq->add_task(task81);
401 
402   auto tensor82 = vector<shared_ptr<Tensor>>{I78, Gamma16_(), f1_};
403   auto task82 = make_shared<Task82>(tensor82, pindex);
404   task81->add_dep(task82);
405   task82->add_dep(task30);
406   residualq->add_task(task82);
407 
408   vector<IndexRange> I269_index = {closed_, virt_, closed_, active_};
409   auto I269 = make_shared<Tensor>(I269_index);
410   auto tensor83 = vector<shared_ptr<Tensor>>{I31, Gamma16_(), I269};
411   auto task83 = make_shared<Task83>(tensor83, pindex);
412   task55->add_dep(task83);
413   task83->add_dep(task30);
414   residualq->add_task(task83);
415 
416   auto tensor84 = vector<shared_ptr<Tensor>>{I269, t2};
417   auto task84 = make_shared<Task84>(tensor84, pindex, this->e0_);
418   task83->add_dep(task84);
419   task84->add_dep(task30);
420   residualq->add_task(task84);
421 
422   vector<IndexRange> I80_index = {closed_, active_, active_, virt_};
423   auto I80 = make_shared<Tensor>(I80_index);
424   auto tensor85 = vector<shared_ptr<Tensor>>{r, I80};
425   auto task85 = make_shared<Task85>(tensor85, pindex);
426   task85->add_dep(task30);
427   residualq->add_task(task85);
428 
429   vector<IndexRange> I81_index = {closed_, active_, active_, active_};
430   auto I81 = make_shared<Tensor>(I81_index);
431   auto tensor86 = vector<shared_ptr<Tensor>>{I80, f1_, I81};
432   auto task86 = make_shared<Task86>(tensor86, pindex);
433   task85->add_dep(task86);
434   task86->add_dep(task30);
435   residualq->add_task(task86);
436 
437   auto tensor87 = vector<shared_ptr<Tensor>>{I81, Gamma28_(), t2};
438   auto task87 = make_shared<Task87>(tensor87, pindex);
439   task86->add_dep(task87);
440   task87->add_dep(task30);
441   residualq->add_task(task87);
442 
443   vector<IndexRange> I84_index = {virt_, closed_, active_, active_};
444   auto I84 = make_shared<Tensor>(I84_index);
445   auto tensor88 = vector<shared_ptr<Tensor>>{I80, Gamma29_(), I84};
446   auto task88 = make_shared<Task88>(tensor88, pindex);
447   task85->add_dep(task88);
448   task88->add_dep(task30);
449   residualq->add_task(task88);
450 
451   auto tensor89 = vector<shared_ptr<Tensor>>{I84, f1_, t2};
452   auto task89 = make_shared<Task89>(tensor89, pindex);
453   task88->add_dep(task89);
454   task89->add_dep(task30);
455   residualq->add_task(task89);
456 
457   vector<IndexRange> I87_index = {closed_, virt_, active_, active_};
458   auto I87 = make_shared<Tensor>(I87_index);
459   auto tensor90 = vector<shared_ptr<Tensor>>{I80, Gamma7_(), I87};
460   auto task90 = make_shared<Task90>(tensor90, pindex);
461   task85->add_dep(task90);
462   task90->add_dep(task30);
463   residualq->add_task(task90);
464 
465   auto tensor91 = vector<shared_ptr<Tensor>>{I87, f1_, t2};
466   auto task91 = make_shared<Task91>(tensor91, pindex);
467   task90->add_dep(task91);
468   task91->add_dep(task30);
469   residualq->add_task(task91);
470 
471   auto tensor92 = vector<shared_ptr<Tensor>>{I80, Gamma31_(), t2};
472   auto task92 = make_shared<Task92>(tensor92, pindex);
473   task85->add_dep(task92);
474   task92->add_dep(task30);
475   residualq->add_task(task92);
476 
477   vector<IndexRange> I92_index = {virt_, closed_, active_, active_};
478   auto I92 = make_shared<Tensor>(I92_index);
479   auto tensor93 = vector<shared_ptr<Tensor>>{I80, f1_, I92};
480   auto task93 = make_shared<Task93>(tensor93, pindex);
481   task85->add_dep(task93);
482   task93->add_dep(task30);
483   residualq->add_task(task93);
484 
485   auto tensor94 = vector<shared_ptr<Tensor>>{I92, Gamma32_(), t2};
486   auto task94 = make_shared<Task94>(tensor94, pindex);
487   task93->add_dep(task94);
488   task94->add_dep(task30);
489   residualq->add_task(task94);
490 
491   auto tensor95 = vector<shared_ptr<Tensor>>{I92, Gamma35_(), t2};
492   auto task95 = make_shared<Task95>(tensor95, pindex);
493   task93->add_dep(task95);
494   task95->add_dep(task30);
495   residualq->add_task(task95);
496 
497   vector<IndexRange> I95_index = {virt_, closed_, active_, active_};
498   auto I95 = make_shared<Tensor>(I95_index);
499   auto tensor96 = vector<shared_ptr<Tensor>>{I80, f1_, I95};
500   auto task96 = make_shared<Task96>(tensor96, pindex);
501   task85->add_dep(task96);
502   task96->add_dep(task30);
503   residualq->add_task(task96);
504 
505   auto tensor97 = vector<shared_ptr<Tensor>>{I95, Gamma32_(), t2};
506   auto task97 = make_shared<Task97>(tensor97, pindex);
507   task96->add_dep(task97);
508   task97->add_dep(task30);
509   residualq->add_task(task97);
510 
511   auto tensor98 = vector<shared_ptr<Tensor>>{I95, Gamma35_(), t2};
512   auto task98 = make_shared<Task98>(tensor98, pindex);
513   task96->add_dep(task98);
514   task98->add_dep(task30);
515   residualq->add_task(task98);
516 
517   auto tensor99 = vector<shared_ptr<Tensor>>{I80, Gamma34_(), t2};
518   auto task99 = make_shared<Task99>(tensor99, pindex);
519   task85->add_dep(task99);
520   task99->add_dep(task30);
521   residualq->add_task(task99);
522 
523   vector<IndexRange> I106_index = {virt_, active_, active_, active_};
524   auto I106 = make_shared<Tensor>(I106_index);
525   auto tensor100 = vector<shared_ptr<Tensor>>{I80, f1_, I106};
526   auto task100 = make_shared<Task100>(tensor100, pindex);
527   task85->add_dep(task100);
528   task100->add_dep(task30);
529   residualq->add_task(task100);
530 
531   auto tensor101 = vector<shared_ptr<Tensor>>{I106, Gamma37_(), t2};
532   auto task101 = make_shared<Task101>(tensor101, pindex);
533   task100->add_dep(task101);
534   task101->add_dep(task30);
535   residualq->add_task(task101);
536 
537   vector<IndexRange> I109_index = {closed_, virt_};
538   auto I109 = make_shared<Tensor>(I109_index);
539   auto tensor102 = vector<shared_ptr<Tensor>>{I80, Gamma38_(), I109};
540   auto task102 = make_shared<Task102>(tensor102, pindex);
541   task85->add_dep(task102);
542   task102->add_dep(task30);
543   residualq->add_task(task102);
544 
545   vector<IndexRange> I110_index = {closed_, virt_, closed_, virt_};
546   auto I110 = make_shared<Tensor>(I110_index);
547   auto tensor103 = vector<shared_ptr<Tensor>>{I109, f1_, I110};
548   auto task103 = make_shared<Task103>(tensor103, pindex);
549   task102->add_dep(task103);
550   task103->add_dep(task30);
551   residualq->add_task(task103);
552 
553   auto tensor104 = vector<shared_ptr<Tensor>>{I110, t2};
554   auto task104 = make_shared<Task104>(tensor104, pindex);
555   task103->add_dep(task104);
556   task104->add_dep(task30);
557   residualq->add_task(task104);
558 
559   vector<IndexRange> I115_index = {active_, closed_, virt_, active_};
560   auto I115 = make_shared<Tensor>(I115_index);
561   auto tensor105 = vector<shared_ptr<Tensor>>{I80, Gamma35_(), I115};
562   auto task105 = make_shared<Task105>(tensor105, pindex);
563   task85->add_dep(task105);
564   task105->add_dep(task30);
565   residualq->add_task(task105);
566 
567   auto tensor106 = vector<shared_ptr<Tensor>>{I115, t2};
568   auto task106 = make_shared<Task106>(tensor106, pindex, this->e0_);
569   task105->add_dep(task106);
570   task106->add_dep(task30);
571   residualq->add_task(task106);
572 
573   auto tensor107 = vector<shared_ptr<Tensor>>{I115, f1_, t2};
574   auto task107 = make_shared<Task107>(tensor107, pindex);
575   task105->add_dep(task107);
576   task107->add_dep(task30);
577   residualq->add_task(task107);
578 
579   vector<IndexRange> I118_index = {active_, virt_, closed_, active_};
580   auto I118 = make_shared<Tensor>(I118_index);
581   auto tensor108 = vector<shared_ptr<Tensor>>{I80, Gamma32_(), I118};
582   auto task108 = make_shared<Task108>(tensor108, pindex);
583   task85->add_dep(task108);
584   task108->add_dep(task30);
585   residualq->add_task(task108);
586 
587   auto tensor109 = vector<shared_ptr<Tensor>>{I118, t2};
588   auto task109 = make_shared<Task109>(tensor109, pindex, this->e0_);
589   task108->add_dep(task109);
590   task109->add_dep(task30);
591   residualq->add_task(task109);
592 
593   auto tensor110 = vector<shared_ptr<Tensor>>{I118, f1_, t2};
594   auto task110 = make_shared<Task110>(tensor110, pindex);
595   task108->add_dep(task110);
596   task110->add_dep(task30);
597   residualq->add_task(task110);
598 
599   vector<IndexRange> I120_index = {closed_, active_, active_, virt_};
600   auto I120 = make_shared<Tensor>(I120_index);
601   auto tensor111 = vector<shared_ptr<Tensor>>{r, I120};
602   auto task111 = make_shared<Task111>(tensor111, pindex);
603   task111->add_dep(task30);
604   residualq->add_task(task111);
605 
606   vector<IndexRange> I121_index = {closed_, active_, active_, active_};
607   auto I121 = make_shared<Tensor>(I121_index);
608   auto tensor112 = vector<shared_ptr<Tensor>>{I120, f1_, I121};
609   auto task112 = make_shared<Task112>(tensor112, pindex);
610   task111->add_dep(task112);
611   task112->add_dep(task30);
612   residualq->add_task(task112);
613 
614   auto tensor113 = vector<shared_ptr<Tensor>>{I121, Gamma6_(), t2};
615   auto task113 = make_shared<Task113>(tensor113, pindex);
616   task112->add_dep(task113);
617   task113->add_dep(task30);
618   residualq->add_task(task113);
619 
620   vector<IndexRange> I124_index = {virt_, closed_, active_, active_};
621   auto I124 = make_shared<Tensor>(I124_index);
622   auto tensor114 = vector<shared_ptr<Tensor>>{I120, Gamma7_(), I124};
623   auto task114 = make_shared<Task114>(tensor114, pindex);
624   task111->add_dep(task114);
625   task114->add_dep(task30);
626   residualq->add_task(task114);
627 
628   vector<IndexRange> I125_index = {closed_, virt_, closed_, active_};
629   auto I125 = make_shared<Tensor>(I125_index);
630   auto tensor115 = vector<shared_ptr<Tensor>>{I124, f1_, I125};
631   auto task115 = make_shared<Task115>(tensor115, pindex);
632   task114->add_dep(task115);
633   task115->add_dep(task30);
634   residualq->add_task(task115);
635 
636   auto tensor116 = vector<shared_ptr<Tensor>>{I125, t2};
637   auto task116 = make_shared<Task116>(tensor116, pindex);
638   task115->add_dep(task116);
639   task116->add_dep(task30);
640   residualq->add_task(task116);
641 
642   vector<IndexRange> I130_index = {active_, virt_, closed_, active_};
643   auto I130 = make_shared<Tensor>(I130_index);
644   auto tensor117 = vector<shared_ptr<Tensor>>{I120, Gamma34_(), I130};
645   auto task117 = make_shared<Task117>(tensor117, pindex);
646   task111->add_dep(task117);
647   task117->add_dep(task30);
648   residualq->add_task(task117);
649 
650   auto tensor118 = vector<shared_ptr<Tensor>>{I130, t2};
651   auto task118 = make_shared<Task118>(tensor118, pindex);
652   task117->add_dep(task118);
653   task118->add_dep(task30);
654   residualq->add_task(task118);
655 
656   vector<IndexRange> I132_index = {virt_, closed_, active_, active_};
657   auto I132 = make_shared<Tensor>(I132_index);
658   auto tensor119 = vector<shared_ptr<Tensor>>{I120, f1_, I132};
659   auto task119 = make_shared<Task119>(tensor119, pindex);
660   task111->add_dep(task119);
661   task119->add_dep(task30);
662   residualq->add_task(task119);
663 
664   vector<IndexRange> I133_index = {active_, virt_, closed_, active_};
665   auto I133 = make_shared<Tensor>(I133_index);
666   auto tensor120 = vector<shared_ptr<Tensor>>{I132, Gamma35_(), I133};
667   auto task120 = make_shared<Task120>(tensor120, pindex);
668   task119->add_dep(task120);
669   task120->add_dep(task30);
670   residualq->add_task(task120);
671 
672   auto tensor121 = vector<shared_ptr<Tensor>>{I133, t2};
673   auto task121 = make_shared<Task121>(tensor121, pindex);
674   task120->add_dep(task121);
675   task121->add_dep(task30);
676   residualq->add_task(task121);
677 
678   vector<IndexRange> I135_index = {virt_, closed_, active_, active_};
679   auto I135 = make_shared<Tensor>(I135_index);
680   auto tensor122 = vector<shared_ptr<Tensor>>{I120, f1_, I135};
681   auto task122 = make_shared<Task122>(tensor122, pindex);
682   task111->add_dep(task122);
683   task122->add_dep(task30);
684   residualq->add_task(task122);
685 
686   vector<IndexRange> I136_index = {active_, virt_, closed_, active_};
687   auto I136 = make_shared<Tensor>(I136_index);
688   auto tensor123 = vector<shared_ptr<Tensor>>{I135, Gamma35_(), I136};
689   auto task123 = make_shared<Task123>(tensor123, pindex);
690   task122->add_dep(task123);
691   task123->add_dep(task30);
692   residualq->add_task(task123);
693 
694   auto tensor124 = vector<shared_ptr<Tensor>>{I136, t2};
695   auto task124 = make_shared<Task124>(tensor124, pindex);
696   task123->add_dep(task124);
697   task124->add_dep(task30);
698   residualq->add_task(task124);
699 
700   vector<IndexRange> I146_index = {virt_, active_, active_, active_};
701   auto I146 = make_shared<Tensor>(I146_index);
702   auto tensor125 = vector<shared_ptr<Tensor>>{I120, f1_, I146};
703   auto task125 = make_shared<Task125>(tensor125, pindex);
704   task111->add_dep(task125);
705   task125->add_dep(task30);
706   residualq->add_task(task125);
707 
708   auto tensor126 = vector<shared_ptr<Tensor>>{I146, Gamma51_(), t2};
709   auto task126 = make_shared<Task126>(tensor126, pindex);
710   task125->add_dep(task126);
711   task126->add_dep(task30);
712   residualq->add_task(task126);
713 
714   vector<IndexRange> I149_index = {closed_, virt_};
715   auto I149 = make_shared<Tensor>(I149_index);
716   auto tensor127 = vector<shared_ptr<Tensor>>{I120, Gamma38_(), I149};
717   auto task127 = make_shared<Task127>(tensor127, pindex);
718   task111->add_dep(task127);
719   task127->add_dep(task30);
720   residualq->add_task(task127);
721 
722   vector<IndexRange> I150_index = {closed_, virt_, closed_, virt_};
723   auto I150 = make_shared<Tensor>(I150_index);
724   auto tensor128 = vector<shared_ptr<Tensor>>{I149, f1_, I150};
725   auto task128 = make_shared<Task128>(tensor128, pindex);
726   task127->add_dep(task128);
727   task128->add_dep(task30);
728   residualq->add_task(task128);
729 
730   auto tensor129 = vector<shared_ptr<Tensor>>{I150, t2};
731   auto task129 = make_shared<Task129>(tensor129, pindex);
732   task128->add_dep(task129);
733   task129->add_dep(task30);
734   residualq->add_task(task129);
735 
736   vector<IndexRange> I155_index = {active_, closed_, virt_, active_};
737   auto I155 = make_shared<Tensor>(I155_index);
738   auto tensor130 = vector<shared_ptr<Tensor>>{I120, Gamma35_(), I155};
739   auto task130 = make_shared<Task130>(tensor130, pindex);
740   task111->add_dep(task130);
741   task130->add_dep(task30);
742   residualq->add_task(task130);
743 
744   auto tensor131 = vector<shared_ptr<Tensor>>{I155, t2};
745   auto task131 = make_shared<Task131>(tensor131, pindex, this->e0_);
746   task130->add_dep(task131);
747   task131->add_dep(task30);
748   residualq->add_task(task131);
749 
750   vector<IndexRange> I156_index = {active_, virt_, closed_, virt_};
751   auto I156 = make_shared<Tensor>(I156_index);
752   auto tensor132 = vector<shared_ptr<Tensor>>{I155, f1_, I156};
753   auto task132 = make_shared<Task132>(tensor132, pindex);
754   task130->add_dep(task132);
755   task132->add_dep(task30);
756   residualq->add_task(task132);
757 
758   auto tensor133 = vector<shared_ptr<Tensor>>{I156, t2};
759   auto task133 = make_shared<Task133>(tensor133, pindex);
760   task132->add_dep(task133);
761   task133->add_dep(task30);
762   residualq->add_task(task133);
763 
764   vector<IndexRange> I160_index = {virt_, active_, active_, active_};
765   auto I160 = make_shared<Tensor>(I160_index);
766   auto tensor134 = vector<shared_ptr<Tensor>>{r, I160};
767   auto task134 = make_shared<Task134>(tensor134, pindex);
768   task134->add_dep(task30);
769   residualq->add_task(task134);
770 
771   vector<IndexRange> I161_index = {active_, virt_, active_, active_};
772   auto I161 = make_shared<Tensor>(I161_index);
773   auto tensor135 = vector<shared_ptr<Tensor>>{I160, Gamma56_(), I161};
774   auto task135 = make_shared<Task135>(tensor135, pindex);
775   task134->add_dep(task135);
776   task135->add_dep(task30);
777   residualq->add_task(task135);
778 
779   auto tensor136 = vector<shared_ptr<Tensor>>{I161, f1_, t2};
780   auto task136 = make_shared<Task136>(tensor136, pindex);
781   task135->add_dep(task136);
782   task136->add_dep(task30);
783   residualq->add_task(task136);
784 
785   vector<IndexRange> I164_index = {virt_, active_, active_, active_};
786   auto I164 = make_shared<Tensor>(I164_index);
787   auto tensor137 = vector<shared_ptr<Tensor>>{I160, Gamma57_(), I164};
788   auto task137 = make_shared<Task137>(tensor137, pindex);
789   task134->add_dep(task137);
790   task137->add_dep(task30);
791   residualq->add_task(task137);
792 
793   auto tensor138 = vector<shared_ptr<Tensor>>{I164, f1_, t2};
794   auto task138 = make_shared<Task138>(tensor138, pindex);
795   task137->add_dep(task138);
796   task138->add_dep(task30);
797   residualq->add_task(task138);
798 
799   auto tensor139 = vector<shared_ptr<Tensor>>{I160, Gamma58_(), t2};
800   auto task139 = make_shared<Task139>(tensor139, pindex);
801   task134->add_dep(task139);
802   task139->add_dep(task30);
803   residualq->add_task(task139);
804 
805   vector<IndexRange> I169_index = {virt_, active_, active_, active_};
806   auto I169 = make_shared<Tensor>(I169_index);
807   auto tensor140 = vector<shared_ptr<Tensor>>{I160, f1_, I169};
808   auto task140 = make_shared<Task140>(tensor140, pindex);
809   task134->add_dep(task140);
810   task140->add_dep(task30);
811   residualq->add_task(task140);
812 
813   auto tensor141 = vector<shared_ptr<Tensor>>{I169, Gamma59_(), t2};
814   auto task141 = make_shared<Task141>(tensor141, pindex);
815   task140->add_dep(task141);
816   task141->add_dep(task30);
817   residualq->add_task(task141);
818 
819   vector<IndexRange> I172_index = {active_, virt_};
820   auto I172 = make_shared<Tensor>(I172_index);
821   auto tensor142 = vector<shared_ptr<Tensor>>{I160, Gamma60_(), I172};
822   auto task142 = make_shared<Task142>(tensor142, pindex);
823   task134->add_dep(task142);
824   task142->add_dep(task30);
825   residualq->add_task(task142);
826 
827   vector<IndexRange> I173_index = {active_, virt_, closed_, virt_};
828   auto I173 = make_shared<Tensor>(I173_index);
829   auto tensor143 = vector<shared_ptr<Tensor>>{I172, f1_, I173};
830   auto task143 = make_shared<Task143>(tensor143, pindex);
831   task142->add_dep(task143);
832   task143->add_dep(task30);
833   residualq->add_task(task143);
834 
835   auto tensor144 = vector<shared_ptr<Tensor>>{I173, t2};
836   auto task144 = make_shared<Task144>(tensor144, pindex);
837   task143->add_dep(task144);
838   task144->add_dep(task30);
839   residualq->add_task(task144);
840 
841   vector<IndexRange> I178_index = {active_, virt_, active_, active_};
842   auto I178 = make_shared<Tensor>(I178_index);
843   auto tensor145 = vector<shared_ptr<Tensor>>{I160, Gamma59_(), I178};
844   auto task145 = make_shared<Task145>(tensor145, pindex);
845   task134->add_dep(task145);
846   task145->add_dep(task30);
847   residualq->add_task(task145);
848 
849   auto tensor146 = vector<shared_ptr<Tensor>>{I178, t2};
850   auto task146 = make_shared<Task146>(tensor146, pindex, this->e0_);
851   task145->add_dep(task146);
852   task146->add_dep(task30);
853   residualq->add_task(task146);
854 
855   auto tensor147 = vector<shared_ptr<Tensor>>{I178, f1_, t2};
856   auto task147 = make_shared<Task147>(tensor147, pindex);
857   task145->add_dep(task147);
858   task147->add_dep(task30);
859   residualq->add_task(task147);
860 
861   vector<IndexRange> I180_index = {virt_, closed_, virt_, closed_};
862   auto I180 = make_shared<Tensor>(I180_index);
863   auto tensor148 = vector<shared_ptr<Tensor>>{r, I180};
864   auto task148 = make_shared<Task148>(tensor148, pindex);
865   task148->add_dep(task30);
866   residualq->add_task(task148);
867 
868   vector<IndexRange> I181_index = {virt_, active_};
869   auto I181 = make_shared<Tensor>(I181_index);
870   auto tensor149 = vector<shared_ptr<Tensor>>{I180, t2, I181};
871   auto task149 = make_shared<Task149>(tensor149, pindex);
872   task148->add_dep(task149);
873   task149->add_dep(task30);
874   residualq->add_task(task149);
875 
876   auto tensor150 = vector<shared_ptr<Tensor>>{I181, Gamma16_(), f1_};
877   auto task150 = make_shared<Task150>(tensor150, pindex);
878   task149->add_dep(task150);
879   task150->add_dep(task30);
880   residualq->add_task(task150);
881 
882   vector<IndexRange> I184_index = {virt_, active_};
883   auto I184 = make_shared<Tensor>(I184_index);
884   auto tensor151 = vector<shared_ptr<Tensor>>{I180, t2, I184};
885   auto task151 = make_shared<Task151>(tensor151, pindex);
886   task148->add_dep(task151);
887   task151->add_dep(task30);
888   residualq->add_task(task151);
889 
890   auto tensor152 = vector<shared_ptr<Tensor>>{I184, Gamma16_(), f1_};
891   auto task152 = make_shared<Task152>(tensor152, pindex);
892   task151->add_dep(task152);
893   task152->add_dep(task30);
894   residualq->add_task(task152);
895 
896   vector<IndexRange> I187_index = {virt_, closed_};
897   auto I187 = make_shared<Tensor>(I187_index);
898   auto tensor153 = vector<shared_ptr<Tensor>>{I180, f1_, I187};
899   auto task153 = make_shared<Task153>(tensor153, pindex);
900   task148->add_dep(task153);
901   task153->add_dep(task30);
902   residualq->add_task(task153);
903 
904   vector<IndexRange> I188_index = {active_, virt_, closed_, active_};
905   auto I188 = make_shared<Tensor>(I188_index);
906   auto tensor154 = vector<shared_ptr<Tensor>>{I187, Gamma38_(), I188};
907   auto task154 = make_shared<Task154>(tensor154, pindex);
908   task153->add_dep(task154);
909   task154->add_dep(task30);
910   residualq->add_task(task154);
911 
912   auto tensor155 = vector<shared_ptr<Tensor>>{I188, t2};
913   auto task155 = make_shared<Task155>(tensor155, pindex);
914   task154->add_dep(task155);
915   task155->add_dep(task30);
916   residualq->add_task(task155);
917 
918   vector<IndexRange> I190_index = {virt_, closed_};
919   auto I190 = make_shared<Tensor>(I190_index);
920   auto tensor156 = vector<shared_ptr<Tensor>>{I180, f1_, I190};
921   auto task156 = make_shared<Task156>(tensor156, pindex);
922   task148->add_dep(task156);
923   task156->add_dep(task30);
924   residualq->add_task(task156);
925 
926   vector<IndexRange> I191_index = {active_, virt_, closed_, active_};
927   auto I191 = make_shared<Tensor>(I191_index);
928   auto tensor157 = vector<shared_ptr<Tensor>>{I190, Gamma38_(), I191};
929   auto task157 = make_shared<Task157>(tensor157, pindex);
930   task156->add_dep(task157);
931   task157->add_dep(task30);
932   residualq->add_task(task157);
933 
934   auto tensor158 = vector<shared_ptr<Tensor>>{I191, t2};
935   auto task158 = make_shared<Task158>(tensor158, pindex);
936   task157->add_dep(task158);
937   task158->add_dep(task30);
938   residualq->add_task(task158);
939 
940   vector<IndexRange> I199_index = {closed_, active_};
941   auto I199 = make_shared<Tensor>(I199_index);
942   auto tensor159 = vector<shared_ptr<Tensor>>{I180, t2, I199};
943   auto task159 = make_shared<Task159>(tensor159, pindex);
944   task148->add_dep(task159);
945   task159->add_dep(task30);
946   residualq->add_task(task159);
947 
948   auto tensor160 = vector<shared_ptr<Tensor>>{I199, Gamma38_(), f1_};
949   auto task160 = make_shared<Task160>(tensor160, pindex);
950   task159->add_dep(task160);
951   task160->add_dep(task30);
952   residualq->add_task(task160);
953 
954   vector<IndexRange> I202_index = {closed_, active_};
955   auto I202 = make_shared<Tensor>(I202_index);
956   auto tensor161 = vector<shared_ptr<Tensor>>{I180, t2, I202};
957   auto task161 = make_shared<Task161>(tensor161, pindex);
958   task148->add_dep(task161);
959   task161->add_dep(task30);
960   residualq->add_task(task161);
961 
962   auto tensor162 = vector<shared_ptr<Tensor>>{I202, Gamma38_(), f1_};
963   auto task162 = make_shared<Task162>(tensor162, pindex);
964   task161->add_dep(task162);
965   task162->add_dep(task30);
966   residualq->add_task(task162);
967 
968   vector<IndexRange> I204_index = {virt_, closed_, active_, virt_};
969   auto I204 = make_shared<Tensor>(I204_index);
970   auto tensor163 = vector<shared_ptr<Tensor>>{r, I204};
971   auto task163 = make_shared<Task163>(tensor163, pindex);
972   task163->add_dep(task30);
973   residualq->add_task(task163);
974 
975   vector<IndexRange> I205_index = {virt_, closed_, active_, active_};
976   auto I205 = make_shared<Tensor>(I205_index);
977   auto tensor164 = vector<shared_ptr<Tensor>>{I204, f1_, I205};
978   auto task164 = make_shared<Task164>(tensor164, pindex);
979   task163->add_dep(task164);
980   task164->add_dep(task30);
981   residualq->add_task(task164);
982 
983   vector<IndexRange> I206_index = {active_, virt_, closed_, active_};
984   auto I206 = make_shared<Tensor>(I206_index);
985   auto tensor165 = vector<shared_ptr<Tensor>>{I205, Gamma35_(), I206};
986   auto task165 = make_shared<Task165>(tensor165, pindex);
987   task164->add_dep(task165);
988   task165->add_dep(task30);
989   residualq->add_task(task165);
990 
991   auto tensor166 = vector<shared_ptr<Tensor>>{I206, t2};
992   auto task166 = make_shared<Task166>(tensor166, pindex);
993   task165->add_dep(task166);
994   task166->add_dep(task30);
995   residualq->add_task(task166);
996 
997   vector<IndexRange> I208_index = {virt_, closed_, active_, active_};
998   auto I208 = make_shared<Tensor>(I208_index);
999   auto tensor167 = vector<shared_ptr<Tensor>>{I204, f1_, I208};
1000   auto task167 = make_shared<Task167>(tensor167, pindex);
1001   task163->add_dep(task167);
1002   task167->add_dep(task30);
1003   residualq->add_task(task167);
1004 
1005   auto tensor168 = vector<shared_ptr<Tensor>>{I208, Gamma32_(), t2};
1006   auto task168 = make_shared<Task168>(tensor168, pindex);
1007   task167->add_dep(task168);
1008   task168->add_dep(task30);
1009   residualq->add_task(task168);
1010 
1011   auto tensor169 = vector<shared_ptr<Tensor>>{I208, Gamma35_(), t2};
1012   auto task169 = make_shared<Task169>(tensor169, pindex);
1013   task167->add_dep(task169);
1014   task169->add_dep(task30);
1015   residualq->add_task(task169);
1016 
1017   vector<IndexRange> I217_index = {virt_, active_};
1018   auto I217 = make_shared<Tensor>(I217_index);
1019   auto tensor170 = vector<shared_ptr<Tensor>>{I204, f1_, I217};
1020   auto task170 = make_shared<Task170>(tensor170, pindex);
1021   task163->add_dep(task170);
1022   task170->add_dep(task30);
1023   residualq->add_task(task170);
1024 
1025   auto tensor171 = vector<shared_ptr<Tensor>>{I217, Gamma60_(), t2};
1026   auto task171 = make_shared<Task171>(tensor171, pindex);
1027   task170->add_dep(task171);
1028   task171->add_dep(task30);
1029   residualq->add_task(task171);
1030 
1031   vector<IndexRange> I220_index = {virt_, active_};
1032   auto I220 = make_shared<Tensor>(I220_index);
1033   auto tensor172 = vector<shared_ptr<Tensor>>{I204, f1_, I220};
1034   auto task172 = make_shared<Task172>(tensor172, pindex);
1035   task163->add_dep(task172);
1036   task172->add_dep(task30);
1037   residualq->add_task(task172);
1038 
1039   auto tensor173 = vector<shared_ptr<Tensor>>{I220, Gamma60_(), t2};
1040   auto task173 = make_shared<Task173>(tensor173, pindex);
1041   task172->add_dep(task173);
1042   task173->add_dep(task30);
1043   residualq->add_task(task173);
1044 
1045   vector<IndexRange> I223_index = {closed_, active_};
1046   auto I223 = make_shared<Tensor>(I223_index);
1047   auto tensor174 = vector<shared_ptr<Tensor>>{I204, t2, I223};
1048   auto task174 = make_shared<Task174>(tensor174, pindex);
1049   task163->add_dep(task174);
1050   task174->add_dep(task30);
1051   residualq->add_task(task174);
1052 
1053   auto tensor175 = vector<shared_ptr<Tensor>>{I223, Gamma38_(), f1_};
1054   auto task175 = make_shared<Task175>(tensor175, pindex);
1055   task174->add_dep(task175);
1056   task175->add_dep(task30);
1057   residualq->add_task(task175);
1058 
1059   vector<IndexRange> I226_index = {closed_, active_};
1060   auto I226 = make_shared<Tensor>(I226_index);
1061   auto tensor176 = vector<shared_ptr<Tensor>>{I204, t2, I226};
1062   auto task176 = make_shared<Task176>(tensor176, pindex);
1063   task163->add_dep(task176);
1064   task176->add_dep(task30);
1065   residualq->add_task(task176);
1066 
1067   auto tensor177 = vector<shared_ptr<Tensor>>{I226, Gamma38_(), f1_};
1068   auto task177 = make_shared<Task177>(tensor177, pindex);
1069   task176->add_dep(task177);
1070   task177->add_dep(task30);
1071   residualq->add_task(task177);
1072 
1073   vector<IndexRange> I229_index = {active_, virt_, closed_, virt_};
1074   auto I229 = make_shared<Tensor>(I229_index);
1075   auto tensor178 = vector<shared_ptr<Tensor>>{I204, Gamma79_(), I229};
1076   auto task178 = make_shared<Task178>(tensor178, pindex);
1077   task163->add_dep(task178);
1078   task178->add_dep(task30);
1079   residualq->add_task(task178);
1080 
1081   auto tensor179 = vector<shared_ptr<Tensor>>{I229, t2};
1082   auto task179 = make_shared<Task179>(tensor179, pindex);
1083   task178->add_dep(task179);
1084   task179->add_dep(task30);
1085   residualq->add_task(task179);
1086 
1087   vector<IndexRange> I233_index = {virt_, closed_, virt_, active_};
1088   auto I233 = make_shared<Tensor>(I233_index);
1089   auto tensor180 = vector<shared_ptr<Tensor>>{I204, f1_, I233};
1090   auto task180 = make_shared<Task180>(tensor180, pindex);
1091   task163->add_dep(task180);
1092   task180->add_dep(task30);
1093   residualq->add_task(task180);
1094 
1095   vector<IndexRange> I234_index = {active_, virt_, closed_, virt_};
1096   auto I234 = make_shared<Tensor>(I234_index);
1097   auto tensor181 = vector<shared_ptr<Tensor>>{I233, Gamma38_(), I234};
1098   auto task181 = make_shared<Task181>(tensor181, pindex);
1099   task180->add_dep(task181);
1100   task181->add_dep(task30);
1101   residualq->add_task(task181);
1102 
1103   auto tensor182 = vector<shared_ptr<Tensor>>{I234, t2};
1104   auto task182 = make_shared<Task182>(tensor182, pindex);
1105   task181->add_dep(task182);
1106   task182->add_dep(task30);
1107   residualq->add_task(task182);
1108 
1109   vector<IndexRange> I239_index = {virt_, closed_, virt_, active_};
1110   auto I239 = make_shared<Tensor>(I239_index);
1111   auto tensor183 = vector<shared_ptr<Tensor>>{I204, f1_, I239};
1112   auto task183 = make_shared<Task183>(tensor183, pindex);
1113   task163->add_dep(task183);
1114   task183->add_dep(task30);
1115   residualq->add_task(task183);
1116 
1117   vector<IndexRange> I240_index = {active_, virt_, closed_, virt_};
1118   auto I240 = make_shared<Tensor>(I240_index);
1119   auto tensor184 = vector<shared_ptr<Tensor>>{I239, Gamma38_(), I240};
1120   auto task184 = make_shared<Task184>(tensor184, pindex);
1121   task183->add_dep(task184);
1122   task184->add_dep(task30);
1123   residualq->add_task(task184);
1124 
1125   auto tensor185 = vector<shared_ptr<Tensor>>{I240, t2};
1126   auto task185 = make_shared<Task185>(tensor185, pindex);
1127   task184->add_dep(task185);
1128   task185->add_dep(task30);
1129   residualq->add_task(task185);
1130 
1131   vector<IndexRange> I245_index = {virt_, closed_, virt_, active_};
1132   auto I245 = make_shared<Tensor>(I245_index);
1133   auto tensor186 = vector<shared_ptr<Tensor>>{I204, f1_, I245};
1134   auto task186 = make_shared<Task186>(tensor186, pindex);
1135   task163->add_dep(task186);
1136   task186->add_dep(task30);
1137   residualq->add_task(task186);
1138 
1139   vector<IndexRange> I246_index = {active_, virt_, closed_, virt_};
1140   auto I246 = make_shared<Tensor>(I246_index);
1141   auto tensor187 = vector<shared_ptr<Tensor>>{I245, Gamma38_(), I246};
1142   auto task187 = make_shared<Task187>(tensor187, pindex);
1143   task186->add_dep(task187);
1144   task187->add_dep(task30);
1145   residualq->add_task(task187);
1146 
1147   auto tensor188 = vector<shared_ptr<Tensor>>{I246, t2};
1148   auto task188 = make_shared<Task188>(tensor188, pindex);
1149   task187->add_dep(task188);
1150   task188->add_dep(task30);
1151   residualq->add_task(task188);
1152 
1153   vector<IndexRange> I251_index = {virt_, virt_, active_, active_};
1154   auto I251 = make_shared<Tensor>(I251_index);
1155   auto tensor189 = vector<shared_ptr<Tensor>>{I204, f1_, I251};
1156   auto task189 = make_shared<Task189>(tensor189, pindex);
1157   task163->add_dep(task189);
1158   task189->add_dep(task30);
1159   residualq->add_task(task189);
1160 
1161   auto tensor190 = vector<shared_ptr<Tensor>>{I251, Gamma60_(), t2};
1162   auto task190 = make_shared<Task190>(tensor190, pindex);
1163   task189->add_dep(task190);
1164   task190->add_dep(task30);
1165   residualq->add_task(task190);
1166 
1167   vector<IndexRange> I283_index = {active_, virt_, closed_, virt_};
1168   auto I283 = make_shared<Tensor>(I283_index);
1169   auto tensor191 = vector<shared_ptr<Tensor>>{I204, Gamma38_(), I283};
1170   auto task191 = make_shared<Task191>(tensor191, pindex);
1171   task163->add_dep(task191);
1172   task191->add_dep(task30);
1173   residualq->add_task(task191);
1174 
1175   auto tensor192 = vector<shared_ptr<Tensor>>{I283, t2};
1176   auto task192 = make_shared<Task192>(tensor192, pindex, this->e0_);
1177   task191->add_dep(task192);
1178   task192->add_dep(task30);
1179   residualq->add_task(task192);
1180 
1181   vector<IndexRange> I253_index = {virt_, active_, active_, virt_};
1182   auto I253 = make_shared<Tensor>(I253_index);
1183   auto tensor193 = vector<shared_ptr<Tensor>>{r, I253};
1184   auto task193 = make_shared<Task193>(tensor193, pindex);
1185   task193->add_dep(task30);
1186   residualq->add_task(task193);
1187 
1188   vector<IndexRange> I254_index = {virt_, active_, active_, active_};
1189   auto I254 = make_shared<Tensor>(I254_index);
1190   auto tensor194 = vector<shared_ptr<Tensor>>{I253, f1_, I254};
1191   auto task194 = make_shared<Task194>(tensor194, pindex);
1192   task193->add_dep(task194);
1193   task194->add_dep(task30);
1194   residualq->add_task(task194);
1195 
1196   auto tensor195 = vector<shared_ptr<Tensor>>{I254, Gamma59_(), t2};
1197   auto task195 = make_shared<Task195>(tensor195, pindex);
1198   task194->add_dep(task195);
1199   task195->add_dep(task30);
1200   residualq->add_task(task195);
1201 
1202   vector<IndexRange> I257_index = {active_, virt_, virt_, active_};
1203   auto I257 = make_shared<Tensor>(I257_index);
1204   auto tensor196 = vector<shared_ptr<Tensor>>{I253, Gamma60_(), I257};
1205   auto task196 = make_shared<Task196>(tensor196, pindex);
1206   task193->add_dep(task196);
1207   task196->add_dep(task30);
1208   residualq->add_task(task196);
1209 
1210   auto tensor197 = vector<shared_ptr<Tensor>>{I257, f1_, t2};
1211   auto task197 = make_shared<Task197>(tensor197, pindex);
1212   task196->add_dep(task197);
1213   task197->add_dep(task30);
1214   residualq->add_task(task197);
1215 
1216   vector<IndexRange> I262_index = {virt_, virt_, active_, active_};
1217   auto I262 = make_shared<Tensor>(I262_index);
1218   auto tensor198 = vector<shared_ptr<Tensor>>{I253, f1_, I262};
1219   auto task198 = make_shared<Task198>(tensor198, pindex);
1220   task193->add_dep(task198);
1221   task198->add_dep(task30);
1222   residualq->add_task(task198);
1223 
1224   auto tensor199 = vector<shared_ptr<Tensor>>{I262, Gamma60_(), t2};
1225   auto task199 = make_shared<Task199>(tensor199, pindex);
1226   task198->add_dep(task199);
1227   task199->add_dep(task30);
1228   residualq->add_task(task199);
1229 
1230   vector<IndexRange> I259_index = {virt_, virt_, active_, active_};
1231   auto I259 = make_shared<Tensor>(I259_index);
1232   auto tensor200 = vector<shared_ptr<Tensor>>{r, I259};
1233   auto task200 = make_shared<Task200>(tensor200, pindex);
1234   task200->add_dep(task30);
1235   residualq->add_task(task200);
1236 
1237   auto tensor201 = vector<shared_ptr<Tensor>>{I259, Gamma90_(), t2};
1238   auto task201 = make_shared<Task201>(tensor201, pindex);
1239   task200->add_dep(task201);
1240   task201->add_dep(task30);
1241   residualq->add_task(task201);
1242 
1243   auto tensor202 = vector<shared_ptr<Tensor>>{I259, Gamma60_(), t2};
1244   auto task202 = make_shared<Task202>(tensor202, pindex, this->e0_);
1245   task200->add_dep(task202);
1246   task202->add_dep(task30);
1247   residualq->add_task(task202);
1248 
1249   return residualq;
1250 }
1251 
1252 
1253 #endif
1254