1 //
2 // BAGEL - Brilliantly Advanced General Electronic Structure Library
3 // Filename: _carsph_43.cc
4 // Copyright (C) 2009 Toru Shiozaki
5 //
6 // Author: Toru Shiozaki <shiozaki@northwestern.edu>
7 // Maintainer: Shiozaki group
8 //
9 // This file is part of the BAGEL package.
10 //
11 // This program is free software: you can redistribute it and/or modify
12 // it under the terms of the GNU General Public License as published by
13 // the Free Software Foundation, either version 3 of the License, or
14 // (at your option) any later version.
15 //
16 // This program is distributed in the hope that it will be useful,
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19 // GNU General Public License for more details.
20 //
21 // You should have received a copy of the GNU General Public License
22 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
23 //
24 
25 #include <src/integral/carsphlist.h>
26 #include <algorithm>
27 
28 using namespace std;
29 using namespace bagel;
30 
31 
carsph_43(const int nloop,const double * source,double * target)32 void CarSphList::carsph_43(const int nloop, const double* source, double* target) {
33   const double c56 = 25.98076211353316;
34   const double c28 = 24.302777619029477;
35   const double c7 = 17.1846588560844;
36   const double c58 = 16.431676725154983;
37   const double c54 = 15.90990257669732;
38   const double c31 = 15.370426148939398;
39   const double c24 = 14.882351124738323;
40   const double c43 = 12.99038105676658;
41   const double c72 = 12.24744871391589;
42   const double c26 = 12.151388809514739;
43   const double c90 = 11.61895003862225;
44   const double c19 = 11.456439237389599;
45   const double c10 = 10.868532559642079;
46   const double c3 = 10.523411400301709;
47   const double c63 = 10.062305898749054;
48   const double c36 = 9.4124252985083494;
49   const double c73 = 9.1855865354369186;
50   const double c5 = 8.5923294280422002;
51   const double c45 = 8.2158383625774913;
52   const double c27 = 8.1009258730098246;
53   const double c38 = 7.9549512883486599;
54   const double c74 = 7.745966692414834;
55   const double c67 = 7.5;
56   const double c94 = 7.3484692283495345;
57   const double c20 = 7.245688373094719;
58   const double c83 = 7.1151247353788536;
59   const double c17 = 7.0156076002011405;
60   const double c62 = 6.7082039324993694;
61   const double c15 = 6.6555897559870685;
62   const double c41 = 6.49519052838329;
63   const double c35 = 6.2749501990055663;
64   const double c70 = 6.1237243569579451;
65   const double c76 = 5.8094750193111251;
66   const double c18 = 5.7282196186947996;
67   const double c69 = 5.625;
68   const double c53 = 5.3033008588991066;
69   const double c29 = 5.123475382979799;
70   const double c50 = 5.0311529493745271;
71   const double c23 = 4.9607837082461073;
72   const double c79 = 4.7434164902525691;
73   const double c71 = 4.5927932677184593;
74   const double c101 = 4.5;
75   const double c14 = 4.4370598373247123;
76   const double c57 = 4.3301270189221936;
77   const double c59 = 4.1079191812887457;
78   const double c25 = 4.0504629365049123;
79   const double c89 = 3.872983346207417;
80   const double c32 = 3.8426065372348495;
81   const double c81 = 3.5575623676894268;
82   const double c2 = 3.5078038001005702;
83   const double c49 = 3.3541019662496847;
84   const double c78 = 3.1622776601683795;
85   const double c34 = 3.1374750995027831;
86   const double c100 = 3;
87   const double c21 = 2.9580398915498081;
88   const double c91 = 2.9047375096555625;
89   const double c6 = 2.8641098093473998;
90   const double c60 = 2.7386127875258306;
91   const double c11 = 2.7171331399105196;
92   const double c37 = 2.6516504294495533;
93   const double c66 = 2.5;
94   const double c92 = 2.4494897427831779;
95   const double c80 = 2.3717082451262845;
96   const double c16 = 2.3385358667337135;
97   const double c44 = 2.1650635094610968;
98   const double c33 = 2.0916500663351889;
99   const double c46 = 2.0539595906443728;
100   const double c75 = 1.9364916731037085;
101   const double c68 = 1.875;
102   const double c95 = 1.8371173070873836;
103   const double c8 = 1.8114220932736798;
104   const double c87 = 1.7787811838447134;
105   const double c1 = 1.7539019000502851;
106   const double c65 = 1.6770509831248424;
107   const double c22 = 1.6535945694153691;
108   const double c99 = 1.5;
109   const double c77 = 1.4523687548277813;
110   const double c4 = 1.4320549046736999;
111   const double c47 = 1.3693063937629153;
112   const double c40 = 1.3258252147247767;
113   const double c30 = 1.2808688457449497;
114   const double c105 = 1.125;
115   const double c64 = 1.1180339887498949;
116   const double c13 = 1.1092649593311781;
117   const double c42 = 1.0825317547305484;
118   const double c96 = 0.91855865354369182;
119   const double c85 = 0.8893905919223567;
120   const double c55 = 0.88388347648318444;
121   const double c52 = 0.83852549156242118;
122   const double c82 = 0.79056941504209488;
123   const double c104 = 0.75;
124   const double c12 = 0.73950997288745202;
125   const double c88 = 0.72618437741389064;
126   const double c61 = 0.68465319688145765;
127   const double c93 = 0.61237243569579447;
128   const double c86 = 0.59292706128157113;
129   const double c0 = 0.58463396668342837;
130   const double c103 = 0.5625;
131   const double c51 = 0.55901699437494745;
132   const double c98 = 0.45927932677184591;
133   const double c9 = 0.45285552331841994;
134   const double c39 = 0.44194173824159222;
135   const double c102 = 0.375;
136   const double c48 = 0.34232659844072882;
137   const double c84 = 0.29646353064078557;
138   const double c97 = 0.22963966338592295;
139   for (int iloop = 0; iloop != nloop; ++iloop, target += 63, source += 150) {
140     target[0] =  c0 * source[0] - c1 * source[2] - c2 * source[20]
141                   + c3 * source[22] + c0 * source[40] - c1 * source[42];
142     target[1] =  c1 * source[1] - c0 * source[3] - c3 * source[21]
143                   + c2 * source[23] + c1 * source[41] - c0 * source[43];
144     target[2] =  c4 * source[4] - c4 * source[6] - c5 * source[24]
145                   + c5 * source[26] + c4 * source[44] - c4 * source[46];
146     target[3] =  c6 * source[5] - c7 * source[25] + c6 * source[45];
147     target[4] =  c8 * source[7] - c9 * source[0] - c9 * source[2]
148                   - c10 * source[27] + c11 * source[20] + c11 * source[22]
149                   + c8 * source[47] - c9 * source[40] - c9 * source[42];
150     target[5] =  c8 * source[8] - c9 * source[1] - c9 * source[3]
151                   - c10 * source[28] + c11 * source[21] + c11 * source[23]
152                   + c8 * source[48] - c9 * source[41] - c9 * source[43];
153     target[6] =  c12 * source[9] - c13 * source[4] - c13 * source[6]
154                   - c14 * source[29] + c15 * source[24] + c15 * source[26]
155                   + c12 * source[49] - c13 * source[44] - c13 * source[46];
156     target[7] =  c16 * source[10] - c17 * source[12] - c16 * source[30]
157                   + c17 * source[32];
158     target[8] =  c17 * source[11] - c16 * source[13] - c17 * source[31]
159                   + c16 * source[33];
160     target[9] =  c18 * source[14] - c18 * source[16] - c18 * source[34]
161                   + c18 * source[36];
162     target[10] =  c19 * source[15] - c19 * source[35];
163     target[11] =  c20 * source[17] - c8 * source[10] - c8 * source[12]
164                   - c20 * source[37] + c8 * source[30] + c8 * source[32];
165     target[12] =  c20 * source[18] - c8 * source[11] - c8 * source[13]
166                   - c20 * source[38] + c8 * source[31] + c8 * source[33];
167     target[13] =  c21 * source[19] - c14 * source[14] - c14 * source[16]
168                   - c21 * source[39] + c14 * source[34] + c14 * source[36];
169     target[14] =  c22 * source[50] - c23 * source[52] - c23 * source[70]
170                   + c24 * source[72];
171     target[15] =  c23 * source[51] - c22 * source[53] - c24 * source[71]
172                   + c23 * source[73];
173     target[16] =  c25 * source[54] - c25 * source[56] - c26 * source[74]
174                   + c26 * source[76];
175     target[17] =  c27 * source[55] - c28 * source[75];
176     target[18] =  c29 * source[57] - c30 * source[50] - c30 * source[52]
177                   - c31 * source[77] + c32 * source[70] + c32 * source[72];
178     target[19] =  c29 * source[58] - c30 * source[51] - c30 * source[53]
179                   - c31 * source[78] + c32 * source[71] + c32 * source[73];
180     target[20] =  c33 * source[59] - c34 * source[54] - c34 * source[56]
181                   - c35 * source[79] + c36 * source[74] + c36 * source[76];
182     target[21] =  c23 * source[60] - c24 * source[62] - c22 * source[80]
183                   + c23 * source[82];
184     target[22] =  c24 * source[61] - c23 * source[63] - c23 * source[81]
185                   + c22 * source[83];
186     target[23] =  c26 * source[64] - c26 * source[66] - c25 * source[84]
187                   + c25 * source[86];
188     target[24] =  c28 * source[65] - c27 * source[85];
189     target[25] =  c31 * source[67] - c32 * source[60] - c32 * source[62]
190                   - c29 * source[87] + c30 * source[80] + c30 * source[82];
191     target[26] =  c31 * source[68] - c32 * source[61] - c32 * source[63]
192                   - c29 * source[88] + c30 * source[81] + c30 * source[83];
193     target[27] =  c35 * source[69] - c36 * source[64] - c36 * source[66]
194                   - c33 * source[89] + c34 * source[84] + c34 * source[86];
195     target[28] =  c37 * source[90] - c38 * source[92] - c37 * source[110]
196                   + c38 * source[112] - c39 * source[0] + c40 * source[2]
197                   + c39 * source[20] - c40 * source[22] - c39 * source[20]
198                   + c40 * source[22] + c39 * source[40] - c40 * source[42];
199     target[29] =  c38 * source[91] - c37 * source[93] - c38 * source[111]
200                   + c37 * source[113] - c40 * source[1] + c39 * source[3]
201                   + c40 * source[21] - c39 * source[23] - c40 * source[21]
202                   + c39 * source[23] + c40 * source[41] - c39 * source[43];
203     target[30] =  c41 * source[94] - c41 * source[96] - c41 * source[114]
204                   + c41 * source[116] - c42 * source[4] + c42 * source[6]
205                   + c42 * source[24] - c42 * source[26] - c42 * source[24]
206                   + c42 * source[26] + c42 * source[44] - c42 * source[46];
207     target[31] =  c43 * source[95] - c43 * source[115] - c44 * source[5]
208                   + c44 * source[25] - c44 * source[25] + c44 * source[45];
209     target[32] =  c45 * source[97] - c46 * source[90] - c46 * source[92]
210                   - c45 * source[117] + c46 * source[110] + c46 * source[112]
211                   - c47 * source[7] + c48 * source[0] + c48 * source[2]
212                   + c47 * source[27] - c48 * source[20] - c48 * source[22]
213                   - c47 * source[27] + c48 * source[20] + c48 * source[22]
214                   + c47 * source[47] - c48 * source[40] - c48 * source[42];
215     target[33] =  c45 * source[98] - c46 * source[91] - c46 * source[93]
216                   - c45 * source[118] + c46 * source[111] + c46 * source[113]
217                   - c47 * source[8] + c48 * source[1] + c48 * source[3]
218                   + c47 * source[28] - c48 * source[21] - c48 * source[23]
219                   - c47 * source[28] + c48 * source[21] + c48 * source[23]
220                   + c47 * source[48] - c48 * source[41] - c48 * source[43];
221     target[34] =  c49 * source[99] - c50 * source[94] - c50 * source[96]
222                   - c49 * source[119] + c50 * source[114] + c50 * source[116]
223                   - c51 * source[9] + c52 * source[4] + c52 * source[6]
224                   + c51 * source[29] - c52 * source[24] - c52 * source[26]
225                   - c51 * source[29] + c52 * source[24] + c52 * source[26]
226                   + c51 * source[49] - c52 * source[44] - c52 * source[46];
227     target[35] =  c53 * source[100] - c54 * source[102] - c55 * source[10]
228                   + c37 * source[12] - c55 * source[30] + c37 * source[32];
229     target[36] =  c54 * source[101] - c53 * source[103] - c37 * source[11]
230                   + c55 * source[13] - c37 * source[31] + c55 * source[33];
231     target[37] =  c43 * source[104] - c43 * source[106] - c44 * source[14]
232                   + c44 * source[16] - c44 * source[34] + c44 * source[36];
233     target[38] =  c56 * source[105] - c57 * source[15] - c57 * source[35];
234     target[39] =  c58 * source[107] - c59 * source[100] - c59 * source[102]
235                   - c60 * source[17] + c61 * source[10] + c61 * source[12]
236                   - c60 * source[37] + c61 * source[30] + c61 * source[32];
237     target[40] =  c58 * source[108] - c59 * source[101] - c59 * source[103]
238                   - c60 * source[18] + c61 * source[11] + c61 * source[13]
239                   - c60 * source[38] + c61 * source[31] + c61 * source[33];
240     target[41] =  c62 * source[109] - c63 * source[104] - c63 * source[106]
241                   - c64 * source[19] + c65 * source[14] + c65 * source[16]
242                   - c64 * source[39] + c65 * source[34] + c65 * source[36];
243     target[42] =  c66 * source[120] - c67 * source[122] - c68 * source[50]
244                   + c69 * source[52] - c68 * source[70] + c69 * source[72];
245     target[43] =  c67 * source[121] - c66 * source[123] - c69 * source[51]
246                   + c68 * source[53] - c69 * source[71] + c68 * source[73];
247     target[44] =  c70 * source[124] - c70 * source[126] - c71 * source[54]
248                   + c71 * source[56] - c71 * source[74] + c71 * source[76];
249     target[45] =  c72 * source[125] - c73 * source[55] - c73 * source[75];
250     target[46] =  c74 * source[127] - c75 * source[120] - c75 * source[122]
251                   - c76 * source[57] + c77 * source[50] + c77 * source[52]
252                   - c76 * source[77] + c77 * source[70] + c77 * source[72];
253     target[47] =  c74 * source[128] - c75 * source[121] - c75 * source[123]
254                   - c76 * source[58] + c77 * source[51] + c77 * source[53]
255                   - c76 * source[78] + c77 * source[71] + c77 * source[73];
256     target[48] =  c78 * source[129] - c79 * source[124] - c79 * source[126]
257                   - c80 * source[59] + c81 * source[54] + c81 * source[56]
258                   - c80 * source[79] + c81 * source[74] + c81 * source[76];
259     target[49] =  c66 * source[130] - c67 * source[132] - c68 * source[60]
260                   + c69 * source[62] - c68 * source[80] + c69 * source[82];
261     target[50] =  c67 * source[131] - c66 * source[133] - c69 * source[61]
262                   + c68 * source[63] - c69 * source[81] + c68 * source[83];
263     target[51] =  c70 * source[134] - c70 * source[136] - c71 * source[64]
264                   + c71 * source[66] - c71 * source[84] + c71 * source[86];
265     target[52] =  c72 * source[135] - c73 * source[65] - c73 * source[85];
266     target[53] =  c74 * source[137] - c75 * source[130] - c75 * source[132]
267                   - c76 * source[67] + c77 * source[60] + c77 * source[62]
268                   - c76 * source[87] + c77 * source[80] + c77 * source[82];
269     target[54] =  c74 * source[138] - c75 * source[131] - c75 * source[133]
270                   - c76 * source[68] + c77 * source[61] + c77 * source[63]
271                   - c76 * source[88] + c77 * source[81] + c77 * source[83];
272     target[55] =  c78 * source[139] - c79 * source[134] - c79 * source[136]
273                   - c80 * source[69] + c81 * source[64] + c81 * source[66]
274                   - c80 * source[89] + c81 * source[84] + c81 * source[86];
275     target[56] =  c82 * source[140] - c80 * source[142] - c80 * source[90]
276                   + c83 * source[92] - c80 * source[110] + c83 * source[112]
277                   + c84 * source[0] - c85 * source[2] + c86 * source[20]
278                   - c87 * source[22] + c84 * source[40] - c85 * source[42];
279     target[57] =  c80 * source[141] - c82 * source[143] - c83 * source[91]
280                   + c80 * source[93] - c83 * source[111] + c80 * source[113]
281                   + c85 * source[1] - c84 * source[3] + c87 * source[21]
282                   - c86 * source[23] + c85 * source[41] - c84 * source[43];
283     target[58] =  c75 * source[144] - c75 * source[146] - c76 * source[94]
284                   + c76 * source[96] - c76 * source[114] + c76 * source[116]
285                   + c88 * source[4] - c88 * source[6] + c77 * source[24]
286                   - c77 * source[26] + c88 * source[44] - c88 * source[46];
287     target[59] =  c89 * source[145] - c90 * source[95] - c90 * source[115]
288                   + c77 * source[5] + c91 * source[25] + c77 * source[45];
289     target[60] =  c92 * source[147] - c93 * source[140] - c93 * source[142]
290                   - c94 * source[97] + c95 * source[90] + c95 * source[92]
291                   - c94 * source[117] + c95 * source[110] + c95 * source[112]
292                   + c96 * source[7] - c97 * source[0] - c97 * source[2]
293                   + c95 * source[27] - c98 * source[20] - c98 * source[22]
294                   + c96 * source[47] - c97 * source[40] - c97 * source[42];
295     target[61] =  c92 * source[148] - c93 * source[141] - c93 * source[143]
296                   - c94 * source[98] + c95 * source[91] + c95 * source[93]
297                   - c94 * source[118] + c95 * source[111] + c95 * source[113]
298                   + c96 * source[8] - c97 * source[1] - c97 * source[3]
299                   + c95 * source[28] - c98 * source[21] - c98 * source[23]
300                   + c96 * source[48] - c97 * source[41] - c97 * source[43];
301     target[62] =  source[149] - c99 * source[144] - c99 * source[146]
302                   - c100 * source[99] + c101 * source[94] + c101 * source[96]
303                   - c100 * source[119] + c101 * source[114] + c101 * source[116]
304                   + c102 * source[9] - c103 * source[4] - c103 * source[6]
305                   + c104 * source[29] - c105 * source[24] - c105 * source[26]
306                   + c102 * source[49] - c103 * source[44] - c103 * source[46];
307   }
308 }
309 
carsph_43(const int nloop,const complex<double> * source,complex<double> * target)310 void CCarSphList::carsph_43(const int nloop, const complex<double>* source, complex<double>* target) {
311   const double c56 = 25.98076211353316;
312   const double c28 = 24.302777619029477;
313   const double c7 = 17.1846588560844;
314   const double c58 = 16.431676725154983;
315   const double c54 = 15.90990257669732;
316   const double c31 = 15.370426148939398;
317   const double c24 = 14.882351124738323;
318   const double c43 = 12.99038105676658;
319   const double c72 = 12.24744871391589;
320   const double c26 = 12.151388809514739;
321   const double c90 = 11.61895003862225;
322   const double c19 = 11.456439237389599;
323   const double c10 = 10.868532559642079;
324   const double c3 = 10.523411400301709;
325   const double c63 = 10.062305898749054;
326   const double c36 = 9.4124252985083494;
327   const double c73 = 9.1855865354369186;
328   const double c5 = 8.5923294280422002;
329   const double c45 = 8.2158383625774913;
330   const double c27 = 8.1009258730098246;
331   const double c38 = 7.9549512883486599;
332   const double c74 = 7.745966692414834;
333   const double c67 = 7.5;
334   const double c94 = 7.3484692283495345;
335   const double c20 = 7.245688373094719;
336   const double c83 = 7.1151247353788536;
337   const double c17 = 7.0156076002011405;
338   const double c62 = 6.7082039324993694;
339   const double c15 = 6.6555897559870685;
340   const double c41 = 6.49519052838329;
341   const double c35 = 6.2749501990055663;
342   const double c70 = 6.1237243569579451;
343   const double c76 = 5.8094750193111251;
344   const double c18 = 5.7282196186947996;
345   const double c69 = 5.625;
346   const double c53 = 5.3033008588991066;
347   const double c29 = 5.123475382979799;
348   const double c50 = 5.0311529493745271;
349   const double c23 = 4.9607837082461073;
350   const double c79 = 4.7434164902525691;
351   const double c71 = 4.5927932677184593;
352   const double c101 = 4.5;
353   const double c14 = 4.4370598373247123;
354   const double c57 = 4.3301270189221936;
355   const double c59 = 4.1079191812887457;
356   const double c25 = 4.0504629365049123;
357   const double c89 = 3.872983346207417;
358   const double c32 = 3.8426065372348495;
359   const double c81 = 3.5575623676894268;
360   const double c2 = 3.5078038001005702;
361   const double c49 = 3.3541019662496847;
362   const double c78 = 3.1622776601683795;
363   const double c34 = 3.1374750995027831;
364   const double c100 = 3;
365   const double c21 = 2.9580398915498081;
366   const double c91 = 2.9047375096555625;
367   const double c6 = 2.8641098093473998;
368   const double c60 = 2.7386127875258306;
369   const double c11 = 2.7171331399105196;
370   const double c37 = 2.6516504294495533;
371   const double c66 = 2.5;
372   const double c92 = 2.4494897427831779;
373   const double c80 = 2.3717082451262845;
374   const double c16 = 2.3385358667337135;
375   const double c44 = 2.1650635094610968;
376   const double c33 = 2.0916500663351889;
377   const double c46 = 2.0539595906443728;
378   const double c75 = 1.9364916731037085;
379   const double c68 = 1.875;
380   const double c95 = 1.8371173070873836;
381   const double c8 = 1.8114220932736798;
382   const double c87 = 1.7787811838447134;
383   const double c1 = 1.7539019000502851;
384   const double c65 = 1.6770509831248424;
385   const double c22 = 1.6535945694153691;
386   const double c99 = 1.5;
387   const double c77 = 1.4523687548277813;
388   const double c4 = 1.4320549046736999;
389   const double c47 = 1.3693063937629153;
390   const double c40 = 1.3258252147247767;
391   const double c30 = 1.2808688457449497;
392   const double c105 = 1.125;
393   const double c64 = 1.1180339887498949;
394   const double c13 = 1.1092649593311781;
395   const double c42 = 1.0825317547305484;
396   const double c96 = 0.91855865354369182;
397   const double c85 = 0.8893905919223567;
398   const double c55 = 0.88388347648318444;
399   const double c52 = 0.83852549156242118;
400   const double c82 = 0.79056941504209488;
401   const double c104 = 0.75;
402   const double c12 = 0.73950997288745202;
403   const double c88 = 0.72618437741389064;
404   const double c61 = 0.68465319688145765;
405   const double c93 = 0.61237243569579447;
406   const double c86 = 0.59292706128157113;
407   const double c0 = 0.58463396668342837;
408   const double c103 = 0.5625;
409   const double c51 = 0.55901699437494745;
410   const double c98 = 0.45927932677184591;
411   const double c9 = 0.45285552331841994;
412   const double c39 = 0.44194173824159222;
413   const double c102 = 0.375;
414   const double c48 = 0.34232659844072882;
415   const double c84 = 0.29646353064078557;
416   const double c97 = 0.22963966338592295;
417   for (int iloop = 0; iloop != nloop; ++iloop, target += 63, source += 150) {
418     target[0] =  c0 * source[0] - c1 * source[2] - c2 * source[20]
419                   + c3 * source[22] + c0 * source[40] - c1 * source[42];
420     target[1] =  c1 * source[1] - c0 * source[3] - c3 * source[21]
421                   + c2 * source[23] + c1 * source[41] - c0 * source[43];
422     target[2] =  c4 * source[4] - c4 * source[6] - c5 * source[24]
423                   + c5 * source[26] + c4 * source[44] - c4 * source[46];
424     target[3] =  c6 * source[5] - c7 * source[25] + c6 * source[45];
425     target[4] =  c8 * source[7] - c9 * source[0] - c9 * source[2]
426                   - c10 * source[27] + c11 * source[20] + c11 * source[22]
427                   + c8 * source[47] - c9 * source[40] - c9 * source[42];
428     target[5] =  c8 * source[8] - c9 * source[1] - c9 * source[3]
429                   - c10 * source[28] + c11 * source[21] + c11 * source[23]
430                   + c8 * source[48] - c9 * source[41] - c9 * source[43];
431     target[6] =  c12 * source[9] - c13 * source[4] - c13 * source[6]
432                   - c14 * source[29] + c15 * source[24] + c15 * source[26]
433                   + c12 * source[49] - c13 * source[44] - c13 * source[46];
434     target[7] =  c16 * source[10] - c17 * source[12] - c16 * source[30]
435                   + c17 * source[32];
436     target[8] =  c17 * source[11] - c16 * source[13] - c17 * source[31]
437                   + c16 * source[33];
438     target[9] =  c18 * source[14] - c18 * source[16] - c18 * source[34]
439                   + c18 * source[36];
440     target[10] =  c19 * source[15] - c19 * source[35];
441     target[11] =  c20 * source[17] - c8 * source[10] - c8 * source[12]
442                   - c20 * source[37] + c8 * source[30] + c8 * source[32];
443     target[12] =  c20 * source[18] - c8 * source[11] - c8 * source[13]
444                   - c20 * source[38] + c8 * source[31] + c8 * source[33];
445     target[13] =  c21 * source[19] - c14 * source[14] - c14 * source[16]
446                   - c21 * source[39] + c14 * source[34] + c14 * source[36];
447     target[14] =  c22 * source[50] - c23 * source[52] - c23 * source[70]
448                   + c24 * source[72];
449     target[15] =  c23 * source[51] - c22 * source[53] - c24 * source[71]
450                   + c23 * source[73];
451     target[16] =  c25 * source[54] - c25 * source[56] - c26 * source[74]
452                   + c26 * source[76];
453     target[17] =  c27 * source[55] - c28 * source[75];
454     target[18] =  c29 * source[57] - c30 * source[50] - c30 * source[52]
455                   - c31 * source[77] + c32 * source[70] + c32 * source[72];
456     target[19] =  c29 * source[58] - c30 * source[51] - c30 * source[53]
457                   - c31 * source[78] + c32 * source[71] + c32 * source[73];
458     target[20] =  c33 * source[59] - c34 * source[54] - c34 * source[56]
459                   - c35 * source[79] + c36 * source[74] + c36 * source[76];
460     target[21] =  c23 * source[60] - c24 * source[62] - c22 * source[80]
461                   + c23 * source[82];
462     target[22] =  c24 * source[61] - c23 * source[63] - c23 * source[81]
463                   + c22 * source[83];
464     target[23] =  c26 * source[64] - c26 * source[66] - c25 * source[84]
465                   + c25 * source[86];
466     target[24] =  c28 * source[65] - c27 * source[85];
467     target[25] =  c31 * source[67] - c32 * source[60] - c32 * source[62]
468                   - c29 * source[87] + c30 * source[80] + c30 * source[82];
469     target[26] =  c31 * source[68] - c32 * source[61] - c32 * source[63]
470                   - c29 * source[88] + c30 * source[81] + c30 * source[83];
471     target[27] =  c35 * source[69] - c36 * source[64] - c36 * source[66]
472                   - c33 * source[89] + c34 * source[84] + c34 * source[86];
473     target[28] =  c37 * source[90] - c38 * source[92] - c37 * source[110]
474                   + c38 * source[112] - c39 * source[0] + c40 * source[2]
475                   + c39 * source[20] - c40 * source[22] - c39 * source[20]
476                   + c40 * source[22] + c39 * source[40] - c40 * source[42];
477     target[29] =  c38 * source[91] - c37 * source[93] - c38 * source[111]
478                   + c37 * source[113] - c40 * source[1] + c39 * source[3]
479                   + c40 * source[21] - c39 * source[23] - c40 * source[21]
480                   + c39 * source[23] + c40 * source[41] - c39 * source[43];
481     target[30] =  c41 * source[94] - c41 * source[96] - c41 * source[114]
482                   + c41 * source[116] - c42 * source[4] + c42 * source[6]
483                   + c42 * source[24] - c42 * source[26] - c42 * source[24]
484                   + c42 * source[26] + c42 * source[44] - c42 * source[46];
485     target[31] =  c43 * source[95] - c43 * source[115] - c44 * source[5]
486                   + c44 * source[25] - c44 * source[25] + c44 * source[45];
487     target[32] =  c45 * source[97] - c46 * source[90] - c46 * source[92]
488                   - c45 * source[117] + c46 * source[110] + c46 * source[112]
489                   - c47 * source[7] + c48 * source[0] + c48 * source[2]
490                   + c47 * source[27] - c48 * source[20] - c48 * source[22]
491                   - c47 * source[27] + c48 * source[20] + c48 * source[22]
492                   + c47 * source[47] - c48 * source[40] - c48 * source[42];
493     target[33] =  c45 * source[98] - c46 * source[91] - c46 * source[93]
494                   - c45 * source[118] + c46 * source[111] + c46 * source[113]
495                   - c47 * source[8] + c48 * source[1] + c48 * source[3]
496                   + c47 * source[28] - c48 * source[21] - c48 * source[23]
497                   - c47 * source[28] + c48 * source[21] + c48 * source[23]
498                   + c47 * source[48] - c48 * source[41] - c48 * source[43];
499     target[34] =  c49 * source[99] - c50 * source[94] - c50 * source[96]
500                   - c49 * source[119] + c50 * source[114] + c50 * source[116]
501                   - c51 * source[9] + c52 * source[4] + c52 * source[6]
502                   + c51 * source[29] - c52 * source[24] - c52 * source[26]
503                   - c51 * source[29] + c52 * source[24] + c52 * source[26]
504                   + c51 * source[49] - c52 * source[44] - c52 * source[46];
505     target[35] =  c53 * source[100] - c54 * source[102] - c55 * source[10]
506                   + c37 * source[12] - c55 * source[30] + c37 * source[32];
507     target[36] =  c54 * source[101] - c53 * source[103] - c37 * source[11]
508                   + c55 * source[13] - c37 * source[31] + c55 * source[33];
509     target[37] =  c43 * source[104] - c43 * source[106] - c44 * source[14]
510                   + c44 * source[16] - c44 * source[34] + c44 * source[36];
511     target[38] =  c56 * source[105] - c57 * source[15] - c57 * source[35];
512     target[39] =  c58 * source[107] - c59 * source[100] - c59 * source[102]
513                   - c60 * source[17] + c61 * source[10] + c61 * source[12]
514                   - c60 * source[37] + c61 * source[30] + c61 * source[32];
515     target[40] =  c58 * source[108] - c59 * source[101] - c59 * source[103]
516                   - c60 * source[18] + c61 * source[11] + c61 * source[13]
517                   - c60 * source[38] + c61 * source[31] + c61 * source[33];
518     target[41] =  c62 * source[109] - c63 * source[104] - c63 * source[106]
519                   - c64 * source[19] + c65 * source[14] + c65 * source[16]
520                   - c64 * source[39] + c65 * source[34] + c65 * source[36];
521     target[42] =  c66 * source[120] - c67 * source[122] - c68 * source[50]
522                   + c69 * source[52] - c68 * source[70] + c69 * source[72];
523     target[43] =  c67 * source[121] - c66 * source[123] - c69 * source[51]
524                   + c68 * source[53] - c69 * source[71] + c68 * source[73];
525     target[44] =  c70 * source[124] - c70 * source[126] - c71 * source[54]
526                   + c71 * source[56] - c71 * source[74] + c71 * source[76];
527     target[45] =  c72 * source[125] - c73 * source[55] - c73 * source[75];
528     target[46] =  c74 * source[127] - c75 * source[120] - c75 * source[122]
529                   - c76 * source[57] + c77 * source[50] + c77 * source[52]
530                   - c76 * source[77] + c77 * source[70] + c77 * source[72];
531     target[47] =  c74 * source[128] - c75 * source[121] - c75 * source[123]
532                   - c76 * source[58] + c77 * source[51] + c77 * source[53]
533                   - c76 * source[78] + c77 * source[71] + c77 * source[73];
534     target[48] =  c78 * source[129] - c79 * source[124] - c79 * source[126]
535                   - c80 * source[59] + c81 * source[54] + c81 * source[56]
536                   - c80 * source[79] + c81 * source[74] + c81 * source[76];
537     target[49] =  c66 * source[130] - c67 * source[132] - c68 * source[60]
538                   + c69 * source[62] - c68 * source[80] + c69 * source[82];
539     target[50] =  c67 * source[131] - c66 * source[133] - c69 * source[61]
540                   + c68 * source[63] - c69 * source[81] + c68 * source[83];
541     target[51] =  c70 * source[134] - c70 * source[136] - c71 * source[64]
542                   + c71 * source[66] - c71 * source[84] + c71 * source[86];
543     target[52] =  c72 * source[135] - c73 * source[65] - c73 * source[85];
544     target[53] =  c74 * source[137] - c75 * source[130] - c75 * source[132]
545                   - c76 * source[67] + c77 * source[60] + c77 * source[62]
546                   - c76 * source[87] + c77 * source[80] + c77 * source[82];
547     target[54] =  c74 * source[138] - c75 * source[131] - c75 * source[133]
548                   - c76 * source[68] + c77 * source[61] + c77 * source[63]
549                   - c76 * source[88] + c77 * source[81] + c77 * source[83];
550     target[55] =  c78 * source[139] - c79 * source[134] - c79 * source[136]
551                   - c80 * source[69] + c81 * source[64] + c81 * source[66]
552                   - c80 * source[89] + c81 * source[84] + c81 * source[86];
553     target[56] =  c82 * source[140] - c80 * source[142] - c80 * source[90]
554                   + c83 * source[92] - c80 * source[110] + c83 * source[112]
555                   + c84 * source[0] - c85 * source[2] + c86 * source[20]
556                   - c87 * source[22] + c84 * source[40] - c85 * source[42];
557     target[57] =  c80 * source[141] - c82 * source[143] - c83 * source[91]
558                   + c80 * source[93] - c83 * source[111] + c80 * source[113]
559                   + c85 * source[1] - c84 * source[3] + c87 * source[21]
560                   - c86 * source[23] + c85 * source[41] - c84 * source[43];
561     target[58] =  c75 * source[144] - c75 * source[146] - c76 * source[94]
562                   + c76 * source[96] - c76 * source[114] + c76 * source[116]
563                   + c88 * source[4] - c88 * source[6] + c77 * source[24]
564                   - c77 * source[26] + c88 * source[44] - c88 * source[46];
565     target[59] =  c89 * source[145] - c90 * source[95] - c90 * source[115]
566                   + c77 * source[5] + c91 * source[25] + c77 * source[45];
567     target[60] =  c92 * source[147] - c93 * source[140] - c93 * source[142]
568                   - c94 * source[97] + c95 * source[90] + c95 * source[92]
569                   - c94 * source[117] + c95 * source[110] + c95 * source[112]
570                   + c96 * source[7] - c97 * source[0] - c97 * source[2]
571                   + c95 * source[27] - c98 * source[20] - c98 * source[22]
572                   + c96 * source[47] - c97 * source[40] - c97 * source[42];
573     target[61] =  c92 * source[148] - c93 * source[141] - c93 * source[143]
574                   - c94 * source[98] + c95 * source[91] + c95 * source[93]
575                   - c94 * source[118] + c95 * source[111] + c95 * source[113]
576                   + c96 * source[8] - c97 * source[1] - c97 * source[3]
577                   + c95 * source[28] - c98 * source[21] - c98 * source[23]
578                   + c96 * source[48] - c97 * source[41] - c97 * source[43];
579     target[62] =  source[149] - c99 * source[144] - c99 * source[146]
580                   - c100 * source[99] + c101 * source[94] + c101 * source[96]
581                   - c100 * source[119] + c101 * source[114] + c101 * source[116]
582                   + c102 * source[9] - c103 * source[4] - c103 * source[6]
583                   + c104 * source[29] - c105 * source[24] - c105 * source[26]
584                   + c102 * source[49] - c103 * source[44] - c103 * source[46];
585   }
586 }
587 
588