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_i_h_i_h(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__i_h_i_h)8 int ostei_i_h_i_h(struct simint_multi_shellpair const P,
9 struct simint_multi_shellpair const Q,
10 double screen_tol,
11 double * const restrict work,
12 double * const restrict INT__i_h_i_h)
13 {
14
15 SIMINT_ASSUME_ALIGN_DBL(work);
16 SIMINT_ASSUME_ALIGN_DBL(INT__i_h_i_h);
17 int ab, cd, abcd;
18 int istart, jstart;
19 int iprimcd, nprim_icd, icd;
20 const int check_screen = (screen_tol > 0.0);
21 int i, j;
22 int n;
23 int not_screened;
24 int real_abcd;
25 int iket;
26 int ibra;
27
28 // partition workspace
29 double * const INT__i_s_i_s = work + (SIMINT_NSHELL_SIMD * 0);
30 double * const INT__i_s_k_s = work + (SIMINT_NSHELL_SIMD * 784);
31 double * const INT__i_s_l_s = work + (SIMINT_NSHELL_SIMD * 1792);
32 double * const INT__i_s_m_s = work + (SIMINT_NSHELL_SIMD * 3052);
33 double * const INT__i_s_n_s = work + (SIMINT_NSHELL_SIMD * 4592);
34 double * const INT__i_s_o_s = work + (SIMINT_NSHELL_SIMD * 6440);
35 double * const INT__k_s_i_s = work + (SIMINT_NSHELL_SIMD * 8624);
36 double * const INT__k_s_k_s = work + (SIMINT_NSHELL_SIMD * 9632);
37 double * const INT__k_s_l_s = work + (SIMINT_NSHELL_SIMD * 10928);
38 double * const INT__k_s_m_s = work + (SIMINT_NSHELL_SIMD * 12548);
39 double * const INT__k_s_n_s = work + (SIMINT_NSHELL_SIMD * 14528);
40 double * const INT__k_s_o_s = work + (SIMINT_NSHELL_SIMD * 16904);
41 double * const INT__l_s_i_s = work + (SIMINT_NSHELL_SIMD * 19712);
42 double * const INT__l_s_k_s = work + (SIMINT_NSHELL_SIMD * 20972);
43 double * const INT__l_s_l_s = work + (SIMINT_NSHELL_SIMD * 22592);
44 double * const INT__l_s_m_s = work + (SIMINT_NSHELL_SIMD * 24617);
45 double * const INT__l_s_n_s = work + (SIMINT_NSHELL_SIMD * 27092);
46 double * const INT__l_s_o_s = work + (SIMINT_NSHELL_SIMD * 30062);
47 double * const INT__m_s_i_s = work + (SIMINT_NSHELL_SIMD * 33572);
48 double * const INT__m_s_k_s = work + (SIMINT_NSHELL_SIMD * 35112);
49 double * const INT__m_s_l_s = work + (SIMINT_NSHELL_SIMD * 37092);
50 double * const INT__m_s_m_s = work + (SIMINT_NSHELL_SIMD * 39567);
51 double * const INT__m_s_n_s = work + (SIMINT_NSHELL_SIMD * 42592);
52 double * const INT__m_s_o_s = work + (SIMINT_NSHELL_SIMD * 46222);
53 double * const INT__n_s_i_s = work + (SIMINT_NSHELL_SIMD * 50512);
54 double * const INT__n_s_k_s = work + (SIMINT_NSHELL_SIMD * 52360);
55 double * const INT__n_s_l_s = work + (SIMINT_NSHELL_SIMD * 54736);
56 double * const INT__n_s_m_s = work + (SIMINT_NSHELL_SIMD * 57706);
57 double * const INT__n_s_n_s = work + (SIMINT_NSHELL_SIMD * 61336);
58 double * const INT__n_s_o_s = work + (SIMINT_NSHELL_SIMD * 65692);
59 double * const INT__o_s_i_s = work + (SIMINT_NSHELL_SIMD * 70840);
60 double * const INT__o_s_k_s = work + (SIMINT_NSHELL_SIMD * 73024);
61 double * const INT__o_s_l_s = work + (SIMINT_NSHELL_SIMD * 75832);
62 double * const INT__o_s_m_s = work + (SIMINT_NSHELL_SIMD * 79342);
63 double * const INT__o_s_n_s = work + (SIMINT_NSHELL_SIMD * 83632);
64 double * const INT__o_s_o_s = work + (SIMINT_NSHELL_SIMD * 88780);
65 SIMINT_DBLTYPE * const primwork = (SIMINT_DBLTYPE *)(work + SIMINT_NSHELL_SIMD*94864);
66 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_s_s = primwork + 0;
67 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_p_s = primwork + 23;
68 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_d_s = primwork + 56;
69 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_f_s = primwork + 116;
70 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_g_s = primwork + 206;
71 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_h_s = primwork + 326;
72 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_s_s = primwork + 473;
73 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_p_s = primwork + 539;
74 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_d_s = primwork + 638;
75 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_f_s = primwork + 818;
76 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_g_s = primwork + 1088;
77 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_h_s = primwork + 1448;
78 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_i_s = primwork + 1889;
79 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_s_s = primwork + 2393;
80 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_p_s = primwork + 2519;
81 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_d_s = primwork + 2717;
82 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_f_s = primwork + 3077;
83 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_g_s = primwork + 3617;
84 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_h_s = primwork + 4337;
85 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_i_s = primwork + 5219;
86 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_k_s = primwork + 6227;
87 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_s_s = primwork + 7307;
88 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_p_s = primwork + 7507;
89 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_d_s = primwork + 7837;
90 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_f_s = primwork + 8437;
91 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_g_s = primwork + 9337;
92 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_h_s = primwork + 10537;
93 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_i_s = primwork + 12007;
94 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_k_s = primwork + 13687;
95 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_l_s = primwork + 15487;
96 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_s_s = primwork + 17287;
97 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_p_s = primwork + 17572;
98 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_d_s = primwork + 18067;
99 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_f_s = primwork + 18967;
100 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_g_s = primwork + 20317;
101 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_h_s = primwork + 22117;
102 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_i_s = primwork + 24322;
103 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_k_s = primwork + 26842;
104 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_l_s = primwork + 29542;
105 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_m_s = primwork + 32242;
106 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_s_s = primwork + 34717;
107 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_p_s = primwork + 35095;
108 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_d_s = primwork + 35788;
109 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_f_s = primwork + 37048;
110 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_g_s = primwork + 38938;
111 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_h_s = primwork + 41458;
112 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_i_s = primwork + 44545;
113 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_k_s = primwork + 48073;
114 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_l_s = primwork + 51853;
115 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_m_s = primwork + 55633;
116 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_n_s = primwork + 59098;
117 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_s_s = primwork + 61870;
118 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_p_s = primwork + 62346;
119 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_d_s = primwork + 63270;
120 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_f_s = primwork + 64950;
121 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_g_s = primwork + 67470;
122 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_h_s = primwork + 70830;
123 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_i_s = primwork + 74946;
124 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_k_s = primwork + 79650;
125 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_l_s = primwork + 84690;
126 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_m_s = primwork + 89730;
127 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_n_s = primwork + 94350;
128 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_o_s = primwork + 98046;
129 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_s_s = primwork + 100230;
130 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_p_s = primwork + 100806;
131 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_d_s = primwork + 101994;
132 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_f_s = primwork + 104154;
133 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_g_s = primwork + 107394;
134 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_h_s = primwork + 111714;
135 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_i_s = primwork + 117006;
136 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_k_s = primwork + 123054;
137 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_l_s = primwork + 129534;
138 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_m_s = primwork + 136014;
139 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_n_s = primwork + 141954;
140 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_o_s = primwork + 146706;
141 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_s_s = primwork + 149514;
142 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_p_s = primwork + 150189;
143 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_d_s = primwork + 151674;
144 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_f_s = primwork + 154374;
145 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_g_s = primwork + 158424;
146 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_h_s = primwork + 163824;
147 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_i_s = primwork + 170439;
148 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_k_s = primwork + 177999;
149 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_l_s = primwork + 186099;
150 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_m_s = primwork + 194199;
151 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_n_s = primwork + 201624;
152 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_o_s = primwork + 207564;
153 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_s_s = primwork + 211074;
154 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_p_s = primwork + 211844;
155 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_d_s = primwork + 213659;
156 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_f_s = primwork + 216959;
157 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_g_s = primwork + 221909;
158 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_h_s = primwork + 228509;
159 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_i_s = primwork + 236594;
160 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_k_s = primwork + 245834;
161 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_l_s = primwork + 255734;
162 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_m_s = primwork + 265634;
163 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_n_s = primwork + 274709;
164 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_o_s = primwork + 281969;
165 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_s_s = primwork + 286259;
166 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_p_s = primwork + 287117;
167 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_d_s = primwork + 289295;
168 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_f_s = primwork + 293255;
169 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_g_s = primwork + 299195;
170 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_h_s = primwork + 307115;
171 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_i_s = primwork + 316817;
172 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_k_s = primwork + 327905;
173 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_l_s = primwork + 339785;
174 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_m_s = primwork + 351665;
175 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_n_s = primwork + 362555;
176 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_o_s = primwork + 371267;
177 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_s_s = primwork + 376415;
178 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_p_s = primwork + 377351;
179 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_d_s = primwork + 379925;
180 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_f_s = primwork + 384605;
181 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_g_s = primwork + 391625;
182 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_h_s = primwork + 400985;
183 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_i_s = primwork + 412451;
184 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_k_s = primwork + 425555;
185 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_l_s = primwork + 439595;
186 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_m_s = primwork + 453635;
187 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_n_s = primwork + 466505;
188 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_o_s = primwork + 476801;
189 double * const hrrwork = (double *)(primwork + 482885);
190 double * const HRR_INT__i_p_i_s = hrrwork + 0;
191 double * const HRR_INT__i_p_k_s = hrrwork + 2352;
192 double * const HRR_INT__i_p_l_s = hrrwork + 5376;
193 double * const HRR_INT__i_p_m_s = hrrwork + 9156;
194 double * const HRR_INT__i_p_n_s = hrrwork + 13776;
195 double * const HRR_INT__i_p_o_s = hrrwork + 19320;
196 double * const HRR_INT__i_d_i_s = hrrwork + 25872;
197 double * const HRR_INT__i_d_k_s = hrrwork + 30576;
198 double * const HRR_INT__i_d_l_s = hrrwork + 36624;
199 double * const HRR_INT__i_d_m_s = hrrwork + 44184;
200 double * const HRR_INT__i_d_n_s = hrrwork + 53424;
201 double * const HRR_INT__i_d_o_s = hrrwork + 64512;
202 double * const HRR_INT__i_f_i_s = hrrwork + 77616;
203 double * const HRR_INT__i_f_k_s = hrrwork + 85456;
204 double * const HRR_INT__i_f_l_s = hrrwork + 95536;
205 double * const HRR_INT__i_f_m_s = hrrwork + 108136;
206 double * const HRR_INT__i_f_n_s = hrrwork + 123536;
207 double * const HRR_INT__i_f_o_s = hrrwork + 142016;
208 double * const HRR_INT__i_g_i_s = hrrwork + 163856;
209 double * const HRR_INT__i_g_k_s = hrrwork + 175616;
210 double * const HRR_INT__i_g_l_s = hrrwork + 190736;
211 double * const HRR_INT__i_g_m_s = hrrwork + 209636;
212 double * const HRR_INT__i_g_n_s = hrrwork + 232736;
213 double * const HRR_INT__i_g_o_s = hrrwork + 260456;
214 double * const HRR_INT__i_h_i_s = hrrwork + 293216;
215 double * const HRR_INT__i_h_i_p = hrrwork + 309680;
216 double * const HRR_INT__i_h_i_d = hrrwork + 359072;
217 double * const HRR_INT__i_h_i_f = hrrwork + 457856;
218 double * const HRR_INT__i_h_i_g = hrrwork + 622496;
219 double * const HRR_INT__i_h_k_s = hrrwork + 869456;
220 double * const HRR_INT__i_h_k_p = hrrwork + 890624;
221 double * const HRR_INT__i_h_k_d = hrrwork + 954128;
222 double * const HRR_INT__i_h_k_f = hrrwork + 1081136;
223 double * const HRR_INT__i_h_k_g = hrrwork + 1292816;
224 double * const HRR_INT__i_h_l_s = hrrwork + 1610336;
225 double * const HRR_INT__i_h_l_p = hrrwork + 1636796;
226 double * const HRR_INT__i_h_l_d = hrrwork + 1716176;
227 double * const HRR_INT__i_h_l_f = hrrwork + 1874936;
228 double * const HRR_INT__i_h_m_s = hrrwork + 2139536;
229 double * const HRR_INT__i_h_m_p = hrrwork + 2171876;
230 double * const HRR_INT__i_h_m_d = hrrwork + 2268896;
231 double * const HRR_INT__i_h_n_s = hrrwork + 2462936;
232 double * const HRR_INT__i_h_n_p = hrrwork + 2501744;
233 double * const HRR_INT__i_h_o_s = hrrwork + 2618168;
234 double * const HRR_INT__k_p_i_s = hrrwork + 2664032;
235 double * const HRR_INT__k_p_k_s = hrrwork + 2667056;
236 double * const HRR_INT__k_p_l_s = hrrwork + 2670944;
237 double * const HRR_INT__k_p_m_s = hrrwork + 2675804;
238 double * const HRR_INT__k_p_n_s = hrrwork + 2681744;
239 double * const HRR_INT__k_p_o_s = hrrwork + 2688872;
240 double * const HRR_INT__k_d_i_s = hrrwork + 2697296;
241 double * const HRR_INT__k_d_k_s = hrrwork + 2703344;
242 double * const HRR_INT__k_d_l_s = hrrwork + 2711120;
243 double * const HRR_INT__k_d_m_s = hrrwork + 2720840;
244 double * const HRR_INT__k_d_n_s = hrrwork + 2732720;
245 double * const HRR_INT__k_d_o_s = hrrwork + 2746976;
246 double * const HRR_INT__k_f_i_s = hrrwork + 2763824;
247 double * const HRR_INT__k_f_k_s = hrrwork + 2773904;
248 double * const HRR_INT__k_f_l_s = hrrwork + 2786864;
249 double * const HRR_INT__k_f_m_s = hrrwork + 2803064;
250 double * const HRR_INT__k_f_n_s = hrrwork + 2822864;
251 double * const HRR_INT__k_f_o_s = hrrwork + 2846624;
252 double * const HRR_INT__k_g_i_s = hrrwork + 2874704;
253 double * const HRR_INT__k_g_k_s = hrrwork + 2889824;
254 double * const HRR_INT__k_g_l_s = hrrwork + 2909264;
255 double * const HRR_INT__k_g_m_s = hrrwork + 2933564;
256 double * const HRR_INT__k_g_n_s = hrrwork + 2963264;
257 double * const HRR_INT__k_g_o_s = hrrwork + 2998904;
258 double * const HRR_INT__l_p_i_s = hrrwork + 3041024;
259 double * const HRR_INT__l_p_k_s = hrrwork + 3044804;
260 double * const HRR_INT__l_p_l_s = hrrwork + 3049664;
261 double * const HRR_INT__l_p_m_s = hrrwork + 3055739;
262 double * const HRR_INT__l_p_n_s = hrrwork + 3063164;
263 double * const HRR_INT__l_p_o_s = hrrwork + 3072074;
264 double * const HRR_INT__l_d_i_s = hrrwork + 3082604;
265 double * const HRR_INT__l_d_k_s = hrrwork + 3090164;
266 double * const HRR_INT__l_d_l_s = hrrwork + 3099884;
267 double * const HRR_INT__l_d_m_s = hrrwork + 3112034;
268 double * const HRR_INT__l_d_n_s = hrrwork + 3126884;
269 double * const HRR_INT__l_d_o_s = hrrwork + 3144704;
270 double * const HRR_INT__l_f_i_s = hrrwork + 3165764;
271 double * const HRR_INT__l_f_k_s = hrrwork + 3178364;
272 double * const HRR_INT__l_f_l_s = hrrwork + 3194564;
273 double * const HRR_INT__l_f_m_s = hrrwork + 3214814;
274 double * const HRR_INT__l_f_n_s = hrrwork + 3239564;
275 double * const HRR_INT__l_f_o_s = hrrwork + 3269264;
276 double * const HRR_INT__m_p_i_s = hrrwork + 3304364;
277 double * const HRR_INT__m_p_k_s = hrrwork + 3308984;
278 double * const HRR_INT__m_p_l_s = hrrwork + 3314924;
279 double * const HRR_INT__m_p_m_s = hrrwork + 3322349;
280 double * const HRR_INT__m_p_n_s = hrrwork + 3331424;
281 double * const HRR_INT__m_p_o_s = hrrwork + 3342314;
282 double * const HRR_INT__m_d_i_s = hrrwork + 3355184;
283 double * const HRR_INT__m_d_k_s = hrrwork + 3364424;
284 double * const HRR_INT__m_d_l_s = hrrwork + 3376304;
285 double * const HRR_INT__m_d_m_s = hrrwork + 3391154;
286 double * const HRR_INT__m_d_n_s = hrrwork + 3409304;
287 double * const HRR_INT__m_d_o_s = hrrwork + 3431084;
288 double * const HRR_INT__n_p_i_s = hrrwork + 3456824;
289 double * const HRR_INT__n_p_k_s = hrrwork + 3462368;
290 double * const HRR_INT__n_p_l_s = hrrwork + 3469496;
291 double * const HRR_INT__n_p_m_s = hrrwork + 3478406;
292 double * const HRR_INT__n_p_n_s = hrrwork + 3489296;
293 double * const HRR_INT__n_p_o_s = hrrwork + 3502364;
294
295
296 // Create constants
297 const SIMINT_DBLTYPE const_1 = SIMINT_DBLSET1(1);
298 const SIMINT_DBLTYPE const_10 = SIMINT_DBLSET1(10);
299 const SIMINT_DBLTYPE const_11 = SIMINT_DBLSET1(11);
300 const SIMINT_DBLTYPE const_2 = SIMINT_DBLSET1(2);
301 const SIMINT_DBLTYPE const_3 = SIMINT_DBLSET1(3);
302 const SIMINT_DBLTYPE const_4 = SIMINT_DBLSET1(4);
303 const SIMINT_DBLTYPE const_5 = SIMINT_DBLSET1(5);
304 const SIMINT_DBLTYPE const_6 = SIMINT_DBLSET1(6);
305 const SIMINT_DBLTYPE const_7 = SIMINT_DBLSET1(7);
306 const SIMINT_DBLTYPE const_8 = SIMINT_DBLSET1(8);
307 const SIMINT_DBLTYPE const_9 = SIMINT_DBLSET1(9);
308 const SIMINT_DBLTYPE one_half = SIMINT_DBLSET1(0.5);
309
310
311 ////////////////////////////////////////
312 // Loop over shells and primitives
313 ////////////////////////////////////////
314
315 real_abcd = 0;
316 istart = 0;
317 for(ab = 0; ab < P.nshell12_clip; ++ab)
318 {
319 const int iend = istart + P.nprim12[ab];
320
321 cd = 0;
322 jstart = 0;
323
324 for(cd = 0; cd < Q.nshell12_clip; cd += SIMINT_NSHELL_SIMD)
325 {
326 const int nshellbatch = ((cd + SIMINT_NSHELL_SIMD) > Q.nshell12_clip) ? Q.nshell12_clip - cd : SIMINT_NSHELL_SIMD;
327 int jend = jstart;
328 for(i = 0; i < nshellbatch; i++)
329 jend += Q.nprim12[cd+i];
330
331 // Clear the beginning of the workspace (where we are accumulating integrals)
332 memset(work, 0, SIMINT_NSHELL_SIMD * 94864 * sizeof(double));
333 abcd = 0;
334
335
336 for(i = istart; i < iend; ++i)
337 {
338 SIMINT_DBLTYPE bra_screen_max; // only used if check_screen
339
340 if(check_screen)
341 {
342 // Skip this whole thing if always insignificant
343 if((P.screen[i] * Q.screen_max) < screen_tol)
344 continue;
345 bra_screen_max = SIMINT_DBLSET1(P.screen[i]);
346 }
347
348 icd = 0;
349 iprimcd = 0;
350 nprim_icd = Q.nprim12[cd];
351 double * restrict PRIM_PTR_INT__i_s_i_s = INT__i_s_i_s + abcd * 784;
352 double * restrict PRIM_PTR_INT__i_s_k_s = INT__i_s_k_s + abcd * 1008;
353 double * restrict PRIM_PTR_INT__i_s_l_s = INT__i_s_l_s + abcd * 1260;
354 double * restrict PRIM_PTR_INT__i_s_m_s = INT__i_s_m_s + abcd * 1540;
355 double * restrict PRIM_PTR_INT__i_s_n_s = INT__i_s_n_s + abcd * 1848;
356 double * restrict PRIM_PTR_INT__i_s_o_s = INT__i_s_o_s + abcd * 2184;
357 double * restrict PRIM_PTR_INT__k_s_i_s = INT__k_s_i_s + abcd * 1008;
358 double * restrict PRIM_PTR_INT__k_s_k_s = INT__k_s_k_s + abcd * 1296;
359 double * restrict PRIM_PTR_INT__k_s_l_s = INT__k_s_l_s + abcd * 1620;
360 double * restrict PRIM_PTR_INT__k_s_m_s = INT__k_s_m_s + abcd * 1980;
361 double * restrict PRIM_PTR_INT__k_s_n_s = INT__k_s_n_s + abcd * 2376;
362 double * restrict PRIM_PTR_INT__k_s_o_s = INT__k_s_o_s + abcd * 2808;
363 double * restrict PRIM_PTR_INT__l_s_i_s = INT__l_s_i_s + abcd * 1260;
364 double * restrict PRIM_PTR_INT__l_s_k_s = INT__l_s_k_s + abcd * 1620;
365 double * restrict PRIM_PTR_INT__l_s_l_s = INT__l_s_l_s + abcd * 2025;
366 double * restrict PRIM_PTR_INT__l_s_m_s = INT__l_s_m_s + abcd * 2475;
367 double * restrict PRIM_PTR_INT__l_s_n_s = INT__l_s_n_s + abcd * 2970;
368 double * restrict PRIM_PTR_INT__l_s_o_s = INT__l_s_o_s + abcd * 3510;
369 double * restrict PRIM_PTR_INT__m_s_i_s = INT__m_s_i_s + abcd * 1540;
370 double * restrict PRIM_PTR_INT__m_s_k_s = INT__m_s_k_s + abcd * 1980;
371 double * restrict PRIM_PTR_INT__m_s_l_s = INT__m_s_l_s + abcd * 2475;
372 double * restrict PRIM_PTR_INT__m_s_m_s = INT__m_s_m_s + abcd * 3025;
373 double * restrict PRIM_PTR_INT__m_s_n_s = INT__m_s_n_s + abcd * 3630;
374 double * restrict PRIM_PTR_INT__m_s_o_s = INT__m_s_o_s + abcd * 4290;
375 double * restrict PRIM_PTR_INT__n_s_i_s = INT__n_s_i_s + abcd * 1848;
376 double * restrict PRIM_PTR_INT__n_s_k_s = INT__n_s_k_s + abcd * 2376;
377 double * restrict PRIM_PTR_INT__n_s_l_s = INT__n_s_l_s + abcd * 2970;
378 double * restrict PRIM_PTR_INT__n_s_m_s = INT__n_s_m_s + abcd * 3630;
379 double * restrict PRIM_PTR_INT__n_s_n_s = INT__n_s_n_s + abcd * 4356;
380 double * restrict PRIM_PTR_INT__n_s_o_s = INT__n_s_o_s + abcd * 5148;
381 double * restrict PRIM_PTR_INT__o_s_i_s = INT__o_s_i_s + abcd * 2184;
382 double * restrict PRIM_PTR_INT__o_s_k_s = INT__o_s_k_s + abcd * 2808;
383 double * restrict PRIM_PTR_INT__o_s_l_s = INT__o_s_l_s + abcd * 3510;
384 double * restrict PRIM_PTR_INT__o_s_m_s = INT__o_s_m_s + abcd * 4290;
385 double * restrict PRIM_PTR_INT__o_s_n_s = INT__o_s_n_s + abcd * 5148;
386 double * restrict PRIM_PTR_INT__o_s_o_s = INT__o_s_o_s + abcd * 6084;
387
388
389
390 // Load these one per loop over i
391 const SIMINT_DBLTYPE P_alpha = SIMINT_DBLSET1(P.alpha[i]);
392 const SIMINT_DBLTYPE P_prefac = SIMINT_DBLSET1(P.prefac[i]);
393 const SIMINT_DBLTYPE Pxyz[3] = { SIMINT_DBLSET1(P.x[i]), SIMINT_DBLSET1(P.y[i]), SIMINT_DBLSET1(P.z[i]) };
394
395 const SIMINT_DBLTYPE P_PA[3] = { SIMINT_DBLSET1(P.PA_x[i]), SIMINT_DBLSET1(P.PA_y[i]), SIMINT_DBLSET1(P.PA_z[i]) };
396
397 for(j = jstart; j < jend; j += SIMINT_SIMD_LEN)
398 {
399 // calculate the shell offsets
400 // these are the offset from the shell pointed to by cd
401 // for each element
402 int shelloffsets[SIMINT_SIMD_LEN] = {0};
403 int lastoffset = 0;
404 const int nlane = ( ((j + SIMINT_SIMD_LEN) < jend) ? SIMINT_SIMD_LEN : (jend - j));
405
406 if((iprimcd + SIMINT_SIMD_LEN) >= nprim_icd)
407 {
408 // Handle if the first element of the vector is a new shell
409 if(iprimcd >= nprim_icd && ((icd+1) < nshellbatch))
410 {
411 nprim_icd += Q.nprim12[cd + (++icd)];
412 PRIM_PTR_INT__i_s_i_s += 784;
413 PRIM_PTR_INT__i_s_k_s += 1008;
414 PRIM_PTR_INT__i_s_l_s += 1260;
415 PRIM_PTR_INT__i_s_m_s += 1540;
416 PRIM_PTR_INT__i_s_n_s += 1848;
417 PRIM_PTR_INT__i_s_o_s += 2184;
418 PRIM_PTR_INT__k_s_i_s += 1008;
419 PRIM_PTR_INT__k_s_k_s += 1296;
420 PRIM_PTR_INT__k_s_l_s += 1620;
421 PRIM_PTR_INT__k_s_m_s += 1980;
422 PRIM_PTR_INT__k_s_n_s += 2376;
423 PRIM_PTR_INT__k_s_o_s += 2808;
424 PRIM_PTR_INT__l_s_i_s += 1260;
425 PRIM_PTR_INT__l_s_k_s += 1620;
426 PRIM_PTR_INT__l_s_l_s += 2025;
427 PRIM_PTR_INT__l_s_m_s += 2475;
428 PRIM_PTR_INT__l_s_n_s += 2970;
429 PRIM_PTR_INT__l_s_o_s += 3510;
430 PRIM_PTR_INT__m_s_i_s += 1540;
431 PRIM_PTR_INT__m_s_k_s += 1980;
432 PRIM_PTR_INT__m_s_l_s += 2475;
433 PRIM_PTR_INT__m_s_m_s += 3025;
434 PRIM_PTR_INT__m_s_n_s += 3630;
435 PRIM_PTR_INT__m_s_o_s += 4290;
436 PRIM_PTR_INT__n_s_i_s += 1848;
437 PRIM_PTR_INT__n_s_k_s += 2376;
438 PRIM_PTR_INT__n_s_l_s += 2970;
439 PRIM_PTR_INT__n_s_m_s += 3630;
440 PRIM_PTR_INT__n_s_n_s += 4356;
441 PRIM_PTR_INT__n_s_o_s += 5148;
442 PRIM_PTR_INT__o_s_i_s += 2184;
443 PRIM_PTR_INT__o_s_k_s += 2808;
444 PRIM_PTR_INT__o_s_l_s += 3510;
445 PRIM_PTR_INT__o_s_m_s += 4290;
446 PRIM_PTR_INT__o_s_n_s += 5148;
447 PRIM_PTR_INT__o_s_o_s += 6084;
448 }
449 iprimcd++;
450 for(n = 1; n < SIMINT_SIMD_LEN; ++n)
451 {
452 if(iprimcd >= nprim_icd && ((icd+1) < nshellbatch))
453 {
454 shelloffsets[n] = shelloffsets[n-1] + 1;
455 lastoffset++;
456 nprim_icd += Q.nprim12[cd + (++icd)];
457 }
458 else
459 shelloffsets[n] = shelloffsets[n-1];
460 iprimcd++;
461 }
462 }
463 else
464 iprimcd += SIMINT_SIMD_LEN;
465
466 // Do we have to compute this vector (or has it been screened out)?
467 // (not_screened != 0 means we have to do this vector)
468 if(check_screen)
469 {
470 const double vmax = vector_max(SIMINT_MUL(bra_screen_max, SIMINT_DBLLOAD(Q.screen, j)));
471 if(vmax < screen_tol)
472 {
473 PRIM_PTR_INT__i_s_i_s += lastoffset*784;
474 PRIM_PTR_INT__i_s_k_s += lastoffset*1008;
475 PRIM_PTR_INT__i_s_l_s += lastoffset*1260;
476 PRIM_PTR_INT__i_s_m_s += lastoffset*1540;
477 PRIM_PTR_INT__i_s_n_s += lastoffset*1848;
478 PRIM_PTR_INT__i_s_o_s += lastoffset*2184;
479 PRIM_PTR_INT__k_s_i_s += lastoffset*1008;
480 PRIM_PTR_INT__k_s_k_s += lastoffset*1296;
481 PRIM_PTR_INT__k_s_l_s += lastoffset*1620;
482 PRIM_PTR_INT__k_s_m_s += lastoffset*1980;
483 PRIM_PTR_INT__k_s_n_s += lastoffset*2376;
484 PRIM_PTR_INT__k_s_o_s += lastoffset*2808;
485 PRIM_PTR_INT__l_s_i_s += lastoffset*1260;
486 PRIM_PTR_INT__l_s_k_s += lastoffset*1620;
487 PRIM_PTR_INT__l_s_l_s += lastoffset*2025;
488 PRIM_PTR_INT__l_s_m_s += lastoffset*2475;
489 PRIM_PTR_INT__l_s_n_s += lastoffset*2970;
490 PRIM_PTR_INT__l_s_o_s += lastoffset*3510;
491 PRIM_PTR_INT__m_s_i_s += lastoffset*1540;
492 PRIM_PTR_INT__m_s_k_s += lastoffset*1980;
493 PRIM_PTR_INT__m_s_l_s += lastoffset*2475;
494 PRIM_PTR_INT__m_s_m_s += lastoffset*3025;
495 PRIM_PTR_INT__m_s_n_s += lastoffset*3630;
496 PRIM_PTR_INT__m_s_o_s += lastoffset*4290;
497 PRIM_PTR_INT__n_s_i_s += lastoffset*1848;
498 PRIM_PTR_INT__n_s_k_s += lastoffset*2376;
499 PRIM_PTR_INT__n_s_l_s += lastoffset*2970;
500 PRIM_PTR_INT__n_s_m_s += lastoffset*3630;
501 PRIM_PTR_INT__n_s_n_s += lastoffset*4356;
502 PRIM_PTR_INT__n_s_o_s += lastoffset*5148;
503 PRIM_PTR_INT__o_s_i_s += lastoffset*2184;
504 PRIM_PTR_INT__o_s_k_s += lastoffset*2808;
505 PRIM_PTR_INT__o_s_l_s += lastoffset*3510;
506 PRIM_PTR_INT__o_s_m_s += lastoffset*4290;
507 PRIM_PTR_INT__o_s_n_s += lastoffset*5148;
508 PRIM_PTR_INT__o_s_o_s += lastoffset*6084;
509 continue;
510 }
511 }
512
513 const SIMINT_DBLTYPE Q_alpha = SIMINT_DBLLOAD(Q.alpha, j);
514 const SIMINT_DBLTYPE PQalpha_mul = SIMINT_MUL(P_alpha, Q_alpha);
515 const SIMINT_DBLTYPE PQalpha_sum = SIMINT_ADD(P_alpha, Q_alpha);
516 const SIMINT_DBLTYPE one_over_PQalpha_sum = SIMINT_DIV(const_1, PQalpha_sum);
517
518
519 /* construct R2 = (Px - Qx)**2 + (Py - Qy)**2 + (Pz -Qz)**2 */
520 SIMINT_DBLTYPE PQ[3];
521 PQ[0] = SIMINT_SUB(Pxyz[0], SIMINT_DBLLOAD(Q.x, j));
522 PQ[1] = SIMINT_SUB(Pxyz[1], SIMINT_DBLLOAD(Q.y, j));
523 PQ[2] = SIMINT_SUB(Pxyz[2], SIMINT_DBLLOAD(Q.z, j));
524 SIMINT_DBLTYPE R2 = SIMINT_MUL(PQ[0], PQ[0]);
525 R2 = SIMINT_FMADD(PQ[1], PQ[1], R2);
526 R2 = SIMINT_FMADD(PQ[2], PQ[2], R2);
527
528 const SIMINT_DBLTYPE alpha = SIMINT_MUL(PQalpha_mul, one_over_PQalpha_sum); // alpha from MEST
529 const SIMINT_DBLTYPE one_over_p = SIMINT_DIV(const_1, P_alpha);
530 const SIMINT_DBLTYPE one_over_q = SIMINT_DIV(const_1, Q_alpha);
531 const SIMINT_DBLTYPE one_over_2p = SIMINT_MUL(one_half, one_over_p);
532 const SIMINT_DBLTYPE one_over_2q = SIMINT_MUL(one_half, one_over_q);
533 const SIMINT_DBLTYPE one_over_2pq = SIMINT_MUL(one_half, one_over_PQalpha_sum);
534 const SIMINT_DBLTYPE Q_PA[3] = { SIMINT_DBLLOAD(Q.PA_x, j), SIMINT_DBLLOAD(Q.PA_y, j), SIMINT_DBLLOAD(Q.PA_z, j) };
535
536 // NOTE: Minus sign!
537 const SIMINT_DBLTYPE a_over_p = SIMINT_MUL(SIMINT_NEG(alpha), one_over_p);
538 SIMINT_DBLTYPE aop_PQ[3];
539 aop_PQ[0] = SIMINT_MUL(a_over_p, PQ[0]);
540 aop_PQ[1] = SIMINT_MUL(a_over_p, PQ[1]);
541 aop_PQ[2] = SIMINT_MUL(a_over_p, PQ[2]);
542
543 SIMINT_DBLTYPE a_over_q = SIMINT_MUL(alpha, one_over_q);
544 SIMINT_DBLTYPE aoq_PQ[3];
545 aoq_PQ[0] = SIMINT_MUL(a_over_q, PQ[0]);
546 aoq_PQ[1] = SIMINT_MUL(a_over_q, PQ[1]);
547 aoq_PQ[2] = SIMINT_MUL(a_over_q, PQ[2]);
548 // Put a minus sign here so we don't have to in RR routines
549 a_over_q = SIMINT_NEG(a_over_q);
550
551
552 //////////////////////////////////////////////
553 // Fjt function section
554 // Maximum v value: 22
555 //////////////////////////////////////////////
556 // The parameter to the Fjt function
557 const SIMINT_DBLTYPE F_x = SIMINT_MUL(R2, alpha);
558
559
560 const SIMINT_DBLTYPE Q_prefac = mask_load(nlane, Q.prefac + j);
561
562
563 boys_F_split(PRIM_INT__s_s_s_s, F_x, 22);
564 SIMINT_DBLTYPE prefac = SIMINT_SQRT(one_over_PQalpha_sum);
565 prefac = SIMINT_MUL(SIMINT_MUL(P_prefac, Q_prefac), prefac);
566 for(n = 0; n <= 22; n++)
567 PRIM_INT__s_s_s_s[n] = SIMINT_MUL(PRIM_INT__s_s_s_s[n], prefac);
568
569 //////////////////////////////////////////////
570 // Primitive integrals: Vertical recurrance
571 //////////////////////////////////////////////
572
573 const SIMINT_DBLTYPE vrr_const_1_over_2p = one_over_2p;
574 const SIMINT_DBLTYPE vrr_const_2_over_2p = SIMINT_MUL(const_2, one_over_2p);
575 const SIMINT_DBLTYPE vrr_const_3_over_2p = SIMINT_MUL(const_3, one_over_2p);
576 const SIMINT_DBLTYPE vrr_const_4_over_2p = SIMINT_MUL(const_4, one_over_2p);
577 const SIMINT_DBLTYPE vrr_const_5_over_2p = SIMINT_MUL(const_5, one_over_2p);
578 const SIMINT_DBLTYPE vrr_const_6_over_2p = SIMINT_MUL(const_6, one_over_2p);
579 const SIMINT_DBLTYPE vrr_const_7_over_2p = SIMINT_MUL(const_7, one_over_2p);
580 const SIMINT_DBLTYPE vrr_const_8_over_2p = SIMINT_MUL(const_8, one_over_2p);
581 const SIMINT_DBLTYPE vrr_const_9_over_2p = SIMINT_MUL(const_9, one_over_2p);
582 const SIMINT_DBLTYPE vrr_const_10_over_2p = SIMINT_MUL(const_10, one_over_2p);
583 const SIMINT_DBLTYPE vrr_const_1_over_2q = one_over_2q;
584 const SIMINT_DBLTYPE vrr_const_2_over_2q = SIMINT_MUL(const_2, one_over_2q);
585 const SIMINT_DBLTYPE vrr_const_3_over_2q = SIMINT_MUL(const_3, one_over_2q);
586 const SIMINT_DBLTYPE vrr_const_4_over_2q = SIMINT_MUL(const_4, one_over_2q);
587 const SIMINT_DBLTYPE vrr_const_5_over_2q = SIMINT_MUL(const_5, one_over_2q);
588 const SIMINT_DBLTYPE vrr_const_6_over_2q = SIMINT_MUL(const_6, one_over_2q);
589 const SIMINT_DBLTYPE vrr_const_7_over_2q = SIMINT_MUL(const_7, one_over_2q);
590 const SIMINT_DBLTYPE vrr_const_8_over_2q = SIMINT_MUL(const_8, one_over_2q);
591 const SIMINT_DBLTYPE vrr_const_9_over_2q = SIMINT_MUL(const_9, one_over_2q);
592 const SIMINT_DBLTYPE vrr_const_10_over_2q = SIMINT_MUL(const_10, one_over_2q);
593 const SIMINT_DBLTYPE vrr_const_1_over_2pq = one_over_2pq;
594 const SIMINT_DBLTYPE vrr_const_2_over_2pq = SIMINT_MUL(const_2, one_over_2pq);
595 const SIMINT_DBLTYPE vrr_const_3_over_2pq = SIMINT_MUL(const_3, one_over_2pq);
596 const SIMINT_DBLTYPE vrr_const_4_over_2pq = SIMINT_MUL(const_4, one_over_2pq);
597 const SIMINT_DBLTYPE vrr_const_5_over_2pq = SIMINT_MUL(const_5, one_over_2pq);
598 const SIMINT_DBLTYPE vrr_const_6_over_2pq = SIMINT_MUL(const_6, one_over_2pq);
599 const SIMINT_DBLTYPE vrr_const_7_over_2pq = SIMINT_MUL(const_7, one_over_2pq);
600 const SIMINT_DBLTYPE vrr_const_8_over_2pq = SIMINT_MUL(const_8, one_over_2pq);
601 const SIMINT_DBLTYPE vrr_const_9_over_2pq = SIMINT_MUL(const_9, one_over_2pq);
602 const SIMINT_DBLTYPE vrr_const_10_over_2pq = SIMINT_MUL(const_10, one_over_2pq);
603 const SIMINT_DBLTYPE vrr_const_11_over_2pq = SIMINT_MUL(const_11, one_over_2pq);
604
605
606
607 // Forming PRIM_INT__p_s_s_s[22 * 3];
608 for(n = 0; n < 22; ++n) // loop over orders of auxiliary function
609 {
610
611 PRIM_INT__p_s_s_s[n * 3 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_s_s[n * 1 + 0]);
612 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]);
613
614 PRIM_INT__p_s_s_s[n * 3 + 1] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_s_s[n * 1 + 0]);
615 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]);
616
617 PRIM_INT__p_s_s_s[n * 3 + 2] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_s_s[n * 1 + 0]);
618 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]);
619
620 }
621
622
623
624 // Forming PRIM_INT__d_s_s_s[21 * 6];
625 for(n = 0; n < 21; ++n) // loop over orders of auxiliary function
626 {
627
628 PRIM_INT__d_s_s_s[n * 6 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__p_s_s_s[n * 3 + 0]);
629 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]);
630 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]);
631
632 PRIM_INT__d_s_s_s[n * 6 + 1] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_s_s[n * 3 + 0]);
633 PRIM_INT__d_s_s_s[n * 6 + 1] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__d_s_s_s[n * 6 + 1]);
634
635 PRIM_INT__d_s_s_s[n * 6 + 2] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_s_s[n * 3 + 0]);
636 PRIM_INT__d_s_s_s[n * 6 + 2] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__d_s_s_s[n * 6 + 2]);
637
638 PRIM_INT__d_s_s_s[n * 6 + 3] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_s_s[n * 3 + 1]);
639 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]);
640 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]);
641
642 PRIM_INT__d_s_s_s[n * 6 + 4] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_s_s[n * 3 + 1]);
643 PRIM_INT__d_s_s_s[n * 6 + 4] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__d_s_s_s[n * 6 + 4]);
644
645 PRIM_INT__d_s_s_s[n * 6 + 5] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_s_s[n * 3 + 2]);
646 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]);
647 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]);
648
649 }
650
651
652
653 // Forming PRIM_INT__f_s_s_s[20 * 10];
654 for(n = 0; n < 20; ++n) // loop over orders of auxiliary function
655 {
656
657 PRIM_INT__f_s_s_s[n * 10 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__d_s_s_s[n * 6 + 0]);
658 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]);
659 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]);
660
661 PRIM_INT__f_s_s_s[n * 10 + 1] = SIMINT_MUL(P_PA[1], PRIM_INT__d_s_s_s[n * 6 + 0]);
662 PRIM_INT__f_s_s_s[n * 10 + 1] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 0], PRIM_INT__f_s_s_s[n * 10 + 1]);
663
664 PRIM_INT__f_s_s_s[n * 10 + 2] = SIMINT_MUL(P_PA[2], PRIM_INT__d_s_s_s[n * 6 + 0]);
665 PRIM_INT__f_s_s_s[n * 10 + 2] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 0], PRIM_INT__f_s_s_s[n * 10 + 2]);
666
667 PRIM_INT__f_s_s_s[n * 10 + 3] = SIMINT_MUL(P_PA[0], PRIM_INT__d_s_s_s[n * 6 + 3]);
668 PRIM_INT__f_s_s_s[n * 10 + 3] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 3], PRIM_INT__f_s_s_s[n * 10 + 3]);
669
670 PRIM_INT__f_s_s_s[n * 10 + 4] = SIMINT_MUL(P_PA[2], PRIM_INT__d_s_s_s[n * 6 + 1]);
671 PRIM_INT__f_s_s_s[n * 10 + 4] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 1], PRIM_INT__f_s_s_s[n * 10 + 4]);
672
673 PRIM_INT__f_s_s_s[n * 10 + 5] = SIMINT_MUL(P_PA[0], PRIM_INT__d_s_s_s[n * 6 + 5]);
674 PRIM_INT__f_s_s_s[n * 10 + 5] = SIMINT_FMADD( aop_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 5], PRIM_INT__f_s_s_s[n * 10 + 5]);
675
676 PRIM_INT__f_s_s_s[n * 10 + 6] = SIMINT_MUL(P_PA[1], PRIM_INT__d_s_s_s[n * 6 + 3]);
677 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]);
678 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]);
679
680 PRIM_INT__f_s_s_s[n * 10 + 7] = SIMINT_MUL(P_PA[2], PRIM_INT__d_s_s_s[n * 6 + 3]);
681 PRIM_INT__f_s_s_s[n * 10 + 7] = SIMINT_FMADD( aop_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 3], PRIM_INT__f_s_s_s[n * 10 + 7]);
682
683 PRIM_INT__f_s_s_s[n * 10 + 8] = SIMINT_MUL(P_PA[1], PRIM_INT__d_s_s_s[n * 6 + 5]);
684 PRIM_INT__f_s_s_s[n * 10 + 8] = SIMINT_FMADD( aop_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 5], PRIM_INT__f_s_s_s[n * 10 + 8]);
685
686 PRIM_INT__f_s_s_s[n * 10 + 9] = SIMINT_MUL(P_PA[2], PRIM_INT__d_s_s_s[n * 6 + 5]);
687 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]);
688 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]);
689
690 }
691
692
693 VRR_I_g_s_s_s(
694 PRIM_INT__g_s_s_s,
695 PRIM_INT__f_s_s_s,
696 PRIM_INT__d_s_s_s,
697 P_PA,
698 a_over_p,
699 aop_PQ,
700 one_over_2p,
701 19);
702
703
704 VRR_I_h_s_s_s(
705 PRIM_INT__h_s_s_s,
706 PRIM_INT__g_s_s_s,
707 PRIM_INT__f_s_s_s,
708 P_PA,
709 a_over_p,
710 aop_PQ,
711 one_over_2p,
712 18);
713
714
715 ostei_general_vrr1_I(6, 17,
716 one_over_2p, a_over_p, aop_PQ, P_PA,
717 PRIM_INT__h_s_s_s, PRIM_INT__g_s_s_s, PRIM_INT__i_s_s_s);
718
719
720 ostei_general_vrr_K(6, 0, 1, 0, 11,
721 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
722 PRIM_INT__i_s_s_s, NULL, NULL, PRIM_INT__h_s_s_s, NULL, PRIM_INT__i_s_p_s);
723
724
725 ostei_general_vrr_K(5, 0, 1, 0, 11,
726 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
727 PRIM_INT__h_s_s_s, NULL, NULL, PRIM_INT__g_s_s_s, NULL, PRIM_INT__h_s_p_s);
728
729
730 ostei_general_vrr_K(6, 0, 2, 0, 10,
731 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
732 PRIM_INT__i_s_p_s, PRIM_INT__i_s_s_s, NULL, PRIM_INT__h_s_p_s, NULL, PRIM_INT__i_s_d_s);
733
734
735 VRR_K_g_s_p_s(
736 PRIM_INT__g_s_p_s,
737 PRIM_INT__g_s_s_s,
738 PRIM_INT__f_s_s_s,
739 Q_PA,
740 aoq_PQ,
741 one_over_2pq,
742 11);
743
744
745 ostei_general_vrr_K(5, 0, 2, 0, 10,
746 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
747 PRIM_INT__h_s_p_s, PRIM_INT__h_s_s_s, NULL, PRIM_INT__g_s_p_s, NULL, PRIM_INT__h_s_d_s);
748
749
750 ostei_general_vrr_K(6, 0, 3, 0, 9,
751 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
752 PRIM_INT__i_s_d_s, PRIM_INT__i_s_p_s, NULL, PRIM_INT__h_s_d_s, NULL, PRIM_INT__i_s_f_s);
753
754
755 VRR_K_f_s_p_s(
756 PRIM_INT__f_s_p_s,
757 PRIM_INT__f_s_s_s,
758 PRIM_INT__d_s_s_s,
759 Q_PA,
760 aoq_PQ,
761 one_over_2pq,
762 11);
763
764
765 ostei_general_vrr_K(4, 0, 2, 0, 10,
766 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
767 PRIM_INT__g_s_p_s, PRIM_INT__g_s_s_s, NULL, PRIM_INT__f_s_p_s, NULL, PRIM_INT__g_s_d_s);
768
769
770 ostei_general_vrr_K(5, 0, 3, 0, 9,
771 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
772 PRIM_INT__h_s_d_s, PRIM_INT__h_s_p_s, NULL, PRIM_INT__g_s_d_s, NULL, PRIM_INT__h_s_f_s);
773
774
775 ostei_general_vrr_K(6, 0, 4, 0, 8,
776 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
777 PRIM_INT__i_s_f_s, PRIM_INT__i_s_d_s, NULL, PRIM_INT__h_s_f_s, NULL, PRIM_INT__i_s_g_s);
778
779
780
781 // Forming PRIM_INT__d_s_p_s[11 * 18];
782 for(n = 0; n < 11; ++n) // loop over orders of auxiliary function
783 {
784
785 PRIM_INT__d_s_p_s[n * 18 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 0]);
786 PRIM_INT__d_s_p_s[n * 18 + 0] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 0], PRIM_INT__d_s_p_s[n * 18 + 0]);
787 PRIM_INT__d_s_p_s[n * 18 + 0] = SIMINT_FMADD( vrr_const_2_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__d_s_p_s[n * 18 + 0]);
788
789 PRIM_INT__d_s_p_s[n * 18 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 0]);
790 PRIM_INT__d_s_p_s[n * 18 + 1] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 0], PRIM_INT__d_s_p_s[n * 18 + 1]);
791
792 PRIM_INT__d_s_p_s[n * 18 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 0]);
793 PRIM_INT__d_s_p_s[n * 18 + 2] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 0], PRIM_INT__d_s_p_s[n * 18 + 2]);
794
795 PRIM_INT__d_s_p_s[n * 18 + 3] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 1]);
796 PRIM_INT__d_s_p_s[n * 18 + 3] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 1], PRIM_INT__d_s_p_s[n * 18 + 3]);
797 PRIM_INT__d_s_p_s[n * 18 + 3] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__d_s_p_s[n * 18 + 3]);
798
799 PRIM_INT__d_s_p_s[n * 18 + 4] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 1]);
800 PRIM_INT__d_s_p_s[n * 18 + 4] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 1], PRIM_INT__d_s_p_s[n * 18 + 4]);
801 PRIM_INT__d_s_p_s[n * 18 + 4] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__d_s_p_s[n * 18 + 4]);
802
803 PRIM_INT__d_s_p_s[n * 18 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 1]);
804 PRIM_INT__d_s_p_s[n * 18 + 5] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 1], PRIM_INT__d_s_p_s[n * 18 + 5]);
805
806 PRIM_INT__d_s_p_s[n * 18 + 6] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 2]);
807 PRIM_INT__d_s_p_s[n * 18 + 6] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 2], PRIM_INT__d_s_p_s[n * 18 + 6]);
808 PRIM_INT__d_s_p_s[n * 18 + 6] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__d_s_p_s[n * 18 + 6]);
809
810 PRIM_INT__d_s_p_s[n * 18 + 7] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 2]);
811 PRIM_INT__d_s_p_s[n * 18 + 7] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 2], PRIM_INT__d_s_p_s[n * 18 + 7]);
812
813 PRIM_INT__d_s_p_s[n * 18 + 8] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 2]);
814 PRIM_INT__d_s_p_s[n * 18 + 8] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 2], PRIM_INT__d_s_p_s[n * 18 + 8]);
815 PRIM_INT__d_s_p_s[n * 18 + 8] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__d_s_p_s[n * 18 + 8]);
816
817 PRIM_INT__d_s_p_s[n * 18 + 9] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 3]);
818 PRIM_INT__d_s_p_s[n * 18 + 9] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 3], PRIM_INT__d_s_p_s[n * 18 + 9]);
819
820 PRIM_INT__d_s_p_s[n * 18 + 10] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 3]);
821 PRIM_INT__d_s_p_s[n * 18 + 10] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 3], PRIM_INT__d_s_p_s[n * 18 + 10]);
822 PRIM_INT__d_s_p_s[n * 18 + 10] = SIMINT_FMADD( vrr_const_2_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__d_s_p_s[n * 18 + 10]);
823
824 PRIM_INT__d_s_p_s[n * 18 + 11] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 3]);
825 PRIM_INT__d_s_p_s[n * 18 + 11] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 3], PRIM_INT__d_s_p_s[n * 18 + 11]);
826
827 PRIM_INT__d_s_p_s[n * 18 + 12] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 4]);
828 PRIM_INT__d_s_p_s[n * 18 + 12] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 4], PRIM_INT__d_s_p_s[n * 18 + 12]);
829
830 PRIM_INT__d_s_p_s[n * 18 + 13] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 4]);
831 PRIM_INT__d_s_p_s[n * 18 + 13] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 4], PRIM_INT__d_s_p_s[n * 18 + 13]);
832 PRIM_INT__d_s_p_s[n * 18 + 13] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__d_s_p_s[n * 18 + 13]);
833
834 PRIM_INT__d_s_p_s[n * 18 + 14] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 4]);
835 PRIM_INT__d_s_p_s[n * 18 + 14] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 4], PRIM_INT__d_s_p_s[n * 18 + 14]);
836 PRIM_INT__d_s_p_s[n * 18 + 14] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__d_s_p_s[n * 18 + 14]);
837
838 PRIM_INT__d_s_p_s[n * 18 + 15] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 5]);
839 PRIM_INT__d_s_p_s[n * 18 + 15] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__d_s_s_s[(n+1) * 6 + 5], PRIM_INT__d_s_p_s[n * 18 + 15]);
840
841 PRIM_INT__d_s_p_s[n * 18 + 16] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 5]);
842 PRIM_INT__d_s_p_s[n * 18 + 16] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__d_s_s_s[(n+1) * 6 + 5], PRIM_INT__d_s_p_s[n * 18 + 16]);
843
844 PRIM_INT__d_s_p_s[n * 18 + 17] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 5]);
845 PRIM_INT__d_s_p_s[n * 18 + 17] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__d_s_s_s[(n+1) * 6 + 5], PRIM_INT__d_s_p_s[n * 18 + 17]);
846 PRIM_INT__d_s_p_s[n * 18 + 17] = SIMINT_FMADD( vrr_const_2_over_2pq, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__d_s_p_s[n * 18 + 17]);
847
848 }
849
850
851 VRR_K_f_s_d_s(
852 PRIM_INT__f_s_d_s,
853 PRIM_INT__f_s_p_s,
854 PRIM_INT__f_s_s_s,
855 PRIM_INT__d_s_p_s,
856 Q_PA,
857 a_over_q,
858 aoq_PQ,
859 one_over_2pq,
860 one_over_2q,
861 10);
862
863
864 ostei_general_vrr_K(4, 0, 3, 0, 9,
865 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
866 PRIM_INT__g_s_d_s, PRIM_INT__g_s_p_s, NULL, PRIM_INT__f_s_d_s, NULL, PRIM_INT__g_s_f_s);
867
868
869 ostei_general_vrr_K(5, 0, 4, 0, 8,
870 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
871 PRIM_INT__h_s_f_s, PRIM_INT__h_s_d_s, NULL, PRIM_INT__g_s_f_s, NULL, PRIM_INT__h_s_g_s);
872
873
874 ostei_general_vrr_K(6, 0, 5, 0, 7,
875 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
876 PRIM_INT__i_s_g_s, PRIM_INT__i_s_f_s, NULL, PRIM_INT__h_s_g_s, NULL, PRIM_INT__i_s_h_s);
877
878
879
880 // Forming PRIM_INT__p_s_p_s[11 * 9];
881 for(n = 0; n < 11; ++n) // loop over orders of auxiliary function
882 {
883
884 PRIM_INT__p_s_p_s[n * 9 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_s_s[n * 3 + 0]);
885 PRIM_INT__p_s_p_s[n * 9 + 0] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_p_s[n * 9 + 0]);
886 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]);
887
888 PRIM_INT__p_s_p_s[n * 9 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_s_s[n * 3 + 0]);
889 PRIM_INT__p_s_p_s[n * 9 + 1] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_p_s[n * 9 + 1]);
890
891 PRIM_INT__p_s_p_s[n * 9 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_s_s[n * 3 + 0]);
892 PRIM_INT__p_s_p_s[n * 9 + 2] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_p_s[n * 9 + 2]);
893
894 PRIM_INT__p_s_p_s[n * 9 + 3] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_s_s[n * 3 + 1]);
895 PRIM_INT__p_s_p_s[n * 9 + 3] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_p_s[n * 9 + 3]);
896
897 PRIM_INT__p_s_p_s[n * 9 + 4] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_s_s[n * 3 + 1]);
898 PRIM_INT__p_s_p_s[n * 9 + 4] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_p_s[n * 9 + 4]);
899 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]);
900
901 PRIM_INT__p_s_p_s[n * 9 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_s_s[n * 3 + 1]);
902 PRIM_INT__p_s_p_s[n * 9 + 5] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_p_s[n * 9 + 5]);
903
904 PRIM_INT__p_s_p_s[n * 9 + 6] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_s_s[n * 3 + 2]);
905 PRIM_INT__p_s_p_s[n * 9 + 6] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_p_s[n * 9 + 6]);
906
907 PRIM_INT__p_s_p_s[n * 9 + 7] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_s_s[n * 3 + 2]);
908 PRIM_INT__p_s_p_s[n * 9 + 7] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_p_s[n * 9 + 7]);
909
910 PRIM_INT__p_s_p_s[n * 9 + 8] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_s_s[n * 3 + 2]);
911 PRIM_INT__p_s_p_s[n * 9 + 8] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_p_s[n * 9 + 8]);
912 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]);
913
914 }
915
916
917 VRR_K_d_s_d_s(
918 PRIM_INT__d_s_d_s,
919 PRIM_INT__d_s_p_s,
920 PRIM_INT__d_s_s_s,
921 PRIM_INT__p_s_p_s,
922 Q_PA,
923 a_over_q,
924 aoq_PQ,
925 one_over_2pq,
926 one_over_2q,
927 10);
928
929
930 ostei_general_vrr_K(3, 0, 3, 0, 9,
931 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
932 PRIM_INT__f_s_d_s, PRIM_INT__f_s_p_s, NULL, PRIM_INT__d_s_d_s, NULL, PRIM_INT__f_s_f_s);
933
934
935 ostei_general_vrr_K(4, 0, 4, 0, 8,
936 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
937 PRIM_INT__g_s_f_s, PRIM_INT__g_s_d_s, NULL, PRIM_INT__f_s_f_s, NULL, PRIM_INT__g_s_g_s);
938
939
940 ostei_general_vrr_K(5, 0, 5, 0, 7,
941 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
942 PRIM_INT__h_s_g_s, PRIM_INT__h_s_f_s, NULL, PRIM_INT__g_s_g_s, NULL, PRIM_INT__h_s_h_s);
943
944
945 ostei_general_vrr_K(6, 0, 6, 0, 6,
946 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
947 PRIM_INT__i_s_h_s, PRIM_INT__i_s_g_s, NULL, PRIM_INT__h_s_h_s, NULL, PRIM_INT__i_s_i_s);
948
949
950
951 // Forming PRIM_INT__s_s_p_s[11 * 3];
952 for(n = 0; n < 11; ++n) // loop over orders of auxiliary function
953 {
954
955 PRIM_INT__s_s_p_s[n * 3 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_s_s[n * 1 + 0]);
956 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]);
957
958 PRIM_INT__s_s_p_s[n * 3 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_s_s[n * 1 + 0]);
959 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]);
960
961 PRIM_INT__s_s_p_s[n * 3 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_s_s[n * 1 + 0]);
962 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]);
963
964 }
965
966
967
968 // Forming PRIM_INT__p_s_d_s[10 * 18];
969 for(n = 0; n < 10; ++n) // loop over orders of auxiliary function
970 {
971
972 PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_p_s[n * 9 + 0]);
973 PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_p_s[(n+1) * 9 + 0], PRIM_INT__p_s_d_s[n * 18 + 0]);
974 PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_s_s[n * 3 + 0]), PRIM_INT__p_s_d_s[n * 18 + 0]);
975 PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 0], PRIM_INT__p_s_d_s[n * 18 + 0]);
976
977 PRIM_INT__p_s_d_s[n * 18 + 3] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_p_s[n * 9 + 1]);
978 PRIM_INT__p_s_d_s[n * 18 + 3] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_p_s[(n+1) * 9 + 1], PRIM_INT__p_s_d_s[n * 18 + 3]);
979 PRIM_INT__p_s_d_s[n * 18 + 3] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_s_s[n * 3 + 0]), PRIM_INT__p_s_d_s[n * 18 + 3]);
980
981 PRIM_INT__p_s_d_s[n * 18 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_p_s[n * 9 + 2]);
982 PRIM_INT__p_s_d_s[n * 18 + 5] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_p_s[(n+1) * 9 + 2], PRIM_INT__p_s_d_s[n * 18 + 5]);
983 PRIM_INT__p_s_d_s[n * 18 + 5] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 0], PRIM_INT__p_s_s_s[n * 3 + 0]), PRIM_INT__p_s_d_s[n * 18 + 5]);
984
985 PRIM_INT__p_s_d_s[n * 18 + 6] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_p_s[n * 9 + 3]);
986 PRIM_INT__p_s_d_s[n * 18 + 6] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_p_s[(n+1) * 9 + 3], PRIM_INT__p_s_d_s[n * 18 + 6]);
987 PRIM_INT__p_s_d_s[n * 18 + 6] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_s_s[n * 3 + 1]), PRIM_INT__p_s_d_s[n * 18 + 6]);
988
989 PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_p_s[n * 9 + 4]);
990 PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_p_s[(n+1) * 9 + 4], PRIM_INT__p_s_d_s[n * 18 + 9]);
991 PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_s_s[n * 3 + 1]), PRIM_INT__p_s_d_s[n * 18 + 9]);
992 PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 1], PRIM_INT__p_s_d_s[n * 18 + 9]);
993
994 PRIM_INT__p_s_d_s[n * 18 + 11] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_p_s[n * 9 + 5]);
995 PRIM_INT__p_s_d_s[n * 18 + 11] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_p_s[(n+1) * 9 + 5], PRIM_INT__p_s_d_s[n * 18 + 11]);
996 PRIM_INT__p_s_d_s[n * 18 + 11] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 1], PRIM_INT__p_s_s_s[n * 3 + 1]), PRIM_INT__p_s_d_s[n * 18 + 11]);
997
998 PRIM_INT__p_s_d_s[n * 18 + 12] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_p_s[n * 9 + 6]);
999 PRIM_INT__p_s_d_s[n * 18 + 12] = SIMINT_FMADD( aoq_PQ[0], PRIM_INT__p_s_p_s[(n+1) * 9 + 6], PRIM_INT__p_s_d_s[n * 18 + 12]);
1000 PRIM_INT__p_s_d_s[n * 18 + 12] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_s_s[n * 3 + 2]), PRIM_INT__p_s_d_s[n * 18 + 12]);
1001
1002 PRIM_INT__p_s_d_s[n * 18 + 15] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_p_s[n * 9 + 7]);
1003 PRIM_INT__p_s_d_s[n * 18 + 15] = SIMINT_FMADD( aoq_PQ[1], PRIM_INT__p_s_p_s[(n+1) * 9 + 7], PRIM_INT__p_s_d_s[n * 18 + 15]);
1004 PRIM_INT__p_s_d_s[n * 18 + 15] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_s_s[n * 3 + 2]), PRIM_INT__p_s_d_s[n * 18 + 15]);
1005
1006 PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_p_s[n * 9 + 8]);
1007 PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_FMADD( aoq_PQ[2], PRIM_INT__p_s_p_s[(n+1) * 9 + 8], PRIM_INT__p_s_d_s[n * 18 + 17]);
1008 PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_FMADD( vrr_const_1_over_2q, SIMINT_FMADD(a_over_q, PRIM_INT__p_s_s_s[(n+1) * 3 + 2], PRIM_INT__p_s_s_s[n * 3 + 2]), PRIM_INT__p_s_d_s[n * 18 + 17]);
1009 PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_FMADD( vrr_const_1_over_2pq, PRIM_INT__s_s_p_s[(n+1) * 3 + 2], PRIM_INT__p_s_d_s[n * 18 + 17]);
1010
1011 }
1012
1013
1014 VRR_K_d_s_f_s(
1015 PRIM_INT__d_s_f_s,
1016 PRIM_INT__d_s_d_s,
1017 PRIM_INT__d_s_p_s,
1018 PRIM_INT__p_s_d_s,
1019 Q_PA,
1020 a_over_q,
1021 aoq_PQ,
1022 one_over_2pq,
1023 one_over_2q,
1024 9);
1025
1026
1027 ostei_general_vrr_K(3, 0, 4, 0, 8,
1028 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1029 PRIM_INT__f_s_f_s, PRIM_INT__f_s_d_s, NULL, PRIM_INT__d_s_f_s, NULL, PRIM_INT__f_s_g_s);
1030
1031
1032 ostei_general_vrr_K(4, 0, 5, 0, 7,
1033 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1034 PRIM_INT__g_s_g_s, PRIM_INT__g_s_f_s, NULL, PRIM_INT__f_s_g_s, NULL, PRIM_INT__g_s_h_s);
1035
1036
1037 ostei_general_vrr_K(5, 0, 6, 0, 6,
1038 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1039 PRIM_INT__h_s_h_s, PRIM_INT__h_s_g_s, NULL, PRIM_INT__g_s_h_s, NULL, PRIM_INT__h_s_i_s);
1040
1041
1042 ostei_general_vrr_K(6, 0, 7, 0, 5,
1043 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1044 PRIM_INT__i_s_i_s, PRIM_INT__i_s_h_s, NULL, PRIM_INT__h_s_i_s, NULL, PRIM_INT__i_s_k_s);
1045
1046
1047 ostei_general_vrr1_I(7, 16,
1048 one_over_2p, a_over_p, aop_PQ, P_PA,
1049 PRIM_INT__i_s_s_s, PRIM_INT__h_s_s_s, PRIM_INT__k_s_s_s);
1050
1051
1052 ostei_general_vrr_K(7, 0, 1, 0, 11,
1053 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1054 PRIM_INT__k_s_s_s, NULL, NULL, PRIM_INT__i_s_s_s, NULL, PRIM_INT__k_s_p_s);
1055
1056
1057 ostei_general_vrr_K(7, 0, 2, 0, 10,
1058 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1059 PRIM_INT__k_s_p_s, PRIM_INT__k_s_s_s, NULL, PRIM_INT__i_s_p_s, NULL, PRIM_INT__k_s_d_s);
1060
1061
1062 ostei_general_vrr_K(7, 0, 3, 0, 9,
1063 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1064 PRIM_INT__k_s_d_s, PRIM_INT__k_s_p_s, NULL, PRIM_INT__i_s_d_s, NULL, PRIM_INT__k_s_f_s);
1065
1066
1067 ostei_general_vrr_K(7, 0, 4, 0, 8,
1068 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1069 PRIM_INT__k_s_f_s, PRIM_INT__k_s_d_s, NULL, PRIM_INT__i_s_f_s, NULL, PRIM_INT__k_s_g_s);
1070
1071
1072 ostei_general_vrr_K(7, 0, 5, 0, 7,
1073 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1074 PRIM_INT__k_s_g_s, PRIM_INT__k_s_f_s, NULL, PRIM_INT__i_s_g_s, NULL, PRIM_INT__k_s_h_s);
1075
1076
1077 ostei_general_vrr_K(7, 0, 6, 0, 6,
1078 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1079 PRIM_INT__k_s_h_s, PRIM_INT__k_s_g_s, NULL, PRIM_INT__i_s_h_s, NULL, PRIM_INT__k_s_i_s);
1080
1081
1082
1083 // Forming PRIM_INT__s_s_d_s[10 * 6];
1084 for(n = 0; n < 10; ++n) // loop over orders of auxiliary function
1085 {
1086
1087 PRIM_INT__s_s_d_s[n * 6 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_p_s[n * 3 + 0]);
1088 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]);
1089 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]);
1090
1091 PRIM_INT__s_s_d_s[n * 6 + 3] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_p_s[n * 3 + 1]);
1092 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]);
1093 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]);
1094
1095 PRIM_INT__s_s_d_s[n * 6 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_p_s[n * 3 + 2]);
1096 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]);
1097 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]);
1098
1099 }
1100
1101
1102 VRR_K_p_s_f_s(
1103 PRIM_INT__p_s_f_s,
1104 PRIM_INT__p_s_d_s,
1105 PRIM_INT__p_s_p_s,
1106 PRIM_INT__s_s_d_s,
1107 Q_PA,
1108 a_over_q,
1109 aoq_PQ,
1110 one_over_2pq,
1111 one_over_2q,
1112 9);
1113
1114
1115 ostei_general_vrr_K(2, 0, 4, 0, 8,
1116 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1117 PRIM_INT__d_s_f_s, PRIM_INT__d_s_d_s, NULL, PRIM_INT__p_s_f_s, NULL, PRIM_INT__d_s_g_s);
1118
1119
1120 ostei_general_vrr_K(3, 0, 5, 0, 7,
1121 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1122 PRIM_INT__f_s_g_s, PRIM_INT__f_s_f_s, NULL, PRIM_INT__d_s_g_s, NULL, PRIM_INT__f_s_h_s);
1123
1124
1125 ostei_general_vrr_K(4, 0, 6, 0, 6,
1126 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1127 PRIM_INT__g_s_h_s, PRIM_INT__g_s_g_s, NULL, PRIM_INT__f_s_h_s, NULL, PRIM_INT__g_s_i_s);
1128
1129
1130 ostei_general_vrr_K(5, 0, 7, 0, 5,
1131 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1132 PRIM_INT__h_s_i_s, PRIM_INT__h_s_h_s, NULL, PRIM_INT__g_s_i_s, NULL, PRIM_INT__h_s_k_s);
1133
1134
1135 ostei_general_vrr_K(6, 0, 8, 0, 4,
1136 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1137 PRIM_INT__i_s_k_s, PRIM_INT__i_s_i_s, NULL, PRIM_INT__h_s_k_s, NULL, PRIM_INT__i_s_l_s);
1138
1139
1140 ostei_general_vrr_K(7, 0, 7, 0, 5,
1141 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1142 PRIM_INT__k_s_i_s, PRIM_INT__k_s_h_s, NULL, PRIM_INT__i_s_i_s, NULL, PRIM_INT__k_s_k_s);
1143
1144
1145 ostei_general_vrr1_I(8, 15,
1146 one_over_2p, a_over_p, aop_PQ, P_PA,
1147 PRIM_INT__k_s_s_s, PRIM_INT__i_s_s_s, PRIM_INT__l_s_s_s);
1148
1149
1150 ostei_general_vrr_K(8, 0, 1, 0, 11,
1151 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1152 PRIM_INT__l_s_s_s, NULL, NULL, PRIM_INT__k_s_s_s, NULL, PRIM_INT__l_s_p_s);
1153
1154
1155 ostei_general_vrr_K(8, 0, 2, 0, 10,
1156 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1157 PRIM_INT__l_s_p_s, PRIM_INT__l_s_s_s, NULL, PRIM_INT__k_s_p_s, NULL, PRIM_INT__l_s_d_s);
1158
1159
1160 ostei_general_vrr_K(8, 0, 3, 0, 9,
1161 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1162 PRIM_INT__l_s_d_s, PRIM_INT__l_s_p_s, NULL, PRIM_INT__k_s_d_s, NULL, PRIM_INT__l_s_f_s);
1163
1164
1165 ostei_general_vrr_K(8, 0, 4, 0, 8,
1166 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1167 PRIM_INT__l_s_f_s, PRIM_INT__l_s_d_s, NULL, PRIM_INT__k_s_f_s, NULL, PRIM_INT__l_s_g_s);
1168
1169
1170 ostei_general_vrr_K(8, 0, 5, 0, 7,
1171 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1172 PRIM_INT__l_s_g_s, PRIM_INT__l_s_f_s, NULL, PRIM_INT__k_s_g_s, NULL, PRIM_INT__l_s_h_s);
1173
1174
1175 ostei_general_vrr_K(8, 0, 6, 0, 6,
1176 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1177 PRIM_INT__l_s_h_s, PRIM_INT__l_s_g_s, NULL, PRIM_INT__k_s_h_s, NULL, PRIM_INT__l_s_i_s);
1178
1179
1180
1181 // Forming PRIM_INT__s_s_f_s[9 * 10];
1182 for(n = 0; n < 9; ++n) // loop over orders of auxiliary function
1183 {
1184
1185 PRIM_INT__s_s_f_s[n * 10 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_d_s[n * 6 + 0]);
1186 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]);
1187 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]);
1188
1189 PRIM_INT__s_s_f_s[n * 10 + 6] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_d_s[n * 6 + 3]);
1190 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]);
1191 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]);
1192
1193 PRIM_INT__s_s_f_s[n * 10 + 9] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_d_s[n * 6 + 5]);
1194 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]);
1195 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]);
1196
1197 }
1198
1199
1200 VRR_K_p_s_g_s(
1201 PRIM_INT__p_s_g_s,
1202 PRIM_INT__p_s_f_s,
1203 PRIM_INT__p_s_d_s,
1204 PRIM_INT__s_s_f_s,
1205 Q_PA,
1206 a_over_q,
1207 aoq_PQ,
1208 one_over_2pq,
1209 one_over_2q,
1210 8);
1211
1212
1213 ostei_general_vrr_K(2, 0, 5, 0, 7,
1214 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1215 PRIM_INT__d_s_g_s, PRIM_INT__d_s_f_s, NULL, PRIM_INT__p_s_g_s, NULL, PRIM_INT__d_s_h_s);
1216
1217
1218 ostei_general_vrr_K(3, 0, 6, 0, 6,
1219 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1220 PRIM_INT__f_s_h_s, PRIM_INT__f_s_g_s, NULL, PRIM_INT__d_s_h_s, NULL, PRIM_INT__f_s_i_s);
1221
1222
1223 ostei_general_vrr_K(4, 0, 7, 0, 5,
1224 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1225 PRIM_INT__g_s_i_s, PRIM_INT__g_s_h_s, NULL, PRIM_INT__f_s_i_s, NULL, PRIM_INT__g_s_k_s);
1226
1227
1228 ostei_general_vrr_K(5, 0, 8, 0, 4,
1229 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1230 PRIM_INT__h_s_k_s, PRIM_INT__h_s_i_s, NULL, PRIM_INT__g_s_k_s, NULL, PRIM_INT__h_s_l_s);
1231
1232
1233 ostei_general_vrr_K(6, 0, 9, 0, 3,
1234 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1235 PRIM_INT__i_s_l_s, PRIM_INT__i_s_k_s, NULL, PRIM_INT__h_s_l_s, NULL, PRIM_INT__i_s_m_s);
1236
1237
1238 ostei_general_vrr_K(7, 0, 8, 0, 4,
1239 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1240 PRIM_INT__k_s_k_s, PRIM_INT__k_s_i_s, NULL, PRIM_INT__i_s_k_s, NULL, PRIM_INT__k_s_l_s);
1241
1242
1243 ostei_general_vrr_K(8, 0, 7, 0, 5,
1244 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1245 PRIM_INT__l_s_i_s, PRIM_INT__l_s_h_s, NULL, PRIM_INT__k_s_i_s, NULL, PRIM_INT__l_s_k_s);
1246
1247
1248 ostei_general_vrr1_I(9, 14,
1249 one_over_2p, a_over_p, aop_PQ, P_PA,
1250 PRIM_INT__l_s_s_s, PRIM_INT__k_s_s_s, PRIM_INT__m_s_s_s);
1251
1252
1253 ostei_general_vrr_K(9, 0, 1, 0, 11,
1254 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1255 PRIM_INT__m_s_s_s, NULL, NULL, PRIM_INT__l_s_s_s, NULL, PRIM_INT__m_s_p_s);
1256
1257
1258 ostei_general_vrr_K(9, 0, 2, 0, 10,
1259 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1260 PRIM_INT__m_s_p_s, PRIM_INT__m_s_s_s, NULL, PRIM_INT__l_s_p_s, NULL, PRIM_INT__m_s_d_s);
1261
1262
1263 ostei_general_vrr_K(9, 0, 3, 0, 9,
1264 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1265 PRIM_INT__m_s_d_s, PRIM_INT__m_s_p_s, NULL, PRIM_INT__l_s_d_s, NULL, PRIM_INT__m_s_f_s);
1266
1267
1268 ostei_general_vrr_K(9, 0, 4, 0, 8,
1269 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1270 PRIM_INT__m_s_f_s, PRIM_INT__m_s_d_s, NULL, PRIM_INT__l_s_f_s, NULL, PRIM_INT__m_s_g_s);
1271
1272
1273 ostei_general_vrr_K(9, 0, 5, 0, 7,
1274 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1275 PRIM_INT__m_s_g_s, PRIM_INT__m_s_f_s, NULL, PRIM_INT__l_s_g_s, NULL, PRIM_INT__m_s_h_s);
1276
1277
1278 ostei_general_vrr_K(9, 0, 6, 0, 6,
1279 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1280 PRIM_INT__m_s_h_s, PRIM_INT__m_s_g_s, NULL, PRIM_INT__l_s_h_s, NULL, PRIM_INT__m_s_i_s);
1281
1282
1283 VRR_K_s_s_g_s(
1284 PRIM_INT__s_s_g_s,
1285 PRIM_INT__s_s_f_s,
1286 PRIM_INT__s_s_d_s,
1287 Q_PA,
1288 a_over_q,
1289 aoq_PQ,
1290 one_over_2q,
1291 8);
1292
1293
1294 ostei_general_vrr_K(1, 0, 5, 0, 7,
1295 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1296 PRIM_INT__p_s_g_s, PRIM_INT__p_s_f_s, NULL, PRIM_INT__s_s_g_s, NULL, PRIM_INT__p_s_h_s);
1297
1298
1299 ostei_general_vrr_K(2, 0, 6, 0, 6,
1300 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1301 PRIM_INT__d_s_h_s, PRIM_INT__d_s_g_s, NULL, PRIM_INT__p_s_h_s, NULL, PRIM_INT__d_s_i_s);
1302
1303
1304 ostei_general_vrr_K(3, 0, 7, 0, 5,
1305 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1306 PRIM_INT__f_s_i_s, PRIM_INT__f_s_h_s, NULL, PRIM_INT__d_s_i_s, NULL, PRIM_INT__f_s_k_s);
1307
1308
1309 ostei_general_vrr_K(4, 0, 8, 0, 4,
1310 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1311 PRIM_INT__g_s_k_s, PRIM_INT__g_s_i_s, NULL, PRIM_INT__f_s_k_s, NULL, PRIM_INT__g_s_l_s);
1312
1313
1314 ostei_general_vrr_K(5, 0, 9, 0, 3,
1315 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1316 PRIM_INT__h_s_l_s, PRIM_INT__h_s_k_s, NULL, PRIM_INT__g_s_l_s, NULL, PRIM_INT__h_s_m_s);
1317
1318
1319 ostei_general_vrr_K(6, 0, 10, 0, 2,
1320 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1321 PRIM_INT__i_s_m_s, PRIM_INT__i_s_l_s, NULL, PRIM_INT__h_s_m_s, NULL, PRIM_INT__i_s_n_s);
1322
1323
1324 ostei_general_vrr_K(7, 0, 9, 0, 3,
1325 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1326 PRIM_INT__k_s_l_s, PRIM_INT__k_s_k_s, NULL, PRIM_INT__i_s_l_s, NULL, PRIM_INT__k_s_m_s);
1327
1328
1329 ostei_general_vrr_K(8, 0, 8, 0, 4,
1330 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1331 PRIM_INT__l_s_k_s, PRIM_INT__l_s_i_s, NULL, PRIM_INT__k_s_k_s, NULL, PRIM_INT__l_s_l_s);
1332
1333
1334 ostei_general_vrr_K(9, 0, 7, 0, 5,
1335 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1336 PRIM_INT__m_s_i_s, PRIM_INT__m_s_h_s, NULL, PRIM_INT__l_s_i_s, NULL, PRIM_INT__m_s_k_s);
1337
1338
1339 ostei_general_vrr1_I(10, 13,
1340 one_over_2p, a_over_p, aop_PQ, P_PA,
1341 PRIM_INT__m_s_s_s, PRIM_INT__l_s_s_s, PRIM_INT__n_s_s_s);
1342
1343
1344 ostei_general_vrr_K(10, 0, 1, 0, 11,
1345 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1346 PRIM_INT__n_s_s_s, NULL, NULL, PRIM_INT__m_s_s_s, NULL, PRIM_INT__n_s_p_s);
1347
1348
1349 ostei_general_vrr_K(10, 0, 2, 0, 10,
1350 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1351 PRIM_INT__n_s_p_s, PRIM_INT__n_s_s_s, NULL, PRIM_INT__m_s_p_s, NULL, PRIM_INT__n_s_d_s);
1352
1353
1354 ostei_general_vrr_K(10, 0, 3, 0, 9,
1355 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1356 PRIM_INT__n_s_d_s, PRIM_INT__n_s_p_s, NULL, PRIM_INT__m_s_d_s, NULL, PRIM_INT__n_s_f_s);
1357
1358
1359 ostei_general_vrr_K(10, 0, 4, 0, 8,
1360 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1361 PRIM_INT__n_s_f_s, PRIM_INT__n_s_d_s, NULL, PRIM_INT__m_s_f_s, NULL, PRIM_INT__n_s_g_s);
1362
1363
1364 ostei_general_vrr_K(10, 0, 5, 0, 7,
1365 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1366 PRIM_INT__n_s_g_s, PRIM_INT__n_s_f_s, NULL, PRIM_INT__m_s_g_s, NULL, PRIM_INT__n_s_h_s);
1367
1368
1369 ostei_general_vrr_K(10, 0, 6, 0, 6,
1370 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1371 PRIM_INT__n_s_h_s, PRIM_INT__n_s_g_s, NULL, PRIM_INT__m_s_h_s, NULL, PRIM_INT__n_s_i_s);
1372
1373
1374 VRR_K_s_s_h_s(
1375 PRIM_INT__s_s_h_s,
1376 PRIM_INT__s_s_g_s,
1377 PRIM_INT__s_s_f_s,
1378 Q_PA,
1379 a_over_q,
1380 aoq_PQ,
1381 one_over_2q,
1382 7);
1383
1384
1385 ostei_general_vrr_K(1, 0, 6, 0, 6,
1386 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1387 PRIM_INT__p_s_h_s, PRIM_INT__p_s_g_s, NULL, PRIM_INT__s_s_h_s, NULL, PRIM_INT__p_s_i_s);
1388
1389
1390 ostei_general_vrr_K(2, 0, 7, 0, 5,
1391 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1392 PRIM_INT__d_s_i_s, PRIM_INT__d_s_h_s, NULL, PRIM_INT__p_s_i_s, NULL, PRIM_INT__d_s_k_s);
1393
1394
1395 ostei_general_vrr_K(3, 0, 8, 0, 4,
1396 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1397 PRIM_INT__f_s_k_s, PRIM_INT__f_s_i_s, NULL, PRIM_INT__d_s_k_s, NULL, PRIM_INT__f_s_l_s);
1398
1399
1400 ostei_general_vrr_K(4, 0, 9, 0, 3,
1401 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1402 PRIM_INT__g_s_l_s, PRIM_INT__g_s_k_s, NULL, PRIM_INT__f_s_l_s, NULL, PRIM_INT__g_s_m_s);
1403
1404
1405 ostei_general_vrr_K(5, 0, 10, 0, 2,
1406 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1407 PRIM_INT__h_s_m_s, PRIM_INT__h_s_l_s, NULL, PRIM_INT__g_s_m_s, NULL, PRIM_INT__h_s_n_s);
1408
1409
1410 ostei_general_vrr_K(6, 0, 11, 0, 1,
1411 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1412 PRIM_INT__i_s_n_s, PRIM_INT__i_s_m_s, NULL, PRIM_INT__h_s_n_s, NULL, PRIM_INT__i_s_o_s);
1413
1414
1415 ostei_general_vrr_K(7, 0, 10, 0, 2,
1416 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1417 PRIM_INT__k_s_m_s, PRIM_INT__k_s_l_s, NULL, PRIM_INT__i_s_m_s, NULL, PRIM_INT__k_s_n_s);
1418
1419
1420 ostei_general_vrr_K(8, 0, 9, 0, 3,
1421 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1422 PRIM_INT__l_s_l_s, PRIM_INT__l_s_k_s, NULL, PRIM_INT__k_s_l_s, NULL, PRIM_INT__l_s_m_s);
1423
1424
1425 ostei_general_vrr_K(9, 0, 8, 0, 4,
1426 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1427 PRIM_INT__m_s_k_s, PRIM_INT__m_s_i_s, NULL, PRIM_INT__l_s_k_s, NULL, PRIM_INT__m_s_l_s);
1428
1429
1430 ostei_general_vrr_K(10, 0, 7, 0, 5,
1431 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1432 PRIM_INT__n_s_i_s, PRIM_INT__n_s_h_s, NULL, PRIM_INT__m_s_i_s, NULL, PRIM_INT__n_s_k_s);
1433
1434
1435 ostei_general_vrr1_I(11, 12,
1436 one_over_2p, a_over_p, aop_PQ, P_PA,
1437 PRIM_INT__n_s_s_s, PRIM_INT__m_s_s_s, PRIM_INT__o_s_s_s);
1438
1439
1440 ostei_general_vrr_K(11, 0, 1, 0, 11,
1441 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1442 PRIM_INT__o_s_s_s, NULL, NULL, PRIM_INT__n_s_s_s, NULL, PRIM_INT__o_s_p_s);
1443
1444
1445 ostei_general_vrr_K(11, 0, 2, 0, 10,
1446 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1447 PRIM_INT__o_s_p_s, PRIM_INT__o_s_s_s, NULL, PRIM_INT__n_s_p_s, NULL, PRIM_INT__o_s_d_s);
1448
1449
1450 ostei_general_vrr_K(11, 0, 3, 0, 9,
1451 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1452 PRIM_INT__o_s_d_s, PRIM_INT__o_s_p_s, NULL, PRIM_INT__n_s_d_s, NULL, PRIM_INT__o_s_f_s);
1453
1454
1455 ostei_general_vrr_K(11, 0, 4, 0, 8,
1456 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1457 PRIM_INT__o_s_f_s, PRIM_INT__o_s_d_s, NULL, PRIM_INT__n_s_f_s, NULL, PRIM_INT__o_s_g_s);
1458
1459
1460 ostei_general_vrr_K(11, 0, 5, 0, 7,
1461 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1462 PRIM_INT__o_s_g_s, PRIM_INT__o_s_f_s, NULL, PRIM_INT__n_s_g_s, NULL, PRIM_INT__o_s_h_s);
1463
1464
1465 ostei_general_vrr_K(11, 0, 6, 0, 6,
1466 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1467 PRIM_INT__o_s_h_s, PRIM_INT__o_s_g_s, NULL, PRIM_INT__n_s_h_s, NULL, PRIM_INT__o_s_i_s);
1468
1469
1470 ostei_general_vrr_K(7, 0, 11, 0, 1,
1471 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1472 PRIM_INT__k_s_n_s, PRIM_INT__k_s_m_s, NULL, PRIM_INT__i_s_n_s, NULL, PRIM_INT__k_s_o_s);
1473
1474
1475 ostei_general_vrr_K(8, 0, 10, 0, 2,
1476 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1477 PRIM_INT__l_s_m_s, PRIM_INT__l_s_l_s, NULL, PRIM_INT__k_s_m_s, NULL, PRIM_INT__l_s_n_s);
1478
1479
1480 ostei_general_vrr_K(9, 0, 9, 0, 3,
1481 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1482 PRIM_INT__m_s_l_s, PRIM_INT__m_s_k_s, NULL, PRIM_INT__l_s_l_s, NULL, PRIM_INT__m_s_m_s);
1483
1484
1485 ostei_general_vrr_K(10, 0, 8, 0, 4,
1486 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1487 PRIM_INT__n_s_k_s, PRIM_INT__n_s_i_s, NULL, PRIM_INT__m_s_k_s, NULL, PRIM_INT__n_s_l_s);
1488
1489
1490 ostei_general_vrr_K(11, 0, 7, 0, 5,
1491 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1492 PRIM_INT__o_s_i_s, PRIM_INT__o_s_h_s, NULL, PRIM_INT__n_s_i_s, NULL, PRIM_INT__o_s_k_s);
1493
1494
1495 ostei_general_vrr_K(8, 0, 11, 0, 1,
1496 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1497 PRIM_INT__l_s_n_s, PRIM_INT__l_s_m_s, NULL, PRIM_INT__k_s_n_s, NULL, PRIM_INT__l_s_o_s);
1498
1499
1500 ostei_general_vrr_K(9, 0, 10, 0, 2,
1501 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1502 PRIM_INT__m_s_m_s, PRIM_INT__m_s_l_s, NULL, PRIM_INT__l_s_m_s, NULL, PRIM_INT__m_s_n_s);
1503
1504
1505 ostei_general_vrr_K(10, 0, 9, 0, 3,
1506 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1507 PRIM_INT__n_s_l_s, PRIM_INT__n_s_k_s, NULL, PRIM_INT__m_s_l_s, NULL, PRIM_INT__n_s_m_s);
1508
1509
1510 ostei_general_vrr_K(11, 0, 8, 0, 4,
1511 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1512 PRIM_INT__o_s_k_s, PRIM_INT__o_s_i_s, NULL, PRIM_INT__n_s_k_s, NULL, PRIM_INT__o_s_l_s);
1513
1514
1515 ostei_general_vrr_K(9, 0, 11, 0, 1,
1516 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1517 PRIM_INT__m_s_n_s, PRIM_INT__m_s_m_s, NULL, PRIM_INT__l_s_n_s, NULL, PRIM_INT__m_s_o_s);
1518
1519
1520 ostei_general_vrr_K(10, 0, 10, 0, 2,
1521 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1522 PRIM_INT__n_s_m_s, PRIM_INT__n_s_l_s, NULL, PRIM_INT__m_s_m_s, NULL, PRIM_INT__n_s_n_s);
1523
1524
1525 ostei_general_vrr_K(11, 0, 9, 0, 3,
1526 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1527 PRIM_INT__o_s_l_s, PRIM_INT__o_s_k_s, NULL, PRIM_INT__n_s_l_s, NULL, PRIM_INT__o_s_m_s);
1528
1529
1530 ostei_general_vrr_K(10, 0, 11, 0, 1,
1531 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1532 PRIM_INT__n_s_n_s, PRIM_INT__n_s_m_s, NULL, PRIM_INT__m_s_n_s, NULL, PRIM_INT__n_s_o_s);
1533
1534
1535 ostei_general_vrr_K(11, 0, 10, 0, 2,
1536 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1537 PRIM_INT__o_s_m_s, PRIM_INT__o_s_l_s, NULL, PRIM_INT__n_s_m_s, NULL, PRIM_INT__o_s_n_s);
1538
1539
1540 ostei_general_vrr_K(11, 0, 11, 0, 1,
1541 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1542 PRIM_INT__o_s_n_s, PRIM_INT__o_s_m_s, NULL, PRIM_INT__n_s_n_s, NULL, PRIM_INT__o_s_o_s);
1543
1544
1545
1546
1547 ////////////////////////////////////
1548 // Accumulate contracted integrals
1549 ////////////////////////////////////
1550 if(lastoffset == 0)
1551 {
1552 contract_all(784, PRIM_INT__i_s_i_s, PRIM_PTR_INT__i_s_i_s);
1553 contract_all(1008, PRIM_INT__i_s_k_s, PRIM_PTR_INT__i_s_k_s);
1554 contract_all(1260, PRIM_INT__i_s_l_s, PRIM_PTR_INT__i_s_l_s);
1555 contract_all(1540, PRIM_INT__i_s_m_s, PRIM_PTR_INT__i_s_m_s);
1556 contract_all(1848, PRIM_INT__i_s_n_s, PRIM_PTR_INT__i_s_n_s);
1557 contract_all(2184, PRIM_INT__i_s_o_s, PRIM_PTR_INT__i_s_o_s);
1558 contract_all(1008, PRIM_INT__k_s_i_s, PRIM_PTR_INT__k_s_i_s);
1559 contract_all(1296, PRIM_INT__k_s_k_s, PRIM_PTR_INT__k_s_k_s);
1560 contract_all(1620, PRIM_INT__k_s_l_s, PRIM_PTR_INT__k_s_l_s);
1561 contract_all(1980, PRIM_INT__k_s_m_s, PRIM_PTR_INT__k_s_m_s);
1562 contract_all(2376, PRIM_INT__k_s_n_s, PRIM_PTR_INT__k_s_n_s);
1563 contract_all(2808, PRIM_INT__k_s_o_s, PRIM_PTR_INT__k_s_o_s);
1564 contract_all(1260, PRIM_INT__l_s_i_s, PRIM_PTR_INT__l_s_i_s);
1565 contract_all(1620, PRIM_INT__l_s_k_s, PRIM_PTR_INT__l_s_k_s);
1566 contract_all(2025, PRIM_INT__l_s_l_s, PRIM_PTR_INT__l_s_l_s);
1567 contract_all(2475, PRIM_INT__l_s_m_s, PRIM_PTR_INT__l_s_m_s);
1568 contract_all(2970, PRIM_INT__l_s_n_s, PRIM_PTR_INT__l_s_n_s);
1569 contract_all(3510, PRIM_INT__l_s_o_s, PRIM_PTR_INT__l_s_o_s);
1570 contract_all(1540, PRIM_INT__m_s_i_s, PRIM_PTR_INT__m_s_i_s);
1571 contract_all(1980, PRIM_INT__m_s_k_s, PRIM_PTR_INT__m_s_k_s);
1572 contract_all(2475, PRIM_INT__m_s_l_s, PRIM_PTR_INT__m_s_l_s);
1573 contract_all(3025, PRIM_INT__m_s_m_s, PRIM_PTR_INT__m_s_m_s);
1574 contract_all(3630, PRIM_INT__m_s_n_s, PRIM_PTR_INT__m_s_n_s);
1575 contract_all(4290, PRIM_INT__m_s_o_s, PRIM_PTR_INT__m_s_o_s);
1576 contract_all(1848, PRIM_INT__n_s_i_s, PRIM_PTR_INT__n_s_i_s);
1577 contract_all(2376, PRIM_INT__n_s_k_s, PRIM_PTR_INT__n_s_k_s);
1578 contract_all(2970, PRIM_INT__n_s_l_s, PRIM_PTR_INT__n_s_l_s);
1579 contract_all(3630, PRIM_INT__n_s_m_s, PRIM_PTR_INT__n_s_m_s);
1580 contract_all(4356, PRIM_INT__n_s_n_s, PRIM_PTR_INT__n_s_n_s);
1581 contract_all(5148, PRIM_INT__n_s_o_s, PRIM_PTR_INT__n_s_o_s);
1582 contract_all(2184, PRIM_INT__o_s_i_s, PRIM_PTR_INT__o_s_i_s);
1583 contract_all(2808, PRIM_INT__o_s_k_s, PRIM_PTR_INT__o_s_k_s);
1584 contract_all(3510, PRIM_INT__o_s_l_s, PRIM_PTR_INT__o_s_l_s);
1585 contract_all(4290, PRIM_INT__o_s_m_s, PRIM_PTR_INT__o_s_m_s);
1586 contract_all(5148, PRIM_INT__o_s_n_s, PRIM_PTR_INT__o_s_n_s);
1587 contract_all(6084, PRIM_INT__o_s_o_s, PRIM_PTR_INT__o_s_o_s);
1588 }
1589 else
1590 {
1591 contract(784, shelloffsets, PRIM_INT__i_s_i_s, PRIM_PTR_INT__i_s_i_s);
1592 contract(1008, shelloffsets, PRIM_INT__i_s_k_s, PRIM_PTR_INT__i_s_k_s);
1593 contract(1260, shelloffsets, PRIM_INT__i_s_l_s, PRIM_PTR_INT__i_s_l_s);
1594 contract(1540, shelloffsets, PRIM_INT__i_s_m_s, PRIM_PTR_INT__i_s_m_s);
1595 contract(1848, shelloffsets, PRIM_INT__i_s_n_s, PRIM_PTR_INT__i_s_n_s);
1596 contract(2184, shelloffsets, PRIM_INT__i_s_o_s, PRIM_PTR_INT__i_s_o_s);
1597 contract(1008, shelloffsets, PRIM_INT__k_s_i_s, PRIM_PTR_INT__k_s_i_s);
1598 contract(1296, shelloffsets, PRIM_INT__k_s_k_s, PRIM_PTR_INT__k_s_k_s);
1599 contract(1620, shelloffsets, PRIM_INT__k_s_l_s, PRIM_PTR_INT__k_s_l_s);
1600 contract(1980, shelloffsets, PRIM_INT__k_s_m_s, PRIM_PTR_INT__k_s_m_s);
1601 contract(2376, shelloffsets, PRIM_INT__k_s_n_s, PRIM_PTR_INT__k_s_n_s);
1602 contract(2808, shelloffsets, PRIM_INT__k_s_o_s, PRIM_PTR_INT__k_s_o_s);
1603 contract(1260, shelloffsets, PRIM_INT__l_s_i_s, PRIM_PTR_INT__l_s_i_s);
1604 contract(1620, shelloffsets, PRIM_INT__l_s_k_s, PRIM_PTR_INT__l_s_k_s);
1605 contract(2025, shelloffsets, PRIM_INT__l_s_l_s, PRIM_PTR_INT__l_s_l_s);
1606 contract(2475, shelloffsets, PRIM_INT__l_s_m_s, PRIM_PTR_INT__l_s_m_s);
1607 contract(2970, shelloffsets, PRIM_INT__l_s_n_s, PRIM_PTR_INT__l_s_n_s);
1608 contract(3510, shelloffsets, PRIM_INT__l_s_o_s, PRIM_PTR_INT__l_s_o_s);
1609 contract(1540, shelloffsets, PRIM_INT__m_s_i_s, PRIM_PTR_INT__m_s_i_s);
1610 contract(1980, shelloffsets, PRIM_INT__m_s_k_s, PRIM_PTR_INT__m_s_k_s);
1611 contract(2475, shelloffsets, PRIM_INT__m_s_l_s, PRIM_PTR_INT__m_s_l_s);
1612 contract(3025, shelloffsets, PRIM_INT__m_s_m_s, PRIM_PTR_INT__m_s_m_s);
1613 contract(3630, shelloffsets, PRIM_INT__m_s_n_s, PRIM_PTR_INT__m_s_n_s);
1614 contract(4290, shelloffsets, PRIM_INT__m_s_o_s, PRIM_PTR_INT__m_s_o_s);
1615 contract(1848, shelloffsets, PRIM_INT__n_s_i_s, PRIM_PTR_INT__n_s_i_s);
1616 contract(2376, shelloffsets, PRIM_INT__n_s_k_s, PRIM_PTR_INT__n_s_k_s);
1617 contract(2970, shelloffsets, PRIM_INT__n_s_l_s, PRIM_PTR_INT__n_s_l_s);
1618 contract(3630, shelloffsets, PRIM_INT__n_s_m_s, PRIM_PTR_INT__n_s_m_s);
1619 contract(4356, shelloffsets, PRIM_INT__n_s_n_s, PRIM_PTR_INT__n_s_n_s);
1620 contract(5148, shelloffsets, PRIM_INT__n_s_o_s, PRIM_PTR_INT__n_s_o_s);
1621 contract(2184, shelloffsets, PRIM_INT__o_s_i_s, PRIM_PTR_INT__o_s_i_s);
1622 contract(2808, shelloffsets, PRIM_INT__o_s_k_s, PRIM_PTR_INT__o_s_k_s);
1623 contract(3510, shelloffsets, PRIM_INT__o_s_l_s, PRIM_PTR_INT__o_s_l_s);
1624 contract(4290, shelloffsets, PRIM_INT__o_s_m_s, PRIM_PTR_INT__o_s_m_s);
1625 contract(5148, shelloffsets, PRIM_INT__o_s_n_s, PRIM_PTR_INT__o_s_n_s);
1626 contract(6084, shelloffsets, PRIM_INT__o_s_o_s, PRIM_PTR_INT__o_s_o_s);
1627 PRIM_PTR_INT__i_s_i_s += lastoffset*784;
1628 PRIM_PTR_INT__i_s_k_s += lastoffset*1008;
1629 PRIM_PTR_INT__i_s_l_s += lastoffset*1260;
1630 PRIM_PTR_INT__i_s_m_s += lastoffset*1540;
1631 PRIM_PTR_INT__i_s_n_s += lastoffset*1848;
1632 PRIM_PTR_INT__i_s_o_s += lastoffset*2184;
1633 PRIM_PTR_INT__k_s_i_s += lastoffset*1008;
1634 PRIM_PTR_INT__k_s_k_s += lastoffset*1296;
1635 PRIM_PTR_INT__k_s_l_s += lastoffset*1620;
1636 PRIM_PTR_INT__k_s_m_s += lastoffset*1980;
1637 PRIM_PTR_INT__k_s_n_s += lastoffset*2376;
1638 PRIM_PTR_INT__k_s_o_s += lastoffset*2808;
1639 PRIM_PTR_INT__l_s_i_s += lastoffset*1260;
1640 PRIM_PTR_INT__l_s_k_s += lastoffset*1620;
1641 PRIM_PTR_INT__l_s_l_s += lastoffset*2025;
1642 PRIM_PTR_INT__l_s_m_s += lastoffset*2475;
1643 PRIM_PTR_INT__l_s_n_s += lastoffset*2970;
1644 PRIM_PTR_INT__l_s_o_s += lastoffset*3510;
1645 PRIM_PTR_INT__m_s_i_s += lastoffset*1540;
1646 PRIM_PTR_INT__m_s_k_s += lastoffset*1980;
1647 PRIM_PTR_INT__m_s_l_s += lastoffset*2475;
1648 PRIM_PTR_INT__m_s_m_s += lastoffset*3025;
1649 PRIM_PTR_INT__m_s_n_s += lastoffset*3630;
1650 PRIM_PTR_INT__m_s_o_s += lastoffset*4290;
1651 PRIM_PTR_INT__n_s_i_s += lastoffset*1848;
1652 PRIM_PTR_INT__n_s_k_s += lastoffset*2376;
1653 PRIM_PTR_INT__n_s_l_s += lastoffset*2970;
1654 PRIM_PTR_INT__n_s_m_s += lastoffset*3630;
1655 PRIM_PTR_INT__n_s_n_s += lastoffset*4356;
1656 PRIM_PTR_INT__n_s_o_s += lastoffset*5148;
1657 PRIM_PTR_INT__o_s_i_s += lastoffset*2184;
1658 PRIM_PTR_INT__o_s_k_s += lastoffset*2808;
1659 PRIM_PTR_INT__o_s_l_s += lastoffset*3510;
1660 PRIM_PTR_INT__o_s_m_s += lastoffset*4290;
1661 PRIM_PTR_INT__o_s_n_s += lastoffset*5148;
1662 PRIM_PTR_INT__o_s_o_s += lastoffset*6084;
1663 }
1664
1665 } // close loop over j
1666 } // close loop over i
1667
1668 //Advance to the next batch
1669 jstart = SIMINT_SIMD_ROUND(jend);
1670
1671 //////////////////////////////////////////////
1672 // Contracted integrals: Horizontal recurrance
1673 //////////////////////////////////////////////
1674
1675
1676 const double hAB[3] = { P.AB_x[ab], P.AB_y[ab], P.AB_z[ab] };
1677
1678
1679 for(abcd = 0; abcd < nshellbatch; ++abcd, ++real_abcd)
1680 {
1681 const double hCD[3] = { Q.AB_x[cd+abcd], Q.AB_y[cd+abcd], Q.AB_z[cd+abcd] };
1682
1683 // set up HRR pointers
1684 double const * restrict HRR_INT__i_s_i_s = INT__i_s_i_s + abcd * 784;
1685 double const * restrict HRR_INT__i_s_k_s = INT__i_s_k_s + abcd * 1008;
1686 double const * restrict HRR_INT__i_s_l_s = INT__i_s_l_s + abcd * 1260;
1687 double const * restrict HRR_INT__i_s_m_s = INT__i_s_m_s + abcd * 1540;
1688 double const * restrict HRR_INT__i_s_n_s = INT__i_s_n_s + abcd * 1848;
1689 double const * restrict HRR_INT__i_s_o_s = INT__i_s_o_s + abcd * 2184;
1690 double const * restrict HRR_INT__k_s_i_s = INT__k_s_i_s + abcd * 1008;
1691 double const * restrict HRR_INT__k_s_k_s = INT__k_s_k_s + abcd * 1296;
1692 double const * restrict HRR_INT__k_s_l_s = INT__k_s_l_s + abcd * 1620;
1693 double const * restrict HRR_INT__k_s_m_s = INT__k_s_m_s + abcd * 1980;
1694 double const * restrict HRR_INT__k_s_n_s = INT__k_s_n_s + abcd * 2376;
1695 double const * restrict HRR_INT__k_s_o_s = INT__k_s_o_s + abcd * 2808;
1696 double const * restrict HRR_INT__l_s_i_s = INT__l_s_i_s + abcd * 1260;
1697 double const * restrict HRR_INT__l_s_k_s = INT__l_s_k_s + abcd * 1620;
1698 double const * restrict HRR_INT__l_s_l_s = INT__l_s_l_s + abcd * 2025;
1699 double const * restrict HRR_INT__l_s_m_s = INT__l_s_m_s + abcd * 2475;
1700 double const * restrict HRR_INT__l_s_n_s = INT__l_s_n_s + abcd * 2970;
1701 double const * restrict HRR_INT__l_s_o_s = INT__l_s_o_s + abcd * 3510;
1702 double const * restrict HRR_INT__m_s_i_s = INT__m_s_i_s + abcd * 1540;
1703 double const * restrict HRR_INT__m_s_k_s = INT__m_s_k_s + abcd * 1980;
1704 double const * restrict HRR_INT__m_s_l_s = INT__m_s_l_s + abcd * 2475;
1705 double const * restrict HRR_INT__m_s_m_s = INT__m_s_m_s + abcd * 3025;
1706 double const * restrict HRR_INT__m_s_n_s = INT__m_s_n_s + abcd * 3630;
1707 double const * restrict HRR_INT__m_s_o_s = INT__m_s_o_s + abcd * 4290;
1708 double const * restrict HRR_INT__n_s_i_s = INT__n_s_i_s + abcd * 1848;
1709 double const * restrict HRR_INT__n_s_k_s = INT__n_s_k_s + abcd * 2376;
1710 double const * restrict HRR_INT__n_s_l_s = INT__n_s_l_s + abcd * 2970;
1711 double const * restrict HRR_INT__n_s_m_s = INT__n_s_m_s + abcd * 3630;
1712 double const * restrict HRR_INT__n_s_n_s = INT__n_s_n_s + abcd * 4356;
1713 double const * restrict HRR_INT__n_s_o_s = INT__n_s_o_s + abcd * 5148;
1714 double const * restrict HRR_INT__o_s_i_s = INT__o_s_i_s + abcd * 2184;
1715 double const * restrict HRR_INT__o_s_k_s = INT__o_s_k_s + abcd * 2808;
1716 double const * restrict HRR_INT__o_s_l_s = INT__o_s_l_s + abcd * 3510;
1717 double const * restrict HRR_INT__o_s_m_s = INT__o_s_m_s + abcd * 4290;
1718 double const * restrict HRR_INT__o_s_n_s = INT__o_s_n_s + abcd * 5148;
1719 double const * restrict HRR_INT__o_s_o_s = INT__o_s_o_s + abcd * 6084;
1720 double * restrict HRR_INT__i_h_i_h = INT__i_h_i_h + real_abcd * 345744;
1721
1722 // form INT__i_p_i_s
1723 ostei_general_hrr_J(6, 1, 6, 0, hAB, HRR_INT__k_s_i_s, HRR_INT__i_s_i_s, HRR_INT__i_p_i_s);
1724
1725 // form INT__i_p_k_s
1726 ostei_general_hrr_J(6, 1, 7, 0, hAB, HRR_INT__k_s_k_s, HRR_INT__i_s_k_s, HRR_INT__i_p_k_s);
1727
1728 // form INT__i_p_l_s
1729 ostei_general_hrr_J(6, 1, 8, 0, hAB, HRR_INT__k_s_l_s, HRR_INT__i_s_l_s, HRR_INT__i_p_l_s);
1730
1731 // form INT__i_p_m_s
1732 ostei_general_hrr_J(6, 1, 9, 0, hAB, HRR_INT__k_s_m_s, HRR_INT__i_s_m_s, HRR_INT__i_p_m_s);
1733
1734 // form INT__i_p_n_s
1735 ostei_general_hrr_J(6, 1, 10, 0, hAB, HRR_INT__k_s_n_s, HRR_INT__i_s_n_s, HRR_INT__i_p_n_s);
1736
1737 // form INT__i_p_o_s
1738 ostei_general_hrr_J(6, 1, 11, 0, hAB, HRR_INT__k_s_o_s, HRR_INT__i_s_o_s, HRR_INT__i_p_o_s);
1739
1740 // form INT__k_p_i_s
1741 ostei_general_hrr_J(7, 1, 6, 0, hAB, HRR_INT__l_s_i_s, HRR_INT__k_s_i_s, HRR_INT__k_p_i_s);
1742
1743 // form INT__k_p_k_s
1744 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);
1745
1746 // form INT__k_p_l_s
1747 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);
1748
1749 // form INT__k_p_m_s
1750 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);
1751
1752 // form INT__k_p_n_s
1753 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);
1754
1755 // form INT__k_p_o_s
1756 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);
1757
1758 // form INT__l_p_i_s
1759 ostei_general_hrr_J(8, 1, 6, 0, hAB, HRR_INT__m_s_i_s, HRR_INT__l_s_i_s, HRR_INT__l_p_i_s);
1760
1761 // form INT__l_p_k_s
1762 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);
1763
1764 // form INT__l_p_l_s
1765 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);
1766
1767 // form INT__l_p_m_s
1768 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);
1769
1770 // form INT__l_p_n_s
1771 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);
1772
1773 // form INT__l_p_o_s
1774 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);
1775
1776 // form INT__m_p_i_s
1777 ostei_general_hrr_J(9, 1, 6, 0, hAB, HRR_INT__n_s_i_s, HRR_INT__m_s_i_s, HRR_INT__m_p_i_s);
1778
1779 // form INT__m_p_k_s
1780 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);
1781
1782 // form INT__m_p_l_s
1783 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);
1784
1785 // form INT__m_p_m_s
1786 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);
1787
1788 // form INT__m_p_n_s
1789 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);
1790
1791 // form INT__m_p_o_s
1792 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);
1793
1794 // form INT__n_p_i_s
1795 ostei_general_hrr_J(10, 1, 6, 0, hAB, HRR_INT__o_s_i_s, HRR_INT__n_s_i_s, HRR_INT__n_p_i_s);
1796
1797 // form INT__n_p_k_s
1798 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);
1799
1800 // form INT__n_p_l_s
1801 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);
1802
1803 // form INT__n_p_m_s
1804 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);
1805
1806 // form INT__n_p_n_s
1807 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);
1808
1809 // form INT__n_p_o_s
1810 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);
1811
1812 // form INT__i_d_i_s
1813 ostei_general_hrr_J(6, 2, 6, 0, hAB, HRR_INT__k_p_i_s, HRR_INT__i_p_i_s, HRR_INT__i_d_i_s);
1814
1815 // form INT__i_d_k_s
1816 ostei_general_hrr_J(6, 2, 7, 0, hAB, HRR_INT__k_p_k_s, HRR_INT__i_p_k_s, HRR_INT__i_d_k_s);
1817
1818 // form INT__i_d_l_s
1819 ostei_general_hrr_J(6, 2, 8, 0, hAB, HRR_INT__k_p_l_s, HRR_INT__i_p_l_s, HRR_INT__i_d_l_s);
1820
1821 // form INT__i_d_m_s
1822 ostei_general_hrr_J(6, 2, 9, 0, hAB, HRR_INT__k_p_m_s, HRR_INT__i_p_m_s, HRR_INT__i_d_m_s);
1823
1824 // form INT__i_d_n_s
1825 ostei_general_hrr_J(6, 2, 10, 0, hAB, HRR_INT__k_p_n_s, HRR_INT__i_p_n_s, HRR_INT__i_d_n_s);
1826
1827 // form INT__i_d_o_s
1828 ostei_general_hrr_J(6, 2, 11, 0, hAB, HRR_INT__k_p_o_s, HRR_INT__i_p_o_s, HRR_INT__i_d_o_s);
1829
1830 // form INT__k_d_i_s
1831 ostei_general_hrr_J(7, 2, 6, 0, hAB, HRR_INT__l_p_i_s, HRR_INT__k_p_i_s, HRR_INT__k_d_i_s);
1832
1833 // form INT__k_d_k_s
1834 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);
1835
1836 // form INT__k_d_l_s
1837 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);
1838
1839 // form INT__k_d_m_s
1840 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);
1841
1842 // form INT__k_d_n_s
1843 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);
1844
1845 // form INT__k_d_o_s
1846 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);
1847
1848 // form INT__l_d_i_s
1849 ostei_general_hrr_J(8, 2, 6, 0, hAB, HRR_INT__m_p_i_s, HRR_INT__l_p_i_s, HRR_INT__l_d_i_s);
1850
1851 // form INT__l_d_k_s
1852 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);
1853
1854 // form INT__l_d_l_s
1855 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);
1856
1857 // form INT__l_d_m_s
1858 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);
1859
1860 // form INT__l_d_n_s
1861 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);
1862
1863 // form INT__l_d_o_s
1864 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);
1865
1866 // form INT__m_d_i_s
1867 ostei_general_hrr_J(9, 2, 6, 0, hAB, HRR_INT__n_p_i_s, HRR_INT__m_p_i_s, HRR_INT__m_d_i_s);
1868
1869 // form INT__m_d_k_s
1870 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);
1871
1872 // form INT__m_d_l_s
1873 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);
1874
1875 // form INT__m_d_m_s
1876 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);
1877
1878 // form INT__m_d_n_s
1879 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);
1880
1881 // form INT__m_d_o_s
1882 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);
1883
1884 // form INT__i_f_i_s
1885 ostei_general_hrr_J(6, 3, 6, 0, hAB, HRR_INT__k_d_i_s, HRR_INT__i_d_i_s, HRR_INT__i_f_i_s);
1886
1887 // form INT__i_f_k_s
1888 ostei_general_hrr_J(6, 3, 7, 0, hAB, HRR_INT__k_d_k_s, HRR_INT__i_d_k_s, HRR_INT__i_f_k_s);
1889
1890 // form INT__i_f_l_s
1891 ostei_general_hrr_J(6, 3, 8, 0, hAB, HRR_INT__k_d_l_s, HRR_INT__i_d_l_s, HRR_INT__i_f_l_s);
1892
1893 // form INT__i_f_m_s
1894 ostei_general_hrr_J(6, 3, 9, 0, hAB, HRR_INT__k_d_m_s, HRR_INT__i_d_m_s, HRR_INT__i_f_m_s);
1895
1896 // form INT__i_f_n_s
1897 ostei_general_hrr_J(6, 3, 10, 0, hAB, HRR_INT__k_d_n_s, HRR_INT__i_d_n_s, HRR_INT__i_f_n_s);
1898
1899 // form INT__i_f_o_s
1900 ostei_general_hrr_J(6, 3, 11, 0, hAB, HRR_INT__k_d_o_s, HRR_INT__i_d_o_s, HRR_INT__i_f_o_s);
1901
1902 // form INT__k_f_i_s
1903 ostei_general_hrr_J(7, 3, 6, 0, hAB, HRR_INT__l_d_i_s, HRR_INT__k_d_i_s, HRR_INT__k_f_i_s);
1904
1905 // form INT__k_f_k_s
1906 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);
1907
1908 // form INT__k_f_l_s
1909 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);
1910
1911 // form INT__k_f_m_s
1912 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);
1913
1914 // form INT__k_f_n_s
1915 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);
1916
1917 // form INT__k_f_o_s
1918 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);
1919
1920 // form INT__l_f_i_s
1921 ostei_general_hrr_J(8, 3, 6, 0, hAB, HRR_INT__m_d_i_s, HRR_INT__l_d_i_s, HRR_INT__l_f_i_s);
1922
1923 // form INT__l_f_k_s
1924 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);
1925
1926 // form INT__l_f_l_s
1927 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);
1928
1929 // form INT__l_f_m_s
1930 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);
1931
1932 // form INT__l_f_n_s
1933 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);
1934
1935 // form INT__l_f_o_s
1936 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);
1937
1938 // form INT__i_g_i_s
1939 ostei_general_hrr_J(6, 4, 6, 0, hAB, HRR_INT__k_f_i_s, HRR_INT__i_f_i_s, HRR_INT__i_g_i_s);
1940
1941 // form INT__i_g_k_s
1942 ostei_general_hrr_J(6, 4, 7, 0, hAB, HRR_INT__k_f_k_s, HRR_INT__i_f_k_s, HRR_INT__i_g_k_s);
1943
1944 // form INT__i_g_l_s
1945 ostei_general_hrr_J(6, 4, 8, 0, hAB, HRR_INT__k_f_l_s, HRR_INT__i_f_l_s, HRR_INT__i_g_l_s);
1946
1947 // form INT__i_g_m_s
1948 ostei_general_hrr_J(6, 4, 9, 0, hAB, HRR_INT__k_f_m_s, HRR_INT__i_f_m_s, HRR_INT__i_g_m_s);
1949
1950 // form INT__i_g_n_s
1951 ostei_general_hrr_J(6, 4, 10, 0, hAB, HRR_INT__k_f_n_s, HRR_INT__i_f_n_s, HRR_INT__i_g_n_s);
1952
1953 // form INT__i_g_o_s
1954 ostei_general_hrr_J(6, 4, 11, 0, hAB, HRR_INT__k_f_o_s, HRR_INT__i_f_o_s, HRR_INT__i_g_o_s);
1955
1956 // form INT__k_g_i_s
1957 ostei_general_hrr_J(7, 4, 6, 0, hAB, HRR_INT__l_f_i_s, HRR_INT__k_f_i_s, HRR_INT__k_g_i_s);
1958
1959 // form INT__k_g_k_s
1960 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);
1961
1962 // form INT__k_g_l_s
1963 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);
1964
1965 // form INT__k_g_m_s
1966 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);
1967
1968 // form INT__k_g_n_s
1969 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);
1970
1971 // form INT__k_g_o_s
1972 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);
1973
1974 // form INT__i_h_i_s
1975 ostei_general_hrr_J(6, 5, 6, 0, hAB, HRR_INT__k_g_i_s, HRR_INT__i_g_i_s, HRR_INT__i_h_i_s);
1976
1977 // form INT__i_h_k_s
1978 ostei_general_hrr_J(6, 5, 7, 0, hAB, HRR_INT__k_g_k_s, HRR_INT__i_g_k_s, HRR_INT__i_h_k_s);
1979
1980 // form INT__i_h_l_s
1981 ostei_general_hrr_J(6, 5, 8, 0, hAB, HRR_INT__k_g_l_s, HRR_INT__i_g_l_s, HRR_INT__i_h_l_s);
1982
1983 // form INT__i_h_m_s
1984 ostei_general_hrr_J(6, 5, 9, 0, hAB, HRR_INT__k_g_m_s, HRR_INT__i_g_m_s, HRR_INT__i_h_m_s);
1985
1986 // form INT__i_h_n_s
1987 ostei_general_hrr_J(6, 5, 10, 0, hAB, HRR_INT__k_g_n_s, HRR_INT__i_g_n_s, HRR_INT__i_h_n_s);
1988
1989 // form INT__i_h_o_s
1990 ostei_general_hrr_J(6, 5, 11, 0, hAB, HRR_INT__k_g_o_s, HRR_INT__i_g_o_s, HRR_INT__i_h_o_s);
1991
1992 // form INT__i_h_i_p
1993 ostei_general_hrr_L(6, 5, 6, 1, hCD, HRR_INT__i_h_k_s, HRR_INT__i_h_i_s, HRR_INT__i_h_i_p);
1994
1995 // form INT__i_h_k_p
1996 ostei_general_hrr_L(6, 5, 7, 1, hCD, HRR_INT__i_h_l_s, HRR_INT__i_h_k_s, HRR_INT__i_h_k_p);
1997
1998 // form INT__i_h_l_p
1999 ostei_general_hrr_L(6, 5, 8, 1, hCD, HRR_INT__i_h_m_s, HRR_INT__i_h_l_s, HRR_INT__i_h_l_p);
2000
2001 // form INT__i_h_m_p
2002 ostei_general_hrr_L(6, 5, 9, 1, hCD, HRR_INT__i_h_n_s, HRR_INT__i_h_m_s, HRR_INT__i_h_m_p);
2003
2004 // form INT__i_h_n_p
2005 ostei_general_hrr_L(6, 5, 10, 1, hCD, HRR_INT__i_h_o_s, HRR_INT__i_h_n_s, HRR_INT__i_h_n_p);
2006
2007 // form INT__i_h_i_d
2008 ostei_general_hrr_L(6, 5, 6, 2, hCD, HRR_INT__i_h_k_p, HRR_INT__i_h_i_p, HRR_INT__i_h_i_d);
2009
2010 // form INT__i_h_k_d
2011 ostei_general_hrr_L(6, 5, 7, 2, hCD, HRR_INT__i_h_l_p, HRR_INT__i_h_k_p, HRR_INT__i_h_k_d);
2012
2013 // form INT__i_h_l_d
2014 ostei_general_hrr_L(6, 5, 8, 2, hCD, HRR_INT__i_h_m_p, HRR_INT__i_h_l_p, HRR_INT__i_h_l_d);
2015
2016 // form INT__i_h_m_d
2017 ostei_general_hrr_L(6, 5, 9, 2, hCD, HRR_INT__i_h_n_p, HRR_INT__i_h_m_p, HRR_INT__i_h_m_d);
2018
2019 // form INT__i_h_i_f
2020 ostei_general_hrr_L(6, 5, 6, 3, hCD, HRR_INT__i_h_k_d, HRR_INT__i_h_i_d, HRR_INT__i_h_i_f);
2021
2022 // form INT__i_h_k_f
2023 ostei_general_hrr_L(6, 5, 7, 3, hCD, HRR_INT__i_h_l_d, HRR_INT__i_h_k_d, HRR_INT__i_h_k_f);
2024
2025 // form INT__i_h_l_f
2026 ostei_general_hrr_L(6, 5, 8, 3, hCD, HRR_INT__i_h_m_d, HRR_INT__i_h_l_d, HRR_INT__i_h_l_f);
2027
2028 // form INT__i_h_i_g
2029 ostei_general_hrr_L(6, 5, 6, 4, hCD, HRR_INT__i_h_k_f, HRR_INT__i_h_i_f, HRR_INT__i_h_i_g);
2030
2031 // form INT__i_h_k_g
2032 ostei_general_hrr_L(6, 5, 7, 4, hCD, HRR_INT__i_h_l_f, HRR_INT__i_h_k_f, HRR_INT__i_h_k_g);
2033
2034 // form INT__i_h_i_h
2035 ostei_general_hrr_L(6, 5, 6, 5, hCD, HRR_INT__i_h_k_g, HRR_INT__i_h_i_g, HRR_INT__i_h_i_h);
2036
2037
2038 } // close HRR loop
2039
2040
2041 } // close loop cdbatch
2042
2043 istart = iend;
2044 } // close loop over ab
2045
2046 return P.nshell12_clip * Q.nshell12_clip;
2047 }
2048
ostei_h_i_i_h(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__h_i_i_h)2049 int ostei_h_i_i_h(struct simint_multi_shellpair const P,
2050 struct simint_multi_shellpair const Q,
2051 double screen_tol,
2052 double * const restrict work,
2053 double * const restrict INT__h_i_i_h)
2054 {
2055 double P_AB[3*P.nshell12];
2056 struct simint_multi_shellpair P_tmp = P;
2057 P_tmp.PA_x = P.PB_x; P_tmp.PA_y = P.PB_y; P_tmp.PA_z = P.PB_z;
2058 P_tmp.PB_x = P.PA_x; P_tmp.PB_y = P.PA_y; P_tmp.PB_z = P.PA_z;
2059 P_tmp.AB_x = P_AB;
2060 P_tmp.AB_y = P_AB + P.nshell12;
2061 P_tmp.AB_z = P_AB + 2*P.nshell12;
2062
2063 for(int i = 0; i < P.nshell12; i++)
2064 {
2065 P_tmp.AB_x[i] = -P.AB_x[i];
2066 P_tmp.AB_y[i] = -P.AB_y[i];
2067 P_tmp.AB_z[i] = -P.AB_z[i];
2068 }
2069
2070 int ret = ostei_i_h_i_h(P_tmp, Q, screen_tol, work, INT__h_i_i_h);
2071 double buffer[345744] SIMINT_ALIGN_ARRAY_DBL;
2072
2073 for(int q = 0; q < ret; q++)
2074 {
2075 int idx = 0;
2076 for(int a = 0; a < 21; ++a)
2077 for(int b = 0; b < 28; ++b)
2078 for(int c = 0; c < 28; ++c)
2079 for(int d = 0; d < 21; ++d)
2080 buffer[idx++] = INT__h_i_i_h[q*345744+b*12348+a*588+c*21+d];
2081
2082 memcpy(INT__h_i_i_h+q*345744, buffer, 345744*sizeof(double));
2083 }
2084
2085 return ret;
2086 }
2087
ostei_i_h_h_i(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__i_h_h_i)2088 int ostei_i_h_h_i(struct simint_multi_shellpair const P,
2089 struct simint_multi_shellpair const Q,
2090 double screen_tol,
2091 double * const restrict work,
2092 double * const restrict INT__i_h_h_i)
2093 {
2094 double Q_AB[3*Q.nshell12];
2095 struct simint_multi_shellpair Q_tmp = Q;
2096 Q_tmp.PA_x = Q.PB_x; Q_tmp.PA_y = Q.PB_y; Q_tmp.PA_z = Q.PB_z;
2097 Q_tmp.PB_x = Q.PA_x; Q_tmp.PB_y = Q.PA_y; Q_tmp.PB_z = Q.PA_z;
2098 Q_tmp.AB_x = Q_AB;
2099 Q_tmp.AB_y = Q_AB + Q.nshell12;
2100 Q_tmp.AB_z = Q_AB + 2*Q.nshell12;
2101
2102 for(int i = 0; i < Q.nshell12; i++)
2103 {
2104 Q_tmp.AB_x[i] = -Q.AB_x[i];
2105 Q_tmp.AB_y[i] = -Q.AB_y[i];
2106 Q_tmp.AB_z[i] = -Q.AB_z[i];
2107 }
2108
2109 int ret = ostei_i_h_i_h(P, Q_tmp, screen_tol, work, INT__i_h_h_i);
2110 double buffer[345744] SIMINT_ALIGN_ARRAY_DBL;
2111
2112 for(int q = 0; q < ret; q++)
2113 {
2114 int idx = 0;
2115 for(int a = 0; a < 28; ++a)
2116 for(int b = 0; b < 21; ++b)
2117 for(int c = 0; c < 21; ++c)
2118 for(int d = 0; d < 28; ++d)
2119 buffer[idx++] = INT__i_h_h_i[q*345744+a*12348+b*588+d*21+c];
2120
2121 memcpy(INT__i_h_h_i+q*345744, buffer, 345744*sizeof(double));
2122 }
2123
2124 return ret;
2125 }
2126
ostei_h_i_h_i(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__h_i_h_i)2127 int ostei_h_i_h_i(struct simint_multi_shellpair const P,
2128 struct simint_multi_shellpair const Q,
2129 double screen_tol,
2130 double * const restrict work,
2131 double * const restrict INT__h_i_h_i)
2132 {
2133 double P_AB[3*P.nshell12];
2134 struct simint_multi_shellpair P_tmp = P;
2135 P_tmp.PA_x = P.PB_x; P_tmp.PA_y = P.PB_y; P_tmp.PA_z = P.PB_z;
2136 P_tmp.PB_x = P.PA_x; P_tmp.PB_y = P.PA_y; P_tmp.PB_z = P.PA_z;
2137 P_tmp.AB_x = P_AB;
2138 P_tmp.AB_y = P_AB + P.nshell12;
2139 P_tmp.AB_z = P_AB + 2*P.nshell12;
2140
2141 for(int i = 0; i < P.nshell12; i++)
2142 {
2143 P_tmp.AB_x[i] = -P.AB_x[i];
2144 P_tmp.AB_y[i] = -P.AB_y[i];
2145 P_tmp.AB_z[i] = -P.AB_z[i];
2146 }
2147
2148 double Q_AB[3*Q.nshell12];
2149 struct simint_multi_shellpair Q_tmp = Q;
2150 Q_tmp.PA_x = Q.PB_x; Q_tmp.PA_y = Q.PB_y; Q_tmp.PA_z = Q.PB_z;
2151 Q_tmp.PB_x = Q.PA_x; Q_tmp.PB_y = Q.PA_y; Q_tmp.PB_z = Q.PA_z;
2152 Q_tmp.AB_x = Q_AB;
2153 Q_tmp.AB_y = Q_AB + Q.nshell12;
2154 Q_tmp.AB_z = Q_AB + 2*Q.nshell12;
2155
2156 for(int i = 0; i < Q.nshell12; i++)
2157 {
2158 Q_tmp.AB_x[i] = -Q.AB_x[i];
2159 Q_tmp.AB_y[i] = -Q.AB_y[i];
2160 Q_tmp.AB_z[i] = -Q.AB_z[i];
2161 }
2162
2163 int ret = ostei_i_h_i_h(P_tmp, Q_tmp, screen_tol, work, INT__h_i_h_i);
2164 double buffer[345744] SIMINT_ALIGN_ARRAY_DBL;
2165
2166 for(int q = 0; q < ret; q++)
2167 {
2168 int idx = 0;
2169 for(int a = 0; a < 21; ++a)
2170 for(int b = 0; b < 28; ++b)
2171 for(int c = 0; c < 21; ++c)
2172 for(int d = 0; d < 28; ++d)
2173 buffer[idx++] = INT__h_i_h_i[q*345744+b*12348+a*588+d*21+c];
2174
2175 memcpy(INT__h_i_h_i+q*345744, buffer, 345744*sizeof(double));
2176 }
2177
2178 return ret;
2179 }
2180
2181