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