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