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_i_f_k_i(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__i_f_k_i)8 int ostei_i_f_k_i(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__i_f_k_i)
13 {
14 
15     SIMINT_ASSUME_ALIGN_DBL(work);
16     SIMINT_ASSUME_ALIGN_DBL(INT__i_f_k_i);
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__i_s_k_s = work + (SIMINT_NSHELL_SIMD * 0);
30     double * const INT__i_s_l_s = work + (SIMINT_NSHELL_SIMD * 1008);
31     double * const INT__i_s_m_s = work + (SIMINT_NSHELL_SIMD * 2268);
32     double * const INT__i_s_n_s = work + (SIMINT_NSHELL_SIMD * 3808);
33     double * const INT__i_s_o_s = work + (SIMINT_NSHELL_SIMD * 5656);
34     double * const INT__i_s_q_s = work + (SIMINT_NSHELL_SIMD * 7840);
35     double * const INT__i_s_r_s = work + (SIMINT_NSHELL_SIMD * 10388);
36     double * const INT__k_s_k_s = work + (SIMINT_NSHELL_SIMD * 13328);
37     double * const INT__k_s_l_s = work + (SIMINT_NSHELL_SIMD * 14624);
38     double * const INT__k_s_m_s = work + (SIMINT_NSHELL_SIMD * 16244);
39     double * const INT__k_s_n_s = work + (SIMINT_NSHELL_SIMD * 18224);
40     double * const INT__k_s_o_s = work + (SIMINT_NSHELL_SIMD * 20600);
41     double * const INT__k_s_q_s = work + (SIMINT_NSHELL_SIMD * 23408);
42     double * const INT__k_s_r_s = work + (SIMINT_NSHELL_SIMD * 26684);
43     double * const INT__l_s_k_s = work + (SIMINT_NSHELL_SIMD * 30464);
44     double * const INT__l_s_l_s = work + (SIMINT_NSHELL_SIMD * 32084);
45     double * const INT__l_s_m_s = work + (SIMINT_NSHELL_SIMD * 34109);
46     double * const INT__l_s_n_s = work + (SIMINT_NSHELL_SIMD * 36584);
47     double * const INT__l_s_o_s = work + (SIMINT_NSHELL_SIMD * 39554);
48     double * const INT__l_s_q_s = work + (SIMINT_NSHELL_SIMD * 43064);
49     double * const INT__l_s_r_s = work + (SIMINT_NSHELL_SIMD * 47159);
50     double * const INT__m_s_k_s = work + (SIMINT_NSHELL_SIMD * 51884);
51     double * const INT__m_s_l_s = work + (SIMINT_NSHELL_SIMD * 53864);
52     double * const INT__m_s_m_s = work + (SIMINT_NSHELL_SIMD * 56339);
53     double * const INT__m_s_n_s = work + (SIMINT_NSHELL_SIMD * 59364);
54     double * const INT__m_s_o_s = work + (SIMINT_NSHELL_SIMD * 62994);
55     double * const INT__m_s_q_s = work + (SIMINT_NSHELL_SIMD * 67284);
56     double * const INT__m_s_r_s = work + (SIMINT_NSHELL_SIMD * 72289);
57     SIMINT_DBLTYPE * const primwork = (SIMINT_DBLTYPE *)(work + SIMINT_NSHELL_SIMD*78064);
58     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_s_s = primwork + 0;
59     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_p_s = primwork + 23;
60     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_d_s = primwork + 89;
61     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_f_s = primwork + 215;
62     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_g_s = primwork + 415;
63     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_h_s = primwork + 700;
64     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_i_s = primwork + 1078;
65     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_k_s = primwork + 1554;
66     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_l_s = primwork + 2130;
67     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_m_s = primwork + 2805;
68     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_n_s = primwork + 3575;
69     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_o_s = primwork + 4433;
70     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_q_s = primwork + 5369;
71     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_r_s = primwork + 6370;
72     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_s_s = primwork + 7420;
73     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_p_s = primwork + 7447;
74     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_d_s = primwork + 7528;
75     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_f_s = primwork + 7690;
76     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_g_s = primwork + 7960;
77     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_h_s = primwork + 8365;
78     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_i_s = primwork + 8932;
79     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_k_s = primwork + 9688;
80     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_l_s = primwork + 10660;
81     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_m_s = primwork + 11875;
82     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_n_s = primwork + 13360;
83     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_o_s = primwork + 15142;
84     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_q_s = primwork + 17248;
85     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_r_s = primwork + 19705;
86     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_s_s = primwork + 22540;
87     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_p_s = primwork + 22588;
88     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_d_s = primwork + 22732;
89     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_f_s = primwork + 23020;
90     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_g_s = primwork + 23500;
91     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_h_s = primwork + 24220;
92     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_i_s = primwork + 25228;
93     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_k_s = primwork + 26572;
94     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_l_s = primwork + 28300;
95     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_m_s = primwork + 30460;
96     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_n_s = primwork + 33100;
97     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_o_s = primwork + 36268;
98     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_q_s = primwork + 40012;
99     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_r_s = primwork + 44380;
100     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_p_s = primwork + 49420;
101     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_d_s = primwork + 49630;
102     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_f_s = primwork + 50050;
103     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_g_s = primwork + 50750;
104     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_h_s = primwork + 51800;
105     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_i_s = primwork + 53270;
106     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_k_s = primwork + 55230;
107     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_l_s = primwork + 57750;
108     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_m_s = primwork + 60900;
109     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_n_s = primwork + 64750;
110     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_o_s = primwork + 69370;
111     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_q_s = primwork + 74830;
112     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_r_s = primwork + 81200;
113     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_d_s = primwork + 88550;
114     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_f_s = primwork + 89090;
115     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_g_s = primwork + 89990;
116     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_h_s = primwork + 91340;
117     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_i_s = primwork + 93230;
118     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_k_s = primwork + 95750;
119     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_l_s = primwork + 98990;
120     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_m_s = primwork + 103040;
121     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_n_s = primwork + 107990;
122     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_o_s = primwork + 113930;
123     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_q_s = primwork + 120950;
124     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_r_s = primwork + 129140;
125     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_f_s = primwork + 138590;
126     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_g_s = primwork + 139640;
127     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_h_s = primwork + 141215;
128     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_i_s = primwork + 143420;
129     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_k_s = primwork + 146360;
130     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_l_s = primwork + 150140;
131     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_m_s = primwork + 154865;
132     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_n_s = primwork + 160640;
133     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_o_s = primwork + 167570;
134     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_q_s = primwork + 175760;
135     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_r_s = primwork + 185315;
136     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_g_s = primwork + 196340;
137     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_h_s = primwork + 198020;
138     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_i_s = primwork + 200372;
139     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_k_s = primwork + 203508;
140     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_l_s = primwork + 207540;
141     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_m_s = primwork + 212580;
142     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_n_s = primwork + 218740;
143     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_o_s = primwork + 226132;
144     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_q_s = primwork + 234868;
145     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_r_s = primwork + 245060;
146     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_h_s = primwork + 256820;
147     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_i_s = primwork + 259088;
148     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_k_s = primwork + 262112;
149     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_l_s = primwork + 266000;
150     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_m_s = primwork + 270860;
151     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_n_s = primwork + 276800;
152     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_o_s = primwork + 283928;
153     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_q_s = primwork + 292352;
154     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_r_s = primwork + 302180;
155     SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_i_s = primwork + 313520;
156     SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_k_s = primwork + 316040;
157     SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_l_s = primwork + 319280;
158     SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_m_s = primwork + 323330;
159     SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_n_s = primwork + 328280;
160     SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_o_s = primwork + 334220;
161     SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_q_s = primwork + 341240;
162     SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_r_s = primwork + 349430;
163     SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_k_s = primwork + 358880;
164     SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_l_s = primwork + 360860;
165     SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_m_s = primwork + 363335;
166     SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_n_s = primwork + 366360;
167     SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_o_s = primwork + 369990;
168     SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_q_s = primwork + 374280;
169     SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_r_s = primwork + 379285;
170     double * const hrrwork = (double *)(primwork + 385060);
171     double * const HRR_INT__i_p_k_s = hrrwork + 0;
172     double * const HRR_INT__i_p_l_s = hrrwork + 3024;
173     double * const HRR_INT__i_p_m_s = hrrwork + 6804;
174     double * const HRR_INT__i_p_n_s = hrrwork + 11424;
175     double * const HRR_INT__i_p_o_s = hrrwork + 16968;
176     double * const HRR_INT__i_p_q_s = hrrwork + 23520;
177     double * const HRR_INT__i_p_r_s = hrrwork + 31164;
178     double * const HRR_INT__i_d_k_s = hrrwork + 39984;
179     double * const HRR_INT__i_d_l_s = hrrwork + 46032;
180     double * const HRR_INT__i_d_m_s = hrrwork + 53592;
181     double * const HRR_INT__i_d_n_s = hrrwork + 62832;
182     double * const HRR_INT__i_d_o_s = hrrwork + 73920;
183     double * const HRR_INT__i_d_q_s = hrrwork + 87024;
184     double * const HRR_INT__i_d_r_s = hrrwork + 102312;
185     double * const HRR_INT__i_f_k_s = hrrwork + 119952;
186     double * const HRR_INT__i_f_k_p = hrrwork + 130032;
187     double * const HRR_INT__i_f_k_d = hrrwork + 160272;
188     double * const HRR_INT__i_f_k_f = hrrwork + 220752;
189     double * const HRR_INT__i_f_k_g = hrrwork + 321552;
190     double * const HRR_INT__i_f_k_h = hrrwork + 472752;
191     double * const HRR_INT__i_f_l_s = hrrwork + 684432;
192     double * const HRR_INT__i_f_l_p = hrrwork + 697032;
193     double * const HRR_INT__i_f_l_d = hrrwork + 734832;
194     double * const HRR_INT__i_f_l_f = hrrwork + 810432;
195     double * const HRR_INT__i_f_l_g = hrrwork + 936432;
196     double * const HRR_INT__i_f_l_h = hrrwork + 1125432;
197     double * const HRR_INT__i_f_m_s = hrrwork + 1390032;
198     double * const HRR_INT__i_f_m_p = hrrwork + 1405432;
199     double * const HRR_INT__i_f_m_d = hrrwork + 1451632;
200     double * const HRR_INT__i_f_m_f = hrrwork + 1544032;
201     double * const HRR_INT__i_f_m_g = hrrwork + 1698032;
202     double * const HRR_INT__i_f_n_s = hrrwork + 1929032;
203     double * const HRR_INT__i_f_n_p = hrrwork + 1947512;
204     double * const HRR_INT__i_f_n_d = hrrwork + 2002952;
205     double * const HRR_INT__i_f_n_f = hrrwork + 2113832;
206     double * const HRR_INT__i_f_o_s = hrrwork + 2298632;
207     double * const HRR_INT__i_f_o_p = hrrwork + 2320472;
208     double * const HRR_INT__i_f_o_d = hrrwork + 2385992;
209     double * const HRR_INT__i_f_q_s = hrrwork + 2517032;
210     double * const HRR_INT__i_f_q_p = hrrwork + 2542512;
211     double * const HRR_INT__i_f_r_s = hrrwork + 2618952;
212     double * const HRR_INT__k_p_k_s = hrrwork + 2648352;
213     double * const HRR_INT__k_p_l_s = hrrwork + 2652240;
214     double * const HRR_INT__k_p_m_s = hrrwork + 2657100;
215     double * const HRR_INT__k_p_n_s = hrrwork + 2663040;
216     double * const HRR_INT__k_p_o_s = hrrwork + 2670168;
217     double * const HRR_INT__k_p_q_s = hrrwork + 2678592;
218     double * const HRR_INT__k_p_r_s = hrrwork + 2688420;
219     double * const HRR_INT__k_d_k_s = hrrwork + 2699760;
220     double * const HRR_INT__k_d_l_s = hrrwork + 2707536;
221     double * const HRR_INT__k_d_m_s = hrrwork + 2717256;
222     double * const HRR_INT__k_d_n_s = hrrwork + 2729136;
223     double * const HRR_INT__k_d_o_s = hrrwork + 2743392;
224     double * const HRR_INT__k_d_q_s = hrrwork + 2760240;
225     double * const HRR_INT__k_d_r_s = hrrwork + 2779896;
226     double * const HRR_INT__l_p_k_s = hrrwork + 2802576;
227     double * const HRR_INT__l_p_l_s = hrrwork + 2807436;
228     double * const HRR_INT__l_p_m_s = hrrwork + 2813511;
229     double * const HRR_INT__l_p_n_s = hrrwork + 2820936;
230     double * const HRR_INT__l_p_o_s = hrrwork + 2829846;
231     double * const HRR_INT__l_p_q_s = hrrwork + 2840376;
232     double * const HRR_INT__l_p_r_s = hrrwork + 2852661;
233 
234 
235     // Create constants
236     const SIMINT_DBLTYPE const_1 = SIMINT_DBLSET1(1);
237     const SIMINT_DBLTYPE const_10 = SIMINT_DBLSET1(10);
238     const SIMINT_DBLTYPE const_11 = SIMINT_DBLSET1(11);
239     const SIMINT_DBLTYPE const_12 = SIMINT_DBLSET1(12);
240     const SIMINT_DBLTYPE const_13 = SIMINT_DBLSET1(13);
241     const SIMINT_DBLTYPE const_2 = SIMINT_DBLSET1(2);
242     const SIMINT_DBLTYPE const_3 = SIMINT_DBLSET1(3);
243     const SIMINT_DBLTYPE const_4 = SIMINT_DBLSET1(4);
244     const SIMINT_DBLTYPE const_5 = SIMINT_DBLSET1(5);
245     const SIMINT_DBLTYPE const_6 = SIMINT_DBLSET1(6);
246     const SIMINT_DBLTYPE const_7 = SIMINT_DBLSET1(7);
247     const SIMINT_DBLTYPE const_8 = SIMINT_DBLSET1(8);
248     const SIMINT_DBLTYPE const_9 = SIMINT_DBLSET1(9);
249     const SIMINT_DBLTYPE one_half = SIMINT_DBLSET1(0.5);
250 
251 
252     ////////////////////////////////////////
253     // Loop over shells and primitives
254     ////////////////////////////////////////
255 
256     real_abcd = 0;
257     istart = 0;
258     for(ab = 0; ab < P.nshell12_clip; ++ab)
259     {
260         const int iend = istart + P.nprim12[ab];
261 
262         cd = 0;
263         jstart = 0;
264 
265         for(cd = 0; cd < Q.nshell12_clip; cd += SIMINT_NSHELL_SIMD)
266         {
267             const int nshellbatch = ((cd + SIMINT_NSHELL_SIMD) > Q.nshell12_clip) ? Q.nshell12_clip - cd : SIMINT_NSHELL_SIMD;
268             int jend = jstart;
269             for(i = 0; i < nshellbatch; i++)
270                 jend += Q.nprim12[cd+i];
271 
272             // Clear the beginning of the workspace (where we are accumulating integrals)
273             memset(work, 0, SIMINT_NSHELL_SIMD * 78064 * sizeof(double));
274             abcd = 0;
275 
276 
277             for(i = istart; i < iend; ++i)
278             {
279                 SIMINT_DBLTYPE bra_screen_max;  // only used if check_screen
280 
281                 if(check_screen)
282                 {
283                     // Skip this whole thing if always insignificant
284                     if((P.screen[i] * Q.screen_max) < screen_tol)
285                         continue;
286                     bra_screen_max = SIMINT_DBLSET1(P.screen[i]);
287                 }
288 
289                 icd = 0;
290                 iprimcd = 0;
291                 nprim_icd = Q.nprim12[cd];
292                 double * restrict PRIM_PTR_INT__i_s_k_s = INT__i_s_k_s + abcd * 1008;
293                 double * restrict PRIM_PTR_INT__i_s_l_s = INT__i_s_l_s + abcd * 1260;
294                 double * restrict PRIM_PTR_INT__i_s_m_s = INT__i_s_m_s + abcd * 1540;
295                 double * restrict PRIM_PTR_INT__i_s_n_s = INT__i_s_n_s + abcd * 1848;
296                 double * restrict PRIM_PTR_INT__i_s_o_s = INT__i_s_o_s + abcd * 2184;
297                 double * restrict PRIM_PTR_INT__i_s_q_s = INT__i_s_q_s + abcd * 2548;
298                 double * restrict PRIM_PTR_INT__i_s_r_s = INT__i_s_r_s + abcd * 2940;
299                 double * restrict PRIM_PTR_INT__k_s_k_s = INT__k_s_k_s + abcd * 1296;
300                 double * restrict PRIM_PTR_INT__k_s_l_s = INT__k_s_l_s + abcd * 1620;
301                 double * restrict PRIM_PTR_INT__k_s_m_s = INT__k_s_m_s + abcd * 1980;
302                 double * restrict PRIM_PTR_INT__k_s_n_s = INT__k_s_n_s + abcd * 2376;
303                 double * restrict PRIM_PTR_INT__k_s_o_s = INT__k_s_o_s + abcd * 2808;
304                 double * restrict PRIM_PTR_INT__k_s_q_s = INT__k_s_q_s + abcd * 3276;
305                 double * restrict PRIM_PTR_INT__k_s_r_s = INT__k_s_r_s + abcd * 3780;
306                 double * restrict PRIM_PTR_INT__l_s_k_s = INT__l_s_k_s + abcd * 1620;
307                 double * restrict PRIM_PTR_INT__l_s_l_s = INT__l_s_l_s + abcd * 2025;
308                 double * restrict PRIM_PTR_INT__l_s_m_s = INT__l_s_m_s + abcd * 2475;
309                 double * restrict PRIM_PTR_INT__l_s_n_s = INT__l_s_n_s + abcd * 2970;
310                 double * restrict PRIM_PTR_INT__l_s_o_s = INT__l_s_o_s + abcd * 3510;
311                 double * restrict PRIM_PTR_INT__l_s_q_s = INT__l_s_q_s + abcd * 4095;
312                 double * restrict PRIM_PTR_INT__l_s_r_s = INT__l_s_r_s + abcd * 4725;
313                 double * restrict PRIM_PTR_INT__m_s_k_s = INT__m_s_k_s + abcd * 1980;
314                 double * restrict PRIM_PTR_INT__m_s_l_s = INT__m_s_l_s + abcd * 2475;
315                 double * restrict PRIM_PTR_INT__m_s_m_s = INT__m_s_m_s + abcd * 3025;
316                 double * restrict PRIM_PTR_INT__m_s_n_s = INT__m_s_n_s + abcd * 3630;
317                 double * restrict PRIM_PTR_INT__m_s_o_s = INT__m_s_o_s + abcd * 4290;
318                 double * restrict PRIM_PTR_INT__m_s_q_s = INT__m_s_q_s + abcd * 5005;
319                 double * restrict PRIM_PTR_INT__m_s_r_s = INT__m_s_r_s + abcd * 5775;
320 
321 
322 
323                 // Load these one per loop over i
324                 const SIMINT_DBLTYPE P_alpha = SIMINT_DBLSET1(P.alpha[i]);
325                 const SIMINT_DBLTYPE P_prefac = SIMINT_DBLSET1(P.prefac[i]);
326                 const SIMINT_DBLTYPE Pxyz[3] = { SIMINT_DBLSET1(P.x[i]), SIMINT_DBLSET1(P.y[i]), SIMINT_DBLSET1(P.z[i]) };
327 
328                 const SIMINT_DBLTYPE P_PA[3] = { SIMINT_DBLSET1(P.PA_x[i]), SIMINT_DBLSET1(P.PA_y[i]), SIMINT_DBLSET1(P.PA_z[i]) };
329 
330                 for(j = jstart; j < jend; j += SIMINT_SIMD_LEN)
331                 {
332                     // calculate the shell offsets
333                     // these are the offset from the shell pointed to by cd
334                     // for each element
335                     int shelloffsets[SIMINT_SIMD_LEN] = {0};
336                     int lastoffset = 0;
337                     const int nlane = ( ((j + SIMINT_SIMD_LEN) < jend) ? SIMINT_SIMD_LEN : (jend - j));
338 
339                     if((iprimcd + SIMINT_SIMD_LEN) >= nprim_icd)
340                     {
341                         // Handle if the first element of the vector is a new shell
342                         if(iprimcd >= nprim_icd && ((icd+1) < nshellbatch))
343                         {
344                             nprim_icd += Q.nprim12[cd + (++icd)];
345                             PRIM_PTR_INT__i_s_k_s += 1008;
346                             PRIM_PTR_INT__i_s_l_s += 1260;
347                             PRIM_PTR_INT__i_s_m_s += 1540;
348                             PRIM_PTR_INT__i_s_n_s += 1848;
349                             PRIM_PTR_INT__i_s_o_s += 2184;
350                             PRIM_PTR_INT__i_s_q_s += 2548;
351                             PRIM_PTR_INT__i_s_r_s += 2940;
352                             PRIM_PTR_INT__k_s_k_s += 1296;
353                             PRIM_PTR_INT__k_s_l_s += 1620;
354                             PRIM_PTR_INT__k_s_m_s += 1980;
355                             PRIM_PTR_INT__k_s_n_s += 2376;
356                             PRIM_PTR_INT__k_s_o_s += 2808;
357                             PRIM_PTR_INT__k_s_q_s += 3276;
358                             PRIM_PTR_INT__k_s_r_s += 3780;
359                             PRIM_PTR_INT__l_s_k_s += 1620;
360                             PRIM_PTR_INT__l_s_l_s += 2025;
361                             PRIM_PTR_INT__l_s_m_s += 2475;
362                             PRIM_PTR_INT__l_s_n_s += 2970;
363                             PRIM_PTR_INT__l_s_o_s += 3510;
364                             PRIM_PTR_INT__l_s_q_s += 4095;
365                             PRIM_PTR_INT__l_s_r_s += 4725;
366                             PRIM_PTR_INT__m_s_k_s += 1980;
367                             PRIM_PTR_INT__m_s_l_s += 2475;
368                             PRIM_PTR_INT__m_s_m_s += 3025;
369                             PRIM_PTR_INT__m_s_n_s += 3630;
370                             PRIM_PTR_INT__m_s_o_s += 4290;
371                             PRIM_PTR_INT__m_s_q_s += 5005;
372                             PRIM_PTR_INT__m_s_r_s += 5775;
373                         }
374                         iprimcd++;
375                         for(n = 1; n < SIMINT_SIMD_LEN; ++n)
376                         {
377                             if(iprimcd >= nprim_icd && ((icd+1) < nshellbatch))
378                             {
379                                 shelloffsets[n] = shelloffsets[n-1] + 1;
380                                 lastoffset++;
381                                 nprim_icd += Q.nprim12[cd + (++icd)];
382                             }
383                             else
384                                 shelloffsets[n] = shelloffsets[n-1];
385                             iprimcd++;
386                         }
387                     }
388                     else
389                         iprimcd += SIMINT_SIMD_LEN;
390 
391                     // Do we have to compute this vector (or has it been screened out)?
392                     // (not_screened != 0 means we have to do this vector)
393                     if(check_screen)
394                     {
395                         const double vmax = vector_max(SIMINT_MUL(bra_screen_max, SIMINT_DBLLOAD(Q.screen, j)));
396                         if(vmax < screen_tol)
397                         {
398                             PRIM_PTR_INT__i_s_k_s += lastoffset*1008;
399                             PRIM_PTR_INT__i_s_l_s += lastoffset*1260;
400                             PRIM_PTR_INT__i_s_m_s += lastoffset*1540;
401                             PRIM_PTR_INT__i_s_n_s += lastoffset*1848;
402                             PRIM_PTR_INT__i_s_o_s += lastoffset*2184;
403                             PRIM_PTR_INT__i_s_q_s += lastoffset*2548;
404                             PRIM_PTR_INT__i_s_r_s += lastoffset*2940;
405                             PRIM_PTR_INT__k_s_k_s += lastoffset*1296;
406                             PRIM_PTR_INT__k_s_l_s += lastoffset*1620;
407                             PRIM_PTR_INT__k_s_m_s += lastoffset*1980;
408                             PRIM_PTR_INT__k_s_n_s += lastoffset*2376;
409                             PRIM_PTR_INT__k_s_o_s += lastoffset*2808;
410                             PRIM_PTR_INT__k_s_q_s += lastoffset*3276;
411                             PRIM_PTR_INT__k_s_r_s += lastoffset*3780;
412                             PRIM_PTR_INT__l_s_k_s += lastoffset*1620;
413                             PRIM_PTR_INT__l_s_l_s += lastoffset*2025;
414                             PRIM_PTR_INT__l_s_m_s += lastoffset*2475;
415                             PRIM_PTR_INT__l_s_n_s += lastoffset*2970;
416                             PRIM_PTR_INT__l_s_o_s += lastoffset*3510;
417                             PRIM_PTR_INT__l_s_q_s += lastoffset*4095;
418                             PRIM_PTR_INT__l_s_r_s += lastoffset*4725;
419                             PRIM_PTR_INT__m_s_k_s += lastoffset*1980;
420                             PRIM_PTR_INT__m_s_l_s += lastoffset*2475;
421                             PRIM_PTR_INT__m_s_m_s += lastoffset*3025;
422                             PRIM_PTR_INT__m_s_n_s += lastoffset*3630;
423                             PRIM_PTR_INT__m_s_o_s += lastoffset*4290;
424                             PRIM_PTR_INT__m_s_q_s += lastoffset*5005;
425                             PRIM_PTR_INT__m_s_r_s += lastoffset*5775;
426                             continue;
427                         }
428                     }
429 
430                     const SIMINT_DBLTYPE Q_alpha = SIMINT_DBLLOAD(Q.alpha, j);
431                     const SIMINT_DBLTYPE PQalpha_mul = SIMINT_MUL(P_alpha, Q_alpha);
432                     const SIMINT_DBLTYPE PQalpha_sum = SIMINT_ADD(P_alpha, Q_alpha);
433                     const SIMINT_DBLTYPE one_over_PQalpha_sum = SIMINT_DIV(const_1, PQalpha_sum);
434 
435 
436                     /* construct R2 = (Px - Qx)**2 + (Py - Qy)**2 + (Pz -Qz)**2 */
437                     SIMINT_DBLTYPE PQ[3];
438                     PQ[0] = SIMINT_SUB(Pxyz[0], SIMINT_DBLLOAD(Q.x, j));
439                     PQ[1] = SIMINT_SUB(Pxyz[1], SIMINT_DBLLOAD(Q.y, j));
440                     PQ[2] = SIMINT_SUB(Pxyz[2], SIMINT_DBLLOAD(Q.z, j));
441                     SIMINT_DBLTYPE R2 = SIMINT_MUL(PQ[0], PQ[0]);
442                     R2 = SIMINT_FMADD(PQ[1], PQ[1], R2);
443                     R2 = SIMINT_FMADD(PQ[2], PQ[2], R2);
444 
445                     const SIMINT_DBLTYPE alpha = SIMINT_MUL(PQalpha_mul, one_over_PQalpha_sum); // alpha from MEST
446                     const SIMINT_DBLTYPE one_over_p = SIMINT_DIV(const_1, P_alpha);
447                     const SIMINT_DBLTYPE one_over_q = SIMINT_DIV(const_1, Q_alpha);
448                     const SIMINT_DBLTYPE one_over_2p = SIMINT_MUL(one_half, one_over_p);
449                     const SIMINT_DBLTYPE one_over_2q = SIMINT_MUL(one_half, one_over_q);
450                     const SIMINT_DBLTYPE one_over_2pq = SIMINT_MUL(one_half, one_over_PQalpha_sum);
451                     const SIMINT_DBLTYPE Q_PA[3] = { SIMINT_DBLLOAD(Q.PA_x, j), SIMINT_DBLLOAD(Q.PA_y, j), SIMINT_DBLLOAD(Q.PA_z, j) };
452 
453                     // NOTE: Minus sign!
454                     const SIMINT_DBLTYPE a_over_p = SIMINT_MUL(SIMINT_NEG(alpha), one_over_p);
455                     SIMINT_DBLTYPE aop_PQ[3];
456                     aop_PQ[0] = SIMINT_MUL(a_over_p, PQ[0]);
457                     aop_PQ[1] = SIMINT_MUL(a_over_p, PQ[1]);
458                     aop_PQ[2] = SIMINT_MUL(a_over_p, PQ[2]);
459 
460                     SIMINT_DBLTYPE a_over_q = SIMINT_MUL(alpha, one_over_q);
461                     SIMINT_DBLTYPE aoq_PQ[3];
462                     aoq_PQ[0] = SIMINT_MUL(a_over_q, PQ[0]);
463                     aoq_PQ[1] = SIMINT_MUL(a_over_q, PQ[1]);
464                     aoq_PQ[2] = SIMINT_MUL(a_over_q, PQ[2]);
465                     // Put a minus sign here so we don't have to in RR routines
466                     a_over_q = SIMINT_NEG(a_over_q);
467 
468 
469                     //////////////////////////////////////////////
470                     // Fjt function section
471                     // Maximum v value: 22
472                     //////////////////////////////////////////////
473                     // The parameter to the Fjt function
474                     const SIMINT_DBLTYPE F_x = SIMINT_MUL(R2, alpha);
475 
476 
477                     const SIMINT_DBLTYPE Q_prefac = mask_load(nlane, Q.prefac + j);
478 
479 
480                     boys_F_split(PRIM_INT__s_s_s_s, F_x, 22);
481                     SIMINT_DBLTYPE prefac = SIMINT_SQRT(one_over_PQalpha_sum);
482                     prefac = SIMINT_MUL(SIMINT_MUL(P_prefac, Q_prefac), prefac);
483                     for(n = 0; n <= 22; n++)
484                         PRIM_INT__s_s_s_s[n] = SIMINT_MUL(PRIM_INT__s_s_s_s[n], prefac);
485 
486                     //////////////////////////////////////////////
487                     // Primitive integrals: Vertical recurrance
488                     //////////////////////////////////////////////
489 
490                     const SIMINT_DBLTYPE vrr_const_1_over_2p = one_over_2p;
491                     const SIMINT_DBLTYPE vrr_const_2_over_2p = SIMINT_MUL(const_2, one_over_2p);
492                     const SIMINT_DBLTYPE vrr_const_3_over_2p = SIMINT_MUL(const_3, one_over_2p);
493                     const SIMINT_DBLTYPE vrr_const_4_over_2p = SIMINT_MUL(const_4, one_over_2p);
494                     const SIMINT_DBLTYPE vrr_const_5_over_2p = SIMINT_MUL(const_5, one_over_2p);
495                     const SIMINT_DBLTYPE vrr_const_6_over_2p = SIMINT_MUL(const_6, one_over_2p);
496                     const SIMINT_DBLTYPE vrr_const_7_over_2p = SIMINT_MUL(const_7, one_over_2p);
497                     const SIMINT_DBLTYPE vrr_const_8_over_2p = SIMINT_MUL(const_8, one_over_2p);
498                     const SIMINT_DBLTYPE vrr_const_1_over_2q = one_over_2q;
499                     const SIMINT_DBLTYPE vrr_const_2_over_2q = SIMINT_MUL(const_2, one_over_2q);
500                     const SIMINT_DBLTYPE vrr_const_3_over_2q = SIMINT_MUL(const_3, one_over_2q);
501                     const SIMINT_DBLTYPE vrr_const_4_over_2q = SIMINT_MUL(const_4, one_over_2q);
502                     const SIMINT_DBLTYPE vrr_const_5_over_2q = SIMINT_MUL(const_5, one_over_2q);
503                     const SIMINT_DBLTYPE vrr_const_6_over_2q = SIMINT_MUL(const_6, one_over_2q);
504                     const SIMINT_DBLTYPE vrr_const_7_over_2q = SIMINT_MUL(const_7, one_over_2q);
505                     const SIMINT_DBLTYPE vrr_const_8_over_2q = SIMINT_MUL(const_8, one_over_2q);
506                     const SIMINT_DBLTYPE vrr_const_9_over_2q = SIMINT_MUL(const_9, one_over_2q);
507                     const SIMINT_DBLTYPE vrr_const_10_over_2q = SIMINT_MUL(const_10, one_over_2q);
508                     const SIMINT_DBLTYPE vrr_const_11_over_2q = SIMINT_MUL(const_11, one_over_2q);
509                     const SIMINT_DBLTYPE vrr_const_12_over_2q = SIMINT_MUL(const_12, one_over_2q);
510                     const SIMINT_DBLTYPE vrr_const_1_over_2pq = one_over_2pq;
511                     const SIMINT_DBLTYPE vrr_const_2_over_2pq = SIMINT_MUL(const_2, one_over_2pq);
512                     const SIMINT_DBLTYPE vrr_const_3_over_2pq = SIMINT_MUL(const_3, one_over_2pq);
513                     const SIMINT_DBLTYPE vrr_const_4_over_2pq = SIMINT_MUL(const_4, one_over_2pq);
514                     const SIMINT_DBLTYPE vrr_const_5_over_2pq = SIMINT_MUL(const_5, one_over_2pq);
515                     const SIMINT_DBLTYPE vrr_const_6_over_2pq = SIMINT_MUL(const_6, one_over_2pq);
516                     const SIMINT_DBLTYPE vrr_const_7_over_2pq = SIMINT_MUL(const_7, one_over_2pq);
517                     const SIMINT_DBLTYPE vrr_const_8_over_2pq = SIMINT_MUL(const_8, one_over_2pq);
518                     const SIMINT_DBLTYPE vrr_const_9_over_2pq = SIMINT_MUL(const_9, one_over_2pq);
519                     const SIMINT_DBLTYPE vrr_const_10_over_2pq = SIMINT_MUL(const_10, one_over_2pq);
520                     const SIMINT_DBLTYPE vrr_const_11_over_2pq = SIMINT_MUL(const_11, one_over_2pq);
521                     const SIMINT_DBLTYPE vrr_const_12_over_2pq = SIMINT_MUL(const_12, one_over_2pq);
522                     const SIMINT_DBLTYPE vrr_const_13_over_2pq = SIMINT_MUL(const_13, one_over_2pq);
523 
524 
525 
526                     // Forming PRIM_INT__s_s_p_s[22 * 3];
527                     for(n = 0; n < 22; ++n)  // loop over orders of auxiliary function
528                     {
529 
530                         PRIM_INT__s_s_p_s[n * 3 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_s_s[n * 1 + 0]);
531                         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]);
532 
533                         PRIM_INT__s_s_p_s[n * 3 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_s_s[n * 1 + 0]);
534                         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]);
535 
536                         PRIM_INT__s_s_p_s[n * 3 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_s_s[n * 1 + 0]);
537                         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]);
538 
539                     }
540 
541 
542 
543                     // Forming PRIM_INT__s_s_d_s[21 * 6];
544                     for(n = 0; n < 21; ++n)  // loop over orders of auxiliary function
545                     {
546 
547                         PRIM_INT__s_s_d_s[n * 6 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_p_s[n * 3 + 0]);
548                         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]);
549                         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]);
550 
551                         PRIM_INT__s_s_d_s[n * 6 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_p_s[n * 3 + 0]);
552                         PRIM_INT__s_s_d_s[n * 6 + 1] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__s_s_d_s[n * 6 + 1]);
553 
554                         PRIM_INT__s_s_d_s[n * 6 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_p_s[n * 3 + 0]);
555                         PRIM_INT__s_s_d_s[n * 6 + 2] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__s_s_d_s[n * 6 + 2]);
556 
557                         PRIM_INT__s_s_d_s[n * 6 + 3] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_p_s[n * 3 + 1]);
558                         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]);
559                         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]);
560 
561                         PRIM_INT__s_s_d_s[n * 6 + 4] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_p_s[n * 3 + 1]);
562                         PRIM_INT__s_s_d_s[n * 6 + 4] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__s_s_d_s[n * 6 + 4]);
563 
564                         PRIM_INT__s_s_d_s[n * 6 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_p_s[n * 3 + 2]);
565                         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]);
566                         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]);
567 
568                     }
569 
570 
571 
572                     // Forming PRIM_INT__s_s_f_s[20 * 10];
573                     for(n = 0; n < 20; ++n)  // loop over orders of auxiliary function
574                     {
575 
576                         PRIM_INT__s_s_f_s[n * 10 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_d_s[n * 6 + 0]);
577                         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]);
578                         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]);
579 
580                         PRIM_INT__s_s_f_s[n * 10 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_d_s[n * 6 + 0]);
581                         PRIM_INT__s_s_f_s[n * 10 + 1] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__s_s_d_s[(n+1) * 6 + 0], PRIM_INT__s_s_f_s[n * 10 + 1]);
582 
583                         PRIM_INT__s_s_f_s[n * 10 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_d_s[n * 6 + 0]);
584                         PRIM_INT__s_s_f_s[n * 10 + 2] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__s_s_d_s[(n+1) * 6 + 0], PRIM_INT__s_s_f_s[n * 10 + 2]);
585 
586                         PRIM_INT__s_s_f_s[n * 10 + 3] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_d_s[n * 6 + 3]);
587                         PRIM_INT__s_s_f_s[n * 10 + 3] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__s_s_d_s[(n+1) * 6 + 3], PRIM_INT__s_s_f_s[n * 10 + 3]);
588 
589                         PRIM_INT__s_s_f_s[n * 10 + 4] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_d_s[n * 6 + 1]);
590                         PRIM_INT__s_s_f_s[n * 10 + 4] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__s_s_d_s[(n+1) * 6 + 1], PRIM_INT__s_s_f_s[n * 10 + 4]);
591 
592                         PRIM_INT__s_s_f_s[n * 10 + 5] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_d_s[n * 6 + 5]);
593                         PRIM_INT__s_s_f_s[n * 10 + 5] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__s_s_d_s[(n+1) * 6 + 5], PRIM_INT__s_s_f_s[n * 10 + 5]);
594 
595                         PRIM_INT__s_s_f_s[n * 10 + 6] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_d_s[n * 6 + 3]);
596                         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]);
597                         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]);
598 
599                         PRIM_INT__s_s_f_s[n * 10 + 7] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_d_s[n * 6 + 3]);
600                         PRIM_INT__s_s_f_s[n * 10 + 7] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__s_s_d_s[(n+1) * 6 + 3], PRIM_INT__s_s_f_s[n * 10 + 7]);
601 
602                         PRIM_INT__s_s_f_s[n * 10 + 8] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_d_s[n * 6 + 5]);
603                         PRIM_INT__s_s_f_s[n * 10 + 8] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__s_s_d_s[(n+1) * 6 + 5], PRIM_INT__s_s_f_s[n * 10 + 8]);
604 
605                         PRIM_INT__s_s_f_s[n * 10 + 9] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_d_s[n * 6 + 5]);
606                         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]);
607                         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]);
608 
609                     }
610 
611 
612                     VRR_K_s_s_g_s(
613                             PRIM_INT__s_s_g_s,
614                             PRIM_INT__s_s_f_s,
615                             PRIM_INT__s_s_d_s,
616                             Q_PA,
617                             a_over_q,
618                             aoq_PQ,
619                             one_over_2q,
620                             19);
621 
622 
623                     VRR_K_s_s_h_s(
624                             PRIM_INT__s_s_h_s,
625                             PRIM_INT__s_s_g_s,
626                             PRIM_INT__s_s_f_s,
627                             Q_PA,
628                             a_over_q,
629                             aoq_PQ,
630                             one_over_2q,
631                             18);
632 
633 
634                     ostei_general_vrr1_K(6, 17,
635                             one_over_2q, a_over_q, aoq_PQ, Q_PA,
636                             PRIM_INT__s_s_h_s, PRIM_INT__s_s_g_s, PRIM_INT__s_s_i_s);
637 
638 
639                     ostei_general_vrr1_K(7, 16,
640                             one_over_2q, a_over_q, aoq_PQ, Q_PA,
641                             PRIM_INT__s_s_i_s, PRIM_INT__s_s_h_s, PRIM_INT__s_s_k_s);
642 
643 
644                     ostei_general_vrr_I(1, 0, 7, 0, 9,
645                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
646                             PRIM_INT__s_s_k_s, NULL, NULL, PRIM_INT__s_s_i_s, NULL, PRIM_INT__p_s_k_s);
647 
648 
649                     ostei_general_vrr_I(1, 0, 6, 0, 9,
650                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
651                             PRIM_INT__s_s_i_s, NULL, NULL, PRIM_INT__s_s_h_s, NULL, PRIM_INT__p_s_i_s);
652 
653 
654                     ostei_general_vrr_I(2, 0, 7, 0, 8,
655                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
656                             PRIM_INT__p_s_k_s, PRIM_INT__s_s_k_s, NULL, PRIM_INT__p_s_i_s, NULL, PRIM_INT__d_s_k_s);
657 
658 
659                     ostei_general_vrr_I(1, 0, 5, 0, 9,
660                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
661                             PRIM_INT__s_s_h_s, NULL, NULL, PRIM_INT__s_s_g_s, NULL, PRIM_INT__p_s_h_s);
662 
663 
664                     ostei_general_vrr_I(2, 0, 6, 0, 8,
665                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
666                             PRIM_INT__p_s_i_s, PRIM_INT__s_s_i_s, NULL, PRIM_INT__p_s_h_s, NULL, PRIM_INT__d_s_i_s);
667 
668 
669                     ostei_general_vrr_I(3, 0, 7, 0, 7,
670                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
671                             PRIM_INT__d_s_k_s, PRIM_INT__p_s_k_s, NULL, PRIM_INT__d_s_i_s, NULL, PRIM_INT__f_s_k_s);
672 
673 
674                     VRR_I_p_s_g_s(
675                             PRIM_INT__p_s_g_s,
676                             PRIM_INT__s_s_g_s,
677                             PRIM_INT__s_s_f_s,
678                             P_PA,
679                             aop_PQ,
680                             one_over_2pq,
681                             9);
682 
683 
684                     ostei_general_vrr_I(2, 0, 5, 0, 8,
685                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
686                             PRIM_INT__p_s_h_s, PRIM_INT__s_s_h_s, NULL, PRIM_INT__p_s_g_s, NULL, PRIM_INT__d_s_h_s);
687 
688 
689                     ostei_general_vrr_I(3, 0, 6, 0, 7,
690                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
691                             PRIM_INT__d_s_i_s, PRIM_INT__p_s_i_s, NULL, PRIM_INT__d_s_h_s, NULL, PRIM_INT__f_s_i_s);
692 
693 
694                     ostei_general_vrr_I(4, 0, 7, 0, 6,
695                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
696                             PRIM_INT__f_s_k_s, PRIM_INT__d_s_k_s, NULL, PRIM_INT__f_s_i_s, NULL, PRIM_INT__g_s_k_s);
697 
698 
699                     VRR_I_p_s_f_s(
700                             PRIM_INT__p_s_f_s,
701                             PRIM_INT__s_s_f_s,
702                             PRIM_INT__s_s_d_s,
703                             P_PA,
704                             aop_PQ,
705                             one_over_2pq,
706                             9);
707 
708 
709                     ostei_general_vrr_I(2, 0, 4, 0, 8,
710                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
711                             PRIM_INT__p_s_g_s, PRIM_INT__s_s_g_s, NULL, PRIM_INT__p_s_f_s, NULL, PRIM_INT__d_s_g_s);
712 
713 
714                     ostei_general_vrr_I(3, 0, 5, 0, 7,
715                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
716                             PRIM_INT__d_s_h_s, PRIM_INT__p_s_h_s, NULL, PRIM_INT__d_s_g_s, NULL, PRIM_INT__f_s_h_s);
717 
718 
719                     ostei_general_vrr_I(4, 0, 6, 0, 6,
720                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
721                             PRIM_INT__f_s_i_s, PRIM_INT__d_s_i_s, NULL, PRIM_INT__f_s_h_s, NULL, PRIM_INT__g_s_i_s);
722 
723 
724                     ostei_general_vrr_I(5, 0, 7, 0, 5,
725                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
726                             PRIM_INT__g_s_k_s, PRIM_INT__f_s_k_s, NULL, PRIM_INT__g_s_i_s, NULL, PRIM_INT__h_s_k_s);
727 
728 
729 
730                     // Forming PRIM_INT__p_s_d_s[9 * 18];
731                     for(n = 0; n < 9; ++n)  // loop over orders of auxiliary function
732                     {
733 
734                         PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 0]);
735                         PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__s_s_d_s[(n+1) * 6 + 0], PRIM_INT__p_s_d_s[n * 18 + 0]);
736                         PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_FMADD( vrr_const_2_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__p_s_d_s[n * 18 + 0]);
737 
738                         PRIM_INT__p_s_d_s[n * 18 + 1] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 1]);
739                         PRIM_INT__p_s_d_s[n * 18 + 1] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__s_s_d_s[(n+1) * 6 + 1], PRIM_INT__p_s_d_s[n * 18 + 1]);
740                         PRIM_INT__p_s_d_s[n * 18 + 1] = 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 + 1]);
741 
742                         PRIM_INT__p_s_d_s[n * 18 + 2] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 2]);
743                         PRIM_INT__p_s_d_s[n * 18 + 2] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__s_s_d_s[(n+1) * 6 + 2], PRIM_INT__p_s_d_s[n * 18 + 2]);
744                         PRIM_INT__p_s_d_s[n * 18 + 2] = 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 + 2]);
745 
746                         PRIM_INT__p_s_d_s[n * 18 + 3] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 3]);
747                         PRIM_INT__p_s_d_s[n * 18 + 3] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__s_s_d_s[(n+1) * 6 + 3], PRIM_INT__p_s_d_s[n * 18 + 3]);
748 
749                         PRIM_INT__p_s_d_s[n * 18 + 4] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 4]);
750                         PRIM_INT__p_s_d_s[n * 18 + 4] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__s_s_d_s[(n+1) * 6 + 4], PRIM_INT__p_s_d_s[n * 18 + 4]);
751 
752                         PRIM_INT__p_s_d_s[n * 18 + 5] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 5]);
753                         PRIM_INT__p_s_d_s[n * 18 + 5] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__s_s_d_s[(n+1) * 6 + 5], PRIM_INT__p_s_d_s[n * 18 + 5]);
754 
755                         PRIM_INT__p_s_d_s[n * 18 + 6] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 0]);
756                         PRIM_INT__p_s_d_s[n * 18 + 6] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__s_s_d_s[(n+1) * 6 + 0], PRIM_INT__p_s_d_s[n * 18 + 6]);
757 
758                         PRIM_INT__p_s_d_s[n * 18 + 7] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 1]);
759                         PRIM_INT__p_s_d_s[n * 18 + 7] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__s_s_d_s[(n+1) * 6 + 1], PRIM_INT__p_s_d_s[n * 18 + 7]);
760                         PRIM_INT__p_s_d_s[n * 18 + 7] = 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 + 7]);
761 
762                         PRIM_INT__p_s_d_s[n * 18 + 8] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 2]);
763                         PRIM_INT__p_s_d_s[n * 18 + 8] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__s_s_d_s[(n+1) * 6 + 2], PRIM_INT__p_s_d_s[n * 18 + 8]);
764 
765                         PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 3]);
766                         PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__s_s_d_s[(n+1) * 6 + 3], PRIM_INT__p_s_d_s[n * 18 + 9]);
767                         PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_FMADD( vrr_const_2_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__p_s_d_s[n * 18 + 9]);
768 
769                         PRIM_INT__p_s_d_s[n * 18 + 10] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 4]);
770                         PRIM_INT__p_s_d_s[n * 18 + 10] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__s_s_d_s[(n+1) * 6 + 4], PRIM_INT__p_s_d_s[n * 18 + 10]);
771                         PRIM_INT__p_s_d_s[n * 18 + 10] = 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 + 10]);
772 
773                         PRIM_INT__p_s_d_s[n * 18 + 11] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 5]);
774                         PRIM_INT__p_s_d_s[n * 18 + 11] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__s_s_d_s[(n+1) * 6 + 5], PRIM_INT__p_s_d_s[n * 18 + 11]);
775 
776                         PRIM_INT__p_s_d_s[n * 18 + 12] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 0]);
777                         PRIM_INT__p_s_d_s[n * 18 + 12] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__s_s_d_s[(n+1) * 6 + 0], PRIM_INT__p_s_d_s[n * 18 + 12]);
778 
779                         PRIM_INT__p_s_d_s[n * 18 + 13] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 1]);
780                         PRIM_INT__p_s_d_s[n * 18 + 13] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__s_s_d_s[(n+1) * 6 + 1], PRIM_INT__p_s_d_s[n * 18 + 13]);
781 
782                         PRIM_INT__p_s_d_s[n * 18 + 14] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 2]);
783                         PRIM_INT__p_s_d_s[n * 18 + 14] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__s_s_d_s[(n+1) * 6 + 2], PRIM_INT__p_s_d_s[n * 18 + 14]);
784                         PRIM_INT__p_s_d_s[n * 18 + 14] = 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 + 14]);
785 
786                         PRIM_INT__p_s_d_s[n * 18 + 15] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 3]);
787                         PRIM_INT__p_s_d_s[n * 18 + 15] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__s_s_d_s[(n+1) * 6 + 3], PRIM_INT__p_s_d_s[n * 18 + 15]);
788 
789                         PRIM_INT__p_s_d_s[n * 18 + 16] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 4]);
790                         PRIM_INT__p_s_d_s[n * 18 + 16] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__s_s_d_s[(n+1) * 6 + 4], PRIM_INT__p_s_d_s[n * 18 + 16]);
791                         PRIM_INT__p_s_d_s[n * 18 + 16] = 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 + 16]);
792 
793                         PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 5]);
794                         PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__s_s_d_s[(n+1) * 6 + 5], PRIM_INT__p_s_d_s[n * 18 + 17]);
795                         PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_FMADD( vrr_const_2_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 2], PRIM_INT__p_s_d_s[n * 18 + 17]);
796 
797                     }
798 
799 
800                     VRR_I_d_s_f_s(
801                             PRIM_INT__d_s_f_s,
802                             PRIM_INT__p_s_f_s,
803                             PRIM_INT__s_s_f_s,
804                             PRIM_INT__p_s_d_s,
805                             P_PA,
806                             a_over_p,
807                             aop_PQ,
808                             one_over_2p,
809                             one_over_2pq,
810                             8);
811 
812 
813                     ostei_general_vrr_I(3, 0, 4, 0, 7,
814                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
815                             PRIM_INT__d_s_g_s, PRIM_INT__p_s_g_s, NULL, PRIM_INT__d_s_f_s, NULL, PRIM_INT__f_s_g_s);
816 
817 
818                     ostei_general_vrr_I(4, 0, 5, 0, 6,
819                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
820                             PRIM_INT__f_s_h_s, PRIM_INT__d_s_h_s, NULL, PRIM_INT__f_s_g_s, NULL, PRIM_INT__g_s_h_s);
821 
822 
823                     ostei_general_vrr_I(5, 0, 6, 0, 5,
824                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
825                             PRIM_INT__g_s_i_s, PRIM_INT__f_s_i_s, NULL, PRIM_INT__g_s_h_s, NULL, PRIM_INT__h_s_i_s);
826 
827 
828                     ostei_general_vrr_I(6, 0, 7, 0, 4,
829                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
830                             PRIM_INT__h_s_k_s, PRIM_INT__g_s_k_s, NULL, PRIM_INT__h_s_i_s, NULL, PRIM_INT__i_s_k_s);
831 
832 
833                     ostei_general_vrr1_K(8, 15,
834                             one_over_2q, a_over_q, aoq_PQ, Q_PA,
835                             PRIM_INT__s_s_k_s, PRIM_INT__s_s_i_s, PRIM_INT__s_s_l_s);
836 
837 
838                     ostei_general_vrr_I(1, 0, 8, 0, 9,
839                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
840                             PRIM_INT__s_s_l_s, NULL, NULL, PRIM_INT__s_s_k_s, NULL, PRIM_INT__p_s_l_s);
841 
842 
843                     ostei_general_vrr_I(2, 0, 8, 0, 8,
844                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
845                             PRIM_INT__p_s_l_s, PRIM_INT__s_s_l_s, NULL, PRIM_INT__p_s_k_s, NULL, PRIM_INT__d_s_l_s);
846 
847 
848                     ostei_general_vrr_I(3, 0, 8, 0, 7,
849                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
850                             PRIM_INT__d_s_l_s, PRIM_INT__p_s_l_s, NULL, PRIM_INT__d_s_k_s, NULL, PRIM_INT__f_s_l_s);
851 
852 
853                     ostei_general_vrr_I(4, 0, 8, 0, 6,
854                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
855                             PRIM_INT__f_s_l_s, PRIM_INT__d_s_l_s, NULL, PRIM_INT__f_s_k_s, NULL, PRIM_INT__g_s_l_s);
856 
857 
858                     ostei_general_vrr_I(5, 0, 8, 0, 5,
859                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
860                             PRIM_INT__g_s_l_s, PRIM_INT__f_s_l_s, NULL, PRIM_INT__g_s_k_s, NULL, PRIM_INT__h_s_l_s);
861 
862 
863                     ostei_general_vrr_I(6, 0, 8, 0, 4,
864                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
865                             PRIM_INT__h_s_l_s, PRIM_INT__g_s_l_s, NULL, PRIM_INT__h_s_k_s, NULL, PRIM_INT__i_s_l_s);
866 
867 
868 
869                     // Forming PRIM_INT__p_s_p_s[9 * 9];
870                     for(n = 0; n < 9; ++n)  // loop over orders of auxiliary function
871                     {
872 
873                         PRIM_INT__p_s_p_s[n * 9 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_p_s[n * 3 + 0]);
874                         PRIM_INT__p_s_p_s[n * 9 + 0] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__p_s_p_s[n * 9 + 0]);
875                         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]);
876 
877                         PRIM_INT__p_s_p_s[n * 9 + 1] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_p_s[n * 3 + 1]);
878                         PRIM_INT__p_s_p_s[n * 9 + 1] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__p_s_p_s[n * 9 + 1]);
879 
880                         PRIM_INT__p_s_p_s[n * 9 + 2] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_p_s[n * 3 + 2]);
881                         PRIM_INT__p_s_p_s[n * 9 + 2] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__s_s_p_s[(n+1) * 3 + 2], PRIM_INT__p_s_p_s[n * 9 + 2]);
882 
883                         PRIM_INT__p_s_p_s[n * 9 + 3] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_p_s[n * 3 + 0]);
884                         PRIM_INT__p_s_p_s[n * 9 + 3] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__p_s_p_s[n * 9 + 3]);
885 
886                         PRIM_INT__p_s_p_s[n * 9 + 4] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_p_s[n * 3 + 1]);
887                         PRIM_INT__p_s_p_s[n * 9 + 4] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__p_s_p_s[n * 9 + 4]);
888                         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]);
889 
890                         PRIM_INT__p_s_p_s[n * 9 + 5] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_p_s[n * 3 + 2]);
891                         PRIM_INT__p_s_p_s[n * 9 + 5] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__s_s_p_s[(n+1) * 3 + 2], PRIM_INT__p_s_p_s[n * 9 + 5]);
892 
893                         PRIM_INT__p_s_p_s[n * 9 + 6] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_p_s[n * 3 + 0]);
894                         PRIM_INT__p_s_p_s[n * 9 + 6] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__p_s_p_s[n * 9 + 6]);
895 
896                         PRIM_INT__p_s_p_s[n * 9 + 7] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_p_s[n * 3 + 1]);
897                         PRIM_INT__p_s_p_s[n * 9 + 7] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__p_s_p_s[n * 9 + 7]);
898 
899                         PRIM_INT__p_s_p_s[n * 9 + 8] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_p_s[n * 3 + 2]);
900                         PRIM_INT__p_s_p_s[n * 9 + 8] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__s_s_p_s[(n+1) * 3 + 2], PRIM_INT__p_s_p_s[n * 9 + 8]);
901                         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]);
902 
903                     }
904 
905 
906                     VRR_I_d_s_d_s(
907                             PRIM_INT__d_s_d_s,
908                             PRIM_INT__p_s_d_s,
909                             PRIM_INT__s_s_d_s,
910                             PRIM_INT__p_s_p_s,
911                             P_PA,
912                             a_over_p,
913                             aop_PQ,
914                             one_over_2p,
915                             one_over_2pq,
916                             8);
917 
918 
919                     ostei_general_vrr_I(3, 0, 3, 0, 7,
920                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
921                             PRIM_INT__d_s_f_s, PRIM_INT__p_s_f_s, NULL, PRIM_INT__d_s_d_s, NULL, PRIM_INT__f_s_f_s);
922 
923 
924                     ostei_general_vrr_I(4, 0, 4, 0, 6,
925                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
926                             PRIM_INT__f_s_g_s, PRIM_INT__d_s_g_s, NULL, PRIM_INT__f_s_f_s, NULL, PRIM_INT__g_s_g_s);
927 
928 
929                     ostei_general_vrr_I(5, 0, 5, 0, 5,
930                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
931                             PRIM_INT__g_s_h_s, PRIM_INT__f_s_h_s, NULL, PRIM_INT__g_s_g_s, NULL, PRIM_INT__h_s_h_s);
932 
933 
934                     ostei_general_vrr_I(6, 0, 6, 0, 4,
935                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
936                             PRIM_INT__h_s_i_s, PRIM_INT__g_s_i_s, NULL, PRIM_INT__h_s_h_s, NULL, PRIM_INT__i_s_i_s);
937 
938 
939                     ostei_general_vrr_I(7, 0, 7, 0, 3,
940                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
941                             PRIM_INT__i_s_k_s, PRIM_INT__h_s_k_s, NULL, PRIM_INT__i_s_i_s, NULL, PRIM_INT__k_s_k_s);
942 
943 
944                     ostei_general_vrr1_K(9, 14,
945                             one_over_2q, a_over_q, aoq_PQ, Q_PA,
946                             PRIM_INT__s_s_l_s, PRIM_INT__s_s_k_s, PRIM_INT__s_s_m_s);
947 
948 
949                     ostei_general_vrr_I(1, 0, 9, 0, 9,
950                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
951                             PRIM_INT__s_s_m_s, NULL, NULL, PRIM_INT__s_s_l_s, NULL, PRIM_INT__p_s_m_s);
952 
953 
954                     ostei_general_vrr_I(2, 0, 9, 0, 8,
955                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
956                             PRIM_INT__p_s_m_s, PRIM_INT__s_s_m_s, NULL, PRIM_INT__p_s_l_s, NULL, PRIM_INT__d_s_m_s);
957 
958 
959                     ostei_general_vrr_I(3, 0, 9, 0, 7,
960                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
961                             PRIM_INT__d_s_m_s, PRIM_INT__p_s_m_s, NULL, PRIM_INT__d_s_l_s, NULL, PRIM_INT__f_s_m_s);
962 
963 
964                     ostei_general_vrr_I(4, 0, 9, 0, 6,
965                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
966                             PRIM_INT__f_s_m_s, PRIM_INT__d_s_m_s, NULL, PRIM_INT__f_s_l_s, NULL, PRIM_INT__g_s_m_s);
967 
968 
969                     ostei_general_vrr_I(5, 0, 9, 0, 5,
970                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
971                             PRIM_INT__g_s_m_s, PRIM_INT__f_s_m_s, NULL, PRIM_INT__g_s_l_s, NULL, PRIM_INT__h_s_m_s);
972 
973 
974                     ostei_general_vrr_I(6, 0, 9, 0, 4,
975                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
976                             PRIM_INT__h_s_m_s, PRIM_INT__g_s_m_s, NULL, PRIM_INT__h_s_l_s, NULL, PRIM_INT__i_s_m_s);
977 
978 
979                     ostei_general_vrr_I(7, 0, 8, 0, 3,
980                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
981                             PRIM_INT__i_s_l_s, PRIM_INT__h_s_l_s, NULL, PRIM_INT__i_s_k_s, NULL, PRIM_INT__k_s_l_s);
982 
983 
984 
985                     // Forming PRIM_INT__p_s_s_s[9 * 3];
986                     for(n = 0; n < 9; ++n)  // loop over orders of auxiliary function
987                     {
988 
989                         PRIM_INT__p_s_s_s[n * 3 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_s_s[n * 1 + 0]);
990                         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]);
991 
992                         PRIM_INT__p_s_s_s[n * 3 + 1] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_s_s[n * 1 + 0]);
993                         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]);
994 
995                         PRIM_INT__p_s_s_s[n * 3 + 2] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_s_s[n * 1 + 0]);
996                         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]);
997 
998                     }
999 
1000 
1001 
1002                     // Forming PRIM_INT__d_s_p_s[8 * 18];
1003                     for(n = 0; n < 8; ++n)  // loop over orders of auxiliary function
1004                     {
1005 
1006                         PRIM_INT__d_s_p_s[n * 18 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__p_s_p_s[n * 9 + 0]);
1007                         PRIM_INT__d_s_p_s[n * 18 + 0] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__p_s_p_s[(n+1) * 9 + 0], PRIM_INT__d_s_p_s[n * 18 + 0]);
1008                         PRIM_INT__d_s_p_s[n * 18 + 0] = SIMINT_FMADD( vrr_const_1_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__s_s_p_s[n * 3 + 0]), PRIM_INT__d_s_p_s[n * 18 + 0]);
1009                         PRIM_INT__d_s_p_s[n * 18 + 0] = 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 + 0]);
1010 
1011                         PRIM_INT__d_s_p_s[n * 18 + 1] = SIMINT_MUL(P_PA[0], PRIM_INT__p_s_p_s[n * 9 + 1]);
1012                         PRIM_INT__d_s_p_s[n * 18 + 1] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__p_s_p_s[(n+1) * 9 + 1], PRIM_INT__d_s_p_s[n * 18 + 1]);
1013                         PRIM_INT__d_s_p_s[n * 18 + 1] = SIMINT_FMADD( vrr_const_1_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__s_s_p_s[n * 3 + 1]), PRIM_INT__d_s_p_s[n * 18 + 1]);
1014 
1015                         PRIM_INT__d_s_p_s[n * 18 + 2] = SIMINT_MUL(P_PA[0], PRIM_INT__p_s_p_s[n * 9 + 2]);
1016                         PRIM_INT__d_s_p_s[n * 18 + 2] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__p_s_p_s[(n+1) * 9 + 2], PRIM_INT__d_s_p_s[n * 18 + 2]);
1017                         PRIM_INT__d_s_p_s[n * 18 + 2] = SIMINT_FMADD( vrr_const_1_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__s_s_p_s[(n+1) * 3 + 2], PRIM_INT__s_s_p_s[n * 3 + 2]), PRIM_INT__d_s_p_s[n * 18 + 2]);
1018 
1019                         PRIM_INT__d_s_p_s[n * 18 + 9] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_p_s[n * 9 + 3]);
1020                         PRIM_INT__d_s_p_s[n * 18 + 9] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__p_s_p_s[(n+1) * 9 + 3], PRIM_INT__d_s_p_s[n * 18 + 9]);
1021                         PRIM_INT__d_s_p_s[n * 18 + 9] = SIMINT_FMADD( vrr_const_1_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__s_s_p_s[n * 3 + 0]), PRIM_INT__d_s_p_s[n * 18 + 9]);
1022 
1023                         PRIM_INT__d_s_p_s[n * 18 + 10] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_p_s[n * 9 + 4]);
1024                         PRIM_INT__d_s_p_s[n * 18 + 10] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__p_s_p_s[(n+1) * 9 + 4], PRIM_INT__d_s_p_s[n * 18 + 10]);
1025                         PRIM_INT__d_s_p_s[n * 18 + 10] = SIMINT_FMADD( vrr_const_1_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__s_s_p_s[n * 3 + 1]), PRIM_INT__d_s_p_s[n * 18 + 10]);
1026                         PRIM_INT__d_s_p_s[n * 18 + 10] = 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 + 10]);
1027 
1028                         PRIM_INT__d_s_p_s[n * 18 + 11] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_p_s[n * 9 + 5]);
1029                         PRIM_INT__d_s_p_s[n * 18 + 11] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__p_s_p_s[(n+1) * 9 + 5], PRIM_INT__d_s_p_s[n * 18 + 11]);
1030                         PRIM_INT__d_s_p_s[n * 18 + 11] = SIMINT_FMADD( vrr_const_1_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__s_s_p_s[(n+1) * 3 + 2], PRIM_INT__s_s_p_s[n * 3 + 2]), PRIM_INT__d_s_p_s[n * 18 + 11]);
1031 
1032                         PRIM_INT__d_s_p_s[n * 18 + 15] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_p_s[n * 9 + 6]);
1033                         PRIM_INT__d_s_p_s[n * 18 + 15] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__p_s_p_s[(n+1) * 9 + 6], PRIM_INT__d_s_p_s[n * 18 + 15]);
1034                         PRIM_INT__d_s_p_s[n * 18 + 15] = SIMINT_FMADD( vrr_const_1_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__s_s_p_s[n * 3 + 0]), PRIM_INT__d_s_p_s[n * 18 + 15]);
1035 
1036                         PRIM_INT__d_s_p_s[n * 18 + 16] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_p_s[n * 9 + 7]);
1037                         PRIM_INT__d_s_p_s[n * 18 + 16] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__p_s_p_s[(n+1) * 9 + 7], PRIM_INT__d_s_p_s[n * 18 + 16]);
1038                         PRIM_INT__d_s_p_s[n * 18 + 16] = SIMINT_FMADD( vrr_const_1_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__s_s_p_s[n * 3 + 1]), PRIM_INT__d_s_p_s[n * 18 + 16]);
1039 
1040                         PRIM_INT__d_s_p_s[n * 18 + 17] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_p_s[n * 9 + 8]);
1041                         PRIM_INT__d_s_p_s[n * 18 + 17] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__p_s_p_s[(n+1) * 9 + 8], PRIM_INT__d_s_p_s[n * 18 + 17]);
1042                         PRIM_INT__d_s_p_s[n * 18 + 17] = SIMINT_FMADD( vrr_const_1_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__s_s_p_s[(n+1) * 3 + 2], PRIM_INT__s_s_p_s[n * 3 + 2]), PRIM_INT__d_s_p_s[n * 18 + 17]);
1043                         PRIM_INT__d_s_p_s[n * 18 + 17] = 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 + 17]);
1044 
1045                     }
1046 
1047 
1048                     VRR_I_f_s_d_s(
1049                             PRIM_INT__f_s_d_s,
1050                             PRIM_INT__d_s_d_s,
1051                             PRIM_INT__p_s_d_s,
1052                             PRIM_INT__d_s_p_s,
1053                             P_PA,
1054                             a_over_p,
1055                             aop_PQ,
1056                             one_over_2p,
1057                             one_over_2pq,
1058                             7);
1059 
1060 
1061                     ostei_general_vrr_I(4, 0, 3, 0, 6,
1062                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1063                             PRIM_INT__f_s_f_s, PRIM_INT__d_s_f_s, NULL, PRIM_INT__f_s_d_s, NULL, PRIM_INT__g_s_f_s);
1064 
1065 
1066                     ostei_general_vrr_I(5, 0, 4, 0, 5,
1067                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1068                             PRIM_INT__g_s_g_s, PRIM_INT__f_s_g_s, NULL, PRIM_INT__g_s_f_s, NULL, PRIM_INT__h_s_g_s);
1069 
1070 
1071                     ostei_general_vrr_I(6, 0, 5, 0, 4,
1072                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1073                             PRIM_INT__h_s_h_s, PRIM_INT__g_s_h_s, NULL, PRIM_INT__h_s_g_s, NULL, PRIM_INT__i_s_h_s);
1074 
1075 
1076                     ostei_general_vrr_I(7, 0, 6, 0, 3,
1077                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1078                             PRIM_INT__i_s_i_s, PRIM_INT__h_s_i_s, NULL, PRIM_INT__i_s_h_s, NULL, PRIM_INT__k_s_i_s);
1079 
1080 
1081                     ostei_general_vrr_I(8, 0, 7, 0, 2,
1082                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1083                             PRIM_INT__k_s_k_s, PRIM_INT__i_s_k_s, NULL, PRIM_INT__k_s_i_s, NULL, PRIM_INT__l_s_k_s);
1084 
1085 
1086                     ostei_general_vrr1_K(10, 13,
1087                             one_over_2q, a_over_q, aoq_PQ, Q_PA,
1088                             PRIM_INT__s_s_m_s, PRIM_INT__s_s_l_s, PRIM_INT__s_s_n_s);
1089 
1090 
1091                     ostei_general_vrr_I(1, 0, 10, 0, 9,
1092                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1093                             PRIM_INT__s_s_n_s, NULL, NULL, PRIM_INT__s_s_m_s, NULL, PRIM_INT__p_s_n_s);
1094 
1095 
1096                     ostei_general_vrr_I(2, 0, 10, 0, 8,
1097                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1098                             PRIM_INT__p_s_n_s, PRIM_INT__s_s_n_s, NULL, PRIM_INT__p_s_m_s, NULL, PRIM_INT__d_s_n_s);
1099 
1100 
1101                     ostei_general_vrr_I(3, 0, 10, 0, 7,
1102                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1103                             PRIM_INT__d_s_n_s, PRIM_INT__p_s_n_s, NULL, PRIM_INT__d_s_m_s, NULL, PRIM_INT__f_s_n_s);
1104 
1105 
1106                     ostei_general_vrr_I(4, 0, 10, 0, 6,
1107                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1108                             PRIM_INT__f_s_n_s, PRIM_INT__d_s_n_s, NULL, PRIM_INT__f_s_m_s, NULL, PRIM_INT__g_s_n_s);
1109 
1110 
1111                     ostei_general_vrr_I(5, 0, 10, 0, 5,
1112                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1113                             PRIM_INT__g_s_n_s, PRIM_INT__f_s_n_s, NULL, PRIM_INT__g_s_m_s, NULL, PRIM_INT__h_s_n_s);
1114 
1115 
1116                     ostei_general_vrr_I(6, 0, 10, 0, 4,
1117                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1118                             PRIM_INT__h_s_n_s, PRIM_INT__g_s_n_s, NULL, PRIM_INT__h_s_m_s, NULL, PRIM_INT__i_s_n_s);
1119 
1120 
1121                     ostei_general_vrr_I(7, 0, 9, 0, 3,
1122                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1123                             PRIM_INT__i_s_m_s, PRIM_INT__h_s_m_s, NULL, PRIM_INT__i_s_l_s, NULL, PRIM_INT__k_s_m_s);
1124 
1125 
1126                     ostei_general_vrr_I(8, 0, 8, 0, 2,
1127                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1128                             PRIM_INT__k_s_l_s, PRIM_INT__i_s_l_s, NULL, PRIM_INT__k_s_k_s, NULL, PRIM_INT__l_s_l_s);
1129 
1130 
1131 
1132                     // Forming PRIM_INT__d_s_s_s[8 * 6];
1133                     for(n = 0; n < 8; ++n)  // loop over orders of auxiliary function
1134                     {
1135 
1136                         PRIM_INT__d_s_s_s[n * 6 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__p_s_s_s[n * 3 + 0]);
1137                         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]);
1138                         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]);
1139 
1140                         PRIM_INT__d_s_s_s[n * 6 + 3] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_s_s[n * 3 + 1]);
1141                         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]);
1142                         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]);
1143 
1144                         PRIM_INT__d_s_s_s[n * 6 + 5] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_s_s[n * 3 + 2]);
1145                         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]);
1146                         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]);
1147 
1148                     }
1149 
1150 
1151                     VRR_I_f_s_p_s(
1152                             PRIM_INT__f_s_p_s,
1153                             PRIM_INT__d_s_p_s,
1154                             PRIM_INT__p_s_p_s,
1155                             PRIM_INT__d_s_s_s,
1156                             P_PA,
1157                             a_over_p,
1158                             aop_PQ,
1159                             one_over_2p,
1160                             one_over_2pq,
1161                             7);
1162 
1163 
1164                     ostei_general_vrr_I(4, 0, 2, 0, 6,
1165                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1166                             PRIM_INT__f_s_d_s, PRIM_INT__d_s_d_s, NULL, PRIM_INT__f_s_p_s, NULL, PRIM_INT__g_s_d_s);
1167 
1168 
1169                     ostei_general_vrr_I(5, 0, 3, 0, 5,
1170                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1171                             PRIM_INT__g_s_f_s, PRIM_INT__f_s_f_s, NULL, PRIM_INT__g_s_d_s, NULL, PRIM_INT__h_s_f_s);
1172 
1173 
1174                     ostei_general_vrr_I(6, 0, 4, 0, 4,
1175                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1176                             PRIM_INT__h_s_g_s, PRIM_INT__g_s_g_s, NULL, PRIM_INT__h_s_f_s, NULL, PRIM_INT__i_s_g_s);
1177 
1178 
1179                     ostei_general_vrr_I(7, 0, 5, 0, 3,
1180                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1181                             PRIM_INT__i_s_h_s, PRIM_INT__h_s_h_s, NULL, PRIM_INT__i_s_g_s, NULL, PRIM_INT__k_s_h_s);
1182 
1183 
1184                     ostei_general_vrr_I(8, 0, 6, 0, 2,
1185                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1186                             PRIM_INT__k_s_i_s, PRIM_INT__i_s_i_s, NULL, PRIM_INT__k_s_h_s, NULL, PRIM_INT__l_s_i_s);
1187 
1188 
1189                     ostei_general_vrr_I(9, 0, 7, 0, 1,
1190                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1191                             PRIM_INT__l_s_k_s, PRIM_INT__k_s_k_s, NULL, PRIM_INT__l_s_i_s, NULL, PRIM_INT__m_s_k_s);
1192 
1193 
1194                     ostei_general_vrr1_K(11, 12,
1195                             one_over_2q, a_over_q, aoq_PQ, Q_PA,
1196                             PRIM_INT__s_s_n_s, PRIM_INT__s_s_m_s, PRIM_INT__s_s_o_s);
1197 
1198 
1199                     ostei_general_vrr_I(1, 0, 11, 0, 9,
1200                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1201                             PRIM_INT__s_s_o_s, NULL, NULL, PRIM_INT__s_s_n_s, NULL, PRIM_INT__p_s_o_s);
1202 
1203 
1204                     ostei_general_vrr_I(2, 0, 11, 0, 8,
1205                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1206                             PRIM_INT__p_s_o_s, PRIM_INT__s_s_o_s, NULL, PRIM_INT__p_s_n_s, NULL, PRIM_INT__d_s_o_s);
1207 
1208 
1209                     ostei_general_vrr_I(3, 0, 11, 0, 7,
1210                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1211                             PRIM_INT__d_s_o_s, PRIM_INT__p_s_o_s, NULL, PRIM_INT__d_s_n_s, NULL, PRIM_INT__f_s_o_s);
1212 
1213 
1214                     ostei_general_vrr_I(4, 0, 11, 0, 6,
1215                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1216                             PRIM_INT__f_s_o_s, PRIM_INT__d_s_o_s, NULL, PRIM_INT__f_s_n_s, NULL, PRIM_INT__g_s_o_s);
1217 
1218 
1219                     ostei_general_vrr_I(5, 0, 11, 0, 5,
1220                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1221                             PRIM_INT__g_s_o_s, PRIM_INT__f_s_o_s, NULL, PRIM_INT__g_s_n_s, NULL, PRIM_INT__h_s_o_s);
1222 
1223 
1224                     ostei_general_vrr_I(6, 0, 11, 0, 4,
1225                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1226                             PRIM_INT__h_s_o_s, PRIM_INT__g_s_o_s, NULL, PRIM_INT__h_s_n_s, NULL, PRIM_INT__i_s_o_s);
1227 
1228 
1229                     ostei_general_vrr_I(7, 0, 10, 0, 3,
1230                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1231                             PRIM_INT__i_s_n_s, PRIM_INT__h_s_n_s, NULL, PRIM_INT__i_s_m_s, NULL, PRIM_INT__k_s_n_s);
1232 
1233 
1234                     ostei_general_vrr_I(8, 0, 9, 0, 2,
1235                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1236                             PRIM_INT__k_s_m_s, PRIM_INT__i_s_m_s, NULL, PRIM_INT__k_s_l_s, NULL, PRIM_INT__l_s_m_s);
1237 
1238 
1239                     ostei_general_vrr_I(9, 0, 8, 0, 1,
1240                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1241                             PRIM_INT__l_s_l_s, PRIM_INT__k_s_l_s, NULL, PRIM_INT__l_s_k_s, NULL, PRIM_INT__m_s_l_s);
1242 
1243 
1244                     ostei_general_vrr1_K(12, 11,
1245                             one_over_2q, a_over_q, aoq_PQ, Q_PA,
1246                             PRIM_INT__s_s_o_s, PRIM_INT__s_s_n_s, PRIM_INT__s_s_q_s);
1247 
1248 
1249                     ostei_general_vrr_I(1, 0, 12, 0, 9,
1250                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1251                             PRIM_INT__s_s_q_s, NULL, NULL, PRIM_INT__s_s_o_s, NULL, PRIM_INT__p_s_q_s);
1252 
1253 
1254                     ostei_general_vrr_I(2, 0, 12, 0, 8,
1255                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1256                             PRIM_INT__p_s_q_s, PRIM_INT__s_s_q_s, NULL, PRIM_INT__p_s_o_s, NULL, PRIM_INT__d_s_q_s);
1257 
1258 
1259                     ostei_general_vrr_I(3, 0, 12, 0, 7,
1260                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1261                             PRIM_INT__d_s_q_s, PRIM_INT__p_s_q_s, NULL, PRIM_INT__d_s_o_s, NULL, PRIM_INT__f_s_q_s);
1262 
1263 
1264                     ostei_general_vrr_I(4, 0, 12, 0, 6,
1265                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1266                             PRIM_INT__f_s_q_s, PRIM_INT__d_s_q_s, NULL, PRIM_INT__f_s_o_s, NULL, PRIM_INT__g_s_q_s);
1267 
1268 
1269                     ostei_general_vrr_I(5, 0, 12, 0, 5,
1270                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1271                             PRIM_INT__g_s_q_s, PRIM_INT__f_s_q_s, NULL, PRIM_INT__g_s_o_s, NULL, PRIM_INT__h_s_q_s);
1272 
1273 
1274                     ostei_general_vrr_I(6, 0, 12, 0, 4,
1275                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1276                             PRIM_INT__h_s_q_s, PRIM_INT__g_s_q_s, NULL, PRIM_INT__h_s_o_s, NULL, PRIM_INT__i_s_q_s);
1277 
1278 
1279                     ostei_general_vrr_I(7, 0, 11, 0, 3,
1280                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1281                             PRIM_INT__i_s_o_s, PRIM_INT__h_s_o_s, NULL, PRIM_INT__i_s_n_s, NULL, PRIM_INT__k_s_o_s);
1282 
1283 
1284                     ostei_general_vrr_I(8, 0, 10, 0, 2,
1285                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1286                             PRIM_INT__k_s_n_s, PRIM_INT__i_s_n_s, NULL, PRIM_INT__k_s_m_s, NULL, PRIM_INT__l_s_n_s);
1287 
1288 
1289                     ostei_general_vrr_I(9, 0, 9, 0, 1,
1290                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1291                             PRIM_INT__l_s_m_s, PRIM_INT__k_s_m_s, NULL, PRIM_INT__l_s_l_s, NULL, PRIM_INT__m_s_m_s);
1292 
1293 
1294                     ostei_general_vrr1_K(13, 10,
1295                             one_over_2q, a_over_q, aoq_PQ, Q_PA,
1296                             PRIM_INT__s_s_q_s, PRIM_INT__s_s_o_s, PRIM_INT__s_s_r_s);
1297 
1298 
1299                     ostei_general_vrr_I(1, 0, 13, 0, 9,
1300                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1301                             PRIM_INT__s_s_r_s, NULL, NULL, PRIM_INT__s_s_q_s, NULL, PRIM_INT__p_s_r_s);
1302 
1303 
1304                     ostei_general_vrr_I(2, 0, 13, 0, 8,
1305                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1306                             PRIM_INT__p_s_r_s, PRIM_INT__s_s_r_s, NULL, PRIM_INT__p_s_q_s, NULL, PRIM_INT__d_s_r_s);
1307 
1308 
1309                     ostei_general_vrr_I(3, 0, 13, 0, 7,
1310                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1311                             PRIM_INT__d_s_r_s, PRIM_INT__p_s_r_s, NULL, PRIM_INT__d_s_q_s, NULL, PRIM_INT__f_s_r_s);
1312 
1313 
1314                     ostei_general_vrr_I(4, 0, 13, 0, 6,
1315                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1316                             PRIM_INT__f_s_r_s, PRIM_INT__d_s_r_s, NULL, PRIM_INT__f_s_q_s, NULL, PRIM_INT__g_s_r_s);
1317 
1318 
1319                     ostei_general_vrr_I(5, 0, 13, 0, 5,
1320                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1321                             PRIM_INT__g_s_r_s, PRIM_INT__f_s_r_s, NULL, PRIM_INT__g_s_q_s, NULL, PRIM_INT__h_s_r_s);
1322 
1323 
1324                     ostei_general_vrr_I(6, 0, 13, 0, 4,
1325                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1326                             PRIM_INT__h_s_r_s, PRIM_INT__g_s_r_s, NULL, PRIM_INT__h_s_q_s, NULL, PRIM_INT__i_s_r_s);
1327 
1328 
1329                     ostei_general_vrr_I(7, 0, 12, 0, 3,
1330                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1331                             PRIM_INT__i_s_q_s, PRIM_INT__h_s_q_s, NULL, PRIM_INT__i_s_o_s, NULL, PRIM_INT__k_s_q_s);
1332 
1333 
1334                     ostei_general_vrr_I(8, 0, 11, 0, 2,
1335                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1336                             PRIM_INT__k_s_o_s, PRIM_INT__i_s_o_s, NULL, PRIM_INT__k_s_n_s, NULL, PRIM_INT__l_s_o_s);
1337 
1338 
1339                     ostei_general_vrr_I(9, 0, 10, 0, 1,
1340                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1341                             PRIM_INT__l_s_n_s, PRIM_INT__k_s_n_s, NULL, PRIM_INT__l_s_m_s, NULL, PRIM_INT__m_s_n_s);
1342 
1343 
1344                     ostei_general_vrr_I(7, 0, 13, 0, 3,
1345                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1346                             PRIM_INT__i_s_r_s, PRIM_INT__h_s_r_s, NULL, PRIM_INT__i_s_q_s, NULL, PRIM_INT__k_s_r_s);
1347 
1348 
1349                     ostei_general_vrr_I(8, 0, 12, 0, 2,
1350                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1351                             PRIM_INT__k_s_q_s, PRIM_INT__i_s_q_s, NULL, PRIM_INT__k_s_o_s, NULL, PRIM_INT__l_s_q_s);
1352 
1353 
1354                     ostei_general_vrr_I(9, 0, 11, 0, 1,
1355                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1356                             PRIM_INT__l_s_o_s, PRIM_INT__k_s_o_s, NULL, PRIM_INT__l_s_n_s, NULL, PRIM_INT__m_s_o_s);
1357 
1358 
1359                     ostei_general_vrr_I(8, 0, 13, 0, 2,
1360                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1361                             PRIM_INT__k_s_r_s, PRIM_INT__i_s_r_s, NULL, PRIM_INT__k_s_q_s, NULL, PRIM_INT__l_s_r_s);
1362 
1363 
1364                     ostei_general_vrr_I(9, 0, 12, 0, 1,
1365                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1366                             PRIM_INT__l_s_q_s, PRIM_INT__k_s_q_s, NULL, PRIM_INT__l_s_o_s, NULL, PRIM_INT__m_s_q_s);
1367 
1368 
1369                     ostei_general_vrr_I(9, 0, 13, 0, 1,
1370                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1371                             PRIM_INT__l_s_r_s, PRIM_INT__k_s_r_s, NULL, PRIM_INT__l_s_q_s, NULL, PRIM_INT__m_s_r_s);
1372 
1373 
1374 
1375 
1376                     ////////////////////////////////////
1377                     // Accumulate contracted integrals
1378                     ////////////////////////////////////
1379                     if(lastoffset == 0)
1380                     {
1381                         contract_all(1008, PRIM_INT__i_s_k_s, PRIM_PTR_INT__i_s_k_s);
1382                         contract_all(1260, PRIM_INT__i_s_l_s, PRIM_PTR_INT__i_s_l_s);
1383                         contract_all(1540, PRIM_INT__i_s_m_s, PRIM_PTR_INT__i_s_m_s);
1384                         contract_all(1848, PRIM_INT__i_s_n_s, PRIM_PTR_INT__i_s_n_s);
1385                         contract_all(2184, PRIM_INT__i_s_o_s, PRIM_PTR_INT__i_s_o_s);
1386                         contract_all(2548, PRIM_INT__i_s_q_s, PRIM_PTR_INT__i_s_q_s);
1387                         contract_all(2940, PRIM_INT__i_s_r_s, PRIM_PTR_INT__i_s_r_s);
1388                         contract_all(1296, PRIM_INT__k_s_k_s, PRIM_PTR_INT__k_s_k_s);
1389                         contract_all(1620, PRIM_INT__k_s_l_s, PRIM_PTR_INT__k_s_l_s);
1390                         contract_all(1980, PRIM_INT__k_s_m_s, PRIM_PTR_INT__k_s_m_s);
1391                         contract_all(2376, PRIM_INT__k_s_n_s, PRIM_PTR_INT__k_s_n_s);
1392                         contract_all(2808, PRIM_INT__k_s_o_s, PRIM_PTR_INT__k_s_o_s);
1393                         contract_all(3276, PRIM_INT__k_s_q_s, PRIM_PTR_INT__k_s_q_s);
1394                         contract_all(3780, PRIM_INT__k_s_r_s, PRIM_PTR_INT__k_s_r_s);
1395                         contract_all(1620, PRIM_INT__l_s_k_s, PRIM_PTR_INT__l_s_k_s);
1396                         contract_all(2025, PRIM_INT__l_s_l_s, PRIM_PTR_INT__l_s_l_s);
1397                         contract_all(2475, PRIM_INT__l_s_m_s, PRIM_PTR_INT__l_s_m_s);
1398                         contract_all(2970, PRIM_INT__l_s_n_s, PRIM_PTR_INT__l_s_n_s);
1399                         contract_all(3510, PRIM_INT__l_s_o_s, PRIM_PTR_INT__l_s_o_s);
1400                         contract_all(4095, PRIM_INT__l_s_q_s, PRIM_PTR_INT__l_s_q_s);
1401                         contract_all(4725, PRIM_INT__l_s_r_s, PRIM_PTR_INT__l_s_r_s);
1402                         contract_all(1980, PRIM_INT__m_s_k_s, PRIM_PTR_INT__m_s_k_s);
1403                         contract_all(2475, PRIM_INT__m_s_l_s, PRIM_PTR_INT__m_s_l_s);
1404                         contract_all(3025, PRIM_INT__m_s_m_s, PRIM_PTR_INT__m_s_m_s);
1405                         contract_all(3630, PRIM_INT__m_s_n_s, PRIM_PTR_INT__m_s_n_s);
1406                         contract_all(4290, PRIM_INT__m_s_o_s, PRIM_PTR_INT__m_s_o_s);
1407                         contract_all(5005, PRIM_INT__m_s_q_s, PRIM_PTR_INT__m_s_q_s);
1408                         contract_all(5775, PRIM_INT__m_s_r_s, PRIM_PTR_INT__m_s_r_s);
1409                     }
1410                     else
1411                     {
1412                         contract(1008, shelloffsets, PRIM_INT__i_s_k_s, PRIM_PTR_INT__i_s_k_s);
1413                         contract(1260, shelloffsets, PRIM_INT__i_s_l_s, PRIM_PTR_INT__i_s_l_s);
1414                         contract(1540, shelloffsets, PRIM_INT__i_s_m_s, PRIM_PTR_INT__i_s_m_s);
1415                         contract(1848, shelloffsets, PRIM_INT__i_s_n_s, PRIM_PTR_INT__i_s_n_s);
1416                         contract(2184, shelloffsets, PRIM_INT__i_s_o_s, PRIM_PTR_INT__i_s_o_s);
1417                         contract(2548, shelloffsets, PRIM_INT__i_s_q_s, PRIM_PTR_INT__i_s_q_s);
1418                         contract(2940, shelloffsets, PRIM_INT__i_s_r_s, PRIM_PTR_INT__i_s_r_s);
1419                         contract(1296, shelloffsets, PRIM_INT__k_s_k_s, PRIM_PTR_INT__k_s_k_s);
1420                         contract(1620, shelloffsets, PRIM_INT__k_s_l_s, PRIM_PTR_INT__k_s_l_s);
1421                         contract(1980, shelloffsets, PRIM_INT__k_s_m_s, PRIM_PTR_INT__k_s_m_s);
1422                         contract(2376, shelloffsets, PRIM_INT__k_s_n_s, PRIM_PTR_INT__k_s_n_s);
1423                         contract(2808, shelloffsets, PRIM_INT__k_s_o_s, PRIM_PTR_INT__k_s_o_s);
1424                         contract(3276, shelloffsets, PRIM_INT__k_s_q_s, PRIM_PTR_INT__k_s_q_s);
1425                         contract(3780, shelloffsets, PRIM_INT__k_s_r_s, PRIM_PTR_INT__k_s_r_s);
1426                         contract(1620, shelloffsets, PRIM_INT__l_s_k_s, PRIM_PTR_INT__l_s_k_s);
1427                         contract(2025, shelloffsets, PRIM_INT__l_s_l_s, PRIM_PTR_INT__l_s_l_s);
1428                         contract(2475, shelloffsets, PRIM_INT__l_s_m_s, PRIM_PTR_INT__l_s_m_s);
1429                         contract(2970, shelloffsets, PRIM_INT__l_s_n_s, PRIM_PTR_INT__l_s_n_s);
1430                         contract(3510, shelloffsets, PRIM_INT__l_s_o_s, PRIM_PTR_INT__l_s_o_s);
1431                         contract(4095, shelloffsets, PRIM_INT__l_s_q_s, PRIM_PTR_INT__l_s_q_s);
1432                         contract(4725, shelloffsets, PRIM_INT__l_s_r_s, PRIM_PTR_INT__l_s_r_s);
1433                         contract(1980, shelloffsets, PRIM_INT__m_s_k_s, PRIM_PTR_INT__m_s_k_s);
1434                         contract(2475, shelloffsets, PRIM_INT__m_s_l_s, PRIM_PTR_INT__m_s_l_s);
1435                         contract(3025, shelloffsets, PRIM_INT__m_s_m_s, PRIM_PTR_INT__m_s_m_s);
1436                         contract(3630, shelloffsets, PRIM_INT__m_s_n_s, PRIM_PTR_INT__m_s_n_s);
1437                         contract(4290, shelloffsets, PRIM_INT__m_s_o_s, PRIM_PTR_INT__m_s_o_s);
1438                         contract(5005, shelloffsets, PRIM_INT__m_s_q_s, PRIM_PTR_INT__m_s_q_s);
1439                         contract(5775, shelloffsets, PRIM_INT__m_s_r_s, PRIM_PTR_INT__m_s_r_s);
1440                         PRIM_PTR_INT__i_s_k_s += lastoffset*1008;
1441                         PRIM_PTR_INT__i_s_l_s += lastoffset*1260;
1442                         PRIM_PTR_INT__i_s_m_s += lastoffset*1540;
1443                         PRIM_PTR_INT__i_s_n_s += lastoffset*1848;
1444                         PRIM_PTR_INT__i_s_o_s += lastoffset*2184;
1445                         PRIM_PTR_INT__i_s_q_s += lastoffset*2548;
1446                         PRIM_PTR_INT__i_s_r_s += lastoffset*2940;
1447                         PRIM_PTR_INT__k_s_k_s += lastoffset*1296;
1448                         PRIM_PTR_INT__k_s_l_s += lastoffset*1620;
1449                         PRIM_PTR_INT__k_s_m_s += lastoffset*1980;
1450                         PRIM_PTR_INT__k_s_n_s += lastoffset*2376;
1451                         PRIM_PTR_INT__k_s_o_s += lastoffset*2808;
1452                         PRIM_PTR_INT__k_s_q_s += lastoffset*3276;
1453                         PRIM_PTR_INT__k_s_r_s += lastoffset*3780;
1454                         PRIM_PTR_INT__l_s_k_s += lastoffset*1620;
1455                         PRIM_PTR_INT__l_s_l_s += lastoffset*2025;
1456                         PRIM_PTR_INT__l_s_m_s += lastoffset*2475;
1457                         PRIM_PTR_INT__l_s_n_s += lastoffset*2970;
1458                         PRIM_PTR_INT__l_s_o_s += lastoffset*3510;
1459                         PRIM_PTR_INT__l_s_q_s += lastoffset*4095;
1460                         PRIM_PTR_INT__l_s_r_s += lastoffset*4725;
1461                         PRIM_PTR_INT__m_s_k_s += lastoffset*1980;
1462                         PRIM_PTR_INT__m_s_l_s += lastoffset*2475;
1463                         PRIM_PTR_INT__m_s_m_s += lastoffset*3025;
1464                         PRIM_PTR_INT__m_s_n_s += lastoffset*3630;
1465                         PRIM_PTR_INT__m_s_o_s += lastoffset*4290;
1466                         PRIM_PTR_INT__m_s_q_s += lastoffset*5005;
1467                         PRIM_PTR_INT__m_s_r_s += lastoffset*5775;
1468                     }
1469 
1470                 }  // close loop over j
1471             }  // close loop over i
1472 
1473             //Advance to the next batch
1474             jstart = SIMINT_SIMD_ROUND(jend);
1475 
1476             //////////////////////////////////////////////
1477             // Contracted integrals: Horizontal recurrance
1478             //////////////////////////////////////////////
1479 
1480 
1481             const double hAB[3] = { P.AB_x[ab], P.AB_y[ab], P.AB_z[ab] };
1482 
1483 
1484             for(abcd = 0; abcd < nshellbatch; ++abcd, ++real_abcd)
1485             {
1486                 const double hCD[3] = { Q.AB_x[cd+abcd], Q.AB_y[cd+abcd], Q.AB_z[cd+abcd] };
1487 
1488                 // set up HRR pointers
1489                 double const * restrict HRR_INT__i_s_k_s = INT__i_s_k_s + abcd * 1008;
1490                 double const * restrict HRR_INT__i_s_l_s = INT__i_s_l_s + abcd * 1260;
1491                 double const * restrict HRR_INT__i_s_m_s = INT__i_s_m_s + abcd * 1540;
1492                 double const * restrict HRR_INT__i_s_n_s = INT__i_s_n_s + abcd * 1848;
1493                 double const * restrict HRR_INT__i_s_o_s = INT__i_s_o_s + abcd * 2184;
1494                 double const * restrict HRR_INT__i_s_q_s = INT__i_s_q_s + abcd * 2548;
1495                 double const * restrict HRR_INT__i_s_r_s = INT__i_s_r_s + abcd * 2940;
1496                 double const * restrict HRR_INT__k_s_k_s = INT__k_s_k_s + abcd * 1296;
1497                 double const * restrict HRR_INT__k_s_l_s = INT__k_s_l_s + abcd * 1620;
1498                 double const * restrict HRR_INT__k_s_m_s = INT__k_s_m_s + abcd * 1980;
1499                 double const * restrict HRR_INT__k_s_n_s = INT__k_s_n_s + abcd * 2376;
1500                 double const * restrict HRR_INT__k_s_o_s = INT__k_s_o_s + abcd * 2808;
1501                 double const * restrict HRR_INT__k_s_q_s = INT__k_s_q_s + abcd * 3276;
1502                 double const * restrict HRR_INT__k_s_r_s = INT__k_s_r_s + abcd * 3780;
1503                 double const * restrict HRR_INT__l_s_k_s = INT__l_s_k_s + abcd * 1620;
1504                 double const * restrict HRR_INT__l_s_l_s = INT__l_s_l_s + abcd * 2025;
1505                 double const * restrict HRR_INT__l_s_m_s = INT__l_s_m_s + abcd * 2475;
1506                 double const * restrict HRR_INT__l_s_n_s = INT__l_s_n_s + abcd * 2970;
1507                 double const * restrict HRR_INT__l_s_o_s = INT__l_s_o_s + abcd * 3510;
1508                 double const * restrict HRR_INT__l_s_q_s = INT__l_s_q_s + abcd * 4095;
1509                 double const * restrict HRR_INT__l_s_r_s = INT__l_s_r_s + abcd * 4725;
1510                 double const * restrict HRR_INT__m_s_k_s = INT__m_s_k_s + abcd * 1980;
1511                 double const * restrict HRR_INT__m_s_l_s = INT__m_s_l_s + abcd * 2475;
1512                 double const * restrict HRR_INT__m_s_m_s = INT__m_s_m_s + abcd * 3025;
1513                 double const * restrict HRR_INT__m_s_n_s = INT__m_s_n_s + abcd * 3630;
1514                 double const * restrict HRR_INT__m_s_o_s = INT__m_s_o_s + abcd * 4290;
1515                 double const * restrict HRR_INT__m_s_q_s = INT__m_s_q_s + abcd * 5005;
1516                 double const * restrict HRR_INT__m_s_r_s = INT__m_s_r_s + abcd * 5775;
1517                 double * restrict HRR_INT__i_f_k_i = INT__i_f_k_i + real_abcd * 282240;
1518 
1519                 // form INT__i_p_k_s
1520                 ostei_general_hrr_J(6, 1, 7, 0, hAB, HRR_INT__k_s_k_s, HRR_INT__i_s_k_s, HRR_INT__i_p_k_s);
1521 
1522                 // form INT__i_p_l_s
1523                 ostei_general_hrr_J(6, 1, 8, 0, hAB, HRR_INT__k_s_l_s, HRR_INT__i_s_l_s, HRR_INT__i_p_l_s);
1524 
1525                 // form INT__i_p_m_s
1526                 ostei_general_hrr_J(6, 1, 9, 0, hAB, HRR_INT__k_s_m_s, HRR_INT__i_s_m_s, HRR_INT__i_p_m_s);
1527 
1528                 // form INT__i_p_n_s
1529                 ostei_general_hrr_J(6, 1, 10, 0, hAB, HRR_INT__k_s_n_s, HRR_INT__i_s_n_s, HRR_INT__i_p_n_s);
1530 
1531                 // form INT__i_p_o_s
1532                 ostei_general_hrr_J(6, 1, 11, 0, hAB, HRR_INT__k_s_o_s, HRR_INT__i_s_o_s, HRR_INT__i_p_o_s);
1533 
1534                 // form INT__i_p_q_s
1535                 ostei_general_hrr_J(6, 1, 12, 0, hAB, HRR_INT__k_s_q_s, HRR_INT__i_s_q_s, HRR_INT__i_p_q_s);
1536 
1537                 // form INT__i_p_r_s
1538                 ostei_general_hrr_J(6, 1, 13, 0, hAB, HRR_INT__k_s_r_s, HRR_INT__i_s_r_s, HRR_INT__i_p_r_s);
1539 
1540                 // form INT__k_p_k_s
1541                 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);
1542 
1543                 // form INT__k_p_l_s
1544                 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);
1545 
1546                 // form INT__k_p_m_s
1547                 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);
1548 
1549                 // form INT__k_p_n_s
1550                 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);
1551 
1552                 // form INT__k_p_o_s
1553                 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);
1554 
1555                 // form INT__k_p_q_s
1556                 ostei_general_hrr_J(7, 1, 12, 0, hAB, HRR_INT__l_s_q_s, HRR_INT__k_s_q_s, HRR_INT__k_p_q_s);
1557 
1558                 // form INT__k_p_r_s
1559                 ostei_general_hrr_J(7, 1, 13, 0, hAB, HRR_INT__l_s_r_s, HRR_INT__k_s_r_s, HRR_INT__k_p_r_s);
1560 
1561                 // form INT__l_p_k_s
1562                 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);
1563 
1564                 // form INT__l_p_l_s
1565                 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);
1566 
1567                 // form INT__l_p_m_s
1568                 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);
1569 
1570                 // form INT__l_p_n_s
1571                 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);
1572 
1573                 // form INT__l_p_o_s
1574                 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);
1575 
1576                 // form INT__l_p_q_s
1577                 ostei_general_hrr_J(8, 1, 12, 0, hAB, HRR_INT__m_s_q_s, HRR_INT__l_s_q_s, HRR_INT__l_p_q_s);
1578 
1579                 // form INT__l_p_r_s
1580                 ostei_general_hrr_J(8, 1, 13, 0, hAB, HRR_INT__m_s_r_s, HRR_INT__l_s_r_s, HRR_INT__l_p_r_s);
1581 
1582                 // form INT__i_d_k_s
1583                 ostei_general_hrr_J(6, 2, 7, 0, hAB, HRR_INT__k_p_k_s, HRR_INT__i_p_k_s, HRR_INT__i_d_k_s);
1584 
1585                 // form INT__i_d_l_s
1586                 ostei_general_hrr_J(6, 2, 8, 0, hAB, HRR_INT__k_p_l_s, HRR_INT__i_p_l_s, HRR_INT__i_d_l_s);
1587 
1588                 // form INT__i_d_m_s
1589                 ostei_general_hrr_J(6, 2, 9, 0, hAB, HRR_INT__k_p_m_s, HRR_INT__i_p_m_s, HRR_INT__i_d_m_s);
1590 
1591                 // form INT__i_d_n_s
1592                 ostei_general_hrr_J(6, 2, 10, 0, hAB, HRR_INT__k_p_n_s, HRR_INT__i_p_n_s, HRR_INT__i_d_n_s);
1593 
1594                 // form INT__i_d_o_s
1595                 ostei_general_hrr_J(6, 2, 11, 0, hAB, HRR_INT__k_p_o_s, HRR_INT__i_p_o_s, HRR_INT__i_d_o_s);
1596 
1597                 // form INT__i_d_q_s
1598                 ostei_general_hrr_J(6, 2, 12, 0, hAB, HRR_INT__k_p_q_s, HRR_INT__i_p_q_s, HRR_INT__i_d_q_s);
1599 
1600                 // form INT__i_d_r_s
1601                 ostei_general_hrr_J(6, 2, 13, 0, hAB, HRR_INT__k_p_r_s, HRR_INT__i_p_r_s, HRR_INT__i_d_r_s);
1602 
1603                 // form INT__k_d_k_s
1604                 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);
1605 
1606                 // form INT__k_d_l_s
1607                 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);
1608 
1609                 // form INT__k_d_m_s
1610                 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);
1611 
1612                 // form INT__k_d_n_s
1613                 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);
1614 
1615                 // form INT__k_d_o_s
1616                 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);
1617 
1618                 // form INT__k_d_q_s
1619                 ostei_general_hrr_J(7, 2, 12, 0, hAB, HRR_INT__l_p_q_s, HRR_INT__k_p_q_s, HRR_INT__k_d_q_s);
1620 
1621                 // form INT__k_d_r_s
1622                 ostei_general_hrr_J(7, 2, 13, 0, hAB, HRR_INT__l_p_r_s, HRR_INT__k_p_r_s, HRR_INT__k_d_r_s);
1623 
1624                 // form INT__i_f_k_s
1625                 ostei_general_hrr_J(6, 3, 7, 0, hAB, HRR_INT__k_d_k_s, HRR_INT__i_d_k_s, HRR_INT__i_f_k_s);
1626 
1627                 // form INT__i_f_l_s
1628                 ostei_general_hrr_J(6, 3, 8, 0, hAB, HRR_INT__k_d_l_s, HRR_INT__i_d_l_s, HRR_INT__i_f_l_s);
1629 
1630                 // form INT__i_f_m_s
1631                 ostei_general_hrr_J(6, 3, 9, 0, hAB, HRR_INT__k_d_m_s, HRR_INT__i_d_m_s, HRR_INT__i_f_m_s);
1632 
1633                 // form INT__i_f_n_s
1634                 ostei_general_hrr_J(6, 3, 10, 0, hAB, HRR_INT__k_d_n_s, HRR_INT__i_d_n_s, HRR_INT__i_f_n_s);
1635 
1636                 // form INT__i_f_o_s
1637                 ostei_general_hrr_J(6, 3, 11, 0, hAB, HRR_INT__k_d_o_s, HRR_INT__i_d_o_s, HRR_INT__i_f_o_s);
1638 
1639                 // form INT__i_f_q_s
1640                 ostei_general_hrr_J(6, 3, 12, 0, hAB, HRR_INT__k_d_q_s, HRR_INT__i_d_q_s, HRR_INT__i_f_q_s);
1641 
1642                 // form INT__i_f_r_s
1643                 ostei_general_hrr_J(6, 3, 13, 0, hAB, HRR_INT__k_d_r_s, HRR_INT__i_d_r_s, HRR_INT__i_f_r_s);
1644 
1645                 // form INT__i_f_k_p
1646                 ostei_general_hrr_L(6, 3, 7, 1, hCD, HRR_INT__i_f_l_s, HRR_INT__i_f_k_s, HRR_INT__i_f_k_p);
1647 
1648                 // form INT__i_f_l_p
1649                 ostei_general_hrr_L(6, 3, 8, 1, hCD, HRR_INT__i_f_m_s, HRR_INT__i_f_l_s, HRR_INT__i_f_l_p);
1650 
1651                 // form INT__i_f_m_p
1652                 ostei_general_hrr_L(6, 3, 9, 1, hCD, HRR_INT__i_f_n_s, HRR_INT__i_f_m_s, HRR_INT__i_f_m_p);
1653 
1654                 // form INT__i_f_n_p
1655                 ostei_general_hrr_L(6, 3, 10, 1, hCD, HRR_INT__i_f_o_s, HRR_INT__i_f_n_s, HRR_INT__i_f_n_p);
1656 
1657                 // form INT__i_f_o_p
1658                 ostei_general_hrr_L(6, 3, 11, 1, hCD, HRR_INT__i_f_q_s, HRR_INT__i_f_o_s, HRR_INT__i_f_o_p);
1659 
1660                 // form INT__i_f_q_p
1661                 ostei_general_hrr_L(6, 3, 12, 1, hCD, HRR_INT__i_f_r_s, HRR_INT__i_f_q_s, HRR_INT__i_f_q_p);
1662 
1663                 // form INT__i_f_k_d
1664                 ostei_general_hrr_L(6, 3, 7, 2, hCD, HRR_INT__i_f_l_p, HRR_INT__i_f_k_p, HRR_INT__i_f_k_d);
1665 
1666                 // form INT__i_f_l_d
1667                 ostei_general_hrr_L(6, 3, 8, 2, hCD, HRR_INT__i_f_m_p, HRR_INT__i_f_l_p, HRR_INT__i_f_l_d);
1668 
1669                 // form INT__i_f_m_d
1670                 ostei_general_hrr_L(6, 3, 9, 2, hCD, HRR_INT__i_f_n_p, HRR_INT__i_f_m_p, HRR_INT__i_f_m_d);
1671 
1672                 // form INT__i_f_n_d
1673                 ostei_general_hrr_L(6, 3, 10, 2, hCD, HRR_INT__i_f_o_p, HRR_INT__i_f_n_p, HRR_INT__i_f_n_d);
1674 
1675                 // form INT__i_f_o_d
1676                 ostei_general_hrr_L(6, 3, 11, 2, hCD, HRR_INT__i_f_q_p, HRR_INT__i_f_o_p, HRR_INT__i_f_o_d);
1677 
1678                 // form INT__i_f_k_f
1679                 ostei_general_hrr_L(6, 3, 7, 3, hCD, HRR_INT__i_f_l_d, HRR_INT__i_f_k_d, HRR_INT__i_f_k_f);
1680 
1681                 // form INT__i_f_l_f
1682                 ostei_general_hrr_L(6, 3, 8, 3, hCD, HRR_INT__i_f_m_d, HRR_INT__i_f_l_d, HRR_INT__i_f_l_f);
1683 
1684                 // form INT__i_f_m_f
1685                 ostei_general_hrr_L(6, 3, 9, 3, hCD, HRR_INT__i_f_n_d, HRR_INT__i_f_m_d, HRR_INT__i_f_m_f);
1686 
1687                 // form INT__i_f_n_f
1688                 ostei_general_hrr_L(6, 3, 10, 3, hCD, HRR_INT__i_f_o_d, HRR_INT__i_f_n_d, HRR_INT__i_f_n_f);
1689 
1690                 // form INT__i_f_k_g
1691                 ostei_general_hrr_L(6, 3, 7, 4, hCD, HRR_INT__i_f_l_f, HRR_INT__i_f_k_f, HRR_INT__i_f_k_g);
1692 
1693                 // form INT__i_f_l_g
1694                 ostei_general_hrr_L(6, 3, 8, 4, hCD, HRR_INT__i_f_m_f, HRR_INT__i_f_l_f, HRR_INT__i_f_l_g);
1695 
1696                 // form INT__i_f_m_g
1697                 ostei_general_hrr_L(6, 3, 9, 4, hCD, HRR_INT__i_f_n_f, HRR_INT__i_f_m_f, HRR_INT__i_f_m_g);
1698 
1699                 // form INT__i_f_k_h
1700                 ostei_general_hrr_L(6, 3, 7, 5, hCD, HRR_INT__i_f_l_g, HRR_INT__i_f_k_g, HRR_INT__i_f_k_h);
1701 
1702                 // form INT__i_f_l_h
1703                 ostei_general_hrr_L(6, 3, 8, 5, hCD, HRR_INT__i_f_m_g, HRR_INT__i_f_l_g, HRR_INT__i_f_l_h);
1704 
1705                 // form INT__i_f_k_i
1706                 ostei_general_hrr_L(6, 3, 7, 6, hCD, HRR_INT__i_f_l_h, HRR_INT__i_f_k_h, HRR_INT__i_f_k_i);
1707 
1708 
1709             }  // close HRR loop
1710 
1711 
1712         }   // close loop cdbatch
1713 
1714         istart = iend;
1715     }  // close loop over ab
1716 
1717     return P.nshell12_clip * Q.nshell12_clip;
1718 }
1719 
ostei_f_i_k_i(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__f_i_k_i)1720 int ostei_f_i_k_i(struct simint_multi_shellpair const P,
1721                   struct simint_multi_shellpair const Q,
1722                   double screen_tol,
1723                   double * const restrict work,
1724                   double * const restrict INT__f_i_k_i)
1725 {
1726     double P_AB[3*P.nshell12];
1727     struct simint_multi_shellpair P_tmp = P;
1728     P_tmp.PA_x = P.PB_x;  P_tmp.PA_y = P.PB_y;  P_tmp.PA_z = P.PB_z;
1729     P_tmp.PB_x = P.PA_x;  P_tmp.PB_y = P.PA_y;  P_tmp.PB_z = P.PA_z;
1730     P_tmp.AB_x = P_AB;
1731     P_tmp.AB_y = P_AB + P.nshell12;
1732     P_tmp.AB_z = P_AB + 2*P.nshell12;
1733 
1734     for(int i = 0; i < P.nshell12; i++)
1735     {
1736         P_tmp.AB_x[i] = -P.AB_x[i];
1737         P_tmp.AB_y[i] = -P.AB_y[i];
1738         P_tmp.AB_z[i] = -P.AB_z[i];
1739     }
1740 
1741     int ret = ostei_i_f_k_i(P_tmp, Q, screen_tol, work, INT__f_i_k_i);
1742     double buffer[282240] SIMINT_ALIGN_ARRAY_DBL;
1743 
1744     for(int q = 0; q < ret; q++)
1745     {
1746         int idx = 0;
1747         for(int a = 0; a < 10; ++a)
1748         for(int b = 0; b < 28; ++b)
1749         for(int c = 0; c < 36; ++c)
1750         for(int d = 0; d < 28; ++d)
1751             buffer[idx++] = INT__f_i_k_i[q*282240+b*10080+a*1008+c*28+d];
1752 
1753         memcpy(INT__f_i_k_i+q*282240, buffer, 282240*sizeof(double));
1754     }
1755 
1756     return ret;
1757 }
1758 
ostei_i_f_i_k(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__i_f_i_k)1759 int ostei_i_f_i_k(struct simint_multi_shellpair const P,
1760                   struct simint_multi_shellpair const Q,
1761                   double screen_tol,
1762                   double * const restrict work,
1763                   double * const restrict INT__i_f_i_k)
1764 {
1765     double Q_AB[3*Q.nshell12];
1766     struct simint_multi_shellpair Q_tmp = Q;
1767     Q_tmp.PA_x = Q.PB_x;  Q_tmp.PA_y = Q.PB_y;  Q_tmp.PA_z = Q.PB_z;
1768     Q_tmp.PB_x = Q.PA_x;  Q_tmp.PB_y = Q.PA_y;  Q_tmp.PB_z = Q.PA_z;
1769     Q_tmp.AB_x = Q_AB;
1770     Q_tmp.AB_y = Q_AB + Q.nshell12;
1771     Q_tmp.AB_z = Q_AB + 2*Q.nshell12;
1772 
1773     for(int i = 0; i < Q.nshell12; i++)
1774     {
1775         Q_tmp.AB_x[i] = -Q.AB_x[i];
1776         Q_tmp.AB_y[i] = -Q.AB_y[i];
1777         Q_tmp.AB_z[i] = -Q.AB_z[i];
1778     }
1779 
1780     int ret = ostei_i_f_k_i(P, Q_tmp, screen_tol, work, INT__i_f_i_k);
1781     double buffer[282240] SIMINT_ALIGN_ARRAY_DBL;
1782 
1783     for(int q = 0; q < ret; q++)
1784     {
1785         int idx = 0;
1786         for(int a = 0; a < 28; ++a)
1787         for(int b = 0; b < 10; ++b)
1788         for(int c = 0; c < 28; ++c)
1789         for(int d = 0; d < 36; ++d)
1790             buffer[idx++] = INT__i_f_i_k[q*282240+a*10080+b*1008+d*28+c];
1791 
1792         memcpy(INT__i_f_i_k+q*282240, buffer, 282240*sizeof(double));
1793     }
1794 
1795     return ret;
1796 }
1797 
ostei_f_i_i_k(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__f_i_i_k)1798 int ostei_f_i_i_k(struct simint_multi_shellpair const P,
1799                   struct simint_multi_shellpair const Q,
1800                   double screen_tol,
1801                   double * const restrict work,
1802                   double * const restrict INT__f_i_i_k)
1803 {
1804     double P_AB[3*P.nshell12];
1805     struct simint_multi_shellpair P_tmp = P;
1806     P_tmp.PA_x = P.PB_x;  P_tmp.PA_y = P.PB_y;  P_tmp.PA_z = P.PB_z;
1807     P_tmp.PB_x = P.PA_x;  P_tmp.PB_y = P.PA_y;  P_tmp.PB_z = P.PA_z;
1808     P_tmp.AB_x = P_AB;
1809     P_tmp.AB_y = P_AB + P.nshell12;
1810     P_tmp.AB_z = P_AB + 2*P.nshell12;
1811 
1812     for(int i = 0; i < P.nshell12; i++)
1813     {
1814         P_tmp.AB_x[i] = -P.AB_x[i];
1815         P_tmp.AB_y[i] = -P.AB_y[i];
1816         P_tmp.AB_z[i] = -P.AB_z[i];
1817     }
1818 
1819     double Q_AB[3*Q.nshell12];
1820     struct simint_multi_shellpair Q_tmp = Q;
1821     Q_tmp.PA_x = Q.PB_x;  Q_tmp.PA_y = Q.PB_y;  Q_tmp.PA_z = Q.PB_z;
1822     Q_tmp.PB_x = Q.PA_x;  Q_tmp.PB_y = Q.PA_y;  Q_tmp.PB_z = Q.PA_z;
1823     Q_tmp.AB_x = Q_AB;
1824     Q_tmp.AB_y = Q_AB + Q.nshell12;
1825     Q_tmp.AB_z = Q_AB + 2*Q.nshell12;
1826 
1827     for(int i = 0; i < Q.nshell12; i++)
1828     {
1829         Q_tmp.AB_x[i] = -Q.AB_x[i];
1830         Q_tmp.AB_y[i] = -Q.AB_y[i];
1831         Q_tmp.AB_z[i] = -Q.AB_z[i];
1832     }
1833 
1834     int ret = ostei_i_f_k_i(P_tmp, Q_tmp, screen_tol, work, INT__f_i_i_k);
1835     double buffer[282240] SIMINT_ALIGN_ARRAY_DBL;
1836 
1837     for(int q = 0; q < ret; q++)
1838     {
1839         int idx = 0;
1840         for(int a = 0; a < 10; ++a)
1841         for(int b = 0; b < 28; ++b)
1842         for(int c = 0; c < 28; ++c)
1843         for(int d = 0; d < 36; ++d)
1844             buffer[idx++] = INT__f_i_i_k[q*282240+b*10080+a*1008+d*28+c];
1845 
1846         memcpy(INT__f_i_i_k+q*282240, buffer, 282240*sizeof(double));
1847     }
1848 
1849     return ret;
1850 }
1851 
1852