1 #include "simint/boys/boys.h"
2 #include "simint/ostei/gen/ostei_generated.h"
3 #include "simint/vectorization/vectorization.h"
4 #include <math.h>
5 #include <string.h>
6
7
ostei_k_i_i_g(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__k_i_i_g)8 int ostei_k_i_i_g(struct simint_multi_shellpair const P,
9 struct simint_multi_shellpair const Q,
10 double screen_tol,
11 double * const restrict work,
12 double * const restrict INT__k_i_i_g)
13 {
14
15 SIMINT_ASSUME_ALIGN_DBL(work);
16 SIMINT_ASSUME_ALIGN_DBL(INT__k_i_i_g);
17 int ab, cd, abcd;
18 int istart, jstart;
19 int iprimcd, nprim_icd, icd;
20 const int check_screen = (screen_tol > 0.0);
21 int i, j;
22 int n;
23 int not_screened;
24 int real_abcd;
25 int iket;
26 int ibra;
27
28 // partition workspace
29 double * const INT__k_s_i_s = work + (SIMINT_NSHELL_SIMD * 0);
30 double * const INT__k_s_k_s = work + (SIMINT_NSHELL_SIMD * 1008);
31 double * const INT__k_s_l_s = work + (SIMINT_NSHELL_SIMD * 2304);
32 double * const INT__k_s_m_s = work + (SIMINT_NSHELL_SIMD * 3924);
33 double * const INT__k_s_n_s = work + (SIMINT_NSHELL_SIMD * 5904);
34 double * const INT__l_s_i_s = work + (SIMINT_NSHELL_SIMD * 8280);
35 double * const INT__l_s_k_s = work + (SIMINT_NSHELL_SIMD * 9540);
36 double * const INT__l_s_l_s = work + (SIMINT_NSHELL_SIMD * 11160);
37 double * const INT__l_s_m_s = work + (SIMINT_NSHELL_SIMD * 13185);
38 double * const INT__l_s_n_s = work + (SIMINT_NSHELL_SIMD * 15660);
39 double * const INT__m_s_i_s = work + (SIMINT_NSHELL_SIMD * 18630);
40 double * const INT__m_s_k_s = work + (SIMINT_NSHELL_SIMD * 20170);
41 double * const INT__m_s_l_s = work + (SIMINT_NSHELL_SIMD * 22150);
42 double * const INT__m_s_m_s = work + (SIMINT_NSHELL_SIMD * 24625);
43 double * const INT__m_s_n_s = work + (SIMINT_NSHELL_SIMD * 27650);
44 double * const INT__n_s_i_s = work + (SIMINT_NSHELL_SIMD * 31280);
45 double * const INT__n_s_k_s = work + (SIMINT_NSHELL_SIMD * 33128);
46 double * const INT__n_s_l_s = work + (SIMINT_NSHELL_SIMD * 35504);
47 double * const INT__n_s_m_s = work + (SIMINT_NSHELL_SIMD * 38474);
48 double * const INT__n_s_n_s = work + (SIMINT_NSHELL_SIMD * 42104);
49 double * const INT__o_s_i_s = work + (SIMINT_NSHELL_SIMD * 46460);
50 double * const INT__o_s_k_s = work + (SIMINT_NSHELL_SIMD * 48644);
51 double * const INT__o_s_l_s = work + (SIMINT_NSHELL_SIMD * 51452);
52 double * const INT__o_s_m_s = work + (SIMINT_NSHELL_SIMD * 54962);
53 double * const INT__o_s_n_s = work + (SIMINT_NSHELL_SIMD * 59252);
54 double * const INT__q_s_i_s = work + (SIMINT_NSHELL_SIMD * 64400);
55 double * const INT__q_s_k_s = work + (SIMINT_NSHELL_SIMD * 66948);
56 double * const INT__q_s_l_s = work + (SIMINT_NSHELL_SIMD * 70224);
57 double * const INT__q_s_m_s = work + (SIMINT_NSHELL_SIMD * 74319);
58 double * const INT__q_s_n_s = work + (SIMINT_NSHELL_SIMD * 79324);
59 double * const INT__r_s_i_s = work + (SIMINT_NSHELL_SIMD * 85330);
60 double * const INT__r_s_k_s = work + (SIMINT_NSHELL_SIMD * 88270);
61 double * const INT__r_s_l_s = work + (SIMINT_NSHELL_SIMD * 92050);
62 double * const INT__r_s_m_s = work + (SIMINT_NSHELL_SIMD * 96775);
63 double * const INT__r_s_n_s = work + (SIMINT_NSHELL_SIMD * 102550);
64 SIMINT_DBLTYPE * const primwork = (SIMINT_DBLTYPE *)(work + SIMINT_NSHELL_SIMD*109480);
65 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_s_s = primwork + 0;
66 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_p_s = primwork + 24;
67 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_d_s = primwork + 54;
68 SIMINT_DBLTYPE * const restrict PRIM_INT__s_s_f_s = primwork + 108;
69 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_s_s = primwork + 188;
70 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_p_s = primwork + 257;
71 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_d_s = primwork + 347;
72 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_f_s = primwork + 509;
73 SIMINT_DBLTYPE * const restrict PRIM_INT__p_s_g_s = primwork + 749;
74 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_s_s = primwork + 1064;
75 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_p_s = primwork + 1196;
76 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_d_s = primwork + 1376;
77 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_f_s = primwork + 1700;
78 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_g_s = primwork + 2180;
79 SIMINT_DBLTYPE * const restrict PRIM_INT__d_s_h_s = primwork + 2810;
80 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_s_s = primwork + 3566;
81 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_p_s = primwork + 3776;
82 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_d_s = primwork + 4076;
83 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_f_s = primwork + 4616;
84 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_g_s = primwork + 5416;
85 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_h_s = primwork + 6466;
86 SIMINT_DBLTYPE * const restrict PRIM_INT__f_s_i_s = primwork + 7726;
87 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_s_s = primwork + 9126;
88 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_p_s = primwork + 9426;
89 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_d_s = primwork + 9876;
90 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_f_s = primwork + 10686;
91 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_g_s = primwork + 11886;
92 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_h_s = primwork + 13461;
93 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_i_s = primwork + 15351;
94 SIMINT_DBLTYPE * const restrict PRIM_INT__g_s_k_s = primwork + 17451;
95 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_s_s = primwork + 19611;
96 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_p_s = primwork + 20010;
97 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_d_s = primwork + 20640;
98 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_f_s = primwork + 21774;
99 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_g_s = primwork + 23454;
100 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_h_s = primwork + 25659;
101 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_i_s = primwork + 28305;
102 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_k_s = primwork + 31245;
103 SIMINT_DBLTYPE * const restrict PRIM_INT__h_s_l_s = primwork + 34269;
104 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_s_s = primwork + 37104;
105 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_p_s = primwork + 37608;
106 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_d_s = primwork + 38448;
107 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_f_s = primwork + 39960;
108 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_g_s = primwork + 42200;
109 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_h_s = primwork + 45140;
110 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_i_s = primwork + 48668;
111 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_k_s = primwork + 52588;
112 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_l_s = primwork + 56620;
113 SIMINT_DBLTYPE * const restrict PRIM_INT__i_s_m_s = primwork + 60400;
114 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_s_s = primwork + 63480;
115 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_p_s = primwork + 64092;
116 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_d_s = primwork + 65172;
117 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_f_s = primwork + 67116;
118 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_g_s = primwork + 69996;
119 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_h_s = primwork + 73776;
120 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_i_s = primwork + 78312;
121 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_k_s = primwork + 83352;
122 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_l_s = primwork + 88536;
123 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_m_s = primwork + 93396;
124 SIMINT_DBLTYPE * const restrict PRIM_INT__k_s_n_s = primwork + 97356;
125 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_s_s = primwork + 99732;
126 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_p_s = primwork + 100452;
127 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_d_s = primwork + 101802;
128 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_f_s = primwork + 104232;
129 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_g_s = primwork + 107832;
130 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_h_s = primwork + 112557;
131 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_i_s = primwork + 118227;
132 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_k_s = primwork + 124527;
133 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_l_s = primwork + 131007;
134 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_m_s = primwork + 137082;
135 SIMINT_DBLTYPE * const restrict PRIM_INT__l_s_n_s = primwork + 142032;
136 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_s_s = primwork + 145002;
137 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_p_s = primwork + 145827;
138 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_d_s = primwork + 147477;
139 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_f_s = primwork + 150447;
140 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_g_s = primwork + 154847;
141 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_h_s = primwork + 160622;
142 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_i_s = primwork + 167552;
143 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_k_s = primwork + 175252;
144 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_l_s = primwork + 183172;
145 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_m_s = primwork + 190597;
146 SIMINT_DBLTYPE * const restrict PRIM_INT__m_s_n_s = primwork + 196647;
147 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_s_s = primwork + 200277;
148 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_p_s = primwork + 201201;
149 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_d_s = primwork + 203181;
150 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_f_s = primwork + 206745;
151 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_g_s = primwork + 212025;
152 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_h_s = primwork + 218955;
153 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_i_s = primwork + 227271;
154 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_k_s = primwork + 236511;
155 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_l_s = primwork + 246015;
156 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_m_s = primwork + 254925;
157 SIMINT_DBLTYPE * const restrict PRIM_INT__n_s_n_s = primwork + 262185;
158 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_s_s = primwork + 266541;
159 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_p_s = primwork + 267555;
160 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_d_s = primwork + 269895;
161 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_f_s = primwork + 274107;
162 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_g_s = primwork + 280347;
163 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_h_s = primwork + 288537;
164 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_i_s = primwork + 298365;
165 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_k_s = primwork + 309285;
166 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_l_s = primwork + 320517;
167 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_m_s = primwork + 331047;
168 SIMINT_DBLTYPE * const restrict PRIM_INT__o_s_n_s = primwork + 339627;
169 SIMINT_DBLTYPE * const restrict PRIM_INT__q_s_s_s = primwork + 344775;
170 SIMINT_DBLTYPE * const restrict PRIM_INT__q_s_p_s = primwork + 345867;
171 SIMINT_DBLTYPE * const restrict PRIM_INT__q_s_d_s = primwork + 348597;
172 SIMINT_DBLTYPE * const restrict PRIM_INT__q_s_f_s = primwork + 353511;
173 SIMINT_DBLTYPE * const restrict PRIM_INT__q_s_g_s = primwork + 360791;
174 SIMINT_DBLTYPE * const restrict PRIM_INT__q_s_h_s = primwork + 370346;
175 SIMINT_DBLTYPE * const restrict PRIM_INT__q_s_i_s = primwork + 381812;
176 SIMINT_DBLTYPE * const restrict PRIM_INT__q_s_k_s = primwork + 394552;
177 SIMINT_DBLTYPE * const restrict PRIM_INT__q_s_l_s = primwork + 407656;
178 SIMINT_DBLTYPE * const restrict PRIM_INT__q_s_m_s = primwork + 419941;
179 SIMINT_DBLTYPE * const restrict PRIM_INT__q_s_n_s = primwork + 429951;
180 SIMINT_DBLTYPE * const restrict PRIM_INT__r_s_s_s = primwork + 435957;
181 SIMINT_DBLTYPE * const restrict PRIM_INT__r_s_p_s = primwork + 437112;
182 SIMINT_DBLTYPE * const restrict PRIM_INT__r_s_d_s = primwork + 440262;
183 SIMINT_DBLTYPE * const restrict PRIM_INT__r_s_f_s = primwork + 445932;
184 SIMINT_DBLTYPE * const restrict PRIM_INT__r_s_g_s = primwork + 454332;
185 SIMINT_DBLTYPE * const restrict PRIM_INT__r_s_h_s = primwork + 465357;
186 SIMINT_DBLTYPE * const restrict PRIM_INT__r_s_i_s = primwork + 478587;
187 SIMINT_DBLTYPE * const restrict PRIM_INT__r_s_k_s = primwork + 493287;
188 SIMINT_DBLTYPE * const restrict PRIM_INT__r_s_l_s = primwork + 508407;
189 SIMINT_DBLTYPE * const restrict PRIM_INT__r_s_m_s = primwork + 522582;
190 SIMINT_DBLTYPE * const restrict PRIM_INT__r_s_n_s = primwork + 534132;
191 double * const hrrwork = (double *)(primwork + 541062);
192 double * const HRR_INT__k_p_i_s = hrrwork + 0;
193 double * const HRR_INT__k_p_k_s = hrrwork + 3024;
194 double * const HRR_INT__k_p_l_s = hrrwork + 6912;
195 double * const HRR_INT__k_p_m_s = hrrwork + 11772;
196 double * const HRR_INT__k_p_n_s = hrrwork + 17712;
197 double * const HRR_INT__k_d_i_s = hrrwork + 24840;
198 double * const HRR_INT__k_d_k_s = hrrwork + 30888;
199 double * const HRR_INT__k_d_l_s = hrrwork + 38664;
200 double * const HRR_INT__k_d_m_s = hrrwork + 48384;
201 double * const HRR_INT__k_d_n_s = hrrwork + 60264;
202 double * const HRR_INT__k_f_i_s = hrrwork + 74520;
203 double * const HRR_INT__k_f_k_s = hrrwork + 84600;
204 double * const HRR_INT__k_f_l_s = hrrwork + 97560;
205 double * const HRR_INT__k_f_m_s = hrrwork + 113760;
206 double * const HRR_INT__k_f_n_s = hrrwork + 133560;
207 double * const HRR_INT__k_g_i_s = hrrwork + 157320;
208 double * const HRR_INT__k_g_k_s = hrrwork + 172440;
209 double * const HRR_INT__k_g_l_s = hrrwork + 191880;
210 double * const HRR_INT__k_g_m_s = hrrwork + 216180;
211 double * const HRR_INT__k_g_n_s = hrrwork + 245880;
212 double * const HRR_INT__k_h_i_s = hrrwork + 281520;
213 double * const HRR_INT__k_h_k_s = hrrwork + 302688;
214 double * const HRR_INT__k_h_l_s = hrrwork + 329904;
215 double * const HRR_INT__k_h_m_s = hrrwork + 363924;
216 double * const HRR_INT__k_h_n_s = hrrwork + 405504;
217 double * const HRR_INT__k_i_i_s = hrrwork + 455400;
218 double * const HRR_INT__k_i_i_p = hrrwork + 483624;
219 double * const HRR_INT__k_i_i_d = hrrwork + 568296;
220 double * const HRR_INT__k_i_i_f = hrrwork + 737640;
221 double * const HRR_INT__k_i_k_s = hrrwork + 1019880;
222 double * const HRR_INT__k_i_k_p = hrrwork + 1056168;
223 double * const HRR_INT__k_i_k_d = hrrwork + 1165032;
224 double * const HRR_INT__k_i_k_f = hrrwork + 1382760;
225 double * const HRR_INT__k_i_l_s = hrrwork + 1745640;
226 double * const HRR_INT__k_i_l_p = hrrwork + 1791000;
227 double * const HRR_INT__k_i_l_d = hrrwork + 1927080;
228 double * const HRR_INT__k_i_m_s = hrrwork + 2199240;
229 double * const HRR_INT__k_i_m_p = hrrwork + 2254680;
230 double * const HRR_INT__k_i_n_s = hrrwork + 2421000;
231 double * const HRR_INT__l_p_i_s = hrrwork + 2487528;
232 double * const HRR_INT__l_p_k_s = hrrwork + 2491308;
233 double * const HRR_INT__l_p_l_s = hrrwork + 2496168;
234 double * const HRR_INT__l_p_m_s = hrrwork + 2502243;
235 double * const HRR_INT__l_p_n_s = hrrwork + 2509668;
236 double * const HRR_INT__l_d_i_s = hrrwork + 2518578;
237 double * const HRR_INT__l_d_k_s = hrrwork + 2526138;
238 double * const HRR_INT__l_d_l_s = hrrwork + 2535858;
239 double * const HRR_INT__l_d_m_s = hrrwork + 2548008;
240 double * const HRR_INT__l_d_n_s = hrrwork + 2562858;
241 double * const HRR_INT__l_f_i_s = hrrwork + 2580678;
242 double * const HRR_INT__l_f_k_s = hrrwork + 2593278;
243 double * const HRR_INT__l_f_l_s = hrrwork + 2609478;
244 double * const HRR_INT__l_f_m_s = hrrwork + 2629728;
245 double * const HRR_INT__l_f_n_s = hrrwork + 2654478;
246 double * const HRR_INT__l_g_i_s = hrrwork + 2684178;
247 double * const HRR_INT__l_g_k_s = hrrwork + 2703078;
248 double * const HRR_INT__l_g_l_s = hrrwork + 2727378;
249 double * const HRR_INT__l_g_m_s = hrrwork + 2757753;
250 double * const HRR_INT__l_g_n_s = hrrwork + 2794878;
251 double * const HRR_INT__l_h_i_s = hrrwork + 2839428;
252 double * const HRR_INT__l_h_k_s = hrrwork + 2865888;
253 double * const HRR_INT__l_h_l_s = hrrwork + 2899908;
254 double * const HRR_INT__l_h_m_s = hrrwork + 2942433;
255 double * const HRR_INT__l_h_n_s = hrrwork + 2994408;
256 double * const HRR_INT__m_p_i_s = hrrwork + 3056778;
257 double * const HRR_INT__m_p_k_s = hrrwork + 3061398;
258 double * const HRR_INT__m_p_l_s = hrrwork + 3067338;
259 double * const HRR_INT__m_p_m_s = hrrwork + 3074763;
260 double * const HRR_INT__m_p_n_s = hrrwork + 3083838;
261 double * const HRR_INT__m_d_i_s = hrrwork + 3094728;
262 double * const HRR_INT__m_d_k_s = hrrwork + 3103968;
263 double * const HRR_INT__m_d_l_s = hrrwork + 3115848;
264 double * const HRR_INT__m_d_m_s = hrrwork + 3130698;
265 double * const HRR_INT__m_d_n_s = hrrwork + 3148848;
266 double * const HRR_INT__m_f_i_s = hrrwork + 3170628;
267 double * const HRR_INT__m_f_k_s = hrrwork + 3186028;
268 double * const HRR_INT__m_f_l_s = hrrwork + 3205828;
269 double * const HRR_INT__m_f_m_s = hrrwork + 3230578;
270 double * const HRR_INT__m_f_n_s = hrrwork + 3260828;
271 double * const HRR_INT__m_g_i_s = hrrwork + 3297128;
272 double * const HRR_INT__m_g_k_s = hrrwork + 3320228;
273 double * const HRR_INT__m_g_l_s = hrrwork + 3349928;
274 double * const HRR_INT__m_g_m_s = hrrwork + 3387053;
275 double * const HRR_INT__m_g_n_s = hrrwork + 3432428;
276 double * const HRR_INT__n_p_i_s = hrrwork + 3486878;
277 double * const HRR_INT__n_p_k_s = hrrwork + 3492422;
278 double * const HRR_INT__n_p_l_s = hrrwork + 3499550;
279 double * const HRR_INT__n_p_m_s = hrrwork + 3508460;
280 double * const HRR_INT__n_p_n_s = hrrwork + 3519350;
281 double * const HRR_INT__n_d_i_s = hrrwork + 3532418;
282 double * const HRR_INT__n_d_k_s = hrrwork + 3543506;
283 double * const HRR_INT__n_d_l_s = hrrwork + 3557762;
284 double * const HRR_INT__n_d_m_s = hrrwork + 3575582;
285 double * const HRR_INT__n_d_n_s = hrrwork + 3597362;
286 double * const HRR_INT__n_f_i_s = hrrwork + 3623498;
287 double * const HRR_INT__n_f_k_s = hrrwork + 3641978;
288 double * const HRR_INT__n_f_l_s = hrrwork + 3665738;
289 double * const HRR_INT__n_f_m_s = hrrwork + 3695438;
290 double * const HRR_INT__n_f_n_s = hrrwork + 3731738;
291 double * const HRR_INT__o_p_i_s = hrrwork + 3775298;
292 double * const HRR_INT__o_p_k_s = hrrwork + 3781850;
293 double * const HRR_INT__o_p_l_s = hrrwork + 3790274;
294 double * const HRR_INT__o_p_m_s = hrrwork + 3800804;
295 double * const HRR_INT__o_p_n_s = hrrwork + 3813674;
296 double * const HRR_INT__o_d_i_s = hrrwork + 3829118;
297 double * const HRR_INT__o_d_k_s = hrrwork + 3842222;
298 double * const HRR_INT__o_d_l_s = hrrwork + 3859070;
299 double * const HRR_INT__o_d_m_s = hrrwork + 3880130;
300 double * const HRR_INT__o_d_n_s = hrrwork + 3905870;
301 double * const HRR_INT__q_p_i_s = hrrwork + 3936758;
302 double * const HRR_INT__q_p_k_s = hrrwork + 3944402;
303 double * const HRR_INT__q_p_l_s = hrrwork + 3954230;
304 double * const HRR_INT__q_p_m_s = hrrwork + 3966515;
305 double * const HRR_INT__q_p_n_s = hrrwork + 3981530;
306
307
308 // Create constants
309 const SIMINT_DBLTYPE const_1 = SIMINT_DBLSET1(1);
310 const SIMINT_DBLTYPE const_10 = SIMINT_DBLSET1(10);
311 const SIMINT_DBLTYPE const_11 = SIMINT_DBLSET1(11);
312 const SIMINT_DBLTYPE const_12 = SIMINT_DBLSET1(12);
313 const SIMINT_DBLTYPE const_13 = SIMINT_DBLSET1(13);
314 const SIMINT_DBLTYPE const_2 = SIMINT_DBLSET1(2);
315 const SIMINT_DBLTYPE const_3 = SIMINT_DBLSET1(3);
316 const SIMINT_DBLTYPE const_4 = SIMINT_DBLSET1(4);
317 const SIMINT_DBLTYPE const_5 = SIMINT_DBLSET1(5);
318 const SIMINT_DBLTYPE const_6 = SIMINT_DBLSET1(6);
319 const SIMINT_DBLTYPE const_7 = SIMINT_DBLSET1(7);
320 const SIMINT_DBLTYPE const_8 = SIMINT_DBLSET1(8);
321 const SIMINT_DBLTYPE const_9 = SIMINT_DBLSET1(9);
322 const SIMINT_DBLTYPE one_half = SIMINT_DBLSET1(0.5);
323
324
325 ////////////////////////////////////////
326 // Loop over shells and primitives
327 ////////////////////////////////////////
328
329 real_abcd = 0;
330 istart = 0;
331 for(ab = 0; ab < P.nshell12_clip; ++ab)
332 {
333 const int iend = istart + P.nprim12[ab];
334
335 cd = 0;
336 jstart = 0;
337
338 for(cd = 0; cd < Q.nshell12_clip; cd += SIMINT_NSHELL_SIMD)
339 {
340 const int nshellbatch = ((cd + SIMINT_NSHELL_SIMD) > Q.nshell12_clip) ? Q.nshell12_clip - cd : SIMINT_NSHELL_SIMD;
341 int jend = jstart;
342 for(i = 0; i < nshellbatch; i++)
343 jend += Q.nprim12[cd+i];
344
345 // Clear the beginning of the workspace (where we are accumulating integrals)
346 memset(work, 0, SIMINT_NSHELL_SIMD * 109480 * sizeof(double));
347 abcd = 0;
348
349
350 for(i = istart; i < iend; ++i)
351 {
352 SIMINT_DBLTYPE bra_screen_max; // only used if check_screen
353
354 if(check_screen)
355 {
356 // Skip this whole thing if always insignificant
357 if((P.screen[i] * Q.screen_max) < screen_tol)
358 continue;
359 bra_screen_max = SIMINT_DBLSET1(P.screen[i]);
360 }
361
362 icd = 0;
363 iprimcd = 0;
364 nprim_icd = Q.nprim12[cd];
365 double * restrict PRIM_PTR_INT__k_s_i_s = INT__k_s_i_s + abcd * 1008;
366 double * restrict PRIM_PTR_INT__k_s_k_s = INT__k_s_k_s + abcd * 1296;
367 double * restrict PRIM_PTR_INT__k_s_l_s = INT__k_s_l_s + abcd * 1620;
368 double * restrict PRIM_PTR_INT__k_s_m_s = INT__k_s_m_s + abcd * 1980;
369 double * restrict PRIM_PTR_INT__k_s_n_s = INT__k_s_n_s + abcd * 2376;
370 double * restrict PRIM_PTR_INT__l_s_i_s = INT__l_s_i_s + abcd * 1260;
371 double * restrict PRIM_PTR_INT__l_s_k_s = INT__l_s_k_s + abcd * 1620;
372 double * restrict PRIM_PTR_INT__l_s_l_s = INT__l_s_l_s + abcd * 2025;
373 double * restrict PRIM_PTR_INT__l_s_m_s = INT__l_s_m_s + abcd * 2475;
374 double * restrict PRIM_PTR_INT__l_s_n_s = INT__l_s_n_s + abcd * 2970;
375 double * restrict PRIM_PTR_INT__m_s_i_s = INT__m_s_i_s + abcd * 1540;
376 double * restrict PRIM_PTR_INT__m_s_k_s = INT__m_s_k_s + abcd * 1980;
377 double * restrict PRIM_PTR_INT__m_s_l_s = INT__m_s_l_s + abcd * 2475;
378 double * restrict PRIM_PTR_INT__m_s_m_s = INT__m_s_m_s + abcd * 3025;
379 double * restrict PRIM_PTR_INT__m_s_n_s = INT__m_s_n_s + abcd * 3630;
380 double * restrict PRIM_PTR_INT__n_s_i_s = INT__n_s_i_s + abcd * 1848;
381 double * restrict PRIM_PTR_INT__n_s_k_s = INT__n_s_k_s + abcd * 2376;
382 double * restrict PRIM_PTR_INT__n_s_l_s = INT__n_s_l_s + abcd * 2970;
383 double * restrict PRIM_PTR_INT__n_s_m_s = INT__n_s_m_s + abcd * 3630;
384 double * restrict PRIM_PTR_INT__n_s_n_s = INT__n_s_n_s + abcd * 4356;
385 double * restrict PRIM_PTR_INT__o_s_i_s = INT__o_s_i_s + abcd * 2184;
386 double * restrict PRIM_PTR_INT__o_s_k_s = INT__o_s_k_s + abcd * 2808;
387 double * restrict PRIM_PTR_INT__o_s_l_s = INT__o_s_l_s + abcd * 3510;
388 double * restrict PRIM_PTR_INT__o_s_m_s = INT__o_s_m_s + abcd * 4290;
389 double * restrict PRIM_PTR_INT__o_s_n_s = INT__o_s_n_s + abcd * 5148;
390 double * restrict PRIM_PTR_INT__q_s_i_s = INT__q_s_i_s + abcd * 2548;
391 double * restrict PRIM_PTR_INT__q_s_k_s = INT__q_s_k_s + abcd * 3276;
392 double * restrict PRIM_PTR_INT__q_s_l_s = INT__q_s_l_s + abcd * 4095;
393 double * restrict PRIM_PTR_INT__q_s_m_s = INT__q_s_m_s + abcd * 5005;
394 double * restrict PRIM_PTR_INT__q_s_n_s = INT__q_s_n_s + abcd * 6006;
395 double * restrict PRIM_PTR_INT__r_s_i_s = INT__r_s_i_s + abcd * 2940;
396 double * restrict PRIM_PTR_INT__r_s_k_s = INT__r_s_k_s + abcd * 3780;
397 double * restrict PRIM_PTR_INT__r_s_l_s = INT__r_s_l_s + abcd * 4725;
398 double * restrict PRIM_PTR_INT__r_s_m_s = INT__r_s_m_s + abcd * 5775;
399 double * restrict PRIM_PTR_INT__r_s_n_s = INT__r_s_n_s + abcd * 6930;
400
401
402
403 // Load these one per loop over i
404 const SIMINT_DBLTYPE P_alpha = SIMINT_DBLSET1(P.alpha[i]);
405 const SIMINT_DBLTYPE P_prefac = SIMINT_DBLSET1(P.prefac[i]);
406 const SIMINT_DBLTYPE Pxyz[3] = { SIMINT_DBLSET1(P.x[i]), SIMINT_DBLSET1(P.y[i]), SIMINT_DBLSET1(P.z[i]) };
407
408 const SIMINT_DBLTYPE P_PA[3] = { SIMINT_DBLSET1(P.PA_x[i]), SIMINT_DBLSET1(P.PA_y[i]), SIMINT_DBLSET1(P.PA_z[i]) };
409
410 for(j = jstart; j < jend; j += SIMINT_SIMD_LEN)
411 {
412 // calculate the shell offsets
413 // these are the offset from the shell pointed to by cd
414 // for each element
415 int shelloffsets[SIMINT_SIMD_LEN] = {0};
416 int lastoffset = 0;
417 const int nlane = ( ((j + SIMINT_SIMD_LEN) < jend) ? SIMINT_SIMD_LEN : (jend - j));
418
419 if((iprimcd + SIMINT_SIMD_LEN) >= nprim_icd)
420 {
421 // Handle if the first element of the vector is a new shell
422 if(iprimcd >= nprim_icd && ((icd+1) < nshellbatch))
423 {
424 nprim_icd += Q.nprim12[cd + (++icd)];
425 PRIM_PTR_INT__k_s_i_s += 1008;
426 PRIM_PTR_INT__k_s_k_s += 1296;
427 PRIM_PTR_INT__k_s_l_s += 1620;
428 PRIM_PTR_INT__k_s_m_s += 1980;
429 PRIM_PTR_INT__k_s_n_s += 2376;
430 PRIM_PTR_INT__l_s_i_s += 1260;
431 PRIM_PTR_INT__l_s_k_s += 1620;
432 PRIM_PTR_INT__l_s_l_s += 2025;
433 PRIM_PTR_INT__l_s_m_s += 2475;
434 PRIM_PTR_INT__l_s_n_s += 2970;
435 PRIM_PTR_INT__m_s_i_s += 1540;
436 PRIM_PTR_INT__m_s_k_s += 1980;
437 PRIM_PTR_INT__m_s_l_s += 2475;
438 PRIM_PTR_INT__m_s_m_s += 3025;
439 PRIM_PTR_INT__m_s_n_s += 3630;
440 PRIM_PTR_INT__n_s_i_s += 1848;
441 PRIM_PTR_INT__n_s_k_s += 2376;
442 PRIM_PTR_INT__n_s_l_s += 2970;
443 PRIM_PTR_INT__n_s_m_s += 3630;
444 PRIM_PTR_INT__n_s_n_s += 4356;
445 PRIM_PTR_INT__o_s_i_s += 2184;
446 PRIM_PTR_INT__o_s_k_s += 2808;
447 PRIM_PTR_INT__o_s_l_s += 3510;
448 PRIM_PTR_INT__o_s_m_s += 4290;
449 PRIM_PTR_INT__o_s_n_s += 5148;
450 PRIM_PTR_INT__q_s_i_s += 2548;
451 PRIM_PTR_INT__q_s_k_s += 3276;
452 PRIM_PTR_INT__q_s_l_s += 4095;
453 PRIM_PTR_INT__q_s_m_s += 5005;
454 PRIM_PTR_INT__q_s_n_s += 6006;
455 PRIM_PTR_INT__r_s_i_s += 2940;
456 PRIM_PTR_INT__r_s_k_s += 3780;
457 PRIM_PTR_INT__r_s_l_s += 4725;
458 PRIM_PTR_INT__r_s_m_s += 5775;
459 PRIM_PTR_INT__r_s_n_s += 6930;
460 }
461 iprimcd++;
462 for(n = 1; n < SIMINT_SIMD_LEN; ++n)
463 {
464 if(iprimcd >= nprim_icd && ((icd+1) < nshellbatch))
465 {
466 shelloffsets[n] = shelloffsets[n-1] + 1;
467 lastoffset++;
468 nprim_icd += Q.nprim12[cd + (++icd)];
469 }
470 else
471 shelloffsets[n] = shelloffsets[n-1];
472 iprimcd++;
473 }
474 }
475 else
476 iprimcd += SIMINT_SIMD_LEN;
477
478 // Do we have to compute this vector (or has it been screened out)?
479 // (not_screened != 0 means we have to do this vector)
480 if(check_screen)
481 {
482 const double vmax = vector_max(SIMINT_MUL(bra_screen_max, SIMINT_DBLLOAD(Q.screen, j)));
483 if(vmax < screen_tol)
484 {
485 PRIM_PTR_INT__k_s_i_s += lastoffset*1008;
486 PRIM_PTR_INT__k_s_k_s += lastoffset*1296;
487 PRIM_PTR_INT__k_s_l_s += lastoffset*1620;
488 PRIM_PTR_INT__k_s_m_s += lastoffset*1980;
489 PRIM_PTR_INT__k_s_n_s += lastoffset*2376;
490 PRIM_PTR_INT__l_s_i_s += lastoffset*1260;
491 PRIM_PTR_INT__l_s_k_s += lastoffset*1620;
492 PRIM_PTR_INT__l_s_l_s += lastoffset*2025;
493 PRIM_PTR_INT__l_s_m_s += lastoffset*2475;
494 PRIM_PTR_INT__l_s_n_s += lastoffset*2970;
495 PRIM_PTR_INT__m_s_i_s += lastoffset*1540;
496 PRIM_PTR_INT__m_s_k_s += lastoffset*1980;
497 PRIM_PTR_INT__m_s_l_s += lastoffset*2475;
498 PRIM_PTR_INT__m_s_m_s += lastoffset*3025;
499 PRIM_PTR_INT__m_s_n_s += lastoffset*3630;
500 PRIM_PTR_INT__n_s_i_s += lastoffset*1848;
501 PRIM_PTR_INT__n_s_k_s += lastoffset*2376;
502 PRIM_PTR_INT__n_s_l_s += lastoffset*2970;
503 PRIM_PTR_INT__n_s_m_s += lastoffset*3630;
504 PRIM_PTR_INT__n_s_n_s += lastoffset*4356;
505 PRIM_PTR_INT__o_s_i_s += lastoffset*2184;
506 PRIM_PTR_INT__o_s_k_s += lastoffset*2808;
507 PRIM_PTR_INT__o_s_l_s += lastoffset*3510;
508 PRIM_PTR_INT__o_s_m_s += lastoffset*4290;
509 PRIM_PTR_INT__o_s_n_s += lastoffset*5148;
510 PRIM_PTR_INT__q_s_i_s += lastoffset*2548;
511 PRIM_PTR_INT__q_s_k_s += lastoffset*3276;
512 PRIM_PTR_INT__q_s_l_s += lastoffset*4095;
513 PRIM_PTR_INT__q_s_m_s += lastoffset*5005;
514 PRIM_PTR_INT__q_s_n_s += lastoffset*6006;
515 PRIM_PTR_INT__r_s_i_s += lastoffset*2940;
516 PRIM_PTR_INT__r_s_k_s += lastoffset*3780;
517 PRIM_PTR_INT__r_s_l_s += lastoffset*4725;
518 PRIM_PTR_INT__r_s_m_s += lastoffset*5775;
519 PRIM_PTR_INT__r_s_n_s += lastoffset*6930;
520 continue;
521 }
522 }
523
524 const SIMINT_DBLTYPE Q_alpha = SIMINT_DBLLOAD(Q.alpha, j);
525 const SIMINT_DBLTYPE PQalpha_mul = SIMINT_MUL(P_alpha, Q_alpha);
526 const SIMINT_DBLTYPE PQalpha_sum = SIMINT_ADD(P_alpha, Q_alpha);
527 const SIMINT_DBLTYPE one_over_PQalpha_sum = SIMINT_DIV(const_1, PQalpha_sum);
528
529
530 /* construct R2 = (Px - Qx)**2 + (Py - Qy)**2 + (Pz -Qz)**2 */
531 SIMINT_DBLTYPE PQ[3];
532 PQ[0] = SIMINT_SUB(Pxyz[0], SIMINT_DBLLOAD(Q.x, j));
533 PQ[1] = SIMINT_SUB(Pxyz[1], SIMINT_DBLLOAD(Q.y, j));
534 PQ[2] = SIMINT_SUB(Pxyz[2], SIMINT_DBLLOAD(Q.z, j));
535 SIMINT_DBLTYPE R2 = SIMINT_MUL(PQ[0], PQ[0]);
536 R2 = SIMINT_FMADD(PQ[1], PQ[1], R2);
537 R2 = SIMINT_FMADD(PQ[2], PQ[2], R2);
538
539 const SIMINT_DBLTYPE alpha = SIMINT_MUL(PQalpha_mul, one_over_PQalpha_sum); // alpha from MEST
540 const SIMINT_DBLTYPE one_over_p = SIMINT_DIV(const_1, P_alpha);
541 const SIMINT_DBLTYPE one_over_q = SIMINT_DIV(const_1, Q_alpha);
542 const SIMINT_DBLTYPE one_over_2p = SIMINT_MUL(one_half, one_over_p);
543 const SIMINT_DBLTYPE one_over_2q = SIMINT_MUL(one_half, one_over_q);
544 const SIMINT_DBLTYPE one_over_2pq = SIMINT_MUL(one_half, one_over_PQalpha_sum);
545 const SIMINT_DBLTYPE Q_PA[3] = { SIMINT_DBLLOAD(Q.PA_x, j), SIMINT_DBLLOAD(Q.PA_y, j), SIMINT_DBLLOAD(Q.PA_z, j) };
546
547 // NOTE: Minus sign!
548 const SIMINT_DBLTYPE a_over_p = SIMINT_MUL(SIMINT_NEG(alpha), one_over_p);
549 SIMINT_DBLTYPE aop_PQ[3];
550 aop_PQ[0] = SIMINT_MUL(a_over_p, PQ[0]);
551 aop_PQ[1] = SIMINT_MUL(a_over_p, PQ[1]);
552 aop_PQ[2] = SIMINT_MUL(a_over_p, PQ[2]);
553
554 SIMINT_DBLTYPE a_over_q = SIMINT_MUL(alpha, one_over_q);
555 SIMINT_DBLTYPE aoq_PQ[3];
556 aoq_PQ[0] = SIMINT_MUL(a_over_q, PQ[0]);
557 aoq_PQ[1] = SIMINT_MUL(a_over_q, PQ[1]);
558 aoq_PQ[2] = SIMINT_MUL(a_over_q, PQ[2]);
559 // Put a minus sign here so we don't have to in RR routines
560 a_over_q = SIMINT_NEG(a_over_q);
561
562
563 //////////////////////////////////////////////
564 // Fjt function section
565 // Maximum v value: 23
566 //////////////////////////////////////////////
567 // The parameter to the Fjt function
568 const SIMINT_DBLTYPE F_x = SIMINT_MUL(R2, alpha);
569
570
571 const SIMINT_DBLTYPE Q_prefac = mask_load(nlane, Q.prefac + j);
572
573
574 boys_F_split(PRIM_INT__s_s_s_s, F_x, 23);
575 SIMINT_DBLTYPE prefac = SIMINT_SQRT(one_over_PQalpha_sum);
576 prefac = SIMINT_MUL(SIMINT_MUL(P_prefac, Q_prefac), prefac);
577 for(n = 0; n <= 23; n++)
578 PRIM_INT__s_s_s_s[n] = SIMINT_MUL(PRIM_INT__s_s_s_s[n], prefac);
579
580 //////////////////////////////////////////////
581 // Primitive integrals: Vertical recurrance
582 //////////////////////////////////////////////
583
584 const SIMINT_DBLTYPE vrr_const_1_over_2p = one_over_2p;
585 const SIMINT_DBLTYPE vrr_const_2_over_2p = SIMINT_MUL(const_2, one_over_2p);
586 const SIMINT_DBLTYPE vrr_const_3_over_2p = SIMINT_MUL(const_3, one_over_2p);
587 const SIMINT_DBLTYPE vrr_const_4_over_2p = SIMINT_MUL(const_4, one_over_2p);
588 const SIMINT_DBLTYPE vrr_const_5_over_2p = SIMINT_MUL(const_5, one_over_2p);
589 const SIMINT_DBLTYPE vrr_const_6_over_2p = SIMINT_MUL(const_6, one_over_2p);
590 const SIMINT_DBLTYPE vrr_const_7_over_2p = SIMINT_MUL(const_7, one_over_2p);
591 const SIMINT_DBLTYPE vrr_const_8_over_2p = SIMINT_MUL(const_8, one_over_2p);
592 const SIMINT_DBLTYPE vrr_const_9_over_2p = SIMINT_MUL(const_9, one_over_2p);
593 const SIMINT_DBLTYPE vrr_const_10_over_2p = SIMINT_MUL(const_10, one_over_2p);
594 const SIMINT_DBLTYPE vrr_const_11_over_2p = SIMINT_MUL(const_11, one_over_2p);
595 const SIMINT_DBLTYPE vrr_const_12_over_2p = SIMINT_MUL(const_12, one_over_2p);
596 const SIMINT_DBLTYPE vrr_const_1_over_2q = one_over_2q;
597 const SIMINT_DBLTYPE vrr_const_2_over_2q = SIMINT_MUL(const_2, one_over_2q);
598 const SIMINT_DBLTYPE vrr_const_3_over_2q = SIMINT_MUL(const_3, one_over_2q);
599 const SIMINT_DBLTYPE vrr_const_4_over_2q = SIMINT_MUL(const_4, one_over_2q);
600 const SIMINT_DBLTYPE vrr_const_5_over_2q = SIMINT_MUL(const_5, one_over_2q);
601 const SIMINT_DBLTYPE vrr_const_6_over_2q = SIMINT_MUL(const_6, one_over_2q);
602 const SIMINT_DBLTYPE vrr_const_7_over_2q = SIMINT_MUL(const_7, one_over_2q);
603 const SIMINT_DBLTYPE vrr_const_8_over_2q = SIMINT_MUL(const_8, one_over_2q);
604 const SIMINT_DBLTYPE vrr_const_9_over_2q = SIMINT_MUL(const_9, one_over_2q);
605 const SIMINT_DBLTYPE vrr_const_1_over_2pq = one_over_2pq;
606 const SIMINT_DBLTYPE vrr_const_2_over_2pq = SIMINT_MUL(const_2, one_over_2pq);
607 const SIMINT_DBLTYPE vrr_const_3_over_2pq = SIMINT_MUL(const_3, one_over_2pq);
608 const SIMINT_DBLTYPE vrr_const_4_over_2pq = SIMINT_MUL(const_4, one_over_2pq);
609 const SIMINT_DBLTYPE vrr_const_5_over_2pq = SIMINT_MUL(const_5, one_over_2pq);
610 const SIMINT_DBLTYPE vrr_const_6_over_2pq = SIMINT_MUL(const_6, one_over_2pq);
611 const SIMINT_DBLTYPE vrr_const_7_over_2pq = SIMINT_MUL(const_7, one_over_2pq);
612 const SIMINT_DBLTYPE vrr_const_8_over_2pq = SIMINT_MUL(const_8, one_over_2pq);
613 const SIMINT_DBLTYPE vrr_const_9_over_2pq = SIMINT_MUL(const_9, one_over_2pq);
614 const SIMINT_DBLTYPE vrr_const_10_over_2pq = SIMINT_MUL(const_10, one_over_2pq);
615 const SIMINT_DBLTYPE vrr_const_11_over_2pq = SIMINT_MUL(const_11, one_over_2pq);
616 const SIMINT_DBLTYPE vrr_const_12_over_2pq = SIMINT_MUL(const_12, one_over_2pq);
617 const SIMINT_DBLTYPE vrr_const_13_over_2pq = SIMINT_MUL(const_13, one_over_2pq);
618
619
620
621 // Forming PRIM_INT__p_s_s_s[23 * 3];
622 for(n = 0; n < 23; ++n) // loop over orders of auxiliary function
623 {
624
625 PRIM_INT__p_s_s_s[n * 3 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__s_s_s_s[n * 1 + 0]);
626 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]);
627
628 PRIM_INT__p_s_s_s[n * 3 + 1] = SIMINT_MUL(P_PA[1], PRIM_INT__s_s_s_s[n * 1 + 0]);
629 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]);
630
631 PRIM_INT__p_s_s_s[n * 3 + 2] = SIMINT_MUL(P_PA[2], PRIM_INT__s_s_s_s[n * 1 + 0]);
632 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]);
633
634 }
635
636
637
638 // Forming PRIM_INT__d_s_s_s[22 * 6];
639 for(n = 0; n < 22; ++n) // loop over orders of auxiliary function
640 {
641
642 PRIM_INT__d_s_s_s[n * 6 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__p_s_s_s[n * 3 + 0]);
643 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]);
644 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]);
645
646 PRIM_INT__d_s_s_s[n * 6 + 1] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_s_s[n * 3 + 0]);
647 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]);
648
649 PRIM_INT__d_s_s_s[n * 6 + 2] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_s_s[n * 3 + 0]);
650 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]);
651
652 PRIM_INT__d_s_s_s[n * 6 + 3] = SIMINT_MUL(P_PA[1], PRIM_INT__p_s_s_s[n * 3 + 1]);
653 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]);
654 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]);
655
656 PRIM_INT__d_s_s_s[n * 6 + 4] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_s_s[n * 3 + 1]);
657 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]);
658
659 PRIM_INT__d_s_s_s[n * 6 + 5] = SIMINT_MUL(P_PA[2], PRIM_INT__p_s_s_s[n * 3 + 2]);
660 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]);
661 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]);
662
663 }
664
665
666
667 // Forming PRIM_INT__f_s_s_s[21 * 10];
668 for(n = 0; n < 21; ++n) // loop over orders of auxiliary function
669 {
670
671 PRIM_INT__f_s_s_s[n * 10 + 0] = SIMINT_MUL(P_PA[0], PRIM_INT__d_s_s_s[n * 6 + 0]);
672 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]);
673 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]);
674
675 PRIM_INT__f_s_s_s[n * 10 + 1] = SIMINT_MUL(P_PA[1], PRIM_INT__d_s_s_s[n * 6 + 0]);
676 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]);
677
678 PRIM_INT__f_s_s_s[n * 10 + 2] = SIMINT_MUL(P_PA[2], PRIM_INT__d_s_s_s[n * 6 + 0]);
679 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]);
680
681 PRIM_INT__f_s_s_s[n * 10 + 3] = SIMINT_MUL(P_PA[0], PRIM_INT__d_s_s_s[n * 6 + 3]);
682 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]);
683
684 PRIM_INT__f_s_s_s[n * 10 + 4] = SIMINT_MUL(P_PA[2], PRIM_INT__d_s_s_s[n * 6 + 1]);
685 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]);
686
687 PRIM_INT__f_s_s_s[n * 10 + 5] = SIMINT_MUL(P_PA[0], PRIM_INT__d_s_s_s[n * 6 + 5]);
688 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]);
689
690 PRIM_INT__f_s_s_s[n * 10 + 6] = SIMINT_MUL(P_PA[1], PRIM_INT__d_s_s_s[n * 6 + 3]);
691 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]);
692 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]);
693
694 PRIM_INT__f_s_s_s[n * 10 + 7] = SIMINT_MUL(P_PA[2], PRIM_INT__d_s_s_s[n * 6 + 3]);
695 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]);
696
697 PRIM_INT__f_s_s_s[n * 10 + 8] = SIMINT_MUL(P_PA[1], PRIM_INT__d_s_s_s[n * 6 + 5]);
698 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]);
699
700 PRIM_INT__f_s_s_s[n * 10 + 9] = SIMINT_MUL(P_PA[2], PRIM_INT__d_s_s_s[n * 6 + 5]);
701 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]);
702 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]);
703
704 }
705
706
707 VRR_I_g_s_s_s(
708 PRIM_INT__g_s_s_s,
709 PRIM_INT__f_s_s_s,
710 PRIM_INT__d_s_s_s,
711 P_PA,
712 a_over_p,
713 aop_PQ,
714 one_over_2p,
715 20);
716
717
718 VRR_I_h_s_s_s(
719 PRIM_INT__h_s_s_s,
720 PRIM_INT__g_s_s_s,
721 PRIM_INT__f_s_s_s,
722 P_PA,
723 a_over_p,
724 aop_PQ,
725 one_over_2p,
726 19);
727
728
729 ostei_general_vrr1_I(6, 18,
730 one_over_2p, a_over_p, aop_PQ, P_PA,
731 PRIM_INT__h_s_s_s, PRIM_INT__g_s_s_s, PRIM_INT__i_s_s_s);
732
733
734 ostei_general_vrr1_I(7, 17,
735 one_over_2p, a_over_p, aop_PQ, P_PA,
736 PRIM_INT__i_s_s_s, PRIM_INT__h_s_s_s, PRIM_INT__k_s_s_s);
737
738
739 ostei_general_vrr_K(7, 0, 1, 0, 10,
740 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
741 PRIM_INT__k_s_s_s, NULL, NULL, PRIM_INT__i_s_s_s, NULL, PRIM_INT__k_s_p_s);
742
743
744 ostei_general_vrr_K(6, 0, 1, 0, 10,
745 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
746 PRIM_INT__i_s_s_s, NULL, NULL, PRIM_INT__h_s_s_s, NULL, PRIM_INT__i_s_p_s);
747
748
749 ostei_general_vrr_K(7, 0, 2, 0, 9,
750 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
751 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);
752
753
754 ostei_general_vrr_K(5, 0, 1, 0, 10,
755 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
756 PRIM_INT__h_s_s_s, NULL, NULL, PRIM_INT__g_s_s_s, NULL, PRIM_INT__h_s_p_s);
757
758
759 ostei_general_vrr_K(6, 0, 2, 0, 9,
760 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
761 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);
762
763
764 ostei_general_vrr_K(7, 0, 3, 0, 8,
765 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
766 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);
767
768
769 VRR_K_g_s_p_s(
770 PRIM_INT__g_s_p_s,
771 PRIM_INT__g_s_s_s,
772 PRIM_INT__f_s_s_s,
773 Q_PA,
774 aoq_PQ,
775 one_over_2pq,
776 10);
777
778
779 ostei_general_vrr_K(5, 0, 2, 0, 9,
780 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
781 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);
782
783
784 ostei_general_vrr_K(6, 0, 3, 0, 8,
785 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
786 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);
787
788
789 ostei_general_vrr_K(7, 0, 4, 0, 7,
790 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
791 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);
792
793
794 VRR_K_f_s_p_s(
795 PRIM_INT__f_s_p_s,
796 PRIM_INT__f_s_s_s,
797 PRIM_INT__d_s_s_s,
798 Q_PA,
799 aoq_PQ,
800 one_over_2pq,
801 10);
802
803
804 ostei_general_vrr_K(4, 0, 2, 0, 9,
805 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
806 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);
807
808
809 ostei_general_vrr_K(5, 0, 3, 0, 8,
810 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
811 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);
812
813
814 ostei_general_vrr_K(6, 0, 4, 0, 7,
815 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
816 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);
817
818
819 ostei_general_vrr_K(7, 0, 5, 0, 6,
820 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
821 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);
822
823
824
825 // Forming PRIM_INT__d_s_p_s[10 * 18];
826 for(n = 0; n < 10; ++n) // loop over orders of auxiliary function
827 {
828
829 PRIM_INT__d_s_p_s[n * 18 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 0]);
830 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]);
831 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]);
832
833 PRIM_INT__d_s_p_s[n * 18 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 0]);
834 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]);
835
836 PRIM_INT__d_s_p_s[n * 18 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 0]);
837 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]);
838
839 PRIM_INT__d_s_p_s[n * 18 + 3] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 1]);
840 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]);
841 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]);
842
843 PRIM_INT__d_s_p_s[n * 18 + 4] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 1]);
844 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]);
845 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]);
846
847 PRIM_INT__d_s_p_s[n * 18 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 1]);
848 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]);
849
850 PRIM_INT__d_s_p_s[n * 18 + 6] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 2]);
851 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]);
852 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]);
853
854 PRIM_INT__d_s_p_s[n * 18 + 7] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 2]);
855 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]);
856
857 PRIM_INT__d_s_p_s[n * 18 + 8] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 2]);
858 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]);
859 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]);
860
861 PRIM_INT__d_s_p_s[n * 18 + 9] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 3]);
862 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]);
863
864 PRIM_INT__d_s_p_s[n * 18 + 10] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 3]);
865 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]);
866 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]);
867
868 PRIM_INT__d_s_p_s[n * 18 + 11] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 3]);
869 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]);
870
871 PRIM_INT__d_s_p_s[n * 18 + 12] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 4]);
872 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]);
873
874 PRIM_INT__d_s_p_s[n * 18 + 13] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 4]);
875 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]);
876 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]);
877
878 PRIM_INT__d_s_p_s[n * 18 + 14] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 4]);
879 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]);
880 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]);
881
882 PRIM_INT__d_s_p_s[n * 18 + 15] = SIMINT_MUL(Q_PA[0], PRIM_INT__d_s_s_s[n * 6 + 5]);
883 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]);
884
885 PRIM_INT__d_s_p_s[n * 18 + 16] = SIMINT_MUL(Q_PA[1], PRIM_INT__d_s_s_s[n * 6 + 5]);
886 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]);
887
888 PRIM_INT__d_s_p_s[n * 18 + 17] = SIMINT_MUL(Q_PA[2], PRIM_INT__d_s_s_s[n * 6 + 5]);
889 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]);
890 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]);
891
892 }
893
894
895 VRR_K_f_s_d_s(
896 PRIM_INT__f_s_d_s,
897 PRIM_INT__f_s_p_s,
898 PRIM_INT__f_s_s_s,
899 PRIM_INT__d_s_p_s,
900 Q_PA,
901 a_over_q,
902 aoq_PQ,
903 one_over_2pq,
904 one_over_2q,
905 9);
906
907
908 ostei_general_vrr_K(4, 0, 3, 0, 8,
909 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
910 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);
911
912
913 ostei_general_vrr_K(5, 0, 4, 0, 7,
914 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
915 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);
916
917
918 ostei_general_vrr_K(6, 0, 5, 0, 6,
919 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
920 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);
921
922
923 ostei_general_vrr_K(7, 0, 6, 0, 5,
924 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
925 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);
926
927
928
929 // Forming PRIM_INT__p_s_p_s[10 * 9];
930 for(n = 0; n < 10; ++n) // loop over orders of auxiliary function
931 {
932
933 PRIM_INT__p_s_p_s[n * 9 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_s_s[n * 3 + 0]);
934 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]);
935 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]);
936
937 PRIM_INT__p_s_p_s[n * 9 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_s_s[n * 3 + 0]);
938 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]);
939
940 PRIM_INT__p_s_p_s[n * 9 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_s_s[n * 3 + 0]);
941 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]);
942
943 PRIM_INT__p_s_p_s[n * 9 + 3] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_s_s[n * 3 + 1]);
944 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]);
945
946 PRIM_INT__p_s_p_s[n * 9 + 4] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_s_s[n * 3 + 1]);
947 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]);
948 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]);
949
950 PRIM_INT__p_s_p_s[n * 9 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_s_s[n * 3 + 1]);
951 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]);
952
953 PRIM_INT__p_s_p_s[n * 9 + 6] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_s_s[n * 3 + 2]);
954 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]);
955
956 PRIM_INT__p_s_p_s[n * 9 + 7] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_s_s[n * 3 + 2]);
957 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]);
958
959 PRIM_INT__p_s_p_s[n * 9 + 8] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_s_s[n * 3 + 2]);
960 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]);
961 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]);
962
963 }
964
965
966 VRR_K_d_s_d_s(
967 PRIM_INT__d_s_d_s,
968 PRIM_INT__d_s_p_s,
969 PRIM_INT__d_s_s_s,
970 PRIM_INT__p_s_p_s,
971 Q_PA,
972 a_over_q,
973 aoq_PQ,
974 one_over_2pq,
975 one_over_2q,
976 9);
977
978
979 ostei_general_vrr_K(3, 0, 3, 0, 8,
980 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
981 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);
982
983
984 ostei_general_vrr_K(4, 0, 4, 0, 7,
985 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
986 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);
987
988
989 ostei_general_vrr_K(5, 0, 5, 0, 6,
990 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
991 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);
992
993
994 ostei_general_vrr_K(6, 0, 6, 0, 5,
995 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
996 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);
997
998
999 ostei_general_vrr_K(7, 0, 7, 0, 4,
1000 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1001 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);
1002
1003
1004 ostei_general_vrr1_I(8, 16,
1005 one_over_2p, a_over_p, aop_PQ, P_PA,
1006 PRIM_INT__k_s_s_s, PRIM_INT__i_s_s_s, PRIM_INT__l_s_s_s);
1007
1008
1009 ostei_general_vrr_K(8, 0, 1, 0, 10,
1010 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1011 PRIM_INT__l_s_s_s, NULL, NULL, PRIM_INT__k_s_s_s, NULL, PRIM_INT__l_s_p_s);
1012
1013
1014 ostei_general_vrr_K(8, 0, 2, 0, 9,
1015 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1016 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);
1017
1018
1019 ostei_general_vrr_K(8, 0, 3, 0, 8,
1020 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1021 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);
1022
1023
1024 ostei_general_vrr_K(8, 0, 4, 0, 7,
1025 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1026 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);
1027
1028
1029 ostei_general_vrr_K(8, 0, 5, 0, 6,
1030 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1031 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);
1032
1033
1034 ostei_general_vrr_K(8, 0, 6, 0, 5,
1035 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1036 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);
1037
1038
1039
1040 // Forming PRIM_INT__s_s_p_s[10 * 3];
1041 for(n = 0; n < 10; ++n) // loop over orders of auxiliary function
1042 {
1043
1044 PRIM_INT__s_s_p_s[n * 3 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_s_s[n * 1 + 0]);
1045 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]);
1046
1047 PRIM_INT__s_s_p_s[n * 3 + 1] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_s_s[n * 1 + 0]);
1048 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]);
1049
1050 PRIM_INT__s_s_p_s[n * 3 + 2] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_s_s[n * 1 + 0]);
1051 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]);
1052
1053 }
1054
1055
1056
1057 // Forming PRIM_INT__p_s_d_s[9 * 18];
1058 for(n = 0; n < 9; ++n) // loop over orders of auxiliary function
1059 {
1060
1061 PRIM_INT__p_s_d_s[n * 18 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_p_s[n * 9 + 0]);
1062 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]);
1063 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]);
1064 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]);
1065
1066 PRIM_INT__p_s_d_s[n * 18 + 3] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_p_s[n * 9 + 1]);
1067 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]);
1068 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]);
1069
1070 PRIM_INT__p_s_d_s[n * 18 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_p_s[n * 9 + 2]);
1071 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]);
1072 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]);
1073
1074 PRIM_INT__p_s_d_s[n * 18 + 6] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_p_s[n * 9 + 3]);
1075 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]);
1076 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]);
1077
1078 PRIM_INT__p_s_d_s[n * 18 + 9] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_p_s[n * 9 + 4]);
1079 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]);
1080 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]);
1081 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]);
1082
1083 PRIM_INT__p_s_d_s[n * 18 + 11] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_p_s[n * 9 + 5]);
1084 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]);
1085 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]);
1086
1087 PRIM_INT__p_s_d_s[n * 18 + 12] = SIMINT_MUL(Q_PA[0], PRIM_INT__p_s_p_s[n * 9 + 6]);
1088 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]);
1089 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]);
1090
1091 PRIM_INT__p_s_d_s[n * 18 + 15] = SIMINT_MUL(Q_PA[1], PRIM_INT__p_s_p_s[n * 9 + 7]);
1092 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]);
1093 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]);
1094
1095 PRIM_INT__p_s_d_s[n * 18 + 17] = SIMINT_MUL(Q_PA[2], PRIM_INT__p_s_p_s[n * 9 + 8]);
1096 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]);
1097 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]);
1098 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]);
1099
1100 }
1101
1102
1103 VRR_K_d_s_f_s(
1104 PRIM_INT__d_s_f_s,
1105 PRIM_INT__d_s_d_s,
1106 PRIM_INT__d_s_p_s,
1107 PRIM_INT__p_s_d_s,
1108 Q_PA,
1109 a_over_q,
1110 aoq_PQ,
1111 one_over_2pq,
1112 one_over_2q,
1113 8);
1114
1115
1116 ostei_general_vrr_K(3, 0, 4, 0, 7,
1117 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1118 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);
1119
1120
1121 ostei_general_vrr_K(4, 0, 5, 0, 6,
1122 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1123 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);
1124
1125
1126 ostei_general_vrr_K(5, 0, 6, 0, 5,
1127 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1128 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);
1129
1130
1131 ostei_general_vrr_K(6, 0, 7, 0, 4,
1132 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1133 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);
1134
1135
1136 ostei_general_vrr_K(7, 0, 8, 0, 3,
1137 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1138 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);
1139
1140
1141 ostei_general_vrr_K(8, 0, 7, 0, 4,
1142 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1143 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);
1144
1145
1146 ostei_general_vrr1_I(9, 15,
1147 one_over_2p, a_over_p, aop_PQ, P_PA,
1148 PRIM_INT__l_s_s_s, PRIM_INT__k_s_s_s, PRIM_INT__m_s_s_s);
1149
1150
1151 ostei_general_vrr_K(9, 0, 1, 0, 10,
1152 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1153 PRIM_INT__m_s_s_s, NULL, NULL, PRIM_INT__l_s_s_s, NULL, PRIM_INT__m_s_p_s);
1154
1155
1156 ostei_general_vrr_K(9, 0, 2, 0, 9,
1157 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1158 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);
1159
1160
1161 ostei_general_vrr_K(9, 0, 3, 0, 8,
1162 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1163 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);
1164
1165
1166 ostei_general_vrr_K(9, 0, 4, 0, 7,
1167 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1168 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);
1169
1170
1171 ostei_general_vrr_K(9, 0, 5, 0, 6,
1172 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1173 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);
1174
1175
1176 ostei_general_vrr_K(9, 0, 6, 0, 5,
1177 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1178 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);
1179
1180
1181
1182 // Forming PRIM_INT__s_s_d_s[9 * 6];
1183 for(n = 0; n < 9; ++n) // loop over orders of auxiliary function
1184 {
1185
1186 PRIM_INT__s_s_d_s[n * 6 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_p_s[n * 3 + 0]);
1187 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]);
1188 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]);
1189
1190 PRIM_INT__s_s_d_s[n * 6 + 3] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_p_s[n * 3 + 1]);
1191 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]);
1192 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]);
1193
1194 PRIM_INT__s_s_d_s[n * 6 + 5] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_p_s[n * 3 + 2]);
1195 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]);
1196 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]);
1197
1198 }
1199
1200
1201 VRR_K_p_s_f_s(
1202 PRIM_INT__p_s_f_s,
1203 PRIM_INT__p_s_d_s,
1204 PRIM_INT__p_s_p_s,
1205 PRIM_INT__s_s_d_s,
1206 Q_PA,
1207 a_over_q,
1208 aoq_PQ,
1209 one_over_2pq,
1210 one_over_2q,
1211 8);
1212
1213
1214 ostei_general_vrr_K(2, 0, 4, 0, 7,
1215 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1216 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);
1217
1218
1219 ostei_general_vrr_K(3, 0, 5, 0, 6,
1220 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1221 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);
1222
1223
1224 ostei_general_vrr_K(4, 0, 6, 0, 5,
1225 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1226 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);
1227
1228
1229 ostei_general_vrr_K(5, 0, 7, 0, 4,
1230 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1231 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);
1232
1233
1234 ostei_general_vrr_K(6, 0, 8, 0, 3,
1235 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1236 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);
1237
1238
1239 ostei_general_vrr_K(7, 0, 9, 0, 2,
1240 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1241 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);
1242
1243
1244 ostei_general_vrr_K(8, 0, 8, 0, 3,
1245 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1246 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);
1247
1248
1249 ostei_general_vrr_K(9, 0, 7, 0, 4,
1250 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1251 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);
1252
1253
1254 ostei_general_vrr1_I(10, 14,
1255 one_over_2p, a_over_p, aop_PQ, P_PA,
1256 PRIM_INT__m_s_s_s, PRIM_INT__l_s_s_s, PRIM_INT__n_s_s_s);
1257
1258
1259 ostei_general_vrr_K(10, 0, 1, 0, 10,
1260 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1261 PRIM_INT__n_s_s_s, NULL, NULL, PRIM_INT__m_s_s_s, NULL, PRIM_INT__n_s_p_s);
1262
1263
1264 ostei_general_vrr_K(10, 0, 2, 0, 9,
1265 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1266 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);
1267
1268
1269 ostei_general_vrr_K(10, 0, 3, 0, 8,
1270 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1271 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);
1272
1273
1274 ostei_general_vrr_K(10, 0, 4, 0, 7,
1275 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1276 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);
1277
1278
1279 ostei_general_vrr_K(10, 0, 5, 0, 6,
1280 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1281 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);
1282
1283
1284 ostei_general_vrr_K(10, 0, 6, 0, 5,
1285 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1286 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);
1287
1288
1289
1290 // Forming PRIM_INT__s_s_f_s[8 * 10];
1291 for(n = 0; n < 8; ++n) // loop over orders of auxiliary function
1292 {
1293
1294 PRIM_INT__s_s_f_s[n * 10 + 0] = SIMINT_MUL(Q_PA[0], PRIM_INT__s_s_d_s[n * 6 + 0]);
1295 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]);
1296 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]);
1297
1298 PRIM_INT__s_s_f_s[n * 10 + 6] = SIMINT_MUL(Q_PA[1], PRIM_INT__s_s_d_s[n * 6 + 3]);
1299 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]);
1300 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]);
1301
1302 PRIM_INT__s_s_f_s[n * 10 + 9] = SIMINT_MUL(Q_PA[2], PRIM_INT__s_s_d_s[n * 6 + 5]);
1303 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]);
1304 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]);
1305
1306 }
1307
1308
1309 VRR_K_p_s_g_s(
1310 PRIM_INT__p_s_g_s,
1311 PRIM_INT__p_s_f_s,
1312 PRIM_INT__p_s_d_s,
1313 PRIM_INT__s_s_f_s,
1314 Q_PA,
1315 a_over_q,
1316 aoq_PQ,
1317 one_over_2pq,
1318 one_over_2q,
1319 7);
1320
1321
1322 ostei_general_vrr_K(2, 0, 5, 0, 6,
1323 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1324 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);
1325
1326
1327 ostei_general_vrr_K(3, 0, 6, 0, 5,
1328 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1329 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);
1330
1331
1332 ostei_general_vrr_K(4, 0, 7, 0, 4,
1333 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1334 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);
1335
1336
1337 ostei_general_vrr_K(5, 0, 8, 0, 3,
1338 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1339 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);
1340
1341
1342 ostei_general_vrr_K(6, 0, 9, 0, 2,
1343 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1344 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);
1345
1346
1347 ostei_general_vrr_K(7, 0, 10, 0, 1,
1348 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1349 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);
1350
1351
1352 ostei_general_vrr_K(8, 0, 9, 0, 2,
1353 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1354 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);
1355
1356
1357 ostei_general_vrr_K(9, 0, 8, 0, 3,
1358 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1359 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);
1360
1361
1362 ostei_general_vrr_K(10, 0, 7, 0, 4,
1363 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1364 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);
1365
1366
1367 ostei_general_vrr1_I(11, 13,
1368 one_over_2p, a_over_p, aop_PQ, P_PA,
1369 PRIM_INT__n_s_s_s, PRIM_INT__m_s_s_s, PRIM_INT__o_s_s_s);
1370
1371
1372 ostei_general_vrr_K(11, 0, 1, 0, 10,
1373 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1374 PRIM_INT__o_s_s_s, NULL, NULL, PRIM_INT__n_s_s_s, NULL, PRIM_INT__o_s_p_s);
1375
1376
1377 ostei_general_vrr_K(11, 0, 2, 0, 9,
1378 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1379 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);
1380
1381
1382 ostei_general_vrr_K(11, 0, 3, 0, 8,
1383 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1384 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);
1385
1386
1387 ostei_general_vrr_K(11, 0, 4, 0, 7,
1388 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1389 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);
1390
1391
1392 ostei_general_vrr_K(11, 0, 5, 0, 6,
1393 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1394 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);
1395
1396
1397 ostei_general_vrr_K(11, 0, 6, 0, 5,
1398 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1399 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);
1400
1401
1402 ostei_general_vrr_K(8, 0, 10, 0, 1,
1403 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1404 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);
1405
1406
1407 ostei_general_vrr_K(9, 0, 9, 0, 2,
1408 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1409 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);
1410
1411
1412 ostei_general_vrr_K(10, 0, 8, 0, 3,
1413 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1414 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);
1415
1416
1417 ostei_general_vrr_K(11, 0, 7, 0, 4,
1418 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1419 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);
1420
1421
1422 ostei_general_vrr1_I(12, 12,
1423 one_over_2p, a_over_p, aop_PQ, P_PA,
1424 PRIM_INT__o_s_s_s, PRIM_INT__n_s_s_s, PRIM_INT__q_s_s_s);
1425
1426
1427 ostei_general_vrr_K(12, 0, 1, 0, 10,
1428 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1429 PRIM_INT__q_s_s_s, NULL, NULL, PRIM_INT__o_s_s_s, NULL, PRIM_INT__q_s_p_s);
1430
1431
1432 ostei_general_vrr_K(12, 0, 2, 0, 9,
1433 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1434 PRIM_INT__q_s_p_s, PRIM_INT__q_s_s_s, NULL, PRIM_INT__o_s_p_s, NULL, PRIM_INT__q_s_d_s);
1435
1436
1437 ostei_general_vrr_K(12, 0, 3, 0, 8,
1438 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1439 PRIM_INT__q_s_d_s, PRIM_INT__q_s_p_s, NULL, PRIM_INT__o_s_d_s, NULL, PRIM_INT__q_s_f_s);
1440
1441
1442 ostei_general_vrr_K(12, 0, 4, 0, 7,
1443 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1444 PRIM_INT__q_s_f_s, PRIM_INT__q_s_d_s, NULL, PRIM_INT__o_s_f_s, NULL, PRIM_INT__q_s_g_s);
1445
1446
1447 ostei_general_vrr_K(12, 0, 5, 0, 6,
1448 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1449 PRIM_INT__q_s_g_s, PRIM_INT__q_s_f_s, NULL, PRIM_INT__o_s_g_s, NULL, PRIM_INT__q_s_h_s);
1450
1451
1452 ostei_general_vrr_K(12, 0, 6, 0, 5,
1453 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1454 PRIM_INT__q_s_h_s, PRIM_INT__q_s_g_s, NULL, PRIM_INT__o_s_h_s, NULL, PRIM_INT__q_s_i_s);
1455
1456
1457 ostei_general_vrr_K(9, 0, 10, 0, 1,
1458 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1459 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);
1460
1461
1462 ostei_general_vrr_K(10, 0, 9, 0, 2,
1463 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1464 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);
1465
1466
1467 ostei_general_vrr_K(11, 0, 8, 0, 3,
1468 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1469 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);
1470
1471
1472 ostei_general_vrr_K(12, 0, 7, 0, 4,
1473 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1474 PRIM_INT__q_s_i_s, PRIM_INT__q_s_h_s, NULL, PRIM_INT__o_s_i_s, NULL, PRIM_INT__q_s_k_s);
1475
1476
1477 ostei_general_vrr1_I(13, 11,
1478 one_over_2p, a_over_p, aop_PQ, P_PA,
1479 PRIM_INT__q_s_s_s, PRIM_INT__o_s_s_s, PRIM_INT__r_s_s_s);
1480
1481
1482 ostei_general_vrr_K(13, 0, 1, 0, 10,
1483 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1484 PRIM_INT__r_s_s_s, NULL, NULL, PRIM_INT__q_s_s_s, NULL, PRIM_INT__r_s_p_s);
1485
1486
1487 ostei_general_vrr_K(13, 0, 2, 0, 9,
1488 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1489 PRIM_INT__r_s_p_s, PRIM_INT__r_s_s_s, NULL, PRIM_INT__q_s_p_s, NULL, PRIM_INT__r_s_d_s);
1490
1491
1492 ostei_general_vrr_K(13, 0, 3, 0, 8,
1493 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1494 PRIM_INT__r_s_d_s, PRIM_INT__r_s_p_s, NULL, PRIM_INT__q_s_d_s, NULL, PRIM_INT__r_s_f_s);
1495
1496
1497 ostei_general_vrr_K(13, 0, 4, 0, 7,
1498 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1499 PRIM_INT__r_s_f_s, PRIM_INT__r_s_d_s, NULL, PRIM_INT__q_s_f_s, NULL, PRIM_INT__r_s_g_s);
1500
1501
1502 ostei_general_vrr_K(13, 0, 5, 0, 6,
1503 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1504 PRIM_INT__r_s_g_s, PRIM_INT__r_s_f_s, NULL, PRIM_INT__q_s_g_s, NULL, PRIM_INT__r_s_h_s);
1505
1506
1507 ostei_general_vrr_K(13, 0, 6, 0, 5,
1508 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1509 PRIM_INT__r_s_h_s, PRIM_INT__r_s_g_s, NULL, PRIM_INT__q_s_h_s, NULL, PRIM_INT__r_s_i_s);
1510
1511
1512 ostei_general_vrr_K(10, 0, 10, 0, 1,
1513 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1514 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);
1515
1516
1517 ostei_general_vrr_K(11, 0, 9, 0, 2,
1518 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1519 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);
1520
1521
1522 ostei_general_vrr_K(12, 0, 8, 0, 3,
1523 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1524 PRIM_INT__q_s_k_s, PRIM_INT__q_s_i_s, NULL, PRIM_INT__o_s_k_s, NULL, PRIM_INT__q_s_l_s);
1525
1526
1527 ostei_general_vrr_K(13, 0, 7, 0, 4,
1528 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1529 PRIM_INT__r_s_i_s, PRIM_INT__r_s_h_s, NULL, PRIM_INT__q_s_i_s, NULL, PRIM_INT__r_s_k_s);
1530
1531
1532 ostei_general_vrr_K(11, 0, 10, 0, 1,
1533 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1534 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);
1535
1536
1537 ostei_general_vrr_K(12, 0, 9, 0, 2,
1538 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1539 PRIM_INT__q_s_l_s, PRIM_INT__q_s_k_s, NULL, PRIM_INT__o_s_l_s, NULL, PRIM_INT__q_s_m_s);
1540
1541
1542 ostei_general_vrr_K(13, 0, 8, 0, 3,
1543 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1544 PRIM_INT__r_s_k_s, PRIM_INT__r_s_i_s, NULL, PRIM_INT__q_s_k_s, NULL, PRIM_INT__r_s_l_s);
1545
1546
1547 ostei_general_vrr_K(12, 0, 10, 0, 1,
1548 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1549 PRIM_INT__q_s_m_s, PRIM_INT__q_s_l_s, NULL, PRIM_INT__o_s_m_s, NULL, PRIM_INT__q_s_n_s);
1550
1551
1552 ostei_general_vrr_K(13, 0, 9, 0, 2,
1553 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1554 PRIM_INT__r_s_l_s, PRIM_INT__r_s_k_s, NULL, PRIM_INT__q_s_l_s, NULL, PRIM_INT__r_s_m_s);
1555
1556
1557 ostei_general_vrr_K(13, 0, 10, 0, 1,
1558 one_over_2q, a_over_q, one_over_2pq, aoq_PQ, Q_PA,
1559 PRIM_INT__r_s_m_s, PRIM_INT__r_s_l_s, NULL, PRIM_INT__q_s_m_s, NULL, PRIM_INT__r_s_n_s);
1560
1561
1562
1563
1564 ////////////////////////////////////
1565 // Accumulate contracted integrals
1566 ////////////////////////////////////
1567 if(lastoffset == 0)
1568 {
1569 contract_all(1008, PRIM_INT__k_s_i_s, PRIM_PTR_INT__k_s_i_s);
1570 contract_all(1296, PRIM_INT__k_s_k_s, PRIM_PTR_INT__k_s_k_s);
1571 contract_all(1620, PRIM_INT__k_s_l_s, PRIM_PTR_INT__k_s_l_s);
1572 contract_all(1980, PRIM_INT__k_s_m_s, PRIM_PTR_INT__k_s_m_s);
1573 contract_all(2376, PRIM_INT__k_s_n_s, PRIM_PTR_INT__k_s_n_s);
1574 contract_all(1260, PRIM_INT__l_s_i_s, PRIM_PTR_INT__l_s_i_s);
1575 contract_all(1620, PRIM_INT__l_s_k_s, PRIM_PTR_INT__l_s_k_s);
1576 contract_all(2025, PRIM_INT__l_s_l_s, PRIM_PTR_INT__l_s_l_s);
1577 contract_all(2475, PRIM_INT__l_s_m_s, PRIM_PTR_INT__l_s_m_s);
1578 contract_all(2970, PRIM_INT__l_s_n_s, PRIM_PTR_INT__l_s_n_s);
1579 contract_all(1540, PRIM_INT__m_s_i_s, PRIM_PTR_INT__m_s_i_s);
1580 contract_all(1980, PRIM_INT__m_s_k_s, PRIM_PTR_INT__m_s_k_s);
1581 contract_all(2475, PRIM_INT__m_s_l_s, PRIM_PTR_INT__m_s_l_s);
1582 contract_all(3025, PRIM_INT__m_s_m_s, PRIM_PTR_INT__m_s_m_s);
1583 contract_all(3630, PRIM_INT__m_s_n_s, PRIM_PTR_INT__m_s_n_s);
1584 contract_all(1848, PRIM_INT__n_s_i_s, PRIM_PTR_INT__n_s_i_s);
1585 contract_all(2376, PRIM_INT__n_s_k_s, PRIM_PTR_INT__n_s_k_s);
1586 contract_all(2970, PRIM_INT__n_s_l_s, PRIM_PTR_INT__n_s_l_s);
1587 contract_all(3630, PRIM_INT__n_s_m_s, PRIM_PTR_INT__n_s_m_s);
1588 contract_all(4356, PRIM_INT__n_s_n_s, PRIM_PTR_INT__n_s_n_s);
1589 contract_all(2184, PRIM_INT__o_s_i_s, PRIM_PTR_INT__o_s_i_s);
1590 contract_all(2808, PRIM_INT__o_s_k_s, PRIM_PTR_INT__o_s_k_s);
1591 contract_all(3510, PRIM_INT__o_s_l_s, PRIM_PTR_INT__o_s_l_s);
1592 contract_all(4290, PRIM_INT__o_s_m_s, PRIM_PTR_INT__o_s_m_s);
1593 contract_all(5148, PRIM_INT__o_s_n_s, PRIM_PTR_INT__o_s_n_s);
1594 contract_all(2548, PRIM_INT__q_s_i_s, PRIM_PTR_INT__q_s_i_s);
1595 contract_all(3276, PRIM_INT__q_s_k_s, PRIM_PTR_INT__q_s_k_s);
1596 contract_all(4095, PRIM_INT__q_s_l_s, PRIM_PTR_INT__q_s_l_s);
1597 contract_all(5005, PRIM_INT__q_s_m_s, PRIM_PTR_INT__q_s_m_s);
1598 contract_all(6006, PRIM_INT__q_s_n_s, PRIM_PTR_INT__q_s_n_s);
1599 contract_all(2940, PRIM_INT__r_s_i_s, PRIM_PTR_INT__r_s_i_s);
1600 contract_all(3780, PRIM_INT__r_s_k_s, PRIM_PTR_INT__r_s_k_s);
1601 contract_all(4725, PRIM_INT__r_s_l_s, PRIM_PTR_INT__r_s_l_s);
1602 contract_all(5775, PRIM_INT__r_s_m_s, PRIM_PTR_INT__r_s_m_s);
1603 contract_all(6930, PRIM_INT__r_s_n_s, PRIM_PTR_INT__r_s_n_s);
1604 }
1605 else
1606 {
1607 contract(1008, shelloffsets, PRIM_INT__k_s_i_s, PRIM_PTR_INT__k_s_i_s);
1608 contract(1296, shelloffsets, PRIM_INT__k_s_k_s, PRIM_PTR_INT__k_s_k_s);
1609 contract(1620, shelloffsets, PRIM_INT__k_s_l_s, PRIM_PTR_INT__k_s_l_s);
1610 contract(1980, shelloffsets, PRIM_INT__k_s_m_s, PRIM_PTR_INT__k_s_m_s);
1611 contract(2376, shelloffsets, PRIM_INT__k_s_n_s, PRIM_PTR_INT__k_s_n_s);
1612 contract(1260, shelloffsets, PRIM_INT__l_s_i_s, PRIM_PTR_INT__l_s_i_s);
1613 contract(1620, shelloffsets, PRIM_INT__l_s_k_s, PRIM_PTR_INT__l_s_k_s);
1614 contract(2025, shelloffsets, PRIM_INT__l_s_l_s, PRIM_PTR_INT__l_s_l_s);
1615 contract(2475, shelloffsets, PRIM_INT__l_s_m_s, PRIM_PTR_INT__l_s_m_s);
1616 contract(2970, shelloffsets, PRIM_INT__l_s_n_s, PRIM_PTR_INT__l_s_n_s);
1617 contract(1540, shelloffsets, PRIM_INT__m_s_i_s, PRIM_PTR_INT__m_s_i_s);
1618 contract(1980, shelloffsets, PRIM_INT__m_s_k_s, PRIM_PTR_INT__m_s_k_s);
1619 contract(2475, shelloffsets, PRIM_INT__m_s_l_s, PRIM_PTR_INT__m_s_l_s);
1620 contract(3025, shelloffsets, PRIM_INT__m_s_m_s, PRIM_PTR_INT__m_s_m_s);
1621 contract(3630, shelloffsets, PRIM_INT__m_s_n_s, PRIM_PTR_INT__m_s_n_s);
1622 contract(1848, shelloffsets, PRIM_INT__n_s_i_s, PRIM_PTR_INT__n_s_i_s);
1623 contract(2376, shelloffsets, PRIM_INT__n_s_k_s, PRIM_PTR_INT__n_s_k_s);
1624 contract(2970, shelloffsets, PRIM_INT__n_s_l_s, PRIM_PTR_INT__n_s_l_s);
1625 contract(3630, shelloffsets, PRIM_INT__n_s_m_s, PRIM_PTR_INT__n_s_m_s);
1626 contract(4356, shelloffsets, PRIM_INT__n_s_n_s, PRIM_PTR_INT__n_s_n_s);
1627 contract(2184, shelloffsets, PRIM_INT__o_s_i_s, PRIM_PTR_INT__o_s_i_s);
1628 contract(2808, shelloffsets, PRIM_INT__o_s_k_s, PRIM_PTR_INT__o_s_k_s);
1629 contract(3510, shelloffsets, PRIM_INT__o_s_l_s, PRIM_PTR_INT__o_s_l_s);
1630 contract(4290, shelloffsets, PRIM_INT__o_s_m_s, PRIM_PTR_INT__o_s_m_s);
1631 contract(5148, shelloffsets, PRIM_INT__o_s_n_s, PRIM_PTR_INT__o_s_n_s);
1632 contract(2548, shelloffsets, PRIM_INT__q_s_i_s, PRIM_PTR_INT__q_s_i_s);
1633 contract(3276, shelloffsets, PRIM_INT__q_s_k_s, PRIM_PTR_INT__q_s_k_s);
1634 contract(4095, shelloffsets, PRIM_INT__q_s_l_s, PRIM_PTR_INT__q_s_l_s);
1635 contract(5005, shelloffsets, PRIM_INT__q_s_m_s, PRIM_PTR_INT__q_s_m_s);
1636 contract(6006, shelloffsets, PRIM_INT__q_s_n_s, PRIM_PTR_INT__q_s_n_s);
1637 contract(2940, shelloffsets, PRIM_INT__r_s_i_s, PRIM_PTR_INT__r_s_i_s);
1638 contract(3780, shelloffsets, PRIM_INT__r_s_k_s, PRIM_PTR_INT__r_s_k_s);
1639 contract(4725, shelloffsets, PRIM_INT__r_s_l_s, PRIM_PTR_INT__r_s_l_s);
1640 contract(5775, shelloffsets, PRIM_INT__r_s_m_s, PRIM_PTR_INT__r_s_m_s);
1641 contract(6930, shelloffsets, PRIM_INT__r_s_n_s, PRIM_PTR_INT__r_s_n_s);
1642 PRIM_PTR_INT__k_s_i_s += lastoffset*1008;
1643 PRIM_PTR_INT__k_s_k_s += lastoffset*1296;
1644 PRIM_PTR_INT__k_s_l_s += lastoffset*1620;
1645 PRIM_PTR_INT__k_s_m_s += lastoffset*1980;
1646 PRIM_PTR_INT__k_s_n_s += lastoffset*2376;
1647 PRIM_PTR_INT__l_s_i_s += lastoffset*1260;
1648 PRIM_PTR_INT__l_s_k_s += lastoffset*1620;
1649 PRIM_PTR_INT__l_s_l_s += lastoffset*2025;
1650 PRIM_PTR_INT__l_s_m_s += lastoffset*2475;
1651 PRIM_PTR_INT__l_s_n_s += lastoffset*2970;
1652 PRIM_PTR_INT__m_s_i_s += lastoffset*1540;
1653 PRIM_PTR_INT__m_s_k_s += lastoffset*1980;
1654 PRIM_PTR_INT__m_s_l_s += lastoffset*2475;
1655 PRIM_PTR_INT__m_s_m_s += lastoffset*3025;
1656 PRIM_PTR_INT__m_s_n_s += lastoffset*3630;
1657 PRIM_PTR_INT__n_s_i_s += lastoffset*1848;
1658 PRIM_PTR_INT__n_s_k_s += lastoffset*2376;
1659 PRIM_PTR_INT__n_s_l_s += lastoffset*2970;
1660 PRIM_PTR_INT__n_s_m_s += lastoffset*3630;
1661 PRIM_PTR_INT__n_s_n_s += lastoffset*4356;
1662 PRIM_PTR_INT__o_s_i_s += lastoffset*2184;
1663 PRIM_PTR_INT__o_s_k_s += lastoffset*2808;
1664 PRIM_PTR_INT__o_s_l_s += lastoffset*3510;
1665 PRIM_PTR_INT__o_s_m_s += lastoffset*4290;
1666 PRIM_PTR_INT__o_s_n_s += lastoffset*5148;
1667 PRIM_PTR_INT__q_s_i_s += lastoffset*2548;
1668 PRIM_PTR_INT__q_s_k_s += lastoffset*3276;
1669 PRIM_PTR_INT__q_s_l_s += lastoffset*4095;
1670 PRIM_PTR_INT__q_s_m_s += lastoffset*5005;
1671 PRIM_PTR_INT__q_s_n_s += lastoffset*6006;
1672 PRIM_PTR_INT__r_s_i_s += lastoffset*2940;
1673 PRIM_PTR_INT__r_s_k_s += lastoffset*3780;
1674 PRIM_PTR_INT__r_s_l_s += lastoffset*4725;
1675 PRIM_PTR_INT__r_s_m_s += lastoffset*5775;
1676 PRIM_PTR_INT__r_s_n_s += lastoffset*6930;
1677 }
1678
1679 } // close loop over j
1680 } // close loop over i
1681
1682 //Advance to the next batch
1683 jstart = SIMINT_SIMD_ROUND(jend);
1684
1685 //////////////////////////////////////////////
1686 // Contracted integrals: Horizontal recurrance
1687 //////////////////////////////////////////////
1688
1689
1690 const double hAB[3] = { P.AB_x[ab], P.AB_y[ab], P.AB_z[ab] };
1691
1692
1693 for(abcd = 0; abcd < nshellbatch; ++abcd, ++real_abcd)
1694 {
1695 const double hCD[3] = { Q.AB_x[cd+abcd], Q.AB_y[cd+abcd], Q.AB_z[cd+abcd] };
1696
1697 // set up HRR pointers
1698 double const * restrict HRR_INT__k_s_i_s = INT__k_s_i_s + abcd * 1008;
1699 double const * restrict HRR_INT__k_s_k_s = INT__k_s_k_s + abcd * 1296;
1700 double const * restrict HRR_INT__k_s_l_s = INT__k_s_l_s + abcd * 1620;
1701 double const * restrict HRR_INT__k_s_m_s = INT__k_s_m_s + abcd * 1980;
1702 double const * restrict HRR_INT__k_s_n_s = INT__k_s_n_s + abcd * 2376;
1703 double const * restrict HRR_INT__l_s_i_s = INT__l_s_i_s + abcd * 1260;
1704 double const * restrict HRR_INT__l_s_k_s = INT__l_s_k_s + abcd * 1620;
1705 double const * restrict HRR_INT__l_s_l_s = INT__l_s_l_s + abcd * 2025;
1706 double const * restrict HRR_INT__l_s_m_s = INT__l_s_m_s + abcd * 2475;
1707 double const * restrict HRR_INT__l_s_n_s = INT__l_s_n_s + abcd * 2970;
1708 double const * restrict HRR_INT__m_s_i_s = INT__m_s_i_s + abcd * 1540;
1709 double const * restrict HRR_INT__m_s_k_s = INT__m_s_k_s + abcd * 1980;
1710 double const * restrict HRR_INT__m_s_l_s = INT__m_s_l_s + abcd * 2475;
1711 double const * restrict HRR_INT__m_s_m_s = INT__m_s_m_s + abcd * 3025;
1712 double const * restrict HRR_INT__m_s_n_s = INT__m_s_n_s + abcd * 3630;
1713 double const * restrict HRR_INT__n_s_i_s = INT__n_s_i_s + abcd * 1848;
1714 double const * restrict HRR_INT__n_s_k_s = INT__n_s_k_s + abcd * 2376;
1715 double const * restrict HRR_INT__n_s_l_s = INT__n_s_l_s + abcd * 2970;
1716 double const * restrict HRR_INT__n_s_m_s = INT__n_s_m_s + abcd * 3630;
1717 double const * restrict HRR_INT__n_s_n_s = INT__n_s_n_s + abcd * 4356;
1718 double const * restrict HRR_INT__o_s_i_s = INT__o_s_i_s + abcd * 2184;
1719 double const * restrict HRR_INT__o_s_k_s = INT__o_s_k_s + abcd * 2808;
1720 double const * restrict HRR_INT__o_s_l_s = INT__o_s_l_s + abcd * 3510;
1721 double const * restrict HRR_INT__o_s_m_s = INT__o_s_m_s + abcd * 4290;
1722 double const * restrict HRR_INT__o_s_n_s = INT__o_s_n_s + abcd * 5148;
1723 double const * restrict HRR_INT__q_s_i_s = INT__q_s_i_s + abcd * 2548;
1724 double const * restrict HRR_INT__q_s_k_s = INT__q_s_k_s + abcd * 3276;
1725 double const * restrict HRR_INT__q_s_l_s = INT__q_s_l_s + abcd * 4095;
1726 double const * restrict HRR_INT__q_s_m_s = INT__q_s_m_s + abcd * 5005;
1727 double const * restrict HRR_INT__q_s_n_s = INT__q_s_n_s + abcd * 6006;
1728 double const * restrict HRR_INT__r_s_i_s = INT__r_s_i_s + abcd * 2940;
1729 double const * restrict HRR_INT__r_s_k_s = INT__r_s_k_s + abcd * 3780;
1730 double const * restrict HRR_INT__r_s_l_s = INT__r_s_l_s + abcd * 4725;
1731 double const * restrict HRR_INT__r_s_m_s = INT__r_s_m_s + abcd * 5775;
1732 double const * restrict HRR_INT__r_s_n_s = INT__r_s_n_s + abcd * 6930;
1733 double * restrict HRR_INT__k_i_i_g = INT__k_i_i_g + real_abcd * 423360;
1734
1735 // form INT__k_p_i_s
1736 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);
1737
1738 // form INT__k_p_k_s
1739 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);
1740
1741 // form INT__k_p_l_s
1742 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);
1743
1744 // form INT__k_p_m_s
1745 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);
1746
1747 // form INT__k_p_n_s
1748 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);
1749
1750 // form INT__l_p_i_s
1751 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);
1752
1753 // form INT__l_p_k_s
1754 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);
1755
1756 // form INT__l_p_l_s
1757 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);
1758
1759 // form INT__l_p_m_s
1760 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);
1761
1762 // form INT__l_p_n_s
1763 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);
1764
1765 // form INT__m_p_i_s
1766 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);
1767
1768 // form INT__m_p_k_s
1769 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);
1770
1771 // form INT__m_p_l_s
1772 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);
1773
1774 // form INT__m_p_m_s
1775 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);
1776
1777 // form INT__m_p_n_s
1778 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);
1779
1780 // form INT__n_p_i_s
1781 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);
1782
1783 // form INT__n_p_k_s
1784 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);
1785
1786 // form INT__n_p_l_s
1787 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);
1788
1789 // form INT__n_p_m_s
1790 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);
1791
1792 // form INT__n_p_n_s
1793 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);
1794
1795 // form INT__o_p_i_s
1796 ostei_general_hrr_J(11, 1, 6, 0, hAB, HRR_INT__q_s_i_s, HRR_INT__o_s_i_s, HRR_INT__o_p_i_s);
1797
1798 // form INT__o_p_k_s
1799 ostei_general_hrr_J(11, 1, 7, 0, hAB, HRR_INT__q_s_k_s, HRR_INT__o_s_k_s, HRR_INT__o_p_k_s);
1800
1801 // form INT__o_p_l_s
1802 ostei_general_hrr_J(11, 1, 8, 0, hAB, HRR_INT__q_s_l_s, HRR_INT__o_s_l_s, HRR_INT__o_p_l_s);
1803
1804 // form INT__o_p_m_s
1805 ostei_general_hrr_J(11, 1, 9, 0, hAB, HRR_INT__q_s_m_s, HRR_INT__o_s_m_s, HRR_INT__o_p_m_s);
1806
1807 // form INT__o_p_n_s
1808 ostei_general_hrr_J(11, 1, 10, 0, hAB, HRR_INT__q_s_n_s, HRR_INT__o_s_n_s, HRR_INT__o_p_n_s);
1809
1810 // form INT__q_p_i_s
1811 ostei_general_hrr_J(12, 1, 6, 0, hAB, HRR_INT__r_s_i_s, HRR_INT__q_s_i_s, HRR_INT__q_p_i_s);
1812
1813 // form INT__q_p_k_s
1814 ostei_general_hrr_J(12, 1, 7, 0, hAB, HRR_INT__r_s_k_s, HRR_INT__q_s_k_s, HRR_INT__q_p_k_s);
1815
1816 // form INT__q_p_l_s
1817 ostei_general_hrr_J(12, 1, 8, 0, hAB, HRR_INT__r_s_l_s, HRR_INT__q_s_l_s, HRR_INT__q_p_l_s);
1818
1819 // form INT__q_p_m_s
1820 ostei_general_hrr_J(12, 1, 9, 0, hAB, HRR_INT__r_s_m_s, HRR_INT__q_s_m_s, HRR_INT__q_p_m_s);
1821
1822 // form INT__q_p_n_s
1823 ostei_general_hrr_J(12, 1, 10, 0, hAB, HRR_INT__r_s_n_s, HRR_INT__q_s_n_s, HRR_INT__q_p_n_s);
1824
1825 // form INT__k_d_i_s
1826 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);
1827
1828 // form INT__k_d_k_s
1829 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);
1830
1831 // form INT__k_d_l_s
1832 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);
1833
1834 // form INT__k_d_m_s
1835 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);
1836
1837 // form INT__k_d_n_s
1838 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);
1839
1840 // form INT__l_d_i_s
1841 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);
1842
1843 // form INT__l_d_k_s
1844 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);
1845
1846 // form INT__l_d_l_s
1847 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);
1848
1849 // form INT__l_d_m_s
1850 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);
1851
1852 // form INT__l_d_n_s
1853 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);
1854
1855 // form INT__m_d_i_s
1856 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);
1857
1858 // form INT__m_d_k_s
1859 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);
1860
1861 // form INT__m_d_l_s
1862 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);
1863
1864 // form INT__m_d_m_s
1865 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);
1866
1867 // form INT__m_d_n_s
1868 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);
1869
1870 // form INT__n_d_i_s
1871 ostei_general_hrr_J(10, 2, 6, 0, hAB, HRR_INT__o_p_i_s, HRR_INT__n_p_i_s, HRR_INT__n_d_i_s);
1872
1873 // form INT__n_d_k_s
1874 ostei_general_hrr_J(10, 2, 7, 0, hAB, HRR_INT__o_p_k_s, HRR_INT__n_p_k_s, HRR_INT__n_d_k_s);
1875
1876 // form INT__n_d_l_s
1877 ostei_general_hrr_J(10, 2, 8, 0, hAB, HRR_INT__o_p_l_s, HRR_INT__n_p_l_s, HRR_INT__n_d_l_s);
1878
1879 // form INT__n_d_m_s
1880 ostei_general_hrr_J(10, 2, 9, 0, hAB, HRR_INT__o_p_m_s, HRR_INT__n_p_m_s, HRR_INT__n_d_m_s);
1881
1882 // form INT__n_d_n_s
1883 ostei_general_hrr_J(10, 2, 10, 0, hAB, HRR_INT__o_p_n_s, HRR_INT__n_p_n_s, HRR_INT__n_d_n_s);
1884
1885 // form INT__o_d_i_s
1886 ostei_general_hrr_J(11, 2, 6, 0, hAB, HRR_INT__q_p_i_s, HRR_INT__o_p_i_s, HRR_INT__o_d_i_s);
1887
1888 // form INT__o_d_k_s
1889 ostei_general_hrr_J(11, 2, 7, 0, hAB, HRR_INT__q_p_k_s, HRR_INT__o_p_k_s, HRR_INT__o_d_k_s);
1890
1891 // form INT__o_d_l_s
1892 ostei_general_hrr_J(11, 2, 8, 0, hAB, HRR_INT__q_p_l_s, HRR_INT__o_p_l_s, HRR_INT__o_d_l_s);
1893
1894 // form INT__o_d_m_s
1895 ostei_general_hrr_J(11, 2, 9, 0, hAB, HRR_INT__q_p_m_s, HRR_INT__o_p_m_s, HRR_INT__o_d_m_s);
1896
1897 // form INT__o_d_n_s
1898 ostei_general_hrr_J(11, 2, 10, 0, hAB, HRR_INT__q_p_n_s, HRR_INT__o_p_n_s, HRR_INT__o_d_n_s);
1899
1900 // form INT__k_f_i_s
1901 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);
1902
1903 // form INT__k_f_k_s
1904 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);
1905
1906 // form INT__k_f_l_s
1907 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);
1908
1909 // form INT__k_f_m_s
1910 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);
1911
1912 // form INT__k_f_n_s
1913 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);
1914
1915 // form INT__l_f_i_s
1916 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);
1917
1918 // form INT__l_f_k_s
1919 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);
1920
1921 // form INT__l_f_l_s
1922 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);
1923
1924 // form INT__l_f_m_s
1925 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);
1926
1927 // form INT__l_f_n_s
1928 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);
1929
1930 // form INT__m_f_i_s
1931 ostei_general_hrr_J(9, 3, 6, 0, hAB, HRR_INT__n_d_i_s, HRR_INT__m_d_i_s, HRR_INT__m_f_i_s);
1932
1933 // form INT__m_f_k_s
1934 ostei_general_hrr_J(9, 3, 7, 0, hAB, HRR_INT__n_d_k_s, HRR_INT__m_d_k_s, HRR_INT__m_f_k_s);
1935
1936 // form INT__m_f_l_s
1937 ostei_general_hrr_J(9, 3, 8, 0, hAB, HRR_INT__n_d_l_s, HRR_INT__m_d_l_s, HRR_INT__m_f_l_s);
1938
1939 // form INT__m_f_m_s
1940 ostei_general_hrr_J(9, 3, 9, 0, hAB, HRR_INT__n_d_m_s, HRR_INT__m_d_m_s, HRR_INT__m_f_m_s);
1941
1942 // form INT__m_f_n_s
1943 ostei_general_hrr_J(9, 3, 10, 0, hAB, HRR_INT__n_d_n_s, HRR_INT__m_d_n_s, HRR_INT__m_f_n_s);
1944
1945 // form INT__n_f_i_s
1946 ostei_general_hrr_J(10, 3, 6, 0, hAB, HRR_INT__o_d_i_s, HRR_INT__n_d_i_s, HRR_INT__n_f_i_s);
1947
1948 // form INT__n_f_k_s
1949 ostei_general_hrr_J(10, 3, 7, 0, hAB, HRR_INT__o_d_k_s, HRR_INT__n_d_k_s, HRR_INT__n_f_k_s);
1950
1951 // form INT__n_f_l_s
1952 ostei_general_hrr_J(10, 3, 8, 0, hAB, HRR_INT__o_d_l_s, HRR_INT__n_d_l_s, HRR_INT__n_f_l_s);
1953
1954 // form INT__n_f_m_s
1955 ostei_general_hrr_J(10, 3, 9, 0, hAB, HRR_INT__o_d_m_s, HRR_INT__n_d_m_s, HRR_INT__n_f_m_s);
1956
1957 // form INT__n_f_n_s
1958 ostei_general_hrr_J(10, 3, 10, 0, hAB, HRR_INT__o_d_n_s, HRR_INT__n_d_n_s, HRR_INT__n_f_n_s);
1959
1960 // form INT__k_g_i_s
1961 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);
1962
1963 // form INT__k_g_k_s
1964 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);
1965
1966 // form INT__k_g_l_s
1967 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);
1968
1969 // form INT__k_g_m_s
1970 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);
1971
1972 // form INT__k_g_n_s
1973 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);
1974
1975 // form INT__l_g_i_s
1976 ostei_general_hrr_J(8, 4, 6, 0, hAB, HRR_INT__m_f_i_s, HRR_INT__l_f_i_s, HRR_INT__l_g_i_s);
1977
1978 // form INT__l_g_k_s
1979 ostei_general_hrr_J(8, 4, 7, 0, hAB, HRR_INT__m_f_k_s, HRR_INT__l_f_k_s, HRR_INT__l_g_k_s);
1980
1981 // form INT__l_g_l_s
1982 ostei_general_hrr_J(8, 4, 8, 0, hAB, HRR_INT__m_f_l_s, HRR_INT__l_f_l_s, HRR_INT__l_g_l_s);
1983
1984 // form INT__l_g_m_s
1985 ostei_general_hrr_J(8, 4, 9, 0, hAB, HRR_INT__m_f_m_s, HRR_INT__l_f_m_s, HRR_INT__l_g_m_s);
1986
1987 // form INT__l_g_n_s
1988 ostei_general_hrr_J(8, 4, 10, 0, hAB, HRR_INT__m_f_n_s, HRR_INT__l_f_n_s, HRR_INT__l_g_n_s);
1989
1990 // form INT__m_g_i_s
1991 ostei_general_hrr_J(9, 4, 6, 0, hAB, HRR_INT__n_f_i_s, HRR_INT__m_f_i_s, HRR_INT__m_g_i_s);
1992
1993 // form INT__m_g_k_s
1994 ostei_general_hrr_J(9, 4, 7, 0, hAB, HRR_INT__n_f_k_s, HRR_INT__m_f_k_s, HRR_INT__m_g_k_s);
1995
1996 // form INT__m_g_l_s
1997 ostei_general_hrr_J(9, 4, 8, 0, hAB, HRR_INT__n_f_l_s, HRR_INT__m_f_l_s, HRR_INT__m_g_l_s);
1998
1999 // form INT__m_g_m_s
2000 ostei_general_hrr_J(9, 4, 9, 0, hAB, HRR_INT__n_f_m_s, HRR_INT__m_f_m_s, HRR_INT__m_g_m_s);
2001
2002 // form INT__m_g_n_s
2003 ostei_general_hrr_J(9, 4, 10, 0, hAB, HRR_INT__n_f_n_s, HRR_INT__m_f_n_s, HRR_INT__m_g_n_s);
2004
2005 // form INT__k_h_i_s
2006 ostei_general_hrr_J(7, 5, 6, 0, hAB, HRR_INT__l_g_i_s, HRR_INT__k_g_i_s, HRR_INT__k_h_i_s);
2007
2008 // form INT__k_h_k_s
2009 ostei_general_hrr_J(7, 5, 7, 0, hAB, HRR_INT__l_g_k_s, HRR_INT__k_g_k_s, HRR_INT__k_h_k_s);
2010
2011 // form INT__k_h_l_s
2012 ostei_general_hrr_J(7, 5, 8, 0, hAB, HRR_INT__l_g_l_s, HRR_INT__k_g_l_s, HRR_INT__k_h_l_s);
2013
2014 // form INT__k_h_m_s
2015 ostei_general_hrr_J(7, 5, 9, 0, hAB, HRR_INT__l_g_m_s, HRR_INT__k_g_m_s, HRR_INT__k_h_m_s);
2016
2017 // form INT__k_h_n_s
2018 ostei_general_hrr_J(7, 5, 10, 0, hAB, HRR_INT__l_g_n_s, HRR_INT__k_g_n_s, HRR_INT__k_h_n_s);
2019
2020 // form INT__l_h_i_s
2021 ostei_general_hrr_J(8, 5, 6, 0, hAB, HRR_INT__m_g_i_s, HRR_INT__l_g_i_s, HRR_INT__l_h_i_s);
2022
2023 // form INT__l_h_k_s
2024 ostei_general_hrr_J(8, 5, 7, 0, hAB, HRR_INT__m_g_k_s, HRR_INT__l_g_k_s, HRR_INT__l_h_k_s);
2025
2026 // form INT__l_h_l_s
2027 ostei_general_hrr_J(8, 5, 8, 0, hAB, HRR_INT__m_g_l_s, HRR_INT__l_g_l_s, HRR_INT__l_h_l_s);
2028
2029 // form INT__l_h_m_s
2030 ostei_general_hrr_J(8, 5, 9, 0, hAB, HRR_INT__m_g_m_s, HRR_INT__l_g_m_s, HRR_INT__l_h_m_s);
2031
2032 // form INT__l_h_n_s
2033 ostei_general_hrr_J(8, 5, 10, 0, hAB, HRR_INT__m_g_n_s, HRR_INT__l_g_n_s, HRR_INT__l_h_n_s);
2034
2035 // form INT__k_i_i_s
2036 ostei_general_hrr_J(7, 6, 6, 0, hAB, HRR_INT__l_h_i_s, HRR_INT__k_h_i_s, HRR_INT__k_i_i_s);
2037
2038 // form INT__k_i_k_s
2039 ostei_general_hrr_J(7, 6, 7, 0, hAB, HRR_INT__l_h_k_s, HRR_INT__k_h_k_s, HRR_INT__k_i_k_s);
2040
2041 // form INT__k_i_l_s
2042 ostei_general_hrr_J(7, 6, 8, 0, hAB, HRR_INT__l_h_l_s, HRR_INT__k_h_l_s, HRR_INT__k_i_l_s);
2043
2044 // form INT__k_i_m_s
2045 ostei_general_hrr_J(7, 6, 9, 0, hAB, HRR_INT__l_h_m_s, HRR_INT__k_h_m_s, HRR_INT__k_i_m_s);
2046
2047 // form INT__k_i_n_s
2048 ostei_general_hrr_J(7, 6, 10, 0, hAB, HRR_INT__l_h_n_s, HRR_INT__k_h_n_s, HRR_INT__k_i_n_s);
2049
2050 // form INT__k_i_i_p
2051 ostei_general_hrr_L(7, 6, 6, 1, hCD, HRR_INT__k_i_k_s, HRR_INT__k_i_i_s, HRR_INT__k_i_i_p);
2052
2053 // form INT__k_i_k_p
2054 ostei_general_hrr_L(7, 6, 7, 1, hCD, HRR_INT__k_i_l_s, HRR_INT__k_i_k_s, HRR_INT__k_i_k_p);
2055
2056 // form INT__k_i_l_p
2057 ostei_general_hrr_L(7, 6, 8, 1, hCD, HRR_INT__k_i_m_s, HRR_INT__k_i_l_s, HRR_INT__k_i_l_p);
2058
2059 // form INT__k_i_m_p
2060 ostei_general_hrr_L(7, 6, 9, 1, hCD, HRR_INT__k_i_n_s, HRR_INT__k_i_m_s, HRR_INT__k_i_m_p);
2061
2062 // form INT__k_i_i_d
2063 ostei_general_hrr_L(7, 6, 6, 2, hCD, HRR_INT__k_i_k_p, HRR_INT__k_i_i_p, HRR_INT__k_i_i_d);
2064
2065 // form INT__k_i_k_d
2066 ostei_general_hrr_L(7, 6, 7, 2, hCD, HRR_INT__k_i_l_p, HRR_INT__k_i_k_p, HRR_INT__k_i_k_d);
2067
2068 // form INT__k_i_l_d
2069 ostei_general_hrr_L(7, 6, 8, 2, hCD, HRR_INT__k_i_m_p, HRR_INT__k_i_l_p, HRR_INT__k_i_l_d);
2070
2071 // form INT__k_i_i_f
2072 ostei_general_hrr_L(7, 6, 6, 3, hCD, HRR_INT__k_i_k_d, HRR_INT__k_i_i_d, HRR_INT__k_i_i_f);
2073
2074 // form INT__k_i_k_f
2075 ostei_general_hrr_L(7, 6, 7, 3, hCD, HRR_INT__k_i_l_d, HRR_INT__k_i_k_d, HRR_INT__k_i_k_f);
2076
2077 // form INT__k_i_i_g
2078 ostei_general_hrr_L(7, 6, 6, 4, hCD, HRR_INT__k_i_k_f, HRR_INT__k_i_i_f, HRR_INT__k_i_i_g);
2079
2080
2081 } // close HRR loop
2082
2083
2084 } // close loop cdbatch
2085
2086 istart = iend;
2087 } // close loop over ab
2088
2089 return P.nshell12_clip * Q.nshell12_clip;
2090 }
2091
ostei_i_k_i_g(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__i_k_i_g)2092 int ostei_i_k_i_g(struct simint_multi_shellpair const P,
2093 struct simint_multi_shellpair const Q,
2094 double screen_tol,
2095 double * const restrict work,
2096 double * const restrict INT__i_k_i_g)
2097 {
2098 double P_AB[3*P.nshell12];
2099 struct simint_multi_shellpair P_tmp = P;
2100 P_tmp.PA_x = P.PB_x; P_tmp.PA_y = P.PB_y; P_tmp.PA_z = P.PB_z;
2101 P_tmp.PB_x = P.PA_x; P_tmp.PB_y = P.PA_y; P_tmp.PB_z = P.PA_z;
2102 P_tmp.AB_x = P_AB;
2103 P_tmp.AB_y = P_AB + P.nshell12;
2104 P_tmp.AB_z = P_AB + 2*P.nshell12;
2105
2106 for(int i = 0; i < P.nshell12; i++)
2107 {
2108 P_tmp.AB_x[i] = -P.AB_x[i];
2109 P_tmp.AB_y[i] = -P.AB_y[i];
2110 P_tmp.AB_z[i] = -P.AB_z[i];
2111 }
2112
2113 int ret = ostei_k_i_i_g(P_tmp, Q, screen_tol, work, INT__i_k_i_g);
2114 double buffer[423360] SIMINT_ALIGN_ARRAY_DBL;
2115
2116 for(int q = 0; q < ret; q++)
2117 {
2118 int idx = 0;
2119 for(int a = 0; a < 28; ++a)
2120 for(int b = 0; b < 36; ++b)
2121 for(int c = 0; c < 28; ++c)
2122 for(int d = 0; d < 15; ++d)
2123 buffer[idx++] = INT__i_k_i_g[q*423360+b*11760+a*420+c*15+d];
2124
2125 memcpy(INT__i_k_i_g+q*423360, buffer, 423360*sizeof(double));
2126 }
2127
2128 return ret;
2129 }
2130
ostei_k_i_g_i(struct simint_multi_shellpair const P,struct simint_multi_shellpair const Q,double screen_tol,double * const restrict work,double * const restrict INT__k_i_g_i)2131 int ostei_k_i_g_i(struct simint_multi_shellpair const P,
2132 struct simint_multi_shellpair const Q,
2133 double screen_tol,
2134 double * const restrict work,
2135 double * const restrict INT__k_i_g_i)
2136 {
2137 double Q_AB[3*Q.nshell12];
2138 struct simint_multi_shellpair Q_tmp = Q;
2139 Q_tmp.PA_x = Q.PB_x; Q_tmp.PA_y = Q.PB_y; Q_tmp.PA_z = Q.PB_z;
2140 Q_tmp.PB_x = Q.PA_x; Q_tmp.PB_y = Q.PA_y; Q_tmp.PB_z = Q.PA_z;
2141 Q_tmp.AB_x = Q_AB;
2142 Q_tmp.AB_y = Q_AB + Q.nshell12;
2143 Q_tmp.AB_z = Q_AB + 2*Q.nshell12;
2144
2145 for(int i = 0; i < Q.nshell12; i++)
2146 {
2147 Q_tmp.AB_x[i] = -Q.AB_x[i];
2148 Q_tmp.AB_y[i] = -Q.AB_y[i];
2149 Q_tmp.AB_z[i] = -Q.AB_z[i];
2150 }
2151
2152 int ret = ostei_k_i_i_g(P, Q_tmp, screen_tol, work, INT__k_i_g_i);
2153 double buffer[423360] SIMINT_ALIGN_ARRAY_DBL;
2154
2155 for(int q = 0; q < ret; q++)
2156 {
2157 int idx = 0;
2158 for(int a = 0; a < 36; ++a)
2159 for(int b = 0; b < 28; ++b)
2160 for(int c = 0; c < 15; ++c)
2161 for(int d = 0; d < 28; ++d)
2162 buffer[idx++] = INT__k_i_g_i[q*423360+a*11760+b*420+d*15+c];
2163
2164 memcpy(INT__k_i_g_i+q*423360, buffer, 423360*sizeof(double));
2165 }
2166
2167 return ret;
2168 }
2169
ostei_i_k_g_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_k_g_i)2170 int ostei_i_k_g_i(struct simint_multi_shellpair const P,
2171 struct simint_multi_shellpair const Q,
2172 double screen_tol,
2173 double * const restrict work,
2174 double * const restrict INT__i_k_g_i)
2175 {
2176 double P_AB[3*P.nshell12];
2177 struct simint_multi_shellpair P_tmp = P;
2178 P_tmp.PA_x = P.PB_x; P_tmp.PA_y = P.PB_y; P_tmp.PA_z = P.PB_z;
2179 P_tmp.PB_x = P.PA_x; P_tmp.PB_y = P.PA_y; P_tmp.PB_z = P.PA_z;
2180 P_tmp.AB_x = P_AB;
2181 P_tmp.AB_y = P_AB + P.nshell12;
2182 P_tmp.AB_z = P_AB + 2*P.nshell12;
2183
2184 for(int i = 0; i < P.nshell12; i++)
2185 {
2186 P_tmp.AB_x[i] = -P.AB_x[i];
2187 P_tmp.AB_y[i] = -P.AB_y[i];
2188 P_tmp.AB_z[i] = -P.AB_z[i];
2189 }
2190
2191 double Q_AB[3*Q.nshell12];
2192 struct simint_multi_shellpair Q_tmp = Q;
2193 Q_tmp.PA_x = Q.PB_x; Q_tmp.PA_y = Q.PB_y; Q_tmp.PA_z = Q.PB_z;
2194 Q_tmp.PB_x = Q.PA_x; Q_tmp.PB_y = Q.PA_y; Q_tmp.PB_z = Q.PA_z;
2195 Q_tmp.AB_x = Q_AB;
2196 Q_tmp.AB_y = Q_AB + Q.nshell12;
2197 Q_tmp.AB_z = Q_AB + 2*Q.nshell12;
2198
2199 for(int i = 0; i < Q.nshell12; i++)
2200 {
2201 Q_tmp.AB_x[i] = -Q.AB_x[i];
2202 Q_tmp.AB_y[i] = -Q.AB_y[i];
2203 Q_tmp.AB_z[i] = -Q.AB_z[i];
2204 }
2205
2206 int ret = ostei_k_i_i_g(P_tmp, Q_tmp, screen_tol, work, INT__i_k_g_i);
2207 double buffer[423360] SIMINT_ALIGN_ARRAY_DBL;
2208
2209 for(int q = 0; q < ret; q++)
2210 {
2211 int idx = 0;
2212 for(int a = 0; a < 28; ++a)
2213 for(int b = 0; b < 36; ++b)
2214 for(int c = 0; c < 15; ++c)
2215 for(int d = 0; d < 28; ++d)
2216 buffer[idx++] = INT__i_k_g_i[q*423360+b*11760+a*420+d*15+c];
2217
2218 memcpy(INT__i_k_g_i+q*423360, buffer, 423360*sizeof(double));
2219 }
2220
2221 return ret;
2222 }
2223
2224