proteus  1.8.1
C/C++/Fortran libraries
equivalent_polynomials_coefficients.h
Go to the documentation of this file.
1 #ifndef EQUIVALENT_POLYNOMIALS_COEFFICIENTS_H
2 #define EQUIVALENT_POLYNOMIALS_COEFFICIENTS_H
3 
5 {
6  template<int nSpace, int nP>
7  inline void _set_Ainv(double* Ainv);
8 
9  template<int nSpace, int nP>
10  inline void _calculate_b(double* X_0, double* b_H, double* b_ImH, double* b_dH);
11 
12  template<>
13  inline void _set_Ainv<1,1>(double* Ainv)
14  {
15  Ainv[0] = 4.000000000000001;
16  Ainv[1] = -6.000000000000002;
17  Ainv[2] = -6.000000000000002;
18  Ainv[3] = 12.000000000000004;
19  }
20 
21  template<>
22  inline void _calculate_b<1,1>(double* X_0, double* b_H, double* b_ImH, double* b_dH)
23  {
24  const double x_0(X_0[0]);
25  b_H[0] = 1 - x_0;
26  b_ImH[0] = x_0;
27  b_dH[0] = -1;
28  b_H[1] = 1.0/2.0 - 1.0/2.0*std::pow(x_0, 2);
29  b_ImH[1] = (1.0/2.0)*std::pow(x_0, 2);
30  b_dH[1] = -x_0;
31  }
32 
33  template<>
34  inline void _set_Ainv<1,2>(double* Ainv)
35  {
36  Ainv[0] = 9.000000000000028;
37  Ainv[1] = -36.00000000000013;
38  Ainv[2] = 30.000000000000128;
39  Ainv[3] = -36.00000000000014;
40  Ainv[4] = 192.00000000000068;
41  Ainv[5] = -180.00000000000065;
42  Ainv[6] = 30.00000000000013;
43  Ainv[7] = -180.00000000000065;
44  Ainv[8] = 180.0000000000006;
45  }
46 
47  template<>
48  inline void _calculate_b<1,2>(double* X_0, double* b_H, double* b_ImH, double* b_dH)
49  {
50  const double x_0(X_0[0]);
51  b_H[0] = 1 - x_0;
52  b_ImH[0] = x_0;
53  b_dH[0] = -1;
54  b_H[1] = 1.0/2.0 - 1.0/2.0*std::pow(x_0, 2);
55  b_ImH[1] = (1.0/2.0)*std::pow(x_0, 2);
56  b_dH[1] = -x_0;
57  b_H[2] = 1.0/3.0 - 1.0/3.0*std::pow(x_0, 3);
58  b_ImH[2] = (1.0/3.0)*std::pow(x_0, 3);
59  b_dH[2] = -std::pow(x_0, 2);
60  }
61 
62  template<>
63  inline void _set_Ainv<1,3>(double* Ainv)
64  {
65  Ainv[0] = 16.000000000000554;
66  Ainv[1] = -120.00000000000608;
67  Ainv[2] = 240.00000000001478;
68  Ainv[3] = -140.00000000000978;
69  Ainv[4] = -120.00000000000614;
70  Ainv[5] = 1200.0000000000693;
71  Ainv[6] = -2700.0000000001687;
72  Ainv[7] = 1680.0000000001116;
73  Ainv[8] = 240.00000000001504;
74  Ainv[9] = -2700.000000000171;
75  Ainv[10] = 6480.000000000418;
76  Ainv[11] = -4200.0000000002765;
77  Ainv[12] = -140.00000000000995;
78  Ainv[13] = 1680.0000000001135;
79  Ainv[14] = -4200.000000000278;
80  Ainv[15] = 2800.000000000184;
81  }
82 
83  template<>
84  inline void _calculate_b<1,3>(double* X_0, double* b_H, double* b_ImH, double* b_dH)
85  {
86  const double x_0(X_0[0]);
87  b_H[0] = 1 - x_0;
88  b_ImH[0] = x_0;
89  b_dH[0] = -1;
90  b_H[1] = 1.0/2.0 - 1.0/2.0*std::pow(x_0, 2);
91  b_ImH[1] = (1.0/2.0)*std::pow(x_0, 2);
92  b_dH[1] = -x_0;
93  b_H[2] = 1.0/3.0 - 1.0/3.0*std::pow(x_0, 3);
94  b_ImH[2] = (1.0/3.0)*std::pow(x_0, 3);
95  b_dH[2] = -std::pow(x_0, 2);
96  b_H[3] = 1.0/4.0 - 1.0/4.0*std::pow(x_0, 4);
97  b_ImH[3] = (1.0/4.0)*std::pow(x_0, 4);
98  b_dH[3] = -std::pow(x_0, 3);
99  }
100 
101  template<>
102  inline void _set_Ainv<1,4>(double* Ainv)
103  {
104  Ainv[0] = 25.000000000071026;
105  Ainv[1] = -300.00000000135424;
106  Ainv[2] = 1050.0000000059172;
107  Ainv[3] = -1400.000000008984;
108  Ainv[4] = 630.0000000044129;
109  Ainv[5] = -300.0000000013932;
110  Ainv[6] = 4800.000000026637;
111  Ainv[7] = -18900.00000011623;
112  Ainv[8] = 26880.000000176693;
113  Ainv[9] = -12600.000000086835;
114  Ainv[10] = 1050.0000000061816;
115  Ainv[11] = -18900.000000118253;
116  Ainv[12] = 79380.00000051595;
117  Ainv[13] = -117600.00000078452;
118  Ainv[14] = 56700.000000385546;
119  Ainv[15] = -1400.0000000095122;
120  Ainv[16] = 26880.000000182;
121  Ainv[17] = -117600.00000079411;
122  Ainv[18] = 179200.00000120755;
123  Ainv[19] = -88200.00000059341;
124  Ainv[20] = 630.0000000047155;
125  Ainv[21] = -12600.000000090235;
126  Ainv[22] = 56700.00000039371;
127  Ainv[23] = -88200.00000059871;
128  Ainv[24] = 44100.00000029421;
129  }
130 
131  template<>
132  inline void _calculate_b<1,4>(double* X_0, double* b_H, double* b_ImH, double* b_dH)
133  {
134  const double x_0(X_0[0]);
135  b_H[0] = 1 - x_0;
136  b_ImH[0] = x_0;
137  b_dH[0] = -1;
138  b_H[1] = 1.0/2.0 - 1.0/2.0*std::pow(x_0, 2);
139  b_ImH[1] = (1.0/2.0)*std::pow(x_0, 2);
140  b_dH[1] = -x_0;
141  b_H[2] = 1.0/3.0 - 1.0/3.0*std::pow(x_0, 3);
142  b_ImH[2] = (1.0/3.0)*std::pow(x_0, 3);
143  b_dH[2] = -std::pow(x_0, 2);
144  b_H[3] = 1.0/4.0 - 1.0/4.0*std::pow(x_0, 4);
145  b_ImH[3] = (1.0/4.0)*std::pow(x_0, 4);
146  b_dH[3] = -std::pow(x_0, 3);
147  b_H[4] = 1.0/5.0 - 1.0/5.0*std::pow(x_0, 5);
148  b_ImH[4] = (1.0/5.0)*std::pow(x_0, 5);
149  b_dH[4] = -std::pow(x_0, 4);
150  }
151 
152  template<>
153  inline void _set_Ainv<2,1>(double* Ainv)
154  {
155  Ainv[0] = 18.0;
156  Ainv[1] = -24.0;
157  Ainv[2] = -24.000000000000007;
158  Ainv[3] = -24.000000000000004;
159  Ainv[4] = 48.00000000000001;
160  Ainv[5] = 24.000000000000007;
161  Ainv[6] = -24.000000000000007;
162  Ainv[7] = 24.000000000000007;
163  Ainv[8] = 48.000000000000014;
164  }
165 
166  template<>
167  inline void _calculate_b<2,1>(double* X_0, double* b_H, double* b_ImH, double* b_dH)
168  {
169  const double x_0(X_0[0]), y_0(X_0[1]);
170  b_H[0] = -1.0/2.0*x_0*y_0 + 1.0/2.0;
171  b_ImH[0] = (1.0/2.0)*x_0*y_0;
172  b_dH[0] = -1.0/2.0*y_0;
173  b_dH[1] = -1.0/2.0*x_0;
174  b_H[1] = -1.0/6.0*x_0*std::pow(y_0, 2) + 1.0/6.0;
175  b_ImH[1] = (1.0/6.0)*x_0*std::pow(y_0, 2);
176  b_dH[2] = -1.0/6.0*std::pow(y_0, 2);
177  b_dH[3] = -1.0/3.0*x_0*y_0;
178  b_H[2] = -1.0/6.0*std::pow(x_0, 2)*y_0 + 1.0/6.0;
179  b_ImH[2] = (1.0/6.0)*std::pow(x_0, 2)*y_0;
180  b_dH[4] = -1.0/3.0*x_0*y_0;
181  b_dH[5] = -1.0/6.0*std::pow(x_0, 2);
182  }
183 
184  template<>
185  inline void _set_Ainv<2,2>(double* Ainv)
186  {
187  Ainv[0] = 72.0000000000015;
188  Ainv[1] = -240.00000000000495;
189  Ainv[2] = 180.0000000000038;
190  Ainv[3] = -240.00000000000654;
191  Ainv[4] = 360.000000000009;
192  Ainv[5] = 180.00000000000583;
193  Ainv[6] = -240.00000000000537;
194  Ainv[7] = 1200.0000000000205;
195  Ainv[8] = -1080.0000000000173;
196  Ainv[9] = 600.0000000000203;
197  Ainv[10] = -1440.0000000000318;
198  Ainv[11] = -360.0000000000173;
199  Ainv[12] = 180.00000000000432;
200  Ainv[13] = -1080.0000000000177;
201  Ainv[14] = 1080.0000000000157;
202  Ainv[15] = -360.0000000000151;
203  Ainv[16] = 1080.0000000000252;
204  Ainv[17] = 180.00000000001225;
205  Ainv[18] = -240.00000000000625;
206  Ainv[19] = 600.0000000000176;
207  Ainv[20] = -360.0000000000124;
208  Ainv[21] = 1200.00000000003;
209  Ainv[22] = -1440.000000000037;
210  Ainv[23] = -1080.0000000000277;
211  Ainv[24] = 360.0000000000091;
212  Ainv[25] = -1440.0000000000293;
213  Ainv[26] = 1080.000000000023;
214  Ainv[27] = -1440.0000000000396;
215  Ainv[28] = 2880.000000000053;
216  Ainv[29] = 1080.0000000000355;
217  Ainv[30] = 180.00000000000537;
218  Ainv[31] = -360.00000000001404;
219  Ainv[32] = 180.0000000000093;
220  Ainv[33] = -1080.0000000000268;
221  Ainv[34] = 1080.0000000000318;
222  Ainv[35] = 1080.000000000025;
223  }
224 
225  template<>
226  inline void _calculate_b<2,2>(double* X_0, double* b_H, double* b_ImH, double* b_dH)
227  {
228  const double x_0(X_0[0]), y_0(X_0[1]);
229  b_H[0] = -1.0/2.0*x_0*y_0 + 1.0/2.0;
230  b_ImH[0] = (1.0/2.0)*x_0*y_0;
231  b_dH[0] = -1.0/2.0*y_0;
232  b_dH[1] = -1.0/2.0*x_0;
233  b_H[1] = -1.0/6.0*x_0*std::pow(y_0, 2) + 1.0/6.0;
234  b_ImH[1] = (1.0/6.0)*x_0*std::pow(y_0, 2);
235  b_dH[2] = -1.0/6.0*std::pow(y_0, 2);
236  b_dH[3] = -1.0/3.0*x_0*y_0;
237  b_H[2] = -1.0/12.0*x_0*std::pow(y_0, 3) + 1.0/12.0;
238  b_ImH[2] = (1.0/12.0)*x_0*std::pow(y_0, 3);
239  b_dH[4] = -1.0/12.0*std::pow(y_0, 3);
240  b_dH[5] = -1.0/4.0*x_0*std::pow(y_0, 2);
241  b_H[3] = -1.0/6.0*std::pow(x_0, 2)*y_0 + 1.0/6.0;
242  b_ImH[3] = (1.0/6.0)*std::pow(x_0, 2)*y_0;
243  b_dH[6] = -1.0/3.0*x_0*y_0;
244  b_dH[7] = -1.0/6.0*std::pow(x_0, 2);
245  b_H[4] = -1.0/24.0*std::pow(x_0, 2)*std::pow(y_0, 2) + 1.0/24.0;
246  b_ImH[4] = (1.0/24.0)*std::pow(x_0, 2)*std::pow(y_0, 2);
247  b_dH[8] = -1.0/12.0*x_0*std::pow(y_0, 2);
248  b_dH[9] = -1.0/12.0*std::pow(x_0, 2)*y_0;
249  b_H[5] = -1.0/12.0*std::pow(x_0, 3)*y_0 + 1.0/12.0;
250  b_ImH[5] = (1.0/12.0)*std::pow(x_0, 3)*y_0;
251  b_dH[10] = -1.0/4.0*std::pow(x_0, 2)*y_0;
252  b_dH[11] = -1.0/12.0*std::pow(x_0, 3);
253  }
254 
255  template<>
256  inline void _set_Ainv<2,3>(double* Ainv)
257  {
258  Ainv[0] = 200.00000000015794;
259  Ainv[1] = -1200.0000000010295;
260  Ainv[2] = 2100.000000001899;
261  Ainv[3] = -1120.0000000010496;
262  Ainv[4] = -1200.0000000012499;
263  Ainv[5] = 4200.00000000446;
264  Ainv[6] = -3360.000000003589;
265  Ainv[7] = 2100.0000000025448;
266  Ainv[8] = -3360.000000004077;
267  Ainv[9] = -1120.000000001492;
268  Ainv[10] = -1200.000000001084;
269  Ainv[11] = 10800.000000008104;
270  Ainv[12] = -22680.00000001602;
271  Ainv[13] = 13440.000000009255;
272  Ainv[14] = 5400.000000007515;
273  Ainv[15] = -30240.000000030614;
274  Ainv[16] = 30240.000000026717;
275  Ainv[17] = -7560.000000014374;
276  Ainv[18] = 20160.000000025844;
277  Ainv[19] = 3360.0000000081345;
278  Ainv[20] = 2100.0000000020896;
279  Ainv[21] = -22680.00000001665;
280  Ainv[22] = 52920.000000033906;
281  Ainv[23] = -33600.00000001993;
282  Ainv[24] = -7560.000000013417;
283  Ainv[25] = 52920.00000005874;
284  Ainv[26] = -60480.00000005336;
285  Ainv[27] = 8820.000000024635;
286  Ainv[28] = -30240.000000047407;
287  Ainv[29] = -3360.000000013618;
288  Ainv[30] = -1120.0000000011962;
289  Ainv[31] = 13440.00000000987;
290  Ainv[32] = -33600.00000002042;
291  Ainv[33] = 22400.000000012114;
292  Ainv[34] = 3360.000000007319;
293  Ainv[35] = -26880.00000003346;
294  Ainv[36] = 33600.000000031105;
295  Ainv[37] = -3360.000000013077;
296  Ainv[38] = 13440.000000026259;
297  Ainv[39] = 1120.000000007112;
298  Ainv[40] = -1200.0000000011833;
299  Ainv[41] = 5400.0000000066975;
300  Ainv[42] = -7560.00000001124;
301  Ainv[43] = 3360.0000000058285;
302  Ainv[44] = 10800.000000010434;
303  Ainv[45] = -30240.00000003363;
304  Ainv[46] = 20160.000000025022;
305  Ainv[47] = -22680.000000022155;
306  Ainv[48] = 30240.000000032876;
307  Ainv[49] = 13440.000000013286;
308  Ainv[50] = 4200.000000004297;
309  Ainv[51] = -30240.000000028023;
310  Ainv[52] = 52920.00000005135;
311  Ainv[53] = -26880.00000002827;
312  Ainv[54] = -30240.00000003417;
313  Ainv[55] = 141120.00000012317;
314  Ainv[56] = -120960.00000009914;
315  Ainv[57] = 52920.00000006943;
316  Ainv[58] = -120960.00000011286;
317  Ainv[59] = -26880.000000040596;
318  Ainv[60] = -3360.0000000035852;
319  Ainv[61] = 30240.000000025473;
320  Ainv[62] = -60480.00000004888;
321  Ainv[63] = 33600.00000002772;
322  Ainv[64] = 20160.000000026346;
323  Ainv[65] = -120960.00000010275;
324  Ainv[66] = 120960.0000000869;
325  Ainv[67] = -30240.000000051634;
326  Ainv[68] = 90720.0000000898;
327  Ainv[69] = 13440.000000029597;
328  Ainv[70] = 2100.0000000023697;
329  Ainv[71] = -7560.000000012515;
330  Ainv[72] = 8820.000000019938;
331  Ainv[73] = -3360.000000009928;
332  Ainv[74] = -22680.000000021824;
333  Ainv[75] = 52920.00000006728;
334  Ainv[76] = -30240.000000048254;
335  Ainv[77] = 52920.000000047105;
336  Ainv[78] = -60480.00000006763;
337  Ainv[79] = -33600.00000002849;
338  Ainv[80] = -3360.000000003786;
339  Ainv[81] = 20160.000000022614;
340  Ainv[82] = -30240.00000003921;
341  Ainv[83] = 13440.000000020778;
342  Ainv[84] = 30240.000000032287;
343  Ainv[85] = -120960.0000001088;
344  Ainv[86] = 90720.00000008344;
345  Ainv[87] = -60480.00000006747;
346  Ainv[88] = 120960.00000010405;
347  Ainv[89] = 33600.00000004004;
348  Ainv[90] = -1120.0000000013817;
349  Ainv[91] = 3360.000000007019;
350  Ainv[92] = -3360.0000000108384;
351  Ainv[93] = 1120.0000000052592;
352  Ainv[94] = 13440.000000013011;
353  Ainv[95] = -26880.000000039152;
354  Ainv[96] = 13440.000000027516;
355  Ainv[97] = -33600.00000002832;
356  Ainv[98] = 33600.00000003993;
357  Ainv[99] = 22400.000000017208;
358  }
359 
360  template<>
361  inline void _calculate_b<2,3>(double* X_0, double* b_H, double* b_ImH, double* b_dH)
362  {
363  const double x_0(X_0[0]), y_0(X_0[1]);
364  b_H[0] = -1.0/2.0*x_0*y_0 + 1.0/2.0;
365  b_ImH[0] = (1.0/2.0)*x_0*y_0;
366  b_dH[0] = -1.0/2.0*y_0;
367  b_dH[1] = -1.0/2.0*x_0;
368  b_H[1] = -1.0/6.0*x_0*std::pow(y_0, 2) + 1.0/6.0;
369  b_ImH[1] = (1.0/6.0)*x_0*std::pow(y_0, 2);
370  b_dH[2] = -1.0/6.0*std::pow(y_0, 2);
371  b_dH[3] = -1.0/3.0*x_0*y_0;
372  b_H[2] = -1.0/12.0*x_0*std::pow(y_0, 3) + 1.0/12.0;
373  b_ImH[2] = (1.0/12.0)*x_0*std::pow(y_0, 3);
374  b_dH[4] = -1.0/12.0*std::pow(y_0, 3);
375  b_dH[5] = -1.0/4.0*x_0*std::pow(y_0, 2);
376  b_H[3] = -1.0/20.0*x_0*std::pow(y_0, 4) + 1.0/20.0;
377  b_ImH[3] = (1.0/20.0)*x_0*std::pow(y_0, 4);
378  b_dH[6] = -1.0/20.0*std::pow(y_0, 4);
379  b_dH[7] = -1.0/5.0*x_0*std::pow(y_0, 3);
380  b_H[4] = -1.0/6.0*std::pow(x_0, 2)*y_0 + 1.0/6.0;
381  b_ImH[4] = (1.0/6.0)*std::pow(x_0, 2)*y_0;
382  b_dH[8] = -1.0/3.0*x_0*y_0;
383  b_dH[9] = -1.0/6.0*std::pow(x_0, 2);
384  b_H[5] = -1.0/24.0*std::pow(x_0, 2)*std::pow(y_0, 2) + 1.0/24.0;
385  b_ImH[5] = (1.0/24.0)*std::pow(x_0, 2)*std::pow(y_0, 2);
386  b_dH[10] = -1.0/12.0*x_0*std::pow(y_0, 2);
387  b_dH[11] = -1.0/12.0*std::pow(x_0, 2)*y_0;
388  b_H[6] = -1.0/60.0*std::pow(x_0, 2)*std::pow(y_0, 3) + 1.0/60.0;
389  b_ImH[6] = (1.0/60.0)*std::pow(x_0, 2)*std::pow(y_0, 3);
390  b_dH[12] = -1.0/30.0*x_0*std::pow(y_0, 3);
391  b_dH[13] = -1.0/20.0*std::pow(x_0, 2)*std::pow(y_0, 2);
392  b_H[7] = -1.0/12.0*std::pow(x_0, 3)*y_0 + 1.0/12.0;
393  b_ImH[7] = (1.0/12.0)*std::pow(x_0, 3)*y_0;
394  b_dH[14] = -1.0/4.0*std::pow(x_0, 2)*y_0;
395  b_dH[15] = -1.0/12.0*std::pow(x_0, 3);
396  b_H[8] = -1.0/60.0*std::pow(x_0, 3)*std::pow(y_0, 2) + 1.0/60.0;
397  b_ImH[8] = (1.0/60.0)*std::pow(x_0, 3)*std::pow(y_0, 2);
398  b_dH[16] = -1.0/20.0*std::pow(x_0, 2)*std::pow(y_0, 2);
399  b_dH[17] = -1.0/30.0*std::pow(x_0, 3)*y_0;
400  b_H[9] = -1.0/20.0*std::pow(x_0, 4)*y_0 + 1.0/20.0;
401  b_ImH[9] = (1.0/20.0)*std::pow(x_0, 4)*y_0;
402  b_dH[18] = -1.0/5.0*std::pow(x_0, 3)*y_0;
403  b_dH[19] = -1.0/20.0*std::pow(x_0, 4);
404  }
405 
406  template<>
407  inline void _set_Ainv<2,4>(double* Ainv)
408  {
409  Ainv[0] = 450.00000000660384;
410  Ainv[1] = -4200.000000069522;
411  Ainv[2] = 12600.00000022634;
412  Ainv[3] = -15120.00000028855;
413  Ainv[4] = 6300.000000125656;
414  Ainv[5] = -4200.000000081218;
415  Ainv[6] = 25200.00000049871;
416  Ainv[7] = -45360.000000925356;
417  Ainv[8] = 25200.00000052841;
418  Ainv[9] = 12600.000000285607;
419  Ainv[10] = -45360.00000101338;
420  Ainv[11] = 37800.00000084593;
421  Ainv[12] = -15120.000000384369;
422  Ainv[13] = 25200.00000061967;
423  Ainv[14] = 6300.000000172113;
424  Ainv[15] = -4200.0000000827895;
425  Ainv[16] = 58800.00000097587;
426  Ainv[17] = -211680.00000333777;
427  Ainv[18] = 282240.0000043735;
428  Ainv[19] = -126000.00000193229;
429  Ainv[20] = 29400.00000091055;
430  Ainv[21] = -282240.00000630657;
431  Ainv[22] = 635040.000012603;
432  Ainv[23] = -403200.00000752957;
433  Ainv[24] = -70560.00000301018;
434  Ainv[25] = 423360.00001186354;
435  Ainv[26] = -453600.0000107278;
436  Ainv[27] = 70560.00000393917;
437  Ainv[28] = -201600.00000692555;
438  Ainv[29] = -25200.000001708624;
439  Ainv[30] = 12600.000000292206;
440  Ainv[31] = -211680.00000361094;
441  Ainv[32] = 846720.000012563;
442  Ainv[33] = -1209600.0000166188;
443  Ainv[34] = 567000.0000073735;
444  Ainv[35] = -70560.0000030365;
445  Ainv[36] = 846720.0000223183;
446  Ainv[37] = -2177280.0000460846;
447  Ainv[38] = 1512000.0000280172;
448  Ainv[39] = 141120.00000968328;
449  Ainv[40] = -1088640.0000403398;
450  Ainv[41] = 1360800.0000379675;
451  Ainv[42] = -120960.00001249608;
452  Ainv[43] = 453600.0000230371;
453  Ainv[44] = 37800.00000527448;
454  Ainv[45] = -15120.00000038968;
455  Ainv[46] = 282240.00000493287;
456  Ainv[47] = -1209600.0000172888;
457  Ainv[48] = 1814400.000022974;
458  Ainv[49] = -882000.0000102093;
459  Ainv[50] = 70560.00000392275;
460  Ainv[51] = -967680.000029787;
461  Ainv[52] = 2721600.000062602;
462  Ainv[53] = -2016000.0000383758;
463  Ainv[54] = -120960.0000122431;
464  Ainv[55] = 1088640.0000525601;
465  Ainv[56] = -1512000.0000506314;
466  Ainv[57] = 90720.00001571362;
467  Ainv[58] = -403200.00002971804;
468  Ainv[59] = -25200.000006478094;
469  Ainv[60] = 6300.00000017512;
470  Ainv[61] = -126000.0000022465;
471  Ainv[62] = 567000.0000078982;
472  Ainv[63] = -882000.0000105214;
473  Ainv[64] = 441000.00000467786;
474  Ainv[65] = -25200.000001730772;
475  Ainv[66] = 378000.00001338753;
476  Ainv[67] = -1134000.0000284307;
477  Ainv[68] = 882000.0000175002;
478  Ainv[69] = 37800.000005333575;
479  Ainv[70] = -378000.00002325425;
480  Ainv[71] = 567000.0000227285;
481  Ainv[72] = -25200.000006844635;
482  Ainv[73] = 126000.00001310594;
483  Ainv[74] = 6300.000002764013;
484  Ainv[75] = -4200.000000066692;
485  Ainv[76] = 29400.000000601332;
486  Ainv[77] = -70560.00000179585;
487  Ainv[78] = 70560.00000217206;
488  Ainv[79] = -25200.000000916265;
489  Ainv[80] = 58800.000000924156;
490  Ainv[81] = -282240.00000500144;
491  Ainv[82] = 423360.000008402;
492  Ainv[83] = -201600.00000446744;
493  Ainv[84] = -211680.00000343853;
494  Ainv[85] = 635040.0000110824;
495  Ainv[86] = -453600.0000084629;
496  Ainv[87] = 282240.0000047256;
497  Ainv[88] = -403200.0000070961;
498  Ainv[89] = -126000.00000216193;
499  Ainv[90] = 25200.00000050009;
500  Ainv[91] = -282240.00000525365;
501  Ainv[92] = 846720.0000171036;
502  Ainv[93] = -967680.0000217773;
503  Ainv[94] = 378000.0000094879;
504  Ainv[95] = -282240.00000618264;
505  Ainv[96] = 2257920.000038008;
506  Ainv[97] = -4354560.00007016;
507  Ainv[98] = 2419200.00003996;
508  Ainv[99] = 846720.0000218647;
509  Ainv[100] = -4354560.000077862;
510  Ainv[101] = 4082400.000064693;
511  Ainv[102] = -967680.0000292113;
512  Ainv[103] = 2419200.0000474975;
513  Ainv[104] = 378000.0000131356;
514  Ainv[105] = -45360.0000010279;
515  Ainv[106] = 635040.0000116943;
516  Ainv[107] = -2177280.0000395104;
517  Ainv[108] = 2721600.0000513038;
518  Ainv[109] = -1134000.0000226065;
519  Ainv[110] = 423360.0000117718;
520  Ainv[111] = -4354560.000078611;
521  Ainv[112] = 9797760.000152713;
522  Ainv[113] = -6048000.000089887;
523  Ainv[114] = -1088640.0000400152;
524  Ainv[115] = 7348320.000153201;
525  Ainv[116] = -8164800.000134173;
526  Ainv[117] = 1088640.0000521953;
527  Ainv[118] = -3628800.0000902885;
528  Ainv[119] = -378000.00002311874;
529  Ainv[120] = 25200.000000623386;
530  Ainv[121] = -403200.00000744284;
531  Ainv[122] = 1512000.0000256647;
532  Ainv[123] = -2016000.0000336652;
533  Ainv[124] = 882000.0000149173;
534  Ainv[125] = -201600.00000676292;
535  Ainv[126] = 2419200.0000478225;
536  Ainv[127] = -6048000.0000959085;
537  Ainv[128] = 4032000.0000575525;
538  Ainv[129] = 453600.0000222881;
539  Ainv[130] = -3628800.0000900654;
540  Ainv[131] = 4536000.000081742;
541  Ainv[132] = -403200.0000284934;
542  Ainv[133] = 1612800.000051743;
543  Ainv[134] = 126000.00001245856;
544  Ainv[135] = 12600.000000210932;
545  Ainv[136] = -70560.00000172091;
546  Ainv[137] = 141120.00000479014;
547  Ainv[138] = -120960.0000055208;
548  Ainv[139] = 37800.00000225279;
549  Ainv[140] = -211680.0000031036;
550  Ainv[141] = 846720.0000157116;
551  Ainv[142] = -1088640.0000248647;
552  Ainv[143] = 453600.0000125684;
553  Ainv[144] = 846720.0000118183;
554  Ainv[145] = -2177280.000036348;
555  Ainv[146] = 1360800.000026504;
556  Ainv[147] = -1209600.0000164367;
557  Ainv[148] = 1512000.0000238353;
558  Ainv[149] = 567000.0000075715;
559  Ainv[150] = -45360.000000912856;
560  Ainv[151] = 423360.00000871706;
561  Ainv[152] = -1088640.0000269536;
562  Ainv[153] = 1088640.0000333197;
563  Ainv[154] = -378000.0000142594;
564  Ainv[155] = 635040.0000121936;
565  Ainv[156] = -4354560.000068968;
566  Ainv[157] = 7348320.000119894;
567  Ainv[158] = -3628800.000065412;
568  Ainv[159] = -2177280.0000446676;
569  Ainv[160] = 9797760.000148902;
570  Ainv[161] = -8164800.000117076;
571  Ainv[162] = 2721600.000060867;
572  Ainv[163] = -6048000.000093882;
573  Ainv[164] = -1134000.0000276924;
574  Ainv[165] = 37800.00000085661;
575  Ainv[166] = -453600.00000897807;
576  Ainv[167] = 1360800.0000291793;
577  Ainv[168] = -1512000.000037121;
578  Ainv[169] = 567000.0000161683;
579  Ainv[170] = -453600.0000106291;
580  Ainv[171] = 4082400.0000652433;
581  Ainv[172] = -8164800.000120155;
582  Ainv[173] = 4536000.000068272;
583  Ainv[174] = 1360800.0000376364;
584  Ainv[175] = -8164800.000133999;
585  Ainv[176] = 8164800.000111145;
586  Ainv[177] = -1512000.0000503142;
587  Ainv[178] = 4536000.000081868;
588  Ainv[179] = 567000.0000226195;
589  Ainv[180] = -15120.000000262067;
590  Ainv[181] = 70560.00000200061;
591  Ainv[182] = -120960.00000527326;
592  Ainv[183] = 90720.0000058274;
593  Ainv[184] = -25200.000002303706;
594  Ainv[185] = 282240.0000039892;
595  Ainv[186] = -967680.0000194245;
596  Ainv[187] = 1088640.0000295811;
597  Ainv[188] = -403200.0000144278;
598  Ainv[189] = -1209600.0000153766;
599  Ainv[190] = 2721600.0000460786;
600  Ainv[191] = -1512000.0000326927;
601  Ainv[192] = 1814400.000021516;
602  Ainv[193] = -2016000.000030614;
603  Ainv[194] = -882000.0000099465;
604  Ainv[195] = 25200.000000511;
605  Ainv[196] = -201600.0000045325;
606  Ainv[197] = 453600.00001339073;
607  Ainv[198] = -403200.00001608726;
608  Ainv[199] = 126000.0000067586;
609  Ainv[200] = -403200.0000071775;
610  Ainv[201] = 2419200.0000383956;
611  Ainv[202] = -3628800.0000638166;
612  Ainv[203] = 1612800.000033625;
613  Ainv[204] = 1512000.0000268486;
614  Ainv[205] = -6048000.000085866;
615  Ainv[206] = 4536000.000065016;
616  Ainv[207] = -2016000.0000369947;
617  Ainv[208] = 4032000.000055263;
618  Ainv[209] = 882000.0000169443;
619  Ainv[210] = 6300.000000111914;
620  Ainv[211] = -25200.00000081576;
621  Ainv[212] = 37800.00000206079;
622  Ainv[213] = -25200.000002196743;
623  Ainv[214] = 6300.0000008433;
624  Ainv[215] = -126000.00000173999;
625  Ainv[216] = 378000.0000082655;
626  Ainv[217] = -378000.0000122623;
627  Ainv[218] = 126000.00000582729;
628  Ainv[219] = 567000.0000067553;
629  Ainv[220] = -1134000.0000199217;
630  Ainv[221] = 567000.0000138881;
631  Ainv[222] = -882000.0000094861;
632  Ainv[223] = 882000.0000133418;
633  Ainv[224] = 441000.00000439433;
634  }
635 
636  template<>
637  inline void _calculate_b<2,4>(double* X_0, double* b_H, double* b_ImH, double* b_dH)
638  {
639  const double x_0(X_0[0]), y_0(X_0[1]);
640  b_H[0] = -1.0/2.0*x_0*y_0 + 1.0/2.0;
641  b_ImH[0] = (1.0/2.0)*x_0*y_0;
642  b_dH[0] = -1.0/2.0*y_0;
643  b_dH[1] = -1.0/2.0*x_0;
644  b_H[1] = -1.0/6.0*x_0*std::pow(y_0, 2) + 1.0/6.0;
645  b_ImH[1] = (1.0/6.0)*x_0*std::pow(y_0, 2);
646  b_dH[2] = -1.0/6.0*std::pow(y_0, 2);
647  b_dH[3] = -1.0/3.0*x_0*y_0;
648  b_H[2] = -1.0/12.0*x_0*std::pow(y_0, 3) + 1.0/12.0;
649  b_ImH[2] = (1.0/12.0)*x_0*std::pow(y_0, 3);
650  b_dH[4] = -1.0/12.0*std::pow(y_0, 3);
651  b_dH[5] = -1.0/4.0*x_0*std::pow(y_0, 2);
652  b_H[3] = -1.0/20.0*x_0*std::pow(y_0, 4) + 1.0/20.0;
653  b_ImH[3] = (1.0/20.0)*x_0*std::pow(y_0, 4);
654  b_dH[6] = -1.0/20.0*std::pow(y_0, 4);
655  b_dH[7] = -1.0/5.0*x_0*std::pow(y_0, 3);
656  b_H[4] = -1.0/30.0*x_0*std::pow(y_0, 5) + 1.0/30.0;
657  b_ImH[4] = (1.0/30.0)*x_0*std::pow(y_0, 5);
658  b_dH[8] = -1.0/30.0*std::pow(y_0, 5);
659  b_dH[9] = -1.0/6.0*x_0*std::pow(y_0, 4);
660  b_H[5] = -1.0/6.0*std::pow(x_0, 2)*y_0 + 1.0/6.0;
661  b_ImH[5] = (1.0/6.0)*std::pow(x_0, 2)*y_0;
662  b_dH[10] = -1.0/3.0*x_0*y_0;
663  b_dH[11] = -1.0/6.0*std::pow(x_0, 2);
664  b_H[6] = -1.0/24.0*std::pow(x_0, 2)*std::pow(y_0, 2) + 1.0/24.0;
665  b_ImH[6] = (1.0/24.0)*std::pow(x_0, 2)*std::pow(y_0, 2);
666  b_dH[12] = -1.0/12.0*x_0*std::pow(y_0, 2);
667  b_dH[13] = -1.0/12.0*std::pow(x_0, 2)*y_0;
668  b_H[7] = -1.0/60.0*std::pow(x_0, 2)*std::pow(y_0, 3) + 1.0/60.0;
669  b_ImH[7] = (1.0/60.0)*std::pow(x_0, 2)*std::pow(y_0, 3);
670  b_dH[14] = -1.0/30.0*x_0*std::pow(y_0, 3);
671  b_dH[15] = -1.0/20.0*std::pow(x_0, 2)*std::pow(y_0, 2);
672  b_H[8] = -1.0/120.0*std::pow(x_0, 2)*std::pow(y_0, 4) + 1.0/120.0;
673  b_ImH[8] = (1.0/120.0)*std::pow(x_0, 2)*std::pow(y_0, 4);
674  b_dH[16] = -1.0/60.0*x_0*std::pow(y_0, 4);
675  b_dH[17] = -1.0/30.0*std::pow(x_0, 2)*std::pow(y_0, 3);
676  b_H[9] = -1.0/12.0*std::pow(x_0, 3)*y_0 + 1.0/12.0;
677  b_ImH[9] = (1.0/12.0)*std::pow(x_0, 3)*y_0;
678  b_dH[18] = -1.0/4.0*std::pow(x_0, 2)*y_0;
679  b_dH[19] = -1.0/12.0*std::pow(x_0, 3);
680  b_H[10] = -1.0/60.0*std::pow(x_0, 3)*std::pow(y_0, 2) + 1.0/60.0;
681  b_ImH[10] = (1.0/60.0)*std::pow(x_0, 3)*std::pow(y_0, 2);
682  b_dH[20] = -1.0/20.0*std::pow(x_0, 2)*std::pow(y_0, 2);
683  b_dH[21] = -1.0/30.0*std::pow(x_0, 3)*y_0;
684  b_H[11] = -1.0/180.0*std::pow(x_0, 3)*std::pow(y_0, 3) + 1.0/180.0;
685  b_ImH[11] = (1.0/180.0)*std::pow(x_0, 3)*std::pow(y_0, 3);
686  b_dH[22] = -1.0/60.0*std::pow(x_0, 2)*std::pow(y_0, 3);
687  b_dH[23] = -1.0/60.0*std::pow(x_0, 3)*std::pow(y_0, 2);
688  b_H[12] = -1.0/20.0*std::pow(x_0, 4)*y_0 + 1.0/20.0;
689  b_ImH[12] = (1.0/20.0)*std::pow(x_0, 4)*y_0;
690  b_dH[24] = -1.0/5.0*std::pow(x_0, 3)*y_0;
691  b_dH[25] = -1.0/20.0*std::pow(x_0, 4);
692  b_H[13] = -1.0/120.0*std::pow(x_0, 4)*std::pow(y_0, 2) + 1.0/120.0;
693  b_ImH[13] = (1.0/120.0)*std::pow(x_0, 4)*std::pow(y_0, 2);
694  b_dH[26] = -1.0/30.0*std::pow(x_0, 3)*std::pow(y_0, 2);
695  b_dH[27] = -1.0/60.0*std::pow(x_0, 4)*y_0;
696  b_H[14] = -1.0/30.0*std::pow(x_0, 5)*y_0 + 1.0/30.0;
697  b_ImH[14] = (1.0/30.0)*std::pow(x_0, 5)*y_0;
698  b_dH[28] = -1.0/6.0*std::pow(x_0, 4)*y_0;
699  b_dH[29] = -1.0/30.0*std::pow(x_0, 5);
700  }
701 
702  template<>
703  inline void _set_Ainv<3,1>(double* Ainv)
704  {
705  Ainv[0] = 95.99999999999994;
706  Ainv[1] = -119.99999999999989;
707  Ainv[2] = -119.99999999999987;
708  Ainv[3] = -119.99999999999987;
709  Ainv[4] = -119.99999999999993;
710  Ainv[5] = 239.99999999999986;
711  Ainv[6] = 119.99999999999987;
712  Ainv[7] = 119.99999999999987;
713  Ainv[8] = -119.99999999999991;
714  Ainv[9] = 119.99999999999987;
715  Ainv[10] = 239.99999999999986;
716  Ainv[11] = 119.99999999999986;
717  Ainv[12] = -119.9999999999999;
718  Ainv[13] = 119.99999999999987;
719  Ainv[14] = 119.99999999999986;
720  Ainv[15] = 239.99999999999986;
721  }
722 
723  template<>
724  inline void _calculate_b<3,1>(double* X_0, double* b_H, double* b_ImH, double* b_dH)
725  {
726  const double x_0(X_0[0]), y_0(X_0[1]), z_0(X_0[2]);
727  b_H[0] = -1.0/6.0*x_0*y_0*z_0 + 1.0/6.0;
728  b_ImH[0] = (1.0/6.0)*x_0*y_0*z_0;
729  b_dH[0] = -1.0/6.0*y_0*z_0;
730  b_dH[1] = -1.0/6.0*x_0*z_0;
731  b_dH[2] = -1.0/6.0*x_0*y_0;
732  b_H[1] = -1.0/24.0*x_0*y_0*std::pow(z_0, 2) + 1.0/24.0;
733  b_ImH[1] = (1.0/24.0)*x_0*y_0*std::pow(z_0, 2);
734  b_dH[3] = -1.0/24.0*y_0*std::pow(z_0, 2);
735  b_dH[4] = -1.0/24.0*x_0*std::pow(z_0, 2);
736  b_dH[5] = -1.0/12.0*x_0*y_0*z_0;
737  b_H[2] = -1.0/24.0*x_0*std::pow(y_0, 2)*z_0 + 1.0/24.0;
738  b_ImH[2] = (1.0/24.0)*x_0*std::pow(y_0, 2)*z_0;
739  b_dH[6] = -1.0/24.0*std::pow(y_0, 2)*z_0;
740  b_dH[7] = -1.0/12.0*x_0*y_0*z_0;
741  b_dH[8] = -1.0/24.0*x_0*std::pow(y_0, 2);
742  b_H[3] = -1.0/24.0*std::pow(x_0, 2)*y_0*z_0 + 1.0/24.0;
743  b_ImH[3] = (1.0/24.0)*std::pow(x_0, 2)*y_0*z_0;
744  b_dH[9] = -1.0/12.0*x_0*y_0*z_0;
745  b_dH[10] = -1.0/24.0*std::pow(x_0, 2)*z_0;
746  b_dH[11] = -1.0/24.0*std::pow(x_0, 2)*y_0;
747  }
748 
749  template<>
750  inline void _set_Ainv<3,2>(double* Ainv)
751  {
752  Ainv[0] = 599.9999999999937;
753  Ainv[1] = -1799.9999999999884;
754  Ainv[2] = 1259.999999999993;
755  Ainv[3] = -1799.9999999999836;
756  Ainv[4] = 2519.999999999987;
757  Ainv[5] = 1259.9999999999886;
758  Ainv[6] = -1799.9999999999704;
759  Ainv[7] = 2519.9999999999736;
760  Ainv[8] = 2519.9999999999636;
761  Ainv[9] = 1259.9999999999718;
762  Ainv[10] = -1799.999999999986;
763  Ainv[11] = 8639.99999999997;
764  Ainv[12] = -7559.99999999998;
765  Ainv[13] = 4319.9999999999645;
766  Ainv[14] = -10079.99999999997;
767  Ainv[15] = -2519.9999999999754;
768  Ainv[16] = 4319.999999999939;
769  Ainv[17] = -10079.999999999944;
770  Ainv[18] = -5039.999999999928;
771  Ainv[19] = -2519.9999999999436;
772  Ainv[20] = 1259.9999999999914;
773  Ainv[21] = -7559.999999999977;
774  Ainv[22] = 7559.999999999983;
775  Ainv[23] = -2519.9999999999795;
776  Ainv[24] = 7559.999999999979;
777  Ainv[25] = 1259.9999999999861;
778  Ainv[26] = -2519.9999999999677;
779  Ainv[27] = 7559.999999999967;
780  Ainv[28] = 2519.999999999963;
781  Ainv[29] = 1259.9999999999711;
782  Ainv[30] = -1799.9999999999832;
783  Ainv[31] = 4319.999999999963;
784  Ainv[32] = -2519.9999999999754;
785  Ainv[33] = 8639.999999999947;
786  Ainv[34] = -10079.999999999947;
787  Ainv[35] = -7559.999999999961;
788  Ainv[36] = 4319.99999999993;
789  Ainv[37] = -5039.9999999999345;
790  Ainv[38] = -10079.999999999909;
791  Ainv[39] = -2519.9999999999377;
792  Ainv[40] = 2519.999999999983;
793  Ainv[41] = -10079.999999999964;
794  Ainv[42] = 7559.9999999999745;
795  Ainv[43] = -10079.99999999995;
796  Ainv[44] = 20159.999999999953;
797  Ainv[45] = 7559.999999999961;
798  Ainv[46] = -5039.999999999936;
799  Ainv[47] = 10079.999999999944;
800  Ainv[48] = 10079.99999999992;
801  Ainv[49] = 2519.9999999999445;
802  Ainv[50] = 1259.9999999999877;
803  Ainv[51] = -2519.999999999969;
804  Ainv[52] = 1259.9999999999793;
805  Ainv[53] = -7559.99999999996;
806  Ainv[54] = 7559.999999999952;
807  Ainv[55] = 7559.999999999968;
808  Ainv[56] = -2519.999999999957;
809  Ainv[57] = 2519.999999999955;
810  Ainv[58] = 7559.99999999994;
811  Ainv[59] = 1259.999999999965;
812  Ainv[60] = -1799.9999999999734;
813  Ainv[61] = 4319.999999999964;
814  Ainv[62] = -2519.9999999999864;
815  Ainv[63] = 4319.999999999938;
816  Ainv[64] = -5039.99999999997;
817  Ainv[65] = -2519.999999999962;
818  Ainv[66] = 8639.99999999985;
819  Ainv[67] = -10079.999999999882;
820  Ainv[68] = -10079.999999999827;
821  Ainv[69] = -7559.999999999853;
822  Ainv[70] = 2519.999999999971;
823  Ainv[71] = -10079.999999999958;
824  Ainv[72] = 7559.999999999981;
825  Ainv[73] = -5039.999999999933;
826  Ainv[74] = 10079.999999999967;
827  Ainv[75] = 2519.9999999999586;
828  Ainv[76] = -10079.999999999844;
829  Ainv[77] = 20159.999999999876;
830  Ainv[78] = 10079.999999999822;
831  Ainv[79] = 7559.999999999847;
832  Ainv[80] = 2519.999999999969;
833  Ainv[81] = -5039.9999999999545;
834  Ainv[82] = 2519.9999999999814;
835  Ainv[83] = -10079.99999999992;
836  Ainv[84] = 10079.999999999953;
837  Ainv[85] = 7559.999999999946;
838  Ainv[86] = -10079.999999999836;
839  Ainv[87] = 10079.999999999873;
840  Ainv[88] = 20159.999999999807;
841  Ainv[89] = 7559.999999999842;
842  Ainv[90] = 1259.9999999999766;
843  Ainv[91] = -2519.9999999999714;
844  Ainv[92] = 1259.9999999999925;
845  Ainv[93] = -2519.999999999948;
846  Ainv[94] = 2519.99999999998;
847  Ainv[95] = 1259.99999999997;
848  Ainv[96] = -7559.999999999861;
849  Ainv[97] = 7559.999999999892;
850  Ainv[98] = 7559.999999999842;
851  Ainv[99] = 7559.999999999862;
852  }
853 
854  template<>
855  inline void _calculate_b<3,2>(double* X_0, double* b_H, double* b_ImH, double* b_dH)
856  {
857  const double x_0(X_0[0]), y_0(X_0[1]), z_0(X_0[2]);
858  b_H[0] = -1.0/6.0*x_0*y_0*z_0 + 1.0/6.0;
859  b_ImH[0] = (1.0/6.0)*x_0*y_0*z_0;
860  b_dH[0] = -1.0/6.0*y_0*z_0;
861  b_dH[1] = -1.0/6.0*x_0*z_0;
862  b_dH[2] = -1.0/6.0*x_0*y_0;
863  b_H[1] = -1.0/24.0*x_0*y_0*std::pow(z_0, 2) + 1.0/24.0;
864  b_ImH[1] = (1.0/24.0)*x_0*y_0*std::pow(z_0, 2);
865  b_dH[3] = -1.0/24.0*y_0*std::pow(z_0, 2);
866  b_dH[4] = -1.0/24.0*x_0*std::pow(z_0, 2);
867  b_dH[5] = -1.0/12.0*x_0*y_0*z_0;
868  b_H[2] = -1.0/60.0*x_0*y_0*std::pow(z_0, 3) + 1.0/60.0;
869  b_ImH[2] = (1.0/60.0)*x_0*y_0*std::pow(z_0, 3);
870  b_dH[6] = -1.0/60.0*y_0*std::pow(z_0, 3);
871  b_dH[7] = -1.0/60.0*x_0*std::pow(z_0, 3);
872  b_dH[8] = -1.0/20.0*x_0*y_0*std::pow(z_0, 2);
873  b_H[3] = -1.0/24.0*x_0*std::pow(y_0, 2)*z_0 + 1.0/24.0;
874  b_ImH[3] = (1.0/24.0)*x_0*std::pow(y_0, 2)*z_0;
875  b_dH[9] = -1.0/24.0*std::pow(y_0, 2)*z_0;
876  b_dH[10] = -1.0/12.0*x_0*y_0*z_0;
877  b_dH[11] = -1.0/24.0*x_0*std::pow(y_0, 2);
878  b_H[4] = -1.0/120.0*x_0*std::pow(y_0, 2)*std::pow(z_0, 2) + 1.0/120.0;
879  b_ImH[4] = (1.0/120.0)*x_0*std::pow(y_0, 2)*std::pow(z_0, 2);
880  b_dH[12] = -1.0/120.0*std::pow(y_0, 2)*std::pow(z_0, 2);
881  b_dH[13] = -1.0/60.0*x_0*y_0*std::pow(z_0, 2);
882  b_dH[14] = -1.0/60.0*x_0*std::pow(y_0, 2)*z_0;
883  b_H[5] = -1.0/60.0*x_0*std::pow(y_0, 3)*z_0 + 1.0/60.0;
884  b_ImH[5] = (1.0/60.0)*x_0*std::pow(y_0, 3)*z_0;
885  b_dH[15] = -1.0/60.0*std::pow(y_0, 3)*z_0;
886  b_dH[16] = -1.0/20.0*x_0*std::pow(y_0, 2)*z_0;
887  b_dH[17] = -1.0/60.0*x_0*std::pow(y_0, 3);
888  b_H[6] = -1.0/24.0*std::pow(x_0, 2)*y_0*z_0 + 1.0/24.0;
889  b_ImH[6] = (1.0/24.0)*std::pow(x_0, 2)*y_0*z_0;
890  b_dH[18] = -1.0/12.0*x_0*y_0*z_0;
891  b_dH[19] = -1.0/24.0*std::pow(x_0, 2)*z_0;
892  b_dH[20] = -1.0/24.0*std::pow(x_0, 2)*y_0;
893  b_H[7] = -1.0/120.0*std::pow(x_0, 2)*y_0*std::pow(z_0, 2) + 1.0/120.0;
894  b_ImH[7] = (1.0/120.0)*std::pow(x_0, 2)*y_0*std::pow(z_0, 2);
895  b_dH[21] = -1.0/60.0*x_0*y_0*std::pow(z_0, 2);
896  b_dH[22] = -1.0/120.0*std::pow(x_0, 2)*std::pow(z_0, 2);
897  b_dH[23] = -1.0/60.0*std::pow(x_0, 2)*y_0*z_0;
898  b_H[8] = -1.0/120.0*std::pow(x_0, 2)*std::pow(y_0, 2)*z_0 + 1.0/120.0;
899  b_ImH[8] = (1.0/120.0)*std::pow(x_0, 2)*std::pow(y_0, 2)*z_0;
900  b_dH[24] = -1.0/60.0*x_0*std::pow(y_0, 2)*z_0;
901  b_dH[25] = -1.0/60.0*std::pow(x_0, 2)*y_0*z_0;
902  b_dH[26] = -1.0/120.0*std::pow(x_0, 2)*std::pow(y_0, 2);
903  b_H[9] = -1.0/60.0*std::pow(x_0, 3)*y_0*z_0 + 1.0/60.0;
904  b_ImH[9] = (1.0/60.0)*std::pow(x_0, 3)*y_0*z_0;
905  b_dH[27] = -1.0/20.0*std::pow(x_0, 2)*y_0*z_0;
906  b_dH[28] = -1.0/60.0*std::pow(x_0, 3)*z_0;
907  b_dH[29] = -1.0/60.0*std::pow(x_0, 3)*y_0;
908  }
909 
910  template<>
911  inline void _set_Ainv<3,3>(double* Ainv)
912  {
913  Ainv[0] = 2400.000000000681;
914  Ainv[1] = -12600.00000000447;
915  Ainv[2] = 20160.00000000636;
916  Ainv[3] = -10080.00000000245;
917  Ainv[4] = -12600.000000004151;
918  Ainv[5] = 40320.00000001872;
919  Ainv[6] = -30240.000000014632;
920  Ainv[7] = 20160.000000005883;
921  Ainv[8] = -30240.00000001445;
922  Ainv[9] = -10080.000000002306;
923  Ainv[10] = -12600.000000004606;
924  Ainv[11] = 40320.000000020365;
925  Ainv[12] = -30240.0000000157;
926  Ainv[13] = 40320.00000001811;
927  Ainv[14] = -60480.00000003665;
928  Ainv[15] = -30240.000000013228;
929  Ainv[16] = 20160.000000007083;
930  Ainv[17] = -30240.000000016713;
931  Ainv[18] = -30240.000000014155;
932  Ainv[19] = -10080.000000003076;
933  Ainv[20] = -12600.000000005894;
934  Ainv[21] = 105840.00000003171;
935  Ainv[22] = -211680.00000003935;
936  Ainv[23] = 120960.0000000125;
937  Ainv[24] = 52920.00000003725;
938  Ainv[25] = -282240.00000014005;
939  Ainv[26] = 272160.00000010035;
940  Ainv[27] = -70560.00000005912;
941  Ainv[28] = 181440.00000011537;
942  Ainv[29] = 30240.000000027543;
943  Ainv[30] = 52920.00000004206;
944  Ainv[31] = -282240.000000158;
945  Ainv[32] = 272160.00000011316;
946  Ainv[33] = -141120.0000001534;
947  Ainv[34] = 362880.0000002756;
948  Ainv[35] = 90720.00000011401;
949  Ainv[36] = -70560.00000007151;
950  Ainv[37] = 181440.0000001384;
951  Ainv[38] = 90720.00000012279;
952  Ainv[39] = 30240.000000035077;
953  Ainv[40] = 20160.000000011223;
954  Ainv[41] = -211680.00000005442;
955  Ainv[42] = 483840.00000005873;
956  Ainv[43] = -302400.00000001315;
957  Ainv[44] = -70560.0000000732;
958  Ainv[45] = 483840.0000002579;
959  Ainv[46] = -544320.0000001751;
960  Ainv[47] = 80640.00000012036;
961  Ainv[48] = -272160.0000002202;
962  Ainv[49] = -30240.00000005823;
963  Ainv[50] = -70560.00000008263;
964  Ainv[51] = 483840.0000002928;
965  Ainv[52] = -544320.0000002002;
966  Ainv[53] = 161280.00000029823;
967  Ainv[54] = -544320.0000005144;
968  Ainv[55] = -90720.000000224;
969  Ainv[56] = 80640.00000014444;
970  Ainv[57] = -272160.00000026426;
971  Ainv[58] = -90720.00000024102;
972  Ainv[59] = -30240.00000007279;
973  Ainv[60] = -10080.000000006048;
974  Ainv[61] = 120960.00000002692;
975  Ainv[62] = -302400.0000000244;
976  Ainv[63] = 201600.00000000204;
977  Ainv[64] = 30240.00000004062;
978  Ainv[65] = -241920.0000001376;
979  Ainv[66] = 302400.00000008923;
980  Ainv[67] = -30240.000000068176;
981  Ainv[68] = 120960.00000012075;
982  Ainv[69] = 10080.000000033564;
983  Ainv[70] = 30240.00000004568;
984  Ainv[71] = -241920.00000015617;
985  Ainv[72] = 302400.0000001027;
986  Ainv[73] = -60480.000000165244;
987  Ainv[74] = 241920.00000027858;
988  Ainv[75] = 30240.000000125106;
989  Ainv[76] = -30240.000000081072;
990  Ainv[77] = 120960.0000001441;
991  Ainv[78] = 30240.000000134303;
992  Ainv[79] = 10080.000000041347;
993  Ainv[80] = -12600.000000004224;
994  Ainv[81] = 52920.00000002895;
995  Ainv[82] = -70560.00000004457;
996  Ainv[83] = 30240.00000001939;
997  Ainv[84] = 105840.00000001726;
998  Ainv[85] = -282240.0000000956;
999  Ainv[86] = 181440.00000008117;
1000  Ainv[87] = -211680.00000001196;
1001  Ainv[88] = 272160.0000000588;
1002  Ainv[89] = 120959.99999999777;
1003  Ainv[90] = 52920.00000003536;
1004  Ainv[91] = -141120.0000001402;
1005  Ainv[92] = 90720.00000010742;
1006  Ainv[93] = -282240.00000011234;
1007  Ainv[94] = 362880.00000022294;
1008  Ainv[95] = 272160.00000006804;
1009  Ainv[96] = -70560.0000000624;
1010  Ainv[97] = 90720.00000012125;
1011  Ainv[98] = 181440.0000001014;
1012  Ainv[99] = 30240.00000003156;
1013  Ainv[100] = 40320.00000002119;
1014  Ainv[101] = -282240.0000001246;
1015  Ainv[102] = 483840.0000001787;
1016  Ainv[103] = -241920.00000007308;
1017  Ainv[104] = -282240.00000011176;
1018  Ainv[105] = 1290240.0000004647;
1019  Ainv[106] = -1088640.0000003604;
1020  Ainv[107] = 483840.00000014814;
1021  Ainv[108] = -1088640.0000003406;
1022  Ainv[109] = -241920.0000000553;
1023  Ainv[110] = -141120.00000016208;
1024  Ainv[111] = 645120.0000005948;
1025  Ainv[112] = -544320.0000004392;
1026  Ainv[113] = 645120.0000005371;
1027  Ainv[114] = -1451520.0000009665;
1028  Ainv[115] = -544320.0000003624;
1029  Ainv[116] = 161280.0000002879;
1030  Ainv[117] = -362880.0000005211;
1031  Ainv[118] = -362880.00000045565;
1032  Ainv[119] = -60480.00000014813;
1033  Ainv[120] = -30240.000000019096;
1034  Ainv[121] = 272160.00000010425;
1035  Ainv[122] = -544320.0000001404;
1036  Ainv[123] = 302400.0000000528;
1037  Ainv[124] = 181440.00000010908;
1038  Ainv[125] = -1088640.000000417;
1039  Ainv[126] = 1088640.0000003092;
1040  Ainv[127] = -272160.00000016135;
1041  Ainv[128] = 816480.0000003251;
1042  Ainv[129] = 120960.00000007014;
1043  Ainv[130] = 90720.0000001431;
1044  Ainv[131] = -544320.0000005078;
1045  Ainv[132] = 544320.0000003652;
1046  Ainv[133] = -362880.0000004833;
1047  Ainv[134] = 1088640.0000008396;
1048  Ainv[135] = 272160.00000033894;
1049  Ainv[136] = -90720.00000025539;
1050  Ainv[137] = 272160.0000004498;
1051  Ainv[138] = 181440.00000040265;
1052  Ainv[139] = 30240.00000013224;
1053  Ainv[140] = 20160.000000006752;
1054  Ainv[141] = -70560.00000004917;
1055  Ainv[142] = 80640.00000007875;
1056  Ainv[143] = -30240.000000035696;
1057  Ainv[144] = -211680.00000001627;
1058  Ainv[145] = 483840.00000013364;
1059  Ainv[146] = -272160.0000001238;
1060  Ainv[147] = 483839.99999998516;
1061  Ainv[148] = -544320.0000000589;
1062  Ainv[149] = -302399.9999999728;
1063  Ainv[150] = -70560.00000006544;
1064  Ainv[151] = 161280.00000025233;
1065  Ainv[152] = -90720.00000019338;
1066  Ainv[153] = 483840.0000001815;
1067  Ainv[154] = -544320.0000003701;
1068  Ainv[155] = -544320.0000000909;
1069  Ainv[156] = 80640.00000012243;
1070  Ainv[157] = -90720.00000022496;
1071  Ainv[158] = -272160.0000001808;
1072  Ainv[159] = -30240.000000064992;
1073  Ainv[160] = -30240.00000001602;
1074  Ainv[161] = 181440.0000000997;
1075  Ainv[162] = -272160.0000001513;
1076  Ainv[163] = 120960.00000006636;
1077  Ainv[164] = 272160.00000007066;
1078  Ainv[165] = -1088640.0000003313;
1079  Ainv[166] = 816480.0000002717;
1080  Ainv[167] = -544320.0000000704;
1081  Ainv[168] = 1088640.0000002154;
1082  Ainv[169] = 302400.0000000128;
1083  Ainv[170] = 90720.0000001313;
1084  Ainv[171] = -362880.00000047893;
1085  Ainv[172] = 272160.0000003583;
1086  Ainv[173] = -544320.0000004042;
1087  Ainv[174] = 1088640.0000007404;
1088  Ainv[175] = 544320.0000002492;
1089  Ainv[176] = -90720.00000024024;
1090  Ainv[177] = 181440.00000042302;
1091  Ainv[178] = 272160.00000036164;
1092  Ainv[179] = 30240.00000012673;
1093  Ainv[180] = -10080.000000003185;
1094  Ainv[181] = 30240.000000024807;
1095  Ainv[182] = -30240.000000040916;
1096  Ainv[183] = 10080.000000018998;
1097  Ainv[184] = 120960.00000000224;
1098  Ainv[185] = -241920.00000005524;
1099  Ainv[186] = 120960.00000005681;
1100  Ainv[187] = -302399.9999999765;
1101  Ainv[188] = 302400.00000001193;
1102  Ainv[189] = 201599.99999997552;
1103  Ainv[190] = 30240.00000003509;
1104  Ainv[191] = -60480.00000013435;
1105  Ainv[192] = 30240.00000010318;
1106  Ainv[193] = -241920.0000000866;
1107  Ainv[194] = 241920.00000018452;
1108  Ainv[195] = 302400.0000000342;
1109  Ainv[196] = -30240.00000006823;
1110  Ainv[197] = 30240.000000122487;
1111  Ainv[198] = 120960.0000000942;
1112  Ainv[199] = 10080.000000037206;
1113  Ainv[200] = -12600.0000000018;
1114  Ainv[201] = 52920.00000001713;
1115  Ainv[202] = -70560.00000002721;
1116  Ainv[203] = 30240.00000001142;
1117  Ainv[204] = 52920.0000000179;
1118  Ainv[205] = -141120.00000008836;
1119  Ainv[206] = 90720.00000007171;
1120  Ainv[207] = -70560.00000003175;
1121  Ainv[208] = 90720.00000007555;
1122  Ainv[209] = 30240.00000001548;
1123  Ainv[210] = 105840.00000000416;
1124  Ainv[211] = -282240.00000005716;
1125  Ainv[212] = 181440.00000005314;
1126  Ainv[213] = -282240.00000005134;
1127  Ainv[214] = 362880.00000013754;
1128  Ainv[215] = 181440.00000004983;
1129  Ainv[216] = -211679.9999999931;
1130  Ainv[217] = 272160.0000000338;
1131  Ainv[218] = 272160.0000000247;
1132  Ainv[219] = 120959.99999998954;
1133  Ainv[220] = 40320.00000001453;
1134  Ainv[221] = -282240.0000000917;
1135  Ainv[222] = 483840.000000129;
1136  Ainv[223] = -241920.00000004948;
1137  Ainv[224] = -141120.0000001042;
1138  Ainv[225] = 645120.0000004154;
1139  Ainv[226] = -544320.0000003112;
1140  Ainv[227] = 161280.00000017855;
1141  Ainv[228] = -362880.0000003504;
1142  Ainv[229] = -60480.00000008897;
1143  Ainv[230] = -282240.00000008487;
1144  Ainv[231] = 1290240.000000397;
1145  Ainv[232] = -1088640.0000003108;
1146  Ainv[233] = 645120.0000003679;
1147  Ainv[234] = -1451520.000000735;
1148  Ainv[235] = -362880.0000002997;
1149  Ainv[236] = 483840.000000119;
1150  Ainv[237] = -1088640.0000003185;
1151  Ainv[238] = -544320.0000002615;
1152  Ainv[239] = -241920.00000004587;
1153  Ainv[240] = -30240.000000014654;
1154  Ainv[241] = 272160.000000082;
1155  Ainv[242] = -544320.0000001062;
1156  Ainv[243] = 302400.00000003626;
1157  Ainv[244] = 90720.00000009975;
1158  Ainv[245] = -544320.0000003707;
1159  Ainv[246] = 544320.0000002657;
1160  Ainv[247] = -90720.00000017005;
1161  Ainv[248] = 272160.0000003146;
1162  Ainv[249] = 30240.000000085227;
1163  Ainv[250] = 181440.0000000958;
1164  Ainv[251] = -1088640.00000039;
1165  Ainv[252] = 1088640.000000289;
1166  Ainv[253] = -362880.00000037166;
1167  Ainv[254] = 1088640.0000006885;
1168  Ainv[255] = 181440.0000002924;
1169  Ainv[256] = -272160.0000001531;
1170  Ainv[257] = 816480.0000003322;
1171  Ainv[258] = 272160.0000002825;
1172  Ainv[259] = 120960.00000007033;
1173  Ainv[260] = 40320.00000000939;
1174  Ainv[261] = -141120.00000007215;
1175  Ainv[262] = 161280.0000001129;
1176  Ainv[263] = -60480.00000004872;
1177  Ainv[264] = -282240.00000005827;
1178  Ainv[265] = 645120.0000002964;
1179  Ainv[266] = -362880.0000002448;
1180  Ainv[267] = 483840.00000007596;
1181  Ainv[268] = -544320.0000002186;
1182  Ainv[269] = -241920.00000002485;
1183  Ainv[270] = -282240.0000000605;
1184  Ainv[271] = 645120.0000003044;
1185  Ainv[272] = -362880.0000002486;
1186  Ainv[273] = 1290240.0000002722;
1187  Ainv[274] = -1451520.0000005844;
1188  Ainv[275] = -1088640.0000002051;
1189  Ainv[276] = 483840.0000000808;
1190  Ainv[277] = -544320.0000002339;
1191  Ainv[278] = -1088640.0000002075;
1192  Ainv[279] = -241920.00000002814;
1193  Ainv[280] = -60480.000000025786;
1194  Ainv[281] = 362880.00000016193;
1195  Ainv[282] = -544320.0000002393;
1196  Ainv[283] = 241920.0000001008;
1197  Ainv[284] = 362880.0000001582;
1198  Ainv[285] = -1451520.000000651;
1199  Ainv[286] = 1088640.0000005045;
1200  Ainv[287] = -544320.000000239;
1201  Ainv[288] = 1088640.0000005064;
1202  Ainv[289] = 241920.00000010474;
1203  Ainv[290] = 362880.0000001759;
1204  Ainv[291] = -1451520.000000719;
1205  Ainv[292] = 1088640.0000005537;
1206  Ainv[293] = -1451520.000000668;
1207  Ainv[294] = 2903040.0000012536;
1208  Ainv[295] = 1088640.000000492;
1209  Ainv[296] = -544320.0000002838;
1210  Ainv[297] = 1088640.0000005988;
1211  Ainv[298] = 1088640.0000005208;
1212  Ainv[299] = 241920.00000013254;
1213  Ainv[300] = -30240.000000008084;
1214  Ainv[301] = 90720.00000006055;
1215  Ainv[302] = -90720.00000009537;
1216  Ainv[303] = 30240.000000041826;
1217  Ainv[304] = 272160.00000003556;
1218  Ainv[305] = -544320.0000002107;
1219  Ainv[306] = 272160.0000001814;
1220  Ainv[307] = -544320.0000000247;
1221  Ainv[308] = 544320.0000001311;
1222  Ainv[309] = 302399.9999999943;
1223  Ainv[310] = 181440.00000006598;
1224  Ainv[311] = -362880.0000002838;
1225  Ainv[312] = 181440.0000002236;
1226  Ainv[313] = -1088640.0000002373;
1227  Ainv[314] = 1088640.0000004899;
1228  Ainv[315] = 1088640.0000001544;
1229  Ainv[316] = -272160.00000010827;
1230  Ainv[317] = 272160.00000023557;
1231  Ainv[318] = 816480.0000002075;
1232  Ainv[319] = 120960.00000005067;
1233  Ainv[320] = 20160.00000000029;
1234  Ainv[321] = -70560.00000001755;
1235  Ainv[322] = 80640.00000003254;
1236  Ainv[323] = -30240.00000001465;
1237  Ainv[324] = -70560.00000002071;
1238  Ainv[325] = 161280.00000012174;
1239  Ainv[326] = -90720.00000010397;
1240  Ainv[327] = 80640.00000004514;
1241  Ainv[328] = -90720.0000001137;
1242  Ainv[329] = -30240.000000024735;
1243  Ainv[330] = -211679.99999997983;
1244  Ainv[331] = 483840.00000002247;
1245  Ainv[332] = -272160.0000000428;
1246  Ainv[333] = 483840.0000000187;
1247  Ainv[334] = -544320.0000001399;
1248  Ainv[335] = -272160.00000004587;
1249  Ainv[336] = 483839.99999993166;
1250  Ainv[337] = -544319.9999999816;
1251  Ainv[338] = -544319.9999999718;
1252  Ainv[339] = -302399.9999999493;
1253  Ainv[340] = -30240.000000007538;
1254  Ainv[341] = 181440.0000000578;
1255  Ainv[342] = -272160.00000008853;
1256  Ainv[343] = 120960.00000003683;
1257  Ainv[344] = 90720.00000006509;
1258  Ainv[345] = -362880.00000028;
1259  Ainv[346] = 272160.0000002178;
1260  Ainv[347] = -90720.00000012037;
1261  Ainv[348] = 181440.00000024398;
1262  Ainv[349] = 30240.000000063254;
1263  Ainv[350] = 272160.00000002875;
1264  Ainv[351] = -1088640.0000002135;
1265  Ainv[352] = 816480.0000001858;
1266  Ainv[353] = -544320.000000186;
1267  Ainv[354] = 1088640.0000004405;
1268  Ainv[355] = 272160.0000001737;
1269  Ainv[356] = -544320.0000000149;
1270  Ainv[357] = 1088640.0000001483;
1271  Ainv[358] = 544320.0000001054;
1272  Ainv[359] = 302399.99999999045;
1273  Ainv[360] = -30240.000000004;
1274  Ainv[361] = 90720.0000000399;
1275  Ainv[362] = -90720.00000006503;
1276  Ainv[363] = 30240.00000002808;
1277  Ainv[364] = 181440.0000000394;
1278  Ainv[365] = -362880.0000002044;
1279  Ainv[366] = 181440.000000169;
1280  Ainv[367] = -272160.00000006537;
1281  Ainv[368] = 272160.00000016845;
1282  Ainv[369] = 120960.0000000291;
1283  Ainv[370] = 272160.0000000105;
1284  Ainv[371] = -544320.0000001345;
1285  Ainv[372] = 272160.0000001247;
1286  Ainv[373] = -1088640.0000001336;
1287  Ainv[374] = 1088640.0000003413;
1288  Ainv[375] = 816480.0000001277;
1289  Ainv[376] = -544319.9999999847;
1290  Ainv[377] = 544320.0000000766;
1291  Ainv[378] = 1088640.0000000743;
1292  Ainv[379] = 302399.9999999754;
1293  Ainv[380] = -10079.999999999025;
1294  Ainv[381] = 30240.00000000447;
1295  Ainv[382] = -30240.000000011292;
1296  Ainv[383] = 10080.000000005584;
1297  Ainv[384] = 30240.00000000652;
1298  Ainv[385] = -60480.00000005165;
1299  Ainv[386] = 30240.00000004697;
1300  Ainv[387] = -30240.000000018783;
1301  Ainv[388] = 30240.000000052572;
1302  Ainv[389] = 10080.000000011363;
1303  Ainv[390] = 120959.99999997883;
1304  Ainv[391] = -241919.9999999822;
1305  Ainv[392] = 120960.0000000033;
1306  Ainv[393] = -241919.9999999822;
1307  Ainv[394] = 241920.00000003554;
1308  Ainv[395] = 120960.0000000073;
1309  Ainv[396] = -302399.9999999425;
1310  Ainv[397] = 302399.99999996077;
1311  Ainv[398] = 302399.9999999576;
1312  Ainv[399] = 201599.99999996097;
1313  }
1314 
1315  template<>
1316  inline void _calculate_b<3,3>(double* X_0, double* b_H, double* b_ImH, double* b_dH)
1317  {
1318  const double x_0(X_0[0]), y_0(X_0[1]), z_0(X_0[2]);
1319  b_H[0] = -1.0/6.0*x_0*y_0*z_0 + 1.0/6.0;
1320  b_ImH[0] = (1.0/6.0)*x_0*y_0*z_0;
1321  b_dH[0] = -1.0/6.0*y_0*z_0;
1322  b_dH[1] = -1.0/6.0*x_0*z_0;
1323  b_dH[2] = -1.0/6.0*x_0*y_0;
1324  b_H[1] = -1.0/24.0*x_0*y_0*std::pow(z_0, 2) + 1.0/24.0;
1325  b_ImH[1] = (1.0/24.0)*x_0*y_0*std::pow(z_0, 2);
1326  b_dH[3] = -1.0/24.0*y_0*std::pow(z_0, 2);
1327  b_dH[4] = -1.0/24.0*x_0*std::pow(z_0, 2);
1328  b_dH[5] = -1.0/12.0*x_0*y_0*z_0;
1329  b_H[2] = -1.0/60.0*x_0*y_0*std::pow(z_0, 3) + 1.0/60.0;
1330  b_ImH[2] = (1.0/60.0)*x_0*y_0*std::pow(z_0, 3);
1331  b_dH[6] = -1.0/60.0*y_0*std::pow(z_0, 3);
1332  b_dH[7] = -1.0/60.0*x_0*std::pow(z_0, 3);
1333  b_dH[8] = -1.0/20.0*x_0*y_0*std::pow(z_0, 2);
1334  b_H[3] = -1.0/120.0*x_0*y_0*std::pow(z_0, 4) + 1.0/120.0;
1335  b_ImH[3] = (1.0/120.0)*x_0*y_0*std::pow(z_0, 4);
1336  b_dH[9] = -1.0/120.0*y_0*std::pow(z_0, 4);
1337  b_dH[10] = -1.0/120.0*x_0*std::pow(z_0, 4);
1338  b_dH[11] = -1.0/30.0*x_0*y_0*std::pow(z_0, 3);
1339  b_H[4] = -1.0/24.0*x_0*std::pow(y_0, 2)*z_0 + 1.0/24.0;
1340  b_ImH[4] = (1.0/24.0)*x_0*std::pow(y_0, 2)*z_0;
1341  b_dH[12] = -1.0/24.0*std::pow(y_0, 2)*z_0;
1342  b_dH[13] = -1.0/12.0*x_0*y_0*z_0;
1343  b_dH[14] = -1.0/24.0*x_0*std::pow(y_0, 2);
1344  b_H[5] = -1.0/120.0*x_0*std::pow(y_0, 2)*std::pow(z_0, 2) + 1.0/120.0;
1345  b_ImH[5] = (1.0/120.0)*x_0*std::pow(y_0, 2)*std::pow(z_0, 2);
1346  b_dH[15] = -1.0/120.0*std::pow(y_0, 2)*std::pow(z_0, 2);
1347  b_dH[16] = -1.0/60.0*x_0*y_0*std::pow(z_0, 2);
1348  b_dH[17] = -1.0/60.0*x_0*std::pow(y_0, 2)*z_0;
1349  b_H[6] = -1.0/360.0*x_0*std::pow(y_0, 2)*std::pow(z_0, 3) + 1.0/360.0;
1350  b_ImH[6] = (1.0/360.0)*x_0*std::pow(y_0, 2)*std::pow(z_0, 3);
1351  b_dH[18] = -1.0/360.0*std::pow(y_0, 2)*std::pow(z_0, 3);
1352  b_dH[19] = -1.0/180.0*x_0*y_0*std::pow(z_0, 3);
1353  b_dH[20] = -1.0/120.0*x_0*std::pow(y_0, 2)*std::pow(z_0, 2);
1354  b_H[7] = -1.0/60.0*x_0*std::pow(y_0, 3)*z_0 + 1.0/60.0;
1355  b_ImH[7] = (1.0/60.0)*x_0*std::pow(y_0, 3)*z_0;
1356  b_dH[21] = -1.0/60.0*std::pow(y_0, 3)*z_0;
1357  b_dH[22] = -1.0/20.0*x_0*std::pow(y_0, 2)*z_0;
1358  b_dH[23] = -1.0/60.0*x_0*std::pow(y_0, 3);
1359  b_H[8] = -1.0/360.0*x_0*std::pow(y_0, 3)*std::pow(z_0, 2) + 1.0/360.0;
1360  b_ImH[8] = (1.0/360.0)*x_0*std::pow(y_0, 3)*std::pow(z_0, 2);
1361  b_dH[24] = -1.0/360.0*std::pow(y_0, 3)*std::pow(z_0, 2);
1362  b_dH[25] = -1.0/120.0*x_0*std::pow(y_0, 2)*std::pow(z_0, 2);
1363  b_dH[26] = -1.0/180.0*x_0*std::pow(y_0, 3)*z_0;
1364  b_H[9] = -1.0/120.0*x_0*std::pow(y_0, 4)*z_0 + 1.0/120.0;
1365  b_ImH[9] = (1.0/120.0)*x_0*std::pow(y_0, 4)*z_0;
1366  b_dH[27] = -1.0/120.0*std::pow(y_0, 4)*z_0;
1367  b_dH[28] = -1.0/30.0*x_0*std::pow(y_0, 3)*z_0;
1368  b_dH[29] = -1.0/120.0*x_0*std::pow(y_0, 4);
1369  b_H[10] = -1.0/24.0*std::pow(x_0, 2)*y_0*z_0 + 1.0/24.0;
1370  b_ImH[10] = (1.0/24.0)*std::pow(x_0, 2)*y_0*z_0;
1371  b_dH[30] = -1.0/12.0*x_0*y_0*z_0;
1372  b_dH[31] = -1.0/24.0*std::pow(x_0, 2)*z_0;
1373  b_dH[32] = -1.0/24.0*std::pow(x_0, 2)*y_0;
1374  b_H[11] = -1.0/120.0*std::pow(x_0, 2)*y_0*std::pow(z_0, 2) + 1.0/120.0;
1375  b_ImH[11] = (1.0/120.0)*std::pow(x_0, 2)*y_0*std::pow(z_0, 2);
1376  b_dH[33] = -1.0/60.0*x_0*y_0*std::pow(z_0, 2);
1377  b_dH[34] = -1.0/120.0*std::pow(x_0, 2)*std::pow(z_0, 2);
1378  b_dH[35] = -1.0/60.0*std::pow(x_0, 2)*y_0*z_0;
1379  b_H[12] = -1.0/360.0*std::pow(x_0, 2)*y_0*std::pow(z_0, 3) + 1.0/360.0;
1380  b_ImH[12] = (1.0/360.0)*std::pow(x_0, 2)*y_0*std::pow(z_0, 3);
1381  b_dH[36] = -1.0/180.0*x_0*y_0*std::pow(z_0, 3);
1382  b_dH[37] = -1.0/360.0*std::pow(x_0, 2)*std::pow(z_0, 3);
1383  b_dH[38] = -1.0/120.0*std::pow(x_0, 2)*y_0*std::pow(z_0, 2);
1384  b_H[13] = -1.0/120.0*std::pow(x_0, 2)*std::pow(y_0, 2)*z_0 + 1.0/120.0;
1385  b_ImH[13] = (1.0/120.0)*std::pow(x_0, 2)*std::pow(y_0, 2)*z_0;
1386  b_dH[39] = -1.0/60.0*x_0*std::pow(y_0, 2)*z_0;
1387  b_dH[40] = -1.0/60.0*std::pow(x_0, 2)*y_0*z_0;
1388  b_dH[41] = -1.0/120.0*std::pow(x_0, 2)*std::pow(y_0, 2);
1389  b_H[14] = -1.0/720.0*std::pow(x_0, 2)*std::pow(y_0, 2)*std::pow(z_0, 2) + 1.0/720.0;
1390  b_ImH[14] = (1.0/720.0)*std::pow(x_0, 2)*std::pow(y_0, 2)*std::pow(z_0, 2);
1391  b_dH[42] = -1.0/360.0*x_0*std::pow(y_0, 2)*std::pow(z_0, 2);
1392  b_dH[43] = -1.0/360.0*std::pow(x_0, 2)*y_0*std::pow(z_0, 2);
1393  b_dH[44] = -1.0/360.0*std::pow(x_0, 2)*std::pow(y_0, 2)*z_0;
1394  b_H[15] = -1.0/360.0*std::pow(x_0, 2)*std::pow(y_0, 3)*z_0 + 1.0/360.0;
1395  b_ImH[15] = (1.0/360.0)*std::pow(x_0, 2)*std::pow(y_0, 3)*z_0;
1396  b_dH[45] = -1.0/180.0*x_0*std::pow(y_0, 3)*z_0;
1397  b_dH[46] = -1.0/120.0*std::pow(x_0, 2)*std::pow(y_0, 2)*z_0;
1398  b_dH[47] = -1.0/360.0*std::pow(x_0, 2)*std::pow(y_0, 3);
1399  b_H[16] = -1.0/60.0*std::pow(x_0, 3)*y_0*z_0 + 1.0/60.0;
1400  b_ImH[16] = (1.0/60.0)*std::pow(x_0, 3)*y_0*z_0;
1401  b_dH[48] = -1.0/20.0*std::pow(x_0, 2)*y_0*z_0;
1402  b_dH[49] = -1.0/60.0*std::pow(x_0, 3)*z_0;
1403  b_dH[50] = -1.0/60.0*std::pow(x_0, 3)*y_0;
1404  b_H[17] = -1.0/360.0*std::pow(x_0, 3)*y_0*std::pow(z_0, 2) + 1.0/360.0;
1405  b_ImH[17] = (1.0/360.0)*std::pow(x_0, 3)*y_0*std::pow(z_0, 2);
1406  b_dH[51] = -1.0/120.0*std::pow(x_0, 2)*y_0*std::pow(z_0, 2);
1407  b_dH[52] = -1.0/360.0*std::pow(x_0, 3)*std::pow(z_0, 2);
1408  b_dH[53] = -1.0/180.0*std::pow(x_0, 3)*y_0*z_0;
1409  b_H[18] = -1.0/360.0*std::pow(x_0, 3)*std::pow(y_0, 2)*z_0 + 1.0/360.0;
1410  b_ImH[18] = (1.0/360.0)*std::pow(x_0, 3)*std::pow(y_0, 2)*z_0;
1411  b_dH[54] = -1.0/120.0*std::pow(x_0, 2)*std::pow(y_0, 2)*z_0;
1412  b_dH[55] = -1.0/180.0*std::pow(x_0, 3)*y_0*z_0;
1413  b_dH[56] = -1.0/360.0*std::pow(x_0, 3)*std::pow(y_0, 2);
1414  b_H[19] = -1.0/120.0*std::pow(x_0, 4)*y_0*z_0 + 1.0/120.0;
1415  b_ImH[19] = (1.0/120.0)*std::pow(x_0, 4)*y_0*z_0;
1416  b_dH[57] = -1.0/30.0*std::pow(x_0, 3)*y_0*z_0;
1417  b_dH[58] = -1.0/120.0*std::pow(x_0, 4)*z_0;
1418  b_dH[59] = -1.0/120.0*std::pow(x_0, 4)*y_0;
1419  }
1420 
1421  template<>
1422  inline void _set_Ainv<3,4>(double* Ainv)
1423  {
1424  Ainv[0] = 7350.000000102523;
1425  Ainv[1] = -58800.000001145265;
1426  Ainv[2] = 158760.00000330684;
1427  Ainv[3] = -176400.00000355463;
1428  Ainv[4] = 69300.00000133508;
1429  Ainv[5] = -58800.00000131434;
1430  Ainv[6] = 317520.0000087264;
1431  Ainv[7] = -529200.0000152624;
1432  Ainv[8] = 277200.00000792247;
1433  Ainv[9] = 158760.00000429168;
1434  Ainv[10] = -529200.0000171745;
1435  Ainv[11] = 415800.00001428224;
1436  Ainv[12] = -176400.00000515667;
1437  Ainv[13] = 277200.0000098782;
1438  Ainv[14] = 69300.0000021238;
1439  Ainv[15] = -58800.00000043256;
1440  Ainv[16] = 317520.0000056473;
1441  Ainv[17] = -529200.0000114556;
1442  Ainv[18] = 277200.00000652357;
1443  Ainv[19] = 317520.0000056258;
1444  Ainv[20] = -1058400.000026395;
1445  Ainv[21] = 831600.000023565;
1446  Ainv[22] = -529200.0000127408;
1447  Ainv[23] = 831600.000025061;
1448  Ainv[24] = 277200.0000076974;
1449  Ainv[25] = 158759.99999982602;
1450  Ainv[26] = -529200.0000069222;
1451  Ainv[27] = 415800.00000845944;
1452  Ainv[28] = -529200.0000058037;
1453  Ainv[29] = 831600.0000172255;
1454  Ainv[30] = 415800.00000778487;
1455  Ainv[31] = -176399.99999827903;
1456  Ainv[32] = 277200.00000202795;
1457  Ainv[33] = 277200.0000008642;
1458  Ainv[34] = 69299.99999877777;
1459  Ainv[35] = -58800.00000116549;
1460  Ainv[36] = 752640.0000122804;
1461  Ainv[37] = -2540160.000035632;
1462  Ainv[38] = 3225600.000038972;
1463  Ainv[39] = -1386000.0000149338;
1464  Ainv[40] = 376320.0000123908;
1465  Ainv[41] = -3386880.0000843736;
1466  Ainv[42] = 7257600.00015172;
1467  Ainv[43] = -4435200.000080848;
1468  Ainv[44] = -846720.0000380357;
1469  Ainv[45] = 4838400.000157829;
1470  Ainv[46] = -4989600.000135858;
1471  Ainv[47] = 806400.0000443843;
1472  Ainv[48] = -2217600.000088444;
1473  Ainv[49] = -277200.000018094;
1474  Ainv[50] = 376320.0000080811;
1475  Ainv[51] = -3386880.0000680033;
1476  Ainv[52] = 7257600.00012926;
1477  Ainv[53] = -4435200.000072291;
1478  Ainv[54] = -1693440.0000608428;
1479  Ainv[55] = 9676800.000269087;
1480  Ainv[56] = -9979200.000240197;
1481  Ainv[57] = 2419200.000117806;
1482  Ainv[58] = -6652800.000234446;
1483  Ainv[59] = -1108800.0000666627;
1484  Ainv[60] = -846720.0000161835;
1485  Ainv[61] = 4838400.000103962;
1486  Ainv[62] = -4989600.000102972;
1487  Ainv[63] = 2419200.0000859434;
1488  Ainv[64] = -6652800.000195187;
1489  Ainv[65] = -1663200.00008159;
1490  Ainv[66] = 806400.0000112373;
1491  Ainv[67] = -2217600.0000470625;
1492  Ainv[68] = -1108800.0000339465;
1493  Ainv[69] = -277200.0000020715;
1494  Ainv[70] = 158760.00000369328;
1495  Ainv[71] = -2540160.000038802;
1496  Ainv[72] = 9797760.00011311;
1497  Ainv[73] = -13608000.000124745;
1498  Ainv[74] = 6237000.000048048;
1499  Ainv[75] = -846720.0000365952;
1500  Ainv[76] = 9797760.000257153;
1501  Ainv[77] = -24494400.000470474;
1502  Ainv[78] = 16632000.000253815;
1503  Ainv[79] = 1632960.0001085545;
1504  Ainv[80] = -12247200.000468971;
1505  Ainv[81] = 14968800.0004133;
1506  Ainv[82] = -1360800.0001241458;
1507  Ainv[83] = 4989600.00025822;
1508  Ainv[84] = 415800.00004994083;
1509  Ainv[85] = -846720.0000282913;
1510  Ainv[86] = 9797760.000220338;
1511  Ainv[87] = -24494400.000415083;
1512  Ainv[88] = 16632000.000231007;
1513  Ainv[89] = 3265920.000187264;
1514  Ainv[90] = -24494400.000832863;
1515  Ainv[91] = 29937600.000749674;
1516  Ainv[92] = -4082400.0003404384;
1517  Ainv[93] = 14968800.000700539;
1518  Ainv[94] = 1663200.0001866918;
1519  Ainv[95] = 1632960.000066994;
1520  Ainv[96] = -12247200.000352323;
1521  Ainv[97] = 14968800.000334851;
1522  Ainv[98] = -4082400.0002850033;
1523  Ainv[99] = 14968800.000621514;
1524  Ainv[100] = 2494800.000245698;
1525  Ainv[101] = -1360800.000062641;
1526  Ainv[102] = 4989600.000170332;
1527  Ainv[103] = 1663200.0001267835;
1528  Ainv[104] = 415800.0000206295;
1529  Ainv[105] = -176400.00000447792;
1530  Ainv[106] = 3225600.000047298;
1531  Ainv[107] = -13608000.00013808;
1532  Ainv[108] = 20160000.000152674;
1533  Ainv[109] = -9702000.000058752;
1534  Ainv[110] = 806400.0000429063;
1535  Ainv[111] = -10886400.000309391;
1536  Ainv[112] = 30240000.000571832;
1537  Ainv[113] = -22176000.00031015;
1538  Ainv[114] = -1360800.000124573;
1539  Ainv[115] = 12096000.000556855;
1540  Ainv[116] = -16632000.000498226;
1541  Ainv[117] = 1008000.000140425;
1542  Ainv[118] = -4435200.00030309;
1543  Ainv[119] = -277200.00005580054;
1544  Ainv[120] = 806400.000035473;
1545  Ainv[121] = -10886400.000270916;
1546  Ainv[122] = 30240000.000510357;
1547  Ainv[123] = -22176000.000283167;
1548  Ainv[124] = -2721600.000222588;
1549  Ainv[125] = 24192000.001007874;
1550  Ainv[126] = -33264000.00091404;
1551  Ainv[127] = 3024000.000391693;
1552  Ainv[128] = -13305600.000833513;
1553  Ainv[129] = -1108800.0002108046;
1554  Ainv[130] = -1360800.0000881895;
1555  Ainv[131] = 12096000.000439644;
1556  Ainv[132] = -16632000.000412801;
1557  Ainv[133] = 3024000.0003473586;
1558  Ainv[134] = -13305600.0007589;
1559  Ainv[135] = -1663200.0002869999;
1560  Ainv[136] = 1008000.0000880756;
1561  Ainv[137] = -4435200.000217112;
1562  Ainv[138] = -1108800.0001606955;
1563  Ainv[139] = -277200.0000313225;
1564  Ainv[140] = 69300.00000185265;
1565  Ainv[141] = -1386000.0000196814;
1566  Ainv[142] = 6237000.000057409;
1567  Ainv[143] = -9702000.000063432;
1568  Ainv[144] = 4851000.000024317;
1569  Ainv[145] = -277200.0000174412;
1570  Ainv[146] = 4158000.0001283134;
1571  Ainv[147] = -12474000.000238562;
1572  Ainv[148] = 9702000.000129621;
1573  Ainv[149] = 415800.0000499149;
1574  Ainv[150] = -4158000.000229367;
1575  Ainv[151] = 6237000.0002072435;
1576  Ainv[152] = -277200.0000556704;
1577  Ainv[153] = 1386000.0001238894;
1578  Ainv[154] = 69300.00002189013;
1579  Ainv[155] = -277200.00001487136;
1580  Ainv[156] = 4158000.000113292;
1581  Ainv[157] = -12474000.000213709;
1582  Ainv[158] = 9702000.000118231;
1583  Ainv[159] = 831600.0000907917;
1584  Ainv[160] = -8316000.000419168;
1585  Ainv[161] = 12474000.000382336;
1586  Ainv[162] = -831600.0001567428;
1587  Ainv[163] = 4158000.000343601;
1588  Ainv[164] = 277200.00008329254;
1589  Ainv[165] = 415800.0000376483;
1590  Ainv[166] = -4158000.000184981;
1591  Ainv[167] = 6237000.000173038;
1592  Ainv[168] = -831600.0001428284;
1593  Ainv[169] = 4158000.000316436;
1594  Ainv[170] = 415800.00011536747;
1595  Ainv[171] = -277200.0000384774;
1596  Ainv[172] = 1386000.0000921248;
1597  Ainv[173] = 277200.00006712554;
1598  Ainv[174] = 69300.00001401137;
1599  Ainv[175] = -58800.000000632535;
1600  Ainv[176] = 376320.00000802847;
1601  Ainv[177] = -846720.0000240471;
1602  Ainv[178] = 806400.0000255735;
1603  Ainv[179] = -277200.0000096959;
1604  Ainv[180] = 752640.0000092671;
1605  Ainv[181] = -3386880.0000677016;
1606  Ainv[182] = 4838400.000121574;
1607  Ainv[183] = -2217600.000063544;
1608  Ainv[184] = -2540160.000030306;
1609  Ainv[185] = 7257600.000135651;
1610  Ainv[186] = -4989600.00011682;
1611  Ainv[187] = 3225600.0000348277;
1612  Ainv[188] = -4435200.000077721;
1613  Ainv[189] = -1386000.0000138567;
1614  Ainv[190] = 376320.00000078353;
1615  Ainv[191] = -1693440.0000325774;
1616  Ainv[192] = 2419200.0000694934;
1617  Ainv[193] = -1108800.0000421072;
1618  Ainv[194] = -3386880.0000356133;
1619  Ainv[195] = 9676800.000186594;
1620  Ainv[196] = -6652800.000173015;
1621  Ainv[197] = 7257600.0000884645;
1622  Ainv[198] = -9979200.000189126;
1623  Ainv[199] = -4435200.000052884;
1624  Ainv[200] = -846719.9999883343;
1625  Ainv[201] = 2419200.0000228635;
1626  Ainv[202] = -1663200.0000444634;
1627  Ainv[203] = 4838400.000023638;
1628  Ainv[204] = -6652800.00010597;
1629  Ainv[205] = -4989600.000047971;
1630  Ainv[206] = 806399.9999715616;
1631  Ainv[207] = -1108799.9999948149;
1632  Ainv[208] = -2217599.999990473;
1633  Ainv[209] = -277199.99998345465;
1634  Ainv[210] = 317520.000006157;
1635  Ainv[211] = -3386880.0000660163;
1636  Ainv[212] = 9797760.000195045;
1637  Ainv[213] = -10886400.000211112;
1638  Ainv[214] = 4158000.000082303;
1639  Ainv[215] = -3386880.0000671945;
1640  Ainv[216] = 26127360.00046676;
1641  Ainv[217] = -48988800.000844605;
1642  Ainv[218] = 26611200.000451382;
1643  Ainv[219] = 9797760.000208193;
1644  Ainv[220] = -48988800.000883356;
1645  Ainv[221] = 44906400.0007667;
1646  Ainv[222] = -10886400.000238534;
1647  Ainv[223] = 26611200.000500116;
1648  Ainv[224] = 4158000.0000975872;
1649  Ainv[225] = -1693440.0000405947;
1650  Ainv[226] = 13063680.000352899;
1651  Ainv[227] = -24494400.000655685;
1652  Ainv[228] = 13305600.000377588;
1653  Ainv[229] = 13063680.000323612;
1654  Ainv[230] = -65318400.00142389;
1655  Ainv[231] = 59875200.001286365;
1656  Ainv[232] = -24494400.000633795;
1657  Ainv[233] = 59875200.00126669;
1658  Ainv[234] = 13305600.000353437;
1659  Ainv[235] = 3265920.000073637;
1660  Ainv[236] = -16329600.000505952;
1661  Ainv[237] = 14968800.000516744;
1662  Ainv[238] = -16329600.000440944;
1663  Ainv[239] = 39916800.00099601;
1664  Ainv[240] = 14968800.000420526;
1665  Ainv[241] = -2721600.0000397004;
1666  Ainv[242] = 6652800.000213887;
1667  Ainv[243] = 6652800.000153129;
1668  Ainv[244] = 831600.0000022424;
1669  Ainv[245] = -529200.0000129581;
1670  Ainv[246] = 7257600.000135825;
1671  Ainv[247] = -24494400.000401907;
1672  Ainv[248] = 30240000.00044109;
1673  Ainv[249] = -12474000.000173695;
1674  Ainv[250] = 4838400.0001286315;
1675  Ainv[251] = -48988800.00089927;
1676  Ainv[252] = 108864000.00164655;
1677  Ainv[253] = -66528000.00089255;
1678  Ainv[254] = -12247200.000387179;
1679  Ainv[255] = 81648000.00164795;
1680  Ainv[256] = -89812800.00145245;
1681  Ainv[257] = 12096000.000440244;
1682  Ainv[258] = -39916800.000920564;
1683  Ainv[259] = -4158000.0001804563;
1684  Ainv[260] = 2419200.0001004287;
1685  Ainv[261] = -24494400.00076464;
1686  Ainv[262] = 54432000.00140397;
1687  Ainv[263] = -33264000.00079848;
1688  Ainv[264] = -16329600.000659123;
1689  Ainv[265] = 108864000.0028333;
1690  Ainv[266] = -119750400.00256322;
1691  Ainv[267] = 27216000.001189794;
1692  Ainv[268] = -89812800.0023892;
1693  Ainv[269] = -13305600.000646982;
1694  Ainv[270] = -4082400.0002414933;
1695  Ainv[271] = 27216000.001199216;
1696  Ainv[272] = -29937600.001140587;
1697  Ainv[273] = 18144000.001011837;
1698  Ainv[274] = -59875200.00209515;
1699  Ainv[275] = -14968800.000840174;
1700  Ainv[276] = 3024000.0002315827;
1701  Ainv[277] = -9979200.000575162;
1702  Ainv[278] = -6652800.0004320545;
1703  Ainv[279] = -831600.0000811772;
1704  Ainv[280] = 277200.0000076696;
1705  Ainv[281] = -4435200.000080483;
1706  Ainv[282] = 16632000.000238696;
1707  Ainv[283] = -22176000.00026422;
1708  Ainv[284] = 9702000.00010438;
1709  Ainv[285] = -2217600.0000727493;
1710  Ainv[286] = 26611200.00051697;
1711  Ainv[287] = -66528000.00095568;
1712  Ainv[288] = 44352000.000522345;
1713  Ainv[289] = 4989600.000214722;
1714  Ainv[290] = -39916800.00092927;
1715  Ainv[291] = 49896000.000829935;
1716  Ainv[292] = -4435200.000242269;
1717  Ainv[293] = 17740800.00051325;
1718  Ainv[294] = 1386000.000098839;
1719  Ainv[295] = -1108800.000062503;
1720  Ainv[296] = 13305600.000459762;
1721  Ainv[297] = -33264000.00084755;
1722  Ainv[298] = 22176000.000479378;
1723  Ainv[299] = 6652800.000381403;
1724  Ainv[300] = -53222400.001651116;
1725  Ainv[301] = 66528000.00150198;
1726  Ainv[302] = -9979200.000660878;
1727  Ainv[303] = 39916800.00135512;
1728  Ainv[304] = 4435200.0003545135;
1729  Ainv[305] = 1663200.000160972;
1730  Ainv[306] = -13305600.00074161;
1731  Ainv[307] = 16632000.000692442;
1732  Ainv[308] = -6652800.000610228;
1733  Ainv[309] = 26611200.001246434;
1734  Ainv[310] = 4989600.000479314;
1735  Ainv[311] = -1108800.0001683352;
1736  Ainv[312] = 4435200.00036888;
1737  Ainv[313] = 2217600.0002769143;
1738  Ainv[314] = 277200.00006415125;
1739  Ainv[315] = 158760.00000128808;
1740  Ainv[316] = -846720.0000190693;
1741  Ainv[317] = 1632960.0000593935;
1742  Ainv[318] = -1360800.0000623853;
1743  Ainv[319] = 415800.00002382696;
1744  Ainv[320] = -2540160.0000215597;
1745  Ainv[321] = 9797760.00017601;
1746  Ainv[322] = -12247200.000325145;
1747  Ainv[323] = 4989600.000171065;
1748  Ainv[324] = 9797760.000068912;
1749  Ainv[325] = -24494400.00035495;
1750  Ainv[326] = 14968800.000317061;
1751  Ainv[327] = -13608000.000072913;
1752  Ainv[328] = 16632000.000200182;
1753  Ainv[329] = 6237000.0000268305;
1754  Ainv[330] = -846719.9999969491;
1755  Ainv[331] = 3265920.000062841;
1756  Ainv[332] = -4082400.0001401887;
1757  Ainv[333] = 1663200.0000919767;
1758  Ainv[334] = 9797760.000077434;
1759  Ainv[335] = -24494400.000457168;
1760  Ainv[336] = 14968800.000438359;
1761  Ainv[337] = -24494400.000209004;
1762  Ainv[338] = 29937600.000489;
1763  Ainv[339] = 16632000.000120161;
1764  Ainv[340] = 1632959.9999494406;
1765  Ainv[341] = -4082399.999997086;
1766  Ainv[342] = 2494800.000073552;
1767  Ainv[343] = -12247200.000021925;
1768  Ainv[344] = 14968800.000229206;
1769  Ainv[345] = 14968800.000103122;
1770  Ainv[346] = -1360799.999895959;
1771  Ainv[347] = 1663199.9999452322;
1772  Ainv[348] = 4989599.999945568;
1773  Ainv[349] = 415799.9999426172;
1774  Ainv[350] = -529200.0000096033;
1775  Ainv[351] = 4838400.00010536;
1776  Ainv[352] = -12247200.00031697;
1777  Ainv[353] = 12096000.00033683;
1778  Ainv[354] = -4158000.000132554;
1779  Ainv[355] = 7257600.000107797;
1780  Ainv[356] = -48988800.00077355;
1781  Ainv[357] = 81648000.0014126;
1782  Ainv[358] = -39916800.00075481;
1783  Ainv[359] = -24494400.000332933;
1784  Ainv[360] = 108864000.00147794;
1785  Ainv[361] = -89812800.00129828;
1786  Ainv[362] = 30240000.00036723;
1787  Ainv[363] = -66528000.00083791;
1788  Ainv[364] = -12474000.000148185;
1789  Ainv[365] = 2419200.0000599734;
1790  Ainv[366] = -16329600.000550471;
1791  Ainv[367] = 27216000.000987086;
1792  Ainv[368] = -13305600.000588475;
1793  Ainv[369] = -24494400.000517894;
1794  Ainv[370] = 108864000.00229073;
1795  Ainv[371] = -89812800.0020976;
1796  Ainv[372] = 54432000.00102967;
1797  Ainv[373] = -119750400.00208965;
1798  Ainv[374] = -33264000.000556275;
1799  Ainv[375] = -4082400.0000927025;
1800  Ainv[376] = 18144000.000724845;
1801  Ainv[377] = -14968800.00077596;
1802  Ainv[378] = 27216000.000674326;
1803  Ainv[379] = -59875200.001543246;
1804  Ainv[380] = -29937600.000656188;
1805  Ainv[381] = 3024000.000021394;
1806  Ainv[382] = -6652800.000278273;
1807  Ainv[383] = -9979200.000197759;
1808  Ainv[384] = -831599.9999832879;
1809  Ainv[385] = 415800.00001009804;
1810  Ainv[386] = -4989600.000106033;
1811  Ainv[387] = 14968800.000317551;
1812  Ainv[388] = -16632000.000342708;
1813  Ainv[389] = 6237000.000136512;
1814  Ainv[390] = -4989600.0001015095;
1815  Ainv[391] = 44906400.000714414;
1816  Ainv[392] = -89812800.00130995;
1817  Ainv[393] = 49896000.000709556;
1818  Ainv[394] = 14968800.000307638;
1819  Ainv[395] = -89812800.0013193;
1820  Ainv[396] = 89812800.00116605;
1821  Ainv[397] = -16632000.000342261;
1822  Ainv[398] = 49896000.000743404;
1823  Ainv[399] = 6237000.000140932;
1824  Ainv[400] = -1663200.00007863;
1825  Ainv[401] = 14968800.000597542;
1826  Ainv[402] = -29937600.001059018;
1827  Ainv[403] = 16632000.00061721;
1828  Ainv[404] = 14968800.000524504;
1829  Ainv[405] = -89812800.00220688;
1830  Ainv[406] = 89812800.00201072;
1831  Ainv[407] = -29937600.000948783;
1832  Ainv[408] = 89812800.00188343;
1833  Ainv[409] = 16632000.00050525;
1834  Ainv[410] = 2494800.000187075;
1835  Ainv[411] = -14968800.000905227;
1836  Ainv[412] = 14968800.000871748;
1837  Ainv[413] = -14968800.00079985;
1838  Ainv[414] = 44906400.00160646;
1839  Ainv[415] = 14968800.000651237;
1840  Ainv[416] = -1663200.0001764225;
1841  Ainv[417] = 4989600.000425641;
1842  Ainv[418] = 4989600.000320881;
1843  Ainv[419] = 415800.0000620535;
1844  Ainv[420] = -176400.00000104803;
1845  Ainv[421] = 806400.0000187437;
1846  Ainv[422] = -1360800.0000608345;
1847  Ainv[423] = 1008000.0000632346;
1848  Ainv[424] = -277200.00002432364;
1849  Ainv[425] = 3225600.000020359;
1850  Ainv[426] = -10886400.000187855;
1851  Ainv[427] = 12096000.000356946;
1852  Ainv[428] = -4435200.000189045;
1853  Ainv[429] = -13608000.000062287;
1854  Ainv[430] = 30240000.00037897;
1855  Ainv[431] = -16632000.00035083;
1856  Ainv[432] = 20160000.000057526;
1857  Ainv[433] = -22176000.000209037;
1858  Ainv[434] = -9702000.000017902;
1859  Ainv[435] = 806399.9999923867;
1860  Ainv[436] = -2721600.0000482616;
1861  Ainv[437] = 3024000.0001131445;
1862  Ainv[438] = -1108800.000082517;
1863  Ainv[439] = -10886400.000070298;
1864  Ainv[440] = 24192000.000469405;
1865  Ainv[441] = -13305600.000463208;
1866  Ainv[442] = 30240000.000205323;
1867  Ainv[443] = -33264000.000525326;
1868  Ainv[444] = -22176000.000111133;
1869  Ainv[445] = -1360799.9999288279;
1870  Ainv[446] = 3023999.9999418305;
1871  Ainv[447] = -1663200.0000418695;
1872  Ainv[448] = 12095999.99999172;
1873  Ainv[449] = -13305600.000210911;
1874  Ainv[450] = -16632000.000094444;
1875  Ainv[451] = 1007999.9998629194;
1876  Ainv[452] = -1108799.9999060507;
1877  Ainv[453] = -4435199.999918695;
1878  Ainv[454] = -277199.9999260917;
1879  Ainv[455] = 277200.00000461756;
1880  Ainv[456] = -2217600.0000520083;
1881  Ainv[457] = 4989600.000159774;
1882  Ainv[458] = -4435200.0001665335;
1883  Ainv[459] = 1386000.0000660014;
1884  Ainv[460] = -4435200.0000531655;
1885  Ainv[461] = 26611200.00039701;
1886  Ainv[462] = -39916800.00073395;
1887  Ainv[463] = 17740800.000392105;
1888  Ainv[464] = 16632000.000162268;
1889  Ainv[465] = -66528000.000764325;
1890  Ainv[466] = 49896000.00068077;
1891  Ainv[467] = -22176000.000169586;
1892  Ainv[468] = 44352000.000431485;
1893  Ainv[469] = 9702000.000066502;
1894  Ainv[470] = -1108800.0000272035;
1895  Ainv[471] = 6652800.000267266;
1896  Ainv[472] = -9979200.000457862;
1897  Ainv[473] = 4435200.000284617;
1898  Ainv[474] = 13305600.000257239;
1899  Ainv[475] = -53222400.00115092;
1900  Ainv[476] = 39916800.00106972;
1901  Ainv[477] = -33264000.000520904;
1902  Ainv[478] = 66528000.001078576;
1903  Ainv[479] = 22176000.000269327;
1904  Ainv[480] = 1663200.0000329467;
1905  Ainv[481] = -6652800.000316806;
1906  Ainv[482] = 4989600.000362045;
1907  Ainv[483] = -13305600.000317747;
1908  Ainv[484] = 26611200.000747338;
1909  Ainv[485] = 16632000.000319775;
1910  Ainv[486] = -1108799.9999878034;
1911  Ainv[487] = 2217600.0001068306;
1912  Ainv[488] = 4435200.000075441;
1913  Ainv[489] = 277199.9999799805;
1914  Ainv[490] = 69300.0000002862;
1915  Ainv[491] = -277200.0000065495;
1916  Ainv[492] = 415800.00002217776;
1917  Ainv[493] = -277200.00002287375;
1918  Ainv[494] = 69300.00000886196;
1919  Ainv[495] = -1386000.000006717;
1920  Ainv[496] = 4158000.0000708885;
1921  Ainv[497] = -4158000.0001383913;
1922  Ainv[498] = 1386000.0000737787;
1923  Ainv[499] = 6237000.000019196;
1924  Ainv[500] = -12474000.000142515;
1925  Ainv[501] = 6237000.000136554;
1926  Ainv[502] = -9702000.000013929;
1927  Ainv[503] = 9702000.000076579;
1928  Ainv[504] = 4851000.000002608;
1929  Ainv[505] = -277199.9999957402;
1930  Ainv[506] = 831600.0000121482;
1931  Ainv[507] = -831600.0000306785;
1932  Ainv[508] = 277200.00002596213;
1933  Ainv[509] = 4158000.000022798;
1934  Ainv[510] = -8316000.000172661;
1935  Ainv[511] = 4158000.0001745694;
1936  Ainv[512] = -12474000.000071924;
1937  Ainv[513] = 12474000.000200752;
1938  Ainv[514] = 9702000.000035988;
1939  Ainv[515] = 415799.99996769003;
1940  Ainv[516] = -831599.9999600871;
1941  Ainv[517] = 415800.00000386813;
1942  Ainv[518] = -4157999.9999875026;
1943  Ainv[519] = 4158000.000070447;
1944  Ainv[520] = 6237000.0000315495;
1945  Ainv[521] = -277199.99993992894;
1946  Ainv[522] = 277199.9999531648;
1947  Ainv[523] = 1385999.9999625974;
1948  Ainv[524] = 69299.99996799619;
1949  Ainv[525] = -58800.00000096999;
1950  Ainv[526] = 376320.00001045276;
1951  Ainv[527] = -846720.0000294202;
1952  Ainv[528] = 806400.0000316915;
1953  Ainv[529] = -277200.00001174136;
1954  Ainv[530] = 376320.0000138193;
1955  Ainv[531] = -1693440.0000816395;
1956  Ainv[532] = 2419200.000135176;
1957  Ainv[533] = -1108800.0000679533;
1958  Ainv[534] = -846720.0000478748;
1959  Ainv[535] = 2419200.000167179;
1960  Ainv[536] = -1663200.0001293449;
1961  Ainv[537] = 806400.0000609352;
1962  Ainv[538] = -1108800.0000994748;
1963  Ainv[539] = -277200.00002598006;
1964  Ainv[540] = 752640.0000030067;
1965  Ainv[541] = -3386880.000051187;
1966  Ainv[542] = 4838400.000108257;
1967  Ainv[543] = -2217600.0000608065;
1968  Ainv[544] = -3386880.0000557993;
1969  Ainv[545] = 9676800.000250855;
1970  Ainv[546] = -6652800.000216159;
1971  Ainv[547] = 4838400.000138415;
1972  Ainv[548] = -6652800.00024768;
1973  Ainv[549] = -2217600.0000891155;
1974  Ainv[550] = -2540159.9999920484;
1975  Ainv[551] = 7257600.00005985;
1976  Ainv[552] = -4989600.0000794595;
1977  Ainv[553] = 7257600.000049082;
1978  Ainv[554] = -9979200.000160497;
1979  Ainv[555] = -4989600.000081453;
1980  Ainv[556] = 3225599.999973;
1981  Ainv[557] = -4435200.000013738;
1982  Ainv[558] = -4435200.0000008885;
1983  Ainv[559] = -1385999.9999826315;
1984  Ainv[560] = 317520.00000617554;
1985  Ainv[561] = -3386880.0000651325;
1986  Ainv[562] = 9797760.000188036;
1987  Ainv[563] = -10886400.00020916;
1988  Ainv[564] = 4158000.0000800737;
1989  Ainv[565] = -1693440.0000740553;
1990  Ainv[566] = 13063680.000461642;
1991  Ainv[567] = -24494400.000800684;
1992  Ainv[568] = 13305600.00041899;
1993  Ainv[569] = 3265920.000241687;
1994  Ainv[570] = -16329600.000898626;
1995  Ainv[571] = 14968800.000730563;
1996  Ainv[572] = -2721600.0002984796;
1997  Ainv[573] = 6652800.000518389;
1998  Ainv[574] = 831600.0001249633;
1999  Ainv[575] = -3386880.000034462;
2000  Ainv[576] = 26127360.000347156;
2001  Ainv[577] = -48988800.000693776;
2002  Ainv[578] = 26611200.000387717;
2003  Ainv[579] = 13063680.000338761;
2004  Ainv[580] = -65318400.00147296;
2005  Ainv[581] = 59875200.001281634;
2006  Ainv[582] = -16329600.000735832;
2007  Ainv[583] = 39916800.001351535;
2008  Ainv[584] = 6652800.000447295;
2009  Ainv[585] = 9797760.000038035;
2010  Ainv[586] = -48988800.00050009;
2011  Ainv[587] = 44906400.00053723;
2012  Ainv[588] = -24494400.000414792;
2013  Ainv[589] = 59875200.00103251;
2014  Ainv[590] = 14968800.000485854;
2015  Ainv[591] = -10886399.999978237;
2016  Ainv[592] = 26611200.00020046;
2017  Ainv[593] = 13305600.000130605;
2018  Ainv[594] = 4157999.999967272;
2019  Ainv[595] = -529200.0000115639;
2020  Ainv[596] = 7257600.000122449;
2021  Ainv[597] = -24494400.000360046;
2022  Ainv[598] = 30240000.00040793;
2023  Ainv[599] = -12474000.000158802;
2024  Ainv[600] = 2419200.000125807;
2025  Ainv[601] = -24494400.000824843;
2026  Ainv[602] = 54432000.00147937;
2027  Ainv[603] = -33264000.000793636;
2028  Ainv[604] = -4082400.0003923876;
2029  Ainv[605] = 27216000.001550246;
2030  Ainv[606] = -29937600.001310445;
2031  Ainv[607] = 3024000.0004715435;
2032  Ainv[608] = -9979200.000871865;
2033  Ainv[609] = -831600.0001937558;
2034  Ainv[610] = 4838400.000076611;
2035  Ainv[611] = -48988800.000667445;
2036  Ainv[612] = 108864000.00131066;
2037  Ainv[613] = -66528000.000734255;
2038  Ainv[614] = -16329600.00061162;
2039  Ainv[615] = 108864000.00266477;
2040  Ainv[616] = -119750400.00235178;
2041  Ainv[617] = 18144000.001230564;
2042  Ainv[618] = -59875200.00234434;
2043  Ainv[619] = -6652800.000717939;
2044  Ainv[620] = -12247200.000142857;
2045  Ainv[621] = 81648000.0010226;
2046  Ainv[622] = -89812800.00102556;
2047  Ainv[623] = 27216000.000845198;
2048  Ainv[624] = -89812800.00193521;
2049  Ainv[625] = -14968800.000861527;
2050  Ainv[626] = 12096000.00008254;
2051  Ainv[627] = -39916800.00045919;
2052  Ainv[628] = -13305600.000340529;
2053  Ainv[629] = -4158000.000003424;
2054  Ainv[630] = 277200.000006563;
2055  Ainv[631] = -4435200.000070124;
2056  Ainv[632] = 16632000.000208437;
2057  Ainv[633] = -22176000.00023833;
2058  Ainv[634] = 9702000.000093477;
2059  Ainv[635] = -1108800.0000674156;
2060  Ainv[636] = 13305600.000460235;
2061  Ainv[637] = -33264000.000843596;
2062  Ainv[638] = 22176000.000458974;
2063  Ainv[639] = 1663200.0002034898;
2064  Ainv[640] = -13305600.000845732;
2065  Ainv[641] = 16632000.000734776;
2066  Ainv[642] = -1108800.0002391294;
2067  Ainv[643] = 4435200.000466947;
2068  Ainv[644] = 277200.0000966239;
2069  Ainv[645] = -2217600.000046703;
2070  Ainv[646] = 26611200.00038459;
2071  Ainv[647] = -66528000.00075085;
2072  Ainv[648] = 44352000.00042167;
2073  Ainv[649] = 6652800.000337804;
2074  Ainv[650] = -53222400.00149214;
2075  Ainv[651] = 66528000.00133335;
2076  Ainv[652] = -6652800.000648275;
2077  Ainv[653] = 26611200.001280576;
2078  Ainv[654] = 2217600.0003673085;
2079  Ainv[655] = 4989600.000100579;
2080  Ainv[656] = -39916800.000603095;
2081  Ainv[657] = 49896000.000587866;
2082  Ainv[658] = -9979200.00049302;
2083  Ainv[659] = 39916800.00109924;
2084  Ainv[660] = 4989600.000467821;
2085  Ainv[661] = -4435200.000080884;
2086  Ainv[662] = 17740800.000282466;
2087  Ainv[663] = 4435200.000217052;
2088  Ainv[664] = 1386000.0000200022;
2089  Ainv[665] = 317520.00000344287;
2090  Ainv[666] = -1693440.0000436737;
2091  Ainv[667] = 3265920.000125182;
2092  Ainv[668] = -2721600.0001333635;
2093  Ainv[669] = 831600.0000483401;
2094  Ainv[670] = -3386880.0000642575;
2095  Ainv[671] = 13063680.000403136;
2096  Ainv[672] = -16329600.000674872;
2097  Ainv[673] = 6652800.000337686;
2098  Ainv[674] = 9797760.000232127;
2099  Ainv[675] = -24494400.000862744;
2100  Ainv[676] = 14968800.000680653;
2101  Ainv[677] = -10886400.000297338;
2102  Ainv[678] = 13305600.000519779;
2103  Ainv[679] = 4158000.0001261863;
2104  Ainv[680] = -3386879.9999900507;
2105  Ainv[681] = 13063680.000147844;
2106  Ainv[682] = -16329600.000381673;
2107  Ainv[683] = 6652800.000225986;
2108  Ainv[684] = 26127360.00020335;
2109  Ainv[685] = -65318400.00107422;
2110  Ainv[686] = 39916800.000960685;
2111  Ainv[687] = -48988800.00061437;
2112  Ainv[688] = 59875200.00117949;
2113  Ainv[689] = 26611200.0004168;
2114  Ainv[690] = 9797759.999858586;
2115  Ainv[691] = -24494400.000023175;
2116  Ainv[692] = 14968800.000207772;
2117  Ainv[693] = -48988800.000030495;
2118  Ainv[694] = 59875200.00053409;
2119  Ainv[695] = 44906400.0002956;
2120  Ainv[696] = -10886399.999718148;
2121  Ainv[697] = 13305599.999878513;
2122  Ainv[698] = 26611199.99984778;
2123  Ainv[699] = 4157999.999843997;
2124  Ainv[700] = -1058400.0000179168;
2125  Ainv[701] = 9676800.00019494;
2126  Ainv[702] = -24494400.00056167;
2127  Ainv[703] = 24192000.000618946;
2128  Ainv[704] = -8316000.000234705;
2129  Ainv[705] = 9676800.000237059;
2130  Ainv[706] = -65318400.00149723;
2131  Ainv[707] = 108864000.00258736;
2132  Ainv[708] = -53222400.00134306;
2133  Ainv[709] = -24494400.000794463;
2134  Ainv[710] = 108864000.00301129;
2135  Ainv[711] = -89812800.00244983;
2136  Ainv[712] = 24192000.00099214;
2137  Ainv[713] = -53222400.00176616;
2138  Ainv[714] = -8316000.000417619;
2139  Ainv[715] = 9676800.000072366;
2140  Ainv[716] = -65318400.0009323;
2141  Ainv[717] = 108864000.00192875;
2142  Ainv[718] = -53222400.0010882;
2143  Ainv[719] = -65318400.00098324;
2144  Ainv[720] = 290304000.00443804;
2145  Ainv[721] = -239500800.00388208;
2146  Ainv[722] = 108864000.00227854;
2147  Ainv[723] = -239500800.00427514;
2148  Ainv[724] = -53222400.00142192;
2149  Ainv[725] = -24494399.999966398;
2150  Ainv[726] = 108864000.00115883;
2151  Ainv[727] = -89812800.00138332;
2152  Ainv[728] = 108864000.0010035;
2153  Ainv[729] = -239500800.00285116;
2154  Ainv[730] = -89812800.0013922;
2155  Ainv[731] = 24191999.9997089;
2156  Ainv[732] = -53222400.000334136;
2157  Ainv[733] = -53222400.00017655;
2158  Ainv[734] = -8315999.999793375;
2159  Ainv[735] = 831600.0000176197;
2160  Ainv[736] = -9979200.000185473;
2161  Ainv[737] = 29937600.000541728;
2162  Ainv[738] = -33264000.000609986;
2163  Ainv[739] = 12474000.000236642;
2164  Ainv[740] = -6652800.00020031;
2165  Ainv[741] = 59875200.00129967;
2166  Ainv[742] = -119750400.00231089;
2167  Ainv[743] = 66528000.001230925;
2168  Ainv[744] = 14968800.000638321;
2169  Ainv[745] = -89812800.00250338;
2170  Ainv[746] = 89812800.00209862;
2171  Ainv[747] = -13305600.00077937;
2172  Ainv[748] = 39916800.00143353;
2173  Ainv[749] = 4158000.000324391;
2174  Ainv[750] = -6652800.000107971;
2175  Ainv[751] = 59875200.00097074;
2176  Ainv[752] = -119750400.0019082;
2177  Ainv[753] = 66528000.001067825;
2178  Ainv[754] = 39916800.00092641;
2179  Ainv[755] = -239500800.00402534;
2180  Ainv[756] = 239500800.0035329;
2181  Ainv[757] = -59875200.00190972;
2182  Ainv[758] = 179625600.00362414;
2183  Ainv[759] = 26611200.001132682;
2184  Ainv[760] = 14968800.000177652;
2185  Ainv[761] = -89812800.00144275;
2186  Ainv[762] = 89812800.00145654;
2187  Ainv[763] = -59875200.00121546;
2188  Ainv[764] = 179625600.00281948;
2189  Ainv[765] = 44906400.00128832;
2190  Ainv[766] = -13305600.00006842;
2191  Ainv[767] = 39916800.000611424;
2192  Ainv[768] = 26611200.00045672;
2193  Ainv[769] = 4157999.999980026;
2194  Ainv[770] = -529200.0000036679;
2195  Ainv[771] = 2419200.0000591795;
2196  Ainv[772] = -4082400.000174199;
2197  Ainv[773] = 3024000.0001845798;
2198  Ainv[774] = -831600.0000657889;
2199  Ainv[775] = 7257600.000092822;
2200  Ainv[776] = -24494400.00063148;
2201  Ainv[777] = 27216000.001078002;
2202  Ainv[778] = -9979200.000540763;
2203  Ainv[779] = -24494400.000342153;
2204  Ainv[780] = 54432000.00138254;
2205  Ainv[781] = -29937600.001121577;
2206  Ainv[782] = 30240000.000433892;
2207  Ainv[783] = -33264000.000831462;
2208  Ainv[784] = -12474000.000180641;
2209  Ainv[785] = 4838399.999954805;
2210  Ainv[786] = -16329600.000106404;
2211  Ainv[787] = 18144000.000414908;
2212  Ainv[788] = -6652800.000264922;
2213  Ainv[789] = -48988800.00022951;
2214  Ainv[790] = 108864000.00150391;
2215  Ainv[791] = -59875200.00139789;
2216  Ainv[792] = 108864000.00085792;
2217  Ainv[793] = -119750400.00180075;
2218  Ainv[794] = -66528000.000602156;
2219  Ainv[795] = -12247199.999658763;
2220  Ainv[796] = 27215999.999710426;
2221  Ainv[797] = -14968800.000103045;
2222  Ainv[798] = 81647999.99980216;
2223  Ainv[799] = -89812800.00055234;
2224  Ainv[800] = -89812800.00033505;
2225  Ainv[801] = 12095999.999385044;
2226  Ainv[802] = -13305599.99958613;
2227  Ainv[803] = -39916799.99958413;
2228  Ainv[804] = -4157999.9996739775;
2229  Ainv[805] = 831600.000012294;
2230  Ainv[806] = -6652800.000140101;
2231  Ainv[807] = 14968800.000404125;
2232  Ainv[808] = -13305600.000441365;
2233  Ainv[809] = 4158000.0001658993;
2234  Ainv[810] = -9979200.000177257;
2235  Ainv[811] = 59875200.00115339;
2236  Ainv[812] = -89812800.00199929;
2237  Ainv[813] = 39916800.00103301;
2238  Ainv[814] = 29937600.00059942;
2239  Ainv[815] = -119750400.00236331;
2240  Ainv[816] = 89812800.00194171;
2241  Ainv[817] = -33264000.00074625;
2242  Ainv[818] = 66528000.0013925;
2243  Ainv[819] = 12474000.00031199;
2244  Ainv[820] = -6652800.000030296;
2245  Ainv[821] = 39916800.000599176;
2246  Ainv[822] = -59875200.001286946;
2247  Ainv[823] = 26611200.000732824;
2248  Ainv[824] = 59875200.000685714;
2249  Ainv[825] = -239500800.00324342;
2250  Ainv[826] = 179625600.00285262;
2251  Ainv[827] = -119750400.00166857;
2252  Ainv[828] = 239500800.0032422;
2253  Ainv[829] = 66528000.00105362;
2254  Ainv[830] = 14968799.999873925;
2255  Ainv[831] = -59875200.0006036;
2256  Ainv[832] = 44906400.00083448;
2257  Ainv[833] = -89812800.00056905;
2258  Ainv[834] = 179625600.00191566;
2259  Ainv[835] = 89812800.0009598;
2260  Ainv[836] = -13305599.999635946;
2261  Ainv[837] = 26611200.000054643;
2262  Ainv[838] = 39916799.99998763;
2263  Ainv[839] = 4157999.99977834;
2264  Ainv[840] = 277200.0000011374;
2265  Ainv[841] = -1108800.0000260412;
2266  Ainv[842] = 1663200.000079092;
2267  Ainv[843] = -1108800.0000837662;
2268  Ainv[844] = 277200.0000295035;
2269  Ainv[845] = -4435200.000042271;
2270  Ainv[846] = 13305600.000315273;
2271  Ainv[847] = -13305600.000550343;
2272  Ainv[848] = 4435200.000277687;
2273  Ainv[849] = 16632000.00015679;
2274  Ainv[850] = -33264000.000697553;
2275  Ainv[851] = 16632000.00058305;
2276  Ainv[852] = -22176000.00019433;
2277  Ainv[853] = 22176000.0004155;
2278  Ainv[854] = 9702000.000078226;
2279  Ainv[855] = -2217599.9999662144;
2280  Ainv[856] = 6652800.000004663;
2281  Ainv[857] = -6652800.000135698;
2282  Ainv[858] = 2217600.0000972496;
2283  Ainv[859] = 26611200.000080597;
2284  Ainv[860] = -53222400.0006901;
2285  Ainv[861] = 26611200.000664297;
2286  Ainv[862] = -66528000.000383355;
2287  Ainv[863] = 66528000.00088605;
2288  Ainv[864] = 44352000.000274494;
2289  Ainv[865] = 4989599.999785106;
2290  Ainv[866] = -9979199.999729041;
2291  Ainv[867] = 4989599.999965378;
2292  Ainv[868] = -39916799.99981197;
2293  Ainv[869] = 39916800.000178866;
2294  Ainv[870] = 49896000.000121534;
2295  Ainv[871] = -4435199.999628269;
2296  Ainv[872] = 4435199.999709273;
2297  Ainv[873] = 17740799.999729715;
2298  Ainv[874] = 1385999.9998068013;
2299  Ainv[875] = 158760.0000032977;
2300  Ainv[876] = -846720.0000336806;
2301  Ainv[877] = 1632960.0000928075;
2302  Ainv[878] = -1360800.0000988392;
2303  Ainv[879] = 415800.00003636844;
2304  Ainv[880] = -846720.0000462404;
2305  Ainv[881] = 3265920.0002580164;
2306  Ainv[882] = -4082400.0004144455;
2307  Ainv[883] = 1663200.0002043962;
2308  Ainv[884] = 1632960.0001615982;
2309  Ainv[885] = -4082400.0005312506;
2310  Ainv[886] = 2494800.000396652;
2311  Ainv[887] = -1360800.0002078908;
2312  Ainv[888] = 1663200.0003192613;
2313  Ainv[889] = 415800.0000895407;
2314  Ainv[890] = -2540160.0000124476;
2315  Ainv[891] = 9797760.000176672;
2316  Ainv[892] = -12247200.00036265;
2317  Ainv[893] = 4989600.000200622;
2318  Ainv[894] = 9797760.00019349;
2319  Ainv[895] = -24494400.000826016;
2320  Ainv[896] = 14968800.000694942;
2321  Ainv[897] = -12247200.00047459;
2322  Ainv[898] = 14968800.000809643;
2323  Ainv[899] = 4989600.000306354;
2324  Ainv[900] = 9797759.999984106;
2325  Ainv[901] = -24494400.00022629;
2326  Ainv[902] = 14968800.000279978;
2327  Ainv[903] = -24494400.000185657;
2328  Ainv[904] = 29937600.000550773;
2329  Ainv[905] = 14968800.000286171;
2330  Ainv[906] = -13607999.999925325;
2331  Ainv[907] = 16632000.000067111;
2332  Ainv[908] = 16632000.00001859;
2333  Ainv[909] = 6236999.999949173;
2334  Ainv[910] = -529200.00001114;
2335  Ainv[911] = 4838400.00011506;
2336  Ainv[912] = -12247200.000327526;
2337  Ainv[913] = 12096000.000361059;
2338  Ainv[914] = -4158000.0001373654;
2339  Ainv[915] = 2419200.000140025;
2340  Ainv[916] = -16329600.000822293;
2341  Ainv[917] = 27216000.00138108;
2342  Ainv[918] = -13305600.000708584;
2343  Ainv[919] = -4082400.0004704637;
2344  Ainv[920] = 18144000.001630478;
2345  Ainv[921] = -14968800.00127276;
2346  Ainv[922] = 3024000.0005926876;
2347  Ainv[923] = -6652800.000957016;
2348  Ainv[924] = -831600.000251869;
2349  Ainv[925] = 7257600.000058328;
2350  Ainv[926] = -48988800.00062694;
2351  Ainv[927] = 81648000.00125706;
2352  Ainv[928] = -39916800.000699446;
2353  Ainv[929] = -24494400.00063324;
2354  Ainv[930] = 108864000.00267997;
2355  Ainv[931] = -89812800.00228924;
2356  Ainv[932] = 27216000.001432963;
2357  Ainv[933] = -59875200.002503306;
2358  Ainv[934] = -9979200.000892099;
2359  Ainv[935] = -24494400.000041053;
2360  Ainv[936] = 108864000.00089733;
2361  Ainv[937] = -89812800.00099301;
2362  Ainv[938] = 54432000.00074033;
2363  Ainv[939] = -119750400.00188679;
2364  Ainv[940] = -29937600.00093039;
2365  Ainv[941] = 30239999.999907944;
2366  Ainv[942] = -66528000.00034963;
2367  Ainv[943] = -33264000.00020192;
2368  Ainv[944] = -12473999.999911075;
2369  Ainv[945] = 415800.0000091839;
2370  Ainv[946] = -4989600.000096466;
2371  Ainv[947] = 14968800.000282053;
2372  Ainv[948] = -16632000.000318931;
2373  Ainv[949] = 6237000.000124145;
2374  Ainv[950] = -1663200.000105966;
2375  Ainv[951] = 14968800.000656718;
2376  Ainv[952] = -29937600.001147263;
2377  Ainv[953] = 16632000.000607153;
2378  Ainv[954] = 2494800.0003424617;
2379  Ainv[955] = -14968800.001258934;
2380  Ainv[956] = 14968800.001025451;
2381  Ainv[957] = -1663200.0004214628;
2382  Ainv[958] = 4989600.000721273;
2383  Ainv[959] = 415800.0001762234;
2384  Ainv[960] = -4989600.000056273;
2385  Ainv[961] = 44906400.000528865;
2386  Ainv[962] = -89812800.00105044;
2387  Ainv[963] = 49896000.0005893;
2388  Ainv[964] = 14968800.000505254;
2389  Ainv[965] = -89812800.00214963;
2390  Ainv[966] = 89812800.00186822;
2391  Ainv[967] = -14968800.001073092;
2392  Ainv[968] = 44906400.001936704;
2393  Ainv[969] = 4989600.000646212;
2394  Ainv[970] = 14968800.000083279;
2395  Ainv[971] = -89812800.00079349;
2396  Ainv[972] = 89812800.00082907;
2397  Ainv[973] = -29937600.00066045;
2398  Ainv[974] = 89812800.00155555;
2399  Ainv[975] = 14968800.000734072;
2400  Ainv[976] = -16632000.000009915;
2401  Ainv[977] = 49896000.00034199;
2402  Ainv[978] = 16632000.000236489;
2403  Ainv[979] = 6236999.999971926;
2404  Ainv[980] = -529200.0000070567;
2405  Ainv[981] = 2419200.0000832416;
2406  Ainv[982] = -4082400.0002322695;
2407  Ainv[983] = 3024000.0002431716;
2408  Ainv[984] = -831600.0000867927;
2409  Ainv[985] = 4838400.00013187;
2410  Ainv[986] = -16329600.000763077;
2411  Ainv[987] = 18144000.00122807;
2412  Ainv[988] = -6652800.000599097;
2413  Ainv[989] = -12247200.000486935;
2414  Ainv[990] = 27216000.00165853;
2415  Ainv[991] = -14968800.001249649;
2416  Ainv[992] = 12096000.000636933;
2417  Ainv[993] = -13305600.001017084;
2418  Ainv[994] = -4158000.0002756254;
2419  Ainv[995] = 7257599.999984539;
2420  Ainv[996] = -24494400.000308067;
2421  Ainv[997] = 27216000.000769153;
2422  Ainv[998] = -9979200.000448724;
2423  Ainv[999] = -48988800.000427224;
2424  Ainv[1000] = 108864000.00210117;
2425  Ainv[1001] = -59875200.001832984;
2426  Ainv[1002] = 81648000.0012942;
2427  Ainv[1003] = -89812800.00231627;
2428  Ainv[1004] = -39916800.00088987;
2429  Ainv[1005] = -24494399.99973313;
2430  Ainv[1006] = 54432000.000104085;
2431  Ainv[1007] = -29937600.000458404;
2432  Ainv[1008] = 108864000.00009927;
2433  Ainv[1009] = -119750400.00108385;
2434  Ainv[1010] = -89812800.00063351;
2435  Ainv[1011] = 30239999.999456234;
2436  Ainv[1012] = -33263999.999800563;
2437  Ainv[1013] = -66527999.999714166;
2438  Ainv[1014] = -12473999.999695525;
2439  Ainv[1015] = 831600.0000140304;
2440  Ainv[1016] = -6652800.000151542;
2441  Ainv[1017] = 14968800.000430001;
2442  Ainv[1018] = -13305600.000467438;
2443  Ainv[1019] = 4158000.0001746505;
2444  Ainv[1020] = -6652800.000204304;
2445  Ainv[1021] = 39916800.001209565;
2446  Ainv[1022] = -59875200.00201539;
2447  Ainv[1023] = 26611200.00102089;
2448  Ainv[1024] = 14968800.000715256;
2449  Ainv[1025] = -59875200.00250693;
2450  Ainv[1026] = 44906400.00195029;
2451  Ainv[1027] = -13305600.000917038;
2452  Ainv[1028] = 26611200.00150396;
2453  Ainv[1029] = 4158000.00039325;
2454  Ainv[1030] = -9979200.000039931;
2455  Ainv[1031] = 59875200.00071103;
2456  Ainv[1032] = -89812800.00152126;
2457  Ainv[1033] = 39916800.000861734;
2458  Ainv[1034] = 59875200.00080183;
2459  Ainv[1035] = -239500800.0035805;
2460  Ainv[1036] = 179625600.00309446;
2461  Ainv[1037] = -89812800.00201823;
2462  Ainv[1038] = 179625600.003592;
2463  Ainv[1039] = 39916800.00130968;
2464  Ainv[1040] = 29937599.99987156;
2465  Ainv[1041] = -119750400.00079404;
2466  Ainv[1042] = 89812800.00109144;
2467  Ainv[1043] = -119750400.00068739;
2468  Ainv[1044] = 239500800.0022373;
2469  Ainv[1045] = 89812800.00117382;
2470  Ainv[1046] = -33263999.999591347;
2471  Ainv[1047] = 66528000.00015661;
2472  Ainv[1048] = 66527999.999997966;
2473  Ainv[1049] = 12473999.999740032;
2474  Ainv[1050] = 415800.0000033901;
2475  Ainv[1051] = -1663200.0000506793;
2476  Ainv[1052] = 2494800.0001448886;
2477  Ainv[1053] = -1663200.000149893;
2478  Ainv[1054] = 415800.00005201256;
2479  Ainv[1055] = -4989600.00008985;
2480  Ainv[1056] = 14968800.000550607;
2481  Ainv[1057] = -14968800.00089752;
2482  Ainv[1058] = 4989600.000437016;
2483  Ainv[1059] = 14968800.000344599;
2484  Ainv[1060] = -29937600.001238666;
2485  Ainv[1061] = 14968800.000951614;
2486  Ainv[1062] = -16632000.000453006;
2487  Ainv[1063] = 16632000.000765376;
2488  Ainv[1064] = 6237000.000195272;
2489  Ainv[1065] = -4989599.9999575615;
2490  Ainv[1066] = 14968800.000095082;
2491  Ainv[1067] = -14968800.00037605;
2492  Ainv[1068] = 4989600.000238997;
2493  Ainv[1069] = 44906400.00021632;
2494  Ainv[1070] = -89812800.00131813;
2495  Ainv[1071] = 44906400.00120311;
2496  Ainv[1072] = -89812800.0008449;
2497  Ainv[1073] = 89812800.00161903;
2498  Ainv[1074] = 49896000.00061163;
2499  Ainv[1075] = 14968799.999677736;
2500  Ainv[1076] = -29937599.999739666;
2501  Ainv[1077] = 14968800.000109918;
2502  Ainv[1078] = -89812799.9998037;
2503  Ainv[1079] = 89812800.00046676;
2504  Ainv[1080] = 89812800.00032143;
2505  Ainv[1081] = -16631999.99941839;
2506  Ainv[1082] = 16631999.999620486;
2507  Ainv[1083] = 49895999.999594614;
2508  Ainv[1084] = 6236999.999690307;
2509  Ainv[1085] = -176400.00000449404;
2510  Ainv[1086] = 806400.0000439268;
2511  Ainv[1087] = -1360800.0001190982;
2512  Ainv[1088] = 1008000.0001258099;
2513  Ainv[1089] = -277200.0000461025;
2514  Ainv[1090] = 806400.0000605808;
2515  Ainv[1091] = -2721600.0003277403;
2516  Ainv[1092] = 3024000.000517511;
2517  Ainv[1093] = -1108800.0002524501;
2518  Ainv[1094] = -1360800.0002106703;
2519  Ainv[1095] = 3024000.000671971;
2520  Ainv[1096] = -1663200.0004923143;
2521  Ainv[1097] = 1008000.0002713416;
2522  Ainv[1098] = -1108800.0004044473;
2523  Ainv[1099] = -277200.0001171914;
2524  Ainv[1100] = 3225600.0000208933;
2525  Ainv[1101] = -10886400.000245223;
2526  Ainv[1102] = 12096000.000486795;
2527  Ainv[1103] = -4435200.000265236;
2528  Ainv[1104] = -10886400.00026547;
2529  Ainv[1105] = 24192000.00109003;
2530  Ainv[1106] = -13305600.000900872;
2531  Ainv[1107] = 12096000.00063168;
2532  Ainv[1108] = -13305600.001050249;
2533  Ainv[1109] = -4435200.000404305;
2534  Ainv[1110] = -13607999.99999946;
2535  Ainv[1111] = 30240000.00034278;
2536  Ainv[1112] = -16632000.000391858;
2537  Ainv[1113] = 30240000.0002831;
2538  Ainv[1114] = -33264000.000759024;
2539  Ainv[1115] = -16632000.000394113;
2540  Ainv[1116] = 20159999.999932427;
2541  Ainv[1117] = -22176000.000123236;
2542  Ainv[1118] = -22176000.000055127;
2543  Ainv[1119] = -9701999.999947956;
2544  Ainv[1120] = 277200.00000655063;
2545  Ainv[1121] = -2217600.000065768;
2546  Ainv[1122] = 4989600.000184099;
2547  Ainv[1123] = -4435200.0002006;
2548  Ainv[1124] = 1386000.0000756816;
2549  Ainv[1125] = -1108800.0000829366;
2550  Ainv[1126] = 6652800.000467998;
2551  Ainv[1127] = -9979200.00076722;
2552  Ainv[1128] = 4435200.000387152;
2553  Ainv[1129] = 1663200.0002814326;
2554  Ainv[1130] = -6652800.000934673;
2555  Ainv[1131] = 4989600.000709713;
2556  Ainv[1132] = -1108800.0003575291;
2557  Ainv[1133] = 2217600.0005532843;
2558  Ainv[1134] = 277200.0001529966;
2559  Ainv[1135] = -4435200.00003528;
2560  Ainv[1136] = 26611200.000372116;
2561  Ainv[1137] = -39916800.0007366;
2562  Ainv[1138] = 17740800.00040562;
2563  Ainv[1139] = 13305600.000379894;
2564  Ainv[1140] = -53222400.00156785;
2565  Ainv[1141] = 39916800.001317;
2566  Ainv[1142] = -13305600.0008643;
2567  Ainv[1143] = 26611200.001465235;
2568  Ainv[1144] = 4435200.000541283;
2569  Ainv[1145] = 16632000.000027146;
2570  Ainv[1146] = -66528000.00054735;
2571  Ainv[1147] = 49896000.00059739;
2572  Ainv[1148] = -33264000.00044802;
2573  Ainv[1149] = 66528000.001123935;
2574  Ainv[1150] = 16632000.00056335;
2575  Ainv[1151] = -22175999.999948286;
2576  Ainv[1152] = 44352000.00021979;
2577  Ainv[1153] = 22176000.00012368;
2578  Ainv[1154] = 9701999.999948073;
2579  Ainv[1155] = 277200.0000046849;
2580  Ainv[1156] = -1108800.0000512605;
2581  Ainv[1157] = 1663200.0001400306;
2582  Ainv[1158] = -1108800.0001451585;
2583  Ainv[1159] = 277200.00005154655;
2584  Ainv[1160] = -2217600.00008179;
2585  Ainv[1161] = 6652800.000452238;
2586  Ainv[1162] = -6652800.000711684;
2587  Ainv[1163] = 2217600.0003423807;
2588  Ainv[1164] = 4989600.000300918;
2589  Ainv[1165] = -9979200.000979988;
2590  Ainv[1166] = 4989600.000719969;
2591  Ainv[1167] = -4435200.000395222;
2592  Ainv[1168] = 4435200.000603347;
2593  Ainv[1169] = 1386000.0001720062;
2594  Ainv[1170] = -4435199.999998545;
2595  Ainv[1171] = 13305600.000216225;
2596  Ainv[1172] = -13305600.000501465;
2597  Ainv[1173] = 4435200.00028567;
2598  Ainv[1174] = 26611200.000285618;
2599  Ainv[1175] = -53222400.001310594;
2600  Ainv[1176] = 26611200.001116186;
2601  Ainv[1177] = -39916800.000820875;
2602  Ainv[1178] = 39916800.0014104;
2603  Ainv[1179] = 17740800.000558857;
2604  Ainv[1180] = 16631999.999870433;
2605  Ainv[1181] = -33264000.000147905;
2606  Ainv[1182] = 16632000.000331728;
2607  Ainv[1183] = -66528000.00013059;
2608  Ainv[1184] = 66528000.00073376;
2609  Ainv[1185] = 49896000.0004264;
2610  Ainv[1186] = -22175999.999716453;
2611  Ainv[1187] = 22175999.99993944;
2612  Ainv[1188] = 44351999.999876246;
2613  Ainv[1189] = 9701999.999837019;
2614  Ainv[1190] = 69300.00000208434;
2615  Ainv[1191] = -277200.00001972046;
2616  Ainv[1192] = 415800.00005285454;
2617  Ainv[1193] = -277200.00005553843;
2618  Ainv[1194] = 69300.0000203078;
2619  Ainv[1195] = -277200.0000270479;
2620  Ainv[1196] = 831600.0001436663;
2621  Ainv[1197] = -831600.0002245601;
2622  Ainv[1198] = 277200.0001088544;
2623  Ainv[1199] = 415800.0000933228;
2624  Ainv[1200] = -831600.0002926597;
2625  Ainv[1201] = 415800.00021210307;
2626  Ainv[1202] = -277200.00012001256;
2627  Ainv[1203] = 277200.00017593586;
2628  Ainv[1204] = 69300.00005185287;
2629  Ainv[1205] = -1386000.0000112269;
2630  Ainv[1206] = 4158000.0001153573;
2631  Ainv[1207] = -4158000.0002229097;
2632  Ainv[1208] = 1386000.0001199995;
2633  Ainv[1209] = 4158000.000123345;
2634  Ainv[1210] = -8316000.000492427;
2635  Ainv[1211] = 4158000.0004018135;
2636  Ainv[1212] = -4158000.000285073;
2637  Ainv[1213] = 4158000.000466641;
2638  Ainv[1214] = 1386000.0001806568;
2639  Ainv[1215] = 6237000.0000081565;
2640  Ainv[1216] = -12474000.00017167;
2641  Ainv[1217] = 6237000.000184956;
2642  Ainv[1218] = -12474000.000142818;
2643  Ainv[1219] = 12474000.000355072;
2644  Ainv[1220] = 6237000.000183307;
2645  Ainv[1221] = -9701999.99998243;
2646  Ainv[1222] = 9702000.000069123;
2647  Ainv[1223] = 9702000.000037467;
2648  Ainv[1224] = 4850999.999982852;
2649  }
2650 
2651  template<>
2652  inline void _calculate_b<3,4>(double* X_0, double* b_H, double* b_ImH, double* b_dH)
2653  {
2654  const double x_0(X_0[0]), y_0(X_0[1]), z_0(X_0[2]);
2655  b_H[0] = -1.0/6.0*x_0*y_0*z_0 + 1.0/6.0;
2656  b_ImH[0] = (1.0/6.0)*x_0*y_0*z_0;
2657  b_dH[0] = -1.0/6.0*y_0*z_0;
2658  b_dH[1] = -1.0/6.0*x_0*z_0;
2659  b_dH[2] = -1.0/6.0*x_0*y_0;
2660  b_H[1] = -1.0/24.0*x_0*y_0*std::pow(z_0, 2) + 1.0/24.0;
2661  b_ImH[1] = (1.0/24.0)*x_0*y_0*std::pow(z_0, 2);
2662  b_dH[3] = -1.0/24.0*y_0*std::pow(z_0, 2);
2663  b_dH[4] = -1.0/24.0*x_0*std::pow(z_0, 2);
2664  b_dH[5] = -1.0/12.0*x_0*y_0*z_0;
2665  b_H[2] = -1.0/60.0*x_0*y_0*std::pow(z_0, 3) + 1.0/60.0;
2666  b_ImH[2] = (1.0/60.0)*x_0*y_0*std::pow(z_0, 3);
2667  b_dH[6] = -1.0/60.0*y_0*std::pow(z_0, 3);
2668  b_dH[7] = -1.0/60.0*x_0*std::pow(z_0, 3);
2669  b_dH[8] = -1.0/20.0*x_0*y_0*std::pow(z_0, 2);
2670  b_H[3] = -1.0/120.0*x_0*y_0*std::pow(z_0, 4) + 1.0/120.0;
2671  b_ImH[3] = (1.0/120.0)*x_0*y_0*std::pow(z_0, 4);
2672  b_dH[9] = -1.0/120.0*y_0*std::pow(z_0, 4);
2673  b_dH[10] = -1.0/120.0*x_0*std::pow(z_0, 4);
2674  b_dH[11] = -1.0/30.0*x_0*y_0*std::pow(z_0, 3);
2675  b_H[4] = -1.0/210.0*x_0*y_0*std::pow(z_0, 5) + 1.0/210.0;
2676  b_ImH[4] = (1.0/210.0)*x_0*y_0*std::pow(z_0, 5);
2677  b_dH[12] = -1.0/210.0*y_0*std::pow(z_0, 5);
2678  b_dH[13] = -1.0/210.0*x_0*std::pow(z_0, 5);
2679  b_dH[14] = -1.0/42.0*x_0*y_0*std::pow(z_0, 4);
2680  b_H[5] = -1.0/24.0*x_0*std::pow(y_0, 2)*z_0 + 1.0/24.0;
2681  b_ImH[5] = (1.0/24.0)*x_0*std::pow(y_0, 2)*z_0;
2682  b_dH[15] = -1.0/24.0*std::pow(y_0, 2)*z_0;
2683  b_dH[16] = -1.0/12.0*x_0*y_0*z_0;
2684  b_dH[17] = -1.0/24.0*x_0*std::pow(y_0, 2);
2685  b_H[6] = -1.0/120.0*x_0*std::pow(y_0, 2)*std::pow(z_0, 2) + 1.0/120.0;
2686  b_ImH[6] = (1.0/120.0)*x_0*std::pow(y_0, 2)*std::pow(z_0, 2);
2687  b_dH[18] = -1.0/120.0*std::pow(y_0, 2)*std::pow(z_0, 2);
2688  b_dH[19] = -1.0/60.0*x_0*y_0*std::pow(z_0, 2);
2689  b_dH[20] = -1.0/60.0*x_0*std::pow(y_0, 2)*z_0;
2690  b_H[7] = -1.0/360.0*x_0*std::pow(y_0, 2)*std::pow(z_0, 3) + 1.0/360.0;
2691  b_ImH[7] = (1.0/360.0)*x_0*std::pow(y_0, 2)*std::pow(z_0, 3);
2692  b_dH[21] = -1.0/360.0*std::pow(y_0, 2)*std::pow(z_0, 3);
2693  b_dH[22] = -1.0/180.0*x_0*y_0*std::pow(z_0, 3);
2694  b_dH[23] = -1.0/120.0*x_0*std::pow(y_0, 2)*std::pow(z_0, 2);
2695  b_H[8] = -1.0/840.0*x_0*std::pow(y_0, 2)*std::pow(z_0, 4) + 1.0/840.0;
2696  b_ImH[8] = (1.0/840.0)*x_0*std::pow(y_0, 2)*std::pow(z_0, 4);
2697  b_dH[24] = -1.0/840.0*std::pow(y_0, 2)*std::pow(z_0, 4);
2698  b_dH[25] = -1.0/420.0*x_0*y_0*std::pow(z_0, 4);
2699  b_dH[26] = -1.0/210.0*x_0*std::pow(y_0, 2)*std::pow(z_0, 3);
2700  b_H[9] = -1.0/60.0*x_0*std::pow(y_0, 3)*z_0 + 1.0/60.0;
2701  b_ImH[9] = (1.0/60.0)*x_0*std::pow(y_0, 3)*z_0;
2702  b_dH[27] = -1.0/60.0*std::pow(y_0, 3)*z_0;
2703  b_dH[28] = -1.0/20.0*x_0*std::pow(y_0, 2)*z_0;
2704  b_dH[29] = -1.0/60.0*x_0*std::pow(y_0, 3);
2705  b_H[10] = -1.0/360.0*x_0*std::pow(y_0, 3)*std::pow(z_0, 2) + 1.0/360.0;
2706  b_ImH[10] = (1.0/360.0)*x_0*std::pow(y_0, 3)*std::pow(z_0, 2);
2707  b_dH[30] = -1.0/360.0*std::pow(y_0, 3)*std::pow(z_0, 2);
2708  b_dH[31] = -1.0/120.0*x_0*std::pow(y_0, 2)*std::pow(z_0, 2);
2709  b_dH[32] = -1.0/180.0*x_0*std::pow(y_0, 3)*z_0;
2710  b_H[11] = -1.0/1260.0*x_0*std::pow(y_0, 3)*std::pow(z_0, 3) + 1.0/1260.0;
2711  b_ImH[11] = (1.0/1260.0)*x_0*std::pow(y_0, 3)*std::pow(z_0, 3);
2712  b_dH[33] = -1.0/1260.0*std::pow(y_0, 3)*std::pow(z_0, 3);
2713  b_dH[34] = -1.0/420.0*x_0*std::pow(y_0, 2)*std::pow(z_0, 3);
2714  b_dH[35] = -1.0/420.0*x_0*std::pow(y_0, 3)*std::pow(z_0, 2);
2715  b_H[12] = -1.0/120.0*x_0*std::pow(y_0, 4)*z_0 + 1.0/120.0;
2716  b_ImH[12] = (1.0/120.0)*x_0*std::pow(y_0, 4)*z_0;
2717  b_dH[36] = -1.0/120.0*std::pow(y_0, 4)*z_0;
2718  b_dH[37] = -1.0/30.0*x_0*std::pow(y_0, 3)*z_0;
2719  b_dH[38] = -1.0/120.0*x_0*std::pow(y_0, 4);
2720  b_H[13] = -1.0/840.0*x_0*std::pow(y_0, 4)*std::pow(z_0, 2) + 1.0/840.0;
2721  b_ImH[13] = (1.0/840.0)*x_0*std::pow(y_0, 4)*std::pow(z_0, 2);
2722  b_dH[39] = -1.0/840.0*std::pow(y_0, 4)*std::pow(z_0, 2);
2723  b_dH[40] = -1.0/210.0*x_0*std::pow(y_0, 3)*std::pow(z_0, 2);
2724  b_dH[41] = -1.0/420.0*x_0*std::pow(y_0, 4)*z_0;
2725  b_H[14] = -1.0/210.0*x_0*std::pow(y_0, 5)*z_0 + 1.0/210.0;
2726  b_ImH[14] = (1.0/210.0)*x_0*std::pow(y_0, 5)*z_0;
2727  b_dH[42] = -1.0/210.0*std::pow(y_0, 5)*z_0;
2728  b_dH[43] = -1.0/42.0*x_0*std::pow(y_0, 4)*z_0;
2729  b_dH[44] = -1.0/210.0*x_0*std::pow(y_0, 5);
2730  b_H[15] = -1.0/24.0*std::pow(x_0, 2)*y_0*z_0 + 1.0/24.0;
2731  b_ImH[15] = (1.0/24.0)*std::pow(x_0, 2)*y_0*z_0;
2732  b_dH[45] = -1.0/12.0*x_0*y_0*z_0;
2733  b_dH[46] = -1.0/24.0*std::pow(x_0, 2)*z_0;
2734  b_dH[47] = -1.0/24.0*std::pow(x_0, 2)*y_0;
2735  b_H[16] = -1.0/120.0*std::pow(x_0, 2)*y_0*std::pow(z_0, 2) + 1.0/120.0;
2736  b_ImH[16] = (1.0/120.0)*std::pow(x_0, 2)*y_0*std::pow(z_0, 2);
2737  b_dH[48] = -1.0/60.0*x_0*y_0*std::pow(z_0, 2);
2738  b_dH[49] = -1.0/120.0*std::pow(x_0, 2)*std::pow(z_0, 2);
2739  b_dH[50] = -1.0/60.0*std::pow(x_0, 2)*y_0*z_0;
2740  b_H[17] = -1.0/360.0*std::pow(x_0, 2)*y_0*std::pow(z_0, 3) + 1.0/360.0;
2741  b_ImH[17] = (1.0/360.0)*std::pow(x_0, 2)*y_0*std::pow(z_0, 3);
2742  b_dH[51] = -1.0/180.0*x_0*y_0*std::pow(z_0, 3);
2743  b_dH[52] = -1.0/360.0*std::pow(x_0, 2)*std::pow(z_0, 3);
2744  b_dH[53] = -1.0/120.0*std::pow(x_0, 2)*y_0*std::pow(z_0, 2);
2745  b_H[18] = -1.0/840.0*std::pow(x_0, 2)*y_0*std::pow(z_0, 4) + 1.0/840.0;
2746  b_ImH[18] = (1.0/840.0)*std::pow(x_0, 2)*y_0*std::pow(z_0, 4);
2747  b_dH[54] = -1.0/420.0*x_0*y_0*std::pow(z_0, 4);
2748  b_dH[55] = -1.0/840.0*std::pow(x_0, 2)*std::pow(z_0, 4);
2749  b_dH[56] = -1.0/210.0*std::pow(x_0, 2)*y_0*std::pow(z_0, 3);
2750  b_H[19] = -1.0/120.0*std::pow(x_0, 2)*std::pow(y_0, 2)*z_0 + 1.0/120.0;
2751  b_ImH[19] = (1.0/120.0)*std::pow(x_0, 2)*std::pow(y_0, 2)*z_0;
2752  b_dH[57] = -1.0/60.0*x_0*std::pow(y_0, 2)*z_0;
2753  b_dH[58] = -1.0/60.0*std::pow(x_0, 2)*y_0*z_0;
2754  b_dH[59] = -1.0/120.0*std::pow(x_0, 2)*std::pow(y_0, 2);
2755  b_H[20] = -1.0/720.0*std::pow(x_0, 2)*std::pow(y_0, 2)*std::pow(z_0, 2) + 1.0/720.0;
2756  b_ImH[20] = (1.0/720.0)*std::pow(x_0, 2)*std::pow(y_0, 2)*std::pow(z_0, 2);
2757  b_dH[60] = -1.0/360.0*x_0*std::pow(y_0, 2)*std::pow(z_0, 2);
2758  b_dH[61] = -1.0/360.0*std::pow(x_0, 2)*y_0*std::pow(z_0, 2);
2759  b_dH[62] = -1.0/360.0*std::pow(x_0, 2)*std::pow(y_0, 2)*z_0;
2760  b_H[21] = -1.0/2520.0*std::pow(x_0, 2)*std::pow(y_0, 2)*std::pow(z_0, 3) + 1.0/2520.0;
2761  b_ImH[21] = (1.0/2520.0)*std::pow(x_0, 2)*std::pow(y_0, 2)*std::pow(z_0, 3);
2762  b_dH[63] = -1.0/1260.0*x_0*std::pow(y_0, 2)*std::pow(z_0, 3);
2763  b_dH[64] = -1.0/1260.0*std::pow(x_0, 2)*y_0*std::pow(z_0, 3);
2764  b_dH[65] = -1.0/840.0*std::pow(x_0, 2)*std::pow(y_0, 2)*std::pow(z_0, 2);
2765  b_H[22] = -1.0/360.0*std::pow(x_0, 2)*std::pow(y_0, 3)*z_0 + 1.0/360.0;
2766  b_ImH[22] = (1.0/360.0)*std::pow(x_0, 2)*std::pow(y_0, 3)*z_0;
2767  b_dH[66] = -1.0/180.0*x_0*std::pow(y_0, 3)*z_0;
2768  b_dH[67] = -1.0/120.0*std::pow(x_0, 2)*std::pow(y_0, 2)*z_0;
2769  b_dH[68] = -1.0/360.0*std::pow(x_0, 2)*std::pow(y_0, 3);
2770  b_H[23] = -1.0/2520.0*std::pow(x_0, 2)*std::pow(y_0, 3)*std::pow(z_0, 2) + 1.0/2520.0;
2771  b_ImH[23] = (1.0/2520.0)*std::pow(x_0, 2)*std::pow(y_0, 3)*std::pow(z_0, 2);
2772  b_dH[69] = -1.0/1260.0*x_0*std::pow(y_0, 3)*std::pow(z_0, 2);
2773  b_dH[70] = -1.0/840.0*std::pow(x_0, 2)*std::pow(y_0, 2)*std::pow(z_0, 2);
2774  b_dH[71] = -1.0/1260.0*std::pow(x_0, 2)*std::pow(y_0, 3)*z_0;
2775  b_H[24] = -1.0/840.0*std::pow(x_0, 2)*std::pow(y_0, 4)*z_0 + 1.0/840.0;
2776  b_ImH[24] = (1.0/840.0)*std::pow(x_0, 2)*std::pow(y_0, 4)*z_0;
2777  b_dH[72] = -1.0/420.0*x_0*std::pow(y_0, 4)*z_0;
2778  b_dH[73] = -1.0/210.0*std::pow(x_0, 2)*std::pow(y_0, 3)*z_0;
2779  b_dH[74] = -1.0/840.0*std::pow(x_0, 2)*std::pow(y_0, 4);
2780  b_H[25] = -1.0/60.0*std::pow(x_0, 3)*y_0*z_0 + 1.0/60.0;
2781  b_ImH[25] = (1.0/60.0)*std::pow(x_0, 3)*y_0*z_0;
2782  b_dH[75] = -1.0/20.0*std::pow(x_0, 2)*y_0*z_0;
2783  b_dH[76] = -1.0/60.0*std::pow(x_0, 3)*z_0;
2784  b_dH[77] = -1.0/60.0*std::pow(x_0, 3)*y_0;
2785  b_H[26] = -1.0/360.0*std::pow(x_0, 3)*y_0*std::pow(z_0, 2) + 1.0/360.0;
2786  b_ImH[26] = (1.0/360.0)*std::pow(x_0, 3)*y_0*std::pow(z_0, 2);
2787  b_dH[78] = -1.0/120.0*std::pow(x_0, 2)*y_0*std::pow(z_0, 2);
2788  b_dH[79] = -1.0/360.0*std::pow(x_0, 3)*std::pow(z_0, 2);
2789  b_dH[80] = -1.0/180.0*std::pow(x_0, 3)*y_0*z_0;
2790  b_H[27] = -1.0/1260.0*std::pow(x_0, 3)*y_0*std::pow(z_0, 3) + 1.0/1260.0;
2791  b_ImH[27] = (1.0/1260.0)*std::pow(x_0, 3)*y_0*std::pow(z_0, 3);
2792  b_dH[81] = -1.0/420.0*std::pow(x_0, 2)*y_0*std::pow(z_0, 3);
2793  b_dH[82] = -1.0/1260.0*std::pow(x_0, 3)*std::pow(z_0, 3);
2794  b_dH[83] = -1.0/420.0*std::pow(x_0, 3)*y_0*std::pow(z_0, 2);
2795  b_H[28] = -1.0/360.0*std::pow(x_0, 3)*std::pow(y_0, 2)*z_0 + 1.0/360.0;
2796  b_ImH[28] = (1.0/360.0)*std::pow(x_0, 3)*std::pow(y_0, 2)*z_0;
2797  b_dH[84] = -1.0/120.0*std::pow(x_0, 2)*std::pow(y_0, 2)*z_0;
2798  b_dH[85] = -1.0/180.0*std::pow(x_0, 3)*y_0*z_0;
2799  b_dH[86] = -1.0/360.0*std::pow(x_0, 3)*std::pow(y_0, 2);
2800  b_H[29] = -1.0/2520.0*std::pow(x_0, 3)*std::pow(y_0, 2)*std::pow(z_0, 2) + 1.0/2520.0;
2801  b_ImH[29] = (1.0/2520.0)*std::pow(x_0, 3)*std::pow(y_0, 2)*std::pow(z_0, 2);
2802  b_dH[87] = -1.0/840.0*std::pow(x_0, 2)*std::pow(y_0, 2)*std::pow(z_0, 2);
2803  b_dH[88] = -1.0/1260.0*std::pow(x_0, 3)*y_0*std::pow(z_0, 2);
2804  b_dH[89] = -1.0/1260.0*std::pow(x_0, 3)*std::pow(y_0, 2)*z_0;
2805  b_H[30] = -1.0/1260.0*std::pow(x_0, 3)*std::pow(y_0, 3)*z_0 + 1.0/1260.0;
2806  b_ImH[30] = (1.0/1260.0)*std::pow(x_0, 3)*std::pow(y_0, 3)*z_0;
2807  b_dH[90] = -1.0/420.0*std::pow(x_0, 2)*std::pow(y_0, 3)*z_0;
2808  b_dH[91] = -1.0/420.0*std::pow(x_0, 3)*std::pow(y_0, 2)*z_0;
2809  b_dH[92] = -1.0/1260.0*std::pow(x_0, 3)*std::pow(y_0, 3);
2810  b_H[31] = -1.0/120.0*std::pow(x_0, 4)*y_0*z_0 + 1.0/120.0;
2811  b_ImH[31] = (1.0/120.0)*std::pow(x_0, 4)*y_0*z_0;
2812  b_dH[93] = -1.0/30.0*std::pow(x_0, 3)*y_0*z_0;
2813  b_dH[94] = -1.0/120.0*std::pow(x_0, 4)*z_0;
2814  b_dH[95] = -1.0/120.0*std::pow(x_0, 4)*y_0;
2815  b_H[32] = -1.0/840.0*std::pow(x_0, 4)*y_0*std::pow(z_0, 2) + 1.0/840.0;
2816  b_ImH[32] = (1.0/840.0)*std::pow(x_0, 4)*y_0*std::pow(z_0, 2);
2817  b_dH[96] = -1.0/210.0*std::pow(x_0, 3)*y_0*std::pow(z_0, 2);
2818  b_dH[97] = -1.0/840.0*std::pow(x_0, 4)*std::pow(z_0, 2);
2819  b_dH[98] = -1.0/420.0*std::pow(x_0, 4)*y_0*z_0;
2820  b_H[33] = -1.0/840.0*std::pow(x_0, 4)*std::pow(y_0, 2)*z_0 + 1.0/840.0;
2821  b_ImH[33] = (1.0/840.0)*std::pow(x_0, 4)*std::pow(y_0, 2)*z_0;
2822  b_dH[99] = -1.0/210.0*std::pow(x_0, 3)*std::pow(y_0, 2)*z_0;
2823  b_dH[100] = -1.0/420.0*std::pow(x_0, 4)*y_0*z_0;
2824  b_dH[101] = -1.0/840.0*std::pow(x_0, 4)*std::pow(y_0, 2);
2825  b_H[34] = -1.0/210.0*std::pow(x_0, 5)*y_0*z_0 + 1.0/210.0;
2826  b_ImH[34] = (1.0/210.0)*std::pow(x_0, 5)*y_0*z_0;
2827  b_dH[102] = -1.0/42.0*std::pow(x_0, 4)*y_0*z_0;
2828  b_dH[103] = -1.0/210.0*std::pow(x_0, 5)*z_0;
2829  b_dH[104] = -1.0/210.0*std::pow(x_0, 5)*y_0;
2830  }
2831 
2832 }//equivalent_polynomials
2833 #endif
equivalent_polynomials::_calculate_b< 2, 4 >
void _calculate_b< 2, 4 >(double *X_0, double *b_H, double *b_ImH, double *b_dH)
Definition: equivalent_polynomials_coefficients.h:637
equivalent_polynomials::_set_Ainv< 2, 3 >
void _set_Ainv< 2, 3 >(double *Ainv)
Definition: equivalent_polynomials_coefficients.h:256
equivalent_polynomials::_calculate_b< 2, 2 >
void _calculate_b< 2, 2 >(double *X_0, double *b_H, double *b_ImH, double *b_dH)
Definition: equivalent_polynomials_coefficients.h:226
equivalent_polynomials::_set_Ainv< 1, 4 >
void _set_Ainv< 1, 4 >(double *Ainv)
Definition: equivalent_polynomials_coefficients.h:102
equivalent_polynomials::_set_Ainv
void _set_Ainv(double *Ainv)
equivalent_polynomials::_calculate_b< 1, 2 >
void _calculate_b< 1, 2 >(double *X_0, double *b_H, double *b_ImH, double *b_dH)
Definition: equivalent_polynomials_coefficients.h:48
equivalent_polynomials::_set_Ainv< 3, 2 >
void _set_Ainv< 3, 2 >(double *Ainv)
Definition: equivalent_polynomials_coefficients.h:750
equivalent_polynomials::_calculate_b< 2, 1 >
void _calculate_b< 2, 1 >(double *X_0, double *b_H, double *b_ImH, double *b_dH)
Definition: equivalent_polynomials_coefficients.h:167
equivalent_polynomials::_set_Ainv< 2, 4 >
void _set_Ainv< 2, 4 >(double *Ainv)
Definition: equivalent_polynomials_coefficients.h:407
equivalent_polynomials::_calculate_b< 1, 4 >
void _calculate_b< 1, 4 >(double *X_0, double *b_H, double *b_ImH, double *b_dH)
Definition: equivalent_polynomials_coefficients.h:132
equivalent_polynomials::_set_Ainv< 2, 1 >
void _set_Ainv< 2, 1 >(double *Ainv)
Definition: equivalent_polynomials_coefficients.h:153
equivalent_polynomials::_calculate_b< 1, 3 >
void _calculate_b< 1, 3 >(double *X_0, double *b_H, double *b_ImH, double *b_dH)
Definition: equivalent_polynomials_coefficients.h:84
equivalent_polynomials::_calculate_b< 3, 3 >
void _calculate_b< 3, 3 >(double *X_0, double *b_H, double *b_ImH, double *b_dH)
Definition: equivalent_polynomials_coefficients.h:1316
equivalent_polynomials::_calculate_b< 1, 1 >
void _calculate_b< 1, 1 >(double *X_0, double *b_H, double *b_ImH, double *b_dH)
Definition: equivalent_polynomials_coefficients.h:22
equivalent_polynomials::_set_Ainv< 1, 2 >
void _set_Ainv< 1, 2 >(double *Ainv)
Definition: equivalent_polynomials_coefficients.h:34
equivalent_polynomials::_calculate_b< 3, 2 >
void _calculate_b< 3, 2 >(double *X_0, double *b_H, double *b_ImH, double *b_dH)
Definition: equivalent_polynomials_coefficients.h:855
equivalent_polynomials
Definition: equivalent_polynomials.h:12
equivalent_polynomials::_set_Ainv< 1, 3 >
void _set_Ainv< 1, 3 >(double *Ainv)
Definition: equivalent_polynomials_coefficients.h:63
equivalent_polynomials::_set_Ainv< 3, 1 >
void _set_Ainv< 3, 1 >(double *Ainv)
Definition: equivalent_polynomials_coefficients.h:703
equivalent_polynomials::_set_Ainv< 1, 1 >
void _set_Ainv< 1, 1 >(double *Ainv)
Definition: equivalent_polynomials_coefficients.h:13
equivalent_polynomials::_calculate_b
void _calculate_b(double *X_0, double *b_H, double *b_ImH, double *b_dH)
equivalent_polynomials::_calculate_b< 2, 3 >
void _calculate_b< 2, 3 >(double *X_0, double *b_H, double *b_ImH, double *b_dH)
Definition: equivalent_polynomials_coefficients.h:361
equivalent_polynomials::_set_Ainv< 3, 3 >
void _set_Ainv< 3, 3 >(double *Ainv)
Definition: equivalent_polynomials_coefficients.h:911
equivalent_polynomials::_calculate_b< 3, 4 >
void _calculate_b< 3, 4 >(double *X_0, double *b_H, double *b_ImH, double *b_dH)
Definition: equivalent_polynomials_coefficients.h:2652
equivalent_polynomials::_set_Ainv< 2, 2 >
void _set_Ainv< 2, 2 >(double *Ainv)
Definition: equivalent_polynomials_coefficients.h:185
equivalent_polynomials::_calculate_b< 3, 1 >
void _calculate_b< 3, 1 >(double *X_0, double *b_H, double *b_ImH, double *b_dH)
Definition: equivalent_polynomials_coefficients.h:724
equivalent_polynomials::_set_Ainv< 3, 4 >
void _set_Ainv< 3, 4 >(double *Ainv)
Definition: equivalent_polynomials_coefficients.h:1422