1 #include "simint/boys/boys.h"
2 #include "simint/ostei/gen/ostei_generated.h"
3 #include "simint/vectorization/vectorization.h"
4 #include <math.h>
5 #include <string.h>
6 
7 
ostei_k_d_i_h(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__k_d_i_h)8 int ostei_k_d_i_h(struct simint_multi_shellpair const P,
9                   struct simint_multi_shellpair const Q,
10                   double screen_tol,
11                   double * const restrict work,
12                   double * const restrict INT__k_d_i_h)
13 {
14 
15     SIMINT_ASSUME_ALIGN_DBL(work);
16     SIMINT_ASSUME_ALIGN_DBL(INT__k_d_i_h);
17     int ab, cd, abcd;
18     int istart, jstart;
19     int iprimcd, nprim_icd, icd;
20     const int check_screen = (screen_tol > 0.0);
21     int i, j;
22     int n;
23     int not_screened;
24     int real_abcd;
25     int iket;
26     int ibra;
27 
28     // partition workspace
29     double * const INT__k_s_i_s = work + (SIMINT_NSHELL_SIMD * 0);
30     double * const INT__k_s_k_s = work + (SIMINT_NSHELL_SIMD * 1008);
31     double * const INT__k_s_l_s = work + (SIMINT_NSHELL_SIMD * 2304);
32     double * const INT__k_s_m_s = work + (SIMINT_NSHELL_SIMD * 3924);
33     double * const INT__k_s_n_s = work + (SIMINT_NSHELL_SIMD * 5904);
34     double * const INT__k_s_o_s = work + (SIMINT_NSHELL_SIMD * 8280);
35     double * const INT__l_s_i_s = work + (SIMINT_NSHELL_SIMD * 11088);
36     double * const INT__l_s_k_s = work + (SIMINT_NSHELL_SIMD * 12348);
37     double * const INT__l_s_l_s = work + (SIMINT_NSHELL_SIMD * 13968);
38     double * const INT__l_s_m_s = work + (SIMINT_NSHELL_SIMD * 15993);
39     double * const INT__l_s_n_s = work + (SIMINT_NSHELL_SIMD * 18468);
40     double * const INT__l_s_o_s = work + (SIMINT_NSHELL_SIMD * 21438);
41     double * const INT__m_s_i_s = work + (SIMINT_NSHELL_SIMD * 24948);
42     double * const INT__m_s_k_s = work + (SIMINT_NSHELL_SIMD * 26488);
43     double * const INT__m_s_l_s = work + (SIMINT_NSHELL_SIMD * 28468);
44     double * const INT__m_s_m_s = work + (SIMINT_NSHELL_SIMD * 30943);
45     double * const INT__m_s_n_s = work + (SIMINT_NSHELL_SIMD * 33968);
46     double * const INT__m_s_o_s = work + (SIMINT_NSHELL_SIMD * 37598);
47     SIMINT_DBLTYPE * const primwork = (SIMINT_DBLTYPE *)(work + SIMINT_NSHELL_SIMD*41888);
48     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_s_s = primwork + 0;
49     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_p_s = primwork + 21;
50     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_d_s = primwork + 81;
51     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_f_s = primwork + 195;
52     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_g_s = primwork + 375;
53     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_h_s = primwork + 630;
54     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_i_s = primwork + 966;
55     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_k_s = primwork + 1386;
56     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_l_s = primwork + 1890;
57     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_m_s = primwork + 2475;
58     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_n_s = primwork + 3135;
59     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_o_s = primwork + 3861;
60     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_s_s = primwork + 4641;
61     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_p_s = primwork + 4668;
62     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_d_s = primwork + 4749;
63     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_f_s = primwork + 4911;
64     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_g_s = primwork + 5181;
65     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_h_s = primwork + 5586;
66     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_i_s = primwork + 6153;
67     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_k_s = primwork + 6909;
68     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_l_s = primwork + 7881;
69     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_m_s = primwork + 9096;
70     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_n_s = primwork + 10581;
71     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_o_s = primwork + 12363;
72     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_s_s = primwork + 14469;
73     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_p_s = primwork + 14517;
74     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_d_s = primwork + 14661;
75     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_f_s = primwork + 14949;
76     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_g_s = primwork + 15429;
77     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_h_s = primwork + 16149;
78     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_i_s = primwork + 17157;
79     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_k_s = primwork + 18501;
80     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_l_s = primwork + 20229;
81     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_m_s = primwork + 22389;
82     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_n_s = primwork + 25029;
83     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_o_s = primwork + 28197;
84     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_s_s = primwork + 31941;
85     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_p_s = primwork + 32011;
86     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_d_s = primwork + 32221;
87     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_f_s = primwork + 32641;
88     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_g_s = primwork + 33341;
89     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_h_s = primwork + 34391;
90     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_i_s = primwork + 35861;
91     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_k_s = primwork + 37821;
92     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_l_s = primwork + 40341;
93     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_m_s = primwork + 43491;
94     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_n_s = primwork + 47341;
95     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_o_s = primwork + 51961;
96     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_p_s = primwork + 57421;
97     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_d_s = primwork + 57691;
98     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_f_s = primwork + 58231;
99     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_g_s = primwork + 59131;
100     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_h_s = primwork + 60481;
101     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_i_s = primwork + 62371;
102     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_k_s = primwork + 64891;
103     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_l_s = primwork + 68131;
104     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_m_s = primwork + 72181;
105     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_n_s = primwork + 77131;
106     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_o_s = primwork + 83071;
107     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_d_s = primwork + 90091;
108     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_f_s = primwork + 90721;
109     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_g_s = primwork + 91771;
110     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_h_s = primwork + 93346;
111     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_i_s = primwork + 95551;
112     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_k_s = primwork + 98491;
113     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_l_s = primwork + 102271;
114     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_m_s = primwork + 106996;
115     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_n_s = primwork + 112771;
116     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_o_s = primwork + 119701;
117     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_f_s = primwork + 127891;
118     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_g_s = primwork + 129011;
119     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_h_s = primwork + 130691;
120     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_i_s = primwork + 133043;
121     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_k_s = primwork + 136179;
122     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_l_s = primwork + 140211;
123     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_m_s = primwork + 145251;
124     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_n_s = primwork + 151411;
125     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_o_s = primwork + 158803;
126     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_g_s = primwork + 167539;
127     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_h_s = primwork + 169159;
128     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_i_s = primwork + 171427;
129     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_k_s = primwork + 174451;
130     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_l_s = primwork + 178339;
131     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_m_s = primwork + 183199;
132     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_n_s = primwork + 189139;
133     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_o_s = primwork + 196267;
134     SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_h_s = primwork + 204691;
135     SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_i_s = primwork + 206581;
136     SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_k_s = primwork + 209101;
137     SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_l_s = primwork + 212341;
138     SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_m_s = primwork + 216391;
139     SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_n_s = primwork + 221341;
140     SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_o_s = primwork + 227281;
141     SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_i_s = primwork + 234301;
142     SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_k_s = primwork + 235841;
143     SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_l_s = primwork + 237821;
144     SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_m_s = primwork + 240296;
145     SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_n_s = primwork + 243321;
146     SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_o_s = primwork + 246951;
147     double * const hrrwork = (double *)(primwork + 251241);
148     double * const HRR_INT__k_p_i_s = hrrwork + 0;
149     double * const HRR_INT__k_p_k_s = hrrwork + 3024;
150     double * const HRR_INT__k_p_l_s = hrrwork + 6912;
151     double * const HRR_INT__k_p_m_s = hrrwork + 11772;
152     double * const HRR_INT__k_p_n_s = hrrwork + 17712;
153     double * const HRR_INT__k_p_o_s = hrrwork + 24840;
154     double * const HRR_INT__k_d_i_s = hrrwork + 33264;
155     double * const HRR_INT__k_d_i_p = hrrwork + 39312;
156     double * const HRR_INT__k_d_i_d = hrrwork + 57456;
157     double * const HRR_INT__k_d_i_f = hrrwork + 93744;
158     double * const HRR_INT__k_d_i_g = hrrwork + 154224;
159     double * const HRR_INT__k_d_k_s = hrrwork + 244944;
160     double * const HRR_INT__k_d_k_p = hrrwork + 252720;
161     double * const HRR_INT__k_d_k_d = hrrwork + 276048;
162     double * const HRR_INT__k_d_k_f = hrrwork + 322704;
163     double * const HRR_INT__k_d_k_g = hrrwork + 400464;
164     double * const HRR_INT__k_d_l_s = hrrwork + 517104;
165     double * const HRR_INT__k_d_l_p = hrrwork + 526824;
166     double * const HRR_INT__k_d_l_d = hrrwork + 555984;
167     double * const HRR_INT__k_d_l_f = hrrwork + 614304;
168     double * const HRR_INT__k_d_m_s = hrrwork + 711504;
169     double * const HRR_INT__k_d_m_p = hrrwork + 723384;
170     double * const HRR_INT__k_d_m_d = hrrwork + 759024;
171     double * const HRR_INT__k_d_n_s = hrrwork + 830304;
172     double * const HRR_INT__k_d_n_p = hrrwork + 844560;
173     double * const HRR_INT__k_d_o_s = hrrwork + 887328;
174     double * const HRR_INT__l_p_i_s = hrrwork + 904176;
175     double * const HRR_INT__l_p_k_s = hrrwork + 907956;
176     double * const HRR_INT__l_p_l_s = hrrwork + 912816;
177     double * const HRR_INT__l_p_m_s = hrrwork + 918891;
178     double * const HRR_INT__l_p_n_s = hrrwork + 926316;
179     double * const HRR_INT__l_p_o_s = hrrwork + 935226;
180 
181 
182     // Create constants
183     const SIMINT_DBLTYPE const_1 = SIMINT_DBLSET1(1);
184     const SIMINT_DBLTYPE const_10 = SIMINT_DBLSET1(10);
185     const SIMINT_DBLTYPE const_11 = SIMINT_DBLSET1(11);
186     const SIMINT_DBLTYPE const_2 = SIMINT_DBLSET1(2);
187     const SIMINT_DBLTYPE const_3 = SIMINT_DBLSET1(3);
188     const SIMINT_DBLTYPE const_4 = SIMINT_DBLSET1(4);
189     const SIMINT_DBLTYPE const_5 = SIMINT_DBLSET1(5);
190     const SIMINT_DBLTYPE const_6 = SIMINT_DBLSET1(6);
191     const SIMINT_DBLTYPE const_7 = SIMINT_DBLSET1(7);
192     const SIMINT_DBLTYPE const_8 = SIMINT_DBLSET1(8);
193     const SIMINT_DBLTYPE const_9 = SIMINT_DBLSET1(9);
194     const SIMINT_DBLTYPE one_half = SIMINT_DBLSET1(0.5);
195 
196 
197     ////////////////////////////////////////
198     // Loop over shells and primitives
199     ////////////////////////////////////////
200 
201     real_abcd = 0;
202     istart = 0;
203     for(ab = 0; ab < P.nshell12_clip; ++ab)
204     {
205         const int iend = istart + P.nprim12[ab];
206 
207         cd = 0;
208         jstart = 0;
209 
210         for(cd = 0; cd < Q.nshell12_clip; cd += SIMINT_NSHELL_SIMD)
211         {
212             const int nshellbatch = ((cd + SIMINT_NSHELL_SIMD) > Q.nshell12_clip) ? Q.nshell12_clip - cd : SIMINT_NSHELL_SIMD;
213             int jend = jstart;
214             for(i = 0; i < nshellbatch; i++)
215                 jend += Q.nprim12[cd+i];
216 
217             // Clear the beginning of the workspace (where we are accumulating integrals)
218             memset(work, 0, SIMINT_NSHELL_SIMD * 41888 * sizeof(double));
219             abcd = 0;
220 
221 
222             for(i = istart; i < iend; ++i)
223             {
224                 SIMINT_DBLTYPE bra_screen_max;  // only used if check_screen
225 
226                 if(check_screen)
227                 {
228                     // Skip this whole thing if always insignificant
229                     if((P.screen[i] * Q.screen_max) < screen_tol)
230                         continue;
231                     bra_screen_max = SIMINT_DBLSET1(P.screen[i]);
232                 }
233 
234                 icd = 0;
235                 iprimcd = 0;
236                 nprim_icd = Q.nprim12[cd];
237                 double * restrict PRIM_PTR_INT__k_s_i_s = INT__k_s_i_s + abcd * 1008;
238                 double * restrict PRIM_PTR_INT__k_s_k_s = INT__k_s_k_s + abcd * 1296;
239                 double * restrict PRIM_PTR_INT__k_s_l_s = INT__k_s_l_s + abcd * 1620;
240                 double * restrict PRIM_PTR_INT__k_s_m_s = INT__k_s_m_s + abcd * 1980;
241                 double * restrict PRIM_PTR_INT__k_s_n_s = INT__k_s_n_s + abcd * 2376;
242                 double * restrict PRIM_PTR_INT__k_s_o_s = INT__k_s_o_s + abcd * 2808;
243                 double * restrict PRIM_PTR_INT__l_s_i_s = INT__l_s_i_s + abcd * 1260;
244                 double * restrict PRIM_PTR_INT__l_s_k_s = INT__l_s_k_s + abcd * 1620;
245                 double * restrict PRIM_PTR_INT__l_s_l_s = INT__l_s_l_s + abcd * 2025;
246                 double * restrict PRIM_PTR_INT__l_s_m_s = INT__l_s_m_s + abcd * 2475;
247                 double * restrict PRIM_PTR_INT__l_s_n_s = INT__l_s_n_s + abcd * 2970;
248                 double * restrict PRIM_PTR_INT__l_s_o_s = INT__l_s_o_s + abcd * 3510;
249                 double * restrict PRIM_PTR_INT__m_s_i_s = INT__m_s_i_s + abcd * 1540;
250                 double * restrict PRIM_PTR_INT__m_s_k_s = INT__m_s_k_s + abcd * 1980;
251                 double * restrict PRIM_PTR_INT__m_s_l_s = INT__m_s_l_s + abcd * 2475;
252                 double * restrict PRIM_PTR_INT__m_s_m_s = INT__m_s_m_s + abcd * 3025;
253                 double * restrict PRIM_PTR_INT__m_s_n_s = INT__m_s_n_s + abcd * 3630;
254                 double * restrict PRIM_PTR_INT__m_s_o_s = INT__m_s_o_s + abcd * 4290;
255 
256 
257 
258                 // Load these one per loop over i
259                 const SIMINT_DBLTYPE P_alpha = SIMINT_DBLSET1(P.alpha[i]);
260                 const SIMINT_DBLTYPE P_prefac = SIMINT_DBLSET1(P.prefac[i]);
261                 const SIMINT_DBLTYPE Pxyz[3] = { SIMINT_DBLSET1(P.x[i]), SIMINT_DBLSET1(P.y[i]), SIMINT_DBLSET1(P.z[i]) };
262 
263                 const SIMINT_DBLTYPE P_PA[3] = { SIMINT_DBLSET1(P.PA_x[i]), SIMINT_DBLSET1(P.PA_y[i]), SIMINT_DBLSET1(P.PA_z[i]) };
264 
265                 for(j = jstart; j < jend; j += SIMINT_SIMD_LEN)
266                 {
267                     // calculate the shell offsets
268                     // these are the offset from the shell pointed to by cd
269                     // for each element
270                     int shelloffsets[SIMINT_SIMD_LEN] = {0};
271                     int lastoffset = 0;
272                     const int nlane = ( ((j + SIMINT_SIMD_LEN) < jend) ? SIMINT_SIMD_LEN : (jend - j));
273 
274                     if((iprimcd + SIMINT_SIMD_LEN) >= nprim_icd)
275                     {
276                         // Handle if the first element of the vector is a new shell
277                         if(iprimcd >= nprim_icd && ((icd+1) < nshellbatch))
278                         {
279                             nprim_icd += Q.nprim12[cd + (++icd)];
280                             PRIM_PTR_INT__k_s_i_s += 1008;
281                             PRIM_PTR_INT__k_s_k_s += 1296;
282                             PRIM_PTR_INT__k_s_l_s += 1620;
283                             PRIM_PTR_INT__k_s_m_s += 1980;
284                             PRIM_PTR_INT__k_s_n_s += 2376;
285                             PRIM_PTR_INT__k_s_o_s += 2808;
286                             PRIM_PTR_INT__l_s_i_s += 1260;
287                             PRIM_PTR_INT__l_s_k_s += 1620;
288                             PRIM_PTR_INT__l_s_l_s += 2025;
289                             PRIM_PTR_INT__l_s_m_s += 2475;
290                             PRIM_PTR_INT__l_s_n_s += 2970;
291                             PRIM_PTR_INT__l_s_o_s += 3510;
292                             PRIM_PTR_INT__m_s_i_s += 1540;
293                             PRIM_PTR_INT__m_s_k_s += 1980;
294                             PRIM_PTR_INT__m_s_l_s += 2475;
295                             PRIM_PTR_INT__m_s_m_s += 3025;
296                             PRIM_PTR_INT__m_s_n_s += 3630;
297                             PRIM_PTR_INT__m_s_o_s += 4290;
298                         }
299                         iprimcd++;
300                         for(n = 1; n < SIMINT_SIMD_LEN; ++n)
301                         {
302                             if(iprimcd >= nprim_icd && ((icd+1) < nshellbatch))
303                             {
304                                 shelloffsets[n] = shelloffsets[n-1] + 1;
305                                 lastoffset++;
306                                 nprim_icd += Q.nprim12[cd + (++icd)];
307                             }
308                             else
309                                 shelloffsets[n] = shelloffsets[n-1];
310                             iprimcd++;
311                         }
312                     }
313                     else
314                         iprimcd += SIMINT_SIMD_LEN;
315 
316                     // Do we have to compute this vector (or has it been screened out)?
317                     // (not_screened != 0 means we have to do this vector)
318                     if(check_screen)
319                     {
320                         const double vmax = vector_max(SIMINT_MUL(bra_screen_max, SIMINT_DBLLOAD(Q.screen, j)));
321                         if(vmax < screen_tol)
322                         {
323                             PRIM_PTR_INT__k_s_i_s += lastoffset*1008;
324                             PRIM_PTR_INT__k_s_k_s += lastoffset*1296;
325                             PRIM_PTR_INT__k_s_l_s += lastoffset*1620;
326                             PRIM_PTR_INT__k_s_m_s += lastoffset*1980;
327                             PRIM_PTR_INT__k_s_n_s += lastoffset*2376;
328                             PRIM_PTR_INT__k_s_o_s += lastoffset*2808;
329                             PRIM_PTR_INT__l_s_i_s += lastoffset*1260;
330                             PRIM_PTR_INT__l_s_k_s += lastoffset*1620;
331                             PRIM_PTR_INT__l_s_l_s += lastoffset*2025;
332                             PRIM_PTR_INT__l_s_m_s += lastoffset*2475;
333                             PRIM_PTR_INT__l_s_n_s += lastoffset*2970;
334                             PRIM_PTR_INT__l_s_o_s += lastoffset*3510;
335                             PRIM_PTR_INT__m_s_i_s += lastoffset*1540;
336                             PRIM_PTR_INT__m_s_k_s += lastoffset*1980;
337                             PRIM_PTR_INT__m_s_l_s += lastoffset*2475;
338                             PRIM_PTR_INT__m_s_m_s += lastoffset*3025;
339                             PRIM_PTR_INT__m_s_n_s += lastoffset*3630;
340                             PRIM_PTR_INT__m_s_o_s += lastoffset*4290;
341                             continue;
342                         }
343                     }
344 
345                     const SIMINT_DBLTYPE Q_alpha = SIMINT_DBLLOAD(Q.alpha, j);
346                     const SIMINT_DBLTYPE PQalpha_mul = SIMINT_MUL(P_alpha, Q_alpha);
347                     const SIMINT_DBLTYPE PQalpha_sum = SIMINT_ADD(P_alpha, Q_alpha);
348                     const SIMINT_DBLTYPE one_over_PQalpha_sum = SIMINT_DIV(const_1, PQalpha_sum);
349 
350 
351                     /* construct R2 = (Px - Qx)**2 + (Py - Qy)**2 + (Pz -Qz)**2 */
352                     SIMINT_DBLTYPE PQ[3];
353                     PQ[0] = SIMINT_SUB(Pxyz[0], SIMINT_DBLLOAD(Q.x, j));
354                     PQ[1] = SIMINT_SUB(Pxyz[1], SIMINT_DBLLOAD(Q.y, j));
355                     PQ[2] = SIMINT_SUB(Pxyz[2], SIMINT_DBLLOAD(Q.z, j));
356                     SIMINT_DBLTYPE R2 = SIMINT_MUL(PQ[0], PQ[0]);
357                     R2 = SIMINT_FMADD(PQ[1], PQ[1], R2);
358                     R2 = SIMINT_FMADD(PQ[2], PQ[2], R2);
359 
360                     const SIMINT_DBLTYPE alpha = SIMINT_MUL(PQalpha_mul, one_over_PQalpha_sum); // alpha from MEST
361                     const SIMINT_DBLTYPE one_over_p = SIMINT_DIV(const_1, P_alpha);
362                     const SIMINT_DBLTYPE one_over_q = SIMINT_DIV(const_1, Q_alpha);
363                     const SIMINT_DBLTYPE one_over_2p = SIMINT_MUL(one_half, one_over_p);
364                     const SIMINT_DBLTYPE one_over_2q = SIMINT_MUL(one_half, one_over_q);
365                     const SIMINT_DBLTYPE one_over_2pq = SIMINT_MUL(one_half, one_over_PQalpha_sum);
366                     const SIMINT_DBLTYPE Q_PA[3] = { SIMINT_DBLLOAD(Q.PA_x, j), SIMINT_DBLLOAD(Q.PA_y, j), SIMINT_DBLLOAD(Q.PA_z, j) };
367 
368                     // NOTE: Minus sign!
369                     const SIMINT_DBLTYPE a_over_p = SIMINT_MUL(SIMINT_NEG(alpha), one_over_p);
370                     SIMINT_DBLTYPE aop_PQ[3];
371                     aop_PQ[0] = SIMINT_MUL(a_over_p, PQ[0]);
372                     aop_PQ[1] = SIMINT_MUL(a_over_p, PQ[1]);
373                     aop_PQ[2] = SIMINT_MUL(a_over_p, PQ[2]);
374 
375                     SIMINT_DBLTYPE a_over_q = SIMINT_MUL(alpha, one_over_q);
376                     SIMINT_DBLTYPE aoq_PQ[3];
377                     aoq_PQ[0] = SIMINT_MUL(a_over_q, PQ[0]);
378                     aoq_PQ[1] = SIMINT_MUL(a_over_q, PQ[1]);
379                     aoq_PQ[2] = SIMINT_MUL(a_over_q, PQ[2]);
380                     // Put a minus sign here so we don't have to in RR routines
381                     a_over_q = SIMINT_NEG(a_over_q);
382 
383 
384                     //////////////////////////////////////////////
385                     // Fjt function section
386                     // Maximum v value: 20
387                     //////////////////////////////////////////////
388                     // The parameter to the Fjt function
389                     const SIMINT_DBLTYPE F_x = SIMINT_MUL(R2, alpha);
390 
391 
392                     const SIMINT_DBLTYPE Q_prefac = mask_load(nlane, Q.prefac + j);
393 
394 
395                     boys_F_split(PRIM_INT__s_s_s_s, F_x, 20);
396                     SIMINT_DBLTYPE prefac = SIMINT_SQRT(one_over_PQalpha_sum);
397                     prefac = SIMINT_MUL(SIMINT_MUL(P_prefac, Q_prefac), prefac);
398                     for(n = 0; n <= 20; n++)
399                         PRIM_INT__s_s_s_s[n] = SIMINT_MUL(PRIM_INT__s_s_s_s[n], prefac);
400 
401                     //////////////////////////////////////////////
402                     // Primitive integrals: Vertical recurrance
403                     //////////////////////////////////////////////
404 
405                     const SIMINT_DBLTYPE vrr_const_1_over_2p = one_over_2p;
406                     const SIMINT_DBLTYPE vrr_const_2_over_2p = SIMINT_MUL(const_2, one_over_2p);
407                     const SIMINT_DBLTYPE vrr_const_3_over_2p = SIMINT_MUL(const_3, one_over_2p);
408                     const SIMINT_DBLTYPE vrr_const_4_over_2p = SIMINT_MUL(const_4, one_over_2p);
409                     const SIMINT_DBLTYPE vrr_const_5_over_2p = SIMINT_MUL(const_5, one_over_2p);
410                     const SIMINT_DBLTYPE vrr_const_6_over_2p = SIMINT_MUL(const_6, one_over_2p);
411                     const SIMINT_DBLTYPE vrr_const_7_over_2p = SIMINT_MUL(const_7, one_over_2p);
412                     const SIMINT_DBLTYPE vrr_const_8_over_2p = SIMINT_MUL(const_8, one_over_2p);
413                     const SIMINT_DBLTYPE vrr_const_1_over_2q = one_over_2q;
414                     const SIMINT_DBLTYPE vrr_const_2_over_2q = SIMINT_MUL(const_2, one_over_2q);
415                     const SIMINT_DBLTYPE vrr_const_3_over_2q = SIMINT_MUL(const_3, one_over_2q);
416                     const SIMINT_DBLTYPE vrr_const_4_over_2q = SIMINT_MUL(const_4, one_over_2q);
417                     const SIMINT_DBLTYPE vrr_const_5_over_2q = SIMINT_MUL(const_5, one_over_2q);
418                     const SIMINT_DBLTYPE vrr_const_6_over_2q = SIMINT_MUL(const_6, one_over_2q);
419                     const SIMINT_DBLTYPE vrr_const_7_over_2q = SIMINT_MUL(const_7, one_over_2q);
420                     const SIMINT_DBLTYPE vrr_const_8_over_2q = SIMINT_MUL(const_8, one_over_2q);
421                     const SIMINT_DBLTYPE vrr_const_9_over_2q = SIMINT_MUL(const_9, one_over_2q);
422                     const SIMINT_DBLTYPE vrr_const_10_over_2q = SIMINT_MUL(const_10, one_over_2q);
423                     const SIMINT_DBLTYPE vrr_const_1_over_2pq = one_over_2pq;
424                     const SIMINT_DBLTYPE vrr_const_2_over_2pq = SIMINT_MUL(const_2, one_over_2pq);
425                     const SIMINT_DBLTYPE vrr_const_3_over_2pq = SIMINT_MUL(const_3, one_over_2pq);
426                     const SIMINT_DBLTYPE vrr_const_4_over_2pq = SIMINT_MUL(const_4, one_over_2pq);
427                     const SIMINT_DBLTYPE vrr_const_5_over_2pq = SIMINT_MUL(const_5, one_over_2pq);
428                     const SIMINT_DBLTYPE vrr_const_6_over_2pq = SIMINT_MUL(const_6, one_over_2pq);
429                     const SIMINT_DBLTYPE vrr_const_7_over_2pq = SIMINT_MUL(const_7, one_over_2pq);
430                     const SIMINT_DBLTYPE vrr_const_8_over_2pq = SIMINT_MUL(const_8, one_over_2pq);
431                     const SIMINT_DBLTYPE vrr_const_9_over_2pq = SIMINT_MUL(const_9, one_over_2pq);
432                     const SIMINT_DBLTYPE vrr_const_10_over_2pq = SIMINT_MUL(const_10, one_over_2pq);
433                     const SIMINT_DBLTYPE vrr_const_11_over_2pq = SIMINT_MUL(const_11, one_over_2pq);
434 
435 
436 
437                     // Forming PRIM_INT__s_s_p_s[20 * 3];
438                     for(n = 0; n < 20; ++n)  // loop over orders of auxiliary function
439                     {
440 
441                         PRIM_INT__s_s_p_s[n * 3 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_s_s[n * 1 + 0]);
442                         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]);
443 
444                         PRIM_INT__s_s_p_s[n * 3 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_s_s[n * 1 + 0]);
445                         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]);
446 
447                         PRIM_INT__s_s_p_s[n * 3 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_s_s[n * 1 + 0]);
448                         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]);
449 
450                     }
451 
452 
453 
454                     // Forming PRIM_INT__s_s_d_s[19 * 6];
455                     for(n = 0; n < 19; ++n)  // loop over orders of auxiliary function
456                     {
457 
458                         PRIM_INT__s_s_d_s[n * 6 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_p_s[n * 3 + 0]);
459                         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]);
460                         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]);
461 
462                         PRIM_INT__s_s_d_s[n * 6 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_p_s[n * 3 + 0]);
463                         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]);
464 
465                         PRIM_INT__s_s_d_s[n * 6 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_p_s[n * 3 + 0]);
466                         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]);
467 
468                         PRIM_INT__s_s_d_s[n * 6 + 3] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_p_s[n * 3 + 1]);
469                         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]);
470                         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]);
471 
472                         PRIM_INT__s_s_d_s[n * 6 + 4] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_p_s[n * 3 + 1]);
473                         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]);
474 
475                         PRIM_INT__s_s_d_s[n * 6 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_p_s[n * 3 + 2]);
476                         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]);
477                         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]);
478 
479                     }
480 
481 
482 
483                     // Forming PRIM_INT__s_s_f_s[18 * 10];
484                     for(n = 0; n < 18; ++n)  // loop over orders of auxiliary function
485                     {
486 
487                         PRIM_INT__s_s_f_s[n * 10 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_d_s[n * 6 + 0]);
488                         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]);
489                         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]);
490 
491                         PRIM_INT__s_s_f_s[n * 10 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_d_s[n * 6 + 0]);
492                         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]);
493 
494                         PRIM_INT__s_s_f_s[n * 10 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_d_s[n * 6 + 0]);
495                         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]);
496 
497                         PRIM_INT__s_s_f_s[n * 10 + 3] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_d_s[n * 6 + 3]);
498                         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]);
499 
500                         PRIM_INT__s_s_f_s[n * 10 + 4] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_d_s[n * 6 + 1]);
501                         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]);
502 
503                         PRIM_INT__s_s_f_s[n * 10 + 5] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_d_s[n * 6 + 5]);
504                         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]);
505 
506                         PRIM_INT__s_s_f_s[n * 10 + 6] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_d_s[n * 6 + 3]);
507                         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]);
508                         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]);
509 
510                         PRIM_INT__s_s_f_s[n * 10 + 7] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_d_s[n * 6 + 3]);
511                         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]);
512 
513                         PRIM_INT__s_s_f_s[n * 10 + 8] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_d_s[n * 6 + 5]);
514                         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]);
515 
516                         PRIM_INT__s_s_f_s[n * 10 + 9] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_d_s[n * 6 + 5]);
517                         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]);
518                         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]);
519 
520                     }
521 
522 
523                     VRR_K_s_s_g_s(
524                             PRIM_INT__s_s_g_s,
525                             PRIM_INT__s_s_f_s,
526                             PRIM_INT__s_s_d_s,
527                             Q_PA,
528                             a_over_q,
529                             aoq_PQ,
530                             one_over_2q,
531                             17);
532 
533 
534                     VRR_K_s_s_h_s(
535                             PRIM_INT__s_s_h_s,
536                             PRIM_INT__s_s_g_s,
537                             PRIM_INT__s_s_f_s,
538                             Q_PA,
539                             a_over_q,
540                             aoq_PQ,
541                             one_over_2q,
542                             16);
543 
544 
545                     ostei_general_vrr1_K(6, 15,
546                             one_over_2q, a_over_q, aoq_PQ, Q_PA,
547                             PRIM_INT__s_s_h_s, PRIM_INT__s_s_g_s, PRIM_INT__s_s_i_s);
548 
549 
550                     ostei_general_vrr_I(1, 0, 6, 0, 9,
551                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
552                             PRIM_INT__s_s_i_s, NULL, NULL, PRIM_INT__s_s_h_s, NULL, PRIM_INT__p_s_i_s);
553 
554 
555                     ostei_general_vrr_I(1, 0, 5, 0, 9,
556                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
557                             PRIM_INT__s_s_h_s, NULL, NULL, PRIM_INT__s_s_g_s, NULL, PRIM_INT__p_s_h_s);
558 
559 
560                     ostei_general_vrr_I(2, 0, 6, 0, 8,
561                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
562                             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);
563 
564 
565                     VRR_I_p_s_g_s(
566                             PRIM_INT__p_s_g_s,
567                             PRIM_INT__s_s_g_s,
568                             PRIM_INT__s_s_f_s,
569                             P_PA,
570                             aop_PQ,
571                             one_over_2pq,
572                             9);
573 
574 
575                     ostei_general_vrr_I(2, 0, 5, 0, 8,
576                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
577                             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);
578 
579 
580                     ostei_general_vrr_I(3, 0, 6, 0, 7,
581                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
582                             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);
583 
584 
585                     VRR_I_p_s_f_s(
586                             PRIM_INT__p_s_f_s,
587                             PRIM_INT__s_s_f_s,
588                             PRIM_INT__s_s_d_s,
589                             P_PA,
590                             aop_PQ,
591                             one_over_2pq,
592                             9);
593 
594 
595                     ostei_general_vrr_I(2, 0, 4, 0, 8,
596                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
597                             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);
598 
599 
600                     ostei_general_vrr_I(3, 0, 5, 0, 7,
601                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
602                             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);
603 
604 
605                     ostei_general_vrr_I(4, 0, 6, 0, 6,
606                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
607                             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);
608 
609 
610 
611                     // Forming PRIM_INT__p_s_d_s[9 * 18];
612                     for(n = 0; n < 9; ++n)  // loop over orders of auxiliary function
613                     {
614 
615                         PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 0]);
616                         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]);
617                         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]);
618 
619                         PRIM_INT__p_s_d_s[n * 18 + 1] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 1]);
620                         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]);
621                         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]);
622 
623                         PRIM_INT__p_s_d_s[n * 18 + 2] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 2]);
624                         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]);
625                         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]);
626 
627                         PRIM_INT__p_s_d_s[n * 18 + 3] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 3]);
628                         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]);
629 
630                         PRIM_INT__p_s_d_s[n * 18 + 4] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 4]);
631                         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]);
632 
633                         PRIM_INT__p_s_d_s[n * 18 + 5] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 5]);
634                         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]);
635 
636                         PRIM_INT__p_s_d_s[n * 18 + 6] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 0]);
637                         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]);
638 
639                         PRIM_INT__p_s_d_s[n * 18 + 7] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 1]);
640                         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]);
641                         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]);
642 
643                         PRIM_INT__p_s_d_s[n * 18 + 8] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 2]);
644                         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]);
645 
646                         PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 3]);
647                         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]);
648                         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]);
649 
650                         PRIM_INT__p_s_d_s[n * 18 + 10] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 4]);
651                         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]);
652                         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]);
653 
654                         PRIM_INT__p_s_d_s[n * 18 + 11] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 5]);
655                         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]);
656 
657                         PRIM_INT__p_s_d_s[n * 18 + 12] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 0]);
658                         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]);
659 
660                         PRIM_INT__p_s_d_s[n * 18 + 13] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 1]);
661                         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]);
662 
663                         PRIM_INT__p_s_d_s[n * 18 + 14] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 2]);
664                         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]);
665                         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]);
666 
667                         PRIM_INT__p_s_d_s[n * 18 + 15] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 3]);
668                         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]);
669 
670                         PRIM_INT__p_s_d_s[n * 18 + 16] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 4]);
671                         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]);
672                         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]);
673 
674                         PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 5]);
675                         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]);
676                         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]);
677 
678                     }
679 
680 
681                     VRR_I_d_s_f_s(
682                             PRIM_INT__d_s_f_s,
683                             PRIM_INT__p_s_f_s,
684                             PRIM_INT__s_s_f_s,
685                             PRIM_INT__p_s_d_s,
686                             P_PA,
687                             a_over_p,
688                             aop_PQ,
689                             one_over_2p,
690                             one_over_2pq,
691                             8);
692 
693 
694                     ostei_general_vrr_I(3, 0, 4, 0, 7,
695                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
696                             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);
697 
698 
699                     ostei_general_vrr_I(4, 0, 5, 0, 6,
700                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
701                             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);
702 
703 
704                     ostei_general_vrr_I(5, 0, 6, 0, 5,
705                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
706                             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);
707 
708 
709 
710                     // Forming PRIM_INT__p_s_p_s[9 * 9];
711                     for(n = 0; n < 9; ++n)  // loop over orders of auxiliary function
712                     {
713 
714                         PRIM_INT__p_s_p_s[n * 9 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_p_s[n * 3 + 0]);
715                         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]);
716                         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]);
717 
718                         PRIM_INT__p_s_p_s[n * 9 + 1] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_p_s[n * 3 + 1]);
719                         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]);
720 
721                         PRIM_INT__p_s_p_s[n * 9 + 2] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_p_s[n * 3 + 2]);
722                         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]);
723 
724                         PRIM_INT__p_s_p_s[n * 9 + 3] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_p_s[n * 3 + 0]);
725                         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]);
726 
727                         PRIM_INT__p_s_p_s[n * 9 + 4] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_p_s[n * 3 + 1]);
728                         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]);
729                         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]);
730 
731                         PRIM_INT__p_s_p_s[n * 9 + 5] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_p_s[n * 3 + 2]);
732                         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]);
733 
734                         PRIM_INT__p_s_p_s[n * 9 + 6] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_p_s[n * 3 + 0]);
735                         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]);
736 
737                         PRIM_INT__p_s_p_s[n * 9 + 7] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_p_s[n * 3 + 1]);
738                         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]);
739 
740                         PRIM_INT__p_s_p_s[n * 9 + 8] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_p_s[n * 3 + 2]);
741                         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]);
742                         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]);
743 
744                     }
745 
746 
747                     VRR_I_d_s_d_s(
748                             PRIM_INT__d_s_d_s,
749                             PRIM_INT__p_s_d_s,
750                             PRIM_INT__s_s_d_s,
751                             PRIM_INT__p_s_p_s,
752                             P_PA,
753                             a_over_p,
754                             aop_PQ,
755                             one_over_2p,
756                             one_over_2pq,
757                             8);
758 
759 
760                     ostei_general_vrr_I(3, 0, 3, 0, 7,
761                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
762                             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);
763 
764 
765                     ostei_general_vrr_I(4, 0, 4, 0, 6,
766                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
767                             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);
768 
769 
770                     ostei_general_vrr_I(5, 0, 5, 0, 5,
771                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
772                             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);
773 
774 
775                     ostei_general_vrr_I(6, 0, 6, 0, 4,
776                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
777                             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);
778 
779 
780 
781                     // Forming PRIM_INT__p_s_s_s[9 * 3];
782                     for(n = 0; n < 9; ++n)  // loop over orders of auxiliary function
783                     {
784 
785                         PRIM_INT__p_s_s_s[n * 3 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_s_s[n * 1 + 0]);
786                         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]);
787 
788                         PRIM_INT__p_s_s_s[n * 3 + 1] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_s_s[n * 1 + 0]);
789                         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]);
790 
791                         PRIM_INT__p_s_s_s[n * 3 + 2] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_s_s[n * 1 + 0]);
792                         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]);
793 
794                     }
795 
796 
797 
798                     // Forming PRIM_INT__d_s_p_s[8 * 18];
799                     for(n = 0; n < 8; ++n)  // loop over orders of auxiliary function
800                     {
801 
802                         PRIM_INT__d_s_p_s[n * 18 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__p_s_p_s[n * 9 + 0]);
803                         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]);
804                         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]);
805                         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]);
806 
807                         PRIM_INT__d_s_p_s[n * 18 + 1] = SIMINT_MUL(P_PA[0], PRIM_INT__p_s_p_s[n * 9 + 1]);
808                         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]);
809                         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]);
810 
811                         PRIM_INT__d_s_p_s[n * 18 + 2] = SIMINT_MUL(P_PA[0], PRIM_INT__p_s_p_s[n * 9 + 2]);
812                         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]);
813                         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]);
814 
815                         PRIM_INT__d_s_p_s[n * 18 + 9] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_p_s[n * 9 + 3]);
816                         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]);
817                         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]);
818 
819                         PRIM_INT__d_s_p_s[n * 18 + 10] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_p_s[n * 9 + 4]);
820                         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]);
821                         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]);
822                         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]);
823 
824                         PRIM_INT__d_s_p_s[n * 18 + 11] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_p_s[n * 9 + 5]);
825                         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]);
826                         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]);
827 
828                         PRIM_INT__d_s_p_s[n * 18 + 15] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_p_s[n * 9 + 6]);
829                         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]);
830                         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]);
831 
832                         PRIM_INT__d_s_p_s[n * 18 + 16] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_p_s[n * 9 + 7]);
833                         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]);
834                         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]);
835 
836                         PRIM_INT__d_s_p_s[n * 18 + 17] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_p_s[n * 9 + 8]);
837                         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]);
838                         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]);
839                         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]);
840 
841                     }
842 
843 
844                     VRR_I_f_s_d_s(
845                             PRIM_INT__f_s_d_s,
846                             PRIM_INT__d_s_d_s,
847                             PRIM_INT__p_s_d_s,
848                             PRIM_INT__d_s_p_s,
849                             P_PA,
850                             a_over_p,
851                             aop_PQ,
852                             one_over_2p,
853                             one_over_2pq,
854                             7);
855 
856 
857                     ostei_general_vrr_I(4, 0, 3, 0, 6,
858                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
859                             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);
860 
861 
862                     ostei_general_vrr_I(5, 0, 4, 0, 5,
863                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
864                             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);
865 
866 
867                     ostei_general_vrr_I(6, 0, 5, 0, 4,
868                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
869                             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);
870 
871 
872                     ostei_general_vrr_I(7, 0, 6, 0, 3,
873                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
874                             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);
875 
876 
877                     ostei_general_vrr1_K(7, 14,
878                             one_over_2q, a_over_q, aoq_PQ, Q_PA,
879                             PRIM_INT__s_s_i_s, PRIM_INT__s_s_h_s, PRIM_INT__s_s_k_s);
880 
881 
882                     ostei_general_vrr_I(1, 0, 7, 0, 9,
883                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
884                             PRIM_INT__s_s_k_s, NULL, NULL, PRIM_INT__s_s_i_s, NULL, PRIM_INT__p_s_k_s);
885 
886 
887                     ostei_general_vrr_I(2, 0, 7, 0, 8,
888                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
889                             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);
890 
891 
892                     ostei_general_vrr_I(3, 0, 7, 0, 7,
893                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
894                             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);
895 
896 
897                     ostei_general_vrr_I(4, 0, 7, 0, 6,
898                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
899                             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);
900 
901 
902                     ostei_general_vrr_I(5, 0, 7, 0, 5,
903                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
904                             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);
905 
906 
907                     ostei_general_vrr_I(6, 0, 7, 0, 4,
908                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
909                             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);
910 
911 
912                     ostei_general_vrr_I(7, 0, 7, 0, 3,
913                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
914                             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);
915 
916 
917 
918                     // Forming PRIM_INT__d_s_s_s[8 * 6];
919                     for(n = 0; n < 8; ++n)  // loop over orders of auxiliary function
920                     {
921 
922                         PRIM_INT__d_s_s_s[n * 6 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__p_s_s_s[n * 3 + 0]);
923                         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]);
924                         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]);
925 
926                         PRIM_INT__d_s_s_s[n * 6 + 3] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_s_s[n * 3 + 1]);
927                         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]);
928                         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]);
929 
930                         PRIM_INT__d_s_s_s[n * 6 + 5] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_s_s[n * 3 + 2]);
931                         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]);
932                         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]);
933 
934                     }
935 
936 
937                     VRR_I_f_s_p_s(
938                             PRIM_INT__f_s_p_s,
939                             PRIM_INT__d_s_p_s,
940                             PRIM_INT__p_s_p_s,
941                             PRIM_INT__d_s_s_s,
942                             P_PA,
943                             a_over_p,
944                             aop_PQ,
945                             one_over_2p,
946                             one_over_2pq,
947                             7);
948 
949 
950                     ostei_general_vrr_I(4, 0, 2, 0, 6,
951                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
952                             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);
953 
954 
955                     ostei_general_vrr_I(5, 0, 3, 0, 5,
956                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
957                             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);
958 
959 
960                     ostei_general_vrr_I(6, 0, 4, 0, 4,
961                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
962                             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);
963 
964 
965                     ostei_general_vrr_I(7, 0, 5, 0, 3,
966                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
967                             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);
968 
969 
970                     ostei_general_vrr_I(8, 0, 6, 0, 2,
971                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
972                             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);
973 
974 
975                     ostei_general_vrr1_K(8, 13,
976                             one_over_2q, a_over_q, aoq_PQ, Q_PA,
977                             PRIM_INT__s_s_k_s, PRIM_INT__s_s_i_s, PRIM_INT__s_s_l_s);
978 
979 
980                     ostei_general_vrr_I(1, 0, 8, 0, 9,
981                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
982                             PRIM_INT__s_s_l_s, NULL, NULL, PRIM_INT__s_s_k_s, NULL, PRIM_INT__p_s_l_s);
983 
984 
985                     ostei_general_vrr_I(2, 0, 8, 0, 8,
986                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
987                             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);
988 
989 
990                     ostei_general_vrr_I(3, 0, 8, 0, 7,
991                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
992                             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);
993 
994 
995                     ostei_general_vrr_I(4, 0, 8, 0, 6,
996                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
997                             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);
998 
999 
1000                     ostei_general_vrr_I(5, 0, 8, 0, 5,
1001                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1002                             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);
1003 
1004 
1005                     ostei_general_vrr_I(6, 0, 8, 0, 4,
1006                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1007                             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);
1008 
1009 
1010                     ostei_general_vrr_I(7, 0, 8, 0, 3,
1011                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1012                             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);
1013 
1014 
1015                     ostei_general_vrr_I(8, 0, 7, 0, 2,
1016                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1017                             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);
1018 
1019 
1020 
1021                     // Forming PRIM_INT__f_s_s_s[7 * 10];
1022                     for(n = 0; n < 7; ++n)  // loop over orders of auxiliary function
1023                     {
1024 
1025                         PRIM_INT__f_s_s_s[n * 10 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__d_s_s_s[n * 6 + 0]);
1026                         PRIM_INT__f_s_s_s[n * 10 + 0] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 0], PRIM_INT__f_s_s_s[n * 10 + 0]);
1027                         PRIM_INT__f_s_s_s[n * 10 + 0] = SIMINT_FMADD( vrr_const_2_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_s_s[n * 3 + 0]), PRIM_INT__f_s_s_s[n * 10 + 0]);
1028 
1029                         PRIM_INT__f_s_s_s[n * 10 + 6] = SIMINT_MUL(P_PA[1], PRIM_INT__d_s_s_s[n * 6 + 3]);
1030                         PRIM_INT__f_s_s_s[n * 10 + 6] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 3], PRIM_INT__f_s_s_s[n * 10 + 6]);
1031                         PRIM_INT__f_s_s_s[n * 10 + 6] = SIMINT_FMADD( vrr_const_2_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_s_s[n * 3 + 1]), PRIM_INT__f_s_s_s[n * 10 + 6]);
1032 
1033                         PRIM_INT__f_s_s_s[n * 10 + 9] = SIMINT_MUL(P_PA[2], PRIM_INT__d_s_s_s[n * 6 + 5]);
1034                         PRIM_INT__f_s_s_s[n * 10 + 9] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 5], PRIM_INT__f_s_s_s[n * 10 + 9]);
1035                         PRIM_INT__f_s_s_s[n * 10 + 9] = SIMINT_FMADD( vrr_const_2_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_s_s[n * 3 + 2]), PRIM_INT__f_s_s_s[n * 10 + 9]);
1036 
1037                     }
1038 
1039 
1040                     VRR_I_g_s_p_s(
1041                             PRIM_INT__g_s_p_s,
1042                             PRIM_INT__f_s_p_s,
1043                             PRIM_INT__d_s_p_s,
1044                             PRIM_INT__f_s_s_s,
1045                             P_PA,
1046                             a_over_p,
1047                             aop_PQ,
1048                             one_over_2p,
1049                             one_over_2pq,
1050                             6);
1051 
1052 
1053                     ostei_general_vrr_I(5, 0, 2, 0, 5,
1054                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1055                             PRIM_INT__g_s_d_s, PRIM_INT__f_s_d_s, NULL, PRIM_INT__g_s_p_s, NULL, PRIM_INT__h_s_d_s);
1056 
1057 
1058                     ostei_general_vrr_I(6, 0, 3, 0, 4,
1059                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1060                             PRIM_INT__h_s_f_s, PRIM_INT__g_s_f_s, NULL, PRIM_INT__h_s_d_s, NULL, PRIM_INT__i_s_f_s);
1061 
1062 
1063                     ostei_general_vrr_I(7, 0, 4, 0, 3,
1064                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1065                             PRIM_INT__i_s_g_s, PRIM_INT__h_s_g_s, NULL, PRIM_INT__i_s_f_s, NULL, PRIM_INT__k_s_g_s);
1066 
1067 
1068                     ostei_general_vrr_I(8, 0, 5, 0, 2,
1069                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1070                             PRIM_INT__k_s_h_s, PRIM_INT__i_s_h_s, NULL, PRIM_INT__k_s_g_s, NULL, PRIM_INT__l_s_h_s);
1071 
1072 
1073                     ostei_general_vrr_I(9, 0, 6, 0, 1,
1074                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1075                             PRIM_INT__l_s_i_s, PRIM_INT__k_s_i_s, NULL, PRIM_INT__l_s_h_s, NULL, PRIM_INT__m_s_i_s);
1076 
1077 
1078                     ostei_general_vrr1_K(9, 12,
1079                             one_over_2q, a_over_q, aoq_PQ, Q_PA,
1080                             PRIM_INT__s_s_l_s, PRIM_INT__s_s_k_s, PRIM_INT__s_s_m_s);
1081 
1082 
1083                     ostei_general_vrr_I(1, 0, 9, 0, 9,
1084                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1085                             PRIM_INT__s_s_m_s, NULL, NULL, PRIM_INT__s_s_l_s, NULL, PRIM_INT__p_s_m_s);
1086 
1087 
1088                     ostei_general_vrr_I(2, 0, 9, 0, 8,
1089                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1090                             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);
1091 
1092 
1093                     ostei_general_vrr_I(3, 0, 9, 0, 7,
1094                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1095                             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);
1096 
1097 
1098                     ostei_general_vrr_I(4, 0, 9, 0, 6,
1099                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1100                             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);
1101 
1102 
1103                     ostei_general_vrr_I(5, 0, 9, 0, 5,
1104                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1105                             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);
1106 
1107 
1108                     ostei_general_vrr_I(6, 0, 9, 0, 4,
1109                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1110                             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);
1111 
1112 
1113                     ostei_general_vrr_I(7, 0, 9, 0, 3,
1114                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1115                             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);
1116 
1117 
1118                     ostei_general_vrr_I(8, 0, 8, 0, 2,
1119                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1120                             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);
1121 
1122 
1123                     ostei_general_vrr_I(9, 0, 7, 0, 1,
1124                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1125                             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);
1126 
1127 
1128                     ostei_general_vrr1_K(10, 11,
1129                             one_over_2q, a_over_q, aoq_PQ, Q_PA,
1130                             PRIM_INT__s_s_m_s, PRIM_INT__s_s_l_s, PRIM_INT__s_s_n_s);
1131 
1132 
1133                     ostei_general_vrr_I(1, 0, 10, 0, 9,
1134                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1135                             PRIM_INT__s_s_n_s, NULL, NULL, PRIM_INT__s_s_m_s, NULL, PRIM_INT__p_s_n_s);
1136 
1137 
1138                     ostei_general_vrr_I(2, 0, 10, 0, 8,
1139                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1140                             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);
1141 
1142 
1143                     ostei_general_vrr_I(3, 0, 10, 0, 7,
1144                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1145                             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);
1146 
1147 
1148                     ostei_general_vrr_I(4, 0, 10, 0, 6,
1149                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1150                             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);
1151 
1152 
1153                     ostei_general_vrr_I(5, 0, 10, 0, 5,
1154                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1155                             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);
1156 
1157 
1158                     ostei_general_vrr_I(6, 0, 10, 0, 4,
1159                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1160                             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);
1161 
1162 
1163                     ostei_general_vrr_I(7, 0, 10, 0, 3,
1164                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1165                             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);
1166 
1167 
1168                     ostei_general_vrr_I(8, 0, 9, 0, 2,
1169                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1170                             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);
1171 
1172 
1173                     ostei_general_vrr_I(9, 0, 8, 0, 1,
1174                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1175                             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);
1176 
1177 
1178                     ostei_general_vrr1_K(11, 10,
1179                             one_over_2q, a_over_q, aoq_PQ, Q_PA,
1180                             PRIM_INT__s_s_n_s, PRIM_INT__s_s_m_s, PRIM_INT__s_s_o_s);
1181 
1182 
1183                     ostei_general_vrr_I(1, 0, 11, 0, 9,
1184                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1185                             PRIM_INT__s_s_o_s, NULL, NULL, PRIM_INT__s_s_n_s, NULL, PRIM_INT__p_s_o_s);
1186 
1187 
1188                     ostei_general_vrr_I(2, 0, 11, 0, 8,
1189                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1190                             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);
1191 
1192 
1193                     ostei_general_vrr_I(3, 0, 11, 0, 7,
1194                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1195                             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);
1196 
1197 
1198                     ostei_general_vrr_I(4, 0, 11, 0, 6,
1199                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1200                             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);
1201 
1202 
1203                     ostei_general_vrr_I(5, 0, 11, 0, 5,
1204                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1205                             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);
1206 
1207 
1208                     ostei_general_vrr_I(6, 0, 11, 0, 4,
1209                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1210                             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);
1211 
1212 
1213                     ostei_general_vrr_I(7, 0, 11, 0, 3,
1214                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1215                             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);
1216 
1217 
1218                     ostei_general_vrr_I(8, 0, 10, 0, 2,
1219                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1220                             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);
1221 
1222 
1223                     ostei_general_vrr_I(9, 0, 9, 0, 1,
1224                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1225                             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);
1226 
1227 
1228                     ostei_general_vrr_I(8, 0, 11, 0, 2,
1229                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1230                             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);
1231 
1232 
1233                     ostei_general_vrr_I(9, 0, 10, 0, 1,
1234                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1235                             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);
1236 
1237 
1238                     ostei_general_vrr_I(9, 0, 11, 0, 1,
1239                             one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1240                             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);
1241 
1242 
1243 
1244 
1245                     ////////////////////////////////////
1246                     // Accumulate contracted integrals
1247                     ////////////////////////////////////
1248                     if(lastoffset == 0)
1249                     {
1250                         contract_all(1008, PRIM_INT__k_s_i_s, PRIM_PTR_INT__k_s_i_s);
1251                         contract_all(1296, PRIM_INT__k_s_k_s, PRIM_PTR_INT__k_s_k_s);
1252                         contract_all(1620, PRIM_INT__k_s_l_s, PRIM_PTR_INT__k_s_l_s);
1253                         contract_all(1980, PRIM_INT__k_s_m_s, PRIM_PTR_INT__k_s_m_s);
1254                         contract_all(2376, PRIM_INT__k_s_n_s, PRIM_PTR_INT__k_s_n_s);
1255                         contract_all(2808, PRIM_INT__k_s_o_s, PRIM_PTR_INT__k_s_o_s);
1256                         contract_all(1260, PRIM_INT__l_s_i_s, PRIM_PTR_INT__l_s_i_s);
1257                         contract_all(1620, PRIM_INT__l_s_k_s, PRIM_PTR_INT__l_s_k_s);
1258                         contract_all(2025, PRIM_INT__l_s_l_s, PRIM_PTR_INT__l_s_l_s);
1259                         contract_all(2475, PRIM_INT__l_s_m_s, PRIM_PTR_INT__l_s_m_s);
1260                         contract_all(2970, PRIM_INT__l_s_n_s, PRIM_PTR_INT__l_s_n_s);
1261                         contract_all(3510, PRIM_INT__l_s_o_s, PRIM_PTR_INT__l_s_o_s);
1262                         contract_all(1540, PRIM_INT__m_s_i_s, PRIM_PTR_INT__m_s_i_s);
1263                         contract_all(1980, PRIM_INT__m_s_k_s, PRIM_PTR_INT__m_s_k_s);
1264                         contract_all(2475, PRIM_INT__m_s_l_s, PRIM_PTR_INT__m_s_l_s);
1265                         contract_all(3025, PRIM_INT__m_s_m_s, PRIM_PTR_INT__m_s_m_s);
1266                         contract_all(3630, PRIM_INT__m_s_n_s, PRIM_PTR_INT__m_s_n_s);
1267                         contract_all(4290, PRIM_INT__m_s_o_s, PRIM_PTR_INT__m_s_o_s);
1268                     }
1269                     else
1270                     {
1271                         contract(1008, shelloffsets, PRIM_INT__k_s_i_s, PRIM_PTR_INT__k_s_i_s);
1272                         contract(1296, shelloffsets, PRIM_INT__k_s_k_s, PRIM_PTR_INT__k_s_k_s);
1273                         contract(1620, shelloffsets, PRIM_INT__k_s_l_s, PRIM_PTR_INT__k_s_l_s);
1274                         contract(1980, shelloffsets, PRIM_INT__k_s_m_s, PRIM_PTR_INT__k_s_m_s);
1275                         contract(2376, shelloffsets, PRIM_INT__k_s_n_s, PRIM_PTR_INT__k_s_n_s);
1276                         contract(2808, shelloffsets, PRIM_INT__k_s_o_s, PRIM_PTR_INT__k_s_o_s);
1277                         contract(1260, shelloffsets, PRIM_INT__l_s_i_s, PRIM_PTR_INT__l_s_i_s);
1278                         contract(1620, shelloffsets, PRIM_INT__l_s_k_s, PRIM_PTR_INT__l_s_k_s);
1279                         contract(2025, shelloffsets, PRIM_INT__l_s_l_s, PRIM_PTR_INT__l_s_l_s);
1280                         contract(2475, shelloffsets, PRIM_INT__l_s_m_s, PRIM_PTR_INT__l_s_m_s);
1281                         contract(2970, shelloffsets, PRIM_INT__l_s_n_s, PRIM_PTR_INT__l_s_n_s);
1282                         contract(3510, shelloffsets, PRIM_INT__l_s_o_s, PRIM_PTR_INT__l_s_o_s);
1283                         contract(1540, shelloffsets, PRIM_INT__m_s_i_s, PRIM_PTR_INT__m_s_i_s);
1284                         contract(1980, shelloffsets, PRIM_INT__m_s_k_s, PRIM_PTR_INT__m_s_k_s);
1285                         contract(2475, shelloffsets, PRIM_INT__m_s_l_s, PRIM_PTR_INT__m_s_l_s);
1286                         contract(3025, shelloffsets, PRIM_INT__m_s_m_s, PRIM_PTR_INT__m_s_m_s);
1287                         contract(3630, shelloffsets, PRIM_INT__m_s_n_s, PRIM_PTR_INT__m_s_n_s);
1288                         contract(4290, shelloffsets, PRIM_INT__m_s_o_s, PRIM_PTR_INT__m_s_o_s);
1289                         PRIM_PTR_INT__k_s_i_s += lastoffset*1008;
1290                         PRIM_PTR_INT__k_s_k_s += lastoffset*1296;
1291                         PRIM_PTR_INT__k_s_l_s += lastoffset*1620;
1292                         PRIM_PTR_INT__k_s_m_s += lastoffset*1980;
1293                         PRIM_PTR_INT__k_s_n_s += lastoffset*2376;
1294                         PRIM_PTR_INT__k_s_o_s += lastoffset*2808;
1295                         PRIM_PTR_INT__l_s_i_s += lastoffset*1260;
1296                         PRIM_PTR_INT__l_s_k_s += lastoffset*1620;
1297                         PRIM_PTR_INT__l_s_l_s += lastoffset*2025;
1298                         PRIM_PTR_INT__l_s_m_s += lastoffset*2475;
1299                         PRIM_PTR_INT__l_s_n_s += lastoffset*2970;
1300                         PRIM_PTR_INT__l_s_o_s += lastoffset*3510;
1301                         PRIM_PTR_INT__m_s_i_s += lastoffset*1540;
1302                         PRIM_PTR_INT__m_s_k_s += lastoffset*1980;
1303                         PRIM_PTR_INT__m_s_l_s += lastoffset*2475;
1304                         PRIM_PTR_INT__m_s_m_s += lastoffset*3025;
1305                         PRIM_PTR_INT__m_s_n_s += lastoffset*3630;
1306                         PRIM_PTR_INT__m_s_o_s += lastoffset*4290;
1307                     }
1308 
1309                 }  // close loop over j
1310             }  // close loop over i
1311 
1312             //Advance to the next batch
1313             jstart = SIMINT_SIMD_ROUND(jend);
1314 
1315             //////////////////////////////////////////////
1316             // Contracted integrals: Horizontal recurrance
1317             //////////////////////////////////////////////
1318 
1319 
1320             const double hAB[3] = { P.AB_x[ab], P.AB_y[ab], P.AB_z[ab] };
1321 
1322 
1323             for(abcd = 0; abcd < nshellbatch; ++abcd, ++real_abcd)
1324             {
1325                 const double hCD[3] = { Q.AB_x[cd+abcd], Q.AB_y[cd+abcd], Q.AB_z[cd+abcd] };
1326 
1327                 // set up HRR pointers
1328                 double const * restrict HRR_INT__k_s_i_s = INT__k_s_i_s + abcd * 1008;
1329                 double const * restrict HRR_INT__k_s_k_s = INT__k_s_k_s + abcd * 1296;
1330                 double const * restrict HRR_INT__k_s_l_s = INT__k_s_l_s + abcd * 1620;
1331                 double const * restrict HRR_INT__k_s_m_s = INT__k_s_m_s + abcd * 1980;
1332                 double const * restrict HRR_INT__k_s_n_s = INT__k_s_n_s + abcd * 2376;
1333                 double const * restrict HRR_INT__k_s_o_s = INT__k_s_o_s + abcd * 2808;
1334                 double const * restrict HRR_INT__l_s_i_s = INT__l_s_i_s + abcd * 1260;
1335                 double const * restrict HRR_INT__l_s_k_s = INT__l_s_k_s + abcd * 1620;
1336                 double const * restrict HRR_INT__l_s_l_s = INT__l_s_l_s + abcd * 2025;
1337                 double const * restrict HRR_INT__l_s_m_s = INT__l_s_m_s + abcd * 2475;
1338                 double const * restrict HRR_INT__l_s_n_s = INT__l_s_n_s + abcd * 2970;
1339                 double const * restrict HRR_INT__l_s_o_s = INT__l_s_o_s + abcd * 3510;
1340                 double const * restrict HRR_INT__m_s_i_s = INT__m_s_i_s + abcd * 1540;
1341                 double const * restrict HRR_INT__m_s_k_s = INT__m_s_k_s + abcd * 1980;
1342                 double const * restrict HRR_INT__m_s_l_s = INT__m_s_l_s + abcd * 2475;
1343                 double const * restrict HRR_INT__m_s_m_s = INT__m_s_m_s + abcd * 3025;
1344                 double const * restrict HRR_INT__m_s_n_s = INT__m_s_n_s + abcd * 3630;
1345                 double const * restrict HRR_INT__m_s_o_s = INT__m_s_o_s + abcd * 4290;
1346                 double * restrict HRR_INT__k_d_i_h = INT__k_d_i_h + real_abcd * 127008;
1347 
1348                 // form INT__k_p_i_s
1349                 ostei_general_hrr_J(7, 1, 6, 0, hAB, HRR_INT__l_s_i_s, HRR_INT__k_s_i_s, HRR_INT__k_p_i_s);
1350 
1351                 // form INT__k_p_k_s
1352                 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);
1353 
1354                 // form INT__k_p_l_s
1355                 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);
1356 
1357                 // form INT__k_p_m_s
1358                 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);
1359 
1360                 // form INT__k_p_n_s
1361                 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);
1362 
1363                 // form INT__k_p_o_s
1364                 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);
1365 
1366                 // form INT__l_p_i_s
1367                 ostei_general_hrr_J(8, 1, 6, 0, hAB, HRR_INT__m_s_i_s, HRR_INT__l_s_i_s, HRR_INT__l_p_i_s);
1368 
1369                 // form INT__l_p_k_s
1370                 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);
1371 
1372                 // form INT__l_p_l_s
1373                 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);
1374 
1375                 // form INT__l_p_m_s
1376                 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);
1377 
1378                 // form INT__l_p_n_s
1379                 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);
1380 
1381                 // form INT__l_p_o_s
1382                 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);
1383 
1384                 // form INT__k_d_i_s
1385                 ostei_general_hrr_J(7, 2, 6, 0, hAB, HRR_INT__l_p_i_s, HRR_INT__k_p_i_s, HRR_INT__k_d_i_s);
1386 
1387                 // form INT__k_d_k_s
1388                 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);
1389 
1390                 // form INT__k_d_l_s
1391                 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);
1392 
1393                 // form INT__k_d_m_s
1394                 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);
1395 
1396                 // form INT__k_d_n_s
1397                 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);
1398 
1399                 // form INT__k_d_o_s
1400                 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);
1401 
1402                 // form INT__k_d_i_p
1403                 ostei_general_hrr_L(7, 2, 6, 1, hCD, HRR_INT__k_d_k_s, HRR_INT__k_d_i_s, HRR_INT__k_d_i_p);
1404 
1405                 // form INT__k_d_k_p
1406                 ostei_general_hrr_L(7, 2, 7, 1, hCD, HRR_INT__k_d_l_s, HRR_INT__k_d_k_s, HRR_INT__k_d_k_p);
1407 
1408                 // form INT__k_d_l_p
1409                 ostei_general_hrr_L(7, 2, 8, 1, hCD, HRR_INT__k_d_m_s, HRR_INT__k_d_l_s, HRR_INT__k_d_l_p);
1410 
1411                 // form INT__k_d_m_p
1412                 ostei_general_hrr_L(7, 2, 9, 1, hCD, HRR_INT__k_d_n_s, HRR_INT__k_d_m_s, HRR_INT__k_d_m_p);
1413 
1414                 // form INT__k_d_n_p
1415                 ostei_general_hrr_L(7, 2, 10, 1, hCD, HRR_INT__k_d_o_s, HRR_INT__k_d_n_s, HRR_INT__k_d_n_p);
1416 
1417                 // form INT__k_d_i_d
1418                 ostei_general_hrr_L(7, 2, 6, 2, hCD, HRR_INT__k_d_k_p, HRR_INT__k_d_i_p, HRR_INT__k_d_i_d);
1419 
1420                 // form INT__k_d_k_d
1421                 ostei_general_hrr_L(7, 2, 7, 2, hCD, HRR_INT__k_d_l_p, HRR_INT__k_d_k_p, HRR_INT__k_d_k_d);
1422 
1423                 // form INT__k_d_l_d
1424                 ostei_general_hrr_L(7, 2, 8, 2, hCD, HRR_INT__k_d_m_p, HRR_INT__k_d_l_p, HRR_INT__k_d_l_d);
1425 
1426                 // form INT__k_d_m_d
1427                 ostei_general_hrr_L(7, 2, 9, 2, hCD, HRR_INT__k_d_n_p, HRR_INT__k_d_m_p, HRR_INT__k_d_m_d);
1428 
1429                 // form INT__k_d_i_f
1430                 ostei_general_hrr_L(7, 2, 6, 3, hCD, HRR_INT__k_d_k_d, HRR_INT__k_d_i_d, HRR_INT__k_d_i_f);
1431 
1432                 // form INT__k_d_k_f
1433                 ostei_general_hrr_L(7, 2, 7, 3, hCD, HRR_INT__k_d_l_d, HRR_INT__k_d_k_d, HRR_INT__k_d_k_f);
1434 
1435                 // form INT__k_d_l_f
1436                 ostei_general_hrr_L(7, 2, 8, 3, hCD, HRR_INT__k_d_m_d, HRR_INT__k_d_l_d, HRR_INT__k_d_l_f);
1437 
1438                 // form INT__k_d_i_g
1439                 ostei_general_hrr_L(7, 2, 6, 4, hCD, HRR_INT__k_d_k_f, HRR_INT__k_d_i_f, HRR_INT__k_d_i_g);
1440 
1441                 // form INT__k_d_k_g
1442                 ostei_general_hrr_L(7, 2, 7, 4, hCD, HRR_INT__k_d_l_f, HRR_INT__k_d_k_f, HRR_INT__k_d_k_g);
1443 
1444                 // form INT__k_d_i_h
1445                 ostei_general_hrr_L(7, 2, 6, 5, hCD, HRR_INT__k_d_k_g, HRR_INT__k_d_i_g, HRR_INT__k_d_i_h);
1446 
1447 
1448             }  // close HRR loop
1449 
1450 
1451         }   // close loop cdbatch
1452 
1453         istart = iend;
1454     }  // close loop over ab
1455 
1456     return P.nshell12_clip * Q.nshell12_clip;
1457 }
1458 
ostei_d_k_i_h(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__d_k_i_h)1459 int ostei_d_k_i_h(struct simint_multi_shellpair const P,
1460                   struct simint_multi_shellpair const Q,
1461                   double screen_tol,
1462                   double * const restrict work,
1463                   double * const restrict INT__d_k_i_h)
1464 {
1465     double P_AB[3*P.nshell12];
1466     struct simint_multi_shellpair P_tmp = P;
1467     P_tmp.PA_x = P.PB_x;  P_tmp.PA_y = P.PB_y;  P_tmp.PA_z = P.PB_z;
1468     P_tmp.PB_x = P.PA_x;  P_tmp.PB_y = P.PA_y;  P_tmp.PB_z = P.PA_z;
1469     P_tmp.AB_x = P_AB;
1470     P_tmp.AB_y = P_AB + P.nshell12;
1471     P_tmp.AB_z = P_AB + 2*P.nshell12;
1472 
1473     for(int i = 0; i < P.nshell12; i++)
1474     {
1475         P_tmp.AB_x[i] = -P.AB_x[i];
1476         P_tmp.AB_y[i] = -P.AB_y[i];
1477         P_tmp.AB_z[i] = -P.AB_z[i];
1478     }
1479 
1480     int ret = ostei_k_d_i_h(P_tmp, Q, screen_tol, work, INT__d_k_i_h);
1481     double buffer[127008] SIMINT_ALIGN_ARRAY_DBL;
1482 
1483     for(int q = 0; q < ret; q++)
1484     {
1485         int idx = 0;
1486         for(int a = 0; a < 6; ++a)
1487         for(int b = 0; b < 36; ++b)
1488         for(int c = 0; c < 28; ++c)
1489         for(int d = 0; d < 21; ++d)
1490             buffer[idx++] = INT__d_k_i_h[q*127008+b*3528+a*588+c*21+d];
1491 
1492         memcpy(INT__d_k_i_h+q*127008, buffer, 127008*sizeof(double));
1493     }
1494 
1495     return ret;
1496 }
1497 
ostei_k_d_h_i(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__k_d_h_i)1498 int ostei_k_d_h_i(struct simint_multi_shellpair const P,
1499                   struct simint_multi_shellpair const Q,
1500                   double screen_tol,
1501                   double * const restrict work,
1502                   double * const restrict INT__k_d_h_i)
1503 {
1504     double Q_AB[3*Q.nshell12];
1505     struct simint_multi_shellpair Q_tmp = Q;
1506     Q_tmp.PA_x = Q.PB_x;  Q_tmp.PA_y = Q.PB_y;  Q_tmp.PA_z = Q.PB_z;
1507     Q_tmp.PB_x = Q.PA_x;  Q_tmp.PB_y = Q.PA_y;  Q_tmp.PB_z = Q.PA_z;
1508     Q_tmp.AB_x = Q_AB;
1509     Q_tmp.AB_y = Q_AB + Q.nshell12;
1510     Q_tmp.AB_z = Q_AB + 2*Q.nshell12;
1511 
1512     for(int i = 0; i < Q.nshell12; i++)
1513     {
1514         Q_tmp.AB_x[i] = -Q.AB_x[i];
1515         Q_tmp.AB_y[i] = -Q.AB_y[i];
1516         Q_tmp.AB_z[i] = -Q.AB_z[i];
1517     }
1518 
1519     int ret = ostei_k_d_i_h(P, Q_tmp, screen_tol, work, INT__k_d_h_i);
1520     double buffer[127008] SIMINT_ALIGN_ARRAY_DBL;
1521 
1522     for(int q = 0; q < ret; q++)
1523     {
1524         int idx = 0;
1525         for(int a = 0; a < 36; ++a)
1526         for(int b = 0; b < 6; ++b)
1527         for(int c = 0; c < 21; ++c)
1528         for(int d = 0; d < 28; ++d)
1529             buffer[idx++] = INT__k_d_h_i[q*127008+a*3528+b*588+d*21+c];
1530 
1531         memcpy(INT__k_d_h_i+q*127008, buffer, 127008*sizeof(double));
1532     }
1533 
1534     return ret;
1535 }
1536 
ostei_d_k_h_i(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__d_k_h_i)1537 int ostei_d_k_h_i(struct simint_multi_shellpair const P,
1538                   struct simint_multi_shellpair const Q,
1539                   double screen_tol,
1540                   double * const restrict work,
1541                   double * const restrict INT__d_k_h_i)
1542 {
1543     double P_AB[3*P.nshell12];
1544     struct simint_multi_shellpair P_tmp = P;
1545     P_tmp.PA_x = P.PB_x;  P_tmp.PA_y = P.PB_y;  P_tmp.PA_z = P.PB_z;
1546     P_tmp.PB_x = P.PA_x;  P_tmp.PB_y = P.PA_y;  P_tmp.PB_z = P.PA_z;
1547     P_tmp.AB_x = P_AB;
1548     P_tmp.AB_y = P_AB + P.nshell12;
1549     P_tmp.AB_z = P_AB + 2*P.nshell12;
1550 
1551     for(int i = 0; i < P.nshell12; i++)
1552     {
1553         P_tmp.AB_x[i] = -P.AB_x[i];
1554         P_tmp.AB_y[i] = -P.AB_y[i];
1555         P_tmp.AB_z[i] = -P.AB_z[i];
1556     }
1557 
1558     double Q_AB[3*Q.nshell12];
1559     struct simint_multi_shellpair Q_tmp = Q;
1560     Q_tmp.PA_x = Q.PB_x;  Q_tmp.PA_y = Q.PB_y;  Q_tmp.PA_z = Q.PB_z;
1561     Q_tmp.PB_x = Q.PA_x;  Q_tmp.PB_y = Q.PA_y;  Q_tmp.PB_z = Q.PA_z;
1562     Q_tmp.AB_x = Q_AB;
1563     Q_tmp.AB_y = Q_AB + Q.nshell12;
1564     Q_tmp.AB_z = Q_AB + 2*Q.nshell12;
1565 
1566     for(int i = 0; i < Q.nshell12; i++)
1567     {
1568         Q_tmp.AB_x[i] = -Q.AB_x[i];
1569         Q_tmp.AB_y[i] = -Q.AB_y[i];
1570         Q_tmp.AB_z[i] = -Q.AB_z[i];
1571     }
1572 
1573     int ret = ostei_k_d_i_h(P_tmp, Q_tmp, screen_tol, work, INT__d_k_h_i);
1574     double buffer[127008] SIMINT_ALIGN_ARRAY_DBL;
1575 
1576     for(int q = 0; q < ret; q++)
1577     {
1578         int idx = 0;
1579         for(int a = 0; a < 6; ++a)
1580         for(int b = 0; b < 36; ++b)
1581         for(int c = 0; c < 21; ++c)
1582         for(int d = 0; d < 28; ++d)
1583             buffer[idx++] = INT__d_k_h_i[q*127008+b*3528+a*588+d*21+c];
1584 
1585         memcpy(INT__d_k_h_i+q*127008, buffer, 127008*sizeof(double));
1586     }
1587 
1588     return ret;
1589 }
1590 
1591