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