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_g_g_f_f(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__g_g_f_f)8 int ostei_g_g_f_f(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__g_g_f_f)
13 {
14 
15     SIMINT_ASSUME_ALIGN_DBL(work);
16     SIMINT_ASSUME_ALIGN_DBL(INT__g_g_f_f);
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__g_s_f_s = work + (SIMINT_NSHELL_SIMD * 0);
30     double * const INT__g_s_g_s = work + (SIMINT_NSHELL_SIMD * 150);
31     double * const INT__g_s_h_s = work + (SIMINT_NSHELL_SIMD * 375);
32     double * const INT__g_s_i_s = work + (SIMINT_NSHELL_SIMD * 690);
33     double * const INT__h_s_f_s = work + (SIMINT_NSHELL_SIMD * 1110);
34     double * const INT__h_s_g_s = work + (SIMINT_NSHELL_SIMD * 1320);
35     double * const INT__h_s_h_s = work + (SIMINT_NSHELL_SIMD * 1635);
36     double * const INT__h_s_i_s = work + (SIMINT_NSHELL_SIMD * 2076);
37     double * const INT__i_s_f_s = work + (SIMINT_NSHELL_SIMD * 2664);
38     double * const INT__i_s_g_s = work + (SIMINT_NSHELL_SIMD * 2944);
39     double * const INT__i_s_h_s = work + (SIMINT_NSHELL_SIMD * 3364);
40     double * const INT__i_s_i_s = work + (SIMINT_NSHELL_SIMD * 3952);
41     double * const INT__k_s_f_s = work + (SIMINT_NSHELL_SIMD * 4736);
42     double * const INT__k_s_g_s = work + (SIMINT_NSHELL_SIMD * 5096);
43     double * const INT__k_s_h_s = work + (SIMINT_NSHELL_SIMD * 5636);
44     double * const INT__k_s_i_s = work + (SIMINT_NSHELL_SIMD * 6392);
45     double * const INT__l_s_f_s = work + (SIMINT_NSHELL_SIMD * 7400);
46     double * const INT__l_s_g_s = work + (SIMINT_NSHELL_SIMD * 7850);
47     double * const INT__l_s_h_s = work + (SIMINT_NSHELL_SIMD * 8525);
48     double * const INT__l_s_i_s = work + (SIMINT_NSHELL_SIMD * 9470);
49     SIMINT_DBLTYPE * const primwork = (SIMINT_DBLTYPE *)(work + SIMINT_NSHELL_SIMD*10730);
50     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_s_s = primwork + 0;
51     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_p_s = primwork + 15;
52     SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_d_s = primwork + 33;
53     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_s_s = primwork + 63;
54     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_p_s = primwork + 105;
55     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_d_s = primwork + 159;
56     SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_f_s = primwork + 249;
57     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_s_s = primwork + 369;
58     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_p_s = primwork + 447;
59     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_d_s = primwork + 555;
60     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_f_s = primwork + 735;
61     SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_g_s = primwork + 975;
62     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_s_s = primwork + 1245;
63     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_p_s = primwork + 1365;
64     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_d_s = primwork + 1545;
65     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_f_s = primwork + 1845;
66     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_g_s = primwork + 2245;
67     SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_h_s = primwork + 2695;
68     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_s_s = primwork + 3115;
69     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_p_s = primwork + 3280;
70     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_d_s = primwork + 3550;
71     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_f_s = primwork + 4000;
72     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_g_s = primwork + 4600;
73     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_h_s = primwork + 5275;
74     SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_i_s = primwork + 5905;
75     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_s_s = primwork + 6325;
76     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_p_s = primwork + 6535;
77     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_d_s = primwork + 6913;
78     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_f_s = primwork + 7543;
79     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_g_s = primwork + 8383;
80     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_h_s = primwork + 9328;
81     SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_i_s = primwork + 10210;
82     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_s_s = primwork + 10798;
83     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_p_s = primwork + 11050;
84     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_d_s = primwork + 11554;
85     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_f_s = primwork + 12394;
86     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_g_s = primwork + 13514;
87     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_h_s = primwork + 14774;
88     SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_i_s = primwork + 15950;
89     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_s_s = primwork + 16734;
90     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_p_s = primwork + 17022;
91     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_d_s = primwork + 17670;
92     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_f_s = primwork + 18750;
93     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_g_s = primwork + 20190;
94     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_h_s = primwork + 21810;
95     SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_i_s = primwork + 23322;
96     SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_s_s = primwork + 24330;
97     SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_p_s = primwork + 24645;
98     SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_d_s = primwork + 25455;
99     SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_f_s = primwork + 26805;
100     SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_g_s = primwork + 28605;
101     SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_h_s = primwork + 30630;
102     SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_i_s = primwork + 32520;
103     double * const hrrwork = (double *)(primwork + 33780);
104     double * const HRR_INT__g_p_f_s = hrrwork + 0;
105     double * const HRR_INT__g_p_g_s = hrrwork + 450;
106     double * const HRR_INT__g_p_h_s = hrrwork + 1125;
107     double * const HRR_INT__g_p_i_s = hrrwork + 2070;
108     double * const HRR_INT__g_d_f_s = hrrwork + 3330;
109     double * const HRR_INT__g_d_g_s = hrrwork + 4230;
110     double * const HRR_INT__g_d_h_s = hrrwork + 5580;
111     double * const HRR_INT__g_d_i_s = hrrwork + 7470;
112     double * const HRR_INT__g_f_f_s = hrrwork + 9990;
113     double * const HRR_INT__g_f_g_s = hrrwork + 11490;
114     double * const HRR_INT__g_f_h_s = hrrwork + 13740;
115     double * const HRR_INT__g_f_i_s = hrrwork + 16890;
116     double * const HRR_INT__g_g_f_s = hrrwork + 21090;
117     double * const HRR_INT__g_g_f_p = hrrwork + 23340;
118     double * const HRR_INT__g_g_f_d = hrrwork + 30090;
119     double * const HRR_INT__g_g_g_s = hrrwork + 43590;
120     double * const HRR_INT__g_g_g_p = hrrwork + 46965;
121     double * const HRR_INT__g_g_g_d = hrrwork + 57090;
122     double * const HRR_INT__g_g_h_s = hrrwork + 77340;
123     double * const HRR_INT__g_g_h_p = hrrwork + 82065;
124     double * const HRR_INT__g_g_i_s = hrrwork + 96240;
125     double * const HRR_INT__h_p_f_s = hrrwork + 102540;
126     double * const HRR_INT__h_p_g_s = hrrwork + 103170;
127     double * const HRR_INT__h_p_h_s = hrrwork + 104115;
128     double * const HRR_INT__h_p_i_s = hrrwork + 105438;
129     double * const HRR_INT__h_d_f_s = hrrwork + 107202;
130     double * const HRR_INT__h_d_g_s = hrrwork + 108462;
131     double * const HRR_INT__h_d_h_s = hrrwork + 110352;
132     double * const HRR_INT__h_d_i_s = hrrwork + 112998;
133     double * const HRR_INT__h_f_f_s = hrrwork + 116526;
134     double * const HRR_INT__h_f_g_s = hrrwork + 118626;
135     double * const HRR_INT__h_f_h_s = hrrwork + 121776;
136     double * const HRR_INT__h_f_i_s = hrrwork + 126186;
137     double * const HRR_INT__i_p_f_s = hrrwork + 132066;
138     double * const HRR_INT__i_p_g_s = hrrwork + 132906;
139     double * const HRR_INT__i_p_h_s = hrrwork + 134166;
140     double * const HRR_INT__i_p_i_s = hrrwork + 135930;
141     double * const HRR_INT__i_d_f_s = hrrwork + 138282;
142     double * const HRR_INT__i_d_g_s = hrrwork + 139962;
143     double * const HRR_INT__i_d_h_s = hrrwork + 142482;
144     double * const HRR_INT__i_d_i_s = hrrwork + 146010;
145     double * const HRR_INT__k_p_f_s = hrrwork + 150714;
146     double * const HRR_INT__k_p_g_s = hrrwork + 151794;
147     double * const HRR_INT__k_p_h_s = hrrwork + 153414;
148     double * const HRR_INT__k_p_i_s = hrrwork + 155682;
149 
150 
151     // Create constants
152     const SIMINT_DBLTYPE const_1 = SIMINT_DBLSET1(1);
153     const SIMINT_DBLTYPE const_2 = SIMINT_DBLSET1(2);
154     const SIMINT_DBLTYPE const_3 = SIMINT_DBLSET1(3);
155     const SIMINT_DBLTYPE const_4 = SIMINT_DBLSET1(4);
156     const SIMINT_DBLTYPE const_5 = SIMINT_DBLSET1(5);
157     const SIMINT_DBLTYPE const_6 = SIMINT_DBLSET1(6);
158     const SIMINT_DBLTYPE const_7 = SIMINT_DBLSET1(7);
159     const SIMINT_DBLTYPE const_8 = SIMINT_DBLSET1(8);
160     const SIMINT_DBLTYPE one_half = SIMINT_DBLSET1(0.5);
161 
162 
163     ////////////////////////////////////////
164     // Loop over shells and primitives
165     ////////////////////////////////////////
166 
167     real_abcd = 0;
168     istart = 0;
169     for(ab = 0; ab < P.nshell12_clip; ++ab)
170     {
171         const int iend = istart + P.nprim12[ab];
172 
173         cd = 0;
174         jstart = 0;
175 
176         for(cd = 0; cd < Q.nshell12_clip; cd += SIMINT_NSHELL_SIMD)
177         {
178             const int nshellbatch = ((cd + SIMINT_NSHELL_SIMD) > Q.nshell12_clip) ? Q.nshell12_clip - cd : SIMINT_NSHELL_SIMD;
179             int jend = jstart;
180             for(i = 0; i < nshellbatch; i++)
181                 jend += Q.nprim12[cd+i];
182 
183             // Clear the beginning of the workspace (where we are accumulating integrals)
184             memset(work, 0, SIMINT_NSHELL_SIMD * 10730 * sizeof(double));
185             abcd = 0;
186 
187 
188             for(i = istart; i < iend; ++i)
189             {
190                 SIMINT_DBLTYPE bra_screen_max;  // only used if check_screen
191 
192                 if(check_screen)
193                 {
194                     // Skip this whole thing if always insignificant
195                     if((P.screen[i] * Q.screen_max) < screen_tol)
196                         continue;
197                     bra_screen_max = SIMINT_DBLSET1(P.screen[i]);
198                 }
199 
200                 icd = 0;
201                 iprimcd = 0;
202                 nprim_icd = Q.nprim12[cd];
203                 double * restrict PRIM_PTR_INT__g_s_f_s = INT__g_s_f_s + abcd * 150;
204                 double * restrict PRIM_PTR_INT__g_s_g_s = INT__g_s_g_s + abcd * 225;
205                 double * restrict PRIM_PTR_INT__g_s_h_s = INT__g_s_h_s + abcd * 315;
206                 double * restrict PRIM_PTR_INT__g_s_i_s = INT__g_s_i_s + abcd * 420;
207                 double * restrict PRIM_PTR_INT__h_s_f_s = INT__h_s_f_s + abcd * 210;
208                 double * restrict PRIM_PTR_INT__h_s_g_s = INT__h_s_g_s + abcd * 315;
209                 double * restrict PRIM_PTR_INT__h_s_h_s = INT__h_s_h_s + abcd * 441;
210                 double * restrict PRIM_PTR_INT__h_s_i_s = INT__h_s_i_s + abcd * 588;
211                 double * restrict PRIM_PTR_INT__i_s_f_s = INT__i_s_f_s + abcd * 280;
212                 double * restrict PRIM_PTR_INT__i_s_g_s = INT__i_s_g_s + abcd * 420;
213                 double * restrict PRIM_PTR_INT__i_s_h_s = INT__i_s_h_s + abcd * 588;
214                 double * restrict PRIM_PTR_INT__i_s_i_s = INT__i_s_i_s + abcd * 784;
215                 double * restrict PRIM_PTR_INT__k_s_f_s = INT__k_s_f_s + abcd * 360;
216                 double * restrict PRIM_PTR_INT__k_s_g_s = INT__k_s_g_s + abcd * 540;
217                 double * restrict PRIM_PTR_INT__k_s_h_s = INT__k_s_h_s + abcd * 756;
218                 double * restrict PRIM_PTR_INT__k_s_i_s = INT__k_s_i_s + abcd * 1008;
219                 double * restrict PRIM_PTR_INT__l_s_f_s = INT__l_s_f_s + abcd * 450;
220                 double * restrict PRIM_PTR_INT__l_s_g_s = INT__l_s_g_s + abcd * 675;
221                 double * restrict PRIM_PTR_INT__l_s_h_s = INT__l_s_h_s + abcd * 945;
222                 double * restrict PRIM_PTR_INT__l_s_i_s = INT__l_s_i_s + abcd * 1260;
223 
224 
225 
226                 // Load these one per loop over i
227                 const SIMINT_DBLTYPE P_alpha = SIMINT_DBLSET1(P.alpha[i]);
228                 const SIMINT_DBLTYPE P_prefac = SIMINT_DBLSET1(P.prefac[i]);
229                 const SIMINT_DBLTYPE Pxyz[3] = { SIMINT_DBLSET1(P.x[i]), SIMINT_DBLSET1(P.y[i]), SIMINT_DBLSET1(P.z[i]) };
230 
231                 const SIMINT_DBLTYPE P_PA[3] = { SIMINT_DBLSET1(P.PA_x[i]), SIMINT_DBLSET1(P.PA_y[i]), SIMINT_DBLSET1(P.PA_z[i]) };
232 
233                 for(j = jstart; j < jend; j += SIMINT_SIMD_LEN)
234                 {
235                     // calculate the shell offsets
236                     // these are the offset from the shell pointed to by cd
237                     // for each element
238                     int shelloffsets[SIMINT_SIMD_LEN] = {0};
239                     int lastoffset = 0;
240                     const int nlane = ( ((j + SIMINT_SIMD_LEN) < jend) ? SIMINT_SIMD_LEN : (jend - j));
241 
242                     if((iprimcd + SIMINT_SIMD_LEN) >= nprim_icd)
243                     {
244                         // Handle if the first element of the vector is a new shell
245                         if(iprimcd >= nprim_icd && ((icd+1) < nshellbatch))
246                         {
247                             nprim_icd += Q.nprim12[cd + (++icd)];
248                             PRIM_PTR_INT__g_s_f_s += 150;
249                             PRIM_PTR_INT__g_s_g_s += 225;
250                             PRIM_PTR_INT__g_s_h_s += 315;
251                             PRIM_PTR_INT__g_s_i_s += 420;
252                             PRIM_PTR_INT__h_s_f_s += 210;
253                             PRIM_PTR_INT__h_s_g_s += 315;
254                             PRIM_PTR_INT__h_s_h_s += 441;
255                             PRIM_PTR_INT__h_s_i_s += 588;
256                             PRIM_PTR_INT__i_s_f_s += 280;
257                             PRIM_PTR_INT__i_s_g_s += 420;
258                             PRIM_PTR_INT__i_s_h_s += 588;
259                             PRIM_PTR_INT__i_s_i_s += 784;
260                             PRIM_PTR_INT__k_s_f_s += 360;
261                             PRIM_PTR_INT__k_s_g_s += 540;
262                             PRIM_PTR_INT__k_s_h_s += 756;
263                             PRIM_PTR_INT__k_s_i_s += 1008;
264                             PRIM_PTR_INT__l_s_f_s += 450;
265                             PRIM_PTR_INT__l_s_g_s += 675;
266                             PRIM_PTR_INT__l_s_h_s += 945;
267                             PRIM_PTR_INT__l_s_i_s += 1260;
268                         }
269                         iprimcd++;
270                         for(n = 1; n < SIMINT_SIMD_LEN; ++n)
271                         {
272                             if(iprimcd >= nprim_icd && ((icd+1) < nshellbatch))
273                             {
274                                 shelloffsets[n] = shelloffsets[n-1] + 1;
275                                 lastoffset++;
276                                 nprim_icd += Q.nprim12[cd + (++icd)];
277                             }
278                             else
279                                 shelloffsets[n] = shelloffsets[n-1];
280                             iprimcd++;
281                         }
282                     }
283                     else
284                         iprimcd += SIMINT_SIMD_LEN;
285 
286                     // Do we have to compute this vector (or has it been screened out)?
287                     // (not_screened != 0 means we have to do this vector)
288                     if(check_screen)
289                     {
290                         const double vmax = vector_max(SIMINT_MUL(bra_screen_max, SIMINT_DBLLOAD(Q.screen, j)));
291                         if(vmax < screen_tol)
292                         {
293                             PRIM_PTR_INT__g_s_f_s += lastoffset*150;
294                             PRIM_PTR_INT__g_s_g_s += lastoffset*225;
295                             PRIM_PTR_INT__g_s_h_s += lastoffset*315;
296                             PRIM_PTR_INT__g_s_i_s += lastoffset*420;
297                             PRIM_PTR_INT__h_s_f_s += lastoffset*210;
298                             PRIM_PTR_INT__h_s_g_s += lastoffset*315;
299                             PRIM_PTR_INT__h_s_h_s += lastoffset*441;
300                             PRIM_PTR_INT__h_s_i_s += lastoffset*588;
301                             PRIM_PTR_INT__i_s_f_s += lastoffset*280;
302                             PRIM_PTR_INT__i_s_g_s += lastoffset*420;
303                             PRIM_PTR_INT__i_s_h_s += lastoffset*588;
304                             PRIM_PTR_INT__i_s_i_s += lastoffset*784;
305                             PRIM_PTR_INT__k_s_f_s += lastoffset*360;
306                             PRIM_PTR_INT__k_s_g_s += lastoffset*540;
307                             PRIM_PTR_INT__k_s_h_s += lastoffset*756;
308                             PRIM_PTR_INT__k_s_i_s += lastoffset*1008;
309                             PRIM_PTR_INT__l_s_f_s += lastoffset*450;
310                             PRIM_PTR_INT__l_s_g_s += lastoffset*675;
311                             PRIM_PTR_INT__l_s_h_s += lastoffset*945;
312                             PRIM_PTR_INT__l_s_i_s += lastoffset*1260;
313                             continue;
314                         }
315                     }
316 
317                     const SIMINT_DBLTYPE Q_alpha = SIMINT_DBLLOAD(Q.alpha, j);
318                     const SIMINT_DBLTYPE PQalpha_mul = SIMINT_MUL(P_alpha, Q_alpha);
319                     const SIMINT_DBLTYPE PQalpha_sum = SIMINT_ADD(P_alpha, Q_alpha);
320                     const SIMINT_DBLTYPE one_over_PQalpha_sum = SIMINT_DIV(const_1, PQalpha_sum);
321 
322 
323                     /* construct R2 = (Px - Qx)**2 + (Py - Qy)**2 + (Pz -Qz)**2 */
324                     SIMINT_DBLTYPE PQ[3];
325                     PQ[0] = SIMINT_SUB(Pxyz[0], SIMINT_DBLLOAD(Q.x, j));
326                     PQ[1] = SIMINT_SUB(Pxyz[1], SIMINT_DBLLOAD(Q.y, j));
327                     PQ[2] = SIMINT_SUB(Pxyz[2], SIMINT_DBLLOAD(Q.z, j));
328                     SIMINT_DBLTYPE R2 = SIMINT_MUL(PQ[0], PQ[0]);
329                     R2 = SIMINT_FMADD(PQ[1], PQ[1], R2);
330                     R2 = SIMINT_FMADD(PQ[2], PQ[2], R2);
331 
332                     const SIMINT_DBLTYPE alpha = SIMINT_MUL(PQalpha_mul, one_over_PQalpha_sum); // alpha from MEST
333                     const SIMINT_DBLTYPE one_over_p = SIMINT_DIV(const_1, P_alpha);
334                     const SIMINT_DBLTYPE one_over_q = SIMINT_DIV(const_1, Q_alpha);
335                     const SIMINT_DBLTYPE one_over_2p = SIMINT_MUL(one_half, one_over_p);
336                     const SIMINT_DBLTYPE one_over_2q = SIMINT_MUL(one_half, one_over_q);
337                     const SIMINT_DBLTYPE one_over_2pq = SIMINT_MUL(one_half, one_over_PQalpha_sum);
338                     const SIMINT_DBLTYPE Q_PA[3] = { SIMINT_DBLLOAD(Q.PA_x, j), SIMINT_DBLLOAD(Q.PA_y, j), SIMINT_DBLLOAD(Q.PA_z, j) };
339 
340                     // NOTE: Minus sign!
341                     const SIMINT_DBLTYPE a_over_p = SIMINT_MUL(SIMINT_NEG(alpha), one_over_p);
342                     SIMINT_DBLTYPE aop_PQ[3];
343                     aop_PQ[0] = SIMINT_MUL(a_over_p, PQ[0]);
344                     aop_PQ[1] = SIMINT_MUL(a_over_p, PQ[1]);
345                     aop_PQ[2] = SIMINT_MUL(a_over_p, PQ[2]);
346 
347                     SIMINT_DBLTYPE a_over_q = SIMINT_MUL(alpha, one_over_q);
348                     SIMINT_DBLTYPE aoq_PQ[3];
349                     aoq_PQ[0] = SIMINT_MUL(a_over_q, PQ[0]);
350                     aoq_PQ[1] = SIMINT_MUL(a_over_q, PQ[1]);
351                     aoq_PQ[2] = SIMINT_MUL(a_over_q, PQ[2]);
352                     // Put a minus sign here so we don't have to in RR routines
353                     a_over_q = SIMINT_NEG(a_over_q);
354 
355 
356                     //////////////////////////////////////////////
357                     // Fjt function section
358                     // Maximum v value: 14
359                     //////////////////////////////////////////////
360                     // The parameter to the Fjt function
361                     const SIMINT_DBLTYPE F_x = SIMINT_MUL(R2, alpha);
362 
363 
364                     const SIMINT_DBLTYPE Q_prefac = mask_load(nlane, Q.prefac + j);
365 
366 
367                     boys_F_split(PRIM_INT__s_s_s_s, F_x, 14);
368                     SIMINT_DBLTYPE prefac = SIMINT_SQRT(one_over_PQalpha_sum);
369                     prefac = SIMINT_MUL(SIMINT_MUL(P_prefac, Q_prefac), prefac);
370                     for(n = 0; n <= 14; n++)
371                         PRIM_INT__s_s_s_s[n] = SIMINT_MUL(PRIM_INT__s_s_s_s[n], prefac);
372 
373                     //////////////////////////////////////////////
374                     // Primitive integrals: Vertical recurrance
375                     //////////////////////////////////////////////
376 
377                     const SIMINT_DBLTYPE vrr_const_1_over_2p = one_over_2p;
378                     const SIMINT_DBLTYPE vrr_const_2_over_2p = SIMINT_MUL(const_2, one_over_2p);
379                     const SIMINT_DBLTYPE vrr_const_3_over_2p = SIMINT_MUL(const_3, one_over_2p);
380                     const SIMINT_DBLTYPE vrr_const_4_over_2p = SIMINT_MUL(const_4, one_over_2p);
381                     const SIMINT_DBLTYPE vrr_const_5_over_2p = SIMINT_MUL(const_5, one_over_2p);
382                     const SIMINT_DBLTYPE vrr_const_6_over_2p = SIMINT_MUL(const_6, one_over_2p);
383                     const SIMINT_DBLTYPE vrr_const_7_over_2p = SIMINT_MUL(const_7, one_over_2p);
384                     const SIMINT_DBLTYPE vrr_const_1_over_2q = one_over_2q;
385                     const SIMINT_DBLTYPE vrr_const_2_over_2q = SIMINT_MUL(const_2, one_over_2q);
386                     const SIMINT_DBLTYPE vrr_const_3_over_2q = SIMINT_MUL(const_3, one_over_2q);
387                     const SIMINT_DBLTYPE vrr_const_4_over_2q = SIMINT_MUL(const_4, one_over_2q);
388                     const SIMINT_DBLTYPE vrr_const_5_over_2q = SIMINT_MUL(const_5, one_over_2q);
389                     const SIMINT_DBLTYPE vrr_const_1_over_2pq = one_over_2pq;
390                     const SIMINT_DBLTYPE vrr_const_2_over_2pq = SIMINT_MUL(const_2, one_over_2pq);
391                     const SIMINT_DBLTYPE vrr_const_3_over_2pq = SIMINT_MUL(const_3, one_over_2pq);
392                     const SIMINT_DBLTYPE vrr_const_4_over_2pq = SIMINT_MUL(const_4, one_over_2pq);
393                     const SIMINT_DBLTYPE vrr_const_5_over_2pq = SIMINT_MUL(const_5, one_over_2pq);
394                     const SIMINT_DBLTYPE vrr_const_6_over_2pq = SIMINT_MUL(const_6, one_over_2pq);
395                     const SIMINT_DBLTYPE vrr_const_7_over_2pq = SIMINT_MUL(const_7, one_over_2pq);
396                     const SIMINT_DBLTYPE vrr_const_8_over_2pq = SIMINT_MUL(const_8, one_over_2pq);
397 
398 
399 
400                     // Forming PRIM_INT__p_s_s_s[14 * 3];
401                     for(n = 0; n < 14; ++n)  // loop over orders of auxiliary function
402                     {
403 
404                         PRIM_INT__p_s_s_s[n * 3 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_s_s[n * 1 + 0]);
405                         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]);
406 
407                         PRIM_INT__p_s_s_s[n * 3 + 1] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_s_s[n * 1 + 0]);
408                         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]);
409 
410                         PRIM_INT__p_s_s_s[n * 3 + 2] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_s_s[n * 1 + 0]);
411                         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]);
412 
413                     }
414 
415 
416 
417                     // Forming PRIM_INT__d_s_s_s[13 * 6];
418                     for(n = 0; n < 13; ++n)  // loop over orders of auxiliary function
419                     {
420 
421                         PRIM_INT__d_s_s_s[n * 6 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__p_s_s_s[n * 3 + 0]);
422                         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]);
423                         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]);
424 
425                         PRIM_INT__d_s_s_s[n * 6 + 1] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_s_s[n * 3 + 0]);
426                         PRIM_INT__d_s_s_s[n * 6 + 1] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__d_s_s_s[n * 6 + 1]);
427 
428                         PRIM_INT__d_s_s_s[n * 6 + 2] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_s_s[n * 3 + 0]);
429                         PRIM_INT__d_s_s_s[n * 6 + 2] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__d_s_s_s[n * 6 + 2]);
430 
431                         PRIM_INT__d_s_s_s[n * 6 + 3] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_s_s[n * 3 + 1]);
432                         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]);
433                         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]);
434 
435                         PRIM_INT__d_s_s_s[n * 6 + 4] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_s_s[n * 3 + 1]);
436                         PRIM_INT__d_s_s_s[n * 6 + 4] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__d_s_s_s[n * 6 + 4]);
437 
438                         PRIM_INT__d_s_s_s[n * 6 + 5] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_s_s[n * 3 + 2]);
439                         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]);
440                         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]);
441 
442                     }
443 
444 
445 
446                     // Forming PRIM_INT__f_s_s_s[12 * 10];
447                     for(n = 0; n < 12; ++n)  // loop over orders of auxiliary function
448                     {
449 
450                         PRIM_INT__f_s_s_s[n * 10 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__d_s_s_s[n * 6 + 0]);
451                         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]);
452                         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]);
453 
454                         PRIM_INT__f_s_s_s[n * 10 + 1] = SIMINT_MUL(P_PA[1], PRIM_INT__d_s_s_s[n * 6 + 0]);
455                         PRIM_INT__f_s_s_s[n * 10 + 1] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 0], PRIM_INT__f_s_s_s[n * 10 + 1]);
456 
457                         PRIM_INT__f_s_s_s[n * 10 + 2] = SIMINT_MUL(P_PA[2], PRIM_INT__d_s_s_s[n * 6 + 0]);
458                         PRIM_INT__f_s_s_s[n * 10 + 2] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 0], PRIM_INT__f_s_s_s[n * 10 + 2]);
459 
460                         PRIM_INT__f_s_s_s[n * 10 + 3] = SIMINT_MUL(P_PA[0], PRIM_INT__d_s_s_s[n * 6 + 3]);
461                         PRIM_INT__f_s_s_s[n * 10 + 3] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 3], PRIM_INT__f_s_s_s[n * 10 + 3]);
462 
463                         PRIM_INT__f_s_s_s[n * 10 + 4] = SIMINT_MUL(P_PA[2], PRIM_INT__d_s_s_s[n * 6 + 1]);
464                         PRIM_INT__f_s_s_s[n * 10 + 4] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 1], PRIM_INT__f_s_s_s[n * 10 + 4]);
465 
466                         PRIM_INT__f_s_s_s[n * 10 + 5] = SIMINT_MUL(P_PA[0], PRIM_INT__d_s_s_s[n * 6 + 5]);
467                         PRIM_INT__f_s_s_s[n * 10 + 5] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 5], PRIM_INT__f_s_s_s[n * 10 + 5]);
468 
469                         PRIM_INT__f_s_s_s[n * 10 + 6] = SIMINT_MUL(P_PA[1], PRIM_INT__d_s_s_s[n * 6 + 3]);
470                         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]);
471                         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]);
472 
473                         PRIM_INT__f_s_s_s[n * 10 + 7] = SIMINT_MUL(P_PA[2], PRIM_INT__d_s_s_s[n * 6 + 3]);
474                         PRIM_INT__f_s_s_s[n * 10 + 7] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 3], PRIM_INT__f_s_s_s[n * 10 + 7]);
475 
476                         PRIM_INT__f_s_s_s[n * 10 + 8] = SIMINT_MUL(P_PA[1], PRIM_INT__d_s_s_s[n * 6 + 5]);
477                         PRIM_INT__f_s_s_s[n * 10 + 8] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 5], PRIM_INT__f_s_s_s[n * 10 + 8]);
478 
479                         PRIM_INT__f_s_s_s[n * 10 + 9] = SIMINT_MUL(P_PA[2], PRIM_INT__d_s_s_s[n * 6 + 5]);
480                         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]);
481                         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]);
482 
483                     }
484 
485 
486                     VRR_I_g_s_s_s(
487                             PRIM_INT__g_s_s_s,
488                             PRIM_INT__f_s_s_s,
489                             PRIM_INT__d_s_s_s,
490                             P_PA,
491                             a_over_p,
492                             aop_PQ,
493                             one_over_2p,
494                             11);
495 
496 
497                     VRR_K_g_s_p_s(
498                             PRIM_INT__g_s_p_s,
499                             PRIM_INT__g_s_s_s,
500                             PRIM_INT__f_s_s_s,
501                             Q_PA,
502                             aoq_PQ,
503                             one_over_2pq,
504                             6);
505 
506 
507                     VRR_K_f_s_p_s(
508                             PRIM_INT__f_s_p_s,
509                             PRIM_INT__f_s_s_s,
510                             PRIM_INT__d_s_s_s,
511                             Q_PA,
512                             aoq_PQ,
513                             one_over_2pq,
514                             6);
515 
516 
517                     ostei_general_vrr_K(4, 0, 2, 0, 5,
518                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
519                             PRIM_INT__g_s_p_s, PRIM_INT__g_s_s_s, NULL, PRIM_INT__f_s_p_s, NULL, PRIM_INT__g_s_d_s);
520 
521 
522 
523                     // Forming PRIM_INT__d_s_p_s[6 * 18];
524                     for(n = 0; n < 6; ++n)  // loop over orders of auxiliary function
525                     {
526 
527                         PRIM_INT__d_s_p_s[n * 18 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 0]);
528                         PRIM_INT__d_s_p_s[n * 18 + 0] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 0], PRIM_INT__d_s_p_s[n * 18 + 0]);
529                         PRIM_INT__d_s_p_s[n * 18 + 0] = SIMINT_FMADD( vrr_const_2_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__d_s_p_s[n * 18 + 0]);
530 
531                         PRIM_INT__d_s_p_s[n * 18 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 0]);
532                         PRIM_INT__d_s_p_s[n * 18 + 1] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 0], PRIM_INT__d_s_p_s[n * 18 + 1]);
533 
534                         PRIM_INT__d_s_p_s[n * 18 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 0]);
535                         PRIM_INT__d_s_p_s[n * 18 + 2] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 0], PRIM_INT__d_s_p_s[n * 18 + 2]);
536 
537                         PRIM_INT__d_s_p_s[n * 18 + 3] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 1]);
538                         PRIM_INT__d_s_p_s[n * 18 + 3] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 1], PRIM_INT__d_s_p_s[n * 18 + 3]);
539                         PRIM_INT__d_s_p_s[n * 18 + 3] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__d_s_p_s[n * 18 + 3]);
540 
541                         PRIM_INT__d_s_p_s[n * 18 + 4] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 1]);
542                         PRIM_INT__d_s_p_s[n * 18 + 4] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 1], PRIM_INT__d_s_p_s[n * 18 + 4]);
543                         PRIM_INT__d_s_p_s[n * 18 + 4] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__d_s_p_s[n * 18 + 4]);
544 
545                         PRIM_INT__d_s_p_s[n * 18 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 1]);
546                         PRIM_INT__d_s_p_s[n * 18 + 5] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 1], PRIM_INT__d_s_p_s[n * 18 + 5]);
547 
548                         PRIM_INT__d_s_p_s[n * 18 + 6] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 2]);
549                         PRIM_INT__d_s_p_s[n * 18 + 6] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 2], PRIM_INT__d_s_p_s[n * 18 + 6]);
550                         PRIM_INT__d_s_p_s[n * 18 + 6] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__d_s_p_s[n * 18 + 6]);
551 
552                         PRIM_INT__d_s_p_s[n * 18 + 7] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 2]);
553                         PRIM_INT__d_s_p_s[n * 18 + 7] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 2], PRIM_INT__d_s_p_s[n * 18 + 7]);
554 
555                         PRIM_INT__d_s_p_s[n * 18 + 8] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 2]);
556                         PRIM_INT__d_s_p_s[n * 18 + 8] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 2], PRIM_INT__d_s_p_s[n * 18 + 8]);
557                         PRIM_INT__d_s_p_s[n * 18 + 8] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__d_s_p_s[n * 18 + 8]);
558 
559                         PRIM_INT__d_s_p_s[n * 18 + 9] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 3]);
560                         PRIM_INT__d_s_p_s[n * 18 + 9] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 3], PRIM_INT__d_s_p_s[n * 18 + 9]);
561 
562                         PRIM_INT__d_s_p_s[n * 18 + 10] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 3]);
563                         PRIM_INT__d_s_p_s[n * 18 + 10] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 3], PRIM_INT__d_s_p_s[n * 18 + 10]);
564                         PRIM_INT__d_s_p_s[n * 18 + 10] = SIMINT_FMADD( vrr_const_2_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__d_s_p_s[n * 18 + 10]);
565 
566                         PRIM_INT__d_s_p_s[n * 18 + 11] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 3]);
567                         PRIM_INT__d_s_p_s[n * 18 + 11] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 3], PRIM_INT__d_s_p_s[n * 18 + 11]);
568 
569                         PRIM_INT__d_s_p_s[n * 18 + 12] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 4]);
570                         PRIM_INT__d_s_p_s[n * 18 + 12] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 4], PRIM_INT__d_s_p_s[n * 18 + 12]);
571 
572                         PRIM_INT__d_s_p_s[n * 18 + 13] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 4]);
573                         PRIM_INT__d_s_p_s[n * 18 + 13] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 4], PRIM_INT__d_s_p_s[n * 18 + 13]);
574                         PRIM_INT__d_s_p_s[n * 18 + 13] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__d_s_p_s[n * 18 + 13]);
575 
576                         PRIM_INT__d_s_p_s[n * 18 + 14] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 4]);
577                         PRIM_INT__d_s_p_s[n * 18 + 14] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 4], PRIM_INT__d_s_p_s[n * 18 + 14]);
578                         PRIM_INT__d_s_p_s[n * 18 + 14] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__d_s_p_s[n * 18 + 14]);
579 
580                         PRIM_INT__d_s_p_s[n * 18 + 15] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 5]);
581                         PRIM_INT__d_s_p_s[n * 18 + 15] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 5], PRIM_INT__d_s_p_s[n * 18 + 15]);
582 
583                         PRIM_INT__d_s_p_s[n * 18 + 16] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 5]);
584                         PRIM_INT__d_s_p_s[n * 18 + 16] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 5], PRIM_INT__d_s_p_s[n * 18 + 16]);
585 
586                         PRIM_INT__d_s_p_s[n * 18 + 17] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 5]);
587                         PRIM_INT__d_s_p_s[n * 18 + 17] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 5], PRIM_INT__d_s_p_s[n * 18 + 17]);
588                         PRIM_INT__d_s_p_s[n * 18 + 17] = SIMINT_FMADD( vrr_const_2_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__d_s_p_s[n * 18 + 17]);
589 
590                     }
591 
592 
593                     VRR_K_f_s_d_s(
594                             PRIM_INT__f_s_d_s,
595                             PRIM_INT__f_s_p_s,
596                             PRIM_INT__f_s_s_s,
597                             PRIM_INT__d_s_p_s,
598                             Q_PA,
599                             a_over_q,
600                             aoq_PQ,
601                             one_over_2pq,
602                             one_over_2q,
603                             5);
604 
605 
606                     ostei_general_vrr_K(4, 0, 3, 0, 4,
607                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
608                             PRIM_INT__g_s_d_s, PRIM_INT__g_s_p_s, NULL, PRIM_INT__f_s_d_s, NULL, PRIM_INT__g_s_f_s);
609 
610 
611 
612                     // Forming PRIM_INT__p_s_p_s[6 * 9];
613                     for(n = 0; n < 6; ++n)  // loop over orders of auxiliary function
614                     {
615 
616                         PRIM_INT__p_s_p_s[n * 9 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_s_s[n * 3 + 0]);
617                         PRIM_INT__p_s_p_s[n * 9 + 0] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_p_s[n * 9 + 0]);
618                         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]);
619 
620                         PRIM_INT__p_s_p_s[n * 9 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_s_s[n * 3 + 0]);
621                         PRIM_INT__p_s_p_s[n * 9 + 1] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_p_s[n * 9 + 1]);
622 
623                         PRIM_INT__p_s_p_s[n * 9 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_s_s[n * 3 + 0]);
624                         PRIM_INT__p_s_p_s[n * 9 + 2] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_p_s[n * 9 + 2]);
625 
626                         PRIM_INT__p_s_p_s[n * 9 + 3] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_s_s[n * 3 + 1]);
627                         PRIM_INT__p_s_p_s[n * 9 + 3] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_p_s[n * 9 + 3]);
628 
629                         PRIM_INT__p_s_p_s[n * 9 + 4] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_s_s[n * 3 + 1]);
630                         PRIM_INT__p_s_p_s[n * 9 + 4] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_p_s[n * 9 + 4]);
631                         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]);
632 
633                         PRIM_INT__p_s_p_s[n * 9 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_s_s[n * 3 + 1]);
634                         PRIM_INT__p_s_p_s[n * 9 + 5] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_p_s[n * 9 + 5]);
635 
636                         PRIM_INT__p_s_p_s[n * 9 + 6] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_s_s[n * 3 + 2]);
637                         PRIM_INT__p_s_p_s[n * 9 + 6] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_p_s[n * 9 + 6]);
638 
639                         PRIM_INT__p_s_p_s[n * 9 + 7] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_s_s[n * 3 + 2]);
640                         PRIM_INT__p_s_p_s[n * 9 + 7] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_p_s[n * 9 + 7]);
641 
642                         PRIM_INT__p_s_p_s[n * 9 + 8] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_s_s[n * 3 + 2]);
643                         PRIM_INT__p_s_p_s[n * 9 + 8] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_p_s[n * 9 + 8]);
644                         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]);
645 
646                     }
647 
648 
649                     VRR_K_d_s_d_s(
650                             PRIM_INT__d_s_d_s,
651                             PRIM_INT__d_s_p_s,
652                             PRIM_INT__d_s_s_s,
653                             PRIM_INT__p_s_p_s,
654                             Q_PA,
655                             a_over_q,
656                             aoq_PQ,
657                             one_over_2pq,
658                             one_over_2q,
659                             5);
660 
661 
662                     ostei_general_vrr_K(3, 0, 3, 0, 4,
663                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
664                             PRIM_INT__f_s_d_s, PRIM_INT__f_s_p_s, NULL, PRIM_INT__d_s_d_s, NULL, PRIM_INT__f_s_f_s);
665 
666 
667                     ostei_general_vrr_K(4, 0, 4, 0, 3,
668                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
669                             PRIM_INT__g_s_f_s, PRIM_INT__g_s_d_s, NULL, PRIM_INT__f_s_f_s, NULL, PRIM_INT__g_s_g_s);
670 
671 
672                     VRR_I_h_s_s_s(
673                             PRIM_INT__h_s_s_s,
674                             PRIM_INT__g_s_s_s,
675                             PRIM_INT__f_s_s_s,
676                             P_PA,
677                             a_over_p,
678                             aop_PQ,
679                             one_over_2p,
680                             10);
681 
682 
683                     ostei_general_vrr_K(5, 0, 1, 0, 6,
684                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
685                             PRIM_INT__h_s_s_s, NULL, NULL, PRIM_INT__g_s_s_s, NULL, PRIM_INT__h_s_p_s);
686 
687 
688                     ostei_general_vrr_K(5, 0, 2, 0, 5,
689                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
690                             PRIM_INT__h_s_p_s, PRIM_INT__h_s_s_s, NULL, PRIM_INT__g_s_p_s, NULL, PRIM_INT__h_s_d_s);
691 
692 
693                     ostei_general_vrr_K(5, 0, 3, 0, 4,
694                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
695                             PRIM_INT__h_s_d_s, PRIM_INT__h_s_p_s, NULL, PRIM_INT__g_s_d_s, NULL, PRIM_INT__h_s_f_s);
696 
697 
698 
699                     // Forming PRIM_INT__s_s_p_s[6 * 3];
700                     for(n = 0; n < 6; ++n)  // loop over orders of auxiliary function
701                     {
702 
703                         PRIM_INT__s_s_p_s[n * 3 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_s_s[n * 1 + 0]);
704                         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]);
705 
706                         PRIM_INT__s_s_p_s[n * 3 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_s_s[n * 1 + 0]);
707                         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]);
708 
709                         PRIM_INT__s_s_p_s[n * 3 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_s_s[n * 1 + 0]);
710                         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]);
711 
712                     }
713 
714 
715 
716                     // Forming PRIM_INT__p_s_d_s[5 * 18];
717                     for(n = 0; n < 5; ++n)  // loop over orders of auxiliary function
718                     {
719 
720                         PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_p_s[n * 9 + 0]);
721                         PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_p_s[(n+1) * 9 + 0], PRIM_INT__p_s_d_s[n * 18 + 0]);
722                         PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_s_s[n * 3 + 0]), PRIM_INT__p_s_d_s[n * 18 + 0]);
723                         PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__p_s_d_s[n * 18 + 0]);
724 
725                         PRIM_INT__p_s_d_s[n * 18 + 3] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_p_s[n * 9 + 1]);
726                         PRIM_INT__p_s_d_s[n * 18 + 3] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_p_s[(n+1) * 9 + 1], PRIM_INT__p_s_d_s[n * 18 + 3]);
727                         PRIM_INT__p_s_d_s[n * 18 + 3] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_s_s[n * 3 + 0]), PRIM_INT__p_s_d_s[n * 18 + 3]);
728 
729                         PRIM_INT__p_s_d_s[n * 18 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_p_s[n * 9 + 2]);
730                         PRIM_INT__p_s_d_s[n * 18 + 5] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_p_s[(n+1) * 9 + 2], PRIM_INT__p_s_d_s[n * 18 + 5]);
731                         PRIM_INT__p_s_d_s[n * 18 + 5] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_s_s[n * 3 + 0]), PRIM_INT__p_s_d_s[n * 18 + 5]);
732 
733                         PRIM_INT__p_s_d_s[n * 18 + 6] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_p_s[n * 9 + 3]);
734                         PRIM_INT__p_s_d_s[n * 18 + 6] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_p_s[(n+1) * 9 + 3], PRIM_INT__p_s_d_s[n * 18 + 6]);
735                         PRIM_INT__p_s_d_s[n * 18 + 6] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_s_s[n * 3 + 1]), PRIM_INT__p_s_d_s[n * 18 + 6]);
736 
737                         PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_p_s[n * 9 + 4]);
738                         PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_p_s[(n+1) * 9 + 4], PRIM_INT__p_s_d_s[n * 18 + 9]);
739                         PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_s_s[n * 3 + 1]), PRIM_INT__p_s_d_s[n * 18 + 9]);
740                         PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__p_s_d_s[n * 18 + 9]);
741 
742                         PRIM_INT__p_s_d_s[n * 18 + 11] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_p_s[n * 9 + 5]);
743                         PRIM_INT__p_s_d_s[n * 18 + 11] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_p_s[(n+1) * 9 + 5], PRIM_INT__p_s_d_s[n * 18 + 11]);
744                         PRIM_INT__p_s_d_s[n * 18 + 11] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_s_s[n * 3 + 1]), PRIM_INT__p_s_d_s[n * 18 + 11]);
745 
746                         PRIM_INT__p_s_d_s[n * 18 + 12] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_p_s[n * 9 + 6]);
747                         PRIM_INT__p_s_d_s[n * 18 + 12] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_p_s[(n+1) * 9 + 6], PRIM_INT__p_s_d_s[n * 18 + 12]);
748                         PRIM_INT__p_s_d_s[n * 18 + 12] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_s_s[n * 3 + 2]), PRIM_INT__p_s_d_s[n * 18 + 12]);
749 
750                         PRIM_INT__p_s_d_s[n * 18 + 15] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_p_s[n * 9 + 7]);
751                         PRIM_INT__p_s_d_s[n * 18 + 15] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_p_s[(n+1) * 9 + 7], PRIM_INT__p_s_d_s[n * 18 + 15]);
752                         PRIM_INT__p_s_d_s[n * 18 + 15] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_s_s[n * 3 + 2]), PRIM_INT__p_s_d_s[n * 18 + 15]);
753 
754                         PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_p_s[n * 9 + 8]);
755                         PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_p_s[(n+1) * 9 + 8], PRIM_INT__p_s_d_s[n * 18 + 17]);
756                         PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_s_s[n * 3 + 2]), PRIM_INT__p_s_d_s[n * 18 + 17]);
757                         PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 2], PRIM_INT__p_s_d_s[n * 18 + 17]);
758 
759                     }
760 
761 
762                     VRR_K_d_s_f_s(
763                             PRIM_INT__d_s_f_s,
764                             PRIM_INT__d_s_d_s,
765                             PRIM_INT__d_s_p_s,
766                             PRIM_INT__p_s_d_s,
767                             Q_PA,
768                             a_over_q,
769                             aoq_PQ,
770                             one_over_2pq,
771                             one_over_2q,
772                             4);
773 
774 
775                     ostei_general_vrr_K(3, 0, 4, 0, 3,
776                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
777                             PRIM_INT__f_s_f_s, PRIM_INT__f_s_d_s, NULL, PRIM_INT__d_s_f_s, NULL, PRIM_INT__f_s_g_s);
778 
779 
780                     ostei_general_vrr_K(4, 0, 5, 0, 2,
781                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
782                             PRIM_INT__g_s_g_s, PRIM_INT__g_s_f_s, NULL, PRIM_INT__f_s_g_s, NULL, PRIM_INT__g_s_h_s);
783 
784 
785                     ostei_general_vrr_K(5, 0, 4, 0, 3,
786                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
787                             PRIM_INT__h_s_f_s, PRIM_INT__h_s_d_s, NULL, PRIM_INT__g_s_f_s, NULL, PRIM_INT__h_s_g_s);
788 
789 
790                     ostei_general_vrr1_I(6, 9,
791                             one_over_2p, a_over_p, aop_PQ, P_PA,
792                             PRIM_INT__h_s_s_s, PRIM_INT__g_s_s_s, PRIM_INT__i_s_s_s);
793 
794 
795                     ostei_general_vrr_K(6, 0, 1, 0, 6,
796                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
797                             PRIM_INT__i_s_s_s, NULL, NULL, PRIM_INT__h_s_s_s, NULL, PRIM_INT__i_s_p_s);
798 
799 
800                     ostei_general_vrr_K(6, 0, 2, 0, 5,
801                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
802                             PRIM_INT__i_s_p_s, PRIM_INT__i_s_s_s, NULL, PRIM_INT__h_s_p_s, NULL, PRIM_INT__i_s_d_s);
803 
804 
805                     ostei_general_vrr_K(6, 0, 3, 0, 4,
806                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
807                             PRIM_INT__i_s_d_s, PRIM_INT__i_s_p_s, NULL, PRIM_INT__h_s_d_s, NULL, PRIM_INT__i_s_f_s);
808 
809 
810 
811                     // Forming PRIM_INT__s_s_d_s[5 * 6];
812                     for(n = 0; n < 5; ++n)  // loop over orders of auxiliary function
813                     {
814 
815                         PRIM_INT__s_s_d_s[n * 6 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_p_s[n * 3 + 0]);
816                         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]);
817                         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]);
818 
819                         PRIM_INT__s_s_d_s[n * 6 + 3] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_p_s[n * 3 + 1]);
820                         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]);
821                         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]);
822 
823                         PRIM_INT__s_s_d_s[n * 6 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_p_s[n * 3 + 2]);
824                         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]);
825                         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]);
826 
827                     }
828 
829 
830                     VRR_K_p_s_f_s(
831                             PRIM_INT__p_s_f_s,
832                             PRIM_INT__p_s_d_s,
833                             PRIM_INT__p_s_p_s,
834                             PRIM_INT__s_s_d_s,
835                             Q_PA,
836                             a_over_q,
837                             aoq_PQ,
838                             one_over_2pq,
839                             one_over_2q,
840                             4);
841 
842 
843                     ostei_general_vrr_K(2, 0, 4, 0, 3,
844                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
845                             PRIM_INT__d_s_f_s, PRIM_INT__d_s_d_s, NULL, PRIM_INT__p_s_f_s, NULL, PRIM_INT__d_s_g_s);
846 
847 
848                     ostei_general_vrr_K(3, 0, 5, 0, 2,
849                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
850                             PRIM_INT__f_s_g_s, PRIM_INT__f_s_f_s, NULL, PRIM_INT__d_s_g_s, NULL, PRIM_INT__f_s_h_s);
851 
852 
853                     ostei_general_vrr_K(4, 0, 6, 0, 1,
854                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
855                             PRIM_INT__g_s_h_s, PRIM_INT__g_s_g_s, NULL, PRIM_INT__f_s_h_s, NULL, PRIM_INT__g_s_i_s);
856 
857 
858                     ostei_general_vrr_K(5, 0, 5, 0, 2,
859                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
860                             PRIM_INT__h_s_g_s, PRIM_INT__h_s_f_s, NULL, PRIM_INT__g_s_g_s, NULL, PRIM_INT__h_s_h_s);
861 
862 
863                     ostei_general_vrr_K(6, 0, 4, 0, 3,
864                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
865                             PRIM_INT__i_s_f_s, PRIM_INT__i_s_d_s, NULL, PRIM_INT__h_s_f_s, NULL, PRIM_INT__i_s_g_s);
866 
867 
868                     ostei_general_vrr1_I(7, 8,
869                             one_over_2p, a_over_p, aop_PQ, P_PA,
870                             PRIM_INT__i_s_s_s, PRIM_INT__h_s_s_s, PRIM_INT__k_s_s_s);
871 
872 
873                     ostei_general_vrr_K(7, 0, 1, 0, 6,
874                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
875                             PRIM_INT__k_s_s_s, NULL, NULL, PRIM_INT__i_s_s_s, NULL, PRIM_INT__k_s_p_s);
876 
877 
878                     ostei_general_vrr_K(7, 0, 2, 0, 5,
879                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
880                             PRIM_INT__k_s_p_s, PRIM_INT__k_s_s_s, NULL, PRIM_INT__i_s_p_s, NULL, PRIM_INT__k_s_d_s);
881 
882 
883                     ostei_general_vrr_K(7, 0, 3, 0, 4,
884                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
885                             PRIM_INT__k_s_d_s, PRIM_INT__k_s_p_s, NULL, PRIM_INT__i_s_d_s, NULL, PRIM_INT__k_s_f_s);
886 
887 
888                     ostei_general_vrr_K(5, 0, 6, 0, 1,
889                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
890                             PRIM_INT__h_s_h_s, PRIM_INT__h_s_g_s, NULL, PRIM_INT__g_s_h_s, NULL, PRIM_INT__h_s_i_s);
891 
892 
893                     ostei_general_vrr_K(6, 0, 5, 0, 2,
894                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
895                             PRIM_INT__i_s_g_s, PRIM_INT__i_s_f_s, NULL, PRIM_INT__h_s_g_s, NULL, PRIM_INT__i_s_h_s);
896 
897 
898                     ostei_general_vrr_K(7, 0, 4, 0, 3,
899                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
900                             PRIM_INT__k_s_f_s, PRIM_INT__k_s_d_s, NULL, PRIM_INT__i_s_f_s, NULL, PRIM_INT__k_s_g_s);
901 
902 
903                     ostei_general_vrr1_I(8, 7,
904                             one_over_2p, a_over_p, aop_PQ, P_PA,
905                             PRIM_INT__k_s_s_s, PRIM_INT__i_s_s_s, PRIM_INT__l_s_s_s);
906 
907 
908                     ostei_general_vrr_K(8, 0, 1, 0, 6,
909                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
910                             PRIM_INT__l_s_s_s, NULL, NULL, PRIM_INT__k_s_s_s, NULL, PRIM_INT__l_s_p_s);
911 
912 
913                     ostei_general_vrr_K(8, 0, 2, 0, 5,
914                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
915                             PRIM_INT__l_s_p_s, PRIM_INT__l_s_s_s, NULL, PRIM_INT__k_s_p_s, NULL, PRIM_INT__l_s_d_s);
916 
917 
918                     ostei_general_vrr_K(8, 0, 3, 0, 4,
919                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
920                             PRIM_INT__l_s_d_s, PRIM_INT__l_s_p_s, NULL, PRIM_INT__k_s_d_s, NULL, PRIM_INT__l_s_f_s);
921 
922 
923                     ostei_general_vrr_K(6, 0, 6, 0, 1,
924                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
925                             PRIM_INT__i_s_h_s, PRIM_INT__i_s_g_s, NULL, PRIM_INT__h_s_h_s, NULL, PRIM_INT__i_s_i_s);
926 
927 
928                     ostei_general_vrr_K(7, 0, 5, 0, 2,
929                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
930                             PRIM_INT__k_s_g_s, PRIM_INT__k_s_f_s, NULL, PRIM_INT__i_s_g_s, NULL, PRIM_INT__k_s_h_s);
931 
932 
933                     ostei_general_vrr_K(8, 0, 4, 0, 3,
934                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
935                             PRIM_INT__l_s_f_s, PRIM_INT__l_s_d_s, NULL, PRIM_INT__k_s_f_s, NULL, PRIM_INT__l_s_g_s);
936 
937 
938                     ostei_general_vrr_K(7, 0, 6, 0, 1,
939                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
940                             PRIM_INT__k_s_h_s, PRIM_INT__k_s_g_s, NULL, PRIM_INT__i_s_h_s, NULL, PRIM_INT__k_s_i_s);
941 
942 
943                     ostei_general_vrr_K(8, 0, 5, 0, 2,
944                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
945                             PRIM_INT__l_s_g_s, PRIM_INT__l_s_f_s, NULL, PRIM_INT__k_s_g_s, NULL, PRIM_INT__l_s_h_s);
946 
947 
948                     ostei_general_vrr_K(8, 0, 6, 0, 1,
949                             one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
950                             PRIM_INT__l_s_h_s, PRIM_INT__l_s_g_s, NULL, PRIM_INT__k_s_h_s, NULL, PRIM_INT__l_s_i_s);
951 
952 
953 
954 
955                     ////////////////////////////////////
956                     // Accumulate contracted integrals
957                     ////////////////////////////////////
958                     if(lastoffset == 0)
959                     {
960                         contract_all(150, PRIM_INT__g_s_f_s, PRIM_PTR_INT__g_s_f_s);
961                         contract_all(225, PRIM_INT__g_s_g_s, PRIM_PTR_INT__g_s_g_s);
962                         contract_all(315, PRIM_INT__g_s_h_s, PRIM_PTR_INT__g_s_h_s);
963                         contract_all(420, PRIM_INT__g_s_i_s, PRIM_PTR_INT__g_s_i_s);
964                         contract_all(210, PRIM_INT__h_s_f_s, PRIM_PTR_INT__h_s_f_s);
965                         contract_all(315, PRIM_INT__h_s_g_s, PRIM_PTR_INT__h_s_g_s);
966                         contract_all(441, PRIM_INT__h_s_h_s, PRIM_PTR_INT__h_s_h_s);
967                         contract_all(588, PRIM_INT__h_s_i_s, PRIM_PTR_INT__h_s_i_s);
968                         contract_all(280, PRIM_INT__i_s_f_s, PRIM_PTR_INT__i_s_f_s);
969                         contract_all(420, PRIM_INT__i_s_g_s, PRIM_PTR_INT__i_s_g_s);
970                         contract_all(588, PRIM_INT__i_s_h_s, PRIM_PTR_INT__i_s_h_s);
971                         contract_all(784, PRIM_INT__i_s_i_s, PRIM_PTR_INT__i_s_i_s);
972                         contract_all(360, PRIM_INT__k_s_f_s, PRIM_PTR_INT__k_s_f_s);
973                         contract_all(540, PRIM_INT__k_s_g_s, PRIM_PTR_INT__k_s_g_s);
974                         contract_all(756, PRIM_INT__k_s_h_s, PRIM_PTR_INT__k_s_h_s);
975                         contract_all(1008, PRIM_INT__k_s_i_s, PRIM_PTR_INT__k_s_i_s);
976                         contract_all(450, PRIM_INT__l_s_f_s, PRIM_PTR_INT__l_s_f_s);
977                         contract_all(675, PRIM_INT__l_s_g_s, PRIM_PTR_INT__l_s_g_s);
978                         contract_all(945, PRIM_INT__l_s_h_s, PRIM_PTR_INT__l_s_h_s);
979                         contract_all(1260, PRIM_INT__l_s_i_s, PRIM_PTR_INT__l_s_i_s);
980                     }
981                     else
982                     {
983                         contract(150, shelloffsets, PRIM_INT__g_s_f_s, PRIM_PTR_INT__g_s_f_s);
984                         contract(225, shelloffsets, PRIM_INT__g_s_g_s, PRIM_PTR_INT__g_s_g_s);
985                         contract(315, shelloffsets, PRIM_INT__g_s_h_s, PRIM_PTR_INT__g_s_h_s);
986                         contract(420, shelloffsets, PRIM_INT__g_s_i_s, PRIM_PTR_INT__g_s_i_s);
987                         contract(210, shelloffsets, PRIM_INT__h_s_f_s, PRIM_PTR_INT__h_s_f_s);
988                         contract(315, shelloffsets, PRIM_INT__h_s_g_s, PRIM_PTR_INT__h_s_g_s);
989                         contract(441, shelloffsets, PRIM_INT__h_s_h_s, PRIM_PTR_INT__h_s_h_s);
990                         contract(588, shelloffsets, PRIM_INT__h_s_i_s, PRIM_PTR_INT__h_s_i_s);
991                         contract(280, shelloffsets, PRIM_INT__i_s_f_s, PRIM_PTR_INT__i_s_f_s);
992                         contract(420, shelloffsets, PRIM_INT__i_s_g_s, PRIM_PTR_INT__i_s_g_s);
993                         contract(588, shelloffsets, PRIM_INT__i_s_h_s, PRIM_PTR_INT__i_s_h_s);
994                         contract(784, shelloffsets, PRIM_INT__i_s_i_s, PRIM_PTR_INT__i_s_i_s);
995                         contract(360, shelloffsets, PRIM_INT__k_s_f_s, PRIM_PTR_INT__k_s_f_s);
996                         contract(540, shelloffsets, PRIM_INT__k_s_g_s, PRIM_PTR_INT__k_s_g_s);
997                         contract(756, shelloffsets, PRIM_INT__k_s_h_s, PRIM_PTR_INT__k_s_h_s);
998                         contract(1008, shelloffsets, PRIM_INT__k_s_i_s, PRIM_PTR_INT__k_s_i_s);
999                         contract(450, shelloffsets, PRIM_INT__l_s_f_s, PRIM_PTR_INT__l_s_f_s);
1000                         contract(675, shelloffsets, PRIM_INT__l_s_g_s, PRIM_PTR_INT__l_s_g_s);
1001                         contract(945, shelloffsets, PRIM_INT__l_s_h_s, PRIM_PTR_INT__l_s_h_s);
1002                         contract(1260, shelloffsets, PRIM_INT__l_s_i_s, PRIM_PTR_INT__l_s_i_s);
1003                         PRIM_PTR_INT__g_s_f_s += lastoffset*150;
1004                         PRIM_PTR_INT__g_s_g_s += lastoffset*225;
1005                         PRIM_PTR_INT__g_s_h_s += lastoffset*315;
1006                         PRIM_PTR_INT__g_s_i_s += lastoffset*420;
1007                         PRIM_PTR_INT__h_s_f_s += lastoffset*210;
1008                         PRIM_PTR_INT__h_s_g_s += lastoffset*315;
1009                         PRIM_PTR_INT__h_s_h_s += lastoffset*441;
1010                         PRIM_PTR_INT__h_s_i_s += lastoffset*588;
1011                         PRIM_PTR_INT__i_s_f_s += lastoffset*280;
1012                         PRIM_PTR_INT__i_s_g_s += lastoffset*420;
1013                         PRIM_PTR_INT__i_s_h_s += lastoffset*588;
1014                         PRIM_PTR_INT__i_s_i_s += lastoffset*784;
1015                         PRIM_PTR_INT__k_s_f_s += lastoffset*360;
1016                         PRIM_PTR_INT__k_s_g_s += lastoffset*540;
1017                         PRIM_PTR_INT__k_s_h_s += lastoffset*756;
1018                         PRIM_PTR_INT__k_s_i_s += lastoffset*1008;
1019                         PRIM_PTR_INT__l_s_f_s += lastoffset*450;
1020                         PRIM_PTR_INT__l_s_g_s += lastoffset*675;
1021                         PRIM_PTR_INT__l_s_h_s += lastoffset*945;
1022                         PRIM_PTR_INT__l_s_i_s += lastoffset*1260;
1023                     }
1024 
1025                 }  // close loop over j
1026             }  // close loop over i
1027 
1028             //Advance to the next batch
1029             jstart = SIMINT_SIMD_ROUND(jend);
1030 
1031             //////////////////////////////////////////////
1032             // Contracted integrals: Horizontal recurrance
1033             //////////////////////////////////////////////
1034 
1035 
1036             const double hAB[3] = { P.AB_x[ab], P.AB_y[ab], P.AB_z[ab] };
1037 
1038 
1039             for(abcd = 0; abcd < nshellbatch; ++abcd, ++real_abcd)
1040             {
1041                 const double hCD[3] = { Q.AB_x[cd+abcd], Q.AB_y[cd+abcd], Q.AB_z[cd+abcd] };
1042 
1043                 // set up HRR pointers
1044                 double const * restrict HRR_INT__g_s_f_s = INT__g_s_f_s + abcd * 150;
1045                 double const * restrict HRR_INT__g_s_g_s = INT__g_s_g_s + abcd * 225;
1046                 double const * restrict HRR_INT__g_s_h_s = INT__g_s_h_s + abcd * 315;
1047                 double const * restrict HRR_INT__g_s_i_s = INT__g_s_i_s + abcd * 420;
1048                 double const * restrict HRR_INT__h_s_f_s = INT__h_s_f_s + abcd * 210;
1049                 double const * restrict HRR_INT__h_s_g_s = INT__h_s_g_s + abcd * 315;
1050                 double const * restrict HRR_INT__h_s_h_s = INT__h_s_h_s + abcd * 441;
1051                 double const * restrict HRR_INT__h_s_i_s = INT__h_s_i_s + abcd * 588;
1052                 double const * restrict HRR_INT__i_s_f_s = INT__i_s_f_s + abcd * 280;
1053                 double const * restrict HRR_INT__i_s_g_s = INT__i_s_g_s + abcd * 420;
1054                 double const * restrict HRR_INT__i_s_h_s = INT__i_s_h_s + abcd * 588;
1055                 double const * restrict HRR_INT__i_s_i_s = INT__i_s_i_s + abcd * 784;
1056                 double const * restrict HRR_INT__k_s_f_s = INT__k_s_f_s + abcd * 360;
1057                 double const * restrict HRR_INT__k_s_g_s = INT__k_s_g_s + abcd * 540;
1058                 double const * restrict HRR_INT__k_s_h_s = INT__k_s_h_s + abcd * 756;
1059                 double const * restrict HRR_INT__k_s_i_s = INT__k_s_i_s + abcd * 1008;
1060                 double const * restrict HRR_INT__l_s_f_s = INT__l_s_f_s + abcd * 450;
1061                 double const * restrict HRR_INT__l_s_g_s = INT__l_s_g_s + abcd * 675;
1062                 double const * restrict HRR_INT__l_s_h_s = INT__l_s_h_s + abcd * 945;
1063                 double const * restrict HRR_INT__l_s_i_s = INT__l_s_i_s + abcd * 1260;
1064                 double * restrict HRR_INT__g_g_f_f = INT__g_g_f_f + real_abcd * 22500;
1065 
1066                 // form INT__g_p_f_s
1067                 HRR_J_g_p(
1068                     HRR_INT__g_p_f_s,
1069                     HRR_INT__g_s_f_s,
1070                     HRR_INT__h_s_f_s,
1071                     hAB, 10);
1072 
1073                 // form INT__g_p_g_s
1074                 HRR_J_g_p(
1075                     HRR_INT__g_p_g_s,
1076                     HRR_INT__g_s_g_s,
1077                     HRR_INT__h_s_g_s,
1078                     hAB, 15);
1079 
1080                 // form INT__g_p_h_s
1081                 HRR_J_g_p(
1082                     HRR_INT__g_p_h_s,
1083                     HRR_INT__g_s_h_s,
1084                     HRR_INT__h_s_h_s,
1085                     hAB, 21);
1086 
1087                 // form INT__g_p_i_s
1088                 HRR_J_g_p(
1089                     HRR_INT__g_p_i_s,
1090                     HRR_INT__g_s_i_s,
1091                     HRR_INT__h_s_i_s,
1092                     hAB, 28);
1093 
1094                 // form INT__h_p_f_s
1095                 ostei_general_hrr_J(5, 1, 3, 0, hAB, HRR_INT__i_s_f_s, HRR_INT__h_s_f_s, HRR_INT__h_p_f_s);
1096 
1097                 // form INT__h_p_g_s
1098                 ostei_general_hrr_J(5, 1, 4, 0, hAB, HRR_INT__i_s_g_s, HRR_INT__h_s_g_s, HRR_INT__h_p_g_s);
1099 
1100                 // form INT__h_p_h_s
1101                 ostei_general_hrr_J(5, 1, 5, 0, hAB, HRR_INT__i_s_h_s, HRR_INT__h_s_h_s, HRR_INT__h_p_h_s);
1102 
1103                 // form INT__h_p_i_s
1104                 ostei_general_hrr_J(5, 1, 6, 0, hAB, HRR_INT__i_s_i_s, HRR_INT__h_s_i_s, HRR_INT__h_p_i_s);
1105 
1106                 // form INT__i_p_f_s
1107                 ostei_general_hrr_J(6, 1, 3, 0, hAB, HRR_INT__k_s_f_s, HRR_INT__i_s_f_s, HRR_INT__i_p_f_s);
1108 
1109                 // form INT__i_p_g_s
1110                 ostei_general_hrr_J(6, 1, 4, 0, hAB, HRR_INT__k_s_g_s, HRR_INT__i_s_g_s, HRR_INT__i_p_g_s);
1111 
1112                 // form INT__i_p_h_s
1113                 ostei_general_hrr_J(6, 1, 5, 0, hAB, HRR_INT__k_s_h_s, HRR_INT__i_s_h_s, HRR_INT__i_p_h_s);
1114 
1115                 // form INT__i_p_i_s
1116                 ostei_general_hrr_J(6, 1, 6, 0, hAB, HRR_INT__k_s_i_s, HRR_INT__i_s_i_s, HRR_INT__i_p_i_s);
1117 
1118                 // form INT__k_p_f_s
1119                 ostei_general_hrr_J(7, 1, 3, 0, hAB, HRR_INT__l_s_f_s, HRR_INT__k_s_f_s, HRR_INT__k_p_f_s);
1120 
1121                 // form INT__k_p_g_s
1122                 ostei_general_hrr_J(7, 1, 4, 0, hAB, HRR_INT__l_s_g_s, HRR_INT__k_s_g_s, HRR_INT__k_p_g_s);
1123 
1124                 // form INT__k_p_h_s
1125                 ostei_general_hrr_J(7, 1, 5, 0, hAB, HRR_INT__l_s_h_s, HRR_INT__k_s_h_s, HRR_INT__k_p_h_s);
1126 
1127                 // form INT__k_p_i_s
1128                 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);
1129 
1130                 // form INT__g_d_f_s
1131                 ostei_general_hrr_J(4, 2, 3, 0, hAB, HRR_INT__h_p_f_s, HRR_INT__g_p_f_s, HRR_INT__g_d_f_s);
1132 
1133                 // form INT__g_d_g_s
1134                 ostei_general_hrr_J(4, 2, 4, 0, hAB, HRR_INT__h_p_g_s, HRR_INT__g_p_g_s, HRR_INT__g_d_g_s);
1135 
1136                 // form INT__g_d_h_s
1137                 ostei_general_hrr_J(4, 2, 5, 0, hAB, HRR_INT__h_p_h_s, HRR_INT__g_p_h_s, HRR_INT__g_d_h_s);
1138 
1139                 // form INT__g_d_i_s
1140                 ostei_general_hrr_J(4, 2, 6, 0, hAB, HRR_INT__h_p_i_s, HRR_INT__g_p_i_s, HRR_INT__g_d_i_s);
1141 
1142                 // form INT__h_d_f_s
1143                 ostei_general_hrr_J(5, 2, 3, 0, hAB, HRR_INT__i_p_f_s, HRR_INT__h_p_f_s, HRR_INT__h_d_f_s);
1144 
1145                 // form INT__h_d_g_s
1146                 ostei_general_hrr_J(5, 2, 4, 0, hAB, HRR_INT__i_p_g_s, HRR_INT__h_p_g_s, HRR_INT__h_d_g_s);
1147 
1148                 // form INT__h_d_h_s
1149                 ostei_general_hrr_J(5, 2, 5, 0, hAB, HRR_INT__i_p_h_s, HRR_INT__h_p_h_s, HRR_INT__h_d_h_s);
1150 
1151                 // form INT__h_d_i_s
1152                 ostei_general_hrr_J(5, 2, 6, 0, hAB, HRR_INT__i_p_i_s, HRR_INT__h_p_i_s, HRR_INT__h_d_i_s);
1153 
1154                 // form INT__i_d_f_s
1155                 ostei_general_hrr_J(6, 2, 3, 0, hAB, HRR_INT__k_p_f_s, HRR_INT__i_p_f_s, HRR_INT__i_d_f_s);
1156 
1157                 // form INT__i_d_g_s
1158                 ostei_general_hrr_J(6, 2, 4, 0, hAB, HRR_INT__k_p_g_s, HRR_INT__i_p_g_s, HRR_INT__i_d_g_s);
1159 
1160                 // form INT__i_d_h_s
1161                 ostei_general_hrr_J(6, 2, 5, 0, hAB, HRR_INT__k_p_h_s, HRR_INT__i_p_h_s, HRR_INT__i_d_h_s);
1162 
1163                 // form INT__i_d_i_s
1164                 ostei_general_hrr_J(6, 2, 6, 0, hAB, HRR_INT__k_p_i_s, HRR_INT__i_p_i_s, HRR_INT__i_d_i_s);
1165 
1166                 // form INT__g_f_f_s
1167                 ostei_general_hrr_J(4, 3, 3, 0, hAB, HRR_INT__h_d_f_s, HRR_INT__g_d_f_s, HRR_INT__g_f_f_s);
1168 
1169                 // form INT__g_f_g_s
1170                 ostei_general_hrr_J(4, 3, 4, 0, hAB, HRR_INT__h_d_g_s, HRR_INT__g_d_g_s, HRR_INT__g_f_g_s);
1171 
1172                 // form INT__g_f_h_s
1173                 ostei_general_hrr_J(4, 3, 5, 0, hAB, HRR_INT__h_d_h_s, HRR_INT__g_d_h_s, HRR_INT__g_f_h_s);
1174 
1175                 // form INT__g_f_i_s
1176                 ostei_general_hrr_J(4, 3, 6, 0, hAB, HRR_INT__h_d_i_s, HRR_INT__g_d_i_s, HRR_INT__g_f_i_s);
1177 
1178                 // form INT__h_f_f_s
1179                 ostei_general_hrr_J(5, 3, 3, 0, hAB, HRR_INT__i_d_f_s, HRR_INT__h_d_f_s, HRR_INT__h_f_f_s);
1180 
1181                 // form INT__h_f_g_s
1182                 ostei_general_hrr_J(5, 3, 4, 0, hAB, HRR_INT__i_d_g_s, HRR_INT__h_d_g_s, HRR_INT__h_f_g_s);
1183 
1184                 // form INT__h_f_h_s
1185                 ostei_general_hrr_J(5, 3, 5, 0, hAB, HRR_INT__i_d_h_s, HRR_INT__h_d_h_s, HRR_INT__h_f_h_s);
1186 
1187                 // form INT__h_f_i_s
1188                 ostei_general_hrr_J(5, 3, 6, 0, hAB, HRR_INT__i_d_i_s, HRR_INT__h_d_i_s, HRR_INT__h_f_i_s);
1189 
1190                 // form INT__g_g_f_s
1191                 ostei_general_hrr_J(4, 4, 3, 0, hAB, HRR_INT__h_f_f_s, HRR_INT__g_f_f_s, HRR_INT__g_g_f_s);
1192 
1193                 // form INT__g_g_g_s
1194                 ostei_general_hrr_J(4, 4, 4, 0, hAB, HRR_INT__h_f_g_s, HRR_INT__g_f_g_s, HRR_INT__g_g_g_s);
1195 
1196                 // form INT__g_g_h_s
1197                 ostei_general_hrr_J(4, 4, 5, 0, hAB, HRR_INT__h_f_h_s, HRR_INT__g_f_h_s, HRR_INT__g_g_h_s);
1198 
1199                 // form INT__g_g_i_s
1200                 ostei_general_hrr_J(4, 4, 6, 0, hAB, HRR_INT__h_f_i_s, HRR_INT__g_f_i_s, HRR_INT__g_g_i_s);
1201 
1202                 // form INT__g_g_f_p
1203                 HRR_L_f_p(
1204                     HRR_INT__g_g_f_p,
1205                     HRR_INT__g_g_f_s,
1206                     HRR_INT__g_g_g_s,
1207                     hCD, 225);
1208 
1209                 // form INT__g_g_g_p
1210                 HRR_L_g_p(
1211                     HRR_INT__g_g_g_p,
1212                     HRR_INT__g_g_g_s,
1213                     HRR_INT__g_g_h_s,
1214                     hCD, 225);
1215 
1216                 // form INT__g_g_h_p
1217                 ostei_general_hrr_L(4, 4, 5, 1, hCD, HRR_INT__g_g_i_s, HRR_INT__g_g_h_s, HRR_INT__g_g_h_p);
1218 
1219                 // form INT__g_g_f_d
1220                 HRR_L_f_d(
1221                     HRR_INT__g_g_f_d,
1222                     HRR_INT__g_g_f_p,
1223                     HRR_INT__g_g_g_p,
1224                     hCD, 225);
1225 
1226                 // form INT__g_g_g_d
1227                 ostei_general_hrr_L(4, 4, 4, 2, hCD, HRR_INT__g_g_h_p, HRR_INT__g_g_g_p, HRR_INT__g_g_g_d);
1228 
1229                 // form INT__g_g_f_f
1230                 ostei_general_hrr_L(4, 4, 3, 3, hCD, HRR_INT__g_g_g_d, HRR_INT__g_g_f_d, HRR_INT__g_g_f_f);
1231 
1232 
1233             }  // close HRR loop
1234 
1235 
1236         }   // close loop cdbatch
1237 
1238         istart = iend;
1239     }  // close loop over ab
1240 
1241     return P.nshell12_clip * Q.nshell12_clip;
1242 }
1243 
1244