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_g_k_k(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__k_g_k_k)8 int ostei_k_g_k_k(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_g_k_k)
13 {
14
15 SIMINT_ASSUME_ALIGN_DBL(work);
16 SIMINT_ASSUME_ALIGN_DBL(INT__k_g_k_k);
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_k_s = work + (SIMINT_NSHELL_SIMD * 0);
30 double * const INT__k_s_l_s = work + (SIMINT_NSHELL_SIMD * 1296);
31 double * const INT__k_s_m_s = work + (SIMINT_NSHELL_SIMD * 2916);
32 double * const INT__k_s_n_s = work + (SIMINT_NSHELL_SIMD * 4896);
33 double * const INT__k_s_o_s = work + (SIMINT_NSHELL_SIMD * 7272);
34 double * const INT__k_s_q_s = work + (SIMINT_NSHELL_SIMD * 10080);
35 double * const INT__k_s_r_s = work + (SIMINT_NSHELL_SIMD * 13356);
36 double * const INT__k_s_t_s = work + (SIMINT_NSHELL_SIMD * 17136);
37 double * const INT__l_s_k_s = work + (SIMINT_NSHELL_SIMD * 21456);
38 double * const INT__l_s_l_s = work + (SIMINT_NSHELL_SIMD * 23076);
39 double * const INT__l_s_m_s = work + (SIMINT_NSHELL_SIMD * 25101);
40 double * const INT__l_s_n_s = work + (SIMINT_NSHELL_SIMD * 27576);
41 double * const INT__l_s_o_s = work + (SIMINT_NSHELL_SIMD * 30546);
42 double * const INT__l_s_q_s = work + (SIMINT_NSHELL_SIMD * 34056);
43 double * const INT__l_s_r_s = work + (SIMINT_NSHELL_SIMD * 38151);
44 double * const INT__l_s_t_s = work + (SIMINT_NSHELL_SIMD * 42876);
45 double * const INT__m_s_k_s = work + (SIMINT_NSHELL_SIMD * 48276);
46 double * const INT__m_s_l_s = work + (SIMINT_NSHELL_SIMD * 50256);
47 double * const INT__m_s_m_s = work + (SIMINT_NSHELL_SIMD * 52731);
48 double * const INT__m_s_n_s = work + (SIMINT_NSHELL_SIMD * 55756);
49 double * const INT__m_s_o_s = work + (SIMINT_NSHELL_SIMD * 59386);
50 double * const INT__m_s_q_s = work + (SIMINT_NSHELL_SIMD * 63676);
51 double * const INT__m_s_r_s = work + (SIMINT_NSHELL_SIMD * 68681);
52 double * const INT__m_s_t_s = work + (SIMINT_NSHELL_SIMD * 74456);
53 double * const INT__n_s_k_s = work + (SIMINT_NSHELL_SIMD * 81056);
54 double * const INT__n_s_l_s = work + (SIMINT_NSHELL_SIMD * 83432);
55 double * const INT__n_s_m_s = work + (SIMINT_NSHELL_SIMD * 86402);
56 double * const INT__n_s_n_s = work + (SIMINT_NSHELL_SIMD * 90032);
57 double * const INT__n_s_o_s = work + (SIMINT_NSHELL_SIMD * 94388);
58 double * const INT__n_s_q_s = work + (SIMINT_NSHELL_SIMD * 99536);
59 double * const INT__n_s_r_s = work + (SIMINT_NSHELL_SIMD * 105542);
60 double * const INT__n_s_t_s = work + (SIMINT_NSHELL_SIMD * 112472);
61 double * const INT__o_s_k_s = work + (SIMINT_NSHELL_SIMD * 120392);
62 double * const INT__o_s_l_s = work + (SIMINT_NSHELL_SIMD * 123200);
63 double * const INT__o_s_m_s = work + (SIMINT_NSHELL_SIMD * 126710);
64 double * const INT__o_s_n_s = work + (SIMINT_NSHELL_SIMD * 131000);
65 double * const INT__o_s_o_s = work + (SIMINT_NSHELL_SIMD * 136148);
66 double * const INT__o_s_q_s = work + (SIMINT_NSHELL_SIMD * 142232);
67 double * const INT__o_s_r_s = work + (SIMINT_NSHELL_SIMD * 149330);
68 double * const INT__o_s_t_s = work + (SIMINT_NSHELL_SIMD * 157520);
69 SIMINT_DBLTYPE * const primwork = (SIMINT_DBLTYPE *)(work + SIMINT_NSHELL_SIMD*166880);
70 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_s_s = primwork + 0;
71 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_p_s = primwork + 26;
72 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_d_s = primwork + 101;
73 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_f_s = primwork + 245;
74 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_g_s = primwork + 475;
75 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_h_s = primwork + 805;
76 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_i_s = primwork + 1246;
77 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_k_s = primwork + 1806;
78 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_l_s = primwork + 2490;
79 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_m_s = primwork + 3300;
80 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_n_s = primwork + 4235;
81 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_o_s = primwork + 5291;
82 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_q_s = primwork + 6461;
83 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_r_s = primwork + 7735;
84 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_t_s = primwork + 9100;
85 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_s_s = primwork + 10540;
86 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_p_s = primwork + 10573;
87 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_d_s = primwork + 10672;
88 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_f_s = primwork + 10870;
89 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_g_s = primwork + 11200;
90 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_h_s = primwork + 11695;
91 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_i_s = primwork + 12388;
92 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_k_s = primwork + 13312;
93 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_l_s = primwork + 14500;
94 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_m_s = primwork + 15985;
95 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_n_s = primwork + 17800;
96 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_o_s = primwork + 19978;
97 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_q_s = primwork + 22552;
98 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_r_s = primwork + 25555;
99 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_t_s = primwork + 29020;
100 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_s_s = primwork + 32980;
101 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_p_s = primwork + 33040;
102 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_d_s = primwork + 33220;
103 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_f_s = primwork + 33580;
104 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_g_s = primwork + 34180;
105 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_h_s = primwork + 35080;
106 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_i_s = primwork + 36340;
107 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_k_s = primwork + 38020;
108 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_l_s = primwork + 40180;
109 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_m_s = primwork + 42880;
110 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_n_s = primwork + 46180;
111 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_o_s = primwork + 50140;
112 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_q_s = primwork + 54820;
113 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_r_s = primwork + 60280;
114 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_t_s = primwork + 66580;
115 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_s_s = primwork + 73780;
116 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_p_s = primwork + 73870;
117 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_d_s = primwork + 74140;
118 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_f_s = primwork + 74680;
119 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_g_s = primwork + 75580;
120 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_h_s = primwork + 76930;
121 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_i_s = primwork + 78820;
122 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_k_s = primwork + 81340;
123 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_l_s = primwork + 84580;
124 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_m_s = primwork + 88630;
125 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_n_s = primwork + 93580;
126 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_o_s = primwork + 99520;
127 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_q_s = primwork + 106540;
128 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_r_s = primwork + 114730;
129 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_t_s = primwork + 124180;
130 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_s_s = primwork + 134980;
131 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_p_s = primwork + 135100;
132 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_d_s = primwork + 135460;
133 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_f_s = primwork + 136180;
134 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_g_s = primwork + 137380;
135 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_h_s = primwork + 139180;
136 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_i_s = primwork + 141700;
137 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_k_s = primwork + 145060;
138 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_l_s = primwork + 149380;
139 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_m_s = primwork + 154780;
140 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_n_s = primwork + 161380;
141 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_o_s = primwork + 169300;
142 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_q_s = primwork + 178660;
143 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_r_s = primwork + 189580;
144 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_t_s = primwork + 202180;
145 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_p_s = primwork + 216580;
146 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_d_s = primwork + 217021;
147 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_f_s = primwork + 217903;
148 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_g_s = primwork + 219373;
149 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_h_s = primwork + 221578;
150 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_i_s = primwork + 224665;
151 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_k_s = primwork + 228781;
152 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_l_s = primwork + 234073;
153 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_m_s = primwork + 240688;
154 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_n_s = primwork + 248773;
155 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_o_s = primwork + 258475;
156 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_q_s = primwork + 269941;
157 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_r_s = primwork + 283318;
158 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_t_s = primwork + 298753;
159 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_d_s = primwork + 316393;
160 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_f_s = primwork + 317401;
161 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_g_s = primwork + 319081;
162 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_h_s = primwork + 321601;
163 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_i_s = primwork + 325129;
164 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_k_s = primwork + 329833;
165 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_l_s = primwork + 335881;
166 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_m_s = primwork + 343441;
167 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_n_s = primwork + 352681;
168 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_o_s = primwork + 363769;
169 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_q_s = primwork + 376873;
170 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_r_s = primwork + 392161;
171 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_t_s = primwork + 409801;
172 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_f_s = primwork + 429961;
173 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_g_s = primwork + 431761;
174 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_h_s = primwork + 434461;
175 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_i_s = primwork + 438241;
176 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_k_s = primwork + 443281;
177 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_l_s = primwork + 449761;
178 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_m_s = primwork + 457861;
179 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_n_s = primwork + 467761;
180 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_o_s = primwork + 479641;
181 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_q_s = primwork + 493681;
182 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_r_s = primwork + 510061;
183 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_t_s = primwork + 528961;
184 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_g_s = primwork + 550561;
185 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_h_s = primwork + 553261;
186 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_i_s = primwork + 557041;
187 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_k_s = primwork + 562081;
188 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_l_s = primwork + 568561;
189 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_m_s = primwork + 576661;
190 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_n_s = primwork + 586561;
191 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_o_s = primwork + 598441;
192 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_q_s = primwork + 612481;
193 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_r_s = primwork + 628861;
194 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_t_s = primwork + 647761;
195 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_h_s = primwork + 669361;
196 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_i_s = primwork + 672826;
197 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_k_s = primwork + 677446;
198 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_l_s = primwork + 683386;
199 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_m_s = primwork + 690811;
200 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_n_s = primwork + 699886;
201 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_o_s = primwork + 710776;
202 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_q_s = primwork + 723646;
203 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_r_s = primwork + 738661;
204 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_t_s = primwork + 755986;
205 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_i_s = primwork + 775786;
206 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_k_s = primwork + 779482;
207 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_l_s = primwork + 784234;
208 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_m_s = primwork + 790174;
209 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_n_s = primwork + 797434;
210 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_o_s = primwork + 806146;
211 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_q_s = primwork + 816442;
212 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_r_s = primwork + 828454;
213 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_t_s = primwork + 842314;
214 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_k_s = primwork + 858154;
215 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_l_s = primwork + 860962;
216 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_m_s = primwork + 864472;
217 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_n_s = primwork + 868762;
218 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_o_s = primwork + 873910;
219 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_q_s = primwork + 879994;
220 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_r_s = primwork + 887092;
221 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_t_s = primwork + 895282;
222 double * const hrrwork = (double *)(primwork + 904642);
223 double * const HRR_INT__k_p_k_s = hrrwork + 0;
224 double * const HRR_INT__k_p_l_s = hrrwork + 3888;
225 double * const HRR_INT__k_p_m_s = hrrwork + 8748;
226 double * const HRR_INT__k_p_n_s = hrrwork + 14688;
227 double * const HRR_INT__k_p_o_s = hrrwork + 21816;
228 double * const HRR_INT__k_p_q_s = hrrwork + 30240;
229 double * const HRR_INT__k_p_r_s = hrrwork + 40068;
230 double * const HRR_INT__k_p_t_s = hrrwork + 51408;
231 double * const HRR_INT__k_d_k_s = hrrwork + 64368;
232 double * const HRR_INT__k_d_l_s = hrrwork + 72144;
233 double * const HRR_INT__k_d_m_s = hrrwork + 81864;
234 double * const HRR_INT__k_d_n_s = hrrwork + 93744;
235 double * const HRR_INT__k_d_o_s = hrrwork + 108000;
236 double * const HRR_INT__k_d_q_s = hrrwork + 124848;
237 double * const HRR_INT__k_d_r_s = hrrwork + 144504;
238 double * const HRR_INT__k_d_t_s = hrrwork + 167184;
239 double * const HRR_INT__k_f_k_s = hrrwork + 193104;
240 double * const HRR_INT__k_f_l_s = hrrwork + 206064;
241 double * const HRR_INT__k_f_m_s = hrrwork + 222264;
242 double * const HRR_INT__k_f_n_s = hrrwork + 242064;
243 double * const HRR_INT__k_f_o_s = hrrwork + 265824;
244 double * const HRR_INT__k_f_q_s = hrrwork + 293904;
245 double * const HRR_INT__k_f_r_s = hrrwork + 326664;
246 double * const HRR_INT__k_f_t_s = hrrwork + 364464;
247 double * const HRR_INT__k_g_k_s = hrrwork + 407664;
248 double * const HRR_INT__k_g_k_p = hrrwork + 427104;
249 double * const HRR_INT__k_g_k_d = hrrwork + 485424;
250 double * const HRR_INT__k_g_k_f = hrrwork + 602064;
251 double * const HRR_INT__k_g_k_g = hrrwork + 796464;
252 double * const HRR_INT__k_g_k_h = hrrwork + 1088064;
253 double * const HRR_INT__k_g_k_i = hrrwork + 1496304;
254 double * const HRR_INT__k_g_l_s = hrrwork + 2040624;
255 double * const HRR_INT__k_g_l_p = hrrwork + 2064924;
256 double * const HRR_INT__k_g_l_d = hrrwork + 2137824;
257 double * const HRR_INT__k_g_l_f = hrrwork + 2283624;
258 double * const HRR_INT__k_g_l_g = hrrwork + 2526624;
259 double * const HRR_INT__k_g_l_h = hrrwork + 2891124;
260 double * const HRR_INT__k_g_l_i = hrrwork + 3401424;
261 double * const HRR_INT__k_g_m_s = hrrwork + 4081824;
262 double * const HRR_INT__k_g_m_p = hrrwork + 4111524;
263 double * const HRR_INT__k_g_m_d = hrrwork + 4200624;
264 double * const HRR_INT__k_g_m_f = hrrwork + 4378824;
265 double * const HRR_INT__k_g_m_g = hrrwork + 4675824;
266 double * const HRR_INT__k_g_m_h = hrrwork + 5121324;
267 double * const HRR_INT__k_g_n_s = hrrwork + 5745024;
268 double * const HRR_INT__k_g_n_p = hrrwork + 5780664;
269 double * const HRR_INT__k_g_n_d = hrrwork + 5887584;
270 double * const HRR_INT__k_g_n_f = hrrwork + 6101424;
271 double * const HRR_INT__k_g_n_g = hrrwork + 6457824;
272 double * const HRR_INT__k_g_o_s = hrrwork + 6992424;
273 double * const HRR_INT__k_g_o_p = hrrwork + 7034544;
274 double * const HRR_INT__k_g_o_d = hrrwork + 7160904;
275 double * const HRR_INT__k_g_o_f = hrrwork + 7413624;
276 double * const HRR_INT__k_g_q_s = hrrwork + 7834824;
277 double * const HRR_INT__k_g_q_p = hrrwork + 7883964;
278 double * const HRR_INT__k_g_q_d = hrrwork + 8031384;
279 double * const HRR_INT__k_g_r_s = hrrwork + 8326224;
280 double * const HRR_INT__k_g_r_p = hrrwork + 8382924;
281 double * const HRR_INT__k_g_t_s = hrrwork + 8553024;
282 double * const HRR_INT__l_p_k_s = hrrwork + 8617824;
283 double * const HRR_INT__l_p_l_s = hrrwork + 8622684;
284 double * const HRR_INT__l_p_m_s = hrrwork + 8628759;
285 double * const HRR_INT__l_p_n_s = hrrwork + 8636184;
286 double * const HRR_INT__l_p_o_s = hrrwork + 8645094;
287 double * const HRR_INT__l_p_q_s = hrrwork + 8655624;
288 double * const HRR_INT__l_p_r_s = hrrwork + 8667909;
289 double * const HRR_INT__l_p_t_s = hrrwork + 8682084;
290 double * const HRR_INT__l_d_k_s = hrrwork + 8698284;
291 double * const HRR_INT__l_d_l_s = hrrwork + 8708004;
292 double * const HRR_INT__l_d_m_s = hrrwork + 8720154;
293 double * const HRR_INT__l_d_n_s = hrrwork + 8735004;
294 double * const HRR_INT__l_d_o_s = hrrwork + 8752824;
295 double * const HRR_INT__l_d_q_s = hrrwork + 8773884;
296 double * const HRR_INT__l_d_r_s = hrrwork + 8798454;
297 double * const HRR_INT__l_d_t_s = hrrwork + 8826804;
298 double * const HRR_INT__l_f_k_s = hrrwork + 8859204;
299 double * const HRR_INT__l_f_l_s = hrrwork + 8875404;
300 double * const HRR_INT__l_f_m_s = hrrwork + 8895654;
301 double * const HRR_INT__l_f_n_s = hrrwork + 8920404;
302 double * const HRR_INT__l_f_o_s = hrrwork + 8950104;
303 double * const HRR_INT__l_f_q_s = hrrwork + 8985204;
304 double * const HRR_INT__l_f_r_s = hrrwork + 9026154;
305 double * const HRR_INT__l_f_t_s = hrrwork + 9073404;
306 double * const HRR_INT__m_p_k_s = hrrwork + 9127404;
307 double * const HRR_INT__m_p_l_s = hrrwork + 9133344;
308 double * const HRR_INT__m_p_m_s = hrrwork + 9140769;
309 double * const HRR_INT__m_p_n_s = hrrwork + 9149844;
310 double * const HRR_INT__m_p_o_s = hrrwork + 9160734;
311 double * const HRR_INT__m_p_q_s = hrrwork + 9173604;
312 double * const HRR_INT__m_p_r_s = hrrwork + 9188619;
313 double * const HRR_INT__m_p_t_s = hrrwork + 9205944;
314 double * const HRR_INT__m_d_k_s = hrrwork + 9225744;
315 double * const HRR_INT__m_d_l_s = hrrwork + 9237624;
316 double * const HRR_INT__m_d_m_s = hrrwork + 9252474;
317 double * const HRR_INT__m_d_n_s = hrrwork + 9270624;
318 double * const HRR_INT__m_d_o_s = hrrwork + 9292404;
319 double * const HRR_INT__m_d_q_s = hrrwork + 9318144;
320 double * const HRR_INT__m_d_r_s = hrrwork + 9348174;
321 double * const HRR_INT__m_d_t_s = hrrwork + 9382824;
322 double * const HRR_INT__n_p_k_s = hrrwork + 9422424;
323 double * const HRR_INT__n_p_l_s = hrrwork + 9429552;
324 double * const HRR_INT__n_p_m_s = hrrwork + 9438462;
325 double * const HRR_INT__n_p_n_s = hrrwork + 9449352;
326 double * const HRR_INT__n_p_o_s = hrrwork + 9462420;
327 double * const HRR_INT__n_p_q_s = hrrwork + 9477864;
328 double * const HRR_INT__n_p_r_s = hrrwork + 9495882;
329 double * const HRR_INT__n_p_t_s = hrrwork + 9516672;
330
331
332 // Create constants
333 const SIMINT_DBLTYPE const_1 = SIMINT_DBLSET1(1);
334 const SIMINT_DBLTYPE const_10 = SIMINT_DBLSET1(10);
335 const SIMINT_DBLTYPE const_11 = SIMINT_DBLSET1(11);
336 const SIMINT_DBLTYPE const_12 = SIMINT_DBLSET1(12);
337 const SIMINT_DBLTYPE const_13 = SIMINT_DBLSET1(13);
338 const SIMINT_DBLTYPE const_14 = SIMINT_DBLSET1(14);
339 const SIMINT_DBLTYPE const_2 = SIMINT_DBLSET1(2);
340 const SIMINT_DBLTYPE const_3 = SIMINT_DBLSET1(3);
341 const SIMINT_DBLTYPE const_4 = SIMINT_DBLSET1(4);
342 const SIMINT_DBLTYPE const_5 = SIMINT_DBLSET1(5);
343 const SIMINT_DBLTYPE const_6 = SIMINT_DBLSET1(6);
344 const SIMINT_DBLTYPE const_7 = SIMINT_DBLSET1(7);
345 const SIMINT_DBLTYPE const_8 = SIMINT_DBLSET1(8);
346 const SIMINT_DBLTYPE const_9 = SIMINT_DBLSET1(9);
347 const SIMINT_DBLTYPE one_half = SIMINT_DBLSET1(0.5);
348
349
350 ////////////////////////////////////////
351 // Loop over shells and primitives
352 ////////////////////////////////////////
353
354 real_abcd = 0;
355 istart = 0;
356 for(ab = 0; ab < P.nshell12_clip; ++ab)
357 {
358 const int iend = istart + P.nprim12[ab];
359
360 cd = 0;
361 jstart = 0;
362
363 for(cd = 0; cd < Q.nshell12_clip; cd += SIMINT_NSHELL_SIMD)
364 {
365 const int nshellbatch = ((cd + SIMINT_NSHELL_SIMD) > Q.nshell12_clip) ? Q.nshell12_clip - cd : SIMINT_NSHELL_SIMD;
366 int jend = jstart;
367 for(i = 0; i < nshellbatch; i++)
368 jend += Q.nprim12[cd+i];
369
370 // Clear the beginning of the workspace (where we are accumulating integrals)
371 memset(work, 0, SIMINT_NSHELL_SIMD * 166880 * sizeof(double));
372 abcd = 0;
373
374
375 for(i = istart; i < iend; ++i)
376 {
377 SIMINT_DBLTYPE bra_screen_max; // only used if check_screen
378
379 if(check_screen)
380 {
381 // Skip this whole thing if always insignificant
382 if((P.screen[i] * Q.screen_max) < screen_tol)
383 continue;
384 bra_screen_max = SIMINT_DBLSET1(P.screen[i]);
385 }
386
387 icd = 0;
388 iprimcd = 0;
389 nprim_icd = Q.nprim12[cd];
390 double * restrict PRIM_PTR_INT__k_s_k_s = INT__k_s_k_s + abcd * 1296;
391 double * restrict PRIM_PTR_INT__k_s_l_s = INT__k_s_l_s + abcd * 1620;
392 double * restrict PRIM_PTR_INT__k_s_m_s = INT__k_s_m_s + abcd * 1980;
393 double * restrict PRIM_PTR_INT__k_s_n_s = INT__k_s_n_s + abcd * 2376;
394 double * restrict PRIM_PTR_INT__k_s_o_s = INT__k_s_o_s + abcd * 2808;
395 double * restrict PRIM_PTR_INT__k_s_q_s = INT__k_s_q_s + abcd * 3276;
396 double * restrict PRIM_PTR_INT__k_s_r_s = INT__k_s_r_s + abcd * 3780;
397 double * restrict PRIM_PTR_INT__k_s_t_s = INT__k_s_t_s + abcd * 4320;
398 double * restrict PRIM_PTR_INT__l_s_k_s = INT__l_s_k_s + abcd * 1620;
399 double * restrict PRIM_PTR_INT__l_s_l_s = INT__l_s_l_s + abcd * 2025;
400 double * restrict PRIM_PTR_INT__l_s_m_s = INT__l_s_m_s + abcd * 2475;
401 double * restrict PRIM_PTR_INT__l_s_n_s = INT__l_s_n_s + abcd * 2970;
402 double * restrict PRIM_PTR_INT__l_s_o_s = INT__l_s_o_s + abcd * 3510;
403 double * restrict PRIM_PTR_INT__l_s_q_s = INT__l_s_q_s + abcd * 4095;
404 double * restrict PRIM_PTR_INT__l_s_r_s = INT__l_s_r_s + abcd * 4725;
405 double * restrict PRIM_PTR_INT__l_s_t_s = INT__l_s_t_s + abcd * 5400;
406 double * restrict PRIM_PTR_INT__m_s_k_s = INT__m_s_k_s + abcd * 1980;
407 double * restrict PRIM_PTR_INT__m_s_l_s = INT__m_s_l_s + abcd * 2475;
408 double * restrict PRIM_PTR_INT__m_s_m_s = INT__m_s_m_s + abcd * 3025;
409 double * restrict PRIM_PTR_INT__m_s_n_s = INT__m_s_n_s + abcd * 3630;
410 double * restrict PRIM_PTR_INT__m_s_o_s = INT__m_s_o_s + abcd * 4290;
411 double * restrict PRIM_PTR_INT__m_s_q_s = INT__m_s_q_s + abcd * 5005;
412 double * restrict PRIM_PTR_INT__m_s_r_s = INT__m_s_r_s + abcd * 5775;
413 double * restrict PRIM_PTR_INT__m_s_t_s = INT__m_s_t_s + abcd * 6600;
414 double * restrict PRIM_PTR_INT__n_s_k_s = INT__n_s_k_s + abcd * 2376;
415 double * restrict PRIM_PTR_INT__n_s_l_s = INT__n_s_l_s + abcd * 2970;
416 double * restrict PRIM_PTR_INT__n_s_m_s = INT__n_s_m_s + abcd * 3630;
417 double * restrict PRIM_PTR_INT__n_s_n_s = INT__n_s_n_s + abcd * 4356;
418 double * restrict PRIM_PTR_INT__n_s_o_s = INT__n_s_o_s + abcd * 5148;
419 double * restrict PRIM_PTR_INT__n_s_q_s = INT__n_s_q_s + abcd * 6006;
420 double * restrict PRIM_PTR_INT__n_s_r_s = INT__n_s_r_s + abcd * 6930;
421 double * restrict PRIM_PTR_INT__n_s_t_s = INT__n_s_t_s + abcd * 7920;
422 double * restrict PRIM_PTR_INT__o_s_k_s = INT__o_s_k_s + abcd * 2808;
423 double * restrict PRIM_PTR_INT__o_s_l_s = INT__o_s_l_s + abcd * 3510;
424 double * restrict PRIM_PTR_INT__o_s_m_s = INT__o_s_m_s + abcd * 4290;
425 double * restrict PRIM_PTR_INT__o_s_n_s = INT__o_s_n_s + abcd * 5148;
426 double * restrict PRIM_PTR_INT__o_s_o_s = INT__o_s_o_s + abcd * 6084;
427 double * restrict PRIM_PTR_INT__o_s_q_s = INT__o_s_q_s + abcd * 7098;
428 double * restrict PRIM_PTR_INT__o_s_r_s = INT__o_s_r_s + abcd * 8190;
429 double * restrict PRIM_PTR_INT__o_s_t_s = INT__o_s_t_s + abcd * 9360;
430
431
432
433 // Load these one per loop over i
434 const SIMINT_DBLTYPE P_alpha = SIMINT_DBLSET1(P.alpha[i]);
435 const SIMINT_DBLTYPE P_prefac = SIMINT_DBLSET1(P.prefac[i]);
436 const SIMINT_DBLTYPE Pxyz[3] = { SIMINT_DBLSET1(P.x[i]), SIMINT_DBLSET1(P.y[i]), SIMINT_DBLSET1(P.z[i]) };
437
438 const SIMINT_DBLTYPE P_PA[3] = { SIMINT_DBLSET1(P.PA_x[i]), SIMINT_DBLSET1(P.PA_y[i]), SIMINT_DBLSET1(P.PA_z[i]) };
439
440 for(j = jstart; j < jend; j += SIMINT_SIMD_LEN)
441 {
442 // calculate the shell offsets
443 // these are the offset from the shell pointed to by cd
444 // for each element
445 int shelloffsets[SIMINT_SIMD_LEN] = {0};
446 int lastoffset = 0;
447 const int nlane = ( ((j + SIMINT_SIMD_LEN) < jend) ? SIMINT_SIMD_LEN : (jend - j));
448
449 if((iprimcd + SIMINT_SIMD_LEN) >= nprim_icd)
450 {
451 // Handle if the first element of the vector is a new shell
452 if(iprimcd >= nprim_icd && ((icd+1) < nshellbatch))
453 {
454 nprim_icd += Q.nprim12[cd + (++icd)];
455 PRIM_PTR_INT__k_s_k_s += 1296;
456 PRIM_PTR_INT__k_s_l_s += 1620;
457 PRIM_PTR_INT__k_s_m_s += 1980;
458 PRIM_PTR_INT__k_s_n_s += 2376;
459 PRIM_PTR_INT__k_s_o_s += 2808;
460 PRIM_PTR_INT__k_s_q_s += 3276;
461 PRIM_PTR_INT__k_s_r_s += 3780;
462 PRIM_PTR_INT__k_s_t_s += 4320;
463 PRIM_PTR_INT__l_s_k_s += 1620;
464 PRIM_PTR_INT__l_s_l_s += 2025;
465 PRIM_PTR_INT__l_s_m_s += 2475;
466 PRIM_PTR_INT__l_s_n_s += 2970;
467 PRIM_PTR_INT__l_s_o_s += 3510;
468 PRIM_PTR_INT__l_s_q_s += 4095;
469 PRIM_PTR_INT__l_s_r_s += 4725;
470 PRIM_PTR_INT__l_s_t_s += 5400;
471 PRIM_PTR_INT__m_s_k_s += 1980;
472 PRIM_PTR_INT__m_s_l_s += 2475;
473 PRIM_PTR_INT__m_s_m_s += 3025;
474 PRIM_PTR_INT__m_s_n_s += 3630;
475 PRIM_PTR_INT__m_s_o_s += 4290;
476 PRIM_PTR_INT__m_s_q_s += 5005;
477 PRIM_PTR_INT__m_s_r_s += 5775;
478 PRIM_PTR_INT__m_s_t_s += 6600;
479 PRIM_PTR_INT__n_s_k_s += 2376;
480 PRIM_PTR_INT__n_s_l_s += 2970;
481 PRIM_PTR_INT__n_s_m_s += 3630;
482 PRIM_PTR_INT__n_s_n_s += 4356;
483 PRIM_PTR_INT__n_s_o_s += 5148;
484 PRIM_PTR_INT__n_s_q_s += 6006;
485 PRIM_PTR_INT__n_s_r_s += 6930;
486 PRIM_PTR_INT__n_s_t_s += 7920;
487 PRIM_PTR_INT__o_s_k_s += 2808;
488 PRIM_PTR_INT__o_s_l_s += 3510;
489 PRIM_PTR_INT__o_s_m_s += 4290;
490 PRIM_PTR_INT__o_s_n_s += 5148;
491 PRIM_PTR_INT__o_s_o_s += 6084;
492 PRIM_PTR_INT__o_s_q_s += 7098;
493 PRIM_PTR_INT__o_s_r_s += 8190;
494 PRIM_PTR_INT__o_s_t_s += 9360;
495 }
496 iprimcd++;
497 for(n = 1; n < SIMINT_SIMD_LEN; ++n)
498 {
499 if(iprimcd >= nprim_icd && ((icd+1) < nshellbatch))
500 {
501 shelloffsets[n] = shelloffsets[n-1] + 1;
502 lastoffset++;
503 nprim_icd += Q.nprim12[cd + (++icd)];
504 }
505 else
506 shelloffsets[n] = shelloffsets[n-1];
507 iprimcd++;
508 }
509 }
510 else
511 iprimcd += SIMINT_SIMD_LEN;
512
513 // Do we have to compute this vector (or has it been screened out)?
514 // (not_screened != 0 means we have to do this vector)
515 if(check_screen)
516 {
517 const double vmax = vector_max(SIMINT_MUL(bra_screen_max, SIMINT_DBLLOAD(Q.screen, j)));
518 if(vmax < screen_tol)
519 {
520 PRIM_PTR_INT__k_s_k_s += lastoffset*1296;
521 PRIM_PTR_INT__k_s_l_s += lastoffset*1620;
522 PRIM_PTR_INT__k_s_m_s += lastoffset*1980;
523 PRIM_PTR_INT__k_s_n_s += lastoffset*2376;
524 PRIM_PTR_INT__k_s_o_s += lastoffset*2808;
525 PRIM_PTR_INT__k_s_q_s += lastoffset*3276;
526 PRIM_PTR_INT__k_s_r_s += lastoffset*3780;
527 PRIM_PTR_INT__k_s_t_s += lastoffset*4320;
528 PRIM_PTR_INT__l_s_k_s += lastoffset*1620;
529 PRIM_PTR_INT__l_s_l_s += lastoffset*2025;
530 PRIM_PTR_INT__l_s_m_s += lastoffset*2475;
531 PRIM_PTR_INT__l_s_n_s += lastoffset*2970;
532 PRIM_PTR_INT__l_s_o_s += lastoffset*3510;
533 PRIM_PTR_INT__l_s_q_s += lastoffset*4095;
534 PRIM_PTR_INT__l_s_r_s += lastoffset*4725;
535 PRIM_PTR_INT__l_s_t_s += lastoffset*5400;
536 PRIM_PTR_INT__m_s_k_s += lastoffset*1980;
537 PRIM_PTR_INT__m_s_l_s += lastoffset*2475;
538 PRIM_PTR_INT__m_s_m_s += lastoffset*3025;
539 PRIM_PTR_INT__m_s_n_s += lastoffset*3630;
540 PRIM_PTR_INT__m_s_o_s += lastoffset*4290;
541 PRIM_PTR_INT__m_s_q_s += lastoffset*5005;
542 PRIM_PTR_INT__m_s_r_s += lastoffset*5775;
543 PRIM_PTR_INT__m_s_t_s += lastoffset*6600;
544 PRIM_PTR_INT__n_s_k_s += lastoffset*2376;
545 PRIM_PTR_INT__n_s_l_s += lastoffset*2970;
546 PRIM_PTR_INT__n_s_m_s += lastoffset*3630;
547 PRIM_PTR_INT__n_s_n_s += lastoffset*4356;
548 PRIM_PTR_INT__n_s_o_s += lastoffset*5148;
549 PRIM_PTR_INT__n_s_q_s += lastoffset*6006;
550 PRIM_PTR_INT__n_s_r_s += lastoffset*6930;
551 PRIM_PTR_INT__n_s_t_s += lastoffset*7920;
552 PRIM_PTR_INT__o_s_k_s += lastoffset*2808;
553 PRIM_PTR_INT__o_s_l_s += lastoffset*3510;
554 PRIM_PTR_INT__o_s_m_s += lastoffset*4290;
555 PRIM_PTR_INT__o_s_n_s += lastoffset*5148;
556 PRIM_PTR_INT__o_s_o_s += lastoffset*6084;
557 PRIM_PTR_INT__o_s_q_s += lastoffset*7098;
558 PRIM_PTR_INT__o_s_r_s += lastoffset*8190;
559 PRIM_PTR_INT__o_s_t_s += lastoffset*9360;
560 continue;
561 }
562 }
563
564 const SIMINT_DBLTYPE Q_alpha = SIMINT_DBLLOAD(Q.alpha, j);
565 const SIMINT_DBLTYPE PQalpha_mul = SIMINT_MUL(P_alpha, Q_alpha);
566 const SIMINT_DBLTYPE PQalpha_sum = SIMINT_ADD(P_alpha, Q_alpha);
567 const SIMINT_DBLTYPE one_over_PQalpha_sum = SIMINT_DIV(const_1, PQalpha_sum);
568
569
570 /* construct R2 = (Px - Qx)**2 + (Py - Qy)**2 + (Pz -Qz)**2 */
571 SIMINT_DBLTYPE PQ[3];
572 PQ[0] = SIMINT_SUB(Pxyz[0], SIMINT_DBLLOAD(Q.x, j));
573 PQ[1] = SIMINT_SUB(Pxyz[1], SIMINT_DBLLOAD(Q.y, j));
574 PQ[2] = SIMINT_SUB(Pxyz[2], SIMINT_DBLLOAD(Q.z, j));
575 SIMINT_DBLTYPE R2 = SIMINT_MUL(PQ[0], PQ[0]);
576 R2 = SIMINT_FMADD(PQ[1], PQ[1], R2);
577 R2 = SIMINT_FMADD(PQ[2], PQ[2], R2);
578
579 const SIMINT_DBLTYPE alpha = SIMINT_MUL(PQalpha_mul, one_over_PQalpha_sum); // alpha from MEST
580 const SIMINT_DBLTYPE one_over_p = SIMINT_DIV(const_1, P_alpha);
581 const SIMINT_DBLTYPE one_over_q = SIMINT_DIV(const_1, Q_alpha);
582 const SIMINT_DBLTYPE one_over_2p = SIMINT_MUL(one_half, one_over_p);
583 const SIMINT_DBLTYPE one_over_2q = SIMINT_MUL(one_half, one_over_q);
584 const SIMINT_DBLTYPE one_over_2pq = SIMINT_MUL(one_half, one_over_PQalpha_sum);
585 const SIMINT_DBLTYPE Q_PA[3] = { SIMINT_DBLLOAD(Q.PA_x, j), SIMINT_DBLLOAD(Q.PA_y, j), SIMINT_DBLLOAD(Q.PA_z, j) };
586
587 // NOTE: Minus sign!
588 const SIMINT_DBLTYPE a_over_p = SIMINT_MUL(SIMINT_NEG(alpha), one_over_p);
589 SIMINT_DBLTYPE aop_PQ[3];
590 aop_PQ[0] = SIMINT_MUL(a_over_p, PQ[0]);
591 aop_PQ[1] = SIMINT_MUL(a_over_p, PQ[1]);
592 aop_PQ[2] = SIMINT_MUL(a_over_p, PQ[2]);
593
594 SIMINT_DBLTYPE a_over_q = SIMINT_MUL(alpha, one_over_q);
595 SIMINT_DBLTYPE aoq_PQ[3];
596 aoq_PQ[0] = SIMINT_MUL(a_over_q, PQ[0]);
597 aoq_PQ[1] = SIMINT_MUL(a_over_q, PQ[1]);
598 aoq_PQ[2] = SIMINT_MUL(a_over_q, PQ[2]);
599 // Put a minus sign here so we don't have to in RR routines
600 a_over_q = SIMINT_NEG(a_over_q);
601
602
603 //////////////////////////////////////////////
604 // Fjt function section
605 // Maximum v value: 25
606 //////////////////////////////////////////////
607 // The parameter to the Fjt function
608 const SIMINT_DBLTYPE F_x = SIMINT_MUL(R2, alpha);
609
610
611 const SIMINT_DBLTYPE Q_prefac = mask_load(nlane, Q.prefac + j);
612
613
614 boys_F_split(PRIM_INT__s_s_s_s, F_x, 25);
615 SIMINT_DBLTYPE prefac = SIMINT_SQRT(one_over_PQalpha_sum);
616 prefac = SIMINT_MUL(SIMINT_MUL(P_prefac, Q_prefac), prefac);
617 for(n = 0; n <= 25; n++)
618 PRIM_INT__s_s_s_s[n] = SIMINT_MUL(PRIM_INT__s_s_s_s[n], prefac);
619
620 //////////////////////////////////////////////
621 // Primitive integrals: Vertical recurrance
622 //////////////////////////////////////////////
623
624 const SIMINT_DBLTYPE vrr_const_1_over_2p = one_over_2p;
625 const SIMINT_DBLTYPE vrr_const_2_over_2p = SIMINT_MUL(const_2, one_over_2p);
626 const SIMINT_DBLTYPE vrr_const_3_over_2p = SIMINT_MUL(const_3, one_over_2p);
627 const SIMINT_DBLTYPE vrr_const_4_over_2p = SIMINT_MUL(const_4, one_over_2p);
628 const SIMINT_DBLTYPE vrr_const_5_over_2p = SIMINT_MUL(const_5, one_over_2p);
629 const SIMINT_DBLTYPE vrr_const_6_over_2p = SIMINT_MUL(const_6, one_over_2p);
630 const SIMINT_DBLTYPE vrr_const_7_over_2p = SIMINT_MUL(const_7, one_over_2p);
631 const SIMINT_DBLTYPE vrr_const_8_over_2p = SIMINT_MUL(const_8, one_over_2p);
632 const SIMINT_DBLTYPE vrr_const_9_over_2p = SIMINT_MUL(const_9, one_over_2p);
633 const SIMINT_DBLTYPE vrr_const_10_over_2p = SIMINT_MUL(const_10, one_over_2p);
634 const SIMINT_DBLTYPE vrr_const_1_over_2q = one_over_2q;
635 const SIMINT_DBLTYPE vrr_const_2_over_2q = SIMINT_MUL(const_2, one_over_2q);
636 const SIMINT_DBLTYPE vrr_const_3_over_2q = SIMINT_MUL(const_3, one_over_2q);
637 const SIMINT_DBLTYPE vrr_const_4_over_2q = SIMINT_MUL(const_4, one_over_2q);
638 const SIMINT_DBLTYPE vrr_const_5_over_2q = SIMINT_MUL(const_5, one_over_2q);
639 const SIMINT_DBLTYPE vrr_const_6_over_2q = SIMINT_MUL(const_6, one_over_2q);
640 const SIMINT_DBLTYPE vrr_const_7_over_2q = SIMINT_MUL(const_7, one_over_2q);
641 const SIMINT_DBLTYPE vrr_const_8_over_2q = SIMINT_MUL(const_8, one_over_2q);
642 const SIMINT_DBLTYPE vrr_const_9_over_2q = SIMINT_MUL(const_9, one_over_2q);
643 const SIMINT_DBLTYPE vrr_const_10_over_2q = SIMINT_MUL(const_10, one_over_2q);
644 const SIMINT_DBLTYPE vrr_const_11_over_2q = SIMINT_MUL(const_11, one_over_2q);
645 const SIMINT_DBLTYPE vrr_const_12_over_2q = SIMINT_MUL(const_12, one_over_2q);
646 const SIMINT_DBLTYPE vrr_const_13_over_2q = SIMINT_MUL(const_13, one_over_2q);
647 const SIMINT_DBLTYPE vrr_const_1_over_2pq = one_over_2pq;
648 const SIMINT_DBLTYPE vrr_const_2_over_2pq = SIMINT_MUL(const_2, one_over_2pq);
649 const SIMINT_DBLTYPE vrr_const_3_over_2pq = SIMINT_MUL(const_3, one_over_2pq);
650 const SIMINT_DBLTYPE vrr_const_4_over_2pq = SIMINT_MUL(const_4, one_over_2pq);
651 const SIMINT_DBLTYPE vrr_const_5_over_2pq = SIMINT_MUL(const_5, one_over_2pq);
652 const SIMINT_DBLTYPE vrr_const_6_over_2pq = SIMINT_MUL(const_6, one_over_2pq);
653 const SIMINT_DBLTYPE vrr_const_7_over_2pq = SIMINT_MUL(const_7, one_over_2pq);
654 const SIMINT_DBLTYPE vrr_const_8_over_2pq = SIMINT_MUL(const_8, one_over_2pq);
655 const SIMINT_DBLTYPE vrr_const_9_over_2pq = SIMINT_MUL(const_9, one_over_2pq);
656 const SIMINT_DBLTYPE vrr_const_10_over_2pq = SIMINT_MUL(const_10, one_over_2pq);
657 const SIMINT_DBLTYPE vrr_const_11_over_2pq = SIMINT_MUL(const_11, one_over_2pq);
658 const SIMINT_DBLTYPE vrr_const_12_over_2pq = SIMINT_MUL(const_12, one_over_2pq);
659 const SIMINT_DBLTYPE vrr_const_13_over_2pq = SIMINT_MUL(const_13, one_over_2pq);
660 const SIMINT_DBLTYPE vrr_const_14_over_2pq = SIMINT_MUL(const_14, one_over_2pq);
661
662
663
664 // Forming PRIM_INT__s_s_p_s[25 * 3];
665 for(n = 0; n < 25; ++n) // loop over orders of auxiliary function
666 {
667
668 PRIM_INT__s_s_p_s[n * 3 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_s_s[n * 1 + 0]);
669 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]);
670
671 PRIM_INT__s_s_p_s[n * 3 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_s_s[n * 1 + 0]);
672 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]);
673
674 PRIM_INT__s_s_p_s[n * 3 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_s_s[n * 1 + 0]);
675 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]);
676
677 }
678
679
680
681 // Forming PRIM_INT__s_s_d_s[24 * 6];
682 for(n = 0; n < 24; ++n) // loop over orders of auxiliary function
683 {
684
685 PRIM_INT__s_s_d_s[n * 6 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_p_s[n * 3 + 0]);
686 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]);
687 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]);
688
689 PRIM_INT__s_s_d_s[n * 6 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_p_s[n * 3 + 0]);
690 PRIM_INT__s_s_d_s[n * 6 + 1] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__s_s_d_s[n * 6 + 1]);
691
692 PRIM_INT__s_s_d_s[n * 6 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_p_s[n * 3 + 0]);
693 PRIM_INT__s_s_d_s[n * 6 + 2] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__s_s_d_s[n * 6 + 2]);
694
695 PRIM_INT__s_s_d_s[n * 6 + 3] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_p_s[n * 3 + 1]);
696 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]);
697 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]);
698
699 PRIM_INT__s_s_d_s[n * 6 + 4] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_p_s[n * 3 + 1]);
700 PRIM_INT__s_s_d_s[n * 6 + 4] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__s_s_d_s[n * 6 + 4]);
701
702 PRIM_INT__s_s_d_s[n * 6 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_p_s[n * 3 + 2]);
703 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]);
704 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]);
705
706 }
707
708
709
710 // Forming PRIM_INT__s_s_f_s[23 * 10];
711 for(n = 0; n < 23; ++n) // loop over orders of auxiliary function
712 {
713
714 PRIM_INT__s_s_f_s[n * 10 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_d_s[n * 6 + 0]);
715 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]);
716 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]);
717
718 PRIM_INT__s_s_f_s[n * 10 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_d_s[n * 6 + 0]);
719 PRIM_INT__s_s_f_s[n * 10 + 1] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__s_s_d_s[(n+1) * 6 + 0], PRIM_INT__s_s_f_s[n * 10 + 1]);
720
721 PRIM_INT__s_s_f_s[n * 10 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_d_s[n * 6 + 0]);
722 PRIM_INT__s_s_f_s[n * 10 + 2] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__s_s_d_s[(n+1) * 6 + 0], PRIM_INT__s_s_f_s[n * 10 + 2]);
723
724 PRIM_INT__s_s_f_s[n * 10 + 3] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_d_s[n * 6 + 3]);
725 PRIM_INT__s_s_f_s[n * 10 + 3] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__s_s_d_s[(n+1) * 6 + 3], PRIM_INT__s_s_f_s[n * 10 + 3]);
726
727 PRIM_INT__s_s_f_s[n * 10 + 4] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_d_s[n * 6 + 1]);
728 PRIM_INT__s_s_f_s[n * 10 + 4] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__s_s_d_s[(n+1) * 6 + 1], PRIM_INT__s_s_f_s[n * 10 + 4]);
729
730 PRIM_INT__s_s_f_s[n * 10 + 5] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_d_s[n * 6 + 5]);
731 PRIM_INT__s_s_f_s[n * 10 + 5] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__s_s_d_s[(n+1) * 6 + 5], PRIM_INT__s_s_f_s[n * 10 + 5]);
732
733 PRIM_INT__s_s_f_s[n * 10 + 6] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_d_s[n * 6 + 3]);
734 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]);
735 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]);
736
737 PRIM_INT__s_s_f_s[n * 10 + 7] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_d_s[n * 6 + 3]);
738 PRIM_INT__s_s_f_s[n * 10 + 7] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__s_s_d_s[(n+1) * 6 + 3], PRIM_INT__s_s_f_s[n * 10 + 7]);
739
740 PRIM_INT__s_s_f_s[n * 10 + 8] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_d_s[n * 6 + 5]);
741 PRIM_INT__s_s_f_s[n * 10 + 8] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__s_s_d_s[(n+1) * 6 + 5], PRIM_INT__s_s_f_s[n * 10 + 8]);
742
743 PRIM_INT__s_s_f_s[n * 10 + 9] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_d_s[n * 6 + 5]);
744 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]);
745 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]);
746
747 }
748
749
750 VRR_K_s_s_g_s(
751 PRIM_INT__s_s_g_s,
752 PRIM_INT__s_s_f_s,
753 PRIM_INT__s_s_d_s,
754 Q_PA,
755 a_over_q,
756 aoq_PQ,
757 one_over_2q,
758 22);
759
760
761 VRR_K_s_s_h_s(
762 PRIM_INT__s_s_h_s,
763 PRIM_INT__s_s_g_s,
764 PRIM_INT__s_s_f_s,
765 Q_PA,
766 a_over_q,
767 aoq_PQ,
768 one_over_2q,
769 21);
770
771
772 ostei_general_vrr1_K(6, 20,
773 one_over_2q, a_over_q, aoq_PQ, Q_PA,
774 PRIM_INT__s_s_h_s, PRIM_INT__s_s_g_s, PRIM_INT__s_s_i_s);
775
776
777 ostei_general_vrr1_K(7, 19,
778 one_over_2q, a_over_q, aoq_PQ, Q_PA,
779 PRIM_INT__s_s_i_s, PRIM_INT__s_s_h_s, PRIM_INT__s_s_k_s);
780
781
782 ostei_general_vrr_I(1, 0, 7, 0, 11,
783 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
784 PRIM_INT__s_s_k_s, NULL, NULL, PRIM_INT__s_s_i_s, NULL, PRIM_INT__p_s_k_s);
785
786
787 ostei_general_vrr_I(1, 0, 6, 0, 11,
788 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
789 PRIM_INT__s_s_i_s, NULL, NULL, PRIM_INT__s_s_h_s, NULL, PRIM_INT__p_s_i_s);
790
791
792 ostei_general_vrr_I(2, 0, 7, 0, 10,
793 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
794 PRIM_INT__p_s_k_s, PRIM_INT__s_s_k_s, NULL, PRIM_INT__p_s_i_s, NULL, PRIM_INT__d_s_k_s);
795
796
797 ostei_general_vrr_I(1, 0, 5, 0, 11,
798 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
799 PRIM_INT__s_s_h_s, NULL, NULL, PRIM_INT__s_s_g_s, NULL, PRIM_INT__p_s_h_s);
800
801
802 ostei_general_vrr_I(2, 0, 6, 0, 10,
803 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
804 PRIM_INT__p_s_i_s, PRIM_INT__s_s_i_s, NULL, PRIM_INT__p_s_h_s, NULL, PRIM_INT__d_s_i_s);
805
806
807 ostei_general_vrr_I(3, 0, 7, 0, 9,
808 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
809 PRIM_INT__d_s_k_s, PRIM_INT__p_s_k_s, NULL, PRIM_INT__d_s_i_s, NULL, PRIM_INT__f_s_k_s);
810
811
812 VRR_I_p_s_g_s(
813 PRIM_INT__p_s_g_s,
814 PRIM_INT__s_s_g_s,
815 PRIM_INT__s_s_f_s,
816 P_PA,
817 aop_PQ,
818 one_over_2pq,
819 11);
820
821
822 ostei_general_vrr_I(2, 0, 5, 0, 10,
823 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
824 PRIM_INT__p_s_h_s, PRIM_INT__s_s_h_s, NULL, PRIM_INT__p_s_g_s, NULL, PRIM_INT__d_s_h_s);
825
826
827 ostei_general_vrr_I(3, 0, 6, 0, 9,
828 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
829 PRIM_INT__d_s_i_s, PRIM_INT__p_s_i_s, NULL, PRIM_INT__d_s_h_s, NULL, PRIM_INT__f_s_i_s);
830
831
832 ostei_general_vrr_I(4, 0, 7, 0, 8,
833 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
834 PRIM_INT__f_s_k_s, PRIM_INT__d_s_k_s, NULL, PRIM_INT__f_s_i_s, NULL, PRIM_INT__g_s_k_s);
835
836
837 VRR_I_p_s_f_s(
838 PRIM_INT__p_s_f_s,
839 PRIM_INT__s_s_f_s,
840 PRIM_INT__s_s_d_s,
841 P_PA,
842 aop_PQ,
843 one_over_2pq,
844 11);
845
846
847 ostei_general_vrr_I(2, 0, 4, 0, 10,
848 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
849 PRIM_INT__p_s_g_s, PRIM_INT__s_s_g_s, NULL, PRIM_INT__p_s_f_s, NULL, PRIM_INT__d_s_g_s);
850
851
852 ostei_general_vrr_I(3, 0, 5, 0, 9,
853 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
854 PRIM_INT__d_s_h_s, PRIM_INT__p_s_h_s, NULL, PRIM_INT__d_s_g_s, NULL, PRIM_INT__f_s_h_s);
855
856
857 ostei_general_vrr_I(4, 0, 6, 0, 8,
858 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
859 PRIM_INT__f_s_i_s, PRIM_INT__d_s_i_s, NULL, PRIM_INT__f_s_h_s, NULL, PRIM_INT__g_s_i_s);
860
861
862 ostei_general_vrr_I(5, 0, 7, 0, 7,
863 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
864 PRIM_INT__g_s_k_s, PRIM_INT__f_s_k_s, NULL, PRIM_INT__g_s_i_s, NULL, PRIM_INT__h_s_k_s);
865
866
867
868 // Forming PRIM_INT__p_s_d_s[11 * 18];
869 for(n = 0; n < 11; ++n) // loop over orders of auxiliary function
870 {
871
872 PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 0]);
873 PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__s_s_d_s[(n+1) * 6 + 0], PRIM_INT__p_s_d_s[n * 18 + 0]);
874 PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_FMADD( vrr_const_2_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__p_s_d_s[n * 18 + 0]);
875
876 PRIM_INT__p_s_d_s[n * 18 + 1] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 1]);
877 PRIM_INT__p_s_d_s[n * 18 + 1] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__s_s_d_s[(n+1) * 6 + 1], PRIM_INT__p_s_d_s[n * 18 + 1]);
878 PRIM_INT__p_s_d_s[n * 18 + 1] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__p_s_d_s[n * 18 + 1]);
879
880 PRIM_INT__p_s_d_s[n * 18 + 2] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 2]);
881 PRIM_INT__p_s_d_s[n * 18 + 2] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__s_s_d_s[(n+1) * 6 + 2], PRIM_INT__p_s_d_s[n * 18 + 2]);
882 PRIM_INT__p_s_d_s[n * 18 + 2] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 2], PRIM_INT__p_s_d_s[n * 18 + 2]);
883
884 PRIM_INT__p_s_d_s[n * 18 + 3] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 3]);
885 PRIM_INT__p_s_d_s[n * 18 + 3] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__s_s_d_s[(n+1) * 6 + 3], PRIM_INT__p_s_d_s[n * 18 + 3]);
886
887 PRIM_INT__p_s_d_s[n * 18 + 4] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 4]);
888 PRIM_INT__p_s_d_s[n * 18 + 4] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__s_s_d_s[(n+1) * 6 + 4], PRIM_INT__p_s_d_s[n * 18 + 4]);
889
890 PRIM_INT__p_s_d_s[n * 18 + 5] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_d_s[n * 6 + 5]);
891 PRIM_INT__p_s_d_s[n * 18 + 5] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__s_s_d_s[(n+1) * 6 + 5], PRIM_INT__p_s_d_s[n * 18 + 5]);
892
893 PRIM_INT__p_s_d_s[n * 18 + 6] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 0]);
894 PRIM_INT__p_s_d_s[n * 18 + 6] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__s_s_d_s[(n+1) * 6 + 0], PRIM_INT__p_s_d_s[n * 18 + 6]);
895
896 PRIM_INT__p_s_d_s[n * 18 + 7] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 1]);
897 PRIM_INT__p_s_d_s[n * 18 + 7] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__s_s_d_s[(n+1) * 6 + 1], PRIM_INT__p_s_d_s[n * 18 + 7]);
898 PRIM_INT__p_s_d_s[n * 18 + 7] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__p_s_d_s[n * 18 + 7]);
899
900 PRIM_INT__p_s_d_s[n * 18 + 8] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 2]);
901 PRIM_INT__p_s_d_s[n * 18 + 8] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__s_s_d_s[(n+1) * 6 + 2], PRIM_INT__p_s_d_s[n * 18 + 8]);
902
903 PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 3]);
904 PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__s_s_d_s[(n+1) * 6 + 3], PRIM_INT__p_s_d_s[n * 18 + 9]);
905 PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_FMADD( vrr_const_2_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__p_s_d_s[n * 18 + 9]);
906
907 PRIM_INT__p_s_d_s[n * 18 + 10] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 4]);
908 PRIM_INT__p_s_d_s[n * 18 + 10] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__s_s_d_s[(n+1) * 6 + 4], PRIM_INT__p_s_d_s[n * 18 + 10]);
909 PRIM_INT__p_s_d_s[n * 18 + 10] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 2], PRIM_INT__p_s_d_s[n * 18 + 10]);
910
911 PRIM_INT__p_s_d_s[n * 18 + 11] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_d_s[n * 6 + 5]);
912 PRIM_INT__p_s_d_s[n * 18 + 11] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__s_s_d_s[(n+1) * 6 + 5], PRIM_INT__p_s_d_s[n * 18 + 11]);
913
914 PRIM_INT__p_s_d_s[n * 18 + 12] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 0]);
915 PRIM_INT__p_s_d_s[n * 18 + 12] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__s_s_d_s[(n+1) * 6 + 0], PRIM_INT__p_s_d_s[n * 18 + 12]);
916
917 PRIM_INT__p_s_d_s[n * 18 + 13] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 1]);
918 PRIM_INT__p_s_d_s[n * 18 + 13] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__s_s_d_s[(n+1) * 6 + 1], PRIM_INT__p_s_d_s[n * 18 + 13]);
919
920 PRIM_INT__p_s_d_s[n * 18 + 14] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 2]);
921 PRIM_INT__p_s_d_s[n * 18 + 14] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__s_s_d_s[(n+1) * 6 + 2], PRIM_INT__p_s_d_s[n * 18 + 14]);
922 PRIM_INT__p_s_d_s[n * 18 + 14] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__p_s_d_s[n * 18 + 14]);
923
924 PRIM_INT__p_s_d_s[n * 18 + 15] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 3]);
925 PRIM_INT__p_s_d_s[n * 18 + 15] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__s_s_d_s[(n+1) * 6 + 3], PRIM_INT__p_s_d_s[n * 18 + 15]);
926
927 PRIM_INT__p_s_d_s[n * 18 + 16] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 4]);
928 PRIM_INT__p_s_d_s[n * 18 + 16] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__s_s_d_s[(n+1) * 6 + 4], PRIM_INT__p_s_d_s[n * 18 + 16]);
929 PRIM_INT__p_s_d_s[n * 18 + 16] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__p_s_d_s[n * 18 + 16]);
930
931 PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_d_s[n * 6 + 5]);
932 PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__s_s_d_s[(n+1) * 6 + 5], PRIM_INT__p_s_d_s[n * 18 + 17]);
933 PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_FMADD( vrr_const_2_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 2], PRIM_INT__p_s_d_s[n * 18 + 17]);
934
935 }
936
937
938 VRR_I_d_s_f_s(
939 PRIM_INT__d_s_f_s,
940 PRIM_INT__p_s_f_s,
941 PRIM_INT__s_s_f_s,
942 PRIM_INT__p_s_d_s,
943 P_PA,
944 a_over_p,
945 aop_PQ,
946 one_over_2p,
947 one_over_2pq,
948 10);
949
950
951 ostei_general_vrr_I(3, 0, 4, 0, 9,
952 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
953 PRIM_INT__d_s_g_s, PRIM_INT__p_s_g_s, NULL, PRIM_INT__d_s_f_s, NULL, PRIM_INT__f_s_g_s);
954
955
956 ostei_general_vrr_I(4, 0, 5, 0, 8,
957 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
958 PRIM_INT__f_s_h_s, PRIM_INT__d_s_h_s, NULL, PRIM_INT__f_s_g_s, NULL, PRIM_INT__g_s_h_s);
959
960
961 ostei_general_vrr_I(5, 0, 6, 0, 7,
962 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
963 PRIM_INT__g_s_i_s, PRIM_INT__f_s_i_s, NULL, PRIM_INT__g_s_h_s, NULL, PRIM_INT__h_s_i_s);
964
965
966 ostei_general_vrr_I(6, 0, 7, 0, 6,
967 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
968 PRIM_INT__h_s_k_s, PRIM_INT__g_s_k_s, NULL, PRIM_INT__h_s_i_s, NULL, PRIM_INT__i_s_k_s);
969
970
971
972 // Forming PRIM_INT__p_s_p_s[11 * 9];
973 for(n = 0; n < 11; ++n) // loop over orders of auxiliary function
974 {
975
976 PRIM_INT__p_s_p_s[n * 9 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_p_s[n * 3 + 0]);
977 PRIM_INT__p_s_p_s[n * 9 + 0] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__p_s_p_s[n * 9 + 0]);
978 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]);
979
980 PRIM_INT__p_s_p_s[n * 9 + 1] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_p_s[n * 3 + 1]);
981 PRIM_INT__p_s_p_s[n * 9 + 1] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__p_s_p_s[n * 9 + 1]);
982
983 PRIM_INT__p_s_p_s[n * 9 + 2] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_p_s[n * 3 + 2]);
984 PRIM_INT__p_s_p_s[n * 9 + 2] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__s_s_p_s[(n+1) * 3 + 2], PRIM_INT__p_s_p_s[n * 9 + 2]);
985
986 PRIM_INT__p_s_p_s[n * 9 + 3] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_p_s[n * 3 + 0]);
987 PRIM_INT__p_s_p_s[n * 9 + 3] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__p_s_p_s[n * 9 + 3]);
988
989 PRIM_INT__p_s_p_s[n * 9 + 4] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_p_s[n * 3 + 1]);
990 PRIM_INT__p_s_p_s[n * 9 + 4] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__p_s_p_s[n * 9 + 4]);
991 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]);
992
993 PRIM_INT__p_s_p_s[n * 9 + 5] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_p_s[n * 3 + 2]);
994 PRIM_INT__p_s_p_s[n * 9 + 5] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__s_s_p_s[(n+1) * 3 + 2], PRIM_INT__p_s_p_s[n * 9 + 5]);
995
996 PRIM_INT__p_s_p_s[n * 9 + 6] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_p_s[n * 3 + 0]);
997 PRIM_INT__p_s_p_s[n * 9 + 6] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__p_s_p_s[n * 9 + 6]);
998
999 PRIM_INT__p_s_p_s[n * 9 + 7] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_p_s[n * 3 + 1]);
1000 PRIM_INT__p_s_p_s[n * 9 + 7] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__p_s_p_s[n * 9 + 7]);
1001
1002 PRIM_INT__p_s_p_s[n * 9 + 8] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_p_s[n * 3 + 2]);
1003 PRIM_INT__p_s_p_s[n * 9 + 8] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__s_s_p_s[(n+1) * 3 + 2], PRIM_INT__p_s_p_s[n * 9 + 8]);
1004 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]);
1005
1006 }
1007
1008
1009 VRR_I_d_s_d_s(
1010 PRIM_INT__d_s_d_s,
1011 PRIM_INT__p_s_d_s,
1012 PRIM_INT__s_s_d_s,
1013 PRIM_INT__p_s_p_s,
1014 P_PA,
1015 a_over_p,
1016 aop_PQ,
1017 one_over_2p,
1018 one_over_2pq,
1019 10);
1020
1021
1022 ostei_general_vrr_I(3, 0, 3, 0, 9,
1023 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1024 PRIM_INT__d_s_f_s, PRIM_INT__p_s_f_s, NULL, PRIM_INT__d_s_d_s, NULL, PRIM_INT__f_s_f_s);
1025
1026
1027 ostei_general_vrr_I(4, 0, 4, 0, 8,
1028 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1029 PRIM_INT__f_s_g_s, PRIM_INT__d_s_g_s, NULL, PRIM_INT__f_s_f_s, NULL, PRIM_INT__g_s_g_s);
1030
1031
1032 ostei_general_vrr_I(5, 0, 5, 0, 7,
1033 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1034 PRIM_INT__g_s_h_s, PRIM_INT__f_s_h_s, NULL, PRIM_INT__g_s_g_s, NULL, PRIM_INT__h_s_h_s);
1035
1036
1037 ostei_general_vrr_I(6, 0, 6, 0, 6,
1038 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1039 PRIM_INT__h_s_i_s, PRIM_INT__g_s_i_s, NULL, PRIM_INT__h_s_h_s, NULL, PRIM_INT__i_s_i_s);
1040
1041
1042 ostei_general_vrr_I(7, 0, 7, 0, 5,
1043 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1044 PRIM_INT__i_s_k_s, PRIM_INT__h_s_k_s, NULL, PRIM_INT__i_s_i_s, NULL, PRIM_INT__k_s_k_s);
1045
1046
1047 ostei_general_vrr1_K(8, 18,
1048 one_over_2q, a_over_q, aoq_PQ, Q_PA,
1049 PRIM_INT__s_s_k_s, PRIM_INT__s_s_i_s, PRIM_INT__s_s_l_s);
1050
1051
1052 ostei_general_vrr_I(1, 0, 8, 0, 11,
1053 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1054 PRIM_INT__s_s_l_s, NULL, NULL, PRIM_INT__s_s_k_s, NULL, PRIM_INT__p_s_l_s);
1055
1056
1057 ostei_general_vrr_I(2, 0, 8, 0, 10,
1058 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1059 PRIM_INT__p_s_l_s, PRIM_INT__s_s_l_s, NULL, PRIM_INT__p_s_k_s, NULL, PRIM_INT__d_s_l_s);
1060
1061
1062 ostei_general_vrr_I(3, 0, 8, 0, 9,
1063 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1064 PRIM_INT__d_s_l_s, PRIM_INT__p_s_l_s, NULL, PRIM_INT__d_s_k_s, NULL, PRIM_INT__f_s_l_s);
1065
1066
1067 ostei_general_vrr_I(4, 0, 8, 0, 8,
1068 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1069 PRIM_INT__f_s_l_s, PRIM_INT__d_s_l_s, NULL, PRIM_INT__f_s_k_s, NULL, PRIM_INT__g_s_l_s);
1070
1071
1072 ostei_general_vrr_I(5, 0, 8, 0, 7,
1073 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1074 PRIM_INT__g_s_l_s, PRIM_INT__f_s_l_s, NULL, PRIM_INT__g_s_k_s, NULL, PRIM_INT__h_s_l_s);
1075
1076
1077 ostei_general_vrr_I(6, 0, 8, 0, 6,
1078 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1079 PRIM_INT__h_s_l_s, PRIM_INT__g_s_l_s, NULL, PRIM_INT__h_s_k_s, NULL, PRIM_INT__i_s_l_s);
1080
1081
1082 ostei_general_vrr_I(7, 0, 8, 0, 5,
1083 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1084 PRIM_INT__i_s_l_s, PRIM_INT__h_s_l_s, NULL, PRIM_INT__i_s_k_s, NULL, PRIM_INT__k_s_l_s);
1085
1086
1087
1088 // Forming PRIM_INT__p_s_s_s[11 * 3];
1089 for(n = 0; n < 11; ++n) // loop over orders of auxiliary function
1090 {
1091
1092 PRIM_INT__p_s_s_s[n * 3 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_s_s[n * 1 + 0]);
1093 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]);
1094
1095 PRIM_INT__p_s_s_s[n * 3 + 1] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_s_s[n * 1 + 0]);
1096 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]);
1097
1098 PRIM_INT__p_s_s_s[n * 3 + 2] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_s_s[n * 1 + 0]);
1099 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]);
1100
1101 }
1102
1103
1104
1105 // Forming PRIM_INT__d_s_p_s[10 * 18];
1106 for(n = 0; n < 10; ++n) // loop over orders of auxiliary function
1107 {
1108
1109 PRIM_INT__d_s_p_s[n * 18 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__p_s_p_s[n * 9 + 0]);
1110 PRIM_INT__d_s_p_s[n * 18 + 0] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__p_s_p_s[(n+1) * 9 + 0], PRIM_INT__d_s_p_s[n * 18 + 0]);
1111 PRIM_INT__d_s_p_s[n * 18 + 0] = SIMINT_FMADD( vrr_const_1_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__s_s_p_s[n * 3 + 0]), PRIM_INT__d_s_p_s[n * 18 + 0]);
1112 PRIM_INT__d_s_p_s[n * 18 + 0] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__d_s_p_s[n * 18 + 0]);
1113
1114 PRIM_INT__d_s_p_s[n * 18 + 1] = SIMINT_MUL(P_PA[0], PRIM_INT__p_s_p_s[n * 9 + 1]);
1115 PRIM_INT__d_s_p_s[n * 18 + 1] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__p_s_p_s[(n+1) * 9 + 1], PRIM_INT__d_s_p_s[n * 18 + 1]);
1116 PRIM_INT__d_s_p_s[n * 18 + 1] = SIMINT_FMADD( vrr_const_1_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__s_s_p_s[n * 3 + 1]), PRIM_INT__d_s_p_s[n * 18 + 1]);
1117
1118 PRIM_INT__d_s_p_s[n * 18 + 2] = SIMINT_MUL(P_PA[0], PRIM_INT__p_s_p_s[n * 9 + 2]);
1119 PRIM_INT__d_s_p_s[n * 18 + 2] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__p_s_p_s[(n+1) * 9 + 2], PRIM_INT__d_s_p_s[n * 18 + 2]);
1120 PRIM_INT__d_s_p_s[n * 18 + 2] = SIMINT_FMADD( vrr_const_1_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__s_s_p_s[(n+1) * 3 + 2], PRIM_INT__s_s_p_s[n * 3 + 2]), PRIM_INT__d_s_p_s[n * 18 + 2]);
1121
1122 PRIM_INT__d_s_p_s[n * 18 + 9] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_p_s[n * 9 + 3]);
1123 PRIM_INT__d_s_p_s[n * 18 + 9] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__p_s_p_s[(n+1) * 9 + 3], PRIM_INT__d_s_p_s[n * 18 + 9]);
1124 PRIM_INT__d_s_p_s[n * 18 + 9] = SIMINT_FMADD( vrr_const_1_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__s_s_p_s[n * 3 + 0]), PRIM_INT__d_s_p_s[n * 18 + 9]);
1125
1126 PRIM_INT__d_s_p_s[n * 18 + 10] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_p_s[n * 9 + 4]);
1127 PRIM_INT__d_s_p_s[n * 18 + 10] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__p_s_p_s[(n+1) * 9 + 4], PRIM_INT__d_s_p_s[n * 18 + 10]);
1128 PRIM_INT__d_s_p_s[n * 18 + 10] = SIMINT_FMADD( vrr_const_1_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__s_s_p_s[n * 3 + 1]), PRIM_INT__d_s_p_s[n * 18 + 10]);
1129 PRIM_INT__d_s_p_s[n * 18 + 10] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__d_s_p_s[n * 18 + 10]);
1130
1131 PRIM_INT__d_s_p_s[n * 18 + 11] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_p_s[n * 9 + 5]);
1132 PRIM_INT__d_s_p_s[n * 18 + 11] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__p_s_p_s[(n+1) * 9 + 5], PRIM_INT__d_s_p_s[n * 18 + 11]);
1133 PRIM_INT__d_s_p_s[n * 18 + 11] = SIMINT_FMADD( vrr_const_1_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__s_s_p_s[(n+1) * 3 + 2], PRIM_INT__s_s_p_s[n * 3 + 2]), PRIM_INT__d_s_p_s[n * 18 + 11]);
1134
1135 PRIM_INT__d_s_p_s[n * 18 + 15] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_p_s[n * 9 + 6]);
1136 PRIM_INT__d_s_p_s[n * 18 + 15] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__p_s_p_s[(n+1) * 9 + 6], PRIM_INT__d_s_p_s[n * 18 + 15]);
1137 PRIM_INT__d_s_p_s[n * 18 + 15] = SIMINT_FMADD( vrr_const_1_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__s_s_p_s[n * 3 + 0]), PRIM_INT__d_s_p_s[n * 18 + 15]);
1138
1139 PRIM_INT__d_s_p_s[n * 18 + 16] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_p_s[n * 9 + 7]);
1140 PRIM_INT__d_s_p_s[n * 18 + 16] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__p_s_p_s[(n+1) * 9 + 7], PRIM_INT__d_s_p_s[n * 18 + 16]);
1141 PRIM_INT__d_s_p_s[n * 18 + 16] = SIMINT_FMADD( vrr_const_1_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__s_s_p_s[n * 3 + 1]), PRIM_INT__d_s_p_s[n * 18 + 16]);
1142
1143 PRIM_INT__d_s_p_s[n * 18 + 17] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_p_s[n * 9 + 8]);
1144 PRIM_INT__d_s_p_s[n * 18 + 17] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__p_s_p_s[(n+1) * 9 + 8], PRIM_INT__d_s_p_s[n * 18 + 17]);
1145 PRIM_INT__d_s_p_s[n * 18 + 17] = SIMINT_FMADD( vrr_const_1_over_2p, SIMINT_FMADD(a_over_p, PRIM_INT__s_s_p_s[(n+1) * 3 + 2], PRIM_INT__s_s_p_s[n * 3 + 2]), PRIM_INT__d_s_p_s[n * 18 + 17]);
1146 PRIM_INT__d_s_p_s[n * 18 + 17] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__d_s_p_s[n * 18 + 17]);
1147
1148 }
1149
1150
1151 VRR_I_f_s_d_s(
1152 PRIM_INT__f_s_d_s,
1153 PRIM_INT__d_s_d_s,
1154 PRIM_INT__p_s_d_s,
1155 PRIM_INT__d_s_p_s,
1156 P_PA,
1157 a_over_p,
1158 aop_PQ,
1159 one_over_2p,
1160 one_over_2pq,
1161 9);
1162
1163
1164 ostei_general_vrr_I(4, 0, 3, 0, 8,
1165 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1166 PRIM_INT__f_s_f_s, PRIM_INT__d_s_f_s, NULL, PRIM_INT__f_s_d_s, NULL, PRIM_INT__g_s_f_s);
1167
1168
1169 ostei_general_vrr_I(5, 0, 4, 0, 7,
1170 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1171 PRIM_INT__g_s_g_s, PRIM_INT__f_s_g_s, NULL, PRIM_INT__g_s_f_s, NULL, PRIM_INT__h_s_g_s);
1172
1173
1174 ostei_general_vrr_I(6, 0, 5, 0, 6,
1175 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1176 PRIM_INT__h_s_h_s, PRIM_INT__g_s_h_s, NULL, PRIM_INT__h_s_g_s, NULL, PRIM_INT__i_s_h_s);
1177
1178
1179 ostei_general_vrr_I(7, 0, 6, 0, 5,
1180 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1181 PRIM_INT__i_s_i_s, PRIM_INT__h_s_i_s, NULL, PRIM_INT__i_s_h_s, NULL, PRIM_INT__k_s_i_s);
1182
1183
1184 ostei_general_vrr_I(8, 0, 7, 0, 4,
1185 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1186 PRIM_INT__k_s_k_s, PRIM_INT__i_s_k_s, NULL, PRIM_INT__k_s_i_s, NULL, PRIM_INT__l_s_k_s);
1187
1188
1189 ostei_general_vrr1_K(9, 17,
1190 one_over_2q, a_over_q, aoq_PQ, Q_PA,
1191 PRIM_INT__s_s_l_s, PRIM_INT__s_s_k_s, PRIM_INT__s_s_m_s);
1192
1193
1194 ostei_general_vrr_I(1, 0, 9, 0, 11,
1195 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1196 PRIM_INT__s_s_m_s, NULL, NULL, PRIM_INT__s_s_l_s, NULL, PRIM_INT__p_s_m_s);
1197
1198
1199 ostei_general_vrr_I(2, 0, 9, 0, 10,
1200 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1201 PRIM_INT__p_s_m_s, PRIM_INT__s_s_m_s, NULL, PRIM_INT__p_s_l_s, NULL, PRIM_INT__d_s_m_s);
1202
1203
1204 ostei_general_vrr_I(3, 0, 9, 0, 9,
1205 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1206 PRIM_INT__d_s_m_s, PRIM_INT__p_s_m_s, NULL, PRIM_INT__d_s_l_s, NULL, PRIM_INT__f_s_m_s);
1207
1208
1209 ostei_general_vrr_I(4, 0, 9, 0, 8,
1210 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1211 PRIM_INT__f_s_m_s, PRIM_INT__d_s_m_s, NULL, PRIM_INT__f_s_l_s, NULL, PRIM_INT__g_s_m_s);
1212
1213
1214 ostei_general_vrr_I(5, 0, 9, 0, 7,
1215 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1216 PRIM_INT__g_s_m_s, PRIM_INT__f_s_m_s, NULL, PRIM_INT__g_s_l_s, NULL, PRIM_INT__h_s_m_s);
1217
1218
1219 ostei_general_vrr_I(6, 0, 9, 0, 6,
1220 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1221 PRIM_INT__h_s_m_s, PRIM_INT__g_s_m_s, NULL, PRIM_INT__h_s_l_s, NULL, PRIM_INT__i_s_m_s);
1222
1223
1224 ostei_general_vrr_I(7, 0, 9, 0, 5,
1225 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1226 PRIM_INT__i_s_m_s, PRIM_INT__h_s_m_s, NULL, PRIM_INT__i_s_l_s, NULL, PRIM_INT__k_s_m_s);
1227
1228
1229 ostei_general_vrr_I(8, 0, 8, 0, 4,
1230 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1231 PRIM_INT__k_s_l_s, PRIM_INT__i_s_l_s, NULL, PRIM_INT__k_s_k_s, NULL, PRIM_INT__l_s_l_s);
1232
1233
1234
1235 // Forming PRIM_INT__d_s_s_s[10 * 6];
1236 for(n = 0; n < 10; ++n) // loop over orders of auxiliary function
1237 {
1238
1239 PRIM_INT__d_s_s_s[n * 6 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__p_s_s_s[n * 3 + 0]);
1240 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]);
1241 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]);
1242
1243 PRIM_INT__d_s_s_s[n * 6 + 3] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_s_s[n * 3 + 1]);
1244 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]);
1245 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]);
1246
1247 PRIM_INT__d_s_s_s[n * 6 + 5] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_s_s[n * 3 + 2]);
1248 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]);
1249 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]);
1250
1251 }
1252
1253
1254 VRR_I_f_s_p_s(
1255 PRIM_INT__f_s_p_s,
1256 PRIM_INT__d_s_p_s,
1257 PRIM_INT__p_s_p_s,
1258 PRIM_INT__d_s_s_s,
1259 P_PA,
1260 a_over_p,
1261 aop_PQ,
1262 one_over_2p,
1263 one_over_2pq,
1264 9);
1265
1266
1267 ostei_general_vrr_I(4, 0, 2, 0, 8,
1268 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1269 PRIM_INT__f_s_d_s, PRIM_INT__d_s_d_s, NULL, PRIM_INT__f_s_p_s, NULL, PRIM_INT__g_s_d_s);
1270
1271
1272 ostei_general_vrr_I(5, 0, 3, 0, 7,
1273 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1274 PRIM_INT__g_s_f_s, PRIM_INT__f_s_f_s, NULL, PRIM_INT__g_s_d_s, NULL, PRIM_INT__h_s_f_s);
1275
1276
1277 ostei_general_vrr_I(6, 0, 4, 0, 6,
1278 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1279 PRIM_INT__h_s_g_s, PRIM_INT__g_s_g_s, NULL, PRIM_INT__h_s_f_s, NULL, PRIM_INT__i_s_g_s);
1280
1281
1282 ostei_general_vrr_I(7, 0, 5, 0, 5,
1283 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1284 PRIM_INT__i_s_h_s, PRIM_INT__h_s_h_s, NULL, PRIM_INT__i_s_g_s, NULL, PRIM_INT__k_s_h_s);
1285
1286
1287 ostei_general_vrr_I(8, 0, 6, 0, 4,
1288 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1289 PRIM_INT__k_s_i_s, PRIM_INT__i_s_i_s, NULL, PRIM_INT__k_s_h_s, NULL, PRIM_INT__l_s_i_s);
1290
1291
1292 ostei_general_vrr_I(9, 0, 7, 0, 3,
1293 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1294 PRIM_INT__l_s_k_s, PRIM_INT__k_s_k_s, NULL, PRIM_INT__l_s_i_s, NULL, PRIM_INT__m_s_k_s);
1295
1296
1297 ostei_general_vrr1_K(10, 16,
1298 one_over_2q, a_over_q, aoq_PQ, Q_PA,
1299 PRIM_INT__s_s_m_s, PRIM_INT__s_s_l_s, PRIM_INT__s_s_n_s);
1300
1301
1302 ostei_general_vrr_I(1, 0, 10, 0, 11,
1303 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1304 PRIM_INT__s_s_n_s, NULL, NULL, PRIM_INT__s_s_m_s, NULL, PRIM_INT__p_s_n_s);
1305
1306
1307 ostei_general_vrr_I(2, 0, 10, 0, 10,
1308 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1309 PRIM_INT__p_s_n_s, PRIM_INT__s_s_n_s, NULL, PRIM_INT__p_s_m_s, NULL, PRIM_INT__d_s_n_s);
1310
1311
1312 ostei_general_vrr_I(3, 0, 10, 0, 9,
1313 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1314 PRIM_INT__d_s_n_s, PRIM_INT__p_s_n_s, NULL, PRIM_INT__d_s_m_s, NULL, PRIM_INT__f_s_n_s);
1315
1316
1317 ostei_general_vrr_I(4, 0, 10, 0, 8,
1318 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1319 PRIM_INT__f_s_n_s, PRIM_INT__d_s_n_s, NULL, PRIM_INT__f_s_m_s, NULL, PRIM_INT__g_s_n_s);
1320
1321
1322 ostei_general_vrr_I(5, 0, 10, 0, 7,
1323 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1324 PRIM_INT__g_s_n_s, PRIM_INT__f_s_n_s, NULL, PRIM_INT__g_s_m_s, NULL, PRIM_INT__h_s_n_s);
1325
1326
1327 ostei_general_vrr_I(6, 0, 10, 0, 6,
1328 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1329 PRIM_INT__h_s_n_s, PRIM_INT__g_s_n_s, NULL, PRIM_INT__h_s_m_s, NULL, PRIM_INT__i_s_n_s);
1330
1331
1332 ostei_general_vrr_I(7, 0, 10, 0, 5,
1333 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1334 PRIM_INT__i_s_n_s, PRIM_INT__h_s_n_s, NULL, PRIM_INT__i_s_m_s, NULL, PRIM_INT__k_s_n_s);
1335
1336
1337 ostei_general_vrr_I(8, 0, 9, 0, 4,
1338 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1339 PRIM_INT__k_s_m_s, PRIM_INT__i_s_m_s, NULL, PRIM_INT__k_s_l_s, NULL, PRIM_INT__l_s_m_s);
1340
1341
1342 ostei_general_vrr_I(9, 0, 8, 0, 3,
1343 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1344 PRIM_INT__l_s_l_s, PRIM_INT__k_s_l_s, NULL, PRIM_INT__l_s_k_s, NULL, PRIM_INT__m_s_l_s);
1345
1346
1347
1348 // Forming PRIM_INT__f_s_s_s[9 * 10];
1349 for(n = 0; n < 9; ++n) // loop over orders of auxiliary function
1350 {
1351
1352 PRIM_INT__f_s_s_s[n * 10 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__d_s_s_s[n * 6 + 0]);
1353 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]);
1354 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]);
1355
1356 PRIM_INT__f_s_s_s[n * 10 + 6] = SIMINT_MUL(P_PA[1], PRIM_INT__d_s_s_s[n * 6 + 3]);
1357 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]);
1358 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]);
1359
1360 PRIM_INT__f_s_s_s[n * 10 + 9] = SIMINT_MUL(P_PA[2], PRIM_INT__d_s_s_s[n * 6 + 5]);
1361 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]);
1362 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]);
1363
1364 }
1365
1366
1367 VRR_I_g_s_p_s(
1368 PRIM_INT__g_s_p_s,
1369 PRIM_INT__f_s_p_s,
1370 PRIM_INT__d_s_p_s,
1371 PRIM_INT__f_s_s_s,
1372 P_PA,
1373 a_over_p,
1374 aop_PQ,
1375 one_over_2p,
1376 one_over_2pq,
1377 8);
1378
1379
1380 ostei_general_vrr_I(5, 0, 2, 0, 7,
1381 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1382 PRIM_INT__g_s_d_s, PRIM_INT__f_s_d_s, NULL, PRIM_INT__g_s_p_s, NULL, PRIM_INT__h_s_d_s);
1383
1384
1385 ostei_general_vrr_I(6, 0, 3, 0, 6,
1386 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1387 PRIM_INT__h_s_f_s, PRIM_INT__g_s_f_s, NULL, PRIM_INT__h_s_d_s, NULL, PRIM_INT__i_s_f_s);
1388
1389
1390 ostei_general_vrr_I(7, 0, 4, 0, 5,
1391 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1392 PRIM_INT__i_s_g_s, PRIM_INT__h_s_g_s, NULL, PRIM_INT__i_s_f_s, NULL, PRIM_INT__k_s_g_s);
1393
1394
1395 ostei_general_vrr_I(8, 0, 5, 0, 4,
1396 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1397 PRIM_INT__k_s_h_s, PRIM_INT__i_s_h_s, NULL, PRIM_INT__k_s_g_s, NULL, PRIM_INT__l_s_h_s);
1398
1399
1400 ostei_general_vrr_I(9, 0, 6, 0, 3,
1401 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1402 PRIM_INT__l_s_i_s, PRIM_INT__k_s_i_s, NULL, PRIM_INT__l_s_h_s, NULL, PRIM_INT__m_s_i_s);
1403
1404
1405 ostei_general_vrr_I(10, 0, 7, 0, 2,
1406 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1407 PRIM_INT__m_s_k_s, PRIM_INT__l_s_k_s, NULL, PRIM_INT__m_s_i_s, NULL, PRIM_INT__n_s_k_s);
1408
1409
1410 ostei_general_vrr1_K(11, 15,
1411 one_over_2q, a_over_q, aoq_PQ, Q_PA,
1412 PRIM_INT__s_s_n_s, PRIM_INT__s_s_m_s, PRIM_INT__s_s_o_s);
1413
1414
1415 ostei_general_vrr_I(1, 0, 11, 0, 11,
1416 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1417 PRIM_INT__s_s_o_s, NULL, NULL, PRIM_INT__s_s_n_s, NULL, PRIM_INT__p_s_o_s);
1418
1419
1420 ostei_general_vrr_I(2, 0, 11, 0, 10,
1421 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1422 PRIM_INT__p_s_o_s, PRIM_INT__s_s_o_s, NULL, PRIM_INT__p_s_n_s, NULL, PRIM_INT__d_s_o_s);
1423
1424
1425 ostei_general_vrr_I(3, 0, 11, 0, 9,
1426 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1427 PRIM_INT__d_s_o_s, PRIM_INT__p_s_o_s, NULL, PRIM_INT__d_s_n_s, NULL, PRIM_INT__f_s_o_s);
1428
1429
1430 ostei_general_vrr_I(4, 0, 11, 0, 8,
1431 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1432 PRIM_INT__f_s_o_s, PRIM_INT__d_s_o_s, NULL, PRIM_INT__f_s_n_s, NULL, PRIM_INT__g_s_o_s);
1433
1434
1435 ostei_general_vrr_I(5, 0, 11, 0, 7,
1436 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1437 PRIM_INT__g_s_o_s, PRIM_INT__f_s_o_s, NULL, PRIM_INT__g_s_n_s, NULL, PRIM_INT__h_s_o_s);
1438
1439
1440 ostei_general_vrr_I(6, 0, 11, 0, 6,
1441 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1442 PRIM_INT__h_s_o_s, PRIM_INT__g_s_o_s, NULL, PRIM_INT__h_s_n_s, NULL, PRIM_INT__i_s_o_s);
1443
1444
1445 ostei_general_vrr_I(7, 0, 11, 0, 5,
1446 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1447 PRIM_INT__i_s_o_s, PRIM_INT__h_s_o_s, NULL, PRIM_INT__i_s_n_s, NULL, PRIM_INT__k_s_o_s);
1448
1449
1450 ostei_general_vrr_I(8, 0, 10, 0, 4,
1451 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1452 PRIM_INT__k_s_n_s, PRIM_INT__i_s_n_s, NULL, PRIM_INT__k_s_m_s, NULL, PRIM_INT__l_s_n_s);
1453
1454
1455 ostei_general_vrr_I(9, 0, 9, 0, 3,
1456 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1457 PRIM_INT__l_s_m_s, PRIM_INT__k_s_m_s, NULL, PRIM_INT__l_s_l_s, NULL, PRIM_INT__m_s_m_s);
1458
1459
1460 ostei_general_vrr_I(10, 0, 8, 0, 2,
1461 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1462 PRIM_INT__m_s_l_s, PRIM_INT__l_s_l_s, NULL, PRIM_INT__m_s_k_s, NULL, PRIM_INT__n_s_l_s);
1463
1464
1465 VRR_I_g_s_s_s(
1466 PRIM_INT__g_s_s_s,
1467 PRIM_INT__f_s_s_s,
1468 PRIM_INT__d_s_s_s,
1469 P_PA,
1470 a_over_p,
1471 aop_PQ,
1472 one_over_2p,
1473 8);
1474
1475
1476 ostei_general_vrr_I(5, 0, 1, 0, 7,
1477 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1478 PRIM_INT__g_s_p_s, PRIM_INT__f_s_p_s, NULL, PRIM_INT__g_s_s_s, NULL, PRIM_INT__h_s_p_s);
1479
1480
1481 ostei_general_vrr_I(6, 0, 2, 0, 6,
1482 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1483 PRIM_INT__h_s_d_s, PRIM_INT__g_s_d_s, NULL, PRIM_INT__h_s_p_s, NULL, PRIM_INT__i_s_d_s);
1484
1485
1486 ostei_general_vrr_I(7, 0, 3, 0, 5,
1487 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1488 PRIM_INT__i_s_f_s, PRIM_INT__h_s_f_s, NULL, PRIM_INT__i_s_d_s, NULL, PRIM_INT__k_s_f_s);
1489
1490
1491 ostei_general_vrr_I(8, 0, 4, 0, 4,
1492 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1493 PRIM_INT__k_s_g_s, PRIM_INT__i_s_g_s, NULL, PRIM_INT__k_s_f_s, NULL, PRIM_INT__l_s_g_s);
1494
1495
1496 ostei_general_vrr_I(9, 0, 5, 0, 3,
1497 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1498 PRIM_INT__l_s_h_s, PRIM_INT__k_s_h_s, NULL, PRIM_INT__l_s_g_s, NULL, PRIM_INT__m_s_h_s);
1499
1500
1501 ostei_general_vrr_I(10, 0, 6, 0, 2,
1502 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1503 PRIM_INT__m_s_i_s, PRIM_INT__l_s_i_s, NULL, PRIM_INT__m_s_h_s, NULL, PRIM_INT__n_s_i_s);
1504
1505
1506 ostei_general_vrr_I(11, 0, 7, 0, 1,
1507 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1508 PRIM_INT__n_s_k_s, PRIM_INT__m_s_k_s, NULL, PRIM_INT__n_s_i_s, NULL, PRIM_INT__o_s_k_s);
1509
1510
1511 ostei_general_vrr1_K(12, 14,
1512 one_over_2q, a_over_q, aoq_PQ, Q_PA,
1513 PRIM_INT__s_s_o_s, PRIM_INT__s_s_n_s, PRIM_INT__s_s_q_s);
1514
1515
1516 ostei_general_vrr_I(1, 0, 12, 0, 11,
1517 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1518 PRIM_INT__s_s_q_s, NULL, NULL, PRIM_INT__s_s_o_s, NULL, PRIM_INT__p_s_q_s);
1519
1520
1521 ostei_general_vrr_I(2, 0, 12, 0, 10,
1522 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1523 PRIM_INT__p_s_q_s, PRIM_INT__s_s_q_s, NULL, PRIM_INT__p_s_o_s, NULL, PRIM_INT__d_s_q_s);
1524
1525
1526 ostei_general_vrr_I(3, 0, 12, 0, 9,
1527 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1528 PRIM_INT__d_s_q_s, PRIM_INT__p_s_q_s, NULL, PRIM_INT__d_s_o_s, NULL, PRIM_INT__f_s_q_s);
1529
1530
1531 ostei_general_vrr_I(4, 0, 12, 0, 8,
1532 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1533 PRIM_INT__f_s_q_s, PRIM_INT__d_s_q_s, NULL, PRIM_INT__f_s_o_s, NULL, PRIM_INT__g_s_q_s);
1534
1535
1536 ostei_general_vrr_I(5, 0, 12, 0, 7,
1537 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1538 PRIM_INT__g_s_q_s, PRIM_INT__f_s_q_s, NULL, PRIM_INT__g_s_o_s, NULL, PRIM_INT__h_s_q_s);
1539
1540
1541 ostei_general_vrr_I(6, 0, 12, 0, 6,
1542 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1543 PRIM_INT__h_s_q_s, PRIM_INT__g_s_q_s, NULL, PRIM_INT__h_s_o_s, NULL, PRIM_INT__i_s_q_s);
1544
1545
1546 ostei_general_vrr_I(7, 0, 12, 0, 5,
1547 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1548 PRIM_INT__i_s_q_s, PRIM_INT__h_s_q_s, NULL, PRIM_INT__i_s_o_s, NULL, PRIM_INT__k_s_q_s);
1549
1550
1551 ostei_general_vrr_I(8, 0, 11, 0, 4,
1552 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1553 PRIM_INT__k_s_o_s, PRIM_INT__i_s_o_s, NULL, PRIM_INT__k_s_n_s, NULL, PRIM_INT__l_s_o_s);
1554
1555
1556 ostei_general_vrr_I(9, 0, 10, 0, 3,
1557 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1558 PRIM_INT__l_s_n_s, PRIM_INT__k_s_n_s, NULL, PRIM_INT__l_s_m_s, NULL, PRIM_INT__m_s_n_s);
1559
1560
1561 ostei_general_vrr_I(10, 0, 9, 0, 2,
1562 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1563 PRIM_INT__m_s_m_s, PRIM_INT__l_s_m_s, NULL, PRIM_INT__m_s_l_s, NULL, PRIM_INT__n_s_m_s);
1564
1565
1566 ostei_general_vrr_I(11, 0, 8, 0, 1,
1567 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1568 PRIM_INT__n_s_l_s, PRIM_INT__m_s_l_s, NULL, PRIM_INT__n_s_k_s, NULL, PRIM_INT__o_s_l_s);
1569
1570
1571 ostei_general_vrr1_K(13, 13,
1572 one_over_2q, a_over_q, aoq_PQ, Q_PA,
1573 PRIM_INT__s_s_q_s, PRIM_INT__s_s_o_s, PRIM_INT__s_s_r_s);
1574
1575
1576 ostei_general_vrr_I(1, 0, 13, 0, 11,
1577 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1578 PRIM_INT__s_s_r_s, NULL, NULL, PRIM_INT__s_s_q_s, NULL, PRIM_INT__p_s_r_s);
1579
1580
1581 ostei_general_vrr_I(2, 0, 13, 0, 10,
1582 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1583 PRIM_INT__p_s_r_s, PRIM_INT__s_s_r_s, NULL, PRIM_INT__p_s_q_s, NULL, PRIM_INT__d_s_r_s);
1584
1585
1586 ostei_general_vrr_I(3, 0, 13, 0, 9,
1587 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1588 PRIM_INT__d_s_r_s, PRIM_INT__p_s_r_s, NULL, PRIM_INT__d_s_q_s, NULL, PRIM_INT__f_s_r_s);
1589
1590
1591 ostei_general_vrr_I(4, 0, 13, 0, 8,
1592 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1593 PRIM_INT__f_s_r_s, PRIM_INT__d_s_r_s, NULL, PRIM_INT__f_s_q_s, NULL, PRIM_INT__g_s_r_s);
1594
1595
1596 ostei_general_vrr_I(5, 0, 13, 0, 7,
1597 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1598 PRIM_INT__g_s_r_s, PRIM_INT__f_s_r_s, NULL, PRIM_INT__g_s_q_s, NULL, PRIM_INT__h_s_r_s);
1599
1600
1601 ostei_general_vrr_I(6, 0, 13, 0, 6,
1602 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1603 PRIM_INT__h_s_r_s, PRIM_INT__g_s_r_s, NULL, PRIM_INT__h_s_q_s, NULL, PRIM_INT__i_s_r_s);
1604
1605
1606 ostei_general_vrr_I(7, 0, 13, 0, 5,
1607 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1608 PRIM_INT__i_s_r_s, PRIM_INT__h_s_r_s, NULL, PRIM_INT__i_s_q_s, NULL, PRIM_INT__k_s_r_s);
1609
1610
1611 ostei_general_vrr_I(8, 0, 12, 0, 4,
1612 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1613 PRIM_INT__k_s_q_s, PRIM_INT__i_s_q_s, NULL, PRIM_INT__k_s_o_s, NULL, PRIM_INT__l_s_q_s);
1614
1615
1616 ostei_general_vrr_I(9, 0, 11, 0, 3,
1617 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1618 PRIM_INT__l_s_o_s, PRIM_INT__k_s_o_s, NULL, PRIM_INT__l_s_n_s, NULL, PRIM_INT__m_s_o_s);
1619
1620
1621 ostei_general_vrr_I(10, 0, 10, 0, 2,
1622 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1623 PRIM_INT__m_s_n_s, PRIM_INT__l_s_n_s, NULL, PRIM_INT__m_s_m_s, NULL, PRIM_INT__n_s_n_s);
1624
1625
1626 ostei_general_vrr_I(11, 0, 9, 0, 1,
1627 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1628 PRIM_INT__n_s_m_s, PRIM_INT__m_s_m_s, NULL, PRIM_INT__n_s_l_s, NULL, PRIM_INT__o_s_m_s);
1629
1630
1631 ostei_general_vrr1_K(14, 12,
1632 one_over_2q, a_over_q, aoq_PQ, Q_PA,
1633 PRIM_INT__s_s_r_s, PRIM_INT__s_s_q_s, PRIM_INT__s_s_t_s);
1634
1635
1636 ostei_general_vrr_I(1, 0, 14, 0, 11,
1637 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1638 PRIM_INT__s_s_t_s, NULL, NULL, PRIM_INT__s_s_r_s, NULL, PRIM_INT__p_s_t_s);
1639
1640
1641 ostei_general_vrr_I(2, 0, 14, 0, 10,
1642 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1643 PRIM_INT__p_s_t_s, PRIM_INT__s_s_t_s, NULL, PRIM_INT__p_s_r_s, NULL, PRIM_INT__d_s_t_s);
1644
1645
1646 ostei_general_vrr_I(3, 0, 14, 0, 9,
1647 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1648 PRIM_INT__d_s_t_s, PRIM_INT__p_s_t_s, NULL, PRIM_INT__d_s_r_s, NULL, PRIM_INT__f_s_t_s);
1649
1650
1651 ostei_general_vrr_I(4, 0, 14, 0, 8,
1652 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1653 PRIM_INT__f_s_t_s, PRIM_INT__d_s_t_s, NULL, PRIM_INT__f_s_r_s, NULL, PRIM_INT__g_s_t_s);
1654
1655
1656 ostei_general_vrr_I(5, 0, 14, 0, 7,
1657 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1658 PRIM_INT__g_s_t_s, PRIM_INT__f_s_t_s, NULL, PRIM_INT__g_s_r_s, NULL, PRIM_INT__h_s_t_s);
1659
1660
1661 ostei_general_vrr_I(6, 0, 14, 0, 6,
1662 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1663 PRIM_INT__h_s_t_s, PRIM_INT__g_s_t_s, NULL, PRIM_INT__h_s_r_s, NULL, PRIM_INT__i_s_t_s);
1664
1665
1666 ostei_general_vrr_I(7, 0, 14, 0, 5,
1667 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1668 PRIM_INT__i_s_t_s, PRIM_INT__h_s_t_s, NULL, PRIM_INT__i_s_r_s, NULL, PRIM_INT__k_s_t_s);
1669
1670
1671 ostei_general_vrr_I(8, 0, 13, 0, 4,
1672 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1673 PRIM_INT__k_s_r_s, PRIM_INT__i_s_r_s, NULL, PRIM_INT__k_s_q_s, NULL, PRIM_INT__l_s_r_s);
1674
1675
1676 ostei_general_vrr_I(9, 0, 12, 0, 3,
1677 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1678 PRIM_INT__l_s_q_s, PRIM_INT__k_s_q_s, NULL, PRIM_INT__l_s_o_s, NULL, PRIM_INT__m_s_q_s);
1679
1680
1681 ostei_general_vrr_I(10, 0, 11, 0, 2,
1682 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1683 PRIM_INT__m_s_o_s, PRIM_INT__l_s_o_s, NULL, PRIM_INT__m_s_n_s, NULL, PRIM_INT__n_s_o_s);
1684
1685
1686 ostei_general_vrr_I(11, 0, 10, 0, 1,
1687 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1688 PRIM_INT__n_s_n_s, PRIM_INT__m_s_n_s, NULL, PRIM_INT__n_s_m_s, NULL, PRIM_INT__o_s_n_s);
1689
1690
1691 ostei_general_vrr_I(8, 0, 14, 0, 4,
1692 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1693 PRIM_INT__k_s_t_s, PRIM_INT__i_s_t_s, NULL, PRIM_INT__k_s_r_s, NULL, PRIM_INT__l_s_t_s);
1694
1695
1696 ostei_general_vrr_I(9, 0, 13, 0, 3,
1697 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1698 PRIM_INT__l_s_r_s, PRIM_INT__k_s_r_s, NULL, PRIM_INT__l_s_q_s, NULL, PRIM_INT__m_s_r_s);
1699
1700
1701 ostei_general_vrr_I(10, 0, 12, 0, 2,
1702 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1703 PRIM_INT__m_s_q_s, PRIM_INT__l_s_q_s, NULL, PRIM_INT__m_s_o_s, NULL, PRIM_INT__n_s_q_s);
1704
1705
1706 ostei_general_vrr_I(11, 0, 11, 0, 1,
1707 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1708 PRIM_INT__n_s_o_s, PRIM_INT__m_s_o_s, NULL, PRIM_INT__n_s_n_s, NULL, PRIM_INT__o_s_o_s);
1709
1710
1711 ostei_general_vrr_I(9, 0, 14, 0, 3,
1712 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1713 PRIM_INT__l_s_t_s, PRIM_INT__k_s_t_s, NULL, PRIM_INT__l_s_r_s, NULL, PRIM_INT__m_s_t_s);
1714
1715
1716 ostei_general_vrr_I(10, 0, 13, 0, 2,
1717 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1718 PRIM_INT__m_s_r_s, PRIM_INT__l_s_r_s, NULL, PRIM_INT__m_s_q_s, NULL, PRIM_INT__n_s_r_s);
1719
1720
1721 ostei_general_vrr_I(11, 0, 12, 0, 1,
1722 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1723 PRIM_INT__n_s_q_s, PRIM_INT__m_s_q_s, NULL, PRIM_INT__n_s_o_s, NULL, PRIM_INT__o_s_q_s);
1724
1725
1726 ostei_general_vrr_I(10, 0, 14, 0, 2,
1727 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1728 PRIM_INT__m_s_t_s, PRIM_INT__l_s_t_s, NULL, PRIM_INT__m_s_r_s, NULL, PRIM_INT__n_s_t_s);
1729
1730
1731 ostei_general_vrr_I(11, 0, 13, 0, 1,
1732 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1733 PRIM_INT__n_s_r_s, PRIM_INT__m_s_r_s, NULL, PRIM_INT__n_s_q_s, NULL, PRIM_INT__o_s_r_s);
1734
1735
1736 ostei_general_vrr_I(11, 0, 14, 0, 1,
1737 one_over_2p, a_over_p, one_over_2pq, aop_PQ, P_PA,
1738 PRIM_INT__n_s_t_s, PRIM_INT__m_s_t_s, NULL, PRIM_INT__n_s_r_s, NULL, PRIM_INT__o_s_t_s);
1739
1740
1741
1742
1743 ////////////////////////////////////
1744 // Accumulate contracted integrals
1745 ////////////////////////////////////
1746 if(lastoffset == 0)
1747 {
1748 contract_all(1296, PRIM_INT__k_s_k_s, PRIM_PTR_INT__k_s_k_s);
1749 contract_all(1620, PRIM_INT__k_s_l_s, PRIM_PTR_INT__k_s_l_s);
1750 contract_all(1980, PRIM_INT__k_s_m_s, PRIM_PTR_INT__k_s_m_s);
1751 contract_all(2376, PRIM_INT__k_s_n_s, PRIM_PTR_INT__k_s_n_s);
1752 contract_all(2808, PRIM_INT__k_s_o_s, PRIM_PTR_INT__k_s_o_s);
1753 contract_all(3276, PRIM_INT__k_s_q_s, PRIM_PTR_INT__k_s_q_s);
1754 contract_all(3780, PRIM_INT__k_s_r_s, PRIM_PTR_INT__k_s_r_s);
1755 contract_all(4320, PRIM_INT__k_s_t_s, PRIM_PTR_INT__k_s_t_s);
1756 contract_all(1620, PRIM_INT__l_s_k_s, PRIM_PTR_INT__l_s_k_s);
1757 contract_all(2025, PRIM_INT__l_s_l_s, PRIM_PTR_INT__l_s_l_s);
1758 contract_all(2475, PRIM_INT__l_s_m_s, PRIM_PTR_INT__l_s_m_s);
1759 contract_all(2970, PRIM_INT__l_s_n_s, PRIM_PTR_INT__l_s_n_s);
1760 contract_all(3510, PRIM_INT__l_s_o_s, PRIM_PTR_INT__l_s_o_s);
1761 contract_all(4095, PRIM_INT__l_s_q_s, PRIM_PTR_INT__l_s_q_s);
1762 contract_all(4725, PRIM_INT__l_s_r_s, PRIM_PTR_INT__l_s_r_s);
1763 contract_all(5400, PRIM_INT__l_s_t_s, PRIM_PTR_INT__l_s_t_s);
1764 contract_all(1980, PRIM_INT__m_s_k_s, PRIM_PTR_INT__m_s_k_s);
1765 contract_all(2475, PRIM_INT__m_s_l_s, PRIM_PTR_INT__m_s_l_s);
1766 contract_all(3025, PRIM_INT__m_s_m_s, PRIM_PTR_INT__m_s_m_s);
1767 contract_all(3630, PRIM_INT__m_s_n_s, PRIM_PTR_INT__m_s_n_s);
1768 contract_all(4290, PRIM_INT__m_s_o_s, PRIM_PTR_INT__m_s_o_s);
1769 contract_all(5005, PRIM_INT__m_s_q_s, PRIM_PTR_INT__m_s_q_s);
1770 contract_all(5775, PRIM_INT__m_s_r_s, PRIM_PTR_INT__m_s_r_s);
1771 contract_all(6600, PRIM_INT__m_s_t_s, PRIM_PTR_INT__m_s_t_s);
1772 contract_all(2376, PRIM_INT__n_s_k_s, PRIM_PTR_INT__n_s_k_s);
1773 contract_all(2970, PRIM_INT__n_s_l_s, PRIM_PTR_INT__n_s_l_s);
1774 contract_all(3630, PRIM_INT__n_s_m_s, PRIM_PTR_INT__n_s_m_s);
1775 contract_all(4356, PRIM_INT__n_s_n_s, PRIM_PTR_INT__n_s_n_s);
1776 contract_all(5148, PRIM_INT__n_s_o_s, PRIM_PTR_INT__n_s_o_s);
1777 contract_all(6006, PRIM_INT__n_s_q_s, PRIM_PTR_INT__n_s_q_s);
1778 contract_all(6930, PRIM_INT__n_s_r_s, PRIM_PTR_INT__n_s_r_s);
1779 contract_all(7920, PRIM_INT__n_s_t_s, PRIM_PTR_INT__n_s_t_s);
1780 contract_all(2808, PRIM_INT__o_s_k_s, PRIM_PTR_INT__o_s_k_s);
1781 contract_all(3510, PRIM_INT__o_s_l_s, PRIM_PTR_INT__o_s_l_s);
1782 contract_all(4290, PRIM_INT__o_s_m_s, PRIM_PTR_INT__o_s_m_s);
1783 contract_all(5148, PRIM_INT__o_s_n_s, PRIM_PTR_INT__o_s_n_s);
1784 contract_all(6084, PRIM_INT__o_s_o_s, PRIM_PTR_INT__o_s_o_s);
1785 contract_all(7098, PRIM_INT__o_s_q_s, PRIM_PTR_INT__o_s_q_s);
1786 contract_all(8190, PRIM_INT__o_s_r_s, PRIM_PTR_INT__o_s_r_s);
1787 contract_all(9360, PRIM_INT__o_s_t_s, PRIM_PTR_INT__o_s_t_s);
1788 }
1789 else
1790 {
1791 contract(1296, shelloffsets, PRIM_INT__k_s_k_s, PRIM_PTR_INT__k_s_k_s);
1792 contract(1620, shelloffsets, PRIM_INT__k_s_l_s, PRIM_PTR_INT__k_s_l_s);
1793 contract(1980, shelloffsets, PRIM_INT__k_s_m_s, PRIM_PTR_INT__k_s_m_s);
1794 contract(2376, shelloffsets, PRIM_INT__k_s_n_s, PRIM_PTR_INT__k_s_n_s);
1795 contract(2808, shelloffsets, PRIM_INT__k_s_o_s, PRIM_PTR_INT__k_s_o_s);
1796 contract(3276, shelloffsets, PRIM_INT__k_s_q_s, PRIM_PTR_INT__k_s_q_s);
1797 contract(3780, shelloffsets, PRIM_INT__k_s_r_s, PRIM_PTR_INT__k_s_r_s);
1798 contract(4320, shelloffsets, PRIM_INT__k_s_t_s, PRIM_PTR_INT__k_s_t_s);
1799 contract(1620, shelloffsets, PRIM_INT__l_s_k_s, PRIM_PTR_INT__l_s_k_s);
1800 contract(2025, shelloffsets, PRIM_INT__l_s_l_s, PRIM_PTR_INT__l_s_l_s);
1801 contract(2475, shelloffsets, PRIM_INT__l_s_m_s, PRIM_PTR_INT__l_s_m_s);
1802 contract(2970, shelloffsets, PRIM_INT__l_s_n_s, PRIM_PTR_INT__l_s_n_s);
1803 contract(3510, shelloffsets, PRIM_INT__l_s_o_s, PRIM_PTR_INT__l_s_o_s);
1804 contract(4095, shelloffsets, PRIM_INT__l_s_q_s, PRIM_PTR_INT__l_s_q_s);
1805 contract(4725, shelloffsets, PRIM_INT__l_s_r_s, PRIM_PTR_INT__l_s_r_s);
1806 contract(5400, shelloffsets, PRIM_INT__l_s_t_s, PRIM_PTR_INT__l_s_t_s);
1807 contract(1980, shelloffsets, PRIM_INT__m_s_k_s, PRIM_PTR_INT__m_s_k_s);
1808 contract(2475, shelloffsets, PRIM_INT__m_s_l_s, PRIM_PTR_INT__m_s_l_s);
1809 contract(3025, shelloffsets, PRIM_INT__m_s_m_s, PRIM_PTR_INT__m_s_m_s);
1810 contract(3630, shelloffsets, PRIM_INT__m_s_n_s, PRIM_PTR_INT__m_s_n_s);
1811 contract(4290, shelloffsets, PRIM_INT__m_s_o_s, PRIM_PTR_INT__m_s_o_s);
1812 contract(5005, shelloffsets, PRIM_INT__m_s_q_s, PRIM_PTR_INT__m_s_q_s);
1813 contract(5775, shelloffsets, PRIM_INT__m_s_r_s, PRIM_PTR_INT__m_s_r_s);
1814 contract(6600, shelloffsets, PRIM_INT__m_s_t_s, PRIM_PTR_INT__m_s_t_s);
1815 contract(2376, shelloffsets, PRIM_INT__n_s_k_s, PRIM_PTR_INT__n_s_k_s);
1816 contract(2970, shelloffsets, PRIM_INT__n_s_l_s, PRIM_PTR_INT__n_s_l_s);
1817 contract(3630, shelloffsets, PRIM_INT__n_s_m_s, PRIM_PTR_INT__n_s_m_s);
1818 contract(4356, shelloffsets, PRIM_INT__n_s_n_s, PRIM_PTR_INT__n_s_n_s);
1819 contract(5148, shelloffsets, PRIM_INT__n_s_o_s, PRIM_PTR_INT__n_s_o_s);
1820 contract(6006, shelloffsets, PRIM_INT__n_s_q_s, PRIM_PTR_INT__n_s_q_s);
1821 contract(6930, shelloffsets, PRIM_INT__n_s_r_s, PRIM_PTR_INT__n_s_r_s);
1822 contract(7920, shelloffsets, PRIM_INT__n_s_t_s, PRIM_PTR_INT__n_s_t_s);
1823 contract(2808, shelloffsets, PRIM_INT__o_s_k_s, PRIM_PTR_INT__o_s_k_s);
1824 contract(3510, shelloffsets, PRIM_INT__o_s_l_s, PRIM_PTR_INT__o_s_l_s);
1825 contract(4290, shelloffsets, PRIM_INT__o_s_m_s, PRIM_PTR_INT__o_s_m_s);
1826 contract(5148, shelloffsets, PRIM_INT__o_s_n_s, PRIM_PTR_INT__o_s_n_s);
1827 contract(6084, shelloffsets, PRIM_INT__o_s_o_s, PRIM_PTR_INT__o_s_o_s);
1828 contract(7098, shelloffsets, PRIM_INT__o_s_q_s, PRIM_PTR_INT__o_s_q_s);
1829 contract(8190, shelloffsets, PRIM_INT__o_s_r_s, PRIM_PTR_INT__o_s_r_s);
1830 contract(9360, shelloffsets, PRIM_INT__o_s_t_s, PRIM_PTR_INT__o_s_t_s);
1831 PRIM_PTR_INT__k_s_k_s += lastoffset*1296;
1832 PRIM_PTR_INT__k_s_l_s += lastoffset*1620;
1833 PRIM_PTR_INT__k_s_m_s += lastoffset*1980;
1834 PRIM_PTR_INT__k_s_n_s += lastoffset*2376;
1835 PRIM_PTR_INT__k_s_o_s += lastoffset*2808;
1836 PRIM_PTR_INT__k_s_q_s += lastoffset*3276;
1837 PRIM_PTR_INT__k_s_r_s += lastoffset*3780;
1838 PRIM_PTR_INT__k_s_t_s += lastoffset*4320;
1839 PRIM_PTR_INT__l_s_k_s += lastoffset*1620;
1840 PRIM_PTR_INT__l_s_l_s += lastoffset*2025;
1841 PRIM_PTR_INT__l_s_m_s += lastoffset*2475;
1842 PRIM_PTR_INT__l_s_n_s += lastoffset*2970;
1843 PRIM_PTR_INT__l_s_o_s += lastoffset*3510;
1844 PRIM_PTR_INT__l_s_q_s += lastoffset*4095;
1845 PRIM_PTR_INT__l_s_r_s += lastoffset*4725;
1846 PRIM_PTR_INT__l_s_t_s += lastoffset*5400;
1847 PRIM_PTR_INT__m_s_k_s += lastoffset*1980;
1848 PRIM_PTR_INT__m_s_l_s += lastoffset*2475;
1849 PRIM_PTR_INT__m_s_m_s += lastoffset*3025;
1850 PRIM_PTR_INT__m_s_n_s += lastoffset*3630;
1851 PRIM_PTR_INT__m_s_o_s += lastoffset*4290;
1852 PRIM_PTR_INT__m_s_q_s += lastoffset*5005;
1853 PRIM_PTR_INT__m_s_r_s += lastoffset*5775;
1854 PRIM_PTR_INT__m_s_t_s += lastoffset*6600;
1855 PRIM_PTR_INT__n_s_k_s += lastoffset*2376;
1856 PRIM_PTR_INT__n_s_l_s += lastoffset*2970;
1857 PRIM_PTR_INT__n_s_m_s += lastoffset*3630;
1858 PRIM_PTR_INT__n_s_n_s += lastoffset*4356;
1859 PRIM_PTR_INT__n_s_o_s += lastoffset*5148;
1860 PRIM_PTR_INT__n_s_q_s += lastoffset*6006;
1861 PRIM_PTR_INT__n_s_r_s += lastoffset*6930;
1862 PRIM_PTR_INT__n_s_t_s += lastoffset*7920;
1863 PRIM_PTR_INT__o_s_k_s += lastoffset*2808;
1864 PRIM_PTR_INT__o_s_l_s += lastoffset*3510;
1865 PRIM_PTR_INT__o_s_m_s += lastoffset*4290;
1866 PRIM_PTR_INT__o_s_n_s += lastoffset*5148;
1867 PRIM_PTR_INT__o_s_o_s += lastoffset*6084;
1868 PRIM_PTR_INT__o_s_q_s += lastoffset*7098;
1869 PRIM_PTR_INT__o_s_r_s += lastoffset*8190;
1870 PRIM_PTR_INT__o_s_t_s += lastoffset*9360;
1871 }
1872
1873 } // close loop over j
1874 } // close loop over i
1875
1876 //Advance to the next batch
1877 jstart = SIMINT_SIMD_ROUND(jend);
1878
1879 //////////////////////////////////////////////
1880 // Contracted integrals: Horizontal recurrance
1881 //////////////////////////////////////////////
1882
1883
1884 const double hAB[3] = { P.AB_x[ab], P.AB_y[ab], P.AB_z[ab] };
1885
1886
1887 for(abcd = 0; abcd < nshellbatch; ++abcd, ++real_abcd)
1888 {
1889 const double hCD[3] = { Q.AB_x[cd+abcd], Q.AB_y[cd+abcd], Q.AB_z[cd+abcd] };
1890
1891 // set up HRR pointers
1892 double const * restrict HRR_INT__k_s_k_s = INT__k_s_k_s + abcd * 1296;
1893 double const * restrict HRR_INT__k_s_l_s = INT__k_s_l_s + abcd * 1620;
1894 double const * restrict HRR_INT__k_s_m_s = INT__k_s_m_s + abcd * 1980;
1895 double const * restrict HRR_INT__k_s_n_s = INT__k_s_n_s + abcd * 2376;
1896 double const * restrict HRR_INT__k_s_o_s = INT__k_s_o_s + abcd * 2808;
1897 double const * restrict HRR_INT__k_s_q_s = INT__k_s_q_s + abcd * 3276;
1898 double const * restrict HRR_INT__k_s_r_s = INT__k_s_r_s + abcd * 3780;
1899 double const * restrict HRR_INT__k_s_t_s = INT__k_s_t_s + abcd * 4320;
1900 double const * restrict HRR_INT__l_s_k_s = INT__l_s_k_s + abcd * 1620;
1901 double const * restrict HRR_INT__l_s_l_s = INT__l_s_l_s + abcd * 2025;
1902 double const * restrict HRR_INT__l_s_m_s = INT__l_s_m_s + abcd * 2475;
1903 double const * restrict HRR_INT__l_s_n_s = INT__l_s_n_s + abcd * 2970;
1904 double const * restrict HRR_INT__l_s_o_s = INT__l_s_o_s + abcd * 3510;
1905 double const * restrict HRR_INT__l_s_q_s = INT__l_s_q_s + abcd * 4095;
1906 double const * restrict HRR_INT__l_s_r_s = INT__l_s_r_s + abcd * 4725;
1907 double const * restrict HRR_INT__l_s_t_s = INT__l_s_t_s + abcd * 5400;
1908 double const * restrict HRR_INT__m_s_k_s = INT__m_s_k_s + abcd * 1980;
1909 double const * restrict HRR_INT__m_s_l_s = INT__m_s_l_s + abcd * 2475;
1910 double const * restrict HRR_INT__m_s_m_s = INT__m_s_m_s + abcd * 3025;
1911 double const * restrict HRR_INT__m_s_n_s = INT__m_s_n_s + abcd * 3630;
1912 double const * restrict HRR_INT__m_s_o_s = INT__m_s_o_s + abcd * 4290;
1913 double const * restrict HRR_INT__m_s_q_s = INT__m_s_q_s + abcd * 5005;
1914 double const * restrict HRR_INT__m_s_r_s = INT__m_s_r_s + abcd * 5775;
1915 double const * restrict HRR_INT__m_s_t_s = INT__m_s_t_s + abcd * 6600;
1916 double const * restrict HRR_INT__n_s_k_s = INT__n_s_k_s + abcd * 2376;
1917 double const * restrict HRR_INT__n_s_l_s = INT__n_s_l_s + abcd * 2970;
1918 double const * restrict HRR_INT__n_s_m_s = INT__n_s_m_s + abcd * 3630;
1919 double const * restrict HRR_INT__n_s_n_s = INT__n_s_n_s + abcd * 4356;
1920 double const * restrict HRR_INT__n_s_o_s = INT__n_s_o_s + abcd * 5148;
1921 double const * restrict HRR_INT__n_s_q_s = INT__n_s_q_s + abcd * 6006;
1922 double const * restrict HRR_INT__n_s_r_s = INT__n_s_r_s + abcd * 6930;
1923 double const * restrict HRR_INT__n_s_t_s = INT__n_s_t_s + abcd * 7920;
1924 double const * restrict HRR_INT__o_s_k_s = INT__o_s_k_s + abcd * 2808;
1925 double const * restrict HRR_INT__o_s_l_s = INT__o_s_l_s + abcd * 3510;
1926 double const * restrict HRR_INT__o_s_m_s = INT__o_s_m_s + abcd * 4290;
1927 double const * restrict HRR_INT__o_s_n_s = INT__o_s_n_s + abcd * 5148;
1928 double const * restrict HRR_INT__o_s_o_s = INT__o_s_o_s + abcd * 6084;
1929 double const * restrict HRR_INT__o_s_q_s = INT__o_s_q_s + abcd * 7098;
1930 double const * restrict HRR_INT__o_s_r_s = INT__o_s_r_s + abcd * 8190;
1931 double const * restrict HRR_INT__o_s_t_s = INT__o_s_t_s + abcd * 9360;
1932 double * restrict HRR_INT__k_g_k_k = INT__k_g_k_k + real_abcd * 699840;
1933
1934 // form INT__k_p_k_s
1935 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);
1936
1937 // form INT__k_p_l_s
1938 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);
1939
1940 // form INT__k_p_m_s
1941 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);
1942
1943 // form INT__k_p_n_s
1944 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);
1945
1946 // form INT__k_p_o_s
1947 ostei_general_hrr_J(7, 1, 11, 0, hAB, HRR_INT__l_s_o_s, HRR_INT__k_s_o_s, HRR_INT__k_p_o_s);
1948
1949 // form INT__k_p_q_s
1950 ostei_general_hrr_J(7, 1, 12, 0, hAB, HRR_INT__l_s_q_s, HRR_INT__k_s_q_s, HRR_INT__k_p_q_s);
1951
1952 // form INT__k_p_r_s
1953 ostei_general_hrr_J(7, 1, 13, 0, hAB, HRR_INT__l_s_r_s, HRR_INT__k_s_r_s, HRR_INT__k_p_r_s);
1954
1955 // form INT__k_p_t_s
1956 ostei_general_hrr_J(7, 1, 14, 0, hAB, HRR_INT__l_s_t_s, HRR_INT__k_s_t_s, HRR_INT__k_p_t_s);
1957
1958 // form INT__l_p_k_s
1959 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);
1960
1961 // form INT__l_p_l_s
1962 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);
1963
1964 // form INT__l_p_m_s
1965 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);
1966
1967 // form INT__l_p_n_s
1968 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);
1969
1970 // form INT__l_p_o_s
1971 ostei_general_hrr_J(8, 1, 11, 0, hAB, HRR_INT__m_s_o_s, HRR_INT__l_s_o_s, HRR_INT__l_p_o_s);
1972
1973 // form INT__l_p_q_s
1974 ostei_general_hrr_J(8, 1, 12, 0, hAB, HRR_INT__m_s_q_s, HRR_INT__l_s_q_s, HRR_INT__l_p_q_s);
1975
1976 // form INT__l_p_r_s
1977 ostei_general_hrr_J(8, 1, 13, 0, hAB, HRR_INT__m_s_r_s, HRR_INT__l_s_r_s, HRR_INT__l_p_r_s);
1978
1979 // form INT__l_p_t_s
1980 ostei_general_hrr_J(8, 1, 14, 0, hAB, HRR_INT__m_s_t_s, HRR_INT__l_s_t_s, HRR_INT__l_p_t_s);
1981
1982 // form INT__m_p_k_s
1983 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);
1984
1985 // form INT__m_p_l_s
1986 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);
1987
1988 // form INT__m_p_m_s
1989 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);
1990
1991 // form INT__m_p_n_s
1992 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);
1993
1994 // form INT__m_p_o_s
1995 ostei_general_hrr_J(9, 1, 11, 0, hAB, HRR_INT__n_s_o_s, HRR_INT__m_s_o_s, HRR_INT__m_p_o_s);
1996
1997 // form INT__m_p_q_s
1998 ostei_general_hrr_J(9, 1, 12, 0, hAB, HRR_INT__n_s_q_s, HRR_INT__m_s_q_s, HRR_INT__m_p_q_s);
1999
2000 // form INT__m_p_r_s
2001 ostei_general_hrr_J(9, 1, 13, 0, hAB, HRR_INT__n_s_r_s, HRR_INT__m_s_r_s, HRR_INT__m_p_r_s);
2002
2003 // form INT__m_p_t_s
2004 ostei_general_hrr_J(9, 1, 14, 0, hAB, HRR_INT__n_s_t_s, HRR_INT__m_s_t_s, HRR_INT__m_p_t_s);
2005
2006 // form INT__n_p_k_s
2007 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);
2008
2009 // form INT__n_p_l_s
2010 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);
2011
2012 // form INT__n_p_m_s
2013 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);
2014
2015 // form INT__n_p_n_s
2016 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);
2017
2018 // form INT__n_p_o_s
2019 ostei_general_hrr_J(10, 1, 11, 0, hAB, HRR_INT__o_s_o_s, HRR_INT__n_s_o_s, HRR_INT__n_p_o_s);
2020
2021 // form INT__n_p_q_s
2022 ostei_general_hrr_J(10, 1, 12, 0, hAB, HRR_INT__o_s_q_s, HRR_INT__n_s_q_s, HRR_INT__n_p_q_s);
2023
2024 // form INT__n_p_r_s
2025 ostei_general_hrr_J(10, 1, 13, 0, hAB, HRR_INT__o_s_r_s, HRR_INT__n_s_r_s, HRR_INT__n_p_r_s);
2026
2027 // form INT__n_p_t_s
2028 ostei_general_hrr_J(10, 1, 14, 0, hAB, HRR_INT__o_s_t_s, HRR_INT__n_s_t_s, HRR_INT__n_p_t_s);
2029
2030 // form INT__k_d_k_s
2031 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);
2032
2033 // form INT__k_d_l_s
2034 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);
2035
2036 // form INT__k_d_m_s
2037 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);
2038
2039 // form INT__k_d_n_s
2040 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);
2041
2042 // form INT__k_d_o_s
2043 ostei_general_hrr_J(7, 2, 11, 0, hAB, HRR_INT__l_p_o_s, HRR_INT__k_p_o_s, HRR_INT__k_d_o_s);
2044
2045 // form INT__k_d_q_s
2046 ostei_general_hrr_J(7, 2, 12, 0, hAB, HRR_INT__l_p_q_s, HRR_INT__k_p_q_s, HRR_INT__k_d_q_s);
2047
2048 // form INT__k_d_r_s
2049 ostei_general_hrr_J(7, 2, 13, 0, hAB, HRR_INT__l_p_r_s, HRR_INT__k_p_r_s, HRR_INT__k_d_r_s);
2050
2051 // form INT__k_d_t_s
2052 ostei_general_hrr_J(7, 2, 14, 0, hAB, HRR_INT__l_p_t_s, HRR_INT__k_p_t_s, HRR_INT__k_d_t_s);
2053
2054 // form INT__l_d_k_s
2055 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);
2056
2057 // form INT__l_d_l_s
2058 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);
2059
2060 // form INT__l_d_m_s
2061 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);
2062
2063 // form INT__l_d_n_s
2064 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);
2065
2066 // form INT__l_d_o_s
2067 ostei_general_hrr_J(8, 2, 11, 0, hAB, HRR_INT__m_p_o_s, HRR_INT__l_p_o_s, HRR_INT__l_d_o_s);
2068
2069 // form INT__l_d_q_s
2070 ostei_general_hrr_J(8, 2, 12, 0, hAB, HRR_INT__m_p_q_s, HRR_INT__l_p_q_s, HRR_INT__l_d_q_s);
2071
2072 // form INT__l_d_r_s
2073 ostei_general_hrr_J(8, 2, 13, 0, hAB, HRR_INT__m_p_r_s, HRR_INT__l_p_r_s, HRR_INT__l_d_r_s);
2074
2075 // form INT__l_d_t_s
2076 ostei_general_hrr_J(8, 2, 14, 0, hAB, HRR_INT__m_p_t_s, HRR_INT__l_p_t_s, HRR_INT__l_d_t_s);
2077
2078 // form INT__m_d_k_s
2079 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);
2080
2081 // form INT__m_d_l_s
2082 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);
2083
2084 // form INT__m_d_m_s
2085 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);
2086
2087 // form INT__m_d_n_s
2088 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);
2089
2090 // form INT__m_d_o_s
2091 ostei_general_hrr_J(9, 2, 11, 0, hAB, HRR_INT__n_p_o_s, HRR_INT__m_p_o_s, HRR_INT__m_d_o_s);
2092
2093 // form INT__m_d_q_s
2094 ostei_general_hrr_J(9, 2, 12, 0, hAB, HRR_INT__n_p_q_s, HRR_INT__m_p_q_s, HRR_INT__m_d_q_s);
2095
2096 // form INT__m_d_r_s
2097 ostei_general_hrr_J(9, 2, 13, 0, hAB, HRR_INT__n_p_r_s, HRR_INT__m_p_r_s, HRR_INT__m_d_r_s);
2098
2099 // form INT__m_d_t_s
2100 ostei_general_hrr_J(9, 2, 14, 0, hAB, HRR_INT__n_p_t_s, HRR_INT__m_p_t_s, HRR_INT__m_d_t_s);
2101
2102 // form INT__k_f_k_s
2103 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);
2104
2105 // form INT__k_f_l_s
2106 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);
2107
2108 // form INT__k_f_m_s
2109 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);
2110
2111 // form INT__k_f_n_s
2112 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);
2113
2114 // form INT__k_f_o_s
2115 ostei_general_hrr_J(7, 3, 11, 0, hAB, HRR_INT__l_d_o_s, HRR_INT__k_d_o_s, HRR_INT__k_f_o_s);
2116
2117 // form INT__k_f_q_s
2118 ostei_general_hrr_J(7, 3, 12, 0, hAB, HRR_INT__l_d_q_s, HRR_INT__k_d_q_s, HRR_INT__k_f_q_s);
2119
2120 // form INT__k_f_r_s
2121 ostei_general_hrr_J(7, 3, 13, 0, hAB, HRR_INT__l_d_r_s, HRR_INT__k_d_r_s, HRR_INT__k_f_r_s);
2122
2123 // form INT__k_f_t_s
2124 ostei_general_hrr_J(7, 3, 14, 0, hAB, HRR_INT__l_d_t_s, HRR_INT__k_d_t_s, HRR_INT__k_f_t_s);
2125
2126 // form INT__l_f_k_s
2127 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);
2128
2129 // form INT__l_f_l_s
2130 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);
2131
2132 // form INT__l_f_m_s
2133 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);
2134
2135 // form INT__l_f_n_s
2136 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);
2137
2138 // form INT__l_f_o_s
2139 ostei_general_hrr_J(8, 3, 11, 0, hAB, HRR_INT__m_d_o_s, HRR_INT__l_d_o_s, HRR_INT__l_f_o_s);
2140
2141 // form INT__l_f_q_s
2142 ostei_general_hrr_J(8, 3, 12, 0, hAB, HRR_INT__m_d_q_s, HRR_INT__l_d_q_s, HRR_INT__l_f_q_s);
2143
2144 // form INT__l_f_r_s
2145 ostei_general_hrr_J(8, 3, 13, 0, hAB, HRR_INT__m_d_r_s, HRR_INT__l_d_r_s, HRR_INT__l_f_r_s);
2146
2147 // form INT__l_f_t_s
2148 ostei_general_hrr_J(8, 3, 14, 0, hAB, HRR_INT__m_d_t_s, HRR_INT__l_d_t_s, HRR_INT__l_f_t_s);
2149
2150 // form INT__k_g_k_s
2151 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);
2152
2153 // form INT__k_g_l_s
2154 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);
2155
2156 // form INT__k_g_m_s
2157 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);
2158
2159 // form INT__k_g_n_s
2160 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);
2161
2162 // form INT__k_g_o_s
2163 ostei_general_hrr_J(7, 4, 11, 0, hAB, HRR_INT__l_f_o_s, HRR_INT__k_f_o_s, HRR_INT__k_g_o_s);
2164
2165 // form INT__k_g_q_s
2166 ostei_general_hrr_J(7, 4, 12, 0, hAB, HRR_INT__l_f_q_s, HRR_INT__k_f_q_s, HRR_INT__k_g_q_s);
2167
2168 // form INT__k_g_r_s
2169 ostei_general_hrr_J(7, 4, 13, 0, hAB, HRR_INT__l_f_r_s, HRR_INT__k_f_r_s, HRR_INT__k_g_r_s);
2170
2171 // form INT__k_g_t_s
2172 ostei_general_hrr_J(7, 4, 14, 0, hAB, HRR_INT__l_f_t_s, HRR_INT__k_f_t_s, HRR_INT__k_g_t_s);
2173
2174 // form INT__k_g_k_p
2175 ostei_general_hrr_L(7, 4, 7, 1, hCD, HRR_INT__k_g_l_s, HRR_INT__k_g_k_s, HRR_INT__k_g_k_p);
2176
2177 // form INT__k_g_l_p
2178 ostei_general_hrr_L(7, 4, 8, 1, hCD, HRR_INT__k_g_m_s, HRR_INT__k_g_l_s, HRR_INT__k_g_l_p);
2179
2180 // form INT__k_g_m_p
2181 ostei_general_hrr_L(7, 4, 9, 1, hCD, HRR_INT__k_g_n_s, HRR_INT__k_g_m_s, HRR_INT__k_g_m_p);
2182
2183 // form INT__k_g_n_p
2184 ostei_general_hrr_L(7, 4, 10, 1, hCD, HRR_INT__k_g_o_s, HRR_INT__k_g_n_s, HRR_INT__k_g_n_p);
2185
2186 // form INT__k_g_o_p
2187 ostei_general_hrr_L(7, 4, 11, 1, hCD, HRR_INT__k_g_q_s, HRR_INT__k_g_o_s, HRR_INT__k_g_o_p);
2188
2189 // form INT__k_g_q_p
2190 ostei_general_hrr_L(7, 4, 12, 1, hCD, HRR_INT__k_g_r_s, HRR_INT__k_g_q_s, HRR_INT__k_g_q_p);
2191
2192 // form INT__k_g_r_p
2193 ostei_general_hrr_L(7, 4, 13, 1, hCD, HRR_INT__k_g_t_s, HRR_INT__k_g_r_s, HRR_INT__k_g_r_p);
2194
2195 // form INT__k_g_k_d
2196 ostei_general_hrr_L(7, 4, 7, 2, hCD, HRR_INT__k_g_l_p, HRR_INT__k_g_k_p, HRR_INT__k_g_k_d);
2197
2198 // form INT__k_g_l_d
2199 ostei_general_hrr_L(7, 4, 8, 2, hCD, HRR_INT__k_g_m_p, HRR_INT__k_g_l_p, HRR_INT__k_g_l_d);
2200
2201 // form INT__k_g_m_d
2202 ostei_general_hrr_L(7, 4, 9, 2, hCD, HRR_INT__k_g_n_p, HRR_INT__k_g_m_p, HRR_INT__k_g_m_d);
2203
2204 // form INT__k_g_n_d
2205 ostei_general_hrr_L(7, 4, 10, 2, hCD, HRR_INT__k_g_o_p, HRR_INT__k_g_n_p, HRR_INT__k_g_n_d);
2206
2207 // form INT__k_g_o_d
2208 ostei_general_hrr_L(7, 4, 11, 2, hCD, HRR_INT__k_g_q_p, HRR_INT__k_g_o_p, HRR_INT__k_g_o_d);
2209
2210 // form INT__k_g_q_d
2211 ostei_general_hrr_L(7, 4, 12, 2, hCD, HRR_INT__k_g_r_p, HRR_INT__k_g_q_p, HRR_INT__k_g_q_d);
2212
2213 // form INT__k_g_k_f
2214 ostei_general_hrr_L(7, 4, 7, 3, hCD, HRR_INT__k_g_l_d, HRR_INT__k_g_k_d, HRR_INT__k_g_k_f);
2215
2216 // form INT__k_g_l_f
2217 ostei_general_hrr_L(7, 4, 8, 3, hCD, HRR_INT__k_g_m_d, HRR_INT__k_g_l_d, HRR_INT__k_g_l_f);
2218
2219 // form INT__k_g_m_f
2220 ostei_general_hrr_L(7, 4, 9, 3, hCD, HRR_INT__k_g_n_d, HRR_INT__k_g_m_d, HRR_INT__k_g_m_f);
2221
2222 // form INT__k_g_n_f
2223 ostei_general_hrr_L(7, 4, 10, 3, hCD, HRR_INT__k_g_o_d, HRR_INT__k_g_n_d, HRR_INT__k_g_n_f);
2224
2225 // form INT__k_g_o_f
2226 ostei_general_hrr_L(7, 4, 11, 3, hCD, HRR_INT__k_g_q_d, HRR_INT__k_g_o_d, HRR_INT__k_g_o_f);
2227
2228 // form INT__k_g_k_g
2229 ostei_general_hrr_L(7, 4, 7, 4, hCD, HRR_INT__k_g_l_f, HRR_INT__k_g_k_f, HRR_INT__k_g_k_g);
2230
2231 // form INT__k_g_l_g
2232 ostei_general_hrr_L(7, 4, 8, 4, hCD, HRR_INT__k_g_m_f, HRR_INT__k_g_l_f, HRR_INT__k_g_l_g);
2233
2234 // form INT__k_g_m_g
2235 ostei_general_hrr_L(7, 4, 9, 4, hCD, HRR_INT__k_g_n_f, HRR_INT__k_g_m_f, HRR_INT__k_g_m_g);
2236
2237 // form INT__k_g_n_g
2238 ostei_general_hrr_L(7, 4, 10, 4, hCD, HRR_INT__k_g_o_f, HRR_INT__k_g_n_f, HRR_INT__k_g_n_g);
2239
2240 // form INT__k_g_k_h
2241 ostei_general_hrr_L(7, 4, 7, 5, hCD, HRR_INT__k_g_l_g, HRR_INT__k_g_k_g, HRR_INT__k_g_k_h);
2242
2243 // form INT__k_g_l_h
2244 ostei_general_hrr_L(7, 4, 8, 5, hCD, HRR_INT__k_g_m_g, HRR_INT__k_g_l_g, HRR_INT__k_g_l_h);
2245
2246 // form INT__k_g_m_h
2247 ostei_general_hrr_L(7, 4, 9, 5, hCD, HRR_INT__k_g_n_g, HRR_INT__k_g_m_g, HRR_INT__k_g_m_h);
2248
2249 // form INT__k_g_k_i
2250 ostei_general_hrr_L(7, 4, 7, 6, hCD, HRR_INT__k_g_l_h, HRR_INT__k_g_k_h, HRR_INT__k_g_k_i);
2251
2252 // form INT__k_g_l_i
2253 ostei_general_hrr_L(7, 4, 8, 6, hCD, HRR_INT__k_g_m_h, HRR_INT__k_g_l_h, HRR_INT__k_g_l_i);
2254
2255 // form INT__k_g_k_k
2256 ostei_general_hrr_L(7, 4, 7, 7, hCD, HRR_INT__k_g_l_i, HRR_INT__k_g_k_i, HRR_INT__k_g_k_k);
2257
2258
2259 } // close HRR loop
2260
2261
2262 } // close loop cdbatch
2263
2264 istart = iend;
2265 } // close loop over ab
2266
2267 return P.nshell12_clip * Q.nshell12_clip;
2268 }
2269
ostei_g_k_k_k(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__g_k_k_k)2270 int ostei_g_k_k_k(struct simint_multi_shellpair const P,
2271 struct simint_multi_shellpair const Q,
2272 double screen_tol,
2273 double * const restrict work,
2274 double * const restrict INT__g_k_k_k)
2275 {
2276 double P_AB[3*P.nshell12];
2277 struct simint_multi_shellpair P_tmp = P;
2278 P_tmp.PA_x = P.PB_x; P_tmp.PA_y = P.PB_y; P_tmp.PA_z = P.PB_z;
2279 P_tmp.PB_x = P.PA_x; P_tmp.PB_y = P.PA_y; P_tmp.PB_z = P.PA_z;
2280 P_tmp.AB_x = P_AB;
2281 P_tmp.AB_y = P_AB + P.nshell12;
2282 P_tmp.AB_z = P_AB + 2*P.nshell12;
2283
2284 for(int i = 0; i < P.nshell12; i++)
2285 {
2286 P_tmp.AB_x[i] = -P.AB_x[i];
2287 P_tmp.AB_y[i] = -P.AB_y[i];
2288 P_tmp.AB_z[i] = -P.AB_z[i];
2289 }
2290
2291 int ret = ostei_k_g_k_k(P_tmp, Q, screen_tol, work, INT__g_k_k_k);
2292 double buffer[699840] SIMINT_ALIGN_ARRAY_DBL;
2293
2294 for(int q = 0; q < ret; q++)
2295 {
2296 int idx = 0;
2297 for(int a = 0; a < 15; ++a)
2298 for(int b = 0; b < 36; ++b)
2299 for(int c = 0; c < 36; ++c)
2300 for(int d = 0; d < 36; ++d)
2301 buffer[idx++] = INT__g_k_k_k[q*699840+b*19440+a*1296+c*36+d];
2302
2303 memcpy(INT__g_k_k_k+q*699840, buffer, 699840*sizeof(double));
2304 }
2305
2306 return ret;
2307 }
2308
2309