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