1 #include "simint/boys/boys.h"
2 #include "simint/ostei/gen/ostei_generated.h"
3 #include "simint/vectorization/vectorization.h"
4 #include <math.h>
5 #include <string.h>
6
7
ostei_k_g_i_h(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__k_g_i_h)8 int ostei_k_g_i_h(struct simint_multi_shellpair const P,
9 struct simint_multi_shellpair const Q,
10 double screen_tol,
11 double * const restrict work,
12 double * const restrict INT__k_g_i_h)
13 {
14
15 SIMINT_ASSUME_ALIGN_DBL(work);
16 SIMINT_ASSUME_ALIGN_DBL(INT__k_g_i_h);
17 int ab, cd, abcd;
18 int istart, jstart;
19 int iprimcd, nprim_icd, icd;
20 const int check_screen = (screen_tol > 0.0);
21 int i, j;
22 int n;
23 int not_screened;
24 int real_abcd;
25 int iket;
26 int ibra;
27
28 // partition workspace
29 double * const INT__k_s_i_s = work + (SIMINT_NSHELL_SIMD * 0);
30 double * const INT__k_s_k_s = work + (SIMINT_NSHELL_SIMD * 1008);
31 double * const INT__k_s_l_s = work + (SIMINT_NSHELL_SIMD * 2304);
32 double * const INT__k_s_m_s = work + (SIMINT_NSHELL_SIMD * 3924);
33 double * const INT__k_s_n_s = work + (SIMINT_NSHELL_SIMD * 5904);
34 double * const INT__k_s_o_s = work + (SIMINT_NSHELL_SIMD * 8280);
35 double * const INT__l_s_i_s = work + (SIMINT_NSHELL_SIMD * 11088);
36 double * const INT__l_s_k_s = work + (SIMINT_NSHELL_SIMD * 12348);
37 double * const INT__l_s_l_s = work + (SIMINT_NSHELL_SIMD * 13968);
38 double * const INT__l_s_m_s = work + (SIMINT_NSHELL_SIMD * 15993);
39 double * const INT__l_s_n_s = work + (SIMINT_NSHELL_SIMD * 18468);
40 double * const INT__l_s_o_s = work + (SIMINT_NSHELL_SIMD * 21438);
41 double * const INT__m_s_i_s = work + (SIMINT_NSHELL_SIMD * 24948);
42 double * const INT__m_s_k_s = work + (SIMINT_NSHELL_SIMD * 26488);
43 double * const INT__m_s_l_s = work + (SIMINT_NSHELL_SIMD * 28468);
44 double * const INT__m_s_m_s = work + (SIMINT_NSHELL_SIMD * 30943);
45 double * const INT__m_s_n_s = work + (SIMINT_NSHELL_SIMD * 33968);
46 double * const INT__m_s_o_s = work + (SIMINT_NSHELL_SIMD * 37598);
47 double * const INT__n_s_i_s = work + (SIMINT_NSHELL_SIMD * 41888);
48 double * const INT__n_s_k_s = work + (SIMINT_NSHELL_SIMD * 43736);
49 double * const INT__n_s_l_s = work + (SIMINT_NSHELL_SIMD * 46112);
50 double * const INT__n_s_m_s = work + (SIMINT_NSHELL_SIMD * 49082);
51 double * const INT__n_s_n_s = work + (SIMINT_NSHELL_SIMD * 52712);
52 double * const INT__n_s_o_s = work + (SIMINT_NSHELL_SIMD * 57068);
53 double * const INT__o_s_i_s = work + (SIMINT_NSHELL_SIMD * 62216);
54 double * const INT__o_s_k_s = work + (SIMINT_NSHELL_SIMD * 64400);
55 double * const INT__o_s_l_s = work + (SIMINT_NSHELL_SIMD * 67208);
56 double * const INT__o_s_m_s = work + (SIMINT_NSHELL_SIMD * 70718);
57 double * const INT__o_s_n_s = work + (SIMINT_NSHELL_SIMD * 75008);
58 double * const INT__o_s_o_s = work + (SIMINT_NSHELL_SIMD * 80156);
59 SIMINT_DBLTYPE * const primwork = (SIMINT_DBLTYPE *)(work + SIMINT_NSHELL_SIMD*86240);
60 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_s_s = primwork + 0;
61 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_p_s = primwork + 23;
62 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_d_s = primwork + 56;
63 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_f_s = primwork + 116;
64 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_g_s = primwork + 206;
65 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_s_s = primwork + 326;
66 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_p_s = primwork + 392;
67 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_d_s = primwork + 491;
68 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_f_s = primwork + 671;
69 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_g_s = primwork + 941;
70 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_h_s = primwork + 1301;
71 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_s_s = primwork + 1742;
72 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_p_s = primwork + 1868;
73 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_d_s = primwork + 2066;
74 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_f_s = primwork + 2426;
75 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_g_s = primwork + 2966;
76 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_h_s = primwork + 3686;
77 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_i_s = primwork + 4568;
78 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_s_s = primwork + 5576;
79 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_p_s = primwork + 5776;
80 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_d_s = primwork + 6106;
81 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_f_s = primwork + 6706;
82 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_g_s = primwork + 7606;
83 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_h_s = primwork + 8806;
84 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_i_s = primwork + 10276;
85 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_k_s = primwork + 11956;
86 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_s_s = primwork + 13756;
87 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_p_s = primwork + 14041;
88 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_d_s = primwork + 14536;
89 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_f_s = primwork + 15436;
90 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_g_s = primwork + 16786;
91 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_h_s = primwork + 18586;
92 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_i_s = primwork + 20791;
93 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_k_s = primwork + 23311;
94 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_l_s = primwork + 26011;
95 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_s_s = primwork + 28711;
96 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_p_s = primwork + 29089;
97 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_d_s = primwork + 29782;
98 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_f_s = primwork + 31042;
99 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_g_s = primwork + 32932;
100 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_h_s = primwork + 35452;
101 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_i_s = primwork + 38539;
102 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_k_s = primwork + 42067;
103 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_l_s = primwork + 45847;
104 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_m_s = primwork + 49627;
105 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_s_s = primwork + 53092;
106 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_p_s = primwork + 53568;
107 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_d_s = primwork + 54492;
108 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_f_s = primwork + 56172;
109 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_g_s = primwork + 58692;
110 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_h_s = primwork + 62052;
111 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_i_s = primwork + 66168;
112 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_k_s = primwork + 70872;
113 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_l_s = primwork + 75912;
114 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_m_s = primwork + 80952;
115 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_n_s = primwork + 85572;
116 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_s_s = primwork + 89268;
117 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_p_s = primwork + 89844;
118 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_d_s = primwork + 91032;
119 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_f_s = primwork + 93192;
120 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_g_s = primwork + 96432;
121 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_h_s = primwork + 100752;
122 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_i_s = primwork + 106044;
123 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_k_s = primwork + 112092;
124 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_l_s = primwork + 118572;
125 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_m_s = primwork + 125052;
126 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_n_s = primwork + 130992;
127 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_o_s = primwork + 135744;
128 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_s_s = primwork + 138552;
129 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_p_s = primwork + 139227;
130 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_d_s = primwork + 140712;
131 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_f_s = primwork + 143412;
132 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_g_s = primwork + 147462;
133 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_h_s = primwork + 152862;
134 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_i_s = primwork + 159477;
135 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_k_s = primwork + 167037;
136 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_l_s = primwork + 175137;
137 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_m_s = primwork + 183237;
138 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_n_s = primwork + 190662;
139 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_o_s = primwork + 196602;
140 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_s_s = primwork + 200112;
141 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_p_s = primwork + 200882;
142 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_d_s = primwork + 202697;
143 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_f_s = primwork + 205997;
144 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_g_s = primwork + 210947;
145 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_h_s = primwork + 217547;
146 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_i_s = primwork + 225632;
147 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_k_s = primwork + 234872;
148 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_l_s = primwork + 244772;
149 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_m_s = primwork + 254672;
150 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_n_s = primwork + 263747;
151 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_o_s = primwork + 271007;
152 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_s_s = primwork + 275297;
153 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_p_s = primwork + 276155;
154 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_d_s = primwork + 278333;
155 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_f_s = primwork + 282293;
156 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_g_s = primwork + 288233;
157 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_h_s = primwork + 296153;
158 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_i_s = primwork + 305855;
159 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_k_s = primwork + 316943;
160 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_l_s = primwork + 328823;
161 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_m_s = primwork + 340703;
162 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_n_s = primwork + 351593;
163 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_o_s = primwork + 360305;
164 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_s_s = primwork + 365453;
165 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_p_s = primwork + 366389;
166 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_d_s = primwork + 368963;
167 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_f_s = primwork + 373643;
168 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_g_s = primwork + 380663;
169 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_h_s = primwork + 390023;
170 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_i_s = primwork + 401489;
171 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_k_s = primwork + 414593;
172 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_l_s = primwork + 428633;
173 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_m_s = primwork + 442673;
174 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_n_s = primwork + 455543;
175 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_o_s = primwork + 465839;
176 double * const hrrwork = (double *)(primwork + 471923);
177 double * const HRR_INT__k_p_i_s = hrrwork + 0;
178 double * const HRR_INT__k_p_k_s = hrrwork + 3024;
179 double * const HRR_INT__k_p_l_s = hrrwork + 6912;
180 double * const HRR_INT__k_p_m_s = hrrwork + 11772;
181 double * const HRR_INT__k_p_n_s = hrrwork + 17712;
182 double * const HRR_INT__k_p_o_s = hrrwork + 24840;
183 double * const HRR_INT__k_d_i_s = hrrwork + 33264;
184 double * const HRR_INT__k_d_k_s = hrrwork + 39312;
185 double * const HRR_INT__k_d_l_s = hrrwork + 47088;
186 double * const HRR_INT__k_d_m_s = hrrwork + 56808;
187 double * const HRR_INT__k_d_n_s = hrrwork + 68688;
188 double * const HRR_INT__k_d_o_s = hrrwork + 82944;
189 double * const HRR_INT__k_f_i_s = hrrwork + 99792;
190 double * const HRR_INT__k_f_k_s = hrrwork + 109872;
191 double * const HRR_INT__k_f_l_s = hrrwork + 122832;
192 double * const HRR_INT__k_f_m_s = hrrwork + 139032;
193 double * const HRR_INT__k_f_n_s = hrrwork + 158832;
194 double * const HRR_INT__k_f_o_s = hrrwork + 182592;
195 double * const HRR_INT__k_g_i_s = hrrwork + 210672;
196 double * const HRR_INT__k_g_i_p = hrrwork + 225792;
197 double * const HRR_INT__k_g_i_d = hrrwork + 271152;
198 double * const HRR_INT__k_g_i_f = hrrwork + 361872;
199 double * const HRR_INT__k_g_i_g = hrrwork + 513072;
200 double * const HRR_INT__k_g_k_s = hrrwork + 739872;
201 double * const HRR_INT__k_g_k_p = hrrwork + 759312;
202 double * const HRR_INT__k_g_k_d = hrrwork + 817632;
203 double * const HRR_INT__k_g_k_f = hrrwork + 934272;
204 double * const HRR_INT__k_g_k_g = hrrwork + 1128672;
205 double * const HRR_INT__k_g_l_s = hrrwork + 1420272;
206 double * const HRR_INT__k_g_l_p = hrrwork + 1444572;
207 double * const HRR_INT__k_g_l_d = hrrwork + 1517472;
208 double * const HRR_INT__k_g_l_f = hrrwork + 1663272;
209 double * const HRR_INT__k_g_m_s = hrrwork + 1906272;
210 double * const HRR_INT__k_g_m_p = hrrwork + 1935972;
211 double * const HRR_INT__k_g_m_d = hrrwork + 2025072;
212 double * const HRR_INT__k_g_n_s = hrrwork + 2203272;
213 double * const HRR_INT__k_g_n_p = hrrwork + 2238912;
214 double * const HRR_INT__k_g_o_s = hrrwork + 2345832;
215 double * const HRR_INT__l_p_i_s = hrrwork + 2387952;
216 double * const HRR_INT__l_p_k_s = hrrwork + 2391732;
217 double * const HRR_INT__l_p_l_s = hrrwork + 2396592;
218 double * const HRR_INT__l_p_m_s = hrrwork + 2402667;
219 double * const HRR_INT__l_p_n_s = hrrwork + 2410092;
220 double * const HRR_INT__l_p_o_s = hrrwork + 2419002;
221 double * const HRR_INT__l_d_i_s = hrrwork + 2429532;
222 double * const HRR_INT__l_d_k_s = hrrwork + 2437092;
223 double * const HRR_INT__l_d_l_s = hrrwork + 2446812;
224 double * const HRR_INT__l_d_m_s = hrrwork + 2458962;
225 double * const HRR_INT__l_d_n_s = hrrwork + 2473812;
226 double * const HRR_INT__l_d_o_s = hrrwork + 2491632;
227 double * const HRR_INT__l_f_i_s = hrrwork + 2512692;
228 double * const HRR_INT__l_f_k_s = hrrwork + 2525292;
229 double * const HRR_INT__l_f_l_s = hrrwork + 2541492;
230 double * const HRR_INT__l_f_m_s = hrrwork + 2561742;
231 double * const HRR_INT__l_f_n_s = hrrwork + 2586492;
232 double * const HRR_INT__l_f_o_s = hrrwork + 2616192;
233 double * const HRR_INT__m_p_i_s = hrrwork + 2651292;
234 double * const HRR_INT__m_p_k_s = hrrwork + 2655912;
235 double * const HRR_INT__m_p_l_s = hrrwork + 2661852;
236 double * const HRR_INT__m_p_m_s = hrrwork + 2669277;
237 double * const HRR_INT__m_p_n_s = hrrwork + 2678352;
238 double * const HRR_INT__m_p_o_s = hrrwork + 2689242;
239 double * const HRR_INT__m_d_i_s = hrrwork + 2702112;
240 double * const HRR_INT__m_d_k_s = hrrwork + 2711352;
241 double * const HRR_INT__m_d_l_s = hrrwork + 2723232;
242 double * const HRR_INT__m_d_m_s = hrrwork + 2738082;
243 double * const HRR_INT__m_d_n_s = hrrwork + 2756232;
244 double * const HRR_INT__m_d_o_s = hrrwork + 2778012;
245 double * const HRR_INT__n_p_i_s = hrrwork + 2803752;
246 double * const HRR_INT__n_p_k_s = hrrwork + 2809296;
247 double * const HRR_INT__n_p_l_s = hrrwork + 2816424;
248 double * const HRR_INT__n_p_m_s = hrrwork + 2825334;
249 double * const HRR_INT__n_p_n_s = hrrwork + 2836224;
250 double * const HRR_INT__n_p_o_s = hrrwork + 2849292;
251
252
253 // Create constants
254 const SIMINT_DBLTYPE const_1 = SIMINT_DBLSET1(1);
255 const SIMINT_DBLTYPE const_10 = SIMINT_DBLSET1(10);
256 const SIMINT_DBLTYPE const_11 = SIMINT_DBLSET1(11);
257 const SIMINT_DBLTYPE const_2 = SIMINT_DBLSET1(2);
258 const SIMINT_DBLTYPE const_3 = SIMINT_DBLSET1(3);
259 const SIMINT_DBLTYPE const_4 = SIMINT_DBLSET1(4);
260 const SIMINT_DBLTYPE const_5 = SIMINT_DBLSET1(5);
261 const SIMINT_DBLTYPE const_6 = SIMINT_DBLSET1(6);
262 const SIMINT_DBLTYPE const_7 = SIMINT_DBLSET1(7);
263 const SIMINT_DBLTYPE const_8 = SIMINT_DBLSET1(8);
264 const SIMINT_DBLTYPE const_9 = SIMINT_DBLSET1(9);
265 const SIMINT_DBLTYPE one_half = SIMINT_DBLSET1(0.5);
266
267
268 ////////////////////////////////////////
269 // Loop over shells and primitives
270 ////////////////////////////////////////
271
272 real_abcd = 0;
273 istart = 0;
274 for(ab = 0; ab < P.nshell12_clip; ++ab)
275 {
276 const int iend = istart + P.nprim12[ab];
277
278 cd = 0;
279 jstart = 0;
280
281 for(cd = 0; cd < Q.nshell12_clip; cd += SIMINT_NSHELL_SIMD)
282 {
283 const int nshellbatch = ((cd + SIMINT_NSHELL_SIMD) > Q.nshell12_clip) ? Q.nshell12_clip - cd : SIMINT_NSHELL_SIMD;
284 int jend = jstart;
285 for(i = 0; i < nshellbatch; i++)
286 jend += Q.nprim12[cd+i];
287
288 // Clear the beginning of the workspace (where we are accumulating integrals)
289 memset(work, 0, SIMINT_NSHELL_SIMD * 86240 * sizeof(double));
290 abcd = 0;
291
292
293 for(i = istart; i < iend; ++i)
294 {
295 SIMINT_DBLTYPE bra_screen_max; // only used if check_screen
296
297 if(check_screen)
298 {
299 // Skip this whole thing if always insignificant
300 if((P.screen[i] * Q.screen_max) < screen_tol)
301 continue;
302 bra_screen_max = SIMINT_DBLSET1(P.screen[i]);
303 }
304
305 icd = 0;
306 iprimcd = 0;
307 nprim_icd = Q.nprim12[cd];
308 double * restrict PRIM_PTR_INT__k_s_i_s = INT__k_s_i_s + abcd * 1008;
309 double * restrict PRIM_PTR_INT__k_s_k_s = INT__k_s_k_s + abcd * 1296;
310 double * restrict PRIM_PTR_INT__k_s_l_s = INT__k_s_l_s + abcd * 1620;
311 double * restrict PRIM_PTR_INT__k_s_m_s = INT__k_s_m_s + abcd * 1980;
312 double * restrict PRIM_PTR_INT__k_s_n_s = INT__k_s_n_s + abcd * 2376;
313 double * restrict PRIM_PTR_INT__k_s_o_s = INT__k_s_o_s + abcd * 2808;
314 double * restrict PRIM_PTR_INT__l_s_i_s = INT__l_s_i_s + abcd * 1260;
315 double * restrict PRIM_PTR_INT__l_s_k_s = INT__l_s_k_s + abcd * 1620;
316 double * restrict PRIM_PTR_INT__l_s_l_s = INT__l_s_l_s + abcd * 2025;
317 double * restrict PRIM_PTR_INT__l_s_m_s = INT__l_s_m_s + abcd * 2475;
318 double * restrict PRIM_PTR_INT__l_s_n_s = INT__l_s_n_s + abcd * 2970;
319 double * restrict PRIM_PTR_INT__l_s_o_s = INT__l_s_o_s + abcd * 3510;
320 double * restrict PRIM_PTR_INT__m_s_i_s = INT__m_s_i_s + abcd * 1540;
321 double * restrict PRIM_PTR_INT__m_s_k_s = INT__m_s_k_s + abcd * 1980;
322 double * restrict PRIM_PTR_INT__m_s_l_s = INT__m_s_l_s + abcd * 2475;
323 double * restrict PRIM_PTR_INT__m_s_m_s = INT__m_s_m_s + abcd * 3025;
324 double * restrict PRIM_PTR_INT__m_s_n_s = INT__m_s_n_s + abcd * 3630;
325 double * restrict PRIM_PTR_INT__m_s_o_s = INT__m_s_o_s + abcd * 4290;
326 double * restrict PRIM_PTR_INT__n_s_i_s = INT__n_s_i_s + abcd * 1848;
327 double * restrict PRIM_PTR_INT__n_s_k_s = INT__n_s_k_s + abcd * 2376;
328 double * restrict PRIM_PTR_INT__n_s_l_s = INT__n_s_l_s + abcd * 2970;
329 double * restrict PRIM_PTR_INT__n_s_m_s = INT__n_s_m_s + abcd * 3630;
330 double * restrict PRIM_PTR_INT__n_s_n_s = INT__n_s_n_s + abcd * 4356;
331 double * restrict PRIM_PTR_INT__n_s_o_s = INT__n_s_o_s + abcd * 5148;
332 double * restrict PRIM_PTR_INT__o_s_i_s = INT__o_s_i_s + abcd * 2184;
333 double * restrict PRIM_PTR_INT__o_s_k_s = INT__o_s_k_s + abcd * 2808;
334 double * restrict PRIM_PTR_INT__o_s_l_s = INT__o_s_l_s + abcd * 3510;
335 double * restrict PRIM_PTR_INT__o_s_m_s = INT__o_s_m_s + abcd * 4290;
336 double * restrict PRIM_PTR_INT__o_s_n_s = INT__o_s_n_s + abcd * 5148;
337 double * restrict PRIM_PTR_INT__o_s_o_s = INT__o_s_o_s + abcd * 6084;
338
339
340
341 // Load these one per loop over i
342 const SIMINT_DBLTYPE P_alpha = SIMINT_DBLSET1(P.alpha[i]);
343 const SIMINT_DBLTYPE P_prefac = SIMINT_DBLSET1(P.prefac[i]);
344 const SIMINT_DBLTYPE Pxyz[3] = { SIMINT_DBLSET1(P.x[i]), SIMINT_DBLSET1(P.y[i]), SIMINT_DBLSET1(P.z[i]) };
345
346 const SIMINT_DBLTYPE P_PA[3] = { SIMINT_DBLSET1(P.PA_x[i]), SIMINT_DBLSET1(P.PA_y[i]), SIMINT_DBLSET1(P.PA_z[i]) };
347
348 for(j = jstart; j < jend; j += SIMINT_SIMD_LEN)
349 {
350 // calculate the shell offsets
351 // these are the offset from the shell pointed to by cd
352 // for each element
353 int shelloffsets[SIMINT_SIMD_LEN] = {0};
354 int lastoffset = 0;
355 const int nlane = ( ((j + SIMINT_SIMD_LEN) < jend) ? SIMINT_SIMD_LEN : (jend - j));
356
357 if((iprimcd + SIMINT_SIMD_LEN) >= nprim_icd)
358 {
359 // Handle if the first element of the vector is a new shell
360 if(iprimcd >= nprim_icd && ((icd+1) < nshellbatch))
361 {
362 nprim_icd += Q.nprim12[cd + (++icd)];
363 PRIM_PTR_INT__k_s_i_s += 1008;
364 PRIM_PTR_INT__k_s_k_s += 1296;
365 PRIM_PTR_INT__k_s_l_s += 1620;
366 PRIM_PTR_INT__k_s_m_s += 1980;
367 PRIM_PTR_INT__k_s_n_s += 2376;
368 PRIM_PTR_INT__k_s_o_s += 2808;
369 PRIM_PTR_INT__l_s_i_s += 1260;
370 PRIM_PTR_INT__l_s_k_s += 1620;
371 PRIM_PTR_INT__l_s_l_s += 2025;
372 PRIM_PTR_INT__l_s_m_s += 2475;
373 PRIM_PTR_INT__l_s_n_s += 2970;
374 PRIM_PTR_INT__l_s_o_s += 3510;
375 PRIM_PTR_INT__m_s_i_s += 1540;
376 PRIM_PTR_INT__m_s_k_s += 1980;
377 PRIM_PTR_INT__m_s_l_s += 2475;
378 PRIM_PTR_INT__m_s_m_s += 3025;
379 PRIM_PTR_INT__m_s_n_s += 3630;
380 PRIM_PTR_INT__m_s_o_s += 4290;
381 PRIM_PTR_INT__n_s_i_s += 1848;
382 PRIM_PTR_INT__n_s_k_s += 2376;
383 PRIM_PTR_INT__n_s_l_s += 2970;
384 PRIM_PTR_INT__n_s_m_s += 3630;
385 PRIM_PTR_INT__n_s_n_s += 4356;
386 PRIM_PTR_INT__n_s_o_s += 5148;
387 PRIM_PTR_INT__o_s_i_s += 2184;
388 PRIM_PTR_INT__o_s_k_s += 2808;
389 PRIM_PTR_INT__o_s_l_s += 3510;
390 PRIM_PTR_INT__o_s_m_s += 4290;
391 PRIM_PTR_INT__o_s_n_s += 5148;
392 PRIM_PTR_INT__o_s_o_s += 6084;
393 }
394 iprimcd++;
395 for(n = 1; n < SIMINT_SIMD_LEN; ++n)
396 {
397 if(iprimcd >= nprim_icd && ((icd+1) < nshellbatch))
398 {
399 shelloffsets[n] = shelloffsets[n-1] + 1;
400 lastoffset++;
401 nprim_icd += Q.nprim12[cd + (++icd)];
402 }
403 else
404 shelloffsets[n] = shelloffsets[n-1];
405 iprimcd++;
406 }
407 }
408 else
409 iprimcd += SIMINT_SIMD_LEN;
410
411 // Do we have to compute this vector (or has it been screened out)?
412 // (not_screened != 0 means we have to do this vector)
413 if(check_screen)
414 {
415 const double vmax = vector_max(SIMINT_MUL(bra_screen_max, SIMINT_DBLLOAD(Q.screen, j)));
416 if(vmax < screen_tol)
417 {
418 PRIM_PTR_INT__k_s_i_s += lastoffset*1008;
419 PRIM_PTR_INT__k_s_k_s += lastoffset*1296;
420 PRIM_PTR_INT__k_s_l_s += lastoffset*1620;
421 PRIM_PTR_INT__k_s_m_s += lastoffset*1980;
422 PRIM_PTR_INT__k_s_n_s += lastoffset*2376;
423 PRIM_PTR_INT__k_s_o_s += lastoffset*2808;
424 PRIM_PTR_INT__l_s_i_s += lastoffset*1260;
425 PRIM_PTR_INT__l_s_k_s += lastoffset*1620;
426 PRIM_PTR_INT__l_s_l_s += lastoffset*2025;
427 PRIM_PTR_INT__l_s_m_s += lastoffset*2475;
428 PRIM_PTR_INT__l_s_n_s += lastoffset*2970;
429 PRIM_PTR_INT__l_s_o_s += lastoffset*3510;
430 PRIM_PTR_INT__m_s_i_s += lastoffset*1540;
431 PRIM_PTR_INT__m_s_k_s += lastoffset*1980;
432 PRIM_PTR_INT__m_s_l_s += lastoffset*2475;
433 PRIM_PTR_INT__m_s_m_s += lastoffset*3025;
434 PRIM_PTR_INT__m_s_n_s += lastoffset*3630;
435 PRIM_PTR_INT__m_s_o_s += lastoffset*4290;
436 PRIM_PTR_INT__n_s_i_s += lastoffset*1848;
437 PRIM_PTR_INT__n_s_k_s += lastoffset*2376;
438 PRIM_PTR_INT__n_s_l_s += lastoffset*2970;
439 PRIM_PTR_INT__n_s_m_s += lastoffset*3630;
440 PRIM_PTR_INT__n_s_n_s += lastoffset*4356;
441 PRIM_PTR_INT__n_s_o_s += lastoffset*5148;
442 PRIM_PTR_INT__o_s_i_s += lastoffset*2184;
443 PRIM_PTR_INT__o_s_k_s += lastoffset*2808;
444 PRIM_PTR_INT__o_s_l_s += lastoffset*3510;
445 PRIM_PTR_INT__o_s_m_s += lastoffset*4290;
446 PRIM_PTR_INT__o_s_n_s += lastoffset*5148;
447 PRIM_PTR_INT__o_s_o_s += lastoffset*6084;
448 continue;
449 }
450 }
451
452 const SIMINT_DBLTYPE Q_alpha = SIMINT_DBLLOAD(Q.alpha, j);
453 const SIMINT_DBLTYPE PQalpha_mul = SIMINT_MUL(P_alpha, Q_alpha);
454 const SIMINT_DBLTYPE PQalpha_sum = SIMINT_ADD(P_alpha, Q_alpha);
455 const SIMINT_DBLTYPE one_over_PQalpha_sum = SIMINT_DIV(const_1, PQalpha_sum);
456
457
458 /* construct R2 = (Px - Qx)**2 + (Py - Qy)**2 + (Pz -Qz)**2 */
459 SIMINT_DBLTYPE PQ[3];
460 PQ[0] = SIMINT_SUB(Pxyz[0], SIMINT_DBLLOAD(Q.x, j));
461 PQ[1] = SIMINT_SUB(Pxyz[1], SIMINT_DBLLOAD(Q.y, j));
462 PQ[2] = SIMINT_SUB(Pxyz[2], SIMINT_DBLLOAD(Q.z, j));
463 SIMINT_DBLTYPE R2 = SIMINT_MUL(PQ[0], PQ[0]);
464 R2 = SIMINT_FMADD(PQ[1], PQ[1], R2);
465 R2 = SIMINT_FMADD(PQ[2], PQ[2], R2);
466
467 const SIMINT_DBLTYPE alpha = SIMINT_MUL(PQalpha_mul, one_over_PQalpha_sum); // alpha from MEST
468 const SIMINT_DBLTYPE one_over_p = SIMINT_DIV(const_1, P_alpha);
469 const SIMINT_DBLTYPE one_over_q = SIMINT_DIV(const_1, Q_alpha);
470 const SIMINT_DBLTYPE one_over_2p = SIMINT_MUL(one_half, one_over_p);
471 const SIMINT_DBLTYPE one_over_2q = SIMINT_MUL(one_half, one_over_q);
472 const SIMINT_DBLTYPE one_over_2pq = SIMINT_MUL(one_half, one_over_PQalpha_sum);
473 const SIMINT_DBLTYPE Q_PA[3] = { SIMINT_DBLLOAD(Q.PA_x, j), SIMINT_DBLLOAD(Q.PA_y, j), SIMINT_DBLLOAD(Q.PA_z, j) };
474
475 // NOTE: Minus sign!
476 const SIMINT_DBLTYPE a_over_p = SIMINT_MUL(SIMINT_NEG(alpha), one_over_p);
477 SIMINT_DBLTYPE aop_PQ[3];
478 aop_PQ[0] = SIMINT_MUL(a_over_p, PQ[0]);
479 aop_PQ[1] = SIMINT_MUL(a_over_p, PQ[1]);
480 aop_PQ[2] = SIMINT_MUL(a_over_p, PQ[2]);
481
482 SIMINT_DBLTYPE a_over_q = SIMINT_MUL(alpha, one_over_q);
483 SIMINT_DBLTYPE aoq_PQ[3];
484 aoq_PQ[0] = SIMINT_MUL(a_over_q, PQ[0]);
485 aoq_PQ[1] = SIMINT_MUL(a_over_q, PQ[1]);
486 aoq_PQ[2] = SIMINT_MUL(a_over_q, PQ[2]);
487 // Put a minus sign here so we don't have to in RR routines
488 a_over_q = SIMINT_NEG(a_over_q);
489
490
491 //////////////////////////////////////////////
492 // Fjt function section
493 // Maximum v value: 22
494 //////////////////////////////////////////////
495 // The parameter to the Fjt function
496 const SIMINT_DBLTYPE F_x = SIMINT_MUL(R2, alpha);
497
498
499 const SIMINT_DBLTYPE Q_prefac = mask_load(nlane, Q.prefac + j);
500
501
502 boys_F_split(PRIM_INT__s_s_s_s, F_x, 22);
503 SIMINT_DBLTYPE prefac = SIMINT_SQRT(one_over_PQalpha_sum);
504 prefac = SIMINT_MUL(SIMINT_MUL(P_prefac, Q_prefac), prefac);
505 for(n = 0; n <= 22; n++)
506 PRIM_INT__s_s_s_s[n] = SIMINT_MUL(PRIM_INT__s_s_s_s[n], prefac);
507
508 //////////////////////////////////////////////
509 // Primitive integrals: Vertical recurrance
510 //////////////////////////////////////////////
511
512 const SIMINT_DBLTYPE vrr_const_1_over_2p = one_over_2p;
513 const SIMINT_DBLTYPE vrr_const_2_over_2p = SIMINT_MUL(const_2, one_over_2p);
514 const SIMINT_DBLTYPE vrr_const_3_over_2p = SIMINT_MUL(const_3, one_over_2p);
515 const SIMINT_DBLTYPE vrr_const_4_over_2p = SIMINT_MUL(const_4, one_over_2p);
516 const SIMINT_DBLTYPE vrr_const_5_over_2p = SIMINT_MUL(const_5, one_over_2p);
517 const SIMINT_DBLTYPE vrr_const_6_over_2p = SIMINT_MUL(const_6, one_over_2p);
518 const SIMINT_DBLTYPE vrr_const_7_over_2p = SIMINT_MUL(const_7, one_over_2p);
519 const SIMINT_DBLTYPE vrr_const_8_over_2p = SIMINT_MUL(const_8, one_over_2p);
520 const SIMINT_DBLTYPE vrr_const_9_over_2p = SIMINT_MUL(const_9, one_over_2p);
521 const SIMINT_DBLTYPE vrr_const_10_over_2p = SIMINT_MUL(const_10, one_over_2p);
522 const SIMINT_DBLTYPE vrr_const_1_over_2q = one_over_2q;
523 const SIMINT_DBLTYPE vrr_const_2_over_2q = SIMINT_MUL(const_2, one_over_2q);
524 const SIMINT_DBLTYPE vrr_const_3_over_2q = SIMINT_MUL(const_3, one_over_2q);
525 const SIMINT_DBLTYPE vrr_const_4_over_2q = SIMINT_MUL(const_4, one_over_2q);
526 const SIMINT_DBLTYPE vrr_const_5_over_2q = SIMINT_MUL(const_5, one_over_2q);
527 const SIMINT_DBLTYPE vrr_const_6_over_2q = SIMINT_MUL(const_6, one_over_2q);
528 const SIMINT_DBLTYPE vrr_const_7_over_2q = SIMINT_MUL(const_7, one_over_2q);
529 const SIMINT_DBLTYPE vrr_const_8_over_2q = SIMINT_MUL(const_8, one_over_2q);
530 const SIMINT_DBLTYPE vrr_const_9_over_2q = SIMINT_MUL(const_9, one_over_2q);
531 const SIMINT_DBLTYPE vrr_const_10_over_2q = SIMINT_MUL(const_10, one_over_2q);
532 const SIMINT_DBLTYPE vrr_const_1_over_2pq = one_over_2pq;
533 const SIMINT_DBLTYPE vrr_const_2_over_2pq = SIMINT_MUL(const_2, one_over_2pq);
534 const SIMINT_DBLTYPE vrr_const_3_over_2pq = SIMINT_MUL(const_3, one_over_2pq);
535 const SIMINT_DBLTYPE vrr_const_4_over_2pq = SIMINT_MUL(const_4, one_over_2pq);
536 const SIMINT_DBLTYPE vrr_const_5_over_2pq = SIMINT_MUL(const_5, one_over_2pq);
537 const SIMINT_DBLTYPE vrr_const_6_over_2pq = SIMINT_MUL(const_6, one_over_2pq);
538 const SIMINT_DBLTYPE vrr_const_7_over_2pq = SIMINT_MUL(const_7, one_over_2pq);
539 const SIMINT_DBLTYPE vrr_const_8_over_2pq = SIMINT_MUL(const_8, one_over_2pq);
540 const SIMINT_DBLTYPE vrr_const_9_over_2pq = SIMINT_MUL(const_9, one_over_2pq);
541 const SIMINT_DBLTYPE vrr_const_10_over_2pq = SIMINT_MUL(const_10, one_over_2pq);
542 const SIMINT_DBLTYPE vrr_const_11_over_2pq = SIMINT_MUL(const_11, one_over_2pq);
543
544
545
546 // Forming PRIM_INT__p_s_s_s[22 * 3];
547 for(n = 0; n < 22; ++n) // loop over orders of auxiliary function
548 {
549
550 PRIM_INT__p_s_s_s[n * 3 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_s_s[n * 1 + 0]);
551 PRIM_INT__p_s_s_s[n * 3 + 0] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__s_s_s_s[(n+1) * 1 + 0], PRIM_INT__p_s_s_s[n * 3 + 0]);
552
553 PRIM_INT__p_s_s_s[n * 3 + 1] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_s_s[n * 1 + 0]);
554 PRIM_INT__p_s_s_s[n * 3 + 1] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__s_s_s_s[(n+1) * 1 + 0], PRIM_INT__p_s_s_s[n * 3 + 1]);
555
556 PRIM_INT__p_s_s_s[n * 3 + 2] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_s_s[n * 1 + 0]);
557 PRIM_INT__p_s_s_s[n * 3 + 2] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__s_s_s_s[(n+1) * 1 + 0], PRIM_INT__p_s_s_s[n * 3 + 2]);
558
559 }
560
561
562
563 // Forming PRIM_INT__d_s_s_s[21 * 6];
564 for(n = 0; n < 21; ++n) // loop over orders of auxiliary function
565 {
566
567 PRIM_INT__d_s_s_s[n * 6 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__p_s_s_s[n * 3 + 0]);
568 PRIM_INT__d_s_s_s[n * 6 + 0] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__d_s_s_s[n * 6 + 0]);
569 PRIM_INT__d_s_s_s[n * 6 + 0] = SIMINT_FMADD( vrr_const_1_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__s_s_s_s[(n+1) * 1 + 0], PRIM_INT__s_s_s_s[n * 1 + 0]), PRIM_INT__d_s_s_s[n * 6 + 0]);
570
571 PRIM_INT__d_s_s_s[n * 6 + 1] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_s_s[n * 3 + 0]);
572 PRIM_INT__d_s_s_s[n * 6 + 1] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__d_s_s_s[n * 6 + 1]);
573
574 PRIM_INT__d_s_s_s[n * 6 + 2] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_s_s[n * 3 + 0]);
575 PRIM_INT__d_s_s_s[n * 6 + 2] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__d_s_s_s[n * 6 + 2]);
576
577 PRIM_INT__d_s_s_s[n * 6 + 3] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_s_s[n * 3 + 1]);
578 PRIM_INT__d_s_s_s[n * 6 + 3] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__d_s_s_s[n * 6 + 3]);
579 PRIM_INT__d_s_s_s[n * 6 + 3] = SIMINT_FMADD( vrr_const_1_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__s_s_s_s[(n+1) * 1 + 0], PRIM_INT__s_s_s_s[n * 1 + 0]), PRIM_INT__d_s_s_s[n * 6 + 3]);
580
581 PRIM_INT__d_s_s_s[n * 6 + 4] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_s_s[n * 3 + 1]);
582 PRIM_INT__d_s_s_s[n * 6 + 4] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__d_s_s_s[n * 6 + 4]);
583
584 PRIM_INT__d_s_s_s[n * 6 + 5] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_s_s[n * 3 + 2]);
585 PRIM_INT__d_s_s_s[n * 6 + 5] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__d_s_s_s[n * 6 + 5]);
586 PRIM_INT__d_s_s_s[n * 6 + 5] = SIMINT_FMADD( vrr_const_1_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__s_s_s_s[(n+1) * 1 + 0], PRIM_INT__s_s_s_s[n * 1 + 0]), PRIM_INT__d_s_s_s[n * 6 + 5]);
587
588 }
589
590
591
592 // Forming PRIM_INT__f_s_s_s[20 * 10];
593 for(n = 0; n < 20; ++n) // loop over orders of auxiliary function
594 {
595
596 PRIM_INT__f_s_s_s[n * 10 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__d_s_s_s[n * 6 + 0]);
597 PRIM_INT__f_s_s_s[n * 10 + 0] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 0], PRIM_INT__f_s_s_s[n * 10 + 0]);
598 PRIM_INT__f_s_s_s[n * 10 + 0] = SIMINT_FMADD( vrr_const_2_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_s_s[n * 3 + 0]), PRIM_INT__f_s_s_s[n * 10 + 0]);
599
600 PRIM_INT__f_s_s_s[n * 10 + 1] = SIMINT_MUL(P_PA[1], PRIM_INT__d_s_s_s[n * 6 + 0]);
601 PRIM_INT__f_s_s_s[n * 10 + 1] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 0], PRIM_INT__f_s_s_s[n * 10 + 1]);
602
603 PRIM_INT__f_s_s_s[n * 10 + 2] = SIMINT_MUL(P_PA[2], PRIM_INT__d_s_s_s[n * 6 + 0]);
604 PRIM_INT__f_s_s_s[n * 10 + 2] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 0], PRIM_INT__f_s_s_s[n * 10 + 2]);
605
606 PRIM_INT__f_s_s_s[n * 10 + 3] = SIMINT_MUL(P_PA[0], PRIM_INT__d_s_s_s[n * 6 + 3]);
607 PRIM_INT__f_s_s_s[n * 10 + 3] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 3], PRIM_INT__f_s_s_s[n * 10 + 3]);
608
609 PRIM_INT__f_s_s_s[n * 10 + 4] = SIMINT_MUL(P_PA[2], PRIM_INT__d_s_s_s[n * 6 + 1]);
610 PRIM_INT__f_s_s_s[n * 10 + 4] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 1], PRIM_INT__f_s_s_s[n * 10 + 4]);
611
612 PRIM_INT__f_s_s_s[n * 10 + 5] = SIMINT_MUL(P_PA[0], PRIM_INT__d_s_s_s[n * 6 + 5]);
613 PRIM_INT__f_s_s_s[n * 10 + 5] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 5], PRIM_INT__f_s_s_s[n * 10 + 5]);
614
615 PRIM_INT__f_s_s_s[n * 10 + 6] = SIMINT_MUL(P_PA[1], PRIM_INT__d_s_s_s[n * 6 + 3]);
616 PRIM_INT__f_s_s_s[n * 10 + 6] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 3], PRIM_INT__f_s_s_s[n * 10 + 6]);
617 PRIM_INT__f_s_s_s[n * 10 + 6] = SIMINT_FMADD( vrr_const_2_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_s_s[n * 3 + 1]), PRIM_INT__f_s_s_s[n * 10 + 6]);
618
619 PRIM_INT__f_s_s_s[n * 10 + 7] = SIMINT_MUL(P_PA[2], PRIM_INT__d_s_s_s[n * 6 + 3]);
620 PRIM_INT__f_s_s_s[n * 10 + 7] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 3], PRIM_INT__f_s_s_s[n * 10 + 7]);
621
622 PRIM_INT__f_s_s_s[n * 10 + 8] = SIMINT_MUL(P_PA[1], PRIM_INT__d_s_s_s[n * 6 + 5]);
623 PRIM_INT__f_s_s_s[n * 10 + 8] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 5], PRIM_INT__f_s_s_s[n * 10 + 8]);
624
625 PRIM_INT__f_s_s_s[n * 10 + 9] = SIMINT_MUL(P_PA[2], PRIM_INT__d_s_s_s[n * 6 + 5]);
626 PRIM_INT__f_s_s_s[n * 10 + 9] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 5], PRIM_INT__f_s_s_s[n * 10 + 9]);
627 PRIM_INT__f_s_s_s[n * 10 + 9] = SIMINT_FMADD( vrr_const_2_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_s_s[n * 3 + 2]), PRIM_INT__f_s_s_s[n * 10 + 9]);
628
629 }
630
631
632 VRR_I_g_s_s_s(
633 PRIM_INT__g_s_s_s,
634 PRIM_INT__f_s_s_s,
635 PRIM_INT__d_s_s_s,
636 P_PA,
637 a_over_p,
638 aop_PQ,
639 one_over_2p,
640 19);
641
642
643 VRR_I_h_s_s_s(
644 PRIM_INT__h_s_s_s,
645 PRIM_INT__g_s_s_s,
646 PRIM_INT__f_s_s_s,
647 P_PA,
648 a_over_p,
649 aop_PQ,
650 one_over_2p,
651 18);
652
653
654 ostei_general_vrr1_I(6, 17,
655 one_over_2p, a_over_p, aop_PQ, P_PA,
656 PRIM_INT__h_s_s_s, PRIM_INT__g_s_s_s, PRIM_INT__i_s_s_s);
657
658
659 ostei_general_vrr1_I(7, 16,
660 one_over_2p, a_over_p, aop_PQ, P_PA,
661 PRIM_INT__i_s_s_s, PRIM_INT__h_s_s_s, PRIM_INT__k_s_s_s);
662
663
664 ostei_general_vrr_K(7, 0, 1, 0, 11,
665 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
666 PRIM_INT__k_s_s_s, NULL, NULL, PRIM_INT__i_s_s_s, NULL, PRIM_INT__k_s_p_s);
667
668
669 ostei_general_vrr_K(6, 0, 1, 0, 11,
670 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
671 PRIM_INT__i_s_s_s, NULL, NULL, PRIM_INT__h_s_s_s, NULL, PRIM_INT__i_s_p_s);
672
673
674 ostei_general_vrr_K(7, 0, 2, 0, 10,
675 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
676 PRIM_INT__k_s_p_s, PRIM_INT__k_s_s_s, NULL, PRIM_INT__i_s_p_s, NULL, PRIM_INT__k_s_d_s);
677
678
679 ostei_general_vrr_K(5, 0, 1, 0, 11,
680 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
681 PRIM_INT__h_s_s_s, NULL, NULL, PRIM_INT__g_s_s_s, NULL, PRIM_INT__h_s_p_s);
682
683
684 ostei_general_vrr_K(6, 0, 2, 0, 10,
685 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
686 PRIM_INT__i_s_p_s, PRIM_INT__i_s_s_s, NULL, PRIM_INT__h_s_p_s, NULL, PRIM_INT__i_s_d_s);
687
688
689 ostei_general_vrr_K(7, 0, 3, 0, 9,
690 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
691 PRIM_INT__k_s_d_s, PRIM_INT__k_s_p_s, NULL, PRIM_INT__i_s_d_s, NULL, PRIM_INT__k_s_f_s);
692
693
694 VRR_K_g_s_p_s(
695 PRIM_INT__g_s_p_s,
696 PRIM_INT__g_s_s_s,
697 PRIM_INT__f_s_s_s,
698 Q_PA,
699 aoq_PQ,
700 one_over_2pq,
701 11);
702
703
704 ostei_general_vrr_K(5, 0, 2, 0, 10,
705 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
706 PRIM_INT__h_s_p_s, PRIM_INT__h_s_s_s, NULL, PRIM_INT__g_s_p_s, NULL, PRIM_INT__h_s_d_s);
707
708
709 ostei_general_vrr_K(6, 0, 3, 0, 9,
710 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
711 PRIM_INT__i_s_d_s, PRIM_INT__i_s_p_s, NULL, PRIM_INT__h_s_d_s, NULL, PRIM_INT__i_s_f_s);
712
713
714 ostei_general_vrr_K(7, 0, 4, 0, 8,
715 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
716 PRIM_INT__k_s_f_s, PRIM_INT__k_s_d_s, NULL, PRIM_INT__i_s_f_s, NULL, PRIM_INT__k_s_g_s);
717
718
719 VRR_K_f_s_p_s(
720 PRIM_INT__f_s_p_s,
721 PRIM_INT__f_s_s_s,
722 PRIM_INT__d_s_s_s,
723 Q_PA,
724 aoq_PQ,
725 one_over_2pq,
726 11);
727
728
729 ostei_general_vrr_K(4, 0, 2, 0, 10,
730 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
731 PRIM_INT__g_s_p_s, PRIM_INT__g_s_s_s, NULL, PRIM_INT__f_s_p_s, NULL, PRIM_INT__g_s_d_s);
732
733
734 ostei_general_vrr_K(5, 0, 3, 0, 9,
735 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
736 PRIM_INT__h_s_d_s, PRIM_INT__h_s_p_s, NULL, PRIM_INT__g_s_d_s, NULL, PRIM_INT__h_s_f_s);
737
738
739 ostei_general_vrr_K(6, 0, 4, 0, 8,
740 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
741 PRIM_INT__i_s_f_s, PRIM_INT__i_s_d_s, NULL, PRIM_INT__h_s_f_s, NULL, PRIM_INT__i_s_g_s);
742
743
744 ostei_general_vrr_K(7, 0, 5, 0, 7,
745 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
746 PRIM_INT__k_s_g_s, PRIM_INT__k_s_f_s, NULL, PRIM_INT__i_s_g_s, NULL, PRIM_INT__k_s_h_s);
747
748
749
750 // Forming PRIM_INT__d_s_p_s[11 * 18];
751 for(n = 0; n < 11; ++n) // loop over orders of auxiliary function
752 {
753
754 PRIM_INT__d_s_p_s[n * 18 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 0]);
755 PRIM_INT__d_s_p_s[n * 18 + 0] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 0], PRIM_INT__d_s_p_s[n * 18 + 0]);
756 PRIM_INT__d_s_p_s[n * 18 + 0] = SIMINT_FMADD( vrr_const_2_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__d_s_p_s[n * 18 + 0]);
757
758 PRIM_INT__d_s_p_s[n * 18 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 0]);
759 PRIM_INT__d_s_p_s[n * 18 + 1] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 0], PRIM_INT__d_s_p_s[n * 18 + 1]);
760
761 PRIM_INT__d_s_p_s[n * 18 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 0]);
762 PRIM_INT__d_s_p_s[n * 18 + 2] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 0], PRIM_INT__d_s_p_s[n * 18 + 2]);
763
764 PRIM_INT__d_s_p_s[n * 18 + 3] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 1]);
765 PRIM_INT__d_s_p_s[n * 18 + 3] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 1], PRIM_INT__d_s_p_s[n * 18 + 3]);
766 PRIM_INT__d_s_p_s[n * 18 + 3] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__d_s_p_s[n * 18 + 3]);
767
768 PRIM_INT__d_s_p_s[n * 18 + 4] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 1]);
769 PRIM_INT__d_s_p_s[n * 18 + 4] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 1], PRIM_INT__d_s_p_s[n * 18 + 4]);
770 PRIM_INT__d_s_p_s[n * 18 + 4] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__d_s_p_s[n * 18 + 4]);
771
772 PRIM_INT__d_s_p_s[n * 18 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 1]);
773 PRIM_INT__d_s_p_s[n * 18 + 5] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 1], PRIM_INT__d_s_p_s[n * 18 + 5]);
774
775 PRIM_INT__d_s_p_s[n * 18 + 6] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 2]);
776 PRIM_INT__d_s_p_s[n * 18 + 6] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 2], PRIM_INT__d_s_p_s[n * 18 + 6]);
777 PRIM_INT__d_s_p_s[n * 18 + 6] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__d_s_p_s[n * 18 + 6]);
778
779 PRIM_INT__d_s_p_s[n * 18 + 7] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 2]);
780 PRIM_INT__d_s_p_s[n * 18 + 7] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 2], PRIM_INT__d_s_p_s[n * 18 + 7]);
781
782 PRIM_INT__d_s_p_s[n * 18 + 8] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 2]);
783 PRIM_INT__d_s_p_s[n * 18 + 8] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 2], PRIM_INT__d_s_p_s[n * 18 + 8]);
784 PRIM_INT__d_s_p_s[n * 18 + 8] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__d_s_p_s[n * 18 + 8]);
785
786 PRIM_INT__d_s_p_s[n * 18 + 9] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 3]);
787 PRIM_INT__d_s_p_s[n * 18 + 9] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 3], PRIM_INT__d_s_p_s[n * 18 + 9]);
788
789 PRIM_INT__d_s_p_s[n * 18 + 10] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 3]);
790 PRIM_INT__d_s_p_s[n * 18 + 10] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 3], PRIM_INT__d_s_p_s[n * 18 + 10]);
791 PRIM_INT__d_s_p_s[n * 18 + 10] = SIMINT_FMADD( vrr_const_2_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__d_s_p_s[n * 18 + 10]);
792
793 PRIM_INT__d_s_p_s[n * 18 + 11] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 3]);
794 PRIM_INT__d_s_p_s[n * 18 + 11] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 3], PRIM_INT__d_s_p_s[n * 18 + 11]);
795
796 PRIM_INT__d_s_p_s[n * 18 + 12] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 4]);
797 PRIM_INT__d_s_p_s[n * 18 + 12] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 4], PRIM_INT__d_s_p_s[n * 18 + 12]);
798
799 PRIM_INT__d_s_p_s[n * 18 + 13] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 4]);
800 PRIM_INT__d_s_p_s[n * 18 + 13] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 4], PRIM_INT__d_s_p_s[n * 18 + 13]);
801 PRIM_INT__d_s_p_s[n * 18 + 13] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__d_s_p_s[n * 18 + 13]);
802
803 PRIM_INT__d_s_p_s[n * 18 + 14] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 4]);
804 PRIM_INT__d_s_p_s[n * 18 + 14] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 4], PRIM_INT__d_s_p_s[n * 18 + 14]);
805 PRIM_INT__d_s_p_s[n * 18 + 14] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__d_s_p_s[n * 18 + 14]);
806
807 PRIM_INT__d_s_p_s[n * 18 + 15] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 5]);
808 PRIM_INT__d_s_p_s[n * 18 + 15] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 5], PRIM_INT__d_s_p_s[n * 18 + 15]);
809
810 PRIM_INT__d_s_p_s[n * 18 + 16] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 5]);
811 PRIM_INT__d_s_p_s[n * 18 + 16] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 5], PRIM_INT__d_s_p_s[n * 18 + 16]);
812
813 PRIM_INT__d_s_p_s[n * 18 + 17] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 5]);
814 PRIM_INT__d_s_p_s[n * 18 + 17] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 5], PRIM_INT__d_s_p_s[n * 18 + 17]);
815 PRIM_INT__d_s_p_s[n * 18 + 17] = SIMINT_FMADD( vrr_const_2_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__d_s_p_s[n * 18 + 17]);
816
817 }
818
819
820 VRR_K_f_s_d_s(
821 PRIM_INT__f_s_d_s,
822 PRIM_INT__f_s_p_s,
823 PRIM_INT__f_s_s_s,
824 PRIM_INT__d_s_p_s,
825 Q_PA,
826 a_over_q,
827 aoq_PQ,
828 one_over_2pq,
829 one_over_2q,
830 10);
831
832
833 ostei_general_vrr_K(4, 0, 3, 0, 9,
834 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
835 PRIM_INT__g_s_d_s, PRIM_INT__g_s_p_s, NULL, PRIM_INT__f_s_d_s, NULL, PRIM_INT__g_s_f_s);
836
837
838 ostei_general_vrr_K(5, 0, 4, 0, 8,
839 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
840 PRIM_INT__h_s_f_s, PRIM_INT__h_s_d_s, NULL, PRIM_INT__g_s_f_s, NULL, PRIM_INT__h_s_g_s);
841
842
843 ostei_general_vrr_K(6, 0, 5, 0, 7,
844 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
845 PRIM_INT__i_s_g_s, PRIM_INT__i_s_f_s, NULL, PRIM_INT__h_s_g_s, NULL, PRIM_INT__i_s_h_s);
846
847
848 ostei_general_vrr_K(7, 0, 6, 0, 6,
849 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
850 PRIM_INT__k_s_h_s, PRIM_INT__k_s_g_s, NULL, PRIM_INT__i_s_h_s, NULL, PRIM_INT__k_s_i_s);
851
852
853
854 // Forming PRIM_INT__p_s_p_s[11 * 9];
855 for(n = 0; n < 11; ++n) // loop over orders of auxiliary function
856 {
857
858 PRIM_INT__p_s_p_s[n * 9 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_s_s[n * 3 + 0]);
859 PRIM_INT__p_s_p_s[n * 9 + 0] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_p_s[n * 9 + 0]);
860 PRIM_INT__p_s_p_s[n * 9 + 0] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__s_s_s_s[(n+1) * 1 + 0], PRIM_INT__p_s_p_s[n * 9 + 0]);
861
862 PRIM_INT__p_s_p_s[n * 9 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_s_s[n * 3 + 0]);
863 PRIM_INT__p_s_p_s[n * 9 + 1] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_p_s[n * 9 + 1]);
864
865 PRIM_INT__p_s_p_s[n * 9 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_s_s[n * 3 + 0]);
866 PRIM_INT__p_s_p_s[n * 9 + 2] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_p_s[n * 9 + 2]);
867
868 PRIM_INT__p_s_p_s[n * 9 + 3] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_s_s[n * 3 + 1]);
869 PRIM_INT__p_s_p_s[n * 9 + 3] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_p_s[n * 9 + 3]);
870
871 PRIM_INT__p_s_p_s[n * 9 + 4] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_s_s[n * 3 + 1]);
872 PRIM_INT__p_s_p_s[n * 9 + 4] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_p_s[n * 9 + 4]);
873 PRIM_INT__p_s_p_s[n * 9 + 4] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__s_s_s_s[(n+1) * 1 + 0], PRIM_INT__p_s_p_s[n * 9 + 4]);
874
875 PRIM_INT__p_s_p_s[n * 9 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_s_s[n * 3 + 1]);
876 PRIM_INT__p_s_p_s[n * 9 + 5] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_p_s[n * 9 + 5]);
877
878 PRIM_INT__p_s_p_s[n * 9 + 6] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_s_s[n * 3 + 2]);
879 PRIM_INT__p_s_p_s[n * 9 + 6] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_p_s[n * 9 + 6]);
880
881 PRIM_INT__p_s_p_s[n * 9 + 7] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_s_s[n * 3 + 2]);
882 PRIM_INT__p_s_p_s[n * 9 + 7] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_p_s[n * 9 + 7]);
883
884 PRIM_INT__p_s_p_s[n * 9 + 8] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_s_s[n * 3 + 2]);
885 PRIM_INT__p_s_p_s[n * 9 + 8] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_p_s[n * 9 + 8]);
886 PRIM_INT__p_s_p_s[n * 9 + 8] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__s_s_s_s[(n+1) * 1 + 0], PRIM_INT__p_s_p_s[n * 9 + 8]);
887
888 }
889
890
891 VRR_K_d_s_d_s(
892 PRIM_INT__d_s_d_s,
893 PRIM_INT__d_s_p_s,
894 PRIM_INT__d_s_s_s,
895 PRIM_INT__p_s_p_s,
896 Q_PA,
897 a_over_q,
898 aoq_PQ,
899 one_over_2pq,
900 one_over_2q,
901 10);
902
903
904 ostei_general_vrr_K(3, 0, 3, 0, 9,
905 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
906 PRIM_INT__f_s_d_s, PRIM_INT__f_s_p_s, NULL, PRIM_INT__d_s_d_s, NULL, PRIM_INT__f_s_f_s);
907
908
909 ostei_general_vrr_K(4, 0, 4, 0, 8,
910 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
911 PRIM_INT__g_s_f_s, PRIM_INT__g_s_d_s, NULL, PRIM_INT__f_s_f_s, NULL, PRIM_INT__g_s_g_s);
912
913
914 ostei_general_vrr_K(5, 0, 5, 0, 7,
915 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
916 PRIM_INT__h_s_g_s, PRIM_INT__h_s_f_s, NULL, PRIM_INT__g_s_g_s, NULL, PRIM_INT__h_s_h_s);
917
918
919 ostei_general_vrr_K(6, 0, 6, 0, 6,
920 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
921 PRIM_INT__i_s_h_s, PRIM_INT__i_s_g_s, NULL, PRIM_INT__h_s_h_s, NULL, PRIM_INT__i_s_i_s);
922
923
924 ostei_general_vrr_K(7, 0, 7, 0, 5,
925 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
926 PRIM_INT__k_s_i_s, PRIM_INT__k_s_h_s, NULL, PRIM_INT__i_s_i_s, NULL, PRIM_INT__k_s_k_s);
927
928
929 ostei_general_vrr1_I(8, 15,
930 one_over_2p, a_over_p, aop_PQ, P_PA,
931 PRIM_INT__k_s_s_s, PRIM_INT__i_s_s_s, PRIM_INT__l_s_s_s);
932
933
934 ostei_general_vrr_K(8, 0, 1, 0, 11,
935 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
936 PRIM_INT__l_s_s_s, NULL, NULL, PRIM_INT__k_s_s_s, NULL, PRIM_INT__l_s_p_s);
937
938
939 ostei_general_vrr_K(8, 0, 2, 0, 10,
940 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
941 PRIM_INT__l_s_p_s, PRIM_INT__l_s_s_s, NULL, PRIM_INT__k_s_p_s, NULL, PRIM_INT__l_s_d_s);
942
943
944 ostei_general_vrr_K(8, 0, 3, 0, 9,
945 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
946 PRIM_INT__l_s_d_s, PRIM_INT__l_s_p_s, NULL, PRIM_INT__k_s_d_s, NULL, PRIM_INT__l_s_f_s);
947
948
949 ostei_general_vrr_K(8, 0, 4, 0, 8,
950 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
951 PRIM_INT__l_s_f_s, PRIM_INT__l_s_d_s, NULL, PRIM_INT__k_s_f_s, NULL, PRIM_INT__l_s_g_s);
952
953
954 ostei_general_vrr_K(8, 0, 5, 0, 7,
955 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
956 PRIM_INT__l_s_g_s, PRIM_INT__l_s_f_s, NULL, PRIM_INT__k_s_g_s, NULL, PRIM_INT__l_s_h_s);
957
958
959 ostei_general_vrr_K(8, 0, 6, 0, 6,
960 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
961 PRIM_INT__l_s_h_s, PRIM_INT__l_s_g_s, NULL, PRIM_INT__k_s_h_s, NULL, PRIM_INT__l_s_i_s);
962
963
964
965 // Forming PRIM_INT__s_s_p_s[11 * 3];
966 for(n = 0; n < 11; ++n) // loop over orders of auxiliary function
967 {
968
969 PRIM_INT__s_s_p_s[n * 3 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_s_s[n * 1 + 0]);
970 PRIM_INT__s_s_p_s[n * 3 + 0] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__s_s_s_s[(n+1) * 1 + 0], PRIM_INT__s_s_p_s[n * 3 + 0]);
971
972 PRIM_INT__s_s_p_s[n * 3 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_s_s[n * 1 + 0]);
973 PRIM_INT__s_s_p_s[n * 3 + 1] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__s_s_s_s[(n+1) * 1 + 0], PRIM_INT__s_s_p_s[n * 3 + 1]);
974
975 PRIM_INT__s_s_p_s[n * 3 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_s_s[n * 1 + 0]);
976 PRIM_INT__s_s_p_s[n * 3 + 2] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__s_s_s_s[(n+1) * 1 + 0], PRIM_INT__s_s_p_s[n * 3 + 2]);
977
978 }
979
980
981
982 // Forming PRIM_INT__p_s_d_s[10 * 18];
983 for(n = 0; n < 10; ++n) // loop over orders of auxiliary function
984 {
985
986 PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_p_s[n * 9 + 0]);
987 PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_p_s[(n+1) * 9 + 0], PRIM_INT__p_s_d_s[n * 18 + 0]);
988 PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_s_s[n * 3 + 0]), PRIM_INT__p_s_d_s[n * 18 + 0]);
989 PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__p_s_d_s[n * 18 + 0]);
990
991 PRIM_INT__p_s_d_s[n * 18 + 3] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_p_s[n * 9 + 1]);
992 PRIM_INT__p_s_d_s[n * 18 + 3] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_p_s[(n+1) * 9 + 1], PRIM_INT__p_s_d_s[n * 18 + 3]);
993 PRIM_INT__p_s_d_s[n * 18 + 3] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_s_s[n * 3 + 0]), PRIM_INT__p_s_d_s[n * 18 + 3]);
994
995 PRIM_INT__p_s_d_s[n * 18 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_p_s[n * 9 + 2]);
996 PRIM_INT__p_s_d_s[n * 18 + 5] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_p_s[(n+1) * 9 + 2], PRIM_INT__p_s_d_s[n * 18 + 5]);
997 PRIM_INT__p_s_d_s[n * 18 + 5] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_s_s[n * 3 + 0]), PRIM_INT__p_s_d_s[n * 18 + 5]);
998
999 PRIM_INT__p_s_d_s[n * 18 + 6] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_p_s[n * 9 + 3]);
1000 PRIM_INT__p_s_d_s[n * 18 + 6] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_p_s[(n+1) * 9 + 3], PRIM_INT__p_s_d_s[n * 18 + 6]);
1001 PRIM_INT__p_s_d_s[n * 18 + 6] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_s_s[n * 3 + 1]), PRIM_INT__p_s_d_s[n * 18 + 6]);
1002
1003 PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_p_s[n * 9 + 4]);
1004 PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_p_s[(n+1) * 9 + 4], PRIM_INT__p_s_d_s[n * 18 + 9]);
1005 PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_s_s[n * 3 + 1]), PRIM_INT__p_s_d_s[n * 18 + 9]);
1006 PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__p_s_d_s[n * 18 + 9]);
1007
1008 PRIM_INT__p_s_d_s[n * 18 + 11] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_p_s[n * 9 + 5]);
1009 PRIM_INT__p_s_d_s[n * 18 + 11] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_p_s[(n+1) * 9 + 5], PRIM_INT__p_s_d_s[n * 18 + 11]);
1010 PRIM_INT__p_s_d_s[n * 18 + 11] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_s_s[n * 3 + 1]), PRIM_INT__p_s_d_s[n * 18 + 11]);
1011
1012 PRIM_INT__p_s_d_s[n * 18 + 12] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_p_s[n * 9 + 6]);
1013 PRIM_INT__p_s_d_s[n * 18 + 12] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_p_s[(n+1) * 9 + 6], PRIM_INT__p_s_d_s[n * 18 + 12]);
1014 PRIM_INT__p_s_d_s[n * 18 + 12] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_s_s[n * 3 + 2]), PRIM_INT__p_s_d_s[n * 18 + 12]);
1015
1016 PRIM_INT__p_s_d_s[n * 18 + 15] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_p_s[n * 9 + 7]);
1017 PRIM_INT__p_s_d_s[n * 18 + 15] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_p_s[(n+1) * 9 + 7], PRIM_INT__p_s_d_s[n * 18 + 15]);
1018 PRIM_INT__p_s_d_s[n * 18 + 15] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_s_s[n * 3 + 2]), PRIM_INT__p_s_d_s[n * 18 + 15]);
1019
1020 PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_p_s[n * 9 + 8]);
1021 PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_p_s[(n+1) * 9 + 8], PRIM_INT__p_s_d_s[n * 18 + 17]);
1022 PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_s_s[n * 3 + 2]), PRIM_INT__p_s_d_s[n * 18 + 17]);
1023 PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 2], PRIM_INT__p_s_d_s[n * 18 + 17]);
1024
1025 }
1026
1027
1028 VRR_K_d_s_f_s(
1029 PRIM_INT__d_s_f_s,
1030 PRIM_INT__d_s_d_s,
1031 PRIM_INT__d_s_p_s,
1032 PRIM_INT__p_s_d_s,
1033 Q_PA,
1034 a_over_q,
1035 aoq_PQ,
1036 one_over_2pq,
1037 one_over_2q,
1038 9);
1039
1040
1041 ostei_general_vrr_K(3, 0, 4, 0, 8,
1042 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1043 PRIM_INT__f_s_f_s, PRIM_INT__f_s_d_s, NULL, PRIM_INT__d_s_f_s, NULL, PRIM_INT__f_s_g_s);
1044
1045
1046 ostei_general_vrr_K(4, 0, 5, 0, 7,
1047 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1048 PRIM_INT__g_s_g_s, PRIM_INT__g_s_f_s, NULL, PRIM_INT__f_s_g_s, NULL, PRIM_INT__g_s_h_s);
1049
1050
1051 ostei_general_vrr_K(5, 0, 6, 0, 6,
1052 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1053 PRIM_INT__h_s_h_s, PRIM_INT__h_s_g_s, NULL, PRIM_INT__g_s_h_s, NULL, PRIM_INT__h_s_i_s);
1054
1055
1056 ostei_general_vrr_K(6, 0, 7, 0, 5,
1057 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1058 PRIM_INT__i_s_i_s, PRIM_INT__i_s_h_s, NULL, PRIM_INT__h_s_i_s, NULL, PRIM_INT__i_s_k_s);
1059
1060
1061 ostei_general_vrr_K(7, 0, 8, 0, 4,
1062 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1063 PRIM_INT__k_s_k_s, PRIM_INT__k_s_i_s, NULL, PRIM_INT__i_s_k_s, NULL, PRIM_INT__k_s_l_s);
1064
1065
1066 ostei_general_vrr_K(8, 0, 7, 0, 5,
1067 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1068 PRIM_INT__l_s_i_s, PRIM_INT__l_s_h_s, NULL, PRIM_INT__k_s_i_s, NULL, PRIM_INT__l_s_k_s);
1069
1070
1071 ostei_general_vrr1_I(9, 14,
1072 one_over_2p, a_over_p, aop_PQ, P_PA,
1073 PRIM_INT__l_s_s_s, PRIM_INT__k_s_s_s, PRIM_INT__m_s_s_s);
1074
1075
1076 ostei_general_vrr_K(9, 0, 1, 0, 11,
1077 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1078 PRIM_INT__m_s_s_s, NULL, NULL, PRIM_INT__l_s_s_s, NULL, PRIM_INT__m_s_p_s);
1079
1080
1081 ostei_general_vrr_K(9, 0, 2, 0, 10,
1082 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1083 PRIM_INT__m_s_p_s, PRIM_INT__m_s_s_s, NULL, PRIM_INT__l_s_p_s, NULL, PRIM_INT__m_s_d_s);
1084
1085
1086 ostei_general_vrr_K(9, 0, 3, 0, 9,
1087 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1088 PRIM_INT__m_s_d_s, PRIM_INT__m_s_p_s, NULL, PRIM_INT__l_s_d_s, NULL, PRIM_INT__m_s_f_s);
1089
1090
1091 ostei_general_vrr_K(9, 0, 4, 0, 8,
1092 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1093 PRIM_INT__m_s_f_s, PRIM_INT__m_s_d_s, NULL, PRIM_INT__l_s_f_s, NULL, PRIM_INT__m_s_g_s);
1094
1095
1096 ostei_general_vrr_K(9, 0, 5, 0, 7,
1097 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1098 PRIM_INT__m_s_g_s, PRIM_INT__m_s_f_s, NULL, PRIM_INT__l_s_g_s, NULL, PRIM_INT__m_s_h_s);
1099
1100
1101 ostei_general_vrr_K(9, 0, 6, 0, 6,
1102 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1103 PRIM_INT__m_s_h_s, PRIM_INT__m_s_g_s, NULL, PRIM_INT__l_s_h_s, NULL, PRIM_INT__m_s_i_s);
1104
1105
1106
1107 // Forming PRIM_INT__s_s_d_s[10 * 6];
1108 for(n = 0; n < 10; ++n) // loop over orders of auxiliary function
1109 {
1110
1111 PRIM_INT__s_s_d_s[n * 6 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_p_s[n * 3 + 0]);
1112 PRIM_INT__s_s_d_s[n * 6 + 0] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__s_s_d_s[n * 6 + 0]);
1113 PRIM_INT__s_s_d_s[n * 6 + 0] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__s_s_s_s[(n+1) * 1 + 0], PRIM_INT__s_s_s_s[n * 1 + 0]), PRIM_INT__s_s_d_s[n * 6 + 0]);
1114
1115 PRIM_INT__s_s_d_s[n * 6 + 3] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_p_s[n * 3 + 1]);
1116 PRIM_INT__s_s_d_s[n * 6 + 3] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__s_s_d_s[n * 6 + 3]);
1117 PRIM_INT__s_s_d_s[n * 6 + 3] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__s_s_s_s[(n+1) * 1 + 0], PRIM_INT__s_s_s_s[n * 1 + 0]), PRIM_INT__s_s_d_s[n * 6 + 3]);
1118
1119 PRIM_INT__s_s_d_s[n * 6 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_p_s[n * 3 + 2]);
1120 PRIM_INT__s_s_d_s[n * 6 + 5] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__s_s_p_s[(n+1) * 3 + 2], PRIM_INT__s_s_d_s[n * 6 + 5]);
1121 PRIM_INT__s_s_d_s[n * 6 + 5] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__s_s_s_s[(n+1) * 1 + 0], PRIM_INT__s_s_s_s[n * 1 + 0]), PRIM_INT__s_s_d_s[n * 6 + 5]);
1122
1123 }
1124
1125
1126 VRR_K_p_s_f_s(
1127 PRIM_INT__p_s_f_s,
1128 PRIM_INT__p_s_d_s,
1129 PRIM_INT__p_s_p_s,
1130 PRIM_INT__s_s_d_s,
1131 Q_PA,
1132 a_over_q,
1133 aoq_PQ,
1134 one_over_2pq,
1135 one_over_2q,
1136 9);
1137
1138
1139 ostei_general_vrr_K(2, 0, 4, 0, 8,
1140 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1141 PRIM_INT__d_s_f_s, PRIM_INT__d_s_d_s, NULL, PRIM_INT__p_s_f_s, NULL, PRIM_INT__d_s_g_s);
1142
1143
1144 ostei_general_vrr_K(3, 0, 5, 0, 7,
1145 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1146 PRIM_INT__f_s_g_s, PRIM_INT__f_s_f_s, NULL, PRIM_INT__d_s_g_s, NULL, PRIM_INT__f_s_h_s);
1147
1148
1149 ostei_general_vrr_K(4, 0, 6, 0, 6,
1150 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1151 PRIM_INT__g_s_h_s, PRIM_INT__g_s_g_s, NULL, PRIM_INT__f_s_h_s, NULL, PRIM_INT__g_s_i_s);
1152
1153
1154 ostei_general_vrr_K(5, 0, 7, 0, 5,
1155 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1156 PRIM_INT__h_s_i_s, PRIM_INT__h_s_h_s, NULL, PRIM_INT__g_s_i_s, NULL, PRIM_INT__h_s_k_s);
1157
1158
1159 ostei_general_vrr_K(6, 0, 8, 0, 4,
1160 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1161 PRIM_INT__i_s_k_s, PRIM_INT__i_s_i_s, NULL, PRIM_INT__h_s_k_s, NULL, PRIM_INT__i_s_l_s);
1162
1163
1164 ostei_general_vrr_K(7, 0, 9, 0, 3,
1165 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1166 PRIM_INT__k_s_l_s, PRIM_INT__k_s_k_s, NULL, PRIM_INT__i_s_l_s, NULL, PRIM_INT__k_s_m_s);
1167
1168
1169 ostei_general_vrr_K(8, 0, 8, 0, 4,
1170 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1171 PRIM_INT__l_s_k_s, PRIM_INT__l_s_i_s, NULL, PRIM_INT__k_s_k_s, NULL, PRIM_INT__l_s_l_s);
1172
1173
1174 ostei_general_vrr_K(9, 0, 7, 0, 5,
1175 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1176 PRIM_INT__m_s_i_s, PRIM_INT__m_s_h_s, NULL, PRIM_INT__l_s_i_s, NULL, PRIM_INT__m_s_k_s);
1177
1178
1179 ostei_general_vrr1_I(10, 13,
1180 one_over_2p, a_over_p, aop_PQ, P_PA,
1181 PRIM_INT__m_s_s_s, PRIM_INT__l_s_s_s, PRIM_INT__n_s_s_s);
1182
1183
1184 ostei_general_vrr_K(10, 0, 1, 0, 11,
1185 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1186 PRIM_INT__n_s_s_s, NULL, NULL, PRIM_INT__m_s_s_s, NULL, PRIM_INT__n_s_p_s);
1187
1188
1189 ostei_general_vrr_K(10, 0, 2, 0, 10,
1190 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1191 PRIM_INT__n_s_p_s, PRIM_INT__n_s_s_s, NULL, PRIM_INT__m_s_p_s, NULL, PRIM_INT__n_s_d_s);
1192
1193
1194 ostei_general_vrr_K(10, 0, 3, 0, 9,
1195 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1196 PRIM_INT__n_s_d_s, PRIM_INT__n_s_p_s, NULL, PRIM_INT__m_s_d_s, NULL, PRIM_INT__n_s_f_s);
1197
1198
1199 ostei_general_vrr_K(10, 0, 4, 0, 8,
1200 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1201 PRIM_INT__n_s_f_s, PRIM_INT__n_s_d_s, NULL, PRIM_INT__m_s_f_s, NULL, PRIM_INT__n_s_g_s);
1202
1203
1204 ostei_general_vrr_K(10, 0, 5, 0, 7,
1205 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1206 PRIM_INT__n_s_g_s, PRIM_INT__n_s_f_s, NULL, PRIM_INT__m_s_g_s, NULL, PRIM_INT__n_s_h_s);
1207
1208
1209 ostei_general_vrr_K(10, 0, 6, 0, 6,
1210 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1211 PRIM_INT__n_s_h_s, PRIM_INT__n_s_g_s, NULL, PRIM_INT__m_s_h_s, NULL, PRIM_INT__n_s_i_s);
1212
1213
1214
1215 // Forming PRIM_INT__s_s_f_s[9 * 10];
1216 for(n = 0; n < 9; ++n) // loop over orders of auxiliary function
1217 {
1218
1219 PRIM_INT__s_s_f_s[n * 10 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_d_s[n * 6 + 0]);
1220 PRIM_INT__s_s_f_s[n * 10 + 0] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__s_s_d_s[(n+1) * 6 + 0], PRIM_INT__s_s_f_s[n * 10 + 0]);
1221 PRIM_INT__s_s_f_s[n * 10 + 0] = SIMINT_FMADD( vrr_const_2_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__s_s_p_s[n * 3 + 0]), PRIM_INT__s_s_f_s[n * 10 + 0]);
1222
1223 PRIM_INT__s_s_f_s[n * 10 + 6] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_d_s[n * 6 + 3]);
1224 PRIM_INT__s_s_f_s[n * 10 + 6] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__s_s_d_s[(n+1) * 6 + 3], PRIM_INT__s_s_f_s[n * 10 + 6]);
1225 PRIM_INT__s_s_f_s[n * 10 + 6] = SIMINT_FMADD( vrr_const_2_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__s_s_p_s[n * 3 + 1]), PRIM_INT__s_s_f_s[n * 10 + 6]);
1226
1227 PRIM_INT__s_s_f_s[n * 10 + 9] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_d_s[n * 6 + 5]);
1228 PRIM_INT__s_s_f_s[n * 10 + 9] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__s_s_d_s[(n+1) * 6 + 5], PRIM_INT__s_s_f_s[n * 10 + 9]);
1229 PRIM_INT__s_s_f_s[n * 10 + 9] = SIMINT_FMADD( vrr_const_2_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__s_s_p_s[(n+1) * 3 + 2], PRIM_INT__s_s_p_s[n * 3 + 2]), PRIM_INT__s_s_f_s[n * 10 + 9]);
1230
1231 }
1232
1233
1234 VRR_K_p_s_g_s(
1235 PRIM_INT__p_s_g_s,
1236 PRIM_INT__p_s_f_s,
1237 PRIM_INT__p_s_d_s,
1238 PRIM_INT__s_s_f_s,
1239 Q_PA,
1240 a_over_q,
1241 aoq_PQ,
1242 one_over_2pq,
1243 one_over_2q,
1244 8);
1245
1246
1247 ostei_general_vrr_K(2, 0, 5, 0, 7,
1248 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1249 PRIM_INT__d_s_g_s, PRIM_INT__d_s_f_s, NULL, PRIM_INT__p_s_g_s, NULL, PRIM_INT__d_s_h_s);
1250
1251
1252 ostei_general_vrr_K(3, 0, 6, 0, 6,
1253 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1254 PRIM_INT__f_s_h_s, PRIM_INT__f_s_g_s, NULL, PRIM_INT__d_s_h_s, NULL, PRIM_INT__f_s_i_s);
1255
1256
1257 ostei_general_vrr_K(4, 0, 7, 0, 5,
1258 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1259 PRIM_INT__g_s_i_s, PRIM_INT__g_s_h_s, NULL, PRIM_INT__f_s_i_s, NULL, PRIM_INT__g_s_k_s);
1260
1261
1262 ostei_general_vrr_K(5, 0, 8, 0, 4,
1263 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1264 PRIM_INT__h_s_k_s, PRIM_INT__h_s_i_s, NULL, PRIM_INT__g_s_k_s, NULL, PRIM_INT__h_s_l_s);
1265
1266
1267 ostei_general_vrr_K(6, 0, 9, 0, 3,
1268 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1269 PRIM_INT__i_s_l_s, PRIM_INT__i_s_k_s, NULL, PRIM_INT__h_s_l_s, NULL, PRIM_INT__i_s_m_s);
1270
1271
1272 ostei_general_vrr_K(7, 0, 10, 0, 2,
1273 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1274 PRIM_INT__k_s_m_s, PRIM_INT__k_s_l_s, NULL, PRIM_INT__i_s_m_s, NULL, PRIM_INT__k_s_n_s);
1275
1276
1277 ostei_general_vrr_K(8, 0, 9, 0, 3,
1278 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1279 PRIM_INT__l_s_l_s, PRIM_INT__l_s_k_s, NULL, PRIM_INT__k_s_l_s, NULL, PRIM_INT__l_s_m_s);
1280
1281
1282 ostei_general_vrr_K(9, 0, 8, 0, 4,
1283 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1284 PRIM_INT__m_s_k_s, PRIM_INT__m_s_i_s, NULL, PRIM_INT__l_s_k_s, NULL, PRIM_INT__m_s_l_s);
1285
1286
1287 ostei_general_vrr_K(10, 0, 7, 0, 5,
1288 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1289 PRIM_INT__n_s_i_s, PRIM_INT__n_s_h_s, NULL, PRIM_INT__m_s_i_s, NULL, PRIM_INT__n_s_k_s);
1290
1291
1292 ostei_general_vrr1_I(11, 12,
1293 one_over_2p, a_over_p, aop_PQ, P_PA,
1294 PRIM_INT__n_s_s_s, PRIM_INT__m_s_s_s, PRIM_INT__o_s_s_s);
1295
1296
1297 ostei_general_vrr_K(11, 0, 1, 0, 11,
1298 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1299 PRIM_INT__o_s_s_s, NULL, NULL, PRIM_INT__n_s_s_s, NULL, PRIM_INT__o_s_p_s);
1300
1301
1302 ostei_general_vrr_K(11, 0, 2, 0, 10,
1303 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1304 PRIM_INT__o_s_p_s, PRIM_INT__o_s_s_s, NULL, PRIM_INT__n_s_p_s, NULL, PRIM_INT__o_s_d_s);
1305
1306
1307 ostei_general_vrr_K(11, 0, 3, 0, 9,
1308 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1309 PRIM_INT__o_s_d_s, PRIM_INT__o_s_p_s, NULL, PRIM_INT__n_s_d_s, NULL, PRIM_INT__o_s_f_s);
1310
1311
1312 ostei_general_vrr_K(11, 0, 4, 0, 8,
1313 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1314 PRIM_INT__o_s_f_s, PRIM_INT__o_s_d_s, NULL, PRIM_INT__n_s_f_s, NULL, PRIM_INT__o_s_g_s);
1315
1316
1317 ostei_general_vrr_K(11, 0, 5, 0, 7,
1318 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1319 PRIM_INT__o_s_g_s, PRIM_INT__o_s_f_s, NULL, PRIM_INT__n_s_g_s, NULL, PRIM_INT__o_s_h_s);
1320
1321
1322 ostei_general_vrr_K(11, 0, 6, 0, 6,
1323 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1324 PRIM_INT__o_s_h_s, PRIM_INT__o_s_g_s, NULL, PRIM_INT__n_s_h_s, NULL, PRIM_INT__o_s_i_s);
1325
1326
1327 VRR_K_s_s_g_s(
1328 PRIM_INT__s_s_g_s,
1329 PRIM_INT__s_s_f_s,
1330 PRIM_INT__s_s_d_s,
1331 Q_PA,
1332 a_over_q,
1333 aoq_PQ,
1334 one_over_2q,
1335 8);
1336
1337
1338 ostei_general_vrr_K(1, 0, 5, 0, 7,
1339 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1340 PRIM_INT__p_s_g_s, PRIM_INT__p_s_f_s, NULL, PRIM_INT__s_s_g_s, NULL, PRIM_INT__p_s_h_s);
1341
1342
1343 ostei_general_vrr_K(2, 0, 6, 0, 6,
1344 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1345 PRIM_INT__d_s_h_s, PRIM_INT__d_s_g_s, NULL, PRIM_INT__p_s_h_s, NULL, PRIM_INT__d_s_i_s);
1346
1347
1348 ostei_general_vrr_K(3, 0, 7, 0, 5,
1349 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1350 PRIM_INT__f_s_i_s, PRIM_INT__f_s_h_s, NULL, PRIM_INT__d_s_i_s, NULL, PRIM_INT__f_s_k_s);
1351
1352
1353 ostei_general_vrr_K(4, 0, 8, 0, 4,
1354 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1355 PRIM_INT__g_s_k_s, PRIM_INT__g_s_i_s, NULL, PRIM_INT__f_s_k_s, NULL, PRIM_INT__g_s_l_s);
1356
1357
1358 ostei_general_vrr_K(5, 0, 9, 0, 3,
1359 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1360 PRIM_INT__h_s_l_s, PRIM_INT__h_s_k_s, NULL, PRIM_INT__g_s_l_s, NULL, PRIM_INT__h_s_m_s);
1361
1362
1363 ostei_general_vrr_K(6, 0, 10, 0, 2,
1364 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1365 PRIM_INT__i_s_m_s, PRIM_INT__i_s_l_s, NULL, PRIM_INT__h_s_m_s, NULL, PRIM_INT__i_s_n_s);
1366
1367
1368 ostei_general_vrr_K(7, 0, 11, 0, 1,
1369 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1370 PRIM_INT__k_s_n_s, PRIM_INT__k_s_m_s, NULL, PRIM_INT__i_s_n_s, NULL, PRIM_INT__k_s_o_s);
1371
1372
1373 ostei_general_vrr_K(8, 0, 10, 0, 2,
1374 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1375 PRIM_INT__l_s_m_s, PRIM_INT__l_s_l_s, NULL, PRIM_INT__k_s_m_s, NULL, PRIM_INT__l_s_n_s);
1376
1377
1378 ostei_general_vrr_K(9, 0, 9, 0, 3,
1379 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1380 PRIM_INT__m_s_l_s, PRIM_INT__m_s_k_s, NULL, PRIM_INT__l_s_l_s, NULL, PRIM_INT__m_s_m_s);
1381
1382
1383 ostei_general_vrr_K(10, 0, 8, 0, 4,
1384 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1385 PRIM_INT__n_s_k_s, PRIM_INT__n_s_i_s, NULL, PRIM_INT__m_s_k_s, NULL, PRIM_INT__n_s_l_s);
1386
1387
1388 ostei_general_vrr_K(11, 0, 7, 0, 5,
1389 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1390 PRIM_INT__o_s_i_s, PRIM_INT__o_s_h_s, NULL, PRIM_INT__n_s_i_s, NULL, PRIM_INT__o_s_k_s);
1391
1392
1393 ostei_general_vrr_K(8, 0, 11, 0, 1,
1394 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1395 PRIM_INT__l_s_n_s, PRIM_INT__l_s_m_s, NULL, PRIM_INT__k_s_n_s, NULL, PRIM_INT__l_s_o_s);
1396
1397
1398 ostei_general_vrr_K(9, 0, 10, 0, 2,
1399 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1400 PRIM_INT__m_s_m_s, PRIM_INT__m_s_l_s, NULL, PRIM_INT__l_s_m_s, NULL, PRIM_INT__m_s_n_s);
1401
1402
1403 ostei_general_vrr_K(10, 0, 9, 0, 3,
1404 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1405 PRIM_INT__n_s_l_s, PRIM_INT__n_s_k_s, NULL, PRIM_INT__m_s_l_s, NULL, PRIM_INT__n_s_m_s);
1406
1407
1408 ostei_general_vrr_K(11, 0, 8, 0, 4,
1409 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1410 PRIM_INT__o_s_k_s, PRIM_INT__o_s_i_s, NULL, PRIM_INT__n_s_k_s, NULL, PRIM_INT__o_s_l_s);
1411
1412
1413 ostei_general_vrr_K(9, 0, 11, 0, 1,
1414 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1415 PRIM_INT__m_s_n_s, PRIM_INT__m_s_m_s, NULL, PRIM_INT__l_s_n_s, NULL, PRIM_INT__m_s_o_s);
1416
1417
1418 ostei_general_vrr_K(10, 0, 10, 0, 2,
1419 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1420 PRIM_INT__n_s_m_s, PRIM_INT__n_s_l_s, NULL, PRIM_INT__m_s_m_s, NULL, PRIM_INT__n_s_n_s);
1421
1422
1423 ostei_general_vrr_K(11, 0, 9, 0, 3,
1424 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1425 PRIM_INT__o_s_l_s, PRIM_INT__o_s_k_s, NULL, PRIM_INT__n_s_l_s, NULL, PRIM_INT__o_s_m_s);
1426
1427
1428 ostei_general_vrr_K(10, 0, 11, 0, 1,
1429 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1430 PRIM_INT__n_s_n_s, PRIM_INT__n_s_m_s, NULL, PRIM_INT__m_s_n_s, NULL, PRIM_INT__n_s_o_s);
1431
1432
1433 ostei_general_vrr_K(11, 0, 10, 0, 2,
1434 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1435 PRIM_INT__o_s_m_s, PRIM_INT__o_s_l_s, NULL, PRIM_INT__n_s_m_s, NULL, PRIM_INT__o_s_n_s);
1436
1437
1438 ostei_general_vrr_K(11, 0, 11, 0, 1,
1439 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1440 PRIM_INT__o_s_n_s, PRIM_INT__o_s_m_s, NULL, PRIM_INT__n_s_n_s, NULL, PRIM_INT__o_s_o_s);
1441
1442
1443
1444
1445 ////////////////////////////////////
1446 // Accumulate contracted integrals
1447 ////////////////////////////////////
1448 if(lastoffset == 0)
1449 {
1450 contract_all(1008, PRIM_INT__k_s_i_s, PRIM_PTR_INT__k_s_i_s);
1451 contract_all(1296, PRIM_INT__k_s_k_s, PRIM_PTR_INT__k_s_k_s);
1452 contract_all(1620, PRIM_INT__k_s_l_s, PRIM_PTR_INT__k_s_l_s);
1453 contract_all(1980, PRIM_INT__k_s_m_s, PRIM_PTR_INT__k_s_m_s);
1454 contract_all(2376, PRIM_INT__k_s_n_s, PRIM_PTR_INT__k_s_n_s);
1455 contract_all(2808, PRIM_INT__k_s_o_s, PRIM_PTR_INT__k_s_o_s);
1456 contract_all(1260, PRIM_INT__l_s_i_s, PRIM_PTR_INT__l_s_i_s);
1457 contract_all(1620, PRIM_INT__l_s_k_s, PRIM_PTR_INT__l_s_k_s);
1458 contract_all(2025, PRIM_INT__l_s_l_s, PRIM_PTR_INT__l_s_l_s);
1459 contract_all(2475, PRIM_INT__l_s_m_s, PRIM_PTR_INT__l_s_m_s);
1460 contract_all(2970, PRIM_INT__l_s_n_s, PRIM_PTR_INT__l_s_n_s);
1461 contract_all(3510, PRIM_INT__l_s_o_s, PRIM_PTR_INT__l_s_o_s);
1462 contract_all(1540, PRIM_INT__m_s_i_s, PRIM_PTR_INT__m_s_i_s);
1463 contract_all(1980, PRIM_INT__m_s_k_s, PRIM_PTR_INT__m_s_k_s);
1464 contract_all(2475, PRIM_INT__m_s_l_s, PRIM_PTR_INT__m_s_l_s);
1465 contract_all(3025, PRIM_INT__m_s_m_s, PRIM_PTR_INT__m_s_m_s);
1466 contract_all(3630, PRIM_INT__m_s_n_s, PRIM_PTR_INT__m_s_n_s);
1467 contract_all(4290, PRIM_INT__m_s_o_s, PRIM_PTR_INT__m_s_o_s);
1468 contract_all(1848, PRIM_INT__n_s_i_s, PRIM_PTR_INT__n_s_i_s);
1469 contract_all(2376, PRIM_INT__n_s_k_s, PRIM_PTR_INT__n_s_k_s);
1470 contract_all(2970, PRIM_INT__n_s_l_s, PRIM_PTR_INT__n_s_l_s);
1471 contract_all(3630, PRIM_INT__n_s_m_s, PRIM_PTR_INT__n_s_m_s);
1472 contract_all(4356, PRIM_INT__n_s_n_s, PRIM_PTR_INT__n_s_n_s);
1473 contract_all(5148, PRIM_INT__n_s_o_s, PRIM_PTR_INT__n_s_o_s);
1474 contract_all(2184, PRIM_INT__o_s_i_s, PRIM_PTR_INT__o_s_i_s);
1475 contract_all(2808, PRIM_INT__o_s_k_s, PRIM_PTR_INT__o_s_k_s);
1476 contract_all(3510, PRIM_INT__o_s_l_s, PRIM_PTR_INT__o_s_l_s);
1477 contract_all(4290, PRIM_INT__o_s_m_s, PRIM_PTR_INT__o_s_m_s);
1478 contract_all(5148, PRIM_INT__o_s_n_s, PRIM_PTR_INT__o_s_n_s);
1479 contract_all(6084, PRIM_INT__o_s_o_s, PRIM_PTR_INT__o_s_o_s);
1480 }
1481 else
1482 {
1483 contract(1008, shelloffsets, PRIM_INT__k_s_i_s, PRIM_PTR_INT__k_s_i_s);
1484 contract(1296, shelloffsets, PRIM_INT__k_s_k_s, PRIM_PTR_INT__k_s_k_s);
1485 contract(1620, shelloffsets, PRIM_INT__k_s_l_s, PRIM_PTR_INT__k_s_l_s);
1486 contract(1980, shelloffsets, PRIM_INT__k_s_m_s, PRIM_PTR_INT__k_s_m_s);
1487 contract(2376, shelloffsets, PRIM_INT__k_s_n_s, PRIM_PTR_INT__k_s_n_s);
1488 contract(2808, shelloffsets, PRIM_INT__k_s_o_s, PRIM_PTR_INT__k_s_o_s);
1489 contract(1260, shelloffsets, PRIM_INT__l_s_i_s, PRIM_PTR_INT__l_s_i_s);
1490 contract(1620, shelloffsets, PRIM_INT__l_s_k_s, PRIM_PTR_INT__l_s_k_s);
1491 contract(2025, shelloffsets, PRIM_INT__l_s_l_s, PRIM_PTR_INT__l_s_l_s);
1492 contract(2475, shelloffsets, PRIM_INT__l_s_m_s, PRIM_PTR_INT__l_s_m_s);
1493 contract(2970, shelloffsets, PRIM_INT__l_s_n_s, PRIM_PTR_INT__l_s_n_s);
1494 contract(3510, shelloffsets, PRIM_INT__l_s_o_s, PRIM_PTR_INT__l_s_o_s);
1495 contract(1540, shelloffsets, PRIM_INT__m_s_i_s, PRIM_PTR_INT__m_s_i_s);
1496 contract(1980, shelloffsets, PRIM_INT__m_s_k_s, PRIM_PTR_INT__m_s_k_s);
1497 contract(2475, shelloffsets, PRIM_INT__m_s_l_s, PRIM_PTR_INT__m_s_l_s);
1498 contract(3025, shelloffsets, PRIM_INT__m_s_m_s, PRIM_PTR_INT__m_s_m_s);
1499 contract(3630, shelloffsets, PRIM_INT__m_s_n_s, PRIM_PTR_INT__m_s_n_s);
1500 contract(4290, shelloffsets, PRIM_INT__m_s_o_s, PRIM_PTR_INT__m_s_o_s);
1501 contract(1848, shelloffsets, PRIM_INT__n_s_i_s, PRIM_PTR_INT__n_s_i_s);
1502 contract(2376, shelloffsets, PRIM_INT__n_s_k_s, PRIM_PTR_INT__n_s_k_s);
1503 contract(2970, shelloffsets, PRIM_INT__n_s_l_s, PRIM_PTR_INT__n_s_l_s);
1504 contract(3630, shelloffsets, PRIM_INT__n_s_m_s, PRIM_PTR_INT__n_s_m_s);
1505 contract(4356, shelloffsets, PRIM_INT__n_s_n_s, PRIM_PTR_INT__n_s_n_s);
1506 contract(5148, shelloffsets, PRIM_INT__n_s_o_s, PRIM_PTR_INT__n_s_o_s);
1507 contract(2184, shelloffsets, PRIM_INT__o_s_i_s, PRIM_PTR_INT__o_s_i_s);
1508 contract(2808, shelloffsets, PRIM_INT__o_s_k_s, PRIM_PTR_INT__o_s_k_s);
1509 contract(3510, shelloffsets, PRIM_INT__o_s_l_s, PRIM_PTR_INT__o_s_l_s);
1510 contract(4290, shelloffsets, PRIM_INT__o_s_m_s, PRIM_PTR_INT__o_s_m_s);
1511 contract(5148, shelloffsets, PRIM_INT__o_s_n_s, PRIM_PTR_INT__o_s_n_s);
1512 contract(6084, shelloffsets, PRIM_INT__o_s_o_s, PRIM_PTR_INT__o_s_o_s);
1513 PRIM_PTR_INT__k_s_i_s += lastoffset*1008;
1514 PRIM_PTR_INT__k_s_k_s += lastoffset*1296;
1515 PRIM_PTR_INT__k_s_l_s += lastoffset*1620;
1516 PRIM_PTR_INT__k_s_m_s += lastoffset*1980;
1517 PRIM_PTR_INT__k_s_n_s += lastoffset*2376;
1518 PRIM_PTR_INT__k_s_o_s += lastoffset*2808;
1519 PRIM_PTR_INT__l_s_i_s += lastoffset*1260;
1520 PRIM_PTR_INT__l_s_k_s += lastoffset*1620;
1521 PRIM_PTR_INT__l_s_l_s += lastoffset*2025;
1522 PRIM_PTR_INT__l_s_m_s += lastoffset*2475;
1523 PRIM_PTR_INT__l_s_n_s += lastoffset*2970;
1524 PRIM_PTR_INT__l_s_o_s += lastoffset*3510;
1525 PRIM_PTR_INT__m_s_i_s += lastoffset*1540;
1526 PRIM_PTR_INT__m_s_k_s += lastoffset*1980;
1527 PRIM_PTR_INT__m_s_l_s += lastoffset*2475;
1528 PRIM_PTR_INT__m_s_m_s += lastoffset*3025;
1529 PRIM_PTR_INT__m_s_n_s += lastoffset*3630;
1530 PRIM_PTR_INT__m_s_o_s += lastoffset*4290;
1531 PRIM_PTR_INT__n_s_i_s += lastoffset*1848;
1532 PRIM_PTR_INT__n_s_k_s += lastoffset*2376;
1533 PRIM_PTR_INT__n_s_l_s += lastoffset*2970;
1534 PRIM_PTR_INT__n_s_m_s += lastoffset*3630;
1535 PRIM_PTR_INT__n_s_n_s += lastoffset*4356;
1536 PRIM_PTR_INT__n_s_o_s += lastoffset*5148;
1537 PRIM_PTR_INT__o_s_i_s += lastoffset*2184;
1538 PRIM_PTR_INT__o_s_k_s += lastoffset*2808;
1539 PRIM_PTR_INT__o_s_l_s += lastoffset*3510;
1540 PRIM_PTR_INT__o_s_m_s += lastoffset*4290;
1541 PRIM_PTR_INT__o_s_n_s += lastoffset*5148;
1542 PRIM_PTR_INT__o_s_o_s += lastoffset*6084;
1543 }
1544
1545 } // close loop over j
1546 } // close loop over i
1547
1548 //Advance to the next batch
1549 jstart = SIMINT_SIMD_ROUND(jend);
1550
1551 //////////////////////////////////////////////
1552 // Contracted integrals: Horizontal recurrance
1553 //////////////////////////////////////////////
1554
1555
1556 const double hAB[3] = { P.AB_x[ab], P.AB_y[ab], P.AB_z[ab] };
1557
1558
1559 for(abcd = 0; abcd < nshellbatch; ++abcd, ++real_abcd)
1560 {
1561 const double hCD[3] = { Q.AB_x[cd+abcd], Q.AB_y[cd+abcd], Q.AB_z[cd+abcd] };
1562
1563 // set up HRR pointers
1564 double const * restrict HRR_INT__k_s_i_s = INT__k_s_i_s + abcd * 1008;
1565 double const * restrict HRR_INT__k_s_k_s = INT__k_s_k_s + abcd * 1296;
1566 double const * restrict HRR_INT__k_s_l_s = INT__k_s_l_s + abcd * 1620;
1567 double const * restrict HRR_INT__k_s_m_s = INT__k_s_m_s + abcd * 1980;
1568 double const * restrict HRR_INT__k_s_n_s = INT__k_s_n_s + abcd * 2376;
1569 double const * restrict HRR_INT__k_s_o_s = INT__k_s_o_s + abcd * 2808;
1570 double const * restrict HRR_INT__l_s_i_s = INT__l_s_i_s + abcd * 1260;
1571 double const * restrict HRR_INT__l_s_k_s = INT__l_s_k_s + abcd * 1620;
1572 double const * restrict HRR_INT__l_s_l_s = INT__l_s_l_s + abcd * 2025;
1573 double const * restrict HRR_INT__l_s_m_s = INT__l_s_m_s + abcd * 2475;
1574 double const * restrict HRR_INT__l_s_n_s = INT__l_s_n_s + abcd * 2970;
1575 double const * restrict HRR_INT__l_s_o_s = INT__l_s_o_s + abcd * 3510;
1576 double const * restrict HRR_INT__m_s_i_s = INT__m_s_i_s + abcd * 1540;
1577 double const * restrict HRR_INT__m_s_k_s = INT__m_s_k_s + abcd * 1980;
1578 double const * restrict HRR_INT__m_s_l_s = INT__m_s_l_s + abcd * 2475;
1579 double const * restrict HRR_INT__m_s_m_s = INT__m_s_m_s + abcd * 3025;
1580 double const * restrict HRR_INT__m_s_n_s = INT__m_s_n_s + abcd * 3630;
1581 double const * restrict HRR_INT__m_s_o_s = INT__m_s_o_s + abcd * 4290;
1582 double const * restrict HRR_INT__n_s_i_s = INT__n_s_i_s + abcd * 1848;
1583 double const * restrict HRR_INT__n_s_k_s = INT__n_s_k_s + abcd * 2376;
1584 double const * restrict HRR_INT__n_s_l_s = INT__n_s_l_s + abcd * 2970;
1585 double const * restrict HRR_INT__n_s_m_s = INT__n_s_m_s + abcd * 3630;
1586 double const * restrict HRR_INT__n_s_n_s = INT__n_s_n_s + abcd * 4356;
1587 double const * restrict HRR_INT__n_s_o_s = INT__n_s_o_s + abcd * 5148;
1588 double const * restrict HRR_INT__o_s_i_s = INT__o_s_i_s + abcd * 2184;
1589 double const * restrict HRR_INT__o_s_k_s = INT__o_s_k_s + abcd * 2808;
1590 double const * restrict HRR_INT__o_s_l_s = INT__o_s_l_s + abcd * 3510;
1591 double const * restrict HRR_INT__o_s_m_s = INT__o_s_m_s + abcd * 4290;
1592 double const * restrict HRR_INT__o_s_n_s = INT__o_s_n_s + abcd * 5148;
1593 double const * restrict HRR_INT__o_s_o_s = INT__o_s_o_s + abcd * 6084;
1594 double * restrict HRR_INT__k_g_i_h = INT__k_g_i_h + real_abcd * 317520;
1595
1596 // form INT__k_p_i_s
1597 ostei_general_hrr_J(7, 1, 6, 0, hAB, HRR_INT__l_s_i_s, HRR_INT__k_s_i_s, HRR_INT__k_p_i_s);
1598
1599 // form INT__k_p_k_s
1600 ostei_general_hrr_J(7, 1, 7, 0, hAB, HRR_INT__l_s_k_s, HRR_INT__k_s_k_s, HRR_INT__k_p_k_s);
1601
1602 // form INT__k_p_l_s
1603 ostei_general_hrr_J(7, 1, 8, 0, hAB, HRR_INT__l_s_l_s, HRR_INT__k_s_l_s, HRR_INT__k_p_l_s);
1604
1605 // form INT__k_p_m_s
1606 ostei_general_hrr_J(7, 1, 9, 0, hAB, HRR_INT__l_s_m_s, HRR_INT__k_s_m_s, HRR_INT__k_p_m_s);
1607
1608 // form INT__k_p_n_s
1609 ostei_general_hrr_J(7, 1, 10, 0, hAB, HRR_INT__l_s_n_s, HRR_INT__k_s_n_s, HRR_INT__k_p_n_s);
1610
1611 // form INT__k_p_o_s
1612 ostei_general_hrr_J(7, 1, 11, 0, hAB, HRR_INT__l_s_o_s, HRR_INT__k_s_o_s, HRR_INT__k_p_o_s);
1613
1614 // form INT__l_p_i_s
1615 ostei_general_hrr_J(8, 1, 6, 0, hAB, HRR_INT__m_s_i_s, HRR_INT__l_s_i_s, HRR_INT__l_p_i_s);
1616
1617 // form INT__l_p_k_s
1618 ostei_general_hrr_J(8, 1, 7, 0, hAB, HRR_INT__m_s_k_s, HRR_INT__l_s_k_s, HRR_INT__l_p_k_s);
1619
1620 // form INT__l_p_l_s
1621 ostei_general_hrr_J(8, 1, 8, 0, hAB, HRR_INT__m_s_l_s, HRR_INT__l_s_l_s, HRR_INT__l_p_l_s);
1622
1623 // form INT__l_p_m_s
1624 ostei_general_hrr_J(8, 1, 9, 0, hAB, HRR_INT__m_s_m_s, HRR_INT__l_s_m_s, HRR_INT__l_p_m_s);
1625
1626 // form INT__l_p_n_s
1627 ostei_general_hrr_J(8, 1, 10, 0, hAB, HRR_INT__m_s_n_s, HRR_INT__l_s_n_s, HRR_INT__l_p_n_s);
1628
1629 // form INT__l_p_o_s
1630 ostei_general_hrr_J(8, 1, 11, 0, hAB, HRR_INT__m_s_o_s, HRR_INT__l_s_o_s, HRR_INT__l_p_o_s);
1631
1632 // form INT__m_p_i_s
1633 ostei_general_hrr_J(9, 1, 6, 0, hAB, HRR_INT__n_s_i_s, HRR_INT__m_s_i_s, HRR_INT__m_p_i_s);
1634
1635 // form INT__m_p_k_s
1636 ostei_general_hrr_J(9, 1, 7, 0, hAB, HRR_INT__n_s_k_s, HRR_INT__m_s_k_s, HRR_INT__m_p_k_s);
1637
1638 // form INT__m_p_l_s
1639 ostei_general_hrr_J(9, 1, 8, 0, hAB, HRR_INT__n_s_l_s, HRR_INT__m_s_l_s, HRR_INT__m_p_l_s);
1640
1641 // form INT__m_p_m_s
1642 ostei_general_hrr_J(9, 1, 9, 0, hAB, HRR_INT__n_s_m_s, HRR_INT__m_s_m_s, HRR_INT__m_p_m_s);
1643
1644 // form INT__m_p_n_s
1645 ostei_general_hrr_J(9, 1, 10, 0, hAB, HRR_INT__n_s_n_s, HRR_INT__m_s_n_s, HRR_INT__m_p_n_s);
1646
1647 // form INT__m_p_o_s
1648 ostei_general_hrr_J(9, 1, 11, 0, hAB, HRR_INT__n_s_o_s, HRR_INT__m_s_o_s, HRR_INT__m_p_o_s);
1649
1650 // form INT__n_p_i_s
1651 ostei_general_hrr_J(10, 1, 6, 0, hAB, HRR_INT__o_s_i_s, HRR_INT__n_s_i_s, HRR_INT__n_p_i_s);
1652
1653 // form INT__n_p_k_s
1654 ostei_general_hrr_J(10, 1, 7, 0, hAB, HRR_INT__o_s_k_s, HRR_INT__n_s_k_s, HRR_INT__n_p_k_s);
1655
1656 // form INT__n_p_l_s
1657 ostei_general_hrr_J(10, 1, 8, 0, hAB, HRR_INT__o_s_l_s, HRR_INT__n_s_l_s, HRR_INT__n_p_l_s);
1658
1659 // form INT__n_p_m_s
1660 ostei_general_hrr_J(10, 1, 9, 0, hAB, HRR_INT__o_s_m_s, HRR_INT__n_s_m_s, HRR_INT__n_p_m_s);
1661
1662 // form INT__n_p_n_s
1663 ostei_general_hrr_J(10, 1, 10, 0, hAB, HRR_INT__o_s_n_s, HRR_INT__n_s_n_s, HRR_INT__n_p_n_s);
1664
1665 // form INT__n_p_o_s
1666 ostei_general_hrr_J(10, 1, 11, 0, hAB, HRR_INT__o_s_o_s, HRR_INT__n_s_o_s, HRR_INT__n_p_o_s);
1667
1668 // form INT__k_d_i_s
1669 ostei_general_hrr_J(7, 2, 6, 0, hAB, HRR_INT__l_p_i_s, HRR_INT__k_p_i_s, HRR_INT__k_d_i_s);
1670
1671 // form INT__k_d_k_s
1672 ostei_general_hrr_J(7, 2, 7, 0, hAB, HRR_INT__l_p_k_s, HRR_INT__k_p_k_s, HRR_INT__k_d_k_s);
1673
1674 // form INT__k_d_l_s
1675 ostei_general_hrr_J(7, 2, 8, 0, hAB, HRR_INT__l_p_l_s, HRR_INT__k_p_l_s, HRR_INT__k_d_l_s);
1676
1677 // form INT__k_d_m_s
1678 ostei_general_hrr_J(7, 2, 9, 0, hAB, HRR_INT__l_p_m_s, HRR_INT__k_p_m_s, HRR_INT__k_d_m_s);
1679
1680 // form INT__k_d_n_s
1681 ostei_general_hrr_J(7, 2, 10, 0, hAB, HRR_INT__l_p_n_s, HRR_INT__k_p_n_s, HRR_INT__k_d_n_s);
1682
1683 // form INT__k_d_o_s
1684 ostei_general_hrr_J(7, 2, 11, 0, hAB, HRR_INT__l_p_o_s, HRR_INT__k_p_o_s, HRR_INT__k_d_o_s);
1685
1686 // form INT__l_d_i_s
1687 ostei_general_hrr_J(8, 2, 6, 0, hAB, HRR_INT__m_p_i_s, HRR_INT__l_p_i_s, HRR_INT__l_d_i_s);
1688
1689 // form INT__l_d_k_s
1690 ostei_general_hrr_J(8, 2, 7, 0, hAB, HRR_INT__m_p_k_s, HRR_INT__l_p_k_s, HRR_INT__l_d_k_s);
1691
1692 // form INT__l_d_l_s
1693 ostei_general_hrr_J(8, 2, 8, 0, hAB, HRR_INT__m_p_l_s, HRR_INT__l_p_l_s, HRR_INT__l_d_l_s);
1694
1695 // form INT__l_d_m_s
1696 ostei_general_hrr_J(8, 2, 9, 0, hAB, HRR_INT__m_p_m_s, HRR_INT__l_p_m_s, HRR_INT__l_d_m_s);
1697
1698 // form INT__l_d_n_s
1699 ostei_general_hrr_J(8, 2, 10, 0, hAB, HRR_INT__m_p_n_s, HRR_INT__l_p_n_s, HRR_INT__l_d_n_s);
1700
1701 // form INT__l_d_o_s
1702 ostei_general_hrr_J(8, 2, 11, 0, hAB, HRR_INT__m_p_o_s, HRR_INT__l_p_o_s, HRR_INT__l_d_o_s);
1703
1704 // form INT__m_d_i_s
1705 ostei_general_hrr_J(9, 2, 6, 0, hAB, HRR_INT__n_p_i_s, HRR_INT__m_p_i_s, HRR_INT__m_d_i_s);
1706
1707 // form INT__m_d_k_s
1708 ostei_general_hrr_J(9, 2, 7, 0, hAB, HRR_INT__n_p_k_s, HRR_INT__m_p_k_s, HRR_INT__m_d_k_s);
1709
1710 // form INT__m_d_l_s
1711 ostei_general_hrr_J(9, 2, 8, 0, hAB, HRR_INT__n_p_l_s, HRR_INT__m_p_l_s, HRR_INT__m_d_l_s);
1712
1713 // form INT__m_d_m_s
1714 ostei_general_hrr_J(9, 2, 9, 0, hAB, HRR_INT__n_p_m_s, HRR_INT__m_p_m_s, HRR_INT__m_d_m_s);
1715
1716 // form INT__m_d_n_s
1717 ostei_general_hrr_J(9, 2, 10, 0, hAB, HRR_INT__n_p_n_s, HRR_INT__m_p_n_s, HRR_INT__m_d_n_s);
1718
1719 // form INT__m_d_o_s
1720 ostei_general_hrr_J(9, 2, 11, 0, hAB, HRR_INT__n_p_o_s, HRR_INT__m_p_o_s, HRR_INT__m_d_o_s);
1721
1722 // form INT__k_f_i_s
1723 ostei_general_hrr_J(7, 3, 6, 0, hAB, HRR_INT__l_d_i_s, HRR_INT__k_d_i_s, HRR_INT__k_f_i_s);
1724
1725 // form INT__k_f_k_s
1726 ostei_general_hrr_J(7, 3, 7, 0, hAB, HRR_INT__l_d_k_s, HRR_INT__k_d_k_s, HRR_INT__k_f_k_s);
1727
1728 // form INT__k_f_l_s
1729 ostei_general_hrr_J(7, 3, 8, 0, hAB, HRR_INT__l_d_l_s, HRR_INT__k_d_l_s, HRR_INT__k_f_l_s);
1730
1731 // form INT__k_f_m_s
1732 ostei_general_hrr_J(7, 3, 9, 0, hAB, HRR_INT__l_d_m_s, HRR_INT__k_d_m_s, HRR_INT__k_f_m_s);
1733
1734 // form INT__k_f_n_s
1735 ostei_general_hrr_J(7, 3, 10, 0, hAB, HRR_INT__l_d_n_s, HRR_INT__k_d_n_s, HRR_INT__k_f_n_s);
1736
1737 // form INT__k_f_o_s
1738 ostei_general_hrr_J(7, 3, 11, 0, hAB, HRR_INT__l_d_o_s, HRR_INT__k_d_o_s, HRR_INT__k_f_o_s);
1739
1740 // form INT__l_f_i_s
1741 ostei_general_hrr_J(8, 3, 6, 0, hAB, HRR_INT__m_d_i_s, HRR_INT__l_d_i_s, HRR_INT__l_f_i_s);
1742
1743 // form INT__l_f_k_s
1744 ostei_general_hrr_J(8, 3, 7, 0, hAB, HRR_INT__m_d_k_s, HRR_INT__l_d_k_s, HRR_INT__l_f_k_s);
1745
1746 // form INT__l_f_l_s
1747 ostei_general_hrr_J(8, 3, 8, 0, hAB, HRR_INT__m_d_l_s, HRR_INT__l_d_l_s, HRR_INT__l_f_l_s);
1748
1749 // form INT__l_f_m_s
1750 ostei_general_hrr_J(8, 3, 9, 0, hAB, HRR_INT__m_d_m_s, HRR_INT__l_d_m_s, HRR_INT__l_f_m_s);
1751
1752 // form INT__l_f_n_s
1753 ostei_general_hrr_J(8, 3, 10, 0, hAB, HRR_INT__m_d_n_s, HRR_INT__l_d_n_s, HRR_INT__l_f_n_s);
1754
1755 // form INT__l_f_o_s
1756 ostei_general_hrr_J(8, 3, 11, 0, hAB, HRR_INT__m_d_o_s, HRR_INT__l_d_o_s, HRR_INT__l_f_o_s);
1757
1758 // form INT__k_g_i_s
1759 ostei_general_hrr_J(7, 4, 6, 0, hAB, HRR_INT__l_f_i_s, HRR_INT__k_f_i_s, HRR_INT__k_g_i_s);
1760
1761 // form INT__k_g_k_s
1762 ostei_general_hrr_J(7, 4, 7, 0, hAB, HRR_INT__l_f_k_s, HRR_INT__k_f_k_s, HRR_INT__k_g_k_s);
1763
1764 // form INT__k_g_l_s
1765 ostei_general_hrr_J(7, 4, 8, 0, hAB, HRR_INT__l_f_l_s, HRR_INT__k_f_l_s, HRR_INT__k_g_l_s);
1766
1767 // form INT__k_g_m_s
1768 ostei_general_hrr_J(7, 4, 9, 0, hAB, HRR_INT__l_f_m_s, HRR_INT__k_f_m_s, HRR_INT__k_g_m_s);
1769
1770 // form INT__k_g_n_s
1771 ostei_general_hrr_J(7, 4, 10, 0, hAB, HRR_INT__l_f_n_s, HRR_INT__k_f_n_s, HRR_INT__k_g_n_s);
1772
1773 // form INT__k_g_o_s
1774 ostei_general_hrr_J(7, 4, 11, 0, hAB, HRR_INT__l_f_o_s, HRR_INT__k_f_o_s, HRR_INT__k_g_o_s);
1775
1776 // form INT__k_g_i_p
1777 ostei_general_hrr_L(7, 4, 6, 1, hCD, HRR_INT__k_g_k_s, HRR_INT__k_g_i_s, HRR_INT__k_g_i_p);
1778
1779 // form INT__k_g_k_p
1780 ostei_general_hrr_L(7, 4, 7, 1, hCD, HRR_INT__k_g_l_s, HRR_INT__k_g_k_s, HRR_INT__k_g_k_p);
1781
1782 // form INT__k_g_l_p
1783 ostei_general_hrr_L(7, 4, 8, 1, hCD, HRR_INT__k_g_m_s, HRR_INT__k_g_l_s, HRR_INT__k_g_l_p);
1784
1785 // form INT__k_g_m_p
1786 ostei_general_hrr_L(7, 4, 9, 1, hCD, HRR_INT__k_g_n_s, HRR_INT__k_g_m_s, HRR_INT__k_g_m_p);
1787
1788 // form INT__k_g_n_p
1789 ostei_general_hrr_L(7, 4, 10, 1, hCD, HRR_INT__k_g_o_s, HRR_INT__k_g_n_s, HRR_INT__k_g_n_p);
1790
1791 // form INT__k_g_i_d
1792 ostei_general_hrr_L(7, 4, 6, 2, hCD, HRR_INT__k_g_k_p, HRR_INT__k_g_i_p, HRR_INT__k_g_i_d);
1793
1794 // form INT__k_g_k_d
1795 ostei_general_hrr_L(7, 4, 7, 2, hCD, HRR_INT__k_g_l_p, HRR_INT__k_g_k_p, HRR_INT__k_g_k_d);
1796
1797 // form INT__k_g_l_d
1798 ostei_general_hrr_L(7, 4, 8, 2, hCD, HRR_INT__k_g_m_p, HRR_INT__k_g_l_p, HRR_INT__k_g_l_d);
1799
1800 // form INT__k_g_m_d
1801 ostei_general_hrr_L(7, 4, 9, 2, hCD, HRR_INT__k_g_n_p, HRR_INT__k_g_m_p, HRR_INT__k_g_m_d);
1802
1803 // form INT__k_g_i_f
1804 ostei_general_hrr_L(7, 4, 6, 3, hCD, HRR_INT__k_g_k_d, HRR_INT__k_g_i_d, HRR_INT__k_g_i_f);
1805
1806 // form INT__k_g_k_f
1807 ostei_general_hrr_L(7, 4, 7, 3, hCD, HRR_INT__k_g_l_d, HRR_INT__k_g_k_d, HRR_INT__k_g_k_f);
1808
1809 // form INT__k_g_l_f
1810 ostei_general_hrr_L(7, 4, 8, 3, hCD, HRR_INT__k_g_m_d, HRR_INT__k_g_l_d, HRR_INT__k_g_l_f);
1811
1812 // form INT__k_g_i_g
1813 ostei_general_hrr_L(7, 4, 6, 4, hCD, HRR_INT__k_g_k_f, HRR_INT__k_g_i_f, HRR_INT__k_g_i_g);
1814
1815 // form INT__k_g_k_g
1816 ostei_general_hrr_L(7, 4, 7, 4, hCD, HRR_INT__k_g_l_f, HRR_INT__k_g_k_f, HRR_INT__k_g_k_g);
1817
1818 // form INT__k_g_i_h
1819 ostei_general_hrr_L(7, 4, 6, 5, hCD, HRR_INT__k_g_k_g, HRR_INT__k_g_i_g, HRR_INT__k_g_i_h);
1820
1821
1822 } // close HRR loop
1823
1824
1825 } // close loop cdbatch
1826
1827 istart = iend;
1828 } // close loop over ab
1829
1830 return P.nshell12_clip * Q.nshell12_clip;
1831 }
1832
ostei_g_k_i_h(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__g_k_i_h)1833 int ostei_g_k_i_h(struct simint_multi_shellpair const P,
1834 struct simint_multi_shellpair const Q,
1835 double screen_tol,
1836 double * const restrict work,
1837 double * const restrict INT__g_k_i_h)
1838 {
1839 double P_AB[3*P.nshell12];
1840 struct simint_multi_shellpair P_tmp = P;
1841 P_tmp.PA_x = P.PB_x; P_tmp.PA_y = P.PB_y; P_tmp.PA_z = P.PB_z;
1842 P_tmp.PB_x = P.PA_x; P_tmp.PB_y = P.PA_y; P_tmp.PB_z = P.PA_z;
1843 P_tmp.AB_x = P_AB;
1844 P_tmp.AB_y = P_AB + P.nshell12;
1845 P_tmp.AB_z = P_AB + 2*P.nshell12;
1846
1847 for(int i = 0; i < P.nshell12; i++)
1848 {
1849 P_tmp.AB_x[i] = -P.AB_x[i];
1850 P_tmp.AB_y[i] = -P.AB_y[i];
1851 P_tmp.AB_z[i] = -P.AB_z[i];
1852 }
1853
1854 int ret = ostei_k_g_i_h(P_tmp, Q, screen_tol, work, INT__g_k_i_h);
1855 double buffer[317520] SIMINT_ALIGN_ARRAY_DBL;
1856
1857 for(int q = 0; q < ret; q++)
1858 {
1859 int idx = 0;
1860 for(int a = 0; a < 15; ++a)
1861 for(int b = 0; b < 36; ++b)
1862 for(int c = 0; c < 28; ++c)
1863 for(int d = 0; d < 21; ++d)
1864 buffer[idx++] = INT__g_k_i_h[q*317520+b*8820+a*588+c*21+d];
1865
1866 memcpy(INT__g_k_i_h+q*317520, buffer, 317520*sizeof(double));
1867 }
1868
1869 return ret;
1870 }
1871
ostei_k_g_h_i(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__k_g_h_i)1872 int ostei_k_g_h_i(struct simint_multi_shellpair const P,
1873 struct simint_multi_shellpair const Q,
1874 double screen_tol,
1875 double * const restrict work,
1876 double * const restrict INT__k_g_h_i)
1877 {
1878 double Q_AB[3*Q.nshell12];
1879 struct simint_multi_shellpair Q_tmp = Q;
1880 Q_tmp.PA_x = Q.PB_x; Q_tmp.PA_y = Q.PB_y; Q_tmp.PA_z = Q.PB_z;
1881 Q_tmp.PB_x = Q.PA_x; Q_tmp.PB_y = Q.PA_y; Q_tmp.PB_z = Q.PA_z;
1882 Q_tmp.AB_x = Q_AB;
1883 Q_tmp.AB_y = Q_AB + Q.nshell12;
1884 Q_tmp.AB_z = Q_AB + 2*Q.nshell12;
1885
1886 for(int i = 0; i < Q.nshell12; i++)
1887 {
1888 Q_tmp.AB_x[i] = -Q.AB_x[i];
1889 Q_tmp.AB_y[i] = -Q.AB_y[i];
1890 Q_tmp.AB_z[i] = -Q.AB_z[i];
1891 }
1892
1893 int ret = ostei_k_g_i_h(P, Q_tmp, screen_tol, work, INT__k_g_h_i);
1894 double buffer[317520] SIMINT_ALIGN_ARRAY_DBL;
1895
1896 for(int q = 0; q < ret; q++)
1897 {
1898 int idx = 0;
1899 for(int a = 0; a < 36; ++a)
1900 for(int b = 0; b < 15; ++b)
1901 for(int c = 0; c < 21; ++c)
1902 for(int d = 0; d < 28; ++d)
1903 buffer[idx++] = INT__k_g_h_i[q*317520+a*8820+b*588+d*21+c];
1904
1905 memcpy(INT__k_g_h_i+q*317520, buffer, 317520*sizeof(double));
1906 }
1907
1908 return ret;
1909 }
1910
ostei_g_k_h_i(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__g_k_h_i)1911 int ostei_g_k_h_i(struct simint_multi_shellpair const P,
1912 struct simint_multi_shellpair const Q,
1913 double screen_tol,
1914 double * const restrict work,
1915 double * const restrict INT__g_k_h_i)
1916 {
1917 double P_AB[3*P.nshell12];
1918 struct simint_multi_shellpair P_tmp = P;
1919 P_tmp.PA_x = P.PB_x; P_tmp.PA_y = P.PB_y; P_tmp.PA_z = P.PB_z;
1920 P_tmp.PB_x = P.PA_x; P_tmp.PB_y = P.PA_y; P_tmp.PB_z = P.PA_z;
1921 P_tmp.AB_x = P_AB;
1922 P_tmp.AB_y = P_AB + P.nshell12;
1923 P_tmp.AB_z = P_AB + 2*P.nshell12;
1924
1925 for(int i = 0; i < P.nshell12; i++)
1926 {
1927 P_tmp.AB_x[i] = -P.AB_x[i];
1928 P_tmp.AB_y[i] = -P.AB_y[i];
1929 P_tmp.AB_z[i] = -P.AB_z[i];
1930 }
1931
1932 double Q_AB[3*Q.nshell12];
1933 struct simint_multi_shellpair Q_tmp = Q;
1934 Q_tmp.PA_x = Q.PB_x; Q_tmp.PA_y = Q.PB_y; Q_tmp.PA_z = Q.PB_z;
1935 Q_tmp.PB_x = Q.PA_x; Q_tmp.PB_y = Q.PA_y; Q_tmp.PB_z = Q.PA_z;
1936 Q_tmp.AB_x = Q_AB;
1937 Q_tmp.AB_y = Q_AB + Q.nshell12;
1938 Q_tmp.AB_z = Q_AB + 2*Q.nshell12;
1939
1940 for(int i = 0; i < Q.nshell12; i++)
1941 {
1942 Q_tmp.AB_x[i] = -Q.AB_x[i];
1943 Q_tmp.AB_y[i] = -Q.AB_y[i];
1944 Q_tmp.AB_z[i] = -Q.AB_z[i];
1945 }
1946
1947 int ret = ostei_k_g_i_h(P_tmp, Q_tmp, screen_tol, work, INT__g_k_h_i);
1948 double buffer[317520] SIMINT_ALIGN_ARRAY_DBL;
1949
1950 for(int q = 0; q < ret; q++)
1951 {
1952 int idx = 0;
1953 for(int a = 0; a < 15; ++a)
1954 for(int b = 0; b < 36; ++b)
1955 for(int c = 0; c < 21; ++c)
1956 for(int d = 0; d < 28; ++d)
1957 buffer[idx++] = INT__g_k_h_i[q*317520+b*8820+a*588+d*21+c];
1958
1959 memcpy(INT__g_k_h_i+q*317520, buffer, 317520*sizeof(double));
1960 }
1961
1962 return ret;
1963 }
1964
1965