3
#include <libciomr/libciomr.h>
7
void cache_abcd_rhf(int **cachelist);
8
void cache_iabc_rhf(int **cachelist);
9
void cache_ijab_rhf(int **cachelist);
10
void cache_iajb_rhf(int **cachelist);
11
void cache_ijka_rhf(int **cachelist);
12
void cache_ijkl_rhf(int **cachelist);
14
void cache_abcd_uhf(int **cachelist);
15
void cache_iabc_uhf(int **cachelist);
16
void cache_ijab_uhf(int **cachelist);
17
void cache_iajb_uhf(int **cachelist);
18
void cache_ijka_uhf(int **cachelist);
19
void cache_ijkl_uhf(int **cachelist);
21
int **cacheprep_uhf(int level, int *cachefiles)
25
/* The listing of CC files whose entries may be cached */
26
cachefiles[CC_AINTS] = 1;
27
cachefiles[CC_CINTS] = 1;
28
cachefiles[CC_DINTS] = 1;
29
cachefiles[CC_EINTS] = 1;
30
cachefiles[CC_DENOM] = 1;
31
cachefiles[CC_TAMPS] = 1;
32
cachefiles[CC_LAMPS] = 1;
33
cachefiles[CC_HBAR] = 1;
35
/* The listing of DPD patterns which may be cached */
36
cachelist = init_int_matrix(32,32);
38
if(level == 0) return cachelist;
41
/*** Cache oooo and ooov ***/
42
cache_ijkl_uhf(cachelist);
43
cache_ijka_uhf(cachelist);
49
/*** Cache oooo, ooov, oovv, and ovov ***/
50
cache_ijkl_uhf(cachelist);
51
cache_ijka_uhf(cachelist);
52
cache_ijab_uhf(cachelist);
53
cache_iajb_uhf(cachelist);
59
/*** Cache, oooo, oov, oovv, ovov, and ovvv ***/
61
cache_ijkl_uhf(cachelist);
62
cache_ijka_uhf(cachelist);
63
cache_ijab_uhf(cachelist);
64
cache_iajb_uhf(cachelist);
65
cache_iabc_uhf(cachelist);
71
/*** Cache everything ***/
72
cache_ijkl_uhf(cachelist);
73
cache_ijka_uhf(cachelist);
74
cache_ijab_uhf(cachelist);
75
cache_iajb_uhf(cachelist);
76
cache_iabc_uhf(cachelist);
77
cache_abcd_uhf(cachelist);
81
else { printf("Error: invalid cache level!\n"); exit(PSI_RETURN_FAILURE); }
84
int **cacheprep_rhf(int level, int *cachefiles)
88
/* The listing of CC files whose entries may be cached */
89
cachefiles[CC_AINTS] = 1;
90
cachefiles[CC_CINTS] = 1;
91
cachefiles[CC_DINTS] = 1;
92
cachefiles[CC_EINTS] = 1;
93
cachefiles[CC_DENOM] = 1;
94
cachefiles[CC_TAMPS] = 1;
95
cachefiles[CC_LAMPS] = 1;
96
cachefiles[CC_HBAR] = 1;
98
/* The listing of DPD patterns which may be cached */
99
cachelist = init_int_matrix(12,12);
101
if(level == 0) return cachelist;
102
else if(level == 1) {
104
/*** Cache oooo and ooov ***/
105
cache_ijkl_rhf(cachelist);
106
cache_ijka_rhf(cachelist);
110
else if(level == 2) {
112
/*** Cache oooo, ooov, oovv, and ovov ***/
113
cache_ijkl_rhf(cachelist);
114
cache_ijka_rhf(cachelist);
115
cache_ijab_rhf(cachelist);
116
cache_iajb_rhf(cachelist);
120
else if(level == 3) {
122
/*** Cache, oooo, oov, oovv, ovov, and ovvv ***/
124
cache_ijkl_rhf(cachelist);
125
cache_ijka_rhf(cachelist);
126
cache_ijab_rhf(cachelist);
127
cache_iajb_rhf(cachelist);
128
cache_iabc_rhf(cachelist);
132
else if(level == 4) {
134
/*** Cache everything ***/
135
cache_ijkl_rhf(cachelist);
136
cache_ijka_rhf(cachelist);
137
cache_ijab_rhf(cachelist);
138
cache_iajb_rhf(cachelist);
139
cache_iabc_rhf(cachelist);
140
cache_abcd_rhf(cachelist);
144
else { printf("Error: invalid cache level!\n"); exit(PSI_RETURN_FAILURE); }
147
void cache_abcd_uhf(int **cachelist)
176
cachelist[15][15] = 1;
177
cachelist[15][16] = 1;
178
cachelist[15][17] = 1;
179
cachelist[15][18] = 1;
180
cachelist[15][19] = 1;
181
cachelist[16][15] = 1;
182
cachelist[16][16] = 1;
183
cachelist[16][17] = 1;
184
cachelist[16][18] = 1;
185
cachelist[16][19] = 1;
186
cachelist[17][15] = 1;
187
cachelist[17][16] = 1;
188
cachelist[17][17] = 1;
189
cachelist[17][18] = 1;
190
cachelist[17][19] = 1;
191
cachelist[18][15] = 1;
192
cachelist[18][16] = 1;
193
cachelist[18][17] = 1;
194
cachelist[18][18] = 1;
195
cachelist[18][19] = 1;
196
cachelist[19][15] = 1;
197
cachelist[19][16] = 1;
198
cachelist[19][17] = 1;
199
cachelist[19][18] = 1;
200
cachelist[19][19] = 1;
202
cachelist[28][28] = 1;
203
cachelist[29][29] = 1;
204
cachelist[28][29] = 1;
205
cachelist[29][28] = 1;
208
void cache_abcd_rhf(int **cachelist)
238
void cache_iabc_rhf(int **cachelist)
241
cachelist[10][5] = 1;
242
cachelist[10][6] = 1;
243
cachelist[10][7] = 1;
244
cachelist[10][8] = 1;
245
cachelist[10][9] = 1;
246
cachelist[11][5] = 1;
247
cachelist[11][6] = 1;
248
cachelist[11][7] = 1;
249
cachelist[11][8] = 1;
250
cachelist[11][9] = 1;
252
cachelist[5][10] = 1;
253
cachelist[5][11] = 1;
254
cachelist[6][10] = 1;
255
cachelist[6][11] = 1;
256
cachelist[7][10] = 1;
257
cachelist[7][11] = 1;
258
cachelist[8][10] = 1;
259
cachelist[8][11] = 1;
260
cachelist[9][10] = 1;
261
cachelist[9][11] = 1;
264
void cache_iabc_uhf(int **cachelist)
267
cachelist[20][5] = 1;
268
cachelist[20][6] = 1;
269
cachelist[20][7] = 1;
270
cachelist[20][8] = 1;
271
cachelist[20][9] = 1;
272
cachelist[21][5] = 1;
273
cachelist[21][6] = 1;
274
cachelist[21][7] = 1;
275
cachelist[21][8] = 1;
276
cachelist[21][9] = 1;
278
cachelist[5][20] = 1;
279
cachelist[5][21] = 1;
280
cachelist[6][20] = 1;
281
cachelist[6][21] = 1;
282
cachelist[7][20] = 1;
283
cachelist[7][21] = 1;
284
cachelist[8][20] = 1;
285
cachelist[8][21] = 1;
286
cachelist[9][20] = 1;
287
cachelist[9][21] = 1;
290
cachelist[30][15] = 1;
291
cachelist[30][16] = 1;
292
cachelist[30][17] = 1;
293
cachelist[30][18] = 1;
294
cachelist[30][19] = 1;
295
cachelist[31][15] = 1;
296
cachelist[31][16] = 1;
297
cachelist[31][17] = 1;
298
cachelist[31][18] = 1;
299
cachelist[31][19] = 1;
301
cachelist[15][30] = 1;
302
cachelist[15][31] = 1;
303
cachelist[16][30] = 1;
304
cachelist[16][31] = 1;
305
cachelist[17][30] = 1;
306
cachelist[17][31] = 1;
307
cachelist[18][30] = 1;
308
cachelist[18][31] = 1;
309
cachelist[19][30] = 1;
310
cachelist[19][31] = 1;
313
cachelist[24][28] = 1;
314
cachelist[24][29] = 1;
315
cachelist[25][28] = 1;
316
cachelist[25][29] = 1;
319
cachelist[28][24] = 1;
320
cachelist[28][25] = 1;
321
cachelist[29][24] = 1;
322
cachelist[29][25] = 1;
325
void cache_ijab_rhf(int **cachelist)
381
void cache_ijab_uhf(int **cachelist)
437
cachelist[10][15] = 1;
438
cachelist[10][16] = 1;
439
cachelist[10][17] = 1;
440
cachelist[10][18] = 1;
441
cachelist[10][19] = 1;
442
cachelist[11][15] = 1;
443
cachelist[11][16] = 1;
444
cachelist[11][17] = 1;
445
cachelist[11][18] = 1;
446
cachelist[11][19] = 1;
447
cachelist[12][15] = 1;
448
cachelist[12][16] = 1;
449
cachelist[12][17] = 1;
450
cachelist[12][18] = 1;
451
cachelist[12][19] = 1;
452
cachelist[13][15] = 1;
453
cachelist[13][16] = 1;
454
cachelist[13][17] = 1;
455
cachelist[13][18] = 1;
456
cachelist[13][19] = 1;
457
cachelist[14][15] = 1;
458
cachelist[14][16] = 1;
459
cachelist[14][17] = 1;
460
cachelist[14][18] = 1;
461
cachelist[14][19] = 1;
463
cachelist[15][10] = 1;
464
cachelist[15][11] = 1;
465
cachelist[15][12] = 1;
466
cachelist[15][13] = 1;
467
cachelist[15][14] = 1;
468
cachelist[16][10] = 1;
469
cachelist[16][11] = 1;
470
cachelist[16][12] = 1;
471
cachelist[16][13] = 1;
472
cachelist[16][14] = 1;
473
cachelist[17][10] = 1;
474
cachelist[17][11] = 1;
475
cachelist[17][12] = 1;
476
cachelist[17][13] = 1;
477
cachelist[17][14] = 1;
478
cachelist[18][10] = 1;
479
cachelist[18][11] = 1;
480
cachelist[18][12] = 1;
481
cachelist[18][13] = 1;
482
cachelist[18][14] = 1;
483
cachelist[19][10] = 1;
484
cachelist[19][11] = 1;
485
cachelist[19][12] = 1;
486
cachelist[19][13] = 1;
487
cachelist[19][14] = 1;
490
cachelist[22][28] = 1;
491
cachelist[23][28] = 1;
492
cachelist[22][29] = 1;
493
cachelist[23][29] = 1;
495
cachelist[28][22] = 1;
496
cachelist[28][23] = 1;
497
cachelist[29][22] = 1;
498
cachelist[29][23] = 1;
501
void cache_iajb_rhf(int **cachelist)
504
cachelist[10][10] = 1;
505
cachelist[10][11] = 1;
506
cachelist[11][10] = 1;
507
cachelist[11][11] = 1;
510
void cache_iajb_uhf(int **cachelist)
513
cachelist[20][20] = 1;
514
cachelist[20][21] = 1;
515
cachelist[21][20] = 1;
516
cachelist[21][21] = 1;
518
cachelist[30][30] = 1;
519
cachelist[30][31] = 1;
520
cachelist[31][30] = 1;
521
cachelist[31][31] = 1;
523
cachelist[24][24] = 1;
524
cachelist[24][25] = 1;
525
cachelist[25][24] = 1;
526
cachelist[25][25] = 1;
529
void cache_ijka_rhf(int **cachelist)
532
cachelist[0][10] = 1;
533
cachelist[0][11] = 1;
534
cachelist[1][10] = 1;
535
cachelist[1][11] = 1;
536
cachelist[2][10] = 1;
537
cachelist[2][11] = 1;
538
cachelist[3][10] = 1;
539
cachelist[3][11] = 1;
540
cachelist[4][10] = 1;
541
cachelist[4][11] = 1;
543
cachelist[10][0] = 1;
544
cachelist[10][1] = 1;
545
cachelist[10][2] = 1;
546
cachelist[10][3] = 1;
547
cachelist[10][4] = 1;
548
cachelist[11][0] = 1;
549
cachelist[11][1] = 1;
550
cachelist[11][2] = 1;
551
cachelist[11][3] = 1;
552
cachelist[11][4] = 1;
555
void cache_ijka_uhf(int **cachelist)
558
cachelist[0][20] = 1;
559
cachelist[0][21] = 1;
560
cachelist[1][20] = 1;
561
cachelist[1][21] = 1;
562
cachelist[2][20] = 1;
563
cachelist[2][21] = 1;
564
cachelist[3][20] = 1;
565
cachelist[3][21] = 1;
566
cachelist[4][20] = 1;
567
cachelist[4][21] = 1;
569
cachelist[20][0] = 1;
570
cachelist[20][1] = 1;
571
cachelist[20][2] = 1;
572
cachelist[20][3] = 1;
573
cachelist[20][4] = 1;
574
cachelist[21][0] = 1;
575
cachelist[21][1] = 1;
576
cachelist[21][2] = 1;
577
cachelist[21][3] = 1;
578
cachelist[21][4] = 1;
581
cachelist[10][30] = 1;
582
cachelist[10][31] = 1;
583
cachelist[11][30] = 1;
584
cachelist[11][31] = 1;
585
cachelist[12][30] = 1;
586
cachelist[12][31] = 1;
587
cachelist[13][30] = 1;
588
cachelist[13][31] = 1;
589
cachelist[14][30] = 1;
590
cachelist[14][31] = 1;
592
cachelist[30][10] = 1;
593
cachelist[30][11] = 1;
594
cachelist[30][12] = 1;
595
cachelist[30][13] = 1;
596
cachelist[30][14] = 1;
597
cachelist[31][10] = 1;
598
cachelist[31][11] = 1;
599
cachelist[31][12] = 1;
600
cachelist[31][13] = 1;
601
cachelist[31][14] = 1;
604
cachelist[22][24] = 1;
605
cachelist[22][25] = 1;
606
cachelist[23][24] = 1;
607
cachelist[23][25] = 1;
609
cachelist[24][22] = 1;
610
cachelist[25][22] = 1;
611
cachelist[24][23] = 1;
612
cachelist[25][23] = 1;
615
void cache_ijkl_rhf(int **cachelist)
645
void cache_ijkl_uhf(int **cachelist)
674
cachelist[10][10] = 1;
675
cachelist[10][11] = 1;
676
cachelist[10][12] = 1;
677
cachelist[10][13] = 1;
678
cachelist[10][14] = 1;
679
cachelist[11][10] = 1;
680
cachelist[11][11] = 1;
681
cachelist[11][12] = 1;
682
cachelist[11][13] = 1;
683
cachelist[11][14] = 1;
684
cachelist[12][10] = 1;
685
cachelist[12][11] = 1;
686
cachelist[12][12] = 1;
687
cachelist[12][13] = 1;
688
cachelist[12][14] = 1;
689
cachelist[13][10] = 1;
690
cachelist[13][11] = 1;
691
cachelist[13][12] = 1;
692
cachelist[13][13] = 1;
693
cachelist[13][14] = 1;
694
cachelist[14][10] = 1;
695
cachelist[14][11] = 1;
696
cachelist[14][12] = 1;
697
cachelist[14][13] = 1;
698
cachelist[14][14] = 1;
700
cachelist[22][22] = 1;
701
cachelist[22][23] = 1;
702
cachelist[23][22] = 1;
703
cachelist[23][23] = 1;
706
void cachedone_uhf(int **cachelist)
708
free_int_matrix(cachelist, 32);
711
void cachedone_rhf(int **cachelist)
713
free_int_matrix(cachelist, 12);