1 #include "simint/boys/boys.h"
2 #include "simint/ostei/gen/ostei_generated.h"
3 #include "simint/vectorization/vectorization.h"
4 #include <math.h>
5 #include <string.h>
6
7
ostei_k_h_h_h(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__k_h_h_h)8 int ostei_k_h_h_h(struct simint_multi_shellpair const P,
9 struct simint_multi_shellpair const Q,
10 double screen_tol,
11 double * const restrict work,
12 double * const restrict INT__k_h_h_h)
13 {
14
15 SIMINT_ASSUME_ALIGN_DBL(work);
16 SIMINT_ASSUME_ALIGN_DBL(INT__k_h_h_h);
17 int ab, cd, abcd;
18 int istart, jstart;
19 int iprimcd, nprim_icd, icd;
20 const int check_screen = (screen_tol > 0.0);
21 int i, j;
22 int n;
23 int not_screened;
24 int real_abcd;
25 int iket;
26 int ibra;
27
28 // partition workspace
29 double * const INT__k_s_h_s = work + (SIMINT_NSHELL_SIMD * 0);
30 double * const INT__k_s_i_s = work + (SIMINT_NSHELL_SIMD * 756);
31 double * const INT__k_s_k_s = work + (SIMINT_NSHELL_SIMD * 1764);
32 double * const INT__k_s_l_s = work + (SIMINT_NSHELL_SIMD * 3060);
33 double * const INT__k_s_m_s = work + (SIMINT_NSHELL_SIMD * 4680);
34 double * const INT__k_s_n_s = work + (SIMINT_NSHELL_SIMD * 6660);
35 double * const INT__l_s_h_s = work + (SIMINT_NSHELL_SIMD * 9036);
36 double * const INT__l_s_i_s = work + (SIMINT_NSHELL_SIMD * 9981);
37 double * const INT__l_s_k_s = work + (SIMINT_NSHELL_SIMD * 11241);
38 double * const INT__l_s_l_s = work + (SIMINT_NSHELL_SIMD * 12861);
39 double * const INT__l_s_m_s = work + (SIMINT_NSHELL_SIMD * 14886);
40 double * const INT__l_s_n_s = work + (SIMINT_NSHELL_SIMD * 17361);
41 double * const INT__m_s_h_s = work + (SIMINT_NSHELL_SIMD * 20331);
42 double * const INT__m_s_i_s = work + (SIMINT_NSHELL_SIMD * 21486);
43 double * const INT__m_s_k_s = work + (SIMINT_NSHELL_SIMD * 23026);
44 double * const INT__m_s_l_s = work + (SIMINT_NSHELL_SIMD * 25006);
45 double * const INT__m_s_m_s = work + (SIMINT_NSHELL_SIMD * 27481);
46 double * const INT__m_s_n_s = work + (SIMINT_NSHELL_SIMD * 30506);
47 double * const INT__n_s_h_s = work + (SIMINT_NSHELL_SIMD * 34136);
48 double * const INT__n_s_i_s = work + (SIMINT_NSHELL_SIMD * 35522);
49 double * const INT__n_s_k_s = work + (SIMINT_NSHELL_SIMD * 37370);
50 double * const INT__n_s_l_s = work + (SIMINT_NSHELL_SIMD * 39746);
51 double * const INT__n_s_m_s = work + (SIMINT_NSHELL_SIMD * 42716);
52 double * const INT__n_s_n_s = work + (SIMINT_NSHELL_SIMD * 46346);
53 double * const INT__o_s_h_s = work + (SIMINT_NSHELL_SIMD * 50702);
54 double * const INT__o_s_i_s = work + (SIMINT_NSHELL_SIMD * 52340);
55 double * const INT__o_s_k_s = work + (SIMINT_NSHELL_SIMD * 54524);
56 double * const INT__o_s_l_s = work + (SIMINT_NSHELL_SIMD * 57332);
57 double * const INT__o_s_m_s = work + (SIMINT_NSHELL_SIMD * 60842);
58 double * const INT__o_s_n_s = work + (SIMINT_NSHELL_SIMD * 65132);
59 double * const INT__q_s_h_s = work + (SIMINT_NSHELL_SIMD * 70280);
60 double * const INT__q_s_i_s = work + (SIMINT_NSHELL_SIMD * 72191);
61 double * const INT__q_s_k_s = work + (SIMINT_NSHELL_SIMD * 74739);
62 double * const INT__q_s_l_s = work + (SIMINT_NSHELL_SIMD * 78015);
63 double * const INT__q_s_m_s = work + (SIMINT_NSHELL_SIMD * 82110);
64 double * const INT__q_s_n_s = work + (SIMINT_NSHELL_SIMD * 87115);
65 SIMINT_DBLTYPE * const primwork = (SIMINT_DBLTYPE *)(work + SIMINT_NSHELL_SIMD*93121);
66 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_s_s = primwork + 0;
67 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_p_s = primwork + 23;
68 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_d_s = primwork + 53;
69 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_f_s = primwork + 107;
70 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_s_s = primwork + 187;
71 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_p_s = primwork + 253;
72 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_d_s = primwork + 343;
73 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_f_s = primwork + 505;
74 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_g_s = primwork + 745;
75 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_s_s = primwork + 1060;
76 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_p_s = primwork + 1186;
77 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_d_s = primwork + 1366;
78 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_f_s = primwork + 1690;
79 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_g_s = primwork + 2170;
80 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_h_s = primwork + 2800;
81 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_s_s = primwork + 3556;
82 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_p_s = primwork + 3756;
83 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_d_s = primwork + 4056;
84 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_f_s = primwork + 4596;
85 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_g_s = primwork + 5396;
86 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_h_s = primwork + 6446;
87 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_i_s = primwork + 7706;
88 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_s_s = primwork + 9106;
89 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_p_s = primwork + 9391;
90 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_d_s = primwork + 9841;
91 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_f_s = primwork + 10651;
92 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_g_s = primwork + 11851;
93 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_h_s = primwork + 13426;
94 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_i_s = primwork + 15316;
95 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_k_s = primwork + 17416;
96 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_s_s = primwork + 19576;
97 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_p_s = primwork + 19954;
98 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_d_s = primwork + 20584;
99 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_f_s = primwork + 21718;
100 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_g_s = primwork + 23398;
101 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_h_s = primwork + 25603;
102 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_i_s = primwork + 28249;
103 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_k_s = primwork + 31189;
104 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_l_s = primwork + 34213;
105 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_s_s = primwork + 37048;
106 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_p_s = primwork + 37524;
107 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_d_s = primwork + 38364;
108 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_f_s = primwork + 39876;
109 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_g_s = primwork + 42116;
110 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_h_s = primwork + 45056;
111 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_i_s = primwork + 48584;
112 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_k_s = primwork + 52504;
113 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_l_s = primwork + 56536;
114 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_m_s = primwork + 60316;
115 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_s_s = primwork + 63396;
116 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_p_s = primwork + 63972;
117 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_d_s = primwork + 65052;
118 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_f_s = primwork + 66996;
119 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_g_s = primwork + 69876;
120 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_h_s = primwork + 73656;
121 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_i_s = primwork + 78192;
122 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_k_s = primwork + 83232;
123 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_l_s = primwork + 88416;
124 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_m_s = primwork + 93276;
125 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_n_s = primwork + 97236;
126 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_s_s = primwork + 99612;
127 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_p_s = primwork + 100287;
128 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_d_s = primwork + 101637;
129 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_f_s = primwork + 104067;
130 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_g_s = primwork + 107667;
131 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_h_s = primwork + 112392;
132 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_i_s = primwork + 118062;
133 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_k_s = primwork + 124362;
134 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_l_s = primwork + 130842;
135 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_m_s = primwork + 136917;
136 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_n_s = primwork + 141867;
137 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_s_s = primwork + 144837;
138 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_p_s = primwork + 145607;
139 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_d_s = primwork + 147257;
140 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_f_s = primwork + 150227;
141 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_g_s = primwork + 154627;
142 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_h_s = primwork + 160402;
143 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_i_s = primwork + 167332;
144 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_k_s = primwork + 175032;
145 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_l_s = primwork + 182952;
146 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_m_s = primwork + 190377;
147 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_n_s = primwork + 196427;
148 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_s_s = primwork + 200057;
149 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_p_s = primwork + 200915;
150 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_d_s = primwork + 202895;
151 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_f_s = primwork + 206459;
152 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_g_s = primwork + 211739;
153 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_h_s = primwork + 218669;
154 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_i_s = primwork + 226985;
155 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_k_s = primwork + 236225;
156 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_l_s = primwork + 245729;
157 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_m_s = primwork + 254639;
158 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_n_s = primwork + 261899;
159 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_s_s = primwork + 266255;
160 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_p_s = primwork + 267191;
161 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_d_s = primwork + 269531;
162 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_f_s = primwork + 273743;
163 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_g_s = primwork + 279983;
164 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_h_s = primwork + 288173;
165 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_i_s = primwork + 298001;
166 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_k_s = primwork + 308921;
167 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_l_s = primwork + 320153;
168 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_m_s = primwork + 330683;
169 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_n_s = primwork + 339263;
170 SIMINT_DBLTYPE * const restrict PRIM_INT__q_s_s_s = primwork + 344411;
171 SIMINT_DBLTYPE * const restrict PRIM_INT__q_s_p_s = primwork + 345412;
172 SIMINT_DBLTYPE * const restrict PRIM_INT__q_s_d_s = primwork + 348142;
173 SIMINT_DBLTYPE * const restrict PRIM_INT__q_s_f_s = primwork + 353056;
174 SIMINT_DBLTYPE * const restrict PRIM_INT__q_s_g_s = primwork + 360336;
175 SIMINT_DBLTYPE * const restrict PRIM_INT__q_s_h_s = primwork + 369891;
176 SIMINT_DBLTYPE * const restrict PRIM_INT__q_s_i_s = primwork + 381357;
177 SIMINT_DBLTYPE * const restrict PRIM_INT__q_s_k_s = primwork + 394097;
178 SIMINT_DBLTYPE * const restrict PRIM_INT__q_s_l_s = primwork + 407201;
179 SIMINT_DBLTYPE * const restrict PRIM_INT__q_s_m_s = primwork + 419486;
180 SIMINT_DBLTYPE * const restrict PRIM_INT__q_s_n_s = primwork + 429496;
181 double * const hrrwork = (double *)(primwork + 435502);
182 double * const HRR_INT__k_p_h_s = hrrwork + 0;
183 double * const HRR_INT__k_p_i_s = hrrwork + 2268;
184 double * const HRR_INT__k_p_k_s = hrrwork + 5292;
185 double * const HRR_INT__k_p_l_s = hrrwork + 9180;
186 double * const HRR_INT__k_p_m_s = hrrwork + 14040;
187 double * const HRR_INT__k_p_n_s = hrrwork + 19980;
188 double * const HRR_INT__k_d_h_s = hrrwork + 27108;
189 double * const HRR_INT__k_d_i_s = hrrwork + 31644;
190 double * const HRR_INT__k_d_k_s = hrrwork + 37692;
191 double * const HRR_INT__k_d_l_s = hrrwork + 45468;
192 double * const HRR_INT__k_d_m_s = hrrwork + 55188;
193 double * const HRR_INT__k_d_n_s = hrrwork + 67068;
194 double * const HRR_INT__k_f_h_s = hrrwork + 81324;
195 double * const HRR_INT__k_f_i_s = hrrwork + 88884;
196 double * const HRR_INT__k_f_k_s = hrrwork + 98964;
197 double * const HRR_INT__k_f_l_s = hrrwork + 111924;
198 double * const HRR_INT__k_f_m_s = hrrwork + 128124;
199 double * const HRR_INT__k_f_n_s = hrrwork + 147924;
200 double * const HRR_INT__k_g_h_s = hrrwork + 171684;
201 double * const HRR_INT__k_g_i_s = hrrwork + 183024;
202 double * const HRR_INT__k_g_k_s = hrrwork + 198144;
203 double * const HRR_INT__k_g_l_s = hrrwork + 217584;
204 double * const HRR_INT__k_g_m_s = hrrwork + 241884;
205 double * const HRR_INT__k_g_n_s = hrrwork + 271584;
206 double * const HRR_INT__k_h_h_s = hrrwork + 307224;
207 double * const HRR_INT__k_h_h_p = hrrwork + 323100;
208 double * const HRR_INT__k_h_h_d = hrrwork + 370728;
209 double * const HRR_INT__k_h_h_f = hrrwork + 465984;
210 double * const HRR_INT__k_h_h_g = hrrwork + 624744;
211 double * const HRR_INT__k_h_i_s = hrrwork + 862884;
212 double * const HRR_INT__k_h_i_p = hrrwork + 884052;
213 double * const HRR_INT__k_h_i_d = hrrwork + 947556;
214 double * const HRR_INT__k_h_i_f = hrrwork + 1074564;
215 double * const HRR_INT__k_h_i_g = hrrwork + 1286244;
216 double * const HRR_INT__k_h_k_s = hrrwork + 1603764;
217 double * const HRR_INT__k_h_k_p = hrrwork + 1630980;
218 double * const HRR_INT__k_h_k_d = hrrwork + 1712628;
219 double * const HRR_INT__k_h_k_f = hrrwork + 1875924;
220 double * const HRR_INT__k_h_l_s = hrrwork + 2148084;
221 double * const HRR_INT__k_h_l_p = hrrwork + 2182104;
222 double * const HRR_INT__k_h_l_d = hrrwork + 2284164;
223 double * const HRR_INT__k_h_m_s = hrrwork + 2488284;
224 double * const HRR_INT__k_h_m_p = hrrwork + 2529864;
225 double * const HRR_INT__k_h_n_s = hrrwork + 2654604;
226 double * const HRR_INT__l_p_h_s = hrrwork + 2704500;
227 double * const HRR_INT__l_p_i_s = hrrwork + 2707335;
228 double * const HRR_INT__l_p_k_s = hrrwork + 2711115;
229 double * const HRR_INT__l_p_l_s = hrrwork + 2715975;
230 double * const HRR_INT__l_p_m_s = hrrwork + 2722050;
231 double * const HRR_INT__l_p_n_s = hrrwork + 2729475;
232 double * const HRR_INT__l_d_h_s = hrrwork + 2738385;
233 double * const HRR_INT__l_d_i_s = hrrwork + 2744055;
234 double * const HRR_INT__l_d_k_s = hrrwork + 2751615;
235 double * const HRR_INT__l_d_l_s = hrrwork + 2761335;
236 double * const HRR_INT__l_d_m_s = hrrwork + 2773485;
237 double * const HRR_INT__l_d_n_s = hrrwork + 2788335;
238 double * const HRR_INT__l_f_h_s = hrrwork + 2806155;
239 double * const HRR_INT__l_f_i_s = hrrwork + 2815605;
240 double * const HRR_INT__l_f_k_s = hrrwork + 2828205;
241 double * const HRR_INT__l_f_l_s = hrrwork + 2844405;
242 double * const HRR_INT__l_f_m_s = hrrwork + 2864655;
243 double * const HRR_INT__l_f_n_s = hrrwork + 2889405;
244 double * const HRR_INT__l_g_h_s = hrrwork + 2919105;
245 double * const HRR_INT__l_g_i_s = hrrwork + 2933280;
246 double * const HRR_INT__l_g_k_s = hrrwork + 2952180;
247 double * const HRR_INT__l_g_l_s = hrrwork + 2976480;
248 double * const HRR_INT__l_g_m_s = hrrwork + 3006855;
249 double * const HRR_INT__l_g_n_s = hrrwork + 3043980;
250 double * const HRR_INT__m_p_h_s = hrrwork + 3088530;
251 double * const HRR_INT__m_p_i_s = hrrwork + 3091995;
252 double * const HRR_INT__m_p_k_s = hrrwork + 3096615;
253 double * const HRR_INT__m_p_l_s = hrrwork + 3102555;
254 double * const HRR_INT__m_p_m_s = hrrwork + 3109980;
255 double * const HRR_INT__m_p_n_s = hrrwork + 3119055;
256 double * const HRR_INT__m_d_h_s = hrrwork + 3129945;
257 double * const HRR_INT__m_d_i_s = hrrwork + 3136875;
258 double * const HRR_INT__m_d_k_s = hrrwork + 3146115;
259 double * const HRR_INT__m_d_l_s = hrrwork + 3157995;
260 double * const HRR_INT__m_d_m_s = hrrwork + 3172845;
261 double * const HRR_INT__m_d_n_s = hrrwork + 3190995;
262 double * const HRR_INT__m_f_h_s = hrrwork + 3212775;
263 double * const HRR_INT__m_f_i_s = hrrwork + 3224325;
264 double * const HRR_INT__m_f_k_s = hrrwork + 3239725;
265 double * const HRR_INT__m_f_l_s = hrrwork + 3259525;
266 double * const HRR_INT__m_f_m_s = hrrwork + 3284275;
267 double * const HRR_INT__m_f_n_s = hrrwork + 3314525;
268 double * const HRR_INT__n_p_h_s = hrrwork + 3350825;
269 double * const HRR_INT__n_p_i_s = hrrwork + 3354983;
270 double * const HRR_INT__n_p_k_s = hrrwork + 3360527;
271 double * const HRR_INT__n_p_l_s = hrrwork + 3367655;
272 double * const HRR_INT__n_p_m_s = hrrwork + 3376565;
273 double * const HRR_INT__n_p_n_s = hrrwork + 3387455;
274 double * const HRR_INT__n_d_h_s = hrrwork + 3400523;
275 double * const HRR_INT__n_d_i_s = hrrwork + 3408839;
276 double * const HRR_INT__n_d_k_s = hrrwork + 3419927;
277 double * const HRR_INT__n_d_l_s = hrrwork + 3434183;
278 double * const HRR_INT__n_d_m_s = hrrwork + 3452003;
279 double * const HRR_INT__n_d_n_s = hrrwork + 3473783;
280 double * const HRR_INT__o_p_h_s = hrrwork + 3499919;
281 double * const HRR_INT__o_p_i_s = hrrwork + 3504833;
282 double * const HRR_INT__o_p_k_s = hrrwork + 3511385;
283 double * const HRR_INT__o_p_l_s = hrrwork + 3519809;
284 double * const HRR_INT__o_p_m_s = hrrwork + 3530339;
285 double * const HRR_INT__o_p_n_s = hrrwork + 3543209;
286
287
288 // Create constants
289 const SIMINT_DBLTYPE const_1 = SIMINT_DBLSET1(1);
290 const SIMINT_DBLTYPE const_10 = SIMINT_DBLSET1(10);
291 const SIMINT_DBLTYPE const_11 = SIMINT_DBLSET1(11);
292 const SIMINT_DBLTYPE const_12 = SIMINT_DBLSET1(12);
293 const SIMINT_DBLTYPE const_2 = SIMINT_DBLSET1(2);
294 const SIMINT_DBLTYPE const_3 = SIMINT_DBLSET1(3);
295 const SIMINT_DBLTYPE const_4 = SIMINT_DBLSET1(4);
296 const SIMINT_DBLTYPE const_5 = SIMINT_DBLSET1(5);
297 const SIMINT_DBLTYPE const_6 = SIMINT_DBLSET1(6);
298 const SIMINT_DBLTYPE const_7 = SIMINT_DBLSET1(7);
299 const SIMINT_DBLTYPE const_8 = SIMINT_DBLSET1(8);
300 const SIMINT_DBLTYPE const_9 = SIMINT_DBLSET1(9);
301 const SIMINT_DBLTYPE one_half = SIMINT_DBLSET1(0.5);
302
303
304 ////////////////////////////////////////
305 // Loop over shells and primitives
306 ////////////////////////////////////////
307
308 real_abcd = 0;
309 istart = 0;
310 for(ab = 0; ab < P.nshell12_clip; ++ab)
311 {
312 const int iend = istart + P.nprim12[ab];
313
314 cd = 0;
315 jstart = 0;
316
317 for(cd = 0; cd < Q.nshell12_clip; cd += SIMINT_NSHELL_SIMD)
318 {
319 const int nshellbatch = ((cd + SIMINT_NSHELL_SIMD) > Q.nshell12_clip) ? Q.nshell12_clip - cd : SIMINT_NSHELL_SIMD;
320 int jend = jstart;
321 for(i = 0; i < nshellbatch; i++)
322 jend += Q.nprim12[cd+i];
323
324 // Clear the beginning of the workspace (where we are accumulating integrals)
325 memset(work, 0, SIMINT_NSHELL_SIMD * 93121 * sizeof(double));
326 abcd = 0;
327
328
329 for(i = istart; i < iend; ++i)
330 {
331 SIMINT_DBLTYPE bra_screen_max; // only used if check_screen
332
333 if(check_screen)
334 {
335 // Skip this whole thing if always insignificant
336 if((P.screen[i] * Q.screen_max) < screen_tol)
337 continue;
338 bra_screen_max = SIMINT_DBLSET1(P.screen[i]);
339 }
340
341 icd = 0;
342 iprimcd = 0;
343 nprim_icd = Q.nprim12[cd];
344 double * restrict PRIM_PTR_INT__k_s_h_s = INT__k_s_h_s + abcd * 756;
345 double * restrict PRIM_PTR_INT__k_s_i_s = INT__k_s_i_s + abcd * 1008;
346 double * restrict PRIM_PTR_INT__k_s_k_s = INT__k_s_k_s + abcd * 1296;
347 double * restrict PRIM_PTR_INT__k_s_l_s = INT__k_s_l_s + abcd * 1620;
348 double * restrict PRIM_PTR_INT__k_s_m_s = INT__k_s_m_s + abcd * 1980;
349 double * restrict PRIM_PTR_INT__k_s_n_s = INT__k_s_n_s + abcd * 2376;
350 double * restrict PRIM_PTR_INT__l_s_h_s = INT__l_s_h_s + abcd * 945;
351 double * restrict PRIM_PTR_INT__l_s_i_s = INT__l_s_i_s + abcd * 1260;
352 double * restrict PRIM_PTR_INT__l_s_k_s = INT__l_s_k_s + abcd * 1620;
353 double * restrict PRIM_PTR_INT__l_s_l_s = INT__l_s_l_s + abcd * 2025;
354 double * restrict PRIM_PTR_INT__l_s_m_s = INT__l_s_m_s + abcd * 2475;
355 double * restrict PRIM_PTR_INT__l_s_n_s = INT__l_s_n_s + abcd * 2970;
356 double * restrict PRIM_PTR_INT__m_s_h_s = INT__m_s_h_s + abcd * 1155;
357 double * restrict PRIM_PTR_INT__m_s_i_s = INT__m_s_i_s + abcd * 1540;
358 double * restrict PRIM_PTR_INT__m_s_k_s = INT__m_s_k_s + abcd * 1980;
359 double * restrict PRIM_PTR_INT__m_s_l_s = INT__m_s_l_s + abcd * 2475;
360 double * restrict PRIM_PTR_INT__m_s_m_s = INT__m_s_m_s + abcd * 3025;
361 double * restrict PRIM_PTR_INT__m_s_n_s = INT__m_s_n_s + abcd * 3630;
362 double * restrict PRIM_PTR_INT__n_s_h_s = INT__n_s_h_s + abcd * 1386;
363 double * restrict PRIM_PTR_INT__n_s_i_s = INT__n_s_i_s + abcd * 1848;
364 double * restrict PRIM_PTR_INT__n_s_k_s = INT__n_s_k_s + abcd * 2376;
365 double * restrict PRIM_PTR_INT__n_s_l_s = INT__n_s_l_s + abcd * 2970;
366 double * restrict PRIM_PTR_INT__n_s_m_s = INT__n_s_m_s + abcd * 3630;
367 double * restrict PRIM_PTR_INT__n_s_n_s = INT__n_s_n_s + abcd * 4356;
368 double * restrict PRIM_PTR_INT__o_s_h_s = INT__o_s_h_s + abcd * 1638;
369 double * restrict PRIM_PTR_INT__o_s_i_s = INT__o_s_i_s + abcd * 2184;
370 double * restrict PRIM_PTR_INT__o_s_k_s = INT__o_s_k_s + abcd * 2808;
371 double * restrict PRIM_PTR_INT__o_s_l_s = INT__o_s_l_s + abcd * 3510;
372 double * restrict PRIM_PTR_INT__o_s_m_s = INT__o_s_m_s + abcd * 4290;
373 double * restrict PRIM_PTR_INT__o_s_n_s = INT__o_s_n_s + abcd * 5148;
374 double * restrict PRIM_PTR_INT__q_s_h_s = INT__q_s_h_s + abcd * 1911;
375 double * restrict PRIM_PTR_INT__q_s_i_s = INT__q_s_i_s + abcd * 2548;
376 double * restrict PRIM_PTR_INT__q_s_k_s = INT__q_s_k_s + abcd * 3276;
377 double * restrict PRIM_PTR_INT__q_s_l_s = INT__q_s_l_s + abcd * 4095;
378 double * restrict PRIM_PTR_INT__q_s_m_s = INT__q_s_m_s + abcd * 5005;
379 double * restrict PRIM_PTR_INT__q_s_n_s = INT__q_s_n_s + abcd * 6006;
380
381
382
383 // Load these one per loop over i
384 const SIMINT_DBLTYPE P_alpha = SIMINT_DBLSET1(P.alpha[i]);
385 const SIMINT_DBLTYPE P_prefac = SIMINT_DBLSET1(P.prefac[i]);
386 const SIMINT_DBLTYPE Pxyz[3] = { SIMINT_DBLSET1(P.x[i]), SIMINT_DBLSET1(P.y[i]), SIMINT_DBLSET1(P.z[i]) };
387
388 const SIMINT_DBLTYPE P_PA[3] = { SIMINT_DBLSET1(P.PA_x[i]), SIMINT_DBLSET1(P.PA_y[i]), SIMINT_DBLSET1(P.PA_z[i]) };
389
390 for(j = jstart; j < jend; j += SIMINT_SIMD_LEN)
391 {
392 // calculate the shell offsets
393 // these are the offset from the shell pointed to by cd
394 // for each element
395 int shelloffsets[SIMINT_SIMD_LEN] = {0};
396 int lastoffset = 0;
397 const int nlane = ( ((j + SIMINT_SIMD_LEN) < jend) ? SIMINT_SIMD_LEN : (jend - j));
398
399 if((iprimcd + SIMINT_SIMD_LEN) >= nprim_icd)
400 {
401 // Handle if the first element of the vector is a new shell
402 if(iprimcd >= nprim_icd && ((icd+1) < nshellbatch))
403 {
404 nprim_icd += Q.nprim12[cd + (++icd)];
405 PRIM_PTR_INT__k_s_h_s += 756;
406 PRIM_PTR_INT__k_s_i_s += 1008;
407 PRIM_PTR_INT__k_s_k_s += 1296;
408 PRIM_PTR_INT__k_s_l_s += 1620;
409 PRIM_PTR_INT__k_s_m_s += 1980;
410 PRIM_PTR_INT__k_s_n_s += 2376;
411 PRIM_PTR_INT__l_s_h_s += 945;
412 PRIM_PTR_INT__l_s_i_s += 1260;
413 PRIM_PTR_INT__l_s_k_s += 1620;
414 PRIM_PTR_INT__l_s_l_s += 2025;
415 PRIM_PTR_INT__l_s_m_s += 2475;
416 PRIM_PTR_INT__l_s_n_s += 2970;
417 PRIM_PTR_INT__m_s_h_s += 1155;
418 PRIM_PTR_INT__m_s_i_s += 1540;
419 PRIM_PTR_INT__m_s_k_s += 1980;
420 PRIM_PTR_INT__m_s_l_s += 2475;
421 PRIM_PTR_INT__m_s_m_s += 3025;
422 PRIM_PTR_INT__m_s_n_s += 3630;
423 PRIM_PTR_INT__n_s_h_s += 1386;
424 PRIM_PTR_INT__n_s_i_s += 1848;
425 PRIM_PTR_INT__n_s_k_s += 2376;
426 PRIM_PTR_INT__n_s_l_s += 2970;
427 PRIM_PTR_INT__n_s_m_s += 3630;
428 PRIM_PTR_INT__n_s_n_s += 4356;
429 PRIM_PTR_INT__o_s_h_s += 1638;
430 PRIM_PTR_INT__o_s_i_s += 2184;
431 PRIM_PTR_INT__o_s_k_s += 2808;
432 PRIM_PTR_INT__o_s_l_s += 3510;
433 PRIM_PTR_INT__o_s_m_s += 4290;
434 PRIM_PTR_INT__o_s_n_s += 5148;
435 PRIM_PTR_INT__q_s_h_s += 1911;
436 PRIM_PTR_INT__q_s_i_s += 2548;
437 PRIM_PTR_INT__q_s_k_s += 3276;
438 PRIM_PTR_INT__q_s_l_s += 4095;
439 PRIM_PTR_INT__q_s_m_s += 5005;
440 PRIM_PTR_INT__q_s_n_s += 6006;
441 }
442 iprimcd++;
443 for(n = 1; n < SIMINT_SIMD_LEN; ++n)
444 {
445 if(iprimcd >= nprim_icd && ((icd+1) < nshellbatch))
446 {
447 shelloffsets[n] = shelloffsets[n-1] + 1;
448 lastoffset++;
449 nprim_icd += Q.nprim12[cd + (++icd)];
450 }
451 else
452 shelloffsets[n] = shelloffsets[n-1];
453 iprimcd++;
454 }
455 }
456 else
457 iprimcd += SIMINT_SIMD_LEN;
458
459 // Do we have to compute this vector (or has it been screened out)?
460 // (not_screened != 0 means we have to do this vector)
461 if(check_screen)
462 {
463 const double vmax = vector_max(SIMINT_MUL(bra_screen_max, SIMINT_DBLLOAD(Q.screen, j)));
464 if(vmax < screen_tol)
465 {
466 PRIM_PTR_INT__k_s_h_s += lastoffset*756;
467 PRIM_PTR_INT__k_s_i_s += lastoffset*1008;
468 PRIM_PTR_INT__k_s_k_s += lastoffset*1296;
469 PRIM_PTR_INT__k_s_l_s += lastoffset*1620;
470 PRIM_PTR_INT__k_s_m_s += lastoffset*1980;
471 PRIM_PTR_INT__k_s_n_s += lastoffset*2376;
472 PRIM_PTR_INT__l_s_h_s += lastoffset*945;
473 PRIM_PTR_INT__l_s_i_s += lastoffset*1260;
474 PRIM_PTR_INT__l_s_k_s += lastoffset*1620;
475 PRIM_PTR_INT__l_s_l_s += lastoffset*2025;
476 PRIM_PTR_INT__l_s_m_s += lastoffset*2475;
477 PRIM_PTR_INT__l_s_n_s += lastoffset*2970;
478 PRIM_PTR_INT__m_s_h_s += lastoffset*1155;
479 PRIM_PTR_INT__m_s_i_s += lastoffset*1540;
480 PRIM_PTR_INT__m_s_k_s += lastoffset*1980;
481 PRIM_PTR_INT__m_s_l_s += lastoffset*2475;
482 PRIM_PTR_INT__m_s_m_s += lastoffset*3025;
483 PRIM_PTR_INT__m_s_n_s += lastoffset*3630;
484 PRIM_PTR_INT__n_s_h_s += lastoffset*1386;
485 PRIM_PTR_INT__n_s_i_s += lastoffset*1848;
486 PRIM_PTR_INT__n_s_k_s += lastoffset*2376;
487 PRIM_PTR_INT__n_s_l_s += lastoffset*2970;
488 PRIM_PTR_INT__n_s_m_s += lastoffset*3630;
489 PRIM_PTR_INT__n_s_n_s += lastoffset*4356;
490 PRIM_PTR_INT__o_s_h_s += lastoffset*1638;
491 PRIM_PTR_INT__o_s_i_s += lastoffset*2184;
492 PRIM_PTR_INT__o_s_k_s += lastoffset*2808;
493 PRIM_PTR_INT__o_s_l_s += lastoffset*3510;
494 PRIM_PTR_INT__o_s_m_s += lastoffset*4290;
495 PRIM_PTR_INT__o_s_n_s += lastoffset*5148;
496 PRIM_PTR_INT__q_s_h_s += lastoffset*1911;
497 PRIM_PTR_INT__q_s_i_s += lastoffset*2548;
498 PRIM_PTR_INT__q_s_k_s += lastoffset*3276;
499 PRIM_PTR_INT__q_s_l_s += lastoffset*4095;
500 PRIM_PTR_INT__q_s_m_s += lastoffset*5005;
501 PRIM_PTR_INT__q_s_n_s += lastoffset*6006;
502 continue;
503 }
504 }
505
506 const SIMINT_DBLTYPE Q_alpha = SIMINT_DBLLOAD(Q.alpha, j);
507 const SIMINT_DBLTYPE PQalpha_mul = SIMINT_MUL(P_alpha, Q_alpha);
508 const SIMINT_DBLTYPE PQalpha_sum = SIMINT_ADD(P_alpha, Q_alpha);
509 const SIMINT_DBLTYPE one_over_PQalpha_sum = SIMINT_DIV(const_1, PQalpha_sum);
510
511
512 /* construct R2 = (Px - Qx)**2 + (Py - Qy)**2 + (Pz -Qz)**2 */
513 SIMINT_DBLTYPE PQ[3];
514 PQ[0] = SIMINT_SUB(Pxyz[0], SIMINT_DBLLOAD(Q.x, j));
515 PQ[1] = SIMINT_SUB(Pxyz[1], SIMINT_DBLLOAD(Q.y, j));
516 PQ[2] = SIMINT_SUB(Pxyz[2], SIMINT_DBLLOAD(Q.z, j));
517 SIMINT_DBLTYPE R2 = SIMINT_MUL(PQ[0], PQ[0]);
518 R2 = SIMINT_FMADD(PQ[1], PQ[1], R2);
519 R2 = SIMINT_FMADD(PQ[2], PQ[2], R2);
520
521 const SIMINT_DBLTYPE alpha = SIMINT_MUL(PQalpha_mul, one_over_PQalpha_sum); // alpha from MEST
522 const SIMINT_DBLTYPE one_over_p = SIMINT_DIV(const_1, P_alpha);
523 const SIMINT_DBLTYPE one_over_q = SIMINT_DIV(const_1, Q_alpha);
524 const SIMINT_DBLTYPE one_over_2p = SIMINT_MUL(one_half, one_over_p);
525 const SIMINT_DBLTYPE one_over_2q = SIMINT_MUL(one_half, one_over_q);
526 const SIMINT_DBLTYPE one_over_2pq = SIMINT_MUL(one_half, one_over_PQalpha_sum);
527 const SIMINT_DBLTYPE Q_PA[3] = { SIMINT_DBLLOAD(Q.PA_x, j), SIMINT_DBLLOAD(Q.PA_y, j), SIMINT_DBLLOAD(Q.PA_z, j) };
528
529 // NOTE: Minus sign!
530 const SIMINT_DBLTYPE a_over_p = SIMINT_MUL(SIMINT_NEG(alpha), one_over_p);
531 SIMINT_DBLTYPE aop_PQ[3];
532 aop_PQ[0] = SIMINT_MUL(a_over_p, PQ[0]);
533 aop_PQ[1] = SIMINT_MUL(a_over_p, PQ[1]);
534 aop_PQ[2] = SIMINT_MUL(a_over_p, PQ[2]);
535
536 SIMINT_DBLTYPE a_over_q = SIMINT_MUL(alpha, one_over_q);
537 SIMINT_DBLTYPE aoq_PQ[3];
538 aoq_PQ[0] = SIMINT_MUL(a_over_q, PQ[0]);
539 aoq_PQ[1] = SIMINT_MUL(a_over_q, PQ[1]);
540 aoq_PQ[2] = SIMINT_MUL(a_over_q, PQ[2]);
541 // Put a minus sign here so we don't have to in RR routines
542 a_over_q = SIMINT_NEG(a_over_q);
543
544
545 //////////////////////////////////////////////
546 // Fjt function section
547 // Maximum v value: 22
548 //////////////////////////////////////////////
549 // The parameter to the Fjt function
550 const SIMINT_DBLTYPE F_x = SIMINT_MUL(R2, alpha);
551
552
553 const SIMINT_DBLTYPE Q_prefac = mask_load(nlane, Q.prefac + j);
554
555
556 boys_F_split(PRIM_INT__s_s_s_s, F_x, 22);
557 SIMINT_DBLTYPE prefac = SIMINT_SQRT(one_over_PQalpha_sum);
558 prefac = SIMINT_MUL(SIMINT_MUL(P_prefac, Q_prefac), prefac);
559 for(n = 0; n <= 22; n++)
560 PRIM_INT__s_s_s_s[n] = SIMINT_MUL(PRIM_INT__s_s_s_s[n], prefac);
561
562 //////////////////////////////////////////////
563 // Primitive integrals: Vertical recurrance
564 //////////////////////////////////////////////
565
566 const SIMINT_DBLTYPE vrr_const_1_over_2p = one_over_2p;
567 const SIMINT_DBLTYPE vrr_const_2_over_2p = SIMINT_MUL(const_2, one_over_2p);
568 const SIMINT_DBLTYPE vrr_const_3_over_2p = SIMINT_MUL(const_3, one_over_2p);
569 const SIMINT_DBLTYPE vrr_const_4_over_2p = SIMINT_MUL(const_4, one_over_2p);
570 const SIMINT_DBLTYPE vrr_const_5_over_2p = SIMINT_MUL(const_5, one_over_2p);
571 const SIMINT_DBLTYPE vrr_const_6_over_2p = SIMINT_MUL(const_6, one_over_2p);
572 const SIMINT_DBLTYPE vrr_const_7_over_2p = SIMINT_MUL(const_7, one_over_2p);
573 const SIMINT_DBLTYPE vrr_const_8_over_2p = SIMINT_MUL(const_8, one_over_2p);
574 const SIMINT_DBLTYPE vrr_const_9_over_2p = SIMINT_MUL(const_9, one_over_2p);
575 const SIMINT_DBLTYPE vrr_const_10_over_2p = SIMINT_MUL(const_10, one_over_2p);
576 const SIMINT_DBLTYPE vrr_const_11_over_2p = SIMINT_MUL(const_11, one_over_2p);
577 const SIMINT_DBLTYPE vrr_const_1_over_2q = one_over_2q;
578 const SIMINT_DBLTYPE vrr_const_2_over_2q = SIMINT_MUL(const_2, one_over_2q);
579 const SIMINT_DBLTYPE vrr_const_3_over_2q = SIMINT_MUL(const_3, one_over_2q);
580 const SIMINT_DBLTYPE vrr_const_4_over_2q = SIMINT_MUL(const_4, one_over_2q);
581 const SIMINT_DBLTYPE vrr_const_5_over_2q = SIMINT_MUL(const_5, one_over_2q);
582 const SIMINT_DBLTYPE vrr_const_6_over_2q = SIMINT_MUL(const_6, one_over_2q);
583 const SIMINT_DBLTYPE vrr_const_7_over_2q = SIMINT_MUL(const_7, one_over_2q);
584 const SIMINT_DBLTYPE vrr_const_8_over_2q = SIMINT_MUL(const_8, one_over_2q);
585 const SIMINT_DBLTYPE vrr_const_9_over_2q = SIMINT_MUL(const_9, one_over_2q);
586 const SIMINT_DBLTYPE vrr_const_1_over_2pq = one_over_2pq;
587 const SIMINT_DBLTYPE vrr_const_2_over_2pq = SIMINT_MUL(const_2, one_over_2pq);
588 const SIMINT_DBLTYPE vrr_const_3_over_2pq = SIMINT_MUL(const_3, one_over_2pq);
589 const SIMINT_DBLTYPE vrr_const_4_over_2pq = SIMINT_MUL(const_4, one_over_2pq);
590 const SIMINT_DBLTYPE vrr_const_5_over_2pq = SIMINT_MUL(const_5, one_over_2pq);
591 const SIMINT_DBLTYPE vrr_const_6_over_2pq = SIMINT_MUL(const_6, one_over_2pq);
592 const SIMINT_DBLTYPE vrr_const_7_over_2pq = SIMINT_MUL(const_7, one_over_2pq);
593 const SIMINT_DBLTYPE vrr_const_8_over_2pq = SIMINT_MUL(const_8, one_over_2pq);
594 const SIMINT_DBLTYPE vrr_const_9_over_2pq = SIMINT_MUL(const_9, one_over_2pq);
595 const SIMINT_DBLTYPE vrr_const_10_over_2pq = SIMINT_MUL(const_10, one_over_2pq);
596 const SIMINT_DBLTYPE vrr_const_11_over_2pq = SIMINT_MUL(const_11, one_over_2pq);
597 const SIMINT_DBLTYPE vrr_const_12_over_2pq = SIMINT_MUL(const_12, one_over_2pq);
598
599
600
601 // Forming PRIM_INT__p_s_s_s[22 * 3];
602 for(n = 0; n < 22; ++n) // loop over orders of auxiliary function
603 {
604
605 PRIM_INT__p_s_s_s[n * 3 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_s_s[n * 1 + 0]);
606 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]);
607
608 PRIM_INT__p_s_s_s[n * 3 + 1] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_s_s[n * 1 + 0]);
609 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]);
610
611 PRIM_INT__p_s_s_s[n * 3 + 2] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_s_s[n * 1 + 0]);
612 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]);
613
614 }
615
616
617
618 // Forming PRIM_INT__d_s_s_s[21 * 6];
619 for(n = 0; n < 21; ++n) // loop over orders of auxiliary function
620 {
621
622 PRIM_INT__d_s_s_s[n * 6 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__p_s_s_s[n * 3 + 0]);
623 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]);
624 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]);
625
626 PRIM_INT__d_s_s_s[n * 6 + 1] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_s_s[n * 3 + 0]);
627 PRIM_INT__d_s_s_s[n * 6 + 1] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__d_s_s_s[n * 6 + 1]);
628
629 PRIM_INT__d_s_s_s[n * 6 + 2] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_s_s[n * 3 + 0]);
630 PRIM_INT__d_s_s_s[n * 6 + 2] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__d_s_s_s[n * 6 + 2]);
631
632 PRIM_INT__d_s_s_s[n * 6 + 3] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_s_s[n * 3 + 1]);
633 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]);
634 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]);
635
636 PRIM_INT__d_s_s_s[n * 6 + 4] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_s_s[n * 3 + 1]);
637 PRIM_INT__d_s_s_s[n * 6 + 4] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__d_s_s_s[n * 6 + 4]);
638
639 PRIM_INT__d_s_s_s[n * 6 + 5] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_s_s[n * 3 + 2]);
640 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]);
641 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]);
642
643 }
644
645
646
647 // Forming PRIM_INT__f_s_s_s[20 * 10];
648 for(n = 0; n < 20; ++n) // loop over orders of auxiliary function
649 {
650
651 PRIM_INT__f_s_s_s[n * 10 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__d_s_s_s[n * 6 + 0]);
652 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]);
653 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]);
654
655 PRIM_INT__f_s_s_s[n * 10 + 1] = SIMINT_MUL(P_PA[1], PRIM_INT__d_s_s_s[n * 6 + 0]);
656 PRIM_INT__f_s_s_s[n * 10 + 1] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 0], PRIM_INT__f_s_s_s[n * 10 + 1]);
657
658 PRIM_INT__f_s_s_s[n * 10 + 2] = SIMINT_MUL(P_PA[2], PRIM_INT__d_s_s_s[n * 6 + 0]);
659 PRIM_INT__f_s_s_s[n * 10 + 2] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 0], PRIM_INT__f_s_s_s[n * 10 + 2]);
660
661 PRIM_INT__f_s_s_s[n * 10 + 3] = SIMINT_MUL(P_PA[0], PRIM_INT__d_s_s_s[n * 6 + 3]);
662 PRIM_INT__f_s_s_s[n * 10 + 3] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 3], PRIM_INT__f_s_s_s[n * 10 + 3]);
663
664 PRIM_INT__f_s_s_s[n * 10 + 4] = SIMINT_MUL(P_PA[2], PRIM_INT__d_s_s_s[n * 6 + 1]);
665 PRIM_INT__f_s_s_s[n * 10 + 4] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 1], PRIM_INT__f_s_s_s[n * 10 + 4]);
666
667 PRIM_INT__f_s_s_s[n * 10 + 5] = SIMINT_MUL(P_PA[0], PRIM_INT__d_s_s_s[n * 6 + 5]);
668 PRIM_INT__f_s_s_s[n * 10 + 5] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 5], PRIM_INT__f_s_s_s[n * 10 + 5]);
669
670 PRIM_INT__f_s_s_s[n * 10 + 6] = SIMINT_MUL(P_PA[1], PRIM_INT__d_s_s_s[n * 6 + 3]);
671 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]);
672 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]);
673
674 PRIM_INT__f_s_s_s[n * 10 + 7] = SIMINT_MUL(P_PA[2], PRIM_INT__d_s_s_s[n * 6 + 3]);
675 PRIM_INT__f_s_s_s[n * 10 + 7] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 3], PRIM_INT__f_s_s_s[n * 10 + 7]);
676
677 PRIM_INT__f_s_s_s[n * 10 + 8] = SIMINT_MUL(P_PA[1], PRIM_INT__d_s_s_s[n * 6 + 5]);
678 PRIM_INT__f_s_s_s[n * 10 + 8] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 5], PRIM_INT__f_s_s_s[n * 10 + 8]);
679
680 PRIM_INT__f_s_s_s[n * 10 + 9] = SIMINT_MUL(P_PA[2], PRIM_INT__d_s_s_s[n * 6 + 5]);
681 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]);
682 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]);
683
684 }
685
686
687 VRR_I_g_s_s_s(
688 PRIM_INT__g_s_s_s,
689 PRIM_INT__f_s_s_s,
690 PRIM_INT__d_s_s_s,
691 P_PA,
692 a_over_p,
693 aop_PQ,
694 one_over_2p,
695 19);
696
697
698 VRR_I_h_s_s_s(
699 PRIM_INT__h_s_s_s,
700 PRIM_INT__g_s_s_s,
701 PRIM_INT__f_s_s_s,
702 P_PA,
703 a_over_p,
704 aop_PQ,
705 one_over_2p,
706 18);
707
708
709 ostei_general_vrr1_I(6, 17,
710 one_over_2p, a_over_p, aop_PQ, P_PA,
711 PRIM_INT__h_s_s_s, PRIM_INT__g_s_s_s, PRIM_INT__i_s_s_s);
712
713
714 ostei_general_vrr1_I(7, 16,
715 one_over_2p, a_over_p, aop_PQ, P_PA,
716 PRIM_INT__i_s_s_s, PRIM_INT__h_s_s_s, PRIM_INT__k_s_s_s);
717
718
719 ostei_general_vrr_K(7, 0, 1, 0, 10,
720 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
721 PRIM_INT__k_s_s_s, NULL, NULL, PRIM_INT__i_s_s_s, NULL, PRIM_INT__k_s_p_s);
722
723
724 ostei_general_vrr_K(6, 0, 1, 0, 10,
725 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
726 PRIM_INT__i_s_s_s, NULL, NULL, PRIM_INT__h_s_s_s, NULL, PRIM_INT__i_s_p_s);
727
728
729 ostei_general_vrr_K(7, 0, 2, 0, 9,
730 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
731 PRIM_INT__k_s_p_s, PRIM_INT__k_s_s_s, NULL, PRIM_INT__i_s_p_s, NULL, PRIM_INT__k_s_d_s);
732
733
734 ostei_general_vrr_K(5, 0, 1, 0, 10,
735 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
736 PRIM_INT__h_s_s_s, NULL, NULL, PRIM_INT__g_s_s_s, NULL, PRIM_INT__h_s_p_s);
737
738
739 ostei_general_vrr_K(6, 0, 2, 0, 9,
740 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
741 PRIM_INT__i_s_p_s, PRIM_INT__i_s_s_s, NULL, PRIM_INT__h_s_p_s, NULL, PRIM_INT__i_s_d_s);
742
743
744 ostei_general_vrr_K(7, 0, 3, 0, 8,
745 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
746 PRIM_INT__k_s_d_s, PRIM_INT__k_s_p_s, NULL, PRIM_INT__i_s_d_s, NULL, PRIM_INT__k_s_f_s);
747
748
749 VRR_K_g_s_p_s(
750 PRIM_INT__g_s_p_s,
751 PRIM_INT__g_s_s_s,
752 PRIM_INT__f_s_s_s,
753 Q_PA,
754 aoq_PQ,
755 one_over_2pq,
756 10);
757
758
759 ostei_general_vrr_K(5, 0, 2, 0, 9,
760 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
761 PRIM_INT__h_s_p_s, PRIM_INT__h_s_s_s, NULL, PRIM_INT__g_s_p_s, NULL, PRIM_INT__h_s_d_s);
762
763
764 ostei_general_vrr_K(6, 0, 3, 0, 8,
765 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
766 PRIM_INT__i_s_d_s, PRIM_INT__i_s_p_s, NULL, PRIM_INT__h_s_d_s, NULL, PRIM_INT__i_s_f_s);
767
768
769 ostei_general_vrr_K(7, 0, 4, 0, 7,
770 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
771 PRIM_INT__k_s_f_s, PRIM_INT__k_s_d_s, NULL, PRIM_INT__i_s_f_s, NULL, PRIM_INT__k_s_g_s);
772
773
774 VRR_K_f_s_p_s(
775 PRIM_INT__f_s_p_s,
776 PRIM_INT__f_s_s_s,
777 PRIM_INT__d_s_s_s,
778 Q_PA,
779 aoq_PQ,
780 one_over_2pq,
781 10);
782
783
784 ostei_general_vrr_K(4, 0, 2, 0, 9,
785 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
786 PRIM_INT__g_s_p_s, PRIM_INT__g_s_s_s, NULL, PRIM_INT__f_s_p_s, NULL, PRIM_INT__g_s_d_s);
787
788
789 ostei_general_vrr_K(5, 0, 3, 0, 8,
790 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
791 PRIM_INT__h_s_d_s, PRIM_INT__h_s_p_s, NULL, PRIM_INT__g_s_d_s, NULL, PRIM_INT__h_s_f_s);
792
793
794 ostei_general_vrr_K(6, 0, 4, 0, 7,
795 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
796 PRIM_INT__i_s_f_s, PRIM_INT__i_s_d_s, NULL, PRIM_INT__h_s_f_s, NULL, PRIM_INT__i_s_g_s);
797
798
799 ostei_general_vrr_K(7, 0, 5, 0, 6,
800 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
801 PRIM_INT__k_s_g_s, PRIM_INT__k_s_f_s, NULL, PRIM_INT__i_s_g_s, NULL, PRIM_INT__k_s_h_s);
802
803
804
805 // Forming PRIM_INT__d_s_p_s[10 * 18];
806 for(n = 0; n < 10; ++n) // loop over orders of auxiliary function
807 {
808
809 PRIM_INT__d_s_p_s[n * 18 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 0]);
810 PRIM_INT__d_s_p_s[n * 18 + 0] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 0], PRIM_INT__d_s_p_s[n * 18 + 0]);
811 PRIM_INT__d_s_p_s[n * 18 + 0] = SIMINT_FMADD( vrr_const_2_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__d_s_p_s[n * 18 + 0]);
812
813 PRIM_INT__d_s_p_s[n * 18 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 0]);
814 PRIM_INT__d_s_p_s[n * 18 + 1] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 0], PRIM_INT__d_s_p_s[n * 18 + 1]);
815
816 PRIM_INT__d_s_p_s[n * 18 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 0]);
817 PRIM_INT__d_s_p_s[n * 18 + 2] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 0], PRIM_INT__d_s_p_s[n * 18 + 2]);
818
819 PRIM_INT__d_s_p_s[n * 18 + 3] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 1]);
820 PRIM_INT__d_s_p_s[n * 18 + 3] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 1], PRIM_INT__d_s_p_s[n * 18 + 3]);
821 PRIM_INT__d_s_p_s[n * 18 + 3] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__d_s_p_s[n * 18 + 3]);
822
823 PRIM_INT__d_s_p_s[n * 18 + 4] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 1]);
824 PRIM_INT__d_s_p_s[n * 18 + 4] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 1], PRIM_INT__d_s_p_s[n * 18 + 4]);
825 PRIM_INT__d_s_p_s[n * 18 + 4] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__d_s_p_s[n * 18 + 4]);
826
827 PRIM_INT__d_s_p_s[n * 18 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 1]);
828 PRIM_INT__d_s_p_s[n * 18 + 5] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 1], PRIM_INT__d_s_p_s[n * 18 + 5]);
829
830 PRIM_INT__d_s_p_s[n * 18 + 6] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 2]);
831 PRIM_INT__d_s_p_s[n * 18 + 6] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 2], PRIM_INT__d_s_p_s[n * 18 + 6]);
832 PRIM_INT__d_s_p_s[n * 18 + 6] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__d_s_p_s[n * 18 + 6]);
833
834 PRIM_INT__d_s_p_s[n * 18 + 7] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 2]);
835 PRIM_INT__d_s_p_s[n * 18 + 7] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 2], PRIM_INT__d_s_p_s[n * 18 + 7]);
836
837 PRIM_INT__d_s_p_s[n * 18 + 8] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 2]);
838 PRIM_INT__d_s_p_s[n * 18 + 8] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 2], PRIM_INT__d_s_p_s[n * 18 + 8]);
839 PRIM_INT__d_s_p_s[n * 18 + 8] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__d_s_p_s[n * 18 + 8]);
840
841 PRIM_INT__d_s_p_s[n * 18 + 9] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 3]);
842 PRIM_INT__d_s_p_s[n * 18 + 9] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 3], PRIM_INT__d_s_p_s[n * 18 + 9]);
843
844 PRIM_INT__d_s_p_s[n * 18 + 10] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 3]);
845 PRIM_INT__d_s_p_s[n * 18 + 10] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 3], PRIM_INT__d_s_p_s[n * 18 + 10]);
846 PRIM_INT__d_s_p_s[n * 18 + 10] = SIMINT_FMADD( vrr_const_2_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__d_s_p_s[n * 18 + 10]);
847
848 PRIM_INT__d_s_p_s[n * 18 + 11] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 3]);
849 PRIM_INT__d_s_p_s[n * 18 + 11] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 3], PRIM_INT__d_s_p_s[n * 18 + 11]);
850
851 PRIM_INT__d_s_p_s[n * 18 + 12] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 4]);
852 PRIM_INT__d_s_p_s[n * 18 + 12] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 4], PRIM_INT__d_s_p_s[n * 18 + 12]);
853
854 PRIM_INT__d_s_p_s[n * 18 + 13] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 4]);
855 PRIM_INT__d_s_p_s[n * 18 + 13] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 4], PRIM_INT__d_s_p_s[n * 18 + 13]);
856 PRIM_INT__d_s_p_s[n * 18 + 13] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__d_s_p_s[n * 18 + 13]);
857
858 PRIM_INT__d_s_p_s[n * 18 + 14] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 4]);
859 PRIM_INT__d_s_p_s[n * 18 + 14] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 4], PRIM_INT__d_s_p_s[n * 18 + 14]);
860 PRIM_INT__d_s_p_s[n * 18 + 14] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__d_s_p_s[n * 18 + 14]);
861
862 PRIM_INT__d_s_p_s[n * 18 + 15] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 5]);
863 PRIM_INT__d_s_p_s[n * 18 + 15] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 5], PRIM_INT__d_s_p_s[n * 18 + 15]);
864
865 PRIM_INT__d_s_p_s[n * 18 + 16] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 5]);
866 PRIM_INT__d_s_p_s[n * 18 + 16] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 5], PRIM_INT__d_s_p_s[n * 18 + 16]);
867
868 PRIM_INT__d_s_p_s[n * 18 + 17] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 5]);
869 PRIM_INT__d_s_p_s[n * 18 + 17] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 5], PRIM_INT__d_s_p_s[n * 18 + 17]);
870 PRIM_INT__d_s_p_s[n * 18 + 17] = SIMINT_FMADD( vrr_const_2_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__d_s_p_s[n * 18 + 17]);
871
872 }
873
874
875 VRR_K_f_s_d_s(
876 PRIM_INT__f_s_d_s,
877 PRIM_INT__f_s_p_s,
878 PRIM_INT__f_s_s_s,
879 PRIM_INT__d_s_p_s,
880 Q_PA,
881 a_over_q,
882 aoq_PQ,
883 one_over_2pq,
884 one_over_2q,
885 9);
886
887
888 ostei_general_vrr_K(4, 0, 3, 0, 8,
889 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
890 PRIM_INT__g_s_d_s, PRIM_INT__g_s_p_s, NULL, PRIM_INT__f_s_d_s, NULL, PRIM_INT__g_s_f_s);
891
892
893 ostei_general_vrr_K(5, 0, 4, 0, 7,
894 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
895 PRIM_INT__h_s_f_s, PRIM_INT__h_s_d_s, NULL, PRIM_INT__g_s_f_s, NULL, PRIM_INT__h_s_g_s);
896
897
898 ostei_general_vrr_K(6, 0, 5, 0, 6,
899 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
900 PRIM_INT__i_s_g_s, PRIM_INT__i_s_f_s, NULL, PRIM_INT__h_s_g_s, NULL, PRIM_INT__i_s_h_s);
901
902
903 ostei_general_vrr_K(7, 0, 6, 0, 5,
904 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
905 PRIM_INT__k_s_h_s, PRIM_INT__k_s_g_s, NULL, PRIM_INT__i_s_h_s, NULL, PRIM_INT__k_s_i_s);
906
907
908 ostei_general_vrr1_I(8, 15,
909 one_over_2p, a_over_p, aop_PQ, P_PA,
910 PRIM_INT__k_s_s_s, PRIM_INT__i_s_s_s, PRIM_INT__l_s_s_s);
911
912
913 ostei_general_vrr_K(8, 0, 1, 0, 10,
914 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
915 PRIM_INT__l_s_s_s, NULL, NULL, PRIM_INT__k_s_s_s, NULL, PRIM_INT__l_s_p_s);
916
917
918 ostei_general_vrr_K(8, 0, 2, 0, 9,
919 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
920 PRIM_INT__l_s_p_s, PRIM_INT__l_s_s_s, NULL, PRIM_INT__k_s_p_s, NULL, PRIM_INT__l_s_d_s);
921
922
923 ostei_general_vrr_K(8, 0, 3, 0, 8,
924 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
925 PRIM_INT__l_s_d_s, PRIM_INT__l_s_p_s, NULL, PRIM_INT__k_s_d_s, NULL, PRIM_INT__l_s_f_s);
926
927
928 ostei_general_vrr_K(8, 0, 4, 0, 7,
929 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
930 PRIM_INT__l_s_f_s, PRIM_INT__l_s_d_s, NULL, PRIM_INT__k_s_f_s, NULL, PRIM_INT__l_s_g_s);
931
932
933 ostei_general_vrr_K(8, 0, 5, 0, 6,
934 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
935 PRIM_INT__l_s_g_s, PRIM_INT__l_s_f_s, NULL, PRIM_INT__k_s_g_s, NULL, PRIM_INT__l_s_h_s);
936
937
938
939 // Forming PRIM_INT__p_s_p_s[10 * 9];
940 for(n = 0; n < 10; ++n) // loop over orders of auxiliary function
941 {
942
943 PRIM_INT__p_s_p_s[n * 9 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_s_s[n * 3 + 0]);
944 PRIM_INT__p_s_p_s[n * 9 + 0] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_p_s[n * 9 + 0]);
945 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]);
946
947 PRIM_INT__p_s_p_s[n * 9 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_s_s[n * 3 + 0]);
948 PRIM_INT__p_s_p_s[n * 9 + 1] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_p_s[n * 9 + 1]);
949
950 PRIM_INT__p_s_p_s[n * 9 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_s_s[n * 3 + 0]);
951 PRIM_INT__p_s_p_s[n * 9 + 2] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_p_s[n * 9 + 2]);
952
953 PRIM_INT__p_s_p_s[n * 9 + 3] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_s_s[n * 3 + 1]);
954 PRIM_INT__p_s_p_s[n * 9 + 3] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_p_s[n * 9 + 3]);
955
956 PRIM_INT__p_s_p_s[n * 9 + 4] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_s_s[n * 3 + 1]);
957 PRIM_INT__p_s_p_s[n * 9 + 4] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_p_s[n * 9 + 4]);
958 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]);
959
960 PRIM_INT__p_s_p_s[n * 9 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_s_s[n * 3 + 1]);
961 PRIM_INT__p_s_p_s[n * 9 + 5] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_p_s[n * 9 + 5]);
962
963 PRIM_INT__p_s_p_s[n * 9 + 6] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_s_s[n * 3 + 2]);
964 PRIM_INT__p_s_p_s[n * 9 + 6] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_p_s[n * 9 + 6]);
965
966 PRIM_INT__p_s_p_s[n * 9 + 7] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_s_s[n * 3 + 2]);
967 PRIM_INT__p_s_p_s[n * 9 + 7] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_p_s[n * 9 + 7]);
968
969 PRIM_INT__p_s_p_s[n * 9 + 8] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_s_s[n * 3 + 2]);
970 PRIM_INT__p_s_p_s[n * 9 + 8] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_p_s[n * 9 + 8]);
971 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]);
972
973 }
974
975
976 VRR_K_d_s_d_s(
977 PRIM_INT__d_s_d_s,
978 PRIM_INT__d_s_p_s,
979 PRIM_INT__d_s_s_s,
980 PRIM_INT__p_s_p_s,
981 Q_PA,
982 a_over_q,
983 aoq_PQ,
984 one_over_2pq,
985 one_over_2q,
986 9);
987
988
989 ostei_general_vrr_K(3, 0, 3, 0, 8,
990 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
991 PRIM_INT__f_s_d_s, PRIM_INT__f_s_p_s, NULL, PRIM_INT__d_s_d_s, NULL, PRIM_INT__f_s_f_s);
992
993
994 ostei_general_vrr_K(4, 0, 4, 0, 7,
995 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
996 PRIM_INT__g_s_f_s, PRIM_INT__g_s_d_s, NULL, PRIM_INT__f_s_f_s, NULL, PRIM_INT__g_s_g_s);
997
998
999 ostei_general_vrr_K(5, 0, 5, 0, 6,
1000 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1001 PRIM_INT__h_s_g_s, PRIM_INT__h_s_f_s, NULL, PRIM_INT__g_s_g_s, NULL, PRIM_INT__h_s_h_s);
1002
1003
1004 ostei_general_vrr_K(6, 0, 6, 0, 5,
1005 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1006 PRIM_INT__i_s_h_s, PRIM_INT__i_s_g_s, NULL, PRIM_INT__h_s_h_s, NULL, PRIM_INT__i_s_i_s);
1007
1008
1009 ostei_general_vrr_K(7, 0, 7, 0, 4,
1010 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1011 PRIM_INT__k_s_i_s, PRIM_INT__k_s_h_s, NULL, PRIM_INT__i_s_i_s, NULL, PRIM_INT__k_s_k_s);
1012
1013
1014 ostei_general_vrr_K(8, 0, 6, 0, 5,
1015 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1016 PRIM_INT__l_s_h_s, PRIM_INT__l_s_g_s, NULL, PRIM_INT__k_s_h_s, NULL, PRIM_INT__l_s_i_s);
1017
1018
1019 ostei_general_vrr1_I(9, 14,
1020 one_over_2p, a_over_p, aop_PQ, P_PA,
1021 PRIM_INT__l_s_s_s, PRIM_INT__k_s_s_s, PRIM_INT__m_s_s_s);
1022
1023
1024 ostei_general_vrr_K(9, 0, 1, 0, 10,
1025 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1026 PRIM_INT__m_s_s_s, NULL, NULL, PRIM_INT__l_s_s_s, NULL, PRIM_INT__m_s_p_s);
1027
1028
1029 ostei_general_vrr_K(9, 0, 2, 0, 9,
1030 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1031 PRIM_INT__m_s_p_s, PRIM_INT__m_s_s_s, NULL, PRIM_INT__l_s_p_s, NULL, PRIM_INT__m_s_d_s);
1032
1033
1034 ostei_general_vrr_K(9, 0, 3, 0, 8,
1035 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1036 PRIM_INT__m_s_d_s, PRIM_INT__m_s_p_s, NULL, PRIM_INT__l_s_d_s, NULL, PRIM_INT__m_s_f_s);
1037
1038
1039 ostei_general_vrr_K(9, 0, 4, 0, 7,
1040 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1041 PRIM_INT__m_s_f_s, PRIM_INT__m_s_d_s, NULL, PRIM_INT__l_s_f_s, NULL, PRIM_INT__m_s_g_s);
1042
1043
1044 ostei_general_vrr_K(9, 0, 5, 0, 6,
1045 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1046 PRIM_INT__m_s_g_s, PRIM_INT__m_s_f_s, NULL, PRIM_INT__l_s_g_s, NULL, PRIM_INT__m_s_h_s);
1047
1048
1049
1050 // Forming PRIM_INT__s_s_p_s[10 * 3];
1051 for(n = 0; n < 10; ++n) // loop over orders of auxiliary function
1052 {
1053
1054 PRIM_INT__s_s_p_s[n * 3 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_s_s[n * 1 + 0]);
1055 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]);
1056
1057 PRIM_INT__s_s_p_s[n * 3 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_s_s[n * 1 + 0]);
1058 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]);
1059
1060 PRIM_INT__s_s_p_s[n * 3 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_s_s[n * 1 + 0]);
1061 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]);
1062
1063 }
1064
1065
1066
1067 // Forming PRIM_INT__p_s_d_s[9 * 18];
1068 for(n = 0; n < 9; ++n) // loop over orders of auxiliary function
1069 {
1070
1071 PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_p_s[n * 9 + 0]);
1072 PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_p_s[(n+1) * 9 + 0], PRIM_INT__p_s_d_s[n * 18 + 0]);
1073 PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_s_s[n * 3 + 0]), PRIM_INT__p_s_d_s[n * 18 + 0]);
1074 PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__p_s_d_s[n * 18 + 0]);
1075
1076 PRIM_INT__p_s_d_s[n * 18 + 3] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_p_s[n * 9 + 1]);
1077 PRIM_INT__p_s_d_s[n * 18 + 3] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_p_s[(n+1) * 9 + 1], PRIM_INT__p_s_d_s[n * 18 + 3]);
1078 PRIM_INT__p_s_d_s[n * 18 + 3] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_s_s[n * 3 + 0]), PRIM_INT__p_s_d_s[n * 18 + 3]);
1079
1080 PRIM_INT__p_s_d_s[n * 18 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_p_s[n * 9 + 2]);
1081 PRIM_INT__p_s_d_s[n * 18 + 5] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_p_s[(n+1) * 9 + 2], PRIM_INT__p_s_d_s[n * 18 + 5]);
1082 PRIM_INT__p_s_d_s[n * 18 + 5] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_s_s[n * 3 + 0]), PRIM_INT__p_s_d_s[n * 18 + 5]);
1083
1084 PRIM_INT__p_s_d_s[n * 18 + 6] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_p_s[n * 9 + 3]);
1085 PRIM_INT__p_s_d_s[n * 18 + 6] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_p_s[(n+1) * 9 + 3], PRIM_INT__p_s_d_s[n * 18 + 6]);
1086 PRIM_INT__p_s_d_s[n * 18 + 6] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_s_s[n * 3 + 1]), PRIM_INT__p_s_d_s[n * 18 + 6]);
1087
1088 PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_p_s[n * 9 + 4]);
1089 PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_p_s[(n+1) * 9 + 4], PRIM_INT__p_s_d_s[n * 18 + 9]);
1090 PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_s_s[n * 3 + 1]), PRIM_INT__p_s_d_s[n * 18 + 9]);
1091 PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__p_s_d_s[n * 18 + 9]);
1092
1093 PRIM_INT__p_s_d_s[n * 18 + 11] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_p_s[n * 9 + 5]);
1094 PRIM_INT__p_s_d_s[n * 18 + 11] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_p_s[(n+1) * 9 + 5], PRIM_INT__p_s_d_s[n * 18 + 11]);
1095 PRIM_INT__p_s_d_s[n * 18 + 11] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_s_s[n * 3 + 1]), PRIM_INT__p_s_d_s[n * 18 + 11]);
1096
1097 PRIM_INT__p_s_d_s[n * 18 + 12] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_p_s[n * 9 + 6]);
1098 PRIM_INT__p_s_d_s[n * 18 + 12] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_p_s[(n+1) * 9 + 6], PRIM_INT__p_s_d_s[n * 18 + 12]);
1099 PRIM_INT__p_s_d_s[n * 18 + 12] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_s_s[n * 3 + 2]), PRIM_INT__p_s_d_s[n * 18 + 12]);
1100
1101 PRIM_INT__p_s_d_s[n * 18 + 15] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_p_s[n * 9 + 7]);
1102 PRIM_INT__p_s_d_s[n * 18 + 15] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_p_s[(n+1) * 9 + 7], PRIM_INT__p_s_d_s[n * 18 + 15]);
1103 PRIM_INT__p_s_d_s[n * 18 + 15] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_s_s[n * 3 + 2]), PRIM_INT__p_s_d_s[n * 18 + 15]);
1104
1105 PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_p_s[n * 9 + 8]);
1106 PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_p_s[(n+1) * 9 + 8], PRIM_INT__p_s_d_s[n * 18 + 17]);
1107 PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_s_s[n * 3 + 2]), PRIM_INT__p_s_d_s[n * 18 + 17]);
1108 PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 2], PRIM_INT__p_s_d_s[n * 18 + 17]);
1109
1110 }
1111
1112
1113 VRR_K_d_s_f_s(
1114 PRIM_INT__d_s_f_s,
1115 PRIM_INT__d_s_d_s,
1116 PRIM_INT__d_s_p_s,
1117 PRIM_INT__p_s_d_s,
1118 Q_PA,
1119 a_over_q,
1120 aoq_PQ,
1121 one_over_2pq,
1122 one_over_2q,
1123 8);
1124
1125
1126 ostei_general_vrr_K(3, 0, 4, 0, 7,
1127 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1128 PRIM_INT__f_s_f_s, PRIM_INT__f_s_d_s, NULL, PRIM_INT__d_s_f_s, NULL, PRIM_INT__f_s_g_s);
1129
1130
1131 ostei_general_vrr_K(4, 0, 5, 0, 6,
1132 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1133 PRIM_INT__g_s_g_s, PRIM_INT__g_s_f_s, NULL, PRIM_INT__f_s_g_s, NULL, PRIM_INT__g_s_h_s);
1134
1135
1136 ostei_general_vrr_K(5, 0, 6, 0, 5,
1137 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1138 PRIM_INT__h_s_h_s, PRIM_INT__h_s_g_s, NULL, PRIM_INT__g_s_h_s, NULL, PRIM_INT__h_s_i_s);
1139
1140
1141 ostei_general_vrr_K(6, 0, 7, 0, 4,
1142 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1143 PRIM_INT__i_s_i_s, PRIM_INT__i_s_h_s, NULL, PRIM_INT__h_s_i_s, NULL, PRIM_INT__i_s_k_s);
1144
1145
1146 ostei_general_vrr_K(7, 0, 8, 0, 3,
1147 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1148 PRIM_INT__k_s_k_s, PRIM_INT__k_s_i_s, NULL, PRIM_INT__i_s_k_s, NULL, PRIM_INT__k_s_l_s);
1149
1150
1151 ostei_general_vrr_K(8, 0, 7, 0, 4,
1152 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1153 PRIM_INT__l_s_i_s, PRIM_INT__l_s_h_s, NULL, PRIM_INT__k_s_i_s, NULL, PRIM_INT__l_s_k_s);
1154
1155
1156 ostei_general_vrr_K(9, 0, 6, 0, 5,
1157 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1158 PRIM_INT__m_s_h_s, PRIM_INT__m_s_g_s, NULL, PRIM_INT__l_s_h_s, NULL, PRIM_INT__m_s_i_s);
1159
1160
1161 ostei_general_vrr1_I(10, 13,
1162 one_over_2p, a_over_p, aop_PQ, P_PA,
1163 PRIM_INT__m_s_s_s, PRIM_INT__l_s_s_s, PRIM_INT__n_s_s_s);
1164
1165
1166 ostei_general_vrr_K(10, 0, 1, 0, 10,
1167 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1168 PRIM_INT__n_s_s_s, NULL, NULL, PRIM_INT__m_s_s_s, NULL, PRIM_INT__n_s_p_s);
1169
1170
1171 ostei_general_vrr_K(10, 0, 2, 0, 9,
1172 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1173 PRIM_INT__n_s_p_s, PRIM_INT__n_s_s_s, NULL, PRIM_INT__m_s_p_s, NULL, PRIM_INT__n_s_d_s);
1174
1175
1176 ostei_general_vrr_K(10, 0, 3, 0, 8,
1177 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1178 PRIM_INT__n_s_d_s, PRIM_INT__n_s_p_s, NULL, PRIM_INT__m_s_d_s, NULL, PRIM_INT__n_s_f_s);
1179
1180
1181 ostei_general_vrr_K(10, 0, 4, 0, 7,
1182 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1183 PRIM_INT__n_s_f_s, PRIM_INT__n_s_d_s, NULL, PRIM_INT__m_s_f_s, NULL, PRIM_INT__n_s_g_s);
1184
1185
1186 ostei_general_vrr_K(10, 0, 5, 0, 6,
1187 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1188 PRIM_INT__n_s_g_s, PRIM_INT__n_s_f_s, NULL, PRIM_INT__m_s_g_s, NULL, PRIM_INT__n_s_h_s);
1189
1190
1191
1192 // Forming PRIM_INT__s_s_d_s[9 * 6];
1193 for(n = 0; n < 9; ++n) // loop over orders of auxiliary function
1194 {
1195
1196 PRIM_INT__s_s_d_s[n * 6 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_p_s[n * 3 + 0]);
1197 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]);
1198 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]);
1199
1200 PRIM_INT__s_s_d_s[n * 6 + 3] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_p_s[n * 3 + 1]);
1201 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]);
1202 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]);
1203
1204 PRIM_INT__s_s_d_s[n * 6 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_p_s[n * 3 + 2]);
1205 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]);
1206 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]);
1207
1208 }
1209
1210
1211 VRR_K_p_s_f_s(
1212 PRIM_INT__p_s_f_s,
1213 PRIM_INT__p_s_d_s,
1214 PRIM_INT__p_s_p_s,
1215 PRIM_INT__s_s_d_s,
1216 Q_PA,
1217 a_over_q,
1218 aoq_PQ,
1219 one_over_2pq,
1220 one_over_2q,
1221 8);
1222
1223
1224 ostei_general_vrr_K(2, 0, 4, 0, 7,
1225 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1226 PRIM_INT__d_s_f_s, PRIM_INT__d_s_d_s, NULL, PRIM_INT__p_s_f_s, NULL, PRIM_INT__d_s_g_s);
1227
1228
1229 ostei_general_vrr_K(3, 0, 5, 0, 6,
1230 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1231 PRIM_INT__f_s_g_s, PRIM_INT__f_s_f_s, NULL, PRIM_INT__d_s_g_s, NULL, PRIM_INT__f_s_h_s);
1232
1233
1234 ostei_general_vrr_K(4, 0, 6, 0, 5,
1235 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1236 PRIM_INT__g_s_h_s, PRIM_INT__g_s_g_s, NULL, PRIM_INT__f_s_h_s, NULL, PRIM_INT__g_s_i_s);
1237
1238
1239 ostei_general_vrr_K(5, 0, 7, 0, 4,
1240 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1241 PRIM_INT__h_s_i_s, PRIM_INT__h_s_h_s, NULL, PRIM_INT__g_s_i_s, NULL, PRIM_INT__h_s_k_s);
1242
1243
1244 ostei_general_vrr_K(6, 0, 8, 0, 3,
1245 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1246 PRIM_INT__i_s_k_s, PRIM_INT__i_s_i_s, NULL, PRIM_INT__h_s_k_s, NULL, PRIM_INT__i_s_l_s);
1247
1248
1249 ostei_general_vrr_K(7, 0, 9, 0, 2,
1250 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1251 PRIM_INT__k_s_l_s, PRIM_INT__k_s_k_s, NULL, PRIM_INT__i_s_l_s, NULL, PRIM_INT__k_s_m_s);
1252
1253
1254 ostei_general_vrr_K(8, 0, 8, 0, 3,
1255 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1256 PRIM_INT__l_s_k_s, PRIM_INT__l_s_i_s, NULL, PRIM_INT__k_s_k_s, NULL, PRIM_INT__l_s_l_s);
1257
1258
1259 ostei_general_vrr_K(9, 0, 7, 0, 4,
1260 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1261 PRIM_INT__m_s_i_s, PRIM_INT__m_s_h_s, NULL, PRIM_INT__l_s_i_s, NULL, PRIM_INT__m_s_k_s);
1262
1263
1264 ostei_general_vrr_K(10, 0, 6, 0, 5,
1265 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1266 PRIM_INT__n_s_h_s, PRIM_INT__n_s_g_s, NULL, PRIM_INT__m_s_h_s, NULL, PRIM_INT__n_s_i_s);
1267
1268
1269 ostei_general_vrr1_I(11, 12,
1270 one_over_2p, a_over_p, aop_PQ, P_PA,
1271 PRIM_INT__n_s_s_s, PRIM_INT__m_s_s_s, PRIM_INT__o_s_s_s);
1272
1273
1274 ostei_general_vrr_K(11, 0, 1, 0, 10,
1275 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1276 PRIM_INT__o_s_s_s, NULL, NULL, PRIM_INT__n_s_s_s, NULL, PRIM_INT__o_s_p_s);
1277
1278
1279 ostei_general_vrr_K(11, 0, 2, 0, 9,
1280 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1281 PRIM_INT__o_s_p_s, PRIM_INT__o_s_s_s, NULL, PRIM_INT__n_s_p_s, NULL, PRIM_INT__o_s_d_s);
1282
1283
1284 ostei_general_vrr_K(11, 0, 3, 0, 8,
1285 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1286 PRIM_INT__o_s_d_s, PRIM_INT__o_s_p_s, NULL, PRIM_INT__n_s_d_s, NULL, PRIM_INT__o_s_f_s);
1287
1288
1289 ostei_general_vrr_K(11, 0, 4, 0, 7,
1290 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1291 PRIM_INT__o_s_f_s, PRIM_INT__o_s_d_s, NULL, PRIM_INT__n_s_f_s, NULL, PRIM_INT__o_s_g_s);
1292
1293
1294 ostei_general_vrr_K(11, 0, 5, 0, 6,
1295 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1296 PRIM_INT__o_s_g_s, PRIM_INT__o_s_f_s, NULL, PRIM_INT__n_s_g_s, NULL, PRIM_INT__o_s_h_s);
1297
1298
1299
1300 // Forming PRIM_INT__s_s_f_s[8 * 10];
1301 for(n = 0; n < 8; ++n) // loop over orders of auxiliary function
1302 {
1303
1304 PRIM_INT__s_s_f_s[n * 10 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_d_s[n * 6 + 0]);
1305 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]);
1306 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]);
1307
1308 PRIM_INT__s_s_f_s[n * 10 + 6] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_d_s[n * 6 + 3]);
1309 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]);
1310 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]);
1311
1312 PRIM_INT__s_s_f_s[n * 10 + 9] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_d_s[n * 6 + 5]);
1313 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]);
1314 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]);
1315
1316 }
1317
1318
1319 VRR_K_p_s_g_s(
1320 PRIM_INT__p_s_g_s,
1321 PRIM_INT__p_s_f_s,
1322 PRIM_INT__p_s_d_s,
1323 PRIM_INT__s_s_f_s,
1324 Q_PA,
1325 a_over_q,
1326 aoq_PQ,
1327 one_over_2pq,
1328 one_over_2q,
1329 7);
1330
1331
1332 ostei_general_vrr_K(2, 0, 5, 0, 6,
1333 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1334 PRIM_INT__d_s_g_s, PRIM_INT__d_s_f_s, NULL, PRIM_INT__p_s_g_s, NULL, PRIM_INT__d_s_h_s);
1335
1336
1337 ostei_general_vrr_K(3, 0, 6, 0, 5,
1338 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1339 PRIM_INT__f_s_h_s, PRIM_INT__f_s_g_s, NULL, PRIM_INT__d_s_h_s, NULL, PRIM_INT__f_s_i_s);
1340
1341
1342 ostei_general_vrr_K(4, 0, 7, 0, 4,
1343 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1344 PRIM_INT__g_s_i_s, PRIM_INT__g_s_h_s, NULL, PRIM_INT__f_s_i_s, NULL, PRIM_INT__g_s_k_s);
1345
1346
1347 ostei_general_vrr_K(5, 0, 8, 0, 3,
1348 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1349 PRIM_INT__h_s_k_s, PRIM_INT__h_s_i_s, NULL, PRIM_INT__g_s_k_s, NULL, PRIM_INT__h_s_l_s);
1350
1351
1352 ostei_general_vrr_K(6, 0, 9, 0, 2,
1353 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1354 PRIM_INT__i_s_l_s, PRIM_INT__i_s_k_s, NULL, PRIM_INT__h_s_l_s, NULL, PRIM_INT__i_s_m_s);
1355
1356
1357 ostei_general_vrr_K(7, 0, 10, 0, 1,
1358 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1359 PRIM_INT__k_s_m_s, PRIM_INT__k_s_l_s, NULL, PRIM_INT__i_s_m_s, NULL, PRIM_INT__k_s_n_s);
1360
1361
1362 ostei_general_vrr_K(8, 0, 9, 0, 2,
1363 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1364 PRIM_INT__l_s_l_s, PRIM_INT__l_s_k_s, NULL, PRIM_INT__k_s_l_s, NULL, PRIM_INT__l_s_m_s);
1365
1366
1367 ostei_general_vrr_K(9, 0, 8, 0, 3,
1368 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1369 PRIM_INT__m_s_k_s, PRIM_INT__m_s_i_s, NULL, PRIM_INT__l_s_k_s, NULL, PRIM_INT__m_s_l_s);
1370
1371
1372 ostei_general_vrr_K(10, 0, 7, 0, 4,
1373 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1374 PRIM_INT__n_s_i_s, PRIM_INT__n_s_h_s, NULL, PRIM_INT__m_s_i_s, NULL, PRIM_INT__n_s_k_s);
1375
1376
1377 ostei_general_vrr_K(11, 0, 6, 0, 5,
1378 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1379 PRIM_INT__o_s_h_s, PRIM_INT__o_s_g_s, NULL, PRIM_INT__n_s_h_s, NULL, PRIM_INT__o_s_i_s);
1380
1381
1382 ostei_general_vrr1_I(12, 11,
1383 one_over_2p, a_over_p, aop_PQ, P_PA,
1384 PRIM_INT__o_s_s_s, PRIM_INT__n_s_s_s, PRIM_INT__q_s_s_s);
1385
1386
1387 ostei_general_vrr_K(12, 0, 1, 0, 10,
1388 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1389 PRIM_INT__q_s_s_s, NULL, NULL, PRIM_INT__o_s_s_s, NULL, PRIM_INT__q_s_p_s);
1390
1391
1392 ostei_general_vrr_K(12, 0, 2, 0, 9,
1393 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1394 PRIM_INT__q_s_p_s, PRIM_INT__q_s_s_s, NULL, PRIM_INT__o_s_p_s, NULL, PRIM_INT__q_s_d_s);
1395
1396
1397 ostei_general_vrr_K(12, 0, 3, 0, 8,
1398 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1399 PRIM_INT__q_s_d_s, PRIM_INT__q_s_p_s, NULL, PRIM_INT__o_s_d_s, NULL, PRIM_INT__q_s_f_s);
1400
1401
1402 ostei_general_vrr_K(12, 0, 4, 0, 7,
1403 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1404 PRIM_INT__q_s_f_s, PRIM_INT__q_s_d_s, NULL, PRIM_INT__o_s_f_s, NULL, PRIM_INT__q_s_g_s);
1405
1406
1407 ostei_general_vrr_K(12, 0, 5, 0, 6,
1408 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1409 PRIM_INT__q_s_g_s, PRIM_INT__q_s_f_s, NULL, PRIM_INT__o_s_g_s, NULL, PRIM_INT__q_s_h_s);
1410
1411
1412 ostei_general_vrr_K(8, 0, 10, 0, 1,
1413 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1414 PRIM_INT__l_s_m_s, PRIM_INT__l_s_l_s, NULL, PRIM_INT__k_s_m_s, NULL, PRIM_INT__l_s_n_s);
1415
1416
1417 ostei_general_vrr_K(9, 0, 9, 0, 2,
1418 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1419 PRIM_INT__m_s_l_s, PRIM_INT__m_s_k_s, NULL, PRIM_INT__l_s_l_s, NULL, PRIM_INT__m_s_m_s);
1420
1421
1422 ostei_general_vrr_K(10, 0, 8, 0, 3,
1423 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1424 PRIM_INT__n_s_k_s, PRIM_INT__n_s_i_s, NULL, PRIM_INT__m_s_k_s, NULL, PRIM_INT__n_s_l_s);
1425
1426
1427 ostei_general_vrr_K(11, 0, 7, 0, 4,
1428 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1429 PRIM_INT__o_s_i_s, PRIM_INT__o_s_h_s, NULL, PRIM_INT__n_s_i_s, NULL, PRIM_INT__o_s_k_s);
1430
1431
1432 ostei_general_vrr_K(12, 0, 6, 0, 5,
1433 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1434 PRIM_INT__q_s_h_s, PRIM_INT__q_s_g_s, NULL, PRIM_INT__o_s_h_s, NULL, PRIM_INT__q_s_i_s);
1435
1436
1437 ostei_general_vrr_K(9, 0, 10, 0, 1,
1438 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1439 PRIM_INT__m_s_m_s, PRIM_INT__m_s_l_s, NULL, PRIM_INT__l_s_m_s, NULL, PRIM_INT__m_s_n_s);
1440
1441
1442 ostei_general_vrr_K(10, 0, 9, 0, 2,
1443 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1444 PRIM_INT__n_s_l_s, PRIM_INT__n_s_k_s, NULL, PRIM_INT__m_s_l_s, NULL, PRIM_INT__n_s_m_s);
1445
1446
1447 ostei_general_vrr_K(11, 0, 8, 0, 3,
1448 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1449 PRIM_INT__o_s_k_s, PRIM_INT__o_s_i_s, NULL, PRIM_INT__n_s_k_s, NULL, PRIM_INT__o_s_l_s);
1450
1451
1452 ostei_general_vrr_K(12, 0, 7, 0, 4,
1453 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1454 PRIM_INT__q_s_i_s, PRIM_INT__q_s_h_s, NULL, PRIM_INT__o_s_i_s, NULL, PRIM_INT__q_s_k_s);
1455
1456
1457 ostei_general_vrr_K(10, 0, 10, 0, 1,
1458 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1459 PRIM_INT__n_s_m_s, PRIM_INT__n_s_l_s, NULL, PRIM_INT__m_s_m_s, NULL, PRIM_INT__n_s_n_s);
1460
1461
1462 ostei_general_vrr_K(11, 0, 9, 0, 2,
1463 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1464 PRIM_INT__o_s_l_s, PRIM_INT__o_s_k_s, NULL, PRIM_INT__n_s_l_s, NULL, PRIM_INT__o_s_m_s);
1465
1466
1467 ostei_general_vrr_K(12, 0, 8, 0, 3,
1468 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1469 PRIM_INT__q_s_k_s, PRIM_INT__q_s_i_s, NULL, PRIM_INT__o_s_k_s, NULL, PRIM_INT__q_s_l_s);
1470
1471
1472 ostei_general_vrr_K(11, 0, 10, 0, 1,
1473 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1474 PRIM_INT__o_s_m_s, PRIM_INT__o_s_l_s, NULL, PRIM_INT__n_s_m_s, NULL, PRIM_INT__o_s_n_s);
1475
1476
1477 ostei_general_vrr_K(12, 0, 9, 0, 2,
1478 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1479 PRIM_INT__q_s_l_s, PRIM_INT__q_s_k_s, NULL, PRIM_INT__o_s_l_s, NULL, PRIM_INT__q_s_m_s);
1480
1481
1482 ostei_general_vrr_K(12, 0, 10, 0, 1,
1483 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1484 PRIM_INT__q_s_m_s, PRIM_INT__q_s_l_s, NULL, PRIM_INT__o_s_m_s, NULL, PRIM_INT__q_s_n_s);
1485
1486
1487
1488
1489 ////////////////////////////////////
1490 // Accumulate contracted integrals
1491 ////////////////////////////////////
1492 if(lastoffset == 0)
1493 {
1494 contract_all(756, PRIM_INT__k_s_h_s, PRIM_PTR_INT__k_s_h_s);
1495 contract_all(1008, PRIM_INT__k_s_i_s, PRIM_PTR_INT__k_s_i_s);
1496 contract_all(1296, PRIM_INT__k_s_k_s, PRIM_PTR_INT__k_s_k_s);
1497 contract_all(1620, PRIM_INT__k_s_l_s, PRIM_PTR_INT__k_s_l_s);
1498 contract_all(1980, PRIM_INT__k_s_m_s, PRIM_PTR_INT__k_s_m_s);
1499 contract_all(2376, PRIM_INT__k_s_n_s, PRIM_PTR_INT__k_s_n_s);
1500 contract_all(945, PRIM_INT__l_s_h_s, PRIM_PTR_INT__l_s_h_s);
1501 contract_all(1260, PRIM_INT__l_s_i_s, PRIM_PTR_INT__l_s_i_s);
1502 contract_all(1620, PRIM_INT__l_s_k_s, PRIM_PTR_INT__l_s_k_s);
1503 contract_all(2025, PRIM_INT__l_s_l_s, PRIM_PTR_INT__l_s_l_s);
1504 contract_all(2475, PRIM_INT__l_s_m_s, PRIM_PTR_INT__l_s_m_s);
1505 contract_all(2970, PRIM_INT__l_s_n_s, PRIM_PTR_INT__l_s_n_s);
1506 contract_all(1155, PRIM_INT__m_s_h_s, PRIM_PTR_INT__m_s_h_s);
1507 contract_all(1540, PRIM_INT__m_s_i_s, PRIM_PTR_INT__m_s_i_s);
1508 contract_all(1980, PRIM_INT__m_s_k_s, PRIM_PTR_INT__m_s_k_s);
1509 contract_all(2475, PRIM_INT__m_s_l_s, PRIM_PTR_INT__m_s_l_s);
1510 contract_all(3025, PRIM_INT__m_s_m_s, PRIM_PTR_INT__m_s_m_s);
1511 contract_all(3630, PRIM_INT__m_s_n_s, PRIM_PTR_INT__m_s_n_s);
1512 contract_all(1386, PRIM_INT__n_s_h_s, PRIM_PTR_INT__n_s_h_s);
1513 contract_all(1848, PRIM_INT__n_s_i_s, PRIM_PTR_INT__n_s_i_s);
1514 contract_all(2376, PRIM_INT__n_s_k_s, PRIM_PTR_INT__n_s_k_s);
1515 contract_all(2970, PRIM_INT__n_s_l_s, PRIM_PTR_INT__n_s_l_s);
1516 contract_all(3630, PRIM_INT__n_s_m_s, PRIM_PTR_INT__n_s_m_s);
1517 contract_all(4356, PRIM_INT__n_s_n_s, PRIM_PTR_INT__n_s_n_s);
1518 contract_all(1638, PRIM_INT__o_s_h_s, PRIM_PTR_INT__o_s_h_s);
1519 contract_all(2184, PRIM_INT__o_s_i_s, PRIM_PTR_INT__o_s_i_s);
1520 contract_all(2808, PRIM_INT__o_s_k_s, PRIM_PTR_INT__o_s_k_s);
1521 contract_all(3510, PRIM_INT__o_s_l_s, PRIM_PTR_INT__o_s_l_s);
1522 contract_all(4290, PRIM_INT__o_s_m_s, PRIM_PTR_INT__o_s_m_s);
1523 contract_all(5148, PRIM_INT__o_s_n_s, PRIM_PTR_INT__o_s_n_s);
1524 contract_all(1911, PRIM_INT__q_s_h_s, PRIM_PTR_INT__q_s_h_s);
1525 contract_all(2548, PRIM_INT__q_s_i_s, PRIM_PTR_INT__q_s_i_s);
1526 contract_all(3276, PRIM_INT__q_s_k_s, PRIM_PTR_INT__q_s_k_s);
1527 contract_all(4095, PRIM_INT__q_s_l_s, PRIM_PTR_INT__q_s_l_s);
1528 contract_all(5005, PRIM_INT__q_s_m_s, PRIM_PTR_INT__q_s_m_s);
1529 contract_all(6006, PRIM_INT__q_s_n_s, PRIM_PTR_INT__q_s_n_s);
1530 }
1531 else
1532 {
1533 contract(756, shelloffsets, PRIM_INT__k_s_h_s, PRIM_PTR_INT__k_s_h_s);
1534 contract(1008, shelloffsets, PRIM_INT__k_s_i_s, PRIM_PTR_INT__k_s_i_s);
1535 contract(1296, shelloffsets, PRIM_INT__k_s_k_s, PRIM_PTR_INT__k_s_k_s);
1536 contract(1620, shelloffsets, PRIM_INT__k_s_l_s, PRIM_PTR_INT__k_s_l_s);
1537 contract(1980, shelloffsets, PRIM_INT__k_s_m_s, PRIM_PTR_INT__k_s_m_s);
1538 contract(2376, shelloffsets, PRIM_INT__k_s_n_s, PRIM_PTR_INT__k_s_n_s);
1539 contract(945, shelloffsets, PRIM_INT__l_s_h_s, PRIM_PTR_INT__l_s_h_s);
1540 contract(1260, shelloffsets, PRIM_INT__l_s_i_s, PRIM_PTR_INT__l_s_i_s);
1541 contract(1620, shelloffsets, PRIM_INT__l_s_k_s, PRIM_PTR_INT__l_s_k_s);
1542 contract(2025, shelloffsets, PRIM_INT__l_s_l_s, PRIM_PTR_INT__l_s_l_s);
1543 contract(2475, shelloffsets, PRIM_INT__l_s_m_s, PRIM_PTR_INT__l_s_m_s);
1544 contract(2970, shelloffsets, PRIM_INT__l_s_n_s, PRIM_PTR_INT__l_s_n_s);
1545 contract(1155, shelloffsets, PRIM_INT__m_s_h_s, PRIM_PTR_INT__m_s_h_s);
1546 contract(1540, shelloffsets, PRIM_INT__m_s_i_s, PRIM_PTR_INT__m_s_i_s);
1547 contract(1980, shelloffsets, PRIM_INT__m_s_k_s, PRIM_PTR_INT__m_s_k_s);
1548 contract(2475, shelloffsets, PRIM_INT__m_s_l_s, PRIM_PTR_INT__m_s_l_s);
1549 contract(3025, shelloffsets, PRIM_INT__m_s_m_s, PRIM_PTR_INT__m_s_m_s);
1550 contract(3630, shelloffsets, PRIM_INT__m_s_n_s, PRIM_PTR_INT__m_s_n_s);
1551 contract(1386, shelloffsets, PRIM_INT__n_s_h_s, PRIM_PTR_INT__n_s_h_s);
1552 contract(1848, shelloffsets, PRIM_INT__n_s_i_s, PRIM_PTR_INT__n_s_i_s);
1553 contract(2376, shelloffsets, PRIM_INT__n_s_k_s, PRIM_PTR_INT__n_s_k_s);
1554 contract(2970, shelloffsets, PRIM_INT__n_s_l_s, PRIM_PTR_INT__n_s_l_s);
1555 contract(3630, shelloffsets, PRIM_INT__n_s_m_s, PRIM_PTR_INT__n_s_m_s);
1556 contract(4356, shelloffsets, PRIM_INT__n_s_n_s, PRIM_PTR_INT__n_s_n_s);
1557 contract(1638, shelloffsets, PRIM_INT__o_s_h_s, PRIM_PTR_INT__o_s_h_s);
1558 contract(2184, shelloffsets, PRIM_INT__o_s_i_s, PRIM_PTR_INT__o_s_i_s);
1559 contract(2808, shelloffsets, PRIM_INT__o_s_k_s, PRIM_PTR_INT__o_s_k_s);
1560 contract(3510, shelloffsets, PRIM_INT__o_s_l_s, PRIM_PTR_INT__o_s_l_s);
1561 contract(4290, shelloffsets, PRIM_INT__o_s_m_s, PRIM_PTR_INT__o_s_m_s);
1562 contract(5148, shelloffsets, PRIM_INT__o_s_n_s, PRIM_PTR_INT__o_s_n_s);
1563 contract(1911, shelloffsets, PRIM_INT__q_s_h_s, PRIM_PTR_INT__q_s_h_s);
1564 contract(2548, shelloffsets, PRIM_INT__q_s_i_s, PRIM_PTR_INT__q_s_i_s);
1565 contract(3276, shelloffsets, PRIM_INT__q_s_k_s, PRIM_PTR_INT__q_s_k_s);
1566 contract(4095, shelloffsets, PRIM_INT__q_s_l_s, PRIM_PTR_INT__q_s_l_s);
1567 contract(5005, shelloffsets, PRIM_INT__q_s_m_s, PRIM_PTR_INT__q_s_m_s);
1568 contract(6006, shelloffsets, PRIM_INT__q_s_n_s, PRIM_PTR_INT__q_s_n_s);
1569 PRIM_PTR_INT__k_s_h_s += lastoffset*756;
1570 PRIM_PTR_INT__k_s_i_s += lastoffset*1008;
1571 PRIM_PTR_INT__k_s_k_s += lastoffset*1296;
1572 PRIM_PTR_INT__k_s_l_s += lastoffset*1620;
1573 PRIM_PTR_INT__k_s_m_s += lastoffset*1980;
1574 PRIM_PTR_INT__k_s_n_s += lastoffset*2376;
1575 PRIM_PTR_INT__l_s_h_s += lastoffset*945;
1576 PRIM_PTR_INT__l_s_i_s += lastoffset*1260;
1577 PRIM_PTR_INT__l_s_k_s += lastoffset*1620;
1578 PRIM_PTR_INT__l_s_l_s += lastoffset*2025;
1579 PRIM_PTR_INT__l_s_m_s += lastoffset*2475;
1580 PRIM_PTR_INT__l_s_n_s += lastoffset*2970;
1581 PRIM_PTR_INT__m_s_h_s += lastoffset*1155;
1582 PRIM_PTR_INT__m_s_i_s += lastoffset*1540;
1583 PRIM_PTR_INT__m_s_k_s += lastoffset*1980;
1584 PRIM_PTR_INT__m_s_l_s += lastoffset*2475;
1585 PRIM_PTR_INT__m_s_m_s += lastoffset*3025;
1586 PRIM_PTR_INT__m_s_n_s += lastoffset*3630;
1587 PRIM_PTR_INT__n_s_h_s += lastoffset*1386;
1588 PRIM_PTR_INT__n_s_i_s += lastoffset*1848;
1589 PRIM_PTR_INT__n_s_k_s += lastoffset*2376;
1590 PRIM_PTR_INT__n_s_l_s += lastoffset*2970;
1591 PRIM_PTR_INT__n_s_m_s += lastoffset*3630;
1592 PRIM_PTR_INT__n_s_n_s += lastoffset*4356;
1593 PRIM_PTR_INT__o_s_h_s += lastoffset*1638;
1594 PRIM_PTR_INT__o_s_i_s += lastoffset*2184;
1595 PRIM_PTR_INT__o_s_k_s += lastoffset*2808;
1596 PRIM_PTR_INT__o_s_l_s += lastoffset*3510;
1597 PRIM_PTR_INT__o_s_m_s += lastoffset*4290;
1598 PRIM_PTR_INT__o_s_n_s += lastoffset*5148;
1599 PRIM_PTR_INT__q_s_h_s += lastoffset*1911;
1600 PRIM_PTR_INT__q_s_i_s += lastoffset*2548;
1601 PRIM_PTR_INT__q_s_k_s += lastoffset*3276;
1602 PRIM_PTR_INT__q_s_l_s += lastoffset*4095;
1603 PRIM_PTR_INT__q_s_m_s += lastoffset*5005;
1604 PRIM_PTR_INT__q_s_n_s += lastoffset*6006;
1605 }
1606
1607 } // close loop over j
1608 } // close loop over i
1609
1610 //Advance to the next batch
1611 jstart = SIMINT_SIMD_ROUND(jend);
1612
1613 //////////////////////////////////////////////
1614 // Contracted integrals: Horizontal recurrance
1615 //////////////////////////////////////////////
1616
1617
1618 const double hAB[3] = { P.AB_x[ab], P.AB_y[ab], P.AB_z[ab] };
1619
1620
1621 for(abcd = 0; abcd < nshellbatch; ++abcd, ++real_abcd)
1622 {
1623 const double hCD[3] = { Q.AB_x[cd+abcd], Q.AB_y[cd+abcd], Q.AB_z[cd+abcd] };
1624
1625 // set up HRR pointers
1626 double const * restrict HRR_INT__k_s_h_s = INT__k_s_h_s + abcd * 756;
1627 double const * restrict HRR_INT__k_s_i_s = INT__k_s_i_s + abcd * 1008;
1628 double const * restrict HRR_INT__k_s_k_s = INT__k_s_k_s + abcd * 1296;
1629 double const * restrict HRR_INT__k_s_l_s = INT__k_s_l_s + abcd * 1620;
1630 double const * restrict HRR_INT__k_s_m_s = INT__k_s_m_s + abcd * 1980;
1631 double const * restrict HRR_INT__k_s_n_s = INT__k_s_n_s + abcd * 2376;
1632 double const * restrict HRR_INT__l_s_h_s = INT__l_s_h_s + abcd * 945;
1633 double const * restrict HRR_INT__l_s_i_s = INT__l_s_i_s + abcd * 1260;
1634 double const * restrict HRR_INT__l_s_k_s = INT__l_s_k_s + abcd * 1620;
1635 double const * restrict HRR_INT__l_s_l_s = INT__l_s_l_s + abcd * 2025;
1636 double const * restrict HRR_INT__l_s_m_s = INT__l_s_m_s + abcd * 2475;
1637 double const * restrict HRR_INT__l_s_n_s = INT__l_s_n_s + abcd * 2970;
1638 double const * restrict HRR_INT__m_s_h_s = INT__m_s_h_s + abcd * 1155;
1639 double const * restrict HRR_INT__m_s_i_s = INT__m_s_i_s + abcd * 1540;
1640 double const * restrict HRR_INT__m_s_k_s = INT__m_s_k_s + abcd * 1980;
1641 double const * restrict HRR_INT__m_s_l_s = INT__m_s_l_s + abcd * 2475;
1642 double const * restrict HRR_INT__m_s_m_s = INT__m_s_m_s + abcd * 3025;
1643 double const * restrict HRR_INT__m_s_n_s = INT__m_s_n_s + abcd * 3630;
1644 double const * restrict HRR_INT__n_s_h_s = INT__n_s_h_s + abcd * 1386;
1645 double const * restrict HRR_INT__n_s_i_s = INT__n_s_i_s + abcd * 1848;
1646 double const * restrict HRR_INT__n_s_k_s = INT__n_s_k_s + abcd * 2376;
1647 double const * restrict HRR_INT__n_s_l_s = INT__n_s_l_s + abcd * 2970;
1648 double const * restrict HRR_INT__n_s_m_s = INT__n_s_m_s + abcd * 3630;
1649 double const * restrict HRR_INT__n_s_n_s = INT__n_s_n_s + abcd * 4356;
1650 double const * restrict HRR_INT__o_s_h_s = INT__o_s_h_s + abcd * 1638;
1651 double const * restrict HRR_INT__o_s_i_s = INT__o_s_i_s + abcd * 2184;
1652 double const * restrict HRR_INT__o_s_k_s = INT__o_s_k_s + abcd * 2808;
1653 double const * restrict HRR_INT__o_s_l_s = INT__o_s_l_s + abcd * 3510;
1654 double const * restrict HRR_INT__o_s_m_s = INT__o_s_m_s + abcd * 4290;
1655 double const * restrict HRR_INT__o_s_n_s = INT__o_s_n_s + abcd * 5148;
1656 double const * restrict HRR_INT__q_s_h_s = INT__q_s_h_s + abcd * 1911;
1657 double const * restrict HRR_INT__q_s_i_s = INT__q_s_i_s + abcd * 2548;
1658 double const * restrict HRR_INT__q_s_k_s = INT__q_s_k_s + abcd * 3276;
1659 double const * restrict HRR_INT__q_s_l_s = INT__q_s_l_s + abcd * 4095;
1660 double const * restrict HRR_INT__q_s_m_s = INT__q_s_m_s + abcd * 5005;
1661 double const * restrict HRR_INT__q_s_n_s = INT__q_s_n_s + abcd * 6006;
1662 double * restrict HRR_INT__k_h_h_h = INT__k_h_h_h + real_abcd * 333396;
1663
1664 // form INT__k_p_h_s
1665 ostei_general_hrr_J(7, 1, 5, 0, hAB, HRR_INT__l_s_h_s, HRR_INT__k_s_h_s, HRR_INT__k_p_h_s);
1666
1667 // form INT__k_p_i_s
1668 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);
1669
1670 // form INT__k_p_k_s
1671 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);
1672
1673 // form INT__k_p_l_s
1674 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);
1675
1676 // form INT__k_p_m_s
1677 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);
1678
1679 // form INT__k_p_n_s
1680 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);
1681
1682 // form INT__l_p_h_s
1683 ostei_general_hrr_J(8, 1, 5, 0, hAB, HRR_INT__m_s_h_s, HRR_INT__l_s_h_s, HRR_INT__l_p_h_s);
1684
1685 // form INT__l_p_i_s
1686 ostei_general_hrr_J(8, 1, 6, 0, hAB, HRR_INT__m_s_i_s, HRR_INT__l_s_i_s, HRR_INT__l_p_i_s);
1687
1688 // form INT__l_p_k_s
1689 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);
1690
1691 // form INT__l_p_l_s
1692 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);
1693
1694 // form INT__l_p_m_s
1695 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);
1696
1697 // form INT__l_p_n_s
1698 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);
1699
1700 // form INT__m_p_h_s
1701 ostei_general_hrr_J(9, 1, 5, 0, hAB, HRR_INT__n_s_h_s, HRR_INT__m_s_h_s, HRR_INT__m_p_h_s);
1702
1703 // form INT__m_p_i_s
1704 ostei_general_hrr_J(9, 1, 6, 0, hAB, HRR_INT__n_s_i_s, HRR_INT__m_s_i_s, HRR_INT__m_p_i_s);
1705
1706 // form INT__m_p_k_s
1707 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);
1708
1709 // form INT__m_p_l_s
1710 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);
1711
1712 // form INT__m_p_m_s
1713 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);
1714
1715 // form INT__m_p_n_s
1716 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);
1717
1718 // form INT__n_p_h_s
1719 ostei_general_hrr_J(10, 1, 5, 0, hAB, HRR_INT__o_s_h_s, HRR_INT__n_s_h_s, HRR_INT__n_p_h_s);
1720
1721 // form INT__n_p_i_s
1722 ostei_general_hrr_J(10, 1, 6, 0, hAB, HRR_INT__o_s_i_s, HRR_INT__n_s_i_s, HRR_INT__n_p_i_s);
1723
1724 // form INT__n_p_k_s
1725 ostei_general_hrr_J(10, 1, 7, 0, hAB, HRR_INT__o_s_k_s, HRR_INT__n_s_k_s, HRR_INT__n_p_k_s);
1726
1727 // form INT__n_p_l_s
1728 ostei_general_hrr_J(10, 1, 8, 0, hAB, HRR_INT__o_s_l_s, HRR_INT__n_s_l_s, HRR_INT__n_p_l_s);
1729
1730 // form INT__n_p_m_s
1731 ostei_general_hrr_J(10, 1, 9, 0, hAB, HRR_INT__o_s_m_s, HRR_INT__n_s_m_s, HRR_INT__n_p_m_s);
1732
1733 // form INT__n_p_n_s
1734 ostei_general_hrr_J(10, 1, 10, 0, hAB, HRR_INT__o_s_n_s, HRR_INT__n_s_n_s, HRR_INT__n_p_n_s);
1735
1736 // form INT__o_p_h_s
1737 ostei_general_hrr_J(11, 1, 5, 0, hAB, HRR_INT__q_s_h_s, HRR_INT__o_s_h_s, HRR_INT__o_p_h_s);
1738
1739 // form INT__o_p_i_s
1740 ostei_general_hrr_J(11, 1, 6, 0, hAB, HRR_INT__q_s_i_s, HRR_INT__o_s_i_s, HRR_INT__o_p_i_s);
1741
1742 // form INT__o_p_k_s
1743 ostei_general_hrr_J(11, 1, 7, 0, hAB, HRR_INT__q_s_k_s, HRR_INT__o_s_k_s, HRR_INT__o_p_k_s);
1744
1745 // form INT__o_p_l_s
1746 ostei_general_hrr_J(11, 1, 8, 0, hAB, HRR_INT__q_s_l_s, HRR_INT__o_s_l_s, HRR_INT__o_p_l_s);
1747
1748 // form INT__o_p_m_s
1749 ostei_general_hrr_J(11, 1, 9, 0, hAB, HRR_INT__q_s_m_s, HRR_INT__o_s_m_s, HRR_INT__o_p_m_s);
1750
1751 // form INT__o_p_n_s
1752 ostei_general_hrr_J(11, 1, 10, 0, hAB, HRR_INT__q_s_n_s, HRR_INT__o_s_n_s, HRR_INT__o_p_n_s);
1753
1754 // form INT__k_d_h_s
1755 ostei_general_hrr_J(7, 2, 5, 0, hAB, HRR_INT__l_p_h_s, HRR_INT__k_p_h_s, HRR_INT__k_d_h_s);
1756
1757 // form INT__k_d_i_s
1758 ostei_general_hrr_J(7, 2, 6, 0, hAB, HRR_INT__l_p_i_s, HRR_INT__k_p_i_s, HRR_INT__k_d_i_s);
1759
1760 // form INT__k_d_k_s
1761 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);
1762
1763 // form INT__k_d_l_s
1764 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);
1765
1766 // form INT__k_d_m_s
1767 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);
1768
1769 // form INT__k_d_n_s
1770 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);
1771
1772 // form INT__l_d_h_s
1773 ostei_general_hrr_J(8, 2, 5, 0, hAB, HRR_INT__m_p_h_s, HRR_INT__l_p_h_s, HRR_INT__l_d_h_s);
1774
1775 // form INT__l_d_i_s
1776 ostei_general_hrr_J(8, 2, 6, 0, hAB, HRR_INT__m_p_i_s, HRR_INT__l_p_i_s, HRR_INT__l_d_i_s);
1777
1778 // form INT__l_d_k_s
1779 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);
1780
1781 // form INT__l_d_l_s
1782 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);
1783
1784 // form INT__l_d_m_s
1785 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);
1786
1787 // form INT__l_d_n_s
1788 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);
1789
1790 // form INT__m_d_h_s
1791 ostei_general_hrr_J(9, 2, 5, 0, hAB, HRR_INT__n_p_h_s, HRR_INT__m_p_h_s, HRR_INT__m_d_h_s);
1792
1793 // form INT__m_d_i_s
1794 ostei_general_hrr_J(9, 2, 6, 0, hAB, HRR_INT__n_p_i_s, HRR_INT__m_p_i_s, HRR_INT__m_d_i_s);
1795
1796 // form INT__m_d_k_s
1797 ostei_general_hrr_J(9, 2, 7, 0, hAB, HRR_INT__n_p_k_s, HRR_INT__m_p_k_s, HRR_INT__m_d_k_s);
1798
1799 // form INT__m_d_l_s
1800 ostei_general_hrr_J(9, 2, 8, 0, hAB, HRR_INT__n_p_l_s, HRR_INT__m_p_l_s, HRR_INT__m_d_l_s);
1801
1802 // form INT__m_d_m_s
1803 ostei_general_hrr_J(9, 2, 9, 0, hAB, HRR_INT__n_p_m_s, HRR_INT__m_p_m_s, HRR_INT__m_d_m_s);
1804
1805 // form INT__m_d_n_s
1806 ostei_general_hrr_J(9, 2, 10, 0, hAB, HRR_INT__n_p_n_s, HRR_INT__m_p_n_s, HRR_INT__m_d_n_s);
1807
1808 // form INT__n_d_h_s
1809 ostei_general_hrr_J(10, 2, 5, 0, hAB, HRR_INT__o_p_h_s, HRR_INT__n_p_h_s, HRR_INT__n_d_h_s);
1810
1811 // form INT__n_d_i_s
1812 ostei_general_hrr_J(10, 2, 6, 0, hAB, HRR_INT__o_p_i_s, HRR_INT__n_p_i_s, HRR_INT__n_d_i_s);
1813
1814 // form INT__n_d_k_s
1815 ostei_general_hrr_J(10, 2, 7, 0, hAB, HRR_INT__o_p_k_s, HRR_INT__n_p_k_s, HRR_INT__n_d_k_s);
1816
1817 // form INT__n_d_l_s
1818 ostei_general_hrr_J(10, 2, 8, 0, hAB, HRR_INT__o_p_l_s, HRR_INT__n_p_l_s, HRR_INT__n_d_l_s);
1819
1820 // form INT__n_d_m_s
1821 ostei_general_hrr_J(10, 2, 9, 0, hAB, HRR_INT__o_p_m_s, HRR_INT__n_p_m_s, HRR_INT__n_d_m_s);
1822
1823 // form INT__n_d_n_s
1824 ostei_general_hrr_J(10, 2, 10, 0, hAB, HRR_INT__o_p_n_s, HRR_INT__n_p_n_s, HRR_INT__n_d_n_s);
1825
1826 // form INT__k_f_h_s
1827 ostei_general_hrr_J(7, 3, 5, 0, hAB, HRR_INT__l_d_h_s, HRR_INT__k_d_h_s, HRR_INT__k_f_h_s);
1828
1829 // form INT__k_f_i_s
1830 ostei_general_hrr_J(7, 3, 6, 0, hAB, HRR_INT__l_d_i_s, HRR_INT__k_d_i_s, HRR_INT__k_f_i_s);
1831
1832 // form INT__k_f_k_s
1833 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);
1834
1835 // form INT__k_f_l_s
1836 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);
1837
1838 // form INT__k_f_m_s
1839 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);
1840
1841 // form INT__k_f_n_s
1842 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);
1843
1844 // form INT__l_f_h_s
1845 ostei_general_hrr_J(8, 3, 5, 0, hAB, HRR_INT__m_d_h_s, HRR_INT__l_d_h_s, HRR_INT__l_f_h_s);
1846
1847 // form INT__l_f_i_s
1848 ostei_general_hrr_J(8, 3, 6, 0, hAB, HRR_INT__m_d_i_s, HRR_INT__l_d_i_s, HRR_INT__l_f_i_s);
1849
1850 // form INT__l_f_k_s
1851 ostei_general_hrr_J(8, 3, 7, 0, hAB, HRR_INT__m_d_k_s, HRR_INT__l_d_k_s, HRR_INT__l_f_k_s);
1852
1853 // form INT__l_f_l_s
1854 ostei_general_hrr_J(8, 3, 8, 0, hAB, HRR_INT__m_d_l_s, HRR_INT__l_d_l_s, HRR_INT__l_f_l_s);
1855
1856 // form INT__l_f_m_s
1857 ostei_general_hrr_J(8, 3, 9, 0, hAB, HRR_INT__m_d_m_s, HRR_INT__l_d_m_s, HRR_INT__l_f_m_s);
1858
1859 // form INT__l_f_n_s
1860 ostei_general_hrr_J(8, 3, 10, 0, hAB, HRR_INT__m_d_n_s, HRR_INT__l_d_n_s, HRR_INT__l_f_n_s);
1861
1862 // form INT__m_f_h_s
1863 ostei_general_hrr_J(9, 3, 5, 0, hAB, HRR_INT__n_d_h_s, HRR_INT__m_d_h_s, HRR_INT__m_f_h_s);
1864
1865 // form INT__m_f_i_s
1866 ostei_general_hrr_J(9, 3, 6, 0, hAB, HRR_INT__n_d_i_s, HRR_INT__m_d_i_s, HRR_INT__m_f_i_s);
1867
1868 // form INT__m_f_k_s
1869 ostei_general_hrr_J(9, 3, 7, 0, hAB, HRR_INT__n_d_k_s, HRR_INT__m_d_k_s, HRR_INT__m_f_k_s);
1870
1871 // form INT__m_f_l_s
1872 ostei_general_hrr_J(9, 3, 8, 0, hAB, HRR_INT__n_d_l_s, HRR_INT__m_d_l_s, HRR_INT__m_f_l_s);
1873
1874 // form INT__m_f_m_s
1875 ostei_general_hrr_J(9, 3, 9, 0, hAB, HRR_INT__n_d_m_s, HRR_INT__m_d_m_s, HRR_INT__m_f_m_s);
1876
1877 // form INT__m_f_n_s
1878 ostei_general_hrr_J(9, 3, 10, 0, hAB, HRR_INT__n_d_n_s, HRR_INT__m_d_n_s, HRR_INT__m_f_n_s);
1879
1880 // form INT__k_g_h_s
1881 ostei_general_hrr_J(7, 4, 5, 0, hAB, HRR_INT__l_f_h_s, HRR_INT__k_f_h_s, HRR_INT__k_g_h_s);
1882
1883 // form INT__k_g_i_s
1884 ostei_general_hrr_J(7, 4, 6, 0, hAB, HRR_INT__l_f_i_s, HRR_INT__k_f_i_s, HRR_INT__k_g_i_s);
1885
1886 // form INT__k_g_k_s
1887 ostei_general_hrr_J(7, 4, 7, 0, hAB, HRR_INT__l_f_k_s, HRR_INT__k_f_k_s, HRR_INT__k_g_k_s);
1888
1889 // form INT__k_g_l_s
1890 ostei_general_hrr_J(7, 4, 8, 0, hAB, HRR_INT__l_f_l_s, HRR_INT__k_f_l_s, HRR_INT__k_g_l_s);
1891
1892 // form INT__k_g_m_s
1893 ostei_general_hrr_J(7, 4, 9, 0, hAB, HRR_INT__l_f_m_s, HRR_INT__k_f_m_s, HRR_INT__k_g_m_s);
1894
1895 // form INT__k_g_n_s
1896 ostei_general_hrr_J(7, 4, 10, 0, hAB, HRR_INT__l_f_n_s, HRR_INT__k_f_n_s, HRR_INT__k_g_n_s);
1897
1898 // form INT__l_g_h_s
1899 ostei_general_hrr_J(8, 4, 5, 0, hAB, HRR_INT__m_f_h_s, HRR_INT__l_f_h_s, HRR_INT__l_g_h_s);
1900
1901 // form INT__l_g_i_s
1902 ostei_general_hrr_J(8, 4, 6, 0, hAB, HRR_INT__m_f_i_s, HRR_INT__l_f_i_s, HRR_INT__l_g_i_s);
1903
1904 // form INT__l_g_k_s
1905 ostei_general_hrr_J(8, 4, 7, 0, hAB, HRR_INT__m_f_k_s, HRR_INT__l_f_k_s, HRR_INT__l_g_k_s);
1906
1907 // form INT__l_g_l_s
1908 ostei_general_hrr_J(8, 4, 8, 0, hAB, HRR_INT__m_f_l_s, HRR_INT__l_f_l_s, HRR_INT__l_g_l_s);
1909
1910 // form INT__l_g_m_s
1911 ostei_general_hrr_J(8, 4, 9, 0, hAB, HRR_INT__m_f_m_s, HRR_INT__l_f_m_s, HRR_INT__l_g_m_s);
1912
1913 // form INT__l_g_n_s
1914 ostei_general_hrr_J(8, 4, 10, 0, hAB, HRR_INT__m_f_n_s, HRR_INT__l_f_n_s, HRR_INT__l_g_n_s);
1915
1916 // form INT__k_h_h_s
1917 ostei_general_hrr_J(7, 5, 5, 0, hAB, HRR_INT__l_g_h_s, HRR_INT__k_g_h_s, HRR_INT__k_h_h_s);
1918
1919 // form INT__k_h_i_s
1920 ostei_general_hrr_J(7, 5, 6, 0, hAB, HRR_INT__l_g_i_s, HRR_INT__k_g_i_s, HRR_INT__k_h_i_s);
1921
1922 // form INT__k_h_k_s
1923 ostei_general_hrr_J(7, 5, 7, 0, hAB, HRR_INT__l_g_k_s, HRR_INT__k_g_k_s, HRR_INT__k_h_k_s);
1924
1925 // form INT__k_h_l_s
1926 ostei_general_hrr_J(7, 5, 8, 0, hAB, HRR_INT__l_g_l_s, HRR_INT__k_g_l_s, HRR_INT__k_h_l_s);
1927
1928 // form INT__k_h_m_s
1929 ostei_general_hrr_J(7, 5, 9, 0, hAB, HRR_INT__l_g_m_s, HRR_INT__k_g_m_s, HRR_INT__k_h_m_s);
1930
1931 // form INT__k_h_n_s
1932 ostei_general_hrr_J(7, 5, 10, 0, hAB, HRR_INT__l_g_n_s, HRR_INT__k_g_n_s, HRR_INT__k_h_n_s);
1933
1934 // form INT__k_h_h_p
1935 ostei_general_hrr_L(7, 5, 5, 1, hCD, HRR_INT__k_h_i_s, HRR_INT__k_h_h_s, HRR_INT__k_h_h_p);
1936
1937 // form INT__k_h_i_p
1938 ostei_general_hrr_L(7, 5, 6, 1, hCD, HRR_INT__k_h_k_s, HRR_INT__k_h_i_s, HRR_INT__k_h_i_p);
1939
1940 // form INT__k_h_k_p
1941 ostei_general_hrr_L(7, 5, 7, 1, hCD, HRR_INT__k_h_l_s, HRR_INT__k_h_k_s, HRR_INT__k_h_k_p);
1942
1943 // form INT__k_h_l_p
1944 ostei_general_hrr_L(7, 5, 8, 1, hCD, HRR_INT__k_h_m_s, HRR_INT__k_h_l_s, HRR_INT__k_h_l_p);
1945
1946 // form INT__k_h_m_p
1947 ostei_general_hrr_L(7, 5, 9, 1, hCD, HRR_INT__k_h_n_s, HRR_INT__k_h_m_s, HRR_INT__k_h_m_p);
1948
1949 // form INT__k_h_h_d
1950 ostei_general_hrr_L(7, 5, 5, 2, hCD, HRR_INT__k_h_i_p, HRR_INT__k_h_h_p, HRR_INT__k_h_h_d);
1951
1952 // form INT__k_h_i_d
1953 ostei_general_hrr_L(7, 5, 6, 2, hCD, HRR_INT__k_h_k_p, HRR_INT__k_h_i_p, HRR_INT__k_h_i_d);
1954
1955 // form INT__k_h_k_d
1956 ostei_general_hrr_L(7, 5, 7, 2, hCD, HRR_INT__k_h_l_p, HRR_INT__k_h_k_p, HRR_INT__k_h_k_d);
1957
1958 // form INT__k_h_l_d
1959 ostei_general_hrr_L(7, 5, 8, 2, hCD, HRR_INT__k_h_m_p, HRR_INT__k_h_l_p, HRR_INT__k_h_l_d);
1960
1961 // form INT__k_h_h_f
1962 ostei_general_hrr_L(7, 5, 5, 3, hCD, HRR_INT__k_h_i_d, HRR_INT__k_h_h_d, HRR_INT__k_h_h_f);
1963
1964 // form INT__k_h_i_f
1965 ostei_general_hrr_L(7, 5, 6, 3, hCD, HRR_INT__k_h_k_d, HRR_INT__k_h_i_d, HRR_INT__k_h_i_f);
1966
1967 // form INT__k_h_k_f
1968 ostei_general_hrr_L(7, 5, 7, 3, hCD, HRR_INT__k_h_l_d, HRR_INT__k_h_k_d, HRR_INT__k_h_k_f);
1969
1970 // form INT__k_h_h_g
1971 ostei_general_hrr_L(7, 5, 5, 4, hCD, HRR_INT__k_h_i_f, HRR_INT__k_h_h_f, HRR_INT__k_h_h_g);
1972
1973 // form INT__k_h_i_g
1974 ostei_general_hrr_L(7, 5, 6, 4, hCD, HRR_INT__k_h_k_f, HRR_INT__k_h_i_f, HRR_INT__k_h_i_g);
1975
1976 // form INT__k_h_h_h
1977 ostei_general_hrr_L(7, 5, 5, 5, hCD, HRR_INT__k_h_i_g, HRR_INT__k_h_h_g, HRR_INT__k_h_h_h);
1978
1979
1980 } // close HRR loop
1981
1982
1983 } // close loop cdbatch
1984
1985 istart = iend;
1986 } // close loop over ab
1987
1988 return P.nshell12_clip * Q.nshell12_clip;
1989 }
1990
ostei_h_k_h_h(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__h_k_h_h)1991 int ostei_h_k_h_h(struct simint_multi_shellpair const P,
1992 struct simint_multi_shellpair const Q,
1993 double screen_tol,
1994 double * const restrict work,
1995 double * const restrict INT__h_k_h_h)
1996 {
1997 double P_AB[3*P.nshell12];
1998 struct simint_multi_shellpair P_tmp = P;
1999 P_tmp.PA_x = P.PB_x; P_tmp.PA_y = P.PB_y; P_tmp.PA_z = P.PB_z;
2000 P_tmp.PB_x = P.PA_x; P_tmp.PB_y = P.PA_y; P_tmp.PB_z = P.PA_z;
2001 P_tmp.AB_x = P_AB;
2002 P_tmp.AB_y = P_AB + P.nshell12;
2003 P_tmp.AB_z = P_AB + 2*P.nshell12;
2004
2005 for(int i = 0; i < P.nshell12; i++)
2006 {
2007 P_tmp.AB_x[i] = -P.AB_x[i];
2008 P_tmp.AB_y[i] = -P.AB_y[i];
2009 P_tmp.AB_z[i] = -P.AB_z[i];
2010 }
2011
2012 int ret = ostei_k_h_h_h(P_tmp, Q, screen_tol, work, INT__h_k_h_h);
2013 double buffer[333396] SIMINT_ALIGN_ARRAY_DBL;
2014
2015 for(int q = 0; q < ret; q++)
2016 {
2017 int idx = 0;
2018 for(int a = 0; a < 21; ++a)
2019 for(int b = 0; b < 36; ++b)
2020 for(int c = 0; c < 21; ++c)
2021 for(int d = 0; d < 21; ++d)
2022 buffer[idx++] = INT__h_k_h_h[q*333396+b*9261+a*441+c*21+d];
2023
2024 memcpy(INT__h_k_h_h+q*333396, buffer, 333396*sizeof(double));
2025 }
2026
2027 return ret;
2028 }
2029
2030