1 //
2 // BAGEL - Brilliantly Advanced General Electronic Structure Library
3 // Filename: RelCASA_gamma.cc
4 // Copyright (C) 2014 Toru Shiozaki
5 //
6 // Author: Shiozaki group <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 
26 #include <bagel_config.h>
27 #ifdef COMPILE_SMITH
28 #include <src/smith/relcasa/RelCASA.h>
29 #include <src/smith/relcasa/RelCASA_tasks.h>
30 
31 using namespace std;
32 using namespace bagel;
33 using namespace bagel::SMITH;
34 using bagel::SMITH::RelCASA::FutureTensor;
35 
Gamma0_()36 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma0_() {
37   vector<IndexRange> Gamma0_index = {active_, active_, active_, active_};
38   auto Gamma0 = make_shared<Tensor>(Gamma0_index);
39   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
40   auto tensor0 = vector<shared_ptr<Tensor>>{Gamma0, rdm0_, rdm1_, rdm2_};
41   auto task0 = make_shared<Task0>(tensor0, pindex);
42   return make_shared<FutureTensor>(*Gamma0, task0);
43 }
44 
Gamma1_()45 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma1_() {
46   vector<IndexRange> Gamma1_index = {active_, active_, active_, active_, active_, active_};
47   auto Gamma1 = make_shared<Tensor>(Gamma1_index);
48   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
49   auto tensor1 = vector<shared_ptr<Tensor>>{Gamma1, rdm1_, rdm2_, rdm3_};
50   auto task1 = make_shared<Task1>(tensor1, pindex);
51   return make_shared<FutureTensor>(*Gamma1, task1);
52 }
53 
Gamma2_()54 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma2_() {
55   vector<IndexRange> Gamma2_index = {active_, active_, active_, active_};
56   auto Gamma2 = make_shared<Tensor>(Gamma2_index);
57   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
58   auto tensor2 = vector<shared_ptr<Tensor>>{Gamma2, rdm0_, rdm1_, rdm2_};
59   auto task2 = make_shared<Task2>(tensor2, pindex);
60   return make_shared<FutureTensor>(*Gamma2, task2);
61 }
62 
Gamma3_()63 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma3_() {
64   vector<IndexRange> Gamma3_index = {active_, active_, active_, active_, active_, active_};
65   auto Gamma3 = make_shared<Tensor>(Gamma3_index);
66   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
67   auto tensor3 = vector<shared_ptr<Tensor>>{Gamma3, rdm1_, rdm2_, rdm3_};
68   auto task3 = make_shared<Task3>(tensor3, pindex);
69   return make_shared<FutureTensor>(*Gamma3, task3);
70 }
71 
Gamma4_()72 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma4_() {
73   vector<IndexRange> Gamma4_index = {active_, active_, active_, active_, active_, active_};
74   auto Gamma4 = make_shared<Tensor>(Gamma4_index);
75   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
76   auto tensor4 = vector<shared_ptr<Tensor>>{Gamma4, rdm1_, rdm2_, rdm3_};
77   auto task4 = make_shared<Task4>(tensor4, pindex);
78   return make_shared<FutureTensor>(*Gamma4, task4);
79 }
80 
Gamma5_()81 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma5_() {
82   vector<IndexRange> Gamma5_index = {active_, active_, active_, active_};
83   auto Gamma5 = make_shared<Tensor>(Gamma5_index);
84   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
85   auto tensor5 = vector<shared_ptr<Tensor>>{Gamma5, rdm1_, rdm2_};
86   auto task5 = make_shared<Task5>(tensor5, pindex);
87   return make_shared<FutureTensor>(*Gamma5, task5);
88 }
89 
Gamma7_()90 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma7_() {
91   vector<IndexRange> Gamma7_index = {active_, active_, active_, active_, active_, active_};
92   auto Gamma7 = make_shared<Tensor>(Gamma7_index);
93   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
94   auto tensor6 = vector<shared_ptr<Tensor>>{Gamma7, rdm1_, rdm2_, rdm3_};
95   auto task6 = make_shared<Task6>(tensor6, pindex);
96   return make_shared<FutureTensor>(*Gamma7, task6);
97 }
98 
Gamma94_()99 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma94_() {
100   vector<IndexRange> Gamma94_index = {active_, active_, active_, active_, active_, active_};
101   auto Gamma94 = make_shared<Tensor>(Gamma94_index);
102   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
103   auto tensor7 = vector<shared_ptr<Tensor>>{Gamma94, rdm1_, rdm2_, rdm3_, rdm4_, h1_};
104   auto task7 = make_shared<Task7>(tensor7, pindex);
105   return make_shared<FutureTensor>(*Gamma94, task7);
106 }
107 
Gamma95_()108 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma95_() {
109   vector<IndexRange> Gamma95_index = {active_, active_, active_, active_, active_, active_};
110   auto Gamma95 = make_shared<Tensor>(Gamma95_index);
111   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
112   auto tensor8 = vector<shared_ptr<Tensor>>{Gamma95, rdm1_, rdm2_, rdm3_, rdm4_, v2_};
113   auto task8 = make_shared<Task8>(tensor8, pindex);
114   return make_shared<FutureTensor>(*Gamma95, task8);
115 }
116 
Gamma9_()117 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma9_() {
118   vector<IndexRange> Gamma9_index = {active_, active_};
119   auto Gamma9 = make_shared<Tensor>(Gamma9_index);
120   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
121   auto tensor9 = vector<shared_ptr<Tensor>>{Gamma9, rdm0_, rdm1_};
122   auto task9 = make_shared<Task9>(tensor9, pindex);
123   return make_shared<FutureTensor>(*Gamma9, task9);
124 }
125 
Gamma13_()126 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma13_() {
127   vector<IndexRange> Gamma13_index = {active_, active_, active_, active_};
128   auto Gamma13 = make_shared<Tensor>(Gamma13_index);
129   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
130   auto tensor10 = vector<shared_ptr<Tensor>>{Gamma13, rdm1_, rdm2_};
131   auto task10 = make_shared<Task10>(tensor10, pindex);
132   return make_shared<FutureTensor>(*Gamma13, task10);
133 }
134 
Gamma15_()135 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma15_() {
136   vector<IndexRange> Gamma15_index = {active_, active_, active_, active_};
137   auto Gamma15 = make_shared<Tensor>(Gamma15_index);
138   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
139   auto tensor11 = vector<shared_ptr<Tensor>>{Gamma15, rdm1_, rdm2_};
140   auto task11 = make_shared<Task11>(tensor11, pindex);
141   return make_shared<FutureTensor>(*Gamma15, task11);
142 }
143 
Gamma96_()144 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma96_() {
145   vector<IndexRange> Gamma96_index = {active_, active_};
146   auto Gamma96 = make_shared<Tensor>(Gamma96_index);
147   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
148   auto tensor12 = vector<shared_ptr<Tensor>>{Gamma96, rdm0_, rdm1_, rdm2_, h1_};
149   auto task12 = make_shared<Task12>(tensor12, pindex);
150   return make_shared<FutureTensor>(*Gamma96, task12);
151 }
152 
Gamma98_()153 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma98_() {
154   vector<IndexRange> Gamma98_index = {active_, active_};
155   auto Gamma98 = make_shared<Tensor>(Gamma98_index);
156   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
157   auto tensor13 = vector<shared_ptr<Tensor>>{Gamma98, rdm0_, rdm1_, rdm2_, rdm3_, v2_};
158   auto task13 = make_shared<Task13>(tensor13, pindex);
159   return make_shared<FutureTensor>(*Gamma98, task13);
160 }
161 
Gamma24_()162 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma24_() {
163   vector<IndexRange> Gamma24_index = {active_, active_, active_, active_};
164   auto Gamma24 = make_shared<Tensor>(Gamma24_index);
165   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
166   auto tensor14 = vector<shared_ptr<Tensor>>{Gamma24, rdm1_, rdm2_};
167   auto task14 = make_shared<Task14>(tensor14, pindex);
168   return make_shared<FutureTensor>(*Gamma24, task14);
169 }
170 
Gamma25_()171 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma25_() {
172   vector<IndexRange> Gamma25_index = {active_, active_, active_, active_};
173   auto Gamma25 = make_shared<Tensor>(Gamma25_index);
174   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
175   auto tensor15 = vector<shared_ptr<Tensor>>{Gamma25, rdm1_, rdm2_};
176   auto task15 = make_shared<Task15>(tensor15, pindex);
177   return make_shared<FutureTensor>(*Gamma25, task15);
178 }
179 
Gamma26_()180 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma26_() {
181   vector<IndexRange> Gamma26_index = {active_, active_, active_, active_};
182   auto Gamma26 = make_shared<Tensor>(Gamma26_index);
183   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
184   auto tensor16 = vector<shared_ptr<Tensor>>{Gamma26, rdm1_, rdm2_};
185   auto task16 = make_shared<Task16>(tensor16, pindex);
186   return make_shared<FutureTensor>(*Gamma26, task16);
187 }
188 
Gamma28_()189 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma28_() {
190   vector<IndexRange> Gamma28_index = {active_, active_, active_, active_, active_, active_};
191   auto Gamma28 = make_shared<Tensor>(Gamma28_index);
192   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
193   auto tensor17 = vector<shared_ptr<Tensor>>{Gamma28, rdm2_, rdm3_};
194   auto task17 = make_shared<Task17>(tensor17, pindex);
195   return make_shared<FutureTensor>(*Gamma28, task17);
196 }
197 
Gamma29_()198 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma29_() {
199   vector<IndexRange> Gamma29_index = {active_, active_};
200   auto Gamma29 = make_shared<Tensor>(Gamma29_index);
201   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
202   auto tensor18 = vector<shared_ptr<Tensor>>{Gamma29, rdm1_};
203   auto task18 = make_shared<Task18>(tensor18, pindex);
204   return make_shared<FutureTensor>(*Gamma29, task18);
205 }
206 
Gamma33_()207 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma33_() {
208   vector<IndexRange> Gamma33_index = {active_, active_, active_, active_, active_, active_};
209   auto Gamma33 = make_shared<Tensor>(Gamma33_index);
210   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
211   auto tensor19 = vector<shared_ptr<Tensor>>{Gamma33, rdm1_, rdm2_, rdm3_};
212   auto task19 = make_shared<Task19>(tensor19, pindex);
213   return make_shared<FutureTensor>(*Gamma33, task19);
214 }
215 
Gamma112_()216 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma112_() {
217   vector<IndexRange> Gamma112_index = {active_, active_, active_, active_};
218   auto Gamma112 = make_shared<Tensor>(Gamma112_index);
219   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
220   auto tensor20 = vector<shared_ptr<Tensor>>{Gamma112, rdm1_, rdm2_, rdm3_, h1_};
221   auto task20 = make_shared<Task20>(tensor20, pindex);
222   return make_shared<FutureTensor>(*Gamma112, task20);
223 }
224 
Gamma113_()225 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma113_() {
226   vector<IndexRange> Gamma113_index = {active_, active_, active_, active_};
227   auto Gamma113 = make_shared<Tensor>(Gamma113_index);
228   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
229   auto tensor21 = vector<shared_ptr<Tensor>>{Gamma113, rdm1_, rdm2_, rdm3_, h1_};
230   auto task21 = make_shared<Task21>(tensor21, pindex);
231   return make_shared<FutureTensor>(*Gamma113, task21);
232 }
233 
Gamma116_()234 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma116_() {
235   vector<IndexRange> Gamma116_index = {active_, active_, active_, active_};
236   auto Gamma116 = make_shared<Tensor>(Gamma116_index);
237   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
238   auto tensor22 = vector<shared_ptr<Tensor>>{Gamma116, rdm1_, rdm2_, rdm3_, rdm4_, v2_};
239   auto task22 = make_shared<Task22>(tensor22, pindex);
240   return make_shared<FutureTensor>(*Gamma116, task22);
241 }
242 
Gamma117_()243 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma117_() {
244   vector<IndexRange> Gamma117_index = {active_, active_, active_, active_};
245   auto Gamma117 = make_shared<Tensor>(Gamma117_index);
246   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
247   auto tensor23 = vector<shared_ptr<Tensor>>{Gamma117, rdm1_, rdm2_, rdm3_, rdm4_, v2_};
248   auto task23 = make_shared<Task23>(tensor23, pindex);
249   return make_shared<FutureTensor>(*Gamma117, task23);
250 }
251 
Gamma40_()252 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma40_() {
253   vector<IndexRange> Gamma40_index = {active_, active_, active_, active_, active_, active_};
254   auto Gamma40 = make_shared<Tensor>(Gamma40_index);
255   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
256   auto tensor24 = vector<shared_ptr<Tensor>>{Gamma40, rdm2_, rdm3_};
257   auto task24 = make_shared<Task24>(tensor24, pindex);
258   return make_shared<FutureTensor>(*Gamma40, task24);
259 }
260 
Gamma48_()261 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma48_() {
262   vector<IndexRange> Gamma48_index = {active_, active_, active_, active_, active_, active_};
263   auto Gamma48 = make_shared<Tensor>(Gamma48_index);
264   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
265   auto tensor25 = vector<shared_ptr<Tensor>>{Gamma48, rdm2_, rdm3_};
266   auto task25 = make_shared<Task25>(tensor25, pindex);
267   return make_shared<FutureTensor>(*Gamma48, task25);
268 }
269 
Gamma49_()270 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma49_() {
271   vector<IndexRange> Gamma49_index = {active_, active_, active_, active_, active_, active_};
272   auto Gamma49 = make_shared<Tensor>(Gamma49_index);
273   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
274   auto tensor26 = vector<shared_ptr<Tensor>>{Gamma49, rdm2_, rdm3_};
275   auto task26 = make_shared<Task26>(tensor26, pindex);
276   return make_shared<FutureTensor>(*Gamma49, task26);
277 }
278 
Gamma50_()279 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma50_() {
280   vector<IndexRange> Gamma50_index = {active_, active_, active_, active_};
281   auto Gamma50 = make_shared<Tensor>(Gamma50_index);
282   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
283   auto tensor27 = vector<shared_ptr<Tensor>>{Gamma50, rdm2_};
284   auto task27 = make_shared<Task27>(tensor27, pindex);
285   return make_shared<FutureTensor>(*Gamma50, task27);
286 }
287 
Gamma52_()288 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma52_() {
289   vector<IndexRange> Gamma52_index = {active_, active_, active_, active_, active_, active_};
290   auto Gamma52 = make_shared<Tensor>(Gamma52_index);
291   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
292   auto tensor28 = vector<shared_ptr<Tensor>>{Gamma52, rdm2_, rdm3_};
293   auto task28 = make_shared<Task28>(tensor28, pindex);
294   return make_shared<FutureTensor>(*Gamma52, task28);
295 }
296 
Gamma100_()297 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma100_() {
298   vector<IndexRange> Gamma100_index = {active_, active_, active_, active_, active_, active_};
299   auto Gamma100 = make_shared<Tensor>(Gamma100_index);
300   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
301   auto tensor29 = vector<shared_ptr<Tensor>>{Gamma100, rdm2_, rdm3_, rdm4_, h1_};
302   auto task29 = make_shared<Task29>(tensor29, pindex);
303   return make_shared<FutureTensor>(*Gamma100, task29);
304 }
305 
Gamma101_()306 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma101_() {
307   vector<IndexRange> Gamma101_index = {active_, active_, active_, active_, active_, active_};
308   auto Gamma101 = make_shared<Tensor>(Gamma101_index);
309   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
310   auto tensor30 = vector<shared_ptr<Tensor>>{Gamma101, rdm2_, rdm3_, rdm4_, v2_};
311   auto task30 = make_shared<Task30>(tensor30, pindex);
312   return make_shared<FutureTensor>(*Gamma101, task30);
313 }
314 
Gamma106_()315 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma106_() {
316   vector<IndexRange> Gamma106_index = {active_, active_};
317   auto Gamma106 = make_shared<Tensor>(Gamma106_index);
318   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
319   auto tensor31 = vector<shared_ptr<Tensor>>{Gamma106, rdm1_, rdm2_, h1_};
320   auto task31 = make_shared<Task31>(tensor31, pindex);
321   return make_shared<FutureTensor>(*Gamma106, task31);
322 }
323 
Gamma108_()324 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma108_() {
325   vector<IndexRange> Gamma108_index = {active_, active_};
326   auto Gamma108 = make_shared<Tensor>(Gamma108_index);
327   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
328   auto tensor32 = vector<shared_ptr<Tensor>>{Gamma108, rdm1_, rdm2_, rdm3_, v2_};
329   auto task32 = make_shared<Task32>(tensor32, pindex);
330   return make_shared<FutureTensor>(*Gamma108, task32);
331 }
332 
Gamma92_()333 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma92_() {
334   vector<IndexRange> Gamma92_index = {active_, active_, active_, active_};
335   auto Gamma92 = make_shared<Tensor>(Gamma92_index);
336   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
337   auto tensor33 = vector<shared_ptr<Tensor>>{Gamma92, rdm0_, rdm1_, rdm2_, rdm3_, h1_};
338   auto task33 = make_shared<Task33>(tensor33, pindex);
339   return make_shared<FutureTensor>(*Gamma92, task33);
340 }
341 
Gamma93_()342 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma93_() {
343   vector<IndexRange> Gamma93_index = {active_, active_, active_, active_};
344   auto Gamma93 = make_shared<Tensor>(Gamma93_index);
345   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
346   auto tensor34 = vector<shared_ptr<Tensor>>{Gamma93, rdm0_, rdm1_, rdm2_, rdm3_, rdm4_, v2_};
347   auto task34 = make_shared<Task34>(tensor34, pindex);
348   return make_shared<FutureTensor>(*Gamma93, task34);
349 }
350 
Gamma102_()351 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma102_() {
352   vector<IndexRange> Gamma102_index;
353   auto Gamma102 = make_shared<Tensor>(Gamma102_index);
354   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
355   auto tensor35 = vector<shared_ptr<Tensor>>{Gamma102, rdm1_, h1_};
356   auto task35 = make_shared<Task35>(tensor35, pindex);
357   return make_shared<FutureTensor>(*Gamma102, task35);
358 }
359 
Gamma104_()360 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma104_() {
361   vector<IndexRange> Gamma104_index;
362   auto Gamma104 = make_shared<Tensor>(Gamma104_index);
363   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
364   auto tensor36 = vector<shared_ptr<Tensor>>{Gamma104, rdm1_, rdm2_, v2_};
365   auto task36 = make_shared<Task36>(tensor36, pindex);
366   return make_shared<FutureTensor>(*Gamma104, task36);
367 }
368 
Gamma110_()369 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma110_() {
370   vector<IndexRange> Gamma110_index = {active_, active_, active_, active_};
371   auto Gamma110 = make_shared<Tensor>(Gamma110_index);
372   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
373   auto tensor37 = vector<shared_ptr<Tensor>>{Gamma110, rdm2_, rdm3_, h1_};
374   auto task37 = make_shared<Task37>(tensor37, pindex);
375   return make_shared<FutureTensor>(*Gamma110, task37);
376 }
377 
Gamma111_()378 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma111_() {
379   vector<IndexRange> Gamma111_index = {active_, active_, active_, active_};
380   auto Gamma111 = make_shared<Tensor>(Gamma111_index);
381   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
382   auto tensor38 = vector<shared_ptr<Tensor>>{Gamma111, rdm2_, rdm3_, rdm4_, v2_};
383   auto task38 = make_shared<Task38>(tensor38, pindex);
384   return make_shared<FutureTensor>(*Gamma111, task38);
385 }
386 
Gamma121_()387 shared_ptr<FutureTensor> RelCASA::RelCASA::Gamma121_() {
388   vector<IndexRange> Gamma121_index = {active_, active_, active_, active_, active_, active_};
389   auto Gamma121 = make_shared<Tensor>(Gamma121_index);
390   array<shared_ptr<const IndexRange>,3> pindex = {{rclosed_, ractive_, rvirt_}};
391   auto tensor39 = vector<shared_ptr<Tensor>>{Gamma121, rdm1_, rdm2_, rdm3_};
392   auto task39 = make_shared<Task39>(tensor39, pindex);
393   return make_shared<FutureTensor>(*Gamma121, task39);
394 }
395 
396 #endif
397