1 #include "simint/boys/boys.h"
2 #include "simint/ostei/gen/ostei_generated.h"
3 #include "simint/vectorization/vectorization.h"
4 #include <math.h>
5 #include <string.h>
6
7
ostei_g_g_i_i(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__g_g_i_i)8 int ostei_g_g_i_i(struct simint_multi_shellpair const P,
9 struct simint_multi_shellpair const Q,
10 double screen_tol,
11 double * const restrict work,
12 double * const restrict INT__g_g_i_i)
13 {
14
15 SIMINT_ASSUME_ALIGN_DBL(work);
16 SIMINT_ASSUME_ALIGN_DBL(INT__g_g_i_i);
17 int ab, cd, abcd;
18 int istart, jstart;
19 int iprimcd, nprim_icd, icd;
20 const int check_screen = (screen_tol > 0.0);
21 int i, j;
22 int n;
23 int not_screened;
24 int real_abcd;
25 int iket;
26 int ibra;
27
28 // partition workspace
29 double * const INT__g_s_i_s = work + (SIMINT_NSHELL_SIMD * 0);
30 double * const INT__g_s_k_s = work + (SIMINT_NSHELL_SIMD * 420);
31 double * const INT__g_s_l_s = work + (SIMINT_NSHELL_SIMD * 960);
32 double * const INT__g_s_m_s = work + (SIMINT_NSHELL_SIMD * 1635);
33 double * const INT__g_s_n_s = work + (SIMINT_NSHELL_SIMD * 2460);
34 double * const INT__g_s_o_s = work + (SIMINT_NSHELL_SIMD * 3450);
35 double * const INT__g_s_q_s = work + (SIMINT_NSHELL_SIMD * 4620);
36 double * const INT__h_s_i_s = work + (SIMINT_NSHELL_SIMD * 5985);
37 double * const INT__h_s_k_s = work + (SIMINT_NSHELL_SIMD * 6573);
38 double * const INT__h_s_l_s = work + (SIMINT_NSHELL_SIMD * 7329);
39 double * const INT__h_s_m_s = work + (SIMINT_NSHELL_SIMD * 8274);
40 double * const INT__h_s_n_s = work + (SIMINT_NSHELL_SIMD * 9429);
41 double * const INT__h_s_o_s = work + (SIMINT_NSHELL_SIMD * 10815);
42 double * const INT__h_s_q_s = work + (SIMINT_NSHELL_SIMD * 12453);
43 double * const INT__i_s_i_s = work + (SIMINT_NSHELL_SIMD * 14364);
44 double * const INT__i_s_k_s = work + (SIMINT_NSHELL_SIMD * 15148);
45 double * const INT__i_s_l_s = work + (SIMINT_NSHELL_SIMD * 16156);
46 double * const INT__i_s_m_s = work + (SIMINT_NSHELL_SIMD * 17416);
47 double * const INT__i_s_n_s = work + (SIMINT_NSHELL_SIMD * 18956);
48 double * const INT__i_s_o_s = work + (SIMINT_NSHELL_SIMD * 20804);
49 double * const INT__i_s_q_s = work + (SIMINT_NSHELL_SIMD * 22988);
50 double * const INT__k_s_i_s = work + (SIMINT_NSHELL_SIMD * 25536);
51 double * const INT__k_s_k_s = work + (SIMINT_NSHELL_SIMD * 26544);
52 double * const INT__k_s_l_s = work + (SIMINT_NSHELL_SIMD * 27840);
53 double * const INT__k_s_m_s = work + (SIMINT_NSHELL_SIMD * 29460);
54 double * const INT__k_s_n_s = work + (SIMINT_NSHELL_SIMD * 31440);
55 double * const INT__k_s_o_s = work + (SIMINT_NSHELL_SIMD * 33816);
56 double * const INT__k_s_q_s = work + (SIMINT_NSHELL_SIMD * 36624);
57 double * const INT__l_s_i_s = work + (SIMINT_NSHELL_SIMD * 39900);
58 double * const INT__l_s_k_s = work + (SIMINT_NSHELL_SIMD * 41160);
59 double * const INT__l_s_l_s = work + (SIMINT_NSHELL_SIMD * 42780);
60 double * const INT__l_s_m_s = work + (SIMINT_NSHELL_SIMD * 44805);
61 double * const INT__l_s_n_s = work + (SIMINT_NSHELL_SIMD * 47280);
62 double * const INT__l_s_o_s = work + (SIMINT_NSHELL_SIMD * 50250);
63 double * const INT__l_s_q_s = work + (SIMINT_NSHELL_SIMD * 53760);
64 SIMINT_DBLTYPE * const primwork = (SIMINT_DBLTYPE *)(work + SIMINT_NSHELL_SIMD*57855);
65 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_s_s = primwork + 0;
66 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_p_s = primwork + 21;
67 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_d_s = primwork + 81;
68 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_f_s = primwork + 195;
69 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_g_s = primwork + 375;
70 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_h_s = primwork + 630;
71 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_i_s = primwork + 966;
72 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_k_s = primwork + 1386;
73 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_l_s = primwork + 1890;
74 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_m_s = primwork + 2475;
75 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_n_s = primwork + 3135;
76 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_o_s = primwork + 3861;
77 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_q_s = primwork + 4641;
78 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_s_s = primwork + 5460;
79 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_p_s = primwork + 5484;
80 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_d_s = primwork + 5556;
81 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_f_s = primwork + 5700;
82 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_g_s = primwork + 5940;
83 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_h_s = primwork + 6300;
84 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_i_s = primwork + 6804;
85 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_k_s = primwork + 7476;
86 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_l_s = primwork + 8340;
87 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_m_s = primwork + 9420;
88 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_n_s = primwork + 10740;
89 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_o_s = primwork + 12324;
90 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_q_s = primwork + 14196;
91 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_s_s = primwork + 16380;
92 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_p_s = primwork + 16422;
93 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_d_s = primwork + 16548;
94 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_f_s = primwork + 16800;
95 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_g_s = primwork + 17220;
96 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_h_s = primwork + 17850;
97 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_i_s = primwork + 18732;
98 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_k_s = primwork + 19908;
99 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_l_s = primwork + 21420;
100 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_m_s = primwork + 23310;
101 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_n_s = primwork + 25620;
102 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_o_s = primwork + 28392;
103 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_q_s = primwork + 31668;
104 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_p_s = primwork + 35490;
105 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_d_s = primwork + 35670;
106 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_f_s = primwork + 36030;
107 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_g_s = primwork + 36630;
108 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_h_s = primwork + 37530;
109 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_i_s = primwork + 38790;
110 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_k_s = primwork + 40470;
111 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_l_s = primwork + 42630;
112 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_m_s = primwork + 45330;
113 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_n_s = primwork + 48630;
114 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_o_s = primwork + 52590;
115 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_q_s = primwork + 57270;
116 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_d_s = primwork + 62730;
117 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_f_s = primwork + 63180;
118 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_g_s = primwork + 63930;
119 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_h_s = primwork + 65055;
120 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_i_s = primwork + 66630;
121 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_k_s = primwork + 68730;
122 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_l_s = primwork + 71430;
123 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_m_s = primwork + 74805;
124 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_n_s = primwork + 78930;
125 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_o_s = primwork + 83880;
126 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_q_s = primwork + 89730;
127 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_f_s = primwork + 96555;
128 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_g_s = primwork + 97395;
129 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_h_s = primwork + 98655;
130 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_i_s = primwork + 100419;
131 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_k_s = primwork + 102771;
132 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_l_s = primwork + 105795;
133 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_m_s = primwork + 109575;
134 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_n_s = primwork + 114195;
135 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_o_s = primwork + 119739;
136 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_q_s = primwork + 126291;
137 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_g_s = primwork + 133935;
138 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_h_s = primwork + 135195;
139 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_i_s = primwork + 136959;
140 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_k_s = primwork + 139311;
141 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_l_s = primwork + 142335;
142 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_m_s = primwork + 146115;
143 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_n_s = primwork + 150735;
144 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_o_s = primwork + 156279;
145 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_q_s = primwork + 162831;
146 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_h_s = primwork + 170475;
147 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_i_s = primwork + 171987;
148 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_k_s = primwork + 174003;
149 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_l_s = primwork + 176595;
150 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_m_s = primwork + 179835;
151 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_n_s = primwork + 183795;
152 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_o_s = primwork + 188547;
153 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_q_s = primwork + 194163;
154 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_i_s = primwork + 200715;
155 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_k_s = primwork + 201975;
156 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_l_s = primwork + 203595;
157 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_m_s = primwork + 205620;
158 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_n_s = primwork + 208095;
159 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_o_s = primwork + 211065;
160 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_q_s = primwork + 214575;
161 double * const hrrwork = (double *)(primwork + 218670);
162 double * const HRR_INT__g_p_i_s = hrrwork + 0;
163 double * const HRR_INT__g_p_k_s = hrrwork + 1260;
164 double * const HRR_INT__g_p_l_s = hrrwork + 2880;
165 double * const HRR_INT__g_p_m_s = hrrwork + 4905;
166 double * const HRR_INT__g_p_n_s = hrrwork + 7380;
167 double * const HRR_INT__g_p_o_s = hrrwork + 10350;
168 double * const HRR_INT__g_p_q_s = hrrwork + 13860;
169 double * const HRR_INT__g_d_i_s = hrrwork + 17955;
170 double * const HRR_INT__g_d_k_s = hrrwork + 20475;
171 double * const HRR_INT__g_d_l_s = hrrwork + 23715;
172 double * const HRR_INT__g_d_m_s = hrrwork + 27765;
173 double * const HRR_INT__g_d_n_s = hrrwork + 32715;
174 double * const HRR_INT__g_d_o_s = hrrwork + 38655;
175 double * const HRR_INT__g_d_q_s = hrrwork + 45675;
176 double * const HRR_INT__g_f_i_s = hrrwork + 53865;
177 double * const HRR_INT__g_f_k_s = hrrwork + 58065;
178 double * const HRR_INT__g_f_l_s = hrrwork + 63465;
179 double * const HRR_INT__g_f_m_s = hrrwork + 70215;
180 double * const HRR_INT__g_f_n_s = hrrwork + 78465;
181 double * const HRR_INT__g_f_o_s = hrrwork + 88365;
182 double * const HRR_INT__g_f_q_s = hrrwork + 100065;
183 double * const HRR_INT__g_g_i_s = hrrwork + 113715;
184 double * const HRR_INT__g_g_i_p = hrrwork + 120015;
185 double * const HRR_INT__g_g_i_d = hrrwork + 138915;
186 double * const HRR_INT__g_g_i_f = hrrwork + 176715;
187 double * const HRR_INT__g_g_i_g = hrrwork + 239715;
188 double * const HRR_INT__g_g_i_h = hrrwork + 334215;
189 double * const HRR_INT__g_g_k_s = hrrwork + 466515;
190 double * const HRR_INT__g_g_k_p = hrrwork + 474615;
191 double * const HRR_INT__g_g_k_d = hrrwork + 498915;
192 double * const HRR_INT__g_g_k_f = hrrwork + 547515;
193 double * const HRR_INT__g_g_k_g = hrrwork + 628515;
194 double * const HRR_INT__g_g_k_h = hrrwork + 750015;
195 double * const HRR_INT__g_g_l_s = hrrwork + 920115;
196 double * const HRR_INT__g_g_l_p = hrrwork + 930240;
197 double * const HRR_INT__g_g_l_d = hrrwork + 960615;
198 double * const HRR_INT__g_g_l_f = hrrwork + 1021365;
199 double * const HRR_INT__g_g_l_g = hrrwork + 1122615;
200 double * const HRR_INT__g_g_m_s = hrrwork + 1274490;
201 double * const HRR_INT__g_g_m_p = hrrwork + 1286865;
202 double * const HRR_INT__g_g_m_d = hrrwork + 1323990;
203 double * const HRR_INT__g_g_m_f = hrrwork + 1398240;
204 double * const HRR_INT__g_g_n_s = hrrwork + 1521990;
205 double * const HRR_INT__g_g_n_p = hrrwork + 1536840;
206 double * const HRR_INT__g_g_n_d = hrrwork + 1581390;
207 double * const HRR_INT__g_g_o_s = hrrwork + 1670490;
208 double * const HRR_INT__g_g_o_p = hrrwork + 1688040;
209 double * const HRR_INT__g_g_q_s = hrrwork + 1740690;
210 double * const HRR_INT__h_p_i_s = hrrwork + 1761165;
211 double * const HRR_INT__h_p_k_s = hrrwork + 1762929;
212 double * const HRR_INT__h_p_l_s = hrrwork + 1765197;
213 double * const HRR_INT__h_p_m_s = hrrwork + 1768032;
214 double * const HRR_INT__h_p_n_s = hrrwork + 1771497;
215 double * const HRR_INT__h_p_o_s = hrrwork + 1775655;
216 double * const HRR_INT__h_p_q_s = hrrwork + 1780569;
217 double * const HRR_INT__h_d_i_s = hrrwork + 1786302;
218 double * const HRR_INT__h_d_k_s = hrrwork + 1789830;
219 double * const HRR_INT__h_d_l_s = hrrwork + 1794366;
220 double * const HRR_INT__h_d_m_s = hrrwork + 1800036;
221 double * const HRR_INT__h_d_n_s = hrrwork + 1806966;
222 double * const HRR_INT__h_d_o_s = hrrwork + 1815282;
223 double * const HRR_INT__h_d_q_s = hrrwork + 1825110;
224 double * const HRR_INT__h_f_i_s = hrrwork + 1836576;
225 double * const HRR_INT__h_f_k_s = hrrwork + 1842456;
226 double * const HRR_INT__h_f_l_s = hrrwork + 1850016;
227 double * const HRR_INT__h_f_m_s = hrrwork + 1859466;
228 double * const HRR_INT__h_f_n_s = hrrwork + 1871016;
229 double * const HRR_INT__h_f_o_s = hrrwork + 1884876;
230 double * const HRR_INT__h_f_q_s = hrrwork + 1901256;
231 double * const HRR_INT__i_p_i_s = hrrwork + 1920366;
232 double * const HRR_INT__i_p_k_s = hrrwork + 1922718;
233 double * const HRR_INT__i_p_l_s = hrrwork + 1925742;
234 double * const HRR_INT__i_p_m_s = hrrwork + 1929522;
235 double * const HRR_INT__i_p_n_s = hrrwork + 1934142;
236 double * const HRR_INT__i_p_o_s = hrrwork + 1939686;
237 double * const HRR_INT__i_p_q_s = hrrwork + 1946238;
238 double * const HRR_INT__i_d_i_s = hrrwork + 1953882;
239 double * const HRR_INT__i_d_k_s = hrrwork + 1958586;
240 double * const HRR_INT__i_d_l_s = hrrwork + 1964634;
241 double * const HRR_INT__i_d_m_s = hrrwork + 1972194;
242 double * const HRR_INT__i_d_n_s = hrrwork + 1981434;
243 double * const HRR_INT__i_d_o_s = hrrwork + 1992522;
244 double * const HRR_INT__i_d_q_s = hrrwork + 2005626;
245 double * const HRR_INT__k_p_i_s = hrrwork + 2020914;
246 double * const HRR_INT__k_p_k_s = hrrwork + 2023938;
247 double * const HRR_INT__k_p_l_s = hrrwork + 2027826;
248 double * const HRR_INT__k_p_m_s = hrrwork + 2032686;
249 double * const HRR_INT__k_p_n_s = hrrwork + 2038626;
250 double * const HRR_INT__k_p_o_s = hrrwork + 2045754;
251 double * const HRR_INT__k_p_q_s = hrrwork + 2054178;
252
253
254 // Create constants
255 const SIMINT_DBLTYPE const_1 = SIMINT_DBLSET1(1);
256 const SIMINT_DBLTYPE const_10 = SIMINT_DBLSET1(10);
257 const SIMINT_DBLTYPE const_11 = SIMINT_DBLSET1(11);
258 const SIMINT_DBLTYPE const_12 = SIMINT_DBLSET1(12);
259 const SIMINT_DBLTYPE const_2 = SIMINT_DBLSET1(2);
260 const SIMINT_DBLTYPE const_3 = SIMINT_DBLSET1(3);
261 const SIMINT_DBLTYPE const_4 = SIMINT_DBLSET1(4);
262 const SIMINT_DBLTYPE const_5 = SIMINT_DBLSET1(5);
263 const SIMINT_DBLTYPE const_6 = SIMINT_DBLSET1(6);
264 const SIMINT_DBLTYPE const_7 = SIMINT_DBLSET1(7);
265 const SIMINT_DBLTYPE const_8 = SIMINT_DBLSET1(8);
266 const SIMINT_DBLTYPE const_9 = SIMINT_DBLSET1(9);
267 const SIMINT_DBLTYPE one_half = SIMINT_DBLSET1(0.5);
268
269
270 ////////////////////////////////////////
271 // Loop over shells and primitives
272 ////////////////////////////////////////
273
274 real_abcd = 0;
275 istart = 0;
276 for(ab = 0; ab < P.nshell12_clip; ++ab)
277 {
278 const int iend = istart + P.nprim12[ab];
279
280 cd = 0;
281 jstart = 0;
282
283 for(cd = 0; cd < Q.nshell12_clip; cd += SIMINT_NSHELL_SIMD)
284 {
285 const int nshellbatch = ((cd + SIMINT_NSHELL_SIMD) > Q.nshell12_clip) ? Q.nshell12_clip - cd : SIMINT_NSHELL_SIMD;
286 int jend = jstart;
287 for(i = 0; i < nshellbatch; i++)
288 jend += Q.nprim12[cd+i];
289
290 // Clear the beginning of the workspace (where we are accumulating integrals)
291 memset(work, 0, SIMINT_NSHELL_SIMD * 57855 * sizeof(double));
292 abcd = 0;
293
294
295 for(i = istart; i < iend; ++i)
296 {
297 SIMINT_DBLTYPE bra_screen_max; // only used if check_screen
298
299 if(check_screen)
300 {
301 // Skip this whole thing if always insignificant
302 if((P.screen[i] * Q.screen_max) < screen_tol)
303 continue;
304 bra_screen_max = SIMINT_DBLSET1(P.screen[i]);
305 }
306
307 icd = 0;
308 iprimcd = 0;
309 nprim_icd = Q.nprim12[cd];
310 double * restrict PRIM_PTR_INT__g_s_i_s = INT__g_s_i_s + abcd * 420;
311 double * restrict PRIM_PTR_INT__g_s_k_s = INT__g_s_k_s + abcd * 540;
312 double * restrict PRIM_PTR_INT__g_s_l_s = INT__g_s_l_s + abcd * 675;
313 double * restrict PRIM_PTR_INT__g_s_m_s = INT__g_s_m_s + abcd * 825;
314 double * restrict PRIM_PTR_INT__g_s_n_s = INT__g_s_n_s + abcd * 990;
315 double * restrict PRIM_PTR_INT__g_s_o_s = INT__g_s_o_s + abcd * 1170;
316 double * restrict PRIM_PTR_INT__g_s_q_s = INT__g_s_q_s + abcd * 1365;
317 double * restrict PRIM_PTR_INT__h_s_i_s = INT__h_s_i_s + abcd * 588;
318 double * restrict PRIM_PTR_INT__h_s_k_s = INT__h_s_k_s + abcd * 756;
319 double * restrict PRIM_PTR_INT__h_s_l_s = INT__h_s_l_s + abcd * 945;
320 double * restrict PRIM_PTR_INT__h_s_m_s = INT__h_s_m_s + abcd * 1155;
321 double * restrict PRIM_PTR_INT__h_s_n_s = INT__h_s_n_s + abcd * 1386;
322 double * restrict PRIM_PTR_INT__h_s_o_s = INT__h_s_o_s + abcd * 1638;
323 double * restrict PRIM_PTR_INT__h_s_q_s = INT__h_s_q_s + abcd * 1911;
324 double * restrict PRIM_PTR_INT__i_s_i_s = INT__i_s_i_s + abcd * 784;
325 double * restrict PRIM_PTR_INT__i_s_k_s = INT__i_s_k_s + abcd * 1008;
326 double * restrict PRIM_PTR_INT__i_s_l_s = INT__i_s_l_s + abcd * 1260;
327 double * restrict PRIM_PTR_INT__i_s_m_s = INT__i_s_m_s + abcd * 1540;
328 double * restrict PRIM_PTR_INT__i_s_n_s = INT__i_s_n_s + abcd * 1848;
329 double * restrict PRIM_PTR_INT__i_s_o_s = INT__i_s_o_s + abcd * 2184;
330 double * restrict PRIM_PTR_INT__i_s_q_s = INT__i_s_q_s + abcd * 2548;
331 double * restrict PRIM_PTR_INT__k_s_i_s = INT__k_s_i_s + abcd * 1008;
332 double * restrict PRIM_PTR_INT__k_s_k_s = INT__k_s_k_s + abcd * 1296;
333 double * restrict PRIM_PTR_INT__k_s_l_s = INT__k_s_l_s + abcd * 1620;
334 double * restrict PRIM_PTR_INT__k_s_m_s = INT__k_s_m_s + abcd * 1980;
335 double * restrict PRIM_PTR_INT__k_s_n_s = INT__k_s_n_s + abcd * 2376;
336 double * restrict PRIM_PTR_INT__k_s_o_s = INT__k_s_o_s + abcd * 2808;
337 double * restrict PRIM_PTR_INT__k_s_q_s = INT__k_s_q_s + abcd * 3276;
338 double * restrict PRIM_PTR_INT__l_s_i_s = INT__l_s_i_s + abcd * 1260;
339 double * restrict PRIM_PTR_INT__l_s_k_s = INT__l_s_k_s + abcd * 1620;
340 double * restrict PRIM_PTR_INT__l_s_l_s = INT__l_s_l_s + abcd * 2025;
341 double * restrict PRIM_PTR_INT__l_s_m_s = INT__l_s_m_s + abcd * 2475;
342 double * restrict PRIM_PTR_INT__l_s_n_s = INT__l_s_n_s + abcd * 2970;
343 double * restrict PRIM_PTR_INT__l_s_o_s = INT__l_s_o_s + abcd * 3510;
344 double * restrict PRIM_PTR_INT__l_s_q_s = INT__l_s_q_s + abcd * 4095;
345
346
347
348 // Load these one per loop over i
349 const SIMINT_DBLTYPE P_alpha = SIMINT_DBLSET1(P.alpha[i]);
350 const SIMINT_DBLTYPE P_prefac = SIMINT_DBLSET1(P.prefac[i]);
351 const SIMINT_DBLTYPE Pxyz[3] = { SIMINT_DBLSET1(P.x[i]), SIMINT_DBLSET1(P.y[i]), SIMINT_DBLSET1(P.z[i]) };
352
353 const SIMINT_DBLTYPE P_PA[3] = { SIMINT_DBLSET1(P.PA_x[i]), SIMINT_DBLSET1(P.PA_y[i]), SIMINT_DBLSET1(P.PA_z[i]) };
354
355 for(j = jstart; j < jend; j += SIMINT_SIMD_LEN)
356 {
357 // calculate the shell offsets
358 // these are the offset from the shell pointed to by cd
359 // for each element
360 int shelloffsets[SIMINT_SIMD_LEN] = {0};
361 int lastoffset = 0;
362 const int nlane = ( ((j + SIMINT_SIMD_LEN) < jend) ? SIMINT_SIMD_LEN : (jend - j));
363
364 if((iprimcd + SIMINT_SIMD_LEN) >= nprim_icd)
365 {
366 // Handle if the first element of the vector is a new shell
367 if(iprimcd >= nprim_icd && ((icd+1) < nshellbatch))
368 {
369 nprim_icd += Q.nprim12[cd + (++icd)];
370 PRIM_PTR_INT__g_s_i_s += 420;
371 PRIM_PTR_INT__g_s_k_s += 540;
372 PRIM_PTR_INT__g_s_l_s += 675;
373 PRIM_PTR_INT__g_s_m_s += 825;
374 PRIM_PTR_INT__g_s_n_s += 990;
375 PRIM_PTR_INT__g_s_o_s += 1170;
376 PRIM_PTR_INT__g_s_q_s += 1365;
377 PRIM_PTR_INT__h_s_i_s += 588;
378 PRIM_PTR_INT__h_s_k_s += 756;
379 PRIM_PTR_INT__h_s_l_s += 945;
380 PRIM_PTR_INT__h_s_m_s += 1155;
381 PRIM_PTR_INT__h_s_n_s += 1386;
382 PRIM_PTR_INT__h_s_o_s += 1638;
383 PRIM_PTR_INT__h_s_q_s += 1911;
384 PRIM_PTR_INT__i_s_i_s += 784;
385 PRIM_PTR_INT__i_s_k_s += 1008;
386 PRIM_PTR_INT__i_s_l_s += 1260;
387 PRIM_PTR_INT__i_s_m_s += 1540;
388 PRIM_PTR_INT__i_s_n_s += 1848;
389 PRIM_PTR_INT__i_s_o_s += 2184;
390 PRIM_PTR_INT__i_s_q_s += 2548;
391 PRIM_PTR_INT__k_s_i_s += 1008;
392 PRIM_PTR_INT__k_s_k_s += 1296;
393 PRIM_PTR_INT__k_s_l_s += 1620;
394 PRIM_PTR_INT__k_s_m_s += 1980;
395 PRIM_PTR_INT__k_s_n_s += 2376;
396 PRIM_PTR_INT__k_s_o_s += 2808;
397 PRIM_PTR_INT__k_s_q_s += 3276;
398 PRIM_PTR_INT__l_s_i_s += 1260;
399 PRIM_PTR_INT__l_s_k_s += 1620;
400 PRIM_PTR_INT__l_s_l_s += 2025;
401 PRIM_PTR_INT__l_s_m_s += 2475;
402 PRIM_PTR_INT__l_s_n_s += 2970;
403 PRIM_PTR_INT__l_s_o_s += 3510;
404 PRIM_PTR_INT__l_s_q_s += 4095;
405 }
406 iprimcd++;
407 for(n = 1; n < SIMINT_SIMD_LEN; ++n)
408 {
409 if(iprimcd >= nprim_icd && ((icd+1) < nshellbatch))
410 {
411 shelloffsets[n] = shelloffsets[n-1] + 1;
412 lastoffset++;
413 nprim_icd += Q.nprim12[cd + (++icd)];
414 }
415 else
416 shelloffsets[n] = shelloffsets[n-1];
417 iprimcd++;
418 }
419 }
420 else
421 iprimcd += SIMINT_SIMD_LEN;
422
423 // Do we have to compute this vector (or has it been screened out)?
424 // (not_screened != 0 means we have to do this vector)
425 if(check_screen)
426 {
427 const double vmax = vector_max(SIMINT_MUL(bra_screen_max, SIMINT_DBLLOAD(Q.screen, j)));
428 if(vmax < screen_tol)
429 {
430 PRIM_PTR_INT__g_s_i_s += lastoffset*420;
431 PRIM_PTR_INT__g_s_k_s += lastoffset*540;
432 PRIM_PTR_INT__g_s_l_s += lastoffset*675;
433 PRIM_PTR_INT__g_s_m_s += lastoffset*825;
434 PRIM_PTR_INT__g_s_n_s += lastoffset*990;
435 PRIM_PTR_INT__g_s_o_s += lastoffset*1170;
436 PRIM_PTR_INT__g_s_q_s += lastoffset*1365;
437 PRIM_PTR_INT__h_s_i_s += lastoffset*588;
438 PRIM_PTR_INT__h_s_k_s += lastoffset*756;
439 PRIM_PTR_INT__h_s_l_s += lastoffset*945;
440 PRIM_PTR_INT__h_s_m_s += lastoffset*1155;
441 PRIM_PTR_INT__h_s_n_s += lastoffset*1386;
442 PRIM_PTR_INT__h_s_o_s += lastoffset*1638;
443 PRIM_PTR_INT__h_s_q_s += lastoffset*1911;
444 PRIM_PTR_INT__i_s_i_s += lastoffset*784;
445 PRIM_PTR_INT__i_s_k_s += lastoffset*1008;
446 PRIM_PTR_INT__i_s_l_s += lastoffset*1260;
447 PRIM_PTR_INT__i_s_m_s += lastoffset*1540;
448 PRIM_PTR_INT__i_s_n_s += lastoffset*1848;
449 PRIM_PTR_INT__i_s_o_s += lastoffset*2184;
450 PRIM_PTR_INT__i_s_q_s += lastoffset*2548;
451 PRIM_PTR_INT__k_s_i_s += lastoffset*1008;
452 PRIM_PTR_INT__k_s_k_s += lastoffset*1296;
453 PRIM_PTR_INT__k_s_l_s += lastoffset*1620;
454 PRIM_PTR_INT__k_s_m_s += lastoffset*1980;
455 PRIM_PTR_INT__k_s_n_s += lastoffset*2376;
456 PRIM_PTR_INT__k_s_o_s += lastoffset*2808;
457 PRIM_PTR_INT__k_s_q_s += lastoffset*3276;
458 PRIM_PTR_INT__l_s_i_s += lastoffset*1260;
459 PRIM_PTR_INT__l_s_k_s += lastoffset*1620;
460 PRIM_PTR_INT__l_s_l_s += lastoffset*2025;
461 PRIM_PTR_INT__l_s_m_s += lastoffset*2475;
462 PRIM_PTR_INT__l_s_n_s += lastoffset*2970;
463 PRIM_PTR_INT__l_s_o_s += lastoffset*3510;
464 PRIM_PTR_INT__l_s_q_s += lastoffset*4095;
465 continue;
466 }
467 }
468
469 const SIMINT_DBLTYPE Q_alpha = SIMINT_DBLLOAD(Q.alpha, j);
470 const SIMINT_DBLTYPE PQalpha_mul = SIMINT_MUL(P_alpha, Q_alpha);
471 const SIMINT_DBLTYPE PQalpha_sum = SIMINT_ADD(P_alpha, Q_alpha);
472 const SIMINT_DBLTYPE one_over_PQalpha_sum = SIMINT_DIV(const_1, PQalpha_sum);
473
474
475 /* construct R2 = (Px - Qx)**2 + (Py - Qy)**2 + (Pz -Qz)**2 */
476 SIMINT_DBLTYPE PQ[3];
477 PQ[0] = SIMINT_SUB(Pxyz[0], SIMINT_DBLLOAD(Q.x, j));
478 PQ[1] = SIMINT_SUB(Pxyz[1], SIMINT_DBLLOAD(Q.y, j));
479 PQ[2] = SIMINT_SUB(Pxyz[2], SIMINT_DBLLOAD(Q.z, j));
480 SIMINT_DBLTYPE R2 = SIMINT_MUL(PQ[0], PQ[0]);
481 R2 = SIMINT_FMADD(PQ[1], PQ[1], R2);
482 R2 = SIMINT_FMADD(PQ[2], PQ[2], R2);
483
484 const SIMINT_DBLTYPE alpha = SIMINT_MUL(PQalpha_mul, one_over_PQalpha_sum); // alpha from MEST
485 const SIMINT_DBLTYPE one_over_p = SIMINT_DIV(const_1, P_alpha);
486 const SIMINT_DBLTYPE one_over_q = SIMINT_DIV(const_1, Q_alpha);
487 const SIMINT_DBLTYPE one_over_2p = SIMINT_MUL(one_half, one_over_p);
488 const SIMINT_DBLTYPE one_over_2q = SIMINT_MUL(one_half, one_over_q);
489 const SIMINT_DBLTYPE one_over_2pq = SIMINT_MUL(one_half, one_over_PQalpha_sum);
490 const SIMINT_DBLTYPE Q_PA[3] = { SIMINT_DBLLOAD(Q.PA_x, j), SIMINT_DBLLOAD(Q.PA_y, j), SIMINT_DBLLOAD(Q.PA_z, j) };
491
492 // NOTE: Minus sign!
493 const SIMINT_DBLTYPE a_over_p = SIMINT_MUL(SIMINT_NEG(alpha), one_over_p);
494 SIMINT_DBLTYPE aop_PQ[3];
495 aop_PQ[0] = SIMINT_MUL(a_over_p, PQ[0]);
496 aop_PQ[1] = SIMINT_MUL(a_over_p, PQ[1]);
497 aop_PQ[2] = SIMINT_MUL(a_over_p, PQ[2]);
498
499 SIMINT_DBLTYPE a_over_q = SIMINT_MUL(alpha, one_over_q);
500 SIMINT_DBLTYPE aoq_PQ[3];
501 aoq_PQ[0] = SIMINT_MUL(a_over_q, PQ[0]);
502 aoq_PQ[1] = SIMINT_MUL(a_over_q, PQ[1]);
503 aoq_PQ[2] = SIMINT_MUL(a_over_q, PQ[2]);
504 // Put a minus sign here so we don't have to in RR routines
505 a_over_q = SIMINT_NEG(a_over_q);
506
507
508 //////////////////////////////////////////////
509 // Fjt function section
510 // Maximum v value: 20
511 //////////////////////////////////////////////
512 // The parameter to the Fjt function
513 const SIMINT_DBLTYPE F_x = SIMINT_MUL(R2, alpha);
514
515
516 const SIMINT_DBLTYPE Q_prefac = mask_load(nlane, Q.prefac + j);
517
518
519 boys_F_split(PRIM_INT__s_s_s_s, F_x, 20);
520 SIMINT_DBLTYPE prefac = SIMINT_SQRT(one_over_PQalpha_sum);
521 prefac = SIMINT_MUL(SIMINT_MUL(P_prefac, Q_prefac), prefac);
522 for(n = 0; n <= 20; n++)
523 PRIM_INT__s_s_s_s[n] = SIMINT_MUL(PRIM_INT__s_s_s_s[n], prefac);
524
525 //////////////////////////////////////////////
526 // Primitive integrals: Vertical recurrance
527 //////////////////////////////////////////////
528
529 const SIMINT_DBLTYPE vrr_const_1_over_2p = one_over_2p;
530 const SIMINT_DBLTYPE vrr_const_2_over_2p = SIMINT_MUL(const_2, one_over_2p);
531 const SIMINT_DBLTYPE vrr_const_3_over_2p = SIMINT_MUL(const_3, one_over_2p);
532 const SIMINT_DBLTYPE vrr_const_4_over_2p = SIMINT_MUL(const_4, one_over_2p);
533 const SIMINT_DBLTYPE vrr_const_5_over_2p = SIMINT_MUL(const_5, one_over_2p);
534 const SIMINT_DBLTYPE vrr_const_6_over_2p = SIMINT_MUL(const_6, one_over_2p);
535 const SIMINT_DBLTYPE vrr_const_7_over_2p = SIMINT_MUL(const_7, one_over_2p);
536 const SIMINT_DBLTYPE vrr_const_1_over_2q = one_over_2q;
537 const SIMINT_DBLTYPE vrr_const_2_over_2q = SIMINT_MUL(const_2, one_over_2q);
538 const SIMINT_DBLTYPE vrr_const_3_over_2q = SIMINT_MUL(const_3, one_over_2q);
539 const SIMINT_DBLTYPE vrr_const_4_over_2q = SIMINT_MUL(const_4, one_over_2q);
540 const SIMINT_DBLTYPE vrr_const_5_over_2q = SIMINT_MUL(const_5, one_over_2q);
541 const SIMINT_DBLTYPE vrr_const_6_over_2q = SIMINT_MUL(const_6, one_over_2q);
542 const SIMINT_DBLTYPE vrr_const_7_over_2q = SIMINT_MUL(const_7, one_over_2q);
543 const SIMINT_DBLTYPE vrr_const_8_over_2q = SIMINT_MUL(const_8, one_over_2q);
544 const SIMINT_DBLTYPE vrr_const_9_over_2q = SIMINT_MUL(const_9, one_over_2q);
545 const SIMINT_DBLTYPE vrr_const_10_over_2q = SIMINT_MUL(const_10, one_over_2q);
546 const SIMINT_DBLTYPE vrr_const_11_over_2q = SIMINT_MUL(const_11, one_over_2q);
547 const SIMINT_DBLTYPE vrr_const_1_over_2pq = one_over_2pq;
548 const SIMINT_DBLTYPE vrr_const_2_over_2pq = SIMINT_MUL(const_2, one_over_2pq);
549 const SIMINT_DBLTYPE vrr_const_3_over_2pq = SIMINT_MUL(const_3, one_over_2pq);
550 const SIMINT_DBLTYPE vrr_const_4_over_2pq = SIMINT_MUL(const_4, one_over_2pq);
551 const SIMINT_DBLTYPE vrr_const_5_over_2pq = SIMINT_MUL(const_5, one_over_2pq);
552 const SIMINT_DBLTYPE vrr_const_6_over_2pq = SIMINT_MUL(const_6, one_over_2pq);
553 const SIMINT_DBLTYPE vrr_const_7_over_2pq = SIMINT_MUL(const_7, one_over_2pq);
554 const SIMINT_DBLTYPE vrr_const_8_over_2pq = SIMINT_MUL(const_8, one_over_2pq);
555 const SIMINT_DBLTYPE vrr_const_9_over_2pq = SIMINT_MUL(const_9, one_over_2pq);
556 const SIMINT_DBLTYPE vrr_const_10_over_2pq = SIMINT_MUL(const_10, one_over_2pq);
557 const SIMINT_DBLTYPE vrr_const_11_over_2pq = SIMINT_MUL(const_11, one_over_2pq);
558 const SIMINT_DBLTYPE vrr_const_12_over_2pq = SIMINT_MUL(const_12, one_over_2pq);
559
560
561
562 // Forming PRIM_INT__s_s_p_s[20 * 3];
563 for(n = 0; n < 20; ++n) // loop over orders of auxiliary function
564 {
565
566 PRIM_INT__s_s_p_s[n * 3 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_s_s[n * 1 + 0]);
567 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]);
568
569 PRIM_INT__s_s_p_s[n * 3 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_s_s[n * 1 + 0]);
570 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]);
571
572 PRIM_INT__s_s_p_s[n * 3 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_s_s[n * 1 + 0]);
573 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]);
574
575 }
576
577
578
579 // Forming PRIM_INT__s_s_d_s[19 * 6];
580 for(n = 0; n < 19; ++n) // loop over orders of auxiliary function
581 {
582
583 PRIM_INT__s_s_d_s[n * 6 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_p_s[n * 3 + 0]);
584 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]);
585 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]);
586
587 PRIM_INT__s_s_d_s[n * 6 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_p_s[n * 3 + 0]);
588 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]);
589
590 PRIM_INT__s_s_d_s[n * 6 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_p_s[n * 3 + 0]);
591 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]);
592
593 PRIM_INT__s_s_d_s[n * 6 + 3] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_p_s[n * 3 + 1]);
594 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]);
595 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]);
596
597 PRIM_INT__s_s_d_s[n * 6 + 4] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_p_s[n * 3 + 1]);
598 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]);
599
600 PRIM_INT__s_s_d_s[n * 6 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_p_s[n * 3 + 2]);
601 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]);
602 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]);
603
604 }
605
606
607
608 // Forming PRIM_INT__s_s_f_s[18 * 10];
609 for(n = 0; n < 18; ++n) // loop over orders of auxiliary function
610 {
611
612 PRIM_INT__s_s_f_s[n * 10 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_d_s[n * 6 + 0]);
613 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]);
614 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]);
615
616 PRIM_INT__s_s_f_s[n * 10 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_d_s[n * 6 + 0]);
617 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]);
618
619 PRIM_INT__s_s_f_s[n * 10 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_d_s[n * 6 + 0]);
620 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]);
621
622 PRIM_INT__s_s_f_s[n * 10 + 3] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_d_s[n * 6 + 3]);
623 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]);
624
625 PRIM_INT__s_s_f_s[n * 10 + 4] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_d_s[n * 6 + 1]);
626 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]);
627
628 PRIM_INT__s_s_f_s[n * 10 + 5] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_d_s[n * 6 + 5]);
629 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]);
630
631 PRIM_INT__s_s_f_s[n * 10 + 6] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_d_s[n * 6 + 3]);
632 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]);
633 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]);
634
635 PRIM_INT__s_s_f_s[n * 10 + 7] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_d_s[n * 6 + 3]);
636 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]);
637
638 PRIM_INT__s_s_f_s[n * 10 + 8] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_d_s[n * 6 + 5]);
639 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]);
640
641 PRIM_INT__s_s_f_s[n * 10 + 9] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_d_s[n * 6 + 5]);
642 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]);
643 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]);
644
645 }
646
647
648 VRR_K_s_s_g_s(
649 PRIM_INT__s_s_g_s,
650 PRIM_INT__s_s_f_s,
651 PRIM_INT__s_s_d_s,
652 Q_PA,
653 a_over_q,
654 aoq_PQ,
655 one_over_2q,
656 17);
657
658
659 VRR_K_s_s_h_s(
660 PRIM_INT__s_s_h_s,
661 PRIM_INT__s_s_g_s,
662 PRIM_INT__s_s_f_s,
663 Q_PA,
664 a_over_q,
665 aoq_PQ,
666 one_over_2q,
667 16);
668
669
670 ostei_general_vrr1_K(6, 15,
671 one_over_2q, a_over_q, aoq_PQ, Q_PA,
672 PRIM_INT__s_s_h_s, PRIM_INT__s_s_g_s, PRIM_INT__s_s_i_s);
673
674
675 ostei_general_vrr_I(1, 0, 6, 0, 8,
676 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
677 PRIM_INT__s_s_i_s, NULL, NULL, PRIM_INT__s_s_h_s, NULL, PRIM_INT__p_s_i_s);
678
679
680 ostei_general_vrr_I(1, 0, 5, 0, 8,
681 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
682 PRIM_INT__s_s_h_s, NULL, NULL, PRIM_INT__s_s_g_s, NULL, PRIM_INT__p_s_h_s);
683
684
685 ostei_general_vrr_I(2, 0, 6, 0, 7,
686 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
687 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);
688
689
690 VRR_I_p_s_g_s(
691 PRIM_INT__p_s_g_s,
692 PRIM_INT__s_s_g_s,
693 PRIM_INT__s_s_f_s,
694 P_PA,
695 aop_PQ,
696 one_over_2pq,
697 8);
698
699
700 ostei_general_vrr_I(2, 0, 5, 0, 7,
701 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
702 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);
703
704
705 ostei_general_vrr_I(3, 0, 6, 0, 6,
706 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
707 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);
708
709
710 VRR_I_p_s_f_s(
711 PRIM_INT__p_s_f_s,
712 PRIM_INT__s_s_f_s,
713 PRIM_INT__s_s_d_s,
714 P_PA,
715 aop_PQ,
716 one_over_2pq,
717 8);
718
719
720 ostei_general_vrr_I(2, 0, 4, 0, 7,
721 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
722 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);
723
724
725 ostei_general_vrr_I(3, 0, 5, 0, 6,
726 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
727 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);
728
729
730 ostei_general_vrr_I(4, 0, 6, 0, 5,
731 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
732 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);
733
734
735 ostei_general_vrr1_K(7, 14,
736 one_over_2q, a_over_q, aoq_PQ, Q_PA,
737 PRIM_INT__s_s_i_s, PRIM_INT__s_s_h_s, PRIM_INT__s_s_k_s);
738
739
740 ostei_general_vrr_I(1, 0, 7, 0, 8,
741 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
742 PRIM_INT__s_s_k_s, NULL, NULL, PRIM_INT__s_s_i_s, NULL, PRIM_INT__p_s_k_s);
743
744
745 ostei_general_vrr_I(2, 0, 7, 0, 7,
746 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
747 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);
748
749
750 ostei_general_vrr_I(3, 0, 7, 0, 6,
751 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
752 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);
753
754
755 ostei_general_vrr_I(4, 0, 7, 0, 5,
756 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
757 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);
758
759
760
761 // Forming PRIM_INT__p_s_d_s[8 * 18];
762 for(n = 0; n < 8; ++n) // loop over orders of auxiliary function
763 {
764
765 PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 0]);
766 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]);
767 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]);
768
769 PRIM_INT__p_s_d_s[n * 18 + 1] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 1]);
770 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]);
771 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]);
772
773 PRIM_INT__p_s_d_s[n * 18 + 2] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 2]);
774 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]);
775 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]);
776
777 PRIM_INT__p_s_d_s[n * 18 + 3] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 3]);
778 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]);
779
780 PRIM_INT__p_s_d_s[n * 18 + 4] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 4]);
781 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]);
782
783 PRIM_INT__p_s_d_s[n * 18 + 5] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 5]);
784 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]);
785
786 PRIM_INT__p_s_d_s[n * 18 + 6] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 0]);
787 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]);
788
789 PRIM_INT__p_s_d_s[n * 18 + 7] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 1]);
790 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]);
791 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]);
792
793 PRIM_INT__p_s_d_s[n * 18 + 8] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 2]);
794 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]);
795
796 PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 3]);
797 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]);
798 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]);
799
800 PRIM_INT__p_s_d_s[n * 18 + 10] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 4]);
801 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]);
802 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]);
803
804 PRIM_INT__p_s_d_s[n * 18 + 11] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 5]);
805 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]);
806
807 PRIM_INT__p_s_d_s[n * 18 + 12] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 0]);
808 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]);
809
810 PRIM_INT__p_s_d_s[n * 18 + 13] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 1]);
811 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]);
812
813 PRIM_INT__p_s_d_s[n * 18 + 14] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 2]);
814 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]);
815 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]);
816
817 PRIM_INT__p_s_d_s[n * 18 + 15] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 3]);
818 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]);
819
820 PRIM_INT__p_s_d_s[n * 18 + 16] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 4]);
821 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]);
822 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]);
823
824 PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 5]);
825 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]);
826 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]);
827
828 }
829
830
831 VRR_I_d_s_f_s(
832 PRIM_INT__d_s_f_s,
833 PRIM_INT__p_s_f_s,
834 PRIM_INT__s_s_f_s,
835 PRIM_INT__p_s_d_s,
836 P_PA,
837 a_over_p,
838 aop_PQ,
839 one_over_2p,
840 one_over_2pq,
841 7);
842
843
844 ostei_general_vrr_I(3, 0, 4, 0, 6,
845 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
846 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);
847
848
849 ostei_general_vrr_I(4, 0, 5, 0, 5,
850 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
851 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);
852
853
854 ostei_general_vrr_I(5, 0, 6, 0, 4,
855 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
856 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);
857
858
859 ostei_general_vrr1_K(8, 13,
860 one_over_2q, a_over_q, aoq_PQ, Q_PA,
861 PRIM_INT__s_s_k_s, PRIM_INT__s_s_i_s, PRIM_INT__s_s_l_s);
862
863
864 ostei_general_vrr_I(1, 0, 8, 0, 8,
865 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
866 PRIM_INT__s_s_l_s, NULL, NULL, PRIM_INT__s_s_k_s, NULL, PRIM_INT__p_s_l_s);
867
868
869 ostei_general_vrr_I(2, 0, 8, 0, 7,
870 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
871 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);
872
873
874 ostei_general_vrr_I(3, 0, 8, 0, 6,
875 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
876 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);
877
878
879 ostei_general_vrr_I(4, 0, 8, 0, 5,
880 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
881 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);
882
883
884 ostei_general_vrr_I(5, 0, 7, 0, 4,
885 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
886 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);
887
888
889
890 // Forming PRIM_INT__p_s_p_s[8 * 9];
891 for(n = 0; n < 8; ++n) // loop over orders of auxiliary function
892 {
893
894 PRIM_INT__p_s_p_s[n * 9 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_p_s[n * 3 + 0]);
895 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]);
896 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]);
897
898 PRIM_INT__p_s_p_s[n * 9 + 1] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_p_s[n * 3 + 1]);
899 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]);
900
901 PRIM_INT__p_s_p_s[n * 9 + 2] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_p_s[n * 3 + 2]);
902 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]);
903
904 PRIM_INT__p_s_p_s[n * 9 + 3] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_p_s[n * 3 + 0]);
905 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]);
906
907 PRIM_INT__p_s_p_s[n * 9 + 4] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_p_s[n * 3 + 1]);
908 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]);
909 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]);
910
911 PRIM_INT__p_s_p_s[n * 9 + 5] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_p_s[n * 3 + 2]);
912 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]);
913
914 PRIM_INT__p_s_p_s[n * 9 + 6] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_p_s[n * 3 + 0]);
915 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]);
916
917 PRIM_INT__p_s_p_s[n * 9 + 7] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_p_s[n * 3 + 1]);
918 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]);
919
920 PRIM_INT__p_s_p_s[n * 9 + 8] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_p_s[n * 3 + 2]);
921 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]);
922 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]);
923
924 }
925
926
927 VRR_I_d_s_d_s(
928 PRIM_INT__d_s_d_s,
929 PRIM_INT__p_s_d_s,
930 PRIM_INT__s_s_d_s,
931 PRIM_INT__p_s_p_s,
932 P_PA,
933 a_over_p,
934 aop_PQ,
935 one_over_2p,
936 one_over_2pq,
937 7);
938
939
940 ostei_general_vrr_I(3, 0, 3, 0, 6,
941 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
942 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);
943
944
945 ostei_general_vrr_I(4, 0, 4, 0, 5,
946 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
947 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);
948
949
950 ostei_general_vrr_I(5, 0, 5, 0, 4,
951 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
952 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);
953
954
955 ostei_general_vrr_I(6, 0, 6, 0, 3,
956 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
957 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);
958
959
960 ostei_general_vrr1_K(9, 12,
961 one_over_2q, a_over_q, aoq_PQ, Q_PA,
962 PRIM_INT__s_s_l_s, PRIM_INT__s_s_k_s, PRIM_INT__s_s_m_s);
963
964
965 ostei_general_vrr_I(1, 0, 9, 0, 8,
966 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
967 PRIM_INT__s_s_m_s, NULL, NULL, PRIM_INT__s_s_l_s, NULL, PRIM_INT__p_s_m_s);
968
969
970 ostei_general_vrr_I(2, 0, 9, 0, 7,
971 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
972 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);
973
974
975 ostei_general_vrr_I(3, 0, 9, 0, 6,
976 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
977 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);
978
979
980 ostei_general_vrr_I(4, 0, 9, 0, 5,
981 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
982 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);
983
984
985 ostei_general_vrr_I(5, 0, 8, 0, 4,
986 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
987 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);
988
989
990 ostei_general_vrr_I(6, 0, 7, 0, 3,
991 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
992 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);
993
994
995
996 // Forming PRIM_INT__p_s_s_s[8 * 3];
997 for(n = 0; n < 8; ++n) // loop over orders of auxiliary function
998 {
999
1000 PRIM_INT__p_s_s_s[n * 3 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_s_s[n * 1 + 0]);
1001 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]);
1002
1003 PRIM_INT__p_s_s_s[n * 3 + 1] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_s_s[n * 1 + 0]);
1004 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]);
1005
1006 PRIM_INT__p_s_s_s[n * 3 + 2] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_s_s[n * 1 + 0]);
1007 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]);
1008
1009 }
1010
1011
1012
1013 // Forming PRIM_INT__d_s_p_s[7 * 18];
1014 for(n = 0; n < 7; ++n) // loop over orders of auxiliary function
1015 {
1016
1017 PRIM_INT__d_s_p_s[n * 18 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__p_s_p_s[n * 9 + 0]);
1018 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]);
1019 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]);
1020 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]);
1021
1022 PRIM_INT__d_s_p_s[n * 18 + 1] = SIMINT_MUL(P_PA[0], PRIM_INT__p_s_p_s[n * 9 + 1]);
1023 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]);
1024 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]);
1025
1026 PRIM_INT__d_s_p_s[n * 18 + 2] = SIMINT_MUL(P_PA[0], PRIM_INT__p_s_p_s[n * 9 + 2]);
1027 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]);
1028 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]);
1029
1030 PRIM_INT__d_s_p_s[n * 18 + 9] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_p_s[n * 9 + 3]);
1031 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]);
1032 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]);
1033
1034 PRIM_INT__d_s_p_s[n * 18 + 10] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_p_s[n * 9 + 4]);
1035 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]);
1036 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]);
1037 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]);
1038
1039 PRIM_INT__d_s_p_s[n * 18 + 11] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_p_s[n * 9 + 5]);
1040 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]);
1041 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]);
1042
1043 PRIM_INT__d_s_p_s[n * 18 + 15] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_p_s[n * 9 + 6]);
1044 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]);
1045 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]);
1046
1047 PRIM_INT__d_s_p_s[n * 18 + 16] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_p_s[n * 9 + 7]);
1048 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]);
1049 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]);
1050
1051 PRIM_INT__d_s_p_s[n * 18 + 17] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_p_s[n * 9 + 8]);
1052 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]);
1053 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]);
1054 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]);
1055
1056 }
1057
1058
1059 VRR_I_f_s_d_s(
1060 PRIM_INT__f_s_d_s,
1061 PRIM_INT__d_s_d_s,
1062 PRIM_INT__p_s_d_s,
1063 PRIM_INT__d_s_p_s,
1064 P_PA,
1065 a_over_p,
1066 aop_PQ,
1067 one_over_2p,
1068 one_over_2pq,
1069 6);
1070
1071
1072 ostei_general_vrr_I(4, 0, 3, 0, 5,
1073 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1074 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);
1075
1076
1077 ostei_general_vrr_I(5, 0, 4, 0, 4,
1078 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1079 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);
1080
1081
1082 ostei_general_vrr_I(6, 0, 5, 0, 3,
1083 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1084 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);
1085
1086
1087 ostei_general_vrr_I(7, 0, 6, 0, 2,
1088 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1089 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);
1090
1091
1092 ostei_general_vrr1_K(10, 11,
1093 one_over_2q, a_over_q, aoq_PQ, Q_PA,
1094 PRIM_INT__s_s_m_s, PRIM_INT__s_s_l_s, PRIM_INT__s_s_n_s);
1095
1096
1097 ostei_general_vrr_I(1, 0, 10, 0, 8,
1098 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1099 PRIM_INT__s_s_n_s, NULL, NULL, PRIM_INT__s_s_m_s, NULL, PRIM_INT__p_s_n_s);
1100
1101
1102 ostei_general_vrr_I(2, 0, 10, 0, 7,
1103 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1104 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);
1105
1106
1107 ostei_general_vrr_I(3, 0, 10, 0, 6,
1108 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1109 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);
1110
1111
1112 ostei_general_vrr_I(4, 0, 10, 0, 5,
1113 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1114 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);
1115
1116
1117 ostei_general_vrr_I(5, 0, 9, 0, 4,
1118 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1119 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);
1120
1121
1122 ostei_general_vrr_I(6, 0, 8, 0, 3,
1123 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1124 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);
1125
1126
1127 ostei_general_vrr_I(7, 0, 7, 0, 2,
1128 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1129 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);
1130
1131
1132
1133 // Forming PRIM_INT__d_s_s_s[7 * 6];
1134 for(n = 0; n < 7; ++n) // loop over orders of auxiliary function
1135 {
1136
1137 PRIM_INT__d_s_s_s[n * 6 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__p_s_s_s[n * 3 + 0]);
1138 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]);
1139 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]);
1140
1141 PRIM_INT__d_s_s_s[n * 6 + 3] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_s_s[n * 3 + 1]);
1142 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]);
1143 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]);
1144
1145 PRIM_INT__d_s_s_s[n * 6 + 5] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_s_s[n * 3 + 2]);
1146 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]);
1147 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]);
1148
1149 }
1150
1151
1152 VRR_I_f_s_p_s(
1153 PRIM_INT__f_s_p_s,
1154 PRIM_INT__d_s_p_s,
1155 PRIM_INT__p_s_p_s,
1156 PRIM_INT__d_s_s_s,
1157 P_PA,
1158 a_over_p,
1159 aop_PQ,
1160 one_over_2p,
1161 one_over_2pq,
1162 6);
1163
1164
1165 ostei_general_vrr_I(4, 0, 2, 0, 5,
1166 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1167 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);
1168
1169
1170 ostei_general_vrr_I(5, 0, 3, 0, 4,
1171 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1172 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);
1173
1174
1175 ostei_general_vrr_I(6, 0, 4, 0, 3,
1176 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1177 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);
1178
1179
1180 ostei_general_vrr_I(7, 0, 5, 0, 2,
1181 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1182 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);
1183
1184
1185 ostei_general_vrr_I(8, 0, 6, 0, 1,
1186 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1187 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);
1188
1189
1190 ostei_general_vrr1_K(11, 10,
1191 one_over_2q, a_over_q, aoq_PQ, Q_PA,
1192 PRIM_INT__s_s_n_s, PRIM_INT__s_s_m_s, PRIM_INT__s_s_o_s);
1193
1194
1195 ostei_general_vrr_I(1, 0, 11, 0, 8,
1196 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1197 PRIM_INT__s_s_o_s, NULL, NULL, PRIM_INT__s_s_n_s, NULL, PRIM_INT__p_s_o_s);
1198
1199
1200 ostei_general_vrr_I(2, 0, 11, 0, 7,
1201 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1202 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);
1203
1204
1205 ostei_general_vrr_I(3, 0, 11, 0, 6,
1206 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1207 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);
1208
1209
1210 ostei_general_vrr_I(4, 0, 11, 0, 5,
1211 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1212 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);
1213
1214
1215 ostei_general_vrr_I(5, 0, 10, 0, 4,
1216 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1217 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);
1218
1219
1220 ostei_general_vrr_I(6, 0, 9, 0, 3,
1221 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1222 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);
1223
1224
1225 ostei_general_vrr_I(7, 0, 8, 0, 2,
1226 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1227 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);
1228
1229
1230 ostei_general_vrr_I(8, 0, 7, 0, 1,
1231 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1232 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);
1233
1234
1235 ostei_general_vrr1_K(12, 9,
1236 one_over_2q, a_over_q, aoq_PQ, Q_PA,
1237 PRIM_INT__s_s_o_s, PRIM_INT__s_s_n_s, PRIM_INT__s_s_q_s);
1238
1239
1240 ostei_general_vrr_I(1, 0, 12, 0, 8,
1241 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1242 PRIM_INT__s_s_q_s, NULL, NULL, PRIM_INT__s_s_o_s, NULL, PRIM_INT__p_s_q_s);
1243
1244
1245 ostei_general_vrr_I(2, 0, 12, 0, 7,
1246 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1247 PRIM_INT__p_s_q_s, PRIM_INT__s_s_q_s, NULL, PRIM_INT__p_s_o_s, NULL, PRIM_INT__d_s_q_s);
1248
1249
1250 ostei_general_vrr_I(3, 0, 12, 0, 6,
1251 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1252 PRIM_INT__d_s_q_s, PRIM_INT__p_s_q_s, NULL, PRIM_INT__d_s_o_s, NULL, PRIM_INT__f_s_q_s);
1253
1254
1255 ostei_general_vrr_I(4, 0, 12, 0, 5,
1256 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1257 PRIM_INT__f_s_q_s, PRIM_INT__d_s_q_s, NULL, PRIM_INT__f_s_o_s, NULL, PRIM_INT__g_s_q_s);
1258
1259
1260 ostei_general_vrr_I(5, 0, 11, 0, 4,
1261 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1262 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);
1263
1264
1265 ostei_general_vrr_I(6, 0, 10, 0, 3,
1266 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1267 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);
1268
1269
1270 ostei_general_vrr_I(7, 0, 9, 0, 2,
1271 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1272 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);
1273
1274
1275 ostei_general_vrr_I(8, 0, 8, 0, 1,
1276 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1277 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);
1278
1279
1280 ostei_general_vrr_I(5, 0, 12, 0, 4,
1281 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1282 PRIM_INT__g_s_q_s, PRIM_INT__f_s_q_s, NULL, PRIM_INT__g_s_o_s, NULL, PRIM_INT__h_s_q_s);
1283
1284
1285 ostei_general_vrr_I(6, 0, 11, 0, 3,
1286 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1287 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);
1288
1289
1290 ostei_general_vrr_I(7, 0, 10, 0, 2,
1291 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1292 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);
1293
1294
1295 ostei_general_vrr_I(8, 0, 9, 0, 1,
1296 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1297 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);
1298
1299
1300 ostei_general_vrr_I(6, 0, 12, 0, 3,
1301 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1302 PRIM_INT__h_s_q_s, PRIM_INT__g_s_q_s, NULL, PRIM_INT__h_s_o_s, NULL, PRIM_INT__i_s_q_s);
1303
1304
1305 ostei_general_vrr_I(7, 0, 11, 0, 2,
1306 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1307 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);
1308
1309
1310 ostei_general_vrr_I(8, 0, 10, 0, 1,
1311 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1312 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);
1313
1314
1315 ostei_general_vrr_I(7, 0, 12, 0, 2,
1316 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1317 PRIM_INT__i_s_q_s, PRIM_INT__h_s_q_s, NULL, PRIM_INT__i_s_o_s, NULL, PRIM_INT__k_s_q_s);
1318
1319
1320 ostei_general_vrr_I(8, 0, 11, 0, 1,
1321 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1322 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);
1323
1324
1325 ostei_general_vrr_I(8, 0, 12, 0, 1,
1326 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1327 PRIM_INT__k_s_q_s, PRIM_INT__i_s_q_s, NULL, PRIM_INT__k_s_o_s, NULL, PRIM_INT__l_s_q_s);
1328
1329
1330
1331
1332 ////////////////////////////////////
1333 // Accumulate contracted integrals
1334 ////////////////////////////////////
1335 if(lastoffset == 0)
1336 {
1337 contract_all(420, PRIM_INT__g_s_i_s, PRIM_PTR_INT__g_s_i_s);
1338 contract_all(540, PRIM_INT__g_s_k_s, PRIM_PTR_INT__g_s_k_s);
1339 contract_all(675, PRIM_INT__g_s_l_s, PRIM_PTR_INT__g_s_l_s);
1340 contract_all(825, PRIM_INT__g_s_m_s, PRIM_PTR_INT__g_s_m_s);
1341 contract_all(990, PRIM_INT__g_s_n_s, PRIM_PTR_INT__g_s_n_s);
1342 contract_all(1170, PRIM_INT__g_s_o_s, PRIM_PTR_INT__g_s_o_s);
1343 contract_all(1365, PRIM_INT__g_s_q_s, PRIM_PTR_INT__g_s_q_s);
1344 contract_all(588, PRIM_INT__h_s_i_s, PRIM_PTR_INT__h_s_i_s);
1345 contract_all(756, PRIM_INT__h_s_k_s, PRIM_PTR_INT__h_s_k_s);
1346 contract_all(945, PRIM_INT__h_s_l_s, PRIM_PTR_INT__h_s_l_s);
1347 contract_all(1155, PRIM_INT__h_s_m_s, PRIM_PTR_INT__h_s_m_s);
1348 contract_all(1386, PRIM_INT__h_s_n_s, PRIM_PTR_INT__h_s_n_s);
1349 contract_all(1638, PRIM_INT__h_s_o_s, PRIM_PTR_INT__h_s_o_s);
1350 contract_all(1911, PRIM_INT__h_s_q_s, PRIM_PTR_INT__h_s_q_s);
1351 contract_all(784, PRIM_INT__i_s_i_s, PRIM_PTR_INT__i_s_i_s);
1352 contract_all(1008, PRIM_INT__i_s_k_s, PRIM_PTR_INT__i_s_k_s);
1353 contract_all(1260, PRIM_INT__i_s_l_s, PRIM_PTR_INT__i_s_l_s);
1354 contract_all(1540, PRIM_INT__i_s_m_s, PRIM_PTR_INT__i_s_m_s);
1355 contract_all(1848, PRIM_INT__i_s_n_s, PRIM_PTR_INT__i_s_n_s);
1356 contract_all(2184, PRIM_INT__i_s_o_s, PRIM_PTR_INT__i_s_o_s);
1357 contract_all(2548, PRIM_INT__i_s_q_s, PRIM_PTR_INT__i_s_q_s);
1358 contract_all(1008, PRIM_INT__k_s_i_s, PRIM_PTR_INT__k_s_i_s);
1359 contract_all(1296, PRIM_INT__k_s_k_s, PRIM_PTR_INT__k_s_k_s);
1360 contract_all(1620, PRIM_INT__k_s_l_s, PRIM_PTR_INT__k_s_l_s);
1361 contract_all(1980, PRIM_INT__k_s_m_s, PRIM_PTR_INT__k_s_m_s);
1362 contract_all(2376, PRIM_INT__k_s_n_s, PRIM_PTR_INT__k_s_n_s);
1363 contract_all(2808, PRIM_INT__k_s_o_s, PRIM_PTR_INT__k_s_o_s);
1364 contract_all(3276, PRIM_INT__k_s_q_s, PRIM_PTR_INT__k_s_q_s);
1365 contract_all(1260, PRIM_INT__l_s_i_s, PRIM_PTR_INT__l_s_i_s);
1366 contract_all(1620, PRIM_INT__l_s_k_s, PRIM_PTR_INT__l_s_k_s);
1367 contract_all(2025, PRIM_INT__l_s_l_s, PRIM_PTR_INT__l_s_l_s);
1368 contract_all(2475, PRIM_INT__l_s_m_s, PRIM_PTR_INT__l_s_m_s);
1369 contract_all(2970, PRIM_INT__l_s_n_s, PRIM_PTR_INT__l_s_n_s);
1370 contract_all(3510, PRIM_INT__l_s_o_s, PRIM_PTR_INT__l_s_o_s);
1371 contract_all(4095, PRIM_INT__l_s_q_s, PRIM_PTR_INT__l_s_q_s);
1372 }
1373 else
1374 {
1375 contract(420, shelloffsets, PRIM_INT__g_s_i_s, PRIM_PTR_INT__g_s_i_s);
1376 contract(540, shelloffsets, PRIM_INT__g_s_k_s, PRIM_PTR_INT__g_s_k_s);
1377 contract(675, shelloffsets, PRIM_INT__g_s_l_s, PRIM_PTR_INT__g_s_l_s);
1378 contract(825, shelloffsets, PRIM_INT__g_s_m_s, PRIM_PTR_INT__g_s_m_s);
1379 contract(990, shelloffsets, PRIM_INT__g_s_n_s, PRIM_PTR_INT__g_s_n_s);
1380 contract(1170, shelloffsets, PRIM_INT__g_s_o_s, PRIM_PTR_INT__g_s_o_s);
1381 contract(1365, shelloffsets, PRIM_INT__g_s_q_s, PRIM_PTR_INT__g_s_q_s);
1382 contract(588, shelloffsets, PRIM_INT__h_s_i_s, PRIM_PTR_INT__h_s_i_s);
1383 contract(756, shelloffsets, PRIM_INT__h_s_k_s, PRIM_PTR_INT__h_s_k_s);
1384 contract(945, shelloffsets, PRIM_INT__h_s_l_s, PRIM_PTR_INT__h_s_l_s);
1385 contract(1155, shelloffsets, PRIM_INT__h_s_m_s, PRIM_PTR_INT__h_s_m_s);
1386 contract(1386, shelloffsets, PRIM_INT__h_s_n_s, PRIM_PTR_INT__h_s_n_s);
1387 contract(1638, shelloffsets, PRIM_INT__h_s_o_s, PRIM_PTR_INT__h_s_o_s);
1388 contract(1911, shelloffsets, PRIM_INT__h_s_q_s, PRIM_PTR_INT__h_s_q_s);
1389 contract(784, shelloffsets, PRIM_INT__i_s_i_s, PRIM_PTR_INT__i_s_i_s);
1390 contract(1008, shelloffsets, PRIM_INT__i_s_k_s, PRIM_PTR_INT__i_s_k_s);
1391 contract(1260, shelloffsets, PRIM_INT__i_s_l_s, PRIM_PTR_INT__i_s_l_s);
1392 contract(1540, shelloffsets, PRIM_INT__i_s_m_s, PRIM_PTR_INT__i_s_m_s);
1393 contract(1848, shelloffsets, PRIM_INT__i_s_n_s, PRIM_PTR_INT__i_s_n_s);
1394 contract(2184, shelloffsets, PRIM_INT__i_s_o_s, PRIM_PTR_INT__i_s_o_s);
1395 contract(2548, shelloffsets, PRIM_INT__i_s_q_s, PRIM_PTR_INT__i_s_q_s);
1396 contract(1008, shelloffsets, PRIM_INT__k_s_i_s, PRIM_PTR_INT__k_s_i_s);
1397 contract(1296, shelloffsets, PRIM_INT__k_s_k_s, PRIM_PTR_INT__k_s_k_s);
1398 contract(1620, shelloffsets, PRIM_INT__k_s_l_s, PRIM_PTR_INT__k_s_l_s);
1399 contract(1980, shelloffsets, PRIM_INT__k_s_m_s, PRIM_PTR_INT__k_s_m_s);
1400 contract(2376, shelloffsets, PRIM_INT__k_s_n_s, PRIM_PTR_INT__k_s_n_s);
1401 contract(2808, shelloffsets, PRIM_INT__k_s_o_s, PRIM_PTR_INT__k_s_o_s);
1402 contract(3276, shelloffsets, PRIM_INT__k_s_q_s, PRIM_PTR_INT__k_s_q_s);
1403 contract(1260, shelloffsets, PRIM_INT__l_s_i_s, PRIM_PTR_INT__l_s_i_s);
1404 contract(1620, shelloffsets, PRIM_INT__l_s_k_s, PRIM_PTR_INT__l_s_k_s);
1405 contract(2025, shelloffsets, PRIM_INT__l_s_l_s, PRIM_PTR_INT__l_s_l_s);
1406 contract(2475, shelloffsets, PRIM_INT__l_s_m_s, PRIM_PTR_INT__l_s_m_s);
1407 contract(2970, shelloffsets, PRIM_INT__l_s_n_s, PRIM_PTR_INT__l_s_n_s);
1408 contract(3510, shelloffsets, PRIM_INT__l_s_o_s, PRIM_PTR_INT__l_s_o_s);
1409 contract(4095, shelloffsets, PRIM_INT__l_s_q_s, PRIM_PTR_INT__l_s_q_s);
1410 PRIM_PTR_INT__g_s_i_s += lastoffset*420;
1411 PRIM_PTR_INT__g_s_k_s += lastoffset*540;
1412 PRIM_PTR_INT__g_s_l_s += lastoffset*675;
1413 PRIM_PTR_INT__g_s_m_s += lastoffset*825;
1414 PRIM_PTR_INT__g_s_n_s += lastoffset*990;
1415 PRIM_PTR_INT__g_s_o_s += lastoffset*1170;
1416 PRIM_PTR_INT__g_s_q_s += lastoffset*1365;
1417 PRIM_PTR_INT__h_s_i_s += lastoffset*588;
1418 PRIM_PTR_INT__h_s_k_s += lastoffset*756;
1419 PRIM_PTR_INT__h_s_l_s += lastoffset*945;
1420 PRIM_PTR_INT__h_s_m_s += lastoffset*1155;
1421 PRIM_PTR_INT__h_s_n_s += lastoffset*1386;
1422 PRIM_PTR_INT__h_s_o_s += lastoffset*1638;
1423 PRIM_PTR_INT__h_s_q_s += lastoffset*1911;
1424 PRIM_PTR_INT__i_s_i_s += lastoffset*784;
1425 PRIM_PTR_INT__i_s_k_s += lastoffset*1008;
1426 PRIM_PTR_INT__i_s_l_s += lastoffset*1260;
1427 PRIM_PTR_INT__i_s_m_s += lastoffset*1540;
1428 PRIM_PTR_INT__i_s_n_s += lastoffset*1848;
1429 PRIM_PTR_INT__i_s_o_s += lastoffset*2184;
1430 PRIM_PTR_INT__i_s_q_s += lastoffset*2548;
1431 PRIM_PTR_INT__k_s_i_s += lastoffset*1008;
1432 PRIM_PTR_INT__k_s_k_s += lastoffset*1296;
1433 PRIM_PTR_INT__k_s_l_s += lastoffset*1620;
1434 PRIM_PTR_INT__k_s_m_s += lastoffset*1980;
1435 PRIM_PTR_INT__k_s_n_s += lastoffset*2376;
1436 PRIM_PTR_INT__k_s_o_s += lastoffset*2808;
1437 PRIM_PTR_INT__k_s_q_s += lastoffset*3276;
1438 PRIM_PTR_INT__l_s_i_s += lastoffset*1260;
1439 PRIM_PTR_INT__l_s_k_s += lastoffset*1620;
1440 PRIM_PTR_INT__l_s_l_s += lastoffset*2025;
1441 PRIM_PTR_INT__l_s_m_s += lastoffset*2475;
1442 PRIM_PTR_INT__l_s_n_s += lastoffset*2970;
1443 PRIM_PTR_INT__l_s_o_s += lastoffset*3510;
1444 PRIM_PTR_INT__l_s_q_s += lastoffset*4095;
1445 }
1446
1447 } // close loop over j
1448 } // close loop over i
1449
1450 //Advance to the next batch
1451 jstart = SIMINT_SIMD_ROUND(jend);
1452
1453 //////////////////////////////////////////////
1454 // Contracted integrals: Horizontal recurrance
1455 //////////////////////////////////////////////
1456
1457
1458 const double hAB[3] = { P.AB_x[ab], P.AB_y[ab], P.AB_z[ab] };
1459
1460
1461 for(abcd = 0; abcd < nshellbatch; ++abcd, ++real_abcd)
1462 {
1463 const double hCD[3] = { Q.AB_x[cd+abcd], Q.AB_y[cd+abcd], Q.AB_z[cd+abcd] };
1464
1465 // set up HRR pointers
1466 double const * restrict HRR_INT__g_s_i_s = INT__g_s_i_s + abcd * 420;
1467 double const * restrict HRR_INT__g_s_k_s = INT__g_s_k_s + abcd * 540;
1468 double const * restrict HRR_INT__g_s_l_s = INT__g_s_l_s + abcd * 675;
1469 double const * restrict HRR_INT__g_s_m_s = INT__g_s_m_s + abcd * 825;
1470 double const * restrict HRR_INT__g_s_n_s = INT__g_s_n_s + abcd * 990;
1471 double const * restrict HRR_INT__g_s_o_s = INT__g_s_o_s + abcd * 1170;
1472 double const * restrict HRR_INT__g_s_q_s = INT__g_s_q_s + abcd * 1365;
1473 double const * restrict HRR_INT__h_s_i_s = INT__h_s_i_s + abcd * 588;
1474 double const * restrict HRR_INT__h_s_k_s = INT__h_s_k_s + abcd * 756;
1475 double const * restrict HRR_INT__h_s_l_s = INT__h_s_l_s + abcd * 945;
1476 double const * restrict HRR_INT__h_s_m_s = INT__h_s_m_s + abcd * 1155;
1477 double const * restrict HRR_INT__h_s_n_s = INT__h_s_n_s + abcd * 1386;
1478 double const * restrict HRR_INT__h_s_o_s = INT__h_s_o_s + abcd * 1638;
1479 double const * restrict HRR_INT__h_s_q_s = INT__h_s_q_s + abcd * 1911;
1480 double const * restrict HRR_INT__i_s_i_s = INT__i_s_i_s + abcd * 784;
1481 double const * restrict HRR_INT__i_s_k_s = INT__i_s_k_s + abcd * 1008;
1482 double const * restrict HRR_INT__i_s_l_s = INT__i_s_l_s + abcd * 1260;
1483 double const * restrict HRR_INT__i_s_m_s = INT__i_s_m_s + abcd * 1540;
1484 double const * restrict HRR_INT__i_s_n_s = INT__i_s_n_s + abcd * 1848;
1485 double const * restrict HRR_INT__i_s_o_s = INT__i_s_o_s + abcd * 2184;
1486 double const * restrict HRR_INT__i_s_q_s = INT__i_s_q_s + abcd * 2548;
1487 double const * restrict HRR_INT__k_s_i_s = INT__k_s_i_s + abcd * 1008;
1488 double const * restrict HRR_INT__k_s_k_s = INT__k_s_k_s + abcd * 1296;
1489 double const * restrict HRR_INT__k_s_l_s = INT__k_s_l_s + abcd * 1620;
1490 double const * restrict HRR_INT__k_s_m_s = INT__k_s_m_s + abcd * 1980;
1491 double const * restrict HRR_INT__k_s_n_s = INT__k_s_n_s + abcd * 2376;
1492 double const * restrict HRR_INT__k_s_o_s = INT__k_s_o_s + abcd * 2808;
1493 double const * restrict HRR_INT__k_s_q_s = INT__k_s_q_s + abcd * 3276;
1494 double const * restrict HRR_INT__l_s_i_s = INT__l_s_i_s + abcd * 1260;
1495 double const * restrict HRR_INT__l_s_k_s = INT__l_s_k_s + abcd * 1620;
1496 double const * restrict HRR_INT__l_s_l_s = INT__l_s_l_s + abcd * 2025;
1497 double const * restrict HRR_INT__l_s_m_s = INT__l_s_m_s + abcd * 2475;
1498 double const * restrict HRR_INT__l_s_n_s = INT__l_s_n_s + abcd * 2970;
1499 double const * restrict HRR_INT__l_s_o_s = INT__l_s_o_s + abcd * 3510;
1500 double const * restrict HRR_INT__l_s_q_s = INT__l_s_q_s + abcd * 4095;
1501 double * restrict HRR_INT__g_g_i_i = INT__g_g_i_i + real_abcd * 176400;
1502
1503 // form INT__g_p_i_s
1504 HRR_J_g_p(
1505 HRR_INT__g_p_i_s,
1506 HRR_INT__g_s_i_s,
1507 HRR_INT__h_s_i_s,
1508 hAB, 28);
1509
1510 // form INT__g_p_k_s
1511 HRR_J_g_p(
1512 HRR_INT__g_p_k_s,
1513 HRR_INT__g_s_k_s,
1514 HRR_INT__h_s_k_s,
1515 hAB, 36);
1516
1517 // form INT__g_p_l_s
1518 HRR_J_g_p(
1519 HRR_INT__g_p_l_s,
1520 HRR_INT__g_s_l_s,
1521 HRR_INT__h_s_l_s,
1522 hAB, 45);
1523
1524 // form INT__g_p_m_s
1525 HRR_J_g_p(
1526 HRR_INT__g_p_m_s,
1527 HRR_INT__g_s_m_s,
1528 HRR_INT__h_s_m_s,
1529 hAB, 55);
1530
1531 // form INT__g_p_n_s
1532 HRR_J_g_p(
1533 HRR_INT__g_p_n_s,
1534 HRR_INT__g_s_n_s,
1535 HRR_INT__h_s_n_s,
1536 hAB, 66);
1537
1538 // form INT__g_p_o_s
1539 HRR_J_g_p(
1540 HRR_INT__g_p_o_s,
1541 HRR_INT__g_s_o_s,
1542 HRR_INT__h_s_o_s,
1543 hAB, 78);
1544
1545 // form INT__g_p_q_s
1546 HRR_J_g_p(
1547 HRR_INT__g_p_q_s,
1548 HRR_INT__g_s_q_s,
1549 HRR_INT__h_s_q_s,
1550 hAB, 91);
1551
1552 // form INT__h_p_i_s
1553 ostei_general_hrr_J(5, 1, 6, 0, hAB, HRR_INT__i_s_i_s, HRR_INT__h_s_i_s, HRR_INT__h_p_i_s);
1554
1555 // form INT__h_p_k_s
1556 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);
1557
1558 // form INT__h_p_l_s
1559 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);
1560
1561 // form INT__h_p_m_s
1562 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);
1563
1564 // form INT__h_p_n_s
1565 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);
1566
1567 // form INT__h_p_o_s
1568 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);
1569
1570 // form INT__h_p_q_s
1571 ostei_general_hrr_J(5, 1, 12, 0, hAB, HRR_INT__i_s_q_s, HRR_INT__h_s_q_s, HRR_INT__h_p_q_s);
1572
1573 // form INT__i_p_i_s
1574 ostei_general_hrr_J(6, 1, 6, 0, hAB, HRR_INT__k_s_i_s, HRR_INT__i_s_i_s, HRR_INT__i_p_i_s);
1575
1576 // form INT__i_p_k_s
1577 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);
1578
1579 // form INT__i_p_l_s
1580 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);
1581
1582 // form INT__i_p_m_s
1583 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);
1584
1585 // form INT__i_p_n_s
1586 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);
1587
1588 // form INT__i_p_o_s
1589 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);
1590
1591 // form INT__i_p_q_s
1592 ostei_general_hrr_J(6, 1, 12, 0, hAB, HRR_INT__k_s_q_s, HRR_INT__i_s_q_s, HRR_INT__i_p_q_s);
1593
1594 // form INT__k_p_i_s
1595 ostei_general_hrr_J(7, 1, 6, 0, hAB, HRR_INT__l_s_i_s, HRR_INT__k_s_i_s, HRR_INT__k_p_i_s);
1596
1597 // form INT__k_p_k_s
1598 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);
1599
1600 // form INT__k_p_l_s
1601 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);
1602
1603 // form INT__k_p_m_s
1604 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);
1605
1606 // form INT__k_p_n_s
1607 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);
1608
1609 // form INT__k_p_o_s
1610 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);
1611
1612 // form INT__k_p_q_s
1613 ostei_general_hrr_J(7, 1, 12, 0, hAB, HRR_INT__l_s_q_s, HRR_INT__k_s_q_s, HRR_INT__k_p_q_s);
1614
1615 // form INT__g_d_i_s
1616 ostei_general_hrr_J(4, 2, 6, 0, hAB, HRR_INT__h_p_i_s, HRR_INT__g_p_i_s, HRR_INT__g_d_i_s);
1617
1618 // form INT__g_d_k_s
1619 ostei_general_hrr_J(4, 2, 7, 0, hAB, HRR_INT__h_p_k_s, HRR_INT__g_p_k_s, HRR_INT__g_d_k_s);
1620
1621 // form INT__g_d_l_s
1622 ostei_general_hrr_J(4, 2, 8, 0, hAB, HRR_INT__h_p_l_s, HRR_INT__g_p_l_s, HRR_INT__g_d_l_s);
1623
1624 // form INT__g_d_m_s
1625 ostei_general_hrr_J(4, 2, 9, 0, hAB, HRR_INT__h_p_m_s, HRR_INT__g_p_m_s, HRR_INT__g_d_m_s);
1626
1627 // form INT__g_d_n_s
1628 ostei_general_hrr_J(4, 2, 10, 0, hAB, HRR_INT__h_p_n_s, HRR_INT__g_p_n_s, HRR_INT__g_d_n_s);
1629
1630 // form INT__g_d_o_s
1631 ostei_general_hrr_J(4, 2, 11, 0, hAB, HRR_INT__h_p_o_s, HRR_INT__g_p_o_s, HRR_INT__g_d_o_s);
1632
1633 // form INT__g_d_q_s
1634 ostei_general_hrr_J(4, 2, 12, 0, hAB, HRR_INT__h_p_q_s, HRR_INT__g_p_q_s, HRR_INT__g_d_q_s);
1635
1636 // form INT__h_d_i_s
1637 ostei_general_hrr_J(5, 2, 6, 0, hAB, HRR_INT__i_p_i_s, HRR_INT__h_p_i_s, HRR_INT__h_d_i_s);
1638
1639 // form INT__h_d_k_s
1640 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);
1641
1642 // form INT__h_d_l_s
1643 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);
1644
1645 // form INT__h_d_m_s
1646 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);
1647
1648 // form INT__h_d_n_s
1649 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);
1650
1651 // form INT__h_d_o_s
1652 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);
1653
1654 // form INT__h_d_q_s
1655 ostei_general_hrr_J(5, 2, 12, 0, hAB, HRR_INT__i_p_q_s, HRR_INT__h_p_q_s, HRR_INT__h_d_q_s);
1656
1657 // form INT__i_d_i_s
1658 ostei_general_hrr_J(6, 2, 6, 0, hAB, HRR_INT__k_p_i_s, HRR_INT__i_p_i_s, HRR_INT__i_d_i_s);
1659
1660 // form INT__i_d_k_s
1661 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);
1662
1663 // form INT__i_d_l_s
1664 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);
1665
1666 // form INT__i_d_m_s
1667 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);
1668
1669 // form INT__i_d_n_s
1670 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);
1671
1672 // form INT__i_d_o_s
1673 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);
1674
1675 // form INT__i_d_q_s
1676 ostei_general_hrr_J(6, 2, 12, 0, hAB, HRR_INT__k_p_q_s, HRR_INT__i_p_q_s, HRR_INT__i_d_q_s);
1677
1678 // form INT__g_f_i_s
1679 ostei_general_hrr_J(4, 3, 6, 0, hAB, HRR_INT__h_d_i_s, HRR_INT__g_d_i_s, HRR_INT__g_f_i_s);
1680
1681 // form INT__g_f_k_s
1682 ostei_general_hrr_J(4, 3, 7, 0, hAB, HRR_INT__h_d_k_s, HRR_INT__g_d_k_s, HRR_INT__g_f_k_s);
1683
1684 // form INT__g_f_l_s
1685 ostei_general_hrr_J(4, 3, 8, 0, hAB, HRR_INT__h_d_l_s, HRR_INT__g_d_l_s, HRR_INT__g_f_l_s);
1686
1687 // form INT__g_f_m_s
1688 ostei_general_hrr_J(4, 3, 9, 0, hAB, HRR_INT__h_d_m_s, HRR_INT__g_d_m_s, HRR_INT__g_f_m_s);
1689
1690 // form INT__g_f_n_s
1691 ostei_general_hrr_J(4, 3, 10, 0, hAB, HRR_INT__h_d_n_s, HRR_INT__g_d_n_s, HRR_INT__g_f_n_s);
1692
1693 // form INT__g_f_o_s
1694 ostei_general_hrr_J(4, 3, 11, 0, hAB, HRR_INT__h_d_o_s, HRR_INT__g_d_o_s, HRR_INT__g_f_o_s);
1695
1696 // form INT__g_f_q_s
1697 ostei_general_hrr_J(4, 3, 12, 0, hAB, HRR_INT__h_d_q_s, HRR_INT__g_d_q_s, HRR_INT__g_f_q_s);
1698
1699 // form INT__h_f_i_s
1700 ostei_general_hrr_J(5, 3, 6, 0, hAB, HRR_INT__i_d_i_s, HRR_INT__h_d_i_s, HRR_INT__h_f_i_s);
1701
1702 // form INT__h_f_k_s
1703 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);
1704
1705 // form INT__h_f_l_s
1706 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);
1707
1708 // form INT__h_f_m_s
1709 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);
1710
1711 // form INT__h_f_n_s
1712 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);
1713
1714 // form INT__h_f_o_s
1715 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);
1716
1717 // form INT__h_f_q_s
1718 ostei_general_hrr_J(5, 3, 12, 0, hAB, HRR_INT__i_d_q_s, HRR_INT__h_d_q_s, HRR_INT__h_f_q_s);
1719
1720 // form INT__g_g_i_s
1721 ostei_general_hrr_J(4, 4, 6, 0, hAB, HRR_INT__h_f_i_s, HRR_INT__g_f_i_s, HRR_INT__g_g_i_s);
1722
1723 // form INT__g_g_k_s
1724 ostei_general_hrr_J(4, 4, 7, 0, hAB, HRR_INT__h_f_k_s, HRR_INT__g_f_k_s, HRR_INT__g_g_k_s);
1725
1726 // form INT__g_g_l_s
1727 ostei_general_hrr_J(4, 4, 8, 0, hAB, HRR_INT__h_f_l_s, HRR_INT__g_f_l_s, HRR_INT__g_g_l_s);
1728
1729 // form INT__g_g_m_s
1730 ostei_general_hrr_J(4, 4, 9, 0, hAB, HRR_INT__h_f_m_s, HRR_INT__g_f_m_s, HRR_INT__g_g_m_s);
1731
1732 // form INT__g_g_n_s
1733 ostei_general_hrr_J(4, 4, 10, 0, hAB, HRR_INT__h_f_n_s, HRR_INT__g_f_n_s, HRR_INT__g_g_n_s);
1734
1735 // form INT__g_g_o_s
1736 ostei_general_hrr_J(4, 4, 11, 0, hAB, HRR_INT__h_f_o_s, HRR_INT__g_f_o_s, HRR_INT__g_g_o_s);
1737
1738 // form INT__g_g_q_s
1739 ostei_general_hrr_J(4, 4, 12, 0, hAB, HRR_INT__h_f_q_s, HRR_INT__g_f_q_s, HRR_INT__g_g_q_s);
1740
1741 // form INT__g_g_i_p
1742 ostei_general_hrr_L(4, 4, 6, 1, hCD, HRR_INT__g_g_k_s, HRR_INT__g_g_i_s, HRR_INT__g_g_i_p);
1743
1744 // form INT__g_g_k_p
1745 ostei_general_hrr_L(4, 4, 7, 1, hCD, HRR_INT__g_g_l_s, HRR_INT__g_g_k_s, HRR_INT__g_g_k_p);
1746
1747 // form INT__g_g_l_p
1748 ostei_general_hrr_L(4, 4, 8, 1, hCD, HRR_INT__g_g_m_s, HRR_INT__g_g_l_s, HRR_INT__g_g_l_p);
1749
1750 // form INT__g_g_m_p
1751 ostei_general_hrr_L(4, 4, 9, 1, hCD, HRR_INT__g_g_n_s, HRR_INT__g_g_m_s, HRR_INT__g_g_m_p);
1752
1753 // form INT__g_g_n_p
1754 ostei_general_hrr_L(4, 4, 10, 1, hCD, HRR_INT__g_g_o_s, HRR_INT__g_g_n_s, HRR_INT__g_g_n_p);
1755
1756 // form INT__g_g_o_p
1757 ostei_general_hrr_L(4, 4, 11, 1, hCD, HRR_INT__g_g_q_s, HRR_INT__g_g_o_s, HRR_INT__g_g_o_p);
1758
1759 // form INT__g_g_i_d
1760 ostei_general_hrr_L(4, 4, 6, 2, hCD, HRR_INT__g_g_k_p, HRR_INT__g_g_i_p, HRR_INT__g_g_i_d);
1761
1762 // form INT__g_g_k_d
1763 ostei_general_hrr_L(4, 4, 7, 2, hCD, HRR_INT__g_g_l_p, HRR_INT__g_g_k_p, HRR_INT__g_g_k_d);
1764
1765 // form INT__g_g_l_d
1766 ostei_general_hrr_L(4, 4, 8, 2, hCD, HRR_INT__g_g_m_p, HRR_INT__g_g_l_p, HRR_INT__g_g_l_d);
1767
1768 // form INT__g_g_m_d
1769 ostei_general_hrr_L(4, 4, 9, 2, hCD, HRR_INT__g_g_n_p, HRR_INT__g_g_m_p, HRR_INT__g_g_m_d);
1770
1771 // form INT__g_g_n_d
1772 ostei_general_hrr_L(4, 4, 10, 2, hCD, HRR_INT__g_g_o_p, HRR_INT__g_g_n_p, HRR_INT__g_g_n_d);
1773
1774 // form INT__g_g_i_f
1775 ostei_general_hrr_L(4, 4, 6, 3, hCD, HRR_INT__g_g_k_d, HRR_INT__g_g_i_d, HRR_INT__g_g_i_f);
1776
1777 // form INT__g_g_k_f
1778 ostei_general_hrr_L(4, 4, 7, 3, hCD, HRR_INT__g_g_l_d, HRR_INT__g_g_k_d, HRR_INT__g_g_k_f);
1779
1780 // form INT__g_g_l_f
1781 ostei_general_hrr_L(4, 4, 8, 3, hCD, HRR_INT__g_g_m_d, HRR_INT__g_g_l_d, HRR_INT__g_g_l_f);
1782
1783 // form INT__g_g_m_f
1784 ostei_general_hrr_L(4, 4, 9, 3, hCD, HRR_INT__g_g_n_d, HRR_INT__g_g_m_d, HRR_INT__g_g_m_f);
1785
1786 // form INT__g_g_i_g
1787 ostei_general_hrr_L(4, 4, 6, 4, hCD, HRR_INT__g_g_k_f, HRR_INT__g_g_i_f, HRR_INT__g_g_i_g);
1788
1789 // form INT__g_g_k_g
1790 ostei_general_hrr_L(4, 4, 7, 4, hCD, HRR_INT__g_g_l_f, HRR_INT__g_g_k_f, HRR_INT__g_g_k_g);
1791
1792 // form INT__g_g_l_g
1793 ostei_general_hrr_L(4, 4, 8, 4, hCD, HRR_INT__g_g_m_f, HRR_INT__g_g_l_f, HRR_INT__g_g_l_g);
1794
1795 // form INT__g_g_i_h
1796 ostei_general_hrr_L(4, 4, 6, 5, hCD, HRR_INT__g_g_k_g, HRR_INT__g_g_i_g, HRR_INT__g_g_i_h);
1797
1798 // form INT__g_g_k_h
1799 ostei_general_hrr_L(4, 4, 7, 5, hCD, HRR_INT__g_g_l_g, HRR_INT__g_g_k_g, HRR_INT__g_g_k_h);
1800
1801 // form INT__g_g_i_i
1802 ostei_general_hrr_L(4, 4, 6, 6, hCD, HRR_INT__g_g_k_h, HRR_INT__g_g_i_h, HRR_INT__g_g_i_i);
1803
1804
1805 } // close HRR loop
1806
1807
1808 } // close loop cdbatch
1809
1810 istart = iend;
1811 } // close loop over ab
1812
1813 return P.nshell12_clip * Q.nshell12_clip;
1814 }
1815
1816