/[escript]/trunk/ripley/src/WaveAssembler3D.cpp
ViewVC logotype

Contents of /trunk/ripley/src/WaveAssembler3D.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4645 - (show annotations)
Mon Feb 3 00:06:24 2014 UTC (5 years, 2 months ago) by sshaw
File size: 230152 byte(s)
further optimisation of wave assemblers, added support for constant data
1
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2014 by University of Queensland
5 * http://www.uq.edu.au
6 *
7 * Primary Business: Queensland, Australia
8 * Licensed under the Open Software License version 3.0
9 * http://www.opensource.org/licenses/osl-3.0.php
10 *
11 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 * Development since 2012 by School of Earth Sciences
13 *
14 *****************************************************************************/
15 #include <ripley/WaveAssembler3D.h>
16 #include <fenv.h>
17 using namespace std;
18
19 namespace ripley {
20
21 WaveAssembler3D::WaveAssembler3D(Brick *dom, double *m_dx, dim_t *m_NX, dim_t *m_NE,
22 dim_t *m_NN, std::map<std::string, escript::Data> c)
23 : AbstractAssembler() {
24 domain = dom;
25 this->m_dx = m_dx;
26 this->m_NX = m_NX;
27 this->m_NE = m_NE;
28 this->m_NN = m_NN;
29 if (c.find("c11") == c.end() || c.find("c12") == c.end()
30 || c.find("c13") == c.end() || c.find("c33") == c.end()
31 || c.find("c44") == c.end() || c.find("c66") == c.end())
32 throw RipleyException("required constants missing for WaveAssembler");
33 c11 = c.find("c11")->second, c12 = c.find("c12")->second,
34 c13 = c.find("c13")->second, c33 = c.find("c33")->second,
35 c44 = c.find("c44")->second, c66 = c.find("c66")->second;
36 }
37
38 void WaveAssembler3D::assemblePDESystem(Paso_SystemMatrix* mat,
39 escript::Data& rhs, map<string, escript::Data> coefs) const
40 {
41 const escript::Data A = unpackData("A", coefs), B = unpackData("B", coefs),
42 C = unpackData("C", coefs), D = unpackData("D", coefs),
43 Y = unpackData("Y", coefs), du = unpackData("du", coefs);
44 dim_t numEq, numComp;
45 if (!mat)
46 numEq=numComp=(rhs.isEmpty() ? 1 : rhs.getDataPointSize());
47 else {
48 numEq=mat->logical_row_block_size;
49 numComp=mat->logical_col_block_size;
50 }
51
52 const double SQRT3 = 1.73205080756887719318;
53 const double w10 = -m_dx[0]/288;
54 const double w12 = w10*(-SQRT3 - 2);
55 const double w6 = w10*(SQRT3 - 2);
56 const double w18 = w10*(-4*SQRT3 - 7);
57 const double w4 = w10*(-4*SQRT3 + 7);
58 const double w11 = m_dx[1]/288;
59 const double w15 = w11*(SQRT3 + 2);
60 const double w5 = w11*(-SQRT3 + 2);
61 const double w2 = w11*(4*SQRT3 - 7);
62 const double w17 = w11*(4*SQRT3 + 7);
63 const double w8 = m_dx[2]/288;
64 const double w16 = w8*(SQRT3 + 2);
65 const double w1 = w8*(-SQRT3 + 2);
66 const double w20 = w8*(4*SQRT3 - 7);
67 const double w21 = w8*(-4*SQRT3 - 7);
68 const double w54 = -m_dx[0]*m_dx[1]/72;
69 const double w68 = -m_dx[0]*m_dx[1]/48;
70 const double w38 = w68*(-SQRT3 - 3)/36;
71 const double w45 = w68*(SQRT3 - 3)/36;
72 const double w35 = w68*(5*SQRT3 - 9)/36;
73 const double w46 = w68*(-5*SQRT3 - 9)/36;
74 const double w43 = w68*(-19*SQRT3 - 33)/36;
75 const double w44 = w68*(19*SQRT3 - 33)/36;
76 const double w66 = w68*(SQRT3 + 2);
77 const double w70 = w68*(-SQRT3 + 2);
78 const double w56 = -m_dx[0]*m_dx[2]/72;
79 const double w67 = -m_dx[0]*m_dx[2]/48;
80 const double w37 = w67*(-SQRT3 - 3)/36;
81 const double w40 = w67*(SQRT3 - 3)/36;
82 const double w34 = w67*(5*SQRT3 - 9)/36;
83 const double w42 = w67*(-5*SQRT3 - 9)/36;
84 const double w47 = w67*(19*SQRT3 + 33)/36;
85 const double w48 = w67*(-19*SQRT3 + 33)/36;
86 const double w65 = w67*(SQRT3 + 2);
87 const double w71 = w67*(-SQRT3 + 2);
88 const double w55 = -m_dx[1]*m_dx[2]/72;
89 const double w69 = -m_dx[1]*m_dx[2]/48;
90 const double w36 = w69*(SQRT3 - 3)/36;
91 const double w39 = w69*(-SQRT3 - 3)/36;
92 const double w33 = w69*(5*SQRT3 - 9)/36;
93 const double w41 = w69*(-5*SQRT3 - 9)/36;
94 const double w49 = w69*(19*SQRT3 - 33)/36;
95 const double w50 = w69*(-19*SQRT3 - 33)/36;
96 const double w64 = w69*(SQRT3 + 2);
97 const double w72 = w69*(-SQRT3 + 2);
98 const double w58 = m_dx[0]*m_dx[1]*m_dx[2]/1728;
99 const double w60 = w58*(-SQRT3 + 2);
100 const double w61 = w58*(SQRT3 + 2);
101 const double w57 = w58*(-4*SQRT3 + 7);
102 const double w59 = w58*(4*SQRT3 + 7);
103 const double w62 = w58*(15*SQRT3 + 26);
104 const double w63 = w58*(-15*SQRT3 + 26);
105 const double w75 = w58*6*(SQRT3 + 3);
106 const double w76 = w58*6*(-SQRT3 + 3);
107 const double w74 = w58*6*(5*SQRT3 + 9);
108 const double w77 = w58*6*(-5*SQRT3 + 9);
109 const double w13 = -m_dx[0]*m_dx[1]/(288*m_dx[2]);
110 const double w19 = w13*(4*SQRT3 + 7);
111 const double w7 = w13*(-4*SQRT3 + 7);
112 const double w23 = w13*(+SQRT3 - 2);
113 const double w25 = w13*(-SQRT3 - 2);
114 const double w22 = -m_dx[0]*m_dx[2]/(288*m_dx[1]);
115 const double w3 = w22*(SQRT3 - 2);
116 const double w9 = w22*(-SQRT3 - 2);
117 const double w24 = w22*(4*SQRT3 + 7);
118 const double w26 = w22*(-4*SQRT3 + 7);
119 const double w27 = -m_dx[1]*m_dx[2]/(288*m_dx[0]);
120 const double w0 = w27*(SQRT3 - 2);
121 const double w14 = w27*(-SQRT3 - 2);
122 const double w28 = w27*(-4*SQRT3 + 7);
123 const double w29 = w27*(4*SQRT3 + 7);
124
125 rhs.requireWrite();
126 #pragma omp parallel
127 {
128 for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring
129 #pragma omp for
130 for (index_t k2=k2_0; k2<m_NE[2]; k2+=2) {
131 for (index_t k1=0; k1<m_NE[1]; ++k1) {
132 for (index_t k0=0; k0<m_NE[0]; ++k0) {
133 bool add_EM_S=false;
134 bool add_EM_F=false;
135 vector<double> EM_S(8*8*numEq*numComp, 0);
136 vector<double> EM_F(8*numEq, 0);
137 const index_t e = k0 + m_NE[0]*k1 + m_NE[0]*m_NE[1]*k2;
138 ///////////////
139 // process A //
140 ///////////////
141 if (!A.isEmpty()) {
142 add_EM_S = true;
143 const double* A_p = A.getSampleDataRO(e);
144 if (A.actsExpanded()) {
145 for (index_t k=0; k<numEq; k++) {
146 for (index_t m=0; m<numComp; m++) {
147 const double A_00_0 = A_p[INDEX5(k,0,m,0,0,numEq,3,numComp,3)];
148 const double A_01_0 = A_p[INDEX5(k,0,m,1,0,numEq,3,numComp,3)];
149 const double A_02_0 = A_p[INDEX5(k,0,m,2,0,numEq,3,numComp,3)];
150 const double A_10_0 = A_p[INDEX5(k,1,m,0,0,numEq,3,numComp,3)];
151 const double A_11_0 = A_p[INDEX5(k,1,m,1,0,numEq,3,numComp,3)];
152 const double A_12_0 = A_p[INDEX5(k,1,m,2,0,numEq,3,numComp,3)];
153 const double A_20_0 = A_p[INDEX5(k,2,m,0,0,numEq,3,numComp,3)];
154 const double A_21_0 = A_p[INDEX5(k,2,m,1,0,numEq,3,numComp,3)];
155 const double A_22_0 = A_p[INDEX5(k,2,m,2,0,numEq,3,numComp,3)];
156 const double A_00_1 = A_p[INDEX5(k,0,m,0,1,numEq,3,numComp,3)];
157 const double A_01_1 = A_p[INDEX5(k,0,m,1,1,numEq,3,numComp,3)];
158 const double A_02_1 = A_p[INDEX5(k,0,m,2,1,numEq,3,numComp,3)];
159 const double A_10_1 = A_p[INDEX5(k,1,m,0,1,numEq,3,numComp,3)];
160 const double A_11_1 = A_p[INDEX5(k,1,m,1,1,numEq,3,numComp,3)];
161 const double A_12_1 = A_p[INDEX5(k,1,m,2,1,numEq,3,numComp,3)];
162 const double A_20_1 = A_p[INDEX5(k,2,m,0,1,numEq,3,numComp,3)];
163 const double A_21_1 = A_p[INDEX5(k,2,m,1,1,numEq,3,numComp,3)];
164 const double A_22_1 = A_p[INDEX5(k,2,m,2,1,numEq,3,numComp,3)];
165 const double A_00_2 = A_p[INDEX5(k,0,m,0,2,numEq,3,numComp,3)];
166 const double A_01_2 = A_p[INDEX5(k,0,m,1,2,numEq,3,numComp,3)];
167 const double A_02_2 = A_p[INDEX5(k,0,m,2,2,numEq,3,numComp,3)];
168 const double A_10_2 = A_p[INDEX5(k,1,m,0,2,numEq,3,numComp,3)];
169 const double A_11_2 = A_p[INDEX5(k,1,m,1,2,numEq,3,numComp,3)];
170 const double A_12_2 = A_p[INDEX5(k,1,m,2,2,numEq,3,numComp,3)];
171 const double A_20_2 = A_p[INDEX5(k,2,m,0,2,numEq,3,numComp,3)];
172 const double A_21_2 = A_p[INDEX5(k,2,m,1,2,numEq,3,numComp,3)];
173 const double A_22_2 = A_p[INDEX5(k,2,m,2,2,numEq,3,numComp,3)];
174 const double A_00_3 = A_p[INDEX5(k,0,m,0,3,numEq,3,numComp,3)];
175 const double A_01_3 = A_p[INDEX5(k,0,m,1,3,numEq,3,numComp,3)];
176 const double A_02_3 = A_p[INDEX5(k,0,m,2,3,numEq,3,numComp,3)];
177 const double A_10_3 = A_p[INDEX5(k,1,m,0,3,numEq,3,numComp,3)];
178 const double A_11_3 = A_p[INDEX5(k,1,m,1,3,numEq,3,numComp,3)];
179 const double A_12_3 = A_p[INDEX5(k,1,m,2,3,numEq,3,numComp,3)];
180 const double A_20_3 = A_p[INDEX5(k,2,m,0,3,numEq,3,numComp,3)];
181 const double A_21_3 = A_p[INDEX5(k,2,m,1,3,numEq,3,numComp,3)];
182 const double A_22_3 = A_p[INDEX5(k,2,m,2,3,numEq,3,numComp,3)];
183 const double A_00_4 = A_p[INDEX5(k,0,m,0,4,numEq,3,numComp,3)];
184 const double A_01_4 = A_p[INDEX5(k,0,m,1,4,numEq,3,numComp,3)];
185 const double A_02_4 = A_p[INDEX5(k,0,m,2,4,numEq,3,numComp,3)];
186 const double A_10_4 = A_p[INDEX5(k,1,m,0,4,numEq,3,numComp,3)];
187 const double A_11_4 = A_p[INDEX5(k,1,m,1,4,numEq,3,numComp,3)];
188 const double A_12_4 = A_p[INDEX5(k,1,m,2,4,numEq,3,numComp,3)];
189 const double A_20_4 = A_p[INDEX5(k,2,m,0,4,numEq,3,numComp,3)];
190 const double A_21_4 = A_p[INDEX5(k,2,m,1,4,numEq,3,numComp,3)];
191 const double A_22_4 = A_p[INDEX5(k,2,m,2,4,numEq,3,numComp,3)];
192 const double A_00_5 = A_p[INDEX5(k,0,m,0,5,numEq,3,numComp,3)];
193 const double A_01_5 = A_p[INDEX5(k,0,m,1,5,numEq,3,numComp,3)];
194 const double A_02_5 = A_p[INDEX5(k,0,m,2,5,numEq,3,numComp,3)];
195 const double A_10_5 = A_p[INDEX5(k,1,m,0,5,numEq,3,numComp,3)];
196 const double A_11_5 = A_p[INDEX5(k,1,m,1,5,numEq,3,numComp,3)];
197 const double A_12_5 = A_p[INDEX5(k,1,m,2,5,numEq,3,numComp,3)];
198 const double A_20_5 = A_p[INDEX5(k,2,m,0,5,numEq,3,numComp,3)];
199 const double A_21_5 = A_p[INDEX5(k,2,m,1,5,numEq,3,numComp,3)];
200 const double A_22_5 = A_p[INDEX5(k,2,m,2,5,numEq,3,numComp,3)];
201 const double A_00_6 = A_p[INDEX5(k,0,m,0,6,numEq,3,numComp,3)];
202 const double A_01_6 = A_p[INDEX5(k,0,m,1,6,numEq,3,numComp,3)];
203 const double A_02_6 = A_p[INDEX5(k,0,m,2,6,numEq,3,numComp,3)];
204 const double A_10_6 = A_p[INDEX5(k,1,m,0,6,numEq,3,numComp,3)];
205 const double A_11_6 = A_p[INDEX5(k,1,m,1,6,numEq,3,numComp,3)];
206 const double A_12_6 = A_p[INDEX5(k,1,m,2,6,numEq,3,numComp,3)];
207 const double A_20_6 = A_p[INDEX5(k,2,m,0,6,numEq,3,numComp,3)];
208 const double A_21_6 = A_p[INDEX5(k,2,m,1,6,numEq,3,numComp,3)];
209 const double A_22_6 = A_p[INDEX5(k,2,m,2,6,numEq,3,numComp,3)];
210 const double A_00_7 = A_p[INDEX5(k,0,m,0,7,numEq,3,numComp,3)];
211 const double A_01_7 = A_p[INDEX5(k,0,m,1,7,numEq,3,numComp,3)];
212 const double A_02_7 = A_p[INDEX5(k,0,m,2,7,numEq,3,numComp,3)];
213 const double A_10_7 = A_p[INDEX5(k,1,m,0,7,numEq,3,numComp,3)];
214 const double A_11_7 = A_p[INDEX5(k,1,m,1,7,numEq,3,numComp,3)];
215 const double A_12_7 = A_p[INDEX5(k,1,m,2,7,numEq,3,numComp,3)];
216 const double A_20_7 = A_p[INDEX5(k,2,m,0,7,numEq,3,numComp,3)];
217 const double A_21_7 = A_p[INDEX5(k,2,m,1,7,numEq,3,numComp,3)];
218 const double A_22_7 = A_p[INDEX5(k,2,m,2,7,numEq,3,numComp,3)];
219 const double tmp0 = w18*(-A_12_7 + A_21_3);
220 const double tmp1 = w13*(A_22_1 + A_22_2 + A_22_5 + A_22_6);
221 const double tmp2 = w11*(-A_02_2 - A_02_5 + A_20_1 + A_20_6);
222 const double tmp3 = w14*(A_00_2 + A_00_3 + A_00_6 + A_00_7);
223 const double tmp4 = w7*(A_22_0 + A_22_4);
224 const double tmp5 = w10*(A_12_1 + A_12_6 - A_21_2 - A_21_5);
225 const double tmp6 = w3*(A_11_0 + A_11_2 + A_11_4 + A_11_6);
226 const double tmp7 = w1*(A_01_0 + A_01_4 + A_10_0 + A_10_4);
227 const double tmp8 = w4*(A_12_0 - A_21_4);
228 const double tmp9 = w15*(-A_02_3 - A_02_6 + A_20_2 + A_20_7);
229 const double tmp10 = w0*(A_00_0 + A_00_1 + A_00_4 + A_00_5);
230 const double tmp11 = w16*(A_01_3 + A_01_7 + A_10_3 + A_10_7);
231 const double tmp12 = w9*(A_11_1 + A_11_3 + A_11_5 + A_11_7);
232 const double tmp13 = w12*(-A_12_3 - A_12_5 + A_21_1 + A_21_7);
233 const double tmp14 = w5*(-A_02_1 - A_02_4 + A_20_0 + A_20_5);
234 const double tmp15 = w8*(A_01_1 + A_01_2 + A_01_5 + A_01_6 + A_10_1 + A_10_2 + A_10_5 + A_10_6);
235 const double tmp16 = w6*(-A_12_2 - A_12_4 + A_21_0 + A_21_6);
236 const double tmp17 = w19*(A_22_3 + A_22_7);
237 const double tmp18 = w17*(-A_02_7 + A_20_3);
238 const double tmp19 = w2*(A_02_0 - A_20_4);
239 const double tmp20 = w13*(-A_22_0 - A_22_1 - A_22_2 - A_22_3 - A_22_4 - A_22_5 - A_22_6 - A_22_7);
240 const double tmp21 = w11*(-A_02_1 - A_02_3 - A_02_4 - A_02_6 + A_20_0 + A_20_2 + A_20_5 + A_20_7);
241 const double tmp22 = w14*(-A_00_4 - A_00_5 - A_00_6 - A_00_7);
242 const double tmp23 = w20*(A_01_2 + A_10_1);
243 const double tmp24 = w10*(A_12_2 + A_12_3 + A_12_4 + A_12_5 - A_21_0 - A_21_1 - A_21_6 - A_21_7);
244 const double tmp25 = w3*(-A_11_0 - A_11_1 - A_11_2 - A_11_3);
245 const double tmp26 = w1*(-A_01_0 - A_01_3 - A_10_0 - A_10_3);
246 const double tmp27 = w15*(-A_02_5 - A_02_7 + A_20_4 + A_20_6);
247 const double tmp28 = w0*(-A_00_0 - A_00_1 - A_00_2 - A_00_3);
248 const double tmp29 = w16*(-A_01_4 - A_01_7 - A_10_4 - A_10_7);
249 const double tmp30 = w9*(-A_11_4 - A_11_5 - A_11_6 - A_11_7);
250 const double tmp31 = w21*(A_01_5 + A_10_6);
251 const double tmp32 = w12*(-A_12_6 - A_12_7 + A_21_4 + A_21_5);
252 const double tmp33 = w5*(-A_02_0 - A_02_2 + A_20_1 + A_20_3);
253 const double tmp34 = w8*(-A_01_1 - A_01_6 - A_10_2 - A_10_5);
254 const double tmp35 = w6*(-A_12_0 - A_12_1 + A_21_2 + A_21_3);
255 const double tmp36 = w20*(-A_01_6 + A_10_4);
256 const double tmp37 = w18*(A_12_3 - A_21_1);
257 const double tmp38 = w11*(-A_02_0 - A_02_2 - A_02_5 - A_02_7 - A_20_0 - A_20_2 - A_20_5 - A_20_7);
258 const double tmp39 = w14*(A_00_0 + A_00_1 + A_00_2 + A_00_3);
259 const double tmp40 = w26*(A_11_4 + A_11_6);
260 const double tmp41 = w0*(A_00_4 + A_00_5 + A_00_6 + A_00_7);
261 const double tmp42 = w10*(-A_12_2 - A_12_5 + A_21_0 + A_21_7);
262 const double tmp43 = w22*(A_11_0 + A_11_2 + A_11_5 + A_11_7);
263 const double tmp44 = w1*(A_01_4 + A_01_7 - A_10_5 - A_10_6);
264 const double tmp45 = w25*(A_22_1 + A_22_3 + A_22_5 + A_22_7);
265 const double tmp46 = w4*(-A_12_4 + A_21_6);
266 const double tmp47 = w15*(-A_02_1 - A_02_3 - A_20_1 - A_20_3);
267 const double tmp48 = w21*(-A_01_1 + A_10_3);
268 const double tmp49 = w16*(A_01_0 + A_01_3 - A_10_1 - A_10_2);
269 const double tmp50 = w5*(-A_02_4 - A_02_6 - A_20_4 - A_20_6);
270 const double tmp51 = w12*(A_12_1 + A_12_7 - A_21_3 - A_21_5);
271 const double tmp52 = w24*(A_11_1 + A_11_3);
272 const double tmp53 = w8*(A_01_2 + A_01_5 - A_10_0 - A_10_7);
273 const double tmp54 = w6*(A_12_0 + A_12_6 - A_21_2 - A_21_4);
274 const double tmp55 = w23*(A_22_0 + A_22_2 + A_22_4 + A_22_6);
275 const double tmp56 = w18*(A_12_4 - A_21_6);
276 const double tmp57 = w14*(A_00_4 + A_00_5 + A_00_6 + A_00_7);
277 const double tmp58 = w26*(A_11_1 + A_11_3);
278 const double tmp59 = w20*(-A_01_1 + A_10_3);
279 const double tmp60 = w1*(A_01_0 + A_01_3 - A_10_1 - A_10_2);
280 const double tmp61 = w25*(A_22_0 + A_22_2 + A_22_4 + A_22_6);
281 const double tmp62 = w4*(-A_12_3 + A_21_1);
282 const double tmp63 = w15*(-A_02_4 - A_02_6 - A_20_4 - A_20_6);
283 const double tmp64 = w0*(A_00_0 + A_00_1 + A_00_2 + A_00_3);
284 const double tmp65 = w16*(A_01_4 + A_01_7 - A_10_5 - A_10_6);
285 const double tmp66 = w24*(A_11_4 + A_11_6);
286 const double tmp67 = w21*(-A_01_6 + A_10_4);
287 const double tmp68 = w12*(A_12_0 + A_12_6 - A_21_2 - A_21_4);
288 const double tmp69 = w5*(-A_02_1 - A_02_3 - A_20_1 - A_20_3);
289 const double tmp70 = w6*(A_12_1 + A_12_7 - A_21_3 - A_21_5);
290 const double tmp71 = w23*(A_22_1 + A_22_3 + A_22_5 + A_22_7);
291 const double tmp72 = w20*(A_01_5 + A_10_6);
292 const double tmp73 = w14*(-A_00_0 - A_00_1 - A_00_2 - A_00_3);
293 const double tmp74 = w0*(-A_00_4 - A_00_5 - A_00_6 - A_00_7);
294 const double tmp75 = w3*(-A_11_4 - A_11_5 - A_11_6 - A_11_7);
295 const double tmp76 = w1*(-A_01_4 - A_01_7 - A_10_4 - A_10_7);
296 const double tmp77 = w15*(-A_02_0 - A_02_2 + A_20_1 + A_20_3);
297 const double tmp78 = w21*(A_01_2 + A_10_1);
298 const double tmp79 = w16*(-A_01_0 - A_01_3 - A_10_0 - A_10_3);
299 const double tmp80 = w9*(-A_11_0 - A_11_1 - A_11_2 - A_11_3);
300 const double tmp81 = w12*(-A_12_0 - A_12_1 + A_21_2 + A_21_3);
301 const double tmp82 = w5*(-A_02_5 - A_02_7 + A_20_4 + A_20_6);
302 const double tmp83 = w6*(-A_12_6 - A_12_7 + A_21_4 + A_21_5);
303 const double tmp84 = w6*(-A_12_2 - A_12_3 - A_21_2 - A_21_3);
304 const double tmp85 = w11*(A_02_1 + A_02_6 - A_20_0 - A_20_7);
305 const double tmp86 = w20*(A_01_3 - A_10_2);
306 const double tmp87 = w10*(A_12_0 + A_12_1 + A_12_6 + A_12_7 + A_21_0 + A_21_1 + A_21_6 + A_21_7);
307 const double tmp88 = w3*(A_11_0 + A_11_1 + A_11_2 + A_11_3);
308 const double tmp89 = w23*(A_22_2 + A_22_3 + A_22_6 + A_22_7);
309 const double tmp90 = w1*(-A_01_1 - A_01_2 + A_10_0 + A_10_3);
310 const double tmp91 = w25*(A_22_0 + A_22_1 + A_22_4 + A_22_5);
311 const double tmp92 = w15*(A_02_0 + A_02_5 - A_20_1 - A_20_4);
312 const double tmp93 = w21*(A_01_4 - A_10_5);
313 const double tmp94 = w16*(-A_01_5 - A_01_6 + A_10_4 + A_10_7);
314 const double tmp95 = w28*(A_00_2 + A_00_3);
315 const double tmp96 = w12*(-A_12_4 - A_12_5 - A_21_4 - A_21_5);
316 const double tmp97 = w29*(A_00_4 + A_00_5);
317 const double tmp98 = w5*(A_02_2 + A_02_7 - A_20_3 - A_20_6);
318 const double tmp99 = w8*(-A_01_0 - A_01_7 + A_10_1 + A_10_6);
319 const double tmp100 = w9*(A_11_4 + A_11_5 + A_11_6 + A_11_7);
320 const double tmp101 = w27*(A_00_0 + A_00_1 + A_00_6 + A_00_7);
321 const double tmp102 = w17*(A_02_4 - A_20_5);
322 const double tmp103 = w2*(-A_02_3 + A_20_2);
323 const double tmp104 = w13*(A_22_0 + A_22_1 + A_22_2 + A_22_3 + A_22_4 + A_22_5 + A_22_6 + A_22_7);
324 const double tmp105 = w6*(-A_12_4 - A_12_5 - A_21_2 - A_21_3);
325 const double tmp106 = w22*(A_11_0 + A_11_1 + A_11_2 + A_11_3 + A_11_4 + A_11_5 + A_11_6 + A_11_7);
326 const double tmp107 = w1*(-A_01_2 - A_01_6 - A_10_1 - A_10_5);
327 const double tmp108 = w15*(-A_02_1 - A_02_3 - A_20_4 - A_20_6);
328 const double tmp109 = w16*(-A_01_1 - A_01_5 - A_10_2 - A_10_6);
329 const double tmp110 = w12*(-A_12_2 - A_12_3 - A_21_4 - A_21_5);
330 const double tmp111 = w5*(-A_02_4 - A_02_6 - A_20_1 - A_20_3);
331 const double tmp112 = w8*(-A_01_0 - A_01_3 - A_01_4 - A_01_7 - A_10_0 - A_10_3 - A_10_4 - A_10_7);
332 const double tmp113 = w27*(A_00_0 + A_00_1 + A_00_2 + A_00_3 + A_00_4 + A_00_5 + A_00_6 + A_00_7);
333 const double tmp114 = w11*(A_02_0 + A_02_2 + A_02_5 + A_02_7 - A_20_1 - A_20_3 - A_20_4 - A_20_6);
334 const double tmp115 = w21*(-A_01_4 - A_10_7);
335 const double tmp116 = w20*(-A_01_3 - A_10_0);
336 const double tmp117 = w15*(A_02_4 + A_02_6 - A_20_5 - A_20_7);
337 const double tmp118 = w16*(A_01_5 + A_01_6 + A_10_5 + A_10_6);
338 const double tmp119 = w5*(A_02_1 + A_02_3 - A_20_0 - A_20_2);
339 const double tmp120 = w8*(A_01_0 + A_01_7 + A_10_3 + A_10_4);
340 const double tmp121 = w1*(A_01_1 + A_01_2 + A_10_1 + A_10_2);
341 const double tmp122 = w18*(A_12_2 - A_21_6);
342 const double tmp123 = w13*(A_22_0 + A_22_3 + A_22_4 + A_22_7);
343 const double tmp124 = w11*(-A_02_0 - A_02_7 + A_20_3 + A_20_4);
344 const double tmp125 = w7*(A_22_1 + A_22_5);
345 const double tmp126 = w10*(-A_12_3 - A_12_4 + A_21_0 + A_21_7);
346 const double tmp127 = w3*(A_11_1 + A_11_3 + A_11_5 + A_11_7);
347 const double tmp128 = w1*(-A_01_1 - A_01_5 - A_10_1 - A_10_5);
348 const double tmp129 = w4*(-A_12_5 + A_21_1);
349 const double tmp130 = w16*(-A_01_2 - A_01_6 - A_10_2 - A_10_6);
350 const double tmp131 = w9*(A_11_0 + A_11_2 + A_11_4 + A_11_6);
351 const double tmp132 = w19*(A_22_2 + A_22_6);
352 const double tmp133 = w17*(-A_02_2 + A_20_6);
353 const double tmp134 = w2*(A_02_5 - A_20_1);
354 const double tmp135 = w11*(A_02_1 + A_02_3 + A_02_4 + A_02_6 + A_20_1 + A_20_3 + A_20_4 + A_20_6);
355 const double tmp136 = w1*(A_01_3 + A_01_7 + A_10_0 + A_10_4);
356 const double tmp137 = w15*(A_02_0 + A_02_2 + A_20_5 + A_20_7);
357 const double tmp138 = w16*(A_01_0 + A_01_4 + A_10_3 + A_10_7);
358 const double tmp139 = w5*(A_02_5 + A_02_7 + A_20_0 + A_20_2);
359 const double tmp140 = w18*(A_12_5 - A_21_1);
360 const double tmp141 = w14*(A_00_0 + A_00_1 + A_00_4 + A_00_5);
361 const double tmp142 = w7*(A_22_2 + A_22_6);
362 const double tmp143 = w1*(-A_01_2 - A_01_6 - A_10_2 - A_10_6);
363 const double tmp144 = w4*(-A_12_2 + A_21_6);
364 const double tmp145 = w15*(-A_02_1 - A_02_4 + A_20_0 + A_20_5);
365 const double tmp146 = w0*(A_00_2 + A_00_3 + A_00_6 + A_00_7);
366 const double tmp147 = w16*(-A_01_1 - A_01_5 - A_10_1 - A_10_5);
367 const double tmp148 = w5*(-A_02_3 - A_02_6 + A_20_2 + A_20_7);
368 const double tmp149 = w19*(A_22_1 + A_22_5);
369 const double tmp150 = w17*(-A_02_5 + A_20_1);
370 const double tmp151 = w2*(A_02_2 - A_20_6);
371 const double tmp152 = w18*(A_12_3 - A_21_7);
372 const double tmp153 = w11*(A_02_1 + A_02_6 - A_20_2 - A_20_5);
373 const double tmp154 = w10*(-A_12_2 - A_12_5 + A_21_1 + A_21_6);
374 const double tmp155 = w4*(-A_12_4 + A_21_0);
375 const double tmp156 = w15*(A_02_2 + A_02_7 - A_20_3 - A_20_6);
376 const double tmp157 = w5*(A_02_0 + A_02_5 - A_20_1 - A_20_4);
377 const double tmp158 = w17*(A_02_3 - A_20_7);
378 const double tmp159 = w2*(-A_02_4 + A_20_0);
379 const double tmp160 = w6*(A_12_6 + A_12_7 + A_21_0 + A_21_1);
380 const double tmp161 = w10*(-A_12_2 - A_12_3 - A_12_4 - A_12_5 - A_21_2 - A_21_3 - A_21_4 - A_21_5);
381 const double tmp162 = w1*(A_01_0 + A_01_4 + A_10_3 + A_10_7);
382 const double tmp163 = w16*(A_01_3 + A_01_7 + A_10_0 + A_10_4);
383 const double tmp164 = w12*(A_12_0 + A_12_1 + A_21_6 + A_21_7);
384 const double tmp165 = w20*(A_01_6 + A_10_5);
385 const double tmp166 = w10*(-A_12_0 - A_12_1 - A_12_6 - A_12_7 + A_21_2 + A_21_3 + A_21_4 + A_21_5);
386 const double tmp167 = w15*(A_02_1 + A_02_3 - A_20_0 - A_20_2);
387 const double tmp168 = w21*(A_01_1 + A_10_2);
388 const double tmp169 = w12*(A_12_2 + A_12_3 - A_21_0 - A_21_1);
389 const double tmp170 = w5*(A_02_4 + A_02_6 - A_20_5 - A_20_7);
390 const double tmp171 = w8*(-A_01_2 - A_01_5 - A_10_1 - A_10_6);
391 const double tmp172 = w6*(A_12_4 + A_12_5 - A_21_6 - A_21_7);
392 const double tmp173 = w2*(A_02_1 + A_20_4);
393 const double tmp174 = w11*(-A_02_3 - A_02_4 - A_20_1 - A_20_6);
394 const double tmp175 = w14*(-A_00_2 - A_00_3 - A_00_6 - A_00_7);
395 const double tmp176 = w22*(-A_11_0 - A_11_1 - A_11_2 - A_11_3 - A_11_4 - A_11_5 - A_11_6 - A_11_7);
396 const double tmp177 = w1*(A_01_1 + A_01_5 - A_10_0 - A_10_4);
397 const double tmp178 = w25*(-A_22_2 - A_22_3 - A_22_6 - A_22_7);
398 const double tmp179 = w15*(-A_02_2 - A_02_7 - A_20_2 - A_20_7);
399 const double tmp180 = w0*(-A_00_0 - A_00_1 - A_00_4 - A_00_5);
400 const double tmp181 = w16*(A_01_2 + A_01_6 - A_10_3 - A_10_7);
401 const double tmp182 = w12*(-A_12_6 - A_12_7 + A_21_2 + A_21_3);
402 const double tmp183 = w5*(-A_02_0 - A_02_5 - A_20_0 - A_20_5);
403 const double tmp184 = w8*(A_01_0 + A_01_3 + A_01_4 + A_01_7 - A_10_1 - A_10_2 - A_10_5 - A_10_6);
404 const double tmp185 = w6*(-A_12_0 - A_12_1 + A_21_4 + A_21_5);
405 const double tmp186 = w17*(-A_02_6 - A_20_3);
406 const double tmp187 = w23*(-A_22_0 - A_22_1 - A_22_4 - A_22_5);
407 const double tmp188 = w18*(A_12_4 - A_21_0);
408 const double tmp189 = w7*(A_22_3 + A_22_7);
409 const double tmp190 = w1*(A_01_3 + A_01_7 + A_10_3 + A_10_7);
410 const double tmp191 = w4*(-A_12_3 + A_21_7);
411 const double tmp192 = w16*(A_01_0 + A_01_4 + A_10_0 + A_10_4);
412 const double tmp193 = w19*(A_22_0 + A_22_4);
413 const double tmp194 = w17*(A_02_4 - A_20_0);
414 const double tmp195 = w2*(-A_02_3 + A_20_7);
415 const double tmp196 = w20*(-A_01_7 - A_10_4);
416 const double tmp197 = w21*(-A_01_0 - A_10_3);
417 const double tmp198 = w16*(A_01_1 + A_01_2 + A_10_1 + A_10_2);
418 const double tmp199 = w8*(A_01_3 + A_01_4 + A_10_0 + A_10_7);
419 const double tmp200 = w1*(A_01_5 + A_01_6 + A_10_5 + A_10_6);
420 const double tmp201 = w27*(A_00_2 + A_00_3 + A_00_4 + A_00_5);
421 const double tmp202 = w11*(-A_02_2 - A_02_5 + A_20_3 + A_20_4);
422 const double tmp203 = w20*(A_01_0 - A_10_1);
423 const double tmp204 = w23*(A_22_0 + A_22_1 + A_22_4 + A_22_5);
424 const double tmp205 = w25*(A_22_2 + A_22_3 + A_22_6 + A_22_7);
425 const double tmp206 = w21*(A_01_7 - A_10_6);
426 const double tmp207 = w12*(A_12_6 + A_12_7 + A_21_6 + A_21_7);
427 const double tmp208 = w28*(A_00_0 + A_00_1);
428 const double tmp209 = w29*(A_00_6 + A_00_7);
429 const double tmp210 = w8*(-A_01_3 - A_01_4 + A_10_2 + A_10_5);
430 const double tmp211 = w6*(A_12_0 + A_12_1 + A_21_0 + A_21_1);
431 const double tmp212 = w17*(-A_02_7 + A_20_6);
432 const double tmp213 = w2*(A_02_0 - A_20_1);
433 const double tmp214 = w13*(-A_22_1 - A_22_2 - A_22_5 - A_22_6);
434 const double tmp215 = w22*(-A_11_0 - A_11_2 - A_11_5 - A_11_7);
435 const double tmp216 = w8*(A_01_0 + A_01_7 + A_10_0 + A_10_7);
436 const double tmp217 = w27*(-A_00_0 - A_00_1 - A_00_6 - A_00_7);
437 const double tmp218 = w17*(-A_02_3 - A_20_3);
438 const double tmp219 = w2*(A_02_4 + A_20_4);
439 const double tmp220 = w11*(-A_02_1 - A_02_6 - A_20_1 - A_20_6);
440 const double tmp221 = w26*(-A_11_4 - A_11_6);
441 const double tmp222 = w10*(A_12_2 + A_12_5 + A_21_2 + A_21_5);
442 const double tmp223 = w20*(-A_01_4 - A_10_4);
443 const double tmp224 = w21*(-A_01_3 - A_10_3);
444 const double tmp225 = w6*(-A_12_0 - A_12_6 - A_21_0 - A_21_6);
445 const double tmp226 = w7*(-A_22_0 - A_22_4);
446 const double tmp227 = w24*(-A_11_1 - A_11_3);
447 const double tmp228 = w19*(-A_22_3 - A_22_7);
448 const double tmp229 = w18*(-A_12_3 - A_21_3);
449 const double tmp230 = w4*(A_12_4 + A_21_4);
450 const double tmp231 = w28*(-A_00_4 - A_00_5);
451 const double tmp232 = w12*(-A_12_1 - A_12_7 - A_21_1 - A_21_7);
452 const double tmp233 = w29*(-A_00_2 - A_00_3);
453 const double tmp234 = w20*(-A_01_5 + A_10_7);
454 const double tmp235 = w18*(-A_12_0 + A_21_2);
455 const double tmp236 = w26*(A_11_5 + A_11_7);
456 const double tmp237 = w10*(A_12_1 + A_12_6 - A_21_3 - A_21_4);
457 const double tmp238 = w22*(A_11_1 + A_11_3 + A_11_4 + A_11_6);
458 const double tmp239 = w4*(A_12_7 - A_21_5);
459 const double tmp240 = w15*(A_02_0 + A_02_2 + A_20_0 + A_20_2);
460 const double tmp241 = w21*(-A_01_2 + A_10_0);
461 const double tmp242 = w5*(A_02_5 + A_02_7 + A_20_5 + A_20_7);
462 const double tmp243 = w12*(-A_12_2 - A_12_4 + A_21_0 + A_21_6);
463 const double tmp244 = w24*(A_11_0 + A_11_2);
464 const double tmp245 = w8*(A_01_1 + A_01_6 - A_10_3 - A_10_4);
465 const double tmp246 = w6*(-A_12_3 - A_12_5 + A_21_1 + A_21_7);
466 const double tmp247 = w11*(A_02_3 + A_02_4 - A_20_2 - A_20_5);
467 const double tmp248 = w20*(-A_01_1 + A_10_0);
468 const double tmp249 = w21*(-A_01_6 + A_10_7);
469 const double tmp250 = w8*(A_01_2 + A_01_5 - A_10_3 - A_10_4);
470 const double tmp251 = w17*(A_02_6 - A_20_7);
471 const double tmp252 = w2*(-A_02_1 + A_20_0);
472 const double tmp253 = w17*(-A_02_4 - A_20_4);
473 const double tmp254 = w2*(A_02_3 + A_20_3);
474 const double tmp255 = w26*(-A_11_1 - A_11_3);
475 const double tmp256 = w20*(-A_01_3 - A_10_3);
476 const double tmp257 = w21*(-A_01_4 - A_10_4);
477 const double tmp258 = w6*(-A_12_1 - A_12_7 - A_21_1 - A_21_7);
478 const double tmp259 = w7*(-A_22_3 - A_22_7);
479 const double tmp260 = w15*(-A_02_0 - A_02_5 - A_20_0 - A_20_5);
480 const double tmp261 = w24*(-A_11_4 - A_11_6);
481 const double tmp262 = w19*(-A_22_0 - A_22_4);
482 const double tmp263 = w18*(-A_12_4 - A_21_4);
483 const double tmp264 = w4*(A_12_3 + A_21_3);
484 const double tmp265 = w28*(-A_00_2 - A_00_3);
485 const double tmp266 = w12*(-A_12_0 - A_12_6 - A_21_0 - A_21_6);
486 const double tmp267 = w5*(-A_02_2 - A_02_7 - A_20_2 - A_20_7);
487 const double tmp268 = w29*(-A_00_4 - A_00_5);
488 const double tmp269 = w11*(A_02_2 + A_02_5 + A_20_0 + A_20_7);
489 const double tmp270 = w1*(-A_01_0 - A_01_4 + A_10_1 + A_10_5);
490 const double tmp271 = w15*(A_02_3 + A_02_6 + A_20_3 + A_20_6);
491 const double tmp272 = w16*(-A_01_3 - A_01_7 + A_10_2 + A_10_6);
492 const double tmp273 = w5*(A_02_1 + A_02_4 + A_20_1 + A_20_4);
493 const double tmp274 = w8*(-A_01_1 - A_01_2 - A_01_5 - A_01_6 + A_10_0 + A_10_3 + A_10_4 + A_10_7);
494 const double tmp275 = w17*(A_02_7 + A_20_2);
495 const double tmp276 = w2*(-A_02_0 - A_20_5);
496 const double tmp277 = w18*(-A_12_1 + A_21_5);
497 const double tmp278 = w11*(A_02_3 + A_02_4 - A_20_0 - A_20_7);
498 const double tmp279 = w10*(A_12_0 + A_12_7 - A_21_3 - A_21_4);
499 const double tmp280 = w4*(A_12_6 - A_21_2);
500 const double tmp281 = w17*(A_02_1 - A_20_5);
501 const double tmp282 = w2*(-A_02_6 + A_20_2);
502 const double tmp283 = w11*(A_02_0 + A_02_7 + A_20_2 + A_20_5);
503 const double tmp284 = w12*(A_12_2 + A_12_3 - A_21_6 - A_21_7);
504 const double tmp285 = w6*(A_12_4 + A_12_5 - A_21_0 - A_21_1);
505 const double tmp286 = w17*(A_02_2 + A_20_7);
506 const double tmp287 = w2*(-A_02_5 - A_20_0);
507 const double tmp288 = w13*(-A_22_0 - A_22_3 - A_22_4 - A_22_7);
508 const double tmp289 = w22*(-A_11_1 - A_11_3 - A_11_4 - A_11_6);
509 const double tmp290 = w8*(-A_01_1 - A_01_6 - A_10_1 - A_10_6);
510 const double tmp291 = w17*(A_02_2 + A_20_2);
511 const double tmp292 = w2*(-A_02_5 - A_20_5);
512 const double tmp293 = w11*(A_02_0 + A_02_7 + A_20_0 + A_20_7);
513 const double tmp294 = w26*(-A_11_5 - A_11_7);
514 const double tmp295 = w10*(A_12_3 + A_12_4 + A_21_3 + A_21_4);
515 const double tmp296 = w20*(A_01_5 + A_10_5);
516 const double tmp297 = w21*(A_01_2 + A_10_2);
517 const double tmp298 = w7*(-A_22_1 - A_22_5);
518 const double tmp299 = w24*(-A_11_0 - A_11_2);
519 const double tmp300 = w19*(-A_22_2 - A_22_6);
520 const double tmp301 = w18*(-A_12_2 - A_21_2);
521 const double tmp302 = w4*(A_12_5 + A_21_5);
522 const double tmp303 = w8*(A_01_3 + A_01_4 + A_10_3 + A_10_4);
523 const double tmp304 = w27*(-A_00_2 - A_00_3 - A_00_4 - A_00_5);
524 const double tmp305 = w17*(A_02_7 + A_20_7);
525 const double tmp306 = w2*(-A_02_0 - A_20_0);
526 const double tmp307 = w11*(A_02_2 + A_02_5 + A_20_2 + A_20_5);
527 const double tmp308 = w26*(-A_11_0 - A_11_2);
528 const double tmp309 = w10*(-A_12_1 - A_12_6 - A_21_1 - A_21_6);
529 const double tmp310 = w20*(-A_01_0 - A_10_0);
530 const double tmp311 = w21*(-A_01_7 - A_10_7);
531 const double tmp312 = w6*(A_12_2 + A_12_4 + A_21_2 + A_21_4);
532 const double tmp313 = w24*(-A_11_5 - A_11_7);
533 const double tmp314 = w18*(A_12_7 + A_21_7);
534 const double tmp315 = w4*(-A_12_0 - A_21_0);
535 const double tmp316 = w28*(-A_00_0 - A_00_1);
536 const double tmp317 = w12*(A_12_3 + A_12_5 + A_21_3 + A_21_5);
537 const double tmp318 = w29*(-A_00_6 - A_00_7);
538 const double tmp319 = w18*(-A_12_7 + A_21_5);
539 const double tmp320 = w26*(A_11_0 + A_11_2);
540 const double tmp321 = w21*(-A_01_5 + A_10_7);
541 const double tmp322 = w20*(-A_01_2 + A_10_0);
542 const double tmp323 = w4*(A_12_0 - A_21_2);
543 const double tmp324 = w15*(A_02_5 + A_02_7 + A_20_5 + A_20_7);
544 const double tmp325 = w24*(A_11_5 + A_11_7);
545 const double tmp326 = w5*(A_02_0 + A_02_2 + A_20_0 + A_20_2);
546 const double tmp327 = w18*(A_12_7 + A_21_1);
547 const double tmp328 = w10*(-A_12_1 - A_12_6 - A_21_0 - A_21_7);
548 const double tmp329 = w3*(-A_11_0 - A_11_2 - A_11_4 - A_11_6);
549 const double tmp330 = w1*(A_01_2 + A_01_6 - A_10_0 - A_10_4);
550 const double tmp331 = w4*(-A_12_0 - A_21_6);
551 const double tmp332 = w25*(-A_22_1 - A_22_3 - A_22_5 - A_22_7);
552 const double tmp333 = w15*(-A_02_5 - A_02_7 + A_20_1 + A_20_3);
553 const double tmp334 = w16*(A_01_1 + A_01_5 - A_10_3 - A_10_7);
554 const double tmp335 = w9*(-A_11_1 - A_11_3 - A_11_5 - A_11_7);
555 const double tmp336 = w5*(-A_02_0 - A_02_2 + A_20_4 + A_20_6);
556 const double tmp337 = w27*(-A_00_0 - A_00_1 - A_00_2 - A_00_3 - A_00_4 - A_00_5 - A_00_6 - A_00_7);
557 const double tmp338 = w23*(-A_22_0 - A_22_2 - A_22_4 - A_22_6);
558 const double tmp339 = w14*(-A_00_0 - A_00_1 - A_00_4 - A_00_5);
559 const double tmp340 = w23*(-A_22_2 - A_22_3 - A_22_6 - A_22_7);
560 const double tmp341 = w1*(A_01_2 + A_01_6 - A_10_3 - A_10_7);
561 const double tmp342 = w25*(-A_22_0 - A_22_1 - A_22_4 - A_22_5);
562 const double tmp343 = w15*(A_02_1 + A_02_4 + A_20_1 + A_20_4);
563 const double tmp344 = w0*(-A_00_2 - A_00_3 - A_00_6 - A_00_7);
564 const double tmp345 = w16*(A_01_1 + A_01_5 - A_10_0 - A_10_4);
565 const double tmp346 = w12*(A_12_4 + A_12_5 - A_21_0 - A_21_1);
566 const double tmp347 = w5*(A_02_3 + A_02_6 + A_20_3 + A_20_6);
567 const double tmp348 = w6*(A_12_2 + A_12_3 - A_21_6 - A_21_7);
568 const double tmp349 = w17*(A_02_5 + A_20_0);
569 const double tmp350 = w2*(-A_02_2 - A_20_7);
570 const double tmp351 = w8*(-A_01_2 - A_01_5 - A_10_2 - A_10_5);
571 const double tmp352 = w17*(-A_02_1 - A_20_1);
572 const double tmp353 = w2*(A_02_6 + A_20_6);
573 const double tmp354 = w11*(-A_02_3 - A_02_4 - A_20_3 - A_20_4);
574 const double tmp355 = w10*(-A_12_0 - A_12_7 - A_21_0 - A_21_7);
575 const double tmp356 = w20*(A_01_6 + A_10_6);
576 const double tmp357 = w21*(A_01_1 + A_10_1);
577 const double tmp358 = w7*(-A_22_2 - A_22_6);
578 const double tmp359 = w19*(-A_22_1 - A_22_5);
579 const double tmp360 = w18*(A_12_1 + A_21_1);
580 const double tmp361 = w4*(-A_12_6 - A_21_6);
581 const double tmp362 = w28*(-A_00_6 - A_00_7);
582 const double tmp363 = w29*(-A_00_0 - A_00_1);
583 const double tmp364 = w2*(A_02_4 + A_20_1);
584 const double tmp365 = w11*(-A_02_1 - A_02_6 - A_20_3 - A_20_4);
585 const double tmp366 = w17*(-A_02_3 - A_20_6);
586 const double tmp367 = w2*(A_02_5 - A_20_4);
587 const double tmp368 = w6*(-A_12_4 - A_12_5 - A_21_4 - A_21_5);
588 const double tmp369 = w11*(-A_02_0 - A_02_7 + A_20_1 + A_20_6);
589 const double tmp370 = w20*(-A_01_5 + A_10_4);
590 const double tmp371 = w3*(A_11_4 + A_11_5 + A_11_6 + A_11_7);
591 const double tmp372 = w12*(-A_12_2 - A_12_3 - A_21_2 - A_21_3);
592 const double tmp373 = w21*(-A_01_2 + A_10_3);
593 const double tmp374 = w9*(A_11_0 + A_11_1 + A_11_2 + A_11_3);
594 const double tmp375 = w29*(A_00_2 + A_00_3);
595 const double tmp376 = w8*(A_01_1 + A_01_6 - A_10_0 - A_10_7);
596 const double tmp377 = w28*(A_00_4 + A_00_5);
597 const double tmp378 = w17*(-A_02_2 + A_20_3);
598 const double tmp379 = w17*(A_02_0 + A_20_0);
599 const double tmp380 = w2*(-A_02_7 - A_20_7);
600 const double tmp381 = w20*(-A_01_7 - A_10_7);
601 const double tmp382 = w21*(-A_01_0 - A_10_0);
602 const double tmp383 = w6*(A_12_3 + A_12_5 + A_21_3 + A_21_5);
603 const double tmp384 = w18*(A_12_0 + A_21_0);
604 const double tmp385 = w4*(-A_12_7 - A_21_7);
605 const double tmp386 = w12*(A_12_2 + A_12_4 + A_21_2 + A_21_4);
606 const double tmp387 = w17*(-A_02_6 - A_20_6);
607 const double tmp388 = w2*(A_02_1 + A_20_1);
608 const double tmp389 = w20*(A_01_1 + A_10_1);
609 const double tmp390 = w21*(A_01_6 + A_10_6);
610 const double tmp391 = w18*(A_12_6 + A_21_6);
611 const double tmp392 = w4*(-A_12_1 - A_21_1);
612 const double tmp393 = w2*(A_02_3 + A_20_6);
613 const double tmp394 = w1*(-A_01_3 - A_01_7 + A_10_2 + A_10_6);
614 const double tmp395 = w16*(-A_01_0 - A_01_4 + A_10_1 + A_10_5);
615 const double tmp396 = w17*(-A_02_4 - A_20_1);
616 const double tmp397 = w18*(-A_12_5 - A_21_3);
617 const double tmp398 = w10*(A_12_3 + A_12_4 + A_21_2 + A_21_5);
618 const double tmp399 = w1*(-A_01_0 - A_01_4 + A_10_2 + A_10_6);
619 const double tmp400 = w4*(A_12_2 + A_21_4);
620 const double tmp401 = w16*(-A_01_3 - A_01_7 + A_10_1 + A_10_5);
621 const double tmp402 = w20*(-A_01_2 + A_10_3);
622 const double tmp403 = w21*(-A_01_5 + A_10_4);
623 const double tmp404 = w17*(-A_02_5 + A_20_4);
624 const double tmp405 = w2*(A_02_2 - A_20_3);
625 const double tmp406 = w18*(-A_12_0 + A_21_4);
626 const double tmp407 = w4*(A_12_7 - A_21_3);
627 const double tmp408 = w17*(-A_02_0 + A_20_4);
628 const double tmp409 = w2*(A_02_7 - A_20_3);
629 const double tmp410 = w17*(A_02_5 + A_20_5);
630 const double tmp411 = w2*(-A_02_2 - A_20_2);
631 const double tmp412 = w20*(A_01_2 + A_10_2);
632 const double tmp413 = w21*(A_01_5 + A_10_5);
633 const double tmp414 = w18*(-A_12_5 - A_21_5);
634 const double tmp415 = w4*(A_12_2 + A_21_2);
635 const double tmp416 = w12*(-A_12_0 - A_12_1 + A_21_4 + A_21_5);
636 const double tmp417 = w6*(-A_12_6 - A_12_7 + A_21_2 + A_21_3);
637 const double tmp418 = w17*(A_02_0 + A_20_5);
638 const double tmp419 = w2*(-A_02_7 - A_20_2);
639 const double tmp420 = w18*(-A_12_4 - A_21_2);
640 const double tmp421 = w10*(A_12_2 + A_12_5 + A_21_3 + A_21_4);
641 const double tmp422 = w3*(-A_11_1 - A_11_3 - A_11_5 - A_11_7);
642 const double tmp423 = w1*(A_01_1 + A_01_5 - A_10_3 - A_10_7);
643 const double tmp424 = w25*(-A_22_0 - A_22_2 - A_22_4 - A_22_6);
644 const double tmp425 = w4*(A_12_3 + A_21_5);
645 const double tmp426 = w15*(A_02_4 + A_02_6 - A_20_0 - A_20_2);
646 const double tmp427 = w16*(A_01_2 + A_01_6 - A_10_0 - A_10_4);
647 const double tmp428 = w9*(-A_11_0 - A_11_2 - A_11_4 - A_11_6);
648 const double tmp429 = w5*(A_02_1 + A_02_3 - A_20_5 - A_20_7);
649 const double tmp430 = w23*(-A_22_1 - A_22_3 - A_22_5 - A_22_7);
650 const double tmp431 = w18*(A_12_5 - A_21_7);
651 const double tmp432 = w10*(-A_12_3 - A_12_4 + A_21_1 + A_21_6);
652 const double tmp433 = w21*(A_01_7 - A_10_5);
653 const double tmp434 = w20*(A_01_0 - A_10_2);
654 const double tmp435 = w4*(-A_12_2 + A_21_0);
655 const double tmp436 = w8*(-A_01_3 - A_01_4 + A_10_1 + A_10_6);
656 const double tmp437 = w2*(-A_02_4 + A_20_5);
657 const double tmp438 = w20*(A_01_4 - A_10_5);
658 const double tmp439 = w21*(A_01_3 - A_10_2);
659 const double tmp440 = w16*(-A_01_1 - A_01_2 + A_10_0 + A_10_3);
660 const double tmp441 = w1*(-A_01_5 - A_01_6 + A_10_4 + A_10_7);
661 const double tmp442 = w17*(A_02_3 - A_20_2);
662 const double tmp443 = w20*(-A_01_4 - A_10_7);
663 const double tmp444 = w21*(-A_01_3 - A_10_0);
664 const double tmp445 = w18*(A_12_6 + A_21_0);
665 const double tmp446 = w10*(-A_12_0 - A_12_7 - A_21_1 - A_21_6);
666 const double tmp447 = w1*(-A_01_3 - A_01_7 + A_10_1 + A_10_5);
667 const double tmp448 = w4*(-A_12_1 - A_21_7);
668 const double tmp449 = w16*(-A_01_0 - A_01_4 + A_10_2 + A_10_6);
669 const double tmp450 = w2*(A_02_7 - A_20_6);
670 const double tmp451 = w6*(A_12_6 + A_12_7 + A_21_6 + A_21_7);
671 const double tmp452 = w20*(A_01_7 - A_10_6);
672 const double tmp453 = w21*(A_01_0 - A_10_1);
673 const double tmp454 = w12*(A_12_0 + A_12_1 + A_21_0 + A_21_1);
674 const double tmp455 = w29*(A_00_0 + A_00_1);
675 const double tmp456 = w28*(A_00_6 + A_00_7);
676 const double tmp457 = w17*(-A_02_0 + A_20_1);
677 const double tmp458 = w21*(-A_01_7 - A_10_4);
678 const double tmp459 = w20*(-A_01_0 - A_10_3);
679 const double tmp460 = w12*(A_12_4 + A_12_5 - A_21_6 - A_21_7);
680 const double tmp461 = w6*(A_12_2 + A_12_3 - A_21_0 - A_21_1);
681 const double tmp462 = w18*(A_12_1 + A_21_7);
682 const double tmp463 = w4*(-A_12_6 - A_21_0);
683 const double tmp464 = w15*(A_02_1 + A_02_3 - A_20_5 - A_20_7);
684 const double tmp465 = w5*(A_02_4 + A_02_6 - A_20_0 - A_20_2);
685 const double tmp466 = w2*(-A_02_6 + A_20_7);
686 const double tmp467 = w20*(-A_01_6 + A_10_7);
687 const double tmp468 = w21*(-A_01_1 + A_10_0);
688 const double tmp469 = w17*(A_02_1 - A_20_0);
689 const double tmp470 = w6*(-A_12_2 - A_12_3 - A_21_4 - A_21_5);
690 const double tmp471 = w1*(-A_01_1 - A_01_5 - A_10_2 - A_10_6);
691 const double tmp472 = w15*(-A_02_4 - A_02_6 - A_20_1 - A_20_3);
692 const double tmp473 = w16*(-A_01_2 - A_01_6 - A_10_1 - A_10_5);
693 const double tmp474 = w12*(-A_12_4 - A_12_5 - A_21_2 - A_21_3);
694 const double tmp475 = w5*(-A_02_1 - A_02_3 - A_20_4 - A_20_6);
695 const double tmp476 = w18*(-A_12_6 + A_21_4);
696 const double tmp477 = w20*(A_01_3 - A_10_1);
697 const double tmp478 = w10*(A_12_0 + A_12_7 - A_21_2 - A_21_5);
698 const double tmp479 = w4*(A_12_1 - A_21_3);
699 const double tmp480 = w21*(A_01_4 - A_10_6);
700 const double tmp481 = w8*(-A_01_0 - A_01_7 + A_10_2 + A_10_5);
701 const double tmp482 = w6*(A_12_0 + A_12_1 + A_21_6 + A_21_7);
702 const double tmp483 = w12*(A_12_6 + A_12_7 + A_21_0 + A_21_1);
703 const double tmp484 = w15*(A_02_5 + A_02_7 + A_20_0 + A_20_2);
704 const double tmp485 = w5*(A_02_0 + A_02_2 + A_20_5 + A_20_7);
705 const double tmp486 = w18*(-A_12_1 + A_21_3);
706 const double tmp487 = w20*(A_01_4 - A_10_6);
707 const double tmp488 = w4*(A_12_6 - A_21_4);
708 const double tmp489 = w21*(A_01_3 - A_10_1);
709 const double tmp490 = w20*(A_01_7 - A_10_5);
710 const double tmp491 = w18*(A_12_2 - A_21_0);
711 const double tmp492 = w4*(-A_12_5 + A_21_7);
712 const double tmp493 = w21*(A_01_0 - A_10_2);
713 const double tmp494 = w20*(A_01_1 + A_10_2);
714 const double tmp495 = w21*(A_01_6 + A_10_5);
715 const double tmp496 = w18*(-A_12_2 - A_21_4);
716 const double tmp497 = w4*(A_12_5 + A_21_3);
717 const double tmp498 = w15*(-A_02_0 - A_02_2 + A_20_4 + A_20_6);
718 const double tmp499 = w5*(-A_02_5 - A_02_7 + A_20_1 + A_20_3);
719 const double tmp500 = w18*(-A_12_6 + A_21_2);
720 const double tmp501 = w4*(A_12_1 - A_21_5);
721 const double tmp502 = w17*(A_02_6 - A_20_2);
722 const double tmp503 = w2*(-A_02_1 + A_20_5);
723 const double tmp504 = w18*(-A_12_3 - A_21_5);
724 const double tmp505 = w4*(A_12_4 + A_21_2);
725 const double tmp506 = w2*(A_02_6 + A_20_3);
726 const double tmp507 = w17*(-A_02_1 - A_20_4);
727 const double tmp508 = w18*(A_12_0 + A_21_6);
728 const double tmp509 = w4*(-A_12_7 - A_21_1);
729 EM_S[INDEX4(k,m,0,0,numEq,numComp,8)]+=tmp198 + tmp200 + tmp214 + tmp259 + tmp262 + tmp289 + tmp294 + tmp299 + tmp303 + tmp304 + tmp307 + tmp309 + tmp343 + tmp347 + tmp362 + tmp363 + tmp379 + tmp380 + tmp381 + tmp382 + tmp383 + tmp384 + tmp385 + tmp386;
730 EM_S[INDEX4(k,m,0,1,numEq,numComp,8)]+=tmp161 + tmp201 + tmp247 + tmp250 + tmp371 + tmp374 + tmp44 + tmp451 + tmp454 + tmp455 + tmp456 + tmp466 + tmp467 + tmp468 + tmp469 + tmp49 + tmp89 + tmp91 + tmp92 + tmp98;
731 EM_S[INDEX4(k,m,0,2,numEq,numComp,8)]+=tmp135 + tmp236 + tmp238 + tmp240 + tmp242 + tmp244 + tmp39 + tmp41 + tmp432 + tmp436 + tmp440 + tmp441 + tmp490 + tmp491 + tmp492 + tmp493 + tmp61 + tmp68 + tmp70 + tmp71;
732 EM_S[INDEX4(k,m,0,3,numEq,numComp,8)]+=tmp114 + tmp165 + tmp166 + tmp167 + tmp168 + tmp169 + tmp170 + tmp171 + tmp172 + tmp20 + tmp73 + tmp74 + tmp75 + tmp76 + tmp79 + tmp80;
733 EM_S[INDEX4(k,m,0,4,numEq,numComp,8)]+=tmp1 + tmp127 + tmp131 + tmp141 + tmp145 + tmp146 + tmp148 + tmp15 + tmp189 + tmp190 + tmp192 + tmp193 + tmp2 + tmp243 + tmp246 + tmp406 + tmp407 + tmp408 + tmp409 + tmp5;
734 EM_S[INDEX4(k,m,0,5,numEq,numComp,8)]+=tmp174 + tmp176 + tmp184 + tmp24 + tmp260 + tmp267 + tmp339 + tmp340 + tmp341 + tmp342 + tmp344 + tmp345 + tmp416 + tmp417 + tmp506 + tmp507;
735 EM_S[INDEX4(k,m,0,6,numEq,numComp,8)]+=tmp21 + tmp258 + tmp266 + tmp274 + tmp337 + tmp398 + tmp422 + tmp424 + tmp428 + tmp430 + tmp447 + tmp449 + tmp496 + tmp497 + tmp498 + tmp499;
736 EM_S[INDEX4(k,m,0,7,numEq,numComp,8)]+=tmp104 + tmp105 + tmp106 + tmp107 + tmp108 + tmp109 + tmp110 + tmp111 + tmp112 + tmp113 + tmp38 + tmp87;
737 EM_S[INDEX4(k,m,1,0,numEq,numComp,8)]+=tmp145 + tmp148 + tmp161 + tmp201 + tmp202 + tmp210 + tmp371 + tmp374 + tmp440 + tmp441 + tmp450 + tmp451 + tmp452 + tmp453 + tmp454 + tmp455 + tmp456 + tmp457 + tmp89 + tmp91;
738 EM_S[INDEX4(k,m,1,1,numEq,numComp,8)]+=tmp215 + tmp221 + tmp227 + tmp260 + tmp267 + tmp288 + tmp304 + tmp312 + tmp317 + tmp351 + tmp352 + tmp353 + tmp354 + tmp355 + tmp356 + tmp357 + tmp358 + tmp359 + tmp360 + tmp361 + tmp362 + tmp363 + tmp76 + tmp79;
739 EM_S[INDEX4(k,m,1,2,numEq,numComp,8)]+=tmp166 + tmp169 + tmp172 + tmp196 + tmp197 + tmp198 + tmp199 + tmp20 + tmp200 + tmp21 + tmp73 + tmp74 + tmp75 + tmp77 + tmp80 + tmp82;
740 EM_S[INDEX4(k,m,1,3,numEq,numComp,8)]+=tmp36 + tmp37 + tmp38 + tmp39 + tmp40 + tmp41 + tmp42 + tmp43 + tmp44 + tmp45 + tmp46 + tmp47 + tmp48 + tmp49 + tmp50 + tmp51 + tmp52 + tmp53 + tmp54 + tmp55;
741 EM_S[INDEX4(k,m,1,4,numEq,numComp,8)]+=tmp176 + tmp24 + tmp269 + tmp274 + tmp339 + tmp340 + tmp342 + tmp343 + tmp344 + tmp347 + tmp394 + tmp395 + tmp416 + tmp417 + tmp418 + tmp419;
742 EM_S[INDEX4(k,m,1,5,numEq,numComp,8)]+=tmp112 + tmp12 + tmp123 + tmp13 + tmp141 + tmp142 + tmp143 + tmp146 + tmp147 + tmp149 + tmp16 + tmp277 + tmp278 + tmp279 + tmp280 + tmp281 + tmp282 + tmp6 + tmp92 + tmp98;
743 EM_S[INDEX4(k,m,1,6,numEq,numComp,8)]+=tmp104 + tmp105 + tmp106 + tmp110 + tmp113 + tmp135 + tmp136 + tmp137 + tmp138 + tmp139 + tmp15 + tmp87;
744 EM_S[INDEX4(k,m,1,7,numEq,numComp,8)]+=tmp114 + tmp184 + tmp225 + tmp232 + tmp329 + tmp330 + tmp332 + tmp334 + tmp335 + tmp337 + tmp338 + tmp421 + tmp464 + tmp465 + tmp504 + tmp505;
745 EM_S[INDEX4(k,m,2,0,numEq,numComp,8)]+=tmp135 + tmp234 + tmp235 + tmp236 + tmp237 + tmp238 + tmp239 + tmp240 + tmp241 + tmp242 + tmp243 + tmp244 + tmp245 + tmp246 + tmp39 + tmp41 + tmp44 + tmp49 + tmp61 + tmp71;
746 EM_S[INDEX4(k,m,2,1,numEq,numComp,8)]+=tmp114 + tmp120 + tmp167 + tmp170 + tmp198 + tmp20 + tmp200 + tmp24 + tmp443 + tmp444 + tmp73 + tmp74 + tmp75 + tmp80 + tmp81 + tmp83;
747 EM_S[INDEX4(k,m,2,2,numEq,numComp,8)]+=tmp217 + tmp231 + tmp233 + tmp258 + tmp266 + tmp271 + tmp273 + tmp288 + tmp289 + tmp290 + tmp291 + tmp292 + tmp293 + tmp294 + tmp295 + tmp296 + tmp297 + tmp298 + tmp299 + tmp300 + tmp301 + tmp302 + tmp76 + tmp79;
748 EM_S[INDEX4(k,m,2,3,numEq,numComp,8)]+=tmp101 + tmp156 + tmp157 + tmp204 + tmp205 + tmp368 + tmp371 + tmp372 + tmp374 + tmp375 + tmp377 + tmp437 + tmp438 + tmp439 + tmp440 + tmp441 + tmp442 + tmp85 + tmp87 + tmp99;
749 EM_S[INDEX4(k,m,2,4,numEq,numComp,8)]+=tmp184 + tmp21 + tmp328 + tmp337 + tmp383 + tmp386 + tmp422 + tmp423 + tmp424 + tmp427 + tmp428 + tmp430 + tmp498 + tmp499 + tmp508 + tmp509;
750 EM_S[INDEX4(k,m,2,5,numEq,numComp,8)]+=tmp104 + tmp106 + tmp108 + tmp111 + tmp113 + tmp15 + tmp160 + tmp161 + tmp162 + tmp163 + tmp164 + tmp38;
751 EM_S[INDEX4(k,m,2,6,numEq,numComp,8)]+=tmp10 + tmp112 + tmp122 + tmp123 + tmp124 + tmp125 + tmp126 + tmp127 + tmp128 + tmp129 + tmp130 + tmp131 + tmp132 + tmp133 + tmp134 + tmp14 + tmp3 + tmp68 + tmp70 + tmp9;
752 EM_S[INDEX4(k,m,2,7,numEq,numComp,8)]+=tmp166 + tmp175 + tmp176 + tmp178 + tmp179 + tmp180 + tmp183 + tmp187 + tmp270 + tmp272 + tmp274 + tmp284 + tmp285 + tmp364 + tmp365 + tmp366;
753 EM_S[INDEX4(k,m,3,0,numEq,numComp,8)]+=tmp20 + tmp21 + tmp24 + tmp34 + tmp72 + tmp73 + tmp74 + tmp75 + tmp76 + tmp77 + tmp78 + tmp79 + tmp80 + tmp81 + tmp82 + tmp83;
754 EM_S[INDEX4(k,m,3,1,numEq,numComp,8)]+=tmp13 + tmp16 + tmp38 + tmp39 + tmp40 + tmp41 + tmp43 + tmp440 + tmp441 + tmp45 + tmp47 + tmp478 + tmp481 + tmp486 + tmp487 + tmp488 + tmp489 + tmp50 + tmp52 + tmp55;
755 EM_S[INDEX4(k,m,3,2,numEq,numComp,8)]+=tmp101 + tmp14 + tmp204 + tmp205 + tmp367 + tmp368 + tmp369 + tmp370 + tmp371 + tmp372 + tmp373 + tmp374 + tmp375 + tmp376 + tmp377 + tmp378 + tmp44 + tmp49 + tmp87 + tmp9;
756 EM_S[INDEX4(k,m,3,3,numEq,numComp,8)]+=tmp179 + tmp183 + tmp198 + tmp200 + tmp214 + tmp215 + tmp216 + tmp217 + tmp218 + tmp219 + tmp220 + tmp221 + tmp222 + tmp223 + tmp224 + tmp225 + tmp226 + tmp227 + tmp228 + tmp229 + tmp230 + tmp231 + tmp232 + tmp233;
757 EM_S[INDEX4(k,m,3,4,numEq,numComp,8)]+=tmp104 + tmp106 + tmp112 + tmp113 + tmp135 + tmp137 + tmp139 + tmp160 + tmp161 + tmp164 + tmp471 + tmp473;
758 EM_S[INDEX4(k,m,3,5,numEq,numComp,8)]+=tmp114 + tmp274 + tmp312 + tmp317 + tmp329 + tmp332 + tmp335 + tmp337 + tmp338 + tmp399 + tmp401 + tmp446 + tmp462 + tmp463 + tmp464 + tmp465;
759 EM_S[INDEX4(k,m,3,6,numEq,numComp,8)]+=tmp166 + tmp175 + tmp176 + tmp177 + tmp178 + tmp180 + tmp181 + tmp184 + tmp187 + tmp271 + tmp273 + tmp283 + tmp284 + tmp285 + tmp286 + tmp287;
760 EM_S[INDEX4(k,m,3,7,numEq,numComp,8)]+=tmp1 + tmp10 + tmp11 + tmp12 + tmp15 + tmp152 + tmp153 + tmp154 + tmp155 + tmp156 + tmp157 + tmp158 + tmp159 + tmp17 + tmp3 + tmp4 + tmp51 + tmp54 + tmp6 + tmp7;
761 EM_S[INDEX4(k,m,4,0,numEq,numComp,8)]+=tmp1 + tmp127 + tmp131 + tmp141 + tmp146 + tmp15 + tmp153 + tmp154 + tmp188 + tmp189 + tmp190 + tmp191 + tmp192 + tmp193 + tmp194 + tmp195 + tmp68 + tmp70 + tmp92 + tmp98;
762 EM_S[INDEX4(k,m,4,1,numEq,numComp,8)]+=tmp166 + tmp176 + tmp184 + tmp283 + tmp339 + tmp340 + tmp341 + tmp342 + tmp343 + tmp344 + tmp345 + tmp346 + tmp347 + tmp348 + tmp349 + tmp350;
763 EM_S[INDEX4(k,m,4,2,numEq,numComp,8)]+=tmp114 + tmp274 + tmp337 + tmp383 + tmp386 + tmp422 + tmp424 + tmp426 + tmp428 + tmp429 + tmp430 + tmp445 + tmp446 + tmp447 + tmp448 + tmp449;
764 EM_S[INDEX4(k,m,4,3,numEq,numComp,8)]+=tmp104 + tmp106 + tmp107 + tmp109 + tmp112 + tmp113 + tmp135 + tmp161 + tmp482 + tmp483 + tmp484 + tmp485;
765 EM_S[INDEX4(k,m,4,4,numEq,numComp,8)]+=tmp118 + tmp121 + tmp214 + tmp215 + tmp216 + tmp217 + tmp220 + tmp222 + tmp253 + tmp254 + tmp255 + tmp256 + tmp257 + tmp258 + tmp259 + tmp260 + tmp261 + tmp262 + tmp263 + tmp264 + tmp265 + tmp266 + tmp267 + tmp268;
766 EM_S[INDEX4(k,m,4,5,numEq,numComp,8)]+=tmp100 + tmp101 + tmp145 + tmp148 + tmp369 + tmp376 + tmp402 + tmp403 + tmp404 + tmp405 + tmp60 + tmp65 + tmp84 + tmp87 + tmp88 + tmp89 + tmp91 + tmp95 + tmp96 + tmp97;
767 EM_S[INDEX4(k,m,4,6,numEq,numComp,8)]+=tmp243 + tmp246 + tmp38 + tmp43 + tmp476 + tmp477 + tmp478 + tmp479 + tmp480 + tmp481 + tmp57 + tmp58 + tmp61 + tmp63 + tmp64 + tmp66 + tmp69 + tmp71 + tmp90 + tmp94;
768 EM_S[INDEX4(k,m,4,7,numEq,numComp,8)]+=tmp20 + tmp21 + tmp22 + tmp23 + tmp24 + tmp25 + tmp26 + tmp27 + tmp28 + tmp29 + tmp30 + tmp31 + tmp32 + tmp33 + tmp34 + tmp35;
769 EM_S[INDEX4(k,m,5,0,numEq,numComp,8)]+=tmp166 + tmp176 + tmp260 + tmp267 + tmp274 + tmp339 + tmp340 + tmp342 + tmp344 + tmp346 + tmp348 + tmp365 + tmp393 + tmp394 + tmp395 + tmp396;
770 EM_S[INDEX4(k,m,5,1,numEq,numComp,8)]+=tmp112 + tmp12 + tmp123 + tmp124 + tmp126 + tmp140 + tmp141 + tmp142 + tmp143 + tmp144 + tmp145 + tmp146 + tmp147 + tmp148 + tmp149 + tmp150 + tmp151 + tmp51 + tmp54 + tmp6;
771 EM_S[INDEX4(k,m,5,2,numEq,numComp,8)]+=tmp104 + tmp106 + tmp113 + tmp136 + tmp138 + tmp15 + tmp161 + tmp38 + tmp472 + tmp475 + tmp482 + tmp483;
772 EM_S[INDEX4(k,m,5,3,numEq,numComp,8)]+=tmp184 + tmp21 + tmp312 + tmp317 + tmp327 + tmp328 + tmp329 + tmp330 + tmp331 + tmp332 + tmp333 + tmp334 + tmp335 + tmp336 + tmp337 + tmp338;
773 EM_S[INDEX4(k,m,5,4,numEq,numComp,8)]+=tmp100 + tmp101 + tmp102 + tmp103 + tmp84 + tmp85 + tmp86 + tmp87 + tmp88 + tmp89 + tmp90 + tmp91 + tmp92 + tmp93 + tmp94 + tmp95 + tmp96 + tmp97 + tmp98 + tmp99;
774 EM_S[INDEX4(k,m,5,5,numEq,numComp,8)]+=tmp217 + tmp225 + tmp232 + tmp26 + tmp265 + tmp268 + tmp288 + tmp289 + tmp29 + tmp290 + tmp293 + tmp295 + tmp308 + tmp313 + tmp343 + tmp347 + tmp358 + tmp359 + tmp410 + tmp411 + tmp412 + tmp413 + tmp414 + tmp415;
775 EM_S[INDEX4(k,m,5,6,numEq,numComp,8)]+=tmp114 + tmp115 + tmp116 + tmp117 + tmp118 + tmp119 + tmp120 + tmp121 + tmp20 + tmp22 + tmp24 + tmp25 + tmp28 + tmp30 + tmp32 + tmp35;
776 EM_S[INDEX4(k,m,5,7,numEq,numComp,8)]+=tmp13 + tmp135 + tmp16 + tmp237 + tmp238 + tmp245 + tmp319 + tmp320 + tmp321 + tmp322 + tmp323 + tmp324 + tmp325 + tmp326 + tmp45 + tmp55 + tmp57 + tmp60 + tmp64 + tmp65;
777 EM_S[INDEX4(k,m,6,0,numEq,numComp,8)]+=tmp114 + tmp184 + tmp258 + tmp266 + tmp337 + tmp420 + tmp421 + tmp422 + tmp423 + tmp424 + tmp425 + tmp426 + tmp427 + tmp428 + tmp429 + tmp430;
778 EM_S[INDEX4(k,m,6,1,numEq,numComp,8)]+=tmp104 + tmp106 + tmp113 + tmp135 + tmp15 + tmp162 + tmp163 + tmp470 + tmp474 + tmp484 + tmp485 + tmp87;
779 EM_S[INDEX4(k,m,6,2,numEq,numComp,8)]+=tmp10 + tmp112 + tmp123 + tmp125 + tmp127 + tmp128 + tmp130 + tmp131 + tmp132 + tmp156 + tmp157 + tmp243 + tmp246 + tmp278 + tmp279 + tmp3 + tmp500 + tmp501 + tmp502 + tmp503;
780 EM_S[INDEX4(k,m,6,3,numEq,numComp,8)]+=tmp175 + tmp176 + tmp178 + tmp180 + tmp182 + tmp185 + tmp187 + tmp24 + tmp269 + tmp270 + tmp271 + tmp272 + tmp273 + tmp274 + tmp275 + tmp276;
781 EM_S[INDEX4(k,m,6,4,numEq,numComp,8)]+=tmp38 + tmp42 + tmp43 + tmp53 + tmp56 + tmp57 + tmp58 + tmp59 + tmp60 + tmp61 + tmp62 + tmp63 + tmp64 + tmp65 + tmp66 + tmp67 + tmp68 + tmp69 + tmp70 + tmp71;
782 EM_S[INDEX4(k,m,6,5,numEq,numComp,8)]+=tmp118 + tmp121 + tmp166 + tmp199 + tmp20 + tmp21 + tmp22 + tmp25 + tmp27 + tmp28 + tmp30 + tmp33 + tmp458 + tmp459 + tmp460 + tmp461;
783 EM_S[INDEX4(k,m,6,6,numEq,numComp,8)]+=tmp179 + tmp183 + tmp215 + tmp255 + tmp26 + tmp261 + tmp288 + tmp29 + tmp298 + tmp300 + tmp304 + tmp316 + tmp318 + tmp351 + tmp354 + tmp355 + tmp383 + tmp386 + tmp387 + tmp388 + tmp389 + tmp390 + tmp391 + tmp392;
784 EM_S[INDEX4(k,m,6,7,numEq,numComp,8)]+=tmp100 + tmp14 + tmp161 + tmp201 + tmp202 + tmp203 + tmp204 + tmp205 + tmp206 + tmp207 + tmp208 + tmp209 + tmp210 + tmp211 + tmp212 + tmp213 + tmp88 + tmp9 + tmp90 + tmp94;
785 EM_S[INDEX4(k,m,7,0,numEq,numComp,8)]+=tmp104 + tmp106 + tmp112 + tmp113 + tmp38 + tmp470 + tmp471 + tmp472 + tmp473 + tmp474 + tmp475 + tmp87;
786 EM_S[INDEX4(k,m,7,1,numEq,numComp,8)]+=tmp21 + tmp225 + tmp232 + tmp274 + tmp329 + tmp332 + tmp333 + tmp335 + tmp336 + tmp337 + tmp338 + tmp397 + tmp398 + tmp399 + tmp400 + tmp401;
787 EM_S[INDEX4(k,m,7,2,numEq,numComp,8)]+=tmp173 + tmp174 + tmp175 + tmp176 + tmp177 + tmp178 + tmp179 + tmp180 + tmp181 + tmp182 + tmp183 + tmp184 + tmp185 + tmp186 + tmp187 + tmp24;
788 EM_S[INDEX4(k,m,7,3,numEq,numComp,8)]+=tmp0 + tmp1 + tmp10 + tmp11 + tmp12 + tmp13 + tmp14 + tmp15 + tmp16 + tmp17 + tmp18 + tmp19 + tmp2 + tmp3 + tmp4 + tmp5 + tmp6 + tmp7 + tmp8 + tmp9;
789 EM_S[INDEX4(k,m,7,4,numEq,numComp,8)]+=tmp114 + tmp117 + tmp119 + tmp166 + tmp171 + tmp20 + tmp22 + tmp25 + tmp26 + tmp28 + tmp29 + tmp30 + tmp460 + tmp461 + tmp494 + tmp495;
790 EM_S[INDEX4(k,m,7,5,numEq,numComp,8)]+=tmp135 + tmp238 + tmp320 + tmp324 + tmp325 + tmp326 + tmp431 + tmp432 + tmp433 + tmp434 + tmp435 + tmp436 + tmp45 + tmp51 + tmp54 + tmp55 + tmp57 + tmp64 + tmp90 + tmp94;
791 EM_S[INDEX4(k,m,7,6,numEq,numComp,8)]+=tmp100 + tmp156 + tmp157 + tmp161 + tmp201 + tmp204 + tmp205 + tmp207 + tmp208 + tmp209 + tmp211 + tmp247 + tmp248 + tmp249 + tmp250 + tmp251 + tmp252 + tmp60 + tmp65 + tmp88;
792 EM_S[INDEX4(k,m,7,7,numEq,numComp,8)]+=tmp118 + tmp121 + tmp214 + tmp226 + tmp228 + tmp271 + tmp273 + tmp289 + tmp303 + tmp304 + tmp305 + tmp306 + tmp307 + tmp308 + tmp309 + tmp310 + tmp311 + tmp312 + tmp313 + tmp314 + tmp315 + tmp316 + tmp317 + tmp318;
793 }
794 }
795 } else { // constant data
796 for (index_t k=0; k<numEq; k++) {
797 for (index_t m=0; m<numComp; m++) {
798 const double Aw00 = 8*A_p[INDEX4(k,0,m,0, numEq,3, numComp)]*w27;
799 const double Aw01 = 12*A_p[INDEX4(k,0,m,1, numEq,3, numComp)]*w8;
800 const double Aw02 = 12*A_p[INDEX4(k,0,m,2, numEq,3, numComp)]*w11;
801 const double Aw10 = 12*A_p[INDEX4(k,1,m,0, numEq,3, numComp)]*w8;
802 const double Aw11 = 8*A_p[INDEX4(k,1,m,1, numEq,3, numComp)]*w22;
803 const double Aw12 = 12*A_p[INDEX4(k,1,m,2, numEq,3, numComp)]*w10;
804 const double Aw20 = 12*A_p[INDEX4(k,2,m,0, numEq,3, numComp)]*w11;
805 const double Aw21 = 12*A_p[INDEX4(k,2,m,1, numEq,3, numComp)]*w10;
806 const double Aw22 = 8*A_p[INDEX4(k,2,m,2, numEq,3, numComp)]*w13;
807 const double tmp0 = Aw01 + Aw10;
808 const double tmp1 = Aw01 - Aw10;
809 const double tmp2 = Aw02 + Aw20;
810 const double tmp3 = Aw02 - Aw20;
811 const double tmp4 = Aw12 + Aw21;
812 const double tmp5 = Aw12 - Aw21;
813 EM_S[INDEX4(k,m,0,0,numEq,numComp,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 + 2*tmp0 + 2*tmp2 - 2*tmp4;
814 EM_S[INDEX4(k,m,0,1,numEq,numComp,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 - tmp4 + 2*tmp1 + 2*tmp3;
815 EM_S[INDEX4(k,m,0,2,numEq,numComp,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 - 2*tmp1 + tmp2 - 2*tmp5;
816 EM_S[INDEX4(k,m,0,3,numEq,numComp,8)]+= 2*Aw00 + 2*Aw11 - Aw22 - 2*tmp0 + tmp3 - tmp5;
817 EM_S[INDEX4(k,m,0,4,numEq,numComp,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 - 2*tmp3 + 2*tmp5 + tmp0;
818 EM_S[INDEX4(k,m,0,5,numEq,numComp,8)]+= 2*Aw00 - Aw11 + 2*Aw22 - 2*tmp2 + tmp1 + tmp5;
819 EM_S[INDEX4(k,m,0,6,numEq,numComp,8)]+= -Aw00 + 2*Aw11 + 2*Aw22 + 2*tmp4 - tmp1 - tmp3;
820 EM_S[INDEX4(k,m,0,7,numEq,numComp,8)]+= Aw00 + Aw11 + Aw22 + tmp4 - tmp0 - tmp2;
821 EM_S[INDEX4(k,m,1,0,numEq,numComp,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 - 2*tmp3 - 2*tmp1 - tmp4;
822 EM_S[INDEX4(k,m,1,1,numEq,numComp,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 - 2*tmp2 - 2*tmp4 - 2*tmp0;
823 EM_S[INDEX4(k,m,1,2,numEq,numComp,8)]+= 2*Aw00 + 2*Aw11 - Aw22 + 2*tmp0 - tmp5 - tmp3;
824 EM_S[INDEX4(k,m,1,3,numEq,numComp,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 - tmp2 - 2*tmp5 + 2*tmp1;
825 EM_S[INDEX4(k,m,1,4,numEq,numComp,8)]+= 2*Aw00 - Aw11 + 2*Aw22 + 2*tmp2 - tmp1 + tmp5;
826 EM_S[INDEX4(k,m,1,5,numEq,numComp,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 + 2*tmp5 - tmp0 + 2*tmp3;
827 EM_S[INDEX4(k,m,1,6,numEq,numComp,8)]+= Aw00 + Aw11 + Aw22 + tmp4 + tmp2 + tmp0;
828 EM_S[INDEX4(k,m,1,7,numEq,numComp,8)]+= -Aw00 + 2*Aw11 + 2*Aw22 + tmp3 + tmp1 + 2*tmp4;
829 EM_S[INDEX4(k,m,2,0,numEq,numComp,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 + 2*tmp5 + tmp2 + 2*tmp1;
830 EM_S[INDEX4(k,m,2,1,numEq,numComp,8)]+= 2*Aw00 + 2*Aw11 - Aw22 + tmp3 + 2*tmp0 + tmp5;
831 EM_S[INDEX4(k,m,2,2,numEq,numComp,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 + 2*tmp4 + 2*tmp2 - 2*tmp0;
832 EM_S[INDEX4(k,m,2,3,numEq,numComp,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 + tmp4 - 2*tmp1 + 2*tmp3;
833 EM_S[INDEX4(k,m,2,4,numEq,numComp,8)]+= -Aw00 + 2*Aw11 + 2*Aw22 + tmp1 - 2*tmp4 - tmp3;
834 EM_S[INDEX4(k,m,2,5,numEq,numComp,8)]+= Aw00 + Aw11 + Aw22 - tmp4 + tmp0 - tmp2;
835 EM_S[INDEX4(k,m,2,6,numEq,numComp,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 - 2*tmp3 - tmp0 - 2*tmp5;
836 EM_S[INDEX4(k,m,2,7,numEq,numComp,8)]+= 2*Aw00 - Aw11 + 2*Aw22 - tmp5 - 2*tmp2 - tmp1;
837 EM_S[INDEX4(k,m,3,0,numEq,numComp,8)]+= 2*Aw00 + 2*Aw11 - Aw22 - tmp3 + tmp5 - 2*tmp0;
838 EM_S[INDEX4(k,m,3,1,numEq,numComp,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 + 2*tmp5 - 2*tmp1 - tmp2;
839 EM_S[INDEX4(k,m,3,2,numEq,numComp,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 - 2*tmp3 + tmp4 + 2*tmp1;
840 EM_S[INDEX4(k,m,3,3,numEq,numComp,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 + 2*tmp0 - 2*tmp2 + 2*tmp4;
841 EM_S[INDEX4(k,m,3,4,numEq,numComp,8)]+= Aw00 + Aw11 + Aw22 - tmp0 + tmp2 - tmp4;
842 EM_S[INDEX4(k,m,3,5,numEq,numComp,8)]+= -Aw00 + 2*Aw11 + 2*Aw22 + tmp3 - tmp1 - 2*tmp4;
843 EM_S[INDEX4(k,m,3,6,numEq,numComp,8)]+= 2*Aw00 - Aw11 + 2*Aw22 - tmp5 + tmp1 + 2*tmp2;
844 EM_S[INDEX4(k,m,3,7,numEq,numComp,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 + tmp0 - 2*tmp5 + 2*tmp3;
845 EM_S[INDEX4(k,m,4,0,numEq,numComp,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 + tmp0 - 2*tmp5 + 2*tmp3;
846 EM_S[INDEX4(k,m,4,1,numEq,numComp,8)]+= 2*Aw00 - Aw11 + 2*Aw22 - tmp5 + tmp1 + 2*tmp2;
847 EM_S[INDEX4(k,m,4,2,numEq,numComp,8)]+= -Aw00 + 2*Aw11 + 2*Aw22 + tmp3 - tmp1 - 2*tmp4;
848 EM_S[INDEX4(k,m,4,3,numEq,numComp,8)]+= Aw00 + Aw11 + Aw22 - tmp0 + tmp2 - tmp4;
849 EM_S[INDEX4(k,m,4,4,numEq,numComp,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 + 2*tmp0 - 2*tmp2 + 2*tmp4;
850 EM_S[INDEX4(k,m,4,5,numEq,numComp,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 - 2*tmp3 + tmp4 + 2*tmp1;
851 EM_S[INDEX4(k,m,4,6,numEq,numComp,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 + 2*tmp5 - 2*tmp1 - tmp2;
852 EM_S[INDEX4(k,m,4,7,numEq,numComp,8)]+= 2*Aw00 + 2*Aw11 - Aw22 - tmp3 + tmp5 - 2*tmp0;
853 EM_S[INDEX4(k,m,5,0,numEq,numComp,8)]+= 2*Aw00 - Aw11 + 2*Aw22 - tmp5 - 2*tmp2 - tmp1;
854 EM_S[INDEX4(k,m,5,1,numEq,numComp,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 - 2*tmp3 - tmp0 - 2*tmp5;
855 EM_S[INDEX4(k,m,5,2,numEq,numComp,8)]+= Aw00 + Aw11 + Aw22 - tmp4 + tmp0 - tmp2;
856 EM_S[INDEX4(k,m,5,3,numEq,numComp,8)]+= -Aw00 + 2*Aw11 + 2*Aw22 + tmp1 - 2*tmp4 - tmp3;
857 EM_S[INDEX4(k,m,5,4,numEq,numComp,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 + tmp4 - 2*tmp1 + 2*tmp3;
858 EM_S[INDEX4(k,m,5,5,numEq,numComp,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 + 2*tmp4 + 2*tmp2 - 2*tmp0;
859 EM_S[INDEX4(k,m,5,6,numEq,numComp,8)]+= 2*Aw00 + 2*Aw11 - Aw22 + tmp3 + 2*tmp0 + tmp5;
860 EM_S[INDEX4(k,m,5,7,numEq,numComp,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 + 2*tmp5 + tmp2 + 2*tmp1;
861 EM_S[INDEX4(k,m,6,0,numEq,numComp,8)]+= -Aw00 + 2*Aw11 + 2*Aw22 + tmp3 + tmp1 + 2*tmp4;
862 EM_S[INDEX4(k,m,6,1,numEq,numComp,8)]+= Aw00 + Aw11 + Aw22 + tmp4 + tmp2 + tmp0;
863 EM_S[INDEX4(k,m,6,2,numEq,numComp,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 + 2*tmp5 - tmp0 + 2*tmp3;
864 EM_S[INDEX4(k,m,6,3,numEq,numComp,8)]+= 2*Aw00 - Aw11 + 2*Aw22 + 2*tmp2 - tmp1 + tmp5;
865 EM_S[INDEX4(k,m,6,4,numEq,numComp,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 - tmp2 - 2*tmp5 + 2*tmp1;
866 EM_S[INDEX4(k,m,6,5,numEq,numComp,8)]+= 2*Aw00 + 2*Aw11 - Aw22 + 2*tmp0 - tmp5 - tmp3;
867 EM_S[INDEX4(k,m,6,6,numEq,numComp,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 - 2*tmp2 - 2*tmp4 - 2*tmp0;
868 EM_S[INDEX4(k,m,6,7,numEq,numComp,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 - 2*tmp3 - 2*tmp1 - tmp4;
869 EM_S[INDEX4(k,m,7,0,numEq,numComp,8)]+= Aw00 + Aw11 + Aw22 + tmp4 - tmp0 - tmp2;
870 EM_S[INDEX4(k,m,7,1,numEq,numComp,8)]+= -Aw00 + 2*Aw11 + 2*Aw22 + 2*tmp4 - tmp1 - tmp3;
871 EM_S[INDEX4(k,m,7,2,numEq,numComp,8)]+= 2*Aw00 - Aw11 + 2*Aw22 - 2*tmp2 + tmp1 + tmp5;
872 EM_S[INDEX4(k,m,7,3,numEq,numComp,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 - 2*tmp3 + 2*tmp5 + tmp0;
873 EM_S[INDEX4(k,m,7,4,numEq,numComp,8)]+= 2*Aw00 + 2*Aw11 - Aw22 + tmp3 - tmp5 - 2*tmp0;
874 EM_S[INDEX4(k,m,7,5,numEq,numComp,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 - 2*tmp1 + tmp2 - 2*tmp5;
875 EM_S[INDEX4(k,m,7,6,numEq,numComp,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 - tmp4 + 2*tmp1 + 2*tmp3;
876 EM_S[INDEX4(k,m,7,7,numEq,numComp,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 + 2*tmp0 + 2*tmp2 - 2*tmp4;
877 }
878 }
879 }
880 }
881 ///////////////
882 // process B //
883 ///////////////
884 if (!B.isEmpty()) {
885 add_EM_S=true;
886 const double* B_p=B.getSampleDataRO(e);
887 if (B.actsExpanded()) {
888 for (index_t k=0; k<numEq; k++) {
889 for (index_t m=0; m<numComp; m++) {
890 const double B_0_0 = B_p[INDEX4(k,0,m,0, numEq,3,numComp)];
891 const double B_1_0 = B_p[INDEX4(k,1,m,0, numEq,3,numComp)];
892 const double B_2_0 = B_p[INDEX4(k,2,m,0, numEq,3,numComp)];
893 const double B_0_1 = B_p[INDEX4(k,0,m,1, numEq,3,numComp)];
894 const double B_1_1 = B_p[INDEX4(k,1,m,1, numEq,3,numComp)];
895 const double B_2_1 = B_p[INDEX4(k,2,m,1, numEq,3,numComp)];
896 const double B_0_2 = B_p[INDEX4(k,0,m,2, numEq,3,numComp)];
897 const double B_1_2 = B_p[INDEX4(k,1,m,2, numEq,3,numComp)];
898 const double B_2_2 = B_p[INDEX4(k,2,m,2, numEq,3,numComp)];
899 const double B_0_3 = B_p[INDEX4(k,0,m,3, numEq,3,numComp)];
900 const double B_1_3 = B_p[INDEX4(k,1,m,3, numEq,3,numComp)];
901 const double B_2_3 = B_p[INDEX4(k,2,m,3, numEq,3,numComp)];
902 const double B_0_4 = B_p[INDEX4(k,0,m,4, numEq,3,numComp)];
903 const double B_1_4 = B_p[INDEX4(k,1,m,4, numEq,3,numComp)];
904 const double B_2_4 = B_p[INDEX4(k,2,m,4, numEq,3,numComp)];
905 const double B_0_5 = B_p[INDEX4(k,0,m,5, numEq,3,numComp)];
906 const double B_1_5 = B_p[INDEX4(k,1,m,5, numEq,3,numComp)];
907 const double B_2_5 = B_p[INDEX4(k,2,m,5, numEq,3,numComp)];
908 const double B_0_6 = B_p[INDEX4(k,0,m,6, numEq,3,numComp)];
909 const double B_1_6 = B_p[INDEX4(k,1,m,6, numEq,3,numComp)];
910 const double B_2_6 = B_p[INDEX4(k,2,m,6, numEq,3,numComp)];
911 const double B_0_7 = B_p[INDEX4(k,0,m,7, numEq,3,numComp)];
912 const double B_1_7 = B_p[INDEX4(k,1,m,7, numEq,3,numComp)];
913 const double B_2_7 = B_p[INDEX4(k,2,m,7, numEq,3,numComp)];
914 const double tmp0 = w38*(B_2_1 + B_2_2);
915 const double tmp1 = w42*(B_1_3 + B_1_7);
916 const double tmp2 = w41*(B_0_3 + B_0_7);
917 const double tmp3 = w37*(B_1_1 + B_1_5);
918 const double tmp4 = w39*(B_0_2 + B_0_6);
919 const double tmp5 = w45*(B_2_5 + B_2_6);
920 const double tmp6 = w36*(B_0_1 + B_0_5);
921 const double tmp7 = w40*(B_1_2 + B_1_6);
922 const double tmp8 = w33*(B_0_0 + B_0_4);
923 const double tmp9 = w34*(B_1_0 + B_1_4);
924 const double tmp10 = w38*(B_2_4 + B_2_5 + B_2_6 + B_2_7);
925 const double tmp11 = w42*(-B_1_6 - B_1_7);
926 const double tmp12 = w41*(-B_0_5 - B_0_7);
927 const double tmp13 = w37*(-B_1_4 - B_1_5);
928 const double tmp14 = w39*(-B_0_4 - B_0_6);
929 const double tmp15 = w45*(B_2_0 + B_2_1 + B_2_2 + B_2_3);
930 const double tmp16 = w36*(-B_0_1 - B_0_3);
931 const double tmp17 = w40*(-B_1_2 - B_1_3);
932 const double tmp18 = w33*(-B_0_0 - B_0_2);
933 const double tmp19 = w34*(-B_1_0 - B_1_1);
934 const double tmp20 = w38*(-B_2_5 - B_2_7);
935 const double tmp21 = w35*(-B_2_4 - B_2_6);
936 const double tmp22 = w41*(B_0_1 + B_0_3);
937 const double tmp23 = w37*(-B_1_2 - B_1_7);
938 const double tmp24 = w39*(B_0_0 + B_0_2);
939 const double tmp25 = w45*(-B_2_0 - B_2_2);
940 const double tmp26 = w36*(B_0_5 + B_0_7);
941 const double tmp27 = w40*(-B_1_0 - B_1_5);
942 const double tmp28 = w33*(B_0_4 + B_0_6);
943 const double tmp29 = w46*(-B_2_1 - B_2_3);
944 const double tmp30 = w38*(B_2_0 + B_2_2);
945 const double tmp31 = w35*(B_2_1 + B_2_3);
946 const double tmp32 = w41*(-B_0_4 - B_0_6);
947 const double tmp33 = w37*(B_1_0 + B_1_5);
948 const double tmp34 = w39*(-B_0_5 - B_0_7);
949 const double tmp35 = w45*(B_2_5 + B_2_7);
950 const double tmp36 = w36*(-B_0_0 - B_0_2);
951 const double tmp37 = w40*(B_1_2 + B_1_7);
952 const double tmp38 = w33*(-B_0_1 - B_0_3);
953 const double tmp39 = w46*(B_2_4 + B_2_6);
954 const double tmp40 = w38*(-B_2_0 - B_2_1 - B_2_2 - B_2_3);
955 const double tmp41 = w42*(B_1_0 + B_1_1);
956 const double tmp42 = w41*(B_0_0 + B_0_2);
957 const double tmp43 = w37*(B_1_2 + B_1_3);
958 const double tmp44 = w39*(B_0_1 + B_0_3);
959 const double tmp45 = w45*(-B_2_4 - B_2_5 - B_2_6 - B_2_7);
960 const double tmp46 = w36*(B_0_4 + B_0_6);
961 const double tmp47 = w40*(B_1_4 + B_1_5);
962 const double tmp48 = w33*(B_0_5 + B_0_7);
963 const double tmp49 = w34*(B_1_6 + B_1_7);
964 const double tmp50 = w38*(B_2_0 + B_2_1);
965 const double tmp51 = w42*(-B_1_4 - B_1_5);
966 const double tmp52 = w35*(B_2_2 + B_2_3);
967 const double tmp53 = w37*(-B_1_6 - B_1_7);
968 const double tmp54 = w39*(B_0_0 + B_0_6);
969 const double tmp55 = w45*(B_2_6 + B_2_7);
970 const double tmp56 = w36*(B_0_1 + B_0_7);
971 const double tmp57 = w40*(-B_1_0 - B_1_1);
972 const double tmp58 = w46*(B_2_4 + B_2_5);
973 const double tmp59 = w34*(-B_1_2 - B_1_3);
974 const double tmp60 = w38*(-B_2_4 - B_2_5 - B_2_6 - B_2_7);
975 const double tmp61 = w37*(-B_1_2 - B_1_3 - B_1_6 - B_1_7);
976 const double tmp62 = w39*(-B_0_1 - B_0_3 - B_0_5 - B_0_7);
977 const double tmp63 = w45*(-B_2_0 - B_2_1 - B_2_2 - B_2_3);
978 const double tmp64 = w36*(-B_0_0 - B_0_2 - B_0_4 - B_0_6);
979 const double tmp65 = w40*(-B_1_0 - B_1_1 - B_1_4 - B_1_5);
980 const double tmp66 = w41*(B_0_4 + B_0_6);
981 const double tmp67 = w39*(B_0_5 + B_0_7);
982 const double tmp68 = w36*(B_0_0 + B_0_2);
983 const double tmp69 = w33*(B_0_1 + B_0_3);
984 const double tmp70 = w38*(-B_2_4 - B_2_7);
985 const double tmp71 = w42*(B_1_2 + B_1_6);
986 const double tmp72 = w41*(-B_0_2 - B_0_6);
987 const double tmp73 = w37*(B_1_0 + B_1_4);
988 const double tmp74 = w39*(-B_0_3 - B_0_7);
989 const double tmp75 = w45*(-B_2_0 - B_2_3);
990 const double tmp76 = w36*(-B_0_0 - B_0_4);
991 const double tmp77 = w40*(B_1_3 + B_1_7);
992 const double tmp78 = w33*(-B_0_1 - B_0_5);
993 const double tmp79 = w34*(B_1_1 + B_1_5);
994 const double tmp80 = w39*(B_0_0 + B_0_2 + B_0_4 + B_0_6);
995 const double tmp81 = w36*(B_0_1 + B_0_3 + B_0_5 + B_0_7);
996 const double tmp82 = w38*(B_2_0 + B_2_3);
997 const double tmp83 = w42*(-B_1_1 - B_1_5);
998 const double tmp84 = w41*(B_0_1 + B_0_5);
999 const double tmp85 = w37*(-B_1_3 - B_1_7);
1000 const double tmp86 = w39*(B_0_0 + B_0_4);
1001 const double tmp87 = w45*(B_2_4 + B_2_7);
1002 const double tmp88 = w36*(B_0_3 + B_0_7);
1003 const double tmp89 = w40*(-B_1_0 - B_1_4);
1004 const double tmp90 = w33*(B_0_2 + B_0_6);
1005 const double tmp91 = w34*(-B_1_2 - B_1_6);
1006 const double tmp92 = w38*(-B_2_5 - B_2_6);
1007 const double tmp93 = w45*(-B_2_1 - B_2_2);
1008 const double tmp94 = w37*(B_1_0 + B_1_1 + B_1_4 + B_1_5);
1009 const double tmp95 = w40*(B_1_2 + B_1_3 + B_1_6 + B_1_7);
1010 const double tmp96 = w42*(-B_1_2 - B_1_3);
1011 const double tmp97 = w41*(-B_0_1 - B_0_3);
1012 const double tmp98 = w37*(-B_1_0 - B_1_1);
1013 const double tmp99 = w39*(-B_0_0 - B_0_2);
1014 const double tmp100 = w36*(-B_0_5 - B_0_7);
1015 const double tmp101 = w40*(-B_1_6 - B_1_7);
1016 const double tmp102 = w33*(-B_0_4 - B_0_6);
1017 const double tmp103 = w34*(-B_1_4 - B_1_5);
1018 const double tmp104 = w38*(B_2_6 + B_2_7);
1019 const double tmp105 = w35*(B_2_4 + B_2_5);
1020 const double tmp106 = w41*(B_0_2 + B_0_6);
1021 const double tmp107 = w37*(B_1_2 + B_1_3 + B_1_6 + B_1_7);
1022 const double tmp108 = w39*(B_0_3 + B_0_7);
1023 const double tmp109 = w45*(B_2_0 + B_2_1);
1024 const double tmp110 = w36*(B_0_0 + B_0_4);
1025 const double tmp111 = w40*(B_1_0 + B_1_1 + B_1_4 + B_1_5);
1026 const double tmp112 = w33*(B_0_1 + B_0_5);
1027 const double tmp113 = w46*(B_2_2 + B_2_3);
1028 const double tmp114 = w42*(-B_1_0 - B_1_4);
1029 const double tmp115 = w41*(-B_0_0 - B_0_4);
1030 const double tmp116 = w37*(-B_1_2 - B_1_6);
1031 const double tmp117 = w39*(-B_0_1 - B_0_5);
1032 const double tmp118 = w36*(-B_0_2 - B_0_6);
1033 const double tmp119 = w40*(-B_1_1 - B_1_5);
1034 const double tmp120 = w33*(-B_0_3 - B_0_7);
1035 const double tmp121 = w34*(-B_1_3 - B_1_7);
1036 const double tmp122 = w38*(B_2_2 + B_2_3);
1037 const double tmp123 = w42*(B_1_6 + B_1_7);
1038 const double tmp124 = w35*(B_2_0 + B_2_1);
1039 const double tmp125 = w37*(B_1_4 + B_1_5);
1040 const double tmp126 = w39*(-B_0_3 - B_0_5);
1041 const double tmp127 = w45*(B_2_4 + B_2_5);
1042 const double tmp128 = w36*(-B_0_2 - B_0_4);
1043 const double tmp129 = w40*(B_1_2 + B_1_3);
1044 const double tmp130 = w46*(B_2_6 + B_2_7);
1045 const double tmp131 = w34*(B_1_0 + B_1_1);
1046 const double tmp132 = w38*(-B_2_1 - B_2_2);
1047 const double tmp133 = w37*(B_1_2 + B_1_7);
1048 const double tmp134 = w39*(B_0_1 + B_0_7);
1049 const double tmp135 = w36*(B_0_0 + B_0_6);
1050 const double tmp136 = w40*(B_1_0 + B_1_5);
1051 const double tmp137 = w45*(-B_2_5 - B_2_6);
1052 const double tmp138 = w38*(-B_2_4 - B_2_6);
1053 const double tmp139 = w35*(-B_2_5 - B_2_7);
1054 const double tmp140 = w41*(-B_0_0 - B_0_2);
1055 const double tmp141 = w37*(B_1_1 + B_1_4);
1056 const double tmp142 = w39*(-B_0_1 - B_0_3);
1057 const double tmp143 = w45*(-B_2_1 - B_2_3);
1058 const double tmp144 = w36*(-B_0_4 - B_0_6);
1059 const double tmp145 = w40*(B_1_3 + B_1_6);
1060 const double tmp146 = w33*(-B_0_5 - B_0_7);
1061 const double tmp147 = w46*(-B_2_0 - B_2_2);
1062 const double tmp148 = w39*(B_0_2 + B_0_4);
1063 const double tmp149 = w36*(B_0_3 + B_0_5);
1064 const double tmp150 = w38*(B_2_5 + B_2_6);
1065 const double tmp151 = w37*(-B_1_0 - B_1_5);
1066 const double tmp152 = w39*(-B_0_0 - B_0_6);
1067 const double tmp153 = w45*(B_2_1 + B_2_2);
1068 const double tmp154 = w36*(-B_0_1 - B_0_7);
1069 const double tmp155 = w40*(-B_1_2 - B_1_7);
1070 const double tmp156 = w41*(-B_0_3 - B_0_7);
1071 const double tmp157 = w39*(-B_0_2 - B_0_6);
1072 const double tmp158 = w36*(-B_0_1 - B_0_5);
1073 const double tmp159 = w33*(-B_0_0 - B_0_4);
1074 const double tmp160 = w38*(-B_2_2 - B_2_3);
1075 const double tmp161 = w35*(-B_2_0 - B_2_1);
1076 const double tmp162 = w45*(-B_2_4 - B_2_5);
1077 const double tmp163 = w46*(-B_2_6 - B_2_7);
1078 const double tmp164 = w38*(-B_2_0 - B_2_3);
1079 const double tmp165 = w37*(B_1_3 + B_1_6);
1080 const double tmp166 = w40*(B_1_1 + B_1_4);
1081 const double tmp167 = w45*(-B_2_4 - B_2_7);
1082 const double tmp168 = w39*(B_0_3 + B_0_5);
1083 const double tmp169 = w36*(B_0_2 + B_0_4);
1084 const double tmp170 = w38*(B_2_1 + B_2_3);
1085 const double tmp171 = w35*(B_2_0 + B_2_2);
1086 const double tmp172 = w41*(B_0_5 + B_0_7);
1087 const double tmp173 = w37*(-B_1_3 - B_1_6);
1088 const double tmp174 = w39*(B_0_4 + B_0_6);
1089 const double tmp175 = w45*(B_2_4 + B_2_6);
1090 const double tmp176 = w36*(B_0_1 + B_0_3);
1091 const double tmp177 = w40*(-B_1_1 - B_1_4);
1092 const double tmp178 = w33*(B_0_0 + B_0_2);
1093 const double tmp179 = w46*(B_2_5 + B_2_7);
1094 const double tmp180 = w38*(B_2_5 + B_2_7);
1095 const double tmp181 = w42*(-B_1_3 - B_1_7);
1096 const double tmp182 = w35*(B_2_4 + B_2_6);
1097 const double tmp183 = w37*(-B_1_1 - B_1_5);
1098 const double tmp184 = w39*(B_0_1 + B_0_3 + B_0_5 + B_0_7);
1099 const double tmp185 = w45*(B_2_0 + B_2_2);
1100 const double tmp186 = w36*(B_0_0 + B_0_2 + B_0_4 + B_0_6);
1101 const double tmp187 = w40*(-B_1_2 - B_1_6);
1102 const double tmp188 = w46*(B_2_1 + B_2_3);
1103 const double tmp189 = w34*(-B_1_0 - B_1_4);
1104 const double tmp190 = w38*(B_2_4 + B_2_5);
1105 const double tmp191 = w35*(B_2_6 + B_2_7);
1106 const double tmp192 = w41*(-B_0_1 - B_0_5);
1107 const double tmp193 = w37*(-B_1_0 - B_1_1 - B_1_4 - B_1_5);
1108 const double tmp194 = w39*(-B_0_0 - B_0_4);
1109 const double tmp195 = w45*(B_2_2 + B_2_3);
1110 const double tmp196 = w36*(-B_0_3 - B_0_7);
1111 const double tmp197 = w40*(-B_1_2 - B_1_3 - B_1_6 - B_1_7);
1112 const double tmp198 = w33*(-B_0_2 - B_0_6);
1113 const double tmp199 = w46*(B_2_0 + B_2_1);
1114 const double tmp200 = w38*(-B_2_6 - B_2_7);
1115 const double tmp201 = w42*(B_1_2 + B_1_3);
1116 const double tmp202 = w35*(-B_2_4 - B_2_5);
1117 const double tmp203 = w37*(B_1_0 + B_1_1);
1118 const double tmp204 = w45*(-B_2_0 - B_2_1);
1119 const double tmp205 = w40*(B_1_6 + B_1_7);
1120 const double tmp206 = w46*(-B_2_2 - B_2_3);
1121 const double tmp207 = w34*(B_1_4 + B_1_5);
1122 const double tmp208 = w37*(-B_1_1 - B_1_4);
1123 const double tmp209 = w39*(-B_0_2 - B_0_4);
1124 const double tmp210 = w36*(-B_0_3 - B_0_5);
1125 const double tmp211 = w40*(-B_1_3 - B_1_6);
1126 const double tmp212 = w38*(B_2_4 + B_2_7);
1127 const double tmp213 = w45*(B_2_0 + B_2_3);
1128 const double tmp214 = w41*(B_0_0 + B_0_4);
1129 const double tmp215 = w39*(B_0_1 + B_0_5);
1130 const double tmp216 = w36*(B_0_2 + B_0_6);
1131 const double tmp217 = w33*(B_0_3 + B_0_7);
1132 const double tmp218 = w42*(B_1_1 + B_1_5);
1133 const double tmp219 = w37*(B_1_3 + B_1_7);
1134 const double tmp220 = w40*(B_1_0 + B_1_4);
1135 const double tmp221 = w34*(B_1_2 + B_1_6);
1136 const double tmp222 = w39*(-B_0_1 - B_0_7);
1137 const double tmp223 = w36*(-B_0_0 - B_0_6);
1138 const double tmp224 = w38*(-B_2_0 - B_2_1);
1139 const double tmp225 = w35*(-B_2_2 - B_2_3);
1140 const double tmp226 = w45*(-B_2_6 - B_2_7);
1141 const double tmp227 = w46*(-B_2_4 - B_2_5);
1142 const double tmp228 = w38*(B_2_4 + B_2_6);
1143 const double tmp229 = w42*(B_1_0 + B_1_4);
1144 const double tmp230 = w35*(B_2_5 + B_2_7);
1145 const double tmp231 = w37*(B_1_2 + B_1_6);
1146 const double tmp232 = w39*(-B_0_0 - B_0_2 - B_0_4 - B_0_6);
1147 const double tmp233 = w45*(B_2_1 + B_2_3);
1148 const double tmp234 = w36*(-B_0_1 - B_0_3 - B_0_5 - B_0_7);
1149 const double tmp235 = w40*(B_1_1 + B_1_5);
1150 const double tmp236 = w46*(B_2_0 + B_2_2);
1151 const double tmp237 = w34*(B_1_3 + B_1_7);
1152 const double tmp238 = w42*(-B_1_2 - B_1_6);
1153 const double tmp239 = w37*(-B_1_0 - B_1_4);
1154 const double tmp240 = w40*(-B_1_3 - B_1_7);
1155 const double tmp241 = w34*(-B_1_1 - B_1_5);
1156 const double tmp242 = w38*(-B_2_4 - B_2_5);
1157 const double tmp243 = w42*(-B_1_0 - B_1_1);
1158 const double tmp244 = w35*(-B_2_6 - B_2_7);
1159 const double tmp245 = w37*(-B_1_2 - B_1_3);
1160 const double tmp246 = w45*(-B_2_2 - B_2_3);
1161 const double tmp247 = w40*(-B_1_4 - B_1_5);
1162 const double tmp248 = w46*(-B_2_0 - B_2_1);
1163 const double tmp249 = w34*(-B_1_6 - B_1_7);
1164 const double tmp250 = w42*(B_1_4 + B_1_5);
1165 const double tmp251 = w37*(B_1_6 + B_1_7);
1166 const double tmp252 = w40*(B_1_0 + B_1_1);
1167 const double tmp253 = w34*(B_1_2 + B_1_3);
1168 const double tmp254 = w38*(-B_2_1 - B_2_3);
1169 const double tmp255 = w35*(-B_2_0 - B_2_2);
1170 const double tmp256 = w45*(-B_2_4 - B_2_6);
1171 const double tmp257 = w46*(-B_2_5 - B_2_7);
1172 const double tmp258 = w38*(B_2_0 + B_2_1 + B_2_2 + B_2_3);
1173 const double tmp259 = w45*(B_2_4 + B_2_5 + B_2_6 + B_2_7);
1174 const double tmp260 = w38*(-B_2_0 - B_2_2);
1175 const double tmp261 = w35*(-B_2_1 - B_2_3);
1176 const double tmp262 = w45*(-B_2_5 - B_2_7);
1177 const double tmp263 = w46*(-B_2_4 - B_2_6);
1178 EM_S[INDEX4(k,m,0,0,numEq,numComp,8)]+=-B_0_0*w50 - B_0_1*w41 - B_0_6*w33 - B_0_7*w49 + B_1_0*w47 - B_1_2*w42 - B_1_5*w34 + B_1_7*w48 - B_2_0*w43 - B_2_3*w35 - B_2_4*w46 - B_2_7*w44 + tmp132 + tmp137 + tmp208 + tmp209 + tmp210 + tmp211;
1179 EM_S[INDEX4(k,m,0,1,numEq,numComp,8)]+=-B_0_0*w41 - B_0_1*w50 - B_0_6*w49 - B_0_7*w33 + tmp126 + tmp128 + tmp242 + tmp243 + tmp244 + tmp245 + tmp246 + tmp247 + tmp248 + tmp249;
1180 EM_S[INDEX4(k,m,0,2,numEq,numComp,8)]+=-B_1_0*w42 + B_1_2*w47 + B_1_5*w48 - B_1_7*w34 + tmp138 + tmp139 + tmp140 + tmp142 + tmp143 + tmp144 + tmp146 + tmp147 + tmp173 + tmp177;
1181 EM_S[INDEX4(k,m,0,3,numEq,numComp,8)]+=tmp100 + tmp101 + tmp102 + tmp103 + tmp40 + tmp45 + tmp96 + tmp97 + tmp98 + tmp99;
1182 EM_S[INDEX4(k,m,0,4,numEq,numComp,8)]+=-B_2_0*w46 - B_2_3*w44 - B_2_4*w43 - B_2_7*w35 + tmp114 + tmp115 + tmp116 + tmp117 + tmp118 + tmp119 + tmp120 + tmp121 + tmp92 + tmp93;
1183 EM_S[INDEX4(k,m,0,5,numEq,numComp,8)]+=tmp192 + tmp193 + tmp194 + tmp196 + tmp197 + tmp198 + tmp224 + tmp225 + tmp226 + tmp227;
1184 EM_S[INDEX4(k,m,0,6,numEq,numComp,8)]+=tmp232 + tmp234 + tmp238 + tmp239 + tmp240 + tmp241 + tmp260 + tmp261 + tmp262 + tmp263;
1185 EM_S[INDEX4(k,m,0,7,numEq,numComp,8)]+=tmp60 + tmp61 + tmp62 + tmp63 + tmp64 + tmp65;
1186 EM_S[INDEX4(k,m,1,0,numEq,numComp,8)]+=B_0_0*w50 + B_0_1*w41 + B_0_6*w33 + B_0_7*w49 + tmp148 + tmp149 + tmp242 + tmp243 + tmp244 + tmp245 + tmp246 + tmp247 + tmp248 + tmp249;
1187 EM_S[INDEX4(k,m,1,1,numEq,numComp,8)]+=B_0_0*w41 + B_0_1*w50 + B_0_6*w49 + B_0_7*w33 + B_1_1*w47 - B_1_3*w42 - B_1_4*w34 + B_1_6*w48 - B_2_1*w43 - B_2_2*w35 - B_2_5*w46 - B_2_6*w44 + tmp151 + tmp155 + tmp164 + tmp167 + tmp168 + tmp169;
1188 EM_S[INDEX4(k,m,1,2,numEq,numComp,8)]+=tmp101 + tmp103 + tmp40 + tmp42 + tmp44 + tmp45 + tmp46 + tmp48 + tmp96 + tmp98;
1189 EM_S[INDEX4(k,m,1,3,numEq,numComp,8)]+=-B_1_1*w42 + B_1_3*w47 + B_1_4*w48 - B_1_6*w34 + tmp20 + tmp21 + tmp22 + tmp23 + tmp24 + tmp25 + tmp26 + tmp27 + tmp28 + tmp29;
1190 EM_S[INDEX4(k,m,1,4,numEq,numComp,8)]+=tmp193 + tmp197 + tmp214 + tmp215 + tmp216 + tmp217 + tmp224 + tmp225 + tmp226 + tmp227;
1191 EM_S[INDEX4(k,m,1,5,numEq,numComp,8)]+=-B_2_1*w46 - B_2_2*w44 - B_2_5*w43 - B_2_6*w35 + tmp70 + tmp75 + tmp83 + tmp84 + tmp85 + tmp86 + tmp88 + tmp89 + tmp90 + tmp91;
1192 EM_S[INDEX4(k,m,1,6,numEq,numComp,8)]+=tmp60 + tmp61 + tmp63 + tmp65 + tmp80 + tmp81;
1193 EM_S[INDEX4(k,m,1,7,numEq,numComp,8)]+=tmp181 + tmp183 + tmp184 + tmp186 + tmp187 + tmp189 + tmp254 + tmp255 + tmp256 + tmp257;
1194 EM_S[INDEX4(k,m,2,0,numEq,numComp,8)]+=-B_1_0*w47 + B_1_2*w42 + B_1_5*w34 - B_1_7*w48 + tmp138 + tmp139 + tmp140 + tmp141 + tmp142 + tmp143 + tmp144 + tmp145 + tmp146 + tmp147;
1195 EM_S[INDEX4(k,m,2,1,numEq,numComp,8)]+=tmp100 + tmp102 + tmp40 + tmp41 + tmp43 + tmp45 + tmp47 + tmp49 + tmp97 + tmp99;
1196 EM_S[INDEX4(k,m,2,2,numEq,numComp,8)]+=-B_0_2*w50 - B_0_3*w41 - B_0_4*w33 - B_0_5*w49 + B_1_0*w42 - B_1_2*w47 - B_1_5*w48 + B_1_7*w34 - B_2_1*w35 - B_2_2*w43 - B_2_5*w44 - B_2_6*w46 + tmp152 + tmp154 + tmp164 + tmp165 + tmp166 + tmp167;
1197 EM_S[INDEX4(k,m,2,3,numEq,numComp,8)]+=-B_0_2*w41 - B_0_3*w50 - B_0_4*w49 - B_0_5*w33 + tmp200 + tmp201 + tmp202 + tmp203 + tmp204 + tmp205 + tmp206 + tmp207 + tmp222 + tmp223;
1198 EM_S[INDEX4(k,m,2,4,numEq,numComp,8)]+=tmp229 + tmp231 + tmp232 + tmp234 + tmp235 + tmp237 + tmp260 + tmp261 + tmp262 + tmp263;
1199 EM_S[INDEX4(k,m,2,5,numEq,numComp,8)]+=tmp60 + tmp62 + tmp63 + tmp64 + tmp94 + tmp95;
1200 EM_S[INDEX4(k,m,2,6,numEq,numComp,8)]+=-B_2_1*w44 - B_2_2*w46 - B_2_5*w35 - B_2_6*w43 + tmp70 + tmp71 + tmp72 + tmp73 + tmp74 + tmp75 + tmp76 + tmp77 + tmp78 + tmp79;
1201 EM_S[INDEX4(k,m,2,7,numEq,numComp,8)]+=tmp107 + tmp111 + tmp156 + tmp157 + tmp158 + tmp159 + tmp160 + tmp161 + tmp162 + tmp163;
1202 EM_S[INDEX4(k,m,3,0,numEq,numComp,8)]+=tmp40 + tmp41 + tmp42 + tmp43 + tmp44 + tmp45 + tmp46 + tmp47 + tmp48 + tmp49;
1203 EM_S[INDEX4(k,m,3,1,numEq,numComp,8)]+=-B_1_1*w47 + B_1_3*w42 + B_1_4*w34 - B_1_6*w48 + tmp20 + tmp21 + tmp22 + tmp24 + tmp25 + tmp26 + tmp28 + tmp29 + tmp33 + tmp37;
1204 EM_S[INDEX4(k,m,3,2,numEq,numComp,8)]+=B_0_2*w50 + B_0_3*w41 + B_0_4*w33 + B_0_5*w49 + tmp200 + tmp201 + tmp202 + tmp203 + tmp204 + tmp205 + tmp206 + tmp207 + tmp54 + tmp56;
1205 EM_S[INDEX4(k,m,3,3,numEq,numComp,8)]+=B_0_2*w41 + B_0_3*w50 + B_0_4*w49 + B_0_5*w33 + B_1_1*w42 - B_1_3*w47 - B_1_4*w48 + B_1_6*w34 - B_2_0*w35 - B_2_3*w43 - B_2_4*w44 - B_2_7*w46 + tmp132 + tmp133 + tmp134 + tmp135 + tmp136 + tmp137;
1206 EM_S[INDEX4(k,m,3,4,numEq,numComp,8)]+=tmp60 + tmp63 + tmp80 + tmp81 + tmp94 + tmp95;
1207 EM_S[INDEX4(k,m,3,5,numEq,numComp,8)]+=tmp184 + tmp186 + tmp218 + tmp219 + tmp220 + tmp221 + tmp254 + tmp255 + tmp256 + tmp257;
1208 EM_S[INDEX4(k,m,3,6,numEq,numComp,8)]+=tmp106 + tmp107 + tmp108 + tmp110 + tmp111 + tmp112 + tmp160 + tmp161 + tmp162 + tmp163;
1209 EM_S[INDEX4(k,m,3,7,numEq,numComp,8)]+=-B_2_0*w44 - B_2_3*w46 - B_2_4*w35 - B_2_7*w43 + tmp1 + tmp2 + tmp3 + tmp4 + tmp6 + tmp7 + tmp8 + tmp9 + tmp92 + tmp93;
1210 EM_S[INDEX4(k,m,4,0,numEq,numComp,8)]+=B_2_0*w43 + B_2_3*w35 + B_2_4*w46 + B_2_7*w44 + tmp0 + tmp114 + tmp115 + tmp116 + tmp117 + tmp118 + tmp119 + tmp120 + tmp121 + tmp5;
1211 EM_S[INDEX4(k,m,4,1,numEq,numComp,8)]+=tmp190 + tmp191 + tmp192 + tmp193 + tmp194 + tmp195 + tmp196 + tmp197 + tmp198 + tmp199;
1212 EM_S[INDEX4(k,m,4,2,numEq,numComp,8)]+=tmp228 + tmp230 + tmp232 + tmp233 + tmp234 + tmp236 + tmp238 + tmp239 + tmp240 + tmp241;
1213 EM_S[INDEX4(k,m,4,3,numEq,numComp,8)]+=tmp258 + tmp259 + tmp61 + tmp62 + tmp64 + tmp65;
1214 EM_S[INDEX4(k,m,4,4,numEq,numComp,8)]+=-B_0_2*w33 - B_0_3*w49 - B_0_4*w50 - B_0_5*w41 - B_1_1*w34 + B_1_3*w48 + B_1_4*w47 - B_1_6*w42 + B_2_0*w46 + B_2_3*w44 + B_2_4*w43 + B_2_7*w35 + tmp150 + tmp151 + tmp152 + tmp153 + tmp154 + tmp155;
1215 EM_S[INDEX4(k,m,4,5,numEq,numComp,8)]+=-B_0_2*w49 - B_0_3*w33 - B_0_4*w41 - B_0_5*w50 + tmp222 + tmp223 + tmp50 + tmp51 + tmp52 + tmp53 + tmp55 + tmp57 + tmp58 + tmp59;
1216 EM_S[INDEX4(k,m,4,6,numEq,numComp,8)]+=B_1_1*w48 - B_1_3*w34 - B_1_4*w42 + B_1_6*w47 + tmp23 + tmp27 + tmp30 + tmp31 + tmp32 + tmp34 + tmp35 + tmp36 + tmp38 + tmp39;
1217 EM_S[INDEX4(k,m,4,7,numEq,numComp,8)]+=tmp10 + tmp11 + tmp12 + tmp13 + tmp14 + tmp15 + tmp16 + tmp17 + tmp18 + tmp19;
1218 EM_S[INDEX4(k,m,5,0,numEq,numComp,8)]+=tmp190 + tmp191 + tmp193 + tmp195 + tmp197 + tmp199 + tmp214 + tmp215 + tmp216 + tmp217;
1219 EM_S[INDEX4(k,m,5,1,numEq,numComp,8)]+=B_2_1*w43 + B_2_2*w35 + B_2_5*w46 + B_2_6*w44 + tmp82 + tmp83 + tmp84 + tmp85 + tmp86 + tmp87 + tmp88 + tmp89 + tmp90 + tmp91;
1220 EM_S[INDEX4(k,m,5,2,numEq,numComp,8)]+=tmp258 + tmp259 + tmp61 + tmp65 + tmp80 + tmp81;
1221 EM_S[INDEX4(k,m,5,3,numEq,numComp,8)]+=tmp180 + tmp181 + tmp182 + tmp183 + tmp184 + tmp185 + tmp186 + tmp187 + tmp188 + tmp189;
1222 EM_S[INDEX4(k,m,5,4,numEq,numComp,8)]+=B_0_2*w33 + B_0_3*w49 + B_0_4*w50 + B_0_5*w41 + tmp50 + tmp51 + tmp52 + tmp53 + tmp54 + tmp55 + tmp56 + tmp57 + tmp58 + tmp59;
1223 EM_S[INDEX4(k,m,5,5,numEq,numComp,8)]+=B_0_2*w49 + B_0_3*w33 + B_0_4*w41 + B_0_5*w50 - B_1_0*w34 + B_1_2*w48 + B_1_5*w47 - B_1_7*w42 + B_2_1*w46 + B_2_2*w44 + B_2_5*w43 + B_2_6*w35 + tmp134 + tmp135 + tmp208 + tmp211 + tmp212 + tmp213;
1224 EM_S[INDEX4(k,m,5,6,numEq,numComp,8)]+=tmp10 + tmp11 + tmp13 + tmp15 + tmp17 + tmp19 + tmp66 + tmp67 + tmp68 + tmp69;
1225 EM_S[INDEX4(k,m,5,7,numEq,numComp,8)]+=B_1_0*w48 - B_1_2*w34 - B_1_5*w42 + B_1_7*w47 + tmp170 + tmp171 + tmp172 + tmp173 + tmp174 + tmp175 + tmp176 + tmp177 + tmp178 + tmp179;
1226 EM_S[INDEX4(k,m,6,0,numEq,numComp,8)]+=tmp228 + tmp229 + tmp230 + tmp231 + tmp232 + tmp233 + tmp234 + tmp235 + tmp236 + tmp237;
1227 EM_S[INDEX4(k,m,6,1,numEq,numComp,8)]+=tmp258 + tmp259 + tmp62 + tmp64 + tmp94 + tmp95;
1228 EM_S[INDEX4(k,m,6,2,numEq,numComp,8)]+=B_2_1*w35 + B_2_2*w43 + B_2_5*w44 + B_2_6*w46 + tmp71 + tmp72 + tmp73 + tmp74 + tmp76 + tmp77 + tmp78 + tmp79 + tmp82 + tmp87;
1229 EM_S[INDEX4(k,m,6,3,numEq,numComp,8)]+=tmp104 + tmp105 + tmp107 + tmp109 + tmp111 + tmp113 + tmp156 + tmp157 + tmp158 + tmp159;
1230 EM_S[INDEX4(k,m,6,4,numEq,numComp,8)]+=B_1_1*w34 - B_1_3*w48 - B_1_4*w47 + B_1_6*w42 + tmp30 + tmp31 + tmp32 + tmp33 + tmp34 + tmp35 + tmp36 + tmp37 + tmp38 + tmp39;
1231 EM_S[INDEX4(k,m,6,5,numEq,numComp,8)]+=tmp10 + tmp12 + tmp14 + tmp15 + tmp16 + tmp18 + tmp250 + tmp251 + tmp252 + tmp253;
1232 EM_S[INDEX4(k,m,6,6,numEq,numComp,8)]+=-B_0_0*w33 - B_0_1*w49 - B_0_6*w50 - B_0_7*w41 - B_1_1*w48 + B_1_3*w34 + B_1_4*w42 - B_1_6*w47 + B_2_1*w44 + B_2_2*w46 + B_2_5*w35 + B_2_6*w43 + tmp133 + tmp136 + tmp209 + tmp210 + tmp212 + tmp213;
1233 EM_S[INDEX4(k,m,6,7,numEq,numComp,8)]+=-B_0_0*w49 - B_0_1*w33 - B_0_6*w41