~ubuntu-branches/ubuntu/maverick/dolfin/maverick

« back to all changes in this revision

Viewing changes to bench/fem/convergence/Poisson3D_4.h

  • Committer: Bazaar Package Importer
  • Author(s): Johannes Ring
  • Date: 2008-09-16 08:41:20 UTC
  • Revision ID: james.westby@ubuntu.com-20080916084120-i8k3u6lhx3mw3py3
Tags: upstream-0.9.2
ImportĀ upstreamĀ versionĀ 0.9.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// This code conforms with the UFC specification version 1.0
 
2
// and was automatically generated by FFC version 0.6.0.
 
3
//
 
4
// Warning: This code was generated with the option '-l dolfin'
 
5
// and contains DOLFIN-specific wrappers that depend on DOLFIN.
 
6
 
 
7
#ifndef __POISSON3D_4_H
 
8
#define __POISSON3D_4_H
 
9
 
 
10
#include <cmath>
 
11
#include <stdexcept>
 
12
#include <fstream>
 
13
#include <ufc.h>
 
14
 
 
15
/// This class defines the interface for a finite element.
 
16
 
 
17
class UFC_Poisson3D_4BilinearForm_finite_element_0: public ufc::finite_element
 
18
{
 
19
public:
 
20
 
 
21
  /// Constructor
 
22
  UFC_Poisson3D_4BilinearForm_finite_element_0() : ufc::finite_element()
 
23
  {
 
24
    // Do nothing
 
25
  }
 
26
 
 
27
  /// Destructor
 
28
  virtual ~UFC_Poisson3D_4BilinearForm_finite_element_0()
 
29
  {
 
30
    // Do nothing
 
31
  }
 
32
 
 
33
  /// Return a string identifying the finite element
 
34
  virtual const char* signature() const
 
35
  {
 
36
    return "FiniteElement('Lagrange', 'tetrahedron', 4)";
 
37
  }
 
38
 
 
39
  /// Return the cell shape
 
40
  virtual ufc::shape cell_shape() const
 
41
  {
 
42
    return ufc::tetrahedron;
 
43
  }
 
44
 
 
45
  /// Return the dimension of the finite element function space
 
46
  virtual unsigned int space_dimension() const
 
47
  {
 
48
    return 35;
 
49
  }
 
50
 
 
51
  /// Return the rank of the value space
 
52
  virtual unsigned int value_rank() const
 
53
  {
 
54
    return 0;
 
55
  }
 
56
 
 
57
  /// Return the dimension of the value space for axis i
 
58
  virtual unsigned int value_dimension(unsigned int i) const
 
59
  {
 
60
    return 1;
 
61
  }
 
62
 
 
63
  /// Evaluate basis function i at given point in cell
 
64
  virtual void evaluate_basis(unsigned int i,
 
65
                              double* values,
 
66
                              const double* coordinates,
 
67
                              const ufc::cell& c) const
 
68
  {
 
69
    // Extract vertex coordinates
 
70
    const double * const * element_coordinates = c.coordinates;
 
71
    
 
72
    // Compute Jacobian of affine map from reference cell
 
73
    const double J_00 = element_coordinates[1][0] - element_coordinates[0][0];
 
74
    const double J_01 = element_coordinates[2][0] - element_coordinates[0][0];
 
75
    const double J_02 = element_coordinates[3][0] - element_coordinates[0][0];
 
76
    const double J_10 = element_coordinates[1][1] - element_coordinates[0][1];
 
77
    const double J_11 = element_coordinates[2][1] - element_coordinates[0][1];
 
78
    const double J_12 = element_coordinates[3][1] - element_coordinates[0][1];
 
79
    const double J_20 = element_coordinates[1][2] - element_coordinates[0][2];
 
80
    const double J_21 = element_coordinates[2][2] - element_coordinates[0][2];
 
81
    const double J_22 = element_coordinates[3][2] - element_coordinates[0][2];
 
82
      
 
83
    // Compute sub determinants
 
84
    const double d00 = J_11*J_22 - J_12*J_21;
 
85
    const double d01 = J_12*J_20 - J_10*J_22;
 
86
    const double d02 = J_10*J_21 - J_11*J_20;
 
87
    
 
88
    const double d10 = J_02*J_21 - J_01*J_22;
 
89
    const double d11 = J_00*J_22 - J_02*J_20;
 
90
    const double d12 = J_01*J_20 - J_00*J_21;
 
91
    
 
92
    const double d20 = J_01*J_12 - J_02*J_11;
 
93
    const double d21 = J_02*J_10 - J_00*J_12;
 
94
    const double d22 = J_00*J_11 - J_01*J_10;
 
95
      
 
96
    // Compute determinant of Jacobian
 
97
    double detJ = J_00*d00 + J_10*d10 + J_20*d20;
 
98
    
 
99
    // Compute inverse of Jacobian
 
100
    
 
101
    // Compute constants
 
102
    const double C0 = d00*(element_coordinates[0][0] - element_coordinates[2][0] - element_coordinates[3][0]) \
 
103
                    + d10*(element_coordinates[0][1] - element_coordinates[2][1] - element_coordinates[3][1]) \
 
104
                    + d20*(element_coordinates[0][2] - element_coordinates[2][2] - element_coordinates[3][2]);
 
105
    
 
106
    const double C1 = d01*(element_coordinates[0][0] - element_coordinates[1][0] - element_coordinates[3][0]) \
 
107
                    + d11*(element_coordinates[0][1] - element_coordinates[1][1] - element_coordinates[3][1]) \
 
108
                    + d21*(element_coordinates[0][2] - element_coordinates[1][2] - element_coordinates[3][2]);
 
109
    
 
110
    const double C2 = d02*(element_coordinates[0][0] - element_coordinates[1][0] - element_coordinates[2][0]) \
 
111
                    + d12*(element_coordinates[0][1] - element_coordinates[1][1] - element_coordinates[2][1]) \
 
112
                    + d22*(element_coordinates[0][2] - element_coordinates[1][2] - element_coordinates[2][2]);
 
113
    
 
114
    // Get coordinates and map to the UFC reference element
 
115
    double x = (C0 + d00*coordinates[0] + d10*coordinates[1] + d20*coordinates[2]) / detJ;
 
116
    double y = (C1 + d01*coordinates[0] + d11*coordinates[1] + d21*coordinates[2]) / detJ;
 
117
    double z = (C2 + d02*coordinates[0] + d12*coordinates[1] + d22*coordinates[2]) / detJ;
 
118
    
 
119
    // Map coordinates to the reference cube
 
120
    if (std::abs(y + z - 1.0) < 1e-14)
 
121
      x = 1.0;
 
122
    else
 
123
      x = -2.0 * x/(y + z - 1.0) - 1.0;
 
124
    if (std::abs(z - 1.0) < 1e-14)
 
125
      y = -1.0;
 
126
    else
 
127
      y = 2.0 * y/(1.0 - z) - 1.0;
 
128
    z = 2.0 * z - 1.0;
 
129
    
 
130
    // Reset values
 
131
    *values = 0;
 
132
    
 
133
    // Map degree of freedom to element degree of freedom
 
134
    const unsigned int dof = i;
 
135
    
 
136
    // Generate scalings
 
137
    const double scalings_y_0 = 1;
 
138
    const double scalings_y_1 = scalings_y_0*(0.5 - 0.5*y);
 
139
    const double scalings_y_2 = scalings_y_1*(0.5 - 0.5*y);
 
140
    const double scalings_y_3 = scalings_y_2*(0.5 - 0.5*y);
 
141
    const double scalings_y_4 = scalings_y_3*(0.5 - 0.5*y);
 
142
    const double scalings_z_0 = 1;
 
143
    const double scalings_z_1 = scalings_z_0*(0.5 - 0.5*z);
 
144
    const double scalings_z_2 = scalings_z_1*(0.5 - 0.5*z);
 
145
    const double scalings_z_3 = scalings_z_2*(0.5 - 0.5*z);
 
146
    const double scalings_z_4 = scalings_z_3*(0.5 - 0.5*z);
 
147
    
 
148
    // Compute psitilde_a
 
149
    const double psitilde_a_0 = 1;
 
150
    const double psitilde_a_1 = x;
 
151
    const double psitilde_a_2 = 1.5*x*psitilde_a_1 - 0.5*psitilde_a_0;
 
152
    const double psitilde_a_3 = 1.66666666666667*x*psitilde_a_2 - 0.666666666666667*psitilde_a_1;
 
153
    const double psitilde_a_4 = 1.75*x*psitilde_a_3 - 0.75*psitilde_a_2;
 
154
    
 
155
    // Compute psitilde_bs
 
156
    const double psitilde_bs_0_0 = 1;
 
157
    const double psitilde_bs_0_1 = 1.5*y + 0.5;
 
158
    const double psitilde_bs_0_2 = 0.111111111111111*psitilde_bs_0_1 + 1.66666666666667*y*psitilde_bs_0_1 - 0.555555555555556*psitilde_bs_0_0;
 
159
    const double psitilde_bs_0_3 = 0.05*psitilde_bs_0_2 + 1.75*y*psitilde_bs_0_2 - 0.7*psitilde_bs_0_1;
 
160
    const double psitilde_bs_0_4 = 0.0285714285714286*psitilde_bs_0_3 + 1.8*y*psitilde_bs_0_3 - 0.771428571428571*psitilde_bs_0_2;
 
161
    const double psitilde_bs_1_0 = 1;
 
162
    const double psitilde_bs_1_1 = 2.5*y + 1.5;
 
163
    const double psitilde_bs_1_2 = 0.54*psitilde_bs_1_1 + 2.1*y*psitilde_bs_1_1 - 0.56*psitilde_bs_1_0;
 
164
    const double psitilde_bs_1_3 = 0.285714285714286*psitilde_bs_1_2 + 2*y*psitilde_bs_1_2 - 0.714285714285714*psitilde_bs_1_1;
 
165
    const double psitilde_bs_2_0 = 1;
 
166
    const double psitilde_bs_2_1 = 3.5*y + 2.5;
 
167
    const double psitilde_bs_2_2 = 1.02040816326531*psitilde_bs_2_1 + 2.57142857142857*y*psitilde_bs_2_1 - 0.551020408163265*psitilde_bs_2_0;
 
168
    const double psitilde_bs_3_0 = 1;
 
169
    const double psitilde_bs_3_1 = 4.5*y + 3.5;
 
170
    const double psitilde_bs_4_0 = 1;
 
171
    
 
172
    // Compute psitilde_cs
 
173
    const double psitilde_cs_00_0 = 1;
 
174
    const double psitilde_cs_00_1 = 2*z + 1;
 
175
    const double psitilde_cs_00_2 = 0.3125*psitilde_cs_00_1 + 1.875*z*psitilde_cs_00_1 - 0.5625*psitilde_cs_00_0;
 
176
    const double psitilde_cs_00_3 = 0.155555555555556*psitilde_cs_00_2 + 1.86666666666667*z*psitilde_cs_00_2 - 0.711111111111111*psitilde_cs_00_1;
 
177
    const double psitilde_cs_00_4 = 0.09375*psitilde_cs_00_3 + 1.875*z*psitilde_cs_00_3 - 0.78125*psitilde_cs_00_2;
 
178
    const double psitilde_cs_01_0 = 1;
 
179
    const double psitilde_cs_01_1 = 3*z + 2;
 
180
    const double psitilde_cs_01_2 = 0.777777777777778*psitilde_cs_01_1 + 2.33333333333333*z*psitilde_cs_01_1 - 0.555555555555556*psitilde_cs_01_0;
 
181
    const double psitilde_cs_01_3 = 0.428571428571429*psitilde_cs_01_2 + 2.14285714285714*z*psitilde_cs_01_2 - 0.714285714285714*psitilde_cs_01_1;
 
182
    const double psitilde_cs_02_0 = 1;
 
183
    const double psitilde_cs_02_1 = 4*z + 3;
 
184
    const double psitilde_cs_02_2 = 1.265625*psitilde_cs_02_1 + 2.8125*z*psitilde_cs_02_1 - 0.546875*psitilde_cs_02_0;
 
185
    const double psitilde_cs_03_0 = 1;
 
186
    const double psitilde_cs_03_1 = 5*z + 4;
 
187
    const double psitilde_cs_04_0 = 1;
 
188
    const double psitilde_cs_10_0 = 1;
 
189
    const double psitilde_cs_10_1 = 3*z + 2;
 
190
    const double psitilde_cs_10_2 = 0.777777777777778*psitilde_cs_10_1 + 2.33333333333333*z*psitilde_cs_10_1 - 0.555555555555556*psitilde_cs_10_0;
 
191
    const double psitilde_cs_10_3 = 0.428571428571429*psitilde_cs_10_2 + 2.14285714285714*z*psitilde_cs_10_2 - 0.714285714285714*psitilde_cs_10_1;
 
192
    const double psitilde_cs_11_0 = 1;
 
193
    const double psitilde_cs_11_1 = 4*z + 3;
 
194
    const double psitilde_cs_11_2 = 1.265625*psitilde_cs_11_1 + 2.8125*z*psitilde_cs_11_1 - 0.546875*psitilde_cs_11_0;
 
195
    const double psitilde_cs_12_0 = 1;
 
196
    const double psitilde_cs_12_1 = 5*z + 4;
 
197
    const double psitilde_cs_13_0 = 1;
 
198
    const double psitilde_cs_20_0 = 1;
 
199
    const double psitilde_cs_20_1 = 4*z + 3;
 
200
    const double psitilde_cs_20_2 = 1.265625*psitilde_cs_20_1 + 2.8125*z*psitilde_cs_20_1 - 0.546875*psitilde_cs_20_0;
 
201
    const double psitilde_cs_21_0 = 1;
 
202
    const double psitilde_cs_21_1 = 5*z + 4;
 
203
    const double psitilde_cs_22_0 = 1;
 
204
    const double psitilde_cs_30_0 = 1;
 
205
    const double psitilde_cs_30_1 = 5*z + 4;
 
206
    const double psitilde_cs_31_0 = 1;
 
207
    const double psitilde_cs_40_0 = 1;
 
208
    
 
209
    // Compute basisvalues
 
210
    const double basisvalue0 = 0.866025403784439*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_0;
 
211
    const double basisvalue1 = 2.73861278752583*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_0;
 
212
    const double basisvalue2 = 1.58113883008419*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_0;
 
213
    const double basisvalue3 = 1.11803398874989*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_1;
 
214
    const double basisvalue4 = 5.1234753829798*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_0;
 
215
    const double basisvalue5 = 3.96862696659689*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_0;
 
216
    const double basisvalue6 = 2.29128784747792*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_0;
 
217
    const double basisvalue7 = 3.24037034920393*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_1;
 
218
    const double basisvalue8 = 1.87082869338697*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_1;
 
219
    const double basisvalue9 = 1.3228756555323*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_2;
 
220
    const double basisvalue10 = 7.93725393319377*psitilde_a_3*scalings_y_3*psitilde_bs_3_0*scalings_z_3*psitilde_cs_30_0;
 
221
    const double basisvalue11 = 6.70820393249937*psitilde_a_2*scalings_y_2*psitilde_bs_2_1*scalings_z_3*psitilde_cs_21_0;
 
222
    const double basisvalue12 = 5.19615242270663*psitilde_a_1*scalings_y_1*psitilde_bs_1_2*scalings_z_3*psitilde_cs_12_0;
 
223
    const double basisvalue13 = 3*psitilde_a_0*scalings_y_0*psitilde_bs_0_3*scalings_z_3*psitilde_cs_03_0;
 
224
    const double basisvalue14 = 5.80947501931113*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_1;
 
225
    const double basisvalue15 = 4.5*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_1;
 
226
    const double basisvalue16 = 2.59807621135332*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_1;
 
227
    const double basisvalue17 = 3.67423461417477*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_2;
 
228
    const double basisvalue18 = 2.12132034355964*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_2;
 
229
    const double basisvalue19 = 1.5*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_3;
 
230
    const double basisvalue20 = 11.1242977306435*psitilde_a_4*scalings_y_4*psitilde_bs_4_0*scalings_z_4*psitilde_cs_40_0;
 
231
    const double basisvalue21 = 9.81070843517429*psitilde_a_3*scalings_y_3*psitilde_bs_3_1*scalings_z_4*psitilde_cs_31_0;
 
232
    const double basisvalue22 = 8.2915619758885*psitilde_a_2*scalings_y_2*psitilde_bs_2_2*scalings_z_4*psitilde_cs_22_0;
 
233
    const double basisvalue23 = 6.42261628933256*psitilde_a_1*scalings_y_1*psitilde_bs_1_3*scalings_z_4*psitilde_cs_13_0;
 
234
    const double basisvalue24 = 3.70809924354783*psitilde_a_0*scalings_y_0*psitilde_bs_0_4*scalings_z_4*psitilde_cs_04_0;
 
235
    const double basisvalue25 = 8.77496438739212*psitilde_a_3*scalings_y_3*psitilde_bs_3_0*scalings_z_3*psitilde_cs_30_1;
 
236
    const double basisvalue26 = 7.41619848709566*psitilde_a_2*scalings_y_2*psitilde_bs_2_1*scalings_z_3*psitilde_cs_21_1;
 
237
    const double basisvalue27 = 5.74456264653803*psitilde_a_1*scalings_y_1*psitilde_bs_1_2*scalings_z_3*psitilde_cs_12_1;
 
238
    const double basisvalue28 = 3.3166247903554*psitilde_a_0*scalings_y_0*psitilde_bs_0_3*scalings_z_3*psitilde_cs_03_1;
 
239
    const double basisvalue29 = 6.42261628933256*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_2;
 
240
    const double basisvalue30 = 4.9749371855331*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_2;
 
241
    const double basisvalue31 = 2.87228132326901*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_2;
 
242
    const double basisvalue32 = 4.06201920231798*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_3;
 
243
    const double basisvalue33 = 2.34520787991171*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_3;
 
244
    const double basisvalue34 = 1.6583123951777*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_4;
 
245
    
 
246
    // Table(s) of coefficients
 
247
    const static double coefficients0[35][35] = \
 
248
    {{-0.0137464349807051, -0.0144900147488139, -0.00836581391578937, -0.00591552374999941, 0, 0, 0, 0, 0, 0, -0.00671936840905293, -0.00567890279999946, -0.00439885919382571, -0.00253968253968254, -0.00491807409042211, -0.00380952380952381, -0.00219942959691287, -0.00311046316543895, -0.0017958267458706, -0.00126984126984128, 0.0136980289516341, 0.0120805260192622, 0.010209907964538, 0.00790856070259325, 0.00456600965054471, 0.0108051509532101, 0.00913201930108942, 0.00707363173407281, 0.00408396318581522, 0.00790856070259324, 0.00612594477872282, 0.0035368158670364, 0.00500181296677924, 0.00288779806280616, 0.00204198159290761},
 
249
    {-0.0137464349807054, 0.0144900147488139, -0.00836581391578934, -0.00591552374999945, 0, 0, 0, 0, 0, 0, 0.00671936840905293, -0.00567890279999946, 0.00439885919382572, -0.00253968253968254, -0.00491807409042213, 0.00380952380952382, -0.00219942959691286, 0.00311046316543897, -0.0017958267458706, -0.00126984126984127, 0.0136980289516341, -0.0120805260192622, 0.010209907964538, -0.00790856070259325, 0.00456600965054471, -0.0108051509532101, 0.00913201930108941, -0.0070736317340728, 0.00408396318581521, 0.00790856070259325, -0.00612594477872282, 0.0035368158670364, -0.00500181296677924, 0.00288779806280615, 0.00204198159290761},
 
250
    {-0.0137464349807053, 0, 0.0167316278315787, -0.00591552374999946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0101587301587302, 0, 0, -0.00659828879073857, 0, 0.00359165349174119, -0.00126984126984127, 0, 0, 0, 0, 0.0228300482527235, 0, 0, 0, -0.0163358527432608, 0, 0, 0.0106104476011092, 0, -0.0057755961256123, 0.00204198159290761},
 
251
    {-0.0137464349807054, 0, 0, 0.0177465712499983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0126984126984127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0306297238936141},
 
252
    {0.0439885919382572, 0, 0.026770604530526, 0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, 0, 0.0406349206349206, 0, 0, 0.00439885919382572, 0, -0.0143666139669648, 0.00761904761904763, 0, 0, 0, 0, 0, 0, 0, 0, 0.0367556686723369, 0, 0, -0.0424417904044368, 0, 0.0303218796594646, -0.0122518895574456},
 
253
    {-0.0329914439536931, 0, -0.0200779533978945, -0.0141972569999986, 0, 0, -0.00969857289937744, 0, 0.0712696645099798, -0.050395263067897, 0, 0, 0, 0, 0, 0, 0.0461880215351701, 0, 0.0107749604752236, -0.0190476190476191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0495154221385096, 0, -0.0606437593189292, 0.0306297238936141},
 
254
    {0.0439885919382573, 0, 0.0267706045305259, 0.0189296759999982, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, 0, 0.0359165349174119, 0.0253968253968254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0505364660991076, -0.0408396318581522},
 
255
    {0.0439885919382573, 0.0231840235981023, -0.0133853022652629, 0.0189296759999982, 0.0433733365754904, -0.0335968420452647, 0.0193971457987549, -0.0274317066599275, 0.01583770322444, 0.0111989473484215, 0.0268774736362117, -0.0227156111999979, 0.0175954367753029, -0.0101587301587302, 0.00327871606028141, -0.00253968253968255, 0.0014662863979419, -0.0124418526617558, 0.00718330698348238, 0.00761904761904763, 0, 0, 0, 0, 0, 0.0243115896447228, -0.0205470434274512, 0.0159156714016638, -0.00918891716808423, -0.031634242810373, 0.0245037791148913, -0.0141472634681456, 0.026259518075591, -0.0151609398297323, -0.0122518895574456},
 
256
    {-0.0329914439536929, -0.0173880176985766, 0.0100389766989472, -0.0141972569999986, -0.00722888942924838, 0.00559947367421081, -0.00323285763312582, 0.0617213399848368, -0.03563483225499, -0.050395263067897, 0, 0, 0, 0, 0.0344265186329548, -0.0266666666666667, 0.01539600717839, 0.00933138949631686, -0.00538748023761177, -0.0190476190476191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0369066166121018, -0.0285877423007065, 0.0165051407128365, -0.052519036151182, 0.0303218796594646, 0.0306297238936141},
 
257
    {0.0439885919382573, 0.0231840235981023, -0.013385302265263, 0.0189296759999982, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, 0.0311046316543895, -0.017958267458706, 0.0253968253968255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0437658634593183, -0.0252682330495538, -0.0408396318581521},
 
258
    {0.0439885919382572, 0.0231840235981023, 0.013385302265263, -0.0189296759999982, 0.0433733365754903, -0.0335968420452647, 0.0193971457987549, -0.0274317066599275, 0.01583770322444, 0.0111989473484215, 0.0268774736362117, 0, -0.0117302911835353, 0.0101587301587302, -0.0229510124219699, 0.00761904761904761, -0.00146628639794191, 0.0165891368823411, -0.0071833069834824, -0.00761904761904763, 0, 0.0241610520385245, -0.0357346778758831, 0.0355885231616696, -0.0228300482527235, -0.00270128773830253, -0.0114150241263618, 0.0159156714016638, -0.0112308987609918, 0.00395428035129663, 0.00306297238936141, -0.0035368158670364, -0.00375135972508443, 0.00072194951570154, 0.00204198159290761},
 
259
    {-0.0329914439536929, -0.0173880176985768, -0.0100389766989472, 0.0141972569999986, -0.00722888942924839, 0.0615942104163185, -0.0614242950293904, -0.00685792666498187, -0.00395942580611001, 0.00559947367421077, 0, 0.0340734167999968, 0, -0.0152380952380952, -0.00491807409042213, -0.0266666666666667, 0.0175954367753029, 0.00933138949631688, 0.00538748023761179, -0.00761904761904761, 0, 0, 0.0357346778758831, -0.0593142052694494, 0.0456600965054471, 0, -0.00913201930108943, 0, 0.00408396318581521, 0.00131809345043221, 0.00714693557517662, -0.00471575448938186, -0.00250090648338962, -0.00144389903140307, 0.00204198159290761},
 
260
    {0.0439885919382572, 0.0231840235981022, 0.013385302265263, -0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, 0.0293257279588382, 0.0101587301587302, 0, -0.0101587301587302, -0.0219942959691286, 0.00207364211029264, 0.017958267458706, -0.00761904761904762, 0, 0, 0, 0.0395428035129662, -0.0456600965054471, 0, 0, -0.017684079335182, 0.0142938711503532, 0, 0.00612594477872282, 0, -0.00125045324169481, -0.00360974757850769, 0.0020419815929076},
 
261
    {0.043988591938257, -0.0231840235981023, -0.0133853022652629, 0.0189296759999983, 0.0433733365754903, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484216, -0.0268774736362117, -0.0227156111999979, -0.0175954367753029, -0.0101587301587302, 0.00327871606028139, 0.00253968253968253, 0.0014662863979419, 0.0124418526617558, 0.00718330698348236, 0.00761904761904761, 0, 0, 0, 0, 0, -0.0243115896447228, -0.0205470434274512, -0.0159156714016638, -0.00918891716808424, -0.031634242810373, -0.0245037791148913, -0.0141472634681456, -0.026259518075591, -0.0151609398297323, -0.0122518895574456},
 
262
    {-0.0329914439536929, 0.0173880176985768, 0.0100389766989471, -0.0141972569999987, -0.00722888942924838, -0.00559947367421082, -0.00323285763312581, -0.0617213399848367, -0.03563483225499, -0.050395263067897, 0, 0, 0, 0, 0.0344265186329548, 0.0266666666666667, 0.01539600717839, -0.00933138949631689, -0.00538748023761178, -0.019047619047619, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0369066166121018, 0.0285877423007065, 0.0165051407128365, 0.0525190361511819, 0.0303218796594646, 0.0306297238936141},
 
263
    {0.0439885919382572, -0.0231840235981023, -0.0133853022652629, 0.0189296759999981, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, -0.0311046316543896, -0.017958267458706, 0.0253968253968255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0437658634593183, -0.0252682330495538, -0.0408396318581521},
 
264
    {0.0439885919382572, -0.0231840235981023, 0.013385302265263, -0.0189296759999982, 0.0433733365754904, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484216, -0.0268774736362117, 0, 0.0117302911835352, 0.0101587301587302, -0.0229510124219699, -0.00761904761904762, -0.00146628639794191, -0.0165891368823411, -0.00718330698348239, -0.00761904761904763, 0, -0.0241610520385245, -0.0357346778758831, -0.0355885231616696, -0.0228300482527235, 0.00270128773830254, -0.0114150241263618, -0.0159156714016638, -0.0112308987609918, 0.00395428035129662, -0.00306297238936141, -0.0035368158670364, 0.00375135972508443, 0.000721949515701533, 0.00204198159290761},
 
265
    {-0.0329914439536929, 0.0173880176985766, -0.0100389766989472, 0.0141972569999987, -0.00722888942924841, -0.0615942104163186, -0.0614242950293904, 0.00685792666498186, -0.00395942580610998, 0.00559947367421075, 0, 0.0340734167999968, 0, -0.0152380952380952, -0.00491807409042213, 0.0266666666666667, 0.0175954367753029, -0.00933138949631688, 0.00538748023761179, -0.00761904761904763, 0, 0, 0.0357346778758831, 0.0593142052694494, 0.0456600965054471, 0, -0.00913201930108943, 0, 0.0040839631858152, 0.00131809345043222, -0.00714693557517663, -0.00471575448938187, 0.00250090648338962, -0.00144389903140308, 0.00204198159290761},
 
266
    {0.0439885919382573, -0.0231840235981022, 0.013385302265263, -0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, -0.0293257279588382, 0.0101587301587302, 0, 0.0101587301587301, -0.0219942959691286, -0.00207364211029265, 0.017958267458706, -0.00761904761904761, 0, 0, 0, -0.0395428035129663, -0.0456600965054471, 0, 0, 0.017684079335182, 0.0142938711503532, 0, -0.00612594477872281, 0, 0.00125045324169481, -0.00360974757850769, 0.0020419815929076},
 
267
    {0.0439885919382571, 0, -0.026770604530526, -0.0189296759999982, 0.0433733365754904, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484215, 0.0134387368181058, -0.0113578055999989, -0.0205280095711867, -0.0152380952380952, -0.00983614818084424, -0.0177777777777778, -0.0131965775814772, -0.0145154947720485, -0.0107749604752236, -0.00761904761904761, -0.0547921158065365, -0.0241610520385245, -0.00510495398226901, 0.00395428035129663, 0.00456600965054471, -0.0216103019064202, -0.00456600965054471, 0.00353681586703639, 0.00408396318581521, -0.00395428035129661, 0.0030629723893614, 0.0035368158670364, 0.00250090648338961, 0.00288779806280615, 0.00204198159290761},
 
268
    {-0.0329914439536931, 0, 0.0200779533978945, 0.0141972569999987, -0.0867466731509807, 0, 0.00969857289937743, 0, 0.00791885161221998, 0.00559947367421076, 0, 0.0340734167999968, 0, -0.0152380952380953, 0.0295084445425327, 0, -0.0131965775814772, 0, -0.0107749604752236, -0.00761904761904762, 0.0821881737098047, 0, -0.010209907964538, 0, 0.00456600965054471, 0, -0.00913201930108944, 0, 0.00408396318581521, -0.00790856070259326, 0, 0.0035368158670364, 0, 0.00288779806280615, 0.00204198159290761},
 
269
    {0.0439885919382573, 0, -0.026770604530526, -0.0189296759999982, 0.0433733365754903, -0.0335968420452646, 0.0193971457987549, -0.0274317066599274, 0.01583770322444, 0.0111989473484215, -0.0134387368181058, -0.0113578055999989, 0.0205280095711867, -0.0152380952380952, -0.00983614818084423, 0.0177777777777778, -0.0131965775814772, 0.0145154947720485, -0.0107749604752236, -0.00761904761904761, -0.0547921158065365, 0.0241610520385245, -0.005104953982269, -0.00395428035129662, 0.00456600965054471, 0.0216103019064202, -0.0045660096505447, -0.0035368158670364, 0.00408396318581521, -0.00395428035129662, -0.00306297238936141, 0.00353681586703641, -0.00250090648338962, 0.00288779806280615, 0.00204198159290761},
 
270
    {0.0439885919382573, 0.139104141588614, -0.080311813591578, -0.0567890279999947, 0.0578311154339872, 0.0335968420452646, -0.0420271492306356, 0.0274317066599275, -0.0475131096733199, -0.0167984210226323, 0, 0.0454312223999957, -0.0586514559176763, 0.0406349206349207, 0.039344592723377, 0.00253968253968254, -0.0109971479845643, -0.0601356211984865, 0.017958267458706, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0.0410940868549024, -0.053052238005546, 0.0367556686723369, -0.0105447476034577, -0.0245037791148913, 0.0235787724469093, 0.0175063453837273, 0, -0.0122518895574457},
 
271
    {0.0439885919382572, 0, 0.160623627183156, -0.0567890279999947, 0, 0.0783926314389509, 0.0096985728993774, -0.0274317066599275, 0.0475131096733199, -0.0167984210226323, 0, 0, 0.0586514559176763, -0.0609523809523809, 0, 0.033015873015873, 0.0241937255660415, -0.0145154947720485, -0.0610581093596003, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0, 0.053052238005546, -0.0551335030085053, 0, -0.0326717054865217, 0.0141472634681456, 0.00875317269186366, 0.0151609398297323, -0.0122518895574456},
 
272
    {0.0439885919382571, 0, 0, 0.170367083999984, 0, -0.0111989473484216, 0.00969857289937744, 0.0822951199797824, 0.0475131096733199, -0.0167984210226324, 0, 0, 0, 0, 0, 0.0533333333333333, -0.0461880215351701, 0.0435464843161454, 0.0251415744421883, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.057175484601413, -0.0495154221385096, -0.026259518075591, -0.0151609398297323, 0.0306297238936141},
 
273
    {0.0439885919382571, -0.139104141588614, -0.0803118135915779, -0.0567890279999947, 0.0578311154339871, -0.0335968420452646, -0.0420271492306356, -0.0274317066599274, -0.0475131096733199, -0.0167984210226323, 0, 0.0454312223999957, 0.0586514559176763, 0.0406349206349206, 0.0393445927233769, -0.00253968253968253, -0.0109971479845643, 0.0601356211984865, 0.0179582674587059, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0.0410940868549024, 0.053052238005546, 0.0367556686723369, -0.0105447476034577, 0.0245037791148913, 0.0235787724469093, -0.0175063453837273, 0, -0.0122518895574457},
 
274
    {0.0439885919382571, 0, 0.160623627183156, -0.0567890279999946, 0, -0.0783926314389509, 0.00969857289937745, 0.0274317066599275, 0.0475131096733199, -0.0167984210226323, 0, 0, -0.0586514559176763, -0.0609523809523809, 0, -0.033015873015873, 0.0241937255660415, 0.0145154947720485, -0.0610581093596003, 0.0393650793650793, 0, 0, 0, 0, 0, 0, 0, -0.053052238005546, -0.0551335030085053, 0, 0.0326717054865217, 0.0141472634681456, -0.00875317269186368, 0.0151609398297323, -0.0122518895574456},
 
275
    {0.0439885919382572, 0, 0, 0.170367083999984, 0, 0.0111989473484215, 0.00969857289937745, -0.0822951199797824, 0.0475131096733199, -0.0167984210226323, 0, 0, 0, 0, 0, -0.0533333333333333, -0.0461880215351701, -0.0435464843161453, 0.0251415744421883, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0571754846014129, -0.0495154221385096, 0.026259518075591, -0.0151609398297323, 0.0306297238936141},
 
276
    {0.0439885919382573, -0.139104141588614, -0.0803118135915779, -0.0567890279999946, -0.0433733365754903, 0.0447957893936862, 0.0484928644968872, -0.0548634133198549, 0, -0.0167984210226323, 0.0806324209086351, 0.0227156111999979, -0.0058651455917676, -0.0101587301587302, -0.00327871606028142, 0.0304761904761905, 0.0271262983619253, 0.045620126426438, 0.0430998419008943, 0.0393650793650794, 0, 0, 0, 0, 0, 0.0729347689341683, 0.0205470434274512, -0.00530522380055458, -0.00918891716808423, 0.031634242810373, -0.00816792637163039, -0.0141472634681456, -0.00875317269186365, -0.0151609398297323, -0.0122518895574456},
 
277
    {0.0439885919382571, 0.139104141588614, -0.0803118135915779, -0.0567890279999947, -0.0433733365754904, -0.0447957893936862, 0.0484928644968873, 0.0548634133198549, 0, -0.0167984210226323, -0.0806324209086351, 0.0227156111999979, 0.0058651455917676, -0.0101587301587302, -0.00327871606028142, -0.0304761904761905, 0.0271262983619253, -0.045620126426438, 0.0430998419008943, 0.0393650793650794, 0, 0, 0, 0, 0, -0.0729347689341683, 0.0205470434274512, 0.00530522380055459, -0.00918891716808424, 0.031634242810373, 0.00816792637163042, -0.0141472634681456, 0.00875317269186367, -0.0151609398297323, -0.0122518895574456},
 
278
    {0.0439885919382572, 0, 0, 0.170367083999984, 0.0144577788584968, 0, -0.00323285763312585, 0, -0.0950262193466398, -0.0167984210226323, 0, 0, 0, 0, -0.0688530372659096, 0, 0.01539600717839, 0, -0.0502831488843767, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0738132332242036, 0, 0.0165051407128365, 0, 0.0303218796594646, 0.0306297238936141},
 
279
    {0.0439885919382573, -0.139104141588614, -0.0803118135915779, -0.0567890279999947, -0.0433733365754903, -0.0447957893936862, -0.00969857289937743, 0.0548634133198549, 0.03167540644888, 0.0391963157194754, 0.0806324209086351, 0, 0.0527863103259086, 0.0609523809523809, 0.0229510124219699, 0.0101587301587302, 0.0168622935763319, -0.0124418526617558, -0.00718330698348239, -0.013968253968254, 0, 0.0724831561155734, 0.0357346778758831, -0.0118628410538899, -0.0228300482527235, -0.00810386321490759, 0.0114150241263618, -0.00530522380055459, -0.0112308987609918, -0.00395428035129662, -0.00102099079645379, -0.0035368158670364, 0.00125045324169481, 0.000721949515701537, 0.00204198159290762},
 
280
    {0.0439885919382571, 0.139104141588614, -0.080311813591578, -0.0567890279999947, -0.0433733365754904, 0.0447957893936862, -0.00969857289937742, -0.0548634133198549, 0.0316754064488799, 0.0391963157194754, -0.0806324209086351, 0, -0.0527863103259086, 0.060952380952381, 0.0229510124219699, -0.0101587301587302, 0.0168622935763319, 0.0124418526617558, -0.00718330698348236, -0.013968253968254, 0, -0.0724831561155734, 0.0357346778758831, 0.0118628410538899, -0.0228300482527236, 0.00810386321490761, 0.0114150241263618, 0.00530522380055459, -0.0112308987609918, -0.00395428035129662, 0.00102099079645379, -0.0035368158670364, -0.0012504532416948, 0.000721949515701528, 0.0020419815929076},
 
281
    {0.0439885919382572, 0, 0.160623627183156, -0.0567890279999947, 0.0144577788584968, 0, -0.0614242950293905, 0, -0.0633508128977598, 0.0391963157194754, 0, -0.0681468335999936, 0, -0.0914285714285715, 0.00983614818084423, 0, 0.0285925847598672, 0, 0.0143666139669647, -0.0139682539682539, 0, 0, -0.0714693557517662, 0, 0.0456600965054471, 0, 0.0182640386021788, 0, 0.0040839631858152, -0.00263618690086443, 0, -0.00471575448938186, 0, -0.00144389903140306, 0.00204198159290759},
 
282
    {0.351908735506058, 0, 0, 0, -0.115662230867974, 0, -0.129314305325032, 0, 0, -0.134387368181059, 0, -0.0908624447999914, 0, 0.0406349206349206, -0.0786891854467539, 0, -0.0879771838765144, 0, 0, 0.0711111111111111, 0, 0, 0, 0, 0, 0, -0.0821881737098047, 0, 0.0367556686723369, 0.0210894952069153, 0, 0.0235787724469093, 0, 0, -0.0122518895574456}};
 
283
    
 
284
    // Extract relevant coefficients
 
285
    const double coeff0_0 = coefficients0[dof][0];
 
286
    const double coeff0_1 = coefficients0[dof][1];
 
287
    const double coeff0_2 = coefficients0[dof][2];
 
288
    const double coeff0_3 = coefficients0[dof][3];
 
289
    const double coeff0_4 = coefficients0[dof][4];
 
290
    const double coeff0_5 = coefficients0[dof][5];
 
291
    const double coeff0_6 = coefficients0[dof][6];
 
292
    const double coeff0_7 = coefficients0[dof][7];
 
293
    const double coeff0_8 = coefficients0[dof][8];
 
294
    const double coeff0_9 = coefficients0[dof][9];
 
295
    const double coeff0_10 = coefficients0[dof][10];
 
296
    const double coeff0_11 = coefficients0[dof][11];
 
297
    const double coeff0_12 = coefficients0[dof][12];
 
298
    const double coeff0_13 = coefficients0[dof][13];
 
299
    const double coeff0_14 = coefficients0[dof][14];
 
300
    const double coeff0_15 = coefficients0[dof][15];
 
301
    const double coeff0_16 = coefficients0[dof][16];
 
302
    const double coeff0_17 = coefficients0[dof][17];
 
303
    const double coeff0_18 = coefficients0[dof][18];
 
304
    const double coeff0_19 = coefficients0[dof][19];
 
305
    const double coeff0_20 = coefficients0[dof][20];
 
306
    const double coeff0_21 = coefficients0[dof][21];
 
307
    const double coeff0_22 = coefficients0[dof][22];
 
308
    const double coeff0_23 = coefficients0[dof][23];
 
309
    const double coeff0_24 = coefficients0[dof][24];
 
310
    const double coeff0_25 = coefficients0[dof][25];
 
311
    const double coeff0_26 = coefficients0[dof][26];
 
312
    const double coeff0_27 = coefficients0[dof][27];
 
313
    const double coeff0_28 = coefficients0[dof][28];
 
314
    const double coeff0_29 = coefficients0[dof][29];
 
315
    const double coeff0_30 = coefficients0[dof][30];
 
316
    const double coeff0_31 = coefficients0[dof][31];
 
317
    const double coeff0_32 = coefficients0[dof][32];
 
318
    const double coeff0_33 = coefficients0[dof][33];
 
319
    const double coeff0_34 = coefficients0[dof][34];
 
320
    
 
321
    // Compute value(s)
 
322
    *values = coeff0_0*basisvalue0 + coeff0_1*basisvalue1 + coeff0_2*basisvalue2 + coeff0_3*basisvalue3 + coeff0_4*basisvalue4 + coeff0_5*basisvalue5 + coeff0_6*basisvalue6 + coeff0_7*basisvalue7 + coeff0_8*basisvalue8 + coeff0_9*basisvalue9 + coeff0_10*basisvalue10 + coeff0_11*basisvalue11 + coeff0_12*basisvalue12 + coeff0_13*basisvalue13 + coeff0_14*basisvalue14 + coeff0_15*basisvalue15 + coeff0_16*basisvalue16 + coeff0_17*basisvalue17 + coeff0_18*basisvalue18 + coeff0_19*basisvalue19 + coeff0_20*basisvalue20 + coeff0_21*basisvalue21 + coeff0_22*basisvalue22 + coeff0_23*basisvalue23 + coeff0_24*basisvalue24 + coeff0_25*basisvalue25 + coeff0_26*basisvalue26 + coeff0_27*basisvalue27 + coeff0_28*basisvalue28 + coeff0_29*basisvalue29 + coeff0_30*basisvalue30 + coeff0_31*basisvalue31 + coeff0_32*basisvalue32 + coeff0_33*basisvalue33 + coeff0_34*basisvalue34;
 
323
  }
 
324
 
 
325
  /// Evaluate all basis functions at given point in cell
 
326
  virtual void evaluate_basis_all(double* values,
 
327
                                  const double* coordinates,
 
328
                                  const ufc::cell& c) const
 
329
  {
 
330
    throw std::runtime_error("The vectorised version of evaluate_basis() is not yet implemented.");
 
331
  }
 
332
 
 
333
  /// Evaluate order n derivatives of basis function i at given point in cell
 
334
  virtual void evaluate_basis_derivatives(unsigned int i,
 
335
                                          unsigned int n,
 
336
                                          double* values,
 
337
                                          const double* coordinates,
 
338
                                          const ufc::cell& c) const
 
339
  {
 
340
    // Extract vertex coordinates
 
341
    const double * const * element_coordinates = c.coordinates;
 
342
    
 
343
    // Compute Jacobian of affine map from reference cell
 
344
    const double J_00 = element_coordinates[1][0] - element_coordinates[0][0];
 
345
    const double J_01 = element_coordinates[2][0] - element_coordinates[0][0];
 
346
    const double J_02 = element_coordinates[3][0] - element_coordinates[0][0];
 
347
    const double J_10 = element_coordinates[1][1] - element_coordinates[0][1];
 
348
    const double J_11 = element_coordinates[2][1] - element_coordinates[0][1];
 
349
    const double J_12 = element_coordinates[3][1] - element_coordinates[0][1];
 
350
    const double J_20 = element_coordinates[1][2] - element_coordinates[0][2];
 
351
    const double J_21 = element_coordinates[2][2] - element_coordinates[0][2];
 
352
    const double J_22 = element_coordinates[3][2] - element_coordinates[0][2];
 
353
      
 
354
    // Compute sub determinants
 
355
    const double d00 = J_11*J_22 - J_12*J_21;
 
356
    const double d01 = J_12*J_20 - J_10*J_22;
 
357
    const double d02 = J_10*J_21 - J_11*J_20;
 
358
    
 
359
    const double d10 = J_02*J_21 - J_01*J_22;
 
360
    const double d11 = J_00*J_22 - J_02*J_20;
 
361
    const double d12 = J_01*J_20 - J_00*J_21;
 
362
    
 
363
    const double d20 = J_01*J_12 - J_02*J_11;
 
364
    const double d21 = J_02*J_10 - J_00*J_12;
 
365
    const double d22 = J_00*J_11 - J_01*J_10;
 
366
      
 
367
    // Compute determinant of Jacobian
 
368
    double detJ = J_00*d00 + J_10*d10 + J_20*d20;
 
369
    
 
370
    // Compute inverse of Jacobian
 
371
    
 
372
    // Compute constants
 
373
    const double C0 = d00*(element_coordinates[0][0] - element_coordinates[2][0] - element_coordinates[3][0]) \
 
374
                    + d10*(element_coordinates[0][1] - element_coordinates[2][1] - element_coordinates[3][1]) \
 
375
                    + d20*(element_coordinates[0][2] - element_coordinates[2][2] - element_coordinates[3][2]);
 
376
    
 
377
    const double C1 = d01*(element_coordinates[0][0] - element_coordinates[1][0] - element_coordinates[3][0]) \
 
378
                    + d11*(element_coordinates[0][1] - element_coordinates[1][1] - element_coordinates[3][1]) \
 
379
                    + d21*(element_coordinates[0][2] - element_coordinates[1][2] - element_coordinates[3][2]);
 
380
    
 
381
    const double C2 = d02*(element_coordinates[0][0] - element_coordinates[1][0] - element_coordinates[2][0]) \
 
382
                    + d12*(element_coordinates[0][1] - element_coordinates[1][1] - element_coordinates[2][1]) \
 
383
                    + d22*(element_coordinates[0][2] - element_coordinates[1][2] - element_coordinates[2][2]);
 
384
    
 
385
    // Get coordinates and map to the UFC reference element
 
386
    double x = (C0 + d00*coordinates[0] + d10*coordinates[1] + d20*coordinates[2]) / detJ;
 
387
    double y = (C1 + d01*coordinates[0] + d11*coordinates[1] + d21*coordinates[2]) / detJ;
 
388
    double z = (C2 + d02*coordinates[0] + d12*coordinates[1] + d22*coordinates[2]) / detJ;
 
389
    
 
390
    // Map coordinates to the reference cube
 
391
    if (std::abs(y + z - 1.0) < 1e-14)
 
392
      x = 1.0;
 
393
    else
 
394
      x = -2.0 * x/(y + z - 1.0) - 1.0;
 
395
    if (std::abs(z - 1.0) < 1e-14)
 
396
      y = -1.0;
 
397
    else
 
398
      y = 2.0 * y/(1.0 - z) - 1.0;
 
399
    z = 2.0 * z - 1.0;
 
400
    
 
401
    // Compute number of derivatives
 
402
    unsigned int num_derivatives = 1;
 
403
    
 
404
    for (unsigned int j = 0; j < n; j++)
 
405
      num_derivatives *= 3;
 
406
    
 
407
    
 
408
    // Declare pointer to two dimensional array that holds combinations of derivatives and initialise
 
409
    unsigned int **combinations = new unsigned int *[num_derivatives];
 
410
        
 
411
    for (unsigned int j = 0; j < num_derivatives; j++)
 
412
    {
 
413
      combinations[j] = new unsigned int [n];
 
414
      for (unsigned int k = 0; k < n; k++)
 
415
        combinations[j][k] = 0;
 
416
    }
 
417
        
 
418
    // Generate combinations of derivatives
 
419
    for (unsigned int row = 1; row < num_derivatives; row++)
 
420
    {
 
421
      for (unsigned int num = 0; num < row; num++)
 
422
      {
 
423
        for (unsigned int col = n-1; col+1 > 0; col--)
 
424
        {
 
425
          if (combinations[row][col] + 1 > 2)
 
426
            combinations[row][col] = 0;
 
427
          else
 
428
          {
 
429
            combinations[row][col] += 1;
 
430
            break;
 
431
          }
 
432
        }
 
433
      }
 
434
    }
 
435
    
 
436
    // Compute inverse of Jacobian
 
437
    const double Jinv[3][3] ={{d00 / detJ, d10 / detJ, d20 / detJ}, {d01 / detJ, d11 / detJ, d21 / detJ}, {d02 / detJ, d12 / detJ, d22 / detJ}};
 
438
    
 
439
    // Declare transformation matrix
 
440
    // Declare pointer to two dimensional array and initialise
 
441
    double **transform = new double *[num_derivatives];
 
442
        
 
443
    for (unsigned int j = 0; j < num_derivatives; j++)
 
444
    {
 
445
      transform[j] = new double [num_derivatives];
 
446
      for (unsigned int k = 0; k < num_derivatives; k++)
 
447
        transform[j][k] = 1;
 
448
    }
 
449
    
 
450
    // Construct transformation matrix
 
451
    for (unsigned int row = 0; row < num_derivatives; row++)
 
452
    {
 
453
      for (unsigned int col = 0; col < num_derivatives; col++)
 
454
      {
 
455
        for (unsigned int k = 0; k < n; k++)
 
456
          transform[row][col] *= Jinv[combinations[col][k]][combinations[row][k]];
 
457
      }
 
458
    }
 
459
    
 
460
    // Reset values
 
461
    for (unsigned int j = 0; j < 1*num_derivatives; j++)
 
462
      values[j] = 0;
 
463
    
 
464
    // Map degree of freedom to element degree of freedom
 
465
    const unsigned int dof = i;
 
466
    
 
467
    // Generate scalings
 
468
    const double scalings_y_0 = 1;
 
469
    const double scalings_y_1 = scalings_y_0*(0.5 - 0.5*y);
 
470
    const double scalings_y_2 = scalings_y_1*(0.5 - 0.5*y);
 
471
    const double scalings_y_3 = scalings_y_2*(0.5 - 0.5*y);
 
472
    const double scalings_y_4 = scalings_y_3*(0.5 - 0.5*y);
 
473
    const double scalings_z_0 = 1;
 
474
    const double scalings_z_1 = scalings_z_0*(0.5 - 0.5*z);
 
475
    const double scalings_z_2 = scalings_z_1*(0.5 - 0.5*z);
 
476
    const double scalings_z_3 = scalings_z_2*(0.5 - 0.5*z);
 
477
    const double scalings_z_4 = scalings_z_3*(0.5 - 0.5*z);
 
478
    
 
479
    // Compute psitilde_a
 
480
    const double psitilde_a_0 = 1;
 
481
    const double psitilde_a_1 = x;
 
482
    const double psitilde_a_2 = 1.5*x*psitilde_a_1 - 0.5*psitilde_a_0;
 
483
    const double psitilde_a_3 = 1.66666666666667*x*psitilde_a_2 - 0.666666666666667*psitilde_a_1;
 
484
    const double psitilde_a_4 = 1.75*x*psitilde_a_3 - 0.75*psitilde_a_2;
 
485
    
 
486
    // Compute psitilde_bs
 
487
    const double psitilde_bs_0_0 = 1;
 
488
    const double psitilde_bs_0_1 = 1.5*y + 0.5;
 
489
    const double psitilde_bs_0_2 = 0.111111111111111*psitilde_bs_0_1 + 1.66666666666667*y*psitilde_bs_0_1 - 0.555555555555556*psitilde_bs_0_0;
 
490
    const double psitilde_bs_0_3 = 0.05*psitilde_bs_0_2 + 1.75*y*psitilde_bs_0_2 - 0.7*psitilde_bs_0_1;
 
491
    const double psitilde_bs_0_4 = 0.0285714285714286*psitilde_bs_0_3 + 1.8*y*psitilde_bs_0_3 - 0.771428571428571*psitilde_bs_0_2;
 
492
    const double psitilde_bs_1_0 = 1;
 
493
    const double psitilde_bs_1_1 = 2.5*y + 1.5;
 
494
    const double psitilde_bs_1_2 = 0.54*psitilde_bs_1_1 + 2.1*y*psitilde_bs_1_1 - 0.56*psitilde_bs_1_0;
 
495
    const double psitilde_bs_1_3 = 0.285714285714286*psitilde_bs_1_2 + 2*y*psitilde_bs_1_2 - 0.714285714285714*psitilde_bs_1_1;
 
496
    const double psitilde_bs_2_0 = 1;
 
497
    const double psitilde_bs_2_1 = 3.5*y + 2.5;
 
498
    const double psitilde_bs_2_2 = 1.02040816326531*psitilde_bs_2_1 + 2.57142857142857*y*psitilde_bs_2_1 - 0.551020408163265*psitilde_bs_2_0;
 
499
    const double psitilde_bs_3_0 = 1;
 
500
    const double psitilde_bs_3_1 = 4.5*y + 3.5;
 
501
    const double psitilde_bs_4_0 = 1;
 
502
    
 
503
    // Compute psitilde_cs
 
504
    const double psitilde_cs_00_0 = 1;
 
505
    const double psitilde_cs_00_1 = 2*z + 1;
 
506
    const double psitilde_cs_00_2 = 0.3125*psitilde_cs_00_1 + 1.875*z*psitilde_cs_00_1 - 0.5625*psitilde_cs_00_0;
 
507
    const double psitilde_cs_00_3 = 0.155555555555556*psitilde_cs_00_2 + 1.86666666666667*z*psitilde_cs_00_2 - 0.711111111111111*psitilde_cs_00_1;
 
508
    const double psitilde_cs_00_4 = 0.09375*psitilde_cs_00_3 + 1.875*z*psitilde_cs_00_3 - 0.78125*psitilde_cs_00_2;
 
509
    const double psitilde_cs_01_0 = 1;
 
510
    const double psitilde_cs_01_1 = 3*z + 2;
 
511
    const double psitilde_cs_01_2 = 0.777777777777778*psitilde_cs_01_1 + 2.33333333333333*z*psitilde_cs_01_1 - 0.555555555555556*psitilde_cs_01_0;
 
512
    const double psitilde_cs_01_3 = 0.428571428571429*psitilde_cs_01_2 + 2.14285714285714*z*psitilde_cs_01_2 - 0.714285714285714*psitilde_cs_01_1;
 
513
    const double psitilde_cs_02_0 = 1;
 
514
    const double psitilde_cs_02_1 = 4*z + 3;
 
515
    const double psitilde_cs_02_2 = 1.265625*psitilde_cs_02_1 + 2.8125*z*psitilde_cs_02_1 - 0.546875*psitilde_cs_02_0;
 
516
    const double psitilde_cs_03_0 = 1;
 
517
    const double psitilde_cs_03_1 = 5*z + 4;
 
518
    const double psitilde_cs_04_0 = 1;
 
519
    const double psitilde_cs_10_0 = 1;
 
520
    const double psitilde_cs_10_1 = 3*z + 2;
 
521
    const double psitilde_cs_10_2 = 0.777777777777778*psitilde_cs_10_1 + 2.33333333333333*z*psitilde_cs_10_1 - 0.555555555555556*psitilde_cs_10_0;
 
522
    const double psitilde_cs_10_3 = 0.428571428571429*psitilde_cs_10_2 + 2.14285714285714*z*psitilde_cs_10_2 - 0.714285714285714*psitilde_cs_10_1;
 
523
    const double psitilde_cs_11_0 = 1;
 
524
    const double psitilde_cs_11_1 = 4*z + 3;
 
525
    const double psitilde_cs_11_2 = 1.265625*psitilde_cs_11_1 + 2.8125*z*psitilde_cs_11_1 - 0.546875*psitilde_cs_11_0;
 
526
    const double psitilde_cs_12_0 = 1;
 
527
    const double psitilde_cs_12_1 = 5*z + 4;
 
528
    const double psitilde_cs_13_0 = 1;
 
529
    const double psitilde_cs_20_0 = 1;
 
530
    const double psitilde_cs_20_1 = 4*z + 3;
 
531
    const double psitilde_cs_20_2 = 1.265625*psitilde_cs_20_1 + 2.8125*z*psitilde_cs_20_1 - 0.546875*psitilde_cs_20_0;
 
532
    const double psitilde_cs_21_0 = 1;
 
533
    const double psitilde_cs_21_1 = 5*z + 4;
 
534
    const double psitilde_cs_22_0 = 1;
 
535
    const double psitilde_cs_30_0 = 1;
 
536
    const double psitilde_cs_30_1 = 5*z + 4;
 
537
    const double psitilde_cs_31_0 = 1;
 
538
    const double psitilde_cs_40_0 = 1;
 
539
    
 
540
    // Compute basisvalues
 
541
    const double basisvalue0 = 0.866025403784439*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_0;
 
542
    const double basisvalue1 = 2.73861278752583*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_0;
 
543
    const double basisvalue2 = 1.58113883008419*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_0;
 
544
    const double basisvalue3 = 1.11803398874989*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_1;
 
545
    const double basisvalue4 = 5.1234753829798*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_0;
 
546
    const double basisvalue5 = 3.96862696659689*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_0;
 
547
    const double basisvalue6 = 2.29128784747792*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_0;
 
548
    const double basisvalue7 = 3.24037034920393*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_1;
 
549
    const double basisvalue8 = 1.87082869338697*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_1;
 
550
    const double basisvalue9 = 1.3228756555323*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_2;
 
551
    const double basisvalue10 = 7.93725393319377*psitilde_a_3*scalings_y_3*psitilde_bs_3_0*scalings_z_3*psitilde_cs_30_0;
 
552
    const double basisvalue11 = 6.70820393249937*psitilde_a_2*scalings_y_2*psitilde_bs_2_1*scalings_z_3*psitilde_cs_21_0;
 
553
    const double basisvalue12 = 5.19615242270663*psitilde_a_1*scalings_y_1*psitilde_bs_1_2*scalings_z_3*psitilde_cs_12_0;
 
554
    const double basisvalue13 = 3*psitilde_a_0*scalings_y_0*psitilde_bs_0_3*scalings_z_3*psitilde_cs_03_0;
 
555
    const double basisvalue14 = 5.80947501931113*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_1;
 
556
    const double basisvalue15 = 4.5*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_1;
 
557
    const double basisvalue16 = 2.59807621135332*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_1;
 
558
    const double basisvalue17 = 3.67423461417477*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_2;
 
559
    const double basisvalue18 = 2.12132034355964*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_2;
 
560
    const double basisvalue19 = 1.5*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_3;
 
561
    const double basisvalue20 = 11.1242977306435*psitilde_a_4*scalings_y_4*psitilde_bs_4_0*scalings_z_4*psitilde_cs_40_0;
 
562
    const double basisvalue21 = 9.81070843517429*psitilde_a_3*scalings_y_3*psitilde_bs_3_1*scalings_z_4*psitilde_cs_31_0;
 
563
    const double basisvalue22 = 8.2915619758885*psitilde_a_2*scalings_y_2*psitilde_bs_2_2*scalings_z_4*psitilde_cs_22_0;
 
564
    const double basisvalue23 = 6.42261628933256*psitilde_a_1*scalings_y_1*psitilde_bs_1_3*scalings_z_4*psitilde_cs_13_0;
 
565
    const double basisvalue24 = 3.70809924354783*psitilde_a_0*scalings_y_0*psitilde_bs_0_4*scalings_z_4*psitilde_cs_04_0;
 
566
    const double basisvalue25 = 8.77496438739212*psitilde_a_3*scalings_y_3*psitilde_bs_3_0*scalings_z_3*psitilde_cs_30_1;
 
567
    const double basisvalue26 = 7.41619848709566*psitilde_a_2*scalings_y_2*psitilde_bs_2_1*scalings_z_3*psitilde_cs_21_1;
 
568
    const double basisvalue27 = 5.74456264653803*psitilde_a_1*scalings_y_1*psitilde_bs_1_2*scalings_z_3*psitilde_cs_12_1;
 
569
    const double basisvalue28 = 3.3166247903554*psitilde_a_0*scalings_y_0*psitilde_bs_0_3*scalings_z_3*psitilde_cs_03_1;
 
570
    const double basisvalue29 = 6.42261628933256*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_2;
 
571
    const double basisvalue30 = 4.9749371855331*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_2;
 
572
    const double basisvalue31 = 2.87228132326901*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_2;
 
573
    const double basisvalue32 = 4.06201920231798*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_3;
 
574
    const double basisvalue33 = 2.34520787991171*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_3;
 
575
    const double basisvalue34 = 1.6583123951777*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_4;
 
576
    
 
577
    // Table(s) of coefficients
 
578
    const static double coefficients0[35][35] = \
 
579
    {{-0.0137464349807051, -0.0144900147488139, -0.00836581391578937, -0.00591552374999941, 0, 0, 0, 0, 0, 0, -0.00671936840905293, -0.00567890279999946, -0.00439885919382571, -0.00253968253968254, -0.00491807409042211, -0.00380952380952381, -0.00219942959691287, -0.00311046316543895, -0.0017958267458706, -0.00126984126984128, 0.0136980289516341, 0.0120805260192622, 0.010209907964538, 0.00790856070259325, 0.00456600965054471, 0.0108051509532101, 0.00913201930108942, 0.00707363173407281, 0.00408396318581522, 0.00790856070259324, 0.00612594477872282, 0.0035368158670364, 0.00500181296677924, 0.00288779806280616, 0.00204198159290761},
 
580
    {-0.0137464349807054, 0.0144900147488139, -0.00836581391578934, -0.00591552374999945, 0, 0, 0, 0, 0, 0, 0.00671936840905293, -0.00567890279999946, 0.00439885919382572, -0.00253968253968254, -0.00491807409042213, 0.00380952380952382, -0.00219942959691286, 0.00311046316543897, -0.0017958267458706, -0.00126984126984127, 0.0136980289516341, -0.0120805260192622, 0.010209907964538, -0.00790856070259325, 0.00456600965054471, -0.0108051509532101, 0.00913201930108941, -0.0070736317340728, 0.00408396318581521, 0.00790856070259325, -0.00612594477872282, 0.0035368158670364, -0.00500181296677924, 0.00288779806280615, 0.00204198159290761},
 
581
    {-0.0137464349807053, 0, 0.0167316278315787, -0.00591552374999946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0101587301587302, 0, 0, -0.00659828879073857, 0, 0.00359165349174119, -0.00126984126984127, 0, 0, 0, 0, 0.0228300482527235, 0, 0, 0, -0.0163358527432608, 0, 0, 0.0106104476011092, 0, -0.0057755961256123, 0.00204198159290761},
 
582
    {-0.0137464349807054, 0, 0, 0.0177465712499983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0126984126984127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0306297238936141},
 
583
    {0.0439885919382572, 0, 0.026770604530526, 0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, 0, 0.0406349206349206, 0, 0, 0.00439885919382572, 0, -0.0143666139669648, 0.00761904761904763, 0, 0, 0, 0, 0, 0, 0, 0, 0.0367556686723369, 0, 0, -0.0424417904044368, 0, 0.0303218796594646, -0.0122518895574456},
 
584
    {-0.0329914439536931, 0, -0.0200779533978945, -0.0141972569999986, 0, 0, -0.00969857289937744, 0, 0.0712696645099798, -0.050395263067897, 0, 0, 0, 0, 0, 0, 0.0461880215351701, 0, 0.0107749604752236, -0.0190476190476191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0495154221385096, 0, -0.0606437593189292, 0.0306297238936141},
 
585
    {0.0439885919382573, 0, 0.0267706045305259, 0.0189296759999982, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, 0, 0.0359165349174119, 0.0253968253968254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0505364660991076, -0.0408396318581522},
 
586
    {0.0439885919382573, 0.0231840235981023, -0.0133853022652629, 0.0189296759999982, 0.0433733365754904, -0.0335968420452647, 0.0193971457987549, -0.0274317066599275, 0.01583770322444, 0.0111989473484215, 0.0268774736362117, -0.0227156111999979, 0.0175954367753029, -0.0101587301587302, 0.00327871606028141, -0.00253968253968255, 0.0014662863979419, -0.0124418526617558, 0.00718330698348238, 0.00761904761904763, 0, 0, 0, 0, 0, 0.0243115896447228, -0.0205470434274512, 0.0159156714016638, -0.00918891716808423, -0.031634242810373, 0.0245037791148913, -0.0141472634681456, 0.026259518075591, -0.0151609398297323, -0.0122518895574456},
 
587
    {-0.0329914439536929, -0.0173880176985766, 0.0100389766989472, -0.0141972569999986, -0.00722888942924838, 0.00559947367421081, -0.00323285763312582, 0.0617213399848368, -0.03563483225499, -0.050395263067897, 0, 0, 0, 0, 0.0344265186329548, -0.0266666666666667, 0.01539600717839, 0.00933138949631686, -0.00538748023761177, -0.0190476190476191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0369066166121018, -0.0285877423007065, 0.0165051407128365, -0.052519036151182, 0.0303218796594646, 0.0306297238936141},
 
588
    {0.0439885919382573, 0.0231840235981023, -0.013385302265263, 0.0189296759999982, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, 0.0311046316543895, -0.017958267458706, 0.0253968253968255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0437658634593183, -0.0252682330495538, -0.0408396318581521},
 
589
    {0.0439885919382572, 0.0231840235981023, 0.013385302265263, -0.0189296759999982, 0.0433733365754903, -0.0335968420452647, 0.0193971457987549, -0.0274317066599275, 0.01583770322444, 0.0111989473484215, 0.0268774736362117, 0, -0.0117302911835353, 0.0101587301587302, -0.0229510124219699, 0.00761904761904761, -0.00146628639794191, 0.0165891368823411, -0.0071833069834824, -0.00761904761904763, 0, 0.0241610520385245, -0.0357346778758831, 0.0355885231616696, -0.0228300482527235, -0.00270128773830253, -0.0114150241263618, 0.0159156714016638, -0.0112308987609918, 0.00395428035129663, 0.00306297238936141, -0.0035368158670364, -0.00375135972508443, 0.00072194951570154, 0.00204198159290761},
 
590
    {-0.0329914439536929, -0.0173880176985768, -0.0100389766989472, 0.0141972569999986, -0.00722888942924839, 0.0615942104163185, -0.0614242950293904, -0.00685792666498187, -0.00395942580611001, 0.00559947367421077, 0, 0.0340734167999968, 0, -0.0152380952380952, -0.00491807409042213, -0.0266666666666667, 0.0175954367753029, 0.00933138949631688, 0.00538748023761179, -0.00761904761904761, 0, 0, 0.0357346778758831, -0.0593142052694494, 0.0456600965054471, 0, -0.00913201930108943, 0, 0.00408396318581521, 0.00131809345043221, 0.00714693557517662, -0.00471575448938186, -0.00250090648338962, -0.00144389903140307, 0.00204198159290761},
 
591
    {0.0439885919382572, 0.0231840235981022, 0.013385302265263, -0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, 0.0293257279588382, 0.0101587301587302, 0, -0.0101587301587302, -0.0219942959691286, 0.00207364211029264, 0.017958267458706, -0.00761904761904762, 0, 0, 0, 0.0395428035129662, -0.0456600965054471, 0, 0, -0.017684079335182, 0.0142938711503532, 0, 0.00612594477872282, 0, -0.00125045324169481, -0.00360974757850769, 0.0020419815929076},
 
592
    {0.043988591938257, -0.0231840235981023, -0.0133853022652629, 0.0189296759999983, 0.0433733365754903, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484216, -0.0268774736362117, -0.0227156111999979, -0.0175954367753029, -0.0101587301587302, 0.00327871606028139, 0.00253968253968253, 0.0014662863979419, 0.0124418526617558, 0.00718330698348236, 0.00761904761904761, 0, 0, 0, 0, 0, -0.0243115896447228, -0.0205470434274512, -0.0159156714016638, -0.00918891716808424, -0.031634242810373, -0.0245037791148913, -0.0141472634681456, -0.026259518075591, -0.0151609398297323, -0.0122518895574456},
 
593
    {-0.0329914439536929, 0.0173880176985768, 0.0100389766989471, -0.0141972569999987, -0.00722888942924838, -0.00559947367421082, -0.00323285763312581, -0.0617213399848367, -0.03563483225499, -0.050395263067897, 0, 0, 0, 0, 0.0344265186329548, 0.0266666666666667, 0.01539600717839, -0.00933138949631689, -0.00538748023761178, -0.019047619047619, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0369066166121018, 0.0285877423007065, 0.0165051407128365, 0.0525190361511819, 0.0303218796594646, 0.0306297238936141},
 
594
    {0.0439885919382572, -0.0231840235981023, -0.0133853022652629, 0.0189296759999981, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, -0.0311046316543896, -0.017958267458706, 0.0253968253968255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0437658634593183, -0.0252682330495538, -0.0408396318581521},
 
595
    {0.0439885919382572, -0.0231840235981023, 0.013385302265263, -0.0189296759999982, 0.0433733365754904, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484216, -0.0268774736362117, 0, 0.0117302911835352, 0.0101587301587302, -0.0229510124219699, -0.00761904761904762, -0.00146628639794191, -0.0165891368823411, -0.00718330698348239, -0.00761904761904763, 0, -0.0241610520385245, -0.0357346778758831, -0.0355885231616696, -0.0228300482527235, 0.00270128773830254, -0.0114150241263618, -0.0159156714016638, -0.0112308987609918, 0.00395428035129662, -0.00306297238936141, -0.0035368158670364, 0.00375135972508443, 0.000721949515701533, 0.00204198159290761},
 
596
    {-0.0329914439536929, 0.0173880176985766, -0.0100389766989472, 0.0141972569999987, -0.00722888942924841, -0.0615942104163186, -0.0614242950293904, 0.00685792666498186, -0.00395942580610998, 0.00559947367421075, 0, 0.0340734167999968, 0, -0.0152380952380952, -0.00491807409042213, 0.0266666666666667, 0.0175954367753029, -0.00933138949631688, 0.00538748023761179, -0.00761904761904763, 0, 0, 0.0357346778758831, 0.0593142052694494, 0.0456600965054471, 0, -0.00913201930108943, 0, 0.0040839631858152, 0.00131809345043222, -0.00714693557517663, -0.00471575448938187, 0.00250090648338962, -0.00144389903140308, 0.00204198159290761},
 
597
    {0.0439885919382573, -0.0231840235981022, 0.013385302265263, -0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, -0.0293257279588382, 0.0101587301587302, 0, 0.0101587301587301, -0.0219942959691286, -0.00207364211029265, 0.017958267458706, -0.00761904761904761, 0, 0, 0, -0.0395428035129663, -0.0456600965054471, 0, 0, 0.017684079335182, 0.0142938711503532, 0, -0.00612594477872281, 0, 0.00125045324169481, -0.00360974757850769, 0.0020419815929076},
 
598
    {0.0439885919382571, 0, -0.026770604530526, -0.0189296759999982, 0.0433733365754904, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484215, 0.0134387368181058, -0.0113578055999989, -0.0205280095711867, -0.0152380952380952, -0.00983614818084424, -0.0177777777777778, -0.0131965775814772, -0.0145154947720485, -0.0107749604752236, -0.00761904761904761, -0.0547921158065365, -0.0241610520385245, -0.00510495398226901, 0.00395428035129663, 0.00456600965054471, -0.0216103019064202, -0.00456600965054471, 0.00353681586703639, 0.00408396318581521, -0.00395428035129661, 0.0030629723893614, 0.0035368158670364, 0.00250090648338961, 0.00288779806280615, 0.00204198159290761},
 
599
    {-0.0329914439536931, 0, 0.0200779533978945, 0.0141972569999987, -0.0867466731509807, 0, 0.00969857289937743, 0, 0.00791885161221998, 0.00559947367421076, 0, 0.0340734167999968, 0, -0.0152380952380953, 0.0295084445425327, 0, -0.0131965775814772, 0, -0.0107749604752236, -0.00761904761904762, 0.0821881737098047, 0, -0.010209907964538, 0, 0.00456600965054471, 0, -0.00913201930108944, 0, 0.00408396318581521, -0.00790856070259326, 0, 0.0035368158670364, 0, 0.00288779806280615, 0.00204198159290761},
 
600
    {0.0439885919382573, 0, -0.026770604530526, -0.0189296759999982, 0.0433733365754903, -0.0335968420452646, 0.0193971457987549, -0.0274317066599274, 0.01583770322444, 0.0111989473484215, -0.0134387368181058, -0.0113578055999989, 0.0205280095711867, -0.0152380952380952, -0.00983614818084423, 0.0177777777777778, -0.0131965775814772, 0.0145154947720485, -0.0107749604752236, -0.00761904761904761, -0.0547921158065365, 0.0241610520385245, -0.005104953982269, -0.00395428035129662, 0.00456600965054471, 0.0216103019064202, -0.0045660096505447, -0.0035368158670364, 0.00408396318581521, -0.00395428035129662, -0.00306297238936141, 0.00353681586703641, -0.00250090648338962, 0.00288779806280615, 0.00204198159290761},
 
601
    {0.0439885919382573, 0.139104141588614, -0.080311813591578, -0.0567890279999947, 0.0578311154339872, 0.0335968420452646, -0.0420271492306356, 0.0274317066599275, -0.0475131096733199, -0.0167984210226323, 0, 0.0454312223999957, -0.0586514559176763, 0.0406349206349207, 0.039344592723377, 0.00253968253968254, -0.0109971479845643, -0.0601356211984865, 0.017958267458706, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0.0410940868549024, -0.053052238005546, 0.0367556686723369, -0.0105447476034577, -0.0245037791148913, 0.0235787724469093, 0.0175063453837273, 0, -0.0122518895574457},
 
602
    {0.0439885919382572, 0, 0.160623627183156, -0.0567890279999947, 0, 0.0783926314389509, 0.0096985728993774, -0.0274317066599275, 0.0475131096733199, -0.0167984210226323, 0, 0, 0.0586514559176763, -0.0609523809523809, 0, 0.033015873015873, 0.0241937255660415, -0.0145154947720485, -0.0610581093596003, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0, 0.053052238005546, -0.0551335030085053, 0, -0.0326717054865217, 0.0141472634681456, 0.00875317269186366, 0.0151609398297323, -0.0122518895574456},
 
603
    {0.0439885919382571, 0, 0, 0.170367083999984, 0, -0.0111989473484216, 0.00969857289937744, 0.0822951199797824, 0.0475131096733199, -0.0167984210226324, 0, 0, 0, 0, 0, 0.0533333333333333, -0.0461880215351701, 0.0435464843161454, 0.0251415744421883, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.057175484601413, -0.0495154221385096, -0.026259518075591, -0.0151609398297323, 0.0306297238936141},
 
604
    {0.0439885919382571, -0.139104141588614, -0.0803118135915779, -0.0567890279999947, 0.0578311154339871, -0.0335968420452646, -0.0420271492306356, -0.0274317066599274, -0.0475131096733199, -0.0167984210226323, 0, 0.0454312223999957, 0.0586514559176763, 0.0406349206349206, 0.0393445927233769, -0.00253968253968253, -0.0109971479845643, 0.0601356211984865, 0.0179582674587059, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0.0410940868549024, 0.053052238005546, 0.0367556686723369, -0.0105447476034577, 0.0245037791148913, 0.0235787724469093, -0.0175063453837273, 0, -0.0122518895574457},
 
605
    {0.0439885919382571, 0, 0.160623627183156, -0.0567890279999946, 0, -0.0783926314389509, 0.00969857289937745, 0.0274317066599275, 0.0475131096733199, -0.0167984210226323, 0, 0, -0.0586514559176763, -0.0609523809523809, 0, -0.033015873015873, 0.0241937255660415, 0.0145154947720485, -0.0610581093596003, 0.0393650793650793, 0, 0, 0, 0, 0, 0, 0, -0.053052238005546, -0.0551335030085053, 0, 0.0326717054865217, 0.0141472634681456, -0.00875317269186368, 0.0151609398297323, -0.0122518895574456},
 
606
    {0.0439885919382572, 0, 0, 0.170367083999984, 0, 0.0111989473484215, 0.00969857289937745, -0.0822951199797824, 0.0475131096733199, -0.0167984210226323, 0, 0, 0, 0, 0, -0.0533333333333333, -0.0461880215351701, -0.0435464843161453, 0.0251415744421883, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0571754846014129, -0.0495154221385096, 0.026259518075591, -0.0151609398297323, 0.0306297238936141},
 
607
    {0.0439885919382573, -0.139104141588614, -0.0803118135915779, -0.0567890279999946, -0.0433733365754903, 0.0447957893936862, 0.0484928644968872, -0.0548634133198549, 0, -0.0167984210226323, 0.0806324209086351, 0.0227156111999979, -0.0058651455917676, -0.0101587301587302, -0.00327871606028142, 0.0304761904761905, 0.0271262983619253, 0.045620126426438, 0.0430998419008943, 0.0393650793650794, 0, 0, 0, 0, 0, 0.0729347689341683, 0.0205470434274512, -0.00530522380055458, -0.00918891716808423, 0.031634242810373, -0.00816792637163039, -0.0141472634681456, -0.00875317269186365, -0.0151609398297323, -0.0122518895574456},
 
608
    {0.0439885919382571, 0.139104141588614, -0.0803118135915779, -0.0567890279999947, -0.0433733365754904, -0.0447957893936862, 0.0484928644968873, 0.0548634133198549, 0, -0.0167984210226323, -0.0806324209086351, 0.0227156111999979, 0.0058651455917676, -0.0101587301587302, -0.00327871606028142, -0.0304761904761905, 0.0271262983619253, -0.045620126426438, 0.0430998419008943, 0.0393650793650794, 0, 0, 0, 0, 0, -0.0729347689341683, 0.0205470434274512, 0.00530522380055459, -0.00918891716808424, 0.031634242810373, 0.00816792637163042, -0.0141472634681456, 0.00875317269186367, -0.0151609398297323, -0.0122518895574456},
 
609
    {0.0439885919382572, 0, 0, 0.170367083999984, 0.0144577788584968, 0, -0.00323285763312585, 0, -0.0950262193466398, -0.0167984210226323, 0, 0, 0, 0, -0.0688530372659096, 0, 0.01539600717839, 0, -0.0502831488843767, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0738132332242036, 0, 0.0165051407128365, 0, 0.0303218796594646, 0.0306297238936141},
 
610
    {0.0439885919382573, -0.139104141588614, -0.0803118135915779, -0.0567890279999947, -0.0433733365754903, -0.0447957893936862, -0.00969857289937743, 0.0548634133198549, 0.03167540644888, 0.0391963157194754, 0.0806324209086351, 0, 0.0527863103259086, 0.0609523809523809, 0.0229510124219699, 0.0101587301587302, 0.0168622935763319, -0.0124418526617558, -0.00718330698348239, -0.013968253968254, 0, 0.0724831561155734, 0.0357346778758831, -0.0118628410538899, -0.0228300482527235, -0.00810386321490759, 0.0114150241263618, -0.00530522380055459, -0.0112308987609918, -0.00395428035129662, -0.00102099079645379, -0.0035368158670364, 0.00125045324169481, 0.000721949515701537, 0.00204198159290762},
 
611
    {0.0439885919382571, 0.139104141588614, -0.080311813591578, -0.0567890279999947, -0.0433733365754904, 0.0447957893936862, -0.00969857289937742, -0.0548634133198549, 0.0316754064488799, 0.0391963157194754, -0.0806324209086351, 0, -0.0527863103259086, 0.060952380952381, 0.0229510124219699, -0.0101587301587302, 0.0168622935763319, 0.0124418526617558, -0.00718330698348236, -0.013968253968254, 0, -0.0724831561155734, 0.0357346778758831, 0.0118628410538899, -0.0228300482527236, 0.00810386321490761, 0.0114150241263618, 0.00530522380055459, -0.0112308987609918, -0.00395428035129662, 0.00102099079645379, -0.0035368158670364, -0.0012504532416948, 0.000721949515701528, 0.0020419815929076},
 
612
    {0.0439885919382572, 0, 0.160623627183156, -0.0567890279999947, 0.0144577788584968, 0, -0.0614242950293905, 0, -0.0633508128977598, 0.0391963157194754, 0, -0.0681468335999936, 0, -0.0914285714285715, 0.00983614818084423, 0, 0.0285925847598672, 0, 0.0143666139669647, -0.0139682539682539, 0, 0, -0.0714693557517662, 0, 0.0456600965054471, 0, 0.0182640386021788, 0, 0.0040839631858152, -0.00263618690086443, 0, -0.00471575448938186, 0, -0.00144389903140306, 0.00204198159290759},
 
613
    {0.351908735506058, 0, 0, 0, -0.115662230867974, 0, -0.129314305325032, 0, 0, -0.134387368181059, 0, -0.0908624447999914, 0, 0.0406349206349206, -0.0786891854467539, 0, -0.0879771838765144, 0, 0, 0.0711111111111111, 0, 0, 0, 0, 0, 0, -0.0821881737098047, 0, 0.0367556686723369, 0.0210894952069153, 0, 0.0235787724469093, 0, 0, -0.0122518895574456}};
 
614
    
 
615
    // Interesting (new) part
 
616
    // Tables of derivatives of the polynomial base (transpose)
 
617
    const static double dmats0[35][35] = \
 
618
    {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
619
    {6.32455532033677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
620
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
621
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
622
    {0, 11.2249721603218, 0, 0, 0, 1.70793006049707e-14, 0, 0, 1.16063842564573e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
623
    {4.58257569495585, 0, 8.36660026534076, -1.18321595661992, 0, 0, 1.04642314135461e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
624
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
625
    {3.74165738677394, 0, 0, 8.69482604771366, 0, 0, 0, -1.66625972279159e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
626
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
627
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
628
    {5.49909083394701, 0, -3.34664010613631, -2.36643191323985, 15.4919333848297, 0, 0.692820323027549, 0, 0.56568542494924, 0.400000000000009, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
629
    {0, 4.89897948556635, 0, 0, 0, 14.1985914794391, 0, -0.828078671210828, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
630
    {3.60000000000001, 0, 8.76356092008266, -1.54919333848296, 0, 0, 9.52470471983254, 0, -1.48131215963609, 0.261861468283193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
631
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
632
    {0, 4.24264068711929, 0, 0, 0, 0, 0, 14.3427433120127, 2.84156378982381e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
633
    {3.11769145362398, 0, 3.16227766016838, 4.91934955049954, 0, 0, 0, -1.2538531175753e-14, 10.690449676497, -2.41897262725905, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
634
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
635
    {2.54558441227157, 0, 0, 7.66811580507232, 0, 0, 0, 0, 0, 10.3691851174526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
636
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
637
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
638
    {0, 11.6057691494799, 0, 0, 0, -4.20458932936041, 0, -3.43303281162798, 0, 0, 19.6214168703486, 0, 0.611677741841197, 0, 0, 0.529728463363978, 0, 0.432521479156785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
639
    {4.53137212479103, 0, 3.54562104171167, -2.50713268211203, 4.78713553878169, 0, -5.56626745075493, 0, -1.04880884817015, 0.741619848709563, 0, 18.8034951158403, 0, 1.68183573174416, -0.603122387046455, 0, 0.701283781217662, 0, 0.132137494528683, -0.0934353184302337, 0, 0, 0, 0, -2.04851899834062e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
640
    {1.12802291379194e-14, 2.59512887494071, 0, 0, 0, 10.0285307284481, 1.48509074345102e-14, -0.767649473578742, 0, 0, 0, 0, 16.4130361329658, 0, 0, -1.26347611061158, 0, 0.0967147429123335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
641
    {2.96647939483827, 0, 8.12403840463597, -1.64130361329658, 0, 0, 11.7728501222091, 0, -2.40312296813959, 0.485504156227609, 0, 0, 0, 10.2761860629321, 0, 0, -1.48323969741914, 0, 0.30276503540975, -0.0611677741841184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
642
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
643
    {4.05298244095217, 0, -1.58564993434419, 4.4848952846511, 4.28174419288837, 0, 0.191485421551264, 0, -3.75233260785875, -4.31161222746203, 0, 0, 0, 0, 18.8807171866294, 0, 0.844371341865038, 0, 1.18187368057056, 1.04463861754668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
644
    {0, 2.32115382989598, 0, 0, 0, 3.92428337406973, 0, 5.49285249860476, 1.21484853427001e-14, 0, 0, 0, 0, 0, 0, 17.3044631365565, 0, -1.73008591662714, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
645
    {2.65329983228433, 0, 4.15220619990513, 2.93605316083776, 0, 0, 2.63248931621764, 0, 9.82591326180785, -2.8226127713774, 0, 0, 0, 0, 0, 0, 11.6081867662439, 0, -3.09487177319466, 0.683876505540249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
646
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
647
    {0, 2.01017818278148, 0, 0, 0, 0, 0, 8.91928088068602, 1.76356325376492e-14, 0, 0, 0, 0, 0, 0, 0, 0, 16.8558564884489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
648
    {2.29782505861521, 0, 1.49829835452879, 5.50917601898535, 0, 0, 0, 0, 6.64803945320938, 4.13676892548485, 0, 0, 0, 0, 0, 0, 0, 0, 12.5636136423842, -3.55352656109507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
649
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
650
    {1.87616630392938, 0, 0, 6.2283092998577, 0, 0, 0, 0, 0, 11.0541524195338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11.6057691494799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
651
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
652
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
 
653
    
 
654
    const static double dmats1[35][35] = \
 
655
    {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
656
    {3.16227766016838, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
657
    {5.47722557505166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
658
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
659
    {2.95803989154981, 5.61248608016091, -1.08012344973464, -0.763762615825977, 0, 1.12766252988532e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
660
    {2.29128784747793, 7.24568837309472, 4.18330013267038, -0.591607978309962, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
661
    {-2.64575131106459, 0, 9.66091783079296, 0.683130051063976, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
662
    {1.87082869338697, 0, 0, 4.34741302385683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
663
    {3.24037034920392, 0, 0, 7.52994023880667, 0, 0, 0, -1.40420976242894e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
664
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
665
    {2.74954541697351, 5.79655069847578, -1.67332005306815, -1.18321595661993, 7.74596669241484, -1.2, 0.346410161513776, -0.979795897113278, 0.282842712474625, 0.200000000000005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
666
    {2.32379000772444, 2.44948974278317, 2.82842712474619, -0.999999999999997, 9.16515138991168, 7.09929573971955, -2.04939015319192, -0.414039335605417, -0.478091443733761, 0.169030850945703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
667
    {1.80000000000001, -5.69209978830309, 4.38178046004133, -0.77459666924148, 0, 10.998181667894, 4.76235235991628, 0.962140470884725, -0.740656079818049, 0.130930734141596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
668
    {5.19615242270664, 0, -3.16227766016837, -2.23606797749979, 0, 0, 13.7477270848675, 0, 0.534522483824846, 0.377964473009225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
669
    {2.01246117974981, 2.12132034355964, -0.408248290463859, 3.17542648054293, 0, 0, 0, 7.17137165600634, -1.3801311186847, -1.56144011671765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
670
    {1.55884572681199, 2.73861278752583, 1.5811388300842, 2.45967477524977, 0, 0, 0, 9.2582009977255, 5.3452248382485, -1.20948631362952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
671
    {-1.79999999999999, 0, 3.65148371670111, -2.84018778721876, 0, 0, 0, 0, 12.3442679969673, 1.39659449751036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
672
    {1.27279220613578, 0, 0, 3.83405790253616, 0, 0, 0, 0, 0, 5.18459255872629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
673
    {2.20454076850485, 0, 0, 6.64078308635359, 0, 0, 0, 0, 0, 8.97997772825746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
674
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
675
    {2.56904651573303, 5.80288457473998, -2.01017818278148, -1.42141062443803, 8.14215222512715, -2.10229466468021, 0.728256234341421, -1.71651640581399, 0.594618725379067, 0.420458932936047, 9.81070843517429, -1.18450885369836, 0.3058388709206, -0.105945692672795, -1.02581475831036, 0.264864231681991, -0.0917516612761804, 0.216260739578394, -0.0749149177264392, -0.0529728463363962, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
676
    {2.26568606239552, 3.07059789431495, 1.77281052085584, -1.25356634105601, 2.39356776939085, 6.30376871403133, -2.78313372537746, -0.908295106229249, -0.524404424085077, 0.370809924354783, 11.1242977306435, 9.40174755792013, -2.42752078113806, 0.840917865872083, -0.301561193523227, -0.794200206656967, 0.350641890608831, 0.114434427054266, 0.0660687472643429, -0.0467176592151151, 0, 0, 0, 1.18413955033316e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
677
    {1.91485421551268, 1.29756443747035, 3.74574588632197, -1.05945692672795, -8.09173593712687, 5.01426536422407, 1.80936716113936, -0.383824736789366, -1.1080065755349, 0.313391585264, 0, 12.7134831207354, 8.2065180664829, -2.84282124887606, 1.01946290306866, -0.631738055305791, -0.227958835180081, 0.0483573714561658, 0.139595707137601, -0.0394836284566112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
678
    {1.48323969741914, 7.03562363973515, 4.06201920231798, -0.820651806648292, 0, -6.79705818718658, 5.88642506110457, -2.08116553882674, -1.2015614840698, 0.242752078113806, 0, 0, 14.8323969741913, 5.13809303146605, 0, 0.856348838577678, -0.741619848709567, 0.262202212042541, 0.151382517704874, -0.0305838870920586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
679
    {-3.42539535431071, 0, 9.38083151964686, 1.89521416591737, 0, 1.48502651407619e-14, -3.39852909359332, 0, -2.77488738510233, -0.560611910581396, 0, 0, 0, 17.7988763690296, 0, 0, 0.42817441928884, 0, 0.349602949390053, 0.0706304617818605, 0, 0, 0, 0, -1.76908227133537e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
680
    {2.02649122047609, 2.74642624930238, -0.792824967172093, 2.24244764232555, 2.14087209644419, -0.331662479035538, 0.095742710775634, 6.49923072370876, -1.87616630392936, -2.15580611373101, 0, 0, 0, 0, 9.44035859331469, -1.46249406456536, 0.42218567093252, -2.04706526287664, 0.59093684028528, 0.522319308773337, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
681
    {1.71269767715535, 1.16057691494799, 1.34011878852098, 1.89521416591738, 2.53311402559511, 1.96214168703486, -0.566421515598881, 2.74642624930237, 3.17129986868837, -1.82198870938951, 0, 0, 0, 0, 11.1699829238239, 8.65223156827827, -2.49768411251822, -0.865042958313569, -0.998865569685858, 0.441440386136648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
682
    {1.32664991614216, -2.69693703815182, 2.07610309995257, 1.46802658041888, 0, 3.03973683071413, 1.31624465810882, -6.382117875081, 4.91295663090391, -1.4113063856887, 0, 0, 0, 0, 0, 13.4039795085887, 5.80409338312195, 2.01017818278147, -1.54743588659732, 0.341938252770131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
683
    {3.82970843102535, 0, -1.49829835452879, 4.23782770691181, 0, 0, 3.79967103839267, 0, -3.54562104171168, -4.07409060843206, 0, 0, 0, 0, 0, 0, 16.7549743857359, 0, 1.11676565710082, 0.987090711415304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
684
    {1.48323969741913, 1.00508909139074, -0.193429485824663, 3.55615782880925, 0, 0, 0, 4.459640440343, -0.858258202906983, 2.67027285925187, 0, 0, 0, 0, 0, 0, 0, 8.42792824422443, -1.62195554683794, -2.29379153190448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
685
    {1.14891252930761, 1.29756443747036, 0.749149177264399, 2.75458800949267, 0, 0, 0, 5.75737105184053, 3.3240197266047, 2.06838446274242, 0, 0, 0, 0, 0, 0, 0, 10.8804085776374, 6.2818068211921, -1.77676328054753, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.02006749648391e-14, 0, 0},
 
686
    {-1.32664991614216, 0, 1.73008591662714, -3.18072425757422, 0, 0, 0, 1.15266449376351e-14, 7.67649473578738, -2.38836465270397, 0, 0, 0, 0, 0, 0, 0, 0, 14.5072114368499, 2.05162951662072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
687
    {0.938083151964688, 0, 0, 3.11415464992885, 0, 0, 0, 0, 0, 5.52707620976692, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.80288457473997, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
688
    {1.6248076809272, 0, 0, 5.39387407630363, 0, 0, 0, 0, 0, 9.57317681262152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10.0508909139073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
689
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
 
690
    
 
691
    const static double dmats2[35][35] = \
 
692
    {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
693
    {3.16227766016838, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
694
    {1.82574185835056, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
695
    {5.16397779494323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
696
    {2.95803989154981, 5.61248608016091, -1.08012344973464, -0.763762615825976, 0, 1.39411605579536e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
697
    {2.29128784747792, 1.44913767461894, 4.18330013267038, -0.591607978309961, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
698
    {1.3228756555323, 0, 3.86436713231718, -0.341565025531985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
699
    {1.87082869338697, 7.09929573971954, 0, 4.34741302385683, 0, 1.2137796469483e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
700
    {1.08012344973464, 0, 7.09929573971954, 2.50998007960223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
701
    {-3.81881307912987, 0, 0, 8.87411967464942, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
702
    {2.74954541697351, 5.79655069847578, -1.67332005306815, -1.18321595661993, 7.74596669241484, -1.19999999999999, 0.346410161513777, -0.97979589711328, 0.282842712474624, 0.200000000000005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
703
    {2.32379000772445, 2.44948974278317, 2.82842712474619, -0.999999999999998, 1.30930734141596, 7.09929573971955, -2.04939015319192, -0.414039335605417, -0.478091443733761, 0.169030850945707, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
704
    {1.80000000000001, 0.632455532033672, 4.38178046004133, -0.774596669241482, 0, 3.14233761939829, 4.76235235991627, -0.106904496764972, -0.740656079818045, 0.130930734141597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
705
    {1.03923048454133, 0, 3.16227766016838, -0.447213595499956, 0, 0, 5.8918830363718, 0, -0.534522483824849, 0.0755928946018436, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
706
    {2.0124611797498, 2.12132034355964, -0.408248290463861, 3.17542648054293, 9.07114735222144, 0, 0, 7.17137165600635, -1.3801311186847, -1.56144011671765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
707
    {1.558845726812, 0.547722557505166, 1.5811388300842, 2.45967477524977, 0, 9.07114735222146, 0, 1.85164019954509, 5.34522483824849, -1.20948631362952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
708
    {0.900000000000005, 0, 1.46059348668045, 1.42009389360939, 0, 0, 9.07114735222146, 0, 4.93770719878694, -0.698297248755174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
709
    {1.27279220613578, -6.26099033699941, 0, 3.83405790253616, 0, -1.33471233241901e-14, 0, 10.5830052442584, 1.61529151756054e-14, 5.18459255872629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
710
    {0.734846922834955, 0, -6.26099033699941, 2.21359436211787, 0, 0, 0, 0, 10.5830052442584, 2.99332590941916, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
711
    {5.7157676649773, 0, 0, -4.69574275274955, 0, 0, 0, 0, 0, 12.69960629311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
712
    {2.56904651573303, 5.80288457473998, -2.01017818278148, -1.42141062443803, 8.14215222512715, -2.10229466468021, 0.72825623434142, -1.71651640581399, 0.594618725379067, 0.420458932936046, 9.81070843517429, -1.18450885369836, 0.305838870920599, -0.105945692672794, -1.02581475831036, 0.264864231681991, -0.0917516612761805, 0.216260739578394, -0.0749149177264392, -0.052972846336396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
713
    {2.26568606239552, 3.07059789431495, 1.77281052085584, -1.25356634105602, 2.39356776939084, 6.30376871403133, -2.78313372537746, -0.908295106229248, -0.524404424085073, 0.370809924354783, 1.23603308118261, 9.40174755792013, -2.42752078113806, 0.840917865872083, -0.301561193523226, -0.794200206656968, 0.350641890608831, 0.114434427054266, 0.0660687472643423, -0.0467176592151165, 0, 0, 0, 1.09746923696279e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
714
    {1.91485421551268, 1.29756443747035, 3.74574588632197, -1.05945692672795, 0.404586796856347, 5.01426536422407, 1.80936716113937, -0.383824736789372, -1.1080065755349, 0.313391585264004, 0, 2.82521847127454, 8.2065180664829, -2.84282124887606, -0.0509731451534344, -0.631738055305788, -0.227958835180082, 0.0483573714561684, 0.139595707137601, -0.039483628456609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
715
    {1.48323969741914, 0.335029697130247, 4.06201920231798, -0.820651806648289, 0, 1.69926454679664, 5.88642506110457, -0.099103120896514, -1.2015614840698, 0.242752078113805, 0, 0, 4.94413232473044, 5.13809303146605, 0, -0.214087209644418, -0.741619848709568, 0.0124858196210747, 0.151382517704876, -0.0305838870920584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
716
    {0.856348838577678, 0, 2.68023757704196, -0.473803541479345, 0, 0, 5.09779364038992, 0, -0.792824967172097, 0.140152977645345, 0, 0, 0, 7.91061171956871, 0, 0, -0.642261628933257, 0, 0.0998865569685871, -0.0176576154454654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
717
    {2.02649122047609, 2.74642624930238, -0.792824967172095, 2.24244764232555, 2.14087209644419, -0.331662479035546, 0.0957427107756332, 6.49923072370876, -1.87616630392937, -2.15580611373101, 11.0554159678513, 0, 0, 0, 9.44035859331468, -1.46249406456535, 0.42218567093252, -2.04706526287664, 0.59093684028528, 0.522319308773341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
718
    {1.71269767715534, 1.16057691494799, 1.34011878852098, 1.89521416591737, 0.36187343222787, 1.96214168703486, -0.566421515598891, 2.74642624930238, 3.17129986868838, -1.82198870938951, 0, 11.0554159678513, 0, 0, 1.59571184626056, 8.65223156827827, -2.49768411251822, -0.865042958313572, -0.998865569685858, 0.441440386136647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
719
    {1.32664991614217, 0.299659670905757, 2.07610309995256, 1.46802658041888, 0, 0.868496237346881, 1.31624465810882, 0.709124208342336, 4.91295663090392, -1.4113063856887, 0, 0, 11.0554159678513, 0, 0, 3.82970843102535, 5.80409338312195, -0.223353131420161, -1.54743588659733, 0.341938252770126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
720
    {0.765941686205071, 0, 1.49829835452879, 0.847565541382364, 0, 0, 1.62843044502542, 0, 3.54562104171167, -0.814818121686411, 0, 0, 0, 11.0554159678513, 0, 0, 7.18070330817254, 0, -1.11676565710082, 0.197418142283063, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
721
    {1.48323969741914, 1.00508909139074, -0.193429485824663, 3.55615782880926, -8.46157280212812, 0, 0, 4.45964044034301, -0.858258202906987, 2.67027285925186, 0, 0, 0, 0, 12.4373429638327, 0, 0, 8.42792824422443, -1.62195554683794, -2.29379153190448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
722
    {1.1489125293076, 0.259512887494073, 0.749149177264395, 2.75458800949267, 0, -8.46157280212812, 0, 1.15147421036811, 3.32401972660469, 2.06838446274243, 0, 0, 0, 0, 0, 12.4373429638327, 0, 2.17608171552749, 6.2818068211921, -1.77676328054754, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
723
    {0.663324958071074, 0, 0.692034366650849, 1.59036212878711, 0, 0, -8.46157280212813, 0, 3.07059789431495, 1.19418232635198, 0, 0, 0, 0, 0, 0, 12.4373429638327, 0, 5.80288457473997, -1.02581475831036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
724
    {0.938083151964688, 7.62808987244126, 0, 3.11415464992885, 0, 0, 0, -7.5213980463361, 0, 5.52707620976691, 0, 0, 0, 0, 0, 0, 0, 14.2141062443803, 0, 5.80288457473998, 0, 0, 0, 0, 0, 1.03455020940032e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
725
    {0.541602560309059, 0, 7.62808987244125, 1.79795802543454, 0, 0, 0, 0, -7.52139804633611, 3.1910589375405, 0, 0, 0, 0, 0, 0, 0, 0, 14.2141062443803, 3.35029697130244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
726
    {-5.36159180343549, 0, 0, 8.8994381845148, 0, 0, 0, 0, -1.07784467308941e-14, -5.26497863243527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.583123951777, 0, 0, 0, 0, 0, 1.2461107758246e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
 
727
    
 
728
    // Compute reference derivatives
 
729
    // Declare pointer to array of derivatives on FIAT element
 
730
    double *derivatives = new double [num_derivatives];
 
731
    
 
732
    // Declare coefficients
 
733
    double coeff0_0 = 0;
 
734
    double coeff0_1 = 0;
 
735
    double coeff0_2 = 0;
 
736
    double coeff0_3 = 0;
 
737
    double coeff0_4 = 0;
 
738
    double coeff0_5 = 0;
 
739
    double coeff0_6 = 0;
 
740
    double coeff0_7 = 0;
 
741
    double coeff0_8 = 0;
 
742
    double coeff0_9 = 0;
 
743
    double coeff0_10 = 0;
 
744
    double coeff0_11 = 0;
 
745
    double coeff0_12 = 0;
 
746
    double coeff0_13 = 0;
 
747
    double coeff0_14 = 0;
 
748
    double coeff0_15 = 0;
 
749
    double coeff0_16 = 0;
 
750
    double coeff0_17 = 0;
 
751
    double coeff0_18 = 0;
 
752
    double coeff0_19 = 0;
 
753
    double coeff0_20 = 0;
 
754
    double coeff0_21 = 0;
 
755
    double coeff0_22 = 0;
 
756
    double coeff0_23 = 0;
 
757
    double coeff0_24 = 0;
 
758
    double coeff0_25 = 0;
 
759
    double coeff0_26 = 0;
 
760
    double coeff0_27 = 0;
 
761
    double coeff0_28 = 0;
 
762
    double coeff0_29 = 0;
 
763
    double coeff0_30 = 0;
 
764
    double coeff0_31 = 0;
 
765
    double coeff0_32 = 0;
 
766
    double coeff0_33 = 0;
 
767
    double coeff0_34 = 0;
 
768
    
 
769
    // Declare new coefficients
 
770
    double new_coeff0_0 = 0;
 
771
    double new_coeff0_1 = 0;
 
772
    double new_coeff0_2 = 0;
 
773
    double new_coeff0_3 = 0;
 
774
    double new_coeff0_4 = 0;
 
775
    double new_coeff0_5 = 0;
 
776
    double new_coeff0_6 = 0;
 
777
    double new_coeff0_7 = 0;
 
778
    double new_coeff0_8 = 0;
 
779
    double new_coeff0_9 = 0;
 
780
    double new_coeff0_10 = 0;
 
781
    double new_coeff0_11 = 0;
 
782
    double new_coeff0_12 = 0;
 
783
    double new_coeff0_13 = 0;
 
784
    double new_coeff0_14 = 0;
 
785
    double new_coeff0_15 = 0;
 
786
    double new_coeff0_16 = 0;
 
787
    double new_coeff0_17 = 0;
 
788
    double new_coeff0_18 = 0;
 
789
    double new_coeff0_19 = 0;
 
790
    double new_coeff0_20 = 0;
 
791
    double new_coeff0_21 = 0;
 
792
    double new_coeff0_22 = 0;
 
793
    double new_coeff0_23 = 0;
 
794
    double new_coeff0_24 = 0;
 
795
    double new_coeff0_25 = 0;
 
796
    double new_coeff0_26 = 0;
 
797
    double new_coeff0_27 = 0;
 
798
    double new_coeff0_28 = 0;
 
799
    double new_coeff0_29 = 0;
 
800
    double new_coeff0_30 = 0;
 
801
    double new_coeff0_31 = 0;
 
802
    double new_coeff0_32 = 0;
 
803
    double new_coeff0_33 = 0;
 
804
    double new_coeff0_34 = 0;
 
805
    
 
806
    // Loop possible derivatives
 
807
    for (unsigned int deriv_num = 0; deriv_num < num_derivatives; deriv_num++)
 
808
    {
 
809
      // Get values from coefficients array
 
810
      new_coeff0_0 = coefficients0[dof][0];
 
811
      new_coeff0_1 = coefficients0[dof][1];
 
812
      new_coeff0_2 = coefficients0[dof][2];
 
813
      new_coeff0_3 = coefficients0[dof][3];
 
814
      new_coeff0_4 = coefficients0[dof][4];
 
815
      new_coeff0_5 = coefficients0[dof][5];
 
816
      new_coeff0_6 = coefficients0[dof][6];
 
817
      new_coeff0_7 = coefficients0[dof][7];
 
818
      new_coeff0_8 = coefficients0[dof][8];
 
819
      new_coeff0_9 = coefficients0[dof][9];
 
820
      new_coeff0_10 = coefficients0[dof][10];
 
821
      new_coeff0_11 = coefficients0[dof][11];
 
822
      new_coeff0_12 = coefficients0[dof][12];
 
823
      new_coeff0_13 = coefficients0[dof][13];
 
824
      new_coeff0_14 = coefficients0[dof][14];
 
825
      new_coeff0_15 = coefficients0[dof][15];
 
826
      new_coeff0_16 = coefficients0[dof][16];
 
827
      new_coeff0_17 = coefficients0[dof][17];
 
828
      new_coeff0_18 = coefficients0[dof][18];
 
829
      new_coeff0_19 = coefficients0[dof][19];
 
830
      new_coeff0_20 = coefficients0[dof][20];
 
831
      new_coeff0_21 = coefficients0[dof][21];
 
832
      new_coeff0_22 = coefficients0[dof][22];
 
833
      new_coeff0_23 = coefficients0[dof][23];
 
834
      new_coeff0_24 = coefficients0[dof][24];
 
835
      new_coeff0_25 = coefficients0[dof][25];
 
836
      new_coeff0_26 = coefficients0[dof][26];
 
837
      new_coeff0_27 = coefficients0[dof][27];
 
838
      new_coeff0_28 = coefficients0[dof][28];
 
839
      new_coeff0_29 = coefficients0[dof][29];
 
840
      new_coeff0_30 = coefficients0[dof][30];
 
841
      new_coeff0_31 = coefficients0[dof][31];
 
842
      new_coeff0_32 = coefficients0[dof][32];
 
843
      new_coeff0_33 = coefficients0[dof][33];
 
844
      new_coeff0_34 = coefficients0[dof][34];
 
845
    
 
846
      // Loop derivative order
 
847
      for (unsigned int j = 0; j < n; j++)
 
848
      {
 
849
        // Update old coefficients
 
850
        coeff0_0 = new_coeff0_0;
 
851
        coeff0_1 = new_coeff0_1;
 
852
        coeff0_2 = new_coeff0_2;
 
853
        coeff0_3 = new_coeff0_3;
 
854
        coeff0_4 = new_coeff0_4;
 
855
        coeff0_5 = new_coeff0_5;
 
856
        coeff0_6 = new_coeff0_6;
 
857
        coeff0_7 = new_coeff0_7;
 
858
        coeff0_8 = new_coeff0_8;
 
859
        coeff0_9 = new_coeff0_9;
 
860
        coeff0_10 = new_coeff0_10;
 
861
        coeff0_11 = new_coeff0_11;
 
862
        coeff0_12 = new_coeff0_12;
 
863
        coeff0_13 = new_coeff0_13;
 
864
        coeff0_14 = new_coeff0_14;
 
865
        coeff0_15 = new_coeff0_15;
 
866
        coeff0_16 = new_coeff0_16;
 
867
        coeff0_17 = new_coeff0_17;
 
868
        coeff0_18 = new_coeff0_18;
 
869
        coeff0_19 = new_coeff0_19;
 
870
        coeff0_20 = new_coeff0_20;
 
871
        coeff0_21 = new_coeff0_21;
 
872
        coeff0_22 = new_coeff0_22;
 
873
        coeff0_23 = new_coeff0_23;
 
874
        coeff0_24 = new_coeff0_24;
 
875
        coeff0_25 = new_coeff0_25;
 
876
        coeff0_26 = new_coeff0_26;
 
877
        coeff0_27 = new_coeff0_27;
 
878
        coeff0_28 = new_coeff0_28;
 
879
        coeff0_29 = new_coeff0_29;
 
880
        coeff0_30 = new_coeff0_30;
 
881
        coeff0_31 = new_coeff0_31;
 
882
        coeff0_32 = new_coeff0_32;
 
883
        coeff0_33 = new_coeff0_33;
 
884
        coeff0_34 = new_coeff0_34;
 
885
    
 
886
        if(combinations[deriv_num][j] == 0)
 
887
        {
 
888
          new_coeff0_0 = coeff0_0*dmats0[0][0] + coeff0_1*dmats0[1][0] + coeff0_2*dmats0[2][0] + coeff0_3*dmats0[3][0] + coeff0_4*dmats0[4][0] + coeff0_5*dmats0[5][0] + coeff0_6*dmats0[6][0] + coeff0_7*dmats0[7][0] + coeff0_8*dmats0[8][0] + coeff0_9*dmats0[9][0] + coeff0_10*dmats0[10][0] + coeff0_11*dmats0[11][0] + coeff0_12*dmats0[12][0] + coeff0_13*dmats0[13][0] + coeff0_14*dmats0[14][0] + coeff0_15*dmats0[15][0] + coeff0_16*dmats0[16][0] + coeff0_17*dmats0[17][0] + coeff0_18*dmats0[18][0] + coeff0_19*dmats0[19][0] + coeff0_20*dmats0[20][0] + coeff0_21*dmats0[21][0] + coeff0_22*dmats0[22][0] + coeff0_23*dmats0[23][0] + coeff0_24*dmats0[24][0] + coeff0_25*dmats0[25][0] + coeff0_26*dmats0[26][0] + coeff0_27*dmats0[27][0] + coeff0_28*dmats0[28][0] + coeff0_29*dmats0[29][0] + coeff0_30*dmats0[30][0] + coeff0_31*dmats0[31][0] + coeff0_32*dmats0[32][0] + coeff0_33*dmats0[33][0] + coeff0_34*dmats0[34][0];
 
889
          new_coeff0_1 = coeff0_0*dmats0[0][1] + coeff0_1*dmats0[1][1] + coeff0_2*dmats0[2][1] + coeff0_3*dmats0[3][1] + coeff0_4*dmats0[4][1] + coeff0_5*dmats0[5][1] + coeff0_6*dmats0[6][1] + coeff0_7*dmats0[7][1] + coeff0_8*dmats0[8][1] + coeff0_9*dmats0[9][1] + coeff0_10*dmats0[10][1] + coeff0_11*dmats0[11][1] + coeff0_12*dmats0[12][1] + coeff0_13*dmats0[13][1] + coeff0_14*dmats0[14][1] + coeff0_15*dmats0[15][1] + coeff0_16*dmats0[16][1] + coeff0_17*dmats0[17][1] + coeff0_18*dmats0[18][1] + coeff0_19*dmats0[19][1] + coeff0_20*dmats0[20][1] + coeff0_21*dmats0[21][1] + coeff0_22*dmats0[22][1] + coeff0_23*dmats0[23][1] + coeff0_24*dmats0[24][1] + coeff0_25*dmats0[25][1] + coeff0_26*dmats0[26][1] + coeff0_27*dmats0[27][1] + coeff0_28*dmats0[28][1] + coeff0_29*dmats0[29][1] + coeff0_30*dmats0[30][1] + coeff0_31*dmats0[31][1] + coeff0_32*dmats0[32][1] + coeff0_33*dmats0[33][1] + coeff0_34*dmats0[34][1];
 
890
          new_coeff0_2 = coeff0_0*dmats0[0][2] + coeff0_1*dmats0[1][2] + coeff0_2*dmats0[2][2] + coeff0_3*dmats0[3][2] + coeff0_4*dmats0[4][2] + coeff0_5*dmats0[5][2] + coeff0_6*dmats0[6][2] + coeff0_7*dmats0[7][2] + coeff0_8*dmats0[8][2] + coeff0_9*dmats0[9][2] + coeff0_10*dmats0[10][2] + coeff0_11*dmats0[11][2] + coeff0_12*dmats0[12][2] + coeff0_13*dmats0[13][2] + coeff0_14*dmats0[14][2] + coeff0_15*dmats0[15][2] + coeff0_16*dmats0[16][2] + coeff0_17*dmats0[17][2] + coeff0_18*dmats0[18][2] + coeff0_19*dmats0[19][2] + coeff0_20*dmats0[20][2] + coeff0_21*dmats0[21][2] + coeff0_22*dmats0[22][2] + coeff0_23*dmats0[23][2] + coeff0_24*dmats0[24][2] + coeff0_25*dmats0[25][2] + coeff0_26*dmats0[26][2] + coeff0_27*dmats0[27][2] + coeff0_28*dmats0[28][2] + coeff0_29*dmats0[29][2] + coeff0_30*dmats0[30][2] + coeff0_31*dmats0[31][2] + coeff0_32*dmats0[32][2] + coeff0_33*dmats0[33][2] + coeff0_34*dmats0[34][2];
 
891
          new_coeff0_3 = coeff0_0*dmats0[0][3] + coeff0_1*dmats0[1][3] + coeff0_2*dmats0[2][3] + coeff0_3*dmats0[3][3] + coeff0_4*dmats0[4][3] + coeff0_5*dmats0[5][3] + coeff0_6*dmats0[6][3] + coeff0_7*dmats0[7][3] + coeff0_8*dmats0[8][3] + coeff0_9*dmats0[9][3] + coeff0_10*dmats0[10][3] + coeff0_11*dmats0[11][3] + coeff0_12*dmats0[12][3] + coeff0_13*dmats0[13][3] + coeff0_14*dmats0[14][3] + coeff0_15*dmats0[15][3] + coeff0_16*dmats0[16][3] + coeff0_17*dmats0[17][3] + coeff0_18*dmats0[18][3] + coeff0_19*dmats0[19][3] + coeff0_20*dmats0[20][3] + coeff0_21*dmats0[21][3] + coeff0_22*dmats0[22][3] + coeff0_23*dmats0[23][3] + coeff0_24*dmats0[24][3] + coeff0_25*dmats0[25][3] + coeff0_26*dmats0[26][3] + coeff0_27*dmats0[27][3] + coeff0_28*dmats0[28][3] + coeff0_29*dmats0[29][3] + coeff0_30*dmats0[30][3] + coeff0_31*dmats0[31][3] + coeff0_32*dmats0[32][3] + coeff0_33*dmats0[33][3] + coeff0_34*dmats0[34][3];
 
892
          new_coeff0_4 = coeff0_0*dmats0[0][4] + coeff0_1*dmats0[1][4] + coeff0_2*dmats0[2][4] + coeff0_3*dmats0[3][4] + coeff0_4*dmats0[4][4] + coeff0_5*dmats0[5][4] + coeff0_6*dmats0[6][4] + coeff0_7*dmats0[7][4] + coeff0_8*dmats0[8][4] + coeff0_9*dmats0[9][4] + coeff0_10*dmats0[10][4] + coeff0_11*dmats0[11][4] + coeff0_12*dmats0[12][4] + coeff0_13*dmats0[13][4] + coeff0_14*dmats0[14][4] + coeff0_15*dmats0[15][4] + coeff0_16*dmats0[16][4] + coeff0_17*dmats0[17][4] + coeff0_18*dmats0[18][4] + coeff0_19*dmats0[19][4] + coeff0_20*dmats0[20][4] + coeff0_21*dmats0[21][4] + coeff0_22*dmats0[22][4] + coeff0_23*dmats0[23][4] + coeff0_24*dmats0[24][4] + coeff0_25*dmats0[25][4] + coeff0_26*dmats0[26][4] + coeff0_27*dmats0[27][4] + coeff0_28*dmats0[28][4] + coeff0_29*dmats0[29][4] + coeff0_30*dmats0[30][4] + coeff0_31*dmats0[31][4] + coeff0_32*dmats0[32][4] + coeff0_33*dmats0[33][4] + coeff0_34*dmats0[34][4];
 
893
          new_coeff0_5 = coeff0_0*dmats0[0][5] + coeff0_1*dmats0[1][5] + coeff0_2*dmats0[2][5] + coeff0_3*dmats0[3][5] + coeff0_4*dmats0[4][5] + coeff0_5*dmats0[5][5] + coeff0_6*dmats0[6][5] + coeff0_7*dmats0[7][5] + coeff0_8*dmats0[8][5] + coeff0_9*dmats0[9][5] + coeff0_10*dmats0[10][5] + coeff0_11*dmats0[11][5] + coeff0_12*dmats0[12][5] + coeff0_13*dmats0[13][5] + coeff0_14*dmats0[14][5] + coeff0_15*dmats0[15][5] + coeff0_16*dmats0[16][5] + coeff0_17*dmats0[17][5] + coeff0_18*dmats0[18][5] + coeff0_19*dmats0[19][5] + coeff0_20*dmats0[20][5] + coeff0_21*dmats0[21][5] + coeff0_22*dmats0[22][5] + coeff0_23*dmats0[23][5] + coeff0_24*dmats0[24][5] + coeff0_25*dmats0[25][5] + coeff0_26*dmats0[26][5] + coeff0_27*dmats0[27][5] + coeff0_28*dmats0[28][5] + coeff0_29*dmats0[29][5] + coeff0_30*dmats0[30][5] + coeff0_31*dmats0[31][5] + coeff0_32*dmats0[32][5] + coeff0_33*dmats0[33][5] + coeff0_34*dmats0[34][5];
 
894
          new_coeff0_6 = coeff0_0*dmats0[0][6] + coeff0_1*dmats0[1][6] + coeff0_2*dmats0[2][6] + coeff0_3*dmats0[3][6] + coeff0_4*dmats0[4][6] + coeff0_5*dmats0[5][6] + coeff0_6*dmats0[6][6] + coeff0_7*dmats0[7][6] + coeff0_8*dmats0[8][6] + coeff0_9*dmats0[9][6] + coeff0_10*dmats0[10][6] + coeff0_11*dmats0[11][6] + coeff0_12*dmats0[12][6] + coeff0_13*dmats0[13][6] + coeff0_14*dmats0[14][6] + coeff0_15*dmats0[15][6] + coeff0_16*dmats0[16][6] + coeff0_17*dmats0[17][6] + coeff0_18*dmats0[18][6] + coeff0_19*dmats0[19][6] + coeff0_20*dmats0[20][6] + coeff0_21*dmats0[21][6] + coeff0_22*dmats0[22][6] + coeff0_23*dmats0[23][6] + coeff0_24*dmats0[24][6] + coeff0_25*dmats0[25][6] + coeff0_26*dmats0[26][6] + coeff0_27*dmats0[27][6] + coeff0_28*dmats0[28][6] + coeff0_29*dmats0[29][6] + coeff0_30*dmats0[30][6] + coeff0_31*dmats0[31][6] + coeff0_32*dmats0[32][6] + coeff0_33*dmats0[33][6] + coeff0_34*dmats0[34][6];
 
895
          new_coeff0_7 = coeff0_0*dmats0[0][7] + coeff0_1*dmats0[1][7] + coeff0_2*dmats0[2][7] + coeff0_3*dmats0[3][7] + coeff0_4*dmats0[4][7] + coeff0_5*dmats0[5][7] + coeff0_6*dmats0[6][7] + coeff0_7*dmats0[7][7] + coeff0_8*dmats0[8][7] + coeff0_9*dmats0[9][7] + coeff0_10*dmats0[10][7] + coeff0_11*dmats0[11][7] + coeff0_12*dmats0[12][7] + coeff0_13*dmats0[13][7] + coeff0_14*dmats0[14][7] + coeff0_15*dmats0[15][7] + coeff0_16*dmats0[16][7] + coeff0_17*dmats0[17][7] + coeff0_18*dmats0[18][7] + coeff0_19*dmats0[19][7] + coeff0_20*dmats0[20][7] + coeff0_21*dmats0[21][7] + coeff0_22*dmats0[22][7] + coeff0_23*dmats0[23][7] + coeff0_24*dmats0[24][7] + coeff0_25*dmats0[25][7] + coeff0_26*dmats0[26][7] + coeff0_27*dmats0[27][7] + coeff0_28*dmats0[28][7] + coeff0_29*dmats0[29][7] + coeff0_30*dmats0[30][7] + coeff0_31*dmats0[31][7] + coeff0_32*dmats0[32][7] + coeff0_33*dmats0[33][7] + coeff0_34*dmats0[34][7];
 
896
          new_coeff0_8 = coeff0_0*dmats0[0][8] + coeff0_1*dmats0[1][8] + coeff0_2*dmats0[2][8] + coeff0_3*dmats0[3][8] + coeff0_4*dmats0[4][8] + coeff0_5*dmats0[5][8] + coeff0_6*dmats0[6][8] + coeff0_7*dmats0[7][8] + coeff0_8*dmats0[8][8] + coeff0_9*dmats0[9][8] + coeff0_10*dmats0[10][8] + coeff0_11*dmats0[11][8] + coeff0_12*dmats0[12][8] + coeff0_13*dmats0[13][8] + coeff0_14*dmats0[14][8] + coeff0_15*dmats0[15][8] + coeff0_16*dmats0[16][8] + coeff0_17*dmats0[17][8] + coeff0_18*dmats0[18][8] + coeff0_19*dmats0[19][8] + coeff0_20*dmats0[20][8] + coeff0_21*dmats0[21][8] + coeff0_22*dmats0[22][8] + coeff0_23*dmats0[23][8] + coeff0_24*dmats0[24][8] + coeff0_25*dmats0[25][8] + coeff0_26*dmats0[26][8] + coeff0_27*dmats0[27][8] + coeff0_28*dmats0[28][8] + coeff0_29*dmats0[29][8] + coeff0_30*dmats0[30][8] + coeff0_31*dmats0[31][8] + coeff0_32*dmats0[32][8] + coeff0_33*dmats0[33][8] + coeff0_34*dmats0[34][8];
 
897
          new_coeff0_9 = coeff0_0*dmats0[0][9] + coeff0_1*dmats0[1][9] + coeff0_2*dmats0[2][9] + coeff0_3*dmats0[3][9] + coeff0_4*dmats0[4][9] + coeff0_5*dmats0[5][9] + coeff0_6*dmats0[6][9] + coeff0_7*dmats0[7][9] + coeff0_8*dmats0[8][9] + coeff0_9*dmats0[9][9] + coeff0_10*dmats0[10][9] + coeff0_11*dmats0[11][9] + coeff0_12*dmats0[12][9] + coeff0_13*dmats0[13][9] + coeff0_14*dmats0[14][9] + coeff0_15*dmats0[15][9] + coeff0_16*dmats0[16][9] + coeff0_17*dmats0[17][9] + coeff0_18*dmats0[18][9] + coeff0_19*dmats0[19][9] + coeff0_20*dmats0[20][9] + coeff0_21*dmats0[21][9] + coeff0_22*dmats0[22][9] + coeff0_23*dmats0[23][9] + coeff0_24*dmats0[24][9] + coeff0_25*dmats0[25][9] + coeff0_26*dmats0[26][9] + coeff0_27*dmats0[27][9] + coeff0_28*dmats0[28][9] + coeff0_29*dmats0[29][9] + coeff0_30*dmats0[30][9] + coeff0_31*dmats0[31][9] + coeff0_32*dmats0[32][9] + coeff0_33*dmats0[33][9] + coeff0_34*dmats0[34][9];
 
898
          new_coeff0_10 = coeff0_0*dmats0[0][10] + coeff0_1*dmats0[1][10] + coeff0_2*dmats0[2][10] + coeff0_3*dmats0[3][10] + coeff0_4*dmats0[4][10] + coeff0_5*dmats0[5][10] + coeff0_6*dmats0[6][10] + coeff0_7*dmats0[7][10] + coeff0_8*dmats0[8][10] + coeff0_9*dmats0[9][10] + coeff0_10*dmats0[10][10] + coeff0_11*dmats0[11][10] + coeff0_12*dmats0[12][10] + coeff0_13*dmats0[13][10] + coeff0_14*dmats0[14][10] + coeff0_15*dmats0[15][10] + coeff0_16*dmats0[16][10] + coeff0_17*dmats0[17][10] + coeff0_18*dmats0[18][10] + coeff0_19*dmats0[19][10] + coeff0_20*dmats0[20][10] + coeff0_21*dmats0[21][10] + coeff0_22*dmats0[22][10] + coeff0_23*dmats0[23][10] + coeff0_24*dmats0[24][10] + coeff0_25*dmats0[25][10] + coeff0_26*dmats0[26][10] + coeff0_27*dmats0[27][10] + coeff0_28*dmats0[28][10] + coeff0_29*dmats0[29][10] + coeff0_30*dmats0[30][10] + coeff0_31*dmats0[31][10] + coeff0_32*dmats0[32][10] + coeff0_33*dmats0[33][10] + coeff0_34*dmats0[34][10];
 
899
          new_coeff0_11 = coeff0_0*dmats0[0][11] + coeff0_1*dmats0[1][11] + coeff0_2*dmats0[2][11] + coeff0_3*dmats0[3][11] + coeff0_4*dmats0[4][11] + coeff0_5*dmats0[5][11] + coeff0_6*dmats0[6][11] + coeff0_7*dmats0[7][11] + coeff0_8*dmats0[8][11] + coeff0_9*dmats0[9][11] + coeff0_10*dmats0[10][11] + coeff0_11*dmats0[11][11] + coeff0_12*dmats0[12][11] + coeff0_13*dmats0[13][11] + coeff0_14*dmats0[14][11] + coeff0_15*dmats0[15][11] + coeff0_16*dmats0[16][11] + coeff0_17*dmats0[17][11] + coeff0_18*dmats0[18][11] + coeff0_19*dmats0[19][11] + coeff0_20*dmats0[20][11] + coeff0_21*dmats0[21][11] + coeff0_22*dmats0[22][11] + coeff0_23*dmats0[23][11] + coeff0_24*dmats0[24][11] + coeff0_25*dmats0[25][11] + coeff0_26*dmats0[26][11] + coeff0_27*dmats0[27][11] + coeff0_28*dmats0[28][11] + coeff0_29*dmats0[29][11] + coeff0_30*dmats0[30][11] + coeff0_31*dmats0[31][11] + coeff0_32*dmats0[32][11] + coeff0_33*dmats0[33][11] + coeff0_34*dmats0[34][11];
 
900
          new_coeff0_12 = coeff0_0*dmats0[0][12] + coeff0_1*dmats0[1][12] + coeff0_2*dmats0[2][12] + coeff0_3*dmats0[3][12] + coeff0_4*dmats0[4][12] + coeff0_5*dmats0[5][12] + coeff0_6*dmats0[6][12] + coeff0_7*dmats0[7][12] + coeff0_8*dmats0[8][12] + coeff0_9*dmats0[9][12] + coeff0_10*dmats0[10][12] + coeff0_11*dmats0[11][12] + coeff0_12*dmats0[12][12] + coeff0_13*dmats0[13][12] + coeff0_14*dmats0[14][12] + coeff0_15*dmats0[15][12] + coeff0_16*dmats0[16][12] + coeff0_17*dmats0[17][12] + coeff0_18*dmats0[18][12] + coeff0_19*dmats0[19][12] + coeff0_20*dmats0[20][12] + coeff0_21*dmats0[21][12] + coeff0_22*dmats0[22][12] + coeff0_23*dmats0[23][12] + coeff0_24*dmats0[24][12] + coeff0_25*dmats0[25][12] + coeff0_26*dmats0[26][12] + coeff0_27*dmats0[27][12] + coeff0_28*dmats0[28][12] + coeff0_29*dmats0[29][12] + coeff0_30*dmats0[30][12] + coeff0_31*dmats0[31][12] + coeff0_32*dmats0[32][12] + coeff0_33*dmats0[33][12] + coeff0_34*dmats0[34][12];
 
901
          new_coeff0_13 = coeff0_0*dmats0[0][13] + coeff0_1*dmats0[1][13] + coeff0_2*dmats0[2][13] + coeff0_3*dmats0[3][13] + coeff0_4*dmats0[4][13] + coeff0_5*dmats0[5][13] + coeff0_6*dmats0[6][13] + coeff0_7*dmats0[7][13] + coeff0_8*dmats0[8][13] + coeff0_9*dmats0[9][13] + coeff0_10*dmats0[10][13] + coeff0_11*dmats0[11][13] + coeff0_12*dmats0[12][13] + coeff0_13*dmats0[13][13] + coeff0_14*dmats0[14][13] + coeff0_15*dmats0[15][13] + coeff0_16*dmats0[16][13] + coeff0_17*dmats0[17][13] + coeff0_18*dmats0[18][13] + coeff0_19*dmats0[19][13] + coeff0_20*dmats0[20][13] + coeff0_21*dmats0[21][13] + coeff0_22*dmats0[22][13] + coeff0_23*dmats0[23][13] + coeff0_24*dmats0[24][13] + coeff0_25*dmats0[25][13] + coeff0_26*dmats0[26][13] + coeff0_27*dmats0[27][13] + coeff0_28*dmats0[28][13] + coeff0_29*dmats0[29][13] + coeff0_30*dmats0[30][13] + coeff0_31*dmats0[31][13] + coeff0_32*dmats0[32][13] + coeff0_33*dmats0[33][13] + coeff0_34*dmats0[34][13];
 
902
          new_coeff0_14 = coeff0_0*dmats0[0][14] + coeff0_1*dmats0[1][14] + coeff0_2*dmats0[2][14] + coeff0_3*dmats0[3][14] + coeff0_4*dmats0[4][14] + coeff0_5*dmats0[5][14] + coeff0_6*dmats0[6][14] + coeff0_7*dmats0[7][14] + coeff0_8*dmats0[8][14] + coeff0_9*dmats0[9][14] + coeff0_10*dmats0[10][14] + coeff0_11*dmats0[11][14] + coeff0_12*dmats0[12][14] + coeff0_13*dmats0[13][14] + coeff0_14*dmats0[14][14] + coeff0_15*dmats0[15][14] + coeff0_16*dmats0[16][14] + coeff0_17*dmats0[17][14] + coeff0_18*dmats0[18][14] + coeff0_19*dmats0[19][14] + coeff0_20*dmats0[20][14] + coeff0_21*dmats0[21][14] + coeff0_22*dmats0[22][14] + coeff0_23*dmats0[23][14] + coeff0_24*dmats0[24][14] + coeff0_25*dmats0[25][14] + coeff0_26*dmats0[26][14] + coeff0_27*dmats0[27][14] + coeff0_28*dmats0[28][14] + coeff0_29*dmats0[29][14] + coeff0_30*dmats0[30][14] + coeff0_31*dmats0[31][14] + coeff0_32*dmats0[32][14] + coeff0_33*dmats0[33][14] + coeff0_34*dmats0[34][14];
 
903
          new_coeff0_15 = coeff0_0*dmats0[0][15] + coeff0_1*dmats0[1][15] + coeff0_2*dmats0[2][15] + coeff0_3*dmats0[3][15] + coeff0_4*dmats0[4][15] + coeff0_5*dmats0[5][15] + coeff0_6*dmats0[6][15] + coeff0_7*dmats0[7][15] + coeff0_8*dmats0[8][15] + coeff0_9*dmats0[9][15] + coeff0_10*dmats0[10][15] + coeff0_11*dmats0[11][15] + coeff0_12*dmats0[12][15] + coeff0_13*dmats0[13][15] + coeff0_14*dmats0[14][15] + coeff0_15*dmats0[15][15] + coeff0_16*dmats0[16][15] + coeff0_17*dmats0[17][15] + coeff0_18*dmats0[18][15] + coeff0_19*dmats0[19][15] + coeff0_20*dmats0[20][15] + coeff0_21*dmats0[21][15] + coeff0_22*dmats0[22][15] + coeff0_23*dmats0[23][15] + coeff0_24*dmats0[24][15] + coeff0_25*dmats0[25][15] + coeff0_26*dmats0[26][15] + coeff0_27*dmats0[27][15] + coeff0_28*dmats0[28][15] + coeff0_29*dmats0[29][15] + coeff0_30*dmats0[30][15] + coeff0_31*dmats0[31][15] + coeff0_32*dmats0[32][15] + coeff0_33*dmats0[33][15] + coeff0_34*dmats0[34][15];
 
904
          new_coeff0_16 = coeff0_0*dmats0[0][16] + coeff0_1*dmats0[1][16] + coeff0_2*dmats0[2][16] + coeff0_3*dmats0[3][16] + coeff0_4*dmats0[4][16] + coeff0_5*dmats0[5][16] + coeff0_6*dmats0[6][16] + coeff0_7*dmats0[7][16] + coeff0_8*dmats0[8][16] + coeff0_9*dmats0[9][16] + coeff0_10*dmats0[10][16] + coeff0_11*dmats0[11][16] + coeff0_12*dmats0[12][16] + coeff0_13*dmats0[13][16] + coeff0_14*dmats0[14][16] + coeff0_15*dmats0[15][16] + coeff0_16*dmats0[16][16] + coeff0_17*dmats0[17][16] + coeff0_18*dmats0[18][16] + coeff0_19*dmats0[19][16] + coeff0_20*dmats0[20][16] + coeff0_21*dmats0[21][16] + coeff0_22*dmats0[22][16] + coeff0_23*dmats0[23][16] + coeff0_24*dmats0[24][16] + coeff0_25*dmats0[25][16] + coeff0_26*dmats0[26][16] + coeff0_27*dmats0[27][16] + coeff0_28*dmats0[28][16] + coeff0_29*dmats0[29][16] + coeff0_30*dmats0[30][16] + coeff0_31*dmats0[31][16] + coeff0_32*dmats0[32][16] + coeff0_33*dmats0[33][16] + coeff0_34*dmats0[34][16];
 
905
          new_coeff0_17 = coeff0_0*dmats0[0][17] + coeff0_1*dmats0[1][17] + coeff0_2*dmats0[2][17] + coeff0_3*dmats0[3][17] + coeff0_4*dmats0[4][17] + coeff0_5*dmats0[5][17] + coeff0_6*dmats0[6][17] + coeff0_7*dmats0[7][17] + coeff0_8*dmats0[8][17] + coeff0_9*dmats0[9][17] + coeff0_10*dmats0[10][17] + coeff0_11*dmats0[11][17] + coeff0_12*dmats0[12][17] + coeff0_13*dmats0[13][17] + coeff0_14*dmats0[14][17] + coeff0_15*dmats0[15][17] + coeff0_16*dmats0[16][17] + coeff0_17*dmats0[17][17] + coeff0_18*dmats0[18][17] + coeff0_19*dmats0[19][17] + coeff0_20*dmats0[20][17] + coeff0_21*dmats0[21][17] + coeff0_22*dmats0[22][17] + coeff0_23*dmats0[23][17] + coeff0_24*dmats0[24][17] + coeff0_25*dmats0[25][17] + coeff0_26*dmats0[26][17] + coeff0_27*dmats0[27][17] + coeff0_28*dmats0[28][17] + coeff0_29*dmats0[29][17] + coeff0_30*dmats0[30][17] + coeff0_31*dmats0[31][17] + coeff0_32*dmats0[32][17] + coeff0_33*dmats0[33][17] + coeff0_34*dmats0[34][17];
 
906
          new_coeff0_18 = coeff0_0*dmats0[0][18] + coeff0_1*dmats0[1][18] + coeff0_2*dmats0[2][18] + coeff0_3*dmats0[3][18] + coeff0_4*dmats0[4][18] + coeff0_5*dmats0[5][18] + coeff0_6*dmats0[6][18] + coeff0_7*dmats0[7][18] + coeff0_8*dmats0[8][18] + coeff0_9*dmats0[9][18] + coeff0_10*dmats0[10][18] + coeff0_11*dmats0[11][18] + coeff0_12*dmats0[12][18] + coeff0_13*dmats0[13][18] + coeff0_14*dmats0[14][18] + coeff0_15*dmats0[15][18] + coeff0_16*dmats0[16][18] + coeff0_17*dmats0[17][18] + coeff0_18*dmats0[18][18] + coeff0_19*dmats0[19][18] + coeff0_20*dmats0[20][18] + coeff0_21*dmats0[21][18] + coeff0_22*dmats0[22][18] + coeff0_23*dmats0[23][18] + coeff0_24*dmats0[24][18] + coeff0_25*dmats0[25][18] + coeff0_26*dmats0[26][18] + coeff0_27*dmats0[27][18] + coeff0_28*dmats0[28][18] + coeff0_29*dmats0[29][18] + coeff0_30*dmats0[30][18] + coeff0_31*dmats0[31][18] + coeff0_32*dmats0[32][18] + coeff0_33*dmats0[33][18] + coeff0_34*dmats0[34][18];
 
907
          new_coeff0_19 = coeff0_0*dmats0[0][19] + coeff0_1*dmats0[1][19] + coeff0_2*dmats0[2][19] + coeff0_3*dmats0[3][19] + coeff0_4*dmats0[4][19] + coeff0_5*dmats0[5][19] + coeff0_6*dmats0[6][19] + coeff0_7*dmats0[7][19] + coeff0_8*dmats0[8][19] + coeff0_9*dmats0[9][19] + coeff0_10*dmats0[10][19] + coeff0_11*dmats0[11][19] + coeff0_12*dmats0[12][19] + coeff0_13*dmats0[13][19] + coeff0_14*dmats0[14][19] + coeff0_15*dmats0[15][19] + coeff0_16*dmats0[16][19] + coeff0_17*dmats0[17][19] + coeff0_18*dmats0[18][19] + coeff0_19*dmats0[19][19] + coeff0_20*dmats0[20][19] + coeff0_21*dmats0[21][19] + coeff0_22*dmats0[22][19] + coeff0_23*dmats0[23][19] + coeff0_24*dmats0[24][19] + coeff0_25*dmats0[25][19] + coeff0_26*dmats0[26][19] + coeff0_27*dmats0[27][19] + coeff0_28*dmats0[28][19] + coeff0_29*dmats0[29][19] + coeff0_30*dmats0[30][19] + coeff0_31*dmats0[31][19] + coeff0_32*dmats0[32][19] + coeff0_33*dmats0[33][19] + coeff0_34*dmats0[34][19];
 
908
          new_coeff0_20 = coeff0_0*dmats0[0][20] + coeff0_1*dmats0[1][20] + coeff0_2*dmats0[2][20] + coeff0_3*dmats0[3][20] + coeff0_4*dmats0[4][20] + coeff0_5*dmats0[5][20] + coeff0_6*dmats0[6][20] + coeff0_7*dmats0[7][20] + coeff0_8*dmats0[8][20] + coeff0_9*dmats0[9][20] + coeff0_10*dmats0[10][20] + coeff0_11*dmats0[11][20] + coeff0_12*dmats0[12][20] + coeff0_13*dmats0[13][20] + coeff0_14*dmats0[14][20] + coeff0_15*dmats0[15][20] + coeff0_16*dmats0[16][20] + coeff0_17*dmats0[17][20] + coeff0_18*dmats0[18][20] + coeff0_19*dmats0[19][20] + coeff0_20*dmats0[20][20] + coeff0_21*dmats0[21][20] + coeff0_22*dmats0[22][20] + coeff0_23*dmats0[23][20] + coeff0_24*dmats0[24][20] + coeff0_25*dmats0[25][20] + coeff0_26*dmats0[26][20] + coeff0_27*dmats0[27][20] + coeff0_28*dmats0[28][20] + coeff0_29*dmats0[29][20] + coeff0_30*dmats0[30][20] + coeff0_31*dmats0[31][20] + coeff0_32*dmats0[32][20] + coeff0_33*dmats0[33][20] + coeff0_34*dmats0[34][20];
 
909
          new_coeff0_21 = coeff0_0*dmats0[0][21] + coeff0_1*dmats0[1][21] + coeff0_2*dmats0[2][21] + coeff0_3*dmats0[3][21] + coeff0_4*dmats0[4][21] + coeff0_5*dmats0[5][21] + coeff0_6*dmats0[6][21] + coeff0_7*dmats0[7][21] + coeff0_8*dmats0[8][21] + coeff0_9*dmats0[9][21] + coeff0_10*dmats0[10][21] + coeff0_11*dmats0[11][21] + coeff0_12*dmats0[12][21] + coeff0_13*dmats0[13][21] + coeff0_14*dmats0[14][21] + coeff0_15*dmats0[15][21] + coeff0_16*dmats0[16][21] + coeff0_17*dmats0[17][21] + coeff0_18*dmats0[18][21] + coeff0_19*dmats0[19][21] + coeff0_20*dmats0[20][21] + coeff0_21*dmats0[21][21] + coeff0_22*dmats0[22][21] + coeff0_23*dmats0[23][21] + coeff0_24*dmats0[24][21] + coeff0_25*dmats0[25][21] + coeff0_26*dmats0[26][21] + coeff0_27*dmats0[27][21] + coeff0_28*dmats0[28][21] + coeff0_29*dmats0[29][21] + coeff0_30*dmats0[30][21] + coeff0_31*dmats0[31][21] + coeff0_32*dmats0[32][21] + coeff0_33*dmats0[33][21] + coeff0_34*dmats0[34][21];
 
910
          new_coeff0_22 = coeff0_0*dmats0[0][22] + coeff0_1*dmats0[1][22] + coeff0_2*dmats0[2][22] + coeff0_3*dmats0[3][22] + coeff0_4*dmats0[4][22] + coeff0_5*dmats0[5][22] + coeff0_6*dmats0[6][22] + coeff0_7*dmats0[7][22] + coeff0_8*dmats0[8][22] + coeff0_9*dmats0[9][22] + coeff0_10*dmats0[10][22] + coeff0_11*dmats0[11][22] + coeff0_12*dmats0[12][22] + coeff0_13*dmats0[13][22] + coeff0_14*dmats0[14][22] + coeff0_15*dmats0[15][22] + coeff0_16*dmats0[16][22] + coeff0_17*dmats0[17][22] + coeff0_18*dmats0[18][22] + coeff0_19*dmats0[19][22] + coeff0_20*dmats0[20][22] + coeff0_21*dmats0[21][22] + coeff0_22*dmats0[22][22] + coeff0_23*dmats0[23][22] + coeff0_24*dmats0[24][22] + coeff0_25*dmats0[25][22] + coeff0_26*dmats0[26][22] + coeff0_27*dmats0[27][22] + coeff0_28*dmats0[28][22] + coeff0_29*dmats0[29][22] + coeff0_30*dmats0[30][22] + coeff0_31*dmats0[31][22] + coeff0_32*dmats0[32][22] + coeff0_33*dmats0[33][22] + coeff0_34*dmats0[34][22];
 
911
          new_coeff0_23 = coeff0_0*dmats0[0][23] + coeff0_1*dmats0[1][23] + coeff0_2*dmats0[2][23] + coeff0_3*dmats0[3][23] + coeff0_4*dmats0[4][23] + coeff0_5*dmats0[5][23] + coeff0_6*dmats0[6][23] + coeff0_7*dmats0[7][23] + coeff0_8*dmats0[8][23] + coeff0_9*dmats0[9][23] + coeff0_10*dmats0[10][23] + coeff0_11*dmats0[11][23] + coeff0_12*dmats0[12][23] + coeff0_13*dmats0[13][23] + coeff0_14*dmats0[14][23] + coeff0_15*dmats0[15][23] + coeff0_16*dmats0[16][23] + coeff0_17*dmats0[17][23] + coeff0_18*dmats0[18][23] + coeff0_19*dmats0[19][23] + coeff0_20*dmats0[20][23] + coeff0_21*dmats0[21][23] + coeff0_22*dmats0[22][23] + coeff0_23*dmats0[23][23] + coeff0_24*dmats0[24][23] + coeff0_25*dmats0[25][23] + coeff0_26*dmats0[26][23] + coeff0_27*dmats0[27][23] + coeff0_28*dmats0[28][23] + coeff0_29*dmats0[29][23] + coeff0_30*dmats0[30][23] + coeff0_31*dmats0[31][23] + coeff0_32*dmats0[32][23] + coeff0_33*dmats0[33][23] + coeff0_34*dmats0[34][23];
 
912
          new_coeff0_24 = coeff0_0*dmats0[0][24] + coeff0_1*dmats0[1][24] + coeff0_2*dmats0[2][24] + coeff0_3*dmats0[3][24] + coeff0_4*dmats0[4][24] + coeff0_5*dmats0[5][24] + coeff0_6*dmats0[6][24] + coeff0_7*dmats0[7][24] + coeff0_8*dmats0[8][24] + coeff0_9*dmats0[9][24] + coeff0_10*dmats0[10][24] + coeff0_11*dmats0[11][24] + coeff0_12*dmats0[12][24] + coeff0_13*dmats0[13][24] + coeff0_14*dmats0[14][24] + coeff0_15*dmats0[15][24] + coeff0_16*dmats0[16][24] + coeff0_17*dmats0[17][24] + coeff0_18*dmats0[18][24] + coeff0_19*dmats0[19][24] + coeff0_20*dmats0[20][24] + coeff0_21*dmats0[21][24] + coeff0_22*dmats0[22][24] + coeff0_23*dmats0[23][24] + coeff0_24*dmats0[24][24] + coeff0_25*dmats0[25][24] + coeff0_26*dmats0[26][24] + coeff0_27*dmats0[27][24] + coeff0_28*dmats0[28][24] + coeff0_29*dmats0[29][24] + coeff0_30*dmats0[30][24] + coeff0_31*dmats0[31][24] + coeff0_32*dmats0[32][24] + coeff0_33*dmats0[33][24] + coeff0_34*dmats0[34][24];
 
913
          new_coeff0_25 = coeff0_0*dmats0[0][25] + coeff0_1*dmats0[1][25] + coeff0_2*dmats0[2][25] + coeff0_3*dmats0[3][25] + coeff0_4*dmats0[4][25] + coeff0_5*dmats0[5][25] + coeff0_6*dmats0[6][25] + coeff0_7*dmats0[7][25] + coeff0_8*dmats0[8][25] + coeff0_9*dmats0[9][25] + coeff0_10*dmats0[10][25] + coeff0_11*dmats0[11][25] + coeff0_12*dmats0[12][25] + coeff0_13*dmats0[13][25] + coeff0_14*dmats0[14][25] + coeff0_15*dmats0[15][25] + coeff0_16*dmats0[16][25] + coeff0_17*dmats0[17][25] + coeff0_18*dmats0[18][25] + coeff0_19*dmats0[19][25] + coeff0_20*dmats0[20][25] + coeff0_21*dmats0[21][25] + coeff0_22*dmats0[22][25] + coeff0_23*dmats0[23][25] + coeff0_24*dmats0[24][25] + coeff0_25*dmats0[25][25] + coeff0_26*dmats0[26][25] + coeff0_27*dmats0[27][25] + coeff0_28*dmats0[28][25] + coeff0_29*dmats0[29][25] + coeff0_30*dmats0[30][25] + coeff0_31*dmats0[31][25] + coeff0_32*dmats0[32][25] + coeff0_33*dmats0[33][25] + coeff0_34*dmats0[34][25];
 
914
          new_coeff0_26 = coeff0_0*dmats0[0][26] + coeff0_1*dmats0[1][26] + coeff0_2*dmats0[2][26] + coeff0_3*dmats0[3][26] + coeff0_4*dmats0[4][26] + coeff0_5*dmats0[5][26] + coeff0_6*dmats0[6][26] + coeff0_7*dmats0[7][26] + coeff0_8*dmats0[8][26] + coeff0_9*dmats0[9][26] + coeff0_10*dmats0[10][26] + coeff0_11*dmats0[11][26] + coeff0_12*dmats0[12][26] + coeff0_13*dmats0[13][26] + coeff0_14*dmats0[14][26] + coeff0_15*dmats0[15][26] + coeff0_16*dmats0[16][26] + coeff0_17*dmats0[17][26] + coeff0_18*dmats0[18][26] + coeff0_19*dmats0[19][26] + coeff0_20*dmats0[20][26] + coeff0_21*dmats0[21][26] + coeff0_22*dmats0[22][26] + coeff0_23*dmats0[23][26] + coeff0_24*dmats0[24][26] + coeff0_25*dmats0[25][26] + coeff0_26*dmats0[26][26] + coeff0_27*dmats0[27][26] + coeff0_28*dmats0[28][26] + coeff0_29*dmats0[29][26] + coeff0_30*dmats0[30][26] + coeff0_31*dmats0[31][26] + coeff0_32*dmats0[32][26] + coeff0_33*dmats0[33][26] + coeff0_34*dmats0[34][26];
 
915
          new_coeff0_27 = coeff0_0*dmats0[0][27] + coeff0_1*dmats0[1][27] + coeff0_2*dmats0[2][27] + coeff0_3*dmats0[3][27] + coeff0_4*dmats0[4][27] + coeff0_5*dmats0[5][27] + coeff0_6*dmats0[6][27] + coeff0_7*dmats0[7][27] + coeff0_8*dmats0[8][27] + coeff0_9*dmats0[9][27] + coeff0_10*dmats0[10][27] + coeff0_11*dmats0[11][27] + coeff0_12*dmats0[12][27] + coeff0_13*dmats0[13][27] + coeff0_14*dmats0[14][27] + coeff0_15*dmats0[15][27] + coeff0_16*dmats0[16][27] + coeff0_17*dmats0[17][27] + coeff0_18*dmats0[18][27] + coeff0_19*dmats0[19][27] + coeff0_20*dmats0[20][27] + coeff0_21*dmats0[21][27] + coeff0_22*dmats0[22][27] + coeff0_23*dmats0[23][27] + coeff0_24*dmats0[24][27] + coeff0_25*dmats0[25][27] + coeff0_26*dmats0[26][27] + coeff0_27*dmats0[27][27] + coeff0_28*dmats0[28][27] + coeff0_29*dmats0[29][27] + coeff0_30*dmats0[30][27] + coeff0_31*dmats0[31][27] + coeff0_32*dmats0[32][27] + coeff0_33*dmats0[33][27] + coeff0_34*dmats0[34][27];
 
916
          new_coeff0_28 = coeff0_0*dmats0[0][28] + coeff0_1*dmats0[1][28] + coeff0_2*dmats0[2][28] + coeff0_3*dmats0[3][28] + coeff0_4*dmats0[4][28] + coeff0_5*dmats0[5][28] + coeff0_6*dmats0[6][28] + coeff0_7*dmats0[7][28] + coeff0_8*dmats0[8][28] + coeff0_9*dmats0[9][28] + coeff0_10*dmats0[10][28] + coeff0_11*dmats0[11][28] + coeff0_12*dmats0[12][28] + coeff0_13*dmats0[13][28] + coeff0_14*dmats0[14][28] + coeff0_15*dmats0[15][28] + coeff0_16*dmats0[16][28] + coeff0_17*dmats0[17][28] + coeff0_18*dmats0[18][28] + coeff0_19*dmats0[19][28] + coeff0_20*dmats0[20][28] + coeff0_21*dmats0[21][28] + coeff0_22*dmats0[22][28] + coeff0_23*dmats0[23][28] + coeff0_24*dmats0[24][28] + coeff0_25*dmats0[25][28] + coeff0_26*dmats0[26][28] + coeff0_27*dmats0[27][28] + coeff0_28*dmats0[28][28] + coeff0_29*dmats0[29][28] + coeff0_30*dmats0[30][28] + coeff0_31*dmats0[31][28] + coeff0_32*dmats0[32][28] + coeff0_33*dmats0[33][28] + coeff0_34*dmats0[34][28];
 
917
          new_coeff0_29 = coeff0_0*dmats0[0][29] + coeff0_1*dmats0[1][29] + coeff0_2*dmats0[2][29] + coeff0_3*dmats0[3][29] + coeff0_4*dmats0[4][29] + coeff0_5*dmats0[5][29] + coeff0_6*dmats0[6][29] + coeff0_7*dmats0[7][29] + coeff0_8*dmats0[8][29] + coeff0_9*dmats0[9][29] + coeff0_10*dmats0[10][29] + coeff0_11*dmats0[11][29] + coeff0_12*dmats0[12][29] + coeff0_13*dmats0[13][29] + coeff0_14*dmats0[14][29] + coeff0_15*dmats0[15][29] + coeff0_16*dmats0[16][29] + coeff0_17*dmats0[17][29] + coeff0_18*dmats0[18][29] + coeff0_19*dmats0[19][29] + coeff0_20*dmats0[20][29] + coeff0_21*dmats0[21][29] + coeff0_22*dmats0[22][29] + coeff0_23*dmats0[23][29] + coeff0_24*dmats0[24][29] + coeff0_25*dmats0[25][29] + coeff0_26*dmats0[26][29] + coeff0_27*dmats0[27][29] + coeff0_28*dmats0[28][29] + coeff0_29*dmats0[29][29] + coeff0_30*dmats0[30][29] + coeff0_31*dmats0[31][29] + coeff0_32*dmats0[32][29] + coeff0_33*dmats0[33][29] + coeff0_34*dmats0[34][29];
 
918
          new_coeff0_30 = coeff0_0*dmats0[0][30] + coeff0_1*dmats0[1][30] + coeff0_2*dmats0[2][30] + coeff0_3*dmats0[3][30] + coeff0_4*dmats0[4][30] + coeff0_5*dmats0[5][30] + coeff0_6*dmats0[6][30] + coeff0_7*dmats0[7][30] + coeff0_8*dmats0[8][30] + coeff0_9*dmats0[9][30] + coeff0_10*dmats0[10][30] + coeff0_11*dmats0[11][30] + coeff0_12*dmats0[12][30] + coeff0_13*dmats0[13][30] + coeff0_14*dmats0[14][30] + coeff0_15*dmats0[15][30] + coeff0_16*dmats0[16][30] + coeff0_17*dmats0[17][30] + coeff0_18*dmats0[18][30] + coeff0_19*dmats0[19][30] + coeff0_20*dmats0[20][30] + coeff0_21*dmats0[21][30] + coeff0_22*dmats0[22][30] + coeff0_23*dmats0[23][30] + coeff0_24*dmats0[24][30] + coeff0_25*dmats0[25][30] + coeff0_26*dmats0[26][30] + coeff0_27*dmats0[27][30] + coeff0_28*dmats0[28][30] + coeff0_29*dmats0[29][30] + coeff0_30*dmats0[30][30] + coeff0_31*dmats0[31][30] + coeff0_32*dmats0[32][30] + coeff0_33*dmats0[33][30] + coeff0_34*dmats0[34][30];
 
919
          new_coeff0_31 = coeff0_0*dmats0[0][31] + coeff0_1*dmats0[1][31] + coeff0_2*dmats0[2][31] + coeff0_3*dmats0[3][31] + coeff0_4*dmats0[4][31] + coeff0_5*dmats0[5][31] + coeff0_6*dmats0[6][31] + coeff0_7*dmats0[7][31] + coeff0_8*dmats0[8][31] + coeff0_9*dmats0[9][31] + coeff0_10*dmats0[10][31] + coeff0_11*dmats0[11][31] + coeff0_12*dmats0[12][31] + coeff0_13*dmats0[13][31] + coeff0_14*dmats0[14][31] + coeff0_15*dmats0[15][31] + coeff0_16*dmats0[16][31] + coeff0_17*dmats0[17][31] + coeff0_18*dmats0[18][31] + coeff0_19*dmats0[19][31] + coeff0_20*dmats0[20][31] + coeff0_21*dmats0[21][31] + coeff0_22*dmats0[22][31] + coeff0_23*dmats0[23][31] + coeff0_24*dmats0[24][31] + coeff0_25*dmats0[25][31] + coeff0_26*dmats0[26][31] + coeff0_27*dmats0[27][31] + coeff0_28*dmats0[28][31] + coeff0_29*dmats0[29][31] + coeff0_30*dmats0[30][31] + coeff0_31*dmats0[31][31] + coeff0_32*dmats0[32][31] + coeff0_33*dmats0[33][31] + coeff0_34*dmats0[34][31];
 
920
          new_coeff0_32 = coeff0_0*dmats0[0][32] + coeff0_1*dmats0[1][32] + coeff0_2*dmats0[2][32] + coeff0_3*dmats0[3][32] + coeff0_4*dmats0[4][32] + coeff0_5*dmats0[5][32] + coeff0_6*dmats0[6][32] + coeff0_7*dmats0[7][32] + coeff0_8*dmats0[8][32] + coeff0_9*dmats0[9][32] + coeff0_10*dmats0[10][32] + coeff0_11*dmats0[11][32] + coeff0_12*dmats0[12][32] + coeff0_13*dmats0[13][32] + coeff0_14*dmats0[14][32] + coeff0_15*dmats0[15][32] + coeff0_16*dmats0[16][32] + coeff0_17*dmats0[17][32] + coeff0_18*dmats0[18][32] + coeff0_19*dmats0[19][32] + coeff0_20*dmats0[20][32] + coeff0_21*dmats0[21][32] + coeff0_22*dmats0[22][32] + coeff0_23*dmats0[23][32] + coeff0_24*dmats0[24][32] + coeff0_25*dmats0[25][32] + coeff0_26*dmats0[26][32] + coeff0_27*dmats0[27][32] + coeff0_28*dmats0[28][32] + coeff0_29*dmats0[29][32] + coeff0_30*dmats0[30][32] + coeff0_31*dmats0[31][32] + coeff0_32*dmats0[32][32] + coeff0_33*dmats0[33][32] + coeff0_34*dmats0[34][32];
 
921
          new_coeff0_33 = coeff0_0*dmats0[0][33] + coeff0_1*dmats0[1][33] + coeff0_2*dmats0[2][33] + coeff0_3*dmats0[3][33] + coeff0_4*dmats0[4][33] + coeff0_5*dmats0[5][33] + coeff0_6*dmats0[6][33] + coeff0_7*dmats0[7][33] + coeff0_8*dmats0[8][33] + coeff0_9*dmats0[9][33] + coeff0_10*dmats0[10][33] + coeff0_11*dmats0[11][33] + coeff0_12*dmats0[12][33] + coeff0_13*dmats0[13][33] + coeff0_14*dmats0[14][33] + coeff0_15*dmats0[15][33] + coeff0_16*dmats0[16][33] + coeff0_17*dmats0[17][33] + coeff0_18*dmats0[18][33] + coeff0_19*dmats0[19][33] + coeff0_20*dmats0[20][33] + coeff0_21*dmats0[21][33] + coeff0_22*dmats0[22][33] + coeff0_23*dmats0[23][33] + coeff0_24*dmats0[24][33] + coeff0_25*dmats0[25][33] + coeff0_26*dmats0[26][33] + coeff0_27*dmats0[27][33] + coeff0_28*dmats0[28][33] + coeff0_29*dmats0[29][33] + coeff0_30*dmats0[30][33] + coeff0_31*dmats0[31][33] + coeff0_32*dmats0[32][33] + coeff0_33*dmats0[33][33] + coeff0_34*dmats0[34][33];
 
922
          new_coeff0_34 = coeff0_0*dmats0[0][34] + coeff0_1*dmats0[1][34] + coeff0_2*dmats0[2][34] + coeff0_3*dmats0[3][34] + coeff0_4*dmats0[4][34] + coeff0_5*dmats0[5][34] + coeff0_6*dmats0[6][34] + coeff0_7*dmats0[7][34] + coeff0_8*dmats0[8][34] + coeff0_9*dmats0[9][34] + coeff0_10*dmats0[10][34] + coeff0_11*dmats0[11][34] + coeff0_12*dmats0[12][34] + coeff0_13*dmats0[13][34] + coeff0_14*dmats0[14][34] + coeff0_15*dmats0[15][34] + coeff0_16*dmats0[16][34] + coeff0_17*dmats0[17][34] + coeff0_18*dmats0[18][34] + coeff0_19*dmats0[19][34] + coeff0_20*dmats0[20][34] + coeff0_21*dmats0[21][34] + coeff0_22*dmats0[22][34] + coeff0_23*dmats0[23][34] + coeff0_24*dmats0[24][34] + coeff0_25*dmats0[25][34] + coeff0_26*dmats0[26][34] + coeff0_27*dmats0[27][34] + coeff0_28*dmats0[28][34] + coeff0_29*dmats0[29][34] + coeff0_30*dmats0[30][34] + coeff0_31*dmats0[31][34] + coeff0_32*dmats0[32][34] + coeff0_33*dmats0[33][34] + coeff0_34*dmats0[34][34];
 
923
        }
 
924
        if(combinations[deriv_num][j] == 1)
 
925
        {
 
926
          new_coeff0_0 = coeff0_0*dmats1[0][0] + coeff0_1*dmats1[1][0] + coeff0_2*dmats1[2][0] + coeff0_3*dmats1[3][0] + coeff0_4*dmats1[4][0] + coeff0_5*dmats1[5][0] + coeff0_6*dmats1[6][0] + coeff0_7*dmats1[7][0] + coeff0_8*dmats1[8][0] + coeff0_9*dmats1[9][0] + coeff0_10*dmats1[10][0] + coeff0_11*dmats1[11][0] + coeff0_12*dmats1[12][0] + coeff0_13*dmats1[13][0] + coeff0_14*dmats1[14][0] + coeff0_15*dmats1[15][0] + coeff0_16*dmats1[16][0] + coeff0_17*dmats1[17][0] + coeff0_18*dmats1[18][0] + coeff0_19*dmats1[19][0] + coeff0_20*dmats1[20][0] + coeff0_21*dmats1[21][0] + coeff0_22*dmats1[22][0] + coeff0_23*dmats1[23][0] + coeff0_24*dmats1[24][0] + coeff0_25*dmats1[25][0] + coeff0_26*dmats1[26][0] + coeff0_27*dmats1[27][0] + coeff0_28*dmats1[28][0] + coeff0_29*dmats1[29][0] + coeff0_30*dmats1[30][0] + coeff0_31*dmats1[31][0] + coeff0_32*dmats1[32][0] + coeff0_33*dmats1[33][0] + coeff0_34*dmats1[34][0];
 
927
          new_coeff0_1 = coeff0_0*dmats1[0][1] + coeff0_1*dmats1[1][1] + coeff0_2*dmats1[2][1] + coeff0_3*dmats1[3][1] + coeff0_4*dmats1[4][1] + coeff0_5*dmats1[5][1] + coeff0_6*dmats1[6][1] + coeff0_7*dmats1[7][1] + coeff0_8*dmats1[8][1] + coeff0_9*dmats1[9][1] + coeff0_10*dmats1[10][1] + coeff0_11*dmats1[11][1] + coeff0_12*dmats1[12][1] + coeff0_13*dmats1[13][1] + coeff0_14*dmats1[14][1] + coeff0_15*dmats1[15][1] + coeff0_16*dmats1[16][1] + coeff0_17*dmats1[17][1] + coeff0_18*dmats1[18][1] + coeff0_19*dmats1[19][1] + coeff0_20*dmats1[20][1] + coeff0_21*dmats1[21][1] + coeff0_22*dmats1[22][1] + coeff0_23*dmats1[23][1] + coeff0_24*dmats1[24][1] + coeff0_25*dmats1[25][1] + coeff0_26*dmats1[26][1] + coeff0_27*dmats1[27][1] + coeff0_28*dmats1[28][1] + coeff0_29*dmats1[29][1] + coeff0_30*dmats1[30][1] + coeff0_31*dmats1[31][1] + coeff0_32*dmats1[32][1] + coeff0_33*dmats1[33][1] + coeff0_34*dmats1[34][1];
 
928
          new_coeff0_2 = coeff0_0*dmats1[0][2] + coeff0_1*dmats1[1][2] + coeff0_2*dmats1[2][2] + coeff0_3*dmats1[3][2] + coeff0_4*dmats1[4][2] + coeff0_5*dmats1[5][2] + coeff0_6*dmats1[6][2] + coeff0_7*dmats1[7][2] + coeff0_8*dmats1[8][2] + coeff0_9*dmats1[9][2] + coeff0_10*dmats1[10][2] + coeff0_11*dmats1[11][2] + coeff0_12*dmats1[12][2] + coeff0_13*dmats1[13][2] + coeff0_14*dmats1[14][2] + coeff0_15*dmats1[15][2] + coeff0_16*dmats1[16][2] + coeff0_17*dmats1[17][2] + coeff0_18*dmats1[18][2] + coeff0_19*dmats1[19][2] + coeff0_20*dmats1[20][2] + coeff0_21*dmats1[21][2] + coeff0_22*dmats1[22][2] + coeff0_23*dmats1[23][2] + coeff0_24*dmats1[24][2] + coeff0_25*dmats1[25][2] + coeff0_26*dmats1[26][2] + coeff0_27*dmats1[27][2] + coeff0_28*dmats1[28][2] + coeff0_29*dmats1[29][2] + coeff0_30*dmats1[30][2] + coeff0_31*dmats1[31][2] + coeff0_32*dmats1[32][2] + coeff0_33*dmats1[33][2] + coeff0_34*dmats1[34][2];
 
929
          new_coeff0_3 = coeff0_0*dmats1[0][3] + coeff0_1*dmats1[1][3] + coeff0_2*dmats1[2][3] + coeff0_3*dmats1[3][3] + coeff0_4*dmats1[4][3] + coeff0_5*dmats1[5][3] + coeff0_6*dmats1[6][3] + coeff0_7*dmats1[7][3] + coeff0_8*dmats1[8][3] + coeff0_9*dmats1[9][3] + coeff0_10*dmats1[10][3] + coeff0_11*dmats1[11][3] + coeff0_12*dmats1[12][3] + coeff0_13*dmats1[13][3] + coeff0_14*dmats1[14][3] + coeff0_15*dmats1[15][3] + coeff0_16*dmats1[16][3] + coeff0_17*dmats1[17][3] + coeff0_18*dmats1[18][3] + coeff0_19*dmats1[19][3] + coeff0_20*dmats1[20][3] + coeff0_21*dmats1[21][3] + coeff0_22*dmats1[22][3] + coeff0_23*dmats1[23][3] + coeff0_24*dmats1[24][3] + coeff0_25*dmats1[25][3] + coeff0_26*dmats1[26][3] + coeff0_27*dmats1[27][3] + coeff0_28*dmats1[28][3] + coeff0_29*dmats1[29][3] + coeff0_30*dmats1[30][3] + coeff0_31*dmats1[31][3] + coeff0_32*dmats1[32][3] + coeff0_33*dmats1[33][3] + coeff0_34*dmats1[34][3];
 
930
          new_coeff0_4 = coeff0_0*dmats1[0][4] + coeff0_1*dmats1[1][4] + coeff0_2*dmats1[2][4] + coeff0_3*dmats1[3][4] + coeff0_4*dmats1[4][4] + coeff0_5*dmats1[5][4] + coeff0_6*dmats1[6][4] + coeff0_7*dmats1[7][4] + coeff0_8*dmats1[8][4] + coeff0_9*dmats1[9][4] + coeff0_10*dmats1[10][4] + coeff0_11*dmats1[11][4] + coeff0_12*dmats1[12][4] + coeff0_13*dmats1[13][4] + coeff0_14*dmats1[14][4] + coeff0_15*dmats1[15][4] + coeff0_16*dmats1[16][4] + coeff0_17*dmats1[17][4] + coeff0_18*dmats1[18][4] + coeff0_19*dmats1[19][4] + coeff0_20*dmats1[20][4] + coeff0_21*dmats1[21][4] + coeff0_22*dmats1[22][4] + coeff0_23*dmats1[23][4] + coeff0_24*dmats1[24][4] + coeff0_25*dmats1[25][4] + coeff0_26*dmats1[26][4] + coeff0_27*dmats1[27][4] + coeff0_28*dmats1[28][4] + coeff0_29*dmats1[29][4] + coeff0_30*dmats1[30][4] + coeff0_31*dmats1[31][4] + coeff0_32*dmats1[32][4] + coeff0_33*dmats1[33][4] + coeff0_34*dmats1[34][4];
 
931
          new_coeff0_5 = coeff0_0*dmats1[0][5] + coeff0_1*dmats1[1][5] + coeff0_2*dmats1[2][5] + coeff0_3*dmats1[3][5] + coeff0_4*dmats1[4][5] + coeff0_5*dmats1[5][5] + coeff0_6*dmats1[6][5] + coeff0_7*dmats1[7][5] + coeff0_8*dmats1[8][5] + coeff0_9*dmats1[9][5] + coeff0_10*dmats1[10][5] + coeff0_11*dmats1[11][5] + coeff0_12*dmats1[12][5] + coeff0_13*dmats1[13][5] + coeff0_14*dmats1[14][5] + coeff0_15*dmats1[15][5] + coeff0_16*dmats1[16][5] + coeff0_17*dmats1[17][5] + coeff0_18*dmats1[18][5] + coeff0_19*dmats1[19][5] + coeff0_20*dmats1[20][5] + coeff0_21*dmats1[21][5] + coeff0_22*dmats1[22][5] + coeff0_23*dmats1[23][5] + coeff0_24*dmats1[24][5] + coeff0_25*dmats1[25][5] + coeff0_26*dmats1[26][5] + coeff0_27*dmats1[27][5] + coeff0_28*dmats1[28][5] + coeff0_29*dmats1[29][5] + coeff0_30*dmats1[30][5] + coeff0_31*dmats1[31][5] + coeff0_32*dmats1[32][5] + coeff0_33*dmats1[33][5] + coeff0_34*dmats1[34][5];
 
932
          new_coeff0_6 = coeff0_0*dmats1[0][6] + coeff0_1*dmats1[1][6] + coeff0_2*dmats1[2][6] + coeff0_3*dmats1[3][6] + coeff0_4*dmats1[4][6] + coeff0_5*dmats1[5][6] + coeff0_6*dmats1[6][6] + coeff0_7*dmats1[7][6] + coeff0_8*dmats1[8][6] + coeff0_9*dmats1[9][6] + coeff0_10*dmats1[10][6] + coeff0_11*dmats1[11][6] + coeff0_12*dmats1[12][6] + coeff0_13*dmats1[13][6] + coeff0_14*dmats1[14][6] + coeff0_15*dmats1[15][6] + coeff0_16*dmats1[16][6] + coeff0_17*dmats1[17][6] + coeff0_18*dmats1[18][6] + coeff0_19*dmats1[19][6] + coeff0_20*dmats1[20][6] + coeff0_21*dmats1[21][6] + coeff0_22*dmats1[22][6] + coeff0_23*dmats1[23][6] + coeff0_24*dmats1[24][6] + coeff0_25*dmats1[25][6] + coeff0_26*dmats1[26][6] + coeff0_27*dmats1[27][6] + coeff0_28*dmats1[28][6] + coeff0_29*dmats1[29][6] + coeff0_30*dmats1[30][6] + coeff0_31*dmats1[31][6] + coeff0_32*dmats1[32][6] + coeff0_33*dmats1[33][6] + coeff0_34*dmats1[34][6];
 
933
          new_coeff0_7 = coeff0_0*dmats1[0][7] + coeff0_1*dmats1[1][7] + coeff0_2*dmats1[2][7] + coeff0_3*dmats1[3][7] + coeff0_4*dmats1[4][7] + coeff0_5*dmats1[5][7] + coeff0_6*dmats1[6][7] + coeff0_7*dmats1[7][7] + coeff0_8*dmats1[8][7] + coeff0_9*dmats1[9][7] + coeff0_10*dmats1[10][7] + coeff0_11*dmats1[11][7] + coeff0_12*dmats1[12][7] + coeff0_13*dmats1[13][7] + coeff0_14*dmats1[14][7] + coeff0_15*dmats1[15][7] + coeff0_16*dmats1[16][7] + coeff0_17*dmats1[17][7] + coeff0_18*dmats1[18][7] + coeff0_19*dmats1[19][7] + coeff0_20*dmats1[20][7] + coeff0_21*dmats1[21][7] + coeff0_22*dmats1[22][7] + coeff0_23*dmats1[23][7] + coeff0_24*dmats1[24][7] + coeff0_25*dmats1[25][7] + coeff0_26*dmats1[26][7] + coeff0_27*dmats1[27][7] + coeff0_28*dmats1[28][7] + coeff0_29*dmats1[29][7] + coeff0_30*dmats1[30][7] + coeff0_31*dmats1[31][7] + coeff0_32*dmats1[32][7] + coeff0_33*dmats1[33][7] + coeff0_34*dmats1[34][7];
 
934
          new_coeff0_8 = coeff0_0*dmats1[0][8] + coeff0_1*dmats1[1][8] + coeff0_2*dmats1[2][8] + coeff0_3*dmats1[3][8] + coeff0_4*dmats1[4][8] + coeff0_5*dmats1[5][8] + coeff0_6*dmats1[6][8] + coeff0_7*dmats1[7][8] + coeff0_8*dmats1[8][8] + coeff0_9*dmats1[9][8] + coeff0_10*dmats1[10][8] + coeff0_11*dmats1[11][8] + coeff0_12*dmats1[12][8] + coeff0_13*dmats1[13][8] + coeff0_14*dmats1[14][8] + coeff0_15*dmats1[15][8] + coeff0_16*dmats1[16][8] + coeff0_17*dmats1[17][8] + coeff0_18*dmats1[18][8] + coeff0_19*dmats1[19][8] + coeff0_20*dmats1[20][8] + coeff0_21*dmats1[21][8] + coeff0_22*dmats1[22][8] + coeff0_23*dmats1[23][8] + coeff0_24*dmats1[24][8] + coeff0_25*dmats1[25][8] + coeff0_26*dmats1[26][8] + coeff0_27*dmats1[27][8] + coeff0_28*dmats1[28][8] + coeff0_29*dmats1[29][8] + coeff0_30*dmats1[30][8] + coeff0_31*dmats1[31][8] + coeff0_32*dmats1[32][8] + coeff0_33*dmats1[33][8] + coeff0_34*dmats1[34][8];
 
935
          new_coeff0_9 = coeff0_0*dmats1[0][9] + coeff0_1*dmats1[1][9] + coeff0_2*dmats1[2][9] + coeff0_3*dmats1[3][9] + coeff0_4*dmats1[4][9] + coeff0_5*dmats1[5][9] + coeff0_6*dmats1[6][9] + coeff0_7*dmats1[7][9] + coeff0_8*dmats1[8][9] + coeff0_9*dmats1[9][9] + coeff0_10*dmats1[10][9] + coeff0_11*dmats1[11][9] + coeff0_12*dmats1[12][9] + coeff0_13*dmats1[13][9] + coeff0_14*dmats1[14][9] + coeff0_15*dmats1[15][9] + coeff0_16*dmats1[16][9] + coeff0_17*dmats1[17][9] + coeff0_18*dmats1[18][9] + coeff0_19*dmats1[19][9] + coeff0_20*dmats1[20][9] + coeff0_21*dmats1[21][9] + coeff0_22*dmats1[22][9] + coeff0_23*dmats1[23][9] + coeff0_24*dmats1[24][9] + coeff0_25*dmats1[25][9] + coeff0_26*dmats1[26][9] + coeff0_27*dmats1[27][9] + coeff0_28*dmats1[28][9] + coeff0_29*dmats1[29][9] + coeff0_30*dmats1[30][9] + coeff0_31*dmats1[31][9] + coeff0_32*dmats1[32][9] + coeff0_33*dmats1[33][9] + coeff0_34*dmats1[34][9];
 
936
          new_coeff0_10 = coeff0_0*dmats1[0][10] + coeff0_1*dmats1[1][10] + coeff0_2*dmats1[2][10] + coeff0_3*dmats1[3][10] + coeff0_4*dmats1[4][10] + coeff0_5*dmats1[5][10] + coeff0_6*dmats1[6][10] + coeff0_7*dmats1[7][10] + coeff0_8*dmats1[8][10] + coeff0_9*dmats1[9][10] + coeff0_10*dmats1[10][10] + coeff0_11*dmats1[11][10] + coeff0_12*dmats1[12][10] + coeff0_13*dmats1[13][10] + coeff0_14*dmats1[14][10] + coeff0_15*dmats1[15][10] + coeff0_16*dmats1[16][10] + coeff0_17*dmats1[17][10] + coeff0_18*dmats1[18][10] + coeff0_19*dmats1[19][10] + coeff0_20*dmats1[20][10] + coeff0_21*dmats1[21][10] + coeff0_22*dmats1[22][10] + coeff0_23*dmats1[23][10] + coeff0_24*dmats1[24][10] + coeff0_25*dmats1[25][10] + coeff0_26*dmats1[26][10] + coeff0_27*dmats1[27][10] + coeff0_28*dmats1[28][10] + coeff0_29*dmats1[29][10] + coeff0_30*dmats1[30][10] + coeff0_31*dmats1[31][10] + coeff0_32*dmats1[32][10] + coeff0_33*dmats1[33][10] + coeff0_34*dmats1[34][10];
 
937
          new_coeff0_11 = coeff0_0*dmats1[0][11] + coeff0_1*dmats1[1][11] + coeff0_2*dmats1[2][11] + coeff0_3*dmats1[3][11] + coeff0_4*dmats1[4][11] + coeff0_5*dmats1[5][11] + coeff0_6*dmats1[6][11] + coeff0_7*dmats1[7][11] + coeff0_8*dmats1[8][11] + coeff0_9*dmats1[9][11] + coeff0_10*dmats1[10][11] + coeff0_11*dmats1[11][11] + coeff0_12*dmats1[12][11] + coeff0_13*dmats1[13][11] + coeff0_14*dmats1[14][11] + coeff0_15*dmats1[15][11] + coeff0_16*dmats1[16][11] + coeff0_17*dmats1[17][11] + coeff0_18*dmats1[18][11] + coeff0_19*dmats1[19][11] + coeff0_20*dmats1[20][11] + coeff0_21*dmats1[21][11] + coeff0_22*dmats1[22][11] + coeff0_23*dmats1[23][11] + coeff0_24*dmats1[24][11] + coeff0_25*dmats1[25][11] + coeff0_26*dmats1[26][11] + coeff0_27*dmats1[27][11] + coeff0_28*dmats1[28][11] + coeff0_29*dmats1[29][11] + coeff0_30*dmats1[30][11] + coeff0_31*dmats1[31][11] + coeff0_32*dmats1[32][11] + coeff0_33*dmats1[33][11] + coeff0_34*dmats1[34][11];
 
938
          new_coeff0_12 = coeff0_0*dmats1[0][12] + coeff0_1*dmats1[1][12] + coeff0_2*dmats1[2][12] + coeff0_3*dmats1[3][12] + coeff0_4*dmats1[4][12] + coeff0_5*dmats1[5][12] + coeff0_6*dmats1[6][12] + coeff0_7*dmats1[7][12] + coeff0_8*dmats1[8][12] + coeff0_9*dmats1[9][12] + coeff0_10*dmats1[10][12] + coeff0_11*dmats1[11][12] + coeff0_12*dmats1[12][12] + coeff0_13*dmats1[13][12] + coeff0_14*dmats1[14][12] + coeff0_15*dmats1[15][12] + coeff0_16*dmats1[16][12] + coeff0_17*dmats1[17][12] + coeff0_18*dmats1[18][12] + coeff0_19*dmats1[19][12] + coeff0_20*dmats1[20][12] + coeff0_21*dmats1[21][12] + coeff0_22*dmats1[22][12] + coeff0_23*dmats1[23][12] + coeff0_24*dmats1[24][12] + coeff0_25*dmats1[25][12] + coeff0_26*dmats1[26][12] + coeff0_27*dmats1[27][12] + coeff0_28*dmats1[28][12] + coeff0_29*dmats1[29][12] + coeff0_30*dmats1[30][12] + coeff0_31*dmats1[31][12] + coeff0_32*dmats1[32][12] + coeff0_33*dmats1[33][12] + coeff0_34*dmats1[34][12];
 
939
          new_coeff0_13 = coeff0_0*dmats1[0][13] + coeff0_1*dmats1[1][13] + coeff0_2*dmats1[2][13] + coeff0_3*dmats1[3][13] + coeff0_4*dmats1[4][13] + coeff0_5*dmats1[5][13] + coeff0_6*dmats1[6][13] + coeff0_7*dmats1[7][13] + coeff0_8*dmats1[8][13] + coeff0_9*dmats1[9][13] + coeff0_10*dmats1[10][13] + coeff0_11*dmats1[11][13] + coeff0_12*dmats1[12][13] + coeff0_13*dmats1[13][13] + coeff0_14*dmats1[14][13] + coeff0_15*dmats1[15][13] + coeff0_16*dmats1[16][13] + coeff0_17*dmats1[17][13] + coeff0_18*dmats1[18][13] + coeff0_19*dmats1[19][13] + coeff0_20*dmats1[20][13] + coeff0_21*dmats1[21][13] + coeff0_22*dmats1[22][13] + coeff0_23*dmats1[23][13] + coeff0_24*dmats1[24][13] + coeff0_25*dmats1[25][13] + coeff0_26*dmats1[26][13] + coeff0_27*dmats1[27][13] + coeff0_28*dmats1[28][13] + coeff0_29*dmats1[29][13] + coeff0_30*dmats1[30][13] + coeff0_31*dmats1[31][13] + coeff0_32*dmats1[32][13] + coeff0_33*dmats1[33][13] + coeff0_34*dmats1[34][13];
 
940
          new_coeff0_14 = coeff0_0*dmats1[0][14] + coeff0_1*dmats1[1][14] + coeff0_2*dmats1[2][14] + coeff0_3*dmats1[3][14] + coeff0_4*dmats1[4][14] + coeff0_5*dmats1[5][14] + coeff0_6*dmats1[6][14] + coeff0_7*dmats1[7][14] + coeff0_8*dmats1[8][14] + coeff0_9*dmats1[9][14] + coeff0_10*dmats1[10][14] + coeff0_11*dmats1[11][14] + coeff0_12*dmats1[12][14] + coeff0_13*dmats1[13][14] + coeff0_14*dmats1[14][14] + coeff0_15*dmats1[15][14] + coeff0_16*dmats1[16][14] + coeff0_17*dmats1[17][14] + coeff0_18*dmats1[18][14] + coeff0_19*dmats1[19][14] + coeff0_20*dmats1[20][14] + coeff0_21*dmats1[21][14] + coeff0_22*dmats1[22][14] + coeff0_23*dmats1[23][14] + coeff0_24*dmats1[24][14] + coeff0_25*dmats1[25][14] + coeff0_26*dmats1[26][14] + coeff0_27*dmats1[27][14] + coeff0_28*dmats1[28][14] + coeff0_29*dmats1[29][14] + coeff0_30*dmats1[30][14] + coeff0_31*dmats1[31][14] + coeff0_32*dmats1[32][14] + coeff0_33*dmats1[33][14] + coeff0_34*dmats1[34][14];
 
941
          new_coeff0_15 = coeff0_0*dmats1[0][15] + coeff0_1*dmats1[1][15] + coeff0_2*dmats1[2][15] + coeff0_3*dmats1[3][15] + coeff0_4*dmats1[4][15] + coeff0_5*dmats1[5][15] + coeff0_6*dmats1[6][15] + coeff0_7*dmats1[7][15] + coeff0_8*dmats1[8][15] + coeff0_9*dmats1[9][15] + coeff0_10*dmats1[10][15] + coeff0_11*dmats1[11][15] + coeff0_12*dmats1[12][15] + coeff0_13*dmats1[13][15] + coeff0_14*dmats1[14][15] + coeff0_15*dmats1[15][15] + coeff0_16*dmats1[16][15] + coeff0_17*dmats1[17][15] + coeff0_18*dmats1[18][15] + coeff0_19*dmats1[19][15] + coeff0_20*dmats1[20][15] + coeff0_21*dmats1[21][15] + coeff0_22*dmats1[22][15] + coeff0_23*dmats1[23][15] + coeff0_24*dmats1[24][15] + coeff0_25*dmats1[25][15] + coeff0_26*dmats1[26][15] + coeff0_27*dmats1[27][15] + coeff0_28*dmats1[28][15] + coeff0_29*dmats1[29][15] + coeff0_30*dmats1[30][15] + coeff0_31*dmats1[31][15] + coeff0_32*dmats1[32][15] + coeff0_33*dmats1[33][15] + coeff0_34*dmats1[34][15];
 
942
          new_coeff0_16 = coeff0_0*dmats1[0][16] + coeff0_1*dmats1[1][16] + coeff0_2*dmats1[2][16] + coeff0_3*dmats1[3][16] + coeff0_4*dmats1[4][16] + coeff0_5*dmats1[5][16] + coeff0_6*dmats1[6][16] + coeff0_7*dmats1[7][16] + coeff0_8*dmats1[8][16] + coeff0_9*dmats1[9][16] + coeff0_10*dmats1[10][16] + coeff0_11*dmats1[11][16] + coeff0_12*dmats1[12][16] + coeff0_13*dmats1[13][16] + coeff0_14*dmats1[14][16] + coeff0_15*dmats1[15][16] + coeff0_16*dmats1[16][16] + coeff0_17*dmats1[17][16] + coeff0_18*dmats1[18][16] + coeff0_19*dmats1[19][16] + coeff0_20*dmats1[20][16] + coeff0_21*dmats1[21][16] + coeff0_22*dmats1[22][16] + coeff0_23*dmats1[23][16] + coeff0_24*dmats1[24][16] + coeff0_25*dmats1[25][16] + coeff0_26*dmats1[26][16] + coeff0_27*dmats1[27][16] + coeff0_28*dmats1[28][16] + coeff0_29*dmats1[29][16] + coeff0_30*dmats1[30][16] + coeff0_31*dmats1[31][16] + coeff0_32*dmats1[32][16] + coeff0_33*dmats1[33][16] + coeff0_34*dmats1[34][16];
 
943
          new_coeff0_17 = coeff0_0*dmats1[0][17] + coeff0_1*dmats1[1][17] + coeff0_2*dmats1[2][17] + coeff0_3*dmats1[3][17] + coeff0_4*dmats1[4][17] + coeff0_5*dmats1[5][17] + coeff0_6*dmats1[6][17] + coeff0_7*dmats1[7][17] + coeff0_8*dmats1[8][17] + coeff0_9*dmats1[9][17] + coeff0_10*dmats1[10][17] + coeff0_11*dmats1[11][17] + coeff0_12*dmats1[12][17] + coeff0_13*dmats1[13][17] + coeff0_14*dmats1[14][17] + coeff0_15*dmats1[15][17] + coeff0_16*dmats1[16][17] + coeff0_17*dmats1[17][17] + coeff0_18*dmats1[18][17] + coeff0_19*dmats1[19][17] + coeff0_20*dmats1[20][17] + coeff0_21*dmats1[21][17] + coeff0_22*dmats1[22][17] + coeff0_23*dmats1[23][17] + coeff0_24*dmats1[24][17] + coeff0_25*dmats1[25][17] + coeff0_26*dmats1[26][17] + coeff0_27*dmats1[27][17] + coeff0_28*dmats1[28][17] + coeff0_29*dmats1[29][17] + coeff0_30*dmats1[30][17] + coeff0_31*dmats1[31][17] + coeff0_32*dmats1[32][17] + coeff0_33*dmats1[33][17] + coeff0_34*dmats1[34][17];
 
944
          new_coeff0_18 = coeff0_0*dmats1[0][18] + coeff0_1*dmats1[1][18] + coeff0_2*dmats1[2][18] + coeff0_3*dmats1[3][18] + coeff0_4*dmats1[4][18] + coeff0_5*dmats1[5][18] + coeff0_6*dmats1[6][18] + coeff0_7*dmats1[7][18] + coeff0_8*dmats1[8][18] + coeff0_9*dmats1[9][18] + coeff0_10*dmats1[10][18] + coeff0_11*dmats1[11][18] + coeff0_12*dmats1[12][18] + coeff0_13*dmats1[13][18] + coeff0_14*dmats1[14][18] + coeff0_15*dmats1[15][18] + coeff0_16*dmats1[16][18] + coeff0_17*dmats1[17][18] + coeff0_18*dmats1[18][18] + coeff0_19*dmats1[19][18] + coeff0_20*dmats1[20][18] + coeff0_21*dmats1[21][18] + coeff0_22*dmats1[22][18] + coeff0_23*dmats1[23][18] + coeff0_24*dmats1[24][18] + coeff0_25*dmats1[25][18] + coeff0_26*dmats1[26][18] + coeff0_27*dmats1[27][18] + coeff0_28*dmats1[28][18] + coeff0_29*dmats1[29][18] + coeff0_30*dmats1[30][18] + coeff0_31*dmats1[31][18] + coeff0_32*dmats1[32][18] + coeff0_33*dmats1[33][18] + coeff0_34*dmats1[34][18];
 
945
          new_coeff0_19 = coeff0_0*dmats1[0][19] + coeff0_1*dmats1[1][19] + coeff0_2*dmats1[2][19] + coeff0_3*dmats1[3][19] + coeff0_4*dmats1[4][19] + coeff0_5*dmats1[5][19] + coeff0_6*dmats1[6][19] + coeff0_7*dmats1[7][19] + coeff0_8*dmats1[8][19] + coeff0_9*dmats1[9][19] + coeff0_10*dmats1[10][19] + coeff0_11*dmats1[11][19] + coeff0_12*dmats1[12][19] + coeff0_13*dmats1[13][19] + coeff0_14*dmats1[14][19] + coeff0_15*dmats1[15][19] + coeff0_16*dmats1[16][19] + coeff0_17*dmats1[17][19] + coeff0_18*dmats1[18][19] + coeff0_19*dmats1[19][19] + coeff0_20*dmats1[20][19] + coeff0_21*dmats1[21][19] + coeff0_22*dmats1[22][19] + coeff0_23*dmats1[23][19] + coeff0_24*dmats1[24][19] + coeff0_25*dmats1[25][19] + coeff0_26*dmats1[26][19] + coeff0_27*dmats1[27][19] + coeff0_28*dmats1[28][19] + coeff0_29*dmats1[29][19] + coeff0_30*dmats1[30][19] + coeff0_31*dmats1[31][19] + coeff0_32*dmats1[32][19] + coeff0_33*dmats1[33][19] + coeff0_34*dmats1[34][19];
 
946
          new_coeff0_20 = coeff0_0*dmats1[0][20] + coeff0_1*dmats1[1][20] + coeff0_2*dmats1[2][20] + coeff0_3*dmats1[3][20] + coeff0_4*dmats1[4][20] + coeff0_5*dmats1[5][20] + coeff0_6*dmats1[6][20] + coeff0_7*dmats1[7][20] + coeff0_8*dmats1[8][20] + coeff0_9*dmats1[9][20] + coeff0_10*dmats1[10][20] + coeff0_11*dmats1[11][20] + coeff0_12*dmats1[12][20] + coeff0_13*dmats1[13][20] + coeff0_14*dmats1[14][20] + coeff0_15*dmats1[15][20] + coeff0_16*dmats1[16][20] + coeff0_17*dmats1[17][20] + coeff0_18*dmats1[18][20] + coeff0_19*dmats1[19][20] + coeff0_20*dmats1[20][20] + coeff0_21*dmats1[21][20] + coeff0_22*dmats1[22][20] + coeff0_23*dmats1[23][20] + coeff0_24*dmats1[24][20] + coeff0_25*dmats1[25][20] + coeff0_26*dmats1[26][20] + coeff0_27*dmats1[27][20] + coeff0_28*dmats1[28][20] + coeff0_29*dmats1[29][20] + coeff0_30*dmats1[30][20] + coeff0_31*dmats1[31][20] + coeff0_32*dmats1[32][20] + coeff0_33*dmats1[33][20] + coeff0_34*dmats1[34][20];
 
947
          new_coeff0_21 = coeff0_0*dmats1[0][21] + coeff0_1*dmats1[1][21] + coeff0_2*dmats1[2][21] + coeff0_3*dmats1[3][21] + coeff0_4*dmats1[4][21] + coeff0_5*dmats1[5][21] + coeff0_6*dmats1[6][21] + coeff0_7*dmats1[7][21] + coeff0_8*dmats1[8][21] + coeff0_9*dmats1[9][21] + coeff0_10*dmats1[10][21] + coeff0_11*dmats1[11][21] + coeff0_12*dmats1[12][21] + coeff0_13*dmats1[13][21] + coeff0_14*dmats1[14][21] + coeff0_15*dmats1[15][21] + coeff0_16*dmats1[16][21] + coeff0_17*dmats1[17][21] + coeff0_18*dmats1[18][21] + coeff0_19*dmats1[19][21] + coeff0_20*dmats1[20][21] + coeff0_21*dmats1[21][21] + coeff0_22*dmats1[22][21] + coeff0_23*dmats1[23][21] + coeff0_24*dmats1[24][21] + coeff0_25*dmats1[25][21] + coeff0_26*dmats1[26][21] + coeff0_27*dmats1[27][21] + coeff0_28*dmats1[28][21] + coeff0_29*dmats1[29][21] + coeff0_30*dmats1[30][21] + coeff0_31*dmats1[31][21] + coeff0_32*dmats1[32][21] + coeff0_33*dmats1[33][21] + coeff0_34*dmats1[34][21];
 
948
          new_coeff0_22 = coeff0_0*dmats1[0][22] + coeff0_1*dmats1[1][22] + coeff0_2*dmats1[2][22] + coeff0_3*dmats1[3][22] + coeff0_4*dmats1[4][22] + coeff0_5*dmats1[5][22] + coeff0_6*dmats1[6][22] + coeff0_7*dmats1[7][22] + coeff0_8*dmats1[8][22] + coeff0_9*dmats1[9][22] + coeff0_10*dmats1[10][22] + coeff0_11*dmats1[11][22] + coeff0_12*dmats1[12][22] + coeff0_13*dmats1[13][22] + coeff0_14*dmats1[14][22] + coeff0_15*dmats1[15][22] + coeff0_16*dmats1[16][22] + coeff0_17*dmats1[17][22] + coeff0_18*dmats1[18][22] + coeff0_19*dmats1[19][22] + coeff0_20*dmats1[20][22] + coeff0_21*dmats1[21][22] + coeff0_22*dmats1[22][22] + coeff0_23*dmats1[23][22] + coeff0_24*dmats1[24][22] + coeff0_25*dmats1[25][22] + coeff0_26*dmats1[26][22] + coeff0_27*dmats1[27][22] + coeff0_28*dmats1[28][22] + coeff0_29*dmats1[29][22] + coeff0_30*dmats1[30][22] + coeff0_31*dmats1[31][22] + coeff0_32*dmats1[32][22] + coeff0_33*dmats1[33][22] + coeff0_34*dmats1[34][22];
 
949
          new_coeff0_23 = coeff0_0*dmats1[0][23] + coeff0_1*dmats1[1][23] + coeff0_2*dmats1[2][23] + coeff0_3*dmats1[3][23] + coeff0_4*dmats1[4][23] + coeff0_5*dmats1[5][23] + coeff0_6*dmats1[6][23] + coeff0_7*dmats1[7][23] + coeff0_8*dmats1[8][23] + coeff0_9*dmats1[9][23] + coeff0_10*dmats1[10][23] + coeff0_11*dmats1[11][23] + coeff0_12*dmats1[12][23] + coeff0_13*dmats1[13][23] + coeff0_14*dmats1[14][23] + coeff0_15*dmats1[15][23] + coeff0_16*dmats1[16][23] + coeff0_17*dmats1[17][23] + coeff0_18*dmats1[18][23] + coeff0_19*dmats1[19][23] + coeff0_20*dmats1[20][23] + coeff0_21*dmats1[21][23] + coeff0_22*dmats1[22][23] + coeff0_23*dmats1[23][23] + coeff0_24*dmats1[24][23] + coeff0_25*dmats1[25][23] + coeff0_26*dmats1[26][23] + coeff0_27*dmats1[27][23] + coeff0_28*dmats1[28][23] + coeff0_29*dmats1[29][23] + coeff0_30*dmats1[30][23] + coeff0_31*dmats1[31][23] + coeff0_32*dmats1[32][23] + coeff0_33*dmats1[33][23] + coeff0_34*dmats1[34][23];
 
950
          new_coeff0_24 = coeff0_0*dmats1[0][24] + coeff0_1*dmats1[1][24] + coeff0_2*dmats1[2][24] + coeff0_3*dmats1[3][24] + coeff0_4*dmats1[4][24] + coeff0_5*dmats1[5][24] + coeff0_6*dmats1[6][24] + coeff0_7*dmats1[7][24] + coeff0_8*dmats1[8][24] + coeff0_9*dmats1[9][24] + coeff0_10*dmats1[10][24] + coeff0_11*dmats1[11][24] + coeff0_12*dmats1[12][24] + coeff0_13*dmats1[13][24] + coeff0_14*dmats1[14][24] + coeff0_15*dmats1[15][24] + coeff0_16*dmats1[16][24] + coeff0_17*dmats1[17][24] + coeff0_18*dmats1[18][24] + coeff0_19*dmats1[19][24] + coeff0_20*dmats1[20][24] + coeff0_21*dmats1[21][24] + coeff0_22*dmats1[22][24] + coeff0_23*dmats1[23][24] + coeff0_24*dmats1[24][24] + coeff0_25*dmats1[25][24] + coeff0_26*dmats1[26][24] + coeff0_27*dmats1[27][24] + coeff0_28*dmats1[28][24] + coeff0_29*dmats1[29][24] + coeff0_30*dmats1[30][24] + coeff0_31*dmats1[31][24] + coeff0_32*dmats1[32][24] + coeff0_33*dmats1[33][24] + coeff0_34*dmats1[34][24];
 
951
          new_coeff0_25 = coeff0_0*dmats1[0][25] + coeff0_1*dmats1[1][25] + coeff0_2*dmats1[2][25] + coeff0_3*dmats1[3][25] + coeff0_4*dmats1[4][25] + coeff0_5*dmats1[5][25] + coeff0_6*dmats1[6][25] + coeff0_7*dmats1[7][25] + coeff0_8*dmats1[8][25] + coeff0_9*dmats1[9][25] + coeff0_10*dmats1[10][25] + coeff0_11*dmats1[11][25] + coeff0_12*dmats1[12][25] + coeff0_13*dmats1[13][25] + coeff0_14*dmats1[14][25] + coeff0_15*dmats1[15][25] + coeff0_16*dmats1[16][25] + coeff0_17*dmats1[17][25] + coeff0_18*dmats1[18][25] + coeff0_19*dmats1[19][25] + coeff0_20*dmats1[20][25] + coeff0_21*dmats1[21][25] + coeff0_22*dmats1[22][25] + coeff0_23*dmats1[23][25] + coeff0_24*dmats1[24][25] + coeff0_25*dmats1[25][25] + coeff0_26*dmats1[26][25] + coeff0_27*dmats1[27][25] + coeff0_28*dmats1[28][25] + coeff0_29*dmats1[29][25] + coeff0_30*dmats1[30][25] + coeff0_31*dmats1[31][25] + coeff0_32*dmats1[32][25] + coeff0_33*dmats1[33][25] + coeff0_34*dmats1[34][25];
 
952
          new_coeff0_26 = coeff0_0*dmats1[0][26] + coeff0_1*dmats1[1][26] + coeff0_2*dmats1[2][26] + coeff0_3*dmats1[3][26] + coeff0_4*dmats1[4][26] + coeff0_5*dmats1[5][26] + coeff0_6*dmats1[6][26] + coeff0_7*dmats1[7][26] + coeff0_8*dmats1[8][26] + coeff0_9*dmats1[9][26] + coeff0_10*dmats1[10][26] + coeff0_11*dmats1[11][26] + coeff0_12*dmats1[12][26] + coeff0_13*dmats1[13][26] + coeff0_14*dmats1[14][26] + coeff0_15*dmats1[15][26] + coeff0_16*dmats1[16][26] + coeff0_17*dmats1[17][26] + coeff0_18*dmats1[18][26] + coeff0_19*dmats1[19][26] + coeff0_20*dmats1[20][26] + coeff0_21*dmats1[21][26] + coeff0_22*dmats1[22][26] + coeff0_23*dmats1[23][26] + coeff0_24*dmats1[24][26] + coeff0_25*dmats1[25][26] + coeff0_26*dmats1[26][26] + coeff0_27*dmats1[27][26] + coeff0_28*dmats1[28][26] + coeff0_29*dmats1[29][26] + coeff0_30*dmats1[30][26] + coeff0_31*dmats1[31][26] + coeff0_32*dmats1[32][26] + coeff0_33*dmats1[33][26] + coeff0_34*dmats1[34][26];
 
953
          new_coeff0_27 = coeff0_0*dmats1[0][27] + coeff0_1*dmats1[1][27] + coeff0_2*dmats1[2][27] + coeff0_3*dmats1[3][27] + coeff0_4*dmats1[4][27] + coeff0_5*dmats1[5][27] + coeff0_6*dmats1[6][27] + coeff0_7*dmats1[7][27] + coeff0_8*dmats1[8][27] + coeff0_9*dmats1[9][27] + coeff0_10*dmats1[10][27] + coeff0_11*dmats1[11][27] + coeff0_12*dmats1[12][27] + coeff0_13*dmats1[13][27] + coeff0_14*dmats1[14][27] + coeff0_15*dmats1[15][27] + coeff0_16*dmats1[16][27] + coeff0_17*dmats1[17][27] + coeff0_18*dmats1[18][27] + coeff0_19*dmats1[19][27] + coeff0_20*dmats1[20][27] + coeff0_21*dmats1[21][27] + coeff0_22*dmats1[22][27] + coeff0_23*dmats1[23][27] + coeff0_24*dmats1[24][27] + coeff0_25*dmats1[25][27] + coeff0_26*dmats1[26][27] + coeff0_27*dmats1[27][27] + coeff0_28*dmats1[28][27] + coeff0_29*dmats1[29][27] + coeff0_30*dmats1[30][27] + coeff0_31*dmats1[31][27] + coeff0_32*dmats1[32][27] + coeff0_33*dmats1[33][27] + coeff0_34*dmats1[34][27];
 
954
          new_coeff0_28 = coeff0_0*dmats1[0][28] + coeff0_1*dmats1[1][28] + coeff0_2*dmats1[2][28] + coeff0_3*dmats1[3][28] + coeff0_4*dmats1[4][28] + coeff0_5*dmats1[5][28] + coeff0_6*dmats1[6][28] + coeff0_7*dmats1[7][28] + coeff0_8*dmats1[8][28] + coeff0_9*dmats1[9][28] + coeff0_10*dmats1[10][28] + coeff0_11*dmats1[11][28] + coeff0_12*dmats1[12][28] + coeff0_13*dmats1[13][28] + coeff0_14*dmats1[14][28] + coeff0_15*dmats1[15][28] + coeff0_16*dmats1[16][28] + coeff0_17*dmats1[17][28] + coeff0_18*dmats1[18][28] + coeff0_19*dmats1[19][28] + coeff0_20*dmats1[20][28] + coeff0_21*dmats1[21][28] + coeff0_22*dmats1[22][28] + coeff0_23*dmats1[23][28] + coeff0_24*dmats1[24][28] + coeff0_25*dmats1[25][28] + coeff0_26*dmats1[26][28] + coeff0_27*dmats1[27][28] + coeff0_28*dmats1[28][28] + coeff0_29*dmats1[29][28] + coeff0_30*dmats1[30][28] + coeff0_31*dmats1[31][28] + coeff0_32*dmats1[32][28] + coeff0_33*dmats1[33][28] + coeff0_34*dmats1[34][28];
 
955
          new_coeff0_29 = coeff0_0*dmats1[0][29] + coeff0_1*dmats1[1][29] + coeff0_2*dmats1[2][29] + coeff0_3*dmats1[3][29] + coeff0_4*dmats1[4][29] + coeff0_5*dmats1[5][29] + coeff0_6*dmats1[6][29] + coeff0_7*dmats1[7][29] + coeff0_8*dmats1[8][29] + coeff0_9*dmats1[9][29] + coeff0_10*dmats1[10][29] + coeff0_11*dmats1[11][29] + coeff0_12*dmats1[12][29] + coeff0_13*dmats1[13][29] + coeff0_14*dmats1[14][29] + coeff0_15*dmats1[15][29] + coeff0_16*dmats1[16][29] + coeff0_17*dmats1[17][29] + coeff0_18*dmats1[18][29] + coeff0_19*dmats1[19][29] + coeff0_20*dmats1[20][29] + coeff0_21*dmats1[21][29] + coeff0_22*dmats1[22][29] + coeff0_23*dmats1[23][29] + coeff0_24*dmats1[24][29] + coeff0_25*dmats1[25][29] + coeff0_26*dmats1[26][29] + coeff0_27*dmats1[27][29] + coeff0_28*dmats1[28][29] + coeff0_29*dmats1[29][29] + coeff0_30*dmats1[30][29] + coeff0_31*dmats1[31][29] + coeff0_32*dmats1[32][29] + coeff0_33*dmats1[33][29] + coeff0_34*dmats1[34][29];
 
956
          new_coeff0_30 = coeff0_0*dmats1[0][30] + coeff0_1*dmats1[1][30] + coeff0_2*dmats1[2][30] + coeff0_3*dmats1[3][30] + coeff0_4*dmats1[4][30] + coeff0_5*dmats1[5][30] + coeff0_6*dmats1[6][30] + coeff0_7*dmats1[7][30] + coeff0_8*dmats1[8][30] + coeff0_9*dmats1[9][30] + coeff0_10*dmats1[10][30] + coeff0_11*dmats1[11][30] + coeff0_12*dmats1[12][30] + coeff0_13*dmats1[13][30] + coeff0_14*dmats1[14][30] + coeff0_15*dmats1[15][30] + coeff0_16*dmats1[16][30] + coeff0_17*dmats1[17][30] + coeff0_18*dmats1[18][30] + coeff0_19*dmats1[19][30] + coeff0_20*dmats1[20][30] + coeff0_21*dmats1[21][30] + coeff0_22*dmats1[22][30] + coeff0_23*dmats1[23][30] + coeff0_24*dmats1[24][30] + coeff0_25*dmats1[25][30] + coeff0_26*dmats1[26][30] + coeff0_27*dmats1[27][30] + coeff0_28*dmats1[28][30] + coeff0_29*dmats1[29][30] + coeff0_30*dmats1[30][30] + coeff0_31*dmats1[31][30] + coeff0_32*dmats1[32][30] + coeff0_33*dmats1[33][30] + coeff0_34*dmats1[34][30];
 
957
          new_coeff0_31 = coeff0_0*dmats1[0][31] + coeff0_1*dmats1[1][31] + coeff0_2*dmats1[2][31] + coeff0_3*dmats1[3][31] + coeff0_4*dmats1[4][31] + coeff0_5*dmats1[5][31] + coeff0_6*dmats1[6][31] + coeff0_7*dmats1[7][31] + coeff0_8*dmats1[8][31] + coeff0_9*dmats1[9][31] + coeff0_10*dmats1[10][31] + coeff0_11*dmats1[11][31] + coeff0_12*dmats1[12][31] + coeff0_13*dmats1[13][31] + coeff0_14*dmats1[14][31] + coeff0_15*dmats1[15][31] + coeff0_16*dmats1[16][31] + coeff0_17*dmats1[17][31] + coeff0_18*dmats1[18][31] + coeff0_19*dmats1[19][31] + coeff0_20*dmats1[20][31] + coeff0_21*dmats1[21][31] + coeff0_22*dmats1[22][31] + coeff0_23*dmats1[23][31] + coeff0_24*dmats1[24][31] + coeff0_25*dmats1[25][31] + coeff0_26*dmats1[26][31] + coeff0_27*dmats1[27][31] + coeff0_28*dmats1[28][31] + coeff0_29*dmats1[29][31] + coeff0_30*dmats1[30][31] + coeff0_31*dmats1[31][31] + coeff0_32*dmats1[32][31] + coeff0_33*dmats1[33][31] + coeff0_34*dmats1[34][31];
 
958
          new_coeff0_32 = coeff0_0*dmats1[0][32] + coeff0_1*dmats1[1][32] + coeff0_2*dmats1[2][32] + coeff0_3*dmats1[3][32] + coeff0_4*dmats1[4][32] + coeff0_5*dmats1[5][32] + coeff0_6*dmats1[6][32] + coeff0_7*dmats1[7][32] + coeff0_8*dmats1[8][32] + coeff0_9*dmats1[9][32] + coeff0_10*dmats1[10][32] + coeff0_11*dmats1[11][32] + coeff0_12*dmats1[12][32] + coeff0_13*dmats1[13][32] + coeff0_14*dmats1[14][32] + coeff0_15*dmats1[15][32] + coeff0_16*dmats1[16][32] + coeff0_17*dmats1[17][32] + coeff0_18*dmats1[18][32] + coeff0_19*dmats1[19][32] + coeff0_20*dmats1[20][32] + coeff0_21*dmats1[21][32] + coeff0_22*dmats1[22][32] + coeff0_23*dmats1[23][32] + coeff0_24*dmats1[24][32] + coeff0_25*dmats1[25][32] + coeff0_26*dmats1[26][32] + coeff0_27*dmats1[27][32] + coeff0_28*dmats1[28][32] + coeff0_29*dmats1[29][32] + coeff0_30*dmats1[30][32] + coeff0_31*dmats1[31][32] + coeff0_32*dmats1[32][32] + coeff0_33*dmats1[33][32] + coeff0_34*dmats1[34][32];
 
959
          new_coeff0_33 = coeff0_0*dmats1[0][33] + coeff0_1*dmats1[1][33] + coeff0_2*dmats1[2][33] + coeff0_3*dmats1[3][33] + coeff0_4*dmats1[4][33] + coeff0_5*dmats1[5][33] + coeff0_6*dmats1[6][33] + coeff0_7*dmats1[7][33] + coeff0_8*dmats1[8][33] + coeff0_9*dmats1[9][33] + coeff0_10*dmats1[10][33] + coeff0_11*dmats1[11][33] + coeff0_12*dmats1[12][33] + coeff0_13*dmats1[13][33] + coeff0_14*dmats1[14][33] + coeff0_15*dmats1[15][33] + coeff0_16*dmats1[16][33] + coeff0_17*dmats1[17][33] + coeff0_18*dmats1[18][33] + coeff0_19*dmats1[19][33] + coeff0_20*dmats1[20][33] + coeff0_21*dmats1[21][33] + coeff0_22*dmats1[22][33] + coeff0_23*dmats1[23][33] + coeff0_24*dmats1[24][33] + coeff0_25*dmats1[25][33] + coeff0_26*dmats1[26][33] + coeff0_27*dmats1[27][33] + coeff0_28*dmats1[28][33] + coeff0_29*dmats1[29][33] + coeff0_30*dmats1[30][33] + coeff0_31*dmats1[31][33] + coeff0_32*dmats1[32][33] + coeff0_33*dmats1[33][33] + coeff0_34*dmats1[34][33];
 
960
          new_coeff0_34 = coeff0_0*dmats1[0][34] + coeff0_1*dmats1[1][34] + coeff0_2*dmats1[2][34] + coeff0_3*dmats1[3][34] + coeff0_4*dmats1[4][34] + coeff0_5*dmats1[5][34] + coeff0_6*dmats1[6][34] + coeff0_7*dmats1[7][34] + coeff0_8*dmats1[8][34] + coeff0_9*dmats1[9][34] + coeff0_10*dmats1[10][34] + coeff0_11*dmats1[11][34] + coeff0_12*dmats1[12][34] + coeff0_13*dmats1[13][34] + coeff0_14*dmats1[14][34] + coeff0_15*dmats1[15][34] + coeff0_16*dmats1[16][34] + coeff0_17*dmats1[17][34] + coeff0_18*dmats1[18][34] + coeff0_19*dmats1[19][34] + coeff0_20*dmats1[20][34] + coeff0_21*dmats1[21][34] + coeff0_22*dmats1[22][34] + coeff0_23*dmats1[23][34] + coeff0_24*dmats1[24][34] + coeff0_25*dmats1[25][34] + coeff0_26*dmats1[26][34] + coeff0_27*dmats1[27][34] + coeff0_28*dmats1[28][34] + coeff0_29*dmats1[29][34] + coeff0_30*dmats1[30][34] + coeff0_31*dmats1[31][34] + coeff0_32*dmats1[32][34] + coeff0_33*dmats1[33][34] + coeff0_34*dmats1[34][34];
 
961
        }
 
962
        if(combinations[deriv_num][j] == 2)
 
963
        {
 
964
          new_coeff0_0 = coeff0_0*dmats2[0][0] + coeff0_1*dmats2[1][0] + coeff0_2*dmats2[2][0] + coeff0_3*dmats2[3][0] + coeff0_4*dmats2[4][0] + coeff0_5*dmats2[5][0] + coeff0_6*dmats2[6][0] + coeff0_7*dmats2[7][0] + coeff0_8*dmats2[8][0] + coeff0_9*dmats2[9][0] + coeff0_10*dmats2[10][0] + coeff0_11*dmats2[11][0] + coeff0_12*dmats2[12][0] + coeff0_13*dmats2[13][0] + coeff0_14*dmats2[14][0] + coeff0_15*dmats2[15][0] + coeff0_16*dmats2[16][0] + coeff0_17*dmats2[17][0] + coeff0_18*dmats2[18][0] + coeff0_19*dmats2[19][0] + coeff0_20*dmats2[20][0] + coeff0_21*dmats2[21][0] + coeff0_22*dmats2[22][0] + coeff0_23*dmats2[23][0] + coeff0_24*dmats2[24][0] + coeff0_25*dmats2[25][0] + coeff0_26*dmats2[26][0] + coeff0_27*dmats2[27][0] + coeff0_28*dmats2[28][0] + coeff0_29*dmats2[29][0] + coeff0_30*dmats2[30][0] + coeff0_31*dmats2[31][0] + coeff0_32*dmats2[32][0] + coeff0_33*dmats2[33][0] + coeff0_34*dmats2[34][0];
 
965
          new_coeff0_1 = coeff0_0*dmats2[0][1] + coeff0_1*dmats2[1][1] + coeff0_2*dmats2[2][1] + coeff0_3*dmats2[3][1] + coeff0_4*dmats2[4][1] + coeff0_5*dmats2[5][1] + coeff0_6*dmats2[6][1] + coeff0_7*dmats2[7][1] + coeff0_8*dmats2[8][1] + coeff0_9*dmats2[9][1] + coeff0_10*dmats2[10][1] + coeff0_11*dmats2[11][1] + coeff0_12*dmats2[12][1] + coeff0_13*dmats2[13][1] + coeff0_14*dmats2[14][1] + coeff0_15*dmats2[15][1] + coeff0_16*dmats2[16][1] + coeff0_17*dmats2[17][1] + coeff0_18*dmats2[18][1] + coeff0_19*dmats2[19][1] + coeff0_20*dmats2[20][1] + coeff0_21*dmats2[21][1] + coeff0_22*dmats2[22][1] + coeff0_23*dmats2[23][1] + coeff0_24*dmats2[24][1] + coeff0_25*dmats2[25][1] + coeff0_26*dmats2[26][1] + coeff0_27*dmats2[27][1] + coeff0_28*dmats2[28][1] + coeff0_29*dmats2[29][1] + coeff0_30*dmats2[30][1] + coeff0_31*dmats2[31][1] + coeff0_32*dmats2[32][1] + coeff0_33*dmats2[33][1] + coeff0_34*dmats2[34][1];
 
966
          new_coeff0_2 = coeff0_0*dmats2[0][2] + coeff0_1*dmats2[1][2] + coeff0_2*dmats2[2][2] + coeff0_3*dmats2[3][2] + coeff0_4*dmats2[4][2] + coeff0_5*dmats2[5][2] + coeff0_6*dmats2[6][2] + coeff0_7*dmats2[7][2] + coeff0_8*dmats2[8][2] + coeff0_9*dmats2[9][2] + coeff0_10*dmats2[10][2] + coeff0_11*dmats2[11][2] + coeff0_12*dmats2[12][2] + coeff0_13*dmats2[13][2] + coeff0_14*dmats2[14][2] + coeff0_15*dmats2[15][2] + coeff0_16*dmats2[16][2] + coeff0_17*dmats2[17][2] + coeff0_18*dmats2[18][2] + coeff0_19*dmats2[19][2] + coeff0_20*dmats2[20][2] + coeff0_21*dmats2[21][2] + coeff0_22*dmats2[22][2] + coeff0_23*dmats2[23][2] + coeff0_24*dmats2[24][2] + coeff0_25*dmats2[25][2] + coeff0_26*dmats2[26][2] + coeff0_27*dmats2[27][2] + coeff0_28*dmats2[28][2] + coeff0_29*dmats2[29][2] + coeff0_30*dmats2[30][2] + coeff0_31*dmats2[31][2] + coeff0_32*dmats2[32][2] + coeff0_33*dmats2[33][2] + coeff0_34*dmats2[34][2];
 
967
          new_coeff0_3 = coeff0_0*dmats2[0][3] + coeff0_1*dmats2[1][3] + coeff0_2*dmats2[2][3] + coeff0_3*dmats2[3][3] + coeff0_4*dmats2[4][3] + coeff0_5*dmats2[5][3] + coeff0_6*dmats2[6][3] + coeff0_7*dmats2[7][3] + coeff0_8*dmats2[8][3] + coeff0_9*dmats2[9][3] + coeff0_10*dmats2[10][3] + coeff0_11*dmats2[11][3] + coeff0_12*dmats2[12][3] + coeff0_13*dmats2[13][3] + coeff0_14*dmats2[14][3] + coeff0_15*dmats2[15][3] + coeff0_16*dmats2[16][3] + coeff0_17*dmats2[17][3] + coeff0_18*dmats2[18][3] + coeff0_19*dmats2[19][3] + coeff0_20*dmats2[20][3] + coeff0_21*dmats2[21][3] + coeff0_22*dmats2[22][3] + coeff0_23*dmats2[23][3] + coeff0_24*dmats2[24][3] + coeff0_25*dmats2[25][3] + coeff0_26*dmats2[26][3] + coeff0_27*dmats2[27][3] + coeff0_28*dmats2[28][3] + coeff0_29*dmats2[29][3] + coeff0_30*dmats2[30][3] + coeff0_31*dmats2[31][3] + coeff0_32*dmats2[32][3] + coeff0_33*dmats2[33][3] + coeff0_34*dmats2[34][3];
 
968
          new_coeff0_4 = coeff0_0*dmats2[0][4] + coeff0_1*dmats2[1][4] + coeff0_2*dmats2[2][4] + coeff0_3*dmats2[3][4] + coeff0_4*dmats2[4][4] + coeff0_5*dmats2[5][4] + coeff0_6*dmats2[6][4] + coeff0_7*dmats2[7][4] + coeff0_8*dmats2[8][4] + coeff0_9*dmats2[9][4] + coeff0_10*dmats2[10][4] + coeff0_11*dmats2[11][4] + coeff0_12*dmats2[12][4] + coeff0_13*dmats2[13][4] + coeff0_14*dmats2[14][4] + coeff0_15*dmats2[15][4] + coeff0_16*dmats2[16][4] + coeff0_17*dmats2[17][4] + coeff0_18*dmats2[18][4] + coeff0_19*dmats2[19][4] + coeff0_20*dmats2[20][4] + coeff0_21*dmats2[21][4] + coeff0_22*dmats2[22][4] + coeff0_23*dmats2[23][4] + coeff0_24*dmats2[24][4] + coeff0_25*dmats2[25][4] + coeff0_26*dmats2[26][4] + coeff0_27*dmats2[27][4] + coeff0_28*dmats2[28][4] + coeff0_29*dmats2[29][4] + coeff0_30*dmats2[30][4] + coeff0_31*dmats2[31][4] + coeff0_32*dmats2[32][4] + coeff0_33*dmats2[33][4] + coeff0_34*dmats2[34][4];
 
969
          new_coeff0_5 = coeff0_0*dmats2[0][5] + coeff0_1*dmats2[1][5] + coeff0_2*dmats2[2][5] + coeff0_3*dmats2[3][5] + coeff0_4*dmats2[4][5] + coeff0_5*dmats2[5][5] + coeff0_6*dmats2[6][5] + coeff0_7*dmats2[7][5] + coeff0_8*dmats2[8][5] + coeff0_9*dmats2[9][5] + coeff0_10*dmats2[10][5] + coeff0_11*dmats2[11][5] + coeff0_12*dmats2[12][5] + coeff0_13*dmats2[13][5] + coeff0_14*dmats2[14][5] + coeff0_15*dmats2[15][5] + coeff0_16*dmats2[16][5] + coeff0_17*dmats2[17][5] + coeff0_18*dmats2[18][5] + coeff0_19*dmats2[19][5] + coeff0_20*dmats2[20][5] + coeff0_21*dmats2[21][5] + coeff0_22*dmats2[22][5] + coeff0_23*dmats2[23][5] + coeff0_24*dmats2[24][5] + coeff0_25*dmats2[25][5] + coeff0_26*dmats2[26][5] + coeff0_27*dmats2[27][5] + coeff0_28*dmats2[28][5] + coeff0_29*dmats2[29][5] + coeff0_30*dmats2[30][5] + coeff0_31*dmats2[31][5] + coeff0_32*dmats2[32][5] + coeff0_33*dmats2[33][5] + coeff0_34*dmats2[34][5];
 
970
          new_coeff0_6 = coeff0_0*dmats2[0][6] + coeff0_1*dmats2[1][6] + coeff0_2*dmats2[2][6] + coeff0_3*dmats2[3][6] + coeff0_4*dmats2[4][6] + coeff0_5*dmats2[5][6] + coeff0_6*dmats2[6][6] + coeff0_7*dmats2[7][6] + coeff0_8*dmats2[8][6] + coeff0_9*dmats2[9][6] + coeff0_10*dmats2[10][6] + coeff0_11*dmats2[11][6] + coeff0_12*dmats2[12][6] + coeff0_13*dmats2[13][6] + coeff0_14*dmats2[14][6] + coeff0_15*dmats2[15][6] + coeff0_16*dmats2[16][6] + coeff0_17*dmats2[17][6] + coeff0_18*dmats2[18][6] + coeff0_19*dmats2[19][6] + coeff0_20*dmats2[20][6] + coeff0_21*dmats2[21][6] + coeff0_22*dmats2[22][6] + coeff0_23*dmats2[23][6] + coeff0_24*dmats2[24][6] + coeff0_25*dmats2[25][6] + coeff0_26*dmats2[26][6] + coeff0_27*dmats2[27][6] + coeff0_28*dmats2[28][6] + coeff0_29*dmats2[29][6] + coeff0_30*dmats2[30][6] + coeff0_31*dmats2[31][6] + coeff0_32*dmats2[32][6] + coeff0_33*dmats2[33][6] + coeff0_34*dmats2[34][6];
 
971
          new_coeff0_7 = coeff0_0*dmats2[0][7] + coeff0_1*dmats2[1][7] + coeff0_2*dmats2[2][7] + coeff0_3*dmats2[3][7] + coeff0_4*dmats2[4][7] + coeff0_5*dmats2[5][7] + coeff0_6*dmats2[6][7] + coeff0_7*dmats2[7][7] + coeff0_8*dmats2[8][7] + coeff0_9*dmats2[9][7] + coeff0_10*dmats2[10][7] + coeff0_11*dmats2[11][7] + coeff0_12*dmats2[12][7] + coeff0_13*dmats2[13][7] + coeff0_14*dmats2[14][7] + coeff0_15*dmats2[15][7] + coeff0_16*dmats2[16][7] + coeff0_17*dmats2[17][7] + coeff0_18*dmats2[18][7] + coeff0_19*dmats2[19][7] + coeff0_20*dmats2[20][7] + coeff0_21*dmats2[21][7] + coeff0_22*dmats2[22][7] + coeff0_23*dmats2[23][7] + coeff0_24*dmats2[24][7] + coeff0_25*dmats2[25][7] + coeff0_26*dmats2[26][7] + coeff0_27*dmats2[27][7] + coeff0_28*dmats2[28][7] + coeff0_29*dmats2[29][7] + coeff0_30*dmats2[30][7] + coeff0_31*dmats2[31][7] + coeff0_32*dmats2[32][7] + coeff0_33*dmats2[33][7] + coeff0_34*dmats2[34][7];
 
972
          new_coeff0_8 = coeff0_0*dmats2[0][8] + coeff0_1*dmats2[1][8] + coeff0_2*dmats2[2][8] + coeff0_3*dmats2[3][8] + coeff0_4*dmats2[4][8] + coeff0_5*dmats2[5][8] + coeff0_6*dmats2[6][8] + coeff0_7*dmats2[7][8] + coeff0_8*dmats2[8][8] + coeff0_9*dmats2[9][8] + coeff0_10*dmats2[10][8] + coeff0_11*dmats2[11][8] + coeff0_12*dmats2[12][8] + coeff0_13*dmats2[13][8] + coeff0_14*dmats2[14][8] + coeff0_15*dmats2[15][8] + coeff0_16*dmats2[16][8] + coeff0_17*dmats2[17][8] + coeff0_18*dmats2[18][8] + coeff0_19*dmats2[19][8] + coeff0_20*dmats2[20][8] + coeff0_21*dmats2[21][8] + coeff0_22*dmats2[22][8] + coeff0_23*dmats2[23][8] + coeff0_24*dmats2[24][8] + coeff0_25*dmats2[25][8] + coeff0_26*dmats2[26][8] + coeff0_27*dmats2[27][8] + coeff0_28*dmats2[28][8] + coeff0_29*dmats2[29][8] + coeff0_30*dmats2[30][8] + coeff0_31*dmats2[31][8] + coeff0_32*dmats2[32][8] + coeff0_33*dmats2[33][8] + coeff0_34*dmats2[34][8];
 
973
          new_coeff0_9 = coeff0_0*dmats2[0][9] + coeff0_1*dmats2[1][9] + coeff0_2*dmats2[2][9] + coeff0_3*dmats2[3][9] + coeff0_4*dmats2[4][9] + coeff0_5*dmats2[5][9] + coeff0_6*dmats2[6][9] + coeff0_7*dmats2[7][9] + coeff0_8*dmats2[8][9] + coeff0_9*dmats2[9][9] + coeff0_10*dmats2[10][9] + coeff0_11*dmats2[11][9] + coeff0_12*dmats2[12][9] + coeff0_13*dmats2[13][9] + coeff0_14*dmats2[14][9] + coeff0_15*dmats2[15][9] + coeff0_16*dmats2[16][9] + coeff0_17*dmats2[17][9] + coeff0_18*dmats2[18][9] + coeff0_19*dmats2[19][9] + coeff0_20*dmats2[20][9] + coeff0_21*dmats2[21][9] + coeff0_22*dmats2[22][9] + coeff0_23*dmats2[23][9] + coeff0_24*dmats2[24][9] + coeff0_25*dmats2[25][9] + coeff0_26*dmats2[26][9] + coeff0_27*dmats2[27][9] + coeff0_28*dmats2[28][9] + coeff0_29*dmats2[29][9] + coeff0_30*dmats2[30][9] + coeff0_31*dmats2[31][9] + coeff0_32*dmats2[32][9] + coeff0_33*dmats2[33][9] + coeff0_34*dmats2[34][9];
 
974
          new_coeff0_10 = coeff0_0*dmats2[0][10] + coeff0_1*dmats2[1][10] + coeff0_2*dmats2[2][10] + coeff0_3*dmats2[3][10] + coeff0_4*dmats2[4][10] + coeff0_5*dmats2[5][10] + coeff0_6*dmats2[6][10] + coeff0_7*dmats2[7][10] + coeff0_8*dmats2[8][10] + coeff0_9*dmats2[9][10] + coeff0_10*dmats2[10][10] + coeff0_11*dmats2[11][10] + coeff0_12*dmats2[12][10] + coeff0_13*dmats2[13][10] + coeff0_14*dmats2[14][10] + coeff0_15*dmats2[15][10] + coeff0_16*dmats2[16][10] + coeff0_17*dmats2[17][10] + coeff0_18*dmats2[18][10] + coeff0_19*dmats2[19][10] + coeff0_20*dmats2[20][10] + coeff0_21*dmats2[21][10] + coeff0_22*dmats2[22][10] + coeff0_23*dmats2[23][10] + coeff0_24*dmats2[24][10] + coeff0_25*dmats2[25][10] + coeff0_26*dmats2[26][10] + coeff0_27*dmats2[27][10] + coeff0_28*dmats2[28][10] + coeff0_29*dmats2[29][10] + coeff0_30*dmats2[30][10] + coeff0_31*dmats2[31][10] + coeff0_32*dmats2[32][10] + coeff0_33*dmats2[33][10] + coeff0_34*dmats2[34][10];
 
975
          new_coeff0_11 = coeff0_0*dmats2[0][11] + coeff0_1*dmats2[1][11] + coeff0_2*dmats2[2][11] + coeff0_3*dmats2[3][11] + coeff0_4*dmats2[4][11] + coeff0_5*dmats2[5][11] + coeff0_6*dmats2[6][11] + coeff0_7*dmats2[7][11] + coeff0_8*dmats2[8][11] + coeff0_9*dmats2[9][11] + coeff0_10*dmats2[10][11] + coeff0_11*dmats2[11][11] + coeff0_12*dmats2[12][11] + coeff0_13*dmats2[13][11] + coeff0_14*dmats2[14][11] + coeff0_15*dmats2[15][11] + coeff0_16*dmats2[16][11] + coeff0_17*dmats2[17][11] + coeff0_18*dmats2[18][11] + coeff0_19*dmats2[19][11] + coeff0_20*dmats2[20][11] + coeff0_21*dmats2[21][11] + coeff0_22*dmats2[22][11] + coeff0_23*dmats2[23][11] + coeff0_24*dmats2[24][11] + coeff0_25*dmats2[25][11] + coeff0_26*dmats2[26][11] + coeff0_27*dmats2[27][11] + coeff0_28*dmats2[28][11] + coeff0_29*dmats2[29][11] + coeff0_30*dmats2[30][11] + coeff0_31*dmats2[31][11] + coeff0_32*dmats2[32][11] + coeff0_33*dmats2[33][11] + coeff0_34*dmats2[34][11];
 
976
          new_coeff0_12 = coeff0_0*dmats2[0][12] + coeff0_1*dmats2[1][12] + coeff0_2*dmats2[2][12] + coeff0_3*dmats2[3][12] + coeff0_4*dmats2[4][12] + coeff0_5*dmats2[5][12] + coeff0_6*dmats2[6][12] + coeff0_7*dmats2[7][12] + coeff0_8*dmats2[8][12] + coeff0_9*dmats2[9][12] + coeff0_10*dmats2[10][12] + coeff0_11*dmats2[11][12] + coeff0_12*dmats2[12][12] + coeff0_13*dmats2[13][12] + coeff0_14*dmats2[14][12] + coeff0_15*dmats2[15][12] + coeff0_16*dmats2[16][12] + coeff0_17*dmats2[17][12] + coeff0_18*dmats2[18][12] + coeff0_19*dmats2[19][12] + coeff0_20*dmats2[20][12] + coeff0_21*dmats2[21][12] + coeff0_22*dmats2[22][12] + coeff0_23*dmats2[23][12] + coeff0_24*dmats2[24][12] + coeff0_25*dmats2[25][12] + coeff0_26*dmats2[26][12] + coeff0_27*dmats2[27][12] + coeff0_28*dmats2[28][12] + coeff0_29*dmats2[29][12] + coeff0_30*dmats2[30][12] + coeff0_31*dmats2[31][12] + coeff0_32*dmats2[32][12] + coeff0_33*dmats2[33][12] + coeff0_34*dmats2[34][12];
 
977
          new_coeff0_13 = coeff0_0*dmats2[0][13] + coeff0_1*dmats2[1][13] + coeff0_2*dmats2[2][13] + coeff0_3*dmats2[3][13] + coeff0_4*dmats2[4][13] + coeff0_5*dmats2[5][13] + coeff0_6*dmats2[6][13] + coeff0_7*dmats2[7][13] + coeff0_8*dmats2[8][13] + coeff0_9*dmats2[9][13] + coeff0_10*dmats2[10][13] + coeff0_11*dmats2[11][13] + coeff0_12*dmats2[12][13] + coeff0_13*dmats2[13][13] + coeff0_14*dmats2[14][13] + coeff0_15*dmats2[15][13] + coeff0_16*dmats2[16][13] + coeff0_17*dmats2[17][13] + coeff0_18*dmats2[18][13] + coeff0_19*dmats2[19][13] + coeff0_20*dmats2[20][13] + coeff0_21*dmats2[21][13] + coeff0_22*dmats2[22][13] + coeff0_23*dmats2[23][13] + coeff0_24*dmats2[24][13] + coeff0_25*dmats2[25][13] + coeff0_26*dmats2[26][13] + coeff0_27*dmats2[27][13] + coeff0_28*dmats2[28][13] + coeff0_29*dmats2[29][13] + coeff0_30*dmats2[30][13] + coeff0_31*dmats2[31][13] + coeff0_32*dmats2[32][13] + coeff0_33*dmats2[33][13] + coeff0_34*dmats2[34][13];
 
978
          new_coeff0_14 = coeff0_0*dmats2[0][14] + coeff0_1*dmats2[1][14] + coeff0_2*dmats2[2][14] + coeff0_3*dmats2[3][14] + coeff0_4*dmats2[4][14] + coeff0_5*dmats2[5][14] + coeff0_6*dmats2[6][14] + coeff0_7*dmats2[7][14] + coeff0_8*dmats2[8][14] + coeff0_9*dmats2[9][14] + coeff0_10*dmats2[10][14] + coeff0_11*dmats2[11][14] + coeff0_12*dmats2[12][14] + coeff0_13*dmats2[13][14] + coeff0_14*dmats2[14][14] + coeff0_15*dmats2[15][14] + coeff0_16*dmats2[16][14] + coeff0_17*dmats2[17][14] + coeff0_18*dmats2[18][14] + coeff0_19*dmats2[19][14] + coeff0_20*dmats2[20][14] + coeff0_21*dmats2[21][14] + coeff0_22*dmats2[22][14] + coeff0_23*dmats2[23][14] + coeff0_24*dmats2[24][14] + coeff0_25*dmats2[25][14] + coeff0_26*dmats2[26][14] + coeff0_27*dmats2[27][14] + coeff0_28*dmats2[28][14] + coeff0_29*dmats2[29][14] + coeff0_30*dmats2[30][14] + coeff0_31*dmats2[31][14] + coeff0_32*dmats2[32][14] + coeff0_33*dmats2[33][14] + coeff0_34*dmats2[34][14];
 
979
          new_coeff0_15 = coeff0_0*dmats2[0][15] + coeff0_1*dmats2[1][15] + coeff0_2*dmats2[2][15] + coeff0_3*dmats2[3][15] + coeff0_4*dmats2[4][15] + coeff0_5*dmats2[5][15] + coeff0_6*dmats2[6][15] + coeff0_7*dmats2[7][15] + coeff0_8*dmats2[8][15] + coeff0_9*dmats2[9][15] + coeff0_10*dmats2[10][15] + coeff0_11*dmats2[11][15] + coeff0_12*dmats2[12][15] + coeff0_13*dmats2[13][15] + coeff0_14*dmats2[14][15] + coeff0_15*dmats2[15][15] + coeff0_16*dmats2[16][15] + coeff0_17*dmats2[17][15] + coeff0_18*dmats2[18][15] + coeff0_19*dmats2[19][15] + coeff0_20*dmats2[20][15] + coeff0_21*dmats2[21][15] + coeff0_22*dmats2[22][15] + coeff0_23*dmats2[23][15] + coeff0_24*dmats2[24][15] + coeff0_25*dmats2[25][15] + coeff0_26*dmats2[26][15] + coeff0_27*dmats2[27][15] + coeff0_28*dmats2[28][15] + coeff0_29*dmats2[29][15] + coeff0_30*dmats2[30][15] + coeff0_31*dmats2[31][15] + coeff0_32*dmats2[32][15] + coeff0_33*dmats2[33][15] + coeff0_34*dmats2[34][15];
 
980
          new_coeff0_16 = coeff0_0*dmats2[0][16] + coeff0_1*dmats2[1][16] + coeff0_2*dmats2[2][16] + coeff0_3*dmats2[3][16] + coeff0_4*dmats2[4][16] + coeff0_5*dmats2[5][16] + coeff0_6*dmats2[6][16] + coeff0_7*dmats2[7][16] + coeff0_8*dmats2[8][16] + coeff0_9*dmats2[9][16] + coeff0_10*dmats2[10][16] + coeff0_11*dmats2[11][16] + coeff0_12*dmats2[12][16] + coeff0_13*dmats2[13][16] + coeff0_14*dmats2[14][16] + coeff0_15*dmats2[15][16] + coeff0_16*dmats2[16][16] + coeff0_17*dmats2[17][16] + coeff0_18*dmats2[18][16] + coeff0_19*dmats2[19][16] + coeff0_20*dmats2[20][16] + coeff0_21*dmats2[21][16] + coeff0_22*dmats2[22][16] + coeff0_23*dmats2[23][16] + coeff0_24*dmats2[24][16] + coeff0_25*dmats2[25][16] + coeff0_26*dmats2[26][16] + coeff0_27*dmats2[27][16] + coeff0_28*dmats2[28][16] + coeff0_29*dmats2[29][16] + coeff0_30*dmats2[30][16] + coeff0_31*dmats2[31][16] + coeff0_32*dmats2[32][16] + coeff0_33*dmats2[33][16] + coeff0_34*dmats2[34][16];
 
981
          new_coeff0_17 = coeff0_0*dmats2[0][17] + coeff0_1*dmats2[1][17] + coeff0_2*dmats2[2][17] + coeff0_3*dmats2[3][17] + coeff0_4*dmats2[4][17] + coeff0_5*dmats2[5][17] + coeff0_6*dmats2[6][17] + coeff0_7*dmats2[7][17] + coeff0_8*dmats2[8][17] + coeff0_9*dmats2[9][17] + coeff0_10*dmats2[10][17] + coeff0_11*dmats2[11][17] + coeff0_12*dmats2[12][17] + coeff0_13*dmats2[13][17] + coeff0_14*dmats2[14][17] + coeff0_15*dmats2[15][17] + coeff0_16*dmats2[16][17] + coeff0_17*dmats2[17][17] + coeff0_18*dmats2[18][17] + coeff0_19*dmats2[19][17] + coeff0_20*dmats2[20][17] + coeff0_21*dmats2[21][17] + coeff0_22*dmats2[22][17] + coeff0_23*dmats2[23][17] + coeff0_24*dmats2[24][17] + coeff0_25*dmats2[25][17] + coeff0_26*dmats2[26][17] + coeff0_27*dmats2[27][17] + coeff0_28*dmats2[28][17] + coeff0_29*dmats2[29][17] + coeff0_30*dmats2[30][17] + coeff0_31*dmats2[31][17] + coeff0_32*dmats2[32][17] + coeff0_33*dmats2[33][17] + coeff0_34*dmats2[34][17];
 
982
          new_coeff0_18 = coeff0_0*dmats2[0][18] + coeff0_1*dmats2[1][18] + coeff0_2*dmats2[2][18] + coeff0_3*dmats2[3][18] + coeff0_4*dmats2[4][18] + coeff0_5*dmats2[5][18] + coeff0_6*dmats2[6][18] + coeff0_7*dmats2[7][18] + coeff0_8*dmats2[8][18] + coeff0_9*dmats2[9][18] + coeff0_10*dmats2[10][18] + coeff0_11*dmats2[11][18] + coeff0_12*dmats2[12][18] + coeff0_13*dmats2[13][18] + coeff0_14*dmats2[14][18] + coeff0_15*dmats2[15][18] + coeff0_16*dmats2[16][18] + coeff0_17*dmats2[17][18] + coeff0_18*dmats2[18][18] + coeff0_19*dmats2[19][18] + coeff0_20*dmats2[20][18] + coeff0_21*dmats2[21][18] + coeff0_22*dmats2[22][18] + coeff0_23*dmats2[23][18] + coeff0_24*dmats2[24][18] + coeff0_25*dmats2[25][18] + coeff0_26*dmats2[26][18] + coeff0_27*dmats2[27][18] + coeff0_28*dmats2[28][18] + coeff0_29*dmats2[29][18] + coeff0_30*dmats2[30][18] + coeff0_31*dmats2[31][18] + coeff0_32*dmats2[32][18] + coeff0_33*dmats2[33][18] + coeff0_34*dmats2[34][18];
 
983
          new_coeff0_19 = coeff0_0*dmats2[0][19] + coeff0_1*dmats2[1][19] + coeff0_2*dmats2[2][19] + coeff0_3*dmats2[3][19] + coeff0_4*dmats2[4][19] + coeff0_5*dmats2[5][19] + coeff0_6*dmats2[6][19] + coeff0_7*dmats2[7][19] + coeff0_8*dmats2[8][19] + coeff0_9*dmats2[9][19] + coeff0_10*dmats2[10][19] + coeff0_11*dmats2[11][19] + coeff0_12*dmats2[12][19] + coeff0_13*dmats2[13][19] + coeff0_14*dmats2[14][19] + coeff0_15*dmats2[15][19] + coeff0_16*dmats2[16][19] + coeff0_17*dmats2[17][19] + coeff0_18*dmats2[18][19] + coeff0_19*dmats2[19][19] + coeff0_20*dmats2[20][19] + coeff0_21*dmats2[21][19] + coeff0_22*dmats2[22][19] + coeff0_23*dmats2[23][19] + coeff0_24*dmats2[24][19] + coeff0_25*dmats2[25][19] + coeff0_26*dmats2[26][19] + coeff0_27*dmats2[27][19] + coeff0_28*dmats2[28][19] + coeff0_29*dmats2[29][19] + coeff0_30*dmats2[30][19] + coeff0_31*dmats2[31][19] + coeff0_32*dmats2[32][19] + coeff0_33*dmats2[33][19] + coeff0_34*dmats2[34][19];
 
984
          new_coeff0_20 = coeff0_0*dmats2[0][20] + coeff0_1*dmats2[1][20] + coeff0_2*dmats2[2][20] + coeff0_3*dmats2[3][20] + coeff0_4*dmats2[4][20] + coeff0_5*dmats2[5][20] + coeff0_6*dmats2[6][20] + coeff0_7*dmats2[7][20] + coeff0_8*dmats2[8][20] + coeff0_9*dmats2[9][20] + coeff0_10*dmats2[10][20] + coeff0_11*dmats2[11][20] + coeff0_12*dmats2[12][20] + coeff0_13*dmats2[13][20] + coeff0_14*dmats2[14][20] + coeff0_15*dmats2[15][20] + coeff0_16*dmats2[16][20] + coeff0_17*dmats2[17][20] + coeff0_18*dmats2[18][20] + coeff0_19*dmats2[19][20] + coeff0_20*dmats2[20][20] + coeff0_21*dmats2[21][20] + coeff0_22*dmats2[22][20] + coeff0_23*dmats2[23][20] + coeff0_24*dmats2[24][20] + coeff0_25*dmats2[25][20] + coeff0_26*dmats2[26][20] + coeff0_27*dmats2[27][20] + coeff0_28*dmats2[28][20] + coeff0_29*dmats2[29][20] + coeff0_30*dmats2[30][20] + coeff0_31*dmats2[31][20] + coeff0_32*dmats2[32][20] + coeff0_33*dmats2[33][20] + coeff0_34*dmats2[34][20];
 
985
          new_coeff0_21 = coeff0_0*dmats2[0][21] + coeff0_1*dmats2[1][21] + coeff0_2*dmats2[2][21] + coeff0_3*dmats2[3][21] + coeff0_4*dmats2[4][21] + coeff0_5*dmats2[5][21] + coeff0_6*dmats2[6][21] + coeff0_7*dmats2[7][21] + coeff0_8*dmats2[8][21] + coeff0_9*dmats2[9][21] + coeff0_10*dmats2[10][21] + coeff0_11*dmats2[11][21] + coeff0_12*dmats2[12][21] + coeff0_13*dmats2[13][21] + coeff0_14*dmats2[14][21] + coeff0_15*dmats2[15][21] + coeff0_16*dmats2[16][21] + coeff0_17*dmats2[17][21] + coeff0_18*dmats2[18][21] + coeff0_19*dmats2[19][21] + coeff0_20*dmats2[20][21] + coeff0_21*dmats2[21][21] + coeff0_22*dmats2[22][21] + coeff0_23*dmats2[23][21] + coeff0_24*dmats2[24][21] + coeff0_25*dmats2[25][21] + coeff0_26*dmats2[26][21] + coeff0_27*dmats2[27][21] + coeff0_28*dmats2[28][21] + coeff0_29*dmats2[29][21] + coeff0_30*dmats2[30][21] + coeff0_31*dmats2[31][21] + coeff0_32*dmats2[32][21] + coeff0_33*dmats2[33][21] + coeff0_34*dmats2[34][21];
 
986
          new_coeff0_22 = coeff0_0*dmats2[0][22] + coeff0_1*dmats2[1][22] + coeff0_2*dmats2[2][22] + coeff0_3*dmats2[3][22] + coeff0_4*dmats2[4][22] + coeff0_5*dmats2[5][22] + coeff0_6*dmats2[6][22] + coeff0_7*dmats2[7][22] + coeff0_8*dmats2[8][22] + coeff0_9*dmats2[9][22] + coeff0_10*dmats2[10][22] + coeff0_11*dmats2[11][22] + coeff0_12*dmats2[12][22] + coeff0_13*dmats2[13][22] + coeff0_14*dmats2[14][22] + coeff0_15*dmats2[15][22] + coeff0_16*dmats2[16][22] + coeff0_17*dmats2[17][22] + coeff0_18*dmats2[18][22] + coeff0_19*dmats2[19][22] + coeff0_20*dmats2[20][22] + coeff0_21*dmats2[21][22] + coeff0_22*dmats2[22][22] + coeff0_23*dmats2[23][22] + coeff0_24*dmats2[24][22] + coeff0_25*dmats2[25][22] + coeff0_26*dmats2[26][22] + coeff0_27*dmats2[27][22] + coeff0_28*dmats2[28][22] + coeff0_29*dmats2[29][22] + coeff0_30*dmats2[30][22] + coeff0_31*dmats2[31][22] + coeff0_32*dmats2[32][22] + coeff0_33*dmats2[33][22] + coeff0_34*dmats2[34][22];
 
987
          new_coeff0_23 = coeff0_0*dmats2[0][23] + coeff0_1*dmats2[1][23] + coeff0_2*dmats2[2][23] + coeff0_3*dmats2[3][23] + coeff0_4*dmats2[4][23] + coeff0_5*dmats2[5][23] + coeff0_6*dmats2[6][23] + coeff0_7*dmats2[7][23] + coeff0_8*dmats2[8][23] + coeff0_9*dmats2[9][23] + coeff0_10*dmats2[10][23] + coeff0_11*dmats2[11][23] + coeff0_12*dmats2[12][23] + coeff0_13*dmats2[13][23] + coeff0_14*dmats2[14][23] + coeff0_15*dmats2[15][23] + coeff0_16*dmats2[16][23] + coeff0_17*dmats2[17][23] + coeff0_18*dmats2[18][23] + coeff0_19*dmats2[19][23] + coeff0_20*dmats2[20][23] + coeff0_21*dmats2[21][23] + coeff0_22*dmats2[22][23] + coeff0_23*dmats2[23][23] + coeff0_24*dmats2[24][23] + coeff0_25*dmats2[25][23] + coeff0_26*dmats2[26][23] + coeff0_27*dmats2[27][23] + coeff0_28*dmats2[28][23] + coeff0_29*dmats2[29][23] + coeff0_30*dmats2[30][23] + coeff0_31*dmats2[31][23] + coeff0_32*dmats2[32][23] + coeff0_33*dmats2[33][23] + coeff0_34*dmats2[34][23];
 
988
          new_coeff0_24 = coeff0_0*dmats2[0][24] + coeff0_1*dmats2[1][24] + coeff0_2*dmats2[2][24] + coeff0_3*dmats2[3][24] + coeff0_4*dmats2[4][24] + coeff0_5*dmats2[5][24] + coeff0_6*dmats2[6][24] + coeff0_7*dmats2[7][24] + coeff0_8*dmats2[8][24] + coeff0_9*dmats2[9][24] + coeff0_10*dmats2[10][24] + coeff0_11*dmats2[11][24] + coeff0_12*dmats2[12][24] + coeff0_13*dmats2[13][24] + coeff0_14*dmats2[14][24] + coeff0_15*dmats2[15][24] + coeff0_16*dmats2[16][24] + coeff0_17*dmats2[17][24] + coeff0_18*dmats2[18][24] + coeff0_19*dmats2[19][24] + coeff0_20*dmats2[20][24] + coeff0_21*dmats2[21][24] + coeff0_22*dmats2[22][24] + coeff0_23*dmats2[23][24] + coeff0_24*dmats2[24][24] + coeff0_25*dmats2[25][24] + coeff0_26*dmats2[26][24] + coeff0_27*dmats2[27][24] + coeff0_28*dmats2[28][24] + coeff0_29*dmats2[29][24] + coeff0_30*dmats2[30][24] + coeff0_31*dmats2[31][24] + coeff0_32*dmats2[32][24] + coeff0_33*dmats2[33][24] + coeff0_34*dmats2[34][24];
 
989
          new_coeff0_25 = coeff0_0*dmats2[0][25] + coeff0_1*dmats2[1][25] + coeff0_2*dmats2[2][25] + coeff0_3*dmats2[3][25] + coeff0_4*dmats2[4][25] + coeff0_5*dmats2[5][25] + coeff0_6*dmats2[6][25] + coeff0_7*dmats2[7][25] + coeff0_8*dmats2[8][25] + coeff0_9*dmats2[9][25] + coeff0_10*dmats2[10][25] + coeff0_11*dmats2[11][25] + coeff0_12*dmats2[12][25] + coeff0_13*dmats2[13][25] + coeff0_14*dmats2[14][25] + coeff0_15*dmats2[15][25] + coeff0_16*dmats2[16][25] + coeff0_17*dmats2[17][25] + coeff0_18*dmats2[18][25] + coeff0_19*dmats2[19][25] + coeff0_20*dmats2[20][25] + coeff0_21*dmats2[21][25] + coeff0_22*dmats2[22][25] + coeff0_23*dmats2[23][25] + coeff0_24*dmats2[24][25] + coeff0_25*dmats2[25][25] + coeff0_26*dmats2[26][25] + coeff0_27*dmats2[27][25] + coeff0_28*dmats2[28][25] + coeff0_29*dmats2[29][25] + coeff0_30*dmats2[30][25] + coeff0_31*dmats2[31][25] + coeff0_32*dmats2[32][25] + coeff0_33*dmats2[33][25] + coeff0_34*dmats2[34][25];
 
990
          new_coeff0_26 = coeff0_0*dmats2[0][26] + coeff0_1*dmats2[1][26] + coeff0_2*dmats2[2][26] + coeff0_3*dmats2[3][26] + coeff0_4*dmats2[4][26] + coeff0_5*dmats2[5][26] + coeff0_6*dmats2[6][26] + coeff0_7*dmats2[7][26] + coeff0_8*dmats2[8][26] + coeff0_9*dmats2[9][26] + coeff0_10*dmats2[10][26] + coeff0_11*dmats2[11][26] + coeff0_12*dmats2[12][26] + coeff0_13*dmats2[13][26] + coeff0_14*dmats2[14][26] + coeff0_15*dmats2[15][26] + coeff0_16*dmats2[16][26] + coeff0_17*dmats2[17][26] + coeff0_18*dmats2[18][26] + coeff0_19*dmats2[19][26] + coeff0_20*dmats2[20][26] + coeff0_21*dmats2[21][26] + coeff0_22*dmats2[22][26] + coeff0_23*dmats2[23][26] + coeff0_24*dmats2[24][26] + coeff0_25*dmats2[25][26] + coeff0_26*dmats2[26][26] + coeff0_27*dmats2[27][26] + coeff0_28*dmats2[28][26] + coeff0_29*dmats2[29][26] + coeff0_30*dmats2[30][26] + coeff0_31*dmats2[31][26] + coeff0_32*dmats2[32][26] + coeff0_33*dmats2[33][26] + coeff0_34*dmats2[34][26];
 
991
          new_coeff0_27 = coeff0_0*dmats2[0][27] + coeff0_1*dmats2[1][27] + coeff0_2*dmats2[2][27] + coeff0_3*dmats2[3][27] + coeff0_4*dmats2[4][27] + coeff0_5*dmats2[5][27] + coeff0_6*dmats2[6][27] + coeff0_7*dmats2[7][27] + coeff0_8*dmats2[8][27] + coeff0_9*dmats2[9][27] + coeff0_10*dmats2[10][27] + coeff0_11*dmats2[11][27] + coeff0_12*dmats2[12][27] + coeff0_13*dmats2[13][27] + coeff0_14*dmats2[14][27] + coeff0_15*dmats2[15][27] + coeff0_16*dmats2[16][27] + coeff0_17*dmats2[17][27] + coeff0_18*dmats2[18][27] + coeff0_19*dmats2[19][27] + coeff0_20*dmats2[20][27] + coeff0_21*dmats2[21][27] + coeff0_22*dmats2[22][27] + coeff0_23*dmats2[23][27] + coeff0_24*dmats2[24][27] + coeff0_25*dmats2[25][27] + coeff0_26*dmats2[26][27] + coeff0_27*dmats2[27][27] + coeff0_28*dmats2[28][27] + coeff0_29*dmats2[29][27] + coeff0_30*dmats2[30][27] + coeff0_31*dmats2[31][27] + coeff0_32*dmats2[32][27] + coeff0_33*dmats2[33][27] + coeff0_34*dmats2[34][27];
 
992
          new_coeff0_28 = coeff0_0*dmats2[0][28] + coeff0_1*dmats2[1][28] + coeff0_2*dmats2[2][28] + coeff0_3*dmats2[3][28] + coeff0_4*dmats2[4][28] + coeff0_5*dmats2[5][28] + coeff0_6*dmats2[6][28] + coeff0_7*dmats2[7][28] + coeff0_8*dmats2[8][28] + coeff0_9*dmats2[9][28] + coeff0_10*dmats2[10][28] + coeff0_11*dmats2[11][28] + coeff0_12*dmats2[12][28] + coeff0_13*dmats2[13][28] + coeff0_14*dmats2[14][28] + coeff0_15*dmats2[15][28] + coeff0_16*dmats2[16][28] + coeff0_17*dmats2[17][28] + coeff0_18*dmats2[18][28] + coeff0_19*dmats2[19][28] + coeff0_20*dmats2[20][28] + coeff0_21*dmats2[21][28] + coeff0_22*dmats2[22][28] + coeff0_23*dmats2[23][28] + coeff0_24*dmats2[24][28] + coeff0_25*dmats2[25][28] + coeff0_26*dmats2[26][28] + coeff0_27*dmats2[27][28] + coeff0_28*dmats2[28][28] + coeff0_29*dmats2[29][28] + coeff0_30*dmats2[30][28] + coeff0_31*dmats2[31][28] + coeff0_32*dmats2[32][28] + coeff0_33*dmats2[33][28] + coeff0_34*dmats2[34][28];
 
993
          new_coeff0_29 = coeff0_0*dmats2[0][29] + coeff0_1*dmats2[1][29] + coeff0_2*dmats2[2][29] + coeff0_3*dmats2[3][29] + coeff0_4*dmats2[4][29] + coeff0_5*dmats2[5][29] + coeff0_6*dmats2[6][29] + coeff0_7*dmats2[7][29] + coeff0_8*dmats2[8][29] + coeff0_9*dmats2[9][29] + coeff0_10*dmats2[10][29] + coeff0_11*dmats2[11][29] + coeff0_12*dmats2[12][29] + coeff0_13*dmats2[13][29] + coeff0_14*dmats2[14][29] + coeff0_15*dmats2[15][29] + coeff0_16*dmats2[16][29] + coeff0_17*dmats2[17][29] + coeff0_18*dmats2[18][29] + coeff0_19*dmats2[19][29] + coeff0_20*dmats2[20][29] + coeff0_21*dmats2[21][29] + coeff0_22*dmats2[22][29] + coeff0_23*dmats2[23][29] + coeff0_24*dmats2[24][29] + coeff0_25*dmats2[25][29] + coeff0_26*dmats2[26][29] + coeff0_27*dmats2[27][29] + coeff0_28*dmats2[28][29] + coeff0_29*dmats2[29][29] + coeff0_30*dmats2[30][29] + coeff0_31*dmats2[31][29] + coeff0_32*dmats2[32][29] + coeff0_33*dmats2[33][29] + coeff0_34*dmats2[34][29];
 
994
          new_coeff0_30 = coeff0_0*dmats2[0][30] + coeff0_1*dmats2[1][30] + coeff0_2*dmats2[2][30] + coeff0_3*dmats2[3][30] + coeff0_4*dmats2[4][30] + coeff0_5*dmats2[5][30] + coeff0_6*dmats2[6][30] + coeff0_7*dmats2[7][30] + coeff0_8*dmats2[8][30] + coeff0_9*dmats2[9][30] + coeff0_10*dmats2[10][30] + coeff0_11*dmats2[11][30] + coeff0_12*dmats2[12][30] + coeff0_13*dmats2[13][30] + coeff0_14*dmats2[14][30] + coeff0_15*dmats2[15][30] + coeff0_16*dmats2[16][30] + coeff0_17*dmats2[17][30] + coeff0_18*dmats2[18][30] + coeff0_19*dmats2[19][30] + coeff0_20*dmats2[20][30] + coeff0_21*dmats2[21][30] + coeff0_22*dmats2[22][30] + coeff0_23*dmats2[23][30] + coeff0_24*dmats2[24][30] + coeff0_25*dmats2[25][30] + coeff0_26*dmats2[26][30] + coeff0_27*dmats2[27][30] + coeff0_28*dmats2[28][30] + coeff0_29*dmats2[29][30] + coeff0_30*dmats2[30][30] + coeff0_31*dmats2[31][30] + coeff0_32*dmats2[32][30] + coeff0_33*dmats2[33][30] + coeff0_34*dmats2[34][30];
 
995
          new_coeff0_31 = coeff0_0*dmats2[0][31] + coeff0_1*dmats2[1][31] + coeff0_2*dmats2[2][31] + coeff0_3*dmats2[3][31] + coeff0_4*dmats2[4][31] + coeff0_5*dmats2[5][31] + coeff0_6*dmats2[6][31] + coeff0_7*dmats2[7][31] + coeff0_8*dmats2[8][31] + coeff0_9*dmats2[9][31] + coeff0_10*dmats2[10][31] + coeff0_11*dmats2[11][31] + coeff0_12*dmats2[12][31] + coeff0_13*dmats2[13][31] + coeff0_14*dmats2[14][31] + coeff0_15*dmats2[15][31] + coeff0_16*dmats2[16][31] + coeff0_17*dmats2[17][31] + coeff0_18*dmats2[18][31] + coeff0_19*dmats2[19][31] + coeff0_20*dmats2[20][31] + coeff0_21*dmats2[21][31] + coeff0_22*dmats2[22][31] + coeff0_23*dmats2[23][31] + coeff0_24*dmats2[24][31] + coeff0_25*dmats2[25][31] + coeff0_26*dmats2[26][31] + coeff0_27*dmats2[27][31] + coeff0_28*dmats2[28][31] + coeff0_29*dmats2[29][31] + coeff0_30*dmats2[30][31] + coeff0_31*dmats2[31][31] + coeff0_32*dmats2[32][31] + coeff0_33*dmats2[33][31] + coeff0_34*dmats2[34][31];
 
996
          new_coeff0_32 = coeff0_0*dmats2[0][32] + coeff0_1*dmats2[1][32] + coeff0_2*dmats2[2][32] + coeff0_3*dmats2[3][32] + coeff0_4*dmats2[4][32] + coeff0_5*dmats2[5][32] + coeff0_6*dmats2[6][32] + coeff0_7*dmats2[7][32] + coeff0_8*dmats2[8][32] + coeff0_9*dmats2[9][32] + coeff0_10*dmats2[10][32] + coeff0_11*dmats2[11][32] + coeff0_12*dmats2[12][32] + coeff0_13*dmats2[13][32] + coeff0_14*dmats2[14][32] + coeff0_15*dmats2[15][32] + coeff0_16*dmats2[16][32] + coeff0_17*dmats2[17][32] + coeff0_18*dmats2[18][32] + coeff0_19*dmats2[19][32] + coeff0_20*dmats2[20][32] + coeff0_21*dmats2[21][32] + coeff0_22*dmats2[22][32] + coeff0_23*dmats2[23][32] + coeff0_24*dmats2[24][32] + coeff0_25*dmats2[25][32] + coeff0_26*dmats2[26][32] + coeff0_27*dmats2[27][32] + coeff0_28*dmats2[28][32] + coeff0_29*dmats2[29][32] + coeff0_30*dmats2[30][32] + coeff0_31*dmats2[31][32] + coeff0_32*dmats2[32][32] + coeff0_33*dmats2[33][32] + coeff0_34*dmats2[34][32];
 
997
          new_coeff0_33 = coeff0_0*dmats2[0][33] + coeff0_1*dmats2[1][33] + coeff0_2*dmats2[2][33] + coeff0_3*dmats2[3][33] + coeff0_4*dmats2[4][33] + coeff0_5*dmats2[5][33] + coeff0_6*dmats2[6][33] + coeff0_7*dmats2[7][33] + coeff0_8*dmats2[8][33] + coeff0_9*dmats2[9][33] + coeff0_10*dmats2[10][33] + coeff0_11*dmats2[11][33] + coeff0_12*dmats2[12][33] + coeff0_13*dmats2[13][33] + coeff0_14*dmats2[14][33] + coeff0_15*dmats2[15][33] + coeff0_16*dmats2[16][33] + coeff0_17*dmats2[17][33] + coeff0_18*dmats2[18][33] + coeff0_19*dmats2[19][33] + coeff0_20*dmats2[20][33] + coeff0_21*dmats2[21][33] + coeff0_22*dmats2[22][33] + coeff0_23*dmats2[23][33] + coeff0_24*dmats2[24][33] + coeff0_25*dmats2[25][33] + coeff0_26*dmats2[26][33] + coeff0_27*dmats2[27][33] + coeff0_28*dmats2[28][33] + coeff0_29*dmats2[29][33] + coeff0_30*dmats2[30][33] + coeff0_31*dmats2[31][33] + coeff0_32*dmats2[32][33] + coeff0_33*dmats2[33][33] + coeff0_34*dmats2[34][33];
 
998
          new_coeff0_34 = coeff0_0*dmats2[0][34] + coeff0_1*dmats2[1][34] + coeff0_2*dmats2[2][34] + coeff0_3*dmats2[3][34] + coeff0_4*dmats2[4][34] + coeff0_5*dmats2[5][34] + coeff0_6*dmats2[6][34] + coeff0_7*dmats2[7][34] + coeff0_8*dmats2[8][34] + coeff0_9*dmats2[9][34] + coeff0_10*dmats2[10][34] + coeff0_11*dmats2[11][34] + coeff0_12*dmats2[12][34] + coeff0_13*dmats2[13][34] + coeff0_14*dmats2[14][34] + coeff0_15*dmats2[15][34] + coeff0_16*dmats2[16][34] + coeff0_17*dmats2[17][34] + coeff0_18*dmats2[18][34] + coeff0_19*dmats2[19][34] + coeff0_20*dmats2[20][34] + coeff0_21*dmats2[21][34] + coeff0_22*dmats2[22][34] + coeff0_23*dmats2[23][34] + coeff0_24*dmats2[24][34] + coeff0_25*dmats2[25][34] + coeff0_26*dmats2[26][34] + coeff0_27*dmats2[27][34] + coeff0_28*dmats2[28][34] + coeff0_29*dmats2[29][34] + coeff0_30*dmats2[30][34] + coeff0_31*dmats2[31][34] + coeff0_32*dmats2[32][34] + coeff0_33*dmats2[33][34] + coeff0_34*dmats2[34][34];
 
999
        }
 
1000
    
 
1001
      }
 
1002
      // Compute derivatives on reference element as dot product of coefficients and basisvalues
 
1003
      derivatives[deriv_num] = new_coeff0_0*basisvalue0 + new_coeff0_1*basisvalue1 + new_coeff0_2*basisvalue2 + new_coeff0_3*basisvalue3 + new_coeff0_4*basisvalue4 + new_coeff0_5*basisvalue5 + new_coeff0_6*basisvalue6 + new_coeff0_7*basisvalue7 + new_coeff0_8*basisvalue8 + new_coeff0_9*basisvalue9 + new_coeff0_10*basisvalue10 + new_coeff0_11*basisvalue11 + new_coeff0_12*basisvalue12 + new_coeff0_13*basisvalue13 + new_coeff0_14*basisvalue14 + new_coeff0_15*basisvalue15 + new_coeff0_16*basisvalue16 + new_coeff0_17*basisvalue17 + new_coeff0_18*basisvalue18 + new_coeff0_19*basisvalue19 + new_coeff0_20*basisvalue20 + new_coeff0_21*basisvalue21 + new_coeff0_22*basisvalue22 + new_coeff0_23*basisvalue23 + new_coeff0_24*basisvalue24 + new_coeff0_25*basisvalue25 + new_coeff0_26*basisvalue26 + new_coeff0_27*basisvalue27 + new_coeff0_28*basisvalue28 + new_coeff0_29*basisvalue29 + new_coeff0_30*basisvalue30 + new_coeff0_31*basisvalue31 + new_coeff0_32*basisvalue32 + new_coeff0_33*basisvalue33 + new_coeff0_34*basisvalue34;
 
1004
    }
 
1005
    
 
1006
    // Transform derivatives back to physical element
 
1007
    for (unsigned int row = 0; row < num_derivatives; row++)
 
1008
    {
 
1009
      for (unsigned int col = 0; col < num_derivatives; col++)
 
1010
      {
 
1011
        values[row] += transform[row][col]*derivatives[col];
 
1012
      }
 
1013
    }
 
1014
    // Delete pointer to array of derivatives on FIAT element
 
1015
    delete [] derivatives;
 
1016
    
 
1017
    // Delete pointer to array of combinations of derivatives and transform
 
1018
    for (unsigned int row = 0; row < num_derivatives; row++)
 
1019
    {
 
1020
      delete [] combinations[row];
 
1021
      delete [] transform[row];
 
1022
    }
 
1023
    
 
1024
    delete [] combinations;
 
1025
    delete [] transform;
 
1026
  }
 
1027
 
 
1028
  /// Evaluate order n derivatives of all basis functions at given point in cell
 
1029
  virtual void evaluate_basis_derivatives_all(unsigned int n,
 
1030
                                              double* values,
 
1031
                                              const double* coordinates,
 
1032
                                              const ufc::cell& c) const
 
1033
  {
 
1034
    throw std::runtime_error("The vectorised version of evaluate_basis_derivatives() is not yet implemented.");
 
1035
  }
 
1036
 
 
1037
  /// Evaluate linear functional for dof i on the function f
 
1038
  virtual double evaluate_dof(unsigned int i,
 
1039
                              const ufc::function& f,
 
1040
                              const ufc::cell& c) const
 
1041
  {
 
1042
    // The reference points, direction and weights:
 
1043
    const static double X[35][1][3] = {{{0, 0, 0}}, {{1, 0, 0}}, {{0, 1, 0}}, {{0, 0, 1}}, {{0, 0.75, 0.25}}, {{0, 0.5, 0.5}}, {{0, 0.25, 0.75}}, {{0.75, 0, 0.25}}, {{0.5, 0, 0.5}}, {{0.25, 0, 0.75}}, {{0.75, 0.25, 0}}, {{0.5, 0.5, 0}}, {{0.25, 0.75, 0}}, {{0, 0, 0.25}}, {{0, 0, 0.5}}, {{0, 0, 0.75}}, {{0, 0.25, 0}}, {{0, 0.5, 0}}, {{0, 0.75, 0}}, {{0.25, 0, 0}}, {{0.5, 0, 0}}, {{0.75, 0, 0}}, {{0.5, 0.25, 0.25}}, {{0.25, 0.5, 0.25}}, {{0.25, 0.25, 0.5}}, {{0, 0.25, 0.25}}, {{0, 0.5, 0.25}}, {{0, 0.25, 0.5}}, {{0.25, 0, 0.25}}, {{0.5, 0, 0.25}}, {{0.25, 0, 0.5}}, {{0.25, 0.25, 0}}, {{0.5, 0.25, 0}}, {{0.25, 0.5, 0}}, {{0.25, 0.25, 0.25}}};
 
1044
    const static double W[35][1] = {{1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}};
 
1045
    const static double D[35][1][1] = {{{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}};
 
1046
    
 
1047
    const double * const * x = c.coordinates;
 
1048
    double result = 0.0;
 
1049
    // Iterate over the points:
 
1050
    // Evaluate basis functions for affine mapping
 
1051
    const double w0 = 1.0 - X[i][0][0] - X[i][0][1] - X[i][0][2];
 
1052
    const double w1 = X[i][0][0];
 
1053
    const double w2 = X[i][0][1];
 
1054
    const double w3 = X[i][0][2];
 
1055
    
 
1056
    // Compute affine mapping y = F(X)
 
1057
    double y[3];
 
1058
    y[0] = w0*x[0][0] + w1*x[1][0] + w2*x[2][0] + w3*x[3][0];
 
1059
    y[1] = w0*x[0][1] + w1*x[1][1] + w2*x[2][1] + w3*x[3][1];
 
1060
    y[2] = w0*x[0][2] + w1*x[1][2] + w2*x[2][2] + w3*x[3][2];
 
1061
    
 
1062
    // Evaluate function at physical points
 
1063
    double values[1];
 
1064
    f.evaluate(values, y, c);
 
1065
    
 
1066
    // Map function values using appropriate mapping
 
1067
    // Affine map: Do nothing
 
1068
    
 
1069
    // Note that we do not map the weights (yet).
 
1070
    
 
1071
    // Take directional components
 
1072
    for(int k = 0; k < 1; k++)
 
1073
      result += values[k]*D[i][0][k];
 
1074
    // Multiply by weights 
 
1075
    result *= W[i][0];
 
1076
    
 
1077
    return result;
 
1078
  }
 
1079
 
 
1080
  /// Evaluate linear functionals for all dofs on the function f
 
1081
  virtual void evaluate_dofs(double* values,
 
1082
                             const ufc::function& f,
 
1083
                             const ufc::cell& c) const
 
1084
  {
 
1085
    throw std::runtime_error("Not implemented (introduced in UFC v1.1).");
 
1086
  }
 
1087
 
 
1088
  /// Interpolate vertex values from dof values
 
1089
  virtual void interpolate_vertex_values(double* vertex_values,
 
1090
                                         const double* dof_values,
 
1091
                                         const ufc::cell& c) const
 
1092
  {
 
1093
    // Evaluate at vertices and use affine mapping
 
1094
    vertex_values[0] = dof_values[0];
 
1095
    vertex_values[1] = dof_values[1];
 
1096
    vertex_values[2] = dof_values[2];
 
1097
    vertex_values[3] = dof_values[3];
 
1098
  }
 
1099
 
 
1100
  /// Return the number of sub elements (for a mixed element)
 
1101
  virtual unsigned int num_sub_elements() const
 
1102
  {
 
1103
    return 1;
 
1104
  }
 
1105
 
 
1106
  /// Create a new finite element for sub element i (for a mixed element)
 
1107
  virtual ufc::finite_element* create_sub_element(unsigned int i) const
 
1108
  {
 
1109
    return new UFC_Poisson3D_4BilinearForm_finite_element_0();
 
1110
  }
 
1111
 
 
1112
};
 
1113
 
 
1114
/// This class defines the interface for a finite element.
 
1115
 
 
1116
class UFC_Poisson3D_4BilinearForm_finite_element_1: public ufc::finite_element
 
1117
{
 
1118
public:
 
1119
 
 
1120
  /// Constructor
 
1121
  UFC_Poisson3D_4BilinearForm_finite_element_1() : ufc::finite_element()
 
1122
  {
 
1123
    // Do nothing
 
1124
  }
 
1125
 
 
1126
  /// Destructor
 
1127
  virtual ~UFC_Poisson3D_4BilinearForm_finite_element_1()
 
1128
  {
 
1129
    // Do nothing
 
1130
  }
 
1131
 
 
1132
  /// Return a string identifying the finite element
 
1133
  virtual const char* signature() const
 
1134
  {
 
1135
    return "FiniteElement('Lagrange', 'tetrahedron', 4)";
 
1136
  }
 
1137
 
 
1138
  /// Return the cell shape
 
1139
  virtual ufc::shape cell_shape() const
 
1140
  {
 
1141
    return ufc::tetrahedron;
 
1142
  }
 
1143
 
 
1144
  /// Return the dimension of the finite element function space
 
1145
  virtual unsigned int space_dimension() const
 
1146
  {
 
1147
    return 35;
 
1148
  }
 
1149
 
 
1150
  /// Return the rank of the value space
 
1151
  virtual unsigned int value_rank() const
 
1152
  {
 
1153
    return 0;
 
1154
  }
 
1155
 
 
1156
  /// Return the dimension of the value space for axis i
 
1157
  virtual unsigned int value_dimension(unsigned int i) const
 
1158
  {
 
1159
    return 1;
 
1160
  }
 
1161
 
 
1162
  /// Evaluate basis function i at given point in cell
 
1163
  virtual void evaluate_basis(unsigned int i,
 
1164
                              double* values,
 
1165
                              const double* coordinates,
 
1166
                              const ufc::cell& c) const
 
1167
  {
 
1168
    // Extract vertex coordinates
 
1169
    const double * const * element_coordinates = c.coordinates;
 
1170
    
 
1171
    // Compute Jacobian of affine map from reference cell
 
1172
    const double J_00 = element_coordinates[1][0] - element_coordinates[0][0];
 
1173
    const double J_01 = element_coordinates[2][0] - element_coordinates[0][0];
 
1174
    const double J_02 = element_coordinates[3][0] - element_coordinates[0][0];
 
1175
    const double J_10 = element_coordinates[1][1] - element_coordinates[0][1];
 
1176
    const double J_11 = element_coordinates[2][1] - element_coordinates[0][1];
 
1177
    const double J_12 = element_coordinates[3][1] - element_coordinates[0][1];
 
1178
    const double J_20 = element_coordinates[1][2] - element_coordinates[0][2];
 
1179
    const double J_21 = element_coordinates[2][2] - element_coordinates[0][2];
 
1180
    const double J_22 = element_coordinates[3][2] - element_coordinates[0][2];
 
1181
      
 
1182
    // Compute sub determinants
 
1183
    const double d00 = J_11*J_22 - J_12*J_21;
 
1184
    const double d01 = J_12*J_20 - J_10*J_22;
 
1185
    const double d02 = J_10*J_21 - J_11*J_20;
 
1186
    
 
1187
    const double d10 = J_02*J_21 - J_01*J_22;
 
1188
    const double d11 = J_00*J_22 - J_02*J_20;
 
1189
    const double d12 = J_01*J_20 - J_00*J_21;
 
1190
    
 
1191
    const double d20 = J_01*J_12 - J_02*J_11;
 
1192
    const double d21 = J_02*J_10 - J_00*J_12;
 
1193
    const double d22 = J_00*J_11 - J_01*J_10;
 
1194
      
 
1195
    // Compute determinant of Jacobian
 
1196
    double detJ = J_00*d00 + J_10*d10 + J_20*d20;
 
1197
    
 
1198
    // Compute inverse of Jacobian
 
1199
    
 
1200
    // Compute constants
 
1201
    const double C0 = d00*(element_coordinates[0][0] - element_coordinates[2][0] - element_coordinates[3][0]) \
 
1202
                    + d10*(element_coordinates[0][1] - element_coordinates[2][1] - element_coordinates[3][1]) \
 
1203
                    + d20*(element_coordinates[0][2] - element_coordinates[2][2] - element_coordinates[3][2]);
 
1204
    
 
1205
    const double C1 = d01*(element_coordinates[0][0] - element_coordinates[1][0] - element_coordinates[3][0]) \
 
1206
                    + d11*(element_coordinates[0][1] - element_coordinates[1][1] - element_coordinates[3][1]) \
 
1207
                    + d21*(element_coordinates[0][2] - element_coordinates[1][2] - element_coordinates[3][2]);
 
1208
    
 
1209
    const double C2 = d02*(element_coordinates[0][0] - element_coordinates[1][0] - element_coordinates[2][0]) \
 
1210
                    + d12*(element_coordinates[0][1] - element_coordinates[1][1] - element_coordinates[2][1]) \
 
1211
                    + d22*(element_coordinates[0][2] - element_coordinates[1][2] - element_coordinates[2][2]);
 
1212
    
 
1213
    // Get coordinates and map to the UFC reference element
 
1214
    double x = (C0 + d00*coordinates[0] + d10*coordinates[1] + d20*coordinates[2]) / detJ;
 
1215
    double y = (C1 + d01*coordinates[0] + d11*coordinates[1] + d21*coordinates[2]) / detJ;
 
1216
    double z = (C2 + d02*coordinates[0] + d12*coordinates[1] + d22*coordinates[2]) / detJ;
 
1217
    
 
1218
    // Map coordinates to the reference cube
 
1219
    if (std::abs(y + z - 1.0) < 1e-14)
 
1220
      x = 1.0;
 
1221
    else
 
1222
      x = -2.0 * x/(y + z - 1.0) - 1.0;
 
1223
    if (std::abs(z - 1.0) < 1e-14)
 
1224
      y = -1.0;
 
1225
    else
 
1226
      y = 2.0 * y/(1.0 - z) - 1.0;
 
1227
    z = 2.0 * z - 1.0;
 
1228
    
 
1229
    // Reset values
 
1230
    *values = 0;
 
1231
    
 
1232
    // Map degree of freedom to element degree of freedom
 
1233
    const unsigned int dof = i;
 
1234
    
 
1235
    // Generate scalings
 
1236
    const double scalings_y_0 = 1;
 
1237
    const double scalings_y_1 = scalings_y_0*(0.5 - 0.5*y);
 
1238
    const double scalings_y_2 = scalings_y_1*(0.5 - 0.5*y);
 
1239
    const double scalings_y_3 = scalings_y_2*(0.5 - 0.5*y);
 
1240
    const double scalings_y_4 = scalings_y_3*(0.5 - 0.5*y);
 
1241
    const double scalings_z_0 = 1;
 
1242
    const double scalings_z_1 = scalings_z_0*(0.5 - 0.5*z);
 
1243
    const double scalings_z_2 = scalings_z_1*(0.5 - 0.5*z);
 
1244
    const double scalings_z_3 = scalings_z_2*(0.5 - 0.5*z);
 
1245
    const double scalings_z_4 = scalings_z_3*(0.5 - 0.5*z);
 
1246
    
 
1247
    // Compute psitilde_a
 
1248
    const double psitilde_a_0 = 1;
 
1249
    const double psitilde_a_1 = x;
 
1250
    const double psitilde_a_2 = 1.5*x*psitilde_a_1 - 0.5*psitilde_a_0;
 
1251
    const double psitilde_a_3 = 1.66666666666667*x*psitilde_a_2 - 0.666666666666667*psitilde_a_1;
 
1252
    const double psitilde_a_4 = 1.75*x*psitilde_a_3 - 0.75*psitilde_a_2;
 
1253
    
 
1254
    // Compute psitilde_bs
 
1255
    const double psitilde_bs_0_0 = 1;
 
1256
    const double psitilde_bs_0_1 = 1.5*y + 0.5;
 
1257
    const double psitilde_bs_0_2 = 0.111111111111111*psitilde_bs_0_1 + 1.66666666666667*y*psitilde_bs_0_1 - 0.555555555555556*psitilde_bs_0_0;
 
1258
    const double psitilde_bs_0_3 = 0.05*psitilde_bs_0_2 + 1.75*y*psitilde_bs_0_2 - 0.7*psitilde_bs_0_1;
 
1259
    const double psitilde_bs_0_4 = 0.0285714285714286*psitilde_bs_0_3 + 1.8*y*psitilde_bs_0_3 - 0.771428571428571*psitilde_bs_0_2;
 
1260
    const double psitilde_bs_1_0 = 1;
 
1261
    const double psitilde_bs_1_1 = 2.5*y + 1.5;
 
1262
    const double psitilde_bs_1_2 = 0.54*psitilde_bs_1_1 + 2.1*y*psitilde_bs_1_1 - 0.56*psitilde_bs_1_0;
 
1263
    const double psitilde_bs_1_3 = 0.285714285714286*psitilde_bs_1_2 + 2*y*psitilde_bs_1_2 - 0.714285714285714*psitilde_bs_1_1;
 
1264
    const double psitilde_bs_2_0 = 1;
 
1265
    const double psitilde_bs_2_1 = 3.5*y + 2.5;
 
1266
    const double psitilde_bs_2_2 = 1.02040816326531*psitilde_bs_2_1 + 2.57142857142857*y*psitilde_bs_2_1 - 0.551020408163265*psitilde_bs_2_0;
 
1267
    const double psitilde_bs_3_0 = 1;
 
1268
    const double psitilde_bs_3_1 = 4.5*y + 3.5;
 
1269
    const double psitilde_bs_4_0 = 1;
 
1270
    
 
1271
    // Compute psitilde_cs
 
1272
    const double psitilde_cs_00_0 = 1;
 
1273
    const double psitilde_cs_00_1 = 2*z + 1;
 
1274
    const double psitilde_cs_00_2 = 0.3125*psitilde_cs_00_1 + 1.875*z*psitilde_cs_00_1 - 0.5625*psitilde_cs_00_0;
 
1275
    const double psitilde_cs_00_3 = 0.155555555555556*psitilde_cs_00_2 + 1.86666666666667*z*psitilde_cs_00_2 - 0.711111111111111*psitilde_cs_00_1;
 
1276
    const double psitilde_cs_00_4 = 0.09375*psitilde_cs_00_3 + 1.875*z*psitilde_cs_00_3 - 0.78125*psitilde_cs_00_2;
 
1277
    const double psitilde_cs_01_0 = 1;
 
1278
    const double psitilde_cs_01_1 = 3*z + 2;
 
1279
    const double psitilde_cs_01_2 = 0.777777777777778*psitilde_cs_01_1 + 2.33333333333333*z*psitilde_cs_01_1 - 0.555555555555556*psitilde_cs_01_0;
 
1280
    const double psitilde_cs_01_3 = 0.428571428571429*psitilde_cs_01_2 + 2.14285714285714*z*psitilde_cs_01_2 - 0.714285714285714*psitilde_cs_01_1;
 
1281
    const double psitilde_cs_02_0 = 1;
 
1282
    const double psitilde_cs_02_1 = 4*z + 3;
 
1283
    const double psitilde_cs_02_2 = 1.265625*psitilde_cs_02_1 + 2.8125*z*psitilde_cs_02_1 - 0.546875*psitilde_cs_02_0;
 
1284
    const double psitilde_cs_03_0 = 1;
 
1285
    const double psitilde_cs_03_1 = 5*z + 4;
 
1286
    const double psitilde_cs_04_0 = 1;
 
1287
    const double psitilde_cs_10_0 = 1;
 
1288
    const double psitilde_cs_10_1 = 3*z + 2;
 
1289
    const double psitilde_cs_10_2 = 0.777777777777778*psitilde_cs_10_1 + 2.33333333333333*z*psitilde_cs_10_1 - 0.555555555555556*psitilde_cs_10_0;
 
1290
    const double psitilde_cs_10_3 = 0.428571428571429*psitilde_cs_10_2 + 2.14285714285714*z*psitilde_cs_10_2 - 0.714285714285714*psitilde_cs_10_1;
 
1291
    const double psitilde_cs_11_0 = 1;
 
1292
    const double psitilde_cs_11_1 = 4*z + 3;
 
1293
    const double psitilde_cs_11_2 = 1.265625*psitilde_cs_11_1 + 2.8125*z*psitilde_cs_11_1 - 0.546875*psitilde_cs_11_0;
 
1294
    const double psitilde_cs_12_0 = 1;
 
1295
    const double psitilde_cs_12_1 = 5*z + 4;
 
1296
    const double psitilde_cs_13_0 = 1;
 
1297
    const double psitilde_cs_20_0 = 1;
 
1298
    const double psitilde_cs_20_1 = 4*z + 3;
 
1299
    const double psitilde_cs_20_2 = 1.265625*psitilde_cs_20_1 + 2.8125*z*psitilde_cs_20_1 - 0.546875*psitilde_cs_20_0;
 
1300
    const double psitilde_cs_21_0 = 1;
 
1301
    const double psitilde_cs_21_1 = 5*z + 4;
 
1302
    const double psitilde_cs_22_0 = 1;
 
1303
    const double psitilde_cs_30_0 = 1;
 
1304
    const double psitilde_cs_30_1 = 5*z + 4;
 
1305
    const double psitilde_cs_31_0 = 1;
 
1306
    const double psitilde_cs_40_0 = 1;
 
1307
    
 
1308
    // Compute basisvalues
 
1309
    const double basisvalue0 = 0.866025403784439*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_0;
 
1310
    const double basisvalue1 = 2.73861278752583*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_0;
 
1311
    const double basisvalue2 = 1.58113883008419*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_0;
 
1312
    const double basisvalue3 = 1.11803398874989*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_1;
 
1313
    const double basisvalue4 = 5.1234753829798*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_0;
 
1314
    const double basisvalue5 = 3.96862696659689*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_0;
 
1315
    const double basisvalue6 = 2.29128784747792*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_0;
 
1316
    const double basisvalue7 = 3.24037034920393*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_1;
 
1317
    const double basisvalue8 = 1.87082869338697*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_1;
 
1318
    const double basisvalue9 = 1.3228756555323*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_2;
 
1319
    const double basisvalue10 = 7.93725393319377*psitilde_a_3*scalings_y_3*psitilde_bs_3_0*scalings_z_3*psitilde_cs_30_0;
 
1320
    const double basisvalue11 = 6.70820393249937*psitilde_a_2*scalings_y_2*psitilde_bs_2_1*scalings_z_3*psitilde_cs_21_0;
 
1321
    const double basisvalue12 = 5.19615242270663*psitilde_a_1*scalings_y_1*psitilde_bs_1_2*scalings_z_3*psitilde_cs_12_0;
 
1322
    const double basisvalue13 = 3*psitilde_a_0*scalings_y_0*psitilde_bs_0_3*scalings_z_3*psitilde_cs_03_0;
 
1323
    const double basisvalue14 = 5.80947501931113*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_1;
 
1324
    const double basisvalue15 = 4.5*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_1;
 
1325
    const double basisvalue16 = 2.59807621135332*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_1;
 
1326
    const double basisvalue17 = 3.67423461417477*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_2;
 
1327
    const double basisvalue18 = 2.12132034355964*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_2;
 
1328
    const double basisvalue19 = 1.5*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_3;
 
1329
    const double basisvalue20 = 11.1242977306435*psitilde_a_4*scalings_y_4*psitilde_bs_4_0*scalings_z_4*psitilde_cs_40_0;
 
1330
    const double basisvalue21 = 9.81070843517429*psitilde_a_3*scalings_y_3*psitilde_bs_3_1*scalings_z_4*psitilde_cs_31_0;
 
1331
    const double basisvalue22 = 8.2915619758885*psitilde_a_2*scalings_y_2*psitilde_bs_2_2*scalings_z_4*psitilde_cs_22_0;
 
1332
    const double basisvalue23 = 6.42261628933256*psitilde_a_1*scalings_y_1*psitilde_bs_1_3*scalings_z_4*psitilde_cs_13_0;
 
1333
    const double basisvalue24 = 3.70809924354783*psitilde_a_0*scalings_y_0*psitilde_bs_0_4*scalings_z_4*psitilde_cs_04_0;
 
1334
    const double basisvalue25 = 8.77496438739212*psitilde_a_3*scalings_y_3*psitilde_bs_3_0*scalings_z_3*psitilde_cs_30_1;
 
1335
    const double basisvalue26 = 7.41619848709566*psitilde_a_2*scalings_y_2*psitilde_bs_2_1*scalings_z_3*psitilde_cs_21_1;
 
1336
    const double basisvalue27 = 5.74456264653803*psitilde_a_1*scalings_y_1*psitilde_bs_1_2*scalings_z_3*psitilde_cs_12_1;
 
1337
    const double basisvalue28 = 3.3166247903554*psitilde_a_0*scalings_y_0*psitilde_bs_0_3*scalings_z_3*psitilde_cs_03_1;
 
1338
    const double basisvalue29 = 6.42261628933256*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_2;
 
1339
    const double basisvalue30 = 4.9749371855331*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_2;
 
1340
    const double basisvalue31 = 2.87228132326901*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_2;
 
1341
    const double basisvalue32 = 4.06201920231798*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_3;
 
1342
    const double basisvalue33 = 2.34520787991171*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_3;
 
1343
    const double basisvalue34 = 1.6583123951777*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_4;
 
1344
    
 
1345
    // Table(s) of coefficients
 
1346
    const static double coefficients0[35][35] = \
 
1347
    {{-0.0137464349807051, -0.0144900147488139, -0.00836581391578937, -0.00591552374999941, 0, 0, 0, 0, 0, 0, -0.00671936840905293, -0.00567890279999946, -0.00439885919382571, -0.00253968253968254, -0.00491807409042211, -0.00380952380952381, -0.00219942959691287, -0.00311046316543895, -0.0017958267458706, -0.00126984126984128, 0.0136980289516341, 0.0120805260192622, 0.010209907964538, 0.00790856070259325, 0.00456600965054471, 0.0108051509532101, 0.00913201930108942, 0.00707363173407281, 0.00408396318581522, 0.00790856070259324, 0.00612594477872282, 0.0035368158670364, 0.00500181296677924, 0.00288779806280616, 0.00204198159290761},
 
1348
    {-0.0137464349807054, 0.0144900147488139, -0.00836581391578934, -0.00591552374999945, 0, 0, 0, 0, 0, 0, 0.00671936840905293, -0.00567890279999946, 0.00439885919382572, -0.00253968253968254, -0.00491807409042213, 0.00380952380952382, -0.00219942959691286, 0.00311046316543897, -0.0017958267458706, -0.00126984126984127, 0.0136980289516341, -0.0120805260192622, 0.010209907964538, -0.00790856070259325, 0.00456600965054471, -0.0108051509532101, 0.00913201930108941, -0.0070736317340728, 0.00408396318581521, 0.00790856070259325, -0.00612594477872282, 0.0035368158670364, -0.00500181296677924, 0.00288779806280615, 0.00204198159290761},
 
1349
    {-0.0137464349807053, 0, 0.0167316278315787, -0.00591552374999946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0101587301587302, 0, 0, -0.00659828879073857, 0, 0.00359165349174119, -0.00126984126984127, 0, 0, 0, 0, 0.0228300482527235, 0, 0, 0, -0.0163358527432608, 0, 0, 0.0106104476011092, 0, -0.0057755961256123, 0.00204198159290761},
 
1350
    {-0.0137464349807054, 0, 0, 0.0177465712499983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0126984126984127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0306297238936141},
 
1351
    {0.0439885919382572, 0, 0.026770604530526, 0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, 0, 0.0406349206349206, 0, 0, 0.00439885919382572, 0, -0.0143666139669648, 0.00761904761904763, 0, 0, 0, 0, 0, 0, 0, 0, 0.0367556686723369, 0, 0, -0.0424417904044368, 0, 0.0303218796594646, -0.0122518895574456},
 
1352
    {-0.0329914439536931, 0, -0.0200779533978945, -0.0141972569999986, 0, 0, -0.00969857289937744, 0, 0.0712696645099798, -0.050395263067897, 0, 0, 0, 0, 0, 0, 0.0461880215351701, 0, 0.0107749604752236, -0.0190476190476191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0495154221385096, 0, -0.0606437593189292, 0.0306297238936141},
 
1353
    {0.0439885919382573, 0, 0.0267706045305259, 0.0189296759999982, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, 0, 0.0359165349174119, 0.0253968253968254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0505364660991076, -0.0408396318581522},
 
1354
    {0.0439885919382573, 0.0231840235981023, -0.0133853022652629, 0.0189296759999982, 0.0433733365754904, -0.0335968420452647, 0.0193971457987549, -0.0274317066599275, 0.01583770322444, 0.0111989473484215, 0.0268774736362117, -0.0227156111999979, 0.0175954367753029, -0.0101587301587302, 0.00327871606028141, -0.00253968253968255, 0.0014662863979419, -0.0124418526617558, 0.00718330698348238, 0.00761904761904763, 0, 0, 0, 0, 0, 0.0243115896447228, -0.0205470434274512, 0.0159156714016638, -0.00918891716808423, -0.031634242810373, 0.0245037791148913, -0.0141472634681456, 0.026259518075591, -0.0151609398297323, -0.0122518895574456},
 
1355
    {-0.0329914439536929, -0.0173880176985766, 0.0100389766989472, -0.0141972569999986, -0.00722888942924838, 0.00559947367421081, -0.00323285763312582, 0.0617213399848368, -0.03563483225499, -0.050395263067897, 0, 0, 0, 0, 0.0344265186329548, -0.0266666666666667, 0.01539600717839, 0.00933138949631686, -0.00538748023761177, -0.0190476190476191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0369066166121018, -0.0285877423007065, 0.0165051407128365, -0.052519036151182, 0.0303218796594646, 0.0306297238936141},
 
1356
    {0.0439885919382573, 0.0231840235981023, -0.013385302265263, 0.0189296759999982, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, 0.0311046316543895, -0.017958267458706, 0.0253968253968255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0437658634593183, -0.0252682330495538, -0.0408396318581521},
 
1357
    {0.0439885919382572, 0.0231840235981023, 0.013385302265263, -0.0189296759999982, 0.0433733365754903, -0.0335968420452647, 0.0193971457987549, -0.0274317066599275, 0.01583770322444, 0.0111989473484215, 0.0268774736362117, 0, -0.0117302911835353, 0.0101587301587302, -0.0229510124219699, 0.00761904761904761, -0.00146628639794191, 0.0165891368823411, -0.0071833069834824, -0.00761904761904763, 0, 0.0241610520385245, -0.0357346778758831, 0.0355885231616696, -0.0228300482527235, -0.00270128773830253, -0.0114150241263618, 0.0159156714016638, -0.0112308987609918, 0.00395428035129663, 0.00306297238936141, -0.0035368158670364, -0.00375135972508443, 0.00072194951570154, 0.00204198159290761},
 
1358
    {-0.0329914439536929, -0.0173880176985768, -0.0100389766989472, 0.0141972569999986, -0.00722888942924839, 0.0615942104163185, -0.0614242950293904, -0.00685792666498187, -0.00395942580611001, 0.00559947367421077, 0, 0.0340734167999968, 0, -0.0152380952380952, -0.00491807409042213, -0.0266666666666667, 0.0175954367753029, 0.00933138949631688, 0.00538748023761179, -0.00761904761904761, 0, 0, 0.0357346778758831, -0.0593142052694494, 0.0456600965054471, 0, -0.00913201930108943, 0, 0.00408396318581521, 0.00131809345043221, 0.00714693557517662, -0.00471575448938186, -0.00250090648338962, -0.00144389903140307, 0.00204198159290761},
 
1359
    {0.0439885919382572, 0.0231840235981022, 0.013385302265263, -0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, 0.0293257279588382, 0.0101587301587302, 0, -0.0101587301587302, -0.0219942959691286, 0.00207364211029264, 0.017958267458706, -0.00761904761904762, 0, 0, 0, 0.0395428035129662, -0.0456600965054471, 0, 0, -0.017684079335182, 0.0142938711503532, 0, 0.00612594477872282, 0, -0.00125045324169481, -0.00360974757850769, 0.0020419815929076},
 
1360
    {0.043988591938257, -0.0231840235981023, -0.0133853022652629, 0.0189296759999983, 0.0433733365754903, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484216, -0.0268774736362117, -0.0227156111999979, -0.0175954367753029, -0.0101587301587302, 0.00327871606028139, 0.00253968253968253, 0.0014662863979419, 0.0124418526617558, 0.00718330698348236, 0.00761904761904761, 0, 0, 0, 0, 0, -0.0243115896447228, -0.0205470434274512, -0.0159156714016638, -0.00918891716808424, -0.031634242810373, -0.0245037791148913, -0.0141472634681456, -0.026259518075591, -0.0151609398297323, -0.0122518895574456},
 
1361
    {-0.0329914439536929, 0.0173880176985768, 0.0100389766989471, -0.0141972569999987, -0.00722888942924838, -0.00559947367421082, -0.00323285763312581, -0.0617213399848367, -0.03563483225499, -0.050395263067897, 0, 0, 0, 0, 0.0344265186329548, 0.0266666666666667, 0.01539600717839, -0.00933138949631689, -0.00538748023761178, -0.019047619047619, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0369066166121018, 0.0285877423007065, 0.0165051407128365, 0.0525190361511819, 0.0303218796594646, 0.0306297238936141},
 
1362
    {0.0439885919382572, -0.0231840235981023, -0.0133853022652629, 0.0189296759999981, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, -0.0311046316543896, -0.017958267458706, 0.0253968253968255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0437658634593183, -0.0252682330495538, -0.0408396318581521},
 
1363
    {0.0439885919382572, -0.0231840235981023, 0.013385302265263, -0.0189296759999982, 0.0433733365754904, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484216, -0.0268774736362117, 0, 0.0117302911835352, 0.0101587301587302, -0.0229510124219699, -0.00761904761904762, -0.00146628639794191, -0.0165891368823411, -0.00718330698348239, -0.00761904761904763, 0, -0.0241610520385245, -0.0357346778758831, -0.0355885231616696, -0.0228300482527235, 0.00270128773830254, -0.0114150241263618, -0.0159156714016638, -0.0112308987609918, 0.00395428035129662, -0.00306297238936141, -0.0035368158670364, 0.00375135972508443, 0.000721949515701533, 0.00204198159290761},
 
1364
    {-0.0329914439536929, 0.0173880176985766, -0.0100389766989472, 0.0141972569999987, -0.00722888942924841, -0.0615942104163186, -0.0614242950293904, 0.00685792666498186, -0.00395942580610998, 0.00559947367421075, 0, 0.0340734167999968, 0, -0.0152380952380952, -0.00491807409042213, 0.0266666666666667, 0.0175954367753029, -0.00933138949631688, 0.00538748023761179, -0.00761904761904763, 0, 0, 0.0357346778758831, 0.0593142052694494, 0.0456600965054471, 0, -0.00913201930108943, 0, 0.0040839631858152, 0.00131809345043222, -0.00714693557517663, -0.00471575448938187, 0.00250090648338962, -0.00144389903140308, 0.00204198159290761},
 
1365
    {0.0439885919382573, -0.0231840235981022, 0.013385302265263, -0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, -0.0293257279588382, 0.0101587301587302, 0, 0.0101587301587301, -0.0219942959691286, -0.00207364211029265, 0.017958267458706, -0.00761904761904761, 0, 0, 0, -0.0395428035129663, -0.0456600965054471, 0, 0, 0.017684079335182, 0.0142938711503532, 0, -0.00612594477872281, 0, 0.00125045324169481, -0.00360974757850769, 0.0020419815929076},
 
1366
    {0.0439885919382571, 0, -0.026770604530526, -0.0189296759999982, 0.0433733365754904, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484215, 0.0134387368181058, -0.0113578055999989, -0.0205280095711867, -0.0152380952380952, -0.00983614818084424, -0.0177777777777778, -0.0131965775814772, -0.0145154947720485, -0.0107749604752236, -0.00761904761904761, -0.0547921158065365, -0.0241610520385245, -0.00510495398226901, 0.00395428035129663, 0.00456600965054471, -0.0216103019064202, -0.00456600965054471, 0.00353681586703639, 0.00408396318581521, -0.00395428035129661, 0.0030629723893614, 0.0035368158670364, 0.00250090648338961, 0.00288779806280615, 0.00204198159290761},
 
1367
    {-0.0329914439536931, 0, 0.0200779533978945, 0.0141972569999987, -0.0867466731509807, 0, 0.00969857289937743, 0, 0.00791885161221998, 0.00559947367421076, 0, 0.0340734167999968, 0, -0.0152380952380953, 0.0295084445425327, 0, -0.0131965775814772, 0, -0.0107749604752236, -0.00761904761904762, 0.0821881737098047, 0, -0.010209907964538, 0, 0.00456600965054471, 0, -0.00913201930108944, 0, 0.00408396318581521, -0.00790856070259326, 0, 0.0035368158670364, 0, 0.00288779806280615, 0.00204198159290761},
 
1368
    {0.0439885919382573, 0, -0.026770604530526, -0.0189296759999982, 0.0433733365754903, -0.0335968420452646, 0.0193971457987549, -0.0274317066599274, 0.01583770322444, 0.0111989473484215, -0.0134387368181058, -0.0113578055999989, 0.0205280095711867, -0.0152380952380952, -0.00983614818084423, 0.0177777777777778, -0.0131965775814772, 0.0145154947720485, -0.0107749604752236, -0.00761904761904761, -0.0547921158065365, 0.0241610520385245, -0.005104953982269, -0.00395428035129662, 0.00456600965054471, 0.0216103019064202, -0.0045660096505447, -0.0035368158670364, 0.00408396318581521, -0.00395428035129662, -0.00306297238936141, 0.00353681586703641, -0.00250090648338962, 0.00288779806280615, 0.00204198159290761},
 
1369
    {0.0439885919382573, 0.139104141588614, -0.080311813591578, -0.0567890279999947, 0.0578311154339872, 0.0335968420452646, -0.0420271492306356, 0.0274317066599275, -0.0475131096733199, -0.0167984210226323, 0, 0.0454312223999957, -0.0586514559176763, 0.0406349206349207, 0.039344592723377, 0.00253968253968254, -0.0109971479845643, -0.0601356211984865, 0.017958267458706, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0.0410940868549024, -0.053052238005546, 0.0367556686723369, -0.0105447476034577, -0.0245037791148913, 0.0235787724469093, 0.0175063453837273, 0, -0.0122518895574457},
 
1370
    {0.0439885919382572, 0, 0.160623627183156, -0.0567890279999947, 0, 0.0783926314389509, 0.0096985728993774, -0.0274317066599275, 0.0475131096733199, -0.0167984210226323, 0, 0, 0.0586514559176763, -0.0609523809523809, 0, 0.033015873015873, 0.0241937255660415, -0.0145154947720485, -0.0610581093596003, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0, 0.053052238005546, -0.0551335030085053, 0, -0.0326717054865217, 0.0141472634681456, 0.00875317269186366, 0.0151609398297323, -0.0122518895574456},
 
1371
    {0.0439885919382571, 0, 0, 0.170367083999984, 0, -0.0111989473484216, 0.00969857289937744, 0.0822951199797824, 0.0475131096733199, -0.0167984210226324, 0, 0, 0, 0, 0, 0.0533333333333333, -0.0461880215351701, 0.0435464843161454, 0.0251415744421883, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.057175484601413, -0.0495154221385096, -0.026259518075591, -0.0151609398297323, 0.0306297238936141},
 
1372
    {0.0439885919382571, -0.139104141588614, -0.0803118135915779, -0.0567890279999947, 0.0578311154339871, -0.0335968420452646, -0.0420271492306356, -0.0274317066599274, -0.0475131096733199, -0.0167984210226323, 0, 0.0454312223999957, 0.0586514559176763, 0.0406349206349206, 0.0393445927233769, -0.00253968253968253, -0.0109971479845643, 0.0601356211984865, 0.0179582674587059, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0.0410940868549024, 0.053052238005546, 0.0367556686723369, -0.0105447476034577, 0.0245037791148913, 0.0235787724469093, -0.0175063453837273, 0, -0.0122518895574457},
 
1373
    {0.0439885919382571, 0, 0.160623627183156, -0.0567890279999946, 0, -0.0783926314389509, 0.00969857289937745, 0.0274317066599275, 0.0475131096733199, -0.0167984210226323, 0, 0, -0.0586514559176763, -0.0609523809523809, 0, -0.033015873015873, 0.0241937255660415, 0.0145154947720485, -0.0610581093596003, 0.0393650793650793, 0, 0, 0, 0, 0, 0, 0, -0.053052238005546, -0.0551335030085053, 0, 0.0326717054865217, 0.0141472634681456, -0.00875317269186368, 0.0151609398297323, -0.0122518895574456},
 
1374
    {0.0439885919382572, 0, 0, 0.170367083999984, 0, 0.0111989473484215, 0.00969857289937745, -0.0822951199797824, 0.0475131096733199, -0.0167984210226323, 0, 0, 0, 0, 0, -0.0533333333333333, -0.0461880215351701, -0.0435464843161453, 0.0251415744421883, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0571754846014129, -0.0495154221385096, 0.026259518075591, -0.0151609398297323, 0.0306297238936141},
 
1375
    {0.0439885919382573, -0.139104141588614, -0.0803118135915779, -0.0567890279999946, -0.0433733365754903, 0.0447957893936862, 0.0484928644968872, -0.0548634133198549, 0, -0.0167984210226323, 0.0806324209086351, 0.0227156111999979, -0.0058651455917676, -0.0101587301587302, -0.00327871606028142, 0.0304761904761905, 0.0271262983619253, 0.045620126426438, 0.0430998419008943, 0.0393650793650794, 0, 0, 0, 0, 0, 0.0729347689341683, 0.0205470434274512, -0.00530522380055458, -0.00918891716808423, 0.031634242810373, -0.00816792637163039, -0.0141472634681456, -0.00875317269186365, -0.0151609398297323, -0.0122518895574456},
 
1376
    {0.0439885919382571, 0.139104141588614, -0.0803118135915779, -0.0567890279999947, -0.0433733365754904, -0.0447957893936862, 0.0484928644968873, 0.0548634133198549, 0, -0.0167984210226323, -0.0806324209086351, 0.0227156111999979, 0.0058651455917676, -0.0101587301587302, -0.00327871606028142, -0.0304761904761905, 0.0271262983619253, -0.045620126426438, 0.0430998419008943, 0.0393650793650794, 0, 0, 0, 0, 0, -0.0729347689341683, 0.0205470434274512, 0.00530522380055459, -0.00918891716808424, 0.031634242810373, 0.00816792637163042, -0.0141472634681456, 0.00875317269186367, -0.0151609398297323, -0.0122518895574456},
 
1377
    {0.0439885919382572, 0, 0, 0.170367083999984, 0.0144577788584968, 0, -0.00323285763312585, 0, -0.0950262193466398, -0.0167984210226323, 0, 0, 0, 0, -0.0688530372659096, 0, 0.01539600717839, 0, -0.0502831488843767, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0738132332242036, 0, 0.0165051407128365, 0, 0.0303218796594646, 0.0306297238936141},
 
1378
    {0.0439885919382573, -0.139104141588614, -0.0803118135915779, -0.0567890279999947, -0.0433733365754903, -0.0447957893936862, -0.00969857289937743, 0.0548634133198549, 0.03167540644888, 0.0391963157194754, 0.0806324209086351, 0, 0.0527863103259086, 0.0609523809523809, 0.0229510124219699, 0.0101587301587302, 0.0168622935763319, -0.0124418526617558, -0.00718330698348239, -0.013968253968254, 0, 0.0724831561155734, 0.0357346778758831, -0.0118628410538899, -0.0228300482527235, -0.00810386321490759, 0.0114150241263618, -0.00530522380055459, -0.0112308987609918, -0.00395428035129662, -0.00102099079645379, -0.0035368158670364, 0.00125045324169481, 0.000721949515701537, 0.00204198159290762},
 
1379
    {0.0439885919382571, 0.139104141588614, -0.080311813591578, -0.0567890279999947, -0.0433733365754904, 0.0447957893936862, -0.00969857289937742, -0.0548634133198549, 0.0316754064488799, 0.0391963157194754, -0.0806324209086351, 0, -0.0527863103259086, 0.060952380952381, 0.0229510124219699, -0.0101587301587302, 0.0168622935763319, 0.0124418526617558, -0.00718330698348236, -0.013968253968254, 0, -0.0724831561155734, 0.0357346778758831, 0.0118628410538899, -0.0228300482527236, 0.00810386321490761, 0.0114150241263618, 0.00530522380055459, -0.0112308987609918, -0.00395428035129662, 0.00102099079645379, -0.0035368158670364, -0.0012504532416948, 0.000721949515701528, 0.0020419815929076},
 
1380
    {0.0439885919382572, 0, 0.160623627183156, -0.0567890279999947, 0.0144577788584968, 0, -0.0614242950293905, 0, -0.0633508128977598, 0.0391963157194754, 0, -0.0681468335999936, 0, -0.0914285714285715, 0.00983614818084423, 0, 0.0285925847598672, 0, 0.0143666139669647, -0.0139682539682539, 0, 0, -0.0714693557517662, 0, 0.0456600965054471, 0, 0.0182640386021788, 0, 0.0040839631858152, -0.00263618690086443, 0, -0.00471575448938186, 0, -0.00144389903140306, 0.00204198159290759},
 
1381
    {0.351908735506058, 0, 0, 0, -0.115662230867974, 0, -0.129314305325032, 0, 0, -0.134387368181059, 0, -0.0908624447999914, 0, 0.0406349206349206, -0.0786891854467539, 0, -0.0879771838765144, 0, 0, 0.0711111111111111, 0, 0, 0, 0, 0, 0, -0.0821881737098047, 0, 0.0367556686723369, 0.0210894952069153, 0, 0.0235787724469093, 0, 0, -0.0122518895574456}};
 
1382
    
 
1383
    // Extract relevant coefficients
 
1384
    const double coeff0_0 = coefficients0[dof][0];
 
1385
    const double coeff0_1 = coefficients0[dof][1];
 
1386
    const double coeff0_2 = coefficients0[dof][2];
 
1387
    const double coeff0_3 = coefficients0[dof][3];
 
1388
    const double coeff0_4 = coefficients0[dof][4];
 
1389
    const double coeff0_5 = coefficients0[dof][5];
 
1390
    const double coeff0_6 = coefficients0[dof][6];
 
1391
    const double coeff0_7 = coefficients0[dof][7];
 
1392
    const double coeff0_8 = coefficients0[dof][8];
 
1393
    const double coeff0_9 = coefficients0[dof][9];
 
1394
    const double coeff0_10 = coefficients0[dof][10];
 
1395
    const double coeff0_11 = coefficients0[dof][11];
 
1396
    const double coeff0_12 = coefficients0[dof][12];
 
1397
    const double coeff0_13 = coefficients0[dof][13];
 
1398
    const double coeff0_14 = coefficients0[dof][14];
 
1399
    const double coeff0_15 = coefficients0[dof][15];
 
1400
    const double coeff0_16 = coefficients0[dof][16];
 
1401
    const double coeff0_17 = coefficients0[dof][17];
 
1402
    const double coeff0_18 = coefficients0[dof][18];
 
1403
    const double coeff0_19 = coefficients0[dof][19];
 
1404
    const double coeff0_20 = coefficients0[dof][20];
 
1405
    const double coeff0_21 = coefficients0[dof][21];
 
1406
    const double coeff0_22 = coefficients0[dof][22];
 
1407
    const double coeff0_23 = coefficients0[dof][23];
 
1408
    const double coeff0_24 = coefficients0[dof][24];
 
1409
    const double coeff0_25 = coefficients0[dof][25];
 
1410
    const double coeff0_26 = coefficients0[dof][26];
 
1411
    const double coeff0_27 = coefficients0[dof][27];
 
1412
    const double coeff0_28 = coefficients0[dof][28];
 
1413
    const double coeff0_29 = coefficients0[dof][29];
 
1414
    const double coeff0_30 = coefficients0[dof][30];
 
1415
    const double coeff0_31 = coefficients0[dof][31];
 
1416
    const double coeff0_32 = coefficients0[dof][32];
 
1417
    const double coeff0_33 = coefficients0[dof][33];
 
1418
    const double coeff0_34 = coefficients0[dof][34];
 
1419
    
 
1420
    // Compute value(s)
 
1421
    *values = coeff0_0*basisvalue0 + coeff0_1*basisvalue1 + coeff0_2*basisvalue2 + coeff0_3*basisvalue3 + coeff0_4*basisvalue4 + coeff0_5*basisvalue5 + coeff0_6*basisvalue6 + coeff0_7*basisvalue7 + coeff0_8*basisvalue8 + coeff0_9*basisvalue9 + coeff0_10*basisvalue10 + coeff0_11*basisvalue11 + coeff0_12*basisvalue12 + coeff0_13*basisvalue13 + coeff0_14*basisvalue14 + coeff0_15*basisvalue15 + coeff0_16*basisvalue16 + coeff0_17*basisvalue17 + coeff0_18*basisvalue18 + coeff0_19*basisvalue19 + coeff0_20*basisvalue20 + coeff0_21*basisvalue21 + coeff0_22*basisvalue22 + coeff0_23*basisvalue23 + coeff0_24*basisvalue24 + coeff0_25*basisvalue25 + coeff0_26*basisvalue26 + coeff0_27*basisvalue27 + coeff0_28*basisvalue28 + coeff0_29*basisvalue29 + coeff0_30*basisvalue30 + coeff0_31*basisvalue31 + coeff0_32*basisvalue32 + coeff0_33*basisvalue33 + coeff0_34*basisvalue34;
 
1422
  }
 
1423
 
 
1424
  /// Evaluate all basis functions at given point in cell
 
1425
  virtual void evaluate_basis_all(double* values,
 
1426
                                  const double* coordinates,
 
1427
                                  const ufc::cell& c) const
 
1428
  {
 
1429
    throw std::runtime_error("The vectorised version of evaluate_basis() is not yet implemented.");
 
1430
  }
 
1431
 
 
1432
  /// Evaluate order n derivatives of basis function i at given point in cell
 
1433
  virtual void evaluate_basis_derivatives(unsigned int i,
 
1434
                                          unsigned int n,
 
1435
                                          double* values,
 
1436
                                          const double* coordinates,
 
1437
                                          const ufc::cell& c) const
 
1438
  {
 
1439
    // Extract vertex coordinates
 
1440
    const double * const * element_coordinates = c.coordinates;
 
1441
    
 
1442
    // Compute Jacobian of affine map from reference cell
 
1443
    const double J_00 = element_coordinates[1][0] - element_coordinates[0][0];
 
1444
    const double J_01 = element_coordinates[2][0] - element_coordinates[0][0];
 
1445
    const double J_02 = element_coordinates[3][0] - element_coordinates[0][0];
 
1446
    const double J_10 = element_coordinates[1][1] - element_coordinates[0][1];
 
1447
    const double J_11 = element_coordinates[2][1] - element_coordinates[0][1];
 
1448
    const double J_12 = element_coordinates[3][1] - element_coordinates[0][1];
 
1449
    const double J_20 = element_coordinates[1][2] - element_coordinates[0][2];
 
1450
    const double J_21 = element_coordinates[2][2] - element_coordinates[0][2];
 
1451
    const double J_22 = element_coordinates[3][2] - element_coordinates[0][2];
 
1452
      
 
1453
    // Compute sub determinants
 
1454
    const double d00 = J_11*J_22 - J_12*J_21;
 
1455
    const double d01 = J_12*J_20 - J_10*J_22;
 
1456
    const double d02 = J_10*J_21 - J_11*J_20;
 
1457
    
 
1458
    const double d10 = J_02*J_21 - J_01*J_22;
 
1459
    const double d11 = J_00*J_22 - J_02*J_20;
 
1460
    const double d12 = J_01*J_20 - J_00*J_21;
 
1461
    
 
1462
    const double d20 = J_01*J_12 - J_02*J_11;
 
1463
    const double d21 = J_02*J_10 - J_00*J_12;
 
1464
    const double d22 = J_00*J_11 - J_01*J_10;
 
1465
      
 
1466
    // Compute determinant of Jacobian
 
1467
    double detJ = J_00*d00 + J_10*d10 + J_20*d20;
 
1468
    
 
1469
    // Compute inverse of Jacobian
 
1470
    
 
1471
    // Compute constants
 
1472
    const double C0 = d00*(element_coordinates[0][0] - element_coordinates[2][0] - element_coordinates[3][0]) \
 
1473
                    + d10*(element_coordinates[0][1] - element_coordinates[2][1] - element_coordinates[3][1]) \
 
1474
                    + d20*(element_coordinates[0][2] - element_coordinates[2][2] - element_coordinates[3][2]);
 
1475
    
 
1476
    const double C1 = d01*(element_coordinates[0][0] - element_coordinates[1][0] - element_coordinates[3][0]) \
 
1477
                    + d11*(element_coordinates[0][1] - element_coordinates[1][1] - element_coordinates[3][1]) \
 
1478
                    + d21*(element_coordinates[0][2] - element_coordinates[1][2] - element_coordinates[3][2]);
 
1479
    
 
1480
    const double C2 = d02*(element_coordinates[0][0] - element_coordinates[1][0] - element_coordinates[2][0]) \
 
1481
                    + d12*(element_coordinates[0][1] - element_coordinates[1][1] - element_coordinates[2][1]) \
 
1482
                    + d22*(element_coordinates[0][2] - element_coordinates[1][2] - element_coordinates[2][2]);
 
1483
    
 
1484
    // Get coordinates and map to the UFC reference element
 
1485
    double x = (C0 + d00*coordinates[0] + d10*coordinates[1] + d20*coordinates[2]) / detJ;
 
1486
    double y = (C1 + d01*coordinates[0] + d11*coordinates[1] + d21*coordinates[2]) / detJ;
 
1487
    double z = (C2 + d02*coordinates[0] + d12*coordinates[1] + d22*coordinates[2]) / detJ;
 
1488
    
 
1489
    // Map coordinates to the reference cube
 
1490
    if (std::abs(y + z - 1.0) < 1e-14)
 
1491
      x = 1.0;
 
1492
    else
 
1493
      x = -2.0 * x/(y + z - 1.0) - 1.0;
 
1494
    if (std::abs(z - 1.0) < 1e-14)
 
1495
      y = -1.0;
 
1496
    else
 
1497
      y = 2.0 * y/(1.0 - z) - 1.0;
 
1498
    z = 2.0 * z - 1.0;
 
1499
    
 
1500
    // Compute number of derivatives
 
1501
    unsigned int num_derivatives = 1;
 
1502
    
 
1503
    for (unsigned int j = 0; j < n; j++)
 
1504
      num_derivatives *= 3;
 
1505
    
 
1506
    
 
1507
    // Declare pointer to two dimensional array that holds combinations of derivatives and initialise
 
1508
    unsigned int **combinations = new unsigned int *[num_derivatives];
 
1509
        
 
1510
    for (unsigned int j = 0; j < num_derivatives; j++)
 
1511
    {
 
1512
      combinations[j] = new unsigned int [n];
 
1513
      for (unsigned int k = 0; k < n; k++)
 
1514
        combinations[j][k] = 0;
 
1515
    }
 
1516
        
 
1517
    // Generate combinations of derivatives
 
1518
    for (unsigned int row = 1; row < num_derivatives; row++)
 
1519
    {
 
1520
      for (unsigned int num = 0; num < row; num++)
 
1521
      {
 
1522
        for (unsigned int col = n-1; col+1 > 0; col--)
 
1523
        {
 
1524
          if (combinations[row][col] + 1 > 2)
 
1525
            combinations[row][col] = 0;
 
1526
          else
 
1527
          {
 
1528
            combinations[row][col] += 1;
 
1529
            break;
 
1530
          }
 
1531
        }
 
1532
      }
 
1533
    }
 
1534
    
 
1535
    // Compute inverse of Jacobian
 
1536
    const double Jinv[3][3] ={{d00 / detJ, d10 / detJ, d20 / detJ}, {d01 / detJ, d11 / detJ, d21 / detJ}, {d02 / detJ, d12 / detJ, d22 / detJ}};
 
1537
    
 
1538
    // Declare transformation matrix
 
1539
    // Declare pointer to two dimensional array and initialise
 
1540
    double **transform = new double *[num_derivatives];
 
1541
        
 
1542
    for (unsigned int j = 0; j < num_derivatives; j++)
 
1543
    {
 
1544
      transform[j] = new double [num_derivatives];
 
1545
      for (unsigned int k = 0; k < num_derivatives; k++)
 
1546
        transform[j][k] = 1;
 
1547
    }
 
1548
    
 
1549
    // Construct transformation matrix
 
1550
    for (unsigned int row = 0; row < num_derivatives; row++)
 
1551
    {
 
1552
      for (unsigned int col = 0; col < num_derivatives; col++)
 
1553
      {
 
1554
        for (unsigned int k = 0; k < n; k++)
 
1555
          transform[row][col] *= Jinv[combinations[col][k]][combinations[row][k]];
 
1556
      }
 
1557
    }
 
1558
    
 
1559
    // Reset values
 
1560
    for (unsigned int j = 0; j < 1*num_derivatives; j++)
 
1561
      values[j] = 0;
 
1562
    
 
1563
    // Map degree of freedom to element degree of freedom
 
1564
    const unsigned int dof = i;
 
1565
    
 
1566
    // Generate scalings
 
1567
    const double scalings_y_0 = 1;
 
1568
    const double scalings_y_1 = scalings_y_0*(0.5 - 0.5*y);
 
1569
    const double scalings_y_2 = scalings_y_1*(0.5 - 0.5*y);
 
1570
    const double scalings_y_3 = scalings_y_2*(0.5 - 0.5*y);
 
1571
    const double scalings_y_4 = scalings_y_3*(0.5 - 0.5*y);
 
1572
    const double scalings_z_0 = 1;
 
1573
    const double scalings_z_1 = scalings_z_0*(0.5 - 0.5*z);
 
1574
    const double scalings_z_2 = scalings_z_1*(0.5 - 0.5*z);
 
1575
    const double scalings_z_3 = scalings_z_2*(0.5 - 0.5*z);
 
1576
    const double scalings_z_4 = scalings_z_3*(0.5 - 0.5*z);
 
1577
    
 
1578
    // Compute psitilde_a
 
1579
    const double psitilde_a_0 = 1;
 
1580
    const double psitilde_a_1 = x;
 
1581
    const double psitilde_a_2 = 1.5*x*psitilde_a_1 - 0.5*psitilde_a_0;
 
1582
    const double psitilde_a_3 = 1.66666666666667*x*psitilde_a_2 - 0.666666666666667*psitilde_a_1;
 
1583
    const double psitilde_a_4 = 1.75*x*psitilde_a_3 - 0.75*psitilde_a_2;
 
1584
    
 
1585
    // Compute psitilde_bs
 
1586
    const double psitilde_bs_0_0 = 1;
 
1587
    const double psitilde_bs_0_1 = 1.5*y + 0.5;
 
1588
    const double psitilde_bs_0_2 = 0.111111111111111*psitilde_bs_0_1 + 1.66666666666667*y*psitilde_bs_0_1 - 0.555555555555556*psitilde_bs_0_0;
 
1589
    const double psitilde_bs_0_3 = 0.05*psitilde_bs_0_2 + 1.75*y*psitilde_bs_0_2 - 0.7*psitilde_bs_0_1;
 
1590
    const double psitilde_bs_0_4 = 0.0285714285714286*psitilde_bs_0_3 + 1.8*y*psitilde_bs_0_3 - 0.771428571428571*psitilde_bs_0_2;
 
1591
    const double psitilde_bs_1_0 = 1;
 
1592
    const double psitilde_bs_1_1 = 2.5*y + 1.5;
 
1593
    const double psitilde_bs_1_2 = 0.54*psitilde_bs_1_1 + 2.1*y*psitilde_bs_1_1 - 0.56*psitilde_bs_1_0;
 
1594
    const double psitilde_bs_1_3 = 0.285714285714286*psitilde_bs_1_2 + 2*y*psitilde_bs_1_2 - 0.714285714285714*psitilde_bs_1_1;
 
1595
    const double psitilde_bs_2_0 = 1;
 
1596
    const double psitilde_bs_2_1 = 3.5*y + 2.5;
 
1597
    const double psitilde_bs_2_2 = 1.02040816326531*psitilde_bs_2_1 + 2.57142857142857*y*psitilde_bs_2_1 - 0.551020408163265*psitilde_bs_2_0;
 
1598
    const double psitilde_bs_3_0 = 1;
 
1599
    const double psitilde_bs_3_1 = 4.5*y + 3.5;
 
1600
    const double psitilde_bs_4_0 = 1;
 
1601
    
 
1602
    // Compute psitilde_cs
 
1603
    const double psitilde_cs_00_0 = 1;
 
1604
    const double psitilde_cs_00_1 = 2*z + 1;
 
1605
    const double psitilde_cs_00_2 = 0.3125*psitilde_cs_00_1 + 1.875*z*psitilde_cs_00_1 - 0.5625*psitilde_cs_00_0;
 
1606
    const double psitilde_cs_00_3 = 0.155555555555556*psitilde_cs_00_2 + 1.86666666666667*z*psitilde_cs_00_2 - 0.711111111111111*psitilde_cs_00_1;
 
1607
    const double psitilde_cs_00_4 = 0.09375*psitilde_cs_00_3 + 1.875*z*psitilde_cs_00_3 - 0.78125*psitilde_cs_00_2;
 
1608
    const double psitilde_cs_01_0 = 1;
 
1609
    const double psitilde_cs_01_1 = 3*z + 2;
 
1610
    const double psitilde_cs_01_2 = 0.777777777777778*psitilde_cs_01_1 + 2.33333333333333*z*psitilde_cs_01_1 - 0.555555555555556*psitilde_cs_01_0;
 
1611
    const double psitilde_cs_01_3 = 0.428571428571429*psitilde_cs_01_2 + 2.14285714285714*z*psitilde_cs_01_2 - 0.714285714285714*psitilde_cs_01_1;
 
1612
    const double psitilde_cs_02_0 = 1;
 
1613
    const double psitilde_cs_02_1 = 4*z + 3;
 
1614
    const double psitilde_cs_02_2 = 1.265625*psitilde_cs_02_1 + 2.8125*z*psitilde_cs_02_1 - 0.546875*psitilde_cs_02_0;
 
1615
    const double psitilde_cs_03_0 = 1;
 
1616
    const double psitilde_cs_03_1 = 5*z + 4;
 
1617
    const double psitilde_cs_04_0 = 1;
 
1618
    const double psitilde_cs_10_0 = 1;
 
1619
    const double psitilde_cs_10_1 = 3*z + 2;
 
1620
    const double psitilde_cs_10_2 = 0.777777777777778*psitilde_cs_10_1 + 2.33333333333333*z*psitilde_cs_10_1 - 0.555555555555556*psitilde_cs_10_0;
 
1621
    const double psitilde_cs_10_3 = 0.428571428571429*psitilde_cs_10_2 + 2.14285714285714*z*psitilde_cs_10_2 - 0.714285714285714*psitilde_cs_10_1;
 
1622
    const double psitilde_cs_11_0 = 1;
 
1623
    const double psitilde_cs_11_1 = 4*z + 3;
 
1624
    const double psitilde_cs_11_2 = 1.265625*psitilde_cs_11_1 + 2.8125*z*psitilde_cs_11_1 - 0.546875*psitilde_cs_11_0;
 
1625
    const double psitilde_cs_12_0 = 1;
 
1626
    const double psitilde_cs_12_1 = 5*z + 4;
 
1627
    const double psitilde_cs_13_0 = 1;
 
1628
    const double psitilde_cs_20_0 = 1;
 
1629
    const double psitilde_cs_20_1 = 4*z + 3;
 
1630
    const double psitilde_cs_20_2 = 1.265625*psitilde_cs_20_1 + 2.8125*z*psitilde_cs_20_1 - 0.546875*psitilde_cs_20_0;
 
1631
    const double psitilde_cs_21_0 = 1;
 
1632
    const double psitilde_cs_21_1 = 5*z + 4;
 
1633
    const double psitilde_cs_22_0 = 1;
 
1634
    const double psitilde_cs_30_0 = 1;
 
1635
    const double psitilde_cs_30_1 = 5*z + 4;
 
1636
    const double psitilde_cs_31_0 = 1;
 
1637
    const double psitilde_cs_40_0 = 1;
 
1638
    
 
1639
    // Compute basisvalues
 
1640
    const double basisvalue0 = 0.866025403784439*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_0;
 
1641
    const double basisvalue1 = 2.73861278752583*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_0;
 
1642
    const double basisvalue2 = 1.58113883008419*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_0;
 
1643
    const double basisvalue3 = 1.11803398874989*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_1;
 
1644
    const double basisvalue4 = 5.1234753829798*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_0;
 
1645
    const double basisvalue5 = 3.96862696659689*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_0;
 
1646
    const double basisvalue6 = 2.29128784747792*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_0;
 
1647
    const double basisvalue7 = 3.24037034920393*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_1;
 
1648
    const double basisvalue8 = 1.87082869338697*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_1;
 
1649
    const double basisvalue9 = 1.3228756555323*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_2;
 
1650
    const double basisvalue10 = 7.93725393319377*psitilde_a_3*scalings_y_3*psitilde_bs_3_0*scalings_z_3*psitilde_cs_30_0;
 
1651
    const double basisvalue11 = 6.70820393249937*psitilde_a_2*scalings_y_2*psitilde_bs_2_1*scalings_z_3*psitilde_cs_21_0;
 
1652
    const double basisvalue12 = 5.19615242270663*psitilde_a_1*scalings_y_1*psitilde_bs_1_2*scalings_z_3*psitilde_cs_12_0;
 
1653
    const double basisvalue13 = 3*psitilde_a_0*scalings_y_0*psitilde_bs_0_3*scalings_z_3*psitilde_cs_03_0;
 
1654
    const double basisvalue14 = 5.80947501931113*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_1;
 
1655
    const double basisvalue15 = 4.5*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_1;
 
1656
    const double basisvalue16 = 2.59807621135332*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_1;
 
1657
    const double basisvalue17 = 3.67423461417477*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_2;
 
1658
    const double basisvalue18 = 2.12132034355964*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_2;
 
1659
    const double basisvalue19 = 1.5*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_3;
 
1660
    const double basisvalue20 = 11.1242977306435*psitilde_a_4*scalings_y_4*psitilde_bs_4_0*scalings_z_4*psitilde_cs_40_0;
 
1661
    const double basisvalue21 = 9.81070843517429*psitilde_a_3*scalings_y_3*psitilde_bs_3_1*scalings_z_4*psitilde_cs_31_0;
 
1662
    const double basisvalue22 = 8.2915619758885*psitilde_a_2*scalings_y_2*psitilde_bs_2_2*scalings_z_4*psitilde_cs_22_0;
 
1663
    const double basisvalue23 = 6.42261628933256*psitilde_a_1*scalings_y_1*psitilde_bs_1_3*scalings_z_4*psitilde_cs_13_0;
 
1664
    const double basisvalue24 = 3.70809924354783*psitilde_a_0*scalings_y_0*psitilde_bs_0_4*scalings_z_4*psitilde_cs_04_0;
 
1665
    const double basisvalue25 = 8.77496438739212*psitilde_a_3*scalings_y_3*psitilde_bs_3_0*scalings_z_3*psitilde_cs_30_1;
 
1666
    const double basisvalue26 = 7.41619848709566*psitilde_a_2*scalings_y_2*psitilde_bs_2_1*scalings_z_3*psitilde_cs_21_1;
 
1667
    const double basisvalue27 = 5.74456264653803*psitilde_a_1*scalings_y_1*psitilde_bs_1_2*scalings_z_3*psitilde_cs_12_1;
 
1668
    const double basisvalue28 = 3.3166247903554*psitilde_a_0*scalings_y_0*psitilde_bs_0_3*scalings_z_3*psitilde_cs_03_1;
 
1669
    const double basisvalue29 = 6.42261628933256*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_2;
 
1670
    const double basisvalue30 = 4.9749371855331*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_2;
 
1671
    const double basisvalue31 = 2.87228132326901*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_2;
 
1672
    const double basisvalue32 = 4.06201920231798*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_3;
 
1673
    const double basisvalue33 = 2.34520787991171*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_3;
 
1674
    const double basisvalue34 = 1.6583123951777*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_4;
 
1675
    
 
1676
    // Table(s) of coefficients
 
1677
    const static double coefficients0[35][35] = \
 
1678
    {{-0.0137464349807051, -0.0144900147488139, -0.00836581391578937, -0.00591552374999941, 0, 0, 0, 0, 0, 0, -0.00671936840905293, -0.00567890279999946, -0.00439885919382571, -0.00253968253968254, -0.00491807409042211, -0.00380952380952381, -0.00219942959691287, -0.00311046316543895, -0.0017958267458706, -0.00126984126984128, 0.0136980289516341, 0.0120805260192622, 0.010209907964538, 0.00790856070259325, 0.00456600965054471, 0.0108051509532101, 0.00913201930108942, 0.00707363173407281, 0.00408396318581522, 0.00790856070259324, 0.00612594477872282, 0.0035368158670364, 0.00500181296677924, 0.00288779806280616, 0.00204198159290761},
 
1679
    {-0.0137464349807054, 0.0144900147488139, -0.00836581391578934, -0.00591552374999945, 0, 0, 0, 0, 0, 0, 0.00671936840905293, -0.00567890279999946, 0.00439885919382572, -0.00253968253968254, -0.00491807409042213, 0.00380952380952382, -0.00219942959691286, 0.00311046316543897, -0.0017958267458706, -0.00126984126984127, 0.0136980289516341, -0.0120805260192622, 0.010209907964538, -0.00790856070259325, 0.00456600965054471, -0.0108051509532101, 0.00913201930108941, -0.0070736317340728, 0.00408396318581521, 0.00790856070259325, -0.00612594477872282, 0.0035368158670364, -0.00500181296677924, 0.00288779806280615, 0.00204198159290761},
 
1680
    {-0.0137464349807053, 0, 0.0167316278315787, -0.00591552374999946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0101587301587302, 0, 0, -0.00659828879073857, 0, 0.00359165349174119, -0.00126984126984127, 0, 0, 0, 0, 0.0228300482527235, 0, 0, 0, -0.0163358527432608, 0, 0, 0.0106104476011092, 0, -0.0057755961256123, 0.00204198159290761},
 
1681
    {-0.0137464349807054, 0, 0, 0.0177465712499983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0126984126984127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0306297238936141},
 
1682
    {0.0439885919382572, 0, 0.026770604530526, 0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, 0, 0.0406349206349206, 0, 0, 0.00439885919382572, 0, -0.0143666139669648, 0.00761904761904763, 0, 0, 0, 0, 0, 0, 0, 0, 0.0367556686723369, 0, 0, -0.0424417904044368, 0, 0.0303218796594646, -0.0122518895574456},
 
1683
    {-0.0329914439536931, 0, -0.0200779533978945, -0.0141972569999986, 0, 0, -0.00969857289937744, 0, 0.0712696645099798, -0.050395263067897, 0, 0, 0, 0, 0, 0, 0.0461880215351701, 0, 0.0107749604752236, -0.0190476190476191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0495154221385096, 0, -0.0606437593189292, 0.0306297238936141},
 
1684
    {0.0439885919382573, 0, 0.0267706045305259, 0.0189296759999982, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, 0, 0.0359165349174119, 0.0253968253968254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0505364660991076, -0.0408396318581522},
 
1685
    {0.0439885919382573, 0.0231840235981023, -0.0133853022652629, 0.0189296759999982, 0.0433733365754904, -0.0335968420452647, 0.0193971457987549, -0.0274317066599275, 0.01583770322444, 0.0111989473484215, 0.0268774736362117, -0.0227156111999979, 0.0175954367753029, -0.0101587301587302, 0.00327871606028141, -0.00253968253968255, 0.0014662863979419, -0.0124418526617558, 0.00718330698348238, 0.00761904761904763, 0, 0, 0, 0, 0, 0.0243115896447228, -0.0205470434274512, 0.0159156714016638, -0.00918891716808423, -0.031634242810373, 0.0245037791148913, -0.0141472634681456, 0.026259518075591, -0.0151609398297323, -0.0122518895574456},
 
1686
    {-0.0329914439536929, -0.0173880176985766, 0.0100389766989472, -0.0141972569999986, -0.00722888942924838, 0.00559947367421081, -0.00323285763312582, 0.0617213399848368, -0.03563483225499, -0.050395263067897, 0, 0, 0, 0, 0.0344265186329548, -0.0266666666666667, 0.01539600717839, 0.00933138949631686, -0.00538748023761177, -0.0190476190476191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0369066166121018, -0.0285877423007065, 0.0165051407128365, -0.052519036151182, 0.0303218796594646, 0.0306297238936141},
 
1687
    {0.0439885919382573, 0.0231840235981023, -0.013385302265263, 0.0189296759999982, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, 0.0311046316543895, -0.017958267458706, 0.0253968253968255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0437658634593183, -0.0252682330495538, -0.0408396318581521},
 
1688
    {0.0439885919382572, 0.0231840235981023, 0.013385302265263, -0.0189296759999982, 0.0433733365754903, -0.0335968420452647, 0.0193971457987549, -0.0274317066599275, 0.01583770322444, 0.0111989473484215, 0.0268774736362117, 0, -0.0117302911835353, 0.0101587301587302, -0.0229510124219699, 0.00761904761904761, -0.00146628639794191, 0.0165891368823411, -0.0071833069834824, -0.00761904761904763, 0, 0.0241610520385245, -0.0357346778758831, 0.0355885231616696, -0.0228300482527235, -0.00270128773830253, -0.0114150241263618, 0.0159156714016638, -0.0112308987609918, 0.00395428035129663, 0.00306297238936141, -0.0035368158670364, -0.00375135972508443, 0.00072194951570154, 0.00204198159290761},
 
1689
    {-0.0329914439536929, -0.0173880176985768, -0.0100389766989472, 0.0141972569999986, -0.00722888942924839, 0.0615942104163185, -0.0614242950293904, -0.00685792666498187, -0.00395942580611001, 0.00559947367421077, 0, 0.0340734167999968, 0, -0.0152380952380952, -0.00491807409042213, -0.0266666666666667, 0.0175954367753029, 0.00933138949631688, 0.00538748023761179, -0.00761904761904761, 0, 0, 0.0357346778758831, -0.0593142052694494, 0.0456600965054471, 0, -0.00913201930108943, 0, 0.00408396318581521, 0.00131809345043221, 0.00714693557517662, -0.00471575448938186, -0.00250090648338962, -0.00144389903140307, 0.00204198159290761},
 
1690
    {0.0439885919382572, 0.0231840235981022, 0.013385302265263, -0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, 0.0293257279588382, 0.0101587301587302, 0, -0.0101587301587302, -0.0219942959691286, 0.00207364211029264, 0.017958267458706, -0.00761904761904762, 0, 0, 0, 0.0395428035129662, -0.0456600965054471, 0, 0, -0.017684079335182, 0.0142938711503532, 0, 0.00612594477872282, 0, -0.00125045324169481, -0.00360974757850769, 0.0020419815929076},
 
1691
    {0.043988591938257, -0.0231840235981023, -0.0133853022652629, 0.0189296759999983, 0.0433733365754903, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484216, -0.0268774736362117, -0.0227156111999979, -0.0175954367753029, -0.0101587301587302, 0.00327871606028139, 0.00253968253968253, 0.0014662863979419, 0.0124418526617558, 0.00718330698348236, 0.00761904761904761, 0, 0, 0, 0, 0, -0.0243115896447228, -0.0205470434274512, -0.0159156714016638, -0.00918891716808424, -0.031634242810373, -0.0245037791148913, -0.0141472634681456, -0.026259518075591, -0.0151609398297323, -0.0122518895574456},
 
1692
    {-0.0329914439536929, 0.0173880176985768, 0.0100389766989471, -0.0141972569999987, -0.00722888942924838, -0.00559947367421082, -0.00323285763312581, -0.0617213399848367, -0.03563483225499, -0.050395263067897, 0, 0, 0, 0, 0.0344265186329548, 0.0266666666666667, 0.01539600717839, -0.00933138949631689, -0.00538748023761178, -0.019047619047619, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0369066166121018, 0.0285877423007065, 0.0165051407128365, 0.0525190361511819, 0.0303218796594646, 0.0306297238936141},
 
1693
    {0.0439885919382572, -0.0231840235981023, -0.0133853022652629, 0.0189296759999981, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, -0.0311046316543896, -0.017958267458706, 0.0253968253968255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0437658634593183, -0.0252682330495538, -0.0408396318581521},
 
1694
    {0.0439885919382572, -0.0231840235981023, 0.013385302265263, -0.0189296759999982, 0.0433733365754904, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484216, -0.0268774736362117, 0, 0.0117302911835352, 0.0101587301587302, -0.0229510124219699, -0.00761904761904762, -0.00146628639794191, -0.0165891368823411, -0.00718330698348239, -0.00761904761904763, 0, -0.0241610520385245, -0.0357346778758831, -0.0355885231616696, -0.0228300482527235, 0.00270128773830254, -0.0114150241263618, -0.0159156714016638, -0.0112308987609918, 0.00395428035129662, -0.00306297238936141, -0.0035368158670364, 0.00375135972508443, 0.000721949515701533, 0.00204198159290761},
 
1695
    {-0.0329914439536929, 0.0173880176985766, -0.0100389766989472, 0.0141972569999987, -0.00722888942924841, -0.0615942104163186, -0.0614242950293904, 0.00685792666498186, -0.00395942580610998, 0.00559947367421075, 0, 0.0340734167999968, 0, -0.0152380952380952, -0.00491807409042213, 0.0266666666666667, 0.0175954367753029, -0.00933138949631688, 0.00538748023761179, -0.00761904761904763, 0, 0, 0.0357346778758831, 0.0593142052694494, 0.0456600965054471, 0, -0.00913201930108943, 0, 0.0040839631858152, 0.00131809345043222, -0.00714693557517663, -0.00471575448938187, 0.00250090648338962, -0.00144389903140308, 0.00204198159290761},
 
1696
    {0.0439885919382573, -0.0231840235981022, 0.013385302265263, -0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, -0.0293257279588382, 0.0101587301587302, 0, 0.0101587301587301, -0.0219942959691286, -0.00207364211029265, 0.017958267458706, -0.00761904761904761, 0, 0, 0, -0.0395428035129663, -0.0456600965054471, 0, 0, 0.017684079335182, 0.0142938711503532, 0, -0.00612594477872281, 0, 0.00125045324169481, -0.00360974757850769, 0.0020419815929076},
 
1697
    {0.0439885919382571, 0, -0.026770604530526, -0.0189296759999982, 0.0433733365754904, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484215, 0.0134387368181058, -0.0113578055999989, -0.0205280095711867, -0.0152380952380952, -0.00983614818084424, -0.0177777777777778, -0.0131965775814772, -0.0145154947720485, -0.0107749604752236, -0.00761904761904761, -0.0547921158065365, -0.0241610520385245, -0.00510495398226901, 0.00395428035129663, 0.00456600965054471, -0.0216103019064202, -0.00456600965054471, 0.00353681586703639, 0.00408396318581521, -0.00395428035129661, 0.0030629723893614, 0.0035368158670364, 0.00250090648338961, 0.00288779806280615, 0.00204198159290761},
 
1698
    {-0.0329914439536931, 0, 0.0200779533978945, 0.0141972569999987, -0.0867466731509807, 0, 0.00969857289937743, 0, 0.00791885161221998, 0.00559947367421076, 0, 0.0340734167999968, 0, -0.0152380952380953, 0.0295084445425327, 0, -0.0131965775814772, 0, -0.0107749604752236, -0.00761904761904762, 0.0821881737098047, 0, -0.010209907964538, 0, 0.00456600965054471, 0, -0.00913201930108944, 0, 0.00408396318581521, -0.00790856070259326, 0, 0.0035368158670364, 0, 0.00288779806280615, 0.00204198159290761},
 
1699
    {0.0439885919382573, 0, -0.026770604530526, -0.0189296759999982, 0.0433733365754903, -0.0335968420452646, 0.0193971457987549, -0.0274317066599274, 0.01583770322444, 0.0111989473484215, -0.0134387368181058, -0.0113578055999989, 0.0205280095711867, -0.0152380952380952, -0.00983614818084423, 0.0177777777777778, -0.0131965775814772, 0.0145154947720485, -0.0107749604752236, -0.00761904761904761, -0.0547921158065365, 0.0241610520385245, -0.005104953982269, -0.00395428035129662, 0.00456600965054471, 0.0216103019064202, -0.0045660096505447, -0.0035368158670364, 0.00408396318581521, -0.00395428035129662, -0.00306297238936141, 0.00353681586703641, -0.00250090648338962, 0.00288779806280615, 0.00204198159290761},
 
1700
    {0.0439885919382573, 0.139104141588614, -0.080311813591578, -0.0567890279999947, 0.0578311154339872, 0.0335968420452646, -0.0420271492306356, 0.0274317066599275, -0.0475131096733199, -0.0167984210226323, 0, 0.0454312223999957, -0.0586514559176763, 0.0406349206349207, 0.039344592723377, 0.00253968253968254, -0.0109971479845643, -0.0601356211984865, 0.017958267458706, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0.0410940868549024, -0.053052238005546, 0.0367556686723369, -0.0105447476034577, -0.0245037791148913, 0.0235787724469093, 0.0175063453837273, 0, -0.0122518895574457},
 
1701
    {0.0439885919382572, 0, 0.160623627183156, -0.0567890279999947, 0, 0.0783926314389509, 0.0096985728993774, -0.0274317066599275, 0.0475131096733199, -0.0167984210226323, 0, 0, 0.0586514559176763, -0.0609523809523809, 0, 0.033015873015873, 0.0241937255660415, -0.0145154947720485, -0.0610581093596003, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0, 0.053052238005546, -0.0551335030085053, 0, -0.0326717054865217, 0.0141472634681456, 0.00875317269186366, 0.0151609398297323, -0.0122518895574456},
 
1702
    {0.0439885919382571, 0, 0, 0.170367083999984, 0, -0.0111989473484216, 0.00969857289937744, 0.0822951199797824, 0.0475131096733199, -0.0167984210226324, 0, 0, 0, 0, 0, 0.0533333333333333, -0.0461880215351701, 0.0435464843161454, 0.0251415744421883, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.057175484601413, -0.0495154221385096, -0.026259518075591, -0.0151609398297323, 0.0306297238936141},
 
1703
    {0.0439885919382571, -0.139104141588614, -0.0803118135915779, -0.0567890279999947, 0.0578311154339871, -0.0335968420452646, -0.0420271492306356, -0.0274317066599274, -0.0475131096733199, -0.0167984210226323, 0, 0.0454312223999957, 0.0586514559176763, 0.0406349206349206, 0.0393445927233769, -0.00253968253968253, -0.0109971479845643, 0.0601356211984865, 0.0179582674587059, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0.0410940868549024, 0.053052238005546, 0.0367556686723369, -0.0105447476034577, 0.0245037791148913, 0.0235787724469093, -0.0175063453837273, 0, -0.0122518895574457},
 
1704
    {0.0439885919382571, 0, 0.160623627183156, -0.0567890279999946, 0, -0.0783926314389509, 0.00969857289937745, 0.0274317066599275, 0.0475131096733199, -0.0167984210226323, 0, 0, -0.0586514559176763, -0.0609523809523809, 0, -0.033015873015873, 0.0241937255660415, 0.0145154947720485, -0.0610581093596003, 0.0393650793650793, 0, 0, 0, 0, 0, 0, 0, -0.053052238005546, -0.0551335030085053, 0, 0.0326717054865217, 0.0141472634681456, -0.00875317269186368, 0.0151609398297323, -0.0122518895574456},
 
1705
    {0.0439885919382572, 0, 0, 0.170367083999984, 0, 0.0111989473484215, 0.00969857289937745, -0.0822951199797824, 0.0475131096733199, -0.0167984210226323, 0, 0, 0, 0, 0, -0.0533333333333333, -0.0461880215351701, -0.0435464843161453, 0.0251415744421883, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0571754846014129, -0.0495154221385096, 0.026259518075591, -0.0151609398297323, 0.0306297238936141},
 
1706
    {0.0439885919382573, -0.139104141588614, -0.0803118135915779, -0.0567890279999946, -0.0433733365754903, 0.0447957893936862, 0.0484928644968872, -0.0548634133198549, 0, -0.0167984210226323, 0.0806324209086351, 0.0227156111999979, -0.0058651455917676, -0.0101587301587302, -0.00327871606028142, 0.0304761904761905, 0.0271262983619253, 0.045620126426438, 0.0430998419008943, 0.0393650793650794, 0, 0, 0, 0, 0, 0.0729347689341683, 0.0205470434274512, -0.00530522380055458, -0.00918891716808423, 0.031634242810373, -0.00816792637163039, -0.0141472634681456, -0.00875317269186365, -0.0151609398297323, -0.0122518895574456},
 
1707
    {0.0439885919382571, 0.139104141588614, -0.0803118135915779, -0.0567890279999947, -0.0433733365754904, -0.0447957893936862, 0.0484928644968873, 0.0548634133198549, 0, -0.0167984210226323, -0.0806324209086351, 0.0227156111999979, 0.0058651455917676, -0.0101587301587302, -0.00327871606028142, -0.0304761904761905, 0.0271262983619253, -0.045620126426438, 0.0430998419008943, 0.0393650793650794, 0, 0, 0, 0, 0, -0.0729347689341683, 0.0205470434274512, 0.00530522380055459, -0.00918891716808424, 0.031634242810373, 0.00816792637163042, -0.0141472634681456, 0.00875317269186367, -0.0151609398297323, -0.0122518895574456},
 
1708
    {0.0439885919382572, 0, 0, 0.170367083999984, 0.0144577788584968, 0, -0.00323285763312585, 0, -0.0950262193466398, -0.0167984210226323, 0, 0, 0, 0, -0.0688530372659096, 0, 0.01539600717839, 0, -0.0502831488843767, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0738132332242036, 0, 0.0165051407128365, 0, 0.0303218796594646, 0.0306297238936141},
 
1709
    {0.0439885919382573, -0.139104141588614, -0.0803118135915779, -0.0567890279999947, -0.0433733365754903, -0.0447957893936862, -0.00969857289937743, 0.0548634133198549, 0.03167540644888, 0.0391963157194754, 0.0806324209086351, 0, 0.0527863103259086, 0.0609523809523809, 0.0229510124219699, 0.0101587301587302, 0.0168622935763319, -0.0124418526617558, -0.00718330698348239, -0.013968253968254, 0, 0.0724831561155734, 0.0357346778758831, -0.0118628410538899, -0.0228300482527235, -0.00810386321490759, 0.0114150241263618, -0.00530522380055459, -0.0112308987609918, -0.00395428035129662, -0.00102099079645379, -0.0035368158670364, 0.00125045324169481, 0.000721949515701537, 0.00204198159290762},
 
1710
    {0.0439885919382571, 0.139104141588614, -0.080311813591578, -0.0567890279999947, -0.0433733365754904, 0.0447957893936862, -0.00969857289937742, -0.0548634133198549, 0.0316754064488799, 0.0391963157194754, -0.0806324209086351, 0, -0.0527863103259086, 0.060952380952381, 0.0229510124219699, -0.0101587301587302, 0.0168622935763319, 0.0124418526617558, -0.00718330698348236, -0.013968253968254, 0, -0.0724831561155734, 0.0357346778758831, 0.0118628410538899, -0.0228300482527236, 0.00810386321490761, 0.0114150241263618, 0.00530522380055459, -0.0112308987609918, -0.00395428035129662, 0.00102099079645379, -0.0035368158670364, -0.0012504532416948, 0.000721949515701528, 0.0020419815929076},
 
1711
    {0.0439885919382572, 0, 0.160623627183156, -0.0567890279999947, 0.0144577788584968, 0, -0.0614242950293905, 0, -0.0633508128977598, 0.0391963157194754, 0, -0.0681468335999936, 0, -0.0914285714285715, 0.00983614818084423, 0, 0.0285925847598672, 0, 0.0143666139669647, -0.0139682539682539, 0, 0, -0.0714693557517662, 0, 0.0456600965054471, 0, 0.0182640386021788, 0, 0.0040839631858152, -0.00263618690086443, 0, -0.00471575448938186, 0, -0.00144389903140306, 0.00204198159290759},
 
1712
    {0.351908735506058, 0, 0, 0, -0.115662230867974, 0, -0.129314305325032, 0, 0, -0.134387368181059, 0, -0.0908624447999914, 0, 0.0406349206349206, -0.0786891854467539, 0, -0.0879771838765144, 0, 0, 0.0711111111111111, 0, 0, 0, 0, 0, 0, -0.0821881737098047, 0, 0.0367556686723369, 0.0210894952069153, 0, 0.0235787724469093, 0, 0, -0.0122518895574456}};
 
1713
    
 
1714
    // Interesting (new) part
 
1715
    // Tables of derivatives of the polynomial base (transpose)
 
1716
    const static double dmats0[35][35] = \
 
1717
    {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1718
    {6.32455532033677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1719
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1720
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1721
    {0, 11.2249721603218, 0, 0, 0, 1.70793006049707e-14, 0, 0, 1.16063842564573e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1722
    {4.58257569495585, 0, 8.36660026534076, -1.18321595661992, 0, 0, 1.04642314135461e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1723
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1724
    {3.74165738677394, 0, 0, 8.69482604771366, 0, 0, 0, -1.66625972279159e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1725
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1726
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1727
    {5.49909083394701, 0, -3.34664010613631, -2.36643191323985, 15.4919333848297, 0, 0.692820323027549, 0, 0.56568542494924, 0.400000000000009, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1728
    {0, 4.89897948556635, 0, 0, 0, 14.1985914794391, 0, -0.828078671210828, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1729
    {3.60000000000001, 0, 8.76356092008266, -1.54919333848296, 0, 0, 9.52470471983254, 0, -1.48131215963609, 0.261861468283193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1730
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1731
    {0, 4.24264068711929, 0, 0, 0, 0, 0, 14.3427433120127, 2.84156378982381e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1732
    {3.11769145362398, 0, 3.16227766016838, 4.91934955049954, 0, 0, 0, -1.2538531175753e-14, 10.690449676497, -2.41897262725905, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1733
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1734
    {2.54558441227157, 0, 0, 7.66811580507232, 0, 0, 0, 0, 0, 10.3691851174526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1735
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1736
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1737
    {0, 11.6057691494799, 0, 0, 0, -4.20458932936041, 0, -3.43303281162798, 0, 0, 19.6214168703486, 0, 0.611677741841197, 0, 0, 0.529728463363978, 0, 0.432521479156785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1738
    {4.53137212479103, 0, 3.54562104171167, -2.50713268211203, 4.78713553878169, 0, -5.56626745075493, 0, -1.04880884817015, 0.741619848709563, 0, 18.8034951158403, 0, 1.68183573174416, -0.603122387046455, 0, 0.701283781217662, 0, 0.132137494528683, -0.0934353184302337, 0, 0, 0, 0, -2.04851899834062e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1739
    {1.12802291379194e-14, 2.59512887494071, 0, 0, 0, 10.0285307284481, 1.48509074345102e-14, -0.767649473578742, 0, 0, 0, 0, 16.4130361329658, 0, 0, -1.26347611061158, 0, 0.0967147429123335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1740
    {2.96647939483827, 0, 8.12403840463597, -1.64130361329658, 0, 0, 11.7728501222091, 0, -2.40312296813959, 0.485504156227609, 0, 0, 0, 10.2761860629321, 0, 0, -1.48323969741914, 0, 0.30276503540975, -0.0611677741841184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1741
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1742
    {4.05298244095217, 0, -1.58564993434419, 4.4848952846511, 4.28174419288837, 0, 0.191485421551264, 0, -3.75233260785875, -4.31161222746203, 0, 0, 0, 0, 18.8807171866294, 0, 0.844371341865038, 0, 1.18187368057056, 1.04463861754668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1743
    {0, 2.32115382989598, 0, 0, 0, 3.92428337406973, 0, 5.49285249860476, 1.21484853427001e-14, 0, 0, 0, 0, 0, 0, 17.3044631365565, 0, -1.73008591662714, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1744
    {2.65329983228433, 0, 4.15220619990513, 2.93605316083776, 0, 0, 2.63248931621764, 0, 9.82591326180785, -2.8226127713774, 0, 0, 0, 0, 0, 0, 11.6081867662439, 0, -3.09487177319466, 0.683876505540249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1745
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1746
    {0, 2.01017818278148, 0, 0, 0, 0, 0, 8.91928088068602, 1.76356325376492e-14, 0, 0, 0, 0, 0, 0, 0, 0, 16.8558564884489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1747
    {2.29782505861521, 0, 1.49829835452879, 5.50917601898535, 0, 0, 0, 0, 6.64803945320938, 4.13676892548485, 0, 0, 0, 0, 0, 0, 0, 0, 12.5636136423842, -3.55352656109507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1748
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1749
    {1.87616630392938, 0, 0, 6.2283092998577, 0, 0, 0, 0, 0, 11.0541524195338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11.6057691494799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1750
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1751
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
 
1752
    
 
1753
    const static double dmats1[35][35] = \
 
1754
    {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1755
    {3.16227766016838, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1756
    {5.47722557505166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1757
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1758
    {2.95803989154981, 5.61248608016091, -1.08012344973464, -0.763762615825977, 0, 1.12766252988532e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1759
    {2.29128784747793, 7.24568837309472, 4.18330013267038, -0.591607978309962, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1760
    {-2.64575131106459, 0, 9.66091783079296, 0.683130051063976, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1761
    {1.87082869338697, 0, 0, 4.34741302385683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1762
    {3.24037034920392, 0, 0, 7.52994023880667, 0, 0, 0, -1.40420976242894e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1763
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1764
    {2.74954541697351, 5.79655069847578, -1.67332005306815, -1.18321595661993, 7.74596669241484, -1.2, 0.346410161513776, -0.979795897113278, 0.282842712474625, 0.200000000000005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1765
    {2.32379000772444, 2.44948974278317, 2.82842712474619, -0.999999999999997, 9.16515138991168, 7.09929573971955, -2.04939015319192, -0.414039335605417, -0.478091443733761, 0.169030850945703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1766
    {1.80000000000001, -5.69209978830309, 4.38178046004133, -0.77459666924148, 0, 10.998181667894, 4.76235235991628, 0.962140470884725, -0.740656079818049, 0.130930734141596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1767
    {5.19615242270664, 0, -3.16227766016837, -2.23606797749979, 0, 0, 13.7477270848675, 0, 0.534522483824846, 0.377964473009225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1768
    {2.01246117974981, 2.12132034355964, -0.408248290463859, 3.17542648054293, 0, 0, 0, 7.17137165600634, -1.3801311186847, -1.56144011671765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1769
    {1.55884572681199, 2.73861278752583, 1.5811388300842, 2.45967477524977, 0, 0, 0, 9.2582009977255, 5.3452248382485, -1.20948631362952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1770
    {-1.79999999999999, 0, 3.65148371670111, -2.84018778721876, 0, 0, 0, 0, 12.3442679969673, 1.39659449751036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1771
    {1.27279220613578, 0, 0, 3.83405790253616, 0, 0, 0, 0, 0, 5.18459255872629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1772
    {2.20454076850485, 0, 0, 6.64078308635359, 0, 0, 0, 0, 0, 8.97997772825746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1773
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1774
    {2.56904651573303, 5.80288457473998, -2.01017818278148, -1.42141062443803, 8.14215222512715, -2.10229466468021, 0.728256234341421, -1.71651640581399, 0.594618725379067, 0.420458932936047, 9.81070843517429, -1.18450885369836, 0.3058388709206, -0.105945692672795, -1.02581475831036, 0.264864231681991, -0.0917516612761804, 0.216260739578394, -0.0749149177264392, -0.0529728463363962, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1775
    {2.26568606239552, 3.07059789431495, 1.77281052085584, -1.25356634105601, 2.39356776939085, 6.30376871403133, -2.78313372537746, -0.908295106229249, -0.524404424085077, 0.370809924354783, 11.1242977306435, 9.40174755792013, -2.42752078113806, 0.840917865872083, -0.301561193523227, -0.794200206656967, 0.350641890608831, 0.114434427054266, 0.0660687472643429, -0.0467176592151151, 0, 0, 0, 1.18413955033316e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1776
    {1.91485421551268, 1.29756443747035, 3.74574588632197, -1.05945692672795, -8.09173593712687, 5.01426536422407, 1.80936716113936, -0.383824736789366, -1.1080065755349, 0.313391585264, 0, 12.7134831207354, 8.2065180664829, -2.84282124887606, 1.01946290306866, -0.631738055305791, -0.227958835180081, 0.0483573714561658, 0.139595707137601, -0.0394836284566112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1777
    {1.48323969741914, 7.03562363973515, 4.06201920231798, -0.820651806648292, 0, -6.79705818718658, 5.88642506110457, -2.08116553882674, -1.2015614840698, 0.242752078113806, 0, 0, 14.8323969741913, 5.13809303146605, 0, 0.856348838577678, -0.741619848709567, 0.262202212042541, 0.151382517704874, -0.0305838870920586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1778
    {-3.42539535431071, 0, 9.38083151964686, 1.89521416591737, 0, 1.48502651407619e-14, -3.39852909359332, 0, -2.77488738510233, -0.560611910581396, 0, 0, 0, 17.7988763690296, 0, 0, 0.42817441928884, 0, 0.349602949390053, 0.0706304617818605, 0, 0, 0, 0, -1.76908227133537e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1779
    {2.02649122047609, 2.74642624930238, -0.792824967172093, 2.24244764232555, 2.14087209644419, -0.331662479035538, 0.095742710775634, 6.49923072370876, -1.87616630392936, -2.15580611373101, 0, 0, 0, 0, 9.44035859331469, -1.46249406456536, 0.42218567093252, -2.04706526287664, 0.59093684028528, 0.522319308773337, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1780
    {1.71269767715535, 1.16057691494799, 1.34011878852098, 1.89521416591738, 2.53311402559511, 1.96214168703486, -0.566421515598881, 2.74642624930237, 3.17129986868837, -1.82198870938951, 0, 0, 0, 0, 11.1699829238239, 8.65223156827827, -2.49768411251822, -0.865042958313569, -0.998865569685858, 0.441440386136648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1781
    {1.32664991614216, -2.69693703815182, 2.07610309995257, 1.46802658041888, 0, 3.03973683071413, 1.31624465810882, -6.382117875081, 4.91295663090391, -1.4113063856887, 0, 0, 0, 0, 0, 13.4039795085887, 5.80409338312195, 2.01017818278147, -1.54743588659732, 0.341938252770131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1782
    {3.82970843102535, 0, -1.49829835452879, 4.23782770691181, 0, 0, 3.79967103839267, 0, -3.54562104171168, -4.07409060843206, 0, 0, 0, 0, 0, 0, 16.7549743857359, 0, 1.11676565710082, 0.987090711415304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1783
    {1.48323969741913, 1.00508909139074, -0.193429485824663, 3.55615782880925, 0, 0, 0, 4.459640440343, -0.858258202906983, 2.67027285925187, 0, 0, 0, 0, 0, 0, 0, 8.42792824422443, -1.62195554683794, -2.29379153190448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1784
    {1.14891252930761, 1.29756443747036, 0.749149177264399, 2.75458800949267, 0, 0, 0, 5.75737105184053, 3.3240197266047, 2.06838446274242, 0, 0, 0, 0, 0, 0, 0, 10.8804085776374, 6.2818068211921, -1.77676328054753, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.02006749648391e-14, 0, 0},
 
1785
    {-1.32664991614216, 0, 1.73008591662714, -3.18072425757422, 0, 0, 0, 1.15266449376351e-14, 7.67649473578738, -2.38836465270397, 0, 0, 0, 0, 0, 0, 0, 0, 14.5072114368499, 2.05162951662072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1786
    {0.938083151964688, 0, 0, 3.11415464992885, 0, 0, 0, 0, 0, 5.52707620976692, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.80288457473997, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1787
    {1.6248076809272, 0, 0, 5.39387407630363, 0, 0, 0, 0, 0, 9.57317681262152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10.0508909139073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1788
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
 
1789
    
 
1790
    const static double dmats2[35][35] = \
 
1791
    {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1792
    {3.16227766016838, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1793
    {1.82574185835056, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1794
    {5.16397779494323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1795
    {2.95803989154981, 5.61248608016091, -1.08012344973464, -0.763762615825976, 0, 1.39411605579536e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1796
    {2.29128784747792, 1.44913767461894, 4.18330013267038, -0.591607978309961, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1797
    {1.3228756555323, 0, 3.86436713231718, -0.341565025531985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1798
    {1.87082869338697, 7.09929573971954, 0, 4.34741302385683, 0, 1.2137796469483e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1799
    {1.08012344973464, 0, 7.09929573971954, 2.50998007960223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1800
    {-3.81881307912987, 0, 0, 8.87411967464942, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1801
    {2.74954541697351, 5.79655069847578, -1.67332005306815, -1.18321595661993, 7.74596669241484, -1.19999999999999, 0.346410161513777, -0.97979589711328, 0.282842712474624, 0.200000000000005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1802
    {2.32379000772445, 2.44948974278317, 2.82842712474619, -0.999999999999998, 1.30930734141596, 7.09929573971955, -2.04939015319192, -0.414039335605417, -0.478091443733761, 0.169030850945707, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1803
    {1.80000000000001, 0.632455532033672, 4.38178046004133, -0.774596669241482, 0, 3.14233761939829, 4.76235235991627, -0.106904496764972, -0.740656079818045, 0.130930734141597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1804
    {1.03923048454133, 0, 3.16227766016838, -0.447213595499956, 0, 0, 5.8918830363718, 0, -0.534522483824849, 0.0755928946018436, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1805
    {2.0124611797498, 2.12132034355964, -0.408248290463861, 3.17542648054293, 9.07114735222144, 0, 0, 7.17137165600635, -1.3801311186847, -1.56144011671765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1806
    {1.558845726812, 0.547722557505166, 1.5811388300842, 2.45967477524977, 0, 9.07114735222146, 0, 1.85164019954509, 5.34522483824849, -1.20948631362952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1807
    {0.900000000000005, 0, 1.46059348668045, 1.42009389360939, 0, 0, 9.07114735222146, 0, 4.93770719878694, -0.698297248755174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1808
    {1.27279220613578, -6.26099033699941, 0, 3.83405790253616, 0, -1.33471233241901e-14, 0, 10.5830052442584, 1.61529151756054e-14, 5.18459255872629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1809
    {0.734846922834955, 0, -6.26099033699941, 2.21359436211787, 0, 0, 0, 0, 10.5830052442584, 2.99332590941916, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1810
    {5.7157676649773, 0, 0, -4.69574275274955, 0, 0, 0, 0, 0, 12.69960629311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1811
    {2.56904651573303, 5.80288457473998, -2.01017818278148, -1.42141062443803, 8.14215222512715, -2.10229466468021, 0.72825623434142, -1.71651640581399, 0.594618725379067, 0.420458932936046, 9.81070843517429, -1.18450885369836, 0.305838870920599, -0.105945692672794, -1.02581475831036, 0.264864231681991, -0.0917516612761805, 0.216260739578394, -0.0749149177264392, -0.052972846336396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1812
    {2.26568606239552, 3.07059789431495, 1.77281052085584, -1.25356634105602, 2.39356776939084, 6.30376871403133, -2.78313372537746, -0.908295106229248, -0.524404424085073, 0.370809924354783, 1.23603308118261, 9.40174755792013, -2.42752078113806, 0.840917865872083, -0.301561193523226, -0.794200206656968, 0.350641890608831, 0.114434427054266, 0.0660687472643423, -0.0467176592151165, 0, 0, 0, 1.09746923696279e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1813
    {1.91485421551268, 1.29756443747035, 3.74574588632197, -1.05945692672795, 0.404586796856347, 5.01426536422407, 1.80936716113937, -0.383824736789372, -1.1080065755349, 0.313391585264004, 0, 2.82521847127454, 8.2065180664829, -2.84282124887606, -0.0509731451534344, -0.631738055305788, -0.227958835180082, 0.0483573714561684, 0.139595707137601, -0.039483628456609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1814
    {1.48323969741914, 0.335029697130247, 4.06201920231798, -0.820651806648289, 0, 1.69926454679664, 5.88642506110457, -0.099103120896514, -1.2015614840698, 0.242752078113805, 0, 0, 4.94413232473044, 5.13809303146605, 0, -0.214087209644418, -0.741619848709568, 0.0124858196210747, 0.151382517704876, -0.0305838870920584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1815
    {0.856348838577678, 0, 2.68023757704196, -0.473803541479345, 0, 0, 5.09779364038992, 0, -0.792824967172097, 0.140152977645345, 0, 0, 0, 7.91061171956871, 0, 0, -0.642261628933257, 0, 0.0998865569685871, -0.0176576154454654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1816
    {2.02649122047609, 2.74642624930238, -0.792824967172095, 2.24244764232555, 2.14087209644419, -0.331662479035546, 0.0957427107756332, 6.49923072370876, -1.87616630392937, -2.15580611373101, 11.0554159678513, 0, 0, 0, 9.44035859331468, -1.46249406456535, 0.42218567093252, -2.04706526287664, 0.59093684028528, 0.522319308773341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1817
    {1.71269767715534, 1.16057691494799, 1.34011878852098, 1.89521416591737, 0.36187343222787, 1.96214168703486, -0.566421515598891, 2.74642624930238, 3.17129986868838, -1.82198870938951, 0, 11.0554159678513, 0, 0, 1.59571184626056, 8.65223156827827, -2.49768411251822, -0.865042958313572, -0.998865569685858, 0.441440386136647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1818
    {1.32664991614217, 0.299659670905757, 2.07610309995256, 1.46802658041888, 0, 0.868496237346881, 1.31624465810882, 0.709124208342336, 4.91295663090392, -1.4113063856887, 0, 0, 11.0554159678513, 0, 0, 3.82970843102535, 5.80409338312195, -0.223353131420161, -1.54743588659733, 0.341938252770126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1819
    {0.765941686205071, 0, 1.49829835452879, 0.847565541382364, 0, 0, 1.62843044502542, 0, 3.54562104171167, -0.814818121686411, 0, 0, 0, 11.0554159678513, 0, 0, 7.18070330817254, 0, -1.11676565710082, 0.197418142283063, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1820
    {1.48323969741914, 1.00508909139074, -0.193429485824663, 3.55615782880926, -8.46157280212812, 0, 0, 4.45964044034301, -0.858258202906987, 2.67027285925186, 0, 0, 0, 0, 12.4373429638327, 0, 0, 8.42792824422443, -1.62195554683794, -2.29379153190448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1821
    {1.1489125293076, 0.259512887494073, 0.749149177264395, 2.75458800949267, 0, -8.46157280212812, 0, 1.15147421036811, 3.32401972660469, 2.06838446274243, 0, 0, 0, 0, 0, 12.4373429638327, 0, 2.17608171552749, 6.2818068211921, -1.77676328054754, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1822
    {0.663324958071074, 0, 0.692034366650849, 1.59036212878711, 0, 0, -8.46157280212813, 0, 3.07059789431495, 1.19418232635198, 0, 0, 0, 0, 0, 0, 12.4373429638327, 0, 5.80288457473997, -1.02581475831036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1823
    {0.938083151964688, 7.62808987244126, 0, 3.11415464992885, 0, 0, 0, -7.5213980463361, 0, 5.52707620976691, 0, 0, 0, 0, 0, 0, 0, 14.2141062443803, 0, 5.80288457473998, 0, 0, 0, 0, 0, 1.03455020940032e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1824
    {0.541602560309059, 0, 7.62808987244125, 1.79795802543454, 0, 0, 0, 0, -7.52139804633611, 3.1910589375405, 0, 0, 0, 0, 0, 0, 0, 0, 14.2141062443803, 3.35029697130244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
1825
    {-5.36159180343549, 0, 0, 8.8994381845148, 0, 0, 0, 0, -1.07784467308941e-14, -5.26497863243527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.583123951777, 0, 0, 0, 0, 0, 1.2461107758246e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
 
1826
    
 
1827
    // Compute reference derivatives
 
1828
    // Declare pointer to array of derivatives on FIAT element
 
1829
    double *derivatives = new double [num_derivatives];
 
1830
    
 
1831
    // Declare coefficients
 
1832
    double coeff0_0 = 0;
 
1833
    double coeff0_1 = 0;
 
1834
    double coeff0_2 = 0;
 
1835
    double coeff0_3 = 0;
 
1836
    double coeff0_4 = 0;
 
1837
    double coeff0_5 = 0;
 
1838
    double coeff0_6 = 0;
 
1839
    double coeff0_7 = 0;
 
1840
    double coeff0_8 = 0;
 
1841
    double coeff0_9 = 0;
 
1842
    double coeff0_10 = 0;
 
1843
    double coeff0_11 = 0;
 
1844
    double coeff0_12 = 0;
 
1845
    double coeff0_13 = 0;
 
1846
    double coeff0_14 = 0;
 
1847
    double coeff0_15 = 0;
 
1848
    double coeff0_16 = 0;
 
1849
    double coeff0_17 = 0;
 
1850
    double coeff0_18 = 0;
 
1851
    double coeff0_19 = 0;
 
1852
    double coeff0_20 = 0;
 
1853
    double coeff0_21 = 0;
 
1854
    double coeff0_22 = 0;
 
1855
    double coeff0_23 = 0;
 
1856
    double coeff0_24 = 0;
 
1857
    double coeff0_25 = 0;
 
1858
    double coeff0_26 = 0;
 
1859
    double coeff0_27 = 0;
 
1860
    double coeff0_28 = 0;
 
1861
    double coeff0_29 = 0;
 
1862
    double coeff0_30 = 0;
 
1863
    double coeff0_31 = 0;
 
1864
    double coeff0_32 = 0;
 
1865
    double coeff0_33 = 0;
 
1866
    double coeff0_34 = 0;
 
1867
    
 
1868
    // Declare new coefficients
 
1869
    double new_coeff0_0 = 0;
 
1870
    double new_coeff0_1 = 0;
 
1871
    double new_coeff0_2 = 0;
 
1872
    double new_coeff0_3 = 0;
 
1873
    double new_coeff0_4 = 0;
 
1874
    double new_coeff0_5 = 0;
 
1875
    double new_coeff0_6 = 0;
 
1876
    double new_coeff0_7 = 0;
 
1877
    double new_coeff0_8 = 0;
 
1878
    double new_coeff0_9 = 0;
 
1879
    double new_coeff0_10 = 0;
 
1880
    double new_coeff0_11 = 0;
 
1881
    double new_coeff0_12 = 0;
 
1882
    double new_coeff0_13 = 0;
 
1883
    double new_coeff0_14 = 0;
 
1884
    double new_coeff0_15 = 0;
 
1885
    double new_coeff0_16 = 0;
 
1886
    double new_coeff0_17 = 0;
 
1887
    double new_coeff0_18 = 0;
 
1888
    double new_coeff0_19 = 0;
 
1889
    double new_coeff0_20 = 0;
 
1890
    double new_coeff0_21 = 0;
 
1891
    double new_coeff0_22 = 0;
 
1892
    double new_coeff0_23 = 0;
 
1893
    double new_coeff0_24 = 0;
 
1894
    double new_coeff0_25 = 0;
 
1895
    double new_coeff0_26 = 0;
 
1896
    double new_coeff0_27 = 0;
 
1897
    double new_coeff0_28 = 0;
 
1898
    double new_coeff0_29 = 0;
 
1899
    double new_coeff0_30 = 0;
 
1900
    double new_coeff0_31 = 0;
 
1901
    double new_coeff0_32 = 0;
 
1902
    double new_coeff0_33 = 0;
 
1903
    double new_coeff0_34 = 0;
 
1904
    
 
1905
    // Loop possible derivatives
 
1906
    for (unsigned int deriv_num = 0; deriv_num < num_derivatives; deriv_num++)
 
1907
    {
 
1908
      // Get values from coefficients array
 
1909
      new_coeff0_0 = coefficients0[dof][0];
 
1910
      new_coeff0_1 = coefficients0[dof][1];
 
1911
      new_coeff0_2 = coefficients0[dof][2];
 
1912
      new_coeff0_3 = coefficients0[dof][3];
 
1913
      new_coeff0_4 = coefficients0[dof][4];
 
1914
      new_coeff0_5 = coefficients0[dof][5];
 
1915
      new_coeff0_6 = coefficients0[dof][6];
 
1916
      new_coeff0_7 = coefficients0[dof][7];
 
1917
      new_coeff0_8 = coefficients0[dof][8];
 
1918
      new_coeff0_9 = coefficients0[dof][9];
 
1919
      new_coeff0_10 = coefficients0[dof][10];
 
1920
      new_coeff0_11 = coefficients0[dof][11];
 
1921
      new_coeff0_12 = coefficients0[dof][12];
 
1922
      new_coeff0_13 = coefficients0[dof][13];
 
1923
      new_coeff0_14 = coefficients0[dof][14];
 
1924
      new_coeff0_15 = coefficients0[dof][15];
 
1925
      new_coeff0_16 = coefficients0[dof][16];
 
1926
      new_coeff0_17 = coefficients0[dof][17];
 
1927
      new_coeff0_18 = coefficients0[dof][18];
 
1928
      new_coeff0_19 = coefficients0[dof][19];
 
1929
      new_coeff0_20 = coefficients0[dof][20];
 
1930
      new_coeff0_21 = coefficients0[dof][21];
 
1931
      new_coeff0_22 = coefficients0[dof][22];
 
1932
      new_coeff0_23 = coefficients0[dof][23];
 
1933
      new_coeff0_24 = coefficients0[dof][24];
 
1934
      new_coeff0_25 = coefficients0[dof][25];
 
1935
      new_coeff0_26 = coefficients0[dof][26];
 
1936
      new_coeff0_27 = coefficients0[dof][27];
 
1937
      new_coeff0_28 = coefficients0[dof][28];
 
1938
      new_coeff0_29 = coefficients0[dof][29];
 
1939
      new_coeff0_30 = coefficients0[dof][30];
 
1940
      new_coeff0_31 = coefficients0[dof][31];
 
1941
      new_coeff0_32 = coefficients0[dof][32];
 
1942
      new_coeff0_33 = coefficients0[dof][33];
 
1943
      new_coeff0_34 = coefficients0[dof][34];
 
1944
    
 
1945
      // Loop derivative order
 
1946
      for (unsigned int j = 0; j < n; j++)
 
1947
      {
 
1948
        // Update old coefficients
 
1949
        coeff0_0 = new_coeff0_0;
 
1950
        coeff0_1 = new_coeff0_1;
 
1951
        coeff0_2 = new_coeff0_2;
 
1952
        coeff0_3 = new_coeff0_3;
 
1953
        coeff0_4 = new_coeff0_4;
 
1954
        coeff0_5 = new_coeff0_5;
 
1955
        coeff0_6 = new_coeff0_6;
 
1956
        coeff0_7 = new_coeff0_7;
 
1957
        coeff0_8 = new_coeff0_8;
 
1958
        coeff0_9 = new_coeff0_9;
 
1959
        coeff0_10 = new_coeff0_10;
 
1960
        coeff0_11 = new_coeff0_11;
 
1961
        coeff0_12 = new_coeff0_12;
 
1962
        coeff0_13 = new_coeff0_13;
 
1963
        coeff0_14 = new_coeff0_14;
 
1964
        coeff0_15 = new_coeff0_15;
 
1965
        coeff0_16 = new_coeff0_16;
 
1966
        coeff0_17 = new_coeff0_17;
 
1967
        coeff0_18 = new_coeff0_18;
 
1968
        coeff0_19 = new_coeff0_19;
 
1969
        coeff0_20 = new_coeff0_20;
 
1970
        coeff0_21 = new_coeff0_21;
 
1971
        coeff0_22 = new_coeff0_22;
 
1972
        coeff0_23 = new_coeff0_23;
 
1973
        coeff0_24 = new_coeff0_24;
 
1974
        coeff0_25 = new_coeff0_25;
 
1975
        coeff0_26 = new_coeff0_26;
 
1976
        coeff0_27 = new_coeff0_27;
 
1977
        coeff0_28 = new_coeff0_28;
 
1978
        coeff0_29 = new_coeff0_29;
 
1979
        coeff0_30 = new_coeff0_30;
 
1980
        coeff0_31 = new_coeff0_31;
 
1981
        coeff0_32 = new_coeff0_32;
 
1982
        coeff0_33 = new_coeff0_33;
 
1983
        coeff0_34 = new_coeff0_34;
 
1984
    
 
1985
        if(combinations[deriv_num][j] == 0)
 
1986
        {
 
1987
          new_coeff0_0 = coeff0_0*dmats0[0][0] + coeff0_1*dmats0[1][0] + coeff0_2*dmats0[2][0] + coeff0_3*dmats0[3][0] + coeff0_4*dmats0[4][0] + coeff0_5*dmats0[5][0] + coeff0_6*dmats0[6][0] + coeff0_7*dmats0[7][0] + coeff0_8*dmats0[8][0] + coeff0_9*dmats0[9][0] + coeff0_10*dmats0[10][0] + coeff0_11*dmats0[11][0] + coeff0_12*dmats0[12][0] + coeff0_13*dmats0[13][0] + coeff0_14*dmats0[14][0] + coeff0_15*dmats0[15][0] + coeff0_16*dmats0[16][0] + coeff0_17*dmats0[17][0] + coeff0_18*dmats0[18][0] + coeff0_19*dmats0[19][0] + coeff0_20*dmats0[20][0] + coeff0_21*dmats0[21][0] + coeff0_22*dmats0[22][0] + coeff0_23*dmats0[23][0] + coeff0_24*dmats0[24][0] + coeff0_25*dmats0[25][0] + coeff0_26*dmats0[26][0] + coeff0_27*dmats0[27][0] + coeff0_28*dmats0[28][0] + coeff0_29*dmats0[29][0] + coeff0_30*dmats0[30][0] + coeff0_31*dmats0[31][0] + coeff0_32*dmats0[32][0] + coeff0_33*dmats0[33][0] + coeff0_34*dmats0[34][0];
 
1988
          new_coeff0_1 = coeff0_0*dmats0[0][1] + coeff0_1*dmats0[1][1] + coeff0_2*dmats0[2][1] + coeff0_3*dmats0[3][1] + coeff0_4*dmats0[4][1] + coeff0_5*dmats0[5][1] + coeff0_6*dmats0[6][1] + coeff0_7*dmats0[7][1] + coeff0_8*dmats0[8][1] + coeff0_9*dmats0[9][1] + coeff0_10*dmats0[10][1] + coeff0_11*dmats0[11][1] + coeff0_12*dmats0[12][1] + coeff0_13*dmats0[13][1] + coeff0_14*dmats0[14][1] + coeff0_15*dmats0[15][1] + coeff0_16*dmats0[16][1] + coeff0_17*dmats0[17][1] + coeff0_18*dmats0[18][1] + coeff0_19*dmats0[19][1] + coeff0_20*dmats0[20][1] + coeff0_21*dmats0[21][1] + coeff0_22*dmats0[22][1] + coeff0_23*dmats0[23][1] + coeff0_24*dmats0[24][1] + coeff0_25*dmats0[25][1] + coeff0_26*dmats0[26][1] + coeff0_27*dmats0[27][1] + coeff0_28*dmats0[28][1] + coeff0_29*dmats0[29][1] + coeff0_30*dmats0[30][1] + coeff0_31*dmats0[31][1] + coeff0_32*dmats0[32][1] + coeff0_33*dmats0[33][1] + coeff0_34*dmats0[34][1];
 
1989
          new_coeff0_2 = coeff0_0*dmats0[0][2] + coeff0_1*dmats0[1][2] + coeff0_2*dmats0[2][2] + coeff0_3*dmats0[3][2] + coeff0_4*dmats0[4][2] + coeff0_5*dmats0[5][2] + coeff0_6*dmats0[6][2] + coeff0_7*dmats0[7][2] + coeff0_8*dmats0[8][2] + coeff0_9*dmats0[9][2] + coeff0_10*dmats0[10][2] + coeff0_11*dmats0[11][2] + coeff0_12*dmats0[12][2] + coeff0_13*dmats0[13][2] + coeff0_14*dmats0[14][2] + coeff0_15*dmats0[15][2] + coeff0_16*dmats0[16][2] + coeff0_17*dmats0[17][2] + coeff0_18*dmats0[18][2] + coeff0_19*dmats0[19][2] + coeff0_20*dmats0[20][2] + coeff0_21*dmats0[21][2] + coeff0_22*dmats0[22][2] + coeff0_23*dmats0[23][2] + coeff0_24*dmats0[24][2] + coeff0_25*dmats0[25][2] + coeff0_26*dmats0[26][2] + coeff0_27*dmats0[27][2] + coeff0_28*dmats0[28][2] + coeff0_29*dmats0[29][2] + coeff0_30*dmats0[30][2] + coeff0_31*dmats0[31][2] + coeff0_32*dmats0[32][2] + coeff0_33*dmats0[33][2] + coeff0_34*dmats0[34][2];
 
1990
          new_coeff0_3 = coeff0_0*dmats0[0][3] + coeff0_1*dmats0[1][3] + coeff0_2*dmats0[2][3] + coeff0_3*dmats0[3][3] + coeff0_4*dmats0[4][3] + coeff0_5*dmats0[5][3] + coeff0_6*dmats0[6][3] + coeff0_7*dmats0[7][3] + coeff0_8*dmats0[8][3] + coeff0_9*dmats0[9][3] + coeff0_10*dmats0[10][3] + coeff0_11*dmats0[11][3] + coeff0_12*dmats0[12][3] + coeff0_13*dmats0[13][3] + coeff0_14*dmats0[14][3] + coeff0_15*dmats0[15][3] + coeff0_16*dmats0[16][3] + coeff0_17*dmats0[17][3] + coeff0_18*dmats0[18][3] + coeff0_19*dmats0[19][3] + coeff0_20*dmats0[20][3] + coeff0_21*dmats0[21][3] + coeff0_22*dmats0[22][3] + coeff0_23*dmats0[23][3] + coeff0_24*dmats0[24][3] + coeff0_25*dmats0[25][3] + coeff0_26*dmats0[26][3] + coeff0_27*dmats0[27][3] + coeff0_28*dmats0[28][3] + coeff0_29*dmats0[29][3] + coeff0_30*dmats0[30][3] + coeff0_31*dmats0[31][3] + coeff0_32*dmats0[32][3] + coeff0_33*dmats0[33][3] + coeff0_34*dmats0[34][3];
 
1991
          new_coeff0_4 = coeff0_0*dmats0[0][4] + coeff0_1*dmats0[1][4] + coeff0_2*dmats0[2][4] + coeff0_3*dmats0[3][4] + coeff0_4*dmats0[4][4] + coeff0_5*dmats0[5][4] + coeff0_6*dmats0[6][4] + coeff0_7*dmats0[7][4] + coeff0_8*dmats0[8][4] + coeff0_9*dmats0[9][4] + coeff0_10*dmats0[10][4] + coeff0_11*dmats0[11][4] + coeff0_12*dmats0[12][4] + coeff0_13*dmats0[13][4] + coeff0_14*dmats0[14][4] + coeff0_15*dmats0[15][4] + coeff0_16*dmats0[16][4] + coeff0_17*dmats0[17][4] + coeff0_18*dmats0[18][4] + coeff0_19*dmats0[19][4] + coeff0_20*dmats0[20][4] + coeff0_21*dmats0[21][4] + coeff0_22*dmats0[22][4] + coeff0_23*dmats0[23][4] + coeff0_24*dmats0[24][4] + coeff0_25*dmats0[25][4] + coeff0_26*dmats0[26][4] + coeff0_27*dmats0[27][4] + coeff0_28*dmats0[28][4] + coeff0_29*dmats0[29][4] + coeff0_30*dmats0[30][4] + coeff0_31*dmats0[31][4] + coeff0_32*dmats0[32][4] + coeff0_33*dmats0[33][4] + coeff0_34*dmats0[34][4];
 
1992
          new_coeff0_5 = coeff0_0*dmats0[0][5] + coeff0_1*dmats0[1][5] + coeff0_2*dmats0[2][5] + coeff0_3*dmats0[3][5] + coeff0_4*dmats0[4][5] + coeff0_5*dmats0[5][5] + coeff0_6*dmats0[6][5] + coeff0_7*dmats0[7][5] + coeff0_8*dmats0[8][5] + coeff0_9*dmats0[9][5] + coeff0_10*dmats0[10][5] + coeff0_11*dmats0[11][5] + coeff0_12*dmats0[12][5] + coeff0_13*dmats0[13][5] + coeff0_14*dmats0[14][5] + coeff0_15*dmats0[15][5] + coeff0_16*dmats0[16][5] + coeff0_17*dmats0[17][5] + coeff0_18*dmats0[18][5] + coeff0_19*dmats0[19][5] + coeff0_20*dmats0[20][5] + coeff0_21*dmats0[21][5] + coeff0_22*dmats0[22][5] + coeff0_23*dmats0[23][5] + coeff0_24*dmats0[24][5] + coeff0_25*dmats0[25][5] + coeff0_26*dmats0[26][5] + coeff0_27*dmats0[27][5] + coeff0_28*dmats0[28][5] + coeff0_29*dmats0[29][5] + coeff0_30*dmats0[30][5] + coeff0_31*dmats0[31][5] + coeff0_32*dmats0[32][5] + coeff0_33*dmats0[33][5] + coeff0_34*dmats0[34][5];
 
1993
          new_coeff0_6 = coeff0_0*dmats0[0][6] + coeff0_1*dmats0[1][6] + coeff0_2*dmats0[2][6] + coeff0_3*dmats0[3][6] + coeff0_4*dmats0[4][6] + coeff0_5*dmats0[5][6] + coeff0_6*dmats0[6][6] + coeff0_7*dmats0[7][6] + coeff0_8*dmats0[8][6] + coeff0_9*dmats0[9][6] + coeff0_10*dmats0[10][6] + coeff0_11*dmats0[11][6] + coeff0_12*dmats0[12][6] + coeff0_13*dmats0[13][6] + coeff0_14*dmats0[14][6] + coeff0_15*dmats0[15][6] + coeff0_16*dmats0[16][6] + coeff0_17*dmats0[17][6] + coeff0_18*dmats0[18][6] + coeff0_19*dmats0[19][6] + coeff0_20*dmats0[20][6] + coeff0_21*dmats0[21][6] + coeff0_22*dmats0[22][6] + coeff0_23*dmats0[23][6] + coeff0_24*dmats0[24][6] + coeff0_25*dmats0[25][6] + coeff0_26*dmats0[26][6] + coeff0_27*dmats0[27][6] + coeff0_28*dmats0[28][6] + coeff0_29*dmats0[29][6] + coeff0_30*dmats0[30][6] + coeff0_31*dmats0[31][6] + coeff0_32*dmats0[32][6] + coeff0_33*dmats0[33][6] + coeff0_34*dmats0[34][6];
 
1994
          new_coeff0_7 = coeff0_0*dmats0[0][7] + coeff0_1*dmats0[1][7] + coeff0_2*dmats0[2][7] + coeff0_3*dmats0[3][7] + coeff0_4*dmats0[4][7] + coeff0_5*dmats0[5][7] + coeff0_6*dmats0[6][7] + coeff0_7*dmats0[7][7] + coeff0_8*dmats0[8][7] + coeff0_9*dmats0[9][7] + coeff0_10*dmats0[10][7] + coeff0_11*dmats0[11][7] + coeff0_12*dmats0[12][7] + coeff0_13*dmats0[13][7] + coeff0_14*dmats0[14][7] + coeff0_15*dmats0[15][7] + coeff0_16*dmats0[16][7] + coeff0_17*dmats0[17][7] + coeff0_18*dmats0[18][7] + coeff0_19*dmats0[19][7] + coeff0_20*dmats0[20][7] + coeff0_21*dmats0[21][7] + coeff0_22*dmats0[22][7] + coeff0_23*dmats0[23][7] + coeff0_24*dmats0[24][7] + coeff0_25*dmats0[25][7] + coeff0_26*dmats0[26][7] + coeff0_27*dmats0[27][7] + coeff0_28*dmats0[28][7] + coeff0_29*dmats0[29][7] + coeff0_30*dmats0[30][7] + coeff0_31*dmats0[31][7] + coeff0_32*dmats0[32][7] + coeff0_33*dmats0[33][7] + coeff0_34*dmats0[34][7];
 
1995
          new_coeff0_8 = coeff0_0*dmats0[0][8] + coeff0_1*dmats0[1][8] + coeff0_2*dmats0[2][8] + coeff0_3*dmats0[3][8] + coeff0_4*dmats0[4][8] + coeff0_5*dmats0[5][8] + coeff0_6*dmats0[6][8] + coeff0_7*dmats0[7][8] + coeff0_8*dmats0[8][8] + coeff0_9*dmats0[9][8] + coeff0_10*dmats0[10][8] + coeff0_11*dmats0[11][8] + coeff0_12*dmats0[12][8] + coeff0_13*dmats0[13][8] + coeff0_14*dmats0[14][8] + coeff0_15*dmats0[15][8] + coeff0_16*dmats0[16][8] + coeff0_17*dmats0[17][8] + coeff0_18*dmats0[18][8] + coeff0_19*dmats0[19][8] + coeff0_20*dmats0[20][8] + coeff0_21*dmats0[21][8] + coeff0_22*dmats0[22][8] + coeff0_23*dmats0[23][8] + coeff0_24*dmats0[24][8] + coeff0_25*dmats0[25][8] + coeff0_26*dmats0[26][8] + coeff0_27*dmats0[27][8] + coeff0_28*dmats0[28][8] + coeff0_29*dmats0[29][8] + coeff0_30*dmats0[30][8] + coeff0_31*dmats0[31][8] + coeff0_32*dmats0[32][8] + coeff0_33*dmats0[33][8] + coeff0_34*dmats0[34][8];
 
1996
          new_coeff0_9 = coeff0_0*dmats0[0][9] + coeff0_1*dmats0[1][9] + coeff0_2*dmats0[2][9] + coeff0_3*dmats0[3][9] + coeff0_4*dmats0[4][9] + coeff0_5*dmats0[5][9] + coeff0_6*dmats0[6][9] + coeff0_7*dmats0[7][9] + coeff0_8*dmats0[8][9] + coeff0_9*dmats0[9][9] + coeff0_10*dmats0[10][9] + coeff0_11*dmats0[11][9] + coeff0_12*dmats0[12][9] + coeff0_13*dmats0[13][9] + coeff0_14*dmats0[14][9] + coeff0_15*dmats0[15][9] + coeff0_16*dmats0[16][9] + coeff0_17*dmats0[17][9] + coeff0_18*dmats0[18][9] + coeff0_19*dmats0[19][9] + coeff0_20*dmats0[20][9] + coeff0_21*dmats0[21][9] + coeff0_22*dmats0[22][9] + coeff0_23*dmats0[23][9] + coeff0_24*dmats0[24][9] + coeff0_25*dmats0[25][9] + coeff0_26*dmats0[26][9] + coeff0_27*dmats0[27][9] + coeff0_28*dmats0[28][9] + coeff0_29*dmats0[29][9] + coeff0_30*dmats0[30][9] + coeff0_31*dmats0[31][9] + coeff0_32*dmats0[32][9] + coeff0_33*dmats0[33][9] + coeff0_34*dmats0[34][9];
 
1997
          new_coeff0_10 = coeff0_0*dmats0[0][10] + coeff0_1*dmats0[1][10] + coeff0_2*dmats0[2][10] + coeff0_3*dmats0[3][10] + coeff0_4*dmats0[4][10] + coeff0_5*dmats0[5][10] + coeff0_6*dmats0[6][10] + coeff0_7*dmats0[7][10] + coeff0_8*dmats0[8][10] + coeff0_9*dmats0[9][10] + coeff0_10*dmats0[10][10] + coeff0_11*dmats0[11][10] + coeff0_12*dmats0[12][10] + coeff0_13*dmats0[13][10] + coeff0_14*dmats0[14][10] + coeff0_15*dmats0[15][10] + coeff0_16*dmats0[16][10] + coeff0_17*dmats0[17][10] + coeff0_18*dmats0[18][10] + coeff0_19*dmats0[19][10] + coeff0_20*dmats0[20][10] + coeff0_21*dmats0[21][10] + coeff0_22*dmats0[22][10] + coeff0_23*dmats0[23][10] + coeff0_24*dmats0[24][10] + coeff0_25*dmats0[25][10] + coeff0_26*dmats0[26][10] + coeff0_27*dmats0[27][10] + coeff0_28*dmats0[28][10] + coeff0_29*dmats0[29][10] + coeff0_30*dmats0[30][10] + coeff0_31*dmats0[31][10] + coeff0_32*dmats0[32][10] + coeff0_33*dmats0[33][10] + coeff0_34*dmats0[34][10];
 
1998
          new_coeff0_11 = coeff0_0*dmats0[0][11] + coeff0_1*dmats0[1][11] + coeff0_2*dmats0[2][11] + coeff0_3*dmats0[3][11] + coeff0_4*dmats0[4][11] + coeff0_5*dmats0[5][11] + coeff0_6*dmats0[6][11] + coeff0_7*dmats0[7][11] + coeff0_8*dmats0[8][11] + coeff0_9*dmats0[9][11] + coeff0_10*dmats0[10][11] + coeff0_11*dmats0[11][11] + coeff0_12*dmats0[12][11] + coeff0_13*dmats0[13][11] + coeff0_14*dmats0[14][11] + coeff0_15*dmats0[15][11] + coeff0_16*dmats0[16][11] + coeff0_17*dmats0[17][11] + coeff0_18*dmats0[18][11] + coeff0_19*dmats0[19][11] + coeff0_20*dmats0[20][11] + coeff0_21*dmats0[21][11] + coeff0_22*dmats0[22][11] + coeff0_23*dmats0[23][11] + coeff0_24*dmats0[24][11] + coeff0_25*dmats0[25][11] + coeff0_26*dmats0[26][11] + coeff0_27*dmats0[27][11] + coeff0_28*dmats0[28][11] + coeff0_29*dmats0[29][11] + coeff0_30*dmats0[30][11] + coeff0_31*dmats0[31][11] + coeff0_32*dmats0[32][11] + coeff0_33*dmats0[33][11] + coeff0_34*dmats0[34][11];
 
1999
          new_coeff0_12 = coeff0_0*dmats0[0][12] + coeff0_1*dmats0[1][12] + coeff0_2*dmats0[2][12] + coeff0_3*dmats0[3][12] + coeff0_4*dmats0[4][12] + coeff0_5*dmats0[5][12] + coeff0_6*dmats0[6][12] + coeff0_7*dmats0[7][12] + coeff0_8*dmats0[8][12] + coeff0_9*dmats0[9][12] + coeff0_10*dmats0[10][12] + coeff0_11*dmats0[11][12] + coeff0_12*dmats0[12][12] + coeff0_13*dmats0[13][12] + coeff0_14*dmats0[14][12] + coeff0_15*dmats0[15][12] + coeff0_16*dmats0[16][12] + coeff0_17*dmats0[17][12] + coeff0_18*dmats0[18][12] + coeff0_19*dmats0[19][12] + coeff0_20*dmats0[20][12] + coeff0_21*dmats0[21][12] + coeff0_22*dmats0[22][12] + coeff0_23*dmats0[23][12] + coeff0_24*dmats0[24][12] + coeff0_25*dmats0[25][12] + coeff0_26*dmats0[26][12] + coeff0_27*dmats0[27][12] + coeff0_28*dmats0[28][12] + coeff0_29*dmats0[29][12] + coeff0_30*dmats0[30][12] + coeff0_31*dmats0[31][12] + coeff0_32*dmats0[32][12] + coeff0_33*dmats0[33][12] + coeff0_34*dmats0[34][12];
 
2000
          new_coeff0_13 = coeff0_0*dmats0[0][13] + coeff0_1*dmats0[1][13] + coeff0_2*dmats0[2][13] + coeff0_3*dmats0[3][13] + coeff0_4*dmats0[4][13] + coeff0_5*dmats0[5][13] + coeff0_6*dmats0[6][13] + coeff0_7*dmats0[7][13] + coeff0_8*dmats0[8][13] + coeff0_9*dmats0[9][13] + coeff0_10*dmats0[10][13] + coeff0_11*dmats0[11][13] + coeff0_12*dmats0[12][13] + coeff0_13*dmats0[13][13] + coeff0_14*dmats0[14][13] + coeff0_15*dmats0[15][13] + coeff0_16*dmats0[16][13] + coeff0_17*dmats0[17][13] + coeff0_18*dmats0[18][13] + coeff0_19*dmats0[19][13] + coeff0_20*dmats0[20][13] + coeff0_21*dmats0[21][13] + coeff0_22*dmats0[22][13] + coeff0_23*dmats0[23][13] + coeff0_24*dmats0[24][13] + coeff0_25*dmats0[25][13] + coeff0_26*dmats0[26][13] + coeff0_27*dmats0[27][13] + coeff0_28*dmats0[28][13] + coeff0_29*dmats0[29][13] + coeff0_30*dmats0[30][13] + coeff0_31*dmats0[31][13] + coeff0_32*dmats0[32][13] + coeff0_33*dmats0[33][13] + coeff0_34*dmats0[34][13];
 
2001
          new_coeff0_14 = coeff0_0*dmats0[0][14] + coeff0_1*dmats0[1][14] + coeff0_2*dmats0[2][14] + coeff0_3*dmats0[3][14] + coeff0_4*dmats0[4][14] + coeff0_5*dmats0[5][14] + coeff0_6*dmats0[6][14] + coeff0_7*dmats0[7][14] + coeff0_8*dmats0[8][14] + coeff0_9*dmats0[9][14] + coeff0_10*dmats0[10][14] + coeff0_11*dmats0[11][14] + coeff0_12*dmats0[12][14] + coeff0_13*dmats0[13][14] + coeff0_14*dmats0[14][14] + coeff0_15*dmats0[15][14] + coeff0_16*dmats0[16][14] + coeff0_17*dmats0[17][14] + coeff0_18*dmats0[18][14] + coeff0_19*dmats0[19][14] + coeff0_20*dmats0[20][14] + coeff0_21*dmats0[21][14] + coeff0_22*dmats0[22][14] + coeff0_23*dmats0[23][14] + coeff0_24*dmats0[24][14] + coeff0_25*dmats0[25][14] + coeff0_26*dmats0[26][14] + coeff0_27*dmats0[27][14] + coeff0_28*dmats0[28][14] + coeff0_29*dmats0[29][14] + coeff0_30*dmats0[30][14] + coeff0_31*dmats0[31][14] + coeff0_32*dmats0[32][14] + coeff0_33*dmats0[33][14] + coeff0_34*dmats0[34][14];
 
2002
          new_coeff0_15 = coeff0_0*dmats0[0][15] + coeff0_1*dmats0[1][15] + coeff0_2*dmats0[2][15] + coeff0_3*dmats0[3][15] + coeff0_4*dmats0[4][15] + coeff0_5*dmats0[5][15] + coeff0_6*dmats0[6][15] + coeff0_7*dmats0[7][15] + coeff0_8*dmats0[8][15] + coeff0_9*dmats0[9][15] + coeff0_10*dmats0[10][15] + coeff0_11*dmats0[11][15] + coeff0_12*dmats0[12][15] + coeff0_13*dmats0[13][15] + coeff0_14*dmats0[14][15] + coeff0_15*dmats0[15][15] + coeff0_16*dmats0[16][15] + coeff0_17*dmats0[17][15] + coeff0_18*dmats0[18][15] + coeff0_19*dmats0[19][15] + coeff0_20*dmats0[20][15] + coeff0_21*dmats0[21][15] + coeff0_22*dmats0[22][15] + coeff0_23*dmats0[23][15] + coeff0_24*dmats0[24][15] + coeff0_25*dmats0[25][15] + coeff0_26*dmats0[26][15] + coeff0_27*dmats0[27][15] + coeff0_28*dmats0[28][15] + coeff0_29*dmats0[29][15] + coeff0_30*dmats0[30][15] + coeff0_31*dmats0[31][15] + coeff0_32*dmats0[32][15] + coeff0_33*dmats0[33][15] + coeff0_34*dmats0[34][15];
 
2003
          new_coeff0_16 = coeff0_0*dmats0[0][16] + coeff0_1*dmats0[1][16] + coeff0_2*dmats0[2][16] + coeff0_3*dmats0[3][16] + coeff0_4*dmats0[4][16] + coeff0_5*dmats0[5][16] + coeff0_6*dmats0[6][16] + coeff0_7*dmats0[7][16] + coeff0_8*dmats0[8][16] + coeff0_9*dmats0[9][16] + coeff0_10*dmats0[10][16] + coeff0_11*dmats0[11][16] + coeff0_12*dmats0[12][16] + coeff0_13*dmats0[13][16] + coeff0_14*dmats0[14][16] + coeff0_15*dmats0[15][16] + coeff0_16*dmats0[16][16] + coeff0_17*dmats0[17][16] + coeff0_18*dmats0[18][16] + coeff0_19*dmats0[19][16] + coeff0_20*dmats0[20][16] + coeff0_21*dmats0[21][16] + coeff0_22*dmats0[22][16] + coeff0_23*dmats0[23][16] + coeff0_24*dmats0[24][16] + coeff0_25*dmats0[25][16] + coeff0_26*dmats0[26][16] + coeff0_27*dmats0[27][16] + coeff0_28*dmats0[28][16] + coeff0_29*dmats0[29][16] + coeff0_30*dmats0[30][16] + coeff0_31*dmats0[31][16] + coeff0_32*dmats0[32][16] + coeff0_33*dmats0[33][16] + coeff0_34*dmats0[34][16];
 
2004
          new_coeff0_17 = coeff0_0*dmats0[0][17] + coeff0_1*dmats0[1][17] + coeff0_2*dmats0[2][17] + coeff0_3*dmats0[3][17] + coeff0_4*dmats0[4][17] + coeff0_5*dmats0[5][17] + coeff0_6*dmats0[6][17] + coeff0_7*dmats0[7][17] + coeff0_8*dmats0[8][17] + coeff0_9*dmats0[9][17] + coeff0_10*dmats0[10][17] + coeff0_11*dmats0[11][17] + coeff0_12*dmats0[12][17] + coeff0_13*dmats0[13][17] + coeff0_14*dmats0[14][17] + coeff0_15*dmats0[15][17] + coeff0_16*dmats0[16][17] + coeff0_17*dmats0[17][17] + coeff0_18*dmats0[18][17] + coeff0_19*dmats0[19][17] + coeff0_20*dmats0[20][17] + coeff0_21*dmats0[21][17] + coeff0_22*dmats0[22][17] + coeff0_23*dmats0[23][17] + coeff0_24*dmats0[24][17] + coeff0_25*dmats0[25][17] + coeff0_26*dmats0[26][17] + coeff0_27*dmats0[27][17] + coeff0_28*dmats0[28][17] + coeff0_29*dmats0[29][17] + coeff0_30*dmats0[30][17] + coeff0_31*dmats0[31][17] + coeff0_32*dmats0[32][17] + coeff0_33*dmats0[33][17] + coeff0_34*dmats0[34][17];
 
2005
          new_coeff0_18 = coeff0_0*dmats0[0][18] + coeff0_1*dmats0[1][18] + coeff0_2*dmats0[2][18] + coeff0_3*dmats0[3][18] + coeff0_4*dmats0[4][18] + coeff0_5*dmats0[5][18] + coeff0_6*dmats0[6][18] + coeff0_7*dmats0[7][18] + coeff0_8*dmats0[8][18] + coeff0_9*dmats0[9][18] + coeff0_10*dmats0[10][18] + coeff0_11*dmats0[11][18] + coeff0_12*dmats0[12][18] + coeff0_13*dmats0[13][18] + coeff0_14*dmats0[14][18] + coeff0_15*dmats0[15][18] + coeff0_16*dmats0[16][18] + coeff0_17*dmats0[17][18] + coeff0_18*dmats0[18][18] + coeff0_19*dmats0[19][18] + coeff0_20*dmats0[20][18] + coeff0_21*dmats0[21][18] + coeff0_22*dmats0[22][18] + coeff0_23*dmats0[23][18] + coeff0_24*dmats0[24][18] + coeff0_25*dmats0[25][18] + coeff0_26*dmats0[26][18] + coeff0_27*dmats0[27][18] + coeff0_28*dmats0[28][18] + coeff0_29*dmats0[29][18] + coeff0_30*dmats0[30][18] + coeff0_31*dmats0[31][18] + coeff0_32*dmats0[32][18] + coeff0_33*dmats0[33][18] + coeff0_34*dmats0[34][18];
 
2006
          new_coeff0_19 = coeff0_0*dmats0[0][19] + coeff0_1*dmats0[1][19] + coeff0_2*dmats0[2][19] + coeff0_3*dmats0[3][19] + coeff0_4*dmats0[4][19] + coeff0_5*dmats0[5][19] + coeff0_6*dmats0[6][19] + coeff0_7*dmats0[7][19] + coeff0_8*dmats0[8][19] + coeff0_9*dmats0[9][19] + coeff0_10*dmats0[10][19] + coeff0_11*dmats0[11][19] + coeff0_12*dmats0[12][19] + coeff0_13*dmats0[13][19] + coeff0_14*dmats0[14][19] + coeff0_15*dmats0[15][19] + coeff0_16*dmats0[16][19] + coeff0_17*dmats0[17][19] + coeff0_18*dmats0[18][19] + coeff0_19*dmats0[19][19] + coeff0_20*dmats0[20][19] + coeff0_21*dmats0[21][19] + coeff0_22*dmats0[22][19] + coeff0_23*dmats0[23][19] + coeff0_24*dmats0[24][19] + coeff0_25*dmats0[25][19] + coeff0_26*dmats0[26][19] + coeff0_27*dmats0[27][19] + coeff0_28*dmats0[28][19] + coeff0_29*dmats0[29][19] + coeff0_30*dmats0[30][19] + coeff0_31*dmats0[31][19] + coeff0_32*dmats0[32][19] + coeff0_33*dmats0[33][19] + coeff0_34*dmats0[34][19];
 
2007
          new_coeff0_20 = coeff0_0*dmats0[0][20] + coeff0_1*dmats0[1][20] + coeff0_2*dmats0[2][20] + coeff0_3*dmats0[3][20] + coeff0_4*dmats0[4][20] + coeff0_5*dmats0[5][20] + coeff0_6*dmats0[6][20] + coeff0_7*dmats0[7][20] + coeff0_8*dmats0[8][20] + coeff0_9*dmats0[9][20] + coeff0_10*dmats0[10][20] + coeff0_11*dmats0[11][20] + coeff0_12*dmats0[12][20] + coeff0_13*dmats0[13][20] + coeff0_14*dmats0[14][20] + coeff0_15*dmats0[15][20] + coeff0_16*dmats0[16][20] + coeff0_17*dmats0[17][20] + coeff0_18*dmats0[18][20] + coeff0_19*dmats0[19][20] + coeff0_20*dmats0[20][20] + coeff0_21*dmats0[21][20] + coeff0_22*dmats0[22][20] + coeff0_23*dmats0[23][20] + coeff0_24*dmats0[24][20] + coeff0_25*dmats0[25][20] + coeff0_26*dmats0[26][20] + coeff0_27*dmats0[27][20] + coeff0_28*dmats0[28][20] + coeff0_29*dmats0[29][20] + coeff0_30*dmats0[30][20] + coeff0_31*dmats0[31][20] + coeff0_32*dmats0[32][20] + coeff0_33*dmats0[33][20] + coeff0_34*dmats0[34][20];
 
2008
          new_coeff0_21 = coeff0_0*dmats0[0][21] + coeff0_1*dmats0[1][21] + coeff0_2*dmats0[2][21] + coeff0_3*dmats0[3][21] + coeff0_4*dmats0[4][21] + coeff0_5*dmats0[5][21] + coeff0_6*dmats0[6][21] + coeff0_7*dmats0[7][21] + coeff0_8*dmats0[8][21] + coeff0_9*dmats0[9][21] + coeff0_10*dmats0[10][21] + coeff0_11*dmats0[11][21] + coeff0_12*dmats0[12][21] + coeff0_13*dmats0[13][21] + coeff0_14*dmats0[14][21] + coeff0_15*dmats0[15][21] + coeff0_16*dmats0[16][21] + coeff0_17*dmats0[17][21] + coeff0_18*dmats0[18][21] + coeff0_19*dmats0[19][21] + coeff0_20*dmats0[20][21] + coeff0_21*dmats0[21][21] + coeff0_22*dmats0[22][21] + coeff0_23*dmats0[23][21] + coeff0_24*dmats0[24][21] + coeff0_25*dmats0[25][21] + coeff0_26*dmats0[26][21] + coeff0_27*dmats0[27][21] + coeff0_28*dmats0[28][21] + coeff0_29*dmats0[29][21] + coeff0_30*dmats0[30][21] + coeff0_31*dmats0[31][21] + coeff0_32*dmats0[32][21] + coeff0_33*dmats0[33][21] + coeff0_34*dmats0[34][21];
 
2009
          new_coeff0_22 = coeff0_0*dmats0[0][22] + coeff0_1*dmats0[1][22] + coeff0_2*dmats0[2][22] + coeff0_3*dmats0[3][22] + coeff0_4*dmats0[4][22] + coeff0_5*dmats0[5][22] + coeff0_6*dmats0[6][22] + coeff0_7*dmats0[7][22] + coeff0_8*dmats0[8][22] + coeff0_9*dmats0[9][22] + coeff0_10*dmats0[10][22] + coeff0_11*dmats0[11][22] + coeff0_12*dmats0[12][22] + coeff0_13*dmats0[13][22] + coeff0_14*dmats0[14][22] + coeff0_15*dmats0[15][22] + coeff0_16*dmats0[16][22] + coeff0_17*dmats0[17][22] + coeff0_18*dmats0[18][22] + coeff0_19*dmats0[19][22] + coeff0_20*dmats0[20][22] + coeff0_21*dmats0[21][22] + coeff0_22*dmats0[22][22] + coeff0_23*dmats0[23][22] + coeff0_24*dmats0[24][22] + coeff0_25*dmats0[25][22] + coeff0_26*dmats0[26][22] + coeff0_27*dmats0[27][22] + coeff0_28*dmats0[28][22] + coeff0_29*dmats0[29][22] + coeff0_30*dmats0[30][22] + coeff0_31*dmats0[31][22] + coeff0_32*dmats0[32][22] + coeff0_33*dmats0[33][22] + coeff0_34*dmats0[34][22];
 
2010
          new_coeff0_23 = coeff0_0*dmats0[0][23] + coeff0_1*dmats0[1][23] + coeff0_2*dmats0[2][23] + coeff0_3*dmats0[3][23] + coeff0_4*dmats0[4][23] + coeff0_5*dmats0[5][23] + coeff0_6*dmats0[6][23] + coeff0_7*dmats0[7][23] + coeff0_8*dmats0[8][23] + coeff0_9*dmats0[9][23] + coeff0_10*dmats0[10][23] + coeff0_11*dmats0[11][23] + coeff0_12*dmats0[12][23] + coeff0_13*dmats0[13][23] + coeff0_14*dmats0[14][23] + coeff0_15*dmats0[15][23] + coeff0_16*dmats0[16][23] + coeff0_17*dmats0[17][23] + coeff0_18*dmats0[18][23] + coeff0_19*dmats0[19][23] + coeff0_20*dmats0[20][23] + coeff0_21*dmats0[21][23] + coeff0_22*dmats0[22][23] + coeff0_23*dmats0[23][23] + coeff0_24*dmats0[24][23] + coeff0_25*dmats0[25][23] + coeff0_26*dmats0[26][23] + coeff0_27*dmats0[27][23] + coeff0_28*dmats0[28][23] + coeff0_29*dmats0[29][23] + coeff0_30*dmats0[30][23] + coeff0_31*dmats0[31][23] + coeff0_32*dmats0[32][23] + coeff0_33*dmats0[33][23] + coeff0_34*dmats0[34][23];
 
2011
          new_coeff0_24 = coeff0_0*dmats0[0][24] + coeff0_1*dmats0[1][24] + coeff0_2*dmats0[2][24] + coeff0_3*dmats0[3][24] + coeff0_4*dmats0[4][24] + coeff0_5*dmats0[5][24] + coeff0_6*dmats0[6][24] + coeff0_7*dmats0[7][24] + coeff0_8*dmats0[8][24] + coeff0_9*dmats0[9][24] + coeff0_10*dmats0[10][24] + coeff0_11*dmats0[11][24] + coeff0_12*dmats0[12][24] + coeff0_13*dmats0[13][24] + coeff0_14*dmats0[14][24] + coeff0_15*dmats0[15][24] + coeff0_16*dmats0[16][24] + coeff0_17*dmats0[17][24] + coeff0_18*dmats0[18][24] + coeff0_19*dmats0[19][24] + coeff0_20*dmats0[20][24] + coeff0_21*dmats0[21][24] + coeff0_22*dmats0[22][24] + coeff0_23*dmats0[23][24] + coeff0_24*dmats0[24][24] + coeff0_25*dmats0[25][24] + coeff0_26*dmats0[26][24] + coeff0_27*dmats0[27][24] + coeff0_28*dmats0[28][24] + coeff0_29*dmats0[29][24] + coeff0_30*dmats0[30][24] + coeff0_31*dmats0[31][24] + coeff0_32*dmats0[32][24] + coeff0_33*dmats0[33][24] + coeff0_34*dmats0[34][24];
 
2012
          new_coeff0_25 = coeff0_0*dmats0[0][25] + coeff0_1*dmats0[1][25] + coeff0_2*dmats0[2][25] + coeff0_3*dmats0[3][25] + coeff0_4*dmats0[4][25] + coeff0_5*dmats0[5][25] + coeff0_6*dmats0[6][25] + coeff0_7*dmats0[7][25] + coeff0_8*dmats0[8][25] + coeff0_9*dmats0[9][25] + coeff0_10*dmats0[10][25] + coeff0_11*dmats0[11][25] + coeff0_12*dmats0[12][25] + coeff0_13*dmats0[13][25] + coeff0_14*dmats0[14][25] + coeff0_15*dmats0[15][25] + coeff0_16*dmats0[16][25] + coeff0_17*dmats0[17][25] + coeff0_18*dmats0[18][25] + coeff0_19*dmats0[19][25] + coeff0_20*dmats0[20][25] + coeff0_21*dmats0[21][25] + coeff0_22*dmats0[22][25] + coeff0_23*dmats0[23][25] + coeff0_24*dmats0[24][25] + coeff0_25*dmats0[25][25] + coeff0_26*dmats0[26][25] + coeff0_27*dmats0[27][25] + coeff0_28*dmats0[28][25] + coeff0_29*dmats0[29][25] + coeff0_30*dmats0[30][25] + coeff0_31*dmats0[31][25] + coeff0_32*dmats0[32][25] + coeff0_33*dmats0[33][25] + coeff0_34*dmats0[34][25];
 
2013
          new_coeff0_26 = coeff0_0*dmats0[0][26] + coeff0_1*dmats0[1][26] + coeff0_2*dmats0[2][26] + coeff0_3*dmats0[3][26] + coeff0_4*dmats0[4][26] + coeff0_5*dmats0[5][26] + coeff0_6*dmats0[6][26] + coeff0_7*dmats0[7][26] + coeff0_8*dmats0[8][26] + coeff0_9*dmats0[9][26] + coeff0_10*dmats0[10][26] + coeff0_11*dmats0[11][26] + coeff0_12*dmats0[12][26] + coeff0_13*dmats0[13][26] + coeff0_14*dmats0[14][26] + coeff0_15*dmats0[15][26] + coeff0_16*dmats0[16][26] + coeff0_17*dmats0[17][26] + coeff0_18*dmats0[18][26] + coeff0_19*dmats0[19][26] + coeff0_20*dmats0[20][26] + coeff0_21*dmats0[21][26] + coeff0_22*dmats0[22][26] + coeff0_23*dmats0[23][26] + coeff0_24*dmats0[24][26] + coeff0_25*dmats0[25][26] + coeff0_26*dmats0[26][26] + coeff0_27*dmats0[27][26] + coeff0_28*dmats0[28][26] + coeff0_29*dmats0[29][26] + coeff0_30*dmats0[30][26] + coeff0_31*dmats0[31][26] + coeff0_32*dmats0[32][26] + coeff0_33*dmats0[33][26] + coeff0_34*dmats0[34][26];
 
2014
          new_coeff0_27 = coeff0_0*dmats0[0][27] + coeff0_1*dmats0[1][27] + coeff0_2*dmats0[2][27] + coeff0_3*dmats0[3][27] + coeff0_4*dmats0[4][27] + coeff0_5*dmats0[5][27] + coeff0_6*dmats0[6][27] + coeff0_7*dmats0[7][27] + coeff0_8*dmats0[8][27] + coeff0_9*dmats0[9][27] + coeff0_10*dmats0[10][27] + coeff0_11*dmats0[11][27] + coeff0_12*dmats0[12][27] + coeff0_13*dmats0[13][27] + coeff0_14*dmats0[14][27] + coeff0_15*dmats0[15][27] + coeff0_16*dmats0[16][27] + coeff0_17*dmats0[17][27] + coeff0_18*dmats0[18][27] + coeff0_19*dmats0[19][27] + coeff0_20*dmats0[20][27] + coeff0_21*dmats0[21][27] + coeff0_22*dmats0[22][27] + coeff0_23*dmats0[23][27] + coeff0_24*dmats0[24][27] + coeff0_25*dmats0[25][27] + coeff0_26*dmats0[26][27] + coeff0_27*dmats0[27][27] + coeff0_28*dmats0[28][27] + coeff0_29*dmats0[29][27] + coeff0_30*dmats0[30][27] + coeff0_31*dmats0[31][27] + coeff0_32*dmats0[32][27] + coeff0_33*dmats0[33][27] + coeff0_34*dmats0[34][27];
 
2015
          new_coeff0_28 = coeff0_0*dmats0[0][28] + coeff0_1*dmats0[1][28] + coeff0_2*dmats0[2][28] + coeff0_3*dmats0[3][28] + coeff0_4*dmats0[4][28] + coeff0_5*dmats0[5][28] + coeff0_6*dmats0[6][28] + coeff0_7*dmats0[7][28] + coeff0_8*dmats0[8][28] + coeff0_9*dmats0[9][28] + coeff0_10*dmats0[10][28] + coeff0_11*dmats0[11][28] + coeff0_12*dmats0[12][28] + coeff0_13*dmats0[13][28] + coeff0_14*dmats0[14][28] + coeff0_15*dmats0[15][28] + coeff0_16*dmats0[16][28] + coeff0_17*dmats0[17][28] + coeff0_18*dmats0[18][28] + coeff0_19*dmats0[19][28] + coeff0_20*dmats0[20][28] + coeff0_21*dmats0[21][28] + coeff0_22*dmats0[22][28] + coeff0_23*dmats0[23][28] + coeff0_24*dmats0[24][28] + coeff0_25*dmats0[25][28] + coeff0_26*dmats0[26][28] + coeff0_27*dmats0[27][28] + coeff0_28*dmats0[28][28] + coeff0_29*dmats0[29][28] + coeff0_30*dmats0[30][28] + coeff0_31*dmats0[31][28] + coeff0_32*dmats0[32][28] + coeff0_33*dmats0[33][28] + coeff0_34*dmats0[34][28];
 
2016
          new_coeff0_29 = coeff0_0*dmats0[0][29] + coeff0_1*dmats0[1][29] + coeff0_2*dmats0[2][29] + coeff0_3*dmats0[3][29] + coeff0_4*dmats0[4][29] + coeff0_5*dmats0[5][29] + coeff0_6*dmats0[6][29] + coeff0_7*dmats0[7][29] + coeff0_8*dmats0[8][29] + coeff0_9*dmats0[9][29] + coeff0_10*dmats0[10][29] + coeff0_11*dmats0[11][29] + coeff0_12*dmats0[12][29] + coeff0_13*dmats0[13][29] + coeff0_14*dmats0[14][29] + coeff0_15*dmats0[15][29] + coeff0_16*dmats0[16][29] + coeff0_17*dmats0[17][29] + coeff0_18*dmats0[18][29] + coeff0_19*dmats0[19][29] + coeff0_20*dmats0[20][29] + coeff0_21*dmats0[21][29] + coeff0_22*dmats0[22][29] + coeff0_23*dmats0[23][29] + coeff0_24*dmats0[24][29] + coeff0_25*dmats0[25][29] + coeff0_26*dmats0[26][29] + coeff0_27*dmats0[27][29] + coeff0_28*dmats0[28][29] + coeff0_29*dmats0[29][29] + coeff0_30*dmats0[30][29] + coeff0_31*dmats0[31][29] + coeff0_32*dmats0[32][29] + coeff0_33*dmats0[33][29] + coeff0_34*dmats0[34][29];
 
2017
          new_coeff0_30 = coeff0_0*dmats0[0][30] + coeff0_1*dmats0[1][30] + coeff0_2*dmats0[2][30] + coeff0_3*dmats0[3][30] + coeff0_4*dmats0[4][30] + coeff0_5*dmats0[5][30] + coeff0_6*dmats0[6][30] + coeff0_7*dmats0[7][30] + coeff0_8*dmats0[8][30] + coeff0_9*dmats0[9][30] + coeff0_10*dmats0[10][30] + coeff0_11*dmats0[11][30] + coeff0_12*dmats0[12][30] + coeff0_13*dmats0[13][30] + coeff0_14*dmats0[14][30] + coeff0_15*dmats0[15][30] + coeff0_16*dmats0[16][30] + coeff0_17*dmats0[17][30] + coeff0_18*dmats0[18][30] + coeff0_19*dmats0[19][30] + coeff0_20*dmats0[20][30] + coeff0_21*dmats0[21][30] + coeff0_22*dmats0[22][30] + coeff0_23*dmats0[23][30] + coeff0_24*dmats0[24][30] + coeff0_25*dmats0[25][30] + coeff0_26*dmats0[26][30] + coeff0_27*dmats0[27][30] + coeff0_28*dmats0[28][30] + coeff0_29*dmats0[29][30] + coeff0_30*dmats0[30][30] + coeff0_31*dmats0[31][30] + coeff0_32*dmats0[32][30] + coeff0_33*dmats0[33][30] + coeff0_34*dmats0[34][30];
 
2018
          new_coeff0_31 = coeff0_0*dmats0[0][31] + coeff0_1*dmats0[1][31] + coeff0_2*dmats0[2][31] + coeff0_3*dmats0[3][31] + coeff0_4*dmats0[4][31] + coeff0_5*dmats0[5][31] + coeff0_6*dmats0[6][31] + coeff0_7*dmats0[7][31] + coeff0_8*dmats0[8][31] + coeff0_9*dmats0[9][31] + coeff0_10*dmats0[10][31] + coeff0_11*dmats0[11][31] + coeff0_12*dmats0[12][31] + coeff0_13*dmats0[13][31] + coeff0_14*dmats0[14][31] + coeff0_15*dmats0[15][31] + coeff0_16*dmats0[16][31] + coeff0_17*dmats0[17][31] + coeff0_18*dmats0[18][31] + coeff0_19*dmats0[19][31] + coeff0_20*dmats0[20][31] + coeff0_21*dmats0[21][31] + coeff0_22*dmats0[22][31] + coeff0_23*dmats0[23][31] + coeff0_24*dmats0[24][31] + coeff0_25*dmats0[25][31] + coeff0_26*dmats0[26][31] + coeff0_27*dmats0[27][31] + coeff0_28*dmats0[28][31] + coeff0_29*dmats0[29][31] + coeff0_30*dmats0[30][31] + coeff0_31*dmats0[31][31] + coeff0_32*dmats0[32][31] + coeff0_33*dmats0[33][31] + coeff0_34*dmats0[34][31];
 
2019
          new_coeff0_32 = coeff0_0*dmats0[0][32] + coeff0_1*dmats0[1][32] + coeff0_2*dmats0[2][32] + coeff0_3*dmats0[3][32] + coeff0_4*dmats0[4][32] + coeff0_5*dmats0[5][32] + coeff0_6*dmats0[6][32] + coeff0_7*dmats0[7][32] + coeff0_8*dmats0[8][32] + coeff0_9*dmats0[9][32] + coeff0_10*dmats0[10][32] + coeff0_11*dmats0[11][32] + coeff0_12*dmats0[12][32] + coeff0_13*dmats0[13][32] + coeff0_14*dmats0[14][32] + coeff0_15*dmats0[15][32] + coeff0_16*dmats0[16][32] + coeff0_17*dmats0[17][32] + coeff0_18*dmats0[18][32] + coeff0_19*dmats0[19][32] + coeff0_20*dmats0[20][32] + coeff0_21*dmats0[21][32] + coeff0_22*dmats0[22][32] + coeff0_23*dmats0[23][32] + coeff0_24*dmats0[24][32] + coeff0_25*dmats0[25][32] + coeff0_26*dmats0[26][32] + coeff0_27*dmats0[27][32] + coeff0_28*dmats0[28][32] + coeff0_29*dmats0[29][32] + coeff0_30*dmats0[30][32] + coeff0_31*dmats0[31][32] + coeff0_32*dmats0[32][32] + coeff0_33*dmats0[33][32] + coeff0_34*dmats0[34][32];
 
2020
          new_coeff0_33 = coeff0_0*dmats0[0][33] + coeff0_1*dmats0[1][33] + coeff0_2*dmats0[2][33] + coeff0_3*dmats0[3][33] + coeff0_4*dmats0[4][33] + coeff0_5*dmats0[5][33] + coeff0_6*dmats0[6][33] + coeff0_7*dmats0[7][33] + coeff0_8*dmats0[8][33] + coeff0_9*dmats0[9][33] + coeff0_10*dmats0[10][33] + coeff0_11*dmats0[11][33] + coeff0_12*dmats0[12][33] + coeff0_13*dmats0[13][33] + coeff0_14*dmats0[14][33] + coeff0_15*dmats0[15][33] + coeff0_16*dmats0[16][33] + coeff0_17*dmats0[17][33] + coeff0_18*dmats0[18][33] + coeff0_19*dmats0[19][33] + coeff0_20*dmats0[20][33] + coeff0_21*dmats0[21][33] + coeff0_22*dmats0[22][33] + coeff0_23*dmats0[23][33] + coeff0_24*dmats0[24][33] + coeff0_25*dmats0[25][33] + coeff0_26*dmats0[26][33] + coeff0_27*dmats0[27][33] + coeff0_28*dmats0[28][33] + coeff0_29*dmats0[29][33] + coeff0_30*dmats0[30][33] + coeff0_31*dmats0[31][33] + coeff0_32*dmats0[32][33] + coeff0_33*dmats0[33][33] + coeff0_34*dmats0[34][33];
 
2021
          new_coeff0_34 = coeff0_0*dmats0[0][34] + coeff0_1*dmats0[1][34] + coeff0_2*dmats0[2][34] + coeff0_3*dmats0[3][34] + coeff0_4*dmats0[4][34] + coeff0_5*dmats0[5][34] + coeff0_6*dmats0[6][34] + coeff0_7*dmats0[7][34] + coeff0_8*dmats0[8][34] + coeff0_9*dmats0[9][34] + coeff0_10*dmats0[10][34] + coeff0_11*dmats0[11][34] + coeff0_12*dmats0[12][34] + coeff0_13*dmats0[13][34] + coeff0_14*dmats0[14][34] + coeff0_15*dmats0[15][34] + coeff0_16*dmats0[16][34] + coeff0_17*dmats0[17][34] + coeff0_18*dmats0[18][34] + coeff0_19*dmats0[19][34] + coeff0_20*dmats0[20][34] + coeff0_21*dmats0[21][34] + coeff0_22*dmats0[22][34] + coeff0_23*dmats0[23][34] + coeff0_24*dmats0[24][34] + coeff0_25*dmats0[25][34] + coeff0_26*dmats0[26][34] + coeff0_27*dmats0[27][34] + coeff0_28*dmats0[28][34] + coeff0_29*dmats0[29][34] + coeff0_30*dmats0[30][34] + coeff0_31*dmats0[31][34] + coeff0_32*dmats0[32][34] + coeff0_33*dmats0[33][34] + coeff0_34*dmats0[34][34];
 
2022
        }
 
2023
        if(combinations[deriv_num][j] == 1)
 
2024
        {
 
2025
          new_coeff0_0 = coeff0_0*dmats1[0][0] + coeff0_1*dmats1[1][0] + coeff0_2*dmats1[2][0] + coeff0_3*dmats1[3][0] + coeff0_4*dmats1[4][0] + coeff0_5*dmats1[5][0] + coeff0_6*dmats1[6][0] + coeff0_7*dmats1[7][0] + coeff0_8*dmats1[8][0] + coeff0_9*dmats1[9][0] + coeff0_10*dmats1[10][0] + coeff0_11*dmats1[11][0] + coeff0_12*dmats1[12][0] + coeff0_13*dmats1[13][0] + coeff0_14*dmats1[14][0] + coeff0_15*dmats1[15][0] + coeff0_16*dmats1[16][0] + coeff0_17*dmats1[17][0] + coeff0_18*dmats1[18][0] + coeff0_19*dmats1[19][0] + coeff0_20*dmats1[20][0] + coeff0_21*dmats1[21][0] + coeff0_22*dmats1[22][0] + coeff0_23*dmats1[23][0] + coeff0_24*dmats1[24][0] + coeff0_25*dmats1[25][0] + coeff0_26*dmats1[26][0] + coeff0_27*dmats1[27][0] + coeff0_28*dmats1[28][0] + coeff0_29*dmats1[29][0] + coeff0_30*dmats1[30][0] + coeff0_31*dmats1[31][0] + coeff0_32*dmats1[32][0] + coeff0_33*dmats1[33][0] + coeff0_34*dmats1[34][0];
 
2026
          new_coeff0_1 = coeff0_0*dmats1[0][1] + coeff0_1*dmats1[1][1] + coeff0_2*dmats1[2][1] + coeff0_3*dmats1[3][1] + coeff0_4*dmats1[4][1] + coeff0_5*dmats1[5][1] + coeff0_6*dmats1[6][1] + coeff0_7*dmats1[7][1] + coeff0_8*dmats1[8][1] + coeff0_9*dmats1[9][1] + coeff0_10*dmats1[10][1] + coeff0_11*dmats1[11][1] + coeff0_12*dmats1[12][1] + coeff0_13*dmats1[13][1] + coeff0_14*dmats1[14][1] + coeff0_15*dmats1[15][1] + coeff0_16*dmats1[16][1] + coeff0_17*dmats1[17][1] + coeff0_18*dmats1[18][1] + coeff0_19*dmats1[19][1] + coeff0_20*dmats1[20][1] + coeff0_21*dmats1[21][1] + coeff0_22*dmats1[22][1] + coeff0_23*dmats1[23][1] + coeff0_24*dmats1[24][1] + coeff0_25*dmats1[25][1] + coeff0_26*dmats1[26][1] + coeff0_27*dmats1[27][1] + coeff0_28*dmats1[28][1] + coeff0_29*dmats1[29][1] + coeff0_30*dmats1[30][1] + coeff0_31*dmats1[31][1] + coeff0_32*dmats1[32][1] + coeff0_33*dmats1[33][1] + coeff0_34*dmats1[34][1];
 
2027
          new_coeff0_2 = coeff0_0*dmats1[0][2] + coeff0_1*dmats1[1][2] + coeff0_2*dmats1[2][2] + coeff0_3*dmats1[3][2] + coeff0_4*dmats1[4][2] + coeff0_5*dmats1[5][2] + coeff0_6*dmats1[6][2] + coeff0_7*dmats1[7][2] + coeff0_8*dmats1[8][2] + coeff0_9*dmats1[9][2] + coeff0_10*dmats1[10][2] + coeff0_11*dmats1[11][2] + coeff0_12*dmats1[12][2] + coeff0_13*dmats1[13][2] + coeff0_14*dmats1[14][2] + coeff0_15*dmats1[15][2] + coeff0_16*dmats1[16][2] + coeff0_17*dmats1[17][2] + coeff0_18*dmats1[18][2] + coeff0_19*dmats1[19][2] + coeff0_20*dmats1[20][2] + coeff0_21*dmats1[21][2] + coeff0_22*dmats1[22][2] + coeff0_23*dmats1[23][2] + coeff0_24*dmats1[24][2] + coeff0_25*dmats1[25][2] + coeff0_26*dmats1[26][2] + coeff0_27*dmats1[27][2] + coeff0_28*dmats1[28][2] + coeff0_29*dmats1[29][2] + coeff0_30*dmats1[30][2] + coeff0_31*dmats1[31][2] + coeff0_32*dmats1[32][2] + coeff0_33*dmats1[33][2] + coeff0_34*dmats1[34][2];
 
2028
          new_coeff0_3 = coeff0_0*dmats1[0][3] + coeff0_1*dmats1[1][3] + coeff0_2*dmats1[2][3] + coeff0_3*dmats1[3][3] + coeff0_4*dmats1[4][3] + coeff0_5*dmats1[5][3] + coeff0_6*dmats1[6][3] + coeff0_7*dmats1[7][3] + coeff0_8*dmats1[8][3] + coeff0_9*dmats1[9][3] + coeff0_10*dmats1[10][3] + coeff0_11*dmats1[11][3] + coeff0_12*dmats1[12][3] + coeff0_13*dmats1[13][3] + coeff0_14*dmats1[14][3] + coeff0_15*dmats1[15][3] + coeff0_16*dmats1[16][3] + coeff0_17*dmats1[17][3] + coeff0_18*dmats1[18][3] + coeff0_19*dmats1[19][3] + coeff0_20*dmats1[20][3] + coeff0_21*dmats1[21][3] + coeff0_22*dmats1[22][3] + coeff0_23*dmats1[23][3] + coeff0_24*dmats1[24][3] + coeff0_25*dmats1[25][3] + coeff0_26*dmats1[26][3] + coeff0_27*dmats1[27][3] + coeff0_28*dmats1[28][3] + coeff0_29*dmats1[29][3] + coeff0_30*dmats1[30][3] + coeff0_31*dmats1[31][3] + coeff0_32*dmats1[32][3] + coeff0_33*dmats1[33][3] + coeff0_34*dmats1[34][3];
 
2029
          new_coeff0_4 = coeff0_0*dmats1[0][4] + coeff0_1*dmats1[1][4] + coeff0_2*dmats1[2][4] + coeff0_3*dmats1[3][4] + coeff0_4*dmats1[4][4] + coeff0_5*dmats1[5][4] + coeff0_6*dmats1[6][4] + coeff0_7*dmats1[7][4] + coeff0_8*dmats1[8][4] + coeff0_9*dmats1[9][4] + coeff0_10*dmats1[10][4] + coeff0_11*dmats1[11][4] + coeff0_12*dmats1[12][4] + coeff0_13*dmats1[13][4] + coeff0_14*dmats1[14][4] + coeff0_15*dmats1[15][4] + coeff0_16*dmats1[16][4] + coeff0_17*dmats1[17][4] + coeff0_18*dmats1[18][4] + coeff0_19*dmats1[19][4] + coeff0_20*dmats1[20][4] + coeff0_21*dmats1[21][4] + coeff0_22*dmats1[22][4] + coeff0_23*dmats1[23][4] + coeff0_24*dmats1[24][4] + coeff0_25*dmats1[25][4] + coeff0_26*dmats1[26][4] + coeff0_27*dmats1[27][4] + coeff0_28*dmats1[28][4] + coeff0_29*dmats1[29][4] + coeff0_30*dmats1[30][4] + coeff0_31*dmats1[31][4] + coeff0_32*dmats1[32][4] + coeff0_33*dmats1[33][4] + coeff0_34*dmats1[34][4];
 
2030
          new_coeff0_5 = coeff0_0*dmats1[0][5] + coeff0_1*dmats1[1][5] + coeff0_2*dmats1[2][5] + coeff0_3*dmats1[3][5] + coeff0_4*dmats1[4][5] + coeff0_5*dmats1[5][5] + coeff0_6*dmats1[6][5] + coeff0_7*dmats1[7][5] + coeff0_8*dmats1[8][5] + coeff0_9*dmats1[9][5] + coeff0_10*dmats1[10][5] + coeff0_11*dmats1[11][5] + coeff0_12*dmats1[12][5] + coeff0_13*dmats1[13][5] + coeff0_14*dmats1[14][5] + coeff0_15*dmats1[15][5] + coeff0_16*dmats1[16][5] + coeff0_17*dmats1[17][5] + coeff0_18*dmats1[18][5] + coeff0_19*dmats1[19][5] + coeff0_20*dmats1[20][5] + coeff0_21*dmats1[21][5] + coeff0_22*dmats1[22][5] + coeff0_23*dmats1[23][5] + coeff0_24*dmats1[24][5] + coeff0_25*dmats1[25][5] + coeff0_26*dmats1[26][5] + coeff0_27*dmats1[27][5] + coeff0_28*dmats1[28][5] + coeff0_29*dmats1[29][5] + coeff0_30*dmats1[30][5] + coeff0_31*dmats1[31][5] + coeff0_32*dmats1[32][5] + coeff0_33*dmats1[33][5] + coeff0_34*dmats1[34][5];
 
2031
          new_coeff0_6 = coeff0_0*dmats1[0][6] + coeff0_1*dmats1[1][6] + coeff0_2*dmats1[2][6] + coeff0_3*dmats1[3][6] + coeff0_4*dmats1[4][6] + coeff0_5*dmats1[5][6] + coeff0_6*dmats1[6][6] + coeff0_7*dmats1[7][6] + coeff0_8*dmats1[8][6] + coeff0_9*dmats1[9][6] + coeff0_10*dmats1[10][6] + coeff0_11*dmats1[11][6] + coeff0_12*dmats1[12][6] + coeff0_13*dmats1[13][6] + coeff0_14*dmats1[14][6] + coeff0_15*dmats1[15][6] + coeff0_16*dmats1[16][6] + coeff0_17*dmats1[17][6] + coeff0_18*dmats1[18][6] + coeff0_19*dmats1[19][6] + coeff0_20*dmats1[20][6] + coeff0_21*dmats1[21][6] + coeff0_22*dmats1[22][6] + coeff0_23*dmats1[23][6] + coeff0_24*dmats1[24][6] + coeff0_25*dmats1[25][6] + coeff0_26*dmats1[26][6] + coeff0_27*dmats1[27][6] + coeff0_28*dmats1[28][6] + coeff0_29*dmats1[29][6] + coeff0_30*dmats1[30][6] + coeff0_31*dmats1[31][6] + coeff0_32*dmats1[32][6] + coeff0_33*dmats1[33][6] + coeff0_34*dmats1[34][6];
 
2032
          new_coeff0_7 = coeff0_0*dmats1[0][7] + coeff0_1*dmats1[1][7] + coeff0_2*dmats1[2][7] + coeff0_3*dmats1[3][7] + coeff0_4*dmats1[4][7] + coeff0_5*dmats1[5][7] + coeff0_6*dmats1[6][7] + coeff0_7*dmats1[7][7] + coeff0_8*dmats1[8][7] + coeff0_9*dmats1[9][7] + coeff0_10*dmats1[10][7] + coeff0_11*dmats1[11][7] + coeff0_12*dmats1[12][7] + coeff0_13*dmats1[13][7] + coeff0_14*dmats1[14][7] + coeff0_15*dmats1[15][7] + coeff0_16*dmats1[16][7] + coeff0_17*dmats1[17][7] + coeff0_18*dmats1[18][7] + coeff0_19*dmats1[19][7] + coeff0_20*dmats1[20][7] + coeff0_21*dmats1[21][7] + coeff0_22*dmats1[22][7] + coeff0_23*dmats1[23][7] + coeff0_24*dmats1[24][7] + coeff0_25*dmats1[25][7] + coeff0_26*dmats1[26][7] + coeff0_27*dmats1[27][7] + coeff0_28*dmats1[28][7] + coeff0_29*dmats1[29][7] + coeff0_30*dmats1[30][7] + coeff0_31*dmats1[31][7] + coeff0_32*dmats1[32][7] + coeff0_33*dmats1[33][7] + coeff0_34*dmats1[34][7];
 
2033
          new_coeff0_8 = coeff0_0*dmats1[0][8] + coeff0_1*dmats1[1][8] + coeff0_2*dmats1[2][8] + coeff0_3*dmats1[3][8] + coeff0_4*dmats1[4][8] + coeff0_5*dmats1[5][8] + coeff0_6*dmats1[6][8] + coeff0_7*dmats1[7][8] + coeff0_8*dmats1[8][8] + coeff0_9*dmats1[9][8] + coeff0_10*dmats1[10][8] + coeff0_11*dmats1[11][8] + coeff0_12*dmats1[12][8] + coeff0_13*dmats1[13][8] + coeff0_14*dmats1[14][8] + coeff0_15*dmats1[15][8] + coeff0_16*dmats1[16][8] + coeff0_17*dmats1[17][8] + coeff0_18*dmats1[18][8] + coeff0_19*dmats1[19][8] + coeff0_20*dmats1[20][8] + coeff0_21*dmats1[21][8] + coeff0_22*dmats1[22][8] + coeff0_23*dmats1[23][8] + coeff0_24*dmats1[24][8] + coeff0_25*dmats1[25][8] + coeff0_26*dmats1[26][8] + coeff0_27*dmats1[27][8] + coeff0_28*dmats1[28][8] + coeff0_29*dmats1[29][8] + coeff0_30*dmats1[30][8] + coeff0_31*dmats1[31][8] + coeff0_32*dmats1[32][8] + coeff0_33*dmats1[33][8] + coeff0_34*dmats1[34][8];
 
2034
          new_coeff0_9 = coeff0_0*dmats1[0][9] + coeff0_1*dmats1[1][9] + coeff0_2*dmats1[2][9] + coeff0_3*dmats1[3][9] + coeff0_4*dmats1[4][9] + coeff0_5*dmats1[5][9] + coeff0_6*dmats1[6][9] + coeff0_7*dmats1[7][9] + coeff0_8*dmats1[8][9] + coeff0_9*dmats1[9][9] + coeff0_10*dmats1[10][9] + coeff0_11*dmats1[11][9] + coeff0_12*dmats1[12][9] + coeff0_13*dmats1[13][9] + coeff0_14*dmats1[14][9] + coeff0_15*dmats1[15][9] + coeff0_16*dmats1[16][9] + coeff0_17*dmats1[17][9] + coeff0_18*dmats1[18][9] + coeff0_19*dmats1[19][9] + coeff0_20*dmats1[20][9] + coeff0_21*dmats1[21][9] + coeff0_22*dmats1[22][9] + coeff0_23*dmats1[23][9] + coeff0_24*dmats1[24][9] + coeff0_25*dmats1[25][9] + coeff0_26*dmats1[26][9] + coeff0_27*dmats1[27][9] + coeff0_28*dmats1[28][9] + coeff0_29*dmats1[29][9] + coeff0_30*dmats1[30][9] + coeff0_31*dmats1[31][9] + coeff0_32*dmats1[32][9] + coeff0_33*dmats1[33][9] + coeff0_34*dmats1[34][9];
 
2035
          new_coeff0_10 = coeff0_0*dmats1[0][10] + coeff0_1*dmats1[1][10] + coeff0_2*dmats1[2][10] + coeff0_3*dmats1[3][10] + coeff0_4*dmats1[4][10] + coeff0_5*dmats1[5][10] + coeff0_6*dmats1[6][10] + coeff0_7*dmats1[7][10] + coeff0_8*dmats1[8][10] + coeff0_9*dmats1[9][10] + coeff0_10*dmats1[10][10] + coeff0_11*dmats1[11][10] + coeff0_12*dmats1[12][10] + coeff0_13*dmats1[13][10] + coeff0_14*dmats1[14][10] + coeff0_15*dmats1[15][10] + coeff0_16*dmats1[16][10] + coeff0_17*dmats1[17][10] + coeff0_18*dmats1[18][10] + coeff0_19*dmats1[19][10] + coeff0_20*dmats1[20][10] + coeff0_21*dmats1[21][10] + coeff0_22*dmats1[22][10] + coeff0_23*dmats1[23][10] + coeff0_24*dmats1[24][10] + coeff0_25*dmats1[25][10] + coeff0_26*dmats1[26][10] + coeff0_27*dmats1[27][10] + coeff0_28*dmats1[28][10] + coeff0_29*dmats1[29][10] + coeff0_30*dmats1[30][10] + coeff0_31*dmats1[31][10] + coeff0_32*dmats1[32][10] + coeff0_33*dmats1[33][10] + coeff0_34*dmats1[34][10];
 
2036
          new_coeff0_11 = coeff0_0*dmats1[0][11] + coeff0_1*dmats1[1][11] + coeff0_2*dmats1[2][11] + coeff0_3*dmats1[3][11] + coeff0_4*dmats1[4][11] + coeff0_5*dmats1[5][11] + coeff0_6*dmats1[6][11] + coeff0_7*dmats1[7][11] + coeff0_8*dmats1[8][11] + coeff0_9*dmats1[9][11] + coeff0_10*dmats1[10][11] + coeff0_11*dmats1[11][11] + coeff0_12*dmats1[12][11] + coeff0_13*dmats1[13][11] + coeff0_14*dmats1[14][11] + coeff0_15*dmats1[15][11] + coeff0_16*dmats1[16][11] + coeff0_17*dmats1[17][11] + coeff0_18*dmats1[18][11] + coeff0_19*dmats1[19][11] + coeff0_20*dmats1[20][11] + coeff0_21*dmats1[21][11] + coeff0_22*dmats1[22][11] + coeff0_23*dmats1[23][11] + coeff0_24*dmats1[24][11] + coeff0_25*dmats1[25][11] + coeff0_26*dmats1[26][11] + coeff0_27*dmats1[27][11] + coeff0_28*dmats1[28][11] + coeff0_29*dmats1[29][11] + coeff0_30*dmats1[30][11] + coeff0_31*dmats1[31][11] + coeff0_32*dmats1[32][11] + coeff0_33*dmats1[33][11] + coeff0_34*dmats1[34][11];
 
2037
          new_coeff0_12 = coeff0_0*dmats1[0][12] + coeff0_1*dmats1[1][12] + coeff0_2*dmats1[2][12] + coeff0_3*dmats1[3][12] + coeff0_4*dmats1[4][12] + coeff0_5*dmats1[5][12] + coeff0_6*dmats1[6][12] + coeff0_7*dmats1[7][12] + coeff0_8*dmats1[8][12] + coeff0_9*dmats1[9][12] + coeff0_10*dmats1[10][12] + coeff0_11*dmats1[11][12] + coeff0_12*dmats1[12][12] + coeff0_13*dmats1[13][12] + coeff0_14*dmats1[14][12] + coeff0_15*dmats1[15][12] + coeff0_16*dmats1[16][12] + coeff0_17*dmats1[17][12] + coeff0_18*dmats1[18][12] + coeff0_19*dmats1[19][12] + coeff0_20*dmats1[20][12] + coeff0_21*dmats1[21][12] + coeff0_22*dmats1[22][12] + coeff0_23*dmats1[23][12] + coeff0_24*dmats1[24][12] + coeff0_25*dmats1[25][12] + coeff0_26*dmats1[26][12] + coeff0_27*dmats1[27][12] + coeff0_28*dmats1[28][12] + coeff0_29*dmats1[29][12] + coeff0_30*dmats1[30][12] + coeff0_31*dmats1[31][12] + coeff0_32*dmats1[32][12] + coeff0_33*dmats1[33][12] + coeff0_34*dmats1[34][12];
 
2038
          new_coeff0_13 = coeff0_0*dmats1[0][13] + coeff0_1*dmats1[1][13] + coeff0_2*dmats1[2][13] + coeff0_3*dmats1[3][13] + coeff0_4*dmats1[4][13] + coeff0_5*dmats1[5][13] + coeff0_6*dmats1[6][13] + coeff0_7*dmats1[7][13] + coeff0_8*dmats1[8][13] + coeff0_9*dmats1[9][13] + coeff0_10*dmats1[10][13] + coeff0_11*dmats1[11][13] + coeff0_12*dmats1[12][13] + coeff0_13*dmats1[13][13] + coeff0_14*dmats1[14][13] + coeff0_15*dmats1[15][13] + coeff0_16*dmats1[16][13] + coeff0_17*dmats1[17][13] + coeff0_18*dmats1[18][13] + coeff0_19*dmats1[19][13] + coeff0_20*dmats1[20][13] + coeff0_21*dmats1[21][13] + coeff0_22*dmats1[22][13] + coeff0_23*dmats1[23][13] + coeff0_24*dmats1[24][13] + coeff0_25*dmats1[25][13] + coeff0_26*dmats1[26][13] + coeff0_27*dmats1[27][13] + coeff0_28*dmats1[28][13] + coeff0_29*dmats1[29][13] + coeff0_30*dmats1[30][13] + coeff0_31*dmats1[31][13] + coeff0_32*dmats1[32][13] + coeff0_33*dmats1[33][13] + coeff0_34*dmats1[34][13];
 
2039
          new_coeff0_14 = coeff0_0*dmats1[0][14] + coeff0_1*dmats1[1][14] + coeff0_2*dmats1[2][14] + coeff0_3*dmats1[3][14] + coeff0_4*dmats1[4][14] + coeff0_5*dmats1[5][14] + coeff0_6*dmats1[6][14] + coeff0_7*dmats1[7][14] + coeff0_8*dmats1[8][14] + coeff0_9*dmats1[9][14] + coeff0_10*dmats1[10][14] + coeff0_11*dmats1[11][14] + coeff0_12*dmats1[12][14] + coeff0_13*dmats1[13][14] + coeff0_14*dmats1[14][14] + coeff0_15*dmats1[15][14] + coeff0_16*dmats1[16][14] + coeff0_17*dmats1[17][14] + coeff0_18*dmats1[18][14] + coeff0_19*dmats1[19][14] + coeff0_20*dmats1[20][14] + coeff0_21*dmats1[21][14] + coeff0_22*dmats1[22][14] + coeff0_23*dmats1[23][14] + coeff0_24*dmats1[24][14] + coeff0_25*dmats1[25][14] + coeff0_26*dmats1[26][14] + coeff0_27*dmats1[27][14] + coeff0_28*dmats1[28][14] + coeff0_29*dmats1[29][14] + coeff0_30*dmats1[30][14] + coeff0_31*dmats1[31][14] + coeff0_32*dmats1[32][14] + coeff0_33*dmats1[33][14] + coeff0_34*dmats1[34][14];
 
2040
          new_coeff0_15 = coeff0_0*dmats1[0][15] + coeff0_1*dmats1[1][15] + coeff0_2*dmats1[2][15] + coeff0_3*dmats1[3][15] + coeff0_4*dmats1[4][15] + coeff0_5*dmats1[5][15] + coeff0_6*dmats1[6][15] + coeff0_7*dmats1[7][15] + coeff0_8*dmats1[8][15] + coeff0_9*dmats1[9][15] + coeff0_10*dmats1[10][15] + coeff0_11*dmats1[11][15] + coeff0_12*dmats1[12][15] + coeff0_13*dmats1[13][15] + coeff0_14*dmats1[14][15] + coeff0_15*dmats1[15][15] + coeff0_16*dmats1[16][15] + coeff0_17*dmats1[17][15] + coeff0_18*dmats1[18][15] + coeff0_19*dmats1[19][15] + coeff0_20*dmats1[20][15] + coeff0_21*dmats1[21][15] + coeff0_22*dmats1[22][15] + coeff0_23*dmats1[23][15] + coeff0_24*dmats1[24][15] + coeff0_25*dmats1[25][15] + coeff0_26*dmats1[26][15] + coeff0_27*dmats1[27][15] + coeff0_28*dmats1[28][15] + coeff0_29*dmats1[29][15] + coeff0_30*dmats1[30][15] + coeff0_31*dmats1[31][15] + coeff0_32*dmats1[32][15] + coeff0_33*dmats1[33][15] + coeff0_34*dmats1[34][15];
 
2041
          new_coeff0_16 = coeff0_0*dmats1[0][16] + coeff0_1*dmats1[1][16] + coeff0_2*dmats1[2][16] + coeff0_3*dmats1[3][16] + coeff0_4*dmats1[4][16] + coeff0_5*dmats1[5][16] + coeff0_6*dmats1[6][16] + coeff0_7*dmats1[7][16] + coeff0_8*dmats1[8][16] + coeff0_9*dmats1[9][16] + coeff0_10*dmats1[10][16] + coeff0_11*dmats1[11][16] + coeff0_12*dmats1[12][16] + coeff0_13*dmats1[13][16] + coeff0_14*dmats1[14][16] + coeff0_15*dmats1[15][16] + coeff0_16*dmats1[16][16] + coeff0_17*dmats1[17][16] + coeff0_18*dmats1[18][16] + coeff0_19*dmats1[19][16] + coeff0_20*dmats1[20][16] + coeff0_21*dmats1[21][16] + coeff0_22*dmats1[22][16] + coeff0_23*dmats1[23][16] + coeff0_24*dmats1[24][16] + coeff0_25*dmats1[25][16] + coeff0_26*dmats1[26][16] + coeff0_27*dmats1[27][16] + coeff0_28*dmats1[28][16] + coeff0_29*dmats1[29][16] + coeff0_30*dmats1[30][16] + coeff0_31*dmats1[31][16] + coeff0_32*dmats1[32][16] + coeff0_33*dmats1[33][16] + coeff0_34*dmats1[34][16];
 
2042
          new_coeff0_17 = coeff0_0*dmats1[0][17] + coeff0_1*dmats1[1][17] + coeff0_2*dmats1[2][17] + coeff0_3*dmats1[3][17] + coeff0_4*dmats1[4][17] + coeff0_5*dmats1[5][17] + coeff0_6*dmats1[6][17] + coeff0_7*dmats1[7][17] + coeff0_8*dmats1[8][17] + coeff0_9*dmats1[9][17] + coeff0_10*dmats1[10][17] + coeff0_11*dmats1[11][17] + coeff0_12*dmats1[12][17] + coeff0_13*dmats1[13][17] + coeff0_14*dmats1[14][17] + coeff0_15*dmats1[15][17] + coeff0_16*dmats1[16][17] + coeff0_17*dmats1[17][17] + coeff0_18*dmats1[18][17] + coeff0_19*dmats1[19][17] + coeff0_20*dmats1[20][17] + coeff0_21*dmats1[21][17] + coeff0_22*dmats1[22][17] + coeff0_23*dmats1[23][17] + coeff0_24*dmats1[24][17] + coeff0_25*dmats1[25][17] + coeff0_26*dmats1[26][17] + coeff0_27*dmats1[27][17] + coeff0_28*dmats1[28][17] + coeff0_29*dmats1[29][17] + coeff0_30*dmats1[30][17] + coeff0_31*dmats1[31][17] + coeff0_32*dmats1[32][17] + coeff0_33*dmats1[33][17] + coeff0_34*dmats1[34][17];
 
2043
          new_coeff0_18 = coeff0_0*dmats1[0][18] + coeff0_1*dmats1[1][18] + coeff0_2*dmats1[2][18] + coeff0_3*dmats1[3][18] + coeff0_4*dmats1[4][18] + coeff0_5*dmats1[5][18] + coeff0_6*dmats1[6][18] + coeff0_7*dmats1[7][18] + coeff0_8*dmats1[8][18] + coeff0_9*dmats1[9][18] + coeff0_10*dmats1[10][18] + coeff0_11*dmats1[11][18] + coeff0_12*dmats1[12][18] + coeff0_13*dmats1[13][18] + coeff0_14*dmats1[14][18] + coeff0_15*dmats1[15][18] + coeff0_16*dmats1[16][18] + coeff0_17*dmats1[17][18] + coeff0_18*dmats1[18][18] + coeff0_19*dmats1[19][18] + coeff0_20*dmats1[20][18] + coeff0_21*dmats1[21][18] + coeff0_22*dmats1[22][18] + coeff0_23*dmats1[23][18] + coeff0_24*dmats1[24][18] + coeff0_25*dmats1[25][18] + coeff0_26*dmats1[26][18] + coeff0_27*dmats1[27][18] + coeff0_28*dmats1[28][18] + coeff0_29*dmats1[29][18] + coeff0_30*dmats1[30][18] + coeff0_31*dmats1[31][18] + coeff0_32*dmats1[32][18] + coeff0_33*dmats1[33][18] + coeff0_34*dmats1[34][18];
 
2044
          new_coeff0_19 = coeff0_0*dmats1[0][19] + coeff0_1*dmats1[1][19] + coeff0_2*dmats1[2][19] + coeff0_3*dmats1[3][19] + coeff0_4*dmats1[4][19] + coeff0_5*dmats1[5][19] + coeff0_6*dmats1[6][19] + coeff0_7*dmats1[7][19] + coeff0_8*dmats1[8][19] + coeff0_9*dmats1[9][19] + coeff0_10*dmats1[10][19] + coeff0_11*dmats1[11][19] + coeff0_12*dmats1[12][19] + coeff0_13*dmats1[13][19] + coeff0_14*dmats1[14][19] + coeff0_15*dmats1[15][19] + coeff0_16*dmats1[16][19] + coeff0_17*dmats1[17][19] + coeff0_18*dmats1[18][19] + coeff0_19*dmats1[19][19] + coeff0_20*dmats1[20][19] + coeff0_21*dmats1[21][19] + coeff0_22*dmats1[22][19] + coeff0_23*dmats1[23][19] + coeff0_24*dmats1[24][19] + coeff0_25*dmats1[25][19] + coeff0_26*dmats1[26][19] + coeff0_27*dmats1[27][19] + coeff0_28*dmats1[28][19] + coeff0_29*dmats1[29][19] + coeff0_30*dmats1[30][19] + coeff0_31*dmats1[31][19] + coeff0_32*dmats1[32][19] + coeff0_33*dmats1[33][19] + coeff0_34*dmats1[34][19];
 
2045
          new_coeff0_20 = coeff0_0*dmats1[0][20] + coeff0_1*dmats1[1][20] + coeff0_2*dmats1[2][20] + coeff0_3*dmats1[3][20] + coeff0_4*dmats1[4][20] + coeff0_5*dmats1[5][20] + coeff0_6*dmats1[6][20] + coeff0_7*dmats1[7][20] + coeff0_8*dmats1[8][20] + coeff0_9*dmats1[9][20] + coeff0_10*dmats1[10][20] + coeff0_11*dmats1[11][20] + coeff0_12*dmats1[12][20] + coeff0_13*dmats1[13][20] + coeff0_14*dmats1[14][20] + coeff0_15*dmats1[15][20] + coeff0_16*dmats1[16][20] + coeff0_17*dmats1[17][20] + coeff0_18*dmats1[18][20] + coeff0_19*dmats1[19][20] + coeff0_20*dmats1[20][20] + coeff0_21*dmats1[21][20] + coeff0_22*dmats1[22][20] + coeff0_23*dmats1[23][20] + coeff0_24*dmats1[24][20] + coeff0_25*dmats1[25][20] + coeff0_26*dmats1[26][20] + coeff0_27*dmats1[27][20] + coeff0_28*dmats1[28][20] + coeff0_29*dmats1[29][20] + coeff0_30*dmats1[30][20] + coeff0_31*dmats1[31][20] + coeff0_32*dmats1[32][20] + coeff0_33*dmats1[33][20] + coeff0_34*dmats1[34][20];
 
2046
          new_coeff0_21 = coeff0_0*dmats1[0][21] + coeff0_1*dmats1[1][21] + coeff0_2*dmats1[2][21] + coeff0_3*dmats1[3][21] + coeff0_4*dmats1[4][21] + coeff0_5*dmats1[5][21] + coeff0_6*dmats1[6][21] + coeff0_7*dmats1[7][21] + coeff0_8*dmats1[8][21] + coeff0_9*dmats1[9][21] + coeff0_10*dmats1[10][21] + coeff0_11*dmats1[11][21] + coeff0_12*dmats1[12][21] + coeff0_13*dmats1[13][21] + coeff0_14*dmats1[14][21] + coeff0_15*dmats1[15][21] + coeff0_16*dmats1[16][21] + coeff0_17*dmats1[17][21] + coeff0_18*dmats1[18][21] + coeff0_19*dmats1[19][21] + coeff0_20*dmats1[20][21] + coeff0_21*dmats1[21][21] + coeff0_22*dmats1[22][21] + coeff0_23*dmats1[23][21] + coeff0_24*dmats1[24][21] + coeff0_25*dmats1[25][21] + coeff0_26*dmats1[26][21] + coeff0_27*dmats1[27][21] + coeff0_28*dmats1[28][21] + coeff0_29*dmats1[29][21] + coeff0_30*dmats1[30][21] + coeff0_31*dmats1[31][21] + coeff0_32*dmats1[32][21] + coeff0_33*dmats1[33][21] + coeff0_34*dmats1[34][21];
 
2047
          new_coeff0_22 = coeff0_0*dmats1[0][22] + coeff0_1*dmats1[1][22] + coeff0_2*dmats1[2][22] + coeff0_3*dmats1[3][22] + coeff0_4*dmats1[4][22] + coeff0_5*dmats1[5][22] + coeff0_6*dmats1[6][22] + coeff0_7*dmats1[7][22] + coeff0_8*dmats1[8][22] + coeff0_9*dmats1[9][22] + coeff0_10*dmats1[10][22] + coeff0_11*dmats1[11][22] + coeff0_12*dmats1[12][22] + coeff0_13*dmats1[13][22] + coeff0_14*dmats1[14][22] + coeff0_15*dmats1[15][22] + coeff0_16*dmats1[16][22] + coeff0_17*dmats1[17][22] + coeff0_18*dmats1[18][22] + coeff0_19*dmats1[19][22] + coeff0_20*dmats1[20][22] + coeff0_21*dmats1[21][22] + coeff0_22*dmats1[22][22] + coeff0_23*dmats1[23][22] + coeff0_24*dmats1[24][22] + coeff0_25*dmats1[25][22] + coeff0_26*dmats1[26][22] + coeff0_27*dmats1[27][22] + coeff0_28*dmats1[28][22] + coeff0_29*dmats1[29][22] + coeff0_30*dmats1[30][22] + coeff0_31*dmats1[31][22] + coeff0_32*dmats1[32][22] + coeff0_33*dmats1[33][22] + coeff0_34*dmats1[34][22];
 
2048
          new_coeff0_23 = coeff0_0*dmats1[0][23] + coeff0_1*dmats1[1][23] + coeff0_2*dmats1[2][23] + coeff0_3*dmats1[3][23] + coeff0_4*dmats1[4][23] + coeff0_5*dmats1[5][23] + coeff0_6*dmats1[6][23] + coeff0_7*dmats1[7][23] + coeff0_8*dmats1[8][23] + coeff0_9*dmats1[9][23] + coeff0_10*dmats1[10][23] + coeff0_11*dmats1[11][23] + coeff0_12*dmats1[12][23] + coeff0_13*dmats1[13][23] + coeff0_14*dmats1[14][23] + coeff0_15*dmats1[15][23] + coeff0_16*dmats1[16][23] + coeff0_17*dmats1[17][23] + coeff0_18*dmats1[18][23] + coeff0_19*dmats1[19][23] + coeff0_20*dmats1[20][23] + coeff0_21*dmats1[21][23] + coeff0_22*dmats1[22][23] + coeff0_23*dmats1[23][23] + coeff0_24*dmats1[24][23] + coeff0_25*dmats1[25][23] + coeff0_26*dmats1[26][23] + coeff0_27*dmats1[27][23] + coeff0_28*dmats1[28][23] + coeff0_29*dmats1[29][23] + coeff0_30*dmats1[30][23] + coeff0_31*dmats1[31][23] + coeff0_32*dmats1[32][23] + coeff0_33*dmats1[33][23] + coeff0_34*dmats1[34][23];
 
2049
          new_coeff0_24 = coeff0_0*dmats1[0][24] + coeff0_1*dmats1[1][24] + coeff0_2*dmats1[2][24] + coeff0_3*dmats1[3][24] + coeff0_4*dmats1[4][24] + coeff0_5*dmats1[5][24] + coeff0_6*dmats1[6][24] + coeff0_7*dmats1[7][24] + coeff0_8*dmats1[8][24] + coeff0_9*dmats1[9][24] + coeff0_10*dmats1[10][24] + coeff0_11*dmats1[11][24] + coeff0_12*dmats1[12][24] + coeff0_13*dmats1[13][24] + coeff0_14*dmats1[14][24] + coeff0_15*dmats1[15][24] + coeff0_16*dmats1[16][24] + coeff0_17*dmats1[17][24] + coeff0_18*dmats1[18][24] + coeff0_19*dmats1[19][24] + coeff0_20*dmats1[20][24] + coeff0_21*dmats1[21][24] + coeff0_22*dmats1[22][24] + coeff0_23*dmats1[23][24] + coeff0_24*dmats1[24][24] + coeff0_25*dmats1[25][24] + coeff0_26*dmats1[26][24] + coeff0_27*dmats1[27][24] + coeff0_28*dmats1[28][24] + coeff0_29*dmats1[29][24] + coeff0_30*dmats1[30][24] + coeff0_31*dmats1[31][24] + coeff0_32*dmats1[32][24] + coeff0_33*dmats1[33][24] + coeff0_34*dmats1[34][24];
 
2050
          new_coeff0_25 = coeff0_0*dmats1[0][25] + coeff0_1*dmats1[1][25] + coeff0_2*dmats1[2][25] + coeff0_3*dmats1[3][25] + coeff0_4*dmats1[4][25] + coeff0_5*dmats1[5][25] + coeff0_6*dmats1[6][25] + coeff0_7*dmats1[7][25] + coeff0_8*dmats1[8][25] + coeff0_9*dmats1[9][25] + coeff0_10*dmats1[10][25] + coeff0_11*dmats1[11][25] + coeff0_12*dmats1[12][25] + coeff0_13*dmats1[13][25] + coeff0_14*dmats1[14][25] + coeff0_15*dmats1[15][25] + coeff0_16*dmats1[16][25] + coeff0_17*dmats1[17][25] + coeff0_18*dmats1[18][25] + coeff0_19*dmats1[19][25] + coeff0_20*dmats1[20][25] + coeff0_21*dmats1[21][25] + coeff0_22*dmats1[22][25] + coeff0_23*dmats1[23][25] + coeff0_24*dmats1[24][25] + coeff0_25*dmats1[25][25] + coeff0_26*dmats1[26][25] + coeff0_27*dmats1[27][25] + coeff0_28*dmats1[28][25] + coeff0_29*dmats1[29][25] + coeff0_30*dmats1[30][25] + coeff0_31*dmats1[31][25] + coeff0_32*dmats1[32][25] + coeff0_33*dmats1[33][25] + coeff0_34*dmats1[34][25];
 
2051
          new_coeff0_26 = coeff0_0*dmats1[0][26] + coeff0_1*dmats1[1][26] + coeff0_2*dmats1[2][26] + coeff0_3*dmats1[3][26] + coeff0_4*dmats1[4][26] + coeff0_5*dmats1[5][26] + coeff0_6*dmats1[6][26] + coeff0_7*dmats1[7][26] + coeff0_8*dmats1[8][26] + coeff0_9*dmats1[9][26] + coeff0_10*dmats1[10][26] + coeff0_11*dmats1[11][26] + coeff0_12*dmats1[12][26] + coeff0_13*dmats1[13][26] + coeff0_14*dmats1[14][26] + coeff0_15*dmats1[15][26] + coeff0_16*dmats1[16][26] + coeff0_17*dmats1[17][26] + coeff0_18*dmats1[18][26] + coeff0_19*dmats1[19][26] + coeff0_20*dmats1[20][26] + coeff0_21*dmats1[21][26] + coeff0_22*dmats1[22][26] + coeff0_23*dmats1[23][26] + coeff0_24*dmats1[24][26] + coeff0_25*dmats1[25][26] + coeff0_26*dmats1[26][26] + coeff0_27*dmats1[27][26] + coeff0_28*dmats1[28][26] + coeff0_29*dmats1[29][26] + coeff0_30*dmats1[30][26] + coeff0_31*dmats1[31][26] + coeff0_32*dmats1[32][26] + coeff0_33*dmats1[33][26] + coeff0_34*dmats1[34][26];
 
2052
          new_coeff0_27 = coeff0_0*dmats1[0][27] + coeff0_1*dmats1[1][27] + coeff0_2*dmats1[2][27] + coeff0_3*dmats1[3][27] + coeff0_4*dmats1[4][27] + coeff0_5*dmats1[5][27] + coeff0_6*dmats1[6][27] + coeff0_7*dmats1[7][27] + coeff0_8*dmats1[8][27] + coeff0_9*dmats1[9][27] + coeff0_10*dmats1[10][27] + coeff0_11*dmats1[11][27] + coeff0_12*dmats1[12][27] + coeff0_13*dmats1[13][27] + coeff0_14*dmats1[14][27] + coeff0_15*dmats1[15][27] + coeff0_16*dmats1[16][27] + coeff0_17*dmats1[17][27] + coeff0_18*dmats1[18][27] + coeff0_19*dmats1[19][27] + coeff0_20*dmats1[20][27] + coeff0_21*dmats1[21][27] + coeff0_22*dmats1[22][27] + coeff0_23*dmats1[23][27] + coeff0_24*dmats1[24][27] + coeff0_25*dmats1[25][27] + coeff0_26*dmats1[26][27] + coeff0_27*dmats1[27][27] + coeff0_28*dmats1[28][27] + coeff0_29*dmats1[29][27] + coeff0_30*dmats1[30][27] + coeff0_31*dmats1[31][27] + coeff0_32*dmats1[32][27] + coeff0_33*dmats1[33][27] + coeff0_34*dmats1[34][27];
 
2053
          new_coeff0_28 = coeff0_0*dmats1[0][28] + coeff0_1*dmats1[1][28] + coeff0_2*dmats1[2][28] + coeff0_3*dmats1[3][28] + coeff0_4*dmats1[4][28] + coeff0_5*dmats1[5][28] + coeff0_6*dmats1[6][28] + coeff0_7*dmats1[7][28] + coeff0_8*dmats1[8][28] + coeff0_9*dmats1[9][28] + coeff0_10*dmats1[10][28] + coeff0_11*dmats1[11][28] + coeff0_12*dmats1[12][28] + coeff0_13*dmats1[13][28] + coeff0_14*dmats1[14][28] + coeff0_15*dmats1[15][28] + coeff0_16*dmats1[16][28] + coeff0_17*dmats1[17][28] + coeff0_18*dmats1[18][28] + coeff0_19*dmats1[19][28] + coeff0_20*dmats1[20][28] + coeff0_21*dmats1[21][28] + coeff0_22*dmats1[22][28] + coeff0_23*dmats1[23][28] + coeff0_24*dmats1[24][28] + coeff0_25*dmats1[25][28] + coeff0_26*dmats1[26][28] + coeff0_27*dmats1[27][28] + coeff0_28*dmats1[28][28] + coeff0_29*dmats1[29][28] + coeff0_30*dmats1[30][28] + coeff0_31*dmats1[31][28] + coeff0_32*dmats1[32][28] + coeff0_33*dmats1[33][28] + coeff0_34*dmats1[34][28];
 
2054
          new_coeff0_29 = coeff0_0*dmats1[0][29] + coeff0_1*dmats1[1][29] + coeff0_2*dmats1[2][29] + coeff0_3*dmats1[3][29] + coeff0_4*dmats1[4][29] + coeff0_5*dmats1[5][29] + coeff0_6*dmats1[6][29] + coeff0_7*dmats1[7][29] + coeff0_8*dmats1[8][29] + coeff0_9*dmats1[9][29] + coeff0_10*dmats1[10][29] + coeff0_11*dmats1[11][29] + coeff0_12*dmats1[12][29] + coeff0_13*dmats1[13][29] + coeff0_14*dmats1[14][29] + coeff0_15*dmats1[15][29] + coeff0_16*dmats1[16][29] + coeff0_17*dmats1[17][29] + coeff0_18*dmats1[18][29] + coeff0_19*dmats1[19][29] + coeff0_20*dmats1[20][29] + coeff0_21*dmats1[21][29] + coeff0_22*dmats1[22][29] + coeff0_23*dmats1[23][29] + coeff0_24*dmats1[24][29] + coeff0_25*dmats1[25][29] + coeff0_26*dmats1[26][29] + coeff0_27*dmats1[27][29] + coeff0_28*dmats1[28][29] + coeff0_29*dmats1[29][29] + coeff0_30*dmats1[30][29] + coeff0_31*dmats1[31][29] + coeff0_32*dmats1[32][29] + coeff0_33*dmats1[33][29] + coeff0_34*dmats1[34][29];
 
2055
          new_coeff0_30 = coeff0_0*dmats1[0][30] + coeff0_1*dmats1[1][30] + coeff0_2*dmats1[2][30] + coeff0_3*dmats1[3][30] + coeff0_4*dmats1[4][30] + coeff0_5*dmats1[5][30] + coeff0_6*dmats1[6][30] + coeff0_7*dmats1[7][30] + coeff0_8*dmats1[8][30] + coeff0_9*dmats1[9][30] + coeff0_10*dmats1[10][30] + coeff0_11*dmats1[11][30] + coeff0_12*dmats1[12][30] + coeff0_13*dmats1[13][30] + coeff0_14*dmats1[14][30] + coeff0_15*dmats1[15][30] + coeff0_16*dmats1[16][30] + coeff0_17*dmats1[17][30] + coeff0_18*dmats1[18][30] + coeff0_19*dmats1[19][30] + coeff0_20*dmats1[20][30] + coeff0_21*dmats1[21][30] + coeff0_22*dmats1[22][30] + coeff0_23*dmats1[23][30] + coeff0_24*dmats1[24][30] + coeff0_25*dmats1[25][30] + coeff0_26*dmats1[26][30] + coeff0_27*dmats1[27][30] + coeff0_28*dmats1[28][30] + coeff0_29*dmats1[29][30] + coeff0_30*dmats1[30][30] + coeff0_31*dmats1[31][30] + coeff0_32*dmats1[32][30] + coeff0_33*dmats1[33][30] + coeff0_34*dmats1[34][30];
 
2056
          new_coeff0_31 = coeff0_0*dmats1[0][31] + coeff0_1*dmats1[1][31] + coeff0_2*dmats1[2][31] + coeff0_3*dmats1[3][31] + coeff0_4*dmats1[4][31] + coeff0_5*dmats1[5][31] + coeff0_6*dmats1[6][31] + coeff0_7*dmats1[7][31] + coeff0_8*dmats1[8][31] + coeff0_9*dmats1[9][31] + coeff0_10*dmats1[10][31] + coeff0_11*dmats1[11][31] + coeff0_12*dmats1[12][31] + coeff0_13*dmats1[13][31] + coeff0_14*dmats1[14][31] + coeff0_15*dmats1[15][31] + coeff0_16*dmats1[16][31] + coeff0_17*dmats1[17][31] + coeff0_18*dmats1[18][31] + coeff0_19*dmats1[19][31] + coeff0_20*dmats1[20][31] + coeff0_21*dmats1[21][31] + coeff0_22*dmats1[22][31] + coeff0_23*dmats1[23][31] + coeff0_24*dmats1[24][31] + coeff0_25*dmats1[25][31] + coeff0_26*dmats1[26][31] + coeff0_27*dmats1[27][31] + coeff0_28*dmats1[28][31] + coeff0_29*dmats1[29][31] + coeff0_30*dmats1[30][31] + coeff0_31*dmats1[31][31] + coeff0_32*dmats1[32][31] + coeff0_33*dmats1[33][31] + coeff0_34*dmats1[34][31];
 
2057
          new_coeff0_32 = coeff0_0*dmats1[0][32] + coeff0_1*dmats1[1][32] + coeff0_2*dmats1[2][32] + coeff0_3*dmats1[3][32] + coeff0_4*dmats1[4][32] + coeff0_5*dmats1[5][32] + coeff0_6*dmats1[6][32] + coeff0_7*dmats1[7][32] + coeff0_8*dmats1[8][32] + coeff0_9*dmats1[9][32] + coeff0_10*dmats1[10][32] + coeff0_11*dmats1[11][32] + coeff0_12*dmats1[12][32] + coeff0_13*dmats1[13][32] + coeff0_14*dmats1[14][32] + coeff0_15*dmats1[15][32] + coeff0_16*dmats1[16][32] + coeff0_17*dmats1[17][32] + coeff0_18*dmats1[18][32] + coeff0_19*dmats1[19][32] + coeff0_20*dmats1[20][32] + coeff0_21*dmats1[21][32] + coeff0_22*dmats1[22][32] + coeff0_23*dmats1[23][32] + coeff0_24*dmats1[24][32] + coeff0_25*dmats1[25][32] + coeff0_26*dmats1[26][32] + coeff0_27*dmats1[27][32] + coeff0_28*dmats1[28][32] + coeff0_29*dmats1[29][32] + coeff0_30*dmats1[30][32] + coeff0_31*dmats1[31][32] + coeff0_32*dmats1[32][32] + coeff0_33*dmats1[33][32] + coeff0_34*dmats1[34][32];
 
2058
          new_coeff0_33 = coeff0_0*dmats1[0][33] + coeff0_1*dmats1[1][33] + coeff0_2*dmats1[2][33] + coeff0_3*dmats1[3][33] + coeff0_4*dmats1[4][33] + coeff0_5*dmats1[5][33] + coeff0_6*dmats1[6][33] + coeff0_7*dmats1[7][33] + coeff0_8*dmats1[8][33] + coeff0_9*dmats1[9][33] + coeff0_10*dmats1[10][33] + coeff0_11*dmats1[11][33] + coeff0_12*dmats1[12][33] + coeff0_13*dmats1[13][33] + coeff0_14*dmats1[14][33] + coeff0_15*dmats1[15][33] + coeff0_16*dmats1[16][33] + coeff0_17*dmats1[17][33] + coeff0_18*dmats1[18][33] + coeff0_19*dmats1[19][33] + coeff0_20*dmats1[20][33] + coeff0_21*dmats1[21][33] + coeff0_22*dmats1[22][33] + coeff0_23*dmats1[23][33] + coeff0_24*dmats1[24][33] + coeff0_25*dmats1[25][33] + coeff0_26*dmats1[26][33] + coeff0_27*dmats1[27][33] + coeff0_28*dmats1[28][33] + coeff0_29*dmats1[29][33] + coeff0_30*dmats1[30][33] + coeff0_31*dmats1[31][33] + coeff0_32*dmats1[32][33] + coeff0_33*dmats1[33][33] + coeff0_34*dmats1[34][33];
 
2059
          new_coeff0_34 = coeff0_0*dmats1[0][34] + coeff0_1*dmats1[1][34] + coeff0_2*dmats1[2][34] + coeff0_3*dmats1[3][34] + coeff0_4*dmats1[4][34] + coeff0_5*dmats1[5][34] + coeff0_6*dmats1[6][34] + coeff0_7*dmats1[7][34] + coeff0_8*dmats1[8][34] + coeff0_9*dmats1[9][34] + coeff0_10*dmats1[10][34] + coeff0_11*dmats1[11][34] + coeff0_12*dmats1[12][34] + coeff0_13*dmats1[13][34] + coeff0_14*dmats1[14][34] + coeff0_15*dmats1[15][34] + coeff0_16*dmats1[16][34] + coeff0_17*dmats1[17][34] + coeff0_18*dmats1[18][34] + coeff0_19*dmats1[19][34] + coeff0_20*dmats1[20][34] + coeff0_21*dmats1[21][34] + coeff0_22*dmats1[22][34] + coeff0_23*dmats1[23][34] + coeff0_24*dmats1[24][34] + coeff0_25*dmats1[25][34] + coeff0_26*dmats1[26][34] + coeff0_27*dmats1[27][34] + coeff0_28*dmats1[28][34] + coeff0_29*dmats1[29][34] + coeff0_30*dmats1[30][34] + coeff0_31*dmats1[31][34] + coeff0_32*dmats1[32][34] + coeff0_33*dmats1[33][34] + coeff0_34*dmats1[34][34];
 
2060
        }
 
2061
        if(combinations[deriv_num][j] == 2)
 
2062
        {
 
2063
          new_coeff0_0 = coeff0_0*dmats2[0][0] + coeff0_1*dmats2[1][0] + coeff0_2*dmats2[2][0] + coeff0_3*dmats2[3][0] + coeff0_4*dmats2[4][0] + coeff0_5*dmats2[5][0] + coeff0_6*dmats2[6][0] + coeff0_7*dmats2[7][0] + coeff0_8*dmats2[8][0] + coeff0_9*dmats2[9][0] + coeff0_10*dmats2[10][0] + coeff0_11*dmats2[11][0] + coeff0_12*dmats2[12][0] + coeff0_13*dmats2[13][0] + coeff0_14*dmats2[14][0] + coeff0_15*dmats2[15][0] + coeff0_16*dmats2[16][0] + coeff0_17*dmats2[17][0] + coeff0_18*dmats2[18][0] + coeff0_19*dmats2[19][0] + coeff0_20*dmats2[20][0] + coeff0_21*dmats2[21][0] + coeff0_22*dmats2[22][0] + coeff0_23*dmats2[23][0] + coeff0_24*dmats2[24][0] + coeff0_25*dmats2[25][0] + coeff0_26*dmats2[26][0] + coeff0_27*dmats2[27][0] + coeff0_28*dmats2[28][0] + coeff0_29*dmats2[29][0] + coeff0_30*dmats2[30][0] + coeff0_31*dmats2[31][0] + coeff0_32*dmats2[32][0] + coeff0_33*dmats2[33][0] + coeff0_34*dmats2[34][0];
 
2064
          new_coeff0_1 = coeff0_0*dmats2[0][1] + coeff0_1*dmats2[1][1] + coeff0_2*dmats2[2][1] + coeff0_3*dmats2[3][1] + coeff0_4*dmats2[4][1] + coeff0_5*dmats2[5][1] + coeff0_6*dmats2[6][1] + coeff0_7*dmats2[7][1] + coeff0_8*dmats2[8][1] + coeff0_9*dmats2[9][1] + coeff0_10*dmats2[10][1] + coeff0_11*dmats2[11][1] + coeff0_12*dmats2[12][1] + coeff0_13*dmats2[13][1] + coeff0_14*dmats2[14][1] + coeff0_15*dmats2[15][1] + coeff0_16*dmats2[16][1] + coeff0_17*dmats2[17][1] + coeff0_18*dmats2[18][1] + coeff0_19*dmats2[19][1] + coeff0_20*dmats2[20][1] + coeff0_21*dmats2[21][1] + coeff0_22*dmats2[22][1] + coeff0_23*dmats2[23][1] + coeff0_24*dmats2[24][1] + coeff0_25*dmats2[25][1] + coeff0_26*dmats2[26][1] + coeff0_27*dmats2[27][1] + coeff0_28*dmats2[28][1] + coeff0_29*dmats2[29][1] + coeff0_30*dmats2[30][1] + coeff0_31*dmats2[31][1] + coeff0_32*dmats2[32][1] + coeff0_33*dmats2[33][1] + coeff0_34*dmats2[34][1];
 
2065
          new_coeff0_2 = coeff0_0*dmats2[0][2] + coeff0_1*dmats2[1][2] + coeff0_2*dmats2[2][2] + coeff0_3*dmats2[3][2] + coeff0_4*dmats2[4][2] + coeff0_5*dmats2[5][2] + coeff0_6*dmats2[6][2] + coeff0_7*dmats2[7][2] + coeff0_8*dmats2[8][2] + coeff0_9*dmats2[9][2] + coeff0_10*dmats2[10][2] + coeff0_11*dmats2[11][2] + coeff0_12*dmats2[12][2] + coeff0_13*dmats2[13][2] + coeff0_14*dmats2[14][2] + coeff0_15*dmats2[15][2] + coeff0_16*dmats2[16][2] + coeff0_17*dmats2[17][2] + coeff0_18*dmats2[18][2] + coeff0_19*dmats2[19][2] + coeff0_20*dmats2[20][2] + coeff0_21*dmats2[21][2] + coeff0_22*dmats2[22][2] + coeff0_23*dmats2[23][2] + coeff0_24*dmats2[24][2] + coeff0_25*dmats2[25][2] + coeff0_26*dmats2[26][2] + coeff0_27*dmats2[27][2] + coeff0_28*dmats2[28][2] + coeff0_29*dmats2[29][2] + coeff0_30*dmats2[30][2] + coeff0_31*dmats2[31][2] + coeff0_32*dmats2[32][2] + coeff0_33*dmats2[33][2] + coeff0_34*dmats2[34][2];
 
2066
          new_coeff0_3 = coeff0_0*dmats2[0][3] + coeff0_1*dmats2[1][3] + coeff0_2*dmats2[2][3] + coeff0_3*dmats2[3][3] + coeff0_4*dmats2[4][3] + coeff0_5*dmats2[5][3] + coeff0_6*dmats2[6][3] + coeff0_7*dmats2[7][3] + coeff0_8*dmats2[8][3] + coeff0_9*dmats2[9][3] + coeff0_10*dmats2[10][3] + coeff0_11*dmats2[11][3] + coeff0_12*dmats2[12][3] + coeff0_13*dmats2[13][3] + coeff0_14*dmats2[14][3] + coeff0_15*dmats2[15][3] + coeff0_16*dmats2[16][3] + coeff0_17*dmats2[17][3] + coeff0_18*dmats2[18][3] + coeff0_19*dmats2[19][3] + coeff0_20*dmats2[20][3] + coeff0_21*dmats2[21][3] + coeff0_22*dmats2[22][3] + coeff0_23*dmats2[23][3] + coeff0_24*dmats2[24][3] + coeff0_25*dmats2[25][3] + coeff0_26*dmats2[26][3] + coeff0_27*dmats2[27][3] + coeff0_28*dmats2[28][3] + coeff0_29*dmats2[29][3] + coeff0_30*dmats2[30][3] + coeff0_31*dmats2[31][3] + coeff0_32*dmats2[32][3] + coeff0_33*dmats2[33][3] + coeff0_34*dmats2[34][3];
 
2067
          new_coeff0_4 = coeff0_0*dmats2[0][4] + coeff0_1*dmats2[1][4] + coeff0_2*dmats2[2][4] + coeff0_3*dmats2[3][4] + coeff0_4*dmats2[4][4] + coeff0_5*dmats2[5][4] + coeff0_6*dmats2[6][4] + coeff0_7*dmats2[7][4] + coeff0_8*dmats2[8][4] + coeff0_9*dmats2[9][4] + coeff0_10*dmats2[10][4] + coeff0_11*dmats2[11][4] + coeff0_12*dmats2[12][4] + coeff0_13*dmats2[13][4] + coeff0_14*dmats2[14][4] + coeff0_15*dmats2[15][4] + coeff0_16*dmats2[16][4] + coeff0_17*dmats2[17][4] + coeff0_18*dmats2[18][4] + coeff0_19*dmats2[19][4] + coeff0_20*dmats2[20][4] + coeff0_21*dmats2[21][4] + coeff0_22*dmats2[22][4] + coeff0_23*dmats2[23][4] + coeff0_24*dmats2[24][4] + coeff0_25*dmats2[25][4] + coeff0_26*dmats2[26][4] + coeff0_27*dmats2[27][4] + coeff0_28*dmats2[28][4] + coeff0_29*dmats2[29][4] + coeff0_30*dmats2[30][4] + coeff0_31*dmats2[31][4] + coeff0_32*dmats2[32][4] + coeff0_33*dmats2[33][4] + coeff0_34*dmats2[34][4];
 
2068
          new_coeff0_5 = coeff0_0*dmats2[0][5] + coeff0_1*dmats2[1][5] + coeff0_2*dmats2[2][5] + coeff0_3*dmats2[3][5] + coeff0_4*dmats2[4][5] + coeff0_5*dmats2[5][5] + coeff0_6*dmats2[6][5] + coeff0_7*dmats2[7][5] + coeff0_8*dmats2[8][5] + coeff0_9*dmats2[9][5] + coeff0_10*dmats2[10][5] + coeff0_11*dmats2[11][5] + coeff0_12*dmats2[12][5] + coeff0_13*dmats2[13][5] + coeff0_14*dmats2[14][5] + coeff0_15*dmats2[15][5] + coeff0_16*dmats2[16][5] + coeff0_17*dmats2[17][5] + coeff0_18*dmats2[18][5] + coeff0_19*dmats2[19][5] + coeff0_20*dmats2[20][5] + coeff0_21*dmats2[21][5] + coeff0_22*dmats2[22][5] + coeff0_23*dmats2[23][5] + coeff0_24*dmats2[24][5] + coeff0_25*dmats2[25][5] + coeff0_26*dmats2[26][5] + coeff0_27*dmats2[27][5] + coeff0_28*dmats2[28][5] + coeff0_29*dmats2[29][5] + coeff0_30*dmats2[30][5] + coeff0_31*dmats2[31][5] + coeff0_32*dmats2[32][5] + coeff0_33*dmats2[33][5] + coeff0_34*dmats2[34][5];
 
2069
          new_coeff0_6 = coeff0_0*dmats2[0][6] + coeff0_1*dmats2[1][6] + coeff0_2*dmats2[2][6] + coeff0_3*dmats2[3][6] + coeff0_4*dmats2[4][6] + coeff0_5*dmats2[5][6] + coeff0_6*dmats2[6][6] + coeff0_7*dmats2[7][6] + coeff0_8*dmats2[8][6] + coeff0_9*dmats2[9][6] + coeff0_10*dmats2[10][6] + coeff0_11*dmats2[11][6] + coeff0_12*dmats2[12][6] + coeff0_13*dmats2[13][6] + coeff0_14*dmats2[14][6] + coeff0_15*dmats2[15][6] + coeff0_16*dmats2[16][6] + coeff0_17*dmats2[17][6] + coeff0_18*dmats2[18][6] + coeff0_19*dmats2[19][6] + coeff0_20*dmats2[20][6] + coeff0_21*dmats2[21][6] + coeff0_22*dmats2[22][6] + coeff0_23*dmats2[23][6] + coeff0_24*dmats2[24][6] + coeff0_25*dmats2[25][6] + coeff0_26*dmats2[26][6] + coeff0_27*dmats2[27][6] + coeff0_28*dmats2[28][6] + coeff0_29*dmats2[29][6] + coeff0_30*dmats2[30][6] + coeff0_31*dmats2[31][6] + coeff0_32*dmats2[32][6] + coeff0_33*dmats2[33][6] + coeff0_34*dmats2[34][6];
 
2070
          new_coeff0_7 = coeff0_0*dmats2[0][7] + coeff0_1*dmats2[1][7] + coeff0_2*dmats2[2][7] + coeff0_3*dmats2[3][7] + coeff0_4*dmats2[4][7] + coeff0_5*dmats2[5][7] + coeff0_6*dmats2[6][7] + coeff0_7*dmats2[7][7] + coeff0_8*dmats2[8][7] + coeff0_9*dmats2[9][7] + coeff0_10*dmats2[10][7] + coeff0_11*dmats2[11][7] + coeff0_12*dmats2[12][7] + coeff0_13*dmats2[13][7] + coeff0_14*dmats2[14][7] + coeff0_15*dmats2[15][7] + coeff0_16*dmats2[16][7] + coeff0_17*dmats2[17][7] + coeff0_18*dmats2[18][7] + coeff0_19*dmats2[19][7] + coeff0_20*dmats2[20][7] + coeff0_21*dmats2[21][7] + coeff0_22*dmats2[22][7] + coeff0_23*dmats2[23][7] + coeff0_24*dmats2[24][7] + coeff0_25*dmats2[25][7] + coeff0_26*dmats2[26][7] + coeff0_27*dmats2[27][7] + coeff0_28*dmats2[28][7] + coeff0_29*dmats2[29][7] + coeff0_30*dmats2[30][7] + coeff0_31*dmats2[31][7] + coeff0_32*dmats2[32][7] + coeff0_33*dmats2[33][7] + coeff0_34*dmats2[34][7];
 
2071
          new_coeff0_8 = coeff0_0*dmats2[0][8] + coeff0_1*dmats2[1][8] + coeff0_2*dmats2[2][8] + coeff0_3*dmats2[3][8] + coeff0_4*dmats2[4][8] + coeff0_5*dmats2[5][8] + coeff0_6*dmats2[6][8] + coeff0_7*dmats2[7][8] + coeff0_8*dmats2[8][8] + coeff0_9*dmats2[9][8] + coeff0_10*dmats2[10][8] + coeff0_11*dmats2[11][8] + coeff0_12*dmats2[12][8] + coeff0_13*dmats2[13][8] + coeff0_14*dmats2[14][8] + coeff0_15*dmats2[15][8] + coeff0_16*dmats2[16][8] + coeff0_17*dmats2[17][8] + coeff0_18*dmats2[18][8] + coeff0_19*dmats2[19][8] + coeff0_20*dmats2[20][8] + coeff0_21*dmats2[21][8] + coeff0_22*dmats2[22][8] + coeff0_23*dmats2[23][8] + coeff0_24*dmats2[24][8] + coeff0_25*dmats2[25][8] + coeff0_26*dmats2[26][8] + coeff0_27*dmats2[27][8] + coeff0_28*dmats2[28][8] + coeff0_29*dmats2[29][8] + coeff0_30*dmats2[30][8] + coeff0_31*dmats2[31][8] + coeff0_32*dmats2[32][8] + coeff0_33*dmats2[33][8] + coeff0_34*dmats2[34][8];
 
2072
          new_coeff0_9 = coeff0_0*dmats2[0][9] + coeff0_1*dmats2[1][9] + coeff0_2*dmats2[2][9] + coeff0_3*dmats2[3][9] + coeff0_4*dmats2[4][9] + coeff0_5*dmats2[5][9] + coeff0_6*dmats2[6][9] + coeff0_7*dmats2[7][9] + coeff0_8*dmats2[8][9] + coeff0_9*dmats2[9][9] + coeff0_10*dmats2[10][9] + coeff0_11*dmats2[11][9] + coeff0_12*dmats2[12][9] + coeff0_13*dmats2[13][9] + coeff0_14*dmats2[14][9] + coeff0_15*dmats2[15][9] + coeff0_16*dmats2[16][9] + coeff0_17*dmats2[17][9] + coeff0_18*dmats2[18][9] + coeff0_19*dmats2[19][9] + coeff0_20*dmats2[20][9] + coeff0_21*dmats2[21][9] + coeff0_22*dmats2[22][9] + coeff0_23*dmats2[23][9] + coeff0_24*dmats2[24][9] + coeff0_25*dmats2[25][9] + coeff0_26*dmats2[26][9] + coeff0_27*dmats2[27][9] + coeff0_28*dmats2[28][9] + coeff0_29*dmats2[29][9] + coeff0_30*dmats2[30][9] + coeff0_31*dmats2[31][9] + coeff0_32*dmats2[32][9] + coeff0_33*dmats2[33][9] + coeff0_34*dmats2[34][9];
 
2073
          new_coeff0_10 = coeff0_0*dmats2[0][10] + coeff0_1*dmats2[1][10] + coeff0_2*dmats2[2][10] + coeff0_3*dmats2[3][10] + coeff0_4*dmats2[4][10] + coeff0_5*dmats2[5][10] + coeff0_6*dmats2[6][10] + coeff0_7*dmats2[7][10] + coeff0_8*dmats2[8][10] + coeff0_9*dmats2[9][10] + coeff0_10*dmats2[10][10] + coeff0_11*dmats2[11][10] + coeff0_12*dmats2[12][10] + coeff0_13*dmats2[13][10] + coeff0_14*dmats2[14][10] + coeff0_15*dmats2[15][10] + coeff0_16*dmats2[16][10] + coeff0_17*dmats2[17][10] + coeff0_18*dmats2[18][10] + coeff0_19*dmats2[19][10] + coeff0_20*dmats2[20][10] + coeff0_21*dmats2[21][10] + coeff0_22*dmats2[22][10] + coeff0_23*dmats2[23][10] + coeff0_24*dmats2[24][10] + coeff0_25*dmats2[25][10] + coeff0_26*dmats2[26][10] + coeff0_27*dmats2[27][10] + coeff0_28*dmats2[28][10] + coeff0_29*dmats2[29][10] + coeff0_30*dmats2[30][10] + coeff0_31*dmats2[31][10] + coeff0_32*dmats2[32][10] + coeff0_33*dmats2[33][10] + coeff0_34*dmats2[34][10];
 
2074
          new_coeff0_11 = coeff0_0*dmats2[0][11] + coeff0_1*dmats2[1][11] + coeff0_2*dmats2[2][11] + coeff0_3*dmats2[3][11] + coeff0_4*dmats2[4][11] + coeff0_5*dmats2[5][11] + coeff0_6*dmats2[6][11] + coeff0_7*dmats2[7][11] + coeff0_8*dmats2[8][11] + coeff0_9*dmats2[9][11] + coeff0_10*dmats2[10][11] + coeff0_11*dmats2[11][11] + coeff0_12*dmats2[12][11] + coeff0_13*dmats2[13][11] + coeff0_14*dmats2[14][11] + coeff0_15*dmats2[15][11] + coeff0_16*dmats2[16][11] + coeff0_17*dmats2[17][11] + coeff0_18*dmats2[18][11] + coeff0_19*dmats2[19][11] + coeff0_20*dmats2[20][11] + coeff0_21*dmats2[21][11] + coeff0_22*dmats2[22][11] + coeff0_23*dmats2[23][11] + coeff0_24*dmats2[24][11] + coeff0_25*dmats2[25][11] + coeff0_26*dmats2[26][11] + coeff0_27*dmats2[27][11] + coeff0_28*dmats2[28][11] + coeff0_29*dmats2[29][11] + coeff0_30*dmats2[30][11] + coeff0_31*dmats2[31][11] + coeff0_32*dmats2[32][11] + coeff0_33*dmats2[33][11] + coeff0_34*dmats2[34][11];
 
2075
          new_coeff0_12 = coeff0_0*dmats2[0][12] + coeff0_1*dmats2[1][12] + coeff0_2*dmats2[2][12] + coeff0_3*dmats2[3][12] + coeff0_4*dmats2[4][12] + coeff0_5*dmats2[5][12] + coeff0_6*dmats2[6][12] + coeff0_7*dmats2[7][12] + coeff0_8*dmats2[8][12] + coeff0_9*dmats2[9][12] + coeff0_10*dmats2[10][12] + coeff0_11*dmats2[11][12] + coeff0_12*dmats2[12][12] + coeff0_13*dmats2[13][12] + coeff0_14*dmats2[14][12] + coeff0_15*dmats2[15][12] + coeff0_16*dmats2[16][12] + coeff0_17*dmats2[17][12] + coeff0_18*dmats2[18][12] + coeff0_19*dmats2[19][12] + coeff0_20*dmats2[20][12] + coeff0_21*dmats2[21][12] + coeff0_22*dmats2[22][12] + coeff0_23*dmats2[23][12] + coeff0_24*dmats2[24][12] + coeff0_25*dmats2[25][12] + coeff0_26*dmats2[26][12] + coeff0_27*dmats2[27][12] + coeff0_28*dmats2[28][12] + coeff0_29*dmats2[29][12] + coeff0_30*dmats2[30][12] + coeff0_31*dmats2[31][12] + coeff0_32*dmats2[32][12] + coeff0_33*dmats2[33][12] + coeff0_34*dmats2[34][12];
 
2076
          new_coeff0_13 = coeff0_0*dmats2[0][13] + coeff0_1*dmats2[1][13] + coeff0_2*dmats2[2][13] + coeff0_3*dmats2[3][13] + coeff0_4*dmats2[4][13] + coeff0_5*dmats2[5][13] + coeff0_6*dmats2[6][13] + coeff0_7*dmats2[7][13] + coeff0_8*dmats2[8][13] + coeff0_9*dmats2[9][13] + coeff0_10*dmats2[10][13] + coeff0_11*dmats2[11][13] + coeff0_12*dmats2[12][13] + coeff0_13*dmats2[13][13] + coeff0_14*dmats2[14][13] + coeff0_15*dmats2[15][13] + coeff0_16*dmats2[16][13] + coeff0_17*dmats2[17][13] + coeff0_18*dmats2[18][13] + coeff0_19*dmats2[19][13] + coeff0_20*dmats2[20][13] + coeff0_21*dmats2[21][13] + coeff0_22*dmats2[22][13] + coeff0_23*dmats2[23][13] + coeff0_24*dmats2[24][13] + coeff0_25*dmats2[25][13] + coeff0_26*dmats2[26][13] + coeff0_27*dmats2[27][13] + coeff0_28*dmats2[28][13] + coeff0_29*dmats2[29][13] + coeff0_30*dmats2[30][13] + coeff0_31*dmats2[31][13] + coeff0_32*dmats2[32][13] + coeff0_33*dmats2[33][13] + coeff0_34*dmats2[34][13];
 
2077
          new_coeff0_14 = coeff0_0*dmats2[0][14] + coeff0_1*dmats2[1][14] + coeff0_2*dmats2[2][14] + coeff0_3*dmats2[3][14] + coeff0_4*dmats2[4][14] + coeff0_5*dmats2[5][14] + coeff0_6*dmats2[6][14] + coeff0_7*dmats2[7][14] + coeff0_8*dmats2[8][14] + coeff0_9*dmats2[9][14] + coeff0_10*dmats2[10][14] + coeff0_11*dmats2[11][14] + coeff0_12*dmats2[12][14] + coeff0_13*dmats2[13][14] + coeff0_14*dmats2[14][14] + coeff0_15*dmats2[15][14] + coeff0_16*dmats2[16][14] + coeff0_17*dmats2[17][14] + coeff0_18*dmats2[18][14] + coeff0_19*dmats2[19][14] + coeff0_20*dmats2[20][14] + coeff0_21*dmats2[21][14] + coeff0_22*dmats2[22][14] + coeff0_23*dmats2[23][14] + coeff0_24*dmats2[24][14] + coeff0_25*dmats2[25][14] + coeff0_26*dmats2[26][14] + coeff0_27*dmats2[27][14] + coeff0_28*dmats2[28][14] + coeff0_29*dmats2[29][14] + coeff0_30*dmats2[30][14] + coeff0_31*dmats2[31][14] + coeff0_32*dmats2[32][14] + coeff0_33*dmats2[33][14] + coeff0_34*dmats2[34][14];
 
2078
          new_coeff0_15 = coeff0_0*dmats2[0][15] + coeff0_1*dmats2[1][15] + coeff0_2*dmats2[2][15] + coeff0_3*dmats2[3][15] + coeff0_4*dmats2[4][15] + coeff0_5*dmats2[5][15] + coeff0_6*dmats2[6][15] + coeff0_7*dmats2[7][15] + coeff0_8*dmats2[8][15] + coeff0_9*dmats2[9][15] + coeff0_10*dmats2[10][15] + coeff0_11*dmats2[11][15] + coeff0_12*dmats2[12][15] + coeff0_13*dmats2[13][15] + coeff0_14*dmats2[14][15] + coeff0_15*dmats2[15][15] + coeff0_16*dmats2[16][15] + coeff0_17*dmats2[17][15] + coeff0_18*dmats2[18][15] + coeff0_19*dmats2[19][15] + coeff0_20*dmats2[20][15] + coeff0_21*dmats2[21][15] + coeff0_22*dmats2[22][15] + coeff0_23*dmats2[23][15] + coeff0_24*dmats2[24][15] + coeff0_25*dmats2[25][15] + coeff0_26*dmats2[26][15] + coeff0_27*dmats2[27][15] + coeff0_28*dmats2[28][15] + coeff0_29*dmats2[29][15] + coeff0_30*dmats2[30][15] + coeff0_31*dmats2[31][15] + coeff0_32*dmats2[32][15] + coeff0_33*dmats2[33][15] + coeff0_34*dmats2[34][15];
 
2079
          new_coeff0_16 = coeff0_0*dmats2[0][16] + coeff0_1*dmats2[1][16] + coeff0_2*dmats2[2][16] + coeff0_3*dmats2[3][16] + coeff0_4*dmats2[4][16] + coeff0_5*dmats2[5][16] + coeff0_6*dmats2[6][16] + coeff0_7*dmats2[7][16] + coeff0_8*dmats2[8][16] + coeff0_9*dmats2[9][16] + coeff0_10*dmats2[10][16] + coeff0_11*dmats2[11][16] + coeff0_12*dmats2[12][16] + coeff0_13*dmats2[13][16] + coeff0_14*dmats2[14][16] + coeff0_15*dmats2[15][16] + coeff0_16*dmats2[16][16] + coeff0_17*dmats2[17][16] + coeff0_18*dmats2[18][16] + coeff0_19*dmats2[19][16] + coeff0_20*dmats2[20][16] + coeff0_21*dmats2[21][16] + coeff0_22*dmats2[22][16] + coeff0_23*dmats2[23][16] + coeff0_24*dmats2[24][16] + coeff0_25*dmats2[25][16] + coeff0_26*dmats2[26][16] + coeff0_27*dmats2[27][16] + coeff0_28*dmats2[28][16] + coeff0_29*dmats2[29][16] + coeff0_30*dmats2[30][16] + coeff0_31*dmats2[31][16] + coeff0_32*dmats2[32][16] + coeff0_33*dmats2[33][16] + coeff0_34*dmats2[34][16];
 
2080
          new_coeff0_17 = coeff0_0*dmats2[0][17] + coeff0_1*dmats2[1][17] + coeff0_2*dmats2[2][17] + coeff0_3*dmats2[3][17] + coeff0_4*dmats2[4][17] + coeff0_5*dmats2[5][17] + coeff0_6*dmats2[6][17] + coeff0_7*dmats2[7][17] + coeff0_8*dmats2[8][17] + coeff0_9*dmats2[9][17] + coeff0_10*dmats2[10][17] + coeff0_11*dmats2[11][17] + coeff0_12*dmats2[12][17] + coeff0_13*dmats2[13][17] + coeff0_14*dmats2[14][17] + coeff0_15*dmats2[15][17] + coeff0_16*dmats2[16][17] + coeff0_17*dmats2[17][17] + coeff0_18*dmats2[18][17] + coeff0_19*dmats2[19][17] + coeff0_20*dmats2[20][17] + coeff0_21*dmats2[21][17] + coeff0_22*dmats2[22][17] + coeff0_23*dmats2[23][17] + coeff0_24*dmats2[24][17] + coeff0_25*dmats2[25][17] + coeff0_26*dmats2[26][17] + coeff0_27*dmats2[27][17] + coeff0_28*dmats2[28][17] + coeff0_29*dmats2[29][17] + coeff0_30*dmats2[30][17] + coeff0_31*dmats2[31][17] + coeff0_32*dmats2[32][17] + coeff0_33*dmats2[33][17] + coeff0_34*dmats2[34][17];
 
2081
          new_coeff0_18 = coeff0_0*dmats2[0][18] + coeff0_1*dmats2[1][18] + coeff0_2*dmats2[2][18] + coeff0_3*dmats2[3][18] + coeff0_4*dmats2[4][18] + coeff0_5*dmats2[5][18] + coeff0_6*dmats2[6][18] + coeff0_7*dmats2[7][18] + coeff0_8*dmats2[8][18] + coeff0_9*dmats2[9][18] + coeff0_10*dmats2[10][18] + coeff0_11*dmats2[11][18] + coeff0_12*dmats2[12][18] + coeff0_13*dmats2[13][18] + coeff0_14*dmats2[14][18] + coeff0_15*dmats2[15][18] + coeff0_16*dmats2[16][18] + coeff0_17*dmats2[17][18] + coeff0_18*dmats2[18][18] + coeff0_19*dmats2[19][18] + coeff0_20*dmats2[20][18] + coeff0_21*dmats2[21][18] + coeff0_22*dmats2[22][18] + coeff0_23*dmats2[23][18] + coeff0_24*dmats2[24][18] + coeff0_25*dmats2[25][18] + coeff0_26*dmats2[26][18] + coeff0_27*dmats2[27][18] + coeff0_28*dmats2[28][18] + coeff0_29*dmats2[29][18] + coeff0_30*dmats2[30][18] + coeff0_31*dmats2[31][18] + coeff0_32*dmats2[32][18] + coeff0_33*dmats2[33][18] + coeff0_34*dmats2[34][18];
 
2082
          new_coeff0_19 = coeff0_0*dmats2[0][19] + coeff0_1*dmats2[1][19] + coeff0_2*dmats2[2][19] + coeff0_3*dmats2[3][19] + coeff0_4*dmats2[4][19] + coeff0_5*dmats2[5][19] + coeff0_6*dmats2[6][19] + coeff0_7*dmats2[7][19] + coeff0_8*dmats2[8][19] + coeff0_9*dmats2[9][19] + coeff0_10*dmats2[10][19] + coeff0_11*dmats2[11][19] + coeff0_12*dmats2[12][19] + coeff0_13*dmats2[13][19] + coeff0_14*dmats2[14][19] + coeff0_15*dmats2[15][19] + coeff0_16*dmats2[16][19] + coeff0_17*dmats2[17][19] + coeff0_18*dmats2[18][19] + coeff0_19*dmats2[19][19] + coeff0_20*dmats2[20][19] + coeff0_21*dmats2[21][19] + coeff0_22*dmats2[22][19] + coeff0_23*dmats2[23][19] + coeff0_24*dmats2[24][19] + coeff0_25*dmats2[25][19] + coeff0_26*dmats2[26][19] + coeff0_27*dmats2[27][19] + coeff0_28*dmats2[28][19] + coeff0_29*dmats2[29][19] + coeff0_30*dmats2[30][19] + coeff0_31*dmats2[31][19] + coeff0_32*dmats2[32][19] + coeff0_33*dmats2[33][19] + coeff0_34*dmats2[34][19];
 
2083
          new_coeff0_20 = coeff0_0*dmats2[0][20] + coeff0_1*dmats2[1][20] + coeff0_2*dmats2[2][20] + coeff0_3*dmats2[3][20] + coeff0_4*dmats2[4][20] + coeff0_5*dmats2[5][20] + coeff0_6*dmats2[6][20] + coeff0_7*dmats2[7][20] + coeff0_8*dmats2[8][20] + coeff0_9*dmats2[9][20] + coeff0_10*dmats2[10][20] + coeff0_11*dmats2[11][20] + coeff0_12*dmats2[12][20] + coeff0_13*dmats2[13][20] + coeff0_14*dmats2[14][20] + coeff0_15*dmats2[15][20] + coeff0_16*dmats2[16][20] + coeff0_17*dmats2[17][20] + coeff0_18*dmats2[18][20] + coeff0_19*dmats2[19][20] + coeff0_20*dmats2[20][20] + coeff0_21*dmats2[21][20] + coeff0_22*dmats2[22][20] + coeff0_23*dmats2[23][20] + coeff0_24*dmats2[24][20] + coeff0_25*dmats2[25][20] + coeff0_26*dmats2[26][20] + coeff0_27*dmats2[27][20] + coeff0_28*dmats2[28][20] + coeff0_29*dmats2[29][20] + coeff0_30*dmats2[30][20] + coeff0_31*dmats2[31][20] + coeff0_32*dmats2[32][20] + coeff0_33*dmats2[33][20] + coeff0_34*dmats2[34][20];
 
2084
          new_coeff0_21 = coeff0_0*dmats2[0][21] + coeff0_1*dmats2[1][21] + coeff0_2*dmats2[2][21] + coeff0_3*dmats2[3][21] + coeff0_4*dmats2[4][21] + coeff0_5*dmats2[5][21] + coeff0_6*dmats2[6][21] + coeff0_7*dmats2[7][21] + coeff0_8*dmats2[8][21] + coeff0_9*dmats2[9][21] + coeff0_10*dmats2[10][21] + coeff0_11*dmats2[11][21] + coeff0_12*dmats2[12][21] + coeff0_13*dmats2[13][21] + coeff0_14*dmats2[14][21] + coeff0_15*dmats2[15][21] + coeff0_16*dmats2[16][21] + coeff0_17*dmats2[17][21] + coeff0_18*dmats2[18][21] + coeff0_19*dmats2[19][21] + coeff0_20*dmats2[20][21] + coeff0_21*dmats2[21][21] + coeff0_22*dmats2[22][21] + coeff0_23*dmats2[23][21] + coeff0_24*dmats2[24][21] + coeff0_25*dmats2[25][21] + coeff0_26*dmats2[26][21] + coeff0_27*dmats2[27][21] + coeff0_28*dmats2[28][21] + coeff0_29*dmats2[29][21] + coeff0_30*dmats2[30][21] + coeff0_31*dmats2[31][21] + coeff0_32*dmats2[32][21] + coeff0_33*dmats2[33][21] + coeff0_34*dmats2[34][21];
 
2085
          new_coeff0_22 = coeff0_0*dmats2[0][22] + coeff0_1*dmats2[1][22] + coeff0_2*dmats2[2][22] + coeff0_3*dmats2[3][22] + coeff0_4*dmats2[4][22] + coeff0_5*dmats2[5][22] + coeff0_6*dmats2[6][22] + coeff0_7*dmats2[7][22] + coeff0_8*dmats2[8][22] + coeff0_9*dmats2[9][22] + coeff0_10*dmats2[10][22] + coeff0_11*dmats2[11][22] + coeff0_12*dmats2[12][22] + coeff0_13*dmats2[13][22] + coeff0_14*dmats2[14][22] + coeff0_15*dmats2[15][22] + coeff0_16*dmats2[16][22] + coeff0_17*dmats2[17][22] + coeff0_18*dmats2[18][22] + coeff0_19*dmats2[19][22] + coeff0_20*dmats2[20][22] + coeff0_21*dmats2[21][22] + coeff0_22*dmats2[22][22] + coeff0_23*dmats2[23][22] + coeff0_24*dmats2[24][22] + coeff0_25*dmats2[25][22] + coeff0_26*dmats2[26][22] + coeff0_27*dmats2[27][22] + coeff0_28*dmats2[28][22] + coeff0_29*dmats2[29][22] + coeff0_30*dmats2[30][22] + coeff0_31*dmats2[31][22] + coeff0_32*dmats2[32][22] + coeff0_33*dmats2[33][22] + coeff0_34*dmats2[34][22];
 
2086
          new_coeff0_23 = coeff0_0*dmats2[0][23] + coeff0_1*dmats2[1][23] + coeff0_2*dmats2[2][23] + coeff0_3*dmats2[3][23] + coeff0_4*dmats2[4][23] + coeff0_5*dmats2[5][23] + coeff0_6*dmats2[6][23] + coeff0_7*dmats2[7][23] + coeff0_8*dmats2[8][23] + coeff0_9*dmats2[9][23] + coeff0_10*dmats2[10][23] + coeff0_11*dmats2[11][23] + coeff0_12*dmats2[12][23] + coeff0_13*dmats2[13][23] + coeff0_14*dmats2[14][23] + coeff0_15*dmats2[15][23] + coeff0_16*dmats2[16][23] + coeff0_17*dmats2[17][23] + coeff0_18*dmats2[18][23] + coeff0_19*dmats2[19][23] + coeff0_20*dmats2[20][23] + coeff0_21*dmats2[21][23] + coeff0_22*dmats2[22][23] + coeff0_23*dmats2[23][23] + coeff0_24*dmats2[24][23] + coeff0_25*dmats2[25][23] + coeff0_26*dmats2[26][23] + coeff0_27*dmats2[27][23] + coeff0_28*dmats2[28][23] + coeff0_29*dmats2[29][23] + coeff0_30*dmats2[30][23] + coeff0_31*dmats2[31][23] + coeff0_32*dmats2[32][23] + coeff0_33*dmats2[33][23] + coeff0_34*dmats2[34][23];
 
2087
          new_coeff0_24 = coeff0_0*dmats2[0][24] + coeff0_1*dmats2[1][24] + coeff0_2*dmats2[2][24] + coeff0_3*dmats2[3][24] + coeff0_4*dmats2[4][24] + coeff0_5*dmats2[5][24] + coeff0_6*dmats2[6][24] + coeff0_7*dmats2[7][24] + coeff0_8*dmats2[8][24] + coeff0_9*dmats2[9][24] + coeff0_10*dmats2[10][24] + coeff0_11*dmats2[11][24] + coeff0_12*dmats2[12][24] + coeff0_13*dmats2[13][24] + coeff0_14*dmats2[14][24] + coeff0_15*dmats2[15][24] + coeff0_16*dmats2[16][24] + coeff0_17*dmats2[17][24] + coeff0_18*dmats2[18][24] + coeff0_19*dmats2[19][24] + coeff0_20*dmats2[20][24] + coeff0_21*dmats2[21][24] + coeff0_22*dmats2[22][24] + coeff0_23*dmats2[23][24] + coeff0_24*dmats2[24][24] + coeff0_25*dmats2[25][24] + coeff0_26*dmats2[26][24] + coeff0_27*dmats2[27][24] + coeff0_28*dmats2[28][24] + coeff0_29*dmats2[29][24] + coeff0_30*dmats2[30][24] + coeff0_31*dmats2[31][24] + coeff0_32*dmats2[32][24] + coeff0_33*dmats2[33][24] + coeff0_34*dmats2[34][24];
 
2088
          new_coeff0_25 = coeff0_0*dmats2[0][25] + coeff0_1*dmats2[1][25] + coeff0_2*dmats2[2][25] + coeff0_3*dmats2[3][25] + coeff0_4*dmats2[4][25] + coeff0_5*dmats2[5][25] + coeff0_6*dmats2[6][25] + coeff0_7*dmats2[7][25] + coeff0_8*dmats2[8][25] + coeff0_9*dmats2[9][25] + coeff0_10*dmats2[10][25] + coeff0_11*dmats2[11][25] + coeff0_12*dmats2[12][25] + coeff0_13*dmats2[13][25] + coeff0_14*dmats2[14][25] + coeff0_15*dmats2[15][25] + coeff0_16*dmats2[16][25] + coeff0_17*dmats2[17][25] + coeff0_18*dmats2[18][25] + coeff0_19*dmats2[19][25] + coeff0_20*dmats2[20][25] + coeff0_21*dmats2[21][25] + coeff0_22*dmats2[22][25] + coeff0_23*dmats2[23][25] + coeff0_24*dmats2[24][25] + coeff0_25*dmats2[25][25] + coeff0_26*dmats2[26][25] + coeff0_27*dmats2[27][25] + coeff0_28*dmats2[28][25] + coeff0_29*dmats2[29][25] + coeff0_30*dmats2[30][25] + coeff0_31*dmats2[31][25] + coeff0_32*dmats2[32][25] + coeff0_33*dmats2[33][25] + coeff0_34*dmats2[34][25];
 
2089
          new_coeff0_26 = coeff0_0*dmats2[0][26] + coeff0_1*dmats2[1][26] + coeff0_2*dmats2[2][26] + coeff0_3*dmats2[3][26] + coeff0_4*dmats2[4][26] + coeff0_5*dmats2[5][26] + coeff0_6*dmats2[6][26] + coeff0_7*dmats2[7][26] + coeff0_8*dmats2[8][26] + coeff0_9*dmats2[9][26] + coeff0_10*dmats2[10][26] + coeff0_11*dmats2[11][26] + coeff0_12*dmats2[12][26] + coeff0_13*dmats2[13][26] + coeff0_14*dmats2[14][26] + coeff0_15*dmats2[15][26] + coeff0_16*dmats2[16][26] + coeff0_17*dmats2[17][26] + coeff0_18*dmats2[18][26] + coeff0_19*dmats2[19][26] + coeff0_20*dmats2[20][26] + coeff0_21*dmats2[21][26] + coeff0_22*dmats2[22][26] + coeff0_23*dmats2[23][26] + coeff0_24*dmats2[24][26] + coeff0_25*dmats2[25][26] + coeff0_26*dmats2[26][26] + coeff0_27*dmats2[27][26] + coeff0_28*dmats2[28][26] + coeff0_29*dmats2[29][26] + coeff0_30*dmats2[30][26] + coeff0_31*dmats2[31][26] + coeff0_32*dmats2[32][26] + coeff0_33*dmats2[33][26] + coeff0_34*dmats2[34][26];
 
2090
          new_coeff0_27 = coeff0_0*dmats2[0][27] + coeff0_1*dmats2[1][27] + coeff0_2*dmats2[2][27] + coeff0_3*dmats2[3][27] + coeff0_4*dmats2[4][27] + coeff0_5*dmats2[5][27] + coeff0_6*dmats2[6][27] + coeff0_7*dmats2[7][27] + coeff0_8*dmats2[8][27] + coeff0_9*dmats2[9][27] + coeff0_10*dmats2[10][27] + coeff0_11*dmats2[11][27] + coeff0_12*dmats2[12][27] + coeff0_13*dmats2[13][27] + coeff0_14*dmats2[14][27] + coeff0_15*dmats2[15][27] + coeff0_16*dmats2[16][27] + coeff0_17*dmats2[17][27] + coeff0_18*dmats2[18][27] + coeff0_19*dmats2[19][27] + coeff0_20*dmats2[20][27] + coeff0_21*dmats2[21][27] + coeff0_22*dmats2[22][27] + coeff0_23*dmats2[23][27] + coeff0_24*dmats2[24][27] + coeff0_25*dmats2[25][27] + coeff0_26*dmats2[26][27] + coeff0_27*dmats2[27][27] + coeff0_28*dmats2[28][27] + coeff0_29*dmats2[29][27] + coeff0_30*dmats2[30][27] + coeff0_31*dmats2[31][27] + coeff0_32*dmats2[32][27] + coeff0_33*dmats2[33][27] + coeff0_34*dmats2[34][27];
 
2091
          new_coeff0_28 = coeff0_0*dmats2[0][28] + coeff0_1*dmats2[1][28] + coeff0_2*dmats2[2][28] + coeff0_3*dmats2[3][28] + coeff0_4*dmats2[4][28] + coeff0_5*dmats2[5][28] + coeff0_6*dmats2[6][28] + coeff0_7*dmats2[7][28] + coeff0_8*dmats2[8][28] + coeff0_9*dmats2[9][28] + coeff0_10*dmats2[10][28] + coeff0_11*dmats2[11][28] + coeff0_12*dmats2[12][28] + coeff0_13*dmats2[13][28] + coeff0_14*dmats2[14][28] + coeff0_15*dmats2[15][28] + coeff0_16*dmats2[16][28] + coeff0_17*dmats2[17][28] + coeff0_18*dmats2[18][28] + coeff0_19*dmats2[19][28] + coeff0_20*dmats2[20][28] + coeff0_21*dmats2[21][28] + coeff0_22*dmats2[22][28] + coeff0_23*dmats2[23][28] + coeff0_24*dmats2[24][28] + coeff0_25*dmats2[25][28] + coeff0_26*dmats2[26][28] + coeff0_27*dmats2[27][28] + coeff0_28*dmats2[28][28] + coeff0_29*dmats2[29][28] + coeff0_30*dmats2[30][28] + coeff0_31*dmats2[31][28] + coeff0_32*dmats2[32][28] + coeff0_33*dmats2[33][28] + coeff0_34*dmats2[34][28];
 
2092
          new_coeff0_29 = coeff0_0*dmats2[0][29] + coeff0_1*dmats2[1][29] + coeff0_2*dmats2[2][29] + coeff0_3*dmats2[3][29] + coeff0_4*dmats2[4][29] + coeff0_5*dmats2[5][29] + coeff0_6*dmats2[6][29] + coeff0_7*dmats2[7][29] + coeff0_8*dmats2[8][29] + coeff0_9*dmats2[9][29] + coeff0_10*dmats2[10][29] + coeff0_11*dmats2[11][29] + coeff0_12*dmats2[12][29] + coeff0_13*dmats2[13][29] + coeff0_14*dmats2[14][29] + coeff0_15*dmats2[15][29] + coeff0_16*dmats2[16][29] + coeff0_17*dmats2[17][29] + coeff0_18*dmats2[18][29] + coeff0_19*dmats2[19][29] + coeff0_20*dmats2[20][29] + coeff0_21*dmats2[21][29] + coeff0_22*dmats2[22][29] + coeff0_23*dmats2[23][29] + coeff0_24*dmats2[24][29] + coeff0_25*dmats2[25][29] + coeff0_26*dmats2[26][29] + coeff0_27*dmats2[27][29] + coeff0_28*dmats2[28][29] + coeff0_29*dmats2[29][29] + coeff0_30*dmats2[30][29] + coeff0_31*dmats2[31][29] + coeff0_32*dmats2[32][29] + coeff0_33*dmats2[33][29] + coeff0_34*dmats2[34][29];
 
2093
          new_coeff0_30 = coeff0_0*dmats2[0][30] + coeff0_1*dmats2[1][30] + coeff0_2*dmats2[2][30] + coeff0_3*dmats2[3][30] + coeff0_4*dmats2[4][30] + coeff0_5*dmats2[5][30] + coeff0_6*dmats2[6][30] + coeff0_7*dmats2[7][30] + coeff0_8*dmats2[8][30] + coeff0_9*dmats2[9][30] + coeff0_10*dmats2[10][30] + coeff0_11*dmats2[11][30] + coeff0_12*dmats2[12][30] + coeff0_13*dmats2[13][30] + coeff0_14*dmats2[14][30] + coeff0_15*dmats2[15][30] + coeff0_16*dmats2[16][30] + coeff0_17*dmats2[17][30] + coeff0_18*dmats2[18][30] + coeff0_19*dmats2[19][30] + coeff0_20*dmats2[20][30] + coeff0_21*dmats2[21][30] + coeff0_22*dmats2[22][30] + coeff0_23*dmats2[23][30] + coeff0_24*dmats2[24][30] + coeff0_25*dmats2[25][30] + coeff0_26*dmats2[26][30] + coeff0_27*dmats2[27][30] + coeff0_28*dmats2[28][30] + coeff0_29*dmats2[29][30] + coeff0_30*dmats2[30][30] + coeff0_31*dmats2[31][30] + coeff0_32*dmats2[32][30] + coeff0_33*dmats2[33][30] + coeff0_34*dmats2[34][30];
 
2094
          new_coeff0_31 = coeff0_0*dmats2[0][31] + coeff0_1*dmats2[1][31] + coeff0_2*dmats2[2][31] + coeff0_3*dmats2[3][31] + coeff0_4*dmats2[4][31] + coeff0_5*dmats2[5][31] + coeff0_6*dmats2[6][31] + coeff0_7*dmats2[7][31] + coeff0_8*dmats2[8][31] + coeff0_9*dmats2[9][31] + coeff0_10*dmats2[10][31] + coeff0_11*dmats2[11][31] + coeff0_12*dmats2[12][31] + coeff0_13*dmats2[13][31] + coeff0_14*dmats2[14][31] + coeff0_15*dmats2[15][31] + coeff0_16*dmats2[16][31] + coeff0_17*dmats2[17][31] + coeff0_18*dmats2[18][31] + coeff0_19*dmats2[19][31] + coeff0_20*dmats2[20][31] + coeff0_21*dmats2[21][31] + coeff0_22*dmats2[22][31] + coeff0_23*dmats2[23][31] + coeff0_24*dmats2[24][31] + coeff0_25*dmats2[25][31] + coeff0_26*dmats2[26][31] + coeff0_27*dmats2[27][31] + coeff0_28*dmats2[28][31] + coeff0_29*dmats2[29][31] + coeff0_30*dmats2[30][31] + coeff0_31*dmats2[31][31] + coeff0_32*dmats2[32][31] + coeff0_33*dmats2[33][31] + coeff0_34*dmats2[34][31];
 
2095
          new_coeff0_32 = coeff0_0*dmats2[0][32] + coeff0_1*dmats2[1][32] + coeff0_2*dmats2[2][32] + coeff0_3*dmats2[3][32] + coeff0_4*dmats2[4][32] + coeff0_5*dmats2[5][32] + coeff0_6*dmats2[6][32] + coeff0_7*dmats2[7][32] + coeff0_8*dmats2[8][32] + coeff0_9*dmats2[9][32] + coeff0_10*dmats2[10][32] + coeff0_11*dmats2[11][32] + coeff0_12*dmats2[12][32] + coeff0_13*dmats2[13][32] + coeff0_14*dmats2[14][32] + coeff0_15*dmats2[15][32] + coeff0_16*dmats2[16][32] + coeff0_17*dmats2[17][32] + coeff0_18*dmats2[18][32] + coeff0_19*dmats2[19][32] + coeff0_20*dmats2[20][32] + coeff0_21*dmats2[21][32] + coeff0_22*dmats2[22][32] + coeff0_23*dmats2[23][32] + coeff0_24*dmats2[24][32] + coeff0_25*dmats2[25][32] + coeff0_26*dmats2[26][32] + coeff0_27*dmats2[27][32] + coeff0_28*dmats2[28][32] + coeff0_29*dmats2[29][32] + coeff0_30*dmats2[30][32] + coeff0_31*dmats2[31][32] + coeff0_32*dmats2[32][32] + coeff0_33*dmats2[33][32] + coeff0_34*dmats2[34][32];
 
2096
          new_coeff0_33 = coeff0_0*dmats2[0][33] + coeff0_1*dmats2[1][33] + coeff0_2*dmats2[2][33] + coeff0_3*dmats2[3][33] + coeff0_4*dmats2[4][33] + coeff0_5*dmats2[5][33] + coeff0_6*dmats2[6][33] + coeff0_7*dmats2[7][33] + coeff0_8*dmats2[8][33] + coeff0_9*dmats2[9][33] + coeff0_10*dmats2[10][33] + coeff0_11*dmats2[11][33] + coeff0_12*dmats2[12][33] + coeff0_13*dmats2[13][33] + coeff0_14*dmats2[14][33] + coeff0_15*dmats2[15][33] + coeff0_16*dmats2[16][33] + coeff0_17*dmats2[17][33] + coeff0_18*dmats2[18][33] + coeff0_19*dmats2[19][33] + coeff0_20*dmats2[20][33] + coeff0_21*dmats2[21][33] + coeff0_22*dmats2[22][33] + coeff0_23*dmats2[23][33] + coeff0_24*dmats2[24][33] + coeff0_25*dmats2[25][33] + coeff0_26*dmats2[26][33] + coeff0_27*dmats2[27][33] + coeff0_28*dmats2[28][33] + coeff0_29*dmats2[29][33] + coeff0_30*dmats2[30][33] + coeff0_31*dmats2[31][33] + coeff0_32*dmats2[32][33] + coeff0_33*dmats2[33][33] + coeff0_34*dmats2[34][33];
 
2097
          new_coeff0_34 = coeff0_0*dmats2[0][34] + coeff0_1*dmats2[1][34] + coeff0_2*dmats2[2][34] + coeff0_3*dmats2[3][34] + coeff0_4*dmats2[4][34] + coeff0_5*dmats2[5][34] + coeff0_6*dmats2[6][34] + coeff0_7*dmats2[7][34] + coeff0_8*dmats2[8][34] + coeff0_9*dmats2[9][34] + coeff0_10*dmats2[10][34] + coeff0_11*dmats2[11][34] + coeff0_12*dmats2[12][34] + coeff0_13*dmats2[13][34] + coeff0_14*dmats2[14][34] + coeff0_15*dmats2[15][34] + coeff0_16*dmats2[16][34] + coeff0_17*dmats2[17][34] + coeff0_18*dmats2[18][34] + coeff0_19*dmats2[19][34] + coeff0_20*dmats2[20][34] + coeff0_21*dmats2[21][34] + coeff0_22*dmats2[22][34] + coeff0_23*dmats2[23][34] + coeff0_24*dmats2[24][34] + coeff0_25*dmats2[25][34] + coeff0_26*dmats2[26][34] + coeff0_27*dmats2[27][34] + coeff0_28*dmats2[28][34] + coeff0_29*dmats2[29][34] + coeff0_30*dmats2[30][34] + coeff0_31*dmats2[31][34] + coeff0_32*dmats2[32][34] + coeff0_33*dmats2[33][34] + coeff0_34*dmats2[34][34];
 
2098
        }
 
2099
    
 
2100
      }
 
2101
      // Compute derivatives on reference element as dot product of coefficients and basisvalues
 
2102
      derivatives[deriv_num] = new_coeff0_0*basisvalue0 + new_coeff0_1*basisvalue1 + new_coeff0_2*basisvalue2 + new_coeff0_3*basisvalue3 + new_coeff0_4*basisvalue4 + new_coeff0_5*basisvalue5 + new_coeff0_6*basisvalue6 + new_coeff0_7*basisvalue7 + new_coeff0_8*basisvalue8 + new_coeff0_9*basisvalue9 + new_coeff0_10*basisvalue10 + new_coeff0_11*basisvalue11 + new_coeff0_12*basisvalue12 + new_coeff0_13*basisvalue13 + new_coeff0_14*basisvalue14 + new_coeff0_15*basisvalue15 + new_coeff0_16*basisvalue16 + new_coeff0_17*basisvalue17 + new_coeff0_18*basisvalue18 + new_coeff0_19*basisvalue19 + new_coeff0_20*basisvalue20 + new_coeff0_21*basisvalue21 + new_coeff0_22*basisvalue22 + new_coeff0_23*basisvalue23 + new_coeff0_24*basisvalue24 + new_coeff0_25*basisvalue25 + new_coeff0_26*basisvalue26 + new_coeff0_27*basisvalue27 + new_coeff0_28*basisvalue28 + new_coeff0_29*basisvalue29 + new_coeff0_30*basisvalue30 + new_coeff0_31*basisvalue31 + new_coeff0_32*basisvalue32 + new_coeff0_33*basisvalue33 + new_coeff0_34*basisvalue34;
 
2103
    }
 
2104
    
 
2105
    // Transform derivatives back to physical element
 
2106
    for (unsigned int row = 0; row < num_derivatives; row++)
 
2107
    {
 
2108
      for (unsigned int col = 0; col < num_derivatives; col++)
 
2109
      {
 
2110
        values[row] += transform[row][col]*derivatives[col];
 
2111
      }
 
2112
    }
 
2113
    // Delete pointer to array of derivatives on FIAT element
 
2114
    delete [] derivatives;
 
2115
    
 
2116
    // Delete pointer to array of combinations of derivatives and transform
 
2117
    for (unsigned int row = 0; row < num_derivatives; row++)
 
2118
    {
 
2119
      delete [] combinations[row];
 
2120
      delete [] transform[row];
 
2121
    }
 
2122
    
 
2123
    delete [] combinations;
 
2124
    delete [] transform;
 
2125
  }
 
2126
 
 
2127
  /// Evaluate order n derivatives of all basis functions at given point in cell
 
2128
  virtual void evaluate_basis_derivatives_all(unsigned int n,
 
2129
                                              double* values,
 
2130
                                              const double* coordinates,
 
2131
                                              const ufc::cell& c) const
 
2132
  {
 
2133
    throw std::runtime_error("The vectorised version of evaluate_basis_derivatives() is not yet implemented.");
 
2134
  }
 
2135
 
 
2136
  /// Evaluate linear functional for dof i on the function f
 
2137
  virtual double evaluate_dof(unsigned int i,
 
2138
                              const ufc::function& f,
 
2139
                              const ufc::cell& c) const
 
2140
  {
 
2141
    // The reference points, direction and weights:
 
2142
    const static double X[35][1][3] = {{{0, 0, 0}}, {{1, 0, 0}}, {{0, 1, 0}}, {{0, 0, 1}}, {{0, 0.75, 0.25}}, {{0, 0.5, 0.5}}, {{0, 0.25, 0.75}}, {{0.75, 0, 0.25}}, {{0.5, 0, 0.5}}, {{0.25, 0, 0.75}}, {{0.75, 0.25, 0}}, {{0.5, 0.5, 0}}, {{0.25, 0.75, 0}}, {{0, 0, 0.25}}, {{0, 0, 0.5}}, {{0, 0, 0.75}}, {{0, 0.25, 0}}, {{0, 0.5, 0}}, {{0, 0.75, 0}}, {{0.25, 0, 0}}, {{0.5, 0, 0}}, {{0.75, 0, 0}}, {{0.5, 0.25, 0.25}}, {{0.25, 0.5, 0.25}}, {{0.25, 0.25, 0.5}}, {{0, 0.25, 0.25}}, {{0, 0.5, 0.25}}, {{0, 0.25, 0.5}}, {{0.25, 0, 0.25}}, {{0.5, 0, 0.25}}, {{0.25, 0, 0.5}}, {{0.25, 0.25, 0}}, {{0.5, 0.25, 0}}, {{0.25, 0.5, 0}}, {{0.25, 0.25, 0.25}}};
 
2143
    const static double W[35][1] = {{1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}};
 
2144
    const static double D[35][1][1] = {{{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}};
 
2145
    
 
2146
    const double * const * x = c.coordinates;
 
2147
    double result = 0.0;
 
2148
    // Iterate over the points:
 
2149
    // Evaluate basis functions for affine mapping
 
2150
    const double w0 = 1.0 - X[i][0][0] - X[i][0][1] - X[i][0][2];
 
2151
    const double w1 = X[i][0][0];
 
2152
    const double w2 = X[i][0][1];
 
2153
    const double w3 = X[i][0][2];
 
2154
    
 
2155
    // Compute affine mapping y = F(X)
 
2156
    double y[3];
 
2157
    y[0] = w0*x[0][0] + w1*x[1][0] + w2*x[2][0] + w3*x[3][0];
 
2158
    y[1] = w0*x[0][1] + w1*x[1][1] + w2*x[2][1] + w3*x[3][1];
 
2159
    y[2] = w0*x[0][2] + w1*x[1][2] + w2*x[2][2] + w3*x[3][2];
 
2160
    
 
2161
    // Evaluate function at physical points
 
2162
    double values[1];
 
2163
    f.evaluate(values, y, c);
 
2164
    
 
2165
    // Map function values using appropriate mapping
 
2166
    // Affine map: Do nothing
 
2167
    
 
2168
    // Note that we do not map the weights (yet).
 
2169
    
 
2170
    // Take directional components
 
2171
    for(int k = 0; k < 1; k++)
 
2172
      result += values[k]*D[i][0][k];
 
2173
    // Multiply by weights 
 
2174
    result *= W[i][0];
 
2175
    
 
2176
    return result;
 
2177
  }
 
2178
 
 
2179
  /// Evaluate linear functionals for all dofs on the function f
 
2180
  virtual void evaluate_dofs(double* values,
 
2181
                             const ufc::function& f,
 
2182
                             const ufc::cell& c) const
 
2183
  {
 
2184
    throw std::runtime_error("Not implemented (introduced in UFC v1.1).");
 
2185
  }
 
2186
 
 
2187
  /// Interpolate vertex values from dof values
 
2188
  virtual void interpolate_vertex_values(double* vertex_values,
 
2189
                                         const double* dof_values,
 
2190
                                         const ufc::cell& c) const
 
2191
  {
 
2192
    // Evaluate at vertices and use affine mapping
 
2193
    vertex_values[0] = dof_values[0];
 
2194
    vertex_values[1] = dof_values[1];
 
2195
    vertex_values[2] = dof_values[2];
 
2196
    vertex_values[3] = dof_values[3];
 
2197
  }
 
2198
 
 
2199
  /// Return the number of sub elements (for a mixed element)
 
2200
  virtual unsigned int num_sub_elements() const
 
2201
  {
 
2202
    return 1;
 
2203
  }
 
2204
 
 
2205
  /// Create a new finite element for sub element i (for a mixed element)
 
2206
  virtual ufc::finite_element* create_sub_element(unsigned int i) const
 
2207
  {
 
2208
    return new UFC_Poisson3D_4BilinearForm_finite_element_1();
 
2209
  }
 
2210
 
 
2211
};
 
2212
 
 
2213
/// This class defines the interface for a local-to-global mapping of
 
2214
/// degrees of freedom (dofs).
 
2215
 
 
2216
class UFC_Poisson3D_4BilinearForm_dof_map_0: public ufc::dof_map
 
2217
{
 
2218
private:
 
2219
 
 
2220
  unsigned int __global_dimension;
 
2221
 
 
2222
public:
 
2223
 
 
2224
  /// Constructor
 
2225
  UFC_Poisson3D_4BilinearForm_dof_map_0() : ufc::dof_map()
 
2226
  {
 
2227
    __global_dimension = 0;
 
2228
  }
 
2229
 
 
2230
  /// Destructor
 
2231
  virtual ~UFC_Poisson3D_4BilinearForm_dof_map_0()
 
2232
  {
 
2233
    // Do nothing
 
2234
  }
 
2235
 
 
2236
  /// Return a string identifying the dof map
 
2237
  virtual const char* signature() const
 
2238
  {
 
2239
    return "FFC dof map for FiniteElement('Lagrange', 'tetrahedron', 4)";
 
2240
  }
 
2241
 
 
2242
  /// Return true iff mesh entities of topological dimension d are needed
 
2243
  virtual bool needs_mesh_entities(unsigned int d) const
 
2244
  {
 
2245
    switch ( d )
 
2246
    {
 
2247
    case 0:
 
2248
      return true;
 
2249
      break;
 
2250
    case 1:
 
2251
      return true;
 
2252
      break;
 
2253
    case 2:
 
2254
      return true;
 
2255
      break;
 
2256
    case 3:
 
2257
      return true;
 
2258
      break;
 
2259
    }
 
2260
    return false;
 
2261
  }
 
2262
 
 
2263
  /// Initialize dof map for mesh (return true iff init_cell() is needed)
 
2264
  virtual bool init_mesh(const ufc::mesh& m)
 
2265
  {
 
2266
    __global_dimension = m.num_entities[0] + 3*m.num_entities[1] + 3*m.num_entities[2] + m.num_entities[3];
 
2267
    return false;
 
2268
  }
 
2269
 
 
2270
  /// Initialize dof map for given cell
 
2271
  virtual void init_cell(const ufc::mesh& m,
 
2272
                         const ufc::cell& c)
 
2273
  {
 
2274
    // Do nothing
 
2275
  }
 
2276
 
 
2277
  /// Finish initialization of dof map for cells
 
2278
  virtual void init_cell_finalize()
 
2279
  {
 
2280
    // Do nothing
 
2281
  }
 
2282
 
 
2283
  /// Return the dimension of the global finite element function space
 
2284
  virtual unsigned int global_dimension() const
 
2285
  {
 
2286
    return __global_dimension;
 
2287
  }
 
2288
 
 
2289
  /// Return the dimension of the local finite element function space
 
2290
  virtual unsigned int local_dimension() const
 
2291
  {
 
2292
    return 35;
 
2293
  }
 
2294
 
 
2295
  // Return the geometric dimension of the coordinates this dof map provides
 
2296
  virtual unsigned int geometric_dimension() const
 
2297
  {
 
2298
    return 3;
 
2299
  }
 
2300
 
 
2301
  /// Return the number of dofs on each cell facet
 
2302
  virtual unsigned int num_facet_dofs() const
 
2303
  {
 
2304
    return 15;
 
2305
  }
 
2306
 
 
2307
  /// Return the number of dofs associated with each cell entity of dimension d
 
2308
  virtual unsigned int num_entity_dofs(unsigned int d) const
 
2309
  {
 
2310
    throw std::runtime_error("Not implemented (introduced in UFC v1.1).");
 
2311
  }
 
2312
 
 
2313
  /// Tabulate the local-to-global mapping of dofs on a cell
 
2314
  virtual void tabulate_dofs(unsigned int* dofs,
 
2315
                             const ufc::mesh& m,
 
2316
                             const ufc::cell& c) const
 
2317
  {
 
2318
    dofs[0] = c.entity_indices[0][0];
 
2319
    dofs[1] = c.entity_indices[0][1];
 
2320
    dofs[2] = c.entity_indices[0][2];
 
2321
    dofs[3] = c.entity_indices[0][3];
 
2322
    unsigned int offset = m.num_entities[0];
 
2323
    dofs[4] = offset + 3*c.entity_indices[1][0];
 
2324
    dofs[5] = offset + 3*c.entity_indices[1][0] + 1;
 
2325
    dofs[6] = offset + 3*c.entity_indices[1][0] + 2;
 
2326
    dofs[7] = offset + 3*c.entity_indices[1][1];
 
2327
    dofs[8] = offset + 3*c.entity_indices[1][1] + 1;
 
2328
    dofs[9] = offset + 3*c.entity_indices[1][1] + 2;
 
2329
    dofs[10] = offset + 3*c.entity_indices[1][2];
 
2330
    dofs[11] = offset + 3*c.entity_indices[1][2] + 1;
 
2331
    dofs[12] = offset + 3*c.entity_indices[1][2] + 2;
 
2332
    dofs[13] = offset + 3*c.entity_indices[1][3];
 
2333
    dofs[14] = offset + 3*c.entity_indices[1][3] + 1;
 
2334
    dofs[15] = offset + 3*c.entity_indices[1][3] + 2;
 
2335
    dofs[16] = offset + 3*c.entity_indices[1][4];
 
2336
    dofs[17] = offset + 3*c.entity_indices[1][4] + 1;
 
2337
    dofs[18] = offset + 3*c.entity_indices[1][4] + 2;
 
2338
    dofs[19] = offset + 3*c.entity_indices[1][5];
 
2339
    dofs[20] = offset + 3*c.entity_indices[1][5] + 1;
 
2340
    dofs[21] = offset + 3*c.entity_indices[1][5] + 2;
 
2341
    offset = offset + 3*m.num_entities[1];
 
2342
    dofs[22] = offset + 3*c.entity_indices[2][0];
 
2343
    dofs[23] = offset + 3*c.entity_indices[2][0] + 1;
 
2344
    dofs[24] = offset + 3*c.entity_indices[2][0] + 2;
 
2345
    dofs[25] = offset + 3*c.entity_indices[2][1];
 
2346
    dofs[26] = offset + 3*c.entity_indices[2][1] + 1;
 
2347
    dofs[27] = offset + 3*c.entity_indices[2][1] + 2;
 
2348
    dofs[28] = offset + 3*c.entity_indices[2][2];
 
2349
    dofs[29] = offset + 3*c.entity_indices[2][2] + 1;
 
2350
    dofs[30] = offset + 3*c.entity_indices[2][2] + 2;
 
2351
    dofs[31] = offset + 3*c.entity_indices[2][3];
 
2352
    dofs[32] = offset + 3*c.entity_indices[2][3] + 1;
 
2353
    dofs[33] = offset + 3*c.entity_indices[2][3] + 2;
 
2354
    offset = offset + 3*m.num_entities[2];
 
2355
    dofs[34] = offset + c.entity_indices[3][0];
 
2356
  }
 
2357
 
 
2358
  /// Tabulate the local-to-local mapping from facet dofs to cell dofs
 
2359
  virtual void tabulate_facet_dofs(unsigned int* dofs,
 
2360
                                   unsigned int facet) const
 
2361
  {
 
2362
    switch ( facet )
 
2363
    {
 
2364
    case 0:
 
2365
      dofs[0] = 1;
 
2366
      dofs[1] = 2;
 
2367
      dofs[2] = 3;
 
2368
      dofs[3] = 4;
 
2369
      dofs[4] = 5;
 
2370
      dofs[5] = 6;
 
2371
      dofs[6] = 7;
 
2372
      dofs[7] = 8;
 
2373
      dofs[8] = 9;
 
2374
      dofs[9] = 10;
 
2375
      dofs[10] = 11;
 
2376
      dofs[11] = 12;
 
2377
      dofs[12] = 22;
 
2378
      dofs[13] = 23;
 
2379
      dofs[14] = 24;
 
2380
      break;
 
2381
    case 1:
 
2382
      dofs[0] = 0;
 
2383
      dofs[1] = 2;
 
2384
      dofs[2] = 3;
 
2385
      dofs[3] = 4;
 
2386
      dofs[4] = 5;
 
2387
      dofs[5] = 6;
 
2388
      dofs[6] = 13;
 
2389
      dofs[7] = 14;
 
2390
      dofs[8] = 15;
 
2391
      dofs[9] = 16;
 
2392
      dofs[10] = 17;
 
2393
      dofs[11] = 18;
 
2394
      dofs[12] = 25;
 
2395
      dofs[13] = 26;
 
2396
      dofs[14] = 27;
 
2397
      break;
 
2398
    case 2:
 
2399
      dofs[0] = 0;
 
2400
      dofs[1] = 1;
 
2401
      dofs[2] = 3;
 
2402
      dofs[3] = 7;
 
2403
      dofs[4] = 8;
 
2404
      dofs[5] = 9;
 
2405
      dofs[6] = 13;
 
2406
      dofs[7] = 14;
 
2407
      dofs[8] = 15;
 
2408
      dofs[9] = 19;
 
2409
      dofs[10] = 20;
 
2410
      dofs[11] = 21;
 
2411
      dofs[12] = 28;
 
2412
      dofs[13] = 29;
 
2413
      dofs[14] = 30;
 
2414
      break;
 
2415
    case 3:
 
2416
      dofs[0] = 0;
 
2417
      dofs[1] = 1;
 
2418
      dofs[2] = 2;
 
2419
      dofs[3] = 10;
 
2420
      dofs[4] = 11;
 
2421
      dofs[5] = 12;
 
2422
      dofs[6] = 16;
 
2423
      dofs[7] = 17;
 
2424
      dofs[8] = 18;
 
2425
      dofs[9] = 19;
 
2426
      dofs[10] = 20;
 
2427
      dofs[11] = 21;
 
2428
      dofs[12] = 31;
 
2429
      dofs[13] = 32;
 
2430
      dofs[14] = 33;
 
2431
      break;
 
2432
    }
 
2433
  }
 
2434
 
 
2435
  /// Tabulate the local-to-local mapping of dofs on entity (d, i)
 
2436
  virtual void tabulate_entity_dofs(unsigned int* dofs,
 
2437
                                    unsigned int d, unsigned int i) const
 
2438
  {
 
2439
    throw std::runtime_error("Not implemented (introduced in UFC v1.1).");
 
2440
  }
 
2441
 
 
2442
  /// Tabulate the coordinates of all dofs on a cell
 
2443
  virtual void tabulate_coordinates(double** coordinates,
 
2444
                                    const ufc::cell& c) const
 
2445
  {
 
2446
    const double * const * x = c.coordinates;
 
2447
    coordinates[0][0] = x[0][0];
 
2448
    coordinates[0][1] = x[0][1];
 
2449
    coordinates[0][2] = x[0][2];
 
2450
    coordinates[1][0] = x[1][0];
 
2451
    coordinates[1][1] = x[1][1];
 
2452
    coordinates[1][2] = x[1][2];
 
2453
    coordinates[2][0] = x[2][0];
 
2454
    coordinates[2][1] = x[2][1];
 
2455
    coordinates[2][2] = x[2][2];
 
2456
    coordinates[3][0] = x[3][0];
 
2457
    coordinates[3][1] = x[3][1];
 
2458
    coordinates[3][2] = x[3][2];
 
2459
    coordinates[4][0] = 0.75*x[2][0] + 0.25*x[3][0];
 
2460
    coordinates[4][1] = 0.75*x[2][1] + 0.25*x[3][1];
 
2461
    coordinates[4][2] = 0.75*x[2][2] + 0.25*x[3][2];
 
2462
    coordinates[5][0] = 0.5*x[2][0] + 0.5*x[3][0];
 
2463
    coordinates[5][1] = 0.5*x[2][1] + 0.5*x[3][1];
 
2464
    coordinates[5][2] = 0.5*x[2][2] + 0.5*x[3][2];
 
2465
    coordinates[6][0] = 0.25*x[2][0] + 0.75*x[3][0];
 
2466
    coordinates[6][1] = 0.25*x[2][1] + 0.75*x[3][1];
 
2467
    coordinates[6][2] = 0.25*x[2][2] + 0.75*x[3][2];
 
2468
    coordinates[7][0] = 0.75*x[1][0] + 0.25*x[3][0];
 
2469
    coordinates[7][1] = 0.75*x[1][1] + 0.25*x[3][1];
 
2470
    coordinates[7][2] = 0.75*x[1][2] + 0.25*x[3][2];
 
2471
    coordinates[8][0] = 0.5*x[1][0] + 0.5*x[3][0];
 
2472
    coordinates[8][1] = 0.5*x[1][1] + 0.5*x[3][1];
 
2473
    coordinates[8][2] = 0.5*x[1][2] + 0.5*x[3][2];
 
2474
    coordinates[9][0] = 0.25*x[1][0] + 0.75*x[3][0];
 
2475
    coordinates[9][1] = 0.25*x[1][1] + 0.75*x[3][1];
 
2476
    coordinates[9][2] = 0.25*x[1][2] + 0.75*x[3][2];
 
2477
    coordinates[10][0] = 0.75*x[1][0] + 0.25*x[2][0];
 
2478
    coordinates[10][1] = 0.75*x[1][1] + 0.25*x[2][1];
 
2479
    coordinates[10][2] = 0.75*x[1][2] + 0.25*x[2][2];
 
2480
    coordinates[11][0] = 0.5*x[1][0] + 0.5*x[2][0];
 
2481
    coordinates[11][1] = 0.5*x[1][1] + 0.5*x[2][1];
 
2482
    coordinates[11][2] = 0.5*x[1][2] + 0.5*x[2][2];
 
2483
    coordinates[12][0] = 0.25*x[1][0] + 0.75*x[2][0];
 
2484
    coordinates[12][1] = 0.25*x[1][1] + 0.75*x[2][1];
 
2485
    coordinates[12][2] = 0.25*x[1][2] + 0.75*x[2][2];
 
2486
    coordinates[13][0] = 0.75*x[0][0] + 0.25*x[3][0];
 
2487
    coordinates[13][1] = 0.75*x[0][1] + 0.25*x[3][1];
 
2488
    coordinates[13][2] = 0.75*x[0][2] + 0.25*x[3][2];
 
2489
    coordinates[14][0] = 0.5*x[0][0] + 0.5*x[3][0];
 
2490
    coordinates[14][1] = 0.5*x[0][1] + 0.5*x[3][1];
 
2491
    coordinates[14][2] = 0.5*x[0][2] + 0.5*x[3][2];
 
2492
    coordinates[15][0] = 0.25*x[0][0] + 0.75*x[3][0];
 
2493
    coordinates[15][1] = 0.25*x[0][1] + 0.75*x[3][1];
 
2494
    coordinates[15][2] = 0.25*x[0][2] + 0.75*x[3][2];
 
2495
    coordinates[16][0] = 0.75*x[0][0] + 0.25*x[2][0];
 
2496
    coordinates[16][1] = 0.75*x[0][1] + 0.25*x[2][1];
 
2497
    coordinates[16][2] = 0.75*x[0][2] + 0.25*x[2][2];
 
2498
    coordinates[17][0] = 0.5*x[0][0] + 0.5*x[2][0];
 
2499
    coordinates[17][1] = 0.5*x[0][1] + 0.5*x[2][1];
 
2500
    coordinates[17][2] = 0.5*x[0][2] + 0.5*x[2][2];
 
2501
    coordinates[18][0] = 0.25*x[0][0] + 0.75*x[2][0];
 
2502
    coordinates[18][1] = 0.25*x[0][1] + 0.75*x[2][1];
 
2503
    coordinates[18][2] = 0.25*x[0][2] + 0.75*x[2][2];
 
2504
    coordinates[19][0] = 0.75*x[0][0] + 0.25*x[1][0];
 
2505
    coordinates[19][1] = 0.75*x[0][1] + 0.25*x[1][1];
 
2506
    coordinates[19][2] = 0.75*x[0][2] + 0.25*x[1][2];
 
2507
    coordinates[20][0] = 0.5*x[0][0] + 0.5*x[1][0];
 
2508
    coordinates[20][1] = 0.5*x[0][1] + 0.5*x[1][1];
 
2509
    coordinates[20][2] = 0.5*x[0][2] + 0.5*x[1][2];
 
2510
    coordinates[21][0] = 0.25*x[0][0] + 0.75*x[1][0];
 
2511
    coordinates[21][1] = 0.25*x[0][1] + 0.75*x[1][1];
 
2512
    coordinates[21][2] = 0.25*x[0][2] + 0.75*x[1][2];
 
2513
    coordinates[22][0] = 0.5*x[1][0] + 0.25*x[2][0] + 0.25*x[3][0];
 
2514
    coordinates[22][1] = 0.5*x[1][1] + 0.25*x[2][1] + 0.25*x[3][1];
 
2515
    coordinates[22][2] = 0.5*x[1][2] + 0.25*x[2][2] + 0.25*x[3][2];
 
2516
    coordinates[23][0] = 0.25*x[1][0] + 0.5*x[2][0] + 0.25*x[3][0];
 
2517
    coordinates[23][1] = 0.25*x[1][1] + 0.5*x[2][1] + 0.25*x[3][1];
 
2518
    coordinates[23][2] = 0.25*x[1][2] + 0.5*x[2][2] + 0.25*x[3][2];
 
2519
    coordinates[24][0] = 0.25*x[1][0] + 0.25*x[2][0] + 0.5*x[3][0];
 
2520
    coordinates[24][1] = 0.25*x[1][1] + 0.25*x[2][1] + 0.5*x[3][1];
 
2521
    coordinates[24][2] = 0.25*x[1][2] + 0.25*x[2][2] + 0.5*x[3][2];
 
2522
    coordinates[25][0] = 0.5*x[0][0] + 0.25*x[2][0] + 0.25*x[3][0];
 
2523
    coordinates[25][1] = 0.5*x[0][1] + 0.25*x[2][1] + 0.25*x[3][1];
 
2524
    coordinates[25][2] = 0.5*x[0][2] + 0.25*x[2][2] + 0.25*x[3][2];
 
2525
    coordinates[26][0] = 0.25*x[0][0] + 0.5*x[2][0] + 0.25*x[3][0];
 
2526
    coordinates[26][1] = 0.25*x[0][1] + 0.5*x[2][1] + 0.25*x[3][1];
 
2527
    coordinates[26][2] = 0.25*x[0][2] + 0.5*x[2][2] + 0.25*x[3][2];
 
2528
    coordinates[27][0] = 0.25*x[0][0] + 0.25*x[2][0] + 0.5*x[3][0];
 
2529
    coordinates[27][1] = 0.25*x[0][1] + 0.25*x[2][1] + 0.5*x[3][1];
 
2530
    coordinates[27][2] = 0.25*x[0][2] + 0.25*x[2][2] + 0.5*x[3][2];
 
2531
    coordinates[28][0] = 0.5*x[0][0] + 0.25*x[1][0] + 0.25*x[3][0];
 
2532
    coordinates[28][1] = 0.5*x[0][1] + 0.25*x[1][1] + 0.25*x[3][1];
 
2533
    coordinates[28][2] = 0.5*x[0][2] + 0.25*x[1][2] + 0.25*x[3][2];
 
2534
    coordinates[29][0] = 0.25*x[0][0] + 0.5*x[1][0] + 0.25*x[3][0];
 
2535
    coordinates[29][1] = 0.25*x[0][1] + 0.5*x[1][1] + 0.25*x[3][1];
 
2536
    coordinates[29][2] = 0.25*x[0][2] + 0.5*x[1][2] + 0.25*x[3][2];
 
2537
    coordinates[30][0] = 0.25*x[0][0] + 0.25*x[1][0] + 0.5*x[3][0];
 
2538
    coordinates[30][1] = 0.25*x[0][1] + 0.25*x[1][1] + 0.5*x[3][1];
 
2539
    coordinates[30][2] = 0.25*x[0][2] + 0.25*x[1][2] + 0.5*x[3][2];
 
2540
    coordinates[31][0] = 0.5*x[0][0] + 0.25*x[1][0] + 0.25*x[2][0];
 
2541
    coordinates[31][1] = 0.5*x[0][1] + 0.25*x[1][1] + 0.25*x[2][1];
 
2542
    coordinates[31][2] = 0.5*x[0][2] + 0.25*x[1][2] + 0.25*x[2][2];
 
2543
    coordinates[32][0] = 0.25*x[0][0] + 0.5*x[1][0] + 0.25*x[2][0];
 
2544
    coordinates[32][1] = 0.25*x[0][1] + 0.5*x[1][1] + 0.25*x[2][1];
 
2545
    coordinates[32][2] = 0.25*x[0][2] + 0.5*x[1][2] + 0.25*x[2][2];
 
2546
    coordinates[33][0] = 0.25*x[0][0] + 0.25*x[1][0] + 0.5*x[2][0];
 
2547
    coordinates[33][1] = 0.25*x[0][1] + 0.25*x[1][1] + 0.5*x[2][1];
 
2548
    coordinates[33][2] = 0.25*x[0][2] + 0.25*x[1][2] + 0.5*x[2][2];
 
2549
    coordinates[34][0] = 0.25*x[0][0] + 0.25*x[1][0] + 0.25*x[2][0] + 0.25*x[3][0];
 
2550
    coordinates[34][1] = 0.25*x[0][1] + 0.25*x[1][1] + 0.25*x[2][1] + 0.25*x[3][1];
 
2551
    coordinates[34][2] = 0.25*x[0][2] + 0.25*x[1][2] + 0.25*x[2][2] + 0.25*x[3][2];
 
2552
  }
 
2553
 
 
2554
  /// Return the number of sub dof maps (for a mixed element)
 
2555
  virtual unsigned int num_sub_dof_maps() const
 
2556
  {
 
2557
    return 1;
 
2558
  }
 
2559
 
 
2560
  /// Create a new dof_map for sub dof map i (for a mixed element)
 
2561
  virtual ufc::dof_map* create_sub_dof_map(unsigned int i) const
 
2562
  {
 
2563
    return new UFC_Poisson3D_4BilinearForm_dof_map_0();
 
2564
  }
 
2565
 
 
2566
};
 
2567
 
 
2568
/// This class defines the interface for a local-to-global mapping of
 
2569
/// degrees of freedom (dofs).
 
2570
 
 
2571
class UFC_Poisson3D_4BilinearForm_dof_map_1: public ufc::dof_map
 
2572
{
 
2573
private:
 
2574
 
 
2575
  unsigned int __global_dimension;
 
2576
 
 
2577
public:
 
2578
 
 
2579
  /// Constructor
 
2580
  UFC_Poisson3D_4BilinearForm_dof_map_1() : ufc::dof_map()
 
2581
  {
 
2582
    __global_dimension = 0;
 
2583
  }
 
2584
 
 
2585
  /// Destructor
 
2586
  virtual ~UFC_Poisson3D_4BilinearForm_dof_map_1()
 
2587
  {
 
2588
    // Do nothing
 
2589
  }
 
2590
 
 
2591
  /// Return a string identifying the dof map
 
2592
  virtual const char* signature() const
 
2593
  {
 
2594
    return "FFC dof map for FiniteElement('Lagrange', 'tetrahedron', 4)";
 
2595
  }
 
2596
 
 
2597
  /// Return true iff mesh entities of topological dimension d are needed
 
2598
  virtual bool needs_mesh_entities(unsigned int d) const
 
2599
  {
 
2600
    switch ( d )
 
2601
    {
 
2602
    case 0:
 
2603
      return true;
 
2604
      break;
 
2605
    case 1:
 
2606
      return true;
 
2607
      break;
 
2608
    case 2:
 
2609
      return true;
 
2610
      break;
 
2611
    case 3:
 
2612
      return true;
 
2613
      break;
 
2614
    }
 
2615
    return false;
 
2616
  }
 
2617
 
 
2618
  /// Initialize dof map for mesh (return true iff init_cell() is needed)
 
2619
  virtual bool init_mesh(const ufc::mesh& m)
 
2620
  {
 
2621
    __global_dimension = m.num_entities[0] + 3*m.num_entities[1] + 3*m.num_entities[2] + m.num_entities[3];
 
2622
    return false;
 
2623
  }
 
2624
 
 
2625
  /// Initialize dof map for given cell
 
2626
  virtual void init_cell(const ufc::mesh& m,
 
2627
                         const ufc::cell& c)
 
2628
  {
 
2629
    // Do nothing
 
2630
  }
 
2631
 
 
2632
  /// Finish initialization of dof map for cells
 
2633
  virtual void init_cell_finalize()
 
2634
  {
 
2635
    // Do nothing
 
2636
  }
 
2637
 
 
2638
  /// Return the dimension of the global finite element function space
 
2639
  virtual unsigned int global_dimension() const
 
2640
  {
 
2641
    return __global_dimension;
 
2642
  }
 
2643
 
 
2644
  /// Return the dimension of the local finite element function space
 
2645
  virtual unsigned int local_dimension() const
 
2646
  {
 
2647
    return 35;
 
2648
  }
 
2649
 
 
2650
  // Return the geometric dimension of the coordinates this dof map provides
 
2651
  virtual unsigned int geometric_dimension() const
 
2652
  {
 
2653
    return 3;
 
2654
  }
 
2655
 
 
2656
  /// Return the number of dofs on each cell facet
 
2657
  virtual unsigned int num_facet_dofs() const
 
2658
  {
 
2659
    return 15;
 
2660
  }
 
2661
 
 
2662
  /// Return the number of dofs associated with each cell entity of dimension d
 
2663
  virtual unsigned int num_entity_dofs(unsigned int d) const
 
2664
  {
 
2665
    throw std::runtime_error("Not implemented (introduced in UFC v1.1).");
 
2666
  }
 
2667
 
 
2668
  /// Tabulate the local-to-global mapping of dofs on a cell
 
2669
  virtual void tabulate_dofs(unsigned int* dofs,
 
2670
                             const ufc::mesh& m,
 
2671
                             const ufc::cell& c) const
 
2672
  {
 
2673
    dofs[0] = c.entity_indices[0][0];
 
2674
    dofs[1] = c.entity_indices[0][1];
 
2675
    dofs[2] = c.entity_indices[0][2];
 
2676
    dofs[3] = c.entity_indices[0][3];
 
2677
    unsigned int offset = m.num_entities[0];
 
2678
    dofs[4] = offset + 3*c.entity_indices[1][0];
 
2679
    dofs[5] = offset + 3*c.entity_indices[1][0] + 1;
 
2680
    dofs[6] = offset + 3*c.entity_indices[1][0] + 2;
 
2681
    dofs[7] = offset + 3*c.entity_indices[1][1];
 
2682
    dofs[8] = offset + 3*c.entity_indices[1][1] + 1;
 
2683
    dofs[9] = offset + 3*c.entity_indices[1][1] + 2;
 
2684
    dofs[10] = offset + 3*c.entity_indices[1][2];
 
2685
    dofs[11] = offset + 3*c.entity_indices[1][2] + 1;
 
2686
    dofs[12] = offset + 3*c.entity_indices[1][2] + 2;
 
2687
    dofs[13] = offset + 3*c.entity_indices[1][3];
 
2688
    dofs[14] = offset + 3*c.entity_indices[1][3] + 1;
 
2689
    dofs[15] = offset + 3*c.entity_indices[1][3] + 2;
 
2690
    dofs[16] = offset + 3*c.entity_indices[1][4];
 
2691
    dofs[17] = offset + 3*c.entity_indices[1][4] + 1;
 
2692
    dofs[18] = offset + 3*c.entity_indices[1][4] + 2;
 
2693
    dofs[19] = offset + 3*c.entity_indices[1][5];
 
2694
    dofs[20] = offset + 3*c.entity_indices[1][5] + 1;
 
2695
    dofs[21] = offset + 3*c.entity_indices[1][5] + 2;
 
2696
    offset = offset + 3*m.num_entities[1];
 
2697
    dofs[22] = offset + 3*c.entity_indices[2][0];
 
2698
    dofs[23] = offset + 3*c.entity_indices[2][0] + 1;
 
2699
    dofs[24] = offset + 3*c.entity_indices[2][0] + 2;
 
2700
    dofs[25] = offset + 3*c.entity_indices[2][1];
 
2701
    dofs[26] = offset + 3*c.entity_indices[2][1] + 1;
 
2702
    dofs[27] = offset + 3*c.entity_indices[2][1] + 2;
 
2703
    dofs[28] = offset + 3*c.entity_indices[2][2];
 
2704
    dofs[29] = offset + 3*c.entity_indices[2][2] + 1;
 
2705
    dofs[30] = offset + 3*c.entity_indices[2][2] + 2;
 
2706
    dofs[31] = offset + 3*c.entity_indices[2][3];
 
2707
    dofs[32] = offset + 3*c.entity_indices[2][3] + 1;
 
2708
    dofs[33] = offset + 3*c.entity_indices[2][3] + 2;
 
2709
    offset = offset + 3*m.num_entities[2];
 
2710
    dofs[34] = offset + c.entity_indices[3][0];
 
2711
  }
 
2712
 
 
2713
  /// Tabulate the local-to-local mapping from facet dofs to cell dofs
 
2714
  virtual void tabulate_facet_dofs(unsigned int* dofs,
 
2715
                                   unsigned int facet) const
 
2716
  {
 
2717
    switch ( facet )
 
2718
    {
 
2719
    case 0:
 
2720
      dofs[0] = 1;
 
2721
      dofs[1] = 2;
 
2722
      dofs[2] = 3;
 
2723
      dofs[3] = 4;
 
2724
      dofs[4] = 5;
 
2725
      dofs[5] = 6;
 
2726
      dofs[6] = 7;
 
2727
      dofs[7] = 8;
 
2728
      dofs[8] = 9;
 
2729
      dofs[9] = 10;
 
2730
      dofs[10] = 11;
 
2731
      dofs[11] = 12;
 
2732
      dofs[12] = 22;
 
2733
      dofs[13] = 23;
 
2734
      dofs[14] = 24;
 
2735
      break;
 
2736
    case 1:
 
2737
      dofs[0] = 0;
 
2738
      dofs[1] = 2;
 
2739
      dofs[2] = 3;
 
2740
      dofs[3] = 4;
 
2741
      dofs[4] = 5;
 
2742
      dofs[5] = 6;
 
2743
      dofs[6] = 13;
 
2744
      dofs[7] = 14;
 
2745
      dofs[8] = 15;
 
2746
      dofs[9] = 16;
 
2747
      dofs[10] = 17;
 
2748
      dofs[11] = 18;
 
2749
      dofs[12] = 25;
 
2750
      dofs[13] = 26;
 
2751
      dofs[14] = 27;
 
2752
      break;
 
2753
    case 2:
 
2754
      dofs[0] = 0;
 
2755
      dofs[1] = 1;
 
2756
      dofs[2] = 3;
 
2757
      dofs[3] = 7;
 
2758
      dofs[4] = 8;
 
2759
      dofs[5] = 9;
 
2760
      dofs[6] = 13;
 
2761
      dofs[7] = 14;
 
2762
      dofs[8] = 15;
 
2763
      dofs[9] = 19;
 
2764
      dofs[10] = 20;
 
2765
      dofs[11] = 21;
 
2766
      dofs[12] = 28;
 
2767
      dofs[13] = 29;
 
2768
      dofs[14] = 30;
 
2769
      break;
 
2770
    case 3:
 
2771
      dofs[0] = 0;
 
2772
      dofs[1] = 1;
 
2773
      dofs[2] = 2;
 
2774
      dofs[3] = 10;
 
2775
      dofs[4] = 11;
 
2776
      dofs[5] = 12;
 
2777
      dofs[6] = 16;
 
2778
      dofs[7] = 17;
 
2779
      dofs[8] = 18;
 
2780
      dofs[9] = 19;
 
2781
      dofs[10] = 20;
 
2782
      dofs[11] = 21;
 
2783
      dofs[12] = 31;
 
2784
      dofs[13] = 32;
 
2785
      dofs[14] = 33;
 
2786
      break;
 
2787
    }
 
2788
  }
 
2789
 
 
2790
  /// Tabulate the local-to-local mapping of dofs on entity (d, i)
 
2791
  virtual void tabulate_entity_dofs(unsigned int* dofs,
 
2792
                                    unsigned int d, unsigned int i) const
 
2793
  {
 
2794
    throw std::runtime_error("Not implemented (introduced in UFC v1.1).");
 
2795
  }
 
2796
 
 
2797
  /// Tabulate the coordinates of all dofs on a cell
 
2798
  virtual void tabulate_coordinates(double** coordinates,
 
2799
                                    const ufc::cell& c) const
 
2800
  {
 
2801
    const double * const * x = c.coordinates;
 
2802
    coordinates[0][0] = x[0][0];
 
2803
    coordinates[0][1] = x[0][1];
 
2804
    coordinates[0][2] = x[0][2];
 
2805
    coordinates[1][0] = x[1][0];
 
2806
    coordinates[1][1] = x[1][1];
 
2807
    coordinates[1][2] = x[1][2];
 
2808
    coordinates[2][0] = x[2][0];
 
2809
    coordinates[2][1] = x[2][1];
 
2810
    coordinates[2][2] = x[2][2];
 
2811
    coordinates[3][0] = x[3][0];
 
2812
    coordinates[3][1] = x[3][1];
 
2813
    coordinates[3][2] = x[3][2];
 
2814
    coordinates[4][0] = 0.75*x[2][0] + 0.25*x[3][0];
 
2815
    coordinates[4][1] = 0.75*x[2][1] + 0.25*x[3][1];
 
2816
    coordinates[4][2] = 0.75*x[2][2] + 0.25*x[3][2];
 
2817
    coordinates[5][0] = 0.5*x[2][0] + 0.5*x[3][0];
 
2818
    coordinates[5][1] = 0.5*x[2][1] + 0.5*x[3][1];
 
2819
    coordinates[5][2] = 0.5*x[2][2] + 0.5*x[3][2];
 
2820
    coordinates[6][0] = 0.25*x[2][0] + 0.75*x[3][0];
 
2821
    coordinates[6][1] = 0.25*x[2][1] + 0.75*x[3][1];
 
2822
    coordinates[6][2] = 0.25*x[2][2] + 0.75*x[3][2];
 
2823
    coordinates[7][0] = 0.75*x[1][0] + 0.25*x[3][0];
 
2824
    coordinates[7][1] = 0.75*x[1][1] + 0.25*x[3][1];
 
2825
    coordinates[7][2] = 0.75*x[1][2] + 0.25*x[3][2];
 
2826
    coordinates[8][0] = 0.5*x[1][0] + 0.5*x[3][0];
 
2827
    coordinates[8][1] = 0.5*x[1][1] + 0.5*x[3][1];
 
2828
    coordinates[8][2] = 0.5*x[1][2] + 0.5*x[3][2];
 
2829
    coordinates[9][0] = 0.25*x[1][0] + 0.75*x[3][0];
 
2830
    coordinates[9][1] = 0.25*x[1][1] + 0.75*x[3][1];
 
2831
    coordinates[9][2] = 0.25*x[1][2] + 0.75*x[3][2];
 
2832
    coordinates[10][0] = 0.75*x[1][0] + 0.25*x[2][0];
 
2833
    coordinates[10][1] = 0.75*x[1][1] + 0.25*x[2][1];
 
2834
    coordinates[10][2] = 0.75*x[1][2] + 0.25*x[2][2];
 
2835
    coordinates[11][0] = 0.5*x[1][0] + 0.5*x[2][0];
 
2836
    coordinates[11][1] = 0.5*x[1][1] + 0.5*x[2][1];
 
2837
    coordinates[11][2] = 0.5*x[1][2] + 0.5*x[2][2];
 
2838
    coordinates[12][0] = 0.25*x[1][0] + 0.75*x[2][0];
 
2839
    coordinates[12][1] = 0.25*x[1][1] + 0.75*x[2][1];
 
2840
    coordinates[12][2] = 0.25*x[1][2] + 0.75*x[2][2];
 
2841
    coordinates[13][0] = 0.75*x[0][0] + 0.25*x[3][0];
 
2842
    coordinates[13][1] = 0.75*x[0][1] + 0.25*x[3][1];
 
2843
    coordinates[13][2] = 0.75*x[0][2] + 0.25*x[3][2];
 
2844
    coordinates[14][0] = 0.5*x[0][0] + 0.5*x[3][0];
 
2845
    coordinates[14][1] = 0.5*x[0][1] + 0.5*x[3][1];
 
2846
    coordinates[14][2] = 0.5*x[0][2] + 0.5*x[3][2];
 
2847
    coordinates[15][0] = 0.25*x[0][0] + 0.75*x[3][0];
 
2848
    coordinates[15][1] = 0.25*x[0][1] + 0.75*x[3][1];
 
2849
    coordinates[15][2] = 0.25*x[0][2] + 0.75*x[3][2];
 
2850
    coordinates[16][0] = 0.75*x[0][0] + 0.25*x[2][0];
 
2851
    coordinates[16][1] = 0.75*x[0][1] + 0.25*x[2][1];
 
2852
    coordinates[16][2] = 0.75*x[0][2] + 0.25*x[2][2];
 
2853
    coordinates[17][0] = 0.5*x[0][0] + 0.5*x[2][0];
 
2854
    coordinates[17][1] = 0.5*x[0][1] + 0.5*x[2][1];
 
2855
    coordinates[17][2] = 0.5*x[0][2] + 0.5*x[2][2];
 
2856
    coordinates[18][0] = 0.25*x[0][0] + 0.75*x[2][0];
 
2857
    coordinates[18][1] = 0.25*x[0][1] + 0.75*x[2][1];
 
2858
    coordinates[18][2] = 0.25*x[0][2] + 0.75*x[2][2];
 
2859
    coordinates[19][0] = 0.75*x[0][0] + 0.25*x[1][0];
 
2860
    coordinates[19][1] = 0.75*x[0][1] + 0.25*x[1][1];
 
2861
    coordinates[19][2] = 0.75*x[0][2] + 0.25*x[1][2];
 
2862
    coordinates[20][0] = 0.5*x[0][0] + 0.5*x[1][0];
 
2863
    coordinates[20][1] = 0.5*x[0][1] + 0.5*x[1][1];
 
2864
    coordinates[20][2] = 0.5*x[0][2] + 0.5*x[1][2];
 
2865
    coordinates[21][0] = 0.25*x[0][0] + 0.75*x[1][0];
 
2866
    coordinates[21][1] = 0.25*x[0][1] + 0.75*x[1][1];
 
2867
    coordinates[21][2] = 0.25*x[0][2] + 0.75*x[1][2];
 
2868
    coordinates[22][0] = 0.5*x[1][0] + 0.25*x[2][0] + 0.25*x[3][0];
 
2869
    coordinates[22][1] = 0.5*x[1][1] + 0.25*x[2][1] + 0.25*x[3][1];
 
2870
    coordinates[22][2] = 0.5*x[1][2] + 0.25*x[2][2] + 0.25*x[3][2];
 
2871
    coordinates[23][0] = 0.25*x[1][0] + 0.5*x[2][0] + 0.25*x[3][0];
 
2872
    coordinates[23][1] = 0.25*x[1][1] + 0.5*x[2][1] + 0.25*x[3][1];
 
2873
    coordinates[23][2] = 0.25*x[1][2] + 0.5*x[2][2] + 0.25*x[3][2];
 
2874
    coordinates[24][0] = 0.25*x[1][0] + 0.25*x[2][0] + 0.5*x[3][0];
 
2875
    coordinates[24][1] = 0.25*x[1][1] + 0.25*x[2][1] + 0.5*x[3][1];
 
2876
    coordinates[24][2] = 0.25*x[1][2] + 0.25*x[2][2] + 0.5*x[3][2];
 
2877
    coordinates[25][0] = 0.5*x[0][0] + 0.25*x[2][0] + 0.25*x[3][0];
 
2878
    coordinates[25][1] = 0.5*x[0][1] + 0.25*x[2][1] + 0.25*x[3][1];
 
2879
    coordinates[25][2] = 0.5*x[0][2] + 0.25*x[2][2] + 0.25*x[3][2];
 
2880
    coordinates[26][0] = 0.25*x[0][0] + 0.5*x[2][0] + 0.25*x[3][0];
 
2881
    coordinates[26][1] = 0.25*x[0][1] + 0.5*x[2][1] + 0.25*x[3][1];
 
2882
    coordinates[26][2] = 0.25*x[0][2] + 0.5*x[2][2] + 0.25*x[3][2];
 
2883
    coordinates[27][0] = 0.25*x[0][0] + 0.25*x[2][0] + 0.5*x[3][0];
 
2884
    coordinates[27][1] = 0.25*x[0][1] + 0.25*x[2][1] + 0.5*x[3][1];
 
2885
    coordinates[27][2] = 0.25*x[0][2] + 0.25*x[2][2] + 0.5*x[3][2];
 
2886
    coordinates[28][0] = 0.5*x[0][0] + 0.25*x[1][0] + 0.25*x[3][0];
 
2887
    coordinates[28][1] = 0.5*x[0][1] + 0.25*x[1][1] + 0.25*x[3][1];
 
2888
    coordinates[28][2] = 0.5*x[0][2] + 0.25*x[1][2] + 0.25*x[3][2];
 
2889
    coordinates[29][0] = 0.25*x[0][0] + 0.5*x[1][0] + 0.25*x[3][0];
 
2890
    coordinates[29][1] = 0.25*x[0][1] + 0.5*x[1][1] + 0.25*x[3][1];
 
2891
    coordinates[29][2] = 0.25*x[0][2] + 0.5*x[1][2] + 0.25*x[3][2];
 
2892
    coordinates[30][0] = 0.25*x[0][0] + 0.25*x[1][0] + 0.5*x[3][0];
 
2893
    coordinates[30][1] = 0.25*x[0][1] + 0.25*x[1][1] + 0.5*x[3][1];
 
2894
    coordinates[30][2] = 0.25*x[0][2] + 0.25*x[1][2] + 0.5*x[3][2];
 
2895
    coordinates[31][0] = 0.5*x[0][0] + 0.25*x[1][0] + 0.25*x[2][0];
 
2896
    coordinates[31][1] = 0.5*x[0][1] + 0.25*x[1][1] + 0.25*x[2][1];
 
2897
    coordinates[31][2] = 0.5*x[0][2] + 0.25*x[1][2] + 0.25*x[2][2];
 
2898
    coordinates[32][0] = 0.25*x[0][0] + 0.5*x[1][0] + 0.25*x[2][0];
 
2899
    coordinates[32][1] = 0.25*x[0][1] + 0.5*x[1][1] + 0.25*x[2][1];
 
2900
    coordinates[32][2] = 0.25*x[0][2] + 0.5*x[1][2] + 0.25*x[2][2];
 
2901
    coordinates[33][0] = 0.25*x[0][0] + 0.25*x[1][0] + 0.5*x[2][0];
 
2902
    coordinates[33][1] = 0.25*x[0][1] + 0.25*x[1][1] + 0.5*x[2][1];
 
2903
    coordinates[33][2] = 0.25*x[0][2] + 0.25*x[1][2] + 0.5*x[2][2];
 
2904
    coordinates[34][0] = 0.25*x[0][0] + 0.25*x[1][0] + 0.25*x[2][0] + 0.25*x[3][0];
 
2905
    coordinates[34][1] = 0.25*x[0][1] + 0.25*x[1][1] + 0.25*x[2][1] + 0.25*x[3][1];
 
2906
    coordinates[34][2] = 0.25*x[0][2] + 0.25*x[1][2] + 0.25*x[2][2] + 0.25*x[3][2];
 
2907
  }
 
2908
 
 
2909
  /// Return the number of sub dof maps (for a mixed element)
 
2910
  virtual unsigned int num_sub_dof_maps() const
 
2911
  {
 
2912
    return 1;
 
2913
  }
 
2914
 
 
2915
  /// Create a new dof_map for sub dof map i (for a mixed element)
 
2916
  virtual ufc::dof_map* create_sub_dof_map(unsigned int i) const
 
2917
  {
 
2918
    return new UFC_Poisson3D_4BilinearForm_dof_map_1();
 
2919
  }
 
2920
 
 
2921
};
 
2922
 
 
2923
/// This class defines the interface for the tabulation of the cell
 
2924
/// tensor corresponding to the local contribution to a form from
 
2925
/// the integral over a cell.
 
2926
 
 
2927
class UFC_Poisson3D_4BilinearForm_cell_integral_0: public ufc::cell_integral
 
2928
{
 
2929
public:
 
2930
 
 
2931
  /// Constructor
 
2932
  UFC_Poisson3D_4BilinearForm_cell_integral_0() : ufc::cell_integral()
 
2933
  {
 
2934
    // Do nothing
 
2935
  }
 
2936
 
 
2937
  /// Destructor
 
2938
  virtual ~UFC_Poisson3D_4BilinearForm_cell_integral_0()
 
2939
  {
 
2940
    // Do nothing
 
2941
  }
 
2942
 
 
2943
  /// Tabulate the tensor for the contribution from a local cell
 
2944
  virtual void tabulate_tensor(double* A,
 
2945
                               const double * const * w,
 
2946
                               const ufc::cell& c) const
 
2947
  {
 
2948
    // Extract vertex coordinates
 
2949
    const double * const * x = c.coordinates;
 
2950
    
 
2951
    // Compute Jacobian of affine map from reference cell
 
2952
    const double J_00 = x[1][0] - x[0][0];
 
2953
    const double J_01 = x[2][0] - x[0][0];
 
2954
    const double J_02 = x[3][0] - x[0][0];
 
2955
    const double J_10 = x[1][1] - x[0][1];
 
2956
    const double J_11 = x[2][1] - x[0][1];
 
2957
    const double J_12 = x[3][1] - x[0][1];
 
2958
    const double J_20 = x[1][2] - x[0][2];
 
2959
    const double J_21 = x[2][2] - x[0][2];
 
2960
    const double J_22 = x[3][2] - x[0][2];
 
2961
      
 
2962
    // Compute sub determinants
 
2963
    const double d_00 = J_11*J_22 - J_12*J_21;
 
2964
    const double d_01 = J_12*J_20 - J_10*J_22;
 
2965
    const double d_02 = J_10*J_21 - J_11*J_20;
 
2966
    
 
2967
    const double d_10 = J_02*J_21 - J_01*J_22;
 
2968
    const double d_11 = J_00*J_22 - J_02*J_20;
 
2969
    const double d_12 = J_01*J_20 - J_00*J_21;
 
2970
    
 
2971
    const double d_20 = J_01*J_12 - J_02*J_11;
 
2972
    const double d_21 = J_02*J_10 - J_00*J_12;
 
2973
    const double d_22 = J_00*J_11 - J_01*J_10;
 
2974
      
 
2975
    // Compute determinant of Jacobian
 
2976
    double detJ = J_00*d_00 + J_10*d_10 + J_20*d_20;
 
2977
      
 
2978
    // Compute inverse of Jacobian
 
2979
    const double Jinv_00 = d_00 / detJ;
 
2980
    const double Jinv_01 = d_10 / detJ;
 
2981
    const double Jinv_02 = d_20 / detJ;
 
2982
    const double Jinv_10 = d_01 / detJ;
 
2983
    const double Jinv_11 = d_11 / detJ;
 
2984
    const double Jinv_12 = d_21 / detJ;
 
2985
    const double Jinv_20 = d_02 / detJ;
 
2986
    const double Jinv_21 = d_12 / detJ;
 
2987
    const double Jinv_22 = d_22 / detJ;
 
2988
    
 
2989
    // Set scale factor
 
2990
    const double det = std::abs(detJ);
 
2991
    
 
2992
    // Number of operations to compute element tensor = 12677
 
2993
    // Compute geometry tensors
 
2994
    // Number of operations to compute decalrations = 54
 
2995
    const double G0_0_0 = det*(Jinv_00*Jinv_00 + Jinv_01*Jinv_01 + Jinv_02*Jinv_02);
 
2996
    const double G0_0_1 = det*(Jinv_00*Jinv_10 + Jinv_01*Jinv_11 + Jinv_02*Jinv_12);
 
2997
    const double G0_0_2 = det*(Jinv_00*Jinv_20 + Jinv_01*Jinv_21 + Jinv_02*Jinv_22);
 
2998
    const double G0_1_0 = det*(Jinv_10*Jinv_00 + Jinv_11*Jinv_01 + Jinv_12*Jinv_02);
 
2999
    const double G0_1_1 = det*(Jinv_10*Jinv_10 + Jinv_11*Jinv_11 + Jinv_12*Jinv_12);
 
3000
    const double G0_1_2 = det*(Jinv_10*Jinv_20 + Jinv_11*Jinv_21 + Jinv_12*Jinv_22);
 
3001
    const double G0_2_0 = det*(Jinv_20*Jinv_00 + Jinv_21*Jinv_01 + Jinv_22*Jinv_02);
 
3002
    const double G0_2_1 = det*(Jinv_20*Jinv_10 + Jinv_21*Jinv_11 + Jinv_22*Jinv_12);
 
3003
    const double G0_2_2 = det*(Jinv_20*Jinv_20 + Jinv_21*Jinv_21 + Jinv_22*Jinv_22);
 
3004
    
 
3005
    // Compute element tensor
 
3006
    // Number of operations to compute tensor = 12623
 
3007
    A[0] = 0.0379188712522045*G0_0_0 + 0.0379188712522045*G0_0_1 + 0.0379188712522045*G0_0_2 + 0.0379188712522045*G0_1_0 + 0.0379188712522045*G0_1_1 + 0.0379188712522045*G0_1_2 + 0.0379188712522045*G0_2_0 + 0.0379188712522045*G0_2_1 + 0.0379188712522045*G0_2_2;
 
3008
    A[1] = 0.00511463844797179*G0_0_0 + 0.00511463844797177*G0_1_0 + 0.00511463844797178*G0_2_0;
 
3009
    A[2] = 0.00511463844797177*G0_0_1 + 0.00511463844797176*G0_1_1 + 0.00511463844797177*G0_2_1;
 
3010
    A[3] = 0.00511463844797176*G0_0_2 + 0.00511463844797176*G0_1_2 + 0.00511463844797177*G0_2_2;
 
3011
    A[4] = 0.00776014109347435*G0_0_1 + 0.00776014109347437*G0_0_2 + 0.00776014109347437*G0_1_1 + 0.00776014109347437*G0_1_2 + 0.00776014109347435*G0_2_1 + 0.00776014109347437*G0_2_2;
 
3012
    A[5] = 0.00511463844797184*G0_0_1 + 0.00511463844797176*G0_0_2 + 0.00511463844797184*G0_1_1 + 0.00511463844797176*G0_1_2 + 0.00511463844797184*G0_2_1 + 0.00511463844797177*G0_2_2;
 
3013
    A[6] = 0.00776014109347437*G0_0_1 + 0.00776014109347444*G0_0_2 + 0.00776014109347439*G0_1_1 + 0.00776014109347445*G0_1_2 + 0.00776014109347438*G0_2_1 + 0.00776014109347443*G0_2_2;
 
3014
    A[7] = 0.00776014109347433*G0_0_0 + 0.00776014109347437*G0_0_2 + 0.00776014109347433*G0_1_0 + 0.00776014109347437*G0_1_2 + 0.00776014109347432*G0_2_0 + 0.00776014109347437*G0_2_2;
 
3015
    A[8] = 0.00511463844797189*G0_0_0 + 0.00511463844797185*G0_0_2 + 0.00511463844797188*G0_1_0 + 0.00511463844797184*G0_1_2 + 0.0051146384479719*G0_2_0 + 0.00511463844797185*G0_2_2;
 
3016
    A[9] = 0.00776014109347437*G0_0_0 + 0.00776014109347441*G0_0_2 + 0.00776014109347439*G0_1_0 + 0.00776014109347443*G0_1_2 + 0.00776014109347438*G0_2_0 + 0.00776014109347441*G0_2_2;
 
3017
    A[10] = 0.0077601410934743*G0_0_0 + 0.00776014109347437*G0_0_1 + 0.0077601410934743*G0_1_0 + 0.00776014109347437*G0_1_1 + 0.0077601410934743*G0_2_0 + 0.00776014109347437*G0_2_1;
 
3018
    A[11] = 0.00511463844797178*G0_0_0 + 0.0051146384479717*G0_0_1 + 0.0051146384479718*G0_1_0 + 0.00511463844797171*G0_1_1 + 0.00511463844797179*G0_2_0 + 0.0051146384479717*G0_2_1;
 
3019
    A[12] = 0.00776014109347439*G0_0_0 + 0.00776014109347441*G0_0_1 + 0.0077601410934744*G0_1_0 + 0.00776014109347444*G0_1_1 + 0.00776014109347439*G0_2_0 + 0.00776014109347442*G0_2_1;
 
3020
    A[13] = -0.0246913580246914*G0_0_0 - 0.0246913580246914*G0_0_1 - 0.0705467372134038*G0_0_2 - 0.0246913580246914*G0_1_0 - 0.0246913580246914*G0_1_1 - 0.0705467372134038*G0_1_2 - 0.0246913580246914*G0_2_0 - 0.0246913580246914*G0_2_1 - 0.0705467372134038*G0_2_2;
 
3021
    A[14] = 0.0202821869488536*G0_0_0 + 0.0202821869488536*G0_0_1 + 0.0529100529100528*G0_0_2 + 0.0202821869488536*G0_1_0 + 0.0202821869488536*G0_1_1 + 0.0529100529100529*G0_1_2 + 0.0202821869488536*G0_2_0 + 0.0202821869488536*G0_2_1 + 0.0529100529100528*G0_2_2;
 
3022
    A[15] = -0.00776014109347437*G0_0_0 - 0.00776014109347437*G0_0_1 - 0.0253968253968253*G0_0_2 - 0.00776014109347439*G0_1_0 - 0.00776014109347439*G0_1_1 - 0.0253968253968254*G0_1_2 - 0.00776014109347438*G0_2_0 - 0.00776014109347439*G0_2_1 - 0.0253968253968254*G0_2_2;
 
3023
    A[16] = -0.0246913580246913*G0_0_0 - 0.0705467372134038*G0_0_1 - 0.0246913580246913*G0_0_2 - 0.0246913580246914*G0_1_0 - 0.0705467372134038*G0_1_1 - 0.0246913580246914*G0_1_2 - 0.0246913580246914*G0_2_0 - 0.0705467372134038*G0_2_1 - 0.0246913580246914*G0_2_2;
 
3024
    A[17] = 0.0202821869488536*G0_0_0 + 0.0529100529100529*G0_0_1 + 0.0202821869488536*G0_0_2 + 0.0202821869488536*G0_1_0 + 0.0529100529100528*G0_1_1 + 0.0202821869488536*G0_1_2 + 0.0202821869488536*G0_2_0 + 0.0529100529100529*G0_2_1 + 0.0202821869488536*G0_2_2;
 
3025
    A[18] = -0.0077601410934744*G0_0_0 - 0.0253968253968254*G0_0_1 - 0.0077601410934744*G0_0_2 - 0.0077601410934744*G0_1_0 - 0.0253968253968254*G0_1_1 - 0.00776014109347441*G0_1_2 - 0.0077601410934744*G0_2_0 - 0.0253968253968254*G0_2_1 - 0.0077601410934744*G0_2_2;
 
3026
    A[19] = -0.0705467372134038*G0_0_0 - 0.0246913580246913*G0_0_1 - 0.0246913580246913*G0_0_2 - 0.0705467372134037*G0_1_0 - 0.0246913580246913*G0_1_1 - 0.0246913580246913*G0_1_2 - 0.0705467372134038*G0_2_0 - 0.0246913580246913*G0_2_1 - 0.0246913580246913*G0_2_2;
 
3027
    A[20] = 0.0529100529100528*G0_0_0 + 0.0202821869488536*G0_0_1 + 0.0202821869488536*G0_0_2 + 0.0529100529100528*G0_1_0 + 0.0202821869488536*G0_1_1 + 0.0202821869488536*G0_1_2 + 0.0529100529100528*G0_2_0 + 0.0202821869488536*G0_2_1 + 0.0202821869488536*G0_2_2;
 
3028
    A[21] = -0.0253968253968254*G0_0_0 - 0.00776014109347437*G0_0_1 - 0.00776014109347438*G0_0_2 - 0.0253968253968253*G0_1_0 - 0.00776014109347437*G0_1_1 - 0.00776014109347438*G0_1_2 - 0.0253968253968254*G0_2_0 - 0.00776014109347436*G0_2_1 - 0.00776014109347437*G0_2_2;
 
3029
    A[22] = 0.0183421516754849*G0_0_0 + 0.0183421516754849*G0_0_1 + 0.0183421516754848*G0_0_2 + 0.0183421516754849*G0_1_0 + 0.0183421516754849*G0_1_1 + 0.0183421516754848*G0_1_2 + 0.0183421516754849*G0_2_0 + 0.0183421516754849*G0_2_1 + 0.0183421516754848*G0_2_2;
 
3030
    A[23] = 0.0183421516754849*G0_0_0 + 0.0183421516754849*G0_0_1 + 0.0183421516754849*G0_0_2 + 0.0183421516754849*G0_1_0 + 0.0183421516754849*G0_1_1 + 0.018342151675485*G0_1_2 + 0.0183421516754849*G0_2_0 + 0.0183421516754849*G0_2_1 + 0.0183421516754849*G0_2_2;
 
3031
    A[24] = 0.0183421516754851*G0_0_0 + 0.0183421516754851*G0_0_1 + 0.0183421516754851*G0_0_2 + 0.0183421516754851*G0_1_0 + 0.0183421516754851*G0_1_1 + 0.0183421516754851*G0_1_2 + 0.0183421516754851*G0_2_0 + 0.0183421516754851*G0_2_1 + 0.0183421516754851*G0_2_2;
 
3032
    A[25] = 0.0493827160493827*G0_0_0 + 0.0423280423280423*G0_0_1 + 0.0423280423280423*G0_0_2 + 0.0493827160493826*G0_1_0 + 0.0423280423280424*G0_1_1 + 0.0423280423280424*G0_1_2 + 0.0493827160493826*G0_2_0 + 0.0423280423280424*G0_2_1 + 0.0423280423280424*G0_2_2;
 
3033
    A[26] = -0.0183421516754849*G0_0_0 - 0.0253968253968253*G0_0_1 - 0.0253968253968254*G0_0_2 - 0.0183421516754849*G0_1_0 - 0.0253968253968254*G0_1_1 - 0.0253968253968254*G0_1_2 - 0.0183421516754849*G0_2_0 - 0.0253968253968253*G0_2_1 - 0.0253968253968254*G0_2_2;
 
3034
    A[27] = -0.0183421516754851*G0_0_0 - 0.0253968253968254*G0_0_1 - 0.0253968253968254*G0_0_2 - 0.0183421516754851*G0_1_0 - 0.0253968253968254*G0_1_1 - 0.0253968253968254*G0_1_2 - 0.0183421516754851*G0_2_0 - 0.0253968253968254*G0_2_1 - 0.0253968253968254*G0_2_2;
 
3035
    A[28] = 0.0423280423280423*G0_0_0 + 0.0493827160493826*G0_0_1 + 0.0423280423280422*G0_0_2 + 0.0423280423280423*G0_1_0 + 0.0493827160493826*G0_1_1 + 0.0423280423280422*G0_1_2 + 0.0423280423280423*G0_2_0 + 0.0493827160493826*G0_2_1 + 0.0423280423280422*G0_2_2;
 
3036
    A[29] = -0.0253968253968253*G0_0_0 - 0.0183421516754849*G0_0_1 - 0.0253968253968254*G0_0_2 - 0.0253968253968253*G0_1_0 - 0.0183421516754849*G0_1_1 - 0.0253968253968254*G0_1_2 - 0.0253968253968253*G0_2_0 - 0.0183421516754849*G0_2_1 - 0.0253968253968254*G0_2_2;
 
3037
    A[30] = -0.0253968253968254*G0_0_0 - 0.0183421516754851*G0_0_1 - 0.0253968253968254*G0_0_2 - 0.0253968253968255*G0_1_0 - 0.0183421516754851*G0_1_1 - 0.0253968253968254*G0_1_2 - 0.0253968253968255*G0_2_0 - 0.0183421516754851*G0_2_1 - 0.0253968253968253*G0_2_2;
 
3038
    A[31] = 0.0423280423280422*G0_0_0 + 0.0423280423280422*G0_0_1 + 0.0493827160493827*G0_0_2 + 0.0423280423280423*G0_1_0 + 0.0423280423280423*G0_1_1 + 0.0493827160493826*G0_1_2 + 0.0423280423280423*G0_2_0 + 0.0423280423280423*G0_2_1 + 0.0493827160493826*G0_2_2;
 
3039
    A[32] = -0.0253968253968252*G0_0_0 - 0.0253968253968253*G0_0_1 - 0.0183421516754848*G0_0_2 - 0.0253968253968253*G0_1_0 - 0.0253968253968253*G0_1_1 - 0.0183421516754848*G0_1_2 - 0.0253968253968253*G0_2_0 - 0.0253968253968253*G0_2_1 - 0.0183421516754848*G0_2_2;
 
3040
    A[33] = -0.0253968253968254*G0_0_0 - 0.0253968253968253*G0_0_1 - 0.0183421516754849*G0_0_2 - 0.0253968253968254*G0_1_0 - 0.0253968253968254*G0_1_1 - 0.018342151675485*G0_1_2 - 0.0253968253968254*G0_2_0 - 0.0253968253968254*G0_2_1 - 0.0183421516754849*G0_2_2;
 
3041
    A[34] = -0.0677248677248676*G0_0_0 - 0.0677248677248675*G0_0_1 - 0.0677248677248677*G0_0_2 - 0.0677248677248675*G0_1_0 - 0.0677248677248675*G0_1_1 - 0.0677248677248677*G0_1_2 - 0.0677248677248675*G0_2_0 - 0.0677248677248675*G0_2_1 - 0.0677248677248678*G0_2_2;
 
3042
    A[35] = 0.00511463844797179*G0_0_0 + 0.00511463844797177*G0_0_1 + 0.00511463844797178*G0_0_2;
 
3043
    A[36] = 0.0379188712522045*G0_0_0;
 
3044
    A[37] = -0.00511463844797177*G0_0_1;
 
3045
    A[38] = -0.00511463844797178*G0_0_2;
 
3046
    A[39] = -0.00776014109347435*G0_0_1 - 0.00776014109347434*G0_0_2;
 
3047
    A[40] = -0.00511463844797179*G0_0_1 - 0.00511463844797181*G0_0_2;
 
3048
    A[41] = -0.00776014109347437*G0_0_1 - 0.00776014109347435*G0_0_2;
 
3049
    A[42] = -0.0246913580246912*G0_0_0 + 0.0458553791887125*G0_0_2;
 
3050
    A[43] = 0.0202821869488536*G0_0_0 - 0.0326278659611993*G0_0_2;
 
3051
    A[44] = -0.00776014109347435*G0_0_0 + 0.017636684303351*G0_0_2;
 
3052
    A[45] = -0.0246913580246912*G0_0_0 + 0.0458553791887125*G0_0_1;
 
3053
    A[46] = 0.0202821869488535*G0_0_0 - 0.0326278659611993*G0_0_1;
 
3054
    A[47] = -0.00776014109347435*G0_0_0 + 0.017636684303351*G0_0_1;
 
3055
    A[48] = 0.00776014109347436*G0_0_0 + 0.00776014109347438*G0_0_1;
 
3056
    A[49] = 0.0051146384479718*G0_0_0 + 0.00511463844797177*G0_0_1;
 
3057
    A[50] = 0.00776014109347437*G0_0_0 + 0.00776014109347437*G0_0_1;
 
3058
    A[51] = 0.00776014109347436*G0_0_0 + 0.00776014109347436*G0_0_2;
 
3059
    A[52] = 0.00511463844797176*G0_0_0 + 0.00511463844797178*G0_0_2;
 
3060
    A[53] = 0.00776014109347437*G0_0_0 + 0.00776014109347435*G0_0_2;
 
3061
    A[54] = -0.0253968253968253*G0_0_0 - 0.017636684303351*G0_0_1 - 0.017636684303351*G0_0_2;
 
3062
    A[55] = 0.0529100529100528*G0_0_0 + 0.0326278659611993*G0_0_1 + 0.0326278659611993*G0_0_2;
 
3063
    A[56] = -0.0705467372134038*G0_0_0 - 0.0458553791887125*G0_0_1 - 0.0458553791887125*G0_0_2;
 
3064
    A[57] = 0.0493827160493825*G0_0_0 + 0.00705467372134032*G0_0_1 + 0.0070546737213403*G0_0_2;
 
3065
    A[58] = -0.0183421516754849*G0_0_0 + 0.00705467372134036*G0_0_1 + 0.00705467372134039*G0_0_2;
 
3066
    A[59] = -0.0183421516754849*G0_0_0 + 0.00705467372134042*G0_0_1 + 0.00705467372134036*G0_0_2;
 
3067
    A[60] = 0.0183421516754849*G0_0_0;
 
3068
    A[61] = 0.0183421516754849*G0_0_0;
 
3069
    A[62] = 0.0183421516754849*G0_0_0;
 
3070
    A[63] = -0.0253968253968253*G0_0_0 - 0.00705467372134033*G0_0_1;
 
3071
    A[64] = 0.0423280423280422*G0_0_0 - 0.00705467372134039*G0_0_1;
 
3072
    A[65] = -0.0253968253968253*G0_0_0 - 0.0070546737213404*G0_0_1;
 
3073
    A[66] = -0.0253968253968252*G0_0_0 - 0.0070546737213403*G0_0_2;
 
3074
    A[67] = 0.0423280423280421*G0_0_0 - 0.00705467372134034*G0_0_2;
 
3075
    A[68] = -0.0253968253968253*G0_0_0 - 0.00705467372134038*G0_0_2;
 
3076
    A[69] = -0.0677248677248673*G0_0_0;
 
3077
    A[70] = 0.00511463844797177*G0_1_0 + 0.00511463844797176*G0_1_1 + 0.00511463844797177*G0_1_2;
 
3078
    A[71] = -0.00511463844797177*G0_1_0;
 
3079
    A[72] = 0.0379188712522046*G0_1_1;
 
3080
    A[73] = -0.0051146384479718*G0_1_2;
 
3081
    A[74] = -0.0246913580246914*G0_1_1 + 0.0458553791887124*G0_1_2;
 
3082
    A[75] = 0.0202821869488537*G0_1_1 - 0.0326278659611993*G0_1_2;
 
3083
    A[76] = -0.00776014109347447*G0_1_1 + 0.017636684303351*G0_1_2;
 
3084
    A[77] = -0.00776014109347445*G0_1_0 - 0.00776014109347446*G0_1_2;
 
3085
    A[78] = -0.00511463844797178*G0_1_0 - 0.00511463844797172*G0_1_2;
 
3086
    A[79] = -0.00776014109347448*G0_1_0 - 0.00776014109347447*G0_1_2;
 
3087
    A[80] = 0.0176366843033509*G0_1_0 - 0.00776014109347445*G0_1_1;
 
3088
    A[81] = -0.0326278659611991*G0_1_0 + 0.0202821869488536*G0_1_1;
 
3089
    A[82] = 0.0458553791887124*G0_1_0 - 0.0246913580246913*G0_1_1;
 
3090
    A[83] = 0.00776014109347442*G0_1_0 + 0.00776014109347443*G0_1_1;
 
3091
    A[84] = 0.00511463844797175*G0_1_0 + 0.00511463844797176*G0_1_1;
 
3092
    A[85] = 0.00776014109347448*G0_1_0 + 0.00776014109347449*G0_1_1;
 
3093
    A[86] = -0.0176366843033509*G0_1_0 - 0.0253968253968253*G0_1_1 - 0.0176366843033509*G0_1_2;
 
3094
    A[87] = 0.0326278659611993*G0_1_0 + 0.0529100529100528*G0_1_1 + 0.0326278659611993*G0_1_2;
 
3095
    A[88] = -0.0458553791887124*G0_1_0 - 0.0705467372134037*G0_1_1 - 0.0458553791887124*G0_1_2;
 
3096
    A[89] = 0.00776014109347444*G0_1_1 + 0.00776014109347442*G0_1_2;
 
3097
    A[90] = 0.00511463844797178*G0_1_1 + 0.00511463844797179*G0_1_2;
 
3098
    A[91] = 0.00776014109347449*G0_1_1 + 0.00776014109347448*G0_1_2;
 
3099
    A[92] = 0.00705467372134055*G0_1_0 - 0.018342151675485*G0_1_1 + 0.00705467372134044*G0_1_2;
 
3100
    A[93] = 0.00705467372134026*G0_1_0 + 0.0493827160493828*G0_1_1 + 0.00705467372134044*G0_1_2;
 
3101
    A[94] = 0.00705467372134038*G0_1_0 - 0.018342151675485*G0_1_1 + 0.00705467372134035*G0_1_2;
 
3102
    A[95] = -0.00705467372134027*G0_1_0 - 0.0253968253968253*G0_1_1;
 
3103
    A[96] = -0.00705467372134026*G0_1_0 + 0.0423280423280424*G0_1_1;
 
3104
    A[97] = -0.00705467372134038*G0_1_0 - 0.0253968253968254*G0_1_1;
 
3105
    A[98] = 0.0183421516754851*G0_1_1;
 
3106
    A[99] = 0.018342151675485*G0_1_1;
 
3107
    A[100] = 0.018342151675485*G0_1_1;
 
3108
    A[101] = -0.0253968253968253*G0_1_1 - 0.00705467372134027*G0_1_2;
 
3109
    A[102] = -0.0253968253968255*G0_1_1 - 0.00705467372134044*G0_1_2;
 
3110
    A[103] = 0.0423280423280423*G0_1_1 - 0.00705467372134043*G0_1_2;
 
3111
    A[104] = -0.0677248677248679*G0_1_1;
 
3112
    A[105] = 0.00511463844797176*G0_2_0 + 0.00511463844797176*G0_2_1 + 0.00511463844797177*G0_2_2;
 
3113
    A[106] = -0.00511463844797178*G0_2_0;
 
3114
    A[107] = -0.0051146384479718*G0_2_1;
 
3115
    A[108] = 0.0379188712522046*G0_2_2;
 
3116
    A[109] = 0.0176366843033511*G0_2_1 - 0.00776014109347443*G0_2_2;
 
3117
    A[110] = -0.0326278659611993*G0_2_1 + 0.0202821869488537*G0_2_2;
 
3118
    A[111] = 0.0458553791887125*G0_2_1 - 0.0246913580246914*G0_2_2;
 
3119
    A[112] = 0.0176366843033509*G0_2_0 - 0.00776014109347444*G0_2_2;
 
3120
    A[113] = -0.0326278659611992*G0_2_0 + 0.0202821869488536*G0_2_2;
 
3121
    A[114] = 0.0458553791887125*G0_2_0 - 0.0246913580246914*G0_2_2;
 
3122
    A[115] = -0.00776014109347441*G0_2_0 - 0.00776014109347442*G0_2_1;
 
3123
    A[116] = -0.00511463844797178*G0_2_0 - 0.00511463844797176*G0_2_1;
 
3124
    A[117] = -0.00776014109347441*G0_2_0 - 0.00776014109347438*G0_2_1;
 
3125
    A[118] = -0.017636684303351*G0_2_0 - 0.017636684303351*G0_2_1 - 0.0253968253968253*G0_2_2;
 
3126
    A[119] = 0.0326278659611992*G0_2_0 + 0.0326278659611992*G0_2_1 + 0.0529100529100528*G0_2_2;
 
3127
    A[120] = -0.0458553791887125*G0_2_0 - 0.0458553791887125*G0_2_1 - 0.0705467372134038*G0_2_2;
 
3128
    A[121] = 0.0077601410934744*G0_2_0 + 0.00776014109347441*G0_2_2;
 
3129
    A[122] = 0.00511463844797178*G0_2_0 + 0.00511463844797178*G0_2_2;
 
3130
    A[123] = 0.00776014109347441*G0_2_0 + 0.0077601410934744*G0_2_2;
 
3131
    A[124] = 0.00776014109347441*G0_2_1 + 0.00776014109347441*G0_2_2;
 
3132
    A[125] = 0.00511463844797177*G0_2_1 + 0.00511463844797176*G0_2_2;
 
3133
    A[126] = 0.00776014109347441*G0_2_1 + 0.00776014109347441*G0_2_2;
 
3134
    A[127] = 0.00705467372134035*G0_2_0 + 0.00705467372134035*G0_2_1 - 0.018342151675485*G0_2_2;
 
3135
    A[128] = 0.00705467372134047*G0_2_0 + 0.00705467372134036*G0_2_1 - 0.0183421516754849*G0_2_2;
 
3136
    A[129] = 0.00705467372134031*G0_2_0 + 0.00705467372134038*G0_2_1 + 0.0493827160493827*G0_2_2;
 
3137
    A[130] = -0.00705467372134038*G0_2_0 - 0.0253968253968254*G0_2_2;
 
3138
    A[131] = -0.00705467372134048*G0_2_0 - 0.0253968253968254*G0_2_2;
 
3139
    A[132] = -0.00705467372134032*G0_2_0 + 0.0423280423280424*G0_2_2;
 
3140
    A[133] = -0.00705467372134043*G0_2_1 - 0.0253968253968254*G0_2_2;
 
3141
    A[134] = -0.00705467372134034*G0_2_1 - 0.0253968253968253*G0_2_2;
 
3142
    A[135] = -0.0070546737213404*G0_2_1 + 0.0423280423280423*G0_2_2;
 
3143
    A[136] = 0.018342151675485*G0_2_2;
 
3144
    A[137] = 0.018342151675485*G0_2_2;
 
3145
    A[138] = 0.0183421516754849*G0_2_2;
 
3146
    A[139] = -0.0677248677248677*G0_2_2;
 
3147
    A[140] = 0.00776014109347435*G0_1_0 + 0.00776014109347437*G0_1_1 + 0.00776014109347435*G0_1_2 + 0.00776014109347436*G0_2_0 + 0.00776014109347437*G0_2_1 + 0.00776014109347437*G0_2_2;
 
3148
    A[141] = -0.00776014109347434*G0_1_0 - 0.00776014109347434*G0_2_0;
 
3149
    A[142] = -0.0246913580246914*G0_1_1 + 0.0458553791887124*G0_2_1;
 
3150
    A[143] = 0.0176366843033511*G0_1_2 - 0.00776014109347443*G0_2_2;
 
3151
    A[144] = 0.203174603174603*G0_1_1 + 0.0790123456790123*G0_1_2 + 0.0790123456790123*G0_2_1 + 0.158024691358025*G0_2_2;
 
3152
    A[145] = -0.118518518518519*G0_1_1 + 0.0423280423280424*G0_1_2 - 0.0310405643738977*G0_2_1 - 0.090299823633157*G0_2_2;
 
3153
    A[146] = 0.0451499118165786*G0_1_1 - 0.033862433862434*G0_1_2 + 0.0112874779541446*G0_2_1 + 0.0451499118165784*G0_2_2;
 
3154
    A[147] = 0.0225749559082892*G0_1_0 + 0.0112874779541448*G0_1_2 + 0.0112874779541446*G0_2_0 + 0.0112874779541447*G0_2_2;
 
3155
    A[148] = 0.0169312169312168*G0_1_0 + 0.0141093474426806*G0_1_2 + 0.00282186948853605*G0_2_0 + 0.00282186948853609*G0_2_2;
 
3156
    A[149] = 0.0451499118165786*G0_1_0 + 0.0338624338624339*G0_1_2 + 0.0112874779541446*G0_2_0 + 0.0112874779541446*G0_2_2;
 
3157
    A[150] = 0.0338624338624337*G0_1_0 + 0.0112874779541447*G0_1_1 + 0.0451499118165782*G0_2_0 + 0.0112874779541447*G0_2_1;
 
3158
    A[151] = -0.0592592592592593*G0_1_0 - 0.0423280423280426*G0_1_1 - 0.0902998236331568*G0_2_0 - 0.031040564373898*G0_2_1;
 
3159
    A[152] = 0.0790123456790124*G0_1_0 + 0.101587301587302*G0_1_1 + 0.158024691358025*G0_2_0 + 0.0790123456790125*G0_2_1;
 
3160
    A[153] = -0.0225749559082892*G0_1_0 - 0.0225749559082892*G0_1_1 - 0.0112874779541445*G0_1_2 - 0.0112874779541446*G0_2_0 - 0.0112874779541446*G0_2_1;
 
3161
    A[154] = -0.016931216931217*G0_1_0 - 0.0169312169312169*G0_1_1 - 0.00282186948853615*G0_1_2 - 0.00282186948853626*G0_2_0 - 0.00282186948853626*G0_2_1;
 
3162
    A[155] = -0.0451499118165785*G0_1_0 - 0.0451499118165786*G0_1_1 - 0.0112874779541448*G0_1_2 - 0.0112874779541446*G0_2_0 - 0.0112874779541446*G0_2_1;
 
3163
    A[156] = -0.0338624338624337*G0_1_0 - 0.022574955908289*G0_1_1 - 0.0338624338624337*G0_1_2 - 0.0451499118165783*G0_2_0 - 0.0338624338624336*G0_2_1 - 0.0451499118165783*G0_2_2;
 
3164
    A[157] = 0.0592592592592593*G0_1_0 + 0.0169312169312168*G0_1_1 + 0.0592592592592593*G0_1_2 + 0.0902998236331569*G0_2_0 + 0.0592592592592589*G0_2_1 + 0.0902998236331569*G0_2_2;
 
3165
    A[158] = -0.0790123456790124*G0_1_0 + 0.0225749559082892*G0_1_1 - 0.0790123456790124*G0_1_2 - 0.158024691358025*G0_2_0 - 0.0790123456790121*G0_2_1 - 0.158024691358025*G0_2_2;
 
3166
    A[159] = -0.0112874779541446*G0_1_1 - 0.0112874779541446*G0_1_2 - 0.0112874779541446*G0_2_1 - 0.0112874779541446*G0_2_2;
 
3167
    A[160] = -0.00282186948853622*G0_1_1 - 0.0028218694885362*G0_1_2 - 0.00282186948853619*G0_2_1 - 0.00282186948853616*G0_2_2;
 
3168
    A[161] = -0.0112874779541448*G0_1_1 - 0.0112874779541447*G0_1_2 - 0.0112874779541447*G0_2_1 - 0.0112874779541447*G0_2_2;
 
3169
    A[162] = -0.0677248677248676*G0_1_0 + 0.0225749559082892*G0_1_1 - 0.033862433862434*G0_1_2 - 0.0225749559082891*G0_2_0 + 0.0112874779541446*G0_2_1 - 0.0225749559082893*G0_2_2;
 
3170
    A[163] = 0.203174603174604*G0_1_0 - 0.0677248677248673*G0_1_1 + 0.101587301587302*G0_1_2 + 0.112874779541446*G0_2_0 + 0.0112874779541449*G0_2_1 + 0.112874779541446*G0_2_2;
 
3171
    A[164] = -0.0677248677248678*G0_1_0 + 0.0677248677248676*G0_1_1 - 0.0338624338624337*G0_1_2 - 0.0225749559082893*G0_2_0 + 0.0112874779541444*G0_2_1 - 0.0225749559082893*G0_2_2;
 
3172
    A[165] = 0.0677248677248672*G0_1_0 + 0.0902998236331565*G0_1_1 + 0.0338624338624335*G0_1_2 + 0.0225749559082891*G0_2_0 + 0.0338624338624337*G0_2_1;
 
3173
    A[166] = -0.203174603174603*G0_1_0 - 0.270899470899471*G0_1_1 - 0.101587301587302*G0_1_2 - 0.112874779541446*G0_2_0 - 0.101587301587302*G0_2_1;
 
3174
    A[167] = 0.0677248677248677*G0_1_0 + 0.135449735449735*G0_1_1 + 0.0338624338624343*G0_1_2 + 0.0225749559082893*G0_2_0 + 0.0338624338624339*G0_2_1;
 
3175
    A[168] = -0.0225749559082897*G0_1_1 - 0.0112874779541448*G0_1_2 - 0.0112874779541449*G0_2_1;
 
3176
    A[169] = -0.0225749559082892*G0_1_1 - 0.0112874779541445*G0_1_2 - 0.0112874779541447*G0_2_1;
 
3177
    A[170] = -0.0677248677248677*G0_1_1 - 0.0112874779541444*G0_1_2 - 0.0112874779541444*G0_2_1;
 
3178
    A[171] = 0.0451499118165782*G0_1_1 + 0.0338624338624333*G0_1_2 + 0.0338624338624336*G0_2_1 + 0.022574955908289*G0_2_2;
 
3179
    A[172] = 0.0451499118165788*G0_1_1 + 0.0338624338624339*G0_1_2 + 0.0338624338624341*G0_2_1 + 0.0225749559082892*G0_2_2;
 
3180
    A[173] = -0.135449735449735*G0_1_1 - 0.101587301587302*G0_1_2 - 0.101587301587302*G0_2_1 - 0.112874779541446*G0_2_2;
 
3181
    A[174] = 0.0902998236331573*G0_1_1;
 
3182
    A[175] = 0.00511463844797184*G0_1_0 + 0.00511463844797184*G0_1_1 + 0.00511463844797184*G0_1_2 + 0.00511463844797176*G0_2_0 + 0.00511463844797176*G0_2_1 + 0.00511463844797177*G0_2_2;
 
3183
    A[176] = -0.00511463844797179*G0_1_0 - 0.00511463844797181*G0_2_0;
 
3184
    A[177] = 0.0202821869488537*G0_1_1 - 0.0326278659611993*G0_2_1;
 
3185
    A[178] = -0.0326278659611994*G0_1_2 + 0.0202821869488537*G0_2_2;
 
3186
    A[179] = -0.118518518518519*G0_1_1 - 0.0310405643738977*G0_1_2 + 0.0423280423280424*G0_2_1 - 0.090299823633157*G0_2_2;
 
3187
    A[180] = 0.24973544973545*G0_1_1 + 0.0825396825396823*G0_1_2 + 0.0825396825396823*G0_2_1 + 0.24973544973545*G0_2_2;
 
3188
    A[181] = -0.090299823633157*G0_1_1 + 0.0423280423280424*G0_1_2 - 0.0310405643738975*G0_2_1 - 0.118518518518519*G0_2_2;
 
3189
    A[182] = 0.0169312169312167*G0_1_0 + 0.00282186948853597*G0_1_2 + 0.0141093474426805*G0_2_0 + 0.00282186948853595*G0_2_2;
 
3190
    A[183] = -0.0211640211640208*G0_1_0 - 0.0105820105820104*G0_1_2 - 0.0105820105820102*G0_2_0 - 0.0134038800705465*G0_2_2;
 
3191
    A[184] = -0.090299823633157*G0_1_0 - 0.0592592592592592*G0_1_2 - 0.0310405643738975*G0_2_0 - 0.0423280423280422*G0_2_2;
 
3192
    A[185] = 0.0141093474426806*G0_1_0 + 0.00282186948853597*G0_1_1 + 0.0169312169312168*G0_2_0 + 0.00282186948853597*G0_2_1;
 
3193
    A[186] = -0.0105820105820105*G0_1_0 - 0.0134038800705466*G0_1_1 - 0.0211640211640212*G0_2_0 - 0.0105820105820106*G0_2_1;
 
3194
    A[187] = -0.0310405643738977*G0_1_0 - 0.0423280423280423*G0_1_1 - 0.090299823633157*G0_2_0 - 0.0592592592592592*G0_2_1;
 
3195
    A[188] = -0.0169312169312169*G0_1_0 - 0.0169312169312169*G0_1_1 - 0.0141093474426809*G0_1_2 - 0.0141093474426808*G0_2_0 - 0.0141093474426808*G0_2_1 - 0.0112874779541446*G0_2_2;
 
3196
    A[189] = 0.0211640211640212*G0_1_0 + 0.0211640211640213*G0_1_1 + 0.0105820105820107*G0_1_2 + 0.0105820105820107*G0_2_0 + 0.0105820105820108*G0_2_1 - 0.00282186948853619*G0_2_2;
 
3197
    A[190] = 0.090299823633157*G0_1_0 + 0.090299823633157*G0_1_1 + 0.0310405643738977*G0_1_2 + 0.0310405643738976*G0_2_0 + 0.0310405643738975*G0_2_1 - 0.0112874779541448*G0_2_2;
 
3198
    A[191] = -0.0141093474426808*G0_1_0 - 0.0112874779541447*G0_1_1 - 0.0141093474426808*G0_1_2 - 0.0169312169312169*G0_2_0 - 0.0141093474426807*G0_2_1 - 0.0169312169312169*G0_2_2;
 
3199
    A[192] = 0.0105820105820105*G0_1_0 - 0.00282186948853623*G0_1_1 + 0.0105820105820105*G0_1_2 + 0.0211640211640211*G0_2_0 + 0.0105820105820105*G0_2_1 + 0.021164021164021*G0_2_2;
 
3200
    A[193] = 0.0310405643738977*G0_1_0 - 0.0112874779541446*G0_1_1 + 0.0310405643738977*G0_1_2 + 0.0902998236331569*G0_2_0 + 0.0310405643738978*G0_2_1 + 0.0902998236331569*G0_2_2;
 
3201
    A[194] = -0.00282186948853607*G0_1_1 - 0.0028218694885361*G0_1_2 - 0.00282186948853611*G0_2_1 - 0.0028218694885361*G0_2_2;
 
3202
    A[195] = -0.0091710758377426*G0_1_1 - 0.0091710758377426*G0_1_2 - 0.00917107583774263*G0_2_1 - 0.00917107583774263*G0_2_2;
 
3203
    A[196] = -0.00282186948853592*G0_1_1 - 0.00282186948853597*G0_1_2 - 0.00282186948853597*G0_2_1 - 0.002821869488536*G0_2_2;
 
3204
    A[197] = -0.0846560846560843*G0_1_0 - 0.0169312169312168*G0_1_1 - 0.0197530864197531*G0_1_2 - 0.0846560846560845*G0_2_0 - 0.019753086419753*G0_2_1 - 0.0169312169312172*G0_2_2;
 
3205
    A[198] = 0.0507936507936505*G0_1_0 + 0.118518518518518*G0_1_1 - 0.0423280423280423*G0_1_2 + 0.186243386243386*G0_2_0 + 0.0931216931216929*G0_2_1 - 0.0846560846560846*G0_2_2;
 
3206
    A[199] = 0.186243386243386*G0_1_0 - 0.0846560846560844*G0_1_1 + 0.0931216931216931*G0_1_2 + 0.0507936507936506*G0_2_0 - 0.0423280423280419*G0_2_1 + 0.118518518518519*G0_2_2;
 
3207
    A[200] = 0.0846560846560852*G0_1_0 + 0.0677248677248679*G0_1_1 + 0.0649029982363318*G0_1_2 + 0.0846560846560848*G0_2_0 + 0.0649029982363315*G0_2_1 + 0.0677248677248677*G0_2_2;
 
3208
    A[201] = -0.0507936507936505*G0_1_0 + 0.0677248677248675*G0_1_1 - 0.0931216931216928*G0_1_2 - 0.186243386243386*G0_2_0 - 0.0931216931216932*G0_2_1 - 0.270899470899471*G0_2_2;
 
3209
    A[202] = -0.186243386243386*G0_1_0 - 0.270899470899471*G0_1_1 - 0.0931216931216934*G0_1_2 - 0.0507936507936506*G0_2_0 - 0.093121693121693*G0_2_1 + 0.0677248677248677*G0_2_2;
 
3210
    A[203] = 0.0169312169312174*G0_1_1 + 0.0197530864197532*G0_1_2 + 0.0197530864197534*G0_2_1 + 0.0225749559082894*G0_2_2;
 
3211
    A[204] = 0.0169312169312168*G0_1_1 + 0.0197530864197529*G0_1_2 + 0.0197530864197531*G0_2_1 + 0.0225749559082891*G0_2_2;
 
3212
    A[205] = 0.0846560846560844*G0_1_1 + 0.0423280423280421*G0_1_2 + 0.0423280423280418*G0_2_1 + 0.0225749559082889*G0_2_2;
 
3213
    A[206] = 0.0225749559082894*G0_1_1 + 0.0197530864197536*G0_1_2 + 0.0197530864197532*G0_2_1 + 0.0169312169312172*G0_2_2;
 
3214
    A[207] = 0.0225749559082892*G0_1_1 + 0.0197530864197532*G0_1_2 + 0.0197530864197532*G0_2_1 + 0.0169312169312173*G0_2_2;
 
3215
    A[208] = 0.022574955908289*G0_1_1 + 0.0423280423280422*G0_1_2 + 0.0423280423280421*G0_2_1 + 0.0846560846560845*G0_2_2;
 
3216
    A[209] = -0.135449735449736*G0_1_1 - 0.112874779541447*G0_1_2 - 0.112874779541446*G0_2_1 - 0.135449735449736*G0_2_2;
 
3217
    A[210] = 0.00776014109347437*G0_1_0 + 0.00776014109347439*G0_1_1 + 0.00776014109347438*G0_1_2 + 0.00776014109347444*G0_2_0 + 0.00776014109347445*G0_2_1 + 0.00776014109347443*G0_2_2;
 
3218
    A[211] = -0.00776014109347437*G0_1_0 - 0.00776014109347436*G0_2_0;
 
3219
    A[212] = -0.00776014109347447*G0_1_1 + 0.017636684303351*G0_2_1;
 
3220
    A[213] = 0.0458553791887125*G0_1_2 - 0.0246913580246914*G0_2_2;
 
3221
    A[214] = 0.0451499118165785*G0_1_1 + 0.0112874779541446*G0_1_2 - 0.033862433862434*G0_2_1 + 0.0451499118165784*G0_2_2;
 
3222
    A[215] = -0.090299823633157*G0_1_1 - 0.0310405643738975*G0_1_2 + 0.0423280423280424*G0_2_1 - 0.118518518518519*G0_2_2;
 
3223
    A[216] = 0.158024691358024*G0_1_1 + 0.0790123456790122*G0_1_2 + 0.0790123456790122*G0_2_1 + 0.203174603174603*G0_2_2;
 
3224
    A[217] = 0.0451499118165784*G0_1_0 + 0.0112874779541447*G0_1_2 + 0.0338624338624339*G0_2_0 + 0.0112874779541447*G0_2_2;
 
3225
    A[218] = -0.0902998236331568*G0_1_0 - 0.0310405643738977*G0_1_2 - 0.0592592592592593*G0_2_0 - 0.0423280423280424*G0_2_2;
 
3226
    A[219] = 0.158024691358024*G0_1_0 + 0.0790123456790122*G0_1_2 + 0.0790123456790122*G0_2_0 + 0.101587301587302*G0_2_2;
 
3227
    A[220] = 0.0112874779541446*G0_1_0 + 0.0112874779541447*G0_1_1 + 0.0225749559082892*G0_2_0 + 0.0112874779541447*G0_2_1;
 
3228
    A[221] = 0.00282186948853621*G0_1_0 + 0.0028218694885361*G0_1_1 + 0.0169312169312171*G0_2_0 + 0.0141093474426808*G0_2_1;
 
3229
    A[222] = 0.0112874779541446*G0_1_0 + 0.0112874779541447*G0_1_1 + 0.0451499118165784*G0_2_0 + 0.0338624338624338*G0_2_1;
 
3230
    A[223] = -0.0451499118165785*G0_1_0 - 0.0451499118165785*G0_1_1 - 0.0338624338624338*G0_1_2 - 0.0338624338624339*G0_2_0 - 0.0338624338624339*G0_2_1 - 0.0225749559082893*G0_2_2;
 
3231
    A[224] = 0.0902998236331567*G0_1_0 + 0.0902998236331567*G0_1_1 + 0.059259259259259*G0_1_2 + 0.0592592592592593*G0_2_0 + 0.0592592592592592*G0_2_1 + 0.0169312169312169*G0_2_2;
 
3232
    A[225] = -0.158024691358024*G0_1_0 - 0.158024691358024*G0_1_1 - 0.0790123456790122*G0_1_2 - 0.0790123456790123*G0_2_0 - 0.0790123456790122*G0_2_1 + 0.0225749559082894*G0_2_2;
 
3233
    A[226] = -0.0112874779541447*G0_1_0 - 0.0112874779541447*G0_1_2 - 0.0225749559082893*G0_2_0 - 0.0112874779541447*G0_2_1 - 0.0225749559082893*G0_2_2;
 
3234
    A[227] = -0.00282186948853613*G0_1_0 - 0.0028218694885361*G0_1_2 - 0.0169312169312169*G0_2_0 - 0.00282186948853613*G0_2_1 - 0.0169312169312169*G0_2_2;
 
3235
    A[228] = -0.0112874779541446*G0_1_0 - 0.0112874779541446*G0_1_2 - 0.0451499118165783*G0_2_0 - 0.0112874779541446*G0_2_1 - 0.0451499118165783*G0_2_2;
 
3236
    A[229] = -0.0112874779541447*G0_1_1 - 0.0112874779541447*G0_1_2 - 0.0112874779541447*G0_2_1 - 0.0112874779541447*G0_2_2;
 
3237
    A[230] = -0.00282186948853617*G0_1_1 - 0.00282186948853616*G0_1_2 - 0.00282186948853618*G0_2_1 - 0.00282186948853616*G0_2_2;
 
3238
    A[231] = -0.0112874779541447*G0_1_1 - 0.0112874779541447*G0_1_2 - 0.0112874779541447*G0_2_1 - 0.0112874779541447*G0_2_2;
 
3239
    A[232] = -0.0225749559082892*G0_1_0 - 0.0225749559082893*G0_1_1 + 0.0112874779541447*G0_1_2 - 0.0677248677248674*G0_2_0 - 0.0338624338624339*G0_2_1 + 0.0225749559082895*G0_2_2;
 
3240
    A[233] = -0.0225749559082889*G0_1_0 - 0.022574955908289*G0_1_1 + 0.0112874779541448*G0_1_2 - 0.0677248677248678*G0_2_0 - 0.0338624338624336*G0_2_1 + 0.0677248677248676*G0_2_2;
 
3241
    A[234] = 0.112874779541446*G0_1_0 + 0.112874779541446*G0_1_1 + 0.0112874779541445*G0_1_2 + 0.203174603174603*G0_2_0 + 0.101587301587301*G0_2_1 - 0.0677248677248677*G0_2_2;
 
3242
    A[235] = 0.0225749559082893*G0_1_0 + 0.0338624338624339*G0_1_2 + 0.0677248677248678*G0_2_0 + 0.0338624338624339*G0_2_1 + 0.0902998236331571*G0_2_2;
 
3243
    A[236] = 0.0225749559082889*G0_1_0 + 0.0338624338624335*G0_1_2 + 0.0677248677248677*G0_2_0 + 0.0338624338624339*G0_2_1 + 0.135449735449735*G0_2_2;
 
3244
    A[237] = -0.112874779541446*G0_1_0 - 0.101587301587301*G0_1_2 - 0.203174603174603*G0_2_0 - 0.101587301587302*G0_2_1 - 0.270899470899471*G0_2_2;
 
3245
    A[238] = 0.0225749559082893*G0_1_1 + 0.033862433862434*G0_1_2 + 0.033862433862434*G0_2_1 + 0.0451499118165787*G0_2_2;
 
3246
    A[239] = 0.0225749559082893*G0_1_1 + 0.0338624338624341*G0_1_2 + 0.0338624338624338*G0_2_1 + 0.0451499118165786*G0_2_2;
 
3247
    A[240] = -0.112874779541446*G0_1_1 - 0.101587301587302*G0_1_2 - 0.101587301587301*G0_2_1 - 0.135449735449735*G0_2_2;
 
3248
    A[241] = -0.0112874779541447*G0_1_2 - 0.0112874779541446*G0_2_1 - 0.0225749559082893*G0_2_2;
 
3249
    A[242] = -0.0112874779541447*G0_1_2 - 0.0112874779541447*G0_2_1 - 0.0225749559082895*G0_2_2;
 
3250
    A[243] = -0.0112874779541447*G0_1_2 - 0.0112874779541445*G0_2_1 - 0.0677248677248676*G0_2_2;
 
3251
    A[244] = 0.090299823633157*G0_2_2;
 
3252
    A[245] = 0.00776014109347433*G0_0_0 + 0.00776014109347433*G0_0_1 + 0.00776014109347432*G0_0_2 + 0.00776014109347437*G0_2_0 + 0.00776014109347437*G0_2_1 + 0.00776014109347437*G0_2_2;
 
3253
    A[246] = -0.0246913580246912*G0_0_0 + 0.0458553791887125*G0_2_0;
 
3254
    A[247] = -0.00776014109347445*G0_0_1 - 0.00776014109347446*G0_2_1;
 
3255
    A[248] = 0.0176366843033509*G0_0_2 - 0.00776014109347444*G0_2_2;
 
3256
    A[249] = 0.0225749559082892*G0_0_1 + 0.0112874779541446*G0_0_2 + 0.0112874779541448*G0_2_1 + 0.0112874779541447*G0_2_2;
 
3257
    A[250] = 0.0169312169312167*G0_0_1 + 0.0141093474426805*G0_0_2 + 0.00282186948853597*G0_2_1 + 0.00282186948853595*G0_2_2;
 
3258
    A[251] = 0.0451499118165784*G0_0_1 + 0.0338624338624339*G0_0_2 + 0.0112874779541447*G0_2_1 + 0.0112874779541447*G0_2_2;
 
3259
    A[252] = 0.203174603174603*G0_0_0 + 0.0790123456790121*G0_0_2 + 0.0790123456790121*G0_2_0 + 0.158024691358024*G0_2_2;
 
3260
    A[253] = -0.118518518518518*G0_0_0 + 0.0423280423280424*G0_0_2 - 0.0310405643738975*G0_2_0 - 0.0902998236331568*G0_2_2;
 
3261
    A[254] = 0.0451499118165784*G0_0_0 - 0.0338624338624338*G0_0_2 + 0.0112874779541446*G0_2_0 + 0.0451499118165785*G0_2_2;
 
3262
    A[255] = 0.101587301587301*G0_0_0 + 0.079012345679012*G0_0_1 + 0.0790123456790119*G0_2_0 + 0.158024691358024*G0_2_1;
 
3263
    A[256] = -0.0423280423280421*G0_0_0 - 0.0592592592592593*G0_0_1 - 0.0310405643738976*G0_2_0 - 0.0902998236331571*G0_2_1;
 
3264
    A[257] = 0.0112874779541446*G0_0_0 + 0.033862433862434*G0_0_1 + 0.0112874779541447*G0_2_0 + 0.0451499118165786*G0_2_1;
 
3265
    A[258] = -0.0225749559082892*G0_0_0 - 0.0225749559082893*G0_0_1 - 0.0112874779541445*G0_0_2 - 0.0112874779541447*G0_2_0 - 0.0112874779541447*G0_2_1;
 
3266
    A[259] = -0.0169312169312168*G0_0_0 - 0.0169312169312168*G0_0_1 - 0.00282186948853617*G0_0_2 - 0.00282186948853604*G0_2_0 - 0.00282186948853606*G0_2_1;
 
3267
    A[260] = -0.0451499118165784*G0_0_0 - 0.0451499118165785*G0_0_1 - 0.0112874779541446*G0_0_2 - 0.0112874779541447*G0_2_0 - 0.0112874779541447*G0_2_1;
 
3268
    A[261] = -0.0112874779541446*G0_0_0 - 0.0112874779541447*G0_0_2 - 0.0112874779541447*G0_2_0 - 0.0112874779541447*G0_2_2;
 
3269
    A[262] = -0.00282186948853607*G0_0_0 - 0.00282186948853609*G0_0_2 - 0.0028218694885361*G0_2_0 - 0.0028218694885361*G0_2_2;
 
3270
    A[263] = -0.0112874779541447*G0_0_0 - 0.0112874779541446*G0_0_2 - 0.0112874779541447*G0_2_0 - 0.0112874779541447*G0_2_2;
 
3271
    A[264] = -0.0225749559082891*G0_0_0 - 0.0338624338624338*G0_0_1 - 0.0338624338624338*G0_0_2 - 0.0338624338624337*G0_2_0 - 0.0451499118165784*G0_2_1 - 0.0451499118165784*G0_2_2;
 
3272
    A[265] = 0.0169312169312168*G0_0_0 + 0.0592592592592591*G0_0_1 + 0.0592592592592591*G0_0_2 + 0.0592592592592591*G0_2_0 + 0.0902998236331567*G0_2_1 + 0.0902998236331568*G0_2_2;
 
3273
    A[266] = 0.0225749559082892*G0_0_0 - 0.0790123456790122*G0_0_1 - 0.0790123456790121*G0_0_2 - 0.0790123456790122*G0_2_0 - 0.158024691358024*G0_2_1 - 0.158024691358024*G0_2_2;
 
3274
    A[267] = -0.0677248677248674*G0_0_0 + 0.203174603174603*G0_0_1 + 0.101587301587301*G0_0_2 + 0.0112874779541446*G0_2_0 + 0.112874779541446*G0_2_1 + 0.112874779541445*G0_2_2;
 
3275
    A[268] = 0.0225749559082891*G0_0_0 - 0.0677248677248676*G0_0_1 - 0.0338624338624336*G0_0_2 + 0.0112874779541449*G0_2_0 - 0.0225749559082891*G0_2_1 - 0.0225749559082889*G0_2_2;
 
3276
    A[269] = 0.0677248677248676*G0_0_0 - 0.0677248677248674*G0_0_1 - 0.0338624338624337*G0_0_2 + 0.0112874779541446*G0_2_0 - 0.0225749559082889*G0_2_1 - 0.0225749559082891*G0_2_2;
 
3277
    A[270] = -0.0225749559082893*G0_0_0 - 0.0112874779541446*G0_0_2 - 0.0112874779541448*G0_2_0;
 
3278
    A[271] = -0.0225749559082893*G0_0_0 - 0.0112874779541446*G0_0_2 - 0.0112874779541449*G0_2_0;
 
3279
    A[272] = -0.0677248677248676*G0_0_0 - 0.0112874779541447*G0_0_2 - 0.0112874779541446*G0_2_0;
 
3280
    A[273] = 0.0902998236331566*G0_0_0 + 0.0677248677248673*G0_0_1 + 0.0338624338624339*G0_0_2 + 0.0338624338624337*G0_2_0 + 0.0225749559082891*G0_2_1;
 
3281
    A[274] = -0.27089947089947*G0_0_0 - 0.203174603174603*G0_0_1 - 0.101587301587301*G0_0_2 - 0.101587301587301*G0_2_0 - 0.112874779541446*G0_2_1;
 
3282
    A[275] = 0.135449735449735*G0_0_0 + 0.0677248677248673*G0_0_1 + 0.0338624338624337*G0_0_2 + 0.0338624338624334*G0_2_0 + 0.022574955908289*G0_2_1;
 
3283
    A[276] = 0.0451499118165781*G0_0_0 + 0.0338624338624333*G0_0_2 + 0.0338624338624336*G0_2_0 + 0.0225749559082889*G0_2_2;
 
3284
    A[277] = -0.135449735449734*G0_0_0 - 0.101587301587301*G0_0_2 - 0.101587301587301*G0_2_0 - 0.112874779541446*G0_2_2;
 
3285
    A[278] = 0.0451499118165783*G0_0_0 + 0.0338624338624337*G0_0_2 + 0.0338624338624337*G0_2_0 + 0.022574955908289*G0_2_2;
 
3286
    A[279] = 0.0902998236331567*G0_0_0;
 
3287
    A[280] = 0.00511463844797189*G0_0_0 + 0.00511463844797188*G0_0_1 + 0.0051146384479719*G0_0_2 + 0.00511463844797185*G0_2_0 + 0.00511463844797184*G0_2_1 + 0.00511463844797185*G0_2_2;
 
3288
    A[281] = 0.0202821869488536*G0_0_0 - 0.0326278659611993*G0_2_0;
 
3289
    A[282] = -0.00511463844797178*G0_0_1 - 0.00511463844797172*G0_2_1;
 
3290
    A[283] = -0.0326278659611992*G0_0_2 + 0.0202821869488536*G0_2_2;
 
3291
    A[284] = 0.0169312169312168*G0_0_1 + 0.00282186948853605*G0_0_2 + 0.0141093474426806*G0_2_1 + 0.00282186948853609*G0_2_2;
 
3292
    A[285] = -0.0211640211640208*G0_0_1 - 0.0105820105820102*G0_0_2 - 0.0105820105820104*G0_2_1 - 0.0134038800705465*G0_2_2;
 
3293
    A[286] = -0.0902998236331568*G0_0_1 - 0.0592592592592593*G0_0_2 - 0.0310405643738977*G0_2_1 - 0.0423280423280424*G0_2_2;
 
3294
    A[287] = -0.118518518518518*G0_0_0 - 0.0310405643738975*G0_0_2 + 0.0423280423280424*G0_2_0 - 0.0902998236331567*G0_2_2;
 
3295
    A[288] = 0.249735449735449*G0_0_0 + 0.0825396825396821*G0_0_2 + 0.0825396825396821*G0_2_0 + 0.249735449735449*G0_2_2;
 
3296
    A[289] = -0.0902998236331567*G0_0_0 + 0.0423280423280422*G0_0_2 - 0.0310405643738977*G0_2_0 - 0.118518518518518*G0_2_2;
 
3297
    A[290] = -0.0423280423280421*G0_0_0 - 0.0310405643738975*G0_0_1 - 0.059259259259259*G0_2_0 - 0.0902998236331568*G0_2_1;
 
3298
    A[291] = -0.0134038800705468*G0_0_0 - 0.0105820105820105*G0_0_1 - 0.0105820105820106*G0_2_0 - 0.0211640211640209*G0_2_1;
 
3299
    A[292] = 0.00282186948853606*G0_0_0 + 0.0141093474426806*G0_0_1 + 0.00282186948853613*G0_2_0 + 0.0169312169312167*G0_2_1;
 
3300
    A[293] = -0.0169312169312169*G0_0_0 - 0.0169312169312169*G0_0_1 - 0.014109347442681*G0_0_2 - 0.0141093474426808*G0_2_0 - 0.0141093474426808*G0_2_1 - 0.0112874779541447*G0_2_2;
 
3301
    A[294] = 0.0211640211640212*G0_0_0 + 0.0211640211640212*G0_0_1 + 0.0105820105820109*G0_0_2 + 0.0105820105820105*G0_2_0 + 0.0105820105820105*G0_2_1 - 0.00282186948853589*G0_2_2;
 
3302
    A[295] = 0.0902998236331568*G0_0_0 + 0.0902998236331568*G0_0_1 + 0.0310405643738974*G0_0_2 + 0.0310405643738977*G0_2_0 + 0.0310405643738977*G0_2_1 - 0.0112874779541449*G0_2_2;
 
3303
    A[296] = -0.00282186948853601*G0_0_0 - 0.00282186948853599*G0_0_2 - 0.00282186948853615*G0_2_0 - 0.00282186948853613*G0_2_2;
 
3304
    A[297] = -0.00917107583774251*G0_0_0 - 0.00917107583774253*G0_0_2 - 0.00917107583774246*G0_2_0 - 0.00917107583774248*G0_2_2;
 
3305
    A[298] = -0.00282186948853602*G0_0_0 - 0.00282186948853604*G0_0_2 - 0.00282186948853608*G0_2_0 - 0.00282186948853612*G0_2_2;
 
3306
    A[299] = -0.0112874779541448*G0_0_0 - 0.0141093474426806*G0_0_1 - 0.0141093474426806*G0_0_2 - 0.0141093474426808*G0_2_0 - 0.0169312169312168*G0_2_1 - 0.0169312169312168*G0_2_2;
 
3307
    A[300] = -0.00282186948853607*G0_0_0 + 0.0105820105820105*G0_0_1 + 0.0105820105820104*G0_0_2 + 0.0105820105820105*G0_2_0 + 0.021164021164021*G0_2_1 + 0.021164021164021*G0_2_2;
 
3308
    A[301] = -0.0112874779541446*G0_0_0 + 0.0310405643738976*G0_0_1 + 0.0310405643738976*G0_0_2 + 0.0310405643738978*G0_2_0 + 0.0902998236331568*G0_2_1 + 0.0902998236331568*G0_2_2;
 
3309
    A[302] = 0.118518518518518*G0_0_0 + 0.0507936507936506*G0_0_1 - 0.042328042328042*G0_0_2 + 0.0931216931216929*G0_2_0 + 0.186243386243386*G0_2_1 - 0.0846560846560841*G0_2_2;
 
3310
    A[303] = -0.0169312169312166*G0_0_0 - 0.0846560846560842*G0_0_1 - 0.0197530864197531*G0_0_2 - 0.0197530864197532*G0_2_0 - 0.0846560846560844*G0_2_1 - 0.016931216931217*G0_2_2;
 
3311
    A[304] = -0.0846560846560846*G0_0_0 + 0.186243386243385*G0_0_1 + 0.0931216931216927*G0_0_2 - 0.0423280423280425*G0_2_0 + 0.0507936507936501*G0_2_1 + 0.118518518518518*G0_2_2;
 
3312
    A[305] = 0.0169312169312168*G0_0_0 + 0.019753086419753*G0_0_2 + 0.019753086419753*G0_2_0 + 0.0225749559082894*G0_2_2;
 
3313
    A[306] = 0.0169312169312168*G0_0_0 + 0.0197530864197529*G0_0_2 + 0.0197530864197532*G0_2_0 + 0.0225749559082891*G0_2_2;
 
3314
    A[307] = 0.0846560846560845*G0_0_0 + 0.0423280423280424*G0_0_2 + 0.0423280423280424*G0_2_0 + 0.0225749559082894*G0_2_2;
 
3315
    A[308] = 0.0677248677248674*G0_0_0 + 0.0846560846560842*G0_0_1 + 0.0649029982363311*G0_0_2 + 0.0649029982363313*G0_2_0 + 0.0846560846560839*G0_2_1 + 0.0677248677248672*G0_2_2;
 
3316
    A[309] = 0.0677248677248675*G0_0_0 - 0.0507936507936507*G0_0_1 - 0.0931216931216926*G0_0_2 - 0.0931216931216929*G0_2_0 - 0.186243386243386*G0_2_1 - 0.27089947089947*G0_2_2;
 
3317
    A[310] = -0.27089947089947*G0_0_0 - 0.186243386243385*G0_0_1 - 0.0931216931216927*G0_0_2 - 0.0931216931216926*G0_2_0 - 0.0507936507936501*G0_2_1 + 0.067724867724868*G0_2_2;
 
3318
    A[311] = 0.022574955908289*G0_0_0 + 0.019753086419753*G0_0_2 + 0.019753086419753*G0_2_0 + 0.0169312169312167*G0_2_2;
 
3319
    A[312] = 0.0225749559082891*G0_0_0 + 0.042328042328042*G0_0_2 + 0.0423280423280421*G0_2_0 + 0.0846560846560841*G0_2_2;
 
3320
    A[313] = 0.0225749559082892*G0_0_0 + 0.019753086419753*G0_0_2 + 0.019753086419753*G0_2_0 + 0.016931216931217*G0_2_2;
 
3321
    A[314] = -0.135449735449735*G0_0_0 - 0.112874779541446*G0_0_2 - 0.112874779541446*G0_2_0 - 0.135449735449735*G0_2_2;
 
3322
    A[315] = 0.00776014109347437*G0_0_0 + 0.00776014109347439*G0_0_1 + 0.00776014109347438*G0_0_2 + 0.00776014109347441*G0_2_0 + 0.00776014109347442*G0_2_1 + 0.00776014109347441*G0_2_2;
 
3323
    A[316] = -0.00776014109347435*G0_0_0 + 0.017636684303351*G0_2_0;
 
3324
    A[317] = -0.00776014109347448*G0_0_1 - 0.00776014109347447*G0_2_1;
 
3325
    A[318] = 0.0458553791887125*G0_0_2 - 0.0246913580246914*G0_2_2;
 
3326
    A[319] = 0.0451499118165786*G0_0_1 + 0.0112874779541446*G0_0_2 + 0.0338624338624339*G0_2_1 + 0.0112874779541446*G0_2_2;
 
3327
    A[320] = -0.090299823633157*G0_0_1 - 0.0310405643738975*G0_0_2 - 0.0592592592592592*G0_2_1 - 0.0423280423280422*G0_2_2;
 
3328
    A[321] = 0.158024691358024*G0_0_1 + 0.0790123456790122*G0_0_2 + 0.0790123456790122*G0_2_1 + 0.101587301587302*G0_2_2;
 
3329
    A[322] = 0.0451499118165783*G0_0_0 + 0.0112874779541446*G0_0_2 - 0.0338624338624338*G0_2_0 + 0.0451499118165785*G0_2_2;
 
3330
    A[323] = -0.0902998236331568*G0_0_0 - 0.0310405643738977*G0_0_2 + 0.0423280423280422*G0_2_0 - 0.118518518518518*G0_2_2;
 
3331
    A[324] = 0.158024691358024*G0_0_0 + 0.0790123456790123*G0_0_2 + 0.0790123456790123*G0_2_0 + 0.203174603174603*G0_2_2;
 
3332
    A[325] = 0.0112874779541446*G0_0_0 + 0.0112874779541447*G0_0_1 + 0.0338624338624338*G0_2_0 + 0.0451499118165785*G0_2_1;
 
3333
    A[326] = 0.0028218694885362*G0_0_0 + 0.0028218694885361*G0_0_1 + 0.0141093474426808*G0_2_0 + 0.0169312169312168*G0_2_1;
 
3334
    A[327] = 0.0112874779541446*G0_0_0 + 0.0112874779541447*G0_0_1 + 0.0112874779541446*G0_2_0 + 0.0225749559082893*G0_2_1;
 
3335
    A[328] = -0.0451499118165785*G0_0_0 - 0.0451499118165785*G0_0_1 - 0.0338624338624338*G0_0_2 - 0.0338624338624339*G0_2_0 - 0.0338624338624339*G0_2_1 - 0.0225749559082893*G0_2_2;
 
3336
    A[329] = 0.0902998236331567*G0_0_0 + 0.0902998236331568*G0_0_1 + 0.059259259259259*G0_0_2 + 0.0592592592592592*G0_2_0 + 0.0592592592592592*G0_2_1 + 0.0169312169312169*G0_2_2;
 
3337
    A[330] = -0.158024691358024*G0_0_0 - 0.158024691358024*G0_0_1 - 0.0790123456790121*G0_0_2 - 0.0790123456790123*G0_2_0 - 0.0790123456790122*G0_2_1 + 0.0225749559082893*G0_2_2;
 
3338
    A[331] = -0.0112874779541447*G0_0_0 - 0.0112874779541447*G0_0_2 - 0.0112874779541446*G0_2_0 - 0.0112874779541446*G0_2_2;
 
3339
    A[332] = -0.00282186948853611*G0_0_0 - 0.00282186948853608*G0_0_2 - 0.0028218694885361*G0_2_0 - 0.00282186948853608*G0_2_2;
 
3340
    A[333] = -0.0112874779541446*G0_0_0 - 0.0112874779541446*G0_0_2 - 0.0112874779541446*G0_2_0 - 0.0112874779541445*G0_2_2;
 
3341
    A[334] = -0.0112874779541447*G0_0_1 - 0.0112874779541447*G0_0_2 - 0.0112874779541446*G0_2_0 - 0.0225749559082893*G0_2_1 - 0.0225749559082892*G0_2_2;
 
3342
    A[335] = -0.00282186948853618*G0_0_1 - 0.00282186948853617*G0_0_2 - 0.00282186948853619*G0_2_0 - 0.0169312169312171*G0_2_1 - 0.016931216931217*G0_2_2;
 
3343
    A[336] = -0.0112874779541447*G0_0_1 - 0.0112874779541447*G0_0_2 - 0.0112874779541446*G0_2_0 - 0.0451499118165785*G0_2_1 - 0.0451499118165785*G0_2_2;
 
3344
    A[337] = -0.0225749559082891*G0_0_0 - 0.0225749559082893*G0_0_1 + 0.0112874779541447*G0_0_2 - 0.0338624338624339*G0_2_0 - 0.0677248677248678*G0_2_1 + 0.0677248677248677*G0_2_2;
 
3345
    A[338] = -0.0225749559082889*G0_0_0 - 0.022574955908289*G0_0_1 + 0.0112874779541448*G0_0_2 - 0.0338624338624334*G0_2_0 - 0.0677248677248673*G0_2_1 + 0.0225749559082894*G0_2_2;
 
3346
    A[339] = 0.112874779541446*G0_0_0 + 0.112874779541446*G0_0_1 + 0.0112874779541446*G0_0_2 + 0.101587301587302*G0_2_0 + 0.203174603174603*G0_2_1 - 0.0677248677248677*G0_2_2;
 
3347
    A[340] = 0.0225749559082893*G0_0_0 + 0.0338624338624339*G0_0_2 + 0.0338624338624338*G0_2_0 + 0.0451499118165784*G0_2_2;
 
3348
    A[341] = 0.0225749559082888*G0_0_0 + 0.0338624338624335*G0_0_2 + 0.0338624338624334*G0_2_0 + 0.0451499118165781*G0_2_2;
 
3349
    A[342] = -0.112874779541446*G0_0_0 - 0.101587301587301*G0_0_2 - 0.101587301587302*G0_2_0 - 0.135449735449735*G0_2_2;
 
3350
    A[343] = 0.0225749559082892*G0_0_1 + 0.033862433862434*G0_0_2 + 0.0338624338624337*G0_2_0 + 0.0677248677248677*G0_2_1 + 0.090299823633157*G0_2_2;
 
3351
    A[344] = 0.0225749559082893*G0_0_1 + 0.033862433862434*G0_0_2 + 0.0338624338624338*G0_2_0 + 0.0677248677248676*G0_2_1 + 0.135449735449736*G0_2_2;
 
3352
    A[345] = -0.112874779541446*G0_0_1 - 0.101587301587302*G0_0_2 - 0.101587301587301*G0_2_0 - 0.203174603174603*G0_2_1 - 0.270899470899471*G0_2_2;
 
3353
    A[346] = -0.0112874779541447*G0_0_2 - 0.0112874779541448*G0_2_0 - 0.0225749559082893*G0_2_2;
 
3354
    A[347] = -0.0112874779541447*G0_0_2 - 0.0112874779541444*G0_2_0 - 0.0677248677248677*G0_2_2;
 
3355
    A[348] = -0.0112874779541448*G0_0_2 - 0.0112874779541448*G0_2_0 - 0.0225749559082893*G0_2_2;
 
3356
    A[349] = 0.0902998236331571*G0_2_2;
 
3357
    A[350] = 0.0077601410934743*G0_0_0 + 0.0077601410934743*G0_0_1 + 0.00776014109347429*G0_0_2 + 0.00776014109347437*G0_1_0 + 0.00776014109347437*G0_1_1 + 0.00776014109347437*G0_1_2;
 
3358
    A[351] = -0.0246913580246912*G0_0_0 + 0.0458553791887125*G0_1_0;
 
3359
    A[352] = 0.0176366843033509*G0_0_1 - 0.00776014109347445*G0_1_1;
 
3360
    A[353] = -0.00776014109347441*G0_0_2 - 0.00776014109347442*G0_1_2;
 
3361
    A[354] = 0.0338624338624337*G0_0_1 + 0.0451499118165782*G0_0_2 + 0.0112874779541447*G0_1_1 + 0.0112874779541447*G0_1_2;
 
3362
    A[355] = 0.0141093474426806*G0_0_1 + 0.0169312169312168*G0_0_2 + 0.00282186948853597*G0_1_1 + 0.00282186948853597*G0_1_2;
 
3363
    A[356] = 0.0112874779541446*G0_0_1 + 0.0225749559082892*G0_0_2 + 0.0112874779541447*G0_1_1 + 0.0112874779541447*G0_1_2;
 
3364
    A[357] = 0.101587301587301*G0_0_0 + 0.0790123456790119*G0_0_2 + 0.079012345679012*G0_1_0 + 0.158024691358024*G0_1_2;
 
3365
    A[358] = -0.0423280423280421*G0_0_0 - 0.059259259259259*G0_0_2 - 0.0310405643738975*G0_1_0 - 0.0902998236331568*G0_1_2;
 
3366
    A[359] = 0.0112874779541446*G0_0_0 + 0.0338624338624338*G0_0_2 + 0.0112874779541447*G0_1_0 + 0.0451499118165785*G0_1_2;
 
3367
    A[360] = 0.203174603174602*G0_0_0 + 0.0790123456790119*G0_0_1 + 0.0790123456790119*G0_1_0 + 0.158024691358024*G0_1_1;
 
3368
    A[361] = -0.118518518518518*G0_0_0 + 0.0423280423280421*G0_0_1 - 0.0310405643738976*G0_1_0 - 0.0902998236331571*G0_1_1;
 
3369
    A[362] = 0.0451499118165782*G0_0_0 - 0.0338624338624337*G0_0_1 + 0.0112874779541447*G0_1_0 + 0.0451499118165786*G0_1_1;
 
3370
    A[363] = -0.0112874779541445*G0_0_0 - 0.0112874779541446*G0_0_1 - 0.0112874779541446*G0_1_0 - 0.0112874779541447*G0_1_1;
 
3371
    A[364] = -0.00282186948853601*G0_0_0 - 0.00282186948853598*G0_0_1 - 0.00282186948853601*G0_1_0 - 0.00282186948853603*G0_1_1;
 
3372
    A[365] = -0.0112874779541446*G0_0_0 - 0.0112874779541446*G0_0_1 - 0.0112874779541447*G0_1_0 - 0.0112874779541447*G0_1_1;
 
3373
    A[366] = -0.0225749559082891*G0_0_0 - 0.0112874779541444*G0_0_1 - 0.0225749559082891*G0_0_2 - 0.0112874779541446*G0_1_0 - 0.0112874779541447*G0_1_2;
 
3374
    A[367] = -0.0169312169312168*G0_0_0 - 0.00282186948853628*G0_0_1 - 0.0169312169312169*G0_0_2 - 0.00282186948853605*G0_1_0 - 0.00282186948853606*G0_1_2;
 
3375
    A[368] = -0.0451499118165784*G0_0_0 - 0.0112874779541446*G0_0_1 - 0.0451499118165782*G0_0_2 - 0.0112874779541447*G0_1_0 - 0.0112874779541447*G0_1_2;
 
3376
    A[369] = -0.0225749559082889*G0_0_0 - 0.0338624338624336*G0_0_1 - 0.0338624338624336*G0_0_2 - 0.0338624338624337*G0_1_0 - 0.0451499118165783*G0_1_1 - 0.0451499118165784*G0_1_2;
 
3377
    A[370] = 0.0169312169312168*G0_0_0 + 0.0592592592592589*G0_0_1 + 0.0592592592592589*G0_0_2 + 0.0592592592592591*G0_1_0 + 0.0902998236331567*G0_1_1 + 0.0902998236331567*G0_1_2;
 
3378
    A[371] = 0.0225749559082891*G0_0_0 - 0.079012345679012*G0_0_1 - 0.079012345679012*G0_0_2 - 0.0790123456790122*G0_1_0 - 0.158024691358024*G0_1_1 - 0.158024691358024*G0_1_2;
 
3379
    A[372] = -0.0677248677248674*G0_0_0 + 0.101587301587301*G0_0_1 + 0.203174603174602*G0_0_2 + 0.0112874779541446*G0_1_0 + 0.112874779541446*G0_1_1 + 0.112874779541445*G0_1_2;
 
3380
    A[373] = 0.0677248677248675*G0_0_0 - 0.0338624338624335*G0_0_1 - 0.0677248677248673*G0_0_2 + 0.0112874779541448*G0_1_0 - 0.0225749559082891*G0_1_1 - 0.022574955908289*G0_1_2;
 
3381
    A[374] = 0.0225749559082891*G0_0_0 - 0.0338624338624336*G0_0_1 - 0.0677248677248675*G0_0_2 + 0.0112874779541446*G0_1_0 - 0.0225749559082889*G0_1_1 - 0.0225749559082891*G0_1_2;
 
3382
    A[375] = -0.0225749559082893*G0_0_0 - 0.0112874779541449*G0_0_1 - 0.0112874779541448*G0_1_0;
 
3383
    A[376] = -0.0677248677248675*G0_0_0 - 0.0112874779541444*G0_0_1 - 0.0112874779541449*G0_1_0;
 
3384
    A[377] = -0.0225749559082891*G0_0_0 - 0.0112874779541448*G0_0_1 - 0.0112874779541447*G0_1_0;
 
3385
    A[378] = 0.0451499118165781*G0_0_0 + 0.0338624338624336*G0_0_1 + 0.0338624338624336*G0_1_0 + 0.0225749559082891*G0_1_1;
 
3386
    A[379] = -0.135449735449735*G0_0_0 - 0.101587301587301*G0_0_1 - 0.101587301587301*G0_1_0 - 0.112874779541446*G0_1_1;
 
3387
    A[380] = 0.0451499118165779*G0_0_0 + 0.0338624338624336*G0_0_1 + 0.0338624338624334*G0_1_0 + 0.022574955908289*G0_1_1;
 
3388
    A[381] = 0.0902998236331561*G0_0_0 + 0.0338624338624332*G0_0_1 + 0.067724867724867*G0_0_2 + 0.0338624338624335*G0_1_0 + 0.0225749559082889*G0_1_2;
 
3389
    A[382] = -0.270899470899469*G0_0_0 - 0.101587301587301*G0_0_1 - 0.203174603174602*G0_0_2 - 0.101587301587301*G0_1_0 - 0.112874779541446*G0_1_2;
 
3390
    A[383] = 0.135449735449735*G0_0_0 + 0.0338624338624341*G0_0_1 + 0.0677248677248674*G0_0_2 + 0.0338624338624337*G0_1_0 + 0.022574955908289*G0_1_2;
 
3391
    A[384] = 0.0902998236331567*G0_0_0;
 
3392
    A[385] = 0.00511463844797178*G0_0_0 + 0.0051146384479718*G0_0_1 + 0.00511463844797179*G0_0_2 + 0.0051146384479717*G0_1_0 + 0.00511463844797171*G0_1_1 + 0.0051146384479717*G0_1_2;
 
3393
    A[386] = 0.0202821869488535*G0_0_0 - 0.0326278659611993*G0_1_0;
 
3394
    A[387] = -0.0326278659611991*G0_0_1 + 0.0202821869488536*G0_1_1;
 
3395
    A[388] = -0.00511463844797178*G0_0_2 - 0.00511463844797176*G0_1_2;
 
3396
    A[389] = -0.0592592592592593*G0_0_1 - 0.0902998236331567*G0_0_2 - 0.0423280423280426*G0_1_1 - 0.031040564373898*G0_1_2;
 
3397
    A[390] = -0.0105820105820105*G0_0_1 - 0.0211640211640212*G0_0_2 - 0.0134038800705466*G0_1_1 - 0.0105820105820106*G0_1_2;
 
3398
    A[391] = 0.00282186948853621*G0_0_1 + 0.0169312169312171*G0_0_2 + 0.0028218694885361*G0_1_1 + 0.0141093474426808*G0_1_2;
 
3399
    A[392] = -0.0423280423280421*G0_0_0 - 0.0310405643738976*G0_0_2 - 0.0592592592592593*G0_1_0 - 0.0902998236331571*G0_1_2;
 
3400
    A[393] = -0.0134038800705468*G0_0_0 - 0.0105820105820105*G0_0_2 - 0.0105820105820105*G0_1_0 - 0.0211640211640209*G0_1_2;
 
3401
    A[394] = 0.0028218694885362*G0_0_0 + 0.0141093474426808*G0_0_2 + 0.0028218694885361*G0_1_0 + 0.0169312169312168*G0_1_2;
 
3402
    A[395] = -0.118518518518518*G0_0_0 - 0.0310405643738976*G0_0_1 + 0.0423280423280421*G0_1_0 - 0.0902998236331571*G0_1_1;
 
3403
    A[396] = 0.249735449735449*G0_0_0 + 0.0825396825396827*G0_0_1 + 0.0825396825396827*G0_1_0 + 0.24973544973545*G0_1_1;
 
3404
    A[397] = -0.0902998236331567*G0_0_0 + 0.0423280423280419*G0_0_1 - 0.0310405643738979*G0_1_0 - 0.118518518518519*G0_1_1;
 
3405
    A[398] = -0.00282186948853627*G0_0_0 - 0.00282186948853625*G0_0_1 - 0.00282186948853615*G0_1_0 - 0.00282186948853611*G0_1_1;
 
3406
    A[399] = -0.00917107583774251*G0_0_0 - 0.00917107583774257*G0_0_1 - 0.00917107583774257*G0_1_0 - 0.00917107583774261*G0_1_1;
 
3407
    A[400] = -0.00282186948853623*G0_0_0 - 0.00282186948853618*G0_0_1 - 0.00282186948853611*G0_1_0 - 0.00282186948853606*G0_1_1;
 
3408
    A[401] = -0.0169312169312169*G0_0_0 - 0.0141093474426809*G0_0_1 - 0.0169312169312169*G0_0_2 - 0.0141093474426806*G0_1_0 - 0.0112874779541446*G0_1_1 - 0.0141093474426806*G0_1_2;
 
3409
    A[402] = 0.021164021164021*G0_0_0 + 0.0105820105820108*G0_0_1 + 0.0211640211640212*G0_0_2 + 0.0105820105820106*G0_1_0 - 0.00282186948853601*G0_1_1 + 0.0105820105820106*G0_1_2;
 
3410
    A[403] = 0.0902998236331568*G0_0_0 + 0.0310405643738975*G0_0_1 + 0.0902998236331567*G0_0_2 + 0.0310405643738979*G0_1_0 - 0.0112874779541447*G0_1_1 + 0.0310405643738978*G0_1_2;
 
3411
    A[404] = -0.0112874779541446*G0_0_0 - 0.0141093474426809*G0_0_1 - 0.0141093474426808*G0_0_2 - 0.0141093474426805*G0_1_0 - 0.0169312169312167*G0_1_1 - 0.0169312169312166*G0_1_2;
 
3412
    A[405] = -0.00282186948853623*G0_0_0 + 0.0105820105820107*G0_0_1 + 0.0105820105820107*G0_0_2 + 0.0105820105820103*G0_1_0 + 0.021164021164021*G0_1_1 + 0.021164021164021*G0_1_2;
 
3413
    A[406] = -0.0112874779541444*G0_0_0 + 0.0310405643738976*G0_0_1 + 0.0310405643738976*G0_0_2 + 0.0310405643738978*G0_1_0 + 0.0902998236331571*G0_1_1 + 0.0902998236331571*G0_1_2;
 
3414
    A[407] = 0.118518518518518*G0_0_0 - 0.0423280423280419*G0_0_1 + 0.0507936507936513*G0_0_2 + 0.0931216931216934*G0_1_0 - 0.0846560846560845*G0_1_1 + 0.186243386243386*G0_1_2;
 
3415
    A[408] = -0.0846560846560849*G0_0_0 + 0.0931216931216925*G0_0_1 + 0.186243386243385*G0_0_2 - 0.0423280423280429*G0_1_0 + 0.118518518518518*G0_1_1 + 0.0507936507936505*G0_1_2;
 
3416
    A[409] = -0.0169312169312167*G0_0_0 - 0.019753086419753*G0_0_1 - 0.0846560846560846*G0_0_2 - 0.0197530864197531*G0_1_0 - 0.016931216931217*G0_1_1 - 0.0846560846560846*G0_1_2;
 
3417
    A[410] = 0.0169312169312168*G0_0_0 + 0.0197530864197533*G0_0_1 + 0.0197530864197531*G0_1_0 + 0.0225749559082894*G0_1_1;
 
3418
    A[411] = 0.084656084656085*G0_0_0 + 0.0423280423280424*G0_0_1 + 0.0423280423280429*G0_1_0 + 0.0225749559082895*G0_1_1;
 
3419
    A[412] = 0.0169312169312167*G0_0_0 + 0.0197530864197531*G0_0_1 + 0.0197530864197531*G0_1_0 + 0.0225749559082893*G0_1_1;
 
3420
    A[413] = 0.0225749559082894*G0_0_0 + 0.0197530864197531*G0_0_1 + 0.019753086419753*G0_1_0 + 0.0169312169312168*G0_1_1;
 
3421
    A[414] = 0.0225749559082889*G0_0_0 + 0.042328042328042*G0_0_1 + 0.0423280423280424*G0_1_0 + 0.0846560846560846*G0_1_1;
 
3422
    A[415] = 0.0225749559082894*G0_0_0 + 0.019753086419753*G0_0_1 + 0.0197530864197532*G0_1_0 + 0.016931216931217*G0_1_1;
 
3423
    A[416] = 0.067724867724868*G0_0_0 + 0.0649029982363317*G0_0_1 + 0.0846560846560847*G0_0_2 + 0.0649029982363313*G0_1_0 + 0.0677248677248673*G0_1_1 + 0.0846560846560844*G0_1_2;
 
3424
    A[417] = 0.0677248677248668*G0_0_0 - 0.0931216931216933*G0_0_1 - 0.0507936507936512*G0_0_2 - 0.0931216931216927*G0_1_0 - 0.270899470899471*G0_1_1 - 0.186243386243386*G0_1_2;
 
3425
    A[418] = -0.27089947089947*G0_0_0 - 0.0931216931216928*G0_0_1 - 0.186243386243385*G0_0_2 - 0.0931216931216932*G0_1_0 + 0.0677248677248681*G0_1_1 - 0.0507936507936506*G0_1_2;
 
3426
    A[419] = -0.135449735449735*G0_0_0 - 0.112874779541446*G0_0_1 - 0.112874779541446*G0_1_0 - 0.135449735449736*G0_1_1;
 
3427
    A[420] = 0.00776014109347439*G0_0_0 + 0.0077601410934744*G0_0_1 + 0.00776014109347439*G0_0_2 + 0.00776014109347441*G0_1_0 + 0.00776014109347444*G0_1_1 + 0.00776014109347442*G0_1_2;
 
3428
    A[421] = -0.00776014109347435*G0_0_0 + 0.017636684303351*G0_1_0;
 
3429
    A[422] = 0.0458553791887124*G0_0_1 - 0.0246913580246913*G0_1_1;
 
3430
    A[423] = -0.00776014109347441*G0_0_2 - 0.00776014109347439*G0_1_2;
 
3431
    A[424] = 0.0790123456790124*G0_0_1 + 0.158024691358025*G0_0_2 + 0.101587301587302*G0_1_1 + 0.0790123456790125*G0_1_2;
 
3432
    A[425] = -0.0310405643738977*G0_0_1 - 0.090299823633157*G0_0_2 - 0.0423280423280423*G0_1_1 - 0.0592592592592592*G0_1_2;
 
3433
    A[426] = 0.0112874779541446*G0_0_1 + 0.0451499118165784*G0_0_2 + 0.0112874779541447*G0_1_1 + 0.0338624338624338*G0_1_2;
 
3434
    A[427] = 0.0112874779541446*G0_0_0 + 0.0112874779541447*G0_0_2 + 0.033862433862434*G0_1_0 + 0.0451499118165786*G0_1_2;
 
3435
    A[428] = 0.00282186948853606*G0_0_0 + 0.00282186948853613*G0_0_2 + 0.0141093474426806*G0_1_0 + 0.0169312169312167*G0_1_2;
 
3436
    A[429] = 0.0112874779541446*G0_0_0 + 0.0112874779541446*G0_0_2 + 0.0112874779541447*G0_1_0 + 0.0225749559082893*G0_1_2;
 
3437
    A[430] = 0.0451499118165782*G0_0_0 + 0.0112874779541447*G0_0_1 - 0.0338624338624337*G0_1_0 + 0.0451499118165786*G0_1_1;
 
3438
    A[431] = -0.0902998236331567*G0_0_0 - 0.0310405643738979*G0_0_1 + 0.0423280423280419*G0_1_0 - 0.118518518518519*G0_1_1;
 
3439
    A[432] = 0.158024691358025*G0_0_0 + 0.0790123456790125*G0_0_1 + 0.0790123456790125*G0_1_0 + 0.203174603174603*G0_1_1;
 
3440
    A[433] = -0.0112874779541447*G0_0_0 - 0.0112874779541446*G0_0_1 - 0.0112874779541447*G0_1_0 - 0.0112874779541447*G0_1_1;
 
3441
    A[434] = -0.00282186948853624*G0_0_0 - 0.00282186948853623*G0_0_1 - 0.00282186948853613*G0_1_0 - 0.00282186948853612*G0_1_1;
 
3442
    A[435] = -0.0112874779541446*G0_0_0 - 0.0112874779541446*G0_0_1 - 0.0112874779541447*G0_1_0 - 0.0112874779541447*G0_1_1;
 
3443
    A[436] = -0.0451499118165784*G0_0_0 - 0.0338624338624337*G0_0_1 - 0.0451499118165784*G0_0_2 - 0.0338624338624338*G0_1_0 - 0.0225749559082892*G0_1_1 - 0.0338624338624339*G0_1_2;
 
3444
    A[437] = 0.090299823633157*G0_0_0 + 0.059259259259259*G0_0_1 + 0.090299823633157*G0_0_2 + 0.0592592592592593*G0_1_0 + 0.0169312169312168*G0_1_1 + 0.0592592592592593*G0_1_2;
 
3445
    A[438] = -0.158024691358025*G0_0_0 - 0.0790123456790122*G0_0_1 - 0.158024691358025*G0_0_2 - 0.0790123456790125*G0_1_0 + 0.0225749559082892*G0_1_1 - 0.0790123456790125*G0_1_2;
 
3446
    A[439] = -0.0112874779541446*G0_0_1 - 0.0112874779541446*G0_0_2 - 0.0112874779541446*G0_1_0 - 0.0225749559082893*G0_1_1 - 0.0225749559082893*G0_1_2;
 
3447
    A[440] = -0.00282186948853617*G0_0_1 - 0.00282186948853614*G0_0_2 - 0.00282186948853603*G0_1_0 - 0.0169312169312169*G0_1_1 - 0.0169312169312169*G0_1_2;
 
3448
    A[441] = -0.0112874779541446*G0_0_1 - 0.0112874779541446*G0_0_2 - 0.0112874779541447*G0_1_0 - 0.0451499118165786*G0_1_1 - 0.0451499118165786*G0_1_2;
 
3449
    A[442] = -0.022574955908289*G0_0_0 + 0.0112874779541446*G0_0_1 - 0.0225749559082893*G0_0_2 - 0.033862433862434*G0_1_0 + 0.0677248677248677*G0_1_1 - 0.0677248677248677*G0_1_2;
 
3450
    A[443] = 0.112874779541446*G0_0_0 + 0.0112874779541449*G0_0_1 + 0.112874779541446*G0_0_2 + 0.101587301587302*G0_1_0 - 0.0677248677248675*G0_1_1 + 0.203174603174603*G0_1_2;
 
3451
    A[444] = -0.0225749559082894*G0_0_0 + 0.0112874779541445*G0_0_1 - 0.0225749559082893*G0_0_2 - 0.0338624338624338*G0_1_0 + 0.0225749559082892*G0_1_1 - 0.0677248677248675*G0_1_2;
 
3452
    A[445] = 0.0225749559082892*G0_0_0 + 0.0338624338624338*G0_0_1 + 0.0338624338624337*G0_1_0 + 0.0451499118165784*G0_1_1;
 
3453
    A[446] = -0.112874779541446*G0_0_0 - 0.101587301587302*G0_0_1 - 0.101587301587302*G0_1_0 - 0.135449735449736*G0_1_1;
 
3454
    A[447] = 0.0225749559082893*G0_0_0 + 0.0338624338624339*G0_0_1 + 0.0338624338624337*G0_1_0 + 0.0451499118165783*G0_1_1;
 
3455
    A[448] = -0.0112874779541448*G0_0_1 - 0.0112874779541447*G0_1_0 - 0.0225749559082896*G0_1_1;
 
3456
    A[449] = -0.0112874779541447*G0_0_1 - 0.0112874779541445*G0_1_0 - 0.0677248677248678*G0_1_1;
 
3457
    A[450] = -0.0112874779541445*G0_0_1 - 0.0112874779541446*G0_1_0 - 0.0225749559082892*G0_1_1;
 
3458
    A[451] = 0.0338624338624337*G0_0_1 + 0.0225749559082891*G0_0_2 + 0.0338624338624336*G0_1_0 + 0.090299823633157*G0_1_1 + 0.0677248677248674*G0_1_2;
 
3459
    A[452] = 0.033862433862434*G0_0_1 + 0.0225749559082892*G0_0_2 + 0.0338624338624339*G0_1_0 + 0.135449735449736*G0_1_1 + 0.0677248677248676*G0_1_2;
 
3460
    A[453] = -0.101587301587302*G0_0_1 - 0.112874779541446*G0_0_2 - 0.101587301587301*G0_1_0 - 0.270899470899471*G0_1_1 - 0.203174603174603*G0_1_2;
 
3461
    A[454] = 0.0902998236331573*G0_1_1;
 
3462
    A[455] = -0.0246913580246914*G0_0_0 - 0.0246913580246914*G0_0_1 - 0.0246913580246914*G0_0_2 - 0.0246913580246914*G0_1_0 - 0.0246913580246914*G0_1_1 - 0.0246913580246914*G0_1_2 - 0.0705467372134038*G0_2_0 - 0.0705467372134038*G0_2_1 - 0.0705467372134038*G0_2_2;
 
3463
    A[456] = 0.00776014109347437*G0_0_0 + 0.00776014109347438*G0_1_0;
 
3464
    A[457] = 0.00776014109347442*G0_0_1 + 0.00776014109347443*G0_1_1;
 
3465
    A[458] = -0.017636684303351*G0_0_2 - 0.017636684303351*G0_1_2 - 0.0253968253968254*G0_2_2;
 
3466
    A[459] = -0.0225749559082892*G0_0_1 - 0.0112874779541446*G0_0_2 - 0.0225749559082892*G0_1_1 - 0.0112874779541446*G0_1_2 - 0.0112874779541446*G0_2_1;
 
3467
    A[460] = -0.0169312169312169*G0_0_1 - 0.0141093474426808*G0_0_2 - 0.0169312169312169*G0_1_1 - 0.0141093474426808*G0_1_2 - 0.0141093474426809*G0_2_1 - 0.0112874779541446*G0_2_2;
 
3468
    A[461] = -0.0451499118165785*G0_0_1 - 0.0338624338624339*G0_0_2 - 0.0451499118165785*G0_1_1 - 0.0338624338624339*G0_1_2 - 0.0338624338624338*G0_2_1 - 0.0225749559082893*G0_2_2;
 
3469
    A[462] = -0.0225749559082892*G0_0_0 - 0.0112874779541447*G0_0_2 - 0.0225749559082893*G0_1_0 - 0.0112874779541447*G0_1_2 - 0.0112874779541445*G0_2_0;
 
3470
    A[463] = -0.0169312169312169*G0_0_0 - 0.0141093474426808*G0_0_2 - 0.0169312169312169*G0_1_0 - 0.0141093474426808*G0_1_2 - 0.014109347442681*G0_2_0 - 0.0112874779541447*G0_2_2;
 
3471
    A[464] = -0.0451499118165785*G0_0_0 - 0.0338624338624339*G0_0_2 - 0.0451499118165785*G0_1_0 - 0.0338624338624339*G0_1_2 - 0.0338624338624338*G0_2_0 - 0.0225749559082893*G0_2_2;
 
3472
    A[465] = -0.0112874779541445*G0_0_0 - 0.0112874779541446*G0_0_1 - 0.0112874779541446*G0_1_0 - 0.0112874779541447*G0_1_1;
 
3473
    A[466] = -0.00282186948853627*G0_0_0 - 0.00282186948853614*G0_0_1 - 0.00282186948853625*G0_1_0 - 0.00282186948853611*G0_1_1;
 
3474
    A[467] = -0.0112874779541447*G0_0_0 - 0.0112874779541447*G0_0_1 - 0.0112874779541446*G0_1_0 - 0.0112874779541447*G0_1_1;
 
3475
    A[468] = 0.203174603174603*G0_0_0 + 0.203174603174603*G0_0_1 + 0.124162257495591*G0_0_2 + 0.203174603174603*G0_1_0 + 0.203174603174603*G0_1_1 + 0.124162257495591*G0_1_2 + 0.124162257495591*G0_2_0 + 0.124162257495591*G0_2_1 + 0.203174603174603*G0_2_2;
 
3476
    A[469] = -0.118518518518518*G0_0_0 - 0.118518518518519*G0_0_1 - 0.160846560846561*G0_0_2 - 0.118518518518518*G0_1_0 - 0.118518518518519*G0_1_1 - 0.160846560846561*G0_1_2 - 0.0874779541446208*G0_2_0 - 0.0874779541446208*G0_2_1 - 0.22010582010582*G0_2_2;
 
3477
    A[470] = 0.0451499118165785*G0_0_0 + 0.0451499118165785*G0_0_1 + 0.0790123456790123*G0_0_2 + 0.0451499118165785*G0_1_0 + 0.0451499118165785*G0_1_1 + 0.0790123456790124*G0_1_2 + 0.0338624338624338*G0_2_0 + 0.0338624338624338*G0_2_1 + 0.112874779541446*G0_2_2;
 
3478
    A[471] = 0.101587301587301*G0_0_0 + 0.0225749559082893*G0_0_1 + 0.101587301587301*G0_0_2 + 0.101587301587301*G0_1_0 + 0.0225749559082893*G0_1_1 + 0.101587301587301*G0_1_2 + 0.0225749559082894*G0_2_0 + 0.101587301587301*G0_2_1 + 0.0225749559082894*G0_2_2;
 
3479
    A[472] = -0.0423280423280424*G0_0_0 + 0.0169312169312169*G0_0_1 - 0.0423280423280424*G0_0_2 - 0.0423280423280423*G0_1_0 + 0.0169312169312169*G0_1_1 - 0.0423280423280423*G0_1_2 - 0.0112874779541447*G0_2_0 - 0.0423280423280423*G0_2_1 - 0.0112874779541447*G0_2_2;
 
3480
    A[473] = 0.0112874779541447*G0_0_0 - 0.0225749559082892*G0_0_1 + 0.0112874779541447*G0_0_2 + 0.0112874779541446*G0_1_0 - 0.0225749559082892*G0_1_1 + 0.0112874779541446*G0_1_2 + 0.0112874779541447*G0_2_1;
 
3481
    A[474] = 0.0225749559082892*G0_0_0 + 0.101587301587302*G0_0_1 + 0.101587301587302*G0_0_2 + 0.0225749559082893*G0_1_0 + 0.101587301587302*G0_1_1 + 0.101587301587302*G0_1_2 + 0.101587301587301*G0_2_0 + 0.0225749559082893*G0_2_1 + 0.0225749559082893*G0_2_2;
 
3482
    A[475] = 0.016931216931217*G0_0_0 - 0.0423280423280422*G0_0_1 - 0.0423280423280422*G0_0_2 + 0.016931216931217*G0_1_0 - 0.0423280423280422*G0_1_1 - 0.0423280423280422*G0_1_2 - 0.0423280423280422*G0_2_0 - 0.0112874779541447*G0_2_1 - 0.0112874779541447*G0_2_2;
 
3483
    A[476] = -0.0225749559082892*G0_0_0 + 0.0112874779541446*G0_0_1 + 0.0112874779541446*G0_0_2 - 0.0225749559082892*G0_1_0 + 0.0112874779541447*G0_1_1 + 0.0112874779541447*G0_1_2 + 0.0112874779541446*G0_2_0;
 
3484
    A[477] = -0.0225749559082896*G0_0_0 - 0.0225749559082894*G0_0_1 - 0.0112874779541449*G0_0_2 - 0.0225749559082895*G0_1_0 - 0.0225749559082894*G0_1_1 - 0.0112874779541449*G0_1_2 - 0.0112874779541445*G0_2_0 - 0.0112874779541447*G0_2_1;
 
3485
    A[478] = -0.0225749559082895*G0_0_0 - 0.0225749559082895*G0_0_1 - 0.0112874779541448*G0_0_2 - 0.0225749559082894*G0_1_0 - 0.0225749559082894*G0_1_1 - 0.0112874779541448*G0_1_2 - 0.0112874779541445*G0_2_0 - 0.0112874779541444*G0_2_1;
 
3486
    A[479] = -0.0677248677248677*G0_0_0 - 0.0677248677248675*G0_0_1 - 0.0564373897707231*G0_0_2 - 0.0677248677248676*G0_1_0 - 0.0677248677248675*G0_1_1 - 0.056437389770723*G0_1_2 - 0.0564373897707233*G0_2_0 - 0.0564373897707234*G0_2_1 - 0.0451499118165787*G0_2_2;
 
3487
    A[480] = -0.0677248677248681*G0_0_0 - 0.270899470899471*G0_0_1 - 0.169312169312169*G0_0_2 - 0.067724867724868*G0_1_0 - 0.270899470899471*G0_1_1 - 0.169312169312169*G0_1_2 - 0.0790123456790122*G0_2_0 - 0.169312169312169*G0_2_1 - 0.0677248677248679*G0_2_2;
 
3488
    A[481] = 0.0225749559082894*G0_0_0 + 0.0902998236331572*G0_0_1 + 0.0564373897707231*G0_0_2 + 0.0225749559082894*G0_1_0 + 0.0902998236331571*G0_1_1 + 0.0564373897707231*G0_1_2 + 0.0112874779541445*G0_2_0 + 0.056437389770723*G0_2_1 + 0.0225749559082892*G0_2_2;
 
3489
    A[482] = 0.0677248677248677*G0_0_0 + 0.135449735449735*G0_0_1 + 0.101587301587302*G0_0_2 + 0.0677248677248677*G0_1_0 + 0.135449735449735*G0_1_1 + 0.101587301587302*G0_1_2 + 0.0564373897707234*G0_2_0 + 0.101587301587302*G0_2_1 + 0.0677248677248678*G0_2_2;
 
3490
    A[483] = -0.270899470899471*G0_0_0 - 0.0677248677248677*G0_0_1 - 0.169312169312169*G0_0_2 - 0.270899470899471*G0_1_0 - 0.0677248677248679*G0_1_1 - 0.169312169312169*G0_1_2 - 0.169312169312169*G0_2_0 - 0.0790123456790123*G0_2_1 - 0.0677248677248677*G0_2_2;
 
3491
    A[484] = 0.0902998236331568*G0_0_0 + 0.0225749559082895*G0_0_1 + 0.056437389770723*G0_0_2 + 0.090299823633157*G0_1_0 + 0.0225749559082895*G0_1_1 + 0.056437389770723*G0_1_2 + 0.056437389770723*G0_2_0 + 0.0112874779541447*G0_2_1 + 0.0225749559082894*G0_2_2;
 
3492
    A[485] = 0.135449735449735*G0_0_0 + 0.0677248677248676*G0_0_1 + 0.101587301587302*G0_0_2 + 0.135449735449735*G0_1_0 + 0.0677248677248675*G0_1_1 + 0.101587301587302*G0_1_2 + 0.101587301587302*G0_2_0 + 0.0564373897707234*G0_2_1 + 0.0677248677248677*G0_2_2;
 
3493
    A[486] = -0.135449735449735*G0_0_0 - 0.135449735449735*G0_0_1 - 0.0338624338624339*G0_0_2 - 0.135449735449735*G0_1_0 - 0.135449735449735*G0_1_1 - 0.0338624338624339*G0_1_2 - 0.0338624338624341*G0_2_0 - 0.0338624338624339*G0_2_1 - 0.0451499118165786*G0_2_2;
 
3494
    A[487] = 0.045149911816578*G0_0_0 + 0.0451499118165783*G0_0_1 + 0.0112874779541448*G0_0_2 + 0.0451499118165782*G0_1_0 + 0.0451499118165783*G0_1_1 + 0.0112874779541448*G0_1_2 + 0.0112874779541447*G0_2_0 + 0.0112874779541447*G0_2_1;
 
3495
    A[488] = 0.0451499118165787*G0_0_0 + 0.0451499118165785*G0_0_1 + 0.0112874779541448*G0_0_2 + 0.0451499118165786*G0_1_0 + 0.0451499118165784*G0_1_1 + 0.0112874779541448*G0_1_2 + 0.0112874779541446*G0_2_0 + 0.0112874779541446*G0_2_1;
 
3496
    A[489] = 0.0902998236331577*G0_0_0 + 0.0902998236331572*G0_0_1 + 0.090299823633157*G0_0_2 + 0.0902998236331575*G0_1_0 + 0.0902998236331572*G0_1_1 + 0.0902998236331569*G0_1_2 + 0.0902998236331568*G0_2_0 + 0.0902998236331567*G0_2_1 + 0.0902998236331572*G0_2_2;
 
3497
    A[490] = 0.0202821869488536*G0_0_0 + 0.0202821869488536*G0_0_1 + 0.0202821869488536*G0_0_2 + 0.0202821869488536*G0_1_0 + 0.0202821869488536*G0_1_1 + 0.0202821869488536*G0_1_2 + 0.0529100529100528*G0_2_0 + 0.0529100529100529*G0_2_1 + 0.0529100529100528*G0_2_2;
 
3498
    A[491] = 0.0051146384479718*G0_0_0 + 0.00511463844797177*G0_1_0;
 
3499
    A[492] = 0.00511463844797175*G0_0_1 + 0.00511463844797176*G0_1_1;
 
3500
    A[493] = 0.0326278659611992*G0_0_2 + 0.0326278659611992*G0_1_2 + 0.0529100529100528*G0_2_2;
 
3501
    A[494] = -0.016931216931217*G0_0_1 - 0.00282186948853626*G0_0_2 - 0.0169312169312169*G0_1_1 - 0.00282186948853626*G0_1_2 - 0.00282186948853615*G0_2_1;
 
3502
    A[495] = 0.0211640211640212*G0_0_1 + 0.0105820105820107*G0_0_2 + 0.0211640211640213*G0_1_1 + 0.0105820105820108*G0_1_2 + 0.0105820105820107*G0_2_1 - 0.00282186948853619*G0_2_2;
 
3503
    A[496] = 0.0902998236331567*G0_0_1 + 0.0592592592592593*G0_0_2 + 0.0902998236331567*G0_1_1 + 0.0592592592592592*G0_1_2 + 0.059259259259259*G0_2_1 + 0.0169312169312169*G0_2_2;
 
3504
    A[497] = -0.0169312169312168*G0_0_0 - 0.00282186948853604*G0_0_2 - 0.0169312169312168*G0_1_0 - 0.00282186948853606*G0_1_2 - 0.00282186948853617*G0_2_0;
 
3505
    A[498] = 0.0211640211640212*G0_0_0 + 0.0105820105820105*G0_0_2 + 0.0211640211640212*G0_1_0 + 0.0105820105820106*G0_1_2 + 0.0105820105820109*G0_2_0 - 0.00282186948853589*G0_2_2;
 
3506
    A[499] = 0.0902998236331568*G0_0_0 + 0.0592592592592592*G0_0_2 + 0.0902998236331568*G0_1_0 + 0.0592592592592592*G0_1_2 + 0.059259259259259*G0_2_0 + 0.0169312169312169*G0_2_2;
 
3507
    A[500] = -0.00282186948853601*G0_0_0 - 0.00282186948853601*G0_0_1 - 0.00282186948853598*G0_1_0 - 0.00282186948853603*G0_1_1;
 
3508
    A[501] = -0.00917107583774251*G0_0_0 - 0.00917107583774257*G0_0_1 - 0.00917107583774257*G0_1_0 - 0.00917107583774261*G0_1_1;
 
3509
    A[502] = -0.00282186948853624*G0_0_0 - 0.00282186948853613*G0_0_1 - 0.00282186948853623*G0_1_0 - 0.00282186948853612*G0_1_1;
 
3510
    A[503] = -0.118518518518518*G0_0_0 - 0.118518518518518*G0_0_1 - 0.0874779541446208*G0_0_2 - 0.118518518518519*G0_1_0 - 0.118518518518519*G0_1_1 - 0.0874779541446208*G0_1_2 - 0.160846560846561*G0_2_0 - 0.160846560846561*G0_2_1 - 0.22010582010582*G0_2_2;
 
3511
    A[504] = 0.249735449735449*G0_0_0 + 0.24973544973545*G0_0_1 + 0.167195767195767*G0_0_2 + 0.24973544973545*G0_1_0 + 0.24973544973545*G0_1_1 + 0.167195767195767*G0_1_2 + 0.167195767195767*G0_2_0 + 0.167195767195767*G0_2_1 + 0.334391534391534*G0_2_2;
 
3512
    A[505] = -0.0902998236331567*G0_0_0 - 0.0902998236331568*G0_0_1 - 0.132627865961199*G0_0_2 - 0.0902998236331568*G0_1_0 - 0.0902998236331567*G0_1_1 - 0.132627865961199*G0_1_2 - 0.059259259259259*G0_2_0 - 0.059259259259259*G0_2_1 - 0.22010582010582*G0_2_2;
 
3513
    A[506] = -0.0423280423280423*G0_0_0 - 0.0112874779541446*G0_0_1 - 0.0423280423280423*G0_0_2 - 0.0423280423280424*G0_1_0 - 0.0112874779541446*G0_1_1 - 0.0423280423280424*G0_1_2 + 0.0169312169312168*G0_2_0 - 0.0423280423280423*G0_2_1 + 0.0169312169312168*G0_2_2;
 
3514
    A[507] = -0.0134038800705468*G0_0_0 - 0.00282186948853633*G0_0_1 - 0.0134038800705468*G0_0_2 - 0.0134038800705468*G0_1_0 - 0.00282186948853631*G0_1_1 - 0.0134038800705468*G0_1_2 - 0.00282186948853619*G0_2_0 - 0.0134038800705468*G0_2_1 - 0.00282186948853617*G0_2_2;
 
3515
    A[508] = 0.00282186948853625*G0_0_0 - 0.0112874779541445*G0_0_1 + 0.00282186948853625*G0_0_2 + 0.00282186948853624*G0_1_0 - 0.0112874779541445*G0_1_1 + 0.00282186948853624*G0_1_2 + 0.00282186948853617*G0_2_1;
 
3516
    A[509] = -0.0112874779541446*G0_0_0 - 0.0423280423280423*G0_0_1 - 0.0423280423280424*G0_0_2 - 0.0112874779541445*G0_1_0 - 0.0423280423280423*G0_1_1 - 0.0423280423280423*G0_1_2 - 0.0423280423280423*G0_2_0 + 0.0169312169312168*G0_2_1 + 0.0169312169312168*G0_2_2;
 
3517
    A[510] = -0.00282186948853631*G0_0_0 - 0.0134038800705468*G0_0_1 - 0.0134038800705468*G0_0_2 - 0.00282186948853635*G0_1_0 - 0.0134038800705469*G0_1_1 - 0.0134038800705468*G0_1_2 - 0.0134038800705468*G0_2_0 - 0.00282186948853605*G0_2_1 - 0.00282186948853604*G0_2_2;
 
3518
    A[511] = -0.0112874779541445*G0_0_0 + 0.00282186948853605*G0_0_1 + 0.00282186948853602*G0_0_2 - 0.0112874779541445*G0_1_0 + 0.00282186948853607*G0_1_1 + 0.00282186948853604*G0_1_2 + 0.00282186948853621*G0_2_0;
 
3519
    A[512] = 0.0169312169312169*G0_0_0 + 0.016931216931217*G0_0_1 - 0.00282186948853588*G0_0_2 + 0.0169312169312166*G0_1_0 + 0.0169312169312169*G0_1_1 - 0.00282186948853602*G0_1_2 - 0.00282186948853615*G0_2_0 - 0.00282186948853586*G0_2_1;
 
3520
    A[513] = 0.016931216931217*G0_0_0 + 0.0169312169312169*G0_0_1 - 0.00282186948853633*G0_0_2 + 0.0169312169312171*G0_1_0 + 0.0169312169312169*G0_1_1 - 0.00282186948853631*G0_1_2 - 0.00282186948853624*G0_2_0 - 0.00282186948853649*G0_2_1;
 
3521
    A[514] = 0.0846560846560846*G0_0_0 + 0.0846560846560843*G0_0_1 + 0.0423280423280422*G0_0_2 + 0.0846560846560845*G0_1_0 + 0.0846560846560842*G0_1_1 + 0.042328042328042*G0_1_2 + 0.0423280423280423*G0_2_0 + 0.0423280423280424*G0_2_1 + 0.0225749559082893*G0_2_2;
 
3522
    A[515] = 0.118518518518519*G0_0_0 + 0.0677248677248679*G0_0_1 + 0.160846560846561*G0_0_2 + 0.118518518518519*G0_1_0 + 0.0677248677248679*G0_1_1 + 0.160846560846561*G0_1_2 + 0.0253968253968253*G0_2_0 + 0.160846560846561*G0_2_1 - 0.0169312169312166*G0_2_2;
 
3523
    A[516] = -0.016931216931217*G0_0_0 + 0.0677248677248675*G0_0_1 + 0.00282186948853603*G0_0_2 - 0.0169312169312171*G0_1_0 + 0.0677248677248675*G0_1_1 + 0.002821869488536*G0_1_2 + 0.00282186948853624*G0_2_0 + 0.00282186948853604*G0_2_1 + 0.0056437389770724*G0_2_2;
 
3524
    A[517] = -0.0846560846560846*G0_0_0 - 0.270899470899471*G0_0_1 - 0.177777777777778*G0_0_2 - 0.0846560846560845*G0_1_0 - 0.270899470899471*G0_1_1 - 0.177777777777778*G0_1_2 - 0.0423280423280423*G0_2_0 - 0.177777777777778*G0_2_1 - 0.0169312169312171*G0_2_2;
 
3525
    A[518] = 0.0677248677248677*G0_0_0 + 0.118518518518519*G0_0_1 + 0.160846560846561*G0_0_2 + 0.0677248677248678*G0_1_0 + 0.118518518518519*G0_1_1 + 0.160846560846561*G0_1_2 + 0.160846560846561*G0_2_0 + 0.0253968253968254*G0_2_1 - 0.0169312169312168*G0_2_2;
 
3526
    A[519] = 0.0677248677248676*G0_0_0 - 0.016931216931217*G0_0_1 + 0.00282186948853642*G0_0_2 + 0.0677248677248675*G0_1_0 - 0.016931216931217*G0_1_1 + 0.0028218694885364*G0_1_2 + 0.00282186948853601*G0_2_0 + 0.00282186948853582*G0_2_1 + 0.00564373897707204*G0_2_2;
 
3527
    A[520] = -0.270899470899471*G0_0_0 - 0.0846560846560843*G0_0_1 - 0.177777777777778*G0_0_2 - 0.270899470899471*G0_1_0 - 0.0846560846560841*G0_1_1 - 0.177777777777778*G0_1_2 - 0.177777777777778*G0_2_0 - 0.0423280423280425*G0_2_1 - 0.016931216931217*G0_2_2;
 
3528
    A[521] = 0.0225749559082892*G0_0_0 + 0.0225749559082893*G0_0_1 - 0.019753086419753*G0_0_2 + 0.0225749559082893*G0_1_0 + 0.0225749559082893*G0_1_1 - 0.0197530864197531*G0_1_2 - 0.0197530864197529*G0_2_0 - 0.019753086419753*G0_2_1 + 0.0225749559082893*G0_2_2;
 
3529
    A[522] = 0.0225749559082891*G0_0_0 + 0.0225749559082893*G0_0_1 + 0.00282186948853588*G0_0_2 + 0.0225749559082891*G0_1_0 + 0.0225749559082894*G0_1_1 + 0.00282186948853602*G0_1_2 + 0.002821869488536*G0_2_0 + 0.00282186948853604*G0_2_1;
 
3530
    A[523] = 0.0225749559082892*G0_0_0 + 0.0225749559082892*G0_0_1 + 0.00282186948853629*G0_0_2 + 0.0225749559082893*G0_1_0 + 0.0225749559082892*G0_1_1 + 0.00282186948853627*G0_1_2 + 0.00282186948853627*G0_2_0 + 0.00282186948853621*G0_2_1;
 
3531
    A[524] = -0.135449735449735*G0_0_0 - 0.135449735449736*G0_0_1 - 0.0225749559082892*G0_0_2 - 0.135449735449735*G0_1_0 - 0.135449735449736*G0_1_1 - 0.022574955908289*G0_1_2 - 0.0225749559082892*G0_2_0 - 0.0225749559082889*G0_2_1 - 0.0451499118165785*G0_2_2;
 
3532
    A[525] = -0.00776014109347437*G0_0_0 - 0.00776014109347439*G0_0_1 - 0.00776014109347438*G0_0_2 - 0.00776014109347437*G0_1_0 - 0.00776014109347439*G0_1_1 - 0.00776014109347439*G0_1_2 - 0.0253968253968253*G0_2_0 - 0.0253968253968254*G0_2_1 - 0.0253968253968254*G0_2_2;
 
3533
    A[526] = 0.00776014109347437*G0_0_0 + 0.00776014109347437*G0_1_0;
 
3534
    A[527] = 0.00776014109347448*G0_0_1 + 0.00776014109347449*G0_1_1;
 
3535
    A[528] = -0.0458553791887125*G0_0_2 - 0.0458553791887125*G0_1_2 - 0.0705467372134038*G0_2_2;
 
3536
    A[529] = -0.0451499118165785*G0_0_1 - 0.0112874779541446*G0_0_2 - 0.0451499118165786*G0_1_1 - 0.0112874779541446*G0_1_2 - 0.0112874779541448*G0_2_1;
 
3537
    A[530] = 0.090299823633157*G0_0_1 + 0.0310405643738976*G0_0_2 + 0.090299823633157*G0_1_1 + 0.0310405643738975*G0_1_2 + 0.0310405643738977*G0_2_1 - 0.0112874779541448*G0_2_2;
 
3538
    A[531] = -0.158024691358024*G0_0_1 - 0.0790123456790123*G0_0_2 - 0.158024691358024*G0_1_1 - 0.0790123456790122*G0_1_2 - 0.0790123456790122*G0_2_1 + 0.0225749559082894*G0_2_2;
 
3539
    A[532] = -0.0451499118165784*G0_0_0 - 0.0112874779541447*G0_0_2 - 0.0451499118165785*G0_1_0 - 0.0112874779541447*G0_1_2 - 0.0112874779541446*G0_2_0;
 
3540
    A[533] = 0.0902998236331568*G0_0_0 + 0.0310405643738977*G0_0_2 + 0.0902998236331568*G0_1_0 + 0.0310405643738977*G0_1_2 + 0.0310405643738974*G0_2_0 - 0.0112874779541449*G0_2_2;
 
3541
    A[534] = -0.158024691358024*G0_0_0 - 0.0790123456790123*G0_0_2 - 0.158024691358024*G0_1_0 - 0.0790123456790122*G0_1_2 - 0.0790123456790121*G0_2_0 + 0.0225749559082893*G0_2_2;
 
3542
    A[535] = -0.0112874779541446*G0_0_0 - 0.0112874779541447*G0_0_1 - 0.0112874779541446*G0_1_0 - 0.0112874779541447*G0_1_1;
 
3543
    A[536] = -0.00282186948853623*G0_0_0 - 0.00282186948853611*G0_0_1 - 0.00282186948853618*G0_1_0 - 0.00282186948853607*G0_1_1;
 
3544
    A[537] = -0.0112874779541446*G0_0_0 - 0.0112874779541447*G0_0_1 - 0.0112874779541446*G0_1_0 - 0.0112874779541447*G0_1_1;
 
3545
    A[538] = 0.0451499118165785*G0_0_0 + 0.0451499118165785*G0_0_1 + 0.0338624338624338*G0_0_2 + 0.0451499118165785*G0_1_0 + 0.0451499118165785*G0_1_1 + 0.0338624338624338*G0_1_2 + 0.0790123456790123*G0_2_0 + 0.0790123456790124*G0_2_1 + 0.112874779541446*G0_2_2;
 
3546
    A[539] = -0.0902998236331568*G0_0_0 - 0.0902998236331568*G0_0_1 - 0.059259259259259*G0_0_2 - 0.0902998236331568*G0_1_0 - 0.0902998236331567*G0_1_1 - 0.059259259259259*G0_1_2 - 0.132627865961199*G0_2_0 - 0.132627865961199*G0_2_1 - 0.22010582010582*G0_2_2;
 
3547
    A[540] = 0.158024691358025*G0_0_0 + 0.158024691358024*G0_0_1 + 0.0790123456790121*G0_0_2 + 0.158024691358024*G0_1_0 + 0.158024691358024*G0_1_1 + 0.0790123456790121*G0_1_2 + 0.0790123456790121*G0_2_0 + 0.0790123456790121*G0_2_1 + 0.203174603174603*G0_2_2;
 
3548
    A[541] = 0.0112874779541447*G0_0_0 + 0.0112874779541447*G0_0_2 + 0.0112874779541447*G0_1_0 + 0.0112874779541447*G0_1_2 - 0.0225749559082891*G0_2_0 + 0.0112874779541446*G0_2_1 - 0.0225749559082891*G0_2_2;
 
3549
    A[542] = 0.00282186948853612*G0_0_0 + 0.00282186948853609*G0_0_2 + 0.00282186948853613*G0_1_0 + 0.0028218694885361*G0_1_2 - 0.0112874779541446*G0_2_0 + 0.00282186948853623*G0_2_1 - 0.0112874779541446*G0_2_2;
 
3550
    A[543] = 0.0112874779541446*G0_0_0 + 0.0112874779541446*G0_0_2 + 0.0112874779541446*G0_1_0 + 0.0112874779541446*G0_1_2 + 0.0112874779541445*G0_2_1;
 
3551
    A[544] = 0.0112874779541447*G0_0_1 + 0.0112874779541447*G0_0_2 + 0.0112874779541447*G0_1_1 + 0.0112874779541447*G0_1_2 + 0.0112874779541446*G0_2_0 - 0.0225749559082891*G0_2_1 - 0.0225749559082891*G0_2_2;
 
3552
    A[545] = 0.00282186948853617*G0_0_1 + 0.00282186948853615*G0_0_2 + 0.00282186948853615*G0_1_1 + 0.00282186948853614*G0_1_2 + 0.00282186948853622*G0_2_0 - 0.0112874779541447*G0_2_1 - 0.0112874779541447*G0_2_2;
 
3553
    A[546] = 0.0112874779541447*G0_0_1 + 0.0112874779541447*G0_0_2 + 0.0112874779541448*G0_1_1 + 0.0112874779541447*G0_1_2 + 0.0112874779541446*G0_2_0;
 
3554
    A[547] = 0.0225749559082891*G0_0_0 + 0.0225749559082893*G0_0_1 - 0.0112874779541447*G0_0_2 + 0.0225749559082892*G0_1_0 + 0.0225749559082892*G0_1_1 - 0.0112874779541447*G0_1_2 - 0.0112874779541447*G0_2_0 - 0.0112874779541448*G0_2_1;
 
3555
    A[548] = 0.022574955908289*G0_0_0 + 0.022574955908289*G0_0_1 - 0.0112874779541447*G0_0_2 + 0.0225749559082889*G0_1_0 + 0.0225749559082891*G0_1_1 - 0.0112874779541447*G0_1_2 - 0.0112874779541447*G0_2_0 - 0.0112874779541444*G0_2_1;
 
3556
    A[549] = -0.112874779541446*G0_0_0 - 0.112874779541446*G0_0_1 - 0.0112874779541446*G0_0_2 - 0.112874779541446*G0_1_0 - 0.112874779541446*G0_1_1 - 0.0112874779541445*G0_1_2 - 0.0112874779541446*G0_2_0 - 0.0112874779541448*G0_2_1 - 0.0451499118165786*G0_2_2;
 
3557
    A[550] = -0.0225749559082894*G0_0_0 - 0.0338624338624339*G0_0_2 - 0.0225749559082893*G0_1_0 - 0.0338624338624339*G0_1_2 + 0.0112874779541445*G0_2_0 - 0.0338624338624341*G0_2_1 + 0.0677248677248675*G0_2_2;
 
3558
    A[551] = -0.0225749559082889*G0_0_0 - 0.0338624338624336*G0_0_2 - 0.0225749559082889*G0_1_0 - 0.0338624338624335*G0_1_2 + 0.0112874779541447*G0_2_0 - 0.0338624338624336*G0_2_1 + 0.0225749559082893*G0_2_2;
 
3559
    A[552] = 0.112874779541446*G0_0_0 + 0.101587301587302*G0_0_2 + 0.112874779541446*G0_1_0 + 0.101587301587301*G0_1_2 + 0.0112874779541446*G0_2_0 + 0.101587301587301*G0_2_1 - 0.0677248677248677*G0_2_2;
 
3560
    A[553] = -0.0225749559082893*G0_0_1 - 0.033862433862434*G0_0_2 - 0.0225749559082893*G0_1_1 - 0.033862433862434*G0_1_2 - 0.0338624338624341*G0_2_0 + 0.0112874779541445*G0_2_1 + 0.0677248677248675*G0_2_2;
 
3561
    A[554] = -0.0225749559082893*G0_0_1 - 0.033862433862434*G0_0_2 - 0.0225749559082892*G0_1_1 - 0.033862433862434*G0_1_2 - 0.0338624338624337*G0_2_0 + 0.0112874779541448*G0_2_1 + 0.0225749559082894*G0_2_2;
 
3562
    A[555] = 0.112874779541446*G0_0_1 + 0.101587301587302*G0_0_2 + 0.112874779541446*G0_1_1 + 0.101587301587302*G0_1_2 + 0.101587301587302*G0_2_0 + 0.0112874779541448*G0_2_1 - 0.0677248677248676*G0_2_2;
 
3563
    A[556] = 0.0112874779541447*G0_0_2 + 0.0112874779541447*G0_1_2 + 0.0112874779541444*G0_2_0 + 0.0112874779541445*G0_2_1 - 0.0451499118165785*G0_2_2;
 
3564
    A[557] = 0.0112874779541448*G0_0_2 + 0.0112874779541447*G0_1_2 + 0.0112874779541447*G0_2_0 + 0.0112874779541447*G0_2_1;
 
3565
    A[558] = 0.0112874779541447*G0_0_2 + 0.0112874779541447*G0_1_2 + 0.0112874779541446*G0_2_0 + 0.0112874779541446*G0_2_1;
 
3566
    A[559] = 0.090299823633157*G0_2_2;
 
3567
    A[560] = -0.0246913580246913*G0_0_0 - 0.0246913580246914*G0_0_1 - 0.0246913580246914*G0_0_2 - 0.0705467372134038*G0_1_0 - 0.0705467372134038*G0_1_1 - 0.0705467372134038*G0_1_2 - 0.0246913580246913*G0_2_0 - 0.0246913580246914*G0_2_1 - 0.0246913580246914*G0_2_2;
 
3568
    A[561] = 0.00776014109347436*G0_0_0 + 0.00776014109347436*G0_2_0;
 
3569
    A[562] = -0.0176366843033509*G0_0_1 - 0.0253968253968253*G0_1_1 - 0.0176366843033509*G0_2_1;
 
3570
    A[563] = 0.0077601410934744*G0_0_2 + 0.00776014109347441*G0_2_2;
 
3571
    A[564] = -0.0338624338624337*G0_0_1 - 0.0451499118165783*G0_0_2 - 0.022574955908289*G0_1_1 - 0.0338624338624336*G0_1_2 - 0.0338624338624337*G0_2_1 - 0.0451499118165783*G0_2_2;
 
3572
    A[565] = -0.0141093474426808*G0_0_1 - 0.0169312169312169*G0_0_2 - 0.0112874779541447*G0_1_1 - 0.0141093474426807*G0_1_2 - 0.0141093474426808*G0_2_1 - 0.0169312169312169*G0_2_2;
 
3573
    A[566] = -0.0112874779541447*G0_0_1 - 0.0225749559082893*G0_0_2 - 0.0112874779541447*G0_1_2 - 0.0112874779541447*G0_2_1 - 0.0225749559082893*G0_2_2;
 
3574
    A[567] = -0.0112874779541447*G0_0_0 - 0.0112874779541447*G0_0_2 - 0.0112874779541447*G0_2_0 - 0.0112874779541447*G0_2_2;
 
3575
    A[568] = -0.00282186948853602*G0_0_0 - 0.00282186948853615*G0_0_2 - 0.00282186948853599*G0_2_0 - 0.00282186948853613*G0_2_2;
 
3576
    A[569] = -0.0112874779541447*G0_0_0 - 0.0112874779541446*G0_0_2 - 0.0112874779541447*G0_2_0 - 0.0112874779541446*G0_2_2;
 
3577
    A[570] = -0.0225749559082891*G0_0_0 - 0.0112874779541446*G0_0_1 - 0.0112874779541444*G0_1_0 - 0.0225749559082891*G0_2_0 - 0.0112874779541447*G0_2_1;
 
3578
    A[571] = -0.0169312169312169*G0_0_0 - 0.0141093474426806*G0_0_1 - 0.0141093474426809*G0_1_0 - 0.0112874779541446*G0_1_1 - 0.0169312169312169*G0_2_0 - 0.0141093474426806*G0_2_1;
 
3579
    A[572] = -0.0451499118165784*G0_0_0 - 0.0338624338624339*G0_0_1 - 0.0338624338624337*G0_1_0 - 0.0225749559082892*G0_1_1 - 0.0451499118165784*G0_2_0 - 0.0338624338624339*G0_2_1;
 
3580
    A[573] = 0.101587301587301*G0_0_0 + 0.101587301587301*G0_0_1 + 0.0225749559082894*G0_0_2 + 0.0225749559082893*G0_1_0 + 0.0225749559082893*G0_1_1 + 0.101587301587301*G0_1_2 + 0.101587301587302*G0_2_0 + 0.101587301587301*G0_2_1 + 0.0225749559082894*G0_2_2;
 
3581
    A[574] = -0.0423280423280423*G0_0_0 - 0.0423280423280424*G0_0_1 + 0.0169312169312168*G0_0_2 - 0.0112874779541446*G0_1_0 - 0.0112874779541446*G0_1_1 - 0.0423280423280423*G0_1_2 - 0.0423280423280423*G0_2_0 - 0.0423280423280424*G0_2_1 + 0.0169312169312168*G0_2_2;
 
3582
    A[575] = 0.0112874779541447*G0_0_0 + 0.0112874779541447*G0_0_1 - 0.0225749559082891*G0_0_2 + 0.0112874779541446*G0_1_2 + 0.0112874779541447*G0_2_0 + 0.0112874779541447*G0_2_1 - 0.0225749559082891*G0_2_2;
 
3583
    A[576] = 0.203174603174603*G0_0_0 + 0.124162257495591*G0_0_1 + 0.203174603174603*G0_0_2 + 0.124162257495591*G0_1_0 + 0.203174603174603*G0_1_1 + 0.124162257495591*G0_1_2 + 0.203174603174603*G0_2_0 + 0.124162257495591*G0_2_1 + 0.203174603174603*G0_2_2;
 
3584
    A[577] = -0.118518518518518*G0_0_0 - 0.160846560846561*G0_0_1 - 0.118518518518518*G0_0_2 - 0.0874779541446207*G0_1_0 - 0.22010582010582*G0_1_1 - 0.0874779541446206*G0_1_2 - 0.118518518518518*G0_2_0 - 0.160846560846561*G0_2_1 - 0.118518518518518*G0_2_2;
 
3585
    A[578] = 0.0451499118165784*G0_0_0 + 0.0790123456790122*G0_0_1 + 0.0451499118165784*G0_0_2 + 0.0338624338624337*G0_1_0 + 0.112874779541446*G0_1_1 + 0.0338624338624337*G0_1_2 + 0.0451499118165784*G0_2_0 + 0.0790123456790122*G0_2_1 + 0.0451499118165784*G0_2_2;
 
3586
    A[579] = 0.0225749559082892*G0_0_0 + 0.101587301587301*G0_0_1 + 0.101587301587301*G0_0_2 + 0.101587301587301*G0_1_0 + 0.0225749559082891*G0_1_1 + 0.0225749559082892*G0_1_2 + 0.0225749559082892*G0_2_0 + 0.101587301587301*G0_2_1 + 0.101587301587301*G0_2_2;
 
3587
    A[580] = 0.0169312169312169*G0_0_0 - 0.0423280423280421*G0_0_1 - 0.0423280423280421*G0_0_2 - 0.0423280423280422*G0_1_0 - 0.0112874779541447*G0_1_1 - 0.0112874779541447*G0_1_2 + 0.016931216931217*G0_2_0 - 0.0423280423280421*G0_2_1 - 0.0423280423280421*G0_2_2;
 
3588
    A[581] = -0.0225749559082892*G0_0_0 + 0.0112874779541446*G0_0_1 + 0.0112874779541446*G0_0_2 + 0.0112874779541446*G0_1_0 - 0.0225749559082892*G0_2_0 + 0.0112874779541447*G0_2_1 + 0.0112874779541447*G0_2_2;
 
3589
    A[582] = -0.0225749559082894*G0_0_0 - 0.0112874779541447*G0_0_1 - 0.0225749559082894*G0_0_2 - 0.0112874779541446*G0_1_0 - 0.0112874779541445*G0_1_2 - 0.0225749559082894*G0_2_0 - 0.0112874779541447*G0_2_1 - 0.0225749559082893*G0_2_2;
 
3590
    A[583] = -0.0677248677248677*G0_0_0 - 0.0564373897707232*G0_0_1 - 0.0677248677248676*G0_0_2 - 0.0564373897707228*G0_1_0 - 0.0451499118165784*G0_1_1 - 0.056437389770723*G0_1_2 - 0.0677248677248677*G0_2_0 - 0.0564373897707232*G0_2_1 - 0.0677248677248677*G0_2_2;
 
3591
    A[584] = -0.0225749559082892*G0_0_0 - 0.0112874779541444*G0_0_1 - 0.0225749559082891*G0_0_2 - 0.0112874779541448*G0_1_0 - 0.0112874779541447*G0_1_2 - 0.0225749559082891*G0_2_0 - 0.0112874779541443*G0_2_1 - 0.022574955908289*G0_2_2;
 
3592
    A[585] = -0.0677248677248679*G0_0_0 - 0.169312169312169*G0_0_1 - 0.27089947089947*G0_0_2 - 0.0790123456790122*G0_1_0 - 0.0677248677248677*G0_1_1 - 0.169312169312169*G0_1_2 - 0.0677248677248679*G0_2_0 - 0.169312169312169*G0_2_1 - 0.270899470899471*G0_2_2;
 
3593
    A[586] = 0.0677248677248676*G0_0_0 + 0.101587301587301*G0_0_1 + 0.135449735449735*G0_0_2 + 0.0564373897707227*G0_1_0 + 0.0677248677248674*G0_1_1 + 0.101587301587301*G0_1_2 + 0.0677248677248677*G0_2_0 + 0.101587301587301*G0_2_1 + 0.135449735449735*G0_2_2;
 
3594
    A[587] = 0.0225749559082893*G0_0_0 + 0.0564373897707231*G0_0_1 + 0.090299823633157*G0_0_2 + 0.0112874779541448*G0_1_0 + 0.0225749559082893*G0_1_1 + 0.0564373897707232*G0_1_2 + 0.0225749559082892*G0_2_0 + 0.0564373897707232*G0_2_1 + 0.090299823633157*G0_2_2;
 
3595
    A[588] = -0.135449735449735*G0_0_0 - 0.0338624338624339*G0_0_1 - 0.135449735449735*G0_0_2 - 0.0338624338624339*G0_1_0 - 0.0451499118165785*G0_1_1 - 0.0338624338624337*G0_1_2 - 0.135449735449735*G0_2_0 - 0.0338624338624339*G0_2_1 - 0.135449735449735*G0_2_2;
 
3596
    A[589] = 0.0451499118165784*G0_0_0 + 0.0112874779541448*G0_0_1 + 0.0451499118165784*G0_0_2 + 0.0112874779541445*G0_1_0 + 0.0112874779541448*G0_1_2 + 0.0451499118165784*G0_2_0 + 0.0112874779541448*G0_2_1 + 0.0451499118165783*G0_2_2;
 
3597
    A[590] = 0.0451499118165783*G0_0_0 + 0.0112874779541445*G0_0_1 + 0.0451499118165784*G0_0_2 + 0.0112874779541447*G0_1_0 + 0.0112874779541446*G0_1_2 + 0.0451499118165783*G0_2_0 + 0.0112874779541444*G0_2_1 + 0.0451499118165785*G0_2_2;
 
3598
    A[591] = -0.27089947089947*G0_0_0 - 0.169312169312169*G0_0_1 - 0.0677248677248675*G0_0_2 - 0.169312169312169*G0_1_0 - 0.0677248677248675*G0_1_1 - 0.0790123456790123*G0_1_2 - 0.27089947089947*G0_2_0 - 0.169312169312169*G0_2_1 - 0.0677248677248675*G0_2_2;
 
3599
    A[592] = 0.0902998236331564*G0_0_0 + 0.0564373897707228*G0_0_1 + 0.0225749559082893*G0_0_2 + 0.0564373897707229*G0_1_0 + 0.0225749559082893*G0_1_1 + 0.0112874779541445*G0_1_2 + 0.0902998236331564*G0_2_0 + 0.0564373897707227*G0_2_1 + 0.0225749559082893*G0_2_2;
 
3600
    A[593] = 0.135449735449735*G0_0_0 + 0.101587301587301*G0_0_1 + 0.0677248677248675*G0_0_2 + 0.101587301587302*G0_1_0 + 0.0677248677248675*G0_1_1 + 0.0564373897707229*G0_1_2 + 0.135449735449735*G0_2_0 + 0.101587301587301*G0_2_1 + 0.0677248677248675*G0_2_2;
 
3601
    A[594] = 0.0902998236331573*G0_0_0 + 0.0902998236331569*G0_0_1 + 0.0902998236331567*G0_0_2 + 0.0902998236331569*G0_1_0 + 0.0902998236331568*G0_1_1 + 0.0902998236331571*G0_1_2 + 0.0902998236331573*G0_2_0 + 0.090299823633157*G0_2_1 + 0.0902998236331566*G0_2_2;
 
3602
    A[595] = 0.0202821869488536*G0_0_0 + 0.0202821869488536*G0_0_1 + 0.0202821869488536*G0_0_2 + 0.0529100529100528*G0_1_0 + 0.0529100529100528*G0_1_1 + 0.0529100529100529*G0_1_2 + 0.0202821869488536*G0_2_0 + 0.0202821869488536*G0_2_1 + 0.0202821869488536*G0_2_2;
 
3603
    A[596] = 0.00511463844797176*G0_0_0 + 0.00511463844797179*G0_2_0;
 
3604
    A[597] = 0.0326278659611993*G0_0_1 + 0.0529100529100528*G0_1_1 + 0.0326278659611993*G0_2_1;
 
3605
    A[598] = 0.00511463844797178*G0_0_2 + 0.00511463844797179*G0_2_2;
 
3606
    A[599] = 0.0592592592592593*G0_0_1 + 0.0902998236331569*G0_0_2 + 0.0169312169312168*G0_1_1 + 0.0592592592592589*G0_1_2 + 0.0592592592592593*G0_2_1 + 0.0902998236331569*G0_2_2;
 
3607
    A[600] = 0.0105820105820105*G0_0_1 + 0.0211640211640211*G0_0_2 - 0.00282186948853623*G0_1_1 + 0.0105820105820105*G0_1_2 + 0.0105820105820105*G0_2_1 + 0.021164021164021*G0_2_2;
 
3608
    A[601] = -0.00282186948853613*G0_0_1 - 0.0169312169312169*G0_0_2 - 0.00282186948853614*G0_1_2 - 0.0028218694885361*G0_2_1 - 0.0169312169312169*G0_2_2;
 
3609
    A[602] = -0.00282186948853607*G0_0_0 - 0.0028218694885361*G0_0_2 - 0.00282186948853609*G0_2_0 - 0.0028218694885361*G0_2_2;
 
3610
    A[603] = -0.00917107583774251*G0_0_0 - 0.00917107583774246*G0_0_2 - 0.00917107583774253*G0_2_0 - 0.00917107583774248*G0_2_2;
 
3611
    A[604] = -0.00282186948853611*G0_0_0 - 0.0028218694885361*G0_0_2 - 0.00282186948853608*G0_2_0 - 0.00282186948853608*G0_2_2;
 
3612
    A[605] = -0.0169312169312168*G0_0_0 - 0.00282186948853605*G0_0_1 - 0.00282186948853628*G0_1_0 - 0.0169312169312169*G0_2_0 - 0.00282186948853606*G0_2_1;
 
3613
    A[606] = 0.021164021164021*G0_0_0 + 0.0105820105820106*G0_0_1 + 0.0105820105820108*G0_1_0 - 0.00282186948853601*G0_1_1 + 0.0211640211640212*G0_2_0 + 0.0105820105820106*G0_2_1;
 
3614
    A[607] = 0.090299823633157*G0_0_0 + 0.0592592592592593*G0_0_1 + 0.059259259259259*G0_1_0 + 0.0169312169312168*G0_1_1 + 0.090299823633157*G0_2_0 + 0.0592592592592594*G0_2_1;
 
3615
    A[608] = -0.0423280423280424*G0_0_0 - 0.0423280423280423*G0_0_1 - 0.0112874779541447*G0_0_2 + 0.0169312169312169*G0_1_0 + 0.0169312169312169*G0_1_1 - 0.0423280423280423*G0_1_2 - 0.0423280423280424*G0_2_0 - 0.0423280423280423*G0_2_1 - 0.0112874779541447*G0_2_2;
 
3616
    A[609] = -0.0134038800705468*G0_0_0 - 0.0134038800705468*G0_0_1 - 0.00282186948853619*G0_0_2 - 0.00282186948853633*G0_1_0 - 0.00282186948853631*G0_1_1 - 0.0134038800705467*G0_1_2 - 0.0134038800705468*G0_2_0 - 0.0134038800705468*G0_2_1 - 0.00282186948853617*G0_2_2;
 
3617
    A[610] = 0.00282186948853612*G0_0_0 + 0.00282186948853613*G0_0_1 - 0.0112874779541446*G0_0_2 + 0.00282186948853623*G0_1_2 + 0.00282186948853609*G0_2_0 + 0.0028218694885361*G0_2_1 - 0.0112874779541446*G0_2_2;
 
3618
    A[611] = -0.118518518518518*G0_0_0 - 0.0874779541446207*G0_0_1 - 0.118518518518518*G0_0_2 - 0.160846560846561*G0_1_0 - 0.22010582010582*G0_1_1 - 0.160846560846561*G0_1_2 - 0.118518518518518*G0_2_0 - 0.0874779541446206*G0_2_1 - 0.118518518518518*G0_2_2;
 
3619
    A[612] = 0.249735449735449*G0_0_0 + 0.167195767195767*G0_0_1 + 0.24973544973545*G0_0_2 + 0.167195767195767*G0_1_0 + 0.334391534391534*G0_1_1 + 0.167195767195767*G0_1_2 + 0.24973544973545*G0_2_0 + 0.167195767195767*G0_2_1 + 0.24973544973545*G0_2_2;
 
3620
    A[613] = -0.090299823633157*G0_0_0 - 0.132627865961199*G0_0_1 - 0.0902998236331571*G0_0_2 - 0.059259259259259*G0_1_0 - 0.22010582010582*G0_1_1 - 0.0592592592592591*G0_1_2 - 0.090299823633157*G0_2_0 - 0.132627865961199*G0_2_1 - 0.090299823633157*G0_2_2;
 
3621
    A[614] = -0.0112874779541445*G0_0_0 - 0.0423280423280423*G0_0_1 - 0.0423280423280423*G0_0_2 - 0.0423280423280423*G0_1_0 + 0.0169312169312169*G0_1_1 + 0.0169312169312169*G0_1_2 - 0.0112874779541445*G0_2_0 - 0.0423280423280423*G0_2_1 - 0.0423280423280423*G0_2_2;
 
3622
    A[615] = -0.00282186948853629*G0_0_0 - 0.0134038800705467*G0_0_1 - 0.0134038800705467*G0_0_2 - 0.0134038800705466*G0_1_0 - 0.00282186948853595*G0_1_1 - 0.00282186948853593*G0_1_2 - 0.00282186948853631*G0_2_0 - 0.0134038800705467*G0_2_1 - 0.0134038800705467*G0_2_2;
 
3623
    A[616] = -0.0112874779541446*G0_0_0 + 0.00282186948853612*G0_0_1 + 0.0028218694885361*G0_0_2 + 0.00282186948853612*G0_1_0 - 0.0112874779541446*G0_2_0 + 0.00282186948853612*G0_2_1 + 0.0028218694885361*G0_2_2;
 
3624
    A[617] = 0.0169312169312172*G0_0_0 - 0.00282186948853592*G0_0_1 + 0.0169312169312173*G0_0_2 - 0.00282186948853588*G0_1_0 - 0.002821869488536*G0_1_2 + 0.0169312169312174*G0_2_0 - 0.00282186948853589*G0_2_1 + 0.0169312169312174*G0_2_2;
 
3625
    A[618] = 0.0846560846560849*G0_0_0 + 0.0423280423280426*G0_0_1 + 0.0846560846560849*G0_0_2 + 0.0423280423280419*G0_1_0 + 0.0225749559082892*G0_1_1 + 0.0423280423280424*G0_1_2 + 0.0846560846560849*G0_2_0 + 0.0423280423280427*G0_2_1 + 0.0846560846560851*G0_2_2;
 
3626
    A[619] = 0.0169312169312168*G0_0_0 - 0.00282186948853629*G0_0_1 + 0.0169312169312167*G0_0_2 - 0.00282186948853627*G0_1_0 - 0.00282186948853631*G0_1_2 + 0.0169312169312168*G0_2_0 - 0.00282186948853626*G0_2_1 + 0.0169312169312167*G0_2_2;
 
3627
    A[620] = 0.118518518518519*G0_0_0 + 0.160846560846561*G0_0_1 + 0.0677248677248676*G0_0_2 + 0.0253968253968254*G0_1_0 - 0.0169312169312169*G0_1_1 + 0.160846560846561*G0_1_2 + 0.118518518518519*G0_2_0 + 0.160846560846561*G0_2_1 + 0.0677248677248675*G0_2_2;
 
3628
    A[621] = -0.0846560846560848*G0_0_0 - 0.177777777777778*G0_0_1 - 0.27089947089947*G0_0_2 - 0.0423280423280419*G0_1_0 - 0.0169312169312167*G0_1_1 - 0.177777777777777*G0_1_2 - 0.0846560846560848*G0_2_0 - 0.177777777777778*G0_2_1 - 0.27089947089947*G0_2_2;
 
3629
    A[622] = -0.0169312169312168*G0_0_0 + 0.00282186948853631*G0_0_1 + 0.0677248677248677*G0_0_2 + 0.00282186948853626*G0_1_0 + 0.00564373897707252*G0_1_1 + 0.00282186948853616*G0_1_2 - 0.0169312169312169*G0_2_0 + 0.00282186948853633*G0_2_1 + 0.0677248677248677*G0_2_2;
 
3630
    A[623] = 0.0225749559082894*G0_0_0 - 0.0197530864197529*G0_0_1 + 0.022574955908289*G0_0_2 - 0.0197530864197529*G0_1_0 + 0.0225749559082894*G0_1_1 - 0.0197530864197532*G0_1_2 + 0.0225749559082893*G0_2_0 - 0.0197530864197529*G0_2_1 + 0.0225749559082889*G0_2_2;
 
3631
    A[624] = 0.022574955908289*G0_0_0 + 0.00282186948853588*G0_0_1 + 0.0225749559082891*G0_0_2 + 0.0028218694885361*G0_1_0 + 0.00282186948853573*G0_1_2 + 0.0225749559082891*G0_2_0 + 0.00282186948853585*G0_2_1 + 0.0225749559082891*G0_2_2;
 
3632
    A[625] = 0.0225749559082893*G0_0_0 + 0.00282186948853622*G0_0_1 + 0.0225749559082894*G0_0_2 + 0.00282186948853622*G0_1_0 + 0.00282186948853635*G0_1_2 + 0.0225749559082894*G0_2_0 + 0.00282186948853618*G0_2_1 + 0.0225749559082894*G0_2_2;
 
3633
    A[626] = 0.0677248677248676*G0_0_0 + 0.160846560846561*G0_0_1 + 0.118518518518519*G0_0_2 + 0.160846560846561*G0_1_0 - 0.0169312169312168*G0_1_1 + 0.0253968253968256*G0_1_2 + 0.0677248677248675*G0_2_0 + 0.160846560846561*G0_2_1 + 0.118518518518519*G0_2_2;
 
3634
    A[627] = 0.0677248677248675*G0_0_0 + 0.00282186948853603*G0_0_1 - 0.0169312169312172*G0_0_2 + 0.002821869488536*G0_1_0 + 0.00564373897707182*G0_1_1 + 0.00282186948853607*G0_1_2 + 0.0677248677248677*G0_2_0 + 0.00282186948853599*G0_2_1 - 0.0169312169312173*G0_2_2;
 
3635
    A[628] = -0.270899470899471*G0_0_0 - 0.177777777777778*G0_0_1 - 0.0846560846560847*G0_0_2 - 0.177777777777778*G0_1_0 - 0.0169312169312168*G0_1_1 - 0.0423280423280422*G0_1_2 - 0.270899470899471*G0_2_0 - 0.177777777777778*G0_2_1 - 0.0846560846560849*G0_2_2;
 
3636
    A[629] = -0.135449735449736*G0_0_0 - 0.0225749559082895*G0_0_1 - 0.135449735449735*G0_0_2 - 0.0225749559082895*G0_1_0 - 0.0451499118165785*G0_1_1 - 0.0225749559082894*G0_1_2 - 0.135449735449736*G0_2_0 - 0.0225749559082896*G0_2_1 - 0.135449735449735*G0_2_2;
 
3637
    A[630] = -0.0077601410934744*G0_0_0 - 0.00776014109347441*G0_0_1 - 0.0077601410934744*G0_0_2 - 0.0253968253968254*G0_1_0 - 0.0253968253968254*G0_1_1 - 0.0253968253968254*G0_1_2 - 0.0077601410934744*G0_2_0 - 0.00776014109347441*G0_2_1 - 0.0077601410934744*G0_2_2;
 
3638
    A[631] = 0.00776014109347437*G0_0_0 + 0.00776014109347435*G0_2_0;
 
3639
    A[632] = -0.0458553791887124*G0_0_1 - 0.0705467372134037*G0_1_1 - 0.0458553791887124*G0_2_1;
 
3640
    A[633] = 0.00776014109347441*G0_0_2 + 0.0077601410934744*G0_2_2;
 
3641
    A[634] = -0.0790123456790124*G0_0_1 - 0.158024691358025*G0_0_2 + 0.0225749559082892*G0_1_1 - 0.0790123456790121*G0_1_2 - 0.0790123456790124*G0_2_1 - 0.158024691358025*G0_2_2;
 
3642
    A[635] = 0.0310405643738977*G0_0_1 + 0.0902998236331569*G0_0_2 - 0.0112874779541446*G0_1_1 + 0.0310405643738977*G0_1_2 + 0.0310405643738977*G0_2_1 + 0.0902998236331569*G0_2_2;
 
3643
    A[636] = -0.0112874779541446*G0_0_1 - 0.0451499118165783*G0_0_2 - 0.0112874779541446*G0_1_2 - 0.0112874779541446*G0_2_1 - 0.0451499118165783*G0_2_2;
 
3644
    A[637] = -0.0112874779541447*G0_0_0 - 0.0112874779541448*G0_0_2 - 0.0112874779541446*G0_2_0 - 0.0112874779541447*G0_2_2;
 
3645
    A[638] = -0.00282186948853602*G0_0_0 - 0.00282186948853608*G0_0_2 - 0.00282186948853604*G0_2_0 - 0.00282186948853612*G0_2_2;
 
3646
    A[639] = -0.0112874779541446*G0_0_0 - 0.0112874779541446*G0_0_2 - 0.0112874779541446*G0_2_0 - 0.0112874779541445*G0_2_2;
 
3647
    A[640] = -0.0451499118165784*G0_0_0 - 0.0112874779541447*G0_0_1 - 0.0112874779541446*G0_1_0 - 0.0451499118165782*G0_2_0 - 0.0112874779541447*G0_2_1;
 
3648
    A[641] = 0.0902998236331568*G0_0_0 + 0.0310405643738979*G0_0_1 + 0.0310405643738975*G0_1_0 - 0.0112874779541448*G0_1_1 + 0.0902998236331567*G0_2_0 + 0.0310405643738978*G0_2_1;
 
3649
    A[642] = -0.158024691358025*G0_0_0 - 0.0790123456790125*G0_0_1 - 0.0790123456790122*G0_1_0 + 0.0225749559082892*G0_1_1 - 0.158024691358025*G0_2_0 - 0.0790123456790125*G0_2_1;
 
3650
    A[643] = 0.0112874779541447*G0_0_0 + 0.0112874779541446*G0_0_1 - 0.0225749559082892*G0_1_0 - 0.0225749559082892*G0_1_1 + 0.0112874779541447*G0_1_2 + 0.0112874779541447*G0_2_0 + 0.0112874779541446*G0_2_1;
 
3651
    A[644] = 0.00282186948853625*G0_0_0 + 0.00282186948853624*G0_0_1 - 0.0112874779541444*G0_1_0 - 0.0112874779541445*G0_1_1 + 0.00282186948853617*G0_1_2 + 0.00282186948853625*G0_2_0 + 0.00282186948853624*G0_2_1;
 
3652
    A[645] = 0.0112874779541446*G0_0_0 + 0.0112874779541446*G0_0_1 + 0.0112874779541445*G0_1_2 + 0.0112874779541446*G0_2_0 + 0.0112874779541446*G0_2_1;
 
3653
    A[646] = 0.0451499118165784*G0_0_0 + 0.0338624338624337*G0_0_1 + 0.0451499118165784*G0_0_2 + 0.0790123456790122*G0_1_0 + 0.112874779541446*G0_1_1 + 0.0790123456790122*G0_1_2 + 0.0451499118165784*G0_2_0 + 0.0338624338624337*G0_2_1 + 0.0451499118165784*G0_2_2;
 
3654
    A[647] = -0.090299823633157*G0_0_0 - 0.059259259259259*G0_0_1 - 0.090299823633157*G0_0_2 - 0.132627865961199*G0_1_0 - 0.22010582010582*G0_1_1 - 0.132627865961199*G0_1_2 - 0.0902998236331571*G0_2_0 - 0.0592592592592591*G0_2_1 - 0.090299823633157*G0_2_2;
 
3655
    A[648] = 0.158024691358025*G0_0_0 + 0.0790123456790122*G0_0_1 + 0.158024691358025*G0_0_2 + 0.0790123456790122*G0_1_0 + 0.203174603174603*G0_1_1 + 0.0790123456790122*G0_1_2 + 0.158024691358025*G0_2_0 + 0.0790123456790122*G0_2_1 + 0.158024691358025*G0_2_2;
 
3656
    A[649] = 0.0112874779541446*G0_0_1 + 0.0112874779541447*G0_0_2 + 0.0112874779541447*G0_1_0 - 0.0225749559082892*G0_1_1 - 0.0225749559082892*G0_1_2 + 0.0112874779541446*G0_2_1 + 0.0112874779541447*G0_2_2;
 
3657
    A[650] = 0.00282186948853612*G0_0_1 + 0.00282186948853609*G0_0_2 + 0.00282186948853612*G0_1_0 - 0.0112874779541448*G0_1_1 - 0.0112874779541448*G0_1_2 + 0.00282186948853614*G0_2_1 + 0.00282186948853611*G0_2_2;
 
3658
    A[651] = 0.0112874779541447*G0_0_1 + 0.0112874779541447*G0_0_2 + 0.0112874779541446*G0_1_0 + 0.0112874779541447*G0_2_1 + 0.0112874779541447*G0_2_2;
 
3659
    A[652] = 0.0225749559082891*G0_0_0 - 0.0112874779541447*G0_0_1 + 0.0225749559082891*G0_0_2 - 0.0112874779541449*G0_1_0 - 0.0112874779541449*G0_1_2 + 0.0225749559082889*G0_2_0 - 0.0112874779541447*G0_2_1 + 0.0225749559082892*G0_2_2;
 
3660
    A[653] = -0.112874779541447*G0_0_0 - 0.0112874779541449*G0_0_1 - 0.112874779541446*G0_0_2 - 0.0112874779541444*G0_1_0 - 0.0451499118165786*G0_1_1 - 0.0112874779541448*G0_1_2 - 0.112874779541446*G0_2_0 - 0.0112874779541451*G0_2_1 - 0.112874779541446*G0_2_2;
 
3661
    A[654] = 0.0225749559082894*G0_0_0 - 0.0112874779541444*G0_0_1 + 0.0225749559082893*G0_0_2 - 0.0112874779541444*G0_1_0 - 0.0112874779541443*G0_1_2 + 0.0225749559082894*G0_2_0 - 0.0112874779541444*G0_2_1 + 0.0225749559082892*G0_2_2;
 
3662
    A[655] = -0.0225749559082892*G0_0_0 - 0.0338624338624338*G0_0_1 + 0.0112874779541443*G0_1_0 + 0.0677248677248675*G0_1_1 - 0.0338624338624338*G0_1_2 - 0.0225749559082892*G0_2_0 - 0.0338624338624339*G0_2_1;
 
3663
    A[656] = 0.112874779541447*G0_0_0 + 0.101587301587302*G0_0_1 + 0.0112874779541445*G0_1_0 - 0.0677248677248675*G0_1_1 + 0.101587301587301*G0_1_2 + 0.112874779541446*G0_2_0 + 0.101587301587302*G0_2_1;
 
3664
    A[657] = -0.0225749559082893*G0_0_0 - 0.0338624338624339*G0_0_1 + 0.0112874779541444*G0_1_0 + 0.0225749559082891*G0_1_1 - 0.0338624338624337*G0_1_2 - 0.0225749559082893*G0_2_0 - 0.0338624338624339*G0_2_1;
 
3665
    A[658] = 0.0112874779541448*G0_0_1 + 0.0112874779541444*G0_1_0 - 0.0451499118165787*G0_1_1 + 0.0112874779541448*G0_1_2 + 0.0112874779541448*G0_2_1;
 
3666
    A[659] = 0.0112874779541448*G0_0_1 + 0.0112874779541448*G0_1_0 + 0.0112874779541449*G0_1_2 + 0.0112874779541447*G0_2_1;
 
3667
    A[660] = 0.0112874779541444*G0_0_1 + 0.0112874779541445*G0_1_0 + 0.0112874779541444*G0_1_2 + 0.0112874779541444*G0_2_1;
 
3668
    A[661] = -0.0338624338624338*G0_0_1 - 0.0225749559082891*G0_0_2 - 0.0338624338624339*G0_1_0 + 0.0677248677248676*G0_1_1 + 0.0112874779541443*G0_1_2 - 0.0338624338624337*G0_2_1 - 0.0225749559082891*G0_2_2;
 
3669
    A[662] = -0.0338624338624339*G0_0_1 - 0.022574955908289*G0_0_2 - 0.0338624338624336*G0_1_0 + 0.0225749559082897*G0_1_1 + 0.0112874779541449*G0_1_2 - 0.0338624338624339*G0_2_1 - 0.0225749559082891*G0_2_2;
 
3670
    A[663] = 0.101587301587302*G0_0_1 + 0.112874779541446*G0_0_2 + 0.101587301587302*G0_1_0 - 0.0677248677248677*G0_1_1 + 0.0112874779541447*G0_1_2 + 0.101587301587302*G0_2_1 + 0.112874779541446*G0_2_2;
 
3671
    A[664] = 0.0902998236331573*G0_1_1;
 
3672
    A[665] = -0.0705467372134038*G0_0_0 - 0.0705467372134037*G0_0_1 - 0.0705467372134037*G0_0_2 - 0.0246913580246913*G0_1_0 - 0.0246913580246913*G0_1_1 - 0.0246913580246913*G0_1_2 - 0.0246913580246913*G0_2_0 - 0.0246913580246913*G0_2_1 - 0.0246913580246913*G0_2_2;
 
3673
    A[666] = -0.0253968253968253*G0_0_0 - 0.017636684303351*G0_1_0 - 0.017636684303351*G0_2_0;
 
3674
    A[667] = 0.00776014109347444*G0_1_1 + 0.00776014109347442*G0_2_1;
 
3675
    A[668] = 0.00776014109347442*G0_1_2 + 0.00776014109347442*G0_2_2;
 
3676
    A[669] = -0.0112874779541446*G0_1_1 - 0.0112874779541446*G0_1_2 - 0.0112874779541446*G0_2_1 - 0.0112874779541446*G0_2_2;
 
3677
    A[670] = -0.00282186948853607*G0_1_1 - 0.00282186948853611*G0_1_2 - 0.0028218694885361*G0_2_1 - 0.0028218694885361*G0_2_2;
 
3678
    A[671] = -0.0112874779541447*G0_1_1 - 0.0112874779541447*G0_1_2 - 0.0112874779541447*G0_2_1 - 0.0112874779541447*G0_2_2;
 
3679
    A[672] = -0.0225749559082891*G0_0_0 - 0.0338624338624337*G0_0_2 - 0.0338624338624338*G0_1_0 - 0.0451499118165784*G0_1_2 - 0.0338624338624338*G0_2_0 - 0.0451499118165784*G0_2_2;
 
3680
    A[673] = -0.0112874779541448*G0_0_0 - 0.0141093474426808*G0_0_2 - 0.0141093474426806*G0_1_0 - 0.0169312169312168*G0_1_2 - 0.0141093474426806*G0_2_0 - 0.0169312169312168*G0_2_2;
 
3681
    A[674] = -0.0112874779541446*G0_0_2 - 0.0112874779541447*G0_1_0 - 0.0225749559082893*G0_1_2 - 0.0112874779541447*G0_2_0 - 0.0225749559082892*G0_2_2;
 
3682
    A[675] = -0.0225749559082889*G0_0_0 - 0.0338624338624337*G0_0_1 - 0.0338624338624336*G0_1_0 - 0.0451499118165783*G0_1_1 - 0.0338624338624336*G0_2_0 - 0.0451499118165784*G0_2_1;
 
3683
    A[676] = -0.0112874779541446*G0_0_0 - 0.0141093474426805*G0_0_1 - 0.0141093474426809*G0_1_0 - 0.0169312169312167*G0_1_1 - 0.0141093474426808*G0_2_0 - 0.0169312169312166*G0_2_1;
 
3684
    A[677] = -0.0112874779541446*G0_0_1 - 0.0112874779541446*G0_1_0 - 0.0225749559082893*G0_1_1 - 0.0112874779541446*G0_2_0 - 0.0225749559082894*G0_2_1;
 
3685
    A[678] = 0.0225749559082892*G0_0_0 + 0.0225749559082893*G0_0_1 + 0.101587301587301*G0_0_2 + 0.101587301587302*G0_1_0 + 0.101587301587302*G0_1_1 + 0.0225749559082893*G0_1_2 + 0.101587301587302*G0_2_0 + 0.101587301587302*G0_2_1 + 0.0225749559082893*G0_2_2;
 
3686
    A[679] = -0.0112874779541446*G0_0_0 - 0.0112874779541445*G0_0_1 - 0.0423280423280423*G0_0_2 - 0.0423280423280423*G0_1_0 - 0.0423280423280423*G0_1_1 + 0.0169312169312168*G0_1_2 - 0.0423280423280424*G0_2_0 - 0.0423280423280423*G0_2_1 + 0.0169312169312168*G0_2_2;
 
3687
    A[680] = 0.0112874779541446*G0_0_2 + 0.0112874779541447*G0_1_0 + 0.0112874779541447*G0_1_1 - 0.0225749559082891*G0_1_2 + 0.0112874779541447*G0_2_0 + 0.0112874779541447*G0_2_1 - 0.0225749559082891*G0_2_2;
 
3688
    A[681] = 0.0225749559082892*G0_0_0 + 0.101587301587301*G0_0_1 + 0.0225749559082892*G0_0_2 + 0.101587301587301*G0_1_0 + 0.0225749559082891*G0_1_1 + 0.101587301587301*G0_1_2 + 0.101587301587301*G0_2_0 + 0.0225749559082892*G0_2_1 + 0.101587301587301*G0_2_2;
 
3689
    A[682] = -0.0112874779541445*G0_0_0 - 0.0423280423280424*G0_0_1 - 0.0112874779541445*G0_0_2 - 0.0423280423280423*G0_1_0 + 0.0169312169312169*G0_1_1 - 0.0423280423280423*G0_1_2 - 0.0423280423280423*G0_2_0 + 0.0169312169312169*G0_2_1 - 0.0423280423280423*G0_2_2;
 
3690
    A[683] = 0.0112874779541446*G0_0_1 + 0.0112874779541446*G0_1_0 - 0.0225749559082892*G0_1_1 + 0.0112874779541446*G0_1_2 + 0.0112874779541447*G0_2_0 - 0.0225749559082892*G0_2_1 + 0.0112874779541447*G0_2_2;
 
3691
    A[684] = 0.203174603174603*G0_0_0 + 0.12416225749559*G0_0_1 + 0.12416225749559*G0_0_2 + 0.12416225749559*G0_1_0 + 0.203174603174603*G0_1_1 + 0.203174603174603*G0_1_2 + 0.12416225749559*G0_2_0 + 0.203174603174603*G0_2_1 + 0.203174603174603*G0_2_2;
 
3692
    A[685] = -0.22010582010582*G0_0_0 - 0.0874779541446206*G0_0_1 - 0.0874779541446207*G0_0_2 - 0.16084656084656*G0_1_0 - 0.118518518518518*G0_1_1 - 0.118518518518518*G0_1_2 - 0.16084656084656*G0_2_0 - 0.118518518518518*G0_2_1 - 0.118518518518518*G0_2_2;
 
3693
    A[686] = 0.112874779541446*G0_0_0 + 0.0338624338624337*G0_0_1 + 0.0338624338624337*G0_0_2 + 0.0790123456790122*G0_1_0 + 0.0451499118165784*G0_1_1 + 0.0451499118165784*G0_1_2 + 0.0790123456790122*G0_2_0 + 0.0451499118165784*G0_2_1 + 0.0451499118165784*G0_2_2;
 
3694
    A[687] = -0.0451499118165781*G0_0_0 - 0.0564373897707227*G0_0_1 - 0.0564373897707224*G0_0_2 - 0.0564373897707231*G0_1_0 - 0.0677248677248675*G0_1_1 - 0.0677248677248674*G0_1_2 - 0.056437389770723*G0_2_0 - 0.0677248677248675*G0_2_1 - 0.0677248677248674*G0_2_2;
 
3695
    A[688] = -0.0112874779541444*G0_0_1 - 0.0112874779541445*G0_0_2 - 0.0112874779541447*G0_1_0 - 0.0225749559082893*G0_1_1 - 0.0225749559082893*G0_1_2 - 0.0112874779541448*G0_2_0 - 0.0225749559082893*G0_2_1 - 0.0225749559082893*G0_2_2;
 
3696
    A[689] = -0.0112874779541449*G0_0_1 - 0.0112874779541448*G0_0_2 - 0.0112874779541445*G0_1_0 - 0.0225749559082891*G0_1_1 - 0.0225749559082891*G0_1_2 - 0.0112874779541446*G0_2_0 - 0.0225749559082891*G0_2_1 - 0.0225749559082891*G0_2_2;
 
3697
    A[690] = -0.0451499118165781*G0_0_0 - 0.0338624338624337*G0_0_1 - 0.0338624338624338*G0_0_2 - 0.0338624338624339*G0_1_0 - 0.135449735449735*G0_1_1 - 0.135449735449735*G0_1_2 - 0.0338624338624339*G0_2_0 - 0.135449735449735*G0_2_1 - 0.135449735449735*G0_2_2;
 
3698
    A[691] = 0.0112874779541444*G0_0_1 + 0.0112874779541444*G0_0_2 + 0.0112874779541447*G0_1_0 + 0.0451499118165785*G0_1_1 + 0.0451499118165784*G0_1_2 + 0.0112874779541447*G0_2_0 + 0.0451499118165785*G0_2_1 + 0.0451499118165784*G0_2_2;
 
3699
    A[692] = 0.0112874779541446*G0_0_1 + 0.0112874779541447*G0_0_2 + 0.0112874779541446*G0_1_0 + 0.0451499118165784*G0_1_1 + 0.0451499118165785*G0_1_2 + 0.0112874779541447*G0_2_0 + 0.0451499118165785*G0_2_1 + 0.0451499118165786*G0_2_2;
 
3700
    A[693] = -0.0677248677248676*G0_0_0 - 0.0790123456790121*G0_0_1 - 0.169312169312169*G0_0_2 - 0.169312169312169*G0_1_0 - 0.0677248677248675*G0_1_1 - 0.27089947089947*G0_1_2 - 0.169312169312169*G0_2_0 - 0.0677248677248676*G0_2_1 - 0.27089947089947*G0_2_2;
 
3701
    A[694] = 0.0677248677248675*G0_0_0 + 0.0564373897707227*G0_0_1 + 0.101587301587301*G0_0_2 + 0.101587301587301*G0_1_0 + 0.0677248677248676*G0_1_1 + 0.135449735449735*G0_1_2 + 0.101587301587301*G0_2_0 + 0.0677248677248676*G0_2_1 + 0.135449735449735*G0_2_2;
 
3702
    A[695] = 0.0225749559082893*G0_0_0 + 0.0112874779541449*G0_0_1 + 0.056437389770723*G0_0_2 + 0.056437389770723*G0_1_0 + 0.0225749559082891*G0_1_1 + 0.0902998236331569*G0_1_2 + 0.056437389770723*G0_2_0 + 0.0225749559082891*G0_2_1 + 0.0902998236331569*G0_2_2;
 
3703
    A[696] = -0.0677248677248676*G0_0_0 - 0.169312169312169*G0_0_1 - 0.0790123456790121*G0_0_2 - 0.169312169312169*G0_1_0 - 0.27089947089947*G0_1_1 - 0.0677248677248674*G0_1_2 - 0.169312169312169*G0_2_0 - 0.27089947089947*G0_2_1 - 0.0677248677248674*G0_2_2;
 
3704
    A[697] = 0.0677248677248674*G0_0_0 + 0.101587301587301*G0_0_1 + 0.0564373897707224*G0_0_2 + 0.101587301587301*G0_1_0 + 0.135449735449735*G0_1_1 + 0.0677248677248674*G0_1_2 + 0.101587301587301*G0_2_0 + 0.135449735449735*G0_2_1 + 0.0677248677248673*G0_2_2;
 
3705
    A[698] = 0.0225749559082891*G0_0_0 + 0.056437389770723*G0_0_1 + 0.0112874779541445*G0_0_2 + 0.0564373897707232*G0_1_0 + 0.0902998236331568*G0_1_1 + 0.0225749559082892*G0_1_2 + 0.0564373897707231*G0_2_0 + 0.0902998236331568*G0_2_1 + 0.0225749559082892*G0_2_2;
 
3706
    A[699] = 0.0902998236331563*G0_0_0 + 0.0902998236331565*G0_0_1 + 0.0902998236331569*G0_0_2 + 0.090299823633157*G0_1_0 + 0.0902998236331568*G0_1_1 + 0.0902998236331566*G0_1_2 + 0.090299823633157*G0_2_0 + 0.0902998236331568*G0_2_1 + 0.0902998236331566*G0_2_2;
 
3707
    A[700] = 0.0529100529100528*G0_0_0 + 0.0529100529100528*G0_0_1 + 0.0529100529100528*G0_0_2 + 0.0202821869488536*G0_1_0 + 0.0202821869488536*G0_1_1 + 0.0202821869488536*G0_1_2 + 0.0202821869488536*G0_2_0 + 0.0202821869488536*G0_2_1 + 0.0202821869488536*G0_2_2;
 
3708
    A[701] = 0.0529100529100528*G0_0_0 + 0.0326278659611993*G0_1_0 + 0.0326278659611993*G0_2_0;
 
3709
    A[702] = 0.00511463844797178*G0_1_1 + 0.00511463844797179*G0_2_1;
 
3710
    A[703] = 0.00511463844797177*G0_1_2 + 0.00511463844797176*G0_2_2;
 
3711
    A[704] = -0.00282186948853623*G0_1_1 - 0.00282186948853619*G0_1_2 - 0.0028218694885362*G0_2_1 - 0.00282186948853616*G0_2_2;
 
3712
    A[705] = -0.0091710758377426*G0_1_1 - 0.00917107583774263*G0_1_2 - 0.0091710758377426*G0_2_1 - 0.00917107583774263*G0_2_2;
 
3713
    A[706] = -0.00282186948853617*G0_1_1 - 0.00282186948853619*G0_1_2 - 0.00282186948853616*G0_2_1 - 0.00282186948853616*G0_2_2;
 
3714
    A[707] = 0.0169312169312168*G0_0_0 + 0.0592592592592591*G0_0_2 + 0.0592592592592591*G0_1_0 + 0.0902998236331567*G0_1_2 + 0.0592592592592591*G0_2_0 + 0.0902998236331568*G0_2_2;
 
3715
    A[708] = -0.00282186948853607*G0_0_0 + 0.0105820105820105*G0_0_2 + 0.0105820105820105*G0_1_0 + 0.021164021164021*G0_1_2 + 0.0105820105820104*G0_2_0 + 0.021164021164021*G0_2_2;
 
3716
    A[709] = -0.00282186948853619*G0_0_2 - 0.00282186948853619*G0_1_0 - 0.0169312169312171*G0_1_2 - 0.00282186948853617*G0_2_0 - 0.016931216931217*G0_2_2;
 
3717
    A[710] = 0.0169312169312168*G0_0_0 + 0.0592592592592591*G0_0_1 + 0.0592592592592589*G0_1_0 + 0.0902998236331567*G0_1_1 + 0.0592592592592589*G0_2_0 + 0.0902998236331567*G0_2_1;
 
3718
    A[711] = -0.00282186948853623*G0_0_0 + 0.0105820105820103*G0_0_1 + 0.0105820105820107*G0_1_0 + 0.0211640211640211*G0_1_1 + 0.0105820105820107*G0_2_0 + 0.0211640211640211*G0_2_1;
 
3719
    A[712] = -0.00282186948853602*G0_0_1 - 0.00282186948853617*G0_1_0 - 0.0169312169312169*G0_1_1 - 0.00282186948853614*G0_2_0 - 0.0169312169312169*G0_2_1;
 
3720
    A[713] = 0.016931216931217*G0_0_0 + 0.016931216931217*G0_0_1 - 0.0423280423280422*G0_0_2 - 0.0423280423280422*G0_1_0 - 0.0423280423280422*G0_1_1 - 0.0112874779541447*G0_1_2 - 0.0423280423280422*G0_2_0 - 0.0423280423280422*G0_2_1 - 0.0112874779541447*G0_2_2;
 
3721
    A[714] = -0.00282186948853632*G0_0_0 - 0.00282186948853635*G0_0_1 - 0.0134038800705468*G0_0_2 - 0.0134038800705469*G0_1_0 - 0.0134038800705469*G0_1_1 - 0.00282186948853605*G0_1_2 - 0.0134038800705468*G0_2_0 - 0.0134038800705468*G0_2_1 - 0.00282186948853604*G0_2_2;
 
3722
    A[715] = 0.00282186948853622*G0_0_2 + 0.00282186948853617*G0_1_0 + 0.00282186948853615*G0_1_1 - 0.0112874779541447*G0_1_2 + 0.00282186948853615*G0_2_0 + 0.00282186948853614*G0_2_1 - 0.0112874779541447*G0_2_2;
 
3723
    A[716] = 0.0169312169312169*G0_0_0 - 0.0423280423280422*G0_0_1 + 0.016931216931217*G0_0_2 - 0.0423280423280421*G0_1_0 - 0.0112874779541447*G0_1_1 - 0.0423280423280421*G0_1_2 - 0.0423280423280421*G0_2_0 - 0.0112874779541447*G0_2_1 - 0.0423280423280421*G0_2_2;
 
3724
    A[717] = -0.00282186948853629*G0_0_0 - 0.0134038800705466*G0_0_1 - 0.00282186948853631*G0_0_2 - 0.0134038800705467*G0_1_0 - 0.00282186948853596*G0_1_1 - 0.0134038800705467*G0_1_2 - 0.0134038800705467*G0_2_0 - 0.00282186948853593*G0_2_1 - 0.0134038800705467*G0_2_2;
 
3725
    A[718] = 0.00282186948853613*G0_0_1 + 0.00282186948853612*G0_1_0 - 0.0112874779541448*G0_1_1 + 0.00282186948853614*G0_1_2 + 0.00282186948853609*G0_2_0 - 0.0112874779541448*G0_2_1 + 0.00282186948853611*G0_2_2;
 
3726
    A[719] = -0.22010582010582*G0_0_0 - 0.16084656084656*G0_0_1 - 0.16084656084656*G0_0_2 - 0.0874779541446206*G0_1_0 - 0.118518518518518*G0_1_1 - 0.118518518518518*G0_1_2 - 0.0874779541446207*G0_2_0 - 0.118518518518518*G0_2_1 - 0.118518518518518*G0_2_2;
 
3727
    A[720] = 0.334391534391534*G0_0_0 + 0.167195767195767*G0_0_1 + 0.167195767195767*G0_0_2 + 0.167195767195767*G0_1_0 + 0.249735449735449*G0_1_1 + 0.249735449735449*G0_1_2 + 0.167195767195767*G0_2_0 + 0.249735449735449*G0_2_1 + 0.249735449735449*G0_2_2;
 
3728
    A[721] = -0.22010582010582*G0_0_0 - 0.0592592592592591*G0_0_1 - 0.0592592592592591*G0_0_2 - 0.132627865961199*G0_1_0 - 0.0902998236331568*G0_1_1 - 0.0902998236331568*G0_1_2 - 0.132627865961199*G0_2_0 - 0.0902998236331568*G0_2_1 - 0.0902998236331568*G0_2_2;
 
3729
    A[722] = 0.0225749559082887*G0_0_0 + 0.0423280423280419*G0_0_1 + 0.0423280423280416*G0_0_2 + 0.0423280423280422*G0_1_0 + 0.0846560846560843*G0_1_1 + 0.0846560846560842*G0_1_2 + 0.0423280423280421*G0_2_0 + 0.0846560846560843*G0_2_1 + 0.0846560846560843*G0_2_2;
 
3730
    A[723] = -0.00282186948853655*G0_0_1 - 0.00282186948853627*G0_0_2 - 0.00282186948853641*G0_1_0 + 0.0169312169312168*G0_1_1 + 0.0169312169312168*G0_1_2 - 0.00282186948853633*G0_2_0 + 0.0169312169312168*G0_2_1 + 0.0169312169312169*G0_2_2;
 
3731
    A[724] = -0.00282186948853601*G0_0_1 - 0.0028218694885362*G0_0_2 - 0.00282186948853642*G0_1_0 + 0.0169312169312167*G0_1_1 + 0.0169312169312167*G0_1_2 - 0.00282186948853641*G0_2_0 + 0.0169312169312166*G0_2_1 + 0.0169312169312166*G0_2_2;
 
3732
    A[725] = 0.0225749559082888*G0_0_0 - 0.0197530864197533*G0_0_1 - 0.0197530864197532*G0_0_2 - 0.0197530864197534*G0_1_0 + 0.0225749559082891*G0_1_1 + 0.0225749559082889*G0_1_2 - 0.0197530864197534*G0_2_0 + 0.0225749559082891*G0_2_1 + 0.0225749559082889*G0_2_2;
 
3733
    A[726] = 0.00282186948853624*G0_0_1 + 0.00282186948853644*G0_0_2 + 0.00282186948853641*G0_1_0 + 0.0225749559082893*G0_1_1 + 0.0225749559082894*G0_1_2 + 0.00282186948853633*G0_2_0 + 0.0225749559082893*G0_2_1 + 0.0225749559082894*G0_2_2;
 
3734
    A[727] = 0.0028218694885364*G0_0_1 + 0.00282186948853619*G0_0_2 + 0.00282186948853636*G0_1_0 + 0.0225749559082894*G0_1_1 + 0.0225749559082893*G0_1_2 + 0.00282186948853635*G0_2_0 + 0.0225749559082894*G0_2_1 + 0.0225749559082893*G0_2_2;
 
3735
    A[728] = -0.016931216931217*G0_0_0 + 0.0253968253968252*G0_0_1 + 0.16084656084656*G0_0_2 + 0.16084656084656*G0_1_0 + 0.118518518518518*G0_1_1 + 0.0677248677248674*G0_1_2 + 0.16084656084656*G0_2_0 + 0.118518518518518*G0_2_1 + 0.0677248677248674*G0_2_2;
 
3736
    A[729] = -0.0169312169312169*G0_0_0 - 0.042328042328042*G0_0_1 - 0.177777777777777*G0_0_2 - 0.177777777777777*G0_1_0 - 0.0846560846560845*G0_1_1 - 0.27089947089947*G0_1_2 - 0.177777777777777*G0_2_0 - 0.0846560846560845*G0_2_1 - 0.27089947089947*G0_2_2;
 
3737
    A[730] = 0.00564373897707238*G0_0_0 + 0.00282186948853601*G0_0_1 + 0.00282186948853617*G0_0_2 + 0.00282186948853631*G0_1_0 - 0.0169312169312167*G0_1_1 + 0.0677248677248678*G0_1_2 + 0.00282186948853631*G0_2_0 - 0.0169312169312167*G0_2_1 + 0.0677248677248678*G0_2_2;
 
3738
    A[731] = -0.0169312169312168*G0_0_0 + 0.16084656084656*G0_0_1 + 0.0253968253968252*G0_0_2 + 0.16084656084656*G0_1_0 + 0.0677248677248671*G0_1_1 + 0.118518518518518*G0_1_2 + 0.16084656084656*G0_2_0 + 0.0677248677248671*G0_2_1 + 0.118518518518518*G0_2_2;
 
3739
    A[732] = -0.0169312169312169*G0_0_0 - 0.177777777777777*G0_0_1 - 0.0423280423280416*G0_0_2 - 0.177777777777777*G0_1_0 - 0.27089947089947*G0_1_1 - 0.0846560846560842*G0_1_2 - 0.177777777777777*G0_2_0 - 0.27089947089947*G0_2_1 - 0.0846560846560842*G0_2_2;
 
3740
    A[733] = 0.00564373897707253*G0_0_0 + 0.00282186948853607*G0_0_1 + 0.00282186948853626*G0_0_2 + 0.00282186948853607*G0_1_0 + 0.0677248677248678*G0_1_1 - 0.0169312169312169*G0_1_2 + 0.0028218694885361*G0_2_0 + 0.0677248677248678*G0_2_1 - 0.016931216931217*G0_2_2;
 
3741
    A[734] = -0.0451499118165775*G0_0_0 - 0.0225749559082886*G0_0_1 - 0.022574955908289*G0_0_2 - 0.0225749559082888*G0_1_0 - 0.135449735449735*G0_1_1 - 0.135449735449735*G0_1_2 - 0.0225749559082888*G0_2_0 - 0.135449735449735*G0_2_1 - 0.135449735449734*G0_2_2;
 
3742
    A[735] = -0.0253968253968254*G0_0_0 - 0.0253968253968253*G0_0_1 - 0.0253968253968254*G0_0_2 - 0.00776014109347437*G0_1_0 - 0.00776014109347437*G0_1_1 - 0.00776014109347436*G0_1_2 - 0.00776014109347438*G0_2_0 - 0.00776014109347438*G0_2_1 - 0.00776014109347437*G0_2_2;
 
3743
    A[736] = -0.0705467372134038*G0_0_0 - 0.0458553791887125*G0_1_0 - 0.0458553791887125*G0_2_0;
 
3744
    A[737] = 0.00776014109347449*G0_1_1 + 0.00776014109347448*G0_2_1;
 
3745
    A[738] = 0.00776014109347441*G0_1_2 + 0.00776014109347441*G0_2_2;
 
3746
    A[739] = -0.0112874779541448*G0_1_1 - 0.0112874779541447*G0_1_2 - 0.0112874779541447*G0_2_1 - 0.0112874779541447*G0_2_2;
 
3747
    A[740] = -0.00282186948853592*G0_1_1 - 0.00282186948853597*G0_1_2 - 0.00282186948853597*G0_2_1 - 0.002821869488536*G0_2_2;
 
3748
    A[741] = -0.0112874779541447*G0_1_1 - 0.0112874779541447*G0_1_2 - 0.0112874779541447*G0_2_1 - 0.0112874779541447*G0_2_2;
 
3749
    A[742] = 0.0225749559082892*G0_0_0 - 0.0790123456790122*G0_0_2 - 0.0790123456790122*G0_1_0 - 0.158024691358024*G0_1_2 - 0.0790123456790121*G0_2_0 - 0.158024691358024*G0_2_2;
 
3750
    A[743] = -0.0112874779541446*G0_0_0 + 0.0310405643738977*G0_0_2 + 0.0310405643738976*G0_1_0 + 0.0902998236331568*G0_1_2 + 0.0310405643738976*G0_2_0 + 0.0902998236331568*G0_2_2;
 
3751
    A[744] = -0.0112874779541446*G0_0_2 - 0.0112874779541447*G0_1_0 - 0.0451499118165785*G0_1_2 - 0.0112874779541447*G0_2_0 - 0.0451499118165785*G0_2_2;
 
3752
    A[745] = 0.0225749559082891*G0_0_0 - 0.0790123456790122*G0_0_1 - 0.079012345679012*G0_1_0 - 0.158024691358024*G0_1_1 - 0.079012345679012*G0_2_0 - 0.158024691358024*G0_2_1;
 
3753
    A[746] = -0.0112874779541444*G0_0_0 + 0.0310405643738978*G0_0_1 + 0.0310405643738976*G0_1_0 + 0.0902998236331571*G0_1_1 + 0.0310405643738976*G0_2_0 + 0.0902998236331571*G0_2_1;
 
3754
    A[747] = -0.0112874779541447*G0_0_1 - 0.0112874779541446*G0_1_0 - 0.0451499118165786*G0_1_1 - 0.0112874779541446*G0_2_0 - 0.0451499118165786*G0_2_1;
 
3755
    A[748] = -0.0225749559082892*G0_0_0 - 0.0225749559082892*G0_0_1 + 0.0112874779541446*G0_0_2 + 0.0112874779541446*G0_1_0 + 0.0112874779541447*G0_1_1 + 0.0112874779541446*G0_2_0 + 0.0112874779541447*G0_2_1;
 
3756
    A[749] = -0.0112874779541445*G0_0_0 - 0.0112874779541445*G0_0_1 + 0.00282186948853621*G0_0_2 + 0.00282186948853605*G0_1_0 + 0.00282186948853607*G0_1_1 + 0.00282186948853601*G0_2_0 + 0.00282186948853604*G0_2_1;
 
3757
    A[750] = 0.0112874779541446*G0_0_2 + 0.0112874779541447*G0_1_0 + 0.0112874779541448*G0_1_1 + 0.0112874779541447*G0_2_0 + 0.0112874779541447*G0_2_1;
 
3758
    A[751] = -0.0225749559082892*G0_0_0 + 0.0112874779541446*G0_0_1 - 0.0225749559082892*G0_0_2 + 0.0112874779541446*G0_1_0 + 0.0112874779541447*G0_1_2 + 0.0112874779541446*G0_2_0 + 0.0112874779541447*G0_2_2;
 
3759
    A[752] = -0.0112874779541446*G0_0_0 + 0.00282186948853612*G0_0_1 - 0.0112874779541446*G0_0_2 + 0.00282186948853612*G0_1_0 + 0.00282186948853612*G0_1_2 + 0.0028218694885361*G0_2_0 + 0.0028218694885361*G0_2_2;
 
3760
    A[753] = 0.0112874779541446*G0_0_1 + 0.0112874779541447*G0_1_0 + 0.0112874779541447*G0_1_2 + 0.0112874779541447*G0_2_0 + 0.0112874779541447*G0_2_2;
 
3761
    A[754] = 0.112874779541446*G0_0_0 + 0.0790123456790122*G0_0_1 + 0.0790123456790122*G0_0_2 + 0.0338624338624337*G0_1_0 + 0.0451499118165784*G0_1_1 + 0.0451499118165784*G0_1_2 + 0.0338624338624337*G0_2_0 + 0.0451499118165784*G0_2_1 + 0.0451499118165784*G0_2_2;
 
3762
    A[755] = -0.22010582010582*G0_0_0 - 0.132627865961199*G0_0_1 - 0.132627865961199*G0_0_2 - 0.0592592592592591*G0_1_0 - 0.0902998236331568*G0_1_1 - 0.0902998236331568*G0_1_2 - 0.0592592592592591*G0_2_0 - 0.0902998236331568*G0_2_1 - 0.0902998236331568*G0_2_2;
 
3763
    A[756] = 0.203174603174603*G0_0_0 + 0.0790123456790122*G0_0_1 + 0.0790123456790122*G0_0_2 + 0.0790123456790122*G0_1_0 + 0.158024691358025*G0_1_1 + 0.158024691358025*G0_1_2 + 0.0790123456790123*G0_2_0 + 0.158024691358025*G0_2_1 + 0.158024691358025*G0_2_2;
 
3764
    A[757] = -0.0451499118165781*G0_0_0 - 0.0112874779541445*G0_0_1 - 0.0112874779541443*G0_0_2 - 0.0112874779541446*G0_1_0 - 0.112874779541446*G0_1_1 - 0.112874779541446*G0_1_2 - 0.0112874779541446*G0_2_0 - 0.112874779541446*G0_2_1 - 0.112874779541446*G0_2_2;
 
3765
    A[758] = -0.0112874779541444*G0_0_1 - 0.0112874779541446*G0_0_2 - 0.0112874779541448*G0_1_0 + 0.0225749559082891*G0_1_1 + 0.022574955908289*G0_1_2 - 0.0112874779541449*G0_2_0 + 0.0225749559082891*G0_2_1 + 0.022574955908289*G0_2_2;
 
3766
    A[759] = -0.0112874779541447*G0_0_1 - 0.0112874779541445*G0_0_2 - 0.0112874779541446*G0_1_0 + 0.0225749559082889*G0_1_1 + 0.0225749559082891*G0_1_2 - 0.0112874779541447*G0_2_0 + 0.0225749559082889*G0_2_1 + 0.022574955908289*G0_2_2;
 
3767
    A[760] = -0.0451499118165783*G0_0_0 + 0.0112874779541446*G0_0_1 + 0.0112874779541447*G0_0_2 + 0.0112874779541448*G0_1_0 + 0.0112874779541448*G0_2_0;
 
3768
    A[761] = 0.0112874779541448*G0_0_1 + 0.0112874779541445*G0_0_2 + 0.0112874779541449*G0_1_0 + 0.0112874779541449*G0_2_0;
 
3769
    A[762] = 0.0112874779541444*G0_0_1 + 0.0112874779541446*G0_0_2 + 0.0112874779541447*G0_1_0 + 0.0112874779541447*G0_2_0;
 
3770
    A[763] = 0.0677248677248677*G0_0_0 + 0.0112874779541448*G0_0_1 - 0.0338624338624337*G0_0_2 - 0.0338624338624337*G0_1_0 - 0.0225749559082892*G0_1_1 - 0.0338624338624337*G0_2_0 - 0.0225749559082892*G0_2_1;
 
3771
    A[764] = -0.0677248677248676*G0_0_0 + 0.0112874779541445*G0_0_1 + 0.101587301587301*G0_0_2 + 0.101587301587301*G0_1_0 + 0.112874779541446*G0_1_1 + 0.101587301587301*G0_2_0 + 0.112874779541446*G0_2_1;
 
3772
    A[765] = 0.0225749559082891*G0_0_0 + 0.0112874779541447*G0_0_1 - 0.0338624338624338*G0_0_2 - 0.0338624338624336*G0_1_0 - 0.022574955908289*G0_1_1 - 0.0338624338624335*G0_2_0 - 0.022574955908289*G0_2_1;
 
3773
    A[766] = 0.0677248677248676*G0_0_0 - 0.0338624338624338*G0_0_1 + 0.0112874779541447*G0_0_2 - 0.0338624338624336*G0_1_0 - 0.0225749559082889*G0_1_2 - 0.0338624338624336*G0_2_0 - 0.022574955908289*G0_2_2;
 
3774
    A[767] = -0.0677248677248676*G0_0_0 + 0.101587301587301*G0_0_1 + 0.0112874779541443*G0_0_2 + 0.101587301587301*G0_1_0 + 0.112874779541446*G0_1_2 + 0.101587301587301*G0_2_0 + 0.112874779541446*G0_2_2;
 
3775
    A[768] = 0.022574955908289*G0_0_0 - 0.0338624338624336*G0_0_1 + 0.0112874779541446*G0_0_2 - 0.0338624338624338*G0_1_0 - 0.0225749559082891*G0_1_2 - 0.0338624338624337*G0_2_0 - 0.0225749559082891*G0_2_2;
 
3776
    A[769] = 0.0902998236331563*G0_0_0;
 
3777
    A[770] = 0.0183421516754849*G0_0_0 + 0.0183421516754849*G0_0_1 + 0.0183421516754849*G0_0_2 + 0.0183421516754849*G0_1_0 + 0.0183421516754849*G0_1_1 + 0.0183421516754849*G0_1_2 + 0.0183421516754848*G0_2_0 + 0.0183421516754848*G0_2_1 + 0.0183421516754848*G0_2_2;
 
3778
    A[771] = 0.0493827160493824*G0_0_0 + 0.00705467372134032*G0_1_0 + 0.0070546737213403*G0_2_0;
 
3779
    A[772] = 0.00705467372134054*G0_0_1 - 0.018342151675485*G0_1_1 + 0.00705467372134044*G0_2_1;
 
3780
    A[773] = 0.00705467372134035*G0_0_2 + 0.00705467372134035*G0_1_2 - 0.018342151675485*G0_2_2;
 
3781
    A[774] = -0.0677248677248676*G0_0_1 - 0.0225749559082891*G0_0_2 + 0.0225749559082892*G0_1_1 + 0.0112874779541446*G0_1_2 - 0.033862433862434*G0_2_1 - 0.0225749559082893*G0_2_2;
 
3782
    A[775] = -0.0846560846560843*G0_0_1 - 0.0846560846560845*G0_0_2 - 0.0169312169312168*G0_1_1 - 0.019753086419753*G0_1_2 - 0.0197530864197531*G0_2_1 - 0.0169312169312172*G0_2_2;
 
3783
    A[776] = -0.0225749559082892*G0_0_1 - 0.0677248677248675*G0_0_2 - 0.0225749559082893*G0_1_1 - 0.0338624338624339*G0_1_2 + 0.0112874779541447*G0_2_1 + 0.0225749559082895*G0_2_2;
 
3784
    A[777] = -0.0677248677248674*G0_0_0 + 0.0112874779541446*G0_0_2 + 0.203174603174603*G0_1_0 + 0.112874779541446*G0_1_2 + 0.101587301587301*G0_2_0 + 0.112874779541445*G0_2_2;
 
3785
    A[778] = 0.118518518518518*G0_0_0 + 0.0931216931216929*G0_0_2 + 0.0507936507936506*G0_1_0 + 0.186243386243386*G0_1_2 - 0.042328042328042*G0_2_0 - 0.0846560846560841*G0_2_2;
 
3786
    A[779] = -0.0225749559082891*G0_0_0 - 0.0338624338624339*G0_0_2 - 0.0225749559082893*G0_1_0 - 0.0677248677248678*G0_1_2 + 0.0112874779541447*G0_2_0 + 0.0677248677248677*G0_2_2;
 
3787
    A[780] = -0.0677248677248674*G0_0_0 + 0.0112874779541446*G0_0_1 + 0.101587301587301*G0_1_0 + 0.112874779541446*G0_1_1 + 0.203174603174602*G0_2_0 + 0.112874779541445*G0_2_1;
 
3788
    A[781] = 0.118518518518518*G0_0_0 + 0.0931216931216934*G0_0_1 - 0.0423280423280419*G0_1_0 - 0.0846560846560845*G0_1_1 + 0.0507936507936513*G0_2_0 + 0.186243386243386*G0_2_1;
 
3789
    A[782] = -0.022574955908289*G0_0_0 - 0.033862433862434*G0_0_1 + 0.0112874779541446*G0_1_0 + 0.0677248677248677*G0_1_1 - 0.0225749559082893*G0_2_0 - 0.0677248677248677*G0_2_1;
 
3790
    A[783] = -0.0225749559082896*G0_0_0 - 0.0225749559082894*G0_0_1 - 0.0112874779541445*G0_0_2 - 0.0225749559082894*G0_1_0 - 0.0225749559082894*G0_1_1 - 0.0112874779541447*G0_1_2 - 0.0112874779541449*G0_2_0 - 0.0112874779541449*G0_2_1;
 
3791
    A[784] = 0.0169312169312169*G0_0_0 + 0.0169312169312166*G0_0_1 - 0.00282186948853615*G0_0_2 + 0.016931216931217*G0_1_0 + 0.0169312169312169*G0_1_1 - 0.00282186948853586*G0_1_2 - 0.00282186948853588*G0_2_0 - 0.00282186948853602*G0_2_1;
 
3792
    A[785] = 0.0225749559082891*G0_0_0 + 0.0225749559082892*G0_0_1 - 0.0112874779541447*G0_0_2 + 0.0225749559082893*G0_1_0 + 0.0225749559082892*G0_1_1 - 0.0112874779541448*G0_1_2 - 0.0112874779541447*G0_2_0 - 0.0112874779541447*G0_2_1;
 
3793
    A[786] = -0.0225749559082894*G0_0_0 - 0.0112874779541446*G0_0_1 - 0.0225749559082894*G0_0_2 - 0.0112874779541447*G0_1_0 - 0.0112874779541447*G0_1_2 - 0.0225749559082894*G0_2_0 - 0.0112874779541445*G0_2_1 - 0.0225749559082893*G0_2_2;
 
3794
    A[787] = 0.0169312169312172*G0_0_0 - 0.00282186948853588*G0_0_1 + 0.0169312169312174*G0_0_2 - 0.00282186948853592*G0_1_0 - 0.00282186948853589*G0_1_2 + 0.0169312169312173*G0_2_0 - 0.002821869488536*G0_2_1 + 0.0169312169312174*G0_2_2;
 
3795
    A[788] = 0.0225749559082891*G0_0_0 - 0.0112874779541449*G0_0_1 + 0.0225749559082889*G0_0_2 - 0.0112874779541447*G0_1_0 - 0.0112874779541447*G0_1_2 + 0.0225749559082891*G0_2_0 - 0.0112874779541449*G0_2_1 + 0.0225749559082892*G0_2_2;
 
3796
    A[789] = -0.0451499118165781*G0_0_0 - 0.0564373897707231*G0_0_1 - 0.056437389770723*G0_0_2 - 0.0564373897707227*G0_1_0 - 0.0677248677248675*G0_1_1 - 0.0677248677248675*G0_1_2 - 0.0564373897707224*G0_2_0 - 0.0677248677248674*G0_2_1 - 0.0677248677248674*G0_2_2;
 
3797
    A[790] = 0.0225749559082887*G0_0_0 + 0.0423280423280422*G0_0_1 + 0.0423280423280421*G0_0_2 + 0.0423280423280419*G0_1_0 + 0.0846560846560843*G0_1_1 + 0.0846560846560843*G0_1_2 + 0.0423280423280416*G0_2_0 + 0.0846560846560842*G0_2_1 + 0.0846560846560842*G0_2_2;
 
3798
    A[791] = -0.0451499118165781*G0_0_0 - 0.0112874779541446*G0_0_1 - 0.0112874779541446*G0_0_2 - 0.0112874779541445*G0_1_0 - 0.112874779541446*G0_1_1 - 0.112874779541446*G0_1_2 - 0.0112874779541443*G0_2_0 - 0.112874779541446*G0_2_1 - 0.112874779541446*G0_2_2;
 
3799
    A[792] = 0.632098765432098*G0_0_0 + 0.270899470899471*G0_0_1 + 0.270899470899471*G0_0_2 + 0.270899470899471*G0_1_0 + 0.54179894179894*G0_1_1 + 0.27089947089947*G0_1_2 + 0.270899470899471*G0_2_0 + 0.27089947089947*G0_2_1 + 0.541798941798941*G0_2_2;
 
3800
    A[793] = -0.135449735449735*G0_0_0 + 0.225749559082893*G0_0_1 + 0.0677248677248681*G0_0_2 - 0.045149911816578*G0_1_0 - 0.135449735449735*G0_1_1 - 0.067724867724867*G0_1_2 - 0.0677248677248676*G0_2_0 + 0.0677248677248684*G0_2_1;
 
3801
    A[794] = -0.135449735449735*G0_0_0 + 0.0677248677248667*G0_0_1 + 0.225749559082892*G0_0_2 - 0.067724867724868*G0_1_0 + 0.0677248677248673*G0_1_2 - 0.0451499118165783*G0_2_0 - 0.0677248677248674*G0_2_1 - 0.135449735449735*G0_2_2;
 
3802
    A[795] = 0.0902998236331565*G0_0_0 + 0.0451499118165788*G0_0_1 + 0.0451499118165783*G0_0_2 + 0.045149911816578*G0_1_0 + 0.0225749559082892*G0_1_2 + 0.0451499118165782*G0_2_0 + 0.0225749559082891*G0_2_1;
 
3803
    A[796] = 0.135449735449735*G0_0_0 + 0.0451499118165782*G0_0_1 + 0.0677248677248672*G0_0_2 + 0.045149911816578*G0_1_0 + 0.0225749559082889*G0_1_2 + 0.0677248677248678*G0_2_0 + 0.0225749559082894*G0_2_1;
 
3804
    A[797] = 0.135449735449735*G0_0_0 + 0.0677248677248676*G0_0_1 + 0.0451499118165784*G0_0_2 + 0.0677248677248678*G0_1_0 + 0.0225749559082892*G0_1_2 + 0.0451499118165781*G0_2_0 + 0.022574955908289*G0_2_1;
 
3805
    A[798] = 0.0451499118165783*G0_0_0 + 0.0902998236331563*G0_0_1 + 0.0451499118165779*G0_0_2 + 0.0902998236331563*G0_1_0 + 0.135449735449734*G0_1_1 + 0.0677248677248672*G0_1_2 + 0.0451499118165783*G0_2_0 + 0.0677248677248674*G0_2_1;
 
3806
    A[799] = 0.0451499118165784*G0_0_0 - 0.270899470899471*G0_0_1 - 0.135449735449735*G0_0_2 - 0.27089947089947*G0_1_0 - 0.541798941798941*G0_1_1 - 0.27089947089947*G0_1_2 - 0.135449735449735*G0_2_0 - 0.27089947089947*G0_2_1;
 
3807
    A[800] = -0.135449735449734*G0_0_0 - 0.0677248677248669*G0_0_1 + 0.0451499118165788*G0_0_2 - 0.0677248677248677*G0_1_0 + 0.067724867724868*G0_1_2 + 0.045149911816578*G0_2_0 + 0.0677248677248673*G0_2_1;
 
3808
    A[801] = 0.0451499118165781*G0_0_0 + 0.0451499118165784*G0_0_1 + 0.0902998236331566*G0_0_2 + 0.0451499118165779*G0_1_0 + 0.0677248677248669*G0_1_2 + 0.0902998236331563*G0_2_0 + 0.0677248677248671*G0_2_1 + 0.135449735449735*G0_2_2;
 
3809
    A[802] = 0.0451499118165785*G0_0_0 - 0.135449735449735*G0_0_1 - 0.270899470899471*G0_0_2 - 0.135449735449734*G0_1_0 - 0.27089947089947*G0_1_2 - 0.270899470899469*G0_2_0 - 0.27089947089947*G0_2_1 - 0.541798941798941*G0_2_2;
 
3810
    A[803] = -0.135449735449736*G0_0_0 + 0.0451499118165785*G0_0_1 - 0.0677248677248682*G0_0_2 + 0.0451499118165778*G0_1_0 + 0.0677248677248671*G0_1_2 - 0.0677248677248685*G0_2_0 + 0.0677248677248681*G0_2_1;
 
3811
    A[804] = -0.722398589065254*G0_0_0 - 0.316049382716049*G0_0_1 - 0.316049382716048*G0_0_2 - 0.316049382716048*G0_1_0 - 0.135449735449734*G0_1_2 - 0.316049382716049*G0_2_0 - 0.135449735449735*G0_2_1;
 
3812
    A[805] = 0.0183421516754849*G0_0_0 + 0.0183421516754849*G0_0_1 + 0.0183421516754849*G0_0_2 + 0.0183421516754849*G0_1_0 + 0.0183421516754849*G0_1_1 + 0.0183421516754849*G0_1_2 + 0.0183421516754849*G0_2_0 + 0.018342151675485*G0_2_1 + 0.0183421516754849*G0_2_2;
 
3813
    A[806] = -0.0183421516754849*G0_0_0 + 0.00705467372134036*G0_1_0 + 0.00705467372134039*G0_2_0;
 
3814
    A[807] = 0.00705467372134026*G0_0_1 + 0.0493827160493828*G0_1_1 + 0.00705467372134044*G0_2_1;
 
3815
    A[808] = 0.00705467372134047*G0_0_2 + 0.00705467372134035*G0_1_2 - 0.0183421516754849*G0_2_2;
 
3816
    A[809] = 0.203174603174604*G0_0_1 + 0.112874779541446*G0_0_2 - 0.0677248677248673*G0_1_1 + 0.0112874779541449*G0_1_2 + 0.101587301587302*G0_2_1 + 0.112874779541446*G0_2_2;
 
3817
    A[810] = 0.0507936507936505*G0_0_1 + 0.186243386243386*G0_0_2 + 0.118518518518518*G0_1_1 + 0.0931216931216929*G0_1_2 - 0.0423280423280423*G0_2_1 - 0.0846560846560846*G0_2_2;
 
3818
    A[811] = -0.0225749559082889*G0_0_1 - 0.0677248677248678*G0_0_2 - 0.022574955908289*G0_1_1 - 0.0338624338624336*G0_1_2 + 0.0112874779541448*G0_2_1 + 0.0677248677248676*G0_2_2;
 
3819
    A[812] = 0.0225749559082891*G0_0_0 + 0.0112874779541449*G0_0_2 - 0.0677248677248676*G0_1_0 - 0.0225749559082891*G0_1_2 - 0.0338624338624336*G0_2_0 - 0.0225749559082889*G0_2_2;
 
3820
    A[813] = -0.0169312169312166*G0_0_0 - 0.0197530864197532*G0_0_2 - 0.0846560846560842*G0_1_0 - 0.0846560846560844*G0_1_2 - 0.0197530864197531*G0_2_0 - 0.016931216931217*G0_2_2;
 
3821
    A[814] = -0.0225749559082889*G0_0_0 - 0.0338624338624334*G0_0_2 - 0.022574955908289*G0_1_0 - 0.0677248677248673*G0_1_2 + 0.0112874779541448*G0_2_0 + 0.0225749559082894*G0_2_2;
 
3822
    A[815] = 0.0677248677248675*G0_0_0 + 0.0112874779541448*G0_0_1 - 0.0338624338624335*G0_1_0 - 0.0225749559082891*G0_1_1 - 0.0677248677248673*G0_2_0 - 0.022574955908289*G0_2_1;
 
3823
    A[816] = -0.0846560846560849*G0_0_0 - 0.0423280423280429*G0_0_1 + 0.0931216931216925*G0_1_0 + 0.118518518518518*G0_1_1 + 0.186243386243385*G0_2_0 + 0.0507936507936505*G0_2_1;
 
3824
    A[817] = 0.112874779541446*G0_0_0 + 0.101587301587302*G0_0_1 + 0.0112874779541449*G0_1_0 - 0.0677248677248675*G0_1_1 + 0.112874779541446*G0_2_0 + 0.203174603174603*G0_2_1;
 
3825
    A[818] = -0.0225749559082895*G0_0_0 - 0.0225749559082894*G0_0_1 - 0.0112874779541445*G0_0_2 - 0.0225749559082895*G0_1_0 - 0.0225749559082894*G0_1_1 - 0.0112874779541444*G0_1_2 - 0.0112874779541448*G0_2_0 - 0.0112874779541448*G0_2_1;
 
3826
    A[819] = 0.016931216931217*G0_0_0 + 0.0169312169312171*G0_0_1 - 0.00282186948853624*G0_0_2 + 0.0169312169312169*G0_1_0 + 0.0169312169312169*G0_1_1 - 0.00282186948853649*G0_1_2 - 0.00282186948853633*G0_2_0 - 0.00282186948853631*G0_2_1;
 
3827
    A[820] = 0.022574955908289*G0_0_0 + 0.0225749559082889*G0_0_1 - 0.0112874779541447*G0_0_2 + 0.022574955908289*G0_1_0 + 0.0225749559082891*G0_1_1 - 0.0112874779541444*G0_1_2 - 0.0112874779541447*G0_2_0 - 0.0112874779541447*G0_2_1;
 
3828
    A[821] = -0.0677248677248677*G0_0_0 - 0.0564373897707228*G0_0_1 - 0.0677248677248677*G0_0_2 - 0.0564373897707232*G0_1_0 - 0.0451499118165784*G0_1_1 - 0.0564373897707232*G0_1_2 - 0.0677248677248676*G0_2_0 - 0.056437389770723*G0_2_1 - 0.0677248677248677*G0_2_2;
 
3829
    A[822] = 0.0846560846560849*G0_0_0 + 0.0423280423280419*G0_0_1 + 0.0846560846560849*G0_0_2 + 0.0423280423280426*G0_1_0 + 0.0225749559082892*G0_1_1 + 0.0423280423280427*G0_1_2 + 0.0846560846560849*G0_2_0 + 0.0423280423280424*G0_2_1 + 0.0846560846560851*G0_2_2;
 
3830
    A[823] = -0.112874779541447*G0_0_0 - 0.0112874779541445*G0_0_1 - 0.112874779541446*G0_0_2 - 0.0112874779541449*G0_1_0 - 0.0451499118165786*G0_1_1 - 0.0112874779541451*G0_1_2 - 0.112874779541446*G0_2_0 - 0.0112874779541448*G0_2_1 - 0.112874779541446*G0_2_2;
 
3831
    A[824] = -0.0112874779541447*G0_0_1 - 0.0112874779541448*G0_0_2 - 0.0112874779541444*G0_1_0 - 0.0225749559082893*G0_1_1 - 0.0225749559082893*G0_1_2 - 0.0112874779541445*G0_2_0 - 0.0225749559082893*G0_2_1 - 0.0225749559082893*G0_2_2;
 
3832
    A[825] = -0.00282186948853641*G0_0_1 - 0.00282186948853633*G0_0_2 - 0.00282186948853654*G0_1_0 + 0.0169312169312168*G0_1_1 + 0.0169312169312168*G0_1_2 - 0.00282186948853627*G0_2_0 + 0.0169312169312168*G0_2_1 + 0.0169312169312169*G0_2_2;
 
3833
    A[826] = -0.0112874779541448*G0_0_1 - 0.0112874779541449*G0_0_2 - 0.0112874779541444*G0_1_0 + 0.0225749559082891*G0_1_1 + 0.0225749559082891*G0_1_2 - 0.0112874779541446*G0_2_0 + 0.022574955908289*G0_2_1 + 0.022574955908289*G0_2_2;
 
3834
    A[827] = -0.135449735449735*G0_0_0 - 0.045149911816578*G0_0_1 - 0.0677248677248676*G0_0_2 + 0.225749559082893*G0_1_0 - 0.135449735449735*G0_1_1 + 0.0677248677248684*G0_1_2 + 0.0677248677248681*G0_2_0 - 0.067724867724867*G0_2_1;
 
3835
    A[828] = 0.541798941798942*G0_0_0 + 0.270899470899471*G0_0_1 + 0.270899470899471*G0_0_2 + 0.270899470899471*G0_1_0 + 0.632098765432098*G0_1_1 + 0.27089947089947*G0_1_2 + 0.270899470899471*G0_2_0 + 0.27089947089947*G0_2_1 + 0.541798941798941*G0_2_2;
 
3836
    A[829] = -0.0677248677248671*G0_0_1 + 0.0677248677248683*G0_0_2 + 0.0677248677248677*G0_1_0 - 0.135449735449735*G0_1_1 + 0.225749559082892*G0_1_2 - 0.0677248677248675*G0_2_0 - 0.0451499118165782*G0_2_1 - 0.135449735449735*G0_2_2;
 
3837
    A[830] = 0.135449735449736*G0_0_0 + 0.0902998236331572*G0_0_1 + 0.0677248677248677*G0_0_2 + 0.0902998236331577*G0_1_0 + 0.0451499118165791*G0_1_1 + 0.0451499118165786*G0_1_2 + 0.0677248677248677*G0_2_0 + 0.0451499118165788*G0_2_1;
 
3838
    A[831] = -0.541798941798942*G0_0_0 - 0.270899470899471*G0_0_1 - 0.270899470899471*G0_0_2 - 0.270899470899471*G0_1_0 + 0.0451499118165778*G0_1_1 - 0.135449735449735*G0_1_2 - 0.270899470899471*G0_2_0 - 0.135449735449736*G0_2_1;
 
3839
    A[832] = -0.0677248677248677*G0_0_1 + 0.0677248677248678*G0_0_2 - 0.067724867724868*G0_1_0 - 0.135449735449735*G0_1_1 + 0.0451499118165782*G0_1_2 + 0.0677248677248672*G0_2_0 + 0.0451499118165786*G0_2_1;
 
3840
    A[833] = 0.0451499118165783*G0_0_1 + 0.0225749559082893*G0_0_2 + 0.0451499118165786*G0_1_0 + 0.0902998236331573*G0_1_1 + 0.0451499118165786*G0_1_2 + 0.0225749559082891*G0_2_0 + 0.045149911816578*G0_2_1;
 
3841
    A[834] = 0.045149911816578*G0_0_1 + 0.0225749559082892*G0_0_2 + 0.0451499118165782*G0_1_0 + 0.135449735449735*G0_1_1 + 0.0677248677248676*G0_1_2 + 0.0225749559082892*G0_2_0 + 0.067724867724867*G0_2_1;
 
3842
    A[835] = 0.0677248677248669*G0_0_1 + 0.0225749559082889*G0_0_2 + 0.0677248677248675*G0_1_0 + 0.135449735449735*G0_1_1 + 0.045149911816578*G0_1_2 + 0.0225749559082894*G0_2_0 + 0.045149911816578*G0_2_1;
 
3843
    A[836] = 0.0451499118165786*G0_0_1 + 0.0677248677248675*G0_0_2 + 0.0451499118165784*G0_1_0 + 0.0451499118165788*G0_1_1 + 0.0902998236331574*G0_1_2 + 0.0677248677248673*G0_2_0 + 0.090299823633157*G0_2_1 + 0.135449735449735*G0_2_2;
 
3844
    A[837] = 0.0451499118165791*G0_0_1 + 0.0677248677248676*G0_0_2 + 0.0451499118165783*G0_1_0 - 0.135449735449735*G0_1_1 - 0.0677248677248683*G0_1_2 + 0.0677248677248676*G0_2_0 - 0.0677248677248675*G0_2_1;
 
3845
    A[838] = -0.135449735449736*G0_0_1 - 0.270899470899471*G0_0_2 - 0.135449735449735*G0_1_0 + 0.0451499118165781*G0_1_1 - 0.270899470899471*G0_1_2 - 0.270899470899471*G0_2_0 - 0.270899470899471*G0_2_1 - 0.541798941798941*G0_2_2;
 
3846
    A[839] = -0.316049382716049*G0_0_1 - 0.135449735449736*G0_0_2 - 0.31604938271605*G0_1_0 - 0.722398589065255*G0_1_1 - 0.31604938271605*G0_1_2 - 0.135449735449736*G0_2_0 - 0.316049382716048*G0_2_1;
 
3847
    A[840] = 0.0183421516754851*G0_0_0 + 0.0183421516754851*G0_0_1 + 0.0183421516754851*G0_0_2 + 0.0183421516754851*G0_1_0 + 0.0183421516754851*G0_1_1 + 0.0183421516754851*G0_1_2 + 0.0183421516754851*G0_2_0 + 0.0183421516754851*G0_2_1 + 0.0183421516754851*G0_2_2;
 
3848
    A[841] = -0.0183421516754849*G0_0_0 + 0.00705467372134042*G0_1_0 + 0.00705467372134037*G0_2_0;
 
3849
    A[842] = 0.00705467372134038*G0_0_1 - 0.018342151675485*G0_1_1 + 0.00705467372134035*G0_2_1;
 
3850
    A[843] = 0.00705467372134031*G0_0_2 + 0.00705467372134038*G0_1_2 + 0.0493827160493827*G0_2_2;
 
3851
    A[844] = -0.0677248677248678*G0_0_1 - 0.0225749559082893*G0_0_2 + 0.0677248677248676*G0_1_1 + 0.0112874779541444*G0_1_2 - 0.0338624338624337*G0_2_1 - 0.0225749559082893*G0_2_2;
 
3852
    A[845] = 0.186243386243386*G0_0_1 + 0.0507936507936506*G0_0_2 - 0.0846560846560844*G0_1_1 - 0.0423280423280419*G0_1_2 + 0.0931216931216931*G0_2_1 + 0.118518518518519*G0_2_2;
 
3853
    A[846] = 0.112874779541446*G0_0_1 + 0.203174603174603*G0_0_2 + 0.112874779541446*G0_1_1 + 0.101587301587301*G0_1_2 + 0.0112874779541445*G0_2_1 - 0.0677248677248677*G0_2_2;
 
3854
    A[847] = 0.0677248677248676*G0_0_0 + 0.0112874779541446*G0_0_2 - 0.0677248677248674*G0_1_0 - 0.0225749559082889*G0_1_2 - 0.0338624338624337*G0_2_0 - 0.0225749559082891*G0_2_2;
 
3855
    A[848] = -0.0846560846560846*G0_0_0 - 0.0423280423280425*G0_0_2 + 0.186243386243385*G0_1_0 + 0.0507936507936501*G0_1_2 + 0.0931216931216927*G0_2_0 + 0.118518518518518*G0_2_2;
 
3856
    A[849] = 0.112874779541446*G0_0_0 + 0.101587301587302*G0_0_2 + 0.112874779541446*G0_1_0 + 0.203174603174603*G0_1_2 + 0.0112874779541446*G0_2_0 - 0.0677248677248677*G0_2_2;
 
3857
    A[850] = 0.0225749559082891*G0_0_0 + 0.0112874779541446*G0_0_1 - 0.0338624338624336*G0_1_0 - 0.0225749559082889*G0_1_1 - 0.0677248677248675*G0_2_0 - 0.0225749559082891*G0_2_1;
 
3858
    A[851] = -0.0169312169312167*G0_0_0 - 0.0197530864197531*G0_0_1 - 0.019753086419753*G0_1_0 - 0.016931216931217*G0_1_1 - 0.0846560846560846*G0_2_0 - 0.0846560846560846*G0_2_1;
 
3859
    A[852] = -0.0225749559082894*G0_0_0 - 0.0338624338624337*G0_0_1 + 0.0112874779541445*G0_1_0 + 0.0225749559082892*G0_1_1 - 0.0225749559082893*G0_2_0 - 0.0677248677248675*G0_2_1;
 
3860
    A[853] = -0.0677248677248676*G0_0_0 - 0.0677248677248676*G0_0_1 - 0.0564373897707233*G0_0_2 - 0.0677248677248675*G0_1_0 - 0.0677248677248675*G0_1_1 - 0.0564373897707234*G0_1_2 - 0.0564373897707231*G0_2_0 - 0.056437389770723*G0_2_1 - 0.0451499118165787*G0_2_2;
 
3861
    A[854] = 0.0846560846560846*G0_0_0 + 0.0846560846560845*G0_0_1 + 0.0423280423280423*G0_0_2 + 0.0846560846560843*G0_1_0 + 0.0846560846560842*G0_1_1 + 0.0423280423280424*G0_1_2 + 0.0423280423280422*G0_2_0 + 0.042328042328042*G0_2_1 + 0.0225749559082893*G0_2_2;
 
3862
    A[855] = -0.112874779541446*G0_0_0 - 0.112874779541446*G0_0_1 - 0.0112874779541446*G0_0_2 - 0.112874779541446*G0_1_0 - 0.112874779541446*G0_1_1 - 0.0112874779541448*G0_1_2 - 0.0112874779541446*G0_2_0 - 0.0112874779541445*G0_2_1 - 0.0451499118165786*G0_2_2;
 
3863
    A[856] = -0.0225749559082892*G0_0_0 - 0.0112874779541448*G0_0_1 - 0.0225749559082891*G0_0_2 - 0.0112874779541444*G0_1_0 - 0.0112874779541443*G0_1_2 - 0.0225749559082891*G0_2_0 - 0.0112874779541447*G0_2_1 - 0.022574955908289*G0_2_2;
 
3864
    A[857] = 0.0169312169312168*G0_0_0 - 0.00282186948853627*G0_0_1 + 0.0169312169312168*G0_0_2 - 0.00282186948853629*G0_1_0 - 0.00282186948853626*G0_1_2 + 0.0169312169312167*G0_2_0 - 0.00282186948853631*G0_2_1 + 0.0169312169312167*G0_2_2;
 
3865
    A[858] = 0.0225749559082894*G0_0_0 - 0.0112874779541444*G0_0_1 + 0.0225749559082894*G0_0_2 - 0.0112874779541444*G0_1_0 - 0.0112874779541444*G0_1_2 + 0.0225749559082893*G0_2_0 - 0.0112874779541443*G0_2_1 + 0.0225749559082892*G0_2_2;
 
3866
    A[859] = -0.0112874779541445*G0_0_1 - 0.0112874779541446*G0_0_2 - 0.0112874779541449*G0_1_0 - 0.0225749559082891*G0_1_1 - 0.022574955908289*G0_1_2 - 0.0112874779541448*G0_2_0 - 0.0225749559082891*G0_2_1 - 0.0225749559082891*G0_2_2;
 
3867
    A[860] = -0.00282186948853642*G0_0_1 - 0.00282186948853641*G0_0_2 - 0.00282186948853601*G0_1_0 + 0.0169312169312167*G0_1_1 + 0.0169312169312166*G0_1_2 - 0.00282186948853621*G0_2_0 + 0.0169312169312167*G0_2_1 + 0.0169312169312166*G0_2_2;
 
3868
    A[861] = -0.0112874779541446*G0_0_1 - 0.0112874779541447*G0_0_2 - 0.0112874779541447*G0_1_0 + 0.0225749559082889*G0_1_1 + 0.0225749559082889*G0_1_2 - 0.0112874779541445*G0_2_0 + 0.0225749559082891*G0_2_1 + 0.022574955908289*G0_2_2;
 
3869
    A[862] = -0.135449735449735*G0_0_0 - 0.067724867724868*G0_0_1 - 0.0451499118165783*G0_0_2 + 0.0677248677248667*G0_1_0 - 0.0677248677248674*G0_1_2 + 0.225749559082892*G0_2_0 + 0.0677248677248673*G0_2_1 - 0.135449735449735*G0_2_2;
 
3870
    A[863] = 0.0677248677248677*G0_0_1 - 0.0677248677248675*G0_0_2 - 0.0677248677248671*G0_1_0 - 0.135449735449735*G0_1_1 - 0.0451499118165782*G0_1_2 + 0.0677248677248683*G0_2_0 + 0.225749559082892*G0_2_1 - 0.135449735449735*G0_2_2;
 
3871
    A[864] = 0.541798941798941*G0_0_0 + 0.27089947089947*G0_0_1 + 0.27089947089947*G0_0_2 + 0.27089947089947*G0_1_0 + 0.54179894179894*G0_1_1 + 0.270899470899469*G0_1_2 + 0.27089947089947*G0_2_0 + 0.270899470899469*G0_2_1 + 0.632098765432097*G0_2_2;
 
3872
    A[865] = 0.135449735449736*G0_0_0 + 0.0677248677248678*G0_0_1 + 0.0902998236331571*G0_0_2 + 0.0677248677248674*G0_1_0 + 0.0451499118165781*G0_1_2 + 0.0902998236331572*G0_2_0 + 0.0451499118165787*G0_2_1 + 0.0451499118165783*G0_2_2;
 
3873
    A[866] = 0.0677248677248674*G0_0_1 - 0.0677248677248676*G0_0_2 + 0.0677248677248671*G0_1_0 + 0.045149911816578*G0_1_2 - 0.0677248677248682*G0_2_0 + 0.0451499118165779*G0_2_1 - 0.135449735449735*G0_2_2;
 
3874
    A[867] = -0.541798941798941*G0_0_0 - 0.270899470899471*G0_0_1 - 0.270899470899471*G0_0_2 - 0.27089947089947*G0_1_0 - 0.135449735449735*G0_1_2 - 0.27089947089947*G0_2_0 - 0.135449735449735*G0_2_1 + 0.0451499118165785*G0_2_2;
 
3875
    A[868] = 0.067724867724868*G0_0_1 + 0.0451499118165787*G0_0_2 + 0.0677248677248672*G0_1_0 + 0.135449735449735*G0_1_1 + 0.0902998236331565*G0_1_2 + 0.0451499118165783*G0_2_0 + 0.0902998236331568*G0_2_1 + 0.0451499118165783*G0_2_2;
 
3876
    A[869] = 0.0677248677248678*G0_0_1 + 0.0451499118165789*G0_0_2 + 0.0677248677248674*G0_1_0 - 0.0677248677248666*G0_1_2 + 0.0451499118165781*G0_2_0 - 0.0677248677248674*G0_2_1 - 0.135449735449735*G0_2_2;
 
3877
    A[870] = -0.27089947089947*G0_0_1 - 0.135449735449736*G0_0_2 - 0.270899470899469*G0_1_0 - 0.54179894179894*G0_1_1 - 0.27089947089947*G0_1_2 - 0.135449735449734*G0_2_0 - 0.27089947089947*G0_2_1 + 0.0451499118165785*G0_2_2;
 
3878
    A[871] = 0.0225749559082893*G0_0_1 + 0.0451499118165786*G0_0_2 + 0.0225749559082886*G0_1_0 + 0.045149911816578*G0_1_2 + 0.045149911816578*G0_2_0 + 0.0451499118165785*G0_2_1 + 0.0902998236331569*G0_2_2;
 
3879
    A[872] = 0.0225749559082893*G0_0_1 + 0.0451499118165783*G0_0_2 + 0.0225749559082892*G0_1_0 + 0.0677248677248673*G0_1_2 + 0.0451499118165783*G0_2_0 + 0.0677248677248679*G0_2_1 + 0.135449735449735*G0_2_2;
 
3880
    A[873] = 0.022574955908289*G0_0_1 + 0.0677248677248674*G0_0_2 + 0.0225749559082891*G0_1_0 + 0.0451499118165781*G0_1_2 + 0.0677248677248676*G0_2_0 + 0.045149911816578*G0_2_1 + 0.135449735449735*G0_2_2;
 
3881
    A[874] = -0.135449735449735*G0_0_1 - 0.316049382716048*G0_0_2 - 0.135449735449734*G0_1_0 - 0.316049382716048*G0_1_2 - 0.316049382716048*G0_2_0 - 0.316049382716049*G0_2_1 - 0.722398589065254*G0_2_2;
 
3882
    A[875] = 0.0493827160493827*G0_0_0 + 0.0493827160493826*G0_0_1 + 0.0493827160493826*G0_0_2 + 0.0423280423280423*G0_1_0 + 0.0423280423280424*G0_1_1 + 0.0423280423280424*G0_1_2 + 0.0423280423280423*G0_2_0 + 0.0423280423280424*G0_2_1 + 0.0423280423280424*G0_2_2;
 
3883
    A[876] = 0.0183421516754849*G0_0_0;
 
3884
    A[877] = -0.00705467372134027*G0_0_1 - 0.0253968253968253*G0_1_1;
 
3885
    A[878] = -0.00705467372134037*G0_0_2 - 0.0253968253968254*G0_2_2;
 
3886
    A[879] = 0.0677248677248673*G0_0_1 + 0.0225749559082891*G0_0_2 + 0.0902998236331565*G0_1_1 + 0.0338624338624337*G0_1_2 + 0.0338624338624335*G0_2_1;
 
3887
    A[880] = 0.0846560846560852*G0_0_1 + 0.0846560846560848*G0_0_2 + 0.0677248677248679*G0_1_1 + 0.0649029982363315*G0_1_2 + 0.0649029982363318*G0_2_1 + 0.0677248677248677*G0_2_2;
 
3888
    A[881] = 0.0225749559082893*G0_0_1 + 0.0677248677248678*G0_0_2 + 0.0338624338624339*G0_1_2 + 0.0338624338624339*G0_2_1 + 0.0902998236331571*G0_2_2;
 
3889
    A[882] = -0.0225749559082893*G0_0_0 - 0.0112874779541448*G0_0_2 - 0.0112874779541446*G0_2_0;
 
3890
    A[883] = 0.0169312169312168*G0_0_0 + 0.019753086419753*G0_0_2 + 0.019753086419753*G0_2_0 + 0.0225749559082894*G0_2_2;
 
3891
    A[884] = 0.0225749559082893*G0_0_0 + 0.0338624338624338*G0_0_2 + 0.0338624338624339*G0_2_0 + 0.0451499118165784*G0_2_2;
 
3892
    A[885] = -0.0225749559082893*G0_0_0 - 0.0112874779541448*G0_0_1 - 0.0112874779541449*G0_1_0;
 
3893
    A[886] = 0.0169312169312168*G0_0_0 + 0.0197530864197531*G0_0_1 + 0.0197530864197533*G0_1_0 + 0.0225749559082894*G0_1_1;
 
3894
    A[887] = 0.0225749559082892*G0_0_0 + 0.0338624338624337*G0_0_1 + 0.0338624338624338*G0_1_0 + 0.0451499118165784*G0_1_1;
 
3895
    A[888] = -0.0677248677248681*G0_0_0 - 0.067724867724868*G0_0_1 - 0.0790123456790122*G0_0_2 - 0.270899470899471*G0_1_0 - 0.270899470899471*G0_1_1 - 0.169312169312169*G0_1_2 - 0.169312169312169*G0_2_0 - 0.169312169312169*G0_2_1 - 0.0677248677248679*G0_2_2;
 
3896
    A[889] = 0.118518518518519*G0_0_0 + 0.118518518518519*G0_0_1 + 0.0253968253968253*G0_0_2 + 0.0677248677248679*G0_1_0 + 0.0677248677248679*G0_1_1 + 0.160846560846561*G0_1_2 + 0.160846560846561*G0_2_0 + 0.160846560846561*G0_2_1 - 0.0169312169312166*G0_2_2;
 
3897
    A[890] = -0.0225749559082894*G0_0_0 - 0.0225749559082893*G0_0_1 + 0.0112874779541445*G0_0_2 - 0.0338624338624342*G0_1_2 - 0.0338624338624339*G0_2_0 - 0.0338624338624339*G0_2_1 + 0.0677248677248675*G0_2_2;
 
3898
    A[891] = -0.0677248677248679*G0_0_0 - 0.0790123456790122*G0_0_1 - 0.0677248677248679*G0_0_2 - 0.169312169312169*G0_1_0 - 0.0677248677248677*G0_1_1 - 0.169312169312169*G0_1_2 - 0.27089947089947*G0_2_0 - 0.169312169312169*G0_2_1 - 0.270899470899471*G0_2_2;
 
3899
    A[892] = 0.118518518518519*G0_0_0 + 0.0253968253968254*G0_0_1 + 0.118518518518519*G0_0_2 + 0.160846560846561*G0_1_0 - 0.0169312169312169*G0_1_1 + 0.160846560846561*G0_1_2 + 0.0677248677248676*G0_2_0 + 0.160846560846561*G0_2_1 + 0.0677248677248675*G0_2_2;
 
3900
    A[893] = -0.0225749559082892*G0_0_0 + 0.0112874779541443*G0_0_1 - 0.0225749559082892*G0_0_2 - 0.0338624338624338*G0_1_0 + 0.0677248677248675*G0_1_1 - 0.0338624338624339*G0_1_2 - 0.0338624338624338*G0_2_1;
 
3901
    A[894] = -0.0451499118165781*G0_0_0 - 0.0338624338624339*G0_0_1 - 0.0338624338624339*G0_0_2 - 0.0338624338624337*G0_1_0 - 0.135449735449735*G0_1_1 - 0.135449735449735*G0_1_2 - 0.0338624338624338*G0_2_0 - 0.135449735449735*G0_2_1 - 0.135449735449735*G0_2_2;
 
3902
    A[895] = 0.0225749559082888*G0_0_0 - 0.0197530864197534*G0_0_1 - 0.0197530864197534*G0_0_2 - 0.0197530864197533*G0_1_0 + 0.0225749559082891*G0_1_1 + 0.0225749559082891*G0_1_2 - 0.0197530864197532*G0_2_0 + 0.0225749559082889*G0_2_1 + 0.0225749559082889*G0_2_2;
 
3903
    A[896] = -0.0451499118165783*G0_0_0 + 0.0112874779541448*G0_0_1 + 0.0112874779541448*G0_0_2 + 0.0112874779541446*G0_1_0 + 0.0112874779541447*G0_2_0;
 
3904
    A[897] = 0.0902998236331565*G0_0_0 + 0.045149911816578*G0_0_1 + 0.0451499118165782*G0_0_2 + 0.0451499118165788*G0_1_0 + 0.0225749559082892*G0_1_2 + 0.0451499118165783*G0_2_0 + 0.0225749559082892*G0_2_1;
 
3905
    A[898] = 0.135449735449736*G0_0_0 + 0.0902998236331577*G0_0_1 + 0.0677248677248677*G0_0_2 + 0.0902998236331572*G0_1_0 + 0.0451499118165791*G0_1_1 + 0.0451499118165788*G0_1_2 + 0.0677248677248677*G0_2_0 + 0.0451499118165786*G0_2_1;
 
3906
    A[899] = 0.135449735449736*G0_0_0 + 0.0677248677248674*G0_0_1 + 0.0902998236331572*G0_0_2 + 0.0677248677248678*G0_1_0 + 0.0451499118165787*G0_1_2 + 0.0902998236331571*G0_2_0 + 0.0451499118165781*G0_2_1 + 0.0451499118165783*G0_2_2;
 
3907
    A[900] = 0.632098765432098*G0_0_0 + 0.361199294532628*G0_0_1 + 0.361199294532628*G0_0_2 + 0.361199294532627*G0_1_0 + 0.632098765432098*G0_1_1 + 0.361199294532627*G0_1_2 + 0.361199294532628*G0_2_0 + 0.361199294532627*G0_2_1 + 0.632098765432098*G0_2_2;
 
3908
    A[901] = -0.135449735449736*G0_0_0 - 0.361199294532627*G0_0_1 - 0.203174603174604*G0_0_2 - 0.090299823633157*G0_1_0 - 0.451499118165784*G0_1_1 - 0.225749559082892*G0_1_2 - 0.0677248677248675*G0_2_0 - 0.225749559082892*G0_2_1 - 0.135449735449735*G0_2_2;
 
3909
    A[902] = -0.135449735449736*G0_0_0 - 0.203174603174604*G0_0_1 - 0.361199294532628*G0_0_2 - 0.0677248677248679*G0_1_0 - 0.135449735449736*G0_1_1 - 0.225749559082892*G0_1_2 - 0.0902998236331571*G0_2_0 - 0.225749559082893*G0_2_1 - 0.451499118165785*G0_2_2;
 
3910
    A[903] = 0.0451499118165783*G0_0_0 + 0.316049382716049*G0_0_1 + 0.180599647266314*G0_0_2 + 0.316049382716049*G0_1_0 + 0.0451499118165785*G0_1_1 + 0.180599647266313*G0_1_2 + 0.180599647266314*G0_2_0 + 0.180599647266314*G0_2_1 + 0.316049382716049*G0_2_2;
 
3911
    A[904] = 0.0451499118165788*G0_0_0 - 0.0451499118165779*G0_0_1 - 0.0451499118165781*G0_1_0 - 0.0225749559082895*G0_1_2 - 0.0225749559082891*G0_2_1 - 0.0451499118165784*G0_2_2;
 
3912
    A[905] = -0.135449735449735*G0_0_0 - 0.0677248677248677*G0_0_1 - 0.180599647266314*G0_0_2 - 0.0677248677248679*G0_1_0 - 0.0451499118165782*G0_1_2 - 0.180599647266314*G0_2_0 - 0.0451499118165783*G0_2_1 - 0.225749559082892*G0_2_2;
 
3913
    A[906] = 0.0451499118165784*G0_0_0 + 0.180599647266314*G0_0_1 + 0.316049382716049*G0_0_2 + 0.180599647266313*G0_1_0 + 0.316049382716049*G0_1_1 + 0.180599647266314*G0_1_2 + 0.316049382716049*G0_2_0 + 0.180599647266313*G0_2_1 + 0.0451499118165783*G0_2_2;
 
3914
    A[907] = 0.0451499118165789*G0_0_0 - 0.0451499118165781*G0_0_2 - 0.0451499118165784*G0_1_1 - 0.022574955908289*G0_1_2 - 0.0451499118165779*G0_2_0 - 0.0225749559082888*G0_2_1;
 
3915
    A[908] = -0.135449735449736*G0_0_0 - 0.180599647266314*G0_0_1 - 0.0677248677248677*G0_0_2 - 0.180599647266314*G0_1_0 - 0.225749559082892*G0_1_1 - 0.0451499118165787*G0_1_2 - 0.0677248677248677*G0_2_0 - 0.0451499118165783*G0_2_1;
 
3916
    A[909] = -0.722398589065254*G0_0_0 - 0.406349206349206*G0_0_1 - 0.406349206349206*G0_0_2 - 0.406349206349206*G0_1_0 - 0.0902998236331573*G0_1_1 - 0.225749559082893*G0_1_2 - 0.406349206349206*G0_2_0 - 0.225749559082892*G0_2_1 - 0.0902998236331569*G0_2_2;
 
3917
    A[910] = -0.0183421516754849*G0_0_0 - 0.0183421516754849*G0_0_1 - 0.0183421516754849*G0_0_2 - 0.0253968253968253*G0_1_0 - 0.0253968253968254*G0_1_1 - 0.0253968253968253*G0_1_2 - 0.0253968253968254*G0_2_0 - 0.0253968253968254*G0_2_1 - 0.0253968253968254*G0_2_2;
 
3918
    A[911] = 0.0183421516754849*G0_0_0;
 
3919
    A[912] = -0.00705467372134026*G0_0_1 + 0.0423280423280424*G0_1_1;
 
3920
    A[913] = -0.00705467372134048*G0_0_2 - 0.0253968253968254*G0_2_2;
 
3921
    A[914] = -0.203174603174603*G0_0_1 - 0.112874779541446*G0_0_2 - 0.270899470899471*G0_1_1 - 0.101587301587302*G0_1_2 - 0.101587301587302*G0_2_1;
 
3922
    A[915] = -0.0507936507936505*G0_0_1 - 0.186243386243386*G0_0_2 + 0.0677248677248675*G0_1_1 - 0.0931216931216932*G0_1_2 - 0.0931216931216928*G0_2_1 - 0.270899470899471*G0_2_2;
 
3923
    A[916] = 0.0225749559082889*G0_0_1 + 0.0677248677248677*G0_0_2 + 0.0338624338624339*G0_1_2 + 0.0338624338624335*G0_2_1 + 0.135449735449735*G0_2_2;
 
3924
    A[917] = -0.0225749559082893*G0_0_0 - 0.0112874779541449*G0_0_2 - 0.0112874779541446*G0_2_0;
 
3925
    A[918] = 0.0169312169312168*G0_0_0 + 0.0197530864197532*G0_0_2 + 0.0197530864197529*G0_2_0 + 0.0225749559082891*G0_2_2;
 
3926
    A[919] = 0.0225749559082888*G0_0_0 + 0.0338624338624334*G0_0_2 + 0.0338624338624335*G0_2_0 + 0.0451499118165781*G0_2_2;
 
3927
    A[920] = -0.0677248677248675*G0_0_0 - 0.0112874779541449*G0_0_1 - 0.0112874779541444*G0_1_0;
 
3928
    A[921] = 0.084656084656085*G0_0_0 + 0.0423280423280429*G0_0_1 + 0.0423280423280424*G0_1_0 + 0.0225749559082895*G0_1_1;
 
3929
    A[922] = -0.112874779541446*G0_0_0 - 0.101587301587302*G0_0_1 - 0.101587301587302*G0_1_0 - 0.135449735449736*G0_1_1;
 
3930
    A[923] = 0.0225749559082894*G0_0_0 + 0.0225749559082894*G0_0_1 + 0.0112874779541445*G0_0_2 + 0.0902998236331572*G0_1_0 + 0.0902998236331572*G0_1_1 + 0.056437389770723*G0_1_2 + 0.0564373897707231*G0_2_0 + 0.0564373897707231*G0_2_1 + 0.0225749559082892*G0_2_2;
 
3931
    A[924] = -0.016931216931217*G0_0_0 - 0.0169312169312171*G0_0_1 + 0.00282186948853624*G0_0_2 + 0.0677248677248675*G0_1_0 + 0.0677248677248675*G0_1_1 + 0.00282186948853603*G0_1_2 + 0.00282186948853603*G0_2_0 + 0.00282186948853601*G0_2_1 + 0.0056437389770724*G0_2_2;
 
3932
    A[925] = -0.0225749559082889*G0_0_0 - 0.0225749559082889*G0_0_1 + 0.0112874779541447*G0_0_2 - 0.0338624338624336*G0_1_2 - 0.0338624338624336*G0_2_0 - 0.0338624338624336*G0_2_1 + 0.0225749559082893*G0_2_2;
 
3933
    A[926] = 0.0677248677248676*G0_0_0 + 0.0564373897707227*G0_0_1 + 0.0677248677248677*G0_0_2 + 0.101587301587301*G0_1_0 + 0.0677248677248674*G0_1_1 + 0.101587301587301*G0_1_2 + 0.135449735449735*G0_2_0 + 0.101587301587301*G0_2_1 + 0.135449735449735*G0_2_2;
 
3934
    A[927] = -0.0846560846560848*G0_0_0 - 0.0423280423280419*G0_0_1 - 0.0846560846560848*G0_0_2 - 0.177777777777778*G0_1_0 - 0.0169312169312168*G0_1_1 - 0.177777777777778*G0_1_2 - 0.27089947089947*G0_2_0 - 0.177777777777777*G0_2_1 - 0.270899470899471*G0_2_2;
 
3935
    A[928] = 0.112874779541447*G0_0_0 + 0.0112874779541445*G0_0_1 + 0.112874779541446*G0_0_2 + 0.101587301587302*G0_1_0 - 0.0677248677248675*G0_1_1 + 0.101587301587302*G0_1_2 + 0.101587301587301*G0_2_1;
 
3936
    A[929] = 0.0112874779541447*G0_0_1 + 0.0112874779541447*G0_0_2 + 0.0112874779541444*G0_1_0 + 0.0451499118165785*G0_1_1 + 0.0451499118165785*G0_1_2 + 0.0112874779541444*G0_2_0 + 0.0451499118165784*G0_2_1 + 0.0451499118165784*G0_2_2;
 
3937
    A[930] = 0.00282186948853641*G0_0_1 + 0.00282186948853633*G0_0_2 + 0.00282186948853626*G0_1_0 + 0.0225749559082893*G0_1_1 + 0.0225749559082893*G0_1_2 + 0.00282186948853644*G0_2_0 + 0.0225749559082894*G0_2_1 + 0.0225749559082894*G0_2_2;
 
3938
    A[931] = 0.0112874779541449*G0_0_1 + 0.0112874779541449*G0_0_2 + 0.0112874779541448*G0_1_0 + 0.0112874779541445*G0_2_0;
 
3939
    A[932] = 0.135449735449735*G0_0_0 + 0.045149911816578*G0_0_1 + 0.0677248677248678*G0_0_2 + 0.0451499118165782*G0_1_0 + 0.0225749559082894*G0_1_2 + 0.0677248677248672*G0_2_0 + 0.0225749559082889*G0_2_1;
 
3940
    A[933] = -0.541798941798942*G0_0_0 - 0.270899470899471*G0_0_1 - 0.270899470899471*G0_0_2 - 0.270899470899471*G0_1_0 + 0.0451499118165778*G0_1_1 - 0.135449735449736*G0_1_2 - 0.270899470899471*G0_2_0 - 0.135449735449735*G0_2_1;
 
3941
    A[934] = 0.0677248677248671*G0_0_1 - 0.0677248677248682*G0_0_2 + 0.0677248677248674*G0_1_0 + 0.0451499118165779*G0_1_2 - 0.0677248677248676*G0_2_0 + 0.045149911816578*G0_2_1 - 0.135449735449735*G0_2_2;
 
3942
    A[935] = -0.135449735449736*G0_0_0 - 0.090299823633157*G0_0_1 - 0.0677248677248675*G0_0_2 - 0.361199294532627*G0_1_0 - 0.451499118165784*G0_1_1 - 0.225749559082892*G0_1_2 - 0.203174603174604*G0_2_0 - 0.225749559082892*G0_2_1 - 0.135449735449735*G0_2_2;
 
3943
    A[936] = 0.541798941798942*G0_0_0 + 0.270899470899471*G0_0_1 + 0.270899470899471*G0_0_2 + 0.270899470899471*G0_1_0 + 0.632098765432098*G0_1_1 + 0.270899470899471*G0_1_2 + 0.270899470899471*G0_2_0 + 0.270899470899471*G0_2_1 + 0.541798941798941*G0_2_2;
 
3944
    A[937] = 0.0677248677248676*G0_0_1 - 0.0677248677248678*G0_0_2 - 0.0677248677248673*G0_1_0 - 0.135449735449735*G0_1_1 + 0.0902998236331566*G0_1_2 + 0.0677248677248677*G0_2_0 + 0.0902998236331568*G0_2_1 - 0.135449735449735*G0_2_2;
 
3945
    A[938] = -0.0451499118165782*G0_0_1 - 0.0225749559082893*G0_0_2 - 0.0451499118165783*G0_1_0 + 0.0451499118165789*G0_1_1 - 0.0225749559082893*G0_2_0 - 0.0451499118165784*G0_2_2;
 
3946
    A[939] = -0.0451499118165781*G0_0_1 - 0.0225749559082893*G0_0_2 - 0.0451499118165788*G0_1_0 - 0.022574955908289*G0_1_2 - 0.0225749559082892*G0_2_0 - 0.0225749559082889*G0_2_1 - 0.0451499118165784*G0_2_2;
 
3947
    A[940] = -0.0677248677248669*G0_0_1 - 0.022574955908289*G0_0_2 - 0.0677248677248674*G0_1_0 - 0.0451499118165787*G0_1_2 - 0.0225749559082889*G0_2_0 - 0.0451499118165779*G0_2_1 - 0.045149911816578*G0_2_2;
 
3948
    A[941] = -0.0451499118165785*G0_0_1 - 0.0677248677248675*G0_0_2 - 0.0451499118165779*G0_1_0 - 0.225749559082892*G0_1_1 - 0.180599647266313*G0_1_2 - 0.0677248677248674*G0_2_0 - 0.180599647266314*G0_2_1 - 0.135449735449736*G0_2_2;
 
3949
    A[942] = -0.0451499118165792*G0_0_1 - 0.0677248677248677*G0_0_2 - 0.0451499118165792*G0_1_0 - 0.0451499118165789*G0_1_1 - 0.0225749559082894*G0_1_2 - 0.0677248677248678*G0_2_0 - 0.0225749559082894*G0_2_1;
 
3950
    A[943] = 0.135449735449736*G0_0_1 + 0.270899470899471*G0_0_2 + 0.135449735449735*G0_1_0 + 0.316049382716049*G0_1_1 + 0.135449735449735*G0_1_2 + 0.27089947089947*G0_2_0 + 0.135449735449736*G0_2_1;
 
3951
    A[944] = 0.316049382716049*G0_0_1 + 0.135449735449736*G0_0_2 + 0.316049382716049*G0_1_0 - 0.0902998236331571*G0_1_1 + 0.135449735449735*G0_1_2 + 0.135449735449736*G0_2_0 + 0.135449735449736*G0_2_1 + 0.270899470899471*G0_2_2;
 
3952
    A[945] = -0.0183421516754851*G0_0_0 - 0.0183421516754851*G0_0_1 - 0.0183421516754851*G0_0_2 - 0.0253968253968254*G0_1_0 - 0.0253968253968254*G0_1_1 - 0.0253968253968254*G0_1_2 - 0.0253968253968254*G0_2_0 - 0.0253968253968254*G0_2_1 - 0.0253968253968254*G0_2_2;
 
3953
    A[946] = 0.0183421516754849*G0_0_0;
 
3954
    A[947] = -0.00705467372134038*G0_0_1 - 0.0253968253968254*G0_1_1;
 
3955
    A[948] = -0.00705467372134032*G0_0_2 + 0.0423280423280424*G0_2_2;
 
3956
    A[949] = 0.0677248677248677*G0_0_1 + 0.0225749559082893*G0_0_2 + 0.135449735449735*G0_1_1 + 0.0338624338624339*G0_1_2 + 0.0338624338624343*G0_2_1;
 
3957
    A[950] = -0.186243386243386*G0_0_1 - 0.0507936507936506*G0_0_2 - 0.270899470899471*G0_1_1 - 0.093121693121693*G0_1_2 - 0.0931216931216934*G0_2_1 + 0.0677248677248677*G0_2_2;
 
3958
    A[951] = -0.112874779541446*G0_0_1 - 0.203174603174603*G0_0_2 - 0.101587301587302*G0_1_2 - 0.101587301587301*G0_2_1 - 0.270899470899471*G0_2_2;
 
3959
    A[952] = -0.0677248677248676*G0_0_0 - 0.0112874779541446*G0_0_2 - 0.0112874779541447*G0_2_0;
 
3960
    A[953] = 0.0846560846560845*G0_0_0 + 0.0423280423280424*G0_0_2 + 0.0423280423280424*G0_2_0 + 0.0225749559082894*G0_2_2;
 
3961
    A[954] = -0.112874779541446*G0_0_0 - 0.101587301587302*G0_0_2 - 0.101587301587301*G0_2_0 - 0.135449735449735*G0_2_2;
 
3962
    A[955] = -0.0225749559082891*G0_0_0 - 0.0112874779541447*G0_0_1 - 0.0112874779541448*G0_1_0;
 
3963
    A[956] = 0.0169312169312167*G0_0_0 + 0.0197530864197531*G0_0_1 + 0.0197530864197531*G0_1_0 + 0.0225749559082893*G0_1_1;
 
3964
    A[957] = 0.0225749559082893*G0_0_0 + 0.0338624338624337*G0_0_1 + 0.0338624338624339*G0_1_0 + 0.0451499118165783*G0_1_1;
 
3965
    A[958] = 0.0677248677248677*G0_0_0 + 0.0677248677248677*G0_0_1 + 0.0564373897707234*G0_0_2 + 0.135449735449735*G0_1_0 + 0.135449735449735*G0_1_1 + 0.101587301587302*G0_1_2 + 0.101587301587302*G0_2_0 + 0.101587301587302*G0_2_1 + 0.0677248677248678*G0_2_2;
 
3966
    A[959] = -0.0846560846560846*G0_0_0 - 0.0846560846560845*G0_0_1 - 0.0423280423280423*G0_0_2 - 0.270899470899471*G0_1_0 - 0.270899470899471*G0_1_1 - 0.177777777777778*G0_1_2 - 0.177777777777778*G0_2_0 - 0.177777777777778*G0_2_1 - 0.0169312169312171*G0_2_2;
 
3967
    A[960] = 0.112874779541446*G0_0_0 + 0.112874779541446*G0_0_1 + 0.0112874779541446*G0_0_2 + 0.101587301587301*G0_1_2 + 0.101587301587302*G0_2_0 + 0.101587301587301*G0_2_1 - 0.0677248677248677*G0_2_2;
 
3968
    A[961] = 0.0225749559082893*G0_0_0 + 0.0112874779541448*G0_0_1 + 0.0225749559082892*G0_0_2 + 0.0564373897707231*G0_1_0 + 0.0225749559082893*G0_1_1 + 0.0564373897707232*G0_1_2 + 0.090299823633157*G0_2_0 + 0.0564373897707232*G0_2_1 + 0.090299823633157*G0_2_2;
 
3969
    A[962] = -0.0169312169312168*G0_0_0 + 0.00282186948853626*G0_0_1 - 0.0169312169312169*G0_0_2 + 0.00282186948853631*G0_1_0 + 0.00564373897707252*G0_1_1 + 0.00282186948853633*G0_1_2 + 0.0677248677248677*G0_2_0 + 0.00282186948853616*G0_2_1 + 0.0677248677248677*G0_2_2;
 
3970
    A[963] = -0.0225749559082893*G0_0_0 + 0.0112874779541444*G0_0_1 - 0.0225749559082893*G0_0_2 - 0.0338624338624339*G0_1_0 + 0.0225749559082891*G0_1_1 - 0.0338624338624339*G0_1_2 - 0.0338624338624337*G0_2_1;
 
3971
    A[964] = 0.0112874779541446*G0_0_1 + 0.0112874779541447*G0_0_2 + 0.0112874779541446*G0_1_0 + 0.0451499118165784*G0_1_1 + 0.0451499118165785*G0_1_2 + 0.0112874779541447*G0_2_0 + 0.0451499118165785*G0_2_1 + 0.0451499118165786*G0_2_2;
 
3972
    A[965] = 0.00282186948853636*G0_0_1 + 0.00282186948853635*G0_0_2 + 0.0028218694885364*G0_1_0 + 0.0225749559082894*G0_1_1 + 0.0225749559082894*G0_1_2 + 0.00282186948853618*G0_2_0 + 0.0225749559082893*G0_2_1 + 0.0225749559082893*G0_2_2;
 
3973
    A[966] = 0.0112874779541447*G0_0_1 + 0.0112874779541447*G0_0_2 + 0.0112874779541444*G0_1_0 + 0.0112874779541446*G0_2_0;
 
3974
    A[967] = 0.135449735449735*G0_0_0 + 0.0677248677248678*G0_0_1 + 0.0451499118165781*G0_0_2 + 0.0677248677248676*G0_1_0 + 0.022574955908289*G0_1_2 + 0.0451499118165784*G0_2_0 + 0.0225749559082892*G0_2_1;
 
3975
    A[968] = -0.067724867724868*G0_0_1 + 0.0677248677248673*G0_0_2 - 0.0677248677248677*G0_1_0 - 0.135449735449735*G0_1_1 + 0.0451499118165786*G0_1_2 + 0.0677248677248678*G0_2_0 + 0.0451499118165781*G0_2_1;
 
3976
    A[969] = -0.541798941798941*G0_0_0 - 0.27089947089947*G0_0_1 - 0.27089947089947*G0_0_2 - 0.270899470899471*G0_1_0 - 0.135449735449735*G0_1_2 - 0.270899470899471*G0_2_0 - 0.135449735449735*G0_2_1 + 0.0451499118165785*G0_2_2;
 
3977
    A[970] = -0.135449735449736*G0_0_0 - 0.0677248677248679*G0_0_1 - 0.0902998236331571*G0_0_2 - 0.203174603174603*G0_1_0 - 0.135449735449736*G0_1_1 - 0.225749559082893*G0_1_2 - 0.361199294532628*G0_2_0 - 0.225749559082892*G0_2_1 - 0.451499118165785*G0_2_2;
 
3978
    A[971] = -0.0677248677248673*G0_0_1 + 0.0677248677248677*G0_0_2 + 0.0677248677248676*G0_1_0 - 0.135449735449735*G0_1_1 + 0.0902998236331568*G0_1_2 - 0.0677248677248678*G0_2_0 + 0.0902998236331566*G0_2_1 - 0.135449735449735*G0_2_2;
 
3979
    A[972] = 0.541798941798941*G0_0_0 + 0.270899470899471*G0_0_1 + 0.270899470899471*G0_0_2 + 0.270899470899471*G0_1_0 + 0.541798941798942*G0_1_1 + 0.270899470899471*G0_1_2 + 0.270899470899471*G0_2_0 + 0.270899470899471*G0_2_1 + 0.632098765432098*G0_2_2;
 
3980
    A[973] = -0.0677248677248681*G0_0_1 - 0.0451499118165787*G0_0_2 - 0.0677248677248679*G0_1_0 - 0.135449735449736*G0_1_1 - 0.180599647266314*G0_1_2 - 0.0451499118165784*G0_2_0 - 0.180599647266314*G0_2_1 - 0.225749559082892*G0_2_2;
 
3981
    A[974] = -0.0677248677248676*G0_0_1 - 0.0451499118165788*G0_0_2 - 0.0677248677248674*G0_1_0 - 0.0225749559082892*G0_1_2 - 0.0451499118165785*G0_2_0 - 0.0225749559082893*G0_2_1 - 0.0451499118165787*G0_2_2;
 
3982
    A[975] = 0.27089947089947*G0_0_1 + 0.135449735449736*G0_0_2 + 0.270899470899471*G0_1_0 + 0.135449735449736*G0_1_2 + 0.135449735449735*G0_2_0 + 0.135449735449735*G0_2_1 + 0.316049382716049*G0_2_2;
 
3983
    A[976] = -0.0225749559082894*G0_0_1 - 0.0451499118165787*G0_0_2 - 0.0225749559082895*G0_1_0 - 0.0451499118165786*G0_1_1 - 0.0451499118165785*G0_2_0 + 0.0451499118165785*G0_2_2;
 
3984
    A[977] = -0.0225749559082892*G0_0_1 - 0.0451499118165782*G0_0_2 - 0.0225749559082889*G0_1_0 - 0.0451499118165785*G0_1_1 - 0.022574955908289*G0_1_2 - 0.0451499118165784*G0_2_0 - 0.0225749559082892*G0_2_1;
 
3985
    A[978] = -0.0225749559082889*G0_0_1 - 0.0677248677248671*G0_0_2 - 0.0225749559082893*G0_1_0 - 0.0451499118165782*G0_1_1 - 0.0451499118165785*G0_1_2 - 0.0677248677248675*G0_2_0 - 0.0451499118165786*G0_2_1;
 
3986
    A[979] = 0.135449735449736*G0_0_1 + 0.316049382716049*G0_0_2 + 0.135449735449736*G0_1_0 + 0.270899470899471*G0_1_1 + 0.135449735449736*G0_1_2 + 0.316049382716049*G0_2_0 + 0.135449735449736*G0_2_1 - 0.0902998236331567*G0_2_2;
 
3987
    A[980] = 0.0423280423280423*G0_0_0 + 0.0423280423280424*G0_0_1 + 0.0423280423280423*G0_0_2 + 0.0493827160493827*G0_1_0 + 0.0493827160493826*G0_1_1 + 0.0493827160493826*G0_1_2 + 0.0423280423280422*G0_2_0 + 0.0423280423280422*G0_2_1 + 0.0423280423280422*G0_2_2;
 
3988
    A[981] = -0.0253968253968253*G0_0_0 - 0.00705467372134032*G0_1_0;
 
3989
    A[982] = 0.0183421516754851*G0_1_1;
 
3990
    A[983] = -0.00705467372134043*G0_1_2 - 0.0253968253968254*G0_2_2;
 
3991
    A[984] = -0.0225749559082897*G0_1_1 - 0.0112874779541449*G0_1_2 - 0.0112874779541448*G0_2_1;
 
3992
    A[985] = 0.0169312169312174*G0_1_1 + 0.0197530864197534*G0_1_2 + 0.0197530864197532*G0_2_1 + 0.0225749559082894*G0_2_2;
 
3993
    A[986] = 0.0225749559082893*G0_1_1 + 0.033862433862434*G0_1_2 + 0.033862433862434*G0_2_1 + 0.0451499118165787*G0_2_2;
 
3994
    A[987] = 0.0902998236331566*G0_0_0 + 0.0338624338624337*G0_0_2 + 0.0677248677248673*G0_1_0 + 0.0225749559082891*G0_1_2 + 0.0338624338624339*G0_2_0;
 
3995
    A[988] = 0.0677248677248674*G0_0_0 + 0.0649029982363313*G0_0_2 + 0.0846560846560842*G0_1_0 + 0.0846560846560839*G0_1_2 + 0.0649029982363311*G0_2_0 + 0.0677248677248672*G0_2_2;
 
3996
    A[989] = 0.0338624338624337*G0_0_2 + 0.0225749559082892*G0_1_0 + 0.0677248677248677*G0_1_2 + 0.033862433862434*G0_2_0 + 0.090299823633157*G0_2_2;
 
3997
    A[990] = 0.0451499118165781*G0_0_0 + 0.0338624338624336*G0_0_1 + 0.0338624338624336*G0_1_0 + 0.0225749559082891*G0_1_1;
 
3998
    A[991] = 0.0225749559082894*G0_0_0 + 0.019753086419753*G0_0_1 + 0.0197530864197531*G0_1_0 + 0.0169312169312168*G0_1_1;
 
3999
    A[992] = -0.0112874779541447*G0_0_1 - 0.0112874779541448*G0_1_0 - 0.0225749559082896*G0_1_1;
 
4000
    A[993] = -0.270899470899471*G0_0_0 - 0.270899470899471*G0_0_1 - 0.169312169312169*G0_0_2 - 0.0677248677248677*G0_1_0 - 0.0677248677248679*G0_1_1 - 0.0790123456790123*G0_1_2 - 0.169312169312169*G0_2_0 - 0.169312169312169*G0_2_1 - 0.0677248677248677*G0_2_2;
 
4001
    A[994] = 0.0677248677248677*G0_0_0 + 0.0677248677248678*G0_0_1 + 0.160846560846561*G0_0_2 + 0.118518518518519*G0_1_0 + 0.118518518518519*G0_1_1 + 0.0253968253968254*G0_1_2 + 0.160846560846561*G0_2_0 + 0.160846560846561*G0_2_1 - 0.0169312169312168*G0_2_2;
 
4002
    A[995] = -0.0338624338624341*G0_0_2 - 0.0225749559082893*G0_1_0 - 0.0225749559082893*G0_1_1 + 0.0112874779541445*G0_1_2 - 0.033862433862434*G0_2_0 - 0.033862433862434*G0_2_1 + 0.0677248677248675*G0_2_2;
 
4003
    A[996] = -0.135449735449735*G0_0_0 - 0.0338624338624339*G0_0_1 - 0.135449735449735*G0_0_2 - 0.0338624338624339*G0_1_0 - 0.0451499118165785*G0_1_1 - 0.0338624338624339*G0_1_2 - 0.135449735449735*G0_2_0 - 0.0338624338624337*G0_2_1 - 0.135449735449735*G0_2_2;
 
4004
    A[997] = 0.0225749559082894*G0_0_0 - 0.0197530864197529*G0_0_1 + 0.0225749559082893*G0_0_2 - 0.0197530864197529*G0_1_0 + 0.0225749559082894*G0_1_1 - 0.0197530864197529*G0_1_2 + 0.022574955908289*G0_2_0 - 0.0197530864197532*G0_2_1 + 0.0225749559082889*G0_2_2;
 
4005
    A[998] = 0.0112874779541444*G0_0_1 + 0.0112874779541448*G0_1_0 - 0.0451499118165787*G0_1_1 + 0.0112874779541448*G0_1_2 + 0.0112874779541448*G0_2_1;
 
4006
    A[999] = -0.0677248677248676*G0_0_0 - 0.169312169312169*G0_0_1 - 0.169312169312169*G0_0_2 - 0.0790123456790121*G0_1_0 - 0.0677248677248675*G0_1_1 - 0.0677248677248676*G0_1_2 - 0.169312169312169*G0_2_0 - 0.27089947089947*G0_2_1 - 0.27089947089947*G0_2_2;
 
4007
    A[1000] = -0.016931216931217*G0_0_0 + 0.16084656084656*G0_0_1 + 0.16084656084656*G0_0_2 + 0.0253968253968252*G0_1_0 + 0.118518518518518*G0_1_1 + 0.118518518518518*G0_1_2 + 0.16084656084656*G0_2_0 + 0.0677248677248674*G0_2_1 + 0.0677248677248674*G0_2_2;
 
4008
    A[1001] = 0.0677248677248677*G0_0_0 - 0.0338624338624337*G0_0_1 - 0.0338624338624337*G0_0_2 + 0.0112874779541448*G0_1_0 - 0.0225749559082892*G0_1_1 - 0.0225749559082892*G0_1_2 - 0.0338624338624337*G0_2_0;
 
4009
    A[1002] = 0.0451499118165783*G0_0_0 + 0.0902998236331563*G0_0_1 + 0.0451499118165783*G0_0_2 + 0.0902998236331563*G0_1_0 + 0.135449735449734*G0_1_1 + 0.0677248677248674*G0_1_2 + 0.0451499118165779*G0_2_0 + 0.0677248677248672*G0_2_1;
 
4010
    A[1003] = 0.0451499118165786*G0_0_1 + 0.0225749559082891*G0_0_2 + 0.0451499118165783*G0_1_0 + 0.0902998236331573*G0_1_1 + 0.0451499118165779*G0_1_2 + 0.0225749559082894*G0_2_0 + 0.0451499118165786*G0_2_1;
 
4011
    A[1004] = 0.0677248677248672*G0_0_1 + 0.0451499118165783*G0_0_2 + 0.067724867724868*G0_1_0 + 0.135449735449735*G0_1_1 + 0.0902998236331568*G0_1_2 + 0.0451499118165787*G0_2_0 + 0.0902998236331565*G0_2_1 + 0.0451499118165783*G0_2_2;
 
4012
    A[1005] = 0.0451499118165783*G0_0_0 + 0.316049382716049*G0_0_1 + 0.180599647266314*G0_0_2 + 0.316049382716049*G0_1_0 + 0.0451499118165785*G0_1_1 + 0.180599647266314*G0_1_2 + 0.180599647266314*G0_2_0 + 0.180599647266313*G0_2_1 + 0.316049382716049*G0_2_2;
 
4013
    A[1006] = -0.0451499118165783*G0_0_1 - 0.0225749559082893*G0_0_2 - 0.0451499118165782*G0_1_0 + 0.0451499118165789*G0_1_1 - 0.0225749559082893*G0_2_0 - 0.0451499118165784*G0_2_2;
 
4014
    A[1007] = -0.0677248677248679*G0_0_1 - 0.0451499118165784*G0_0_2 - 0.0677248677248681*G0_1_0 - 0.135449735449736*G0_1_1 - 0.180599647266314*G0_1_2 - 0.0451499118165787*G0_2_0 - 0.180599647266314*G0_2_1 - 0.225749559082892*G0_2_2;
 
4015
    A[1008] = 0.632098765432098*G0_0_0 + 0.361199294532627*G0_0_1 + 0.361199294532627*G0_0_2 + 0.361199294532627*G0_1_0 + 0.632098765432097*G0_1_1 + 0.361199294532627*G0_1_2 + 0.361199294532627*G0_2_0 + 0.361199294532627*G0_2_1 + 0.632098765432098*G0_2_2;
 
4016
    A[1009] = -0.451499118165784*G0_0_0 - 0.0902998236331565*G0_0_1 - 0.225749559082892*G0_0_2 - 0.361199294532627*G0_1_0 - 0.135449735449734*G0_1_1 - 0.203174603174602*G0_1_2 - 0.225749559082892*G0_2_0 - 0.0677248677248672*G0_2_1 - 0.135449735449735*G0_2_2;
 
4017
    A[1010] = -0.135449735449735*G0_0_0 - 0.0677248677248673*G0_0_1 - 0.225749559082892*G0_0_2 - 0.203174603174603*G0_1_0 - 0.135449735449735*G0_1_1 - 0.361199294532627*G0_1_2 - 0.225749559082892*G0_2_0 - 0.0902998236331565*G0_2_1 - 0.451499118165784*G0_2_2;
 
4018
    A[1011] = 0.316049382716048*G0_0_0 + 0.180599647266313*G0_0_1 + 0.180599647266313*G0_0_2 + 0.180599647266313*G0_1_0 + 0.0451499118165783*G0_1_1 + 0.316049382716048*G0_1_2 + 0.180599647266314*G0_2_0 + 0.316049382716048*G0_2_1 + 0.0451499118165781*G0_2_2;
 
4019
    A[1012] = -0.225749559082891*G0_0_0 - 0.180599647266313*G0_0_1 - 0.0451499118165781*G0_0_2 - 0.180599647266313*G0_1_0 - 0.135449735449735*G0_1_1 - 0.0677248677248672*G0_1_2 - 0.0451499118165781*G0_2_0 - 0.0677248677248669*G0_2_1;
 
4020
    A[1013] = -0.0451499118165786*G0_0_0 - 0.0225749559082892*G0_0_2 + 0.0451499118165787*G0_1_1 - 0.0451499118165782*G0_1_2 - 0.022574955908289*G0_2_0 - 0.0451499118165783*G0_2_1;
 
4021
    A[1014] = -0.0902998236331568*G0_0_0 - 0.406349206349205*G0_0_1 - 0.225749559082892*G0_0_2 - 0.406349206349205*G0_1_0 - 0.722398589065255*G0_1_1 - 0.406349206349205*G0_1_2 - 0.225749559082892*G0_2_0 - 0.406349206349206*G0_2_1 - 0.0902998236331566*G0_2_2;
 
4022
    A[1015] = -0.0253968253968253*G0_0_0 - 0.0253968253968253*G0_0_1 - 0.0253968253968253*G0_0_2 - 0.0183421516754849*G0_1_0 - 0.0183421516754849*G0_1_1 - 0.0183421516754849*G0_1_2 - 0.0253968253968254*G0_2_0 - 0.0253968253968254*G0_2_1 - 0.0253968253968254*G0_2_2;
 
4023
    A[1016] = 0.0423280423280422*G0_0_0 - 0.00705467372134039*G0_1_0;
 
4024
    A[1017] = 0.018342151675485*G0_1_1;
 
4025
    A[1018] = -0.00705467372134034*G0_1_2 - 0.0253968253968253*G0_2_2;
 
4026
    A[1019] = -0.0225749559082892*G0_1_1 - 0.0112874779541447*G0_1_2 - 0.0112874779541445*G0_2_1;
 
4027
    A[1020] = 0.0169312169312168*G0_1_1 + 0.0197530864197531*G0_1_2 + 0.0197530864197529*G0_2_1 + 0.0225749559082891*G0_2_2;
 
4028
    A[1021] = 0.0225749559082893*G0_1_1 + 0.0338624338624338*G0_1_2 + 0.0338624338624341*G0_2_1 + 0.0451499118165786*G0_2_2;
 
4029
    A[1022] = -0.27089947089947*G0_0_0 - 0.101587301587301*G0_0_2 - 0.203174603174603*G0_1_0 - 0.112874779541446*G0_1_2 - 0.101587301587301*G0_2_0;
 
4030
    A[1023] = 0.0677248677248675*G0_0_0 - 0.0931216931216929*G0_0_2 - 0.0507936507936507*G0_1_0 - 0.186243386243386*G0_1_2 - 0.0931216931216926*G0_2_0 - 0.27089947089947*G0_2_2;
 
4031
    A[1024] = 0.0338624338624338*G0_0_2 + 0.0225749559082893*G0_1_0 + 0.0677248677248676*G0_1_2 + 0.033862433862434*G0_2_0 + 0.135449735449736*G0_2_2;
 
4032
    A[1025] = -0.135449735449735*G0_0_0 - 0.101587301587301*G0_0_1 - 0.101587301587301*G0_1_0 - 0.112874779541446*G0_1_1;
 
4033
    A[1026] = 0.0225749559082889*G0_0_0 + 0.0423280423280424*G0_0_1 + 0.042328042328042*G0_1_0 + 0.0846560846560846*G0_1_1;
 
4034
    A[1027] = -0.0112874779541445*G0_0_1 - 0.0112874779541447*G0_1_0 - 0.0677248677248678*G0_1_1;
 
4035
    A[1028] = 0.0902998236331568*G0_0_0 + 0.090299823633157*G0_0_1 + 0.056437389770723*G0_0_2 + 0.0225749559082895*G0_1_0 + 0.0225749559082895*G0_1_1 + 0.0112874779541447*G0_1_2 + 0.056437389770723*G0_2_0 + 0.056437389770723*G0_2_1 + 0.0225749559082894*G0_2_2;
 
4036
    A[1029] = 0.0677248677248676*G0_0_0 + 0.0677248677248675*G0_0_1 + 0.002821869488536*G0_0_2 - 0.016931216931217*G0_1_0 - 0.016931216931217*G0_1_1 + 0.00282186948853582*G0_1_2 + 0.00282186948853642*G0_2_0 + 0.0028218694885364*G0_2_1 + 0.00564373897707204*G0_2_2;
 
4037
    A[1030] = -0.0338624338624337*G0_0_2 - 0.0225749559082893*G0_1_0 - 0.0225749559082892*G0_1_1 + 0.0112874779541448*G0_1_2 - 0.033862433862434*G0_2_0 - 0.033862433862434*G0_2_1 + 0.0225749559082894*G0_2_2;
 
4038
    A[1031] = 0.0451499118165784*G0_0_0 + 0.0112874779541445*G0_0_1 + 0.0451499118165784*G0_0_2 + 0.0112874779541448*G0_1_0 + 0.0112874779541448*G0_1_2 + 0.0451499118165784*G0_2_0 + 0.0112874779541448*G0_2_1 + 0.0451499118165783*G0_2_2;
 
4039
    A[1032] = 0.022574955908289*G0_0_0 + 0.0028218694885361*G0_0_1 + 0.0225749559082891*G0_0_2 + 0.00282186948853588*G0_1_0 + 0.00282186948853585*G0_1_2 + 0.0225749559082891*G0_2_0 + 0.00282186948853573*G0_2_1 + 0.0225749559082891*G0_2_2;
 
4040
    A[1033] = 0.0112874779541448*G0_0_1 + 0.0112874779541448*G0_1_0 + 0.0112874779541447*G0_1_2 + 0.0112874779541449*G0_2_1;
 
4041
    A[1034] = 0.0677248677248675*G0_0_0 + 0.101587301587301*G0_0_1 + 0.101587301587301*G0_0_2 + 0.0564373897707228*G0_1_0 + 0.0677248677248675*G0_1_1 + 0.0677248677248676*G0_1_2 + 0.101587301587301*G0_2_0 + 0.135449735449735*G0_2_1 + 0.135449735449735*G0_2_2;
 
4042
    A[1035] = -0.0169312169312169*G0_0_0 - 0.177777777777777*G0_0_1 - 0.177777777777777*G0_0_2 - 0.042328042328042*G0_1_0 - 0.0846560846560845*G0_1_1 - 0.0846560846560845*G0_1_2 - 0.177777777777777*G0_2_0 - 0.27089947089947*G0_2_1 - 0.27089947089947*G0_2_2;
 
4043
    A[1036] = -0.0677248677248676*G0_0_0 + 0.101587301587301*G0_0_1 + 0.101587301587301*G0_0_2 + 0.0112874779541445*G0_1_0 + 0.112874779541446*G0_1_1 + 0.112874779541446*G0_1_2 + 0.101587301587301*G0_2_0;
 
4044
    A[1037] = 0.0451499118165784*G0_0_0 - 0.27089947089947*G0_0_1 - 0.135449735449735*G0_0_2 - 0.270899470899471*G0_1_0 - 0.541798941798941*G0_1_1 - 0.27089947089947*G0_1_2 - 0.135449735449735*G0_2_0 - 0.27089947089947*G0_2_1;
 
4045
    A[1038] = 0.0451499118165782*G0_0_1 + 0.0225749559082892*G0_0_2 + 0.045149911816578*G0_1_0 + 0.135449735449735*G0_1_1 + 0.067724867724867*G0_1_2 + 0.0225749559082892*G0_2_0 + 0.0677248677248676*G0_2_1;
 
4046
    A[1039] = 0.0677248677248674*G0_0_1 + 0.0451499118165781*G0_0_2 + 0.0677248677248678*G0_1_0 - 0.0677248677248675*G0_1_2 + 0.0451499118165789*G0_2_0 - 0.0677248677248666*G0_2_1 - 0.135449735449735*G0_2_2;
 
4047
    A[1040] = 0.0451499118165788*G0_0_0 - 0.0451499118165781*G0_0_1 - 0.0451499118165779*G0_1_0 - 0.0225749559082891*G0_1_2 - 0.0225749559082895*G0_2_1 - 0.0451499118165784*G0_2_2;
 
4048
    A[1041] = -0.0451499118165788*G0_0_1 - 0.0225749559082892*G0_0_2 - 0.0451499118165781*G0_1_0 - 0.0225749559082889*G0_1_2 - 0.0225749559082893*G0_2_0 - 0.022574955908289*G0_2_1 - 0.0451499118165784*G0_2_2;
 
4049
    A[1042] = -0.0677248677248674*G0_0_1 - 0.0451499118165785*G0_0_2 - 0.0677248677248676*G0_1_0 - 0.0225749559082893*G0_1_2 - 0.0451499118165788*G0_2_0 - 0.0225749559082892*G0_2_1 - 0.0451499118165787*G0_2_2;
 
4050
    A[1043] = -0.451499118165784*G0_0_0 - 0.361199294532627*G0_0_1 - 0.225749559082892*G0_0_2 - 0.0902998236331565*G0_1_0 - 0.135449735449734*G0_1_1 - 0.0677248677248672*G0_1_2 - 0.225749559082892*G0_2_0 - 0.203174603174602*G0_2_1 - 0.135449735449735*G0_2_2;
 
4051
    A[1044] = 0.632098765432097*G0_0_0 + 0.27089947089947*G0_0_1 + 0.27089947089947*G0_0_2 + 0.27089947089947*G0_1_0 + 0.541798941798941*G0_1_1 + 0.27089947089947*G0_1_2 + 0.27089947089947*G0_2_0 + 0.27089947089947*G0_2_1 + 0.54179894179894*G0_2_2;
 
4052
    A[1045] = -0.135449735449735*G0_0_0 - 0.0677248677248673*G0_0_1 + 0.0902998236331568*G0_0_2 + 0.0677248677248677*G0_1_0 - 0.067724867724868*G0_1_2 + 0.0902998236331563*G0_2_0 + 0.0677248677248667*G0_2_1 - 0.135449735449736*G0_2_2;
 
4053
    A[1046] = -0.225749559082891*G0_0_0 - 0.0451499118165779*G0_0_1 - 0.180599647266313*G0_0_2 - 0.0451499118165779*G0_1_0 - 0.0677248677248669*G0_1_2 - 0.180599647266313*G0_2_0 - 0.0677248677248671*G0_2_1 - 0.135449735449735*G0_2_2;
 
4054
    A[1047] = 0.316049382716048*G0_0_0 + 0.135449735449734*G0_0_1 + 0.135449735449734*G0_0_2 + 0.135449735449734*G0_1_0 + 0.27089947089947*G0_1_2 + 0.135449735449735*G0_2_0 + 0.27089947089947*G0_2_1;
 
4055
    A[1048] = -0.0451499118165782*G0_0_0 - 0.0451499118165787*G0_0_1 - 0.0225749559082891*G0_0_2 - 0.0451499118165779*G0_1_0 - 0.0677248677248672*G0_1_2 - 0.0225749559082891*G0_2_0 - 0.0677248677248677*G0_2_1;
 
4056
    A[1049] = -0.0902998236331569*G0_0_0 + 0.316049382716048*G0_0_1 + 0.135449735449735*G0_0_2 + 0.316049382716049*G0_1_0 + 0.135449735449734*G0_1_2 + 0.135449735449735*G0_2_0 + 0.135449735449734*G0_2_1 + 0.270899470899469*G0_2_2;
 
4057
    A[1050] = -0.0253968253968254*G0_0_0 - 0.0253968253968255*G0_0_1 - 0.0253968253968255*G0_0_2 - 0.0183421516754851*G0_1_0 - 0.0183421516754851*G0_1_1 - 0.0183421516754851*G0_1_2 - 0.0253968253968254*G0_2_0 - 0.0253968253968254*G0_2_1 - 0.0253968253968253*G0_2_2;
 
4058
    A[1051] = -0.0253968253968253*G0_0_0 - 0.0070546737213404*G0_1_0;
 
4059
    A[1052] = 0.018342151675485*G0_1_1;
 
4060
    A[1053] = -0.0070546737213404*G0_1_2 + 0.0423280423280423*G0_2_2;
 
4061
    A[1054] = -0.0677248677248677*G0_1_1 - 0.0112874779541444*G0_1_2 - 0.0112874779541444*G0_2_1;
 
4062
    A[1055] = 0.0846560846560844*G0_1_1 + 0.0423280423280418*G0_1_2 + 0.0423280423280421*G0_2_1 + 0.0225749559082889*G0_2_2;
 
4063
    A[1056] = -0.112874779541446*G0_1_1 - 0.101587301587301*G0_1_2 - 0.101587301587302*G0_2_1 - 0.135449735449735*G0_2_2;
 
4064
    A[1057] = 0.135449735449735*G0_0_0 + 0.0338624338624334*G0_0_2 + 0.0677248677248673*G0_1_0 + 0.022574955908289*G0_1_2 + 0.0338624338624337*G0_2_0;
 
4065
    A[1058] = -0.27089947089947*G0_0_0 - 0.0931216931216926*G0_0_2 - 0.186243386243385*G0_1_0 - 0.0507936507936501*G0_1_2 - 0.0931216931216926*G0_2_0 + 0.067724867724868*G0_2_2;
 
4066
    A[1059] = -0.101587301587301*G0_0_2 - 0.112874779541446*G0_1_0 - 0.203174603174603*G0_1_2 - 0.101587301587302*G0_2_0 - 0.270899470899471*G0_2_2;
 
4067
    A[1060] = 0.0451499118165779*G0_0_0 + 0.0338624338624334*G0_0_1 + 0.0338624338624336*G0_1_0 + 0.022574955908289*G0_1_1;
 
4068
    A[1061] = 0.0225749559082894*G0_0_0 + 0.0197530864197532*G0_0_1 + 0.019753086419753*G0_1_0 + 0.016931216931217*G0_1_1;
 
4069
    A[1062] = -0.0112874779541446*G0_0_1 - 0.0112874779541445*G0_1_0 - 0.0225749559082892*G0_1_1;
 
4070
    A[1063] = 0.135449735449735*G0_0_0 + 0.135449735449735*G0_0_1 + 0.101587301587302*G0_0_2 + 0.0677248677248676*G0_1_0 + 0.0677248677248675*G0_1_1 + 0.0564373897707234*G0_1_2 + 0.101587301587302*G0_2_0 + 0.101587301587302*G0_2_1 + 0.0677248677248677*G0_2_2;
 
4071
    A[1064] = -0.270899470899471*G0_0_0 - 0.270899470899471*G0_0_1 - 0.177777777777778*G0_0_2 - 0.0846560846560843*G0_1_0 - 0.0846560846560842*G0_1_1 - 0.0423280423280424*G0_1_2 - 0.177777777777778*G0_2_0 - 0.177777777777778*G0_2_1 - 0.016931216931217*G0_2_2;
 
4072
    A[1065] = 0.101587301587302*G0_0_2 + 0.112874779541446*G0_1_0 + 0.112874779541446*G0_1_1 + 0.0112874779541448*G0_1_2 + 0.101587301587302*G0_2_0 + 0.101587301587302*G0_2_1 - 0.0677248677248676*G0_2_2;
 
4073
    A[1066] = 0.0451499118165783*G0_0_0 + 0.0112874779541447*G0_0_1 + 0.0451499118165783*G0_0_2 + 0.0112874779541445*G0_1_0 + 0.0112874779541444*G0_1_2 + 0.0451499118165784*G0_2_0 + 0.0112874779541446*G0_2_1 + 0.0451499118165785*G0_2_2;
 
4074
    A[1067] = 0.0225749559082893*G0_0_0 + 0.00282186948853622*G0_0_1 + 0.0225749559082894*G0_0_2 + 0.00282186948853621*G0_1_0 + 0.00282186948853618*G0_1_2 + 0.0225749559082894*G0_2_0 + 0.00282186948853635*G0_2_1 + 0.0225749559082894*G0_2_2;
 
4075
    A[1068] = 0.0112874779541445*G0_0_1 + 0.0112874779541444*G0_1_0 + 0.0112874779541444*G0_1_2 + 0.0112874779541444*G0_2_1;
 
4076
    A[1069] = 0.0225749559082893*G0_0_0 + 0.056437389770723*G0_0_1 + 0.056437389770723*G0_0_2 + 0.0112874779541449*G0_1_0 + 0.0225749559082891*G0_1_1 + 0.0225749559082891*G0_1_2 + 0.056437389770723*G0_2_0 + 0.0902998236331569*G0_2_1 + 0.0902998236331569*G0_2_2;
 
4077
    A[1070] = 0.00564373897707238*G0_0_0 + 0.0028218694885363*G0_0_1 + 0.00282186948853631*G0_0_2 + 0.00282186948853601*G0_1_0 - 0.0169312169312167*G0_1_1 - 0.0169312169312167*G0_1_2 + 0.00282186948853616*G0_2_0 + 0.0677248677248678*G0_2_1 + 0.0677248677248678*G0_2_2;
 
4078
    A[1071] = 0.0225749559082891*G0_0_0 - 0.0338624338624336*G0_0_1 - 0.0338624338624335*G0_0_2 + 0.0112874779541447*G0_1_0 - 0.022574955908289*G0_1_1 - 0.022574955908289*G0_1_2 - 0.0338624338624338*G0_2_0;
 
4079
    A[1072] = -0.135449735449734*G0_0_0 - 0.0677248677248677*G0_0_1 + 0.045149911816578*G0_0_2 - 0.0677248677248669*G0_1_0 + 0.0677248677248673*G0_1_2 + 0.0451499118165788*G0_2_0 + 0.067724867724868*G0_2_1;
 
4080
    A[1073] = 0.0677248677248675*G0_0_1 + 0.0225749559082894*G0_0_2 + 0.0677248677248669*G0_1_0 + 0.135449735449735*G0_1_1 + 0.045149911816578*G0_1_2 + 0.0225749559082889*G0_2_0 + 0.045149911816578*G0_2_1;
 
4081
    A[1074] = -0.270899470899469*G0_0_1 - 0.135449735449734*G0_0_2 - 0.27089947089947*G0_1_0 - 0.54179894179894*G0_1_1 - 0.27089947089947*G0_1_2 - 0.135449735449736*G0_2_0 - 0.27089947089947*G0_2_1 + 0.0451499118165785*G0_2_2;
 
4082
    A[1075] = -0.135449735449735*G0_0_0 - 0.067724867724868*G0_0_1 - 0.180599647266314*G0_0_2 - 0.0677248677248677*G0_1_0 - 0.0451499118165783*G0_1_2 - 0.180599647266314*G0_2_0 - 0.0451499118165782*G0_2_1 - 0.225749559082892*G0_2_2;
 
4083
    A[1076] = -0.0677248677248674*G0_0_1 - 0.0225749559082889*G0_0_2 - 0.0677248677248669*G0_1_0 - 0.0451499118165779*G0_1_2 - 0.022574955908289*G0_2_0 - 0.0451499118165787*G0_2_1 - 0.045149911816578*G0_2_2;
 
4084
    A[1077] = 0.270899470899471*G0_0_1 + 0.135449735449735*G0_0_2 + 0.27089947089947*G0_1_0 + 0.135449735449735*G0_1_2 + 0.135449735449736*G0_2_0 + 0.135449735449736*G0_2_1 + 0.316049382716049*G0_2_2;
 
4085
    A[1078] = -0.135449735449735*G0_0_0 - 0.203174603174603*G0_0_1 - 0.225749559082892*G0_0_2 - 0.0677248677248673*G0_1_0 - 0.135449735449735*G0_1_1 - 0.0902998236331565*G0_1_2 - 0.225749559082892*G0_2_0 - 0.361199294532627*G0_2_1 - 0.451499118165784*G0_2_2;
 
4086
    A[1079] = -0.135449735449735*G0_0_0 + 0.0677248677248677*G0_0_1 + 0.0902998236331563*G0_0_2 - 0.0677248677248673*G0_1_0 + 0.0677248677248667*G0_1_2 + 0.0902998236331568*G0_2_0 - 0.067724867724868*G0_2_1 - 0.135449735449736*G0_2_2;
 
4087
    A[1080] = 0.541798941798941*G0_0_0 + 0.270899470899469*G0_0_1 + 0.27089947089947*G0_0_2 + 0.270899470899469*G0_1_0 + 0.541798941798939*G0_1_1 + 0.27089947089947*G0_1_2 + 0.27089947089947*G0_2_0 + 0.27089947089947*G0_2_1 + 0.632098765432098*G0_2_2;
 
4088
    A[1081] = -0.0451499118165783*G0_0_0 - 0.0225749559082892*G0_0_1 - 0.0225749559082887*G0_1_0 - 0.0451499118165782*G0_1_2 - 0.0451499118165785*G0_2_1 + 0.0451499118165786*G0_2_2;
 
4089
    A[1082] = -0.045149911816578*G0_0_0 - 0.0225749559082894*G0_0_1 - 0.045149911816578*G0_0_2 - 0.0225749559082892*G0_1_0 - 0.0677248677248673*G0_1_2 - 0.0451499118165784*G0_2_0 - 0.0677248677248678*G0_2_1;
 
4090
    A[1083] = -0.0451499118165785*G0_0_0 - 0.0225749559082892*G0_0_1 - 0.0225749559082893*G0_0_2 - 0.0225749559082889*G0_1_0 - 0.045149911816578*G0_1_2 - 0.0225749559082894*G0_2_0 - 0.0451499118165786*G0_2_1;
 
4091
    A[1084] = 0.27089947089947*G0_0_0 + 0.135449735449736*G0_0_1 + 0.135449735449734*G0_0_2 + 0.135449735449735*G0_1_0 + 0.316049382716048*G0_1_2 + 0.135449735449735*G0_2_0 + 0.316049382716049*G0_2_1 - 0.0902998236331568*G0_2_2;
 
4092
    A[1085] = 0.0423280423280422*G0_0_0 + 0.0423280423280423*G0_0_1 + 0.0423280423280423*G0_0_2 + 0.0423280423280422*G0_1_0 + 0.0423280423280423*G0_1_1 + 0.0423280423280423*G0_1_2 + 0.0493827160493827*G0_2_0 + 0.0493827160493826*G0_2_1 + 0.0493827160493826*G0_2_2;
 
4093
    A[1086] = -0.0253968253968252*G0_0_0 - 0.0070546737213403*G0_2_0;
 
4094
    A[1087] = -0.0253968253968253*G0_1_1 - 0.00705467372134026*G0_2_1;
 
4095
    A[1088] = 0.018342151675485*G0_2_2;
 
4096
    A[1089] = 0.0451499118165782*G0_1_1 + 0.0338624338624337*G0_1_2 + 0.0338624338624333*G0_2_1 + 0.022574955908289*G0_2_2;
 
4097
    A[1090] = 0.0225749559082894*G0_1_1 + 0.0197530864197532*G0_1_2 + 0.0197530864197536*G0_2_1 + 0.0169312169312172*G0_2_2;
 
4098
    A[1091] = -0.0112874779541446*G0_1_2 - 0.0112874779541447*G0_2_1 - 0.0225749559082893*G0_2_2;
 
4099
    A[1092] = 0.0451499118165781*G0_0_0 + 0.0338624338624336*G0_0_2 + 0.0338624338624333*G0_2_0 + 0.0225749559082889*G0_2_2;
 
4100
    A[1093] = 0.022574955908289*G0_0_0 + 0.019753086419753*G0_0_2 + 0.019753086419753*G0_2_0 + 0.0169312169312167*G0_2_2;
 
4101
    A[1094] = -0.0112874779541448*G0_0_2 - 0.0112874779541447*G0_2_0 - 0.0225749559082893*G0_2_2;
 
4102
    A[1095] = 0.0902998236331561*G0_0_0 + 0.0338624338624335*G0_0_1 + 0.0338624338624332*G0_1_0 + 0.067724867724867*G0_2_0 + 0.0225749559082889*G0_2_1;
 
4103
    A[1096] = 0.067724867724868*G0_0_0 + 0.0649029982363313*G0_0_1 + 0.0649029982363317*G0_1_0 + 0.0677248677248673*G0_1_1 + 0.0846560846560847*G0_2_0 + 0.0846560846560844*G0_2_1;
 
4104
    A[1097] = 0.0338624338624336*G0_0_1 + 0.0338624338624337*G0_1_0 + 0.090299823633157*G0_1_1 + 0.0225749559082891*G0_2_0 + 0.0677248677248674*G0_2_1;
 
4105
    A[1098] = -0.135449735449735*G0_0_0 - 0.135449735449735*G0_0_1 - 0.0338624338624341*G0_0_2 - 0.135449735449735*G0_1_0 - 0.135449735449735*G0_1_1 - 0.0338624338624339*G0_1_2 - 0.0338624338624339*G0_2_0 - 0.0338624338624339*G0_2_1 - 0.0451499118165785*G0_2_2;
 
4106
    A[1099] = 0.0225749559082892*G0_0_0 + 0.0225749559082893*G0_0_1 - 0.0197530864197529*G0_0_2 + 0.0225749559082893*G0_1_0 + 0.0225749559082893*G0_1_1 - 0.019753086419753*G0_1_2 - 0.019753086419753*G0_2_0 - 0.0197530864197531*G0_2_1 + 0.0225749559082893*G0_2_2;
 
4107
    A[1100] = 0.0112874779541445*G0_0_2 + 0.0112874779541445*G0_1_2 + 0.0112874779541447*G0_2_0 + 0.0112874779541447*G0_2_1 - 0.0451499118165785*G0_2_2;
 
4108
    A[1101] = -0.27089947089947*G0_0_0 - 0.169312169312169*G0_0_1 - 0.27089947089947*G0_0_2 - 0.169312169312169*G0_1_0 - 0.0677248677248675*G0_1_1 - 0.169312169312169*G0_1_2 - 0.0677248677248675*G0_2_0 - 0.0790123456790123*G0_2_1 - 0.0677248677248675*G0_2_2;
 
4109
    A[1102] = 0.0677248677248676*G0_0_0 + 0.160846560846561*G0_0_1 + 0.0677248677248675*G0_0_2 + 0.160846560846561*G0_1_0 - 0.0169312169312168*G0_1_1 + 0.160846560846561*G0_1_2 + 0.118518518518519*G0_2_0 + 0.0253968253968257*G0_2_1 + 0.118518518518519*G0_2_2;
 
4110
    A[1103] = -0.0338624338624339*G0_0_1 - 0.0338624338624337*G0_1_0 + 0.0677248677248676*G0_1_1 - 0.0338624338624337*G0_1_2 - 0.0225749559082891*G0_2_0 + 0.0112874779541443*G0_2_1 - 0.0225749559082891*G0_2_2;
 
4111
    A[1104] = -0.0677248677248676*G0_0_0 - 0.169312169312169*G0_0_1 - 0.169312169312169*G0_0_2 - 0.169312169312169*G0_1_0 - 0.27089947089947*G0_1_1 - 0.27089947089947*G0_1_2 - 0.0790123456790121*G0_2_0 - 0.0677248677248674*G0_2_1 - 0.0677248677248674*G0_2_2;
 
4112
    A[1105] = -0.0169312169312168*G0_0_0 + 0.16084656084656*G0_0_1 + 0.16084656084656*G0_0_2 + 0.16084656084656*G0_1_0 + 0.0677248677248671*G0_1_1 + 0.0677248677248671*G0_1_2 + 0.0253968253968252*G0_2_0 + 0.118518518518518*G0_2_1 + 0.118518518518518*G0_2_2;
 
4113
    A[1106] = 0.0677248677248676*G0_0_0 - 0.0338624338624336*G0_0_1 - 0.0338624338624336*G0_0_2 - 0.0338624338624338*G0_1_0 + 0.0112874779541447*G0_2_0 - 0.0225749559082889*G0_2_1 - 0.022574955908289*G0_2_2;
 
4114
    A[1107] = 0.0451499118165782*G0_0_0 + 0.0451499118165779*G0_0_1 + 0.0902998236331563*G0_0_2 + 0.0451499118165784*G0_1_0 + 0.0677248677248671*G0_1_2 + 0.0902998236331566*G0_2_0 + 0.0677248677248669*G0_2_1 + 0.135449735449735*G0_2_2;
 
4115
    A[1108] = 0.0451499118165784*G0_0_1 + 0.0677248677248673*G0_0_2 + 0.0451499118165786*G0_1_0 + 0.0451499118165788*G0_1_1 + 0.090299823633157*G0_1_2 + 0.0677248677248675*G0_2_0 + 0.0902998236331574*G0_2_1 + 0.135449735449735*G0_2_2;
 
4116
    A[1109] = 0.0225749559082886*G0_0_1 + 0.045149911816578*G0_0_2 + 0.0225749559082893*G0_1_0 + 0.0451499118165785*G0_1_2 + 0.0451499118165786*G0_2_0 + 0.045149911816578*G0_2_1 + 0.090299823633157*G0_2_2;
 
4117
    A[1110] = 0.0451499118165784*G0_0_0 + 0.180599647266313*G0_0_1 + 0.316049382716049*G0_0_2 + 0.180599647266314*G0_1_0 + 0.316049382716049*G0_1_1 + 0.180599647266314*G0_1_2 + 0.316049382716049*G0_2_0 + 0.180599647266314*G0_2_1 + 0.0451499118165783*G0_2_2;
 
4118
    A[1111] = -0.0451499118165779*G0_0_1 - 0.0677248677248674*G0_0_2 - 0.0451499118165785*G0_1_0 - 0.225749559082892*G0_1_1 - 0.180599647266314*G0_1_2 - 0.0677248677248674*G0_2_0 - 0.180599647266313*G0_2_1 - 0.135449735449736*G0_2_2;
 
4119
    A[1112] = -0.0225749559082895*G0_0_1 - 0.0451499118165785*G0_0_2 - 0.0225749559082894*G0_1_0 - 0.0451499118165786*G0_1_1 - 0.0451499118165787*G0_2_0 + 0.0451499118165785*G0_2_2;
 
4120
    A[1113] = 0.316049382716048*G0_0_0 + 0.180599647266313*G0_0_1 + 0.180599647266314*G0_0_2 + 0.180599647266313*G0_1_0 + 0.0451499118165783*G0_1_1 + 0.316049382716048*G0_1_2 + 0.180599647266313*G0_2_0 + 0.316049382716048*G0_2_1 + 0.0451499118165781*G0_2_2;
 
4121
    A[1114] = -0.225749559082891*G0_0_0 - 0.0451499118165779*G0_0_1 - 0.180599647266313*G0_0_2 - 0.0451499118165779*G0_1_0 - 0.0677248677248671*G0_1_2 - 0.180599647266313*G0_2_0 - 0.0677248677248669*G0_2_1 - 0.135449735449735*G0_2_2;
 
4122
    A[1115] = -0.0451499118165783*G0_0_0 - 0.0225749559082887*G0_0_1 - 0.0225749559082892*G0_1_0 - 0.0451499118165785*G0_1_2 - 0.0451499118165782*G0_2_1 + 0.0451499118165785*G0_2_2;
 
4123
    A[1116] = 0.632098765432097*G0_0_0 + 0.361199294532627*G0_0_1 + 0.361199294532627*G0_0_2 + 0.361199294532627*G0_1_0 + 0.632098765432097*G0_1_1 + 0.361199294532627*G0_1_2 + 0.361199294532626*G0_2_0 + 0.361199294532627*G0_2_1 + 0.632098765432097*G0_2_2;
 
4124
    A[1117] = -0.451499118165783*G0_0_0 - 0.225749559082891*G0_0_1 - 0.0902998236331561*G0_0_2 - 0.225749559082891*G0_1_0 - 0.135449735449734*G0_1_1 - 0.067724867724867*G0_1_2 - 0.361199294532626*G0_2_0 - 0.203174603174602*G0_2_1 - 0.135449735449735*G0_2_2;
 
4125
    A[1118] = -0.135449735449736*G0_0_0 - 0.225749559082892*G0_0_1 - 0.0677248677248673*G0_0_2 - 0.225749559082892*G0_1_0 - 0.451499118165784*G0_1_1 - 0.0902998236331569*G0_1_2 - 0.203174603174603*G0_2_0 - 0.361199294532627*G0_2_1 - 0.135449735449735*G0_2_2;
 
4126
    A[1119] = -0.0902998236331568*G0_0_0 - 0.225749559082892*G0_0_1 - 0.406349206349205*G0_0_2 - 0.225749559082892*G0_1_0 - 0.0902998236331571*G0_1_1 - 0.406349206349206*G0_1_2 - 0.406349206349206*G0_2_0 - 0.406349206349206*G0_2_1 - 0.722398589065254*G0_2_2;
 
4127
    A[1120] = -0.0253968253968252*G0_0_0 - 0.0253968253968253*G0_0_1 - 0.0253968253968253*G0_0_2 - 0.0253968253968253*G0_1_0 - 0.0253968253968253*G0_1_1 - 0.0253968253968253*G0_1_2 - 0.0183421516754848*G0_2_0 - 0.0183421516754848*G0_2_1 - 0.0183421516754848*G0_2_2;
 
4128
    A[1121] = 0.0423280423280421*G0_0_0 - 0.00705467372134034*G0_2_0;
 
4129
    A[1122] = -0.0253968253968255*G0_1_1 - 0.00705467372134044*G0_2_1;
 
4130
    A[1123] = 0.018342151675485*G0_2_2;
 
4131
    A[1124] = 0.0451499118165788*G0_1_1 + 0.0338624338624341*G0_1_2 + 0.0338624338624339*G0_2_1 + 0.0225749559082892*G0_2_2;
 
4132
    A[1125] = 0.0225749559082892*G0_1_1 + 0.0197530864197532*G0_1_2 + 0.0197530864197532*G0_2_1 + 0.0169312169312173*G0_2_2;
 
4133
    A[1126] = -0.0112874779541447*G0_1_2 - 0.0112874779541447*G0_2_1 - 0.0225749559082895*G0_2_2;
 
4134
    A[1127] = -0.135449735449734*G0_0_0 - 0.101587301587301*G0_0_2 - 0.101587301587301*G0_2_0 - 0.112874779541446*G0_2_2;
 
4135
    A[1128] = 0.0225749559082891*G0_0_0 + 0.0423280423280421*G0_0_2 + 0.042328042328042*G0_2_0 + 0.0846560846560841*G0_2_2;
 
4136
    A[1129] = -0.0112874779541444*G0_0_2 - 0.0112874779541447*G0_2_0 - 0.0677248677248677*G0_2_2;
 
4137
    A[1130] = -0.270899470899469*G0_0_0 - 0.101587301587301*G0_0_1 - 0.101587301587301*G0_1_0 - 0.203174603174602*G0_2_0 - 0.112874779541446*G0_2_1;
 
4138
    A[1131] = 0.0677248677248667*G0_0_0 - 0.0931216931216927*G0_0_1 - 0.0931216931216933*G0_1_0 - 0.270899470899471*G0_1_1 - 0.0507936507936512*G0_2_0 - 0.186243386243386*G0_2_1;
 
4139
    A[1132] = 0.0338624338624339*G0_0_1 + 0.033862433862434*G0_1_0 + 0.135449735449736*G0_1_1 + 0.0225749559082892*G0_2_0 + 0.0677248677248676*G0_2_1;
 
4140
    A[1133] = 0.045149911816578*G0_0_0 + 0.0451499118165781*G0_0_1 + 0.0112874779541447*G0_0_2 + 0.0451499118165783*G0_1_0 + 0.0451499118165783*G0_1_1 + 0.0112874779541447*G0_1_2 + 0.0112874779541448*G0_2_0 + 0.0112874779541448*G0_2_1;
 
4141
    A[1134] = 0.0225749559082891*G0_0_0 + 0.0225749559082891*G0_0_1 + 0.002821869488536*G0_0_2 + 0.0225749559082893*G0_1_0 + 0.0225749559082894*G0_1_1 + 0.00282186948853604*G0_1_2 + 0.00282186948853588*G0_2_0 + 0.00282186948853602*G0_2_1;
 
4142
    A[1135] = 0.0112874779541447*G0_0_2 + 0.0112874779541447*G0_1_2 + 0.0112874779541448*G0_2_0 + 0.0112874779541447*G0_2_1;
 
4143
    A[1136] = 0.0902998236331564*G0_0_0 + 0.0564373897707229*G0_0_1 + 0.0902998236331564*G0_0_2 + 0.0564373897707228*G0_1_0 + 0.0225749559082893*G0_1_1 + 0.0564373897707227*G0_1_2 + 0.0225749559082893*G0_2_0 + 0.0112874779541445*G0_2_1 + 0.0225749559082893*G0_2_2;
 
4144
    A[1137] = 0.0677248677248675*G0_0_0 + 0.00282186948853601*G0_0_1 + 0.0677248677248677*G0_0_2 + 0.00282186948853603*G0_1_0 + 0.00564373897707182*G0_1_1 + 0.00282186948853599*G0_1_2 - 0.0169312169312172*G0_2_0 + 0.00282186948853607*G0_2_1 - 0.0169312169312173*G0_2_2;
 
4145
    A[1138] = -0.0338624338624336*G0_0_1 - 0.0338624338624339*G0_1_0 + 0.0225749559082897*G0_1_1 - 0.0338624338624339*G0_1_2 - 0.022574955908289*G0_2_0 + 0.0112874779541449*G0_2_1 - 0.0225749559082891*G0_2_2;
 
4146
    A[1139] = 0.0677248677248674*G0_0_0 + 0.101587301587301*G0_0_1 + 0.101587301587301*G0_0_2 + 0.101587301587301*G0_1_0 + 0.135449735449735*G0_1_1 + 0.135449735449735*G0_1_2 + 0.0564373897707224*G0_2_0 + 0.0677248677248674*G0_2_1 + 0.0677248677248673*G0_2_2;
 
4147
    A[1140] = -0.0169312169312169*G0_0_0 - 0.177777777777777*G0_0_1 - 0.177777777777777*G0_0_2 - 0.177777777777777*G0_1_0 - 0.27089947089947*G0_1_1 - 0.27089947089947*G0_1_2 - 0.0423280423280416*G0_2_0 - 0.0846560846560842*G0_2_1 - 0.0846560846560842*G0_2_2;
 
4148
    A[1141] = -0.0677248677248676*G0_0_0 + 0.101587301587301*G0_0_1 + 0.101587301587301*G0_0_2 + 0.101587301587301*G0_1_0 + 0.0112874779541443*G0_2_0 + 0.112874779541446*G0_2_1 + 0.112874779541446*G0_2_2;
 
4149
    A[1142] = 0.0451499118165785*G0_0_0 - 0.135449735449734*G0_0_1 - 0.270899470899469*G0_0_2 - 0.135449735449735*G0_1_0 - 0.27089947089947*G0_1_2 - 0.270899470899471*G0_2_0 - 0.27089947089947*G0_2_1 - 0.541798941798941*G0_2_2;
 
4150
    A[1143] = 0.0451499118165783*G0_0_1 + 0.0677248677248676*G0_0_2 + 0.0451499118165791*G0_1_0 - 0.135449735449735*G0_1_1 - 0.0677248677248675*G0_1_2 + 0.0677248677248676*G0_2_0 - 0.0677248677248683*G0_2_1;
 
4151
    A[1144] = 0.0225749559082892*G0_0_1 + 0.0451499118165783*G0_0_2 + 0.0225749559082893*G0_1_0 + 0.0677248677248678*G0_1_2 + 0.0451499118165783*G0_2_0 + 0.0677248677248673*G0_2_1 + 0.135449735449735*G0_2_2;
 
4152
    A[1145] = 0.0451499118165789*G0_0_0 - 0.0451499118165779*G0_0_2 - 0.0451499118165784*G0_1_1 - 0.0225749559082887*G0_1_2 - 0.0451499118165781*G0_2_0 - 0.022574955908289*G0_2_1;
 
4153
    A[1146] = -0.0451499118165792*G0_0_1 - 0.0677248677248677*G0_0_2 - 0.0451499118165792*G0_1_0 - 0.0451499118165789*G0_1_1 - 0.0225749559082894*G0_1_2 - 0.0677248677248677*G0_2_0 - 0.0225749559082894*G0_2_1;
 
4154
    A[1147] = -0.0225749559082889*G0_0_1 - 0.0451499118165784*G0_0_2 - 0.0225749559082892*G0_1_0 - 0.0451499118165785*G0_1_1 - 0.0225749559082892*G0_1_2 - 0.0451499118165782*G0_2_0 - 0.022574955908289*G0_2_1;
 
4155
    A[1148] = -0.225749559082891*G0_0_0 - 0.180599647266313*G0_0_1 - 0.0451499118165781*G0_0_2 - 0.180599647266313*G0_1_0 - 0.135449735449735*G0_1_1 - 0.0677248677248669*G0_1_2 - 0.0451499118165781*G0_2_0 - 0.0677248677248672*G0_2_1;
 
4156
    A[1149] = 0.316049382716048*G0_0_0 + 0.135449735449734*G0_0_1 + 0.135449735449735*G0_0_2 + 0.135449735449734*G0_1_0 + 0.27089947089947*G0_1_2 + 0.135449735449734*G0_2_0 + 0.27089947089947*G0_2_1;
 
4157
    A[1150] = -0.045149911816578*G0_0_0 - 0.0225749559082892*G0_0_1 - 0.0451499118165784*G0_0_2 - 0.0225749559082894*G0_1_0 - 0.0677248677248678*G0_1_2 - 0.045149911816578*G0_2_0 - 0.0677248677248673*G0_2_1;
 
4158
    A[1151] = -0.451499118165783*G0_0_0 - 0.225749559082891*G0_0_1 - 0.361199294532626*G0_0_2 - 0.225749559082891*G0_1_0 - 0.135449735449734*G0_1_1 - 0.203174603174602*G0_1_2 - 0.0902998236331561*G0_2_0 - 0.0677248677248669*G0_2_1 - 0.135449735449735*G0_2_2;
 
4159
    A[1152] = 0.632098765432096*G0_0_0 + 0.270899470899469*G0_0_1 + 0.270899470899469*G0_0_2 + 0.270899470899469*G0_1_0 + 0.541798941798941*G0_1_1 + 0.27089947089947*G0_1_2 + 0.270899470899469*G0_2_0 + 0.27089947089947*G0_2_1 + 0.541798941798941*G0_2_2;
 
4160
    A[1153] = -0.135449735449735*G0_0_0 + 0.0902998236331562*G0_0_1 - 0.0677248677248675*G0_0_2 + 0.0902998236331572*G0_1_0 - 0.135449735449736*G0_1_1 + 0.0677248677248677*G0_1_2 + 0.0677248677248683*G0_2_0 - 0.067724867724868*G0_2_1;
 
4161
    A[1154] = -0.0902998236331573*G0_0_0 + 0.135449735449734*G0_0_1 + 0.316049382716048*G0_0_2 + 0.135449735449735*G0_1_0 + 0.27089947089947*G0_1_1 + 0.135449735449734*G0_1_2 + 0.316049382716049*G0_2_0 + 0.135449735449735*G0_2_1;
 
4162
    A[1155] = -0.0253968253968254*G0_0_0 - 0.0253968253968254*G0_0_1 - 0.0253968253968254*G0_0_2 - 0.0253968253968253*G0_1_0 - 0.0253968253968254*G0_1_1 - 0.0253968253968254*G0_1_2 - 0.0183421516754849*G0_2_0 - 0.018342151675485*G0_2_1 - 0.0183421516754849*G0_2_2;
 
4163
    A[1156] = -0.0253968253968253*G0_0_0 - 0.00705467372134038*G0_2_0;
 
4164
    A[1157] = 0.0423280423280423*G0_1_1 - 0.00705467372134043*G0_2_1;
 
4165
    A[1158] = 0.0183421516754849*G0_2_2;
 
4166
    A[1159] = -0.135449735449735*G0_1_1 - 0.101587301587302*G0_1_2 - 0.101587301587302*G0_2_1 - 0.112874779541446*G0_2_2;
 
4167
    A[1160] = 0.022574955908289*G0_1_1 + 0.0423280423280421*G0_1_2 + 0.0423280423280422*G0_2_1 + 0.0846560846560845*G0_2_2;
 
4168
    A[1161] = -0.0112874779541445*G0_1_2 - 0.0112874779541447*G0_2_1 - 0.0677248677248676*G0_2_2;
 
4169
    A[1162] = 0.0451499118165783*G0_0_0 + 0.0338624338624337*G0_0_2 + 0.0338624338624337*G0_2_0 + 0.022574955908289*G0_2_2;
 
4170
    A[1163] = 0.0225749559082892*G0_0_0 + 0.019753086419753*G0_0_2 + 0.019753086419753*G0_2_0 + 0.016931216931217*G0_2_2;
 
4171
    A[1164] = -0.0112874779541448*G0_0_2 - 0.0112874779541448*G0_2_0 - 0.0225749559082893*G0_2_2;
 
4172
    A[1165] = 0.135449735449735*G0_0_0 + 0.0338624338624337*G0_0_1 + 0.0338624338624341*G0_1_0 + 0.0677248677248674*G0_2_0 + 0.0225749559082891*G0_2_1;
 
4173
    A[1166] = -0.27089947089947*G0_0_0 - 0.0931216931216932*G0_0_1 - 0.0931216931216928*G0_1_0 + 0.0677248677248681*G0_1_1 - 0.186243386243385*G0_2_0 - 0.0507936507936506*G0_2_1;
 
4174
    A[1167] = -0.101587301587301*G0_0_1 - 0.101587301587302*G0_1_0 - 0.270899470899471*G0_1_1 - 0.112874779541446*G0_2_0 - 0.203174603174603*G0_2_1;
 
4175
    A[1168] = 0.0451499118165787*G0_0_0 + 0.0451499118165786*G0_0_1 + 0.0112874779541447*G0_0_2 + 0.0451499118165785*G0_1_0 + 0.0451499118165784*G0_1_1 + 0.0112874779541446*G0_1_2 + 0.0112874779541448*G0_2_0 + 0.0112874779541448*G0_2_1;
 
4176
    A[1169] = 0.0225749559082892*G0_0_0 + 0.0225749559082893*G0_0_1 + 0.00282186948853627*G0_0_2 + 0.0225749559082892*G0_1_0 + 0.0225749559082892*G0_1_1 + 0.00282186948853621*G0_1_2 + 0.00282186948853628*G0_2_0 + 0.00282186948853627*G0_2_1;
 
4177
    A[1170] = 0.0112874779541446*G0_0_2 + 0.0112874779541446*G0_1_2 + 0.0112874779541447*G0_2_0 + 0.0112874779541447*G0_2_1;
 
4178
    A[1171] = 0.135449735449735*G0_0_0 + 0.101587301587302*G0_0_1 + 0.135449735449735*G0_0_2 + 0.101587301587301*G0_1_0 + 0.0677248677248675*G0_1_1 + 0.101587301587301*G0_1_2 + 0.0677248677248675*G0_2_0 + 0.0564373897707229*G0_2_1 + 0.0677248677248675*G0_2_2;
 
4179
    A[1172] = -0.270899470899471*G0_0_0 - 0.177777777777778*G0_0_1 - 0.270899470899471*G0_0_2 - 0.177777777777778*G0_1_0 - 0.0169312169312168*G0_1_1 - 0.177777777777778*G0_1_2 - 0.0846560846560847*G0_2_0 - 0.0423280423280422*G0_2_1 - 0.0846560846560849*G0_2_2;
 
4180
    A[1173] = 0.101587301587302*G0_0_1 + 0.101587301587302*G0_1_0 - 0.0677248677248677*G0_1_1 + 0.101587301587302*G0_1_2 + 0.112874779541446*G0_2_0 + 0.0112874779541447*G0_2_1 + 0.112874779541446*G0_2_2;
 
4181
    A[1174] = 0.0225749559082891*G0_0_0 + 0.0564373897707232*G0_0_1 + 0.0564373897707231*G0_0_2 + 0.056437389770723*G0_1_0 + 0.0902998236331568*G0_1_1 + 0.0902998236331568*G0_1_2 + 0.0112874779541445*G0_2_0 + 0.0225749559082892*G0_2_1 + 0.0225749559082892*G0_2_2;
 
4182
    A[1175] = 0.00564373897707253*G0_0_0 + 0.00282186948853607*G0_0_1 + 0.0028218694885361*G0_0_2 + 0.00282186948853607*G0_1_0 + 0.0677248677248678*G0_1_1 + 0.0677248677248678*G0_1_2 + 0.00282186948853625*G0_2_0 - 0.0169312169312169*G0_2_1 - 0.016931216931217*G0_2_2;
 
4183
    A[1176] = 0.022574955908289*G0_0_0 - 0.0338624338624338*G0_0_1 - 0.0338624338624337*G0_0_2 - 0.0338624338624336*G0_1_0 + 0.0112874779541446*G0_2_0 - 0.022574955908289*G0_2_1 - 0.0225749559082891*G0_2_2;
 
4184
    A[1177] = -0.135449735449736*G0_0_0 + 0.0451499118165779*G0_0_1 - 0.0677248677248685*G0_0_2 + 0.0451499118165785*G0_1_0 + 0.0677248677248681*G0_1_2 - 0.0677248677248682*G0_2_0 + 0.0677248677248671*G0_2_1;
 
4185
    A[1178] = -0.135449735449735*G0_0_1 - 0.270899470899471*G0_0_2 - 0.135449735449736*G0_1_0 + 0.0451499118165781*G0_1_1 - 0.270899470899471*G0_1_2 - 0.270899470899471*G0_2_0 - 0.270899470899471*G0_2_1 - 0.541798941798941*G0_2_2;
 
4186
    A[1179] = 0.0225749559082891*G0_0_1 + 0.0677248677248676*G0_0_2 + 0.022574955908289*G0_1_0 + 0.045149911816578*G0_1_2 + 0.0677248677248674*G0_2_0 + 0.0451499118165781*G0_2_1 + 0.135449735449735*G0_2_2;
 
4187
    A[1180] = -0.135449735449736*G0_0_0 - 0.180599647266314*G0_0_1 - 0.0677248677248676*G0_0_2 - 0.180599647266314*G0_1_0 - 0.225749559082892*G0_1_1 - 0.0451499118165783*G0_1_2 - 0.0677248677248677*G0_2_0 - 0.0451499118165787*G0_2_1;
 
4188
    A[1181] = 0.135449735449735*G0_0_1 + 0.27089947089947*G0_0_2 + 0.135449735449736*G0_1_0 + 0.316049382716049*G0_1_1 + 0.135449735449736*G0_1_2 + 0.270899470899471*G0_2_0 + 0.135449735449735*G0_2_1;
 
4189
    A[1182] = -0.0225749559082893*G0_0_1 - 0.0677248677248675*G0_0_2 - 0.0225749559082889*G0_1_0 - 0.0451499118165782*G0_1_1 - 0.0451499118165786*G0_1_2 - 0.0677248677248671*G0_2_0 - 0.0451499118165785*G0_2_1;
 
4190
    A[1183] = -0.0451499118165787*G0_0_0 - 0.022574955908289*G0_0_2 + 0.0451499118165787*G0_1_1 - 0.0451499118165783*G0_1_2 - 0.0225749559082892*G0_2_0 - 0.0451499118165782*G0_2_1;
 
4191
    A[1184] = -0.0451499118165782*G0_0_0 - 0.0451499118165779*G0_0_1 - 0.0225749559082891*G0_0_2 - 0.0451499118165787*G0_1_0 - 0.0677248677248676*G0_1_2 - 0.0225749559082891*G0_2_0 - 0.0677248677248672*G0_2_1;
 
4192
    A[1185] = -0.0451499118165785*G0_0_0 - 0.0225749559082889*G0_0_1 - 0.0225749559082894*G0_0_2 - 0.0225749559082892*G0_1_0 - 0.0451499118165786*G0_1_2 - 0.0225749559082893*G0_2_0 - 0.045149911816578*G0_2_1;
 
4193
    A[1186] = -0.135449735449736*G0_0_0 - 0.225749559082892*G0_0_1 - 0.203174603174603*G0_0_2 - 0.225749559082892*G0_1_0 - 0.451499118165784*G0_1_1 - 0.361199294532627*G0_1_2 - 0.0677248677248673*G0_2_0 - 0.0902998236331569*G0_2_1 - 0.135449735449735*G0_2_2;
 
4194
    A[1187] = -0.135449735449735*G0_0_0 + 0.0902998236331572*G0_0_1 + 0.0677248677248683*G0_0_2 + 0.0902998236331562*G0_1_0 - 0.135449735449736*G0_1_1 - 0.067724867724868*G0_1_2 - 0.0677248677248675*G0_2_0 + 0.0677248677248677*G0_2_1;
 
4195
    A[1188] = 0.541798941798941*G0_0_0 + 0.27089947089947*G0_0_1 + 0.270899470899471*G0_0_2 + 0.27089947089947*G0_1_0 + 0.632098765432098*G0_1_1 + 0.27089947089947*G0_1_2 + 0.27089947089947*G0_2_0 + 0.27089947089947*G0_2_1 + 0.541798941798941*G0_2_2;
 
4196
    A[1189] = 0.270899470899471*G0_0_0 + 0.135449735449736*G0_0_1 + 0.135449735449736*G0_0_2 + 0.135449735449735*G0_1_0 - 0.090299823633157*G0_1_1 + 0.316049382716049*G0_1_2 + 0.135449735449736*G0_2_0 + 0.316049382716049*G0_2_1;
 
4197
    A[1190] = -0.0677248677248676*G0_0_0 - 0.0677248677248675*G0_0_1 - 0.0677248677248675*G0_0_2 - 0.0677248677248675*G0_1_0 - 0.0677248677248675*G0_1_1 - 0.0677248677248675*G0_1_2 - 0.0677248677248677*G0_2_0 - 0.0677248677248677*G0_2_1 - 0.0677248677248678*G0_2_2;
 
4198
    A[1191] = -0.0677248677248673*G0_0_0;
 
4199
    A[1192] = -0.0677248677248679*G0_1_1;
 
4200
    A[1193] = -0.0677248677248677*G0_2_2;
 
4201
    A[1194] = 0.0902998236331573*G0_1_1;
 
4202
    A[1195] = -0.135449735449736*G0_1_1 - 0.112874779541446*G0_1_2 - 0.112874779541447*G0_2_1 - 0.135449735449736*G0_2_2;
 
4203
    A[1196] = 0.090299823633157*G0_2_2;
 
4204
    A[1197] = 0.0902998236331567*G0_0_0;
 
4205
    A[1198] = -0.135449735449735*G0_0_0 - 0.112874779541446*G0_0_2 - 0.112874779541446*G0_2_0 - 0.135449735449735*G0_2_2;
 
4206
    A[1199] = 0.0902998236331571*G0_2_2;
 
4207
    A[1200] = 0.0902998236331567*G0_0_0;
 
4208
    A[1201] = -0.135449735449735*G0_0_0 - 0.112874779541446*G0_0_1 - 0.112874779541446*G0_1_0 - 0.135449735449735*G0_1_1;
 
4209
    A[1202] = 0.0902998236331573*G0_1_1;
 
4210
    A[1203] = 0.0902998236331577*G0_0_0 + 0.0902998236331575*G0_0_1 + 0.0902998236331568*G0_0_2 + 0.0902998236331572*G0_1_0 + 0.0902998236331572*G0_1_1 + 0.0902998236331567*G0_1_2 + 0.090299823633157*G0_2_0 + 0.0902998236331569*G0_2_1 + 0.0902998236331572*G0_2_2;
 
4211
    A[1204] = -0.135449735449735*G0_0_0 - 0.135449735449735*G0_0_1 - 0.0225749559082892*G0_0_2 - 0.135449735449736*G0_1_0 - 0.135449735449736*G0_1_1 - 0.0225749559082889*G0_1_2 - 0.0225749559082892*G0_2_0 - 0.022574955908289*G0_2_1 - 0.0451499118165785*G0_2_2;
 
4212
    A[1205] = 0.090299823633157*G0_2_2;
 
4213
    A[1206] = 0.0902998236331573*G0_0_0 + 0.0902998236331569*G0_0_1 + 0.0902998236331573*G0_0_2 + 0.0902998236331569*G0_1_0 + 0.0902998236331568*G0_1_1 + 0.090299823633157*G0_1_2 + 0.0902998236331567*G0_2_0 + 0.0902998236331571*G0_2_1 + 0.0902998236331566*G0_2_2;
 
4214
    A[1207] = -0.135449735449736*G0_0_0 - 0.0225749559082895*G0_0_1 - 0.135449735449736*G0_0_2 - 0.0225749559082895*G0_1_0 - 0.0451499118165785*G0_1_1 - 0.0225749559082896*G0_1_2 - 0.135449735449735*G0_2_0 - 0.0225749559082894*G0_2_1 - 0.135449735449735*G0_2_2;
 
4215
    A[1208] = 0.0902998236331572*G0_1_1;
 
4216
    A[1209] = 0.0902998236331562*G0_0_0 + 0.090299823633157*G0_0_1 + 0.090299823633157*G0_0_2 + 0.0902998236331565*G0_1_0 + 0.0902998236331568*G0_1_1 + 0.0902998236331568*G0_1_2 + 0.0902998236331569*G0_2_0 + 0.0902998236331566*G0_2_1 + 0.0902998236331566*G0_2_2;
 
4217
    A[1210] = -0.0451499118165776*G0_0_0 - 0.0225749559082888*G0_0_1 - 0.0225749559082888*G0_0_2 - 0.0225749559082887*G0_1_0 - 0.135449735449734*G0_1_1 - 0.135449735449735*G0_1_2 - 0.022574955908289*G0_2_0 - 0.135449735449734*G0_2_1 - 0.135449735449734*G0_2_2;
 
4218
    A[1211] = 0.0902998236331563*G0_0_0;
 
4219
    A[1212] = -0.722398589065254*G0_0_0 - 0.316049382716048*G0_0_1 - 0.316049382716049*G0_0_2 - 0.316049382716049*G0_1_0 - 0.135449735449735*G0_1_2 - 0.316049382716048*G0_2_0 - 0.135449735449734*G0_2_1;
 
4220
    A[1213] = -0.31604938271605*G0_0_1 - 0.135449735449736*G0_0_2 - 0.316049382716049*G0_1_0 - 0.722398589065255*G0_1_1 - 0.316049382716048*G0_1_2 - 0.135449735449736*G0_2_0 - 0.31604938271605*G0_2_1;
 
4221
    A[1214] = -0.135449735449734*G0_0_1 - 0.316049382716049*G0_0_2 - 0.135449735449735*G0_1_0 - 0.316049382716049*G0_1_2 - 0.316049382716048*G0_2_0 - 0.316049382716048*G0_2_1 - 0.722398589065254*G0_2_2;
 
4222
    A[1215] = -0.722398589065254*G0_0_0 - 0.406349206349206*G0_0_1 - 0.406349206349206*G0_0_2 - 0.406349206349206*G0_1_0 - 0.0902998236331573*G0_1_1 - 0.225749559082892*G0_1_2 - 0.406349206349206*G0_2_0 - 0.225749559082893*G0_2_1 - 0.0902998236331569*G0_2_2;
 
4223
    A[1216] = 0.316049382716049*G0_0_1 + 0.135449735449736*G0_0_2 + 0.316049382716049*G0_1_0 - 0.0902998236331572*G0_1_1 + 0.135449735449736*G0_1_2 + 0.135449735449736*G0_2_0 + 0.135449735449735*G0_2_1 + 0.270899470899471*G0_2_2;
 
4224
    A[1217] = 0.135449735449736*G0_0_1 + 0.316049382716049*G0_0_2 + 0.135449735449736*G0_1_0 + 0.270899470899471*G0_1_1 + 0.135449735449736*G0_1_2 + 0.316049382716049*G0_2_0 + 0.135449735449736*G0_2_1 - 0.0902998236331567*G0_2_2;
 
4225
    A[1218] = -0.0902998236331568*G0_0_0 - 0.406349206349205*G0_0_1 - 0.225749559082892*G0_0_2 - 0.406349206349205*G0_1_0 - 0.722398589065255*G0_1_1 - 0.406349206349206*G0_1_2 - 0.225749559082892*G0_2_0 - 0.406349206349205*G0_2_1 - 0.0902998236331567*G0_2_2;
 
4226
    A[1219] = -0.0902998236331569*G0_0_0 + 0.316049382716049*G0_0_1 + 0.135449735449735*G0_0_2 + 0.316049382716048*G0_1_0 + 0.135449735449734*G0_1_2 + 0.135449735449735*G0_2_0 + 0.135449735449734*G0_2_1 + 0.270899470899469*G0_2_2;
 
4227
    A[1220] = 0.27089947089947*G0_0_0 + 0.135449735449735*G0_0_1 + 0.135449735449735*G0_0_2 + 0.135449735449736*G0_1_0 + 0.316049382716049*G0_1_2 + 0.135449735449734*G0_2_0 + 0.316049382716048*G0_2_1 - 0.0902998236331569*G0_2_2;
 
4228
    A[1221] = -0.0902998236331568*G0_0_0 - 0.225749559082892*G0_0_1 - 0.406349206349205*G0_0_2 - 0.225749559082892*G0_1_0 - 0.0902998236331572*G0_1_1 - 0.406349206349206*G0_1_2 - 0.406349206349205*G0_2_0 - 0.406349206349206*G0_2_1 - 0.722398589065254*G0_2_2;
 
4229
    A[1222] = -0.0902998236331573*G0_0_0 + 0.135449735449735*G0_0_1 + 0.316049382716049*G0_0_2 + 0.135449735449734*G0_1_0 + 0.27089947089947*G0_1_1 + 0.135449735449735*G0_1_2 + 0.316049382716048*G0_2_0 + 0.135449735449734*G0_2_1;
 
4230
    A[1223] = 0.270899470899471*G0_0_0 + 0.135449735449735*G0_0_1 + 0.135449735449736*G0_0_2 + 0.135449735449736*G0_1_0 - 0.090299823633157*G0_1_1 + 0.316049382716049*G0_1_2 + 0.135449735449736*G0_2_0 + 0.316049382716049*G0_2_1;
 
4231
    A[1224] = 1.44479717813051*G0_0_0 + 0.722398589065255*G0_0_1 + 0.722398589065254*G0_0_2 + 0.722398589065255*G0_1_0 + 1.44479717813051*G0_1_1 + 0.722398589065255*G0_1_2 + 0.722398589065254*G0_2_0 + 0.722398589065255*G0_2_1 + 1.44479717813051*G0_2_2;
 
4232
  }
 
4233
 
 
4234
};
 
4235
 
 
4236
/// This class defines the interface for the assembly of the global
 
4237
/// tensor corresponding to a form with r + n arguments, that is, a
 
4238
/// mapping
 
4239
///
 
4240
///     a : V1 x V2 x ... Vr x W1 x W2 x ... x Wn -> R
 
4241
///
 
4242
/// with arguments v1, v2, ..., vr, w1, w2, ..., wn. The rank r
 
4243
/// global tensor A is defined by
 
4244
///
 
4245
///     A = a(V1, V2, ..., Vr, w1, w2, ..., wn),
 
4246
///
 
4247
/// where each argument Vj represents the application to the
 
4248
/// sequence of basis functions of Vj and w1, w2, ..., wn are given
 
4249
/// fixed functions (coefficients).
 
4250
 
 
4251
class UFC_Poisson3D_4BilinearForm: public ufc::form
 
4252
{
 
4253
public:
 
4254
 
 
4255
  /// Constructor
 
4256
  UFC_Poisson3D_4BilinearForm() : ufc::form()
 
4257
  {
 
4258
    // Do nothing
 
4259
  }
 
4260
 
 
4261
  /// Destructor
 
4262
  virtual ~UFC_Poisson3D_4BilinearForm()
 
4263
  {
 
4264
    // Do nothing
 
4265
  }
 
4266
 
 
4267
  /// Return a string identifying the form
 
4268
  virtual const char* signature() const
 
4269
  {
 
4270
    return "(dXa0[0, 1, 2]/dxb0[0, 1, 2])(dXa1[0, 1, 2]/dxb0[0, 1, 2]) | ((d/dXa0[0, 1, 2])vi0[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34])*((d/dXa1[0, 1, 2])vi1[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34])*dX(0)";
 
4271
  }
 
4272
 
 
4273
  /// Return the rank of the global tensor (r)
 
4274
  virtual unsigned int rank() const
 
4275
  {
 
4276
    return 2;
 
4277
  }
 
4278
 
 
4279
  /// Return the number of coefficients (n)
 
4280
  virtual unsigned int num_coefficients() const
 
4281
  {
 
4282
    return 0;
 
4283
  }
 
4284
 
 
4285
  /// Return the number of cell integrals
 
4286
  virtual unsigned int num_cell_integrals() const
 
4287
  {
 
4288
    return 1;
 
4289
  }
 
4290
  
 
4291
  /// Return the number of exterior facet integrals
 
4292
  virtual unsigned int num_exterior_facet_integrals() const
 
4293
  {
 
4294
    return 0;
 
4295
  }
 
4296
  
 
4297
  /// Return the number of interior facet integrals
 
4298
  virtual unsigned int num_interior_facet_integrals() const
 
4299
  {
 
4300
    return 0;
 
4301
  }
 
4302
    
 
4303
  /// Create a new finite element for argument function i
 
4304
  virtual ufc::finite_element* create_finite_element(unsigned int i) const
 
4305
  {
 
4306
    switch ( i )
 
4307
    {
 
4308
    case 0:
 
4309
      return new UFC_Poisson3D_4BilinearForm_finite_element_0();
 
4310
      break;
 
4311
    case 1:
 
4312
      return new UFC_Poisson3D_4BilinearForm_finite_element_1();
 
4313
      break;
 
4314
    }
 
4315
    return 0;
 
4316
  }
 
4317
  
 
4318
  /// Create a new dof map for argument function i
 
4319
  virtual ufc::dof_map* create_dof_map(unsigned int i) const
 
4320
  {
 
4321
    switch ( i )
 
4322
    {
 
4323
    case 0:
 
4324
      return new UFC_Poisson3D_4BilinearForm_dof_map_0();
 
4325
      break;
 
4326
    case 1:
 
4327
      return new UFC_Poisson3D_4BilinearForm_dof_map_1();
 
4328
      break;
 
4329
    }
 
4330
    return 0;
 
4331
  }
 
4332
 
 
4333
  /// Create a new cell integral on sub domain i
 
4334
  virtual ufc::cell_integral* create_cell_integral(unsigned int i) const
 
4335
  {
 
4336
    return new UFC_Poisson3D_4BilinearForm_cell_integral_0();
 
4337
  }
 
4338
 
 
4339
  /// Create a new exterior facet integral on sub domain i
 
4340
  virtual ufc::exterior_facet_integral* create_exterior_facet_integral(unsigned int i) const
 
4341
  {
 
4342
    return 0;
 
4343
  }
 
4344
 
 
4345
  /// Create a new interior facet integral on sub domain i
 
4346
  virtual ufc::interior_facet_integral* create_interior_facet_integral(unsigned int i) const
 
4347
  {
 
4348
    return 0;
 
4349
  }
 
4350
 
 
4351
};
 
4352
 
 
4353
/// This class defines the interface for a finite element.
 
4354
 
 
4355
class UFC_Poisson3D_4LinearForm_finite_element_0: public ufc::finite_element
 
4356
{
 
4357
public:
 
4358
 
 
4359
  /// Constructor
 
4360
  UFC_Poisson3D_4LinearForm_finite_element_0() : ufc::finite_element()
 
4361
  {
 
4362
    // Do nothing
 
4363
  }
 
4364
 
 
4365
  /// Destructor
 
4366
  virtual ~UFC_Poisson3D_4LinearForm_finite_element_0()
 
4367
  {
 
4368
    // Do nothing
 
4369
  }
 
4370
 
 
4371
  /// Return a string identifying the finite element
 
4372
  virtual const char* signature() const
 
4373
  {
 
4374
    return "FiniteElement('Lagrange', 'tetrahedron', 4)";
 
4375
  }
 
4376
 
 
4377
  /// Return the cell shape
 
4378
  virtual ufc::shape cell_shape() const
 
4379
  {
 
4380
    return ufc::tetrahedron;
 
4381
  }
 
4382
 
 
4383
  /// Return the dimension of the finite element function space
 
4384
  virtual unsigned int space_dimension() const
 
4385
  {
 
4386
    return 35;
 
4387
  }
 
4388
 
 
4389
  /// Return the rank of the value space
 
4390
  virtual unsigned int value_rank() const
 
4391
  {
 
4392
    return 0;
 
4393
  }
 
4394
 
 
4395
  /// Return the dimension of the value space for axis i
 
4396
  virtual unsigned int value_dimension(unsigned int i) const
 
4397
  {
 
4398
    return 1;
 
4399
  }
 
4400
 
 
4401
  /// Evaluate basis function i at given point in cell
 
4402
  virtual void evaluate_basis(unsigned int i,
 
4403
                              double* values,
 
4404
                              const double* coordinates,
 
4405
                              const ufc::cell& c) const
 
4406
  {
 
4407
    // Extract vertex coordinates
 
4408
    const double * const * element_coordinates = c.coordinates;
 
4409
    
 
4410
    // Compute Jacobian of affine map from reference cell
 
4411
    const double J_00 = element_coordinates[1][0] - element_coordinates[0][0];
 
4412
    const double J_01 = element_coordinates[2][0] - element_coordinates[0][0];
 
4413
    const double J_02 = element_coordinates[3][0] - element_coordinates[0][0];
 
4414
    const double J_10 = element_coordinates[1][1] - element_coordinates[0][1];
 
4415
    const double J_11 = element_coordinates[2][1] - element_coordinates[0][1];
 
4416
    const double J_12 = element_coordinates[3][1] - element_coordinates[0][1];
 
4417
    const double J_20 = element_coordinates[1][2] - element_coordinates[0][2];
 
4418
    const double J_21 = element_coordinates[2][2] - element_coordinates[0][2];
 
4419
    const double J_22 = element_coordinates[3][2] - element_coordinates[0][2];
 
4420
      
 
4421
    // Compute sub determinants
 
4422
    const double d00 = J_11*J_22 - J_12*J_21;
 
4423
    const double d01 = J_12*J_20 - J_10*J_22;
 
4424
    const double d02 = J_10*J_21 - J_11*J_20;
 
4425
    
 
4426
    const double d10 = J_02*J_21 - J_01*J_22;
 
4427
    const double d11 = J_00*J_22 - J_02*J_20;
 
4428
    const double d12 = J_01*J_20 - J_00*J_21;
 
4429
    
 
4430
    const double d20 = J_01*J_12 - J_02*J_11;
 
4431
    const double d21 = J_02*J_10 - J_00*J_12;
 
4432
    const double d22 = J_00*J_11 - J_01*J_10;
 
4433
      
 
4434
    // Compute determinant of Jacobian
 
4435
    double detJ = J_00*d00 + J_10*d10 + J_20*d20;
 
4436
    
 
4437
    // Compute inverse of Jacobian
 
4438
    
 
4439
    // Compute constants
 
4440
    const double C0 = d00*(element_coordinates[0][0] - element_coordinates[2][0] - element_coordinates[3][0]) \
 
4441
                    + d10*(element_coordinates[0][1] - element_coordinates[2][1] - element_coordinates[3][1]) \
 
4442
                    + d20*(element_coordinates[0][2] - element_coordinates[2][2] - element_coordinates[3][2]);
 
4443
    
 
4444
    const double C1 = d01*(element_coordinates[0][0] - element_coordinates[1][0] - element_coordinates[3][0]) \
 
4445
                    + d11*(element_coordinates[0][1] - element_coordinates[1][1] - element_coordinates[3][1]) \
 
4446
                    + d21*(element_coordinates[0][2] - element_coordinates[1][2] - element_coordinates[3][2]);
 
4447
    
 
4448
    const double C2 = d02*(element_coordinates[0][0] - element_coordinates[1][0] - element_coordinates[2][0]) \
 
4449
                    + d12*(element_coordinates[0][1] - element_coordinates[1][1] - element_coordinates[2][1]) \
 
4450
                    + d22*(element_coordinates[0][2] - element_coordinates[1][2] - element_coordinates[2][2]);
 
4451
    
 
4452
    // Get coordinates and map to the UFC reference element
 
4453
    double x = (C0 + d00*coordinates[0] + d10*coordinates[1] + d20*coordinates[2]) / detJ;
 
4454
    double y = (C1 + d01*coordinates[0] + d11*coordinates[1] + d21*coordinates[2]) / detJ;
 
4455
    double z = (C2 + d02*coordinates[0] + d12*coordinates[1] + d22*coordinates[2]) / detJ;
 
4456
    
 
4457
    // Map coordinates to the reference cube
 
4458
    if (std::abs(y + z - 1.0) < 1e-14)
 
4459
      x = 1.0;
 
4460
    else
 
4461
      x = -2.0 * x/(y + z - 1.0) - 1.0;
 
4462
    if (std::abs(z - 1.0) < 1e-14)
 
4463
      y = -1.0;
 
4464
    else
 
4465
      y = 2.0 * y/(1.0 - z) - 1.0;
 
4466
    z = 2.0 * z - 1.0;
 
4467
    
 
4468
    // Reset values
 
4469
    *values = 0;
 
4470
    
 
4471
    // Map degree of freedom to element degree of freedom
 
4472
    const unsigned int dof = i;
 
4473
    
 
4474
    // Generate scalings
 
4475
    const double scalings_y_0 = 1;
 
4476
    const double scalings_y_1 = scalings_y_0*(0.5 - 0.5*y);
 
4477
    const double scalings_y_2 = scalings_y_1*(0.5 - 0.5*y);
 
4478
    const double scalings_y_3 = scalings_y_2*(0.5 - 0.5*y);
 
4479
    const double scalings_y_4 = scalings_y_3*(0.5 - 0.5*y);
 
4480
    const double scalings_z_0 = 1;
 
4481
    const double scalings_z_1 = scalings_z_0*(0.5 - 0.5*z);
 
4482
    const double scalings_z_2 = scalings_z_1*(0.5 - 0.5*z);
 
4483
    const double scalings_z_3 = scalings_z_2*(0.5 - 0.5*z);
 
4484
    const double scalings_z_4 = scalings_z_3*(0.5 - 0.5*z);
 
4485
    
 
4486
    // Compute psitilde_a
 
4487
    const double psitilde_a_0 = 1;
 
4488
    const double psitilde_a_1 = x;
 
4489
    const double psitilde_a_2 = 1.5*x*psitilde_a_1 - 0.5*psitilde_a_0;
 
4490
    const double psitilde_a_3 = 1.66666666666667*x*psitilde_a_2 - 0.666666666666667*psitilde_a_1;
 
4491
    const double psitilde_a_4 = 1.75*x*psitilde_a_3 - 0.75*psitilde_a_2;
 
4492
    
 
4493
    // Compute psitilde_bs
 
4494
    const double psitilde_bs_0_0 = 1;
 
4495
    const double psitilde_bs_0_1 = 1.5*y + 0.5;
 
4496
    const double psitilde_bs_0_2 = 0.111111111111111*psitilde_bs_0_1 + 1.66666666666667*y*psitilde_bs_0_1 - 0.555555555555556*psitilde_bs_0_0;
 
4497
    const double psitilde_bs_0_3 = 0.05*psitilde_bs_0_2 + 1.75*y*psitilde_bs_0_2 - 0.7*psitilde_bs_0_1;
 
4498
    const double psitilde_bs_0_4 = 0.0285714285714286*psitilde_bs_0_3 + 1.8*y*psitilde_bs_0_3 - 0.771428571428571*psitilde_bs_0_2;
 
4499
    const double psitilde_bs_1_0 = 1;
 
4500
    const double psitilde_bs_1_1 = 2.5*y + 1.5;
 
4501
    const double psitilde_bs_1_2 = 0.54*psitilde_bs_1_1 + 2.1*y*psitilde_bs_1_1 - 0.56*psitilde_bs_1_0;
 
4502
    const double psitilde_bs_1_3 = 0.285714285714286*psitilde_bs_1_2 + 2*y*psitilde_bs_1_2 - 0.714285714285714*psitilde_bs_1_1;
 
4503
    const double psitilde_bs_2_0 = 1;
 
4504
    const double psitilde_bs_2_1 = 3.5*y + 2.5;
 
4505
    const double psitilde_bs_2_2 = 1.02040816326531*psitilde_bs_2_1 + 2.57142857142857*y*psitilde_bs_2_1 - 0.551020408163265*psitilde_bs_2_0;
 
4506
    const double psitilde_bs_3_0 = 1;
 
4507
    const double psitilde_bs_3_1 = 4.5*y + 3.5;
 
4508
    const double psitilde_bs_4_0 = 1;
 
4509
    
 
4510
    // Compute psitilde_cs
 
4511
    const double psitilde_cs_00_0 = 1;
 
4512
    const double psitilde_cs_00_1 = 2*z + 1;
 
4513
    const double psitilde_cs_00_2 = 0.3125*psitilde_cs_00_1 + 1.875*z*psitilde_cs_00_1 - 0.5625*psitilde_cs_00_0;
 
4514
    const double psitilde_cs_00_3 = 0.155555555555556*psitilde_cs_00_2 + 1.86666666666667*z*psitilde_cs_00_2 - 0.711111111111111*psitilde_cs_00_1;
 
4515
    const double psitilde_cs_00_4 = 0.09375*psitilde_cs_00_3 + 1.875*z*psitilde_cs_00_3 - 0.78125*psitilde_cs_00_2;
 
4516
    const double psitilde_cs_01_0 = 1;
 
4517
    const double psitilde_cs_01_1 = 3*z + 2;
 
4518
    const double psitilde_cs_01_2 = 0.777777777777778*psitilde_cs_01_1 + 2.33333333333333*z*psitilde_cs_01_1 - 0.555555555555556*psitilde_cs_01_0;
 
4519
    const double psitilde_cs_01_3 = 0.428571428571429*psitilde_cs_01_2 + 2.14285714285714*z*psitilde_cs_01_2 - 0.714285714285714*psitilde_cs_01_1;
 
4520
    const double psitilde_cs_02_0 = 1;
 
4521
    const double psitilde_cs_02_1 = 4*z + 3;
 
4522
    const double psitilde_cs_02_2 = 1.265625*psitilde_cs_02_1 + 2.8125*z*psitilde_cs_02_1 - 0.546875*psitilde_cs_02_0;
 
4523
    const double psitilde_cs_03_0 = 1;
 
4524
    const double psitilde_cs_03_1 = 5*z + 4;
 
4525
    const double psitilde_cs_04_0 = 1;
 
4526
    const double psitilde_cs_10_0 = 1;
 
4527
    const double psitilde_cs_10_1 = 3*z + 2;
 
4528
    const double psitilde_cs_10_2 = 0.777777777777778*psitilde_cs_10_1 + 2.33333333333333*z*psitilde_cs_10_1 - 0.555555555555556*psitilde_cs_10_0;
 
4529
    const double psitilde_cs_10_3 = 0.428571428571429*psitilde_cs_10_2 + 2.14285714285714*z*psitilde_cs_10_2 - 0.714285714285714*psitilde_cs_10_1;
 
4530
    const double psitilde_cs_11_0 = 1;
 
4531
    const double psitilde_cs_11_1 = 4*z + 3;
 
4532
    const double psitilde_cs_11_2 = 1.265625*psitilde_cs_11_1 + 2.8125*z*psitilde_cs_11_1 - 0.546875*psitilde_cs_11_0;
 
4533
    const double psitilde_cs_12_0 = 1;
 
4534
    const double psitilde_cs_12_1 = 5*z + 4;
 
4535
    const double psitilde_cs_13_0 = 1;
 
4536
    const double psitilde_cs_20_0 = 1;
 
4537
    const double psitilde_cs_20_1 = 4*z + 3;
 
4538
    const double psitilde_cs_20_2 = 1.265625*psitilde_cs_20_1 + 2.8125*z*psitilde_cs_20_1 - 0.546875*psitilde_cs_20_0;
 
4539
    const double psitilde_cs_21_0 = 1;
 
4540
    const double psitilde_cs_21_1 = 5*z + 4;
 
4541
    const double psitilde_cs_22_0 = 1;
 
4542
    const double psitilde_cs_30_0 = 1;
 
4543
    const double psitilde_cs_30_1 = 5*z + 4;
 
4544
    const double psitilde_cs_31_0 = 1;
 
4545
    const double psitilde_cs_40_0 = 1;
 
4546
    
 
4547
    // Compute basisvalues
 
4548
    const double basisvalue0 = 0.866025403784439*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_0;
 
4549
    const double basisvalue1 = 2.73861278752583*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_0;
 
4550
    const double basisvalue2 = 1.58113883008419*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_0;
 
4551
    const double basisvalue3 = 1.11803398874989*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_1;
 
4552
    const double basisvalue4 = 5.1234753829798*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_0;
 
4553
    const double basisvalue5 = 3.96862696659689*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_0;
 
4554
    const double basisvalue6 = 2.29128784747792*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_0;
 
4555
    const double basisvalue7 = 3.24037034920393*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_1;
 
4556
    const double basisvalue8 = 1.87082869338697*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_1;
 
4557
    const double basisvalue9 = 1.3228756555323*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_2;
 
4558
    const double basisvalue10 = 7.93725393319377*psitilde_a_3*scalings_y_3*psitilde_bs_3_0*scalings_z_3*psitilde_cs_30_0;
 
4559
    const double basisvalue11 = 6.70820393249937*psitilde_a_2*scalings_y_2*psitilde_bs_2_1*scalings_z_3*psitilde_cs_21_0;
 
4560
    const double basisvalue12 = 5.19615242270663*psitilde_a_1*scalings_y_1*psitilde_bs_1_2*scalings_z_3*psitilde_cs_12_0;
 
4561
    const double basisvalue13 = 3*psitilde_a_0*scalings_y_0*psitilde_bs_0_3*scalings_z_3*psitilde_cs_03_0;
 
4562
    const double basisvalue14 = 5.80947501931113*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_1;
 
4563
    const double basisvalue15 = 4.5*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_1;
 
4564
    const double basisvalue16 = 2.59807621135332*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_1;
 
4565
    const double basisvalue17 = 3.67423461417477*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_2;
 
4566
    const double basisvalue18 = 2.12132034355964*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_2;
 
4567
    const double basisvalue19 = 1.5*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_3;
 
4568
    const double basisvalue20 = 11.1242977306435*psitilde_a_4*scalings_y_4*psitilde_bs_4_0*scalings_z_4*psitilde_cs_40_0;
 
4569
    const double basisvalue21 = 9.81070843517429*psitilde_a_3*scalings_y_3*psitilde_bs_3_1*scalings_z_4*psitilde_cs_31_0;
 
4570
    const double basisvalue22 = 8.2915619758885*psitilde_a_2*scalings_y_2*psitilde_bs_2_2*scalings_z_4*psitilde_cs_22_0;
 
4571
    const double basisvalue23 = 6.42261628933256*psitilde_a_1*scalings_y_1*psitilde_bs_1_3*scalings_z_4*psitilde_cs_13_0;
 
4572
    const double basisvalue24 = 3.70809924354783*psitilde_a_0*scalings_y_0*psitilde_bs_0_4*scalings_z_4*psitilde_cs_04_0;
 
4573
    const double basisvalue25 = 8.77496438739212*psitilde_a_3*scalings_y_3*psitilde_bs_3_0*scalings_z_3*psitilde_cs_30_1;
 
4574
    const double basisvalue26 = 7.41619848709566*psitilde_a_2*scalings_y_2*psitilde_bs_2_1*scalings_z_3*psitilde_cs_21_1;
 
4575
    const double basisvalue27 = 5.74456264653803*psitilde_a_1*scalings_y_1*psitilde_bs_1_2*scalings_z_3*psitilde_cs_12_1;
 
4576
    const double basisvalue28 = 3.3166247903554*psitilde_a_0*scalings_y_0*psitilde_bs_0_3*scalings_z_3*psitilde_cs_03_1;
 
4577
    const double basisvalue29 = 6.42261628933256*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_2;
 
4578
    const double basisvalue30 = 4.9749371855331*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_2;
 
4579
    const double basisvalue31 = 2.87228132326901*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_2;
 
4580
    const double basisvalue32 = 4.06201920231798*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_3;
 
4581
    const double basisvalue33 = 2.34520787991171*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_3;
 
4582
    const double basisvalue34 = 1.6583123951777*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_4;
 
4583
    
 
4584
    // Table(s) of coefficients
 
4585
    const static double coefficients0[35][35] = \
 
4586
    {{-0.0137464349807051, -0.0144900147488139, -0.00836581391578937, -0.00591552374999941, 0, 0, 0, 0, 0, 0, -0.00671936840905293, -0.00567890279999946, -0.00439885919382571, -0.00253968253968254, -0.00491807409042211, -0.00380952380952381, -0.00219942959691287, -0.00311046316543895, -0.0017958267458706, -0.00126984126984128, 0.0136980289516341, 0.0120805260192622, 0.010209907964538, 0.00790856070259325, 0.00456600965054471, 0.0108051509532101, 0.00913201930108942, 0.00707363173407281, 0.00408396318581522, 0.00790856070259324, 0.00612594477872282, 0.0035368158670364, 0.00500181296677924, 0.00288779806280616, 0.00204198159290761},
 
4587
    {-0.0137464349807054, 0.0144900147488139, -0.00836581391578934, -0.00591552374999945, 0, 0, 0, 0, 0, 0, 0.00671936840905293, -0.00567890279999946, 0.00439885919382572, -0.00253968253968254, -0.00491807409042213, 0.00380952380952382, -0.00219942959691286, 0.00311046316543897, -0.0017958267458706, -0.00126984126984127, 0.0136980289516341, -0.0120805260192622, 0.010209907964538, -0.00790856070259325, 0.00456600965054471, -0.0108051509532101, 0.00913201930108941, -0.0070736317340728, 0.00408396318581521, 0.00790856070259325, -0.00612594477872282, 0.0035368158670364, -0.00500181296677924, 0.00288779806280615, 0.00204198159290761},
 
4588
    {-0.0137464349807053, 0, 0.0167316278315787, -0.00591552374999946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0101587301587302, 0, 0, -0.00659828879073857, 0, 0.00359165349174119, -0.00126984126984127, 0, 0, 0, 0, 0.0228300482527235, 0, 0, 0, -0.0163358527432608, 0, 0, 0.0106104476011092, 0, -0.0057755961256123, 0.00204198159290761},
 
4589
    {-0.0137464349807054, 0, 0, 0.0177465712499983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0126984126984127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0306297238936141},
 
4590
    {0.0439885919382572, 0, 0.026770604530526, 0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, 0, 0.0406349206349206, 0, 0, 0.00439885919382572, 0, -0.0143666139669648, 0.00761904761904763, 0, 0, 0, 0, 0, 0, 0, 0, 0.0367556686723369, 0, 0, -0.0424417904044368, 0, 0.0303218796594646, -0.0122518895574456},
 
4591
    {-0.0329914439536931, 0, -0.0200779533978945, -0.0141972569999986, 0, 0, -0.00969857289937744, 0, 0.0712696645099798, -0.050395263067897, 0, 0, 0, 0, 0, 0, 0.0461880215351701, 0, 0.0107749604752236, -0.0190476190476191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0495154221385096, 0, -0.0606437593189292, 0.0306297238936141},
 
4592
    {0.0439885919382573, 0, 0.0267706045305259, 0.0189296759999982, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, 0, 0.0359165349174119, 0.0253968253968254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0505364660991076, -0.0408396318581522},
 
4593
    {0.0439885919382573, 0.0231840235981023, -0.0133853022652629, 0.0189296759999982, 0.0433733365754904, -0.0335968420452647, 0.0193971457987549, -0.0274317066599275, 0.01583770322444, 0.0111989473484215, 0.0268774736362117, -0.0227156111999979, 0.0175954367753029, -0.0101587301587302, 0.00327871606028141, -0.00253968253968255, 0.0014662863979419, -0.0124418526617558, 0.00718330698348238, 0.00761904761904763, 0, 0, 0, 0, 0, 0.0243115896447228, -0.0205470434274512, 0.0159156714016638, -0.00918891716808423, -0.031634242810373, 0.0245037791148913, -0.0141472634681456, 0.026259518075591, -0.0151609398297323, -0.0122518895574456},
 
4594
    {-0.0329914439536929, -0.0173880176985766, 0.0100389766989472, -0.0141972569999986, -0.00722888942924838, 0.00559947367421081, -0.00323285763312582, 0.0617213399848368, -0.03563483225499, -0.050395263067897, 0, 0, 0, 0, 0.0344265186329548, -0.0266666666666667, 0.01539600717839, 0.00933138949631686, -0.00538748023761177, -0.0190476190476191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0369066166121018, -0.0285877423007065, 0.0165051407128365, -0.052519036151182, 0.0303218796594646, 0.0306297238936141},
 
4595
    {0.0439885919382573, 0.0231840235981023, -0.013385302265263, 0.0189296759999982, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, 0.0311046316543895, -0.017958267458706, 0.0253968253968255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0437658634593183, -0.0252682330495538, -0.0408396318581521},
 
4596
    {0.0439885919382572, 0.0231840235981023, 0.013385302265263, -0.0189296759999982, 0.0433733365754903, -0.0335968420452647, 0.0193971457987549, -0.0274317066599275, 0.01583770322444, 0.0111989473484215, 0.0268774736362117, 0, -0.0117302911835353, 0.0101587301587302, -0.0229510124219699, 0.00761904761904761, -0.00146628639794191, 0.0165891368823411, -0.0071833069834824, -0.00761904761904763, 0, 0.0241610520385245, -0.0357346778758831, 0.0355885231616696, -0.0228300482527235, -0.00270128773830253, -0.0114150241263618, 0.0159156714016638, -0.0112308987609918, 0.00395428035129663, 0.00306297238936141, -0.0035368158670364, -0.00375135972508443, 0.00072194951570154, 0.00204198159290761},
 
4597
    {-0.0329914439536929, -0.0173880176985768, -0.0100389766989472, 0.0141972569999986, -0.00722888942924839, 0.0615942104163185, -0.0614242950293904, -0.00685792666498187, -0.00395942580611001, 0.00559947367421077, 0, 0.0340734167999968, 0, -0.0152380952380952, -0.00491807409042213, -0.0266666666666667, 0.0175954367753029, 0.00933138949631688, 0.00538748023761179, -0.00761904761904761, 0, 0, 0.0357346778758831, -0.0593142052694494, 0.0456600965054471, 0, -0.00913201930108943, 0, 0.00408396318581521, 0.00131809345043221, 0.00714693557517662, -0.00471575448938186, -0.00250090648338962, -0.00144389903140307, 0.00204198159290761},
 
4598
    {0.0439885919382572, 0.0231840235981022, 0.013385302265263, -0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, 0.0293257279588382, 0.0101587301587302, 0, -0.0101587301587302, -0.0219942959691286, 0.00207364211029264, 0.017958267458706, -0.00761904761904762, 0, 0, 0, 0.0395428035129662, -0.0456600965054471, 0, 0, -0.017684079335182, 0.0142938711503532, 0, 0.00612594477872282, 0, -0.00125045324169481, -0.00360974757850769, 0.0020419815929076},
 
4599
    {0.043988591938257, -0.0231840235981023, -0.0133853022652629, 0.0189296759999983, 0.0433733365754903, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484216, -0.0268774736362117, -0.0227156111999979, -0.0175954367753029, -0.0101587301587302, 0.00327871606028139, 0.00253968253968253, 0.0014662863979419, 0.0124418526617558, 0.00718330698348236, 0.00761904761904761, 0, 0, 0, 0, 0, -0.0243115896447228, -0.0205470434274512, -0.0159156714016638, -0.00918891716808424, -0.031634242810373, -0.0245037791148913, -0.0141472634681456, -0.026259518075591, -0.0151609398297323, -0.0122518895574456},
 
4600
    {-0.0329914439536929, 0.0173880176985768, 0.0100389766989471, -0.0141972569999987, -0.00722888942924838, -0.00559947367421082, -0.00323285763312581, -0.0617213399848367, -0.03563483225499, -0.050395263067897, 0, 0, 0, 0, 0.0344265186329548, 0.0266666666666667, 0.01539600717839, -0.00933138949631689, -0.00538748023761178, -0.019047619047619, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0369066166121018, 0.0285877423007065, 0.0165051407128365, 0.0525190361511819, 0.0303218796594646, 0.0306297238936141},
 
4601
    {0.0439885919382572, -0.0231840235981023, -0.0133853022652629, 0.0189296759999981, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, -0.0311046316543896, -0.017958267458706, 0.0253968253968255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0437658634593183, -0.0252682330495538, -0.0408396318581521},
 
4602
    {0.0439885919382572, -0.0231840235981023, 0.013385302265263, -0.0189296759999982, 0.0433733365754904, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484216, -0.0268774736362117, 0, 0.0117302911835352, 0.0101587301587302, -0.0229510124219699, -0.00761904761904762, -0.00146628639794191, -0.0165891368823411, -0.00718330698348239, -0.00761904761904763, 0, -0.0241610520385245, -0.0357346778758831, -0.0355885231616696, -0.0228300482527235, 0.00270128773830254, -0.0114150241263618, -0.0159156714016638, -0.0112308987609918, 0.00395428035129662, -0.00306297238936141, -0.0035368158670364, 0.00375135972508443, 0.000721949515701533, 0.00204198159290761},
 
4603
    {-0.0329914439536929, 0.0173880176985766, -0.0100389766989472, 0.0141972569999987, -0.00722888942924841, -0.0615942104163186, -0.0614242950293904, 0.00685792666498186, -0.00395942580610998, 0.00559947367421075, 0, 0.0340734167999968, 0, -0.0152380952380952, -0.00491807409042213, 0.0266666666666667, 0.0175954367753029, -0.00933138949631688, 0.00538748023761179, -0.00761904761904763, 0, 0, 0.0357346778758831, 0.0593142052694494, 0.0456600965054471, 0, -0.00913201930108943, 0, 0.0040839631858152, 0.00131809345043222, -0.00714693557517663, -0.00471575448938187, 0.00250090648338962, -0.00144389903140308, 0.00204198159290761},
 
4604
    {0.0439885919382573, -0.0231840235981022, 0.013385302265263, -0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, -0.0293257279588382, 0.0101587301587302, 0, 0.0101587301587301, -0.0219942959691286, -0.00207364211029265, 0.017958267458706, -0.00761904761904761, 0, 0, 0, -0.0395428035129663, -0.0456600965054471, 0, 0, 0.017684079335182, 0.0142938711503532, 0, -0.00612594477872281, 0, 0.00125045324169481, -0.00360974757850769, 0.0020419815929076},
 
4605
    {0.0439885919382571, 0, -0.026770604530526, -0.0189296759999982, 0.0433733365754904, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484215, 0.0134387368181058, -0.0113578055999989, -0.0205280095711867, -0.0152380952380952, -0.00983614818084424, -0.0177777777777778, -0.0131965775814772, -0.0145154947720485, -0.0107749604752236, -0.00761904761904761, -0.0547921158065365, -0.0241610520385245, -0.00510495398226901, 0.00395428035129663, 0.00456600965054471, -0.0216103019064202, -0.00456600965054471, 0.00353681586703639, 0.00408396318581521, -0.00395428035129661, 0.0030629723893614, 0.0035368158670364, 0.00250090648338961, 0.00288779806280615, 0.00204198159290761},
 
4606
    {-0.0329914439536931, 0, 0.0200779533978945, 0.0141972569999987, -0.0867466731509807, 0, 0.00969857289937743, 0, 0.00791885161221998, 0.00559947367421076, 0, 0.0340734167999968, 0, -0.0152380952380953, 0.0295084445425327, 0, -0.0131965775814772, 0, -0.0107749604752236, -0.00761904761904762, 0.0821881737098047, 0, -0.010209907964538, 0, 0.00456600965054471, 0, -0.00913201930108944, 0, 0.00408396318581521, -0.00790856070259326, 0, 0.0035368158670364, 0, 0.00288779806280615, 0.00204198159290761},
 
4607
    {0.0439885919382573, 0, -0.026770604530526, -0.0189296759999982, 0.0433733365754903, -0.0335968420452646, 0.0193971457987549, -0.0274317066599274, 0.01583770322444, 0.0111989473484215, -0.0134387368181058, -0.0113578055999989, 0.0205280095711867, -0.0152380952380952, -0.00983614818084423, 0.0177777777777778, -0.0131965775814772, 0.0145154947720485, -0.0107749604752236, -0.00761904761904761, -0.0547921158065365, 0.0241610520385245, -0.005104953982269, -0.00395428035129662, 0.00456600965054471, 0.0216103019064202, -0.0045660096505447, -0.0035368158670364, 0.00408396318581521, -0.00395428035129662, -0.00306297238936141, 0.00353681586703641, -0.00250090648338962, 0.00288779806280615, 0.00204198159290761},
 
4608
    {0.0439885919382573, 0.139104141588614, -0.080311813591578, -0.0567890279999947, 0.0578311154339872, 0.0335968420452646, -0.0420271492306356, 0.0274317066599275, -0.0475131096733199, -0.0167984210226323, 0, 0.0454312223999957, -0.0586514559176763, 0.0406349206349207, 0.039344592723377, 0.00253968253968254, -0.0109971479845643, -0.0601356211984865, 0.017958267458706, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0.0410940868549024, -0.053052238005546, 0.0367556686723369, -0.0105447476034577, -0.0245037791148913, 0.0235787724469093, 0.0175063453837273, 0, -0.0122518895574457},
 
4609
    {0.0439885919382572, 0, 0.160623627183156, -0.0567890279999947, 0, 0.0783926314389509, 0.0096985728993774, -0.0274317066599275, 0.0475131096733199, -0.0167984210226323, 0, 0, 0.0586514559176763, -0.0609523809523809, 0, 0.033015873015873, 0.0241937255660415, -0.0145154947720485, -0.0610581093596003, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0, 0.053052238005546, -0.0551335030085053, 0, -0.0326717054865217, 0.0141472634681456, 0.00875317269186366, 0.0151609398297323, -0.0122518895574456},
 
4610
    {0.0439885919382571, 0, 0, 0.170367083999984, 0, -0.0111989473484216, 0.00969857289937744, 0.0822951199797824, 0.0475131096733199, -0.0167984210226324, 0, 0, 0, 0, 0, 0.0533333333333333, -0.0461880215351701, 0.0435464843161454, 0.0251415744421883, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.057175484601413, -0.0495154221385096, -0.026259518075591, -0.0151609398297323, 0.0306297238936141},
 
4611
    {0.0439885919382571, -0.139104141588614, -0.0803118135915779, -0.0567890279999947, 0.0578311154339871, -0.0335968420452646, -0.0420271492306356, -0.0274317066599274, -0.0475131096733199, -0.0167984210226323, 0, 0.0454312223999957, 0.0586514559176763, 0.0406349206349206, 0.0393445927233769, -0.00253968253968253, -0.0109971479845643, 0.0601356211984865, 0.0179582674587059, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0.0410940868549024, 0.053052238005546, 0.0367556686723369, -0.0105447476034577, 0.0245037791148913, 0.0235787724469093, -0.0175063453837273, 0, -0.0122518895574457},
 
4612
    {0.0439885919382571, 0, 0.160623627183156, -0.0567890279999946, 0, -0.0783926314389509, 0.00969857289937745, 0.0274317066599275, 0.0475131096733199, -0.0167984210226323, 0, 0, -0.0586514559176763, -0.0609523809523809, 0, -0.033015873015873, 0.0241937255660415, 0.0145154947720485, -0.0610581093596003, 0.0393650793650793, 0, 0, 0, 0, 0, 0, 0, -0.053052238005546, -0.0551335030085053, 0, 0.0326717054865217, 0.0141472634681456, -0.00875317269186368, 0.0151609398297323, -0.0122518895574456},
 
4613
    {0.0439885919382572, 0, 0, 0.170367083999984, 0, 0.0111989473484215, 0.00969857289937745, -0.0822951199797824, 0.0475131096733199, -0.0167984210226323, 0, 0, 0, 0, 0, -0.0533333333333333, -0.0461880215351701, -0.0435464843161453, 0.0251415744421883, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0571754846014129, -0.0495154221385096, 0.026259518075591, -0.0151609398297323, 0.0306297238936141},
 
4614
    {0.0439885919382573, -0.139104141588614, -0.0803118135915779, -0.0567890279999946, -0.0433733365754903, 0.0447957893936862, 0.0484928644968872, -0.0548634133198549, 0, -0.0167984210226323, 0.0806324209086351, 0.0227156111999979, -0.0058651455917676, -0.0101587301587302, -0.00327871606028142, 0.0304761904761905, 0.0271262983619253, 0.045620126426438, 0.0430998419008943, 0.0393650793650794, 0, 0, 0, 0, 0, 0.0729347689341683, 0.0205470434274512, -0.00530522380055458, -0.00918891716808423, 0.031634242810373, -0.00816792637163039, -0.0141472634681456, -0.00875317269186365, -0.0151609398297323, -0.0122518895574456},
 
4615
    {0.0439885919382571, 0.139104141588614, -0.0803118135915779, -0.0567890279999947, -0.0433733365754904, -0.0447957893936862, 0.0484928644968873, 0.0548634133198549, 0, -0.0167984210226323, -0.0806324209086351, 0.0227156111999979, 0.0058651455917676, -0.0101587301587302, -0.00327871606028142, -0.0304761904761905, 0.0271262983619253, -0.045620126426438, 0.0430998419008943, 0.0393650793650794, 0, 0, 0, 0, 0, -0.0729347689341683, 0.0205470434274512, 0.00530522380055459, -0.00918891716808424, 0.031634242810373, 0.00816792637163042, -0.0141472634681456, 0.00875317269186367, -0.0151609398297323, -0.0122518895574456},
 
4616
    {0.0439885919382572, 0, 0, 0.170367083999984, 0.0144577788584968, 0, -0.00323285763312585, 0, -0.0950262193466398, -0.0167984210226323, 0, 0, 0, 0, -0.0688530372659096, 0, 0.01539600717839, 0, -0.0502831488843767, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0738132332242036, 0, 0.0165051407128365, 0, 0.0303218796594646, 0.0306297238936141},
 
4617
    {0.0439885919382573, -0.139104141588614, -0.0803118135915779, -0.0567890279999947, -0.0433733365754903, -0.0447957893936862, -0.00969857289937743, 0.0548634133198549, 0.03167540644888, 0.0391963157194754, 0.0806324209086351, 0, 0.0527863103259086, 0.0609523809523809, 0.0229510124219699, 0.0101587301587302, 0.0168622935763319, -0.0124418526617558, -0.00718330698348239, -0.013968253968254, 0, 0.0724831561155734, 0.0357346778758831, -0.0118628410538899, -0.0228300482527235, -0.00810386321490759, 0.0114150241263618, -0.00530522380055459, -0.0112308987609918, -0.00395428035129662, -0.00102099079645379, -0.0035368158670364, 0.00125045324169481, 0.000721949515701537, 0.00204198159290762},
 
4618
    {0.0439885919382571, 0.139104141588614, -0.080311813591578, -0.0567890279999947, -0.0433733365754904, 0.0447957893936862, -0.00969857289937742, -0.0548634133198549, 0.0316754064488799, 0.0391963157194754, -0.0806324209086351, 0, -0.0527863103259086, 0.060952380952381, 0.0229510124219699, -0.0101587301587302, 0.0168622935763319, 0.0124418526617558, -0.00718330698348236, -0.013968253968254, 0, -0.0724831561155734, 0.0357346778758831, 0.0118628410538899, -0.0228300482527236, 0.00810386321490761, 0.0114150241263618, 0.00530522380055459, -0.0112308987609918, -0.00395428035129662, 0.00102099079645379, -0.0035368158670364, -0.0012504532416948, 0.000721949515701528, 0.0020419815929076},
 
4619
    {0.0439885919382572, 0, 0.160623627183156, -0.0567890279999947, 0.0144577788584968, 0, -0.0614242950293905, 0, -0.0633508128977598, 0.0391963157194754, 0, -0.0681468335999936, 0, -0.0914285714285715, 0.00983614818084423, 0, 0.0285925847598672, 0, 0.0143666139669647, -0.0139682539682539, 0, 0, -0.0714693557517662, 0, 0.0456600965054471, 0, 0.0182640386021788, 0, 0.0040839631858152, -0.00263618690086443, 0, -0.00471575448938186, 0, -0.00144389903140306, 0.00204198159290759},
 
4620
    {0.351908735506058, 0, 0, 0, -0.115662230867974, 0, -0.129314305325032, 0, 0, -0.134387368181059, 0, -0.0908624447999914, 0, 0.0406349206349206, -0.0786891854467539, 0, -0.0879771838765144, 0, 0, 0.0711111111111111, 0, 0, 0, 0, 0, 0, -0.0821881737098047, 0, 0.0367556686723369, 0.0210894952069153, 0, 0.0235787724469093, 0, 0, -0.0122518895574456}};
 
4621
    
 
4622
    // Extract relevant coefficients
 
4623
    const double coeff0_0 = coefficients0[dof][0];
 
4624
    const double coeff0_1 = coefficients0[dof][1];
 
4625
    const double coeff0_2 = coefficients0[dof][2];
 
4626
    const double coeff0_3 = coefficients0[dof][3];
 
4627
    const double coeff0_4 = coefficients0[dof][4];
 
4628
    const double coeff0_5 = coefficients0[dof][5];
 
4629
    const double coeff0_6 = coefficients0[dof][6];
 
4630
    const double coeff0_7 = coefficients0[dof][7];
 
4631
    const double coeff0_8 = coefficients0[dof][8];
 
4632
    const double coeff0_9 = coefficients0[dof][9];
 
4633
    const double coeff0_10 = coefficients0[dof][10];
 
4634
    const double coeff0_11 = coefficients0[dof][11];
 
4635
    const double coeff0_12 = coefficients0[dof][12];
 
4636
    const double coeff0_13 = coefficients0[dof][13];
 
4637
    const double coeff0_14 = coefficients0[dof][14];
 
4638
    const double coeff0_15 = coefficients0[dof][15];
 
4639
    const double coeff0_16 = coefficients0[dof][16];
 
4640
    const double coeff0_17 = coefficients0[dof][17];
 
4641
    const double coeff0_18 = coefficients0[dof][18];
 
4642
    const double coeff0_19 = coefficients0[dof][19];
 
4643
    const double coeff0_20 = coefficients0[dof][20];
 
4644
    const double coeff0_21 = coefficients0[dof][21];
 
4645
    const double coeff0_22 = coefficients0[dof][22];
 
4646
    const double coeff0_23 = coefficients0[dof][23];
 
4647
    const double coeff0_24 = coefficients0[dof][24];
 
4648
    const double coeff0_25 = coefficients0[dof][25];
 
4649
    const double coeff0_26 = coefficients0[dof][26];
 
4650
    const double coeff0_27 = coefficients0[dof][27];
 
4651
    const double coeff0_28 = coefficients0[dof][28];
 
4652
    const double coeff0_29 = coefficients0[dof][29];
 
4653
    const double coeff0_30 = coefficients0[dof][30];
 
4654
    const double coeff0_31 = coefficients0[dof][31];
 
4655
    const double coeff0_32 = coefficients0[dof][32];
 
4656
    const double coeff0_33 = coefficients0[dof][33];
 
4657
    const double coeff0_34 = coefficients0[dof][34];
 
4658
    
 
4659
    // Compute value(s)
 
4660
    *values = coeff0_0*basisvalue0 + coeff0_1*basisvalue1 + coeff0_2*basisvalue2 + coeff0_3*basisvalue3 + coeff0_4*basisvalue4 + coeff0_5*basisvalue5 + coeff0_6*basisvalue6 + coeff0_7*basisvalue7 + coeff0_8*basisvalue8 + coeff0_9*basisvalue9 + coeff0_10*basisvalue10 + coeff0_11*basisvalue11 + coeff0_12*basisvalue12 + coeff0_13*basisvalue13 + coeff0_14*basisvalue14 + coeff0_15*basisvalue15 + coeff0_16*basisvalue16 + coeff0_17*basisvalue17 + coeff0_18*basisvalue18 + coeff0_19*basisvalue19 + coeff0_20*basisvalue20 + coeff0_21*basisvalue21 + coeff0_22*basisvalue22 + coeff0_23*basisvalue23 + coeff0_24*basisvalue24 + coeff0_25*basisvalue25 + coeff0_26*basisvalue26 + coeff0_27*basisvalue27 + coeff0_28*basisvalue28 + coeff0_29*basisvalue29 + coeff0_30*basisvalue30 + coeff0_31*basisvalue31 + coeff0_32*basisvalue32 + coeff0_33*basisvalue33 + coeff0_34*basisvalue34;
 
4661
  }
 
4662
 
 
4663
  /// Evaluate all basis functions at given point in cell
 
4664
  virtual void evaluate_basis_all(double* values,
 
4665
                                  const double* coordinates,
 
4666
                                  const ufc::cell& c) const
 
4667
  {
 
4668
    throw std::runtime_error("The vectorised version of evaluate_basis() is not yet implemented.");
 
4669
  }
 
4670
 
 
4671
  /// Evaluate order n derivatives of basis function i at given point in cell
 
4672
  virtual void evaluate_basis_derivatives(unsigned int i,
 
4673
                                          unsigned int n,
 
4674
                                          double* values,
 
4675
                                          const double* coordinates,
 
4676
                                          const ufc::cell& c) const
 
4677
  {
 
4678
    // Extract vertex coordinates
 
4679
    const double * const * element_coordinates = c.coordinates;
 
4680
    
 
4681
    // Compute Jacobian of affine map from reference cell
 
4682
    const double J_00 = element_coordinates[1][0] - element_coordinates[0][0];
 
4683
    const double J_01 = element_coordinates[2][0] - element_coordinates[0][0];
 
4684
    const double J_02 = element_coordinates[3][0] - element_coordinates[0][0];
 
4685
    const double J_10 = element_coordinates[1][1] - element_coordinates[0][1];
 
4686
    const double J_11 = element_coordinates[2][1] - element_coordinates[0][1];
 
4687
    const double J_12 = element_coordinates[3][1] - element_coordinates[0][1];
 
4688
    const double J_20 = element_coordinates[1][2] - element_coordinates[0][2];
 
4689
    const double J_21 = element_coordinates[2][2] - element_coordinates[0][2];
 
4690
    const double J_22 = element_coordinates[3][2] - element_coordinates[0][2];
 
4691
      
 
4692
    // Compute sub determinants
 
4693
    const double d00 = J_11*J_22 - J_12*J_21;
 
4694
    const double d01 = J_12*J_20 - J_10*J_22;
 
4695
    const double d02 = J_10*J_21 - J_11*J_20;
 
4696
    
 
4697
    const double d10 = J_02*J_21 - J_01*J_22;
 
4698
    const double d11 = J_00*J_22 - J_02*J_20;
 
4699
    const double d12 = J_01*J_20 - J_00*J_21;
 
4700
    
 
4701
    const double d20 = J_01*J_12 - J_02*J_11;
 
4702
    const double d21 = J_02*J_10 - J_00*J_12;
 
4703
    const double d22 = J_00*J_11 - J_01*J_10;
 
4704
      
 
4705
    // Compute determinant of Jacobian
 
4706
    double detJ = J_00*d00 + J_10*d10 + J_20*d20;
 
4707
    
 
4708
    // Compute inverse of Jacobian
 
4709
    
 
4710
    // Compute constants
 
4711
    const double C0 = d00*(element_coordinates[0][0] - element_coordinates[2][0] - element_coordinates[3][0]) \
 
4712
                    + d10*(element_coordinates[0][1] - element_coordinates[2][1] - element_coordinates[3][1]) \
 
4713
                    + d20*(element_coordinates[0][2] - element_coordinates[2][2] - element_coordinates[3][2]);
 
4714
    
 
4715
    const double C1 = d01*(element_coordinates[0][0] - element_coordinates[1][0] - element_coordinates[3][0]) \
 
4716
                    + d11*(element_coordinates[0][1] - element_coordinates[1][1] - element_coordinates[3][1]) \
 
4717
                    + d21*(element_coordinates[0][2] - element_coordinates[1][2] - element_coordinates[3][2]);
 
4718
    
 
4719
    const double C2 = d02*(element_coordinates[0][0] - element_coordinates[1][0] - element_coordinates[2][0]) \
 
4720
                    + d12*(element_coordinates[0][1] - element_coordinates[1][1] - element_coordinates[2][1]) \
 
4721
                    + d22*(element_coordinates[0][2] - element_coordinates[1][2] - element_coordinates[2][2]);
 
4722
    
 
4723
    // Get coordinates and map to the UFC reference element
 
4724
    double x = (C0 + d00*coordinates[0] + d10*coordinates[1] + d20*coordinates[2]) / detJ;
 
4725
    double y = (C1 + d01*coordinates[0] + d11*coordinates[1] + d21*coordinates[2]) / detJ;
 
4726
    double z = (C2 + d02*coordinates[0] + d12*coordinates[1] + d22*coordinates[2]) / detJ;
 
4727
    
 
4728
    // Map coordinates to the reference cube
 
4729
    if (std::abs(y + z - 1.0) < 1e-14)
 
4730
      x = 1.0;
 
4731
    else
 
4732
      x = -2.0 * x/(y + z - 1.0) - 1.0;
 
4733
    if (std::abs(z - 1.0) < 1e-14)
 
4734
      y = -1.0;
 
4735
    else
 
4736
      y = 2.0 * y/(1.0 - z) - 1.0;
 
4737
    z = 2.0 * z - 1.0;
 
4738
    
 
4739
    // Compute number of derivatives
 
4740
    unsigned int num_derivatives = 1;
 
4741
    
 
4742
    for (unsigned int j = 0; j < n; j++)
 
4743
      num_derivatives *= 3;
 
4744
    
 
4745
    
 
4746
    // Declare pointer to two dimensional array that holds combinations of derivatives and initialise
 
4747
    unsigned int **combinations = new unsigned int *[num_derivatives];
 
4748
        
 
4749
    for (unsigned int j = 0; j < num_derivatives; j++)
 
4750
    {
 
4751
      combinations[j] = new unsigned int [n];
 
4752
      for (unsigned int k = 0; k < n; k++)
 
4753
        combinations[j][k] = 0;
 
4754
    }
 
4755
        
 
4756
    // Generate combinations of derivatives
 
4757
    for (unsigned int row = 1; row < num_derivatives; row++)
 
4758
    {
 
4759
      for (unsigned int num = 0; num < row; num++)
 
4760
      {
 
4761
        for (unsigned int col = n-1; col+1 > 0; col--)
 
4762
        {
 
4763
          if (combinations[row][col] + 1 > 2)
 
4764
            combinations[row][col] = 0;
 
4765
          else
 
4766
          {
 
4767
            combinations[row][col] += 1;
 
4768
            break;
 
4769
          }
 
4770
        }
 
4771
      }
 
4772
    }
 
4773
    
 
4774
    // Compute inverse of Jacobian
 
4775
    const double Jinv[3][3] ={{d00 / detJ, d10 / detJ, d20 / detJ}, {d01 / detJ, d11 / detJ, d21 / detJ}, {d02 / detJ, d12 / detJ, d22 / detJ}};
 
4776
    
 
4777
    // Declare transformation matrix
 
4778
    // Declare pointer to two dimensional array and initialise
 
4779
    double **transform = new double *[num_derivatives];
 
4780
        
 
4781
    for (unsigned int j = 0; j < num_derivatives; j++)
 
4782
    {
 
4783
      transform[j] = new double [num_derivatives];
 
4784
      for (unsigned int k = 0; k < num_derivatives; k++)
 
4785
        transform[j][k] = 1;
 
4786
    }
 
4787
    
 
4788
    // Construct transformation matrix
 
4789
    for (unsigned int row = 0; row < num_derivatives; row++)
 
4790
    {
 
4791
      for (unsigned int col = 0; col < num_derivatives; col++)
 
4792
      {
 
4793
        for (unsigned int k = 0; k < n; k++)
 
4794
          transform[row][col] *= Jinv[combinations[col][k]][combinations[row][k]];
 
4795
      }
 
4796
    }
 
4797
    
 
4798
    // Reset values
 
4799
    for (unsigned int j = 0; j < 1*num_derivatives; j++)
 
4800
      values[j] = 0;
 
4801
    
 
4802
    // Map degree of freedom to element degree of freedom
 
4803
    const unsigned int dof = i;
 
4804
    
 
4805
    // Generate scalings
 
4806
    const double scalings_y_0 = 1;
 
4807
    const double scalings_y_1 = scalings_y_0*(0.5 - 0.5*y);
 
4808
    const double scalings_y_2 = scalings_y_1*(0.5 - 0.5*y);
 
4809
    const double scalings_y_3 = scalings_y_2*(0.5 - 0.5*y);
 
4810
    const double scalings_y_4 = scalings_y_3*(0.5 - 0.5*y);
 
4811
    const double scalings_z_0 = 1;
 
4812
    const double scalings_z_1 = scalings_z_0*(0.5 - 0.5*z);
 
4813
    const double scalings_z_2 = scalings_z_1*(0.5 - 0.5*z);
 
4814
    const double scalings_z_3 = scalings_z_2*(0.5 - 0.5*z);
 
4815
    const double scalings_z_4 = scalings_z_3*(0.5 - 0.5*z);
 
4816
    
 
4817
    // Compute psitilde_a
 
4818
    const double psitilde_a_0 = 1;
 
4819
    const double psitilde_a_1 = x;
 
4820
    const double psitilde_a_2 = 1.5*x*psitilde_a_1 - 0.5*psitilde_a_0;
 
4821
    const double psitilde_a_3 = 1.66666666666667*x*psitilde_a_2 - 0.666666666666667*psitilde_a_1;
 
4822
    const double psitilde_a_4 = 1.75*x*psitilde_a_3 - 0.75*psitilde_a_2;
 
4823
    
 
4824
    // Compute psitilde_bs
 
4825
    const double psitilde_bs_0_0 = 1;
 
4826
    const double psitilde_bs_0_1 = 1.5*y + 0.5;
 
4827
    const double psitilde_bs_0_2 = 0.111111111111111*psitilde_bs_0_1 + 1.66666666666667*y*psitilde_bs_0_1 - 0.555555555555556*psitilde_bs_0_0;
 
4828
    const double psitilde_bs_0_3 = 0.05*psitilde_bs_0_2 + 1.75*y*psitilde_bs_0_2 - 0.7*psitilde_bs_0_1;
 
4829
    const double psitilde_bs_0_4 = 0.0285714285714286*psitilde_bs_0_3 + 1.8*y*psitilde_bs_0_3 - 0.771428571428571*psitilde_bs_0_2;
 
4830
    const double psitilde_bs_1_0 = 1;
 
4831
    const double psitilde_bs_1_1 = 2.5*y + 1.5;
 
4832
    const double psitilde_bs_1_2 = 0.54*psitilde_bs_1_1 + 2.1*y*psitilde_bs_1_1 - 0.56*psitilde_bs_1_0;
 
4833
    const double psitilde_bs_1_3 = 0.285714285714286*psitilde_bs_1_2 + 2*y*psitilde_bs_1_2 - 0.714285714285714*psitilde_bs_1_1;
 
4834
    const double psitilde_bs_2_0 = 1;
 
4835
    const double psitilde_bs_2_1 = 3.5*y + 2.5;
 
4836
    const double psitilde_bs_2_2 = 1.02040816326531*psitilde_bs_2_1 + 2.57142857142857*y*psitilde_bs_2_1 - 0.551020408163265*psitilde_bs_2_0;
 
4837
    const double psitilde_bs_3_0 = 1;
 
4838
    const double psitilde_bs_3_1 = 4.5*y + 3.5;
 
4839
    const double psitilde_bs_4_0 = 1;
 
4840
    
 
4841
    // Compute psitilde_cs
 
4842
    const double psitilde_cs_00_0 = 1;
 
4843
    const double psitilde_cs_00_1 = 2*z + 1;
 
4844
    const double psitilde_cs_00_2 = 0.3125*psitilde_cs_00_1 + 1.875*z*psitilde_cs_00_1 - 0.5625*psitilde_cs_00_0;
 
4845
    const double psitilde_cs_00_3 = 0.155555555555556*psitilde_cs_00_2 + 1.86666666666667*z*psitilde_cs_00_2 - 0.711111111111111*psitilde_cs_00_1;
 
4846
    const double psitilde_cs_00_4 = 0.09375*psitilde_cs_00_3 + 1.875*z*psitilde_cs_00_3 - 0.78125*psitilde_cs_00_2;
 
4847
    const double psitilde_cs_01_0 = 1;
 
4848
    const double psitilde_cs_01_1 = 3*z + 2;
 
4849
    const double psitilde_cs_01_2 = 0.777777777777778*psitilde_cs_01_1 + 2.33333333333333*z*psitilde_cs_01_1 - 0.555555555555556*psitilde_cs_01_0;
 
4850
    const double psitilde_cs_01_3 = 0.428571428571429*psitilde_cs_01_2 + 2.14285714285714*z*psitilde_cs_01_2 - 0.714285714285714*psitilde_cs_01_1;
 
4851
    const double psitilde_cs_02_0 = 1;
 
4852
    const double psitilde_cs_02_1 = 4*z + 3;
 
4853
    const double psitilde_cs_02_2 = 1.265625*psitilde_cs_02_1 + 2.8125*z*psitilde_cs_02_1 - 0.546875*psitilde_cs_02_0;
 
4854
    const double psitilde_cs_03_0 = 1;
 
4855
    const double psitilde_cs_03_1 = 5*z + 4;
 
4856
    const double psitilde_cs_04_0 = 1;
 
4857
    const double psitilde_cs_10_0 = 1;
 
4858
    const double psitilde_cs_10_1 = 3*z + 2;
 
4859
    const double psitilde_cs_10_2 = 0.777777777777778*psitilde_cs_10_1 + 2.33333333333333*z*psitilde_cs_10_1 - 0.555555555555556*psitilde_cs_10_0;
 
4860
    const double psitilde_cs_10_3 = 0.428571428571429*psitilde_cs_10_2 + 2.14285714285714*z*psitilde_cs_10_2 - 0.714285714285714*psitilde_cs_10_1;
 
4861
    const double psitilde_cs_11_0 = 1;
 
4862
    const double psitilde_cs_11_1 = 4*z + 3;
 
4863
    const double psitilde_cs_11_2 = 1.265625*psitilde_cs_11_1 + 2.8125*z*psitilde_cs_11_1 - 0.546875*psitilde_cs_11_0;
 
4864
    const double psitilde_cs_12_0 = 1;
 
4865
    const double psitilde_cs_12_1 = 5*z + 4;
 
4866
    const double psitilde_cs_13_0 = 1;
 
4867
    const double psitilde_cs_20_0 = 1;
 
4868
    const double psitilde_cs_20_1 = 4*z + 3;
 
4869
    const double psitilde_cs_20_2 = 1.265625*psitilde_cs_20_1 + 2.8125*z*psitilde_cs_20_1 - 0.546875*psitilde_cs_20_0;
 
4870
    const double psitilde_cs_21_0 = 1;
 
4871
    const double psitilde_cs_21_1 = 5*z + 4;
 
4872
    const double psitilde_cs_22_0 = 1;
 
4873
    const double psitilde_cs_30_0 = 1;
 
4874
    const double psitilde_cs_30_1 = 5*z + 4;
 
4875
    const double psitilde_cs_31_0 = 1;
 
4876
    const double psitilde_cs_40_0 = 1;
 
4877
    
 
4878
    // Compute basisvalues
 
4879
    const double basisvalue0 = 0.866025403784439*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_0;
 
4880
    const double basisvalue1 = 2.73861278752583*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_0;
 
4881
    const double basisvalue2 = 1.58113883008419*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_0;
 
4882
    const double basisvalue3 = 1.11803398874989*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_1;
 
4883
    const double basisvalue4 = 5.1234753829798*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_0;
 
4884
    const double basisvalue5 = 3.96862696659689*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_0;
 
4885
    const double basisvalue6 = 2.29128784747792*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_0;
 
4886
    const double basisvalue7 = 3.24037034920393*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_1;
 
4887
    const double basisvalue8 = 1.87082869338697*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_1;
 
4888
    const double basisvalue9 = 1.3228756555323*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_2;
 
4889
    const double basisvalue10 = 7.93725393319377*psitilde_a_3*scalings_y_3*psitilde_bs_3_0*scalings_z_3*psitilde_cs_30_0;
 
4890
    const double basisvalue11 = 6.70820393249937*psitilde_a_2*scalings_y_2*psitilde_bs_2_1*scalings_z_3*psitilde_cs_21_0;
 
4891
    const double basisvalue12 = 5.19615242270663*psitilde_a_1*scalings_y_1*psitilde_bs_1_2*scalings_z_3*psitilde_cs_12_0;
 
4892
    const double basisvalue13 = 3*psitilde_a_0*scalings_y_0*psitilde_bs_0_3*scalings_z_3*psitilde_cs_03_0;
 
4893
    const double basisvalue14 = 5.80947501931113*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_1;
 
4894
    const double basisvalue15 = 4.5*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_1;
 
4895
    const double basisvalue16 = 2.59807621135332*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_1;
 
4896
    const double basisvalue17 = 3.67423461417477*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_2;
 
4897
    const double basisvalue18 = 2.12132034355964*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_2;
 
4898
    const double basisvalue19 = 1.5*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_3;
 
4899
    const double basisvalue20 = 11.1242977306435*psitilde_a_4*scalings_y_4*psitilde_bs_4_0*scalings_z_4*psitilde_cs_40_0;
 
4900
    const double basisvalue21 = 9.81070843517429*psitilde_a_3*scalings_y_3*psitilde_bs_3_1*scalings_z_4*psitilde_cs_31_0;
 
4901
    const double basisvalue22 = 8.2915619758885*psitilde_a_2*scalings_y_2*psitilde_bs_2_2*scalings_z_4*psitilde_cs_22_0;
 
4902
    const double basisvalue23 = 6.42261628933256*psitilde_a_1*scalings_y_1*psitilde_bs_1_3*scalings_z_4*psitilde_cs_13_0;
 
4903
    const double basisvalue24 = 3.70809924354783*psitilde_a_0*scalings_y_0*psitilde_bs_0_4*scalings_z_4*psitilde_cs_04_0;
 
4904
    const double basisvalue25 = 8.77496438739212*psitilde_a_3*scalings_y_3*psitilde_bs_3_0*scalings_z_3*psitilde_cs_30_1;
 
4905
    const double basisvalue26 = 7.41619848709566*psitilde_a_2*scalings_y_2*psitilde_bs_2_1*scalings_z_3*psitilde_cs_21_1;
 
4906
    const double basisvalue27 = 5.74456264653803*psitilde_a_1*scalings_y_1*psitilde_bs_1_2*scalings_z_3*psitilde_cs_12_1;
 
4907
    const double basisvalue28 = 3.3166247903554*psitilde_a_0*scalings_y_0*psitilde_bs_0_3*scalings_z_3*psitilde_cs_03_1;
 
4908
    const double basisvalue29 = 6.42261628933256*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_2;
 
4909
    const double basisvalue30 = 4.9749371855331*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_2;
 
4910
    const double basisvalue31 = 2.87228132326901*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_2;
 
4911
    const double basisvalue32 = 4.06201920231798*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_3;
 
4912
    const double basisvalue33 = 2.34520787991171*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_3;
 
4913
    const double basisvalue34 = 1.6583123951777*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_4;
 
4914
    
 
4915
    // Table(s) of coefficients
 
4916
    const static double coefficients0[35][35] = \
 
4917
    {{-0.0137464349807051, -0.0144900147488139, -0.00836581391578937, -0.00591552374999941, 0, 0, 0, 0, 0, 0, -0.00671936840905293, -0.00567890279999946, -0.00439885919382571, -0.00253968253968254, -0.00491807409042211, -0.00380952380952381, -0.00219942959691287, -0.00311046316543895, -0.0017958267458706, -0.00126984126984128, 0.0136980289516341, 0.0120805260192622, 0.010209907964538, 0.00790856070259325, 0.00456600965054471, 0.0108051509532101, 0.00913201930108942, 0.00707363173407281, 0.00408396318581522, 0.00790856070259324, 0.00612594477872282, 0.0035368158670364, 0.00500181296677924, 0.00288779806280616, 0.00204198159290761},
 
4918
    {-0.0137464349807054, 0.0144900147488139, -0.00836581391578934, -0.00591552374999945, 0, 0, 0, 0, 0, 0, 0.00671936840905293, -0.00567890279999946, 0.00439885919382572, -0.00253968253968254, -0.00491807409042213, 0.00380952380952382, -0.00219942959691286, 0.00311046316543897, -0.0017958267458706, -0.00126984126984127, 0.0136980289516341, -0.0120805260192622, 0.010209907964538, -0.00790856070259325, 0.00456600965054471, -0.0108051509532101, 0.00913201930108941, -0.0070736317340728, 0.00408396318581521, 0.00790856070259325, -0.00612594477872282, 0.0035368158670364, -0.00500181296677924, 0.00288779806280615, 0.00204198159290761},
 
4919
    {-0.0137464349807053, 0, 0.0167316278315787, -0.00591552374999946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0101587301587302, 0, 0, -0.00659828879073857, 0, 0.00359165349174119, -0.00126984126984127, 0, 0, 0, 0, 0.0228300482527235, 0, 0, 0, -0.0163358527432608, 0, 0, 0.0106104476011092, 0, -0.0057755961256123, 0.00204198159290761},
 
4920
    {-0.0137464349807054, 0, 0, 0.0177465712499983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0126984126984127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0306297238936141},
 
4921
    {0.0439885919382572, 0, 0.026770604530526, 0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, 0, 0.0406349206349206, 0, 0, 0.00439885919382572, 0, -0.0143666139669648, 0.00761904761904763, 0, 0, 0, 0, 0, 0, 0, 0, 0.0367556686723369, 0, 0, -0.0424417904044368, 0, 0.0303218796594646, -0.0122518895574456},
 
4922
    {-0.0329914439536931, 0, -0.0200779533978945, -0.0141972569999986, 0, 0, -0.00969857289937744, 0, 0.0712696645099798, -0.050395263067897, 0, 0, 0, 0, 0, 0, 0.0461880215351701, 0, 0.0107749604752236, -0.0190476190476191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0495154221385096, 0, -0.0606437593189292, 0.0306297238936141},
 
4923
    {0.0439885919382573, 0, 0.0267706045305259, 0.0189296759999982, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, 0, 0.0359165349174119, 0.0253968253968254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0505364660991076, -0.0408396318581522},
 
4924
    {0.0439885919382573, 0.0231840235981023, -0.0133853022652629, 0.0189296759999982, 0.0433733365754904, -0.0335968420452647, 0.0193971457987549, -0.0274317066599275, 0.01583770322444, 0.0111989473484215, 0.0268774736362117, -0.0227156111999979, 0.0175954367753029, -0.0101587301587302, 0.00327871606028141, -0.00253968253968255, 0.0014662863979419, -0.0124418526617558, 0.00718330698348238, 0.00761904761904763, 0, 0, 0, 0, 0, 0.0243115896447228, -0.0205470434274512, 0.0159156714016638, -0.00918891716808423, -0.031634242810373, 0.0245037791148913, -0.0141472634681456, 0.026259518075591, -0.0151609398297323, -0.0122518895574456},
 
4925
    {-0.0329914439536929, -0.0173880176985766, 0.0100389766989472, -0.0141972569999986, -0.00722888942924838, 0.00559947367421081, -0.00323285763312582, 0.0617213399848368, -0.03563483225499, -0.050395263067897, 0, 0, 0, 0, 0.0344265186329548, -0.0266666666666667, 0.01539600717839, 0.00933138949631686, -0.00538748023761177, -0.0190476190476191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0369066166121018, -0.0285877423007065, 0.0165051407128365, -0.052519036151182, 0.0303218796594646, 0.0306297238936141},
 
4926
    {0.0439885919382573, 0.0231840235981023, -0.013385302265263, 0.0189296759999982, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, 0.0311046316543895, -0.017958267458706, 0.0253968253968255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0437658634593183, -0.0252682330495538, -0.0408396318581521},
 
4927
    {0.0439885919382572, 0.0231840235981023, 0.013385302265263, -0.0189296759999982, 0.0433733365754903, -0.0335968420452647, 0.0193971457987549, -0.0274317066599275, 0.01583770322444, 0.0111989473484215, 0.0268774736362117, 0, -0.0117302911835353, 0.0101587301587302, -0.0229510124219699, 0.00761904761904761, -0.00146628639794191, 0.0165891368823411, -0.0071833069834824, -0.00761904761904763, 0, 0.0241610520385245, -0.0357346778758831, 0.0355885231616696, -0.0228300482527235, -0.00270128773830253, -0.0114150241263618, 0.0159156714016638, -0.0112308987609918, 0.00395428035129663, 0.00306297238936141, -0.0035368158670364, -0.00375135972508443, 0.00072194951570154, 0.00204198159290761},
 
4928
    {-0.0329914439536929, -0.0173880176985768, -0.0100389766989472, 0.0141972569999986, -0.00722888942924839, 0.0615942104163185, -0.0614242950293904, -0.00685792666498187, -0.00395942580611001, 0.00559947367421077, 0, 0.0340734167999968, 0, -0.0152380952380952, -0.00491807409042213, -0.0266666666666667, 0.0175954367753029, 0.00933138949631688, 0.00538748023761179, -0.00761904761904761, 0, 0, 0.0357346778758831, -0.0593142052694494, 0.0456600965054471, 0, -0.00913201930108943, 0, 0.00408396318581521, 0.00131809345043221, 0.00714693557517662, -0.00471575448938186, -0.00250090648338962, -0.00144389903140307, 0.00204198159290761},
 
4929
    {0.0439885919382572, 0.0231840235981022, 0.013385302265263, -0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, 0.0293257279588382, 0.0101587301587302, 0, -0.0101587301587302, -0.0219942959691286, 0.00207364211029264, 0.017958267458706, -0.00761904761904762, 0, 0, 0, 0.0395428035129662, -0.0456600965054471, 0, 0, -0.017684079335182, 0.0142938711503532, 0, 0.00612594477872282, 0, -0.00125045324169481, -0.00360974757850769, 0.0020419815929076},
 
4930
    {0.043988591938257, -0.0231840235981023, -0.0133853022652629, 0.0189296759999983, 0.0433733365754903, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484216, -0.0268774736362117, -0.0227156111999979, -0.0175954367753029, -0.0101587301587302, 0.00327871606028139, 0.00253968253968253, 0.0014662863979419, 0.0124418526617558, 0.00718330698348236, 0.00761904761904761, 0, 0, 0, 0, 0, -0.0243115896447228, -0.0205470434274512, -0.0159156714016638, -0.00918891716808424, -0.031634242810373, -0.0245037791148913, -0.0141472634681456, -0.026259518075591, -0.0151609398297323, -0.0122518895574456},
 
4931
    {-0.0329914439536929, 0.0173880176985768, 0.0100389766989471, -0.0141972569999987, -0.00722888942924838, -0.00559947367421082, -0.00323285763312581, -0.0617213399848367, -0.03563483225499, -0.050395263067897, 0, 0, 0, 0, 0.0344265186329548, 0.0266666666666667, 0.01539600717839, -0.00933138949631689, -0.00538748023761178, -0.019047619047619, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0369066166121018, 0.0285877423007065, 0.0165051407128365, 0.0525190361511819, 0.0303218796594646, 0.0306297238936141},
 
4932
    {0.0439885919382572, -0.0231840235981023, -0.0133853022652629, 0.0189296759999981, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, -0.0311046316543896, -0.017958267458706, 0.0253968253968255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0437658634593183, -0.0252682330495538, -0.0408396318581521},
 
4933
    {0.0439885919382572, -0.0231840235981023, 0.013385302265263, -0.0189296759999982, 0.0433733365754904, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484216, -0.0268774736362117, 0, 0.0117302911835352, 0.0101587301587302, -0.0229510124219699, -0.00761904761904762, -0.00146628639794191, -0.0165891368823411, -0.00718330698348239, -0.00761904761904763, 0, -0.0241610520385245, -0.0357346778758831, -0.0355885231616696, -0.0228300482527235, 0.00270128773830254, -0.0114150241263618, -0.0159156714016638, -0.0112308987609918, 0.00395428035129662, -0.00306297238936141, -0.0035368158670364, 0.00375135972508443, 0.000721949515701533, 0.00204198159290761},
 
4934
    {-0.0329914439536929, 0.0173880176985766, -0.0100389766989472, 0.0141972569999987, -0.00722888942924841, -0.0615942104163186, -0.0614242950293904, 0.00685792666498186, -0.00395942580610998, 0.00559947367421075, 0, 0.0340734167999968, 0, -0.0152380952380952, -0.00491807409042213, 0.0266666666666667, 0.0175954367753029, -0.00933138949631688, 0.00538748023761179, -0.00761904761904763, 0, 0, 0.0357346778758831, 0.0593142052694494, 0.0456600965054471, 0, -0.00913201930108943, 0, 0.0040839631858152, 0.00131809345043222, -0.00714693557517663, -0.00471575448938187, 0.00250090648338962, -0.00144389903140308, 0.00204198159290761},
 
4935
    {0.0439885919382573, -0.0231840235981022, 0.013385302265263, -0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, -0.0293257279588382, 0.0101587301587302, 0, 0.0101587301587301, -0.0219942959691286, -0.00207364211029265, 0.017958267458706, -0.00761904761904761, 0, 0, 0, -0.0395428035129663, -0.0456600965054471, 0, 0, 0.017684079335182, 0.0142938711503532, 0, -0.00612594477872281, 0, 0.00125045324169481, -0.00360974757850769, 0.0020419815929076},
 
4936
    {0.0439885919382571, 0, -0.026770604530526, -0.0189296759999982, 0.0433733365754904, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484215, 0.0134387368181058, -0.0113578055999989, -0.0205280095711867, -0.0152380952380952, -0.00983614818084424, -0.0177777777777778, -0.0131965775814772, -0.0145154947720485, -0.0107749604752236, -0.00761904761904761, -0.0547921158065365, -0.0241610520385245, -0.00510495398226901, 0.00395428035129663, 0.00456600965054471, -0.0216103019064202, -0.00456600965054471, 0.00353681586703639, 0.00408396318581521, -0.00395428035129661, 0.0030629723893614, 0.0035368158670364, 0.00250090648338961, 0.00288779806280615, 0.00204198159290761},
 
4937
    {-0.0329914439536931, 0, 0.0200779533978945, 0.0141972569999987, -0.0867466731509807, 0, 0.00969857289937743, 0, 0.00791885161221998, 0.00559947367421076, 0, 0.0340734167999968, 0, -0.0152380952380953, 0.0295084445425327, 0, -0.0131965775814772, 0, -0.0107749604752236, -0.00761904761904762, 0.0821881737098047, 0, -0.010209907964538, 0, 0.00456600965054471, 0, -0.00913201930108944, 0, 0.00408396318581521, -0.00790856070259326, 0, 0.0035368158670364, 0, 0.00288779806280615, 0.00204198159290761},
 
4938
    {0.0439885919382573, 0, -0.026770604530526, -0.0189296759999982, 0.0433733365754903, -0.0335968420452646, 0.0193971457987549, -0.0274317066599274, 0.01583770322444, 0.0111989473484215, -0.0134387368181058, -0.0113578055999989, 0.0205280095711867, -0.0152380952380952, -0.00983614818084423, 0.0177777777777778, -0.0131965775814772, 0.0145154947720485, -0.0107749604752236, -0.00761904761904761, -0.0547921158065365, 0.0241610520385245, -0.005104953982269, -0.00395428035129662, 0.00456600965054471, 0.0216103019064202, -0.0045660096505447, -0.0035368158670364, 0.00408396318581521, -0.00395428035129662, -0.00306297238936141, 0.00353681586703641, -0.00250090648338962, 0.00288779806280615, 0.00204198159290761},
 
4939
    {0.0439885919382573, 0.139104141588614, -0.080311813591578, -0.0567890279999947, 0.0578311154339872, 0.0335968420452646, -0.0420271492306356, 0.0274317066599275, -0.0475131096733199, -0.0167984210226323, 0, 0.0454312223999957, -0.0586514559176763, 0.0406349206349207, 0.039344592723377, 0.00253968253968254, -0.0109971479845643, -0.0601356211984865, 0.017958267458706, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0.0410940868549024, -0.053052238005546, 0.0367556686723369, -0.0105447476034577, -0.0245037791148913, 0.0235787724469093, 0.0175063453837273, 0, -0.0122518895574457},
 
4940
    {0.0439885919382572, 0, 0.160623627183156, -0.0567890279999947, 0, 0.0783926314389509, 0.0096985728993774, -0.0274317066599275, 0.0475131096733199, -0.0167984210226323, 0, 0, 0.0586514559176763, -0.0609523809523809, 0, 0.033015873015873, 0.0241937255660415, -0.0145154947720485, -0.0610581093596003, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0, 0.053052238005546, -0.0551335030085053, 0, -0.0326717054865217, 0.0141472634681456, 0.00875317269186366, 0.0151609398297323, -0.0122518895574456},
 
4941
    {0.0439885919382571, 0, 0, 0.170367083999984, 0, -0.0111989473484216, 0.00969857289937744, 0.0822951199797824, 0.0475131096733199, -0.0167984210226324, 0, 0, 0, 0, 0, 0.0533333333333333, -0.0461880215351701, 0.0435464843161454, 0.0251415744421883, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.057175484601413, -0.0495154221385096, -0.026259518075591, -0.0151609398297323, 0.0306297238936141},
 
4942
    {0.0439885919382571, -0.139104141588614, -0.0803118135915779, -0.0567890279999947, 0.0578311154339871, -0.0335968420452646, -0.0420271492306356, -0.0274317066599274, -0.0475131096733199, -0.0167984210226323, 0, 0.0454312223999957, 0.0586514559176763, 0.0406349206349206, 0.0393445927233769, -0.00253968253968253, -0.0109971479845643, 0.0601356211984865, 0.0179582674587059, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0.0410940868549024, 0.053052238005546, 0.0367556686723369, -0.0105447476034577, 0.0245037791148913, 0.0235787724469093, -0.0175063453837273, 0, -0.0122518895574457},
 
4943
    {0.0439885919382571, 0, 0.160623627183156, -0.0567890279999946, 0, -0.0783926314389509, 0.00969857289937745, 0.0274317066599275, 0.0475131096733199, -0.0167984210226323, 0, 0, -0.0586514559176763, -0.0609523809523809, 0, -0.033015873015873, 0.0241937255660415, 0.0145154947720485, -0.0610581093596003, 0.0393650793650793, 0, 0, 0, 0, 0, 0, 0, -0.053052238005546, -0.0551335030085053, 0, 0.0326717054865217, 0.0141472634681456, -0.00875317269186368, 0.0151609398297323, -0.0122518895574456},
 
4944
    {0.0439885919382572, 0, 0, 0.170367083999984, 0, 0.0111989473484215, 0.00969857289937745, -0.0822951199797824, 0.0475131096733199, -0.0167984210226323, 0, 0, 0, 0, 0, -0.0533333333333333, -0.0461880215351701, -0.0435464843161453, 0.0251415744421883, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0571754846014129, -0.0495154221385096, 0.026259518075591, -0.0151609398297323, 0.0306297238936141},
 
4945
    {0.0439885919382573, -0.139104141588614, -0.0803118135915779, -0.0567890279999946, -0.0433733365754903, 0.0447957893936862, 0.0484928644968872, -0.0548634133198549, 0, -0.0167984210226323, 0.0806324209086351, 0.0227156111999979, -0.0058651455917676, -0.0101587301587302, -0.00327871606028142, 0.0304761904761905, 0.0271262983619253, 0.045620126426438, 0.0430998419008943, 0.0393650793650794, 0, 0, 0, 0, 0, 0.0729347689341683, 0.0205470434274512, -0.00530522380055458, -0.00918891716808423, 0.031634242810373, -0.00816792637163039, -0.0141472634681456, -0.00875317269186365, -0.0151609398297323, -0.0122518895574456},
 
4946
    {0.0439885919382571, 0.139104141588614, -0.0803118135915779, -0.0567890279999947, -0.0433733365754904, -0.0447957893936862, 0.0484928644968873, 0.0548634133198549, 0, -0.0167984210226323, -0.0806324209086351, 0.0227156111999979, 0.0058651455917676, -0.0101587301587302, -0.00327871606028142, -0.0304761904761905, 0.0271262983619253, -0.045620126426438, 0.0430998419008943, 0.0393650793650794, 0, 0, 0, 0, 0, -0.0729347689341683, 0.0205470434274512, 0.00530522380055459, -0.00918891716808424, 0.031634242810373, 0.00816792637163042, -0.0141472634681456, 0.00875317269186367, -0.0151609398297323, -0.0122518895574456},
 
4947
    {0.0439885919382572, 0, 0, 0.170367083999984, 0.0144577788584968, 0, -0.00323285763312585, 0, -0.0950262193466398, -0.0167984210226323, 0, 0, 0, 0, -0.0688530372659096, 0, 0.01539600717839, 0, -0.0502831488843767, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0738132332242036, 0, 0.0165051407128365, 0, 0.0303218796594646, 0.0306297238936141},
 
4948
    {0.0439885919382573, -0.139104141588614, -0.0803118135915779, -0.0567890279999947, -0.0433733365754903, -0.0447957893936862, -0.00969857289937743, 0.0548634133198549, 0.03167540644888, 0.0391963157194754, 0.0806324209086351, 0, 0.0527863103259086, 0.0609523809523809, 0.0229510124219699, 0.0101587301587302, 0.0168622935763319, -0.0124418526617558, -0.00718330698348239, -0.013968253968254, 0, 0.0724831561155734, 0.0357346778758831, -0.0118628410538899, -0.0228300482527235, -0.00810386321490759, 0.0114150241263618, -0.00530522380055459, -0.0112308987609918, -0.00395428035129662, -0.00102099079645379, -0.0035368158670364, 0.00125045324169481, 0.000721949515701537, 0.00204198159290762},
 
4949
    {0.0439885919382571, 0.139104141588614, -0.080311813591578, -0.0567890279999947, -0.0433733365754904, 0.0447957893936862, -0.00969857289937742, -0.0548634133198549, 0.0316754064488799, 0.0391963157194754, -0.0806324209086351, 0, -0.0527863103259086, 0.060952380952381, 0.0229510124219699, -0.0101587301587302, 0.0168622935763319, 0.0124418526617558, -0.00718330698348236, -0.013968253968254, 0, -0.0724831561155734, 0.0357346778758831, 0.0118628410538899, -0.0228300482527236, 0.00810386321490761, 0.0114150241263618, 0.00530522380055459, -0.0112308987609918, -0.00395428035129662, 0.00102099079645379, -0.0035368158670364, -0.0012504532416948, 0.000721949515701528, 0.0020419815929076},
 
4950
    {0.0439885919382572, 0, 0.160623627183156, -0.0567890279999947, 0.0144577788584968, 0, -0.0614242950293905, 0, -0.0633508128977598, 0.0391963157194754, 0, -0.0681468335999936, 0, -0.0914285714285715, 0.00983614818084423, 0, 0.0285925847598672, 0, 0.0143666139669647, -0.0139682539682539, 0, 0, -0.0714693557517662, 0, 0.0456600965054471, 0, 0.0182640386021788, 0, 0.0040839631858152, -0.00263618690086443, 0, -0.00471575448938186, 0, -0.00144389903140306, 0.00204198159290759},
 
4951
    {0.351908735506058, 0, 0, 0, -0.115662230867974, 0, -0.129314305325032, 0, 0, -0.134387368181059, 0, -0.0908624447999914, 0, 0.0406349206349206, -0.0786891854467539, 0, -0.0879771838765144, 0, 0, 0.0711111111111111, 0, 0, 0, 0, 0, 0, -0.0821881737098047, 0, 0.0367556686723369, 0.0210894952069153, 0, 0.0235787724469093, 0, 0, -0.0122518895574456}};
 
4952
    
 
4953
    // Interesting (new) part
 
4954
    // Tables of derivatives of the polynomial base (transpose)
 
4955
    const static double dmats0[35][35] = \
 
4956
    {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4957
    {6.32455532033677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4958
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4959
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4960
    {0, 11.2249721603218, 0, 0, 0, 1.70793006049707e-14, 0, 0, 1.16063842564573e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4961
    {4.58257569495585, 0, 8.36660026534076, -1.18321595661992, 0, 0, 1.04642314135461e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4962
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4963
    {3.74165738677394, 0, 0, 8.69482604771366, 0, 0, 0, -1.66625972279159e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4964
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4965
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4966
    {5.49909083394701, 0, -3.34664010613631, -2.36643191323985, 15.4919333848297, 0, 0.692820323027549, 0, 0.56568542494924, 0.400000000000009, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4967
    {0, 4.89897948556635, 0, 0, 0, 14.1985914794391, 0, -0.828078671210828, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4968
    {3.60000000000001, 0, 8.76356092008266, -1.54919333848296, 0, 0, 9.52470471983254, 0, -1.48131215963609, 0.261861468283193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4969
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4970
    {0, 4.24264068711929, 0, 0, 0, 0, 0, 14.3427433120127, 2.84156378982381e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4971
    {3.11769145362398, 0, 3.16227766016838, 4.91934955049954, 0, 0, 0, -1.2538531175753e-14, 10.690449676497, -2.41897262725905, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4972
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4973
    {2.54558441227157, 0, 0, 7.66811580507232, 0, 0, 0, 0, 0, 10.3691851174526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4974
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4975
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4976
    {0, 11.6057691494799, 0, 0, 0, -4.20458932936041, 0, -3.43303281162798, 0, 0, 19.6214168703486, 0, 0.611677741841197, 0, 0, 0.529728463363978, 0, 0.432521479156785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4977
    {4.53137212479103, 0, 3.54562104171167, -2.50713268211203, 4.78713553878169, 0, -5.56626745075493, 0, -1.04880884817015, 0.741619848709563, 0, 18.8034951158403, 0, 1.68183573174416, -0.603122387046455, 0, 0.701283781217662, 0, 0.132137494528683, -0.0934353184302337, 0, 0, 0, 0, -2.04851899834062e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4978
    {1.12802291379194e-14, 2.59512887494071, 0, 0, 0, 10.0285307284481, 1.48509074345102e-14, -0.767649473578742, 0, 0, 0, 0, 16.4130361329658, 0, 0, -1.26347611061158, 0, 0.0967147429123335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4979
    {2.96647939483827, 0, 8.12403840463597, -1.64130361329658, 0, 0, 11.7728501222091, 0, -2.40312296813959, 0.485504156227609, 0, 0, 0, 10.2761860629321, 0, 0, -1.48323969741914, 0, 0.30276503540975, -0.0611677741841184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4980
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4981
    {4.05298244095217, 0, -1.58564993434419, 4.4848952846511, 4.28174419288837, 0, 0.191485421551264, 0, -3.75233260785875, -4.31161222746203, 0, 0, 0, 0, 18.8807171866294, 0, 0.844371341865038, 0, 1.18187368057056, 1.04463861754668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4982
    {0, 2.32115382989598, 0, 0, 0, 3.92428337406973, 0, 5.49285249860476, 1.21484853427001e-14, 0, 0, 0, 0, 0, 0, 17.3044631365565, 0, -1.73008591662714, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4983
    {2.65329983228433, 0, 4.15220619990513, 2.93605316083776, 0, 0, 2.63248931621764, 0, 9.82591326180785, -2.8226127713774, 0, 0, 0, 0, 0, 0, 11.6081867662439, 0, -3.09487177319466, 0.683876505540249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4984
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4985
    {0, 2.01017818278148, 0, 0, 0, 0, 0, 8.91928088068602, 1.76356325376492e-14, 0, 0, 0, 0, 0, 0, 0, 0, 16.8558564884489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4986
    {2.29782505861521, 0, 1.49829835452879, 5.50917601898535, 0, 0, 0, 0, 6.64803945320938, 4.13676892548485, 0, 0, 0, 0, 0, 0, 0, 0, 12.5636136423842, -3.55352656109507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4987
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4988
    {1.87616630392938, 0, 0, 6.2283092998577, 0, 0, 0, 0, 0, 11.0541524195338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11.6057691494799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4989
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4990
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
 
4991
    
 
4992
    const static double dmats1[35][35] = \
 
4993
    {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4994
    {3.16227766016838, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4995
    {5.47722557505166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4996
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4997
    {2.95803989154981, 5.61248608016091, -1.08012344973464, -0.763762615825977, 0, 1.12766252988532e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4998
    {2.29128784747793, 7.24568837309472, 4.18330013267038, -0.591607978309962, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
4999
    {-2.64575131106459, 0, 9.66091783079296, 0.683130051063976, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5000
    {1.87082869338697, 0, 0, 4.34741302385683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5001
    {3.24037034920392, 0, 0, 7.52994023880667, 0, 0, 0, -1.40420976242894e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5002
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5003
    {2.74954541697351, 5.79655069847578, -1.67332005306815, -1.18321595661993, 7.74596669241484, -1.2, 0.346410161513776, -0.979795897113278, 0.282842712474625, 0.200000000000005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5004
    {2.32379000772444, 2.44948974278317, 2.82842712474619, -0.999999999999997, 9.16515138991168, 7.09929573971955, -2.04939015319192, -0.414039335605417, -0.478091443733761, 0.169030850945703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5005
    {1.80000000000001, -5.69209978830309, 4.38178046004133, -0.77459666924148, 0, 10.998181667894, 4.76235235991628, 0.962140470884725, -0.740656079818049, 0.130930734141596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5006
    {5.19615242270664, 0, -3.16227766016837, -2.23606797749979, 0, 0, 13.7477270848675, 0, 0.534522483824846, 0.377964473009225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5007
    {2.01246117974981, 2.12132034355964, -0.408248290463859, 3.17542648054293, 0, 0, 0, 7.17137165600634, -1.3801311186847, -1.56144011671765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5008
    {1.55884572681199, 2.73861278752583, 1.5811388300842, 2.45967477524977, 0, 0, 0, 9.2582009977255, 5.3452248382485, -1.20948631362952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5009
    {-1.79999999999999, 0, 3.65148371670111, -2.84018778721876, 0, 0, 0, 0, 12.3442679969673, 1.39659449751036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5010
    {1.27279220613578, 0, 0, 3.83405790253616, 0, 0, 0, 0, 0, 5.18459255872629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5011
    {2.20454076850485, 0, 0, 6.64078308635359, 0, 0, 0, 0, 0, 8.97997772825746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5012
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5013
    {2.56904651573303, 5.80288457473998, -2.01017818278148, -1.42141062443803, 8.14215222512715, -2.10229466468021, 0.728256234341421, -1.71651640581399, 0.594618725379067, 0.420458932936047, 9.81070843517429, -1.18450885369836, 0.3058388709206, -0.105945692672795, -1.02581475831036, 0.264864231681991, -0.0917516612761804, 0.216260739578394, -0.0749149177264392, -0.0529728463363962, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5014
    {2.26568606239552, 3.07059789431495, 1.77281052085584, -1.25356634105601, 2.39356776939085, 6.30376871403133, -2.78313372537746, -0.908295106229249, -0.524404424085077, 0.370809924354783, 11.1242977306435, 9.40174755792013, -2.42752078113806, 0.840917865872083, -0.301561193523227, -0.794200206656967, 0.350641890608831, 0.114434427054266, 0.0660687472643429, -0.0467176592151151, 0, 0, 0, 1.18413955033316e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5015
    {1.91485421551268, 1.29756443747035, 3.74574588632197, -1.05945692672795, -8.09173593712687, 5.01426536422407, 1.80936716113936, -0.383824736789366, -1.1080065755349, 0.313391585264, 0, 12.7134831207354, 8.2065180664829, -2.84282124887606, 1.01946290306866, -0.631738055305791, -0.227958835180081, 0.0483573714561658, 0.139595707137601, -0.0394836284566112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5016
    {1.48323969741914, 7.03562363973515, 4.06201920231798, -0.820651806648292, 0, -6.79705818718658, 5.88642506110457, -2.08116553882674, -1.2015614840698, 0.242752078113806, 0, 0, 14.8323969741913, 5.13809303146605, 0, 0.856348838577678, -0.741619848709567, 0.262202212042541, 0.151382517704874, -0.0305838870920586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5017
    {-3.42539535431071, 0, 9.38083151964686, 1.89521416591737, 0, 1.48502651407619e-14, -3.39852909359332, 0, -2.77488738510233, -0.560611910581396, 0, 0, 0, 17.7988763690296, 0, 0, 0.42817441928884, 0, 0.349602949390053, 0.0706304617818605, 0, 0, 0, 0, -1.76908227133537e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5018
    {2.02649122047609, 2.74642624930238, -0.792824967172093, 2.24244764232555, 2.14087209644419, -0.331662479035538, 0.095742710775634, 6.49923072370876, -1.87616630392936, -2.15580611373101, 0, 0, 0, 0, 9.44035859331469, -1.46249406456536, 0.42218567093252, -2.04706526287664, 0.59093684028528, 0.522319308773337, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5019
    {1.71269767715535, 1.16057691494799, 1.34011878852098, 1.89521416591738, 2.53311402559511, 1.96214168703486, -0.566421515598881, 2.74642624930237, 3.17129986868837, -1.82198870938951, 0, 0, 0, 0, 11.1699829238239, 8.65223156827827, -2.49768411251822, -0.865042958313569, -0.998865569685858, 0.441440386136648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5020
    {1.32664991614216, -2.69693703815182, 2.07610309995257, 1.46802658041888, 0, 3.03973683071413, 1.31624465810882, -6.382117875081, 4.91295663090391, -1.4113063856887, 0, 0, 0, 0, 0, 13.4039795085887, 5.80409338312195, 2.01017818278147, -1.54743588659732, 0.341938252770131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5021
    {3.82970843102535, 0, -1.49829835452879, 4.23782770691181, 0, 0, 3.79967103839267, 0, -3.54562104171168, -4.07409060843206, 0, 0, 0, 0, 0, 0, 16.7549743857359, 0, 1.11676565710082, 0.987090711415304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5022
    {1.48323969741913, 1.00508909139074, -0.193429485824663, 3.55615782880925, 0, 0, 0, 4.459640440343, -0.858258202906983, 2.67027285925187, 0, 0, 0, 0, 0, 0, 0, 8.42792824422443, -1.62195554683794, -2.29379153190448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5023
    {1.14891252930761, 1.29756443747036, 0.749149177264399, 2.75458800949267, 0, 0, 0, 5.75737105184053, 3.3240197266047, 2.06838446274242, 0, 0, 0, 0, 0, 0, 0, 10.8804085776374, 6.2818068211921, -1.77676328054753, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.02006749648391e-14, 0, 0},
 
5024
    {-1.32664991614216, 0, 1.73008591662714, -3.18072425757422, 0, 0, 0, 1.15266449376351e-14, 7.67649473578738, -2.38836465270397, 0, 0, 0, 0, 0, 0, 0, 0, 14.5072114368499, 2.05162951662072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5025
    {0.938083151964688, 0, 0, 3.11415464992885, 0, 0, 0, 0, 0, 5.52707620976692, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.80288457473997, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5026
    {1.6248076809272, 0, 0, 5.39387407630363, 0, 0, 0, 0, 0, 9.57317681262152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10.0508909139073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5027
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
 
5028
    
 
5029
    const static double dmats2[35][35] = \
 
5030
    {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5031
    {3.16227766016838, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5032
    {1.82574185835056, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5033
    {5.16397779494323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5034
    {2.95803989154981, 5.61248608016091, -1.08012344973464, -0.763762615825976, 0, 1.39411605579536e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5035
    {2.29128784747792, 1.44913767461894, 4.18330013267038, -0.591607978309961, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5036
    {1.3228756555323, 0, 3.86436713231718, -0.341565025531985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5037
    {1.87082869338697, 7.09929573971954, 0, 4.34741302385683, 0, 1.2137796469483e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5038
    {1.08012344973464, 0, 7.09929573971954, 2.50998007960223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5039
    {-3.81881307912987, 0, 0, 8.87411967464942, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5040
    {2.74954541697351, 5.79655069847578, -1.67332005306815, -1.18321595661993, 7.74596669241484, -1.19999999999999, 0.346410161513777, -0.97979589711328, 0.282842712474624, 0.200000000000005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5041
    {2.32379000772445, 2.44948974278317, 2.82842712474619, -0.999999999999998, 1.30930734141596, 7.09929573971955, -2.04939015319192, -0.414039335605417, -0.478091443733761, 0.169030850945707, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5042
    {1.80000000000001, 0.632455532033672, 4.38178046004133, -0.774596669241482, 0, 3.14233761939829, 4.76235235991627, -0.106904496764972, -0.740656079818045, 0.130930734141597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5043
    {1.03923048454133, 0, 3.16227766016838, -0.447213595499956, 0, 0, 5.8918830363718, 0, -0.534522483824849, 0.0755928946018436, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5044
    {2.0124611797498, 2.12132034355964, -0.408248290463861, 3.17542648054293, 9.07114735222144, 0, 0, 7.17137165600635, -1.3801311186847, -1.56144011671765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5045
    {1.558845726812, 0.547722557505166, 1.5811388300842, 2.45967477524977, 0, 9.07114735222146, 0, 1.85164019954509, 5.34522483824849, -1.20948631362952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5046
    {0.900000000000005, 0, 1.46059348668045, 1.42009389360939, 0, 0, 9.07114735222146, 0, 4.93770719878694, -0.698297248755174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5047
    {1.27279220613578, -6.26099033699941, 0, 3.83405790253616, 0, -1.33471233241901e-14, 0, 10.5830052442584, 1.61529151756054e-14, 5.18459255872629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5048
    {0.734846922834955, 0, -6.26099033699941, 2.21359436211787, 0, 0, 0, 0, 10.5830052442584, 2.99332590941916, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5049
    {5.7157676649773, 0, 0, -4.69574275274955, 0, 0, 0, 0, 0, 12.69960629311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5050
    {2.56904651573303, 5.80288457473998, -2.01017818278148, -1.42141062443803, 8.14215222512715, -2.10229466468021, 0.72825623434142, -1.71651640581399, 0.594618725379067, 0.420458932936046, 9.81070843517429, -1.18450885369836, 0.305838870920599, -0.105945692672794, -1.02581475831036, 0.264864231681991, -0.0917516612761805, 0.216260739578394, -0.0749149177264392, -0.052972846336396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5051
    {2.26568606239552, 3.07059789431495, 1.77281052085584, -1.25356634105602, 2.39356776939084, 6.30376871403133, -2.78313372537746, -0.908295106229248, -0.524404424085073, 0.370809924354783, 1.23603308118261, 9.40174755792013, -2.42752078113806, 0.840917865872083, -0.301561193523226, -0.794200206656968, 0.350641890608831, 0.114434427054266, 0.0660687472643423, -0.0467176592151165, 0, 0, 0, 1.09746923696279e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5052
    {1.91485421551268, 1.29756443747035, 3.74574588632197, -1.05945692672795, 0.404586796856347, 5.01426536422407, 1.80936716113937, -0.383824736789372, -1.1080065755349, 0.313391585264004, 0, 2.82521847127454, 8.2065180664829, -2.84282124887606, -0.0509731451534344, -0.631738055305788, -0.227958835180082, 0.0483573714561684, 0.139595707137601, -0.039483628456609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5053
    {1.48323969741914, 0.335029697130247, 4.06201920231798, -0.820651806648289, 0, 1.69926454679664, 5.88642506110457, -0.099103120896514, -1.2015614840698, 0.242752078113805, 0, 0, 4.94413232473044, 5.13809303146605, 0, -0.214087209644418, -0.741619848709568, 0.0124858196210747, 0.151382517704876, -0.0305838870920584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5054
    {0.856348838577678, 0, 2.68023757704196, -0.473803541479345, 0, 0, 5.09779364038992, 0, -0.792824967172097, 0.140152977645345, 0, 0, 0, 7.91061171956871, 0, 0, -0.642261628933257, 0, 0.0998865569685871, -0.0176576154454654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5055
    {2.02649122047609, 2.74642624930238, -0.792824967172095, 2.24244764232555, 2.14087209644419, -0.331662479035546, 0.0957427107756332, 6.49923072370876, -1.87616630392937, -2.15580611373101, 11.0554159678513, 0, 0, 0, 9.44035859331468, -1.46249406456535, 0.42218567093252, -2.04706526287664, 0.59093684028528, 0.522319308773341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5056
    {1.71269767715534, 1.16057691494799, 1.34011878852098, 1.89521416591737, 0.36187343222787, 1.96214168703486, -0.566421515598891, 2.74642624930238, 3.17129986868838, -1.82198870938951, 0, 11.0554159678513, 0, 0, 1.59571184626056, 8.65223156827827, -2.49768411251822, -0.865042958313572, -0.998865569685858, 0.441440386136647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5057
    {1.32664991614217, 0.299659670905757, 2.07610309995256, 1.46802658041888, 0, 0.868496237346881, 1.31624465810882, 0.709124208342336, 4.91295663090392, -1.4113063856887, 0, 0, 11.0554159678513, 0, 0, 3.82970843102535, 5.80409338312195, -0.223353131420161, -1.54743588659733, 0.341938252770126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5058
    {0.765941686205071, 0, 1.49829835452879, 0.847565541382364, 0, 0, 1.62843044502542, 0, 3.54562104171167, -0.814818121686411, 0, 0, 0, 11.0554159678513, 0, 0, 7.18070330817254, 0, -1.11676565710082, 0.197418142283063, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5059
    {1.48323969741914, 1.00508909139074, -0.193429485824663, 3.55615782880926, -8.46157280212812, 0, 0, 4.45964044034301, -0.858258202906987, 2.67027285925186, 0, 0, 0, 0, 12.4373429638327, 0, 0, 8.42792824422443, -1.62195554683794, -2.29379153190448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5060
    {1.1489125293076, 0.259512887494073, 0.749149177264395, 2.75458800949267, 0, -8.46157280212812, 0, 1.15147421036811, 3.32401972660469, 2.06838446274243, 0, 0, 0, 0, 0, 12.4373429638327, 0, 2.17608171552749, 6.2818068211921, -1.77676328054754, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5061
    {0.663324958071074, 0, 0.692034366650849, 1.59036212878711, 0, 0, -8.46157280212813, 0, 3.07059789431495, 1.19418232635198, 0, 0, 0, 0, 0, 0, 12.4373429638327, 0, 5.80288457473997, -1.02581475831036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5062
    {0.938083151964688, 7.62808987244126, 0, 3.11415464992885, 0, 0, 0, -7.5213980463361, 0, 5.52707620976691, 0, 0, 0, 0, 0, 0, 0, 14.2141062443803, 0, 5.80288457473998, 0, 0, 0, 0, 0, 1.03455020940032e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5063
    {0.541602560309059, 0, 7.62808987244125, 1.79795802543454, 0, 0, 0, 0, -7.52139804633611, 3.1910589375405, 0, 0, 0, 0, 0, 0, 0, 0, 14.2141062443803, 3.35029697130244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
5064
    {-5.36159180343549, 0, 0, 8.8994381845148, 0, 0, 0, 0, -1.07784467308941e-14, -5.26497863243527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.583123951777, 0, 0, 0, 0, 0, 1.2461107758246e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
 
5065
    
 
5066
    // Compute reference derivatives
 
5067
    // Declare pointer to array of derivatives on FIAT element
 
5068
    double *derivatives = new double [num_derivatives];
 
5069
    
 
5070
    // Declare coefficients
 
5071
    double coeff0_0 = 0;
 
5072
    double coeff0_1 = 0;
 
5073
    double coeff0_2 = 0;
 
5074
    double coeff0_3 = 0;
 
5075
    double coeff0_4 = 0;
 
5076
    double coeff0_5 = 0;
 
5077
    double coeff0_6 = 0;
 
5078
    double coeff0_7 = 0;
 
5079
    double coeff0_8 = 0;
 
5080
    double coeff0_9 = 0;
 
5081
    double coeff0_10 = 0;
 
5082
    double coeff0_11 = 0;
 
5083
    double coeff0_12 = 0;
 
5084
    double coeff0_13 = 0;
 
5085
    double coeff0_14 = 0;
 
5086
    double coeff0_15 = 0;
 
5087
    double coeff0_16 = 0;
 
5088
    double coeff0_17 = 0;
 
5089
    double coeff0_18 = 0;
 
5090
    double coeff0_19 = 0;
 
5091
    double coeff0_20 = 0;
 
5092
    double coeff0_21 = 0;
 
5093
    double coeff0_22 = 0;
 
5094
    double coeff0_23 = 0;
 
5095
    double coeff0_24 = 0;
 
5096
    double coeff0_25 = 0;
 
5097
    double coeff0_26 = 0;
 
5098
    double coeff0_27 = 0;
 
5099
    double coeff0_28 = 0;
 
5100
    double coeff0_29 = 0;
 
5101
    double coeff0_30 = 0;
 
5102
    double coeff0_31 = 0;
 
5103
    double coeff0_32 = 0;
 
5104
    double coeff0_33 = 0;
 
5105
    double coeff0_34 = 0;
 
5106
    
 
5107
    // Declare new coefficients
 
5108
    double new_coeff0_0 = 0;
 
5109
    double new_coeff0_1 = 0;
 
5110
    double new_coeff0_2 = 0;
 
5111
    double new_coeff0_3 = 0;
 
5112
    double new_coeff0_4 = 0;
 
5113
    double new_coeff0_5 = 0;
 
5114
    double new_coeff0_6 = 0;
 
5115
    double new_coeff0_7 = 0;
 
5116
    double new_coeff0_8 = 0;
 
5117
    double new_coeff0_9 = 0;
 
5118
    double new_coeff0_10 = 0;
 
5119
    double new_coeff0_11 = 0;
 
5120
    double new_coeff0_12 = 0;
 
5121
    double new_coeff0_13 = 0;
 
5122
    double new_coeff0_14 = 0;
 
5123
    double new_coeff0_15 = 0;
 
5124
    double new_coeff0_16 = 0;
 
5125
    double new_coeff0_17 = 0;
 
5126
    double new_coeff0_18 = 0;
 
5127
    double new_coeff0_19 = 0;
 
5128
    double new_coeff0_20 = 0;
 
5129
    double new_coeff0_21 = 0;
 
5130
    double new_coeff0_22 = 0;
 
5131
    double new_coeff0_23 = 0;
 
5132
    double new_coeff0_24 = 0;
 
5133
    double new_coeff0_25 = 0;
 
5134
    double new_coeff0_26 = 0;
 
5135
    double new_coeff0_27 = 0;
 
5136
    double new_coeff0_28 = 0;
 
5137
    double new_coeff0_29 = 0;
 
5138
    double new_coeff0_30 = 0;
 
5139
    double new_coeff0_31 = 0;
 
5140
    double new_coeff0_32 = 0;
 
5141
    double new_coeff0_33 = 0;
 
5142
    double new_coeff0_34 = 0;
 
5143
    
 
5144
    // Loop possible derivatives
 
5145
    for (unsigned int deriv_num = 0; deriv_num < num_derivatives; deriv_num++)
 
5146
    {
 
5147
      // Get values from coefficients array
 
5148
      new_coeff0_0 = coefficients0[dof][0];
 
5149
      new_coeff0_1 = coefficients0[dof][1];
 
5150
      new_coeff0_2 = coefficients0[dof][2];
 
5151
      new_coeff0_3 = coefficients0[dof][3];
 
5152
      new_coeff0_4 = coefficients0[dof][4];
 
5153
      new_coeff0_5 = coefficients0[dof][5];
 
5154
      new_coeff0_6 = coefficients0[dof][6];
 
5155
      new_coeff0_7 = coefficients0[dof][7];
 
5156
      new_coeff0_8 = coefficients0[dof][8];
 
5157
      new_coeff0_9 = coefficients0[dof][9];
 
5158
      new_coeff0_10 = coefficients0[dof][10];
 
5159
      new_coeff0_11 = coefficients0[dof][11];
 
5160
      new_coeff0_12 = coefficients0[dof][12];
 
5161
      new_coeff0_13 = coefficients0[dof][13];
 
5162
      new_coeff0_14 = coefficients0[dof][14];
 
5163
      new_coeff0_15 = coefficients0[dof][15];
 
5164
      new_coeff0_16 = coefficients0[dof][16];
 
5165
      new_coeff0_17 = coefficients0[dof][17];
 
5166
      new_coeff0_18 = coefficients0[dof][18];
 
5167
      new_coeff0_19 = coefficients0[dof][19];
 
5168
      new_coeff0_20 = coefficients0[dof][20];
 
5169
      new_coeff0_21 = coefficients0[dof][21];
 
5170
      new_coeff0_22 = coefficients0[dof][22];
 
5171
      new_coeff0_23 = coefficients0[dof][23];
 
5172
      new_coeff0_24 = coefficients0[dof][24];
 
5173
      new_coeff0_25 = coefficients0[dof][25];
 
5174
      new_coeff0_26 = coefficients0[dof][26];
 
5175
      new_coeff0_27 = coefficients0[dof][27];
 
5176
      new_coeff0_28 = coefficients0[dof][28];
 
5177
      new_coeff0_29 = coefficients0[dof][29];
 
5178
      new_coeff0_30 = coefficients0[dof][30];
 
5179
      new_coeff0_31 = coefficients0[dof][31];
 
5180
      new_coeff0_32 = coefficients0[dof][32];
 
5181
      new_coeff0_33 = coefficients0[dof][33];
 
5182
      new_coeff0_34 = coefficients0[dof][34];
 
5183
    
 
5184
      // Loop derivative order
 
5185
      for (unsigned int j = 0; j < n; j++)
 
5186
      {
 
5187
        // Update old coefficients
 
5188
        coeff0_0 = new_coeff0_0;
 
5189
        coeff0_1 = new_coeff0_1;
 
5190
        coeff0_2 = new_coeff0_2;
 
5191
        coeff0_3 = new_coeff0_3;
 
5192
        coeff0_4 = new_coeff0_4;
 
5193
        coeff0_5 = new_coeff0_5;
 
5194
        coeff0_6 = new_coeff0_6;
 
5195
        coeff0_7 = new_coeff0_7;
 
5196
        coeff0_8 = new_coeff0_8;
 
5197
        coeff0_9 = new_coeff0_9;
 
5198
        coeff0_10 = new_coeff0_10;
 
5199
        coeff0_11 = new_coeff0_11;
 
5200
        coeff0_12 = new_coeff0_12;
 
5201
        coeff0_13 = new_coeff0_13;
 
5202
        coeff0_14 = new_coeff0_14;
 
5203
        coeff0_15 = new_coeff0_15;
 
5204
        coeff0_16 = new_coeff0_16;
 
5205
        coeff0_17 = new_coeff0_17;
 
5206
        coeff0_18 = new_coeff0_18;
 
5207
        coeff0_19 = new_coeff0_19;
 
5208
        coeff0_20 = new_coeff0_20;
 
5209
        coeff0_21 = new_coeff0_21;
 
5210
        coeff0_22 = new_coeff0_22;
 
5211
        coeff0_23 = new_coeff0_23;
 
5212
        coeff0_24 = new_coeff0_24;
 
5213
        coeff0_25 = new_coeff0_25;
 
5214
        coeff0_26 = new_coeff0_26;
 
5215
        coeff0_27 = new_coeff0_27;
 
5216
        coeff0_28 = new_coeff0_28;
 
5217
        coeff0_29 = new_coeff0_29;
 
5218
        coeff0_30 = new_coeff0_30;
 
5219
        coeff0_31 = new_coeff0_31;
 
5220
        coeff0_32 = new_coeff0_32;
 
5221
        coeff0_33 = new_coeff0_33;
 
5222
        coeff0_34 = new_coeff0_34;
 
5223
    
 
5224
        if(combinations[deriv_num][j] == 0)
 
5225
        {
 
5226
          new_coeff0_0 = coeff0_0*dmats0[0][0] + coeff0_1*dmats0[1][0] + coeff0_2*dmats0[2][0] + coeff0_3*dmats0[3][0] + coeff0_4*dmats0[4][0] + coeff0_5*dmats0[5][0] + coeff0_6*dmats0[6][0] + coeff0_7*dmats0[7][0] + coeff0_8*dmats0[8][0] + coeff0_9*dmats0[9][0] + coeff0_10*dmats0[10][0] + coeff0_11*dmats0[11][0] + coeff0_12*dmats0[12][0] + coeff0_13*dmats0[13][0] + coeff0_14*dmats0[14][0] + coeff0_15*dmats0[15][0] + coeff0_16*dmats0[16][0] + coeff0_17*dmats0[17][0] + coeff0_18*dmats0[18][0] + coeff0_19*dmats0[19][0] + coeff0_20*dmats0[20][0] + coeff0_21*dmats0[21][0] + coeff0_22*dmats0[22][0] + coeff0_23*dmats0[23][0] + coeff0_24*dmats0[24][0] + coeff0_25*dmats0[25][0] + coeff0_26*dmats0[26][0] + coeff0_27*dmats0[27][0] + coeff0_28*dmats0[28][0] + coeff0_29*dmats0[29][0] + coeff0_30*dmats0[30][0] + coeff0_31*dmats0[31][0] + coeff0_32*dmats0[32][0] + coeff0_33*dmats0[33][0] + coeff0_34*dmats0[34][0];
 
5227
          new_coeff0_1 = coeff0_0*dmats0[0][1] + coeff0_1*dmats0[1][1] + coeff0_2*dmats0[2][1] + coeff0_3*dmats0[3][1] + coeff0_4*dmats0[4][1] + coeff0_5*dmats0[5][1] + coeff0_6*dmats0[6][1] + coeff0_7*dmats0[7][1] + coeff0_8*dmats0[8][1] + coeff0_9*dmats0[9][1] + coeff0_10*dmats0[10][1] + coeff0_11*dmats0[11][1] + coeff0_12*dmats0[12][1] + coeff0_13*dmats0[13][1] + coeff0_14*dmats0[14][1] + coeff0_15*dmats0[15][1] + coeff0_16*dmats0[16][1] + coeff0_17*dmats0[17][1] + coeff0_18*dmats0[18][1] + coeff0_19*dmats0[19][1] + coeff0_20*dmats0[20][1] + coeff0_21*dmats0[21][1] + coeff0_22*dmats0[22][1] + coeff0_23*dmats0[23][1] + coeff0_24*dmats0[24][1] + coeff0_25*dmats0[25][1] + coeff0_26*dmats0[26][1] + coeff0_27*dmats0[27][1] + coeff0_28*dmats0[28][1] + coeff0_29*dmats0[29][1] + coeff0_30*dmats0[30][1] + coeff0_31*dmats0[31][1] + coeff0_32*dmats0[32][1] + coeff0_33*dmats0[33][1] + coeff0_34*dmats0[34][1];
 
5228
          new_coeff0_2 = coeff0_0*dmats0[0][2] + coeff0_1*dmats0[1][2] + coeff0_2*dmats0[2][2] + coeff0_3*dmats0[3][2] + coeff0_4*dmats0[4][2] + coeff0_5*dmats0[5][2] + coeff0_6*dmats0[6][2] + coeff0_7*dmats0[7][2] + coeff0_8*dmats0[8][2] + coeff0_9*dmats0[9][2] + coeff0_10*dmats0[10][2] + coeff0_11*dmats0[11][2] + coeff0_12*dmats0[12][2] + coeff0_13*dmats0[13][2] + coeff0_14*dmats0[14][2] + coeff0_15*dmats0[15][2] + coeff0_16*dmats0[16][2] + coeff0_17*dmats0[17][2] + coeff0_18*dmats0[18][2] + coeff0_19*dmats0[19][2] + coeff0_20*dmats0[20][2] + coeff0_21*dmats0[21][2] + coeff0_22*dmats0[22][2] + coeff0_23*dmats0[23][2] + coeff0_24*dmats0[24][2] + coeff0_25*dmats0[25][2] + coeff0_26*dmats0[26][2] + coeff0_27*dmats0[27][2] + coeff0_28*dmats0[28][2] + coeff0_29*dmats0[29][2] + coeff0_30*dmats0[30][2] + coeff0_31*dmats0[31][2] + coeff0_32*dmats0[32][2] + coeff0_33*dmats0[33][2] + coeff0_34*dmats0[34][2];
 
5229
          new_coeff0_3 = coeff0_0*dmats0[0][3] + coeff0_1*dmats0[1][3] + coeff0_2*dmats0[2][3] + coeff0_3*dmats0[3][3] + coeff0_4*dmats0[4][3] + coeff0_5*dmats0[5][3] + coeff0_6*dmats0[6][3] + coeff0_7*dmats0[7][3] + coeff0_8*dmats0[8][3] + coeff0_9*dmats0[9][3] + coeff0_10*dmats0[10][3] + coeff0_11*dmats0[11][3] + coeff0_12*dmats0[12][3] + coeff0_13*dmats0[13][3] + coeff0_14*dmats0[14][3] + coeff0_15*dmats0[15][3] + coeff0_16*dmats0[16][3] + coeff0_17*dmats0[17][3] + coeff0_18*dmats0[18][3] + coeff0_19*dmats0[19][3] + coeff0_20*dmats0[20][3] + coeff0_21*dmats0[21][3] + coeff0_22*dmats0[22][3] + coeff0_23*dmats0[23][3] + coeff0_24*dmats0[24][3] + coeff0_25*dmats0[25][3] + coeff0_26*dmats0[26][3] + coeff0_27*dmats0[27][3] + coeff0_28*dmats0[28][3] + coeff0_29*dmats0[29][3] + coeff0_30*dmats0[30][3] + coeff0_31*dmats0[31][3] + coeff0_32*dmats0[32][3] + coeff0_33*dmats0[33][3] + coeff0_34*dmats0[34][3];
 
5230
          new_coeff0_4 = coeff0_0*dmats0[0][4] + coeff0_1*dmats0[1][4] + coeff0_2*dmats0[2][4] + coeff0_3*dmats0[3][4] + coeff0_4*dmats0[4][4] + coeff0_5*dmats0[5][4] + coeff0_6*dmats0[6][4] + coeff0_7*dmats0[7][4] + coeff0_8*dmats0[8][4] + coeff0_9*dmats0[9][4] + coeff0_10*dmats0[10][4] + coeff0_11*dmats0[11][4] + coeff0_12*dmats0[12][4] + coeff0_13*dmats0[13][4] + coeff0_14*dmats0[14][4] + coeff0_15*dmats0[15][4] + coeff0_16*dmats0[16][4] + coeff0_17*dmats0[17][4] + coeff0_18*dmats0[18][4] + coeff0_19*dmats0[19][4] + coeff0_20*dmats0[20][4] + coeff0_21*dmats0[21][4] + coeff0_22*dmats0[22][4] + coeff0_23*dmats0[23][4] + coeff0_24*dmats0[24][4] + coeff0_25*dmats0[25][4] + coeff0_26*dmats0[26][4] + coeff0_27*dmats0[27][4] + coeff0_28*dmats0[28][4] + coeff0_29*dmats0[29][4] + coeff0_30*dmats0[30][4] + coeff0_31*dmats0[31][4] + coeff0_32*dmats0[32][4] + coeff0_33*dmats0[33][4] + coeff0_34*dmats0[34][4];
 
5231
          new_coeff0_5 = coeff0_0*dmats0[0][5] + coeff0_1*dmats0[1][5] + coeff0_2*dmats0[2][5] + coeff0_3*dmats0[3][5] + coeff0_4*dmats0[4][5] + coeff0_5*dmats0[5][5] + coeff0_6*dmats0[6][5] + coeff0_7*dmats0[7][5] + coeff0_8*dmats0[8][5] + coeff0_9*dmats0[9][5] + coeff0_10*dmats0[10][5] + coeff0_11*dmats0[11][5] + coeff0_12*dmats0[12][5] + coeff0_13*dmats0[13][5] + coeff0_14*dmats0[14][5] + coeff0_15*dmats0[15][5] + coeff0_16*dmats0[16][5] + coeff0_17*dmats0[17][5] + coeff0_18*dmats0[18][5] + coeff0_19*dmats0[19][5] + coeff0_20*dmats0[20][5] + coeff0_21*dmats0[21][5] + coeff0_22*dmats0[22][5] + coeff0_23*dmats0[23][5] + coeff0_24*dmats0[24][5] + coeff0_25*dmats0[25][5] + coeff0_26*dmats0[26][5] + coeff0_27*dmats0[27][5] + coeff0_28*dmats0[28][5] + coeff0_29*dmats0[29][5] + coeff0_30*dmats0[30][5] + coeff0_31*dmats0[31][5] + coeff0_32*dmats0[32][5] + coeff0_33*dmats0[33][5] + coeff0_34*dmats0[34][5];
 
5232
          new_coeff0_6 = coeff0_0*dmats0[0][6] + coeff0_1*dmats0[1][6] + coeff0_2*dmats0[2][6] + coeff0_3*dmats0[3][6] + coeff0_4*dmats0[4][6] + coeff0_5*dmats0[5][6] + coeff0_6*dmats0[6][6] + coeff0_7*dmats0[7][6] + coeff0_8*dmats0[8][6] + coeff0_9*dmats0[9][6] + coeff0_10*dmats0[10][6] + coeff0_11*dmats0[11][6] + coeff0_12*dmats0[12][6] + coeff0_13*dmats0[13][6] + coeff0_14*dmats0[14][6] + coeff0_15*dmats0[15][6] + coeff0_16*dmats0[16][6] + coeff0_17*dmats0[17][6] + coeff0_18*dmats0[18][6] + coeff0_19*dmats0[19][6] + coeff0_20*dmats0[20][6] + coeff0_21*dmats0[21][6] + coeff0_22*dmats0[22][6] + coeff0_23*dmats0[23][6] + coeff0_24*dmats0[24][6] + coeff0_25*dmats0[25][6] + coeff0_26*dmats0[26][6] + coeff0_27*dmats0[27][6] + coeff0_28*dmats0[28][6] + coeff0_29*dmats0[29][6] + coeff0_30*dmats0[30][6] + coeff0_31*dmats0[31][6] + coeff0_32*dmats0[32][6] + coeff0_33*dmats0[33][6] + coeff0_34*dmats0[34][6];
 
5233
          new_coeff0_7 = coeff0_0*dmats0[0][7] + coeff0_1*dmats0[1][7] + coeff0_2*dmats0[2][7] + coeff0_3*dmats0[3][7] + coeff0_4*dmats0[4][7] + coeff0_5*dmats0[5][7] + coeff0_6*dmats0[6][7] + coeff0_7*dmats0[7][7] + coeff0_8*dmats0[8][7] + coeff0_9*dmats0[9][7] + coeff0_10*dmats0[10][7] + coeff0_11*dmats0[11][7] + coeff0_12*dmats0[12][7] + coeff0_13*dmats0[13][7] + coeff0_14*dmats0[14][7] + coeff0_15*dmats0[15][7] + coeff0_16*dmats0[16][7] + coeff0_17*dmats0[17][7] + coeff0_18*dmats0[18][7] + coeff0_19*dmats0[19][7] + coeff0_20*dmats0[20][7] + coeff0_21*dmats0[21][7] + coeff0_22*dmats0[22][7] + coeff0_23*dmats0[23][7] + coeff0_24*dmats0[24][7] + coeff0_25*dmats0[25][7] + coeff0_26*dmats0[26][7] + coeff0_27*dmats0[27][7] + coeff0_28*dmats0[28][7] + coeff0_29*dmats0[29][7] + coeff0_30*dmats0[30][7] + coeff0_31*dmats0[31][7] + coeff0_32*dmats0[32][7] + coeff0_33*dmats0[33][7] + coeff0_34*dmats0[34][7];
 
5234
          new_coeff0_8 = coeff0_0*dmats0[0][8] + coeff0_1*dmats0[1][8] + coeff0_2*dmats0[2][8] + coeff0_3*dmats0[3][8] + coeff0_4*dmats0[4][8] + coeff0_5*dmats0[5][8] + coeff0_6*dmats0[6][8] + coeff0_7*dmats0[7][8] + coeff0_8*dmats0[8][8] + coeff0_9*dmats0[9][8] + coeff0_10*dmats0[10][8] + coeff0_11*dmats0[11][8] + coeff0_12*dmats0[12][8] + coeff0_13*dmats0[13][8] + coeff0_14*dmats0[14][8] + coeff0_15*dmats0[15][8] + coeff0_16*dmats0[16][8] + coeff0_17*dmats0[17][8] + coeff0_18*dmats0[18][8] + coeff0_19*dmats0[19][8] + coeff0_20*dmats0[20][8] + coeff0_21*dmats0[21][8] + coeff0_22*dmats0[22][8] + coeff0_23*dmats0[23][8] + coeff0_24*dmats0[24][8] + coeff0_25*dmats0[25][8] + coeff0_26*dmats0[26][8] + coeff0_27*dmats0[27][8] + coeff0_28*dmats0[28][8] + coeff0_29*dmats0[29][8] + coeff0_30*dmats0[30][8] + coeff0_31*dmats0[31][8] + coeff0_32*dmats0[32][8] + coeff0_33*dmats0[33][8] + coeff0_34*dmats0[34][8];
 
5235
          new_coeff0_9 = coeff0_0*dmats0[0][9] + coeff0_1*dmats0[1][9] + coeff0_2*dmats0[2][9] + coeff0_3*dmats0[3][9] + coeff0_4*dmats0[4][9] + coeff0_5*dmats0[5][9] + coeff0_6*dmats0[6][9] + coeff0_7*dmats0[7][9] + coeff0_8*dmats0[8][9] + coeff0_9*dmats0[9][9] + coeff0_10*dmats0[10][9] + coeff0_11*dmats0[11][9] + coeff0_12*dmats0[12][9] + coeff0_13*dmats0[13][9] + coeff0_14*dmats0[14][9] + coeff0_15*dmats0[15][9] + coeff0_16*dmats0[16][9] + coeff0_17*dmats0[17][9] + coeff0_18*dmats0[18][9] + coeff0_19*dmats0[19][9] + coeff0_20*dmats0[20][9] + coeff0_21*dmats0[21][9] + coeff0_22*dmats0[22][9] + coeff0_23*dmats0[23][9] + coeff0_24*dmats0[24][9] + coeff0_25*dmats0[25][9] + coeff0_26*dmats0[26][9] + coeff0_27*dmats0[27][9] + coeff0_28*dmats0[28][9] + coeff0_29*dmats0[29][9] + coeff0_30*dmats0[30][9] + coeff0_31*dmats0[31][9] + coeff0_32*dmats0[32][9] + coeff0_33*dmats0[33][9] + coeff0_34*dmats0[34][9];
 
5236
          new_coeff0_10 = coeff0_0*dmats0[0][10] + coeff0_1*dmats0[1][10] + coeff0_2*dmats0[2][10] + coeff0_3*dmats0[3][10] + coeff0_4*dmats0[4][10] + coeff0_5*dmats0[5][10] + coeff0_6*dmats0[6][10] + coeff0_7*dmats0[7][10] + coeff0_8*dmats0[8][10] + coeff0_9*dmats0[9][10] + coeff0_10*dmats0[10][10] + coeff0_11*dmats0[11][10] + coeff0_12*dmats0[12][10] + coeff0_13*dmats0[13][10] + coeff0_14*dmats0[14][10] + coeff0_15*dmats0[15][10] + coeff0_16*dmats0[16][10] + coeff0_17*dmats0[17][10] + coeff0_18*dmats0[18][10] + coeff0_19*dmats0[19][10] + coeff0_20*dmats0[20][10] + coeff0_21*dmats0[21][10] + coeff0_22*dmats0[22][10] + coeff0_23*dmats0[23][10] + coeff0_24*dmats0[24][10] + coeff0_25*dmats0[25][10] + coeff0_26*dmats0[26][10] + coeff0_27*dmats0[27][10] + coeff0_28*dmats0[28][10] + coeff0_29*dmats0[29][10] + coeff0_30*dmats0[30][10] + coeff0_31*dmats0[31][10] + coeff0_32*dmats0[32][10] + coeff0_33*dmats0[33][10] + coeff0_34*dmats0[34][10];
 
5237
          new_coeff0_11 = coeff0_0*dmats0[0][11] + coeff0_1*dmats0[1][11] + coeff0_2*dmats0[2][11] + coeff0_3*dmats0[3][11] + coeff0_4*dmats0[4][11] + coeff0_5*dmats0[5][11] + coeff0_6*dmats0[6][11] + coeff0_7*dmats0[7][11] + coeff0_8*dmats0[8][11] + coeff0_9*dmats0[9][11] + coeff0_10*dmats0[10][11] + coeff0_11*dmats0[11][11] + coeff0_12*dmats0[12][11] + coeff0_13*dmats0[13][11] + coeff0_14*dmats0[14][11] + coeff0_15*dmats0[15][11] + coeff0_16*dmats0[16][11] + coeff0_17*dmats0[17][11] + coeff0_18*dmats0[18][11] + coeff0_19*dmats0[19][11] + coeff0_20*dmats0[20][11] + coeff0_21*dmats0[21][11] + coeff0_22*dmats0[22][11] + coeff0_23*dmats0[23][11] + coeff0_24*dmats0[24][11] + coeff0_25*dmats0[25][11] + coeff0_26*dmats0[26][11] + coeff0_27*dmats0[27][11] + coeff0_28*dmats0[28][11] + coeff0_29*dmats0[29][11] + coeff0_30*dmats0[30][11] + coeff0_31*dmats0[31][11] + coeff0_32*dmats0[32][11] + coeff0_33*dmats0[33][11] + coeff0_34*dmats0[34][11];
 
5238
          new_coeff0_12 = coeff0_0*dmats0[0][12] + coeff0_1*dmats0[1][12] + coeff0_2*dmats0[2][12] + coeff0_3*dmats0[3][12] + coeff0_4*dmats0[4][12] + coeff0_5*dmats0[5][12] + coeff0_6*dmats0[6][12] + coeff0_7*dmats0[7][12] + coeff0_8*dmats0[8][12] + coeff0_9*dmats0[9][12] + coeff0_10*dmats0[10][12] + coeff0_11*dmats0[11][12] + coeff0_12*dmats0[12][12] + coeff0_13*dmats0[13][12] + coeff0_14*dmats0[14][12] + coeff0_15*dmats0[15][12] + coeff0_16*dmats0[16][12] + coeff0_17*dmats0[17][12] + coeff0_18*dmats0[18][12] + coeff0_19*dmats0[19][12] + coeff0_20*dmats0[20][12] + coeff0_21*dmats0[21][12] + coeff0_22*dmats0[22][12] + coeff0_23*dmats0[23][12] + coeff0_24*dmats0[24][12] + coeff0_25*dmats0[25][12] + coeff0_26*dmats0[26][12] + coeff0_27*dmats0[27][12] + coeff0_28*dmats0[28][12] + coeff0_29*dmats0[29][12] + coeff0_30*dmats0[30][12] + coeff0_31*dmats0[31][12] + coeff0_32*dmats0[32][12] + coeff0_33*dmats0[33][12] + coeff0_34*dmats0[34][12];
 
5239
          new_coeff0_13 = coeff0_0*dmats0[0][13] + coeff0_1*dmats0[1][13] + coeff0_2*dmats0[2][13] + coeff0_3*dmats0[3][13] + coeff0_4*dmats0[4][13] + coeff0_5*dmats0[5][13] + coeff0_6*dmats0[6][13] + coeff0_7*dmats0[7][13] + coeff0_8*dmats0[8][13] + coeff0_9*dmats0[9][13] + coeff0_10*dmats0[10][13] + coeff0_11*dmats0[11][13] + coeff0_12*dmats0[12][13] + coeff0_13*dmats0[13][13] + coeff0_14*dmats0[14][13] + coeff0_15*dmats0[15][13] + coeff0_16*dmats0[16][13] + coeff0_17*dmats0[17][13] + coeff0_18*dmats0[18][13] + coeff0_19*dmats0[19][13] + coeff0_20*dmats0[20][13] + coeff0_21*dmats0[21][13] + coeff0_22*dmats0[22][13] + coeff0_23*dmats0[23][13] + coeff0_24*dmats0[24][13] + coeff0_25*dmats0[25][13] + coeff0_26*dmats0[26][13] + coeff0_27*dmats0[27][13] + coeff0_28*dmats0[28][13] + coeff0_29*dmats0[29][13] + coeff0_30*dmats0[30][13] + coeff0_31*dmats0[31][13] + coeff0_32*dmats0[32][13] + coeff0_33*dmats0[33][13] + coeff0_34*dmats0[34][13];
 
5240
          new_coeff0_14 = coeff0_0*dmats0[0][14] + coeff0_1*dmats0[1][14] + coeff0_2*dmats0[2][14] + coeff0_3*dmats0[3][14] + coeff0_4*dmats0[4][14] + coeff0_5*dmats0[5][14] + coeff0_6*dmats0[6][14] + coeff0_7*dmats0[7][14] + coeff0_8*dmats0[8][14] + coeff0_9*dmats0[9][14] + coeff0_10*dmats0[10][14] + coeff0_11*dmats0[11][14] + coeff0_12*dmats0[12][14] + coeff0_13*dmats0[13][14] + coeff0_14*dmats0[14][14] + coeff0_15*dmats0[15][14] + coeff0_16*dmats0[16][14] + coeff0_17*dmats0[17][14] + coeff0_18*dmats0[18][14] + coeff0_19*dmats0[19][14] + coeff0_20*dmats0[20][14] + coeff0_21*dmats0[21][14] + coeff0_22*dmats0[22][14] + coeff0_23*dmats0[23][14] + coeff0_24*dmats0[24][14] + coeff0_25*dmats0[25][14] + coeff0_26*dmats0[26][14] + coeff0_27*dmats0[27][14] + coeff0_28*dmats0[28][14] + coeff0_29*dmats0[29][14] + coeff0_30*dmats0[30][14] + coeff0_31*dmats0[31][14] + coeff0_32*dmats0[32][14] + coeff0_33*dmats0[33][14] + coeff0_34*dmats0[34][14];
 
5241
          new_coeff0_15 = coeff0_0*dmats0[0][15] + coeff0_1*dmats0[1][15] + coeff0_2*dmats0[2][15] + coeff0_3*dmats0[3][15] + coeff0_4*dmats0[4][15] + coeff0_5*dmats0[5][15] + coeff0_6*dmats0[6][15] + coeff0_7*dmats0[7][15] + coeff0_8*dmats0[8][15] + coeff0_9*dmats0[9][15] + coeff0_10*dmats0[10][15] + coeff0_11*dmats0[11][15] + coeff0_12*dmats0[12][15] + coeff0_13*dmats0[13][15] + coeff0_14*dmats0[14][15] + coeff0_15*dmats0[15][15] + coeff0_16*dmats0[16][15] + coeff0_17*dmats0[17][15] + coeff0_18*dmats0[18][15] + coeff0_19*dmats0[19][15] + coeff0_20*dmats0[20][15] + coeff0_21*dmats0[21][15] + coeff0_22*dmats0[22][15] + coeff0_23*dmats0[23][15] + coeff0_24*dmats0[24][15] + coeff0_25*dmats0[25][15] + coeff0_26*dmats0[26][15] + coeff0_27*dmats0[27][15] + coeff0_28*dmats0[28][15] + coeff0_29*dmats0[29][15] + coeff0_30*dmats0[30][15] + coeff0_31*dmats0[31][15] + coeff0_32*dmats0[32][15] + coeff0_33*dmats0[33][15] + coeff0_34*dmats0[34][15];
 
5242
          new_coeff0_16 = coeff0_0*dmats0[0][16] + coeff0_1*dmats0[1][16] + coeff0_2*dmats0[2][16] + coeff0_3*dmats0[3][16] + coeff0_4*dmats0[4][16] + coeff0_5*dmats0[5][16] + coeff0_6*dmats0[6][16] + coeff0_7*dmats0[7][16] + coeff0_8*dmats0[8][16] + coeff0_9*dmats0[9][16] + coeff0_10*dmats0[10][16] + coeff0_11*dmats0[11][16] + coeff0_12*dmats0[12][16] + coeff0_13*dmats0[13][16] + coeff0_14*dmats0[14][16] + coeff0_15*dmats0[15][16] + coeff0_16*dmats0[16][16] + coeff0_17*dmats0[17][16] + coeff0_18*dmats0[18][16] + coeff0_19*dmats0[19][16] + coeff0_20*dmats0[20][16] + coeff0_21*dmats0[21][16] + coeff0_22*dmats0[22][16] + coeff0_23*dmats0[23][16] + coeff0_24*dmats0[24][16] + coeff0_25*dmats0[25][16] + coeff0_26*dmats0[26][16] + coeff0_27*dmats0[27][16] + coeff0_28*dmats0[28][16] + coeff0_29*dmats0[29][16] + coeff0_30*dmats0[30][16] + coeff0_31*dmats0[31][16] + coeff0_32*dmats0[32][16] + coeff0_33*dmats0[33][16] + coeff0_34*dmats0[34][16];
 
5243
          new_coeff0_17 = coeff0_0*dmats0[0][17] + coeff0_1*dmats0[1][17] + coeff0_2*dmats0[2][17] + coeff0_3*dmats0[3][17] + coeff0_4*dmats0[4][17] + coeff0_5*dmats0[5][17] + coeff0_6*dmats0[6][17] + coeff0_7*dmats0[7][17] + coeff0_8*dmats0[8][17] + coeff0_9*dmats0[9][17] + coeff0_10*dmats0[10][17] + coeff0_11*dmats0[11][17] + coeff0_12*dmats0[12][17] + coeff0_13*dmats0[13][17] + coeff0_14*dmats0[14][17] + coeff0_15*dmats0[15][17] + coeff0_16*dmats0[16][17] + coeff0_17*dmats0[17][17] + coeff0_18*dmats0[18][17] + coeff0_19*dmats0[19][17] + coeff0_20*dmats0[20][17] + coeff0_21*dmats0[21][17] + coeff0_22*dmats0[22][17] + coeff0_23*dmats0[23][17] + coeff0_24*dmats0[24][17] + coeff0_25*dmats0[25][17] + coeff0_26*dmats0[26][17] + coeff0_27*dmats0[27][17] + coeff0_28*dmats0[28][17] + coeff0_29*dmats0[29][17] + coeff0_30*dmats0[30][17] + coeff0_31*dmats0[31][17] + coeff0_32*dmats0[32][17] + coeff0_33*dmats0[33][17] + coeff0_34*dmats0[34][17];
 
5244
          new_coeff0_18 = coeff0_0*dmats0[0][18] + coeff0_1*dmats0[1][18] + coeff0_2*dmats0[2][18] + coeff0_3*dmats0[3][18] + coeff0_4*dmats0[4][18] + coeff0_5*dmats0[5][18] + coeff0_6*dmats0[6][18] + coeff0_7*dmats0[7][18] + coeff0_8*dmats0[8][18] + coeff0_9*dmats0[9][18] + coeff0_10*dmats0[10][18] + coeff0_11*dmats0[11][18] + coeff0_12*dmats0[12][18] + coeff0_13*dmats0[13][18] + coeff0_14*dmats0[14][18] + coeff0_15*dmats0[15][18] + coeff0_16*dmats0[16][18] + coeff0_17*dmats0[17][18] + coeff0_18*dmats0[18][18] + coeff0_19*dmats0[19][18] + coeff0_20*dmats0[20][18] + coeff0_21*dmats0[21][18] + coeff0_22*dmats0[22][18] + coeff0_23*dmats0[23][18] + coeff0_24*dmats0[24][18] + coeff0_25*dmats0[25][18] + coeff0_26*dmats0[26][18] + coeff0_27*dmats0[27][18] + coeff0_28*dmats0[28][18] + coeff0_29*dmats0[29][18] + coeff0_30*dmats0[30][18] + coeff0_31*dmats0[31][18] + coeff0_32*dmats0[32][18] + coeff0_33*dmats0[33][18] + coeff0_34*dmats0[34][18];
 
5245
          new_coeff0_19 = coeff0_0*dmats0[0][19] + coeff0_1*dmats0[1][19] + coeff0_2*dmats0[2][19] + coeff0_3*dmats0[3][19] + coeff0_4*dmats0[4][19] + coeff0_5*dmats0[5][19] + coeff0_6*dmats0[6][19] + coeff0_7*dmats0[7][19] + coeff0_8*dmats0[8][19] + coeff0_9*dmats0[9][19] + coeff0_10*dmats0[10][19] + coeff0_11*dmats0[11][19] + coeff0_12*dmats0[12][19] + coeff0_13*dmats0[13][19] + coeff0_14*dmats0[14][19] + coeff0_15*dmats0[15][19] + coeff0_16*dmats0[16][19] + coeff0_17*dmats0[17][19] + coeff0_18*dmats0[18][19] + coeff0_19*dmats0[19][19] + coeff0_20*dmats0[20][19] + coeff0_21*dmats0[21][19] + coeff0_22*dmats0[22][19] + coeff0_23*dmats0[23][19] + coeff0_24*dmats0[24][19] + coeff0_25*dmats0[25][19] + coeff0_26*dmats0[26][19] + coeff0_27*dmats0[27][19] + coeff0_28*dmats0[28][19] + coeff0_29*dmats0[29][19] + coeff0_30*dmats0[30][19] + coeff0_31*dmats0[31][19] + coeff0_32*dmats0[32][19] + coeff0_33*dmats0[33][19] + coeff0_34*dmats0[34][19];
 
5246
          new_coeff0_20 = coeff0_0*dmats0[0][20] + coeff0_1*dmats0[1][20] + coeff0_2*dmats0[2][20] + coeff0_3*dmats0[3][20] + coeff0_4*dmats0[4][20] + coeff0_5*dmats0[5][20] + coeff0_6*dmats0[6][20] + coeff0_7*dmats0[7][20] + coeff0_8*dmats0[8][20] + coeff0_9*dmats0[9][20] + coeff0_10*dmats0[10][20] + coeff0_11*dmats0[11][20] + coeff0_12*dmats0[12][20] + coeff0_13*dmats0[13][20] + coeff0_14*dmats0[14][20] + coeff0_15*dmats0[15][20] + coeff0_16*dmats0[16][20] + coeff0_17*dmats0[17][20] + coeff0_18*dmats0[18][20] + coeff0_19*dmats0[19][20] + coeff0_20*dmats0[20][20] + coeff0_21*dmats0[21][20] + coeff0_22*dmats0[22][20] + coeff0_23*dmats0[23][20] + coeff0_24*dmats0[24][20] + coeff0_25*dmats0[25][20] + coeff0_26*dmats0[26][20] + coeff0_27*dmats0[27][20] + coeff0_28*dmats0[28][20] + coeff0_29*dmats0[29][20] + coeff0_30*dmats0[30][20] + coeff0_31*dmats0[31][20] + coeff0_32*dmats0[32][20] + coeff0_33*dmats0[33][20] + coeff0_34*dmats0[34][20];
 
5247
          new_coeff0_21 = coeff0_0*dmats0[0][21] + coeff0_1*dmats0[1][21] + coeff0_2*dmats0[2][21] + coeff0_3*dmats0[3][21] + coeff0_4*dmats0[4][21] + coeff0_5*dmats0[5][21] + coeff0_6*dmats0[6][21] + coeff0_7*dmats0[7][21] + coeff0_8*dmats0[8][21] + coeff0_9*dmats0[9][21] + coeff0_10*dmats0[10][21] + coeff0_11*dmats0[11][21] + coeff0_12*dmats0[12][21] + coeff0_13*dmats0[13][21] + coeff0_14*dmats0[14][21] + coeff0_15*dmats0[15][21] + coeff0_16*dmats0[16][21] + coeff0_17*dmats0[17][21] + coeff0_18*dmats0[18][21] + coeff0_19*dmats0[19][21] + coeff0_20*dmats0[20][21] + coeff0_21*dmats0[21][21] + coeff0_22*dmats0[22][21] + coeff0_23*dmats0[23][21] + coeff0_24*dmats0[24][21] + coeff0_25*dmats0[25][21] + coeff0_26*dmats0[26][21] + coeff0_27*dmats0[27][21] + coeff0_28*dmats0[28][21] + coeff0_29*dmats0[29][21] + coeff0_30*dmats0[30][21] + coeff0_31*dmats0[31][21] + coeff0_32*dmats0[32][21] + coeff0_33*dmats0[33][21] + coeff0_34*dmats0[34][21];
 
5248
          new_coeff0_22 = coeff0_0*dmats0[0][22] + coeff0_1*dmats0[1][22] + coeff0_2*dmats0[2][22] + coeff0_3*dmats0[3][22] + coeff0_4*dmats0[4][22] + coeff0_5*dmats0[5][22] + coeff0_6*dmats0[6][22] + coeff0_7*dmats0[7][22] + coeff0_8*dmats0[8][22] + coeff0_9*dmats0[9][22] + coeff0_10*dmats0[10][22] + coeff0_11*dmats0[11][22] + coeff0_12*dmats0[12][22] + coeff0_13*dmats0[13][22] + coeff0_14*dmats0[14][22] + coeff0_15*dmats0[15][22] + coeff0_16*dmats0[16][22] + coeff0_17*dmats0[17][22] + coeff0_18*dmats0[18][22] + coeff0_19*dmats0[19][22] + coeff0_20*dmats0[20][22] + coeff0_21*dmats0[21][22] + coeff0_22*dmats0[22][22] + coeff0_23*dmats0[23][22] + coeff0_24*dmats0[24][22] + coeff0_25*dmats0[25][22] + coeff0_26*dmats0[26][22] + coeff0_27*dmats0[27][22] + coeff0_28*dmats0[28][22] + coeff0_29*dmats0[29][22] + coeff0_30*dmats0[30][22] + coeff0_31*dmats0[31][22] + coeff0_32*dmats0[32][22] + coeff0_33*dmats0[33][22] + coeff0_34*dmats0[34][22];
 
5249
          new_coeff0_23 = coeff0_0*dmats0[0][23] + coeff0_1*dmats0[1][23] + coeff0_2*dmats0[2][23] + coeff0_3*dmats0[3][23] + coeff0_4*dmats0[4][23] + coeff0_5*dmats0[5][23] + coeff0_6*dmats0[6][23] + coeff0_7*dmats0[7][23] + coeff0_8*dmats0[8][23] + coeff0_9*dmats0[9][23] + coeff0_10*dmats0[10][23] + coeff0_11*dmats0[11][23] + coeff0_12*dmats0[12][23] + coeff0_13*dmats0[13][23] + coeff0_14*dmats0[14][23] + coeff0_15*dmats0[15][23] + coeff0_16*dmats0[16][23] + coeff0_17*dmats0[17][23] + coeff0_18*dmats0[18][23] + coeff0_19*dmats0[19][23] + coeff0_20*dmats0[20][23] + coeff0_21*dmats0[21][23] + coeff0_22*dmats0[22][23] + coeff0_23*dmats0[23][23] + coeff0_24*dmats0[24][23] + coeff0_25*dmats0[25][23] + coeff0_26*dmats0[26][23] + coeff0_27*dmats0[27][23] + coeff0_28*dmats0[28][23] + coeff0_29*dmats0[29][23] + coeff0_30*dmats0[30][23] + coeff0_31*dmats0[31][23] + coeff0_32*dmats0[32][23] + coeff0_33*dmats0[33][23] + coeff0_34*dmats0[34][23];
 
5250
          new_coeff0_24 = coeff0_0*dmats0[0][24] + coeff0_1*dmats0[1][24] + coeff0_2*dmats0[2][24] + coeff0_3*dmats0[3][24] + coeff0_4*dmats0[4][24] + coeff0_5*dmats0[5][24] + coeff0_6*dmats0[6][24] + coeff0_7*dmats0[7][24] + coeff0_8*dmats0[8][24] + coeff0_9*dmats0[9][24] + coeff0_10*dmats0[10][24] + coeff0_11*dmats0[11][24] + coeff0_12*dmats0[12][24] + coeff0_13*dmats0[13][24] + coeff0_14*dmats0[14][24] + coeff0_15*dmats0[15][24] + coeff0_16*dmats0[16][24] + coeff0_17*dmats0[17][24] + coeff0_18*dmats0[18][24] + coeff0_19*dmats0[19][24] + coeff0_20*dmats0[20][24] + coeff0_21*dmats0[21][24] + coeff0_22*dmats0[22][24] + coeff0_23*dmats0[23][24] + coeff0_24*dmats0[24][24] + coeff0_25*dmats0[25][24] + coeff0_26*dmats0[26][24] + coeff0_27*dmats0[27][24] + coeff0_28*dmats0[28][24] + coeff0_29*dmats0[29][24] + coeff0_30*dmats0[30][24] + coeff0_31*dmats0[31][24] + coeff0_32*dmats0[32][24] + coeff0_33*dmats0[33][24] + coeff0_34*dmats0[34][24];
 
5251
          new_coeff0_25 = coeff0_0*dmats0[0][25] + coeff0_1*dmats0[1][25] + coeff0_2*dmats0[2][25] + coeff0_3*dmats0[3][25] + coeff0_4*dmats0[4][25] + coeff0_5*dmats0[5][25] + coeff0_6*dmats0[6][25] + coeff0_7*dmats0[7][25] + coeff0_8*dmats0[8][25] + coeff0_9*dmats0[9][25] + coeff0_10*dmats0[10][25] + coeff0_11*dmats0[11][25] + coeff0_12*dmats0[12][25] + coeff0_13*dmats0[13][25] + coeff0_14*dmats0[14][25] + coeff0_15*dmats0[15][25] + coeff0_16*dmats0[16][25] + coeff0_17*dmats0[17][25] + coeff0_18*dmats0[18][25] + coeff0_19*dmats0[19][25] + coeff0_20*dmats0[20][25] + coeff0_21*dmats0[21][25] + coeff0_22*dmats0[22][25] + coeff0_23*dmats0[23][25] + coeff0_24*dmats0[24][25] + coeff0_25*dmats0[25][25] + coeff0_26*dmats0[26][25] + coeff0_27*dmats0[27][25] + coeff0_28*dmats0[28][25] + coeff0_29*dmats0[29][25] + coeff0_30*dmats0[30][25] + coeff0_31*dmats0[31][25] + coeff0_32*dmats0[32][25] + coeff0_33*dmats0[33][25] + coeff0_34*dmats0[34][25];
 
5252
          new_coeff0_26 = coeff0_0*dmats0[0][26] + coeff0_1*dmats0[1][26] + coeff0_2*dmats0[2][26] + coeff0_3*dmats0[3][26] + coeff0_4*dmats0[4][26] + coeff0_5*dmats0[5][26] + coeff0_6*dmats0[6][26] + coeff0_7*dmats0[7][26] + coeff0_8*dmats0[8][26] + coeff0_9*dmats0[9][26] + coeff0_10*dmats0[10][26] + coeff0_11*dmats0[11][26] + coeff0_12*dmats0[12][26] + coeff0_13*dmats0[13][26] + coeff0_14*dmats0[14][26] + coeff0_15*dmats0[15][26] + coeff0_16*dmats0[16][26] + coeff0_17*dmats0[17][26] + coeff0_18*dmats0[18][26] + coeff0_19*dmats0[19][26] + coeff0_20*dmats0[20][26] + coeff0_21*dmats0[21][26] + coeff0_22*dmats0[22][26] + coeff0_23*dmats0[23][26] + coeff0_24*dmats0[24][26] + coeff0_25*dmats0[25][26] + coeff0_26*dmats0[26][26] + coeff0_27*dmats0[27][26] + coeff0_28*dmats0[28][26] + coeff0_29*dmats0[29][26] + coeff0_30*dmats0[30][26] + coeff0_31*dmats0[31][26] + coeff0_32*dmats0[32][26] + coeff0_33*dmats0[33][26] + coeff0_34*dmats0[34][26];
 
5253
          new_coeff0_27 = coeff0_0*dmats0[0][27] + coeff0_1*dmats0[1][27] + coeff0_2*dmats0[2][27] + coeff0_3*dmats0[3][27] + coeff0_4*dmats0[4][27] + coeff0_5*dmats0[5][27] + coeff0_6*dmats0[6][27] + coeff0_7*dmats0[7][27] + coeff0_8*dmats0[8][27] + coeff0_9*dmats0[9][27] + coeff0_10*dmats0[10][27] + coeff0_11*dmats0[11][27] + coeff0_12*dmats0[12][27] + coeff0_13*dmats0[13][27] + coeff0_14*dmats0[14][27] + coeff0_15*dmats0[15][27] + coeff0_16*dmats0[16][27] + coeff0_17*dmats0[17][27] + coeff0_18*dmats0[18][27] + coeff0_19*dmats0[19][27] + coeff0_20*dmats0[20][27] + coeff0_21*dmats0[21][27] + coeff0_22*dmats0[22][27] + coeff0_23*dmats0[23][27] + coeff0_24*dmats0[24][27] + coeff0_25*dmats0[25][27] + coeff0_26*dmats0[26][27] + coeff0_27*dmats0[27][27] + coeff0_28*dmats0[28][27] + coeff0_29*dmats0[29][27] + coeff0_30*dmats0[30][27] + coeff0_31*dmats0[31][27] + coeff0_32*dmats0[32][27] + coeff0_33*dmats0[33][27] + coeff0_34*dmats0[34][27];
 
5254
          new_coeff0_28 = coeff0_0*dmats0[0][28] + coeff0_1*dmats0[1][28] + coeff0_2*dmats0[2][28] + coeff0_3*dmats0[3][28] + coeff0_4*dmats0[4][28] + coeff0_5*dmats0[5][28] + coeff0_6*dmats0[6][28] + coeff0_7*dmats0[7][28] + coeff0_8*dmats0[8][28] + coeff0_9*dmats0[9][28] + coeff0_10*dmats0[10][28] + coeff0_11*dmats0[11][28] + coeff0_12*dmats0[12][28] + coeff0_13*dmats0[13][28] + coeff0_14*dmats0[14][28] + coeff0_15*dmats0[15][28] + coeff0_16*dmats0[16][28] + coeff0_17*dmats0[17][28] + coeff0_18*dmats0[18][28] + coeff0_19*dmats0[19][28] + coeff0_20*dmats0[20][28] + coeff0_21*dmats0[21][28] + coeff0_22*dmats0[22][28] + coeff0_23*dmats0[23][28] + coeff0_24*dmats0[24][28] + coeff0_25*dmats0[25][28] + coeff0_26*dmats0[26][28] + coeff0_27*dmats0[27][28] + coeff0_28*dmats0[28][28] + coeff0_29*dmats0[29][28] + coeff0_30*dmats0[30][28] + coeff0_31*dmats0[31][28] + coeff0_32*dmats0[32][28] + coeff0_33*dmats0[33][28] + coeff0_34*dmats0[34][28];
 
5255
          new_coeff0_29 = coeff0_0*dmats0[0][29] + coeff0_1*dmats0[1][29] + coeff0_2*dmats0[2][29] + coeff0_3*dmats0[3][29] + coeff0_4*dmats0[4][29] + coeff0_5*dmats0[5][29] + coeff0_6*dmats0[6][29] + coeff0_7*dmats0[7][29] + coeff0_8*dmats0[8][29] + coeff0_9*dmats0[9][29] + coeff0_10*dmats0[10][29] + coeff0_11*dmats0[11][29] + coeff0_12*dmats0[12][29] + coeff0_13*dmats0[13][29] + coeff0_14*dmats0[14][29] + coeff0_15*dmats0[15][29] + coeff0_16*dmats0[16][29] + coeff0_17*dmats0[17][29] + coeff0_18*dmats0[18][29] + coeff0_19*dmats0[19][29] + coeff0_20*dmats0[20][29] + coeff0_21*dmats0[21][29] + coeff0_22*dmats0[22][29] + coeff0_23*dmats0[23][29] + coeff0_24*dmats0[24][29] + coeff0_25*dmats0[25][29] + coeff0_26*dmats0[26][29] + coeff0_27*dmats0[27][29] + coeff0_28*dmats0[28][29] + coeff0_29*dmats0[29][29] + coeff0_30*dmats0[30][29] + coeff0_31*dmats0[31][29] + coeff0_32*dmats0[32][29] + coeff0_33*dmats0[33][29] + coeff0_34*dmats0[34][29];
 
5256
          new_coeff0_30 = coeff0_0*dmats0[0][30] + coeff0_1*dmats0[1][30] + coeff0_2*dmats0[2][30] + coeff0_3*dmats0[3][30] + coeff0_4*dmats0[4][30] + coeff0_5*dmats0[5][30] + coeff0_6*dmats0[6][30] + coeff0_7*dmats0[7][30] + coeff0_8*dmats0[8][30] + coeff0_9*dmats0[9][30] + coeff0_10*dmats0[10][30] + coeff0_11*dmats0[11][30] + coeff0_12*dmats0[12][30] + coeff0_13*dmats0[13][30] + coeff0_14*dmats0[14][30] + coeff0_15*dmats0[15][30] + coeff0_16*dmats0[16][30] + coeff0_17*dmats0[17][30] + coeff0_18*dmats0[18][30] + coeff0_19*dmats0[19][30] + coeff0_20*dmats0[20][30] + coeff0_21*dmats0[21][30] + coeff0_22*dmats0[22][30] + coeff0_23*dmats0[23][30] + coeff0_24*dmats0[24][30] + coeff0_25*dmats0[25][30] + coeff0_26*dmats0[26][30] + coeff0_27*dmats0[27][30] + coeff0_28*dmats0[28][30] + coeff0_29*dmats0[29][30] + coeff0_30*dmats0[30][30] + coeff0_31*dmats0[31][30] + coeff0_32*dmats0[32][30] + coeff0_33*dmats0[33][30] + coeff0_34*dmats0[34][30];
 
5257
          new_coeff0_31 = coeff0_0*dmats0[0][31] + coeff0_1*dmats0[1][31] + coeff0_2*dmats0[2][31] + coeff0_3*dmats0[3][31] + coeff0_4*dmats0[4][31] + coeff0_5*dmats0[5][31] + coeff0_6*dmats0[6][31] + coeff0_7*dmats0[7][31] + coeff0_8*dmats0[8][31] + coeff0_9*dmats0[9][31] + coeff0_10*dmats0[10][31] + coeff0_11*dmats0[11][31] + coeff0_12*dmats0[12][31] + coeff0_13*dmats0[13][31] + coeff0_14*dmats0[14][31] + coeff0_15*dmats0[15][31] + coeff0_16*dmats0[16][31] + coeff0_17*dmats0[17][31] + coeff0_18*dmats0[18][31] + coeff0_19*dmats0[19][31] + coeff0_20*dmats0[20][31] + coeff0_21*dmats0[21][31] + coeff0_22*dmats0[22][31] + coeff0_23*dmats0[23][31] + coeff0_24*dmats0[24][31] + coeff0_25*dmats0[25][31] + coeff0_26*dmats0[26][31] + coeff0_27*dmats0[27][31] + coeff0_28*dmats0[28][31] + coeff0_29*dmats0[29][31] + coeff0_30*dmats0[30][31] + coeff0_31*dmats0[31][31] + coeff0_32*dmats0[32][31] + coeff0_33*dmats0[33][31] + coeff0_34*dmats0[34][31];
 
5258
          new_coeff0_32 = coeff0_0*dmats0[0][32] + coeff0_1*dmats0[1][32] + coeff0_2*dmats0[2][32] + coeff0_3*dmats0[3][32] + coeff0_4*dmats0[4][32] + coeff0_5*dmats0[5][32] + coeff0_6*dmats0[6][32] + coeff0_7*dmats0[7][32] + coeff0_8*dmats0[8][32] + coeff0_9*dmats0[9][32] + coeff0_10*dmats0[10][32] + coeff0_11*dmats0[11][32] + coeff0_12*dmats0[12][32] + coeff0_13*dmats0[13][32] + coeff0_14*dmats0[14][32] + coeff0_15*dmats0[15][32] + coeff0_16*dmats0[16][32] + coeff0_17*dmats0[17][32] + coeff0_18*dmats0[18][32] + coeff0_19*dmats0[19][32] + coeff0_20*dmats0[20][32] + coeff0_21*dmats0[21][32] + coeff0_22*dmats0[22][32] + coeff0_23*dmats0[23][32] + coeff0_24*dmats0[24][32] + coeff0_25*dmats0[25][32] + coeff0_26*dmats0[26][32] + coeff0_27*dmats0[27][32] + coeff0_28*dmats0[28][32] + coeff0_29*dmats0[29][32] + coeff0_30*dmats0[30][32] + coeff0_31*dmats0[31][32] + coeff0_32*dmats0[32][32] + coeff0_33*dmats0[33][32] + coeff0_34*dmats0[34][32];
 
5259
          new_coeff0_33 = coeff0_0*dmats0[0][33] + coeff0_1*dmats0[1][33] + coeff0_2*dmats0[2][33] + coeff0_3*dmats0[3][33] + coeff0_4*dmats0[4][33] + coeff0_5*dmats0[5][33] + coeff0_6*dmats0[6][33] + coeff0_7*dmats0[7][33] + coeff0_8*dmats0[8][33] + coeff0_9*dmats0[9][33] + coeff0_10*dmats0[10][33] + coeff0_11*dmats0[11][33] + coeff0_12*dmats0[12][33] + coeff0_13*dmats0[13][33] + coeff0_14*dmats0[14][33] + coeff0_15*dmats0[15][33] + coeff0_16*dmats0[16][33] + coeff0_17*dmats0[17][33] + coeff0_18*dmats0[18][33] + coeff0_19*dmats0[19][33] + coeff0_20*dmats0[20][33] + coeff0_21*dmats0[21][33] + coeff0_22*dmats0[22][33] + coeff0_23*dmats0[23][33] + coeff0_24*dmats0[24][33] + coeff0_25*dmats0[25][33] + coeff0_26*dmats0[26][33] + coeff0_27*dmats0[27][33] + coeff0_28*dmats0[28][33] + coeff0_29*dmats0[29][33] + coeff0_30*dmats0[30][33] + coeff0_31*dmats0[31][33] + coeff0_32*dmats0[32][33] + coeff0_33*dmats0[33][33] + coeff0_34*dmats0[34][33];
 
5260
          new_coeff0_34 = coeff0_0*dmats0[0][34] + coeff0_1*dmats0[1][34] + coeff0_2*dmats0[2][34] + coeff0_3*dmats0[3][34] + coeff0_4*dmats0[4][34] + coeff0_5*dmats0[5][34] + coeff0_6*dmats0[6][34] + coeff0_7*dmats0[7][34] + coeff0_8*dmats0[8][34] + coeff0_9*dmats0[9][34] + coeff0_10*dmats0[10][34] + coeff0_11*dmats0[11][34] + coeff0_12*dmats0[12][34] + coeff0_13*dmats0[13][34] + coeff0_14*dmats0[14][34] + coeff0_15*dmats0[15][34] + coeff0_16*dmats0[16][34] + coeff0_17*dmats0[17][34] + coeff0_18*dmats0[18][34] + coeff0_19*dmats0[19][34] + coeff0_20*dmats0[20][34] + coeff0_21*dmats0[21][34] + coeff0_22*dmats0[22][34] + coeff0_23*dmats0[23][34] + coeff0_24*dmats0[24][34] + coeff0_25*dmats0[25][34] + coeff0_26*dmats0[26][34] + coeff0_27*dmats0[27][34] + coeff0_28*dmats0[28][34] + coeff0_29*dmats0[29][34] + coeff0_30*dmats0[30][34] + coeff0_31*dmats0[31][34] + coeff0_32*dmats0[32][34] + coeff0_33*dmats0[33][34] + coeff0_34*dmats0[34][34];
 
5261
        }
 
5262
        if(combinations[deriv_num][j] == 1)
 
5263
        {
 
5264
          new_coeff0_0 = coeff0_0*dmats1[0][0] + coeff0_1*dmats1[1][0] + coeff0_2*dmats1[2][0] + coeff0_3*dmats1[3][0] + coeff0_4*dmats1[4][0] + coeff0_5*dmats1[5][0] + coeff0_6*dmats1[6][0] + coeff0_7*dmats1[7][0] + coeff0_8*dmats1[8][0] + coeff0_9*dmats1[9][0] + coeff0_10*dmats1[10][0] + coeff0_11*dmats1[11][0] + coeff0_12*dmats1[12][0] + coeff0_13*dmats1[13][0] + coeff0_14*dmats1[14][0] + coeff0_15*dmats1[15][0] + coeff0_16*dmats1[16][0] + coeff0_17*dmats1[17][0] + coeff0_18*dmats1[18][0] + coeff0_19*dmats1[19][0] + coeff0_20*dmats1[20][0] + coeff0_21*dmats1[21][0] + coeff0_22*dmats1[22][0] + coeff0_23*dmats1[23][0] + coeff0_24*dmats1[24][0] + coeff0_25*dmats1[25][0] + coeff0_26*dmats1[26][0] + coeff0_27*dmats1[27][0] + coeff0_28*dmats1[28][0] + coeff0_29*dmats1[29][0] + coeff0_30*dmats1[30][0] + coeff0_31*dmats1[31][0] + coeff0_32*dmats1[32][0] + coeff0_33*dmats1[33][0] + coeff0_34*dmats1[34][0];
 
5265
          new_coeff0_1 = coeff0_0*dmats1[0][1] + coeff0_1*dmats1[1][1] + coeff0_2*dmats1[2][1] + coeff0_3*dmats1[3][1] + coeff0_4*dmats1[4][1] + coeff0_5*dmats1[5][1] + coeff0_6*dmats1[6][1] + coeff0_7*dmats1[7][1] + coeff0_8*dmats1[8][1] + coeff0_9*dmats1[9][1] + coeff0_10*dmats1[10][1] + coeff0_11*dmats1[11][1] + coeff0_12*dmats1[12][1] + coeff0_13*dmats1[13][1] + coeff0_14*dmats1[14][1] + coeff0_15*dmats1[15][1] + coeff0_16*dmats1[16][1] + coeff0_17*dmats1[17][1] + coeff0_18*dmats1[18][1] + coeff0_19*dmats1[19][1] + coeff0_20*dmats1[20][1] + coeff0_21*dmats1[21][1] + coeff0_22*dmats1[22][1] + coeff0_23*dmats1[23][1] + coeff0_24*dmats1[24][1] + coeff0_25*dmats1[25][1] + coeff0_26*dmats1[26][1] + coeff0_27*dmats1[27][1] + coeff0_28*dmats1[28][1] + coeff0_29*dmats1[29][1] + coeff0_30*dmats1[30][1] + coeff0_31*dmats1[31][1] + coeff0_32*dmats1[32][1] + coeff0_33*dmats1[33][1] + coeff0_34*dmats1[34][1];
 
5266
          new_coeff0_2 = coeff0_0*dmats1[0][2] + coeff0_1*dmats1[1][2] + coeff0_2*dmats1[2][2] + coeff0_3*dmats1[3][2] + coeff0_4*dmats1[4][2] + coeff0_5*dmats1[5][2] + coeff0_6*dmats1[6][2] + coeff0_7*dmats1[7][2] + coeff0_8*dmats1[8][2] + coeff0_9*dmats1[9][2] + coeff0_10*dmats1[10][2] + coeff0_11*dmats1[11][2] + coeff0_12*dmats1[12][2] + coeff0_13*dmats1[13][2] + coeff0_14*dmats1[14][2] + coeff0_15*dmats1[15][2] + coeff0_16*dmats1[16][2] + coeff0_17*dmats1[17][2] + coeff0_18*dmats1[18][2] + coeff0_19*dmats1[19][2] + coeff0_20*dmats1[20][2] + coeff0_21*dmats1[21][2] + coeff0_22*dmats1[22][2] + coeff0_23*dmats1[23][2] + coeff0_24*dmats1[24][2] + coeff0_25*dmats1[25][2] + coeff0_26*dmats1[26][2] + coeff0_27*dmats1[27][2] + coeff0_28*dmats1[28][2] + coeff0_29*dmats1[29][2] + coeff0_30*dmats1[30][2] + coeff0_31*dmats1[31][2] + coeff0_32*dmats1[32][2] + coeff0_33*dmats1[33][2] + coeff0_34*dmats1[34][2];
 
5267
          new_coeff0_3 = coeff0_0*dmats1[0][3] + coeff0_1*dmats1[1][3] + coeff0_2*dmats1[2][3] + coeff0_3*dmats1[3][3] + coeff0_4*dmats1[4][3] + coeff0_5*dmats1[5][3] + coeff0_6*dmats1[6][3] + coeff0_7*dmats1[7][3] + coeff0_8*dmats1[8][3] + coeff0_9*dmats1[9][3] + coeff0_10*dmats1[10][3] + coeff0_11*dmats1[11][3] + coeff0_12*dmats1[12][3] + coeff0_13*dmats1[13][3] + coeff0_14*dmats1[14][3] + coeff0_15*dmats1[15][3] + coeff0_16*dmats1[16][3] + coeff0_17*dmats1[17][3] + coeff0_18*dmats1[18][3] + coeff0_19*dmats1[19][3] + coeff0_20*dmats1[20][3] + coeff0_21*dmats1[21][3] + coeff0_22*dmats1[22][3] + coeff0_23*dmats1[23][3] + coeff0_24*dmats1[24][3] + coeff0_25*dmats1[25][3] + coeff0_26*dmats1[26][3] + coeff0_27*dmats1[27][3] + coeff0_28*dmats1[28][3] + coeff0_29*dmats1[29][3] + coeff0_30*dmats1[30][3] + coeff0_31*dmats1[31][3] + coeff0_32*dmats1[32][3] + coeff0_33*dmats1[33][3] + coeff0_34*dmats1[34][3];
 
5268
          new_coeff0_4 = coeff0_0*dmats1[0][4] + coeff0_1*dmats1[1][4] + coeff0_2*dmats1[2][4] + coeff0_3*dmats1[3][4] + coeff0_4*dmats1[4][4] + coeff0_5*dmats1[5][4] + coeff0_6*dmats1[6][4] + coeff0_7*dmats1[7][4] + coeff0_8*dmats1[8][4] + coeff0_9*dmats1[9][4] + coeff0_10*dmats1[10][4] + coeff0_11*dmats1[11][4] + coeff0_12*dmats1[12][4] + coeff0_13*dmats1[13][4] + coeff0_14*dmats1[14][4] + coeff0_15*dmats1[15][4] + coeff0_16*dmats1[16][4] + coeff0_17*dmats1[17][4] + coeff0_18*dmats1[18][4] + coeff0_19*dmats1[19][4] + coeff0_20*dmats1[20][4] + coeff0_21*dmats1[21][4] + coeff0_22*dmats1[22][4] + coeff0_23*dmats1[23][4] + coeff0_24*dmats1[24][4] + coeff0_25*dmats1[25][4] + coeff0_26*dmats1[26][4] + coeff0_27*dmats1[27][4] + coeff0_28*dmats1[28][4] + coeff0_29*dmats1[29][4] + coeff0_30*dmats1[30][4] + coeff0_31*dmats1[31][4] + coeff0_32*dmats1[32][4] + coeff0_33*dmats1[33][4] + coeff0_34*dmats1[34][4];
 
5269
          new_coeff0_5 = coeff0_0*dmats1[0][5] + coeff0_1*dmats1[1][5] + coeff0_2*dmats1[2][5] + coeff0_3*dmats1[3][5] + coeff0_4*dmats1[4][5] + coeff0_5*dmats1[5][5] + coeff0_6*dmats1[6][5] + coeff0_7*dmats1[7][5] + coeff0_8*dmats1[8][5] + coeff0_9*dmats1[9][5] + coeff0_10*dmats1[10][5] + coeff0_11*dmats1[11][5] + coeff0_12*dmats1[12][5] + coeff0_13*dmats1[13][5] + coeff0_14*dmats1[14][5] + coeff0_15*dmats1[15][5] + coeff0_16*dmats1[16][5] + coeff0_17*dmats1[17][5] + coeff0_18*dmats1[18][5] + coeff0_19*dmats1[19][5] + coeff0_20*dmats1[20][5] + coeff0_21*dmats1[21][5] + coeff0_22*dmats1[22][5] + coeff0_23*dmats1[23][5] + coeff0_24*dmats1[24][5] + coeff0_25*dmats1[25][5] + coeff0_26*dmats1[26][5] + coeff0_27*dmats1[27][5] + coeff0_28*dmats1[28][5] + coeff0_29*dmats1[29][5] + coeff0_30*dmats1[30][5] + coeff0_31*dmats1[31][5] + coeff0_32*dmats1[32][5] + coeff0_33*dmats1[33][5] + coeff0_34*dmats1[34][5];
 
5270
          new_coeff0_6 = coeff0_0*dmats1[0][6] + coeff0_1*dmats1[1][6] + coeff0_2*dmats1[2][6] + coeff0_3*dmats1[3][6] + coeff0_4*dmats1[4][6] + coeff0_5*dmats1[5][6] + coeff0_6*dmats1[6][6] + coeff0_7*dmats1[7][6] + coeff0_8*dmats1[8][6] + coeff0_9*dmats1[9][6] + coeff0_10*dmats1[10][6] + coeff0_11*dmats1[11][6] + coeff0_12*dmats1[12][6] + coeff0_13*dmats1[13][6] + coeff0_14*dmats1[14][6] + coeff0_15*dmats1[15][6] + coeff0_16*dmats1[16][6] + coeff0_17*dmats1[17][6] + coeff0_18*dmats1[18][6] + coeff0_19*dmats1[19][6] + coeff0_20*dmats1[20][6] + coeff0_21*dmats1[21][6] + coeff0_22*dmats1[22][6] + coeff0_23*dmats1[23][6] + coeff0_24*dmats1[24][6] + coeff0_25*dmats1[25][6] + coeff0_26*dmats1[26][6] + coeff0_27*dmats1[27][6] + coeff0_28*dmats1[28][6] + coeff0_29*dmats1[29][6] + coeff0_30*dmats1[30][6] + coeff0_31*dmats1[31][6] + coeff0_32*dmats1[32][6] + coeff0_33*dmats1[33][6] + coeff0_34*dmats1[34][6];
 
5271
          new_coeff0_7 = coeff0_0*dmats1[0][7] + coeff0_1*dmats1[1][7] + coeff0_2*dmats1[2][7] + coeff0_3*dmats1[3][7] + coeff0_4*dmats1[4][7] + coeff0_5*dmats1[5][7] + coeff0_6*dmats1[6][7] + coeff0_7*dmats1[7][7] + coeff0_8*dmats1[8][7] + coeff0_9*dmats1[9][7] + coeff0_10*dmats1[10][7] + coeff0_11*dmats1[11][7] + coeff0_12*dmats1[12][7] + coeff0_13*dmats1[13][7] + coeff0_14*dmats1[14][7] + coeff0_15*dmats1[15][7] + coeff0_16*dmats1[16][7] + coeff0_17*dmats1[17][7] + coeff0_18*dmats1[18][7] + coeff0_19*dmats1[19][7] + coeff0_20*dmats1[20][7] + coeff0_21*dmats1[21][7] + coeff0_22*dmats1[22][7] + coeff0_23*dmats1[23][7] + coeff0_24*dmats1[24][7] + coeff0_25*dmats1[25][7] + coeff0_26*dmats1[26][7] + coeff0_27*dmats1[27][7] + coeff0_28*dmats1[28][7] + coeff0_29*dmats1[29][7] + coeff0_30*dmats1[30][7] + coeff0_31*dmats1[31][7] + coeff0_32*dmats1[32][7] + coeff0_33*dmats1[33][7] + coeff0_34*dmats1[34][7];
 
5272
          new_coeff0_8 = coeff0_0*dmats1[0][8] + coeff0_1*dmats1[1][8] + coeff0_2*dmats1[2][8] + coeff0_3*dmats1[3][8] + coeff0_4*dmats1[4][8] + coeff0_5*dmats1[5][8] + coeff0_6*dmats1[6][8] + coeff0_7*dmats1[7][8] + coeff0_8*dmats1[8][8] + coeff0_9*dmats1[9][8] + coeff0_10*dmats1[10][8] + coeff0_11*dmats1[11][8] + coeff0_12*dmats1[12][8] + coeff0_13*dmats1[13][8] + coeff0_14*dmats1[14][8] + coeff0_15*dmats1[15][8] + coeff0_16*dmats1[16][8] + coeff0_17*dmats1[17][8] + coeff0_18*dmats1[18][8] + coeff0_19*dmats1[19][8] + coeff0_20*dmats1[20][8] + coeff0_21*dmats1[21][8] + coeff0_22*dmats1[22][8] + coeff0_23*dmats1[23][8] + coeff0_24*dmats1[24][8] + coeff0_25*dmats1[25][8] + coeff0_26*dmats1[26][8] + coeff0_27*dmats1[27][8] + coeff0_28*dmats1[28][8] + coeff0_29*dmats1[29][8] + coeff0_30*dmats1[30][8] + coeff0_31*dmats1[31][8] + coeff0_32*dmats1[32][8] + coeff0_33*dmats1[33][8] + coeff0_34*dmats1[34][8];
 
5273
          new_coeff0_9 = coeff0_0*dmats1[0][9] + coeff0_1*dmats1[1][9] + coeff0_2*dmats1[2][9] + coeff0_3*dmats1[3][9] + coeff0_4*dmats1[4][9] + coeff0_5*dmats1[5][9] + coeff0_6*dmats1[6][9] + coeff0_7*dmats1[7][9] + coeff0_8*dmats1[8][9] + coeff0_9*dmats1[9][9] + coeff0_10*dmats1[10][9] + coeff0_11*dmats1[11][9] + coeff0_12*dmats1[12][9] + coeff0_13*dmats1[13][9] + coeff0_14*dmats1[14][9] + coeff0_15*dmats1[15][9] + coeff0_16*dmats1[16][9] + coeff0_17*dmats1[17][9] + coeff0_18*dmats1[18][9] + coeff0_19*dmats1[19][9] + coeff0_20*dmats1[20][9] + coeff0_21*dmats1[21][9] + coeff0_22*dmats1[22][9] + coeff0_23*dmats1[23][9] + coeff0_24*dmats1[24][9] + coeff0_25*dmats1[25][9] + coeff0_26*dmats1[26][9] + coeff0_27*dmats1[27][9] + coeff0_28*dmats1[28][9] + coeff0_29*dmats1[29][9] + coeff0_30*dmats1[30][9] + coeff0_31*dmats1[31][9] + coeff0_32*dmats1[32][9] + coeff0_33*dmats1[33][9] + coeff0_34*dmats1[34][9];
 
5274
          new_coeff0_10 = coeff0_0*dmats1[0][10] + coeff0_1*dmats1[1][10] + coeff0_2*dmats1[2][10] + coeff0_3*dmats1[3][10] + coeff0_4*dmats1[4][10] + coeff0_5*dmats1[5][10] + coeff0_6*dmats1[6][10] + coeff0_7*dmats1[7][10] + coeff0_8*dmats1[8][10] + coeff0_9*dmats1[9][10] + coeff0_10*dmats1[10][10] + coeff0_11*dmats1[11][10] + coeff0_12*dmats1[12][10] + coeff0_13*dmats1[13][10] + coeff0_14*dmats1[14][10] + coeff0_15*dmats1[15][10] + coeff0_16*dmats1[16][10] + coeff0_17*dmats1[17][10] + coeff0_18*dmats1[18][10] + coeff0_19*dmats1[19][10] + coeff0_20*dmats1[20][10] + coeff0_21*dmats1[21][10] + coeff0_22*dmats1[22][10] + coeff0_23*dmats1[23][10] + coeff0_24*dmats1[24][10] + coeff0_25*dmats1[25][10] + coeff0_26*dmats1[26][10] + coeff0_27*dmats1[27][10] + coeff0_28*dmats1[28][10] + coeff0_29*dmats1[29][10] + coeff0_30*dmats1[30][10] + coeff0_31*dmats1[31][10] + coeff0_32*dmats1[32][10] + coeff0_33*dmats1[33][10] + coeff0_34*dmats1[34][10];
 
5275
          new_coeff0_11 = coeff0_0*dmats1[0][11] + coeff0_1*dmats1[1][11] + coeff0_2*dmats1[2][11] + coeff0_3*dmats1[3][11] + coeff0_4*dmats1[4][11] + coeff0_5*dmats1[5][11] + coeff0_6*dmats1[6][11] + coeff0_7*dmats1[7][11] + coeff0_8*dmats1[8][11] + coeff0_9*dmats1[9][11] + coeff0_10*dmats1[10][11] + coeff0_11*dmats1[11][11] + coeff0_12*dmats1[12][11] + coeff0_13*dmats1[13][11] + coeff0_14*dmats1[14][11] + coeff0_15*dmats1[15][11] + coeff0_16*dmats1[16][11] + coeff0_17*dmats1[17][11] + coeff0_18*dmats1[18][11] + coeff0_19*dmats1[19][11] + coeff0_20*dmats1[20][11] + coeff0_21*dmats1[21][11] + coeff0_22*dmats1[22][11] + coeff0_23*dmats1[23][11] + coeff0_24*dmats1[24][11] + coeff0_25*dmats1[25][11] + coeff0_26*dmats1[26][11] + coeff0_27*dmats1[27][11] + coeff0_28*dmats1[28][11] + coeff0_29*dmats1[29][11] + coeff0_30*dmats1[30][11] + coeff0_31*dmats1[31][11] + coeff0_32*dmats1[32][11] + coeff0_33*dmats1[33][11] + coeff0_34*dmats1[34][11];
 
5276
          new_coeff0_12 = coeff0_0*dmats1[0][12] + coeff0_1*dmats1[1][12] + coeff0_2*dmats1[2][12] + coeff0_3*dmats1[3][12] + coeff0_4*dmats1[4][12] + coeff0_5*dmats1[5][12] + coeff0_6*dmats1[6][12] + coeff0_7*dmats1[7][12] + coeff0_8*dmats1[8][12] + coeff0_9*dmats1[9][12] + coeff0_10*dmats1[10][12] + coeff0_11*dmats1[11][12] + coeff0_12*dmats1[12][12] + coeff0_13*dmats1[13][12] + coeff0_14*dmats1[14][12] + coeff0_15*dmats1[15][12] + coeff0_16*dmats1[16][12] + coeff0_17*dmats1[17][12] + coeff0_18*dmats1[18][12] + coeff0_19*dmats1[19][12] + coeff0_20*dmats1[20][12] + coeff0_21*dmats1[21][12] + coeff0_22*dmats1[22][12] + coeff0_23*dmats1[23][12] + coeff0_24*dmats1[24][12] + coeff0_25*dmats1[25][12] + coeff0_26*dmats1[26][12] + coeff0_27*dmats1[27][12] + coeff0_28*dmats1[28][12] + coeff0_29*dmats1[29][12] + coeff0_30*dmats1[30][12] + coeff0_31*dmats1[31][12] + coeff0_32*dmats1[32][12] + coeff0_33*dmats1[33][12] + coeff0_34*dmats1[34][12];
 
5277
          new_coeff0_13 = coeff0_0*dmats1[0][13] + coeff0_1*dmats1[1][13] + coeff0_2*dmats1[2][13] + coeff0_3*dmats1[3][13] + coeff0_4*dmats1[4][13] + coeff0_5*dmats1[5][13] + coeff0_6*dmats1[6][13] + coeff0_7*dmats1[7][13] + coeff0_8*dmats1[8][13] + coeff0_9*dmats1[9][13] + coeff0_10*dmats1[10][13] + coeff0_11*dmats1[11][13] + coeff0_12*dmats1[12][13] + coeff0_13*dmats1[13][13] + coeff0_14*dmats1[14][13] + coeff0_15*dmats1[15][13] + coeff0_16*dmats1[16][13] + coeff0_17*dmats1[17][13] + coeff0_18*dmats1[18][13] + coeff0_19*dmats1[19][13] + coeff0_20*dmats1[20][13] + coeff0_21*dmats1[21][13] + coeff0_22*dmats1[22][13] + coeff0_23*dmats1[23][13] + coeff0_24*dmats1[24][13] + coeff0_25*dmats1[25][13] + coeff0_26*dmats1[26][13] + coeff0_27*dmats1[27][13] + coeff0_28*dmats1[28][13] + coeff0_29*dmats1[29][13] + coeff0_30*dmats1[30][13] + coeff0_31*dmats1[31][13] + coeff0_32*dmats1[32][13] + coeff0_33*dmats1[33][13] + coeff0_34*dmats1[34][13];
 
5278
          new_coeff0_14 = coeff0_0*dmats1[0][14] + coeff0_1*dmats1[1][14] + coeff0_2*dmats1[2][14] + coeff0_3*dmats1[3][14] + coeff0_4*dmats1[4][14] + coeff0_5*dmats1[5][14] + coeff0_6*dmats1[6][14] + coeff0_7*dmats1[7][14] + coeff0_8*dmats1[8][14] + coeff0_9*dmats1[9][14] + coeff0_10*dmats1[10][14] + coeff0_11*dmats1[11][14] + coeff0_12*dmats1[12][14] + coeff0_13*dmats1[13][14] + coeff0_14*dmats1[14][14] + coeff0_15*dmats1[15][14] + coeff0_16*dmats1[16][14] + coeff0_17*dmats1[17][14] + coeff0_18*dmats1[18][14] + coeff0_19*dmats1[19][14] + coeff0_20*dmats1[20][14] + coeff0_21*dmats1[21][14] + coeff0_22*dmats1[22][14] + coeff0_23*dmats1[23][14] + coeff0_24*dmats1[24][14] + coeff0_25*dmats1[25][14] + coeff0_26*dmats1[26][14] + coeff0_27*dmats1[27][14] + coeff0_28*dmats1[28][14] + coeff0_29*dmats1[29][14] + coeff0_30*dmats1[30][14] + coeff0_31*dmats1[31][14] + coeff0_32*dmats1[32][14] + coeff0_33*dmats1[33][14] + coeff0_34*dmats1[34][14];
 
5279
          new_coeff0_15 = coeff0_0*dmats1[0][15] + coeff0_1*dmats1[1][15] + coeff0_2*dmats1[2][15] + coeff0_3*dmats1[3][15] + coeff0_4*dmats1[4][15] + coeff0_5*dmats1[5][15] + coeff0_6*dmats1[6][15] + coeff0_7*dmats1[7][15] + coeff0_8*dmats1[8][15] + coeff0_9*dmats1[9][15] + coeff0_10*dmats1[10][15] + coeff0_11*dmats1[11][15] + coeff0_12*dmats1[12][15] + coeff0_13*dmats1[13][15] + coeff0_14*dmats1[14][15] + coeff0_15*dmats1[15][15] + coeff0_16*dmats1[16][15] + coeff0_17*dmats1[17][15] + coeff0_18*dmats1[18][15] + coeff0_19*dmats1[19][15] + coeff0_20*dmats1[20][15] + coeff0_21*dmats1[21][15] + coeff0_22*dmats1[22][15] + coeff0_23*dmats1[23][15] + coeff0_24*dmats1[24][15] + coeff0_25*dmats1[25][15] + coeff0_26*dmats1[26][15] + coeff0_27*dmats1[27][15] + coeff0_28*dmats1[28][15] + coeff0_29*dmats1[29][15] + coeff0_30*dmats1[30][15] + coeff0_31*dmats1[31][15] + coeff0_32*dmats1[32][15] + coeff0_33*dmats1[33][15] + coeff0_34*dmats1[34][15];
 
5280
          new_coeff0_16 = coeff0_0*dmats1[0][16] + coeff0_1*dmats1[1][16] + coeff0_2*dmats1[2][16] + coeff0_3*dmats1[3][16] + coeff0_4*dmats1[4][16] + coeff0_5*dmats1[5][16] + coeff0_6*dmats1[6][16] + coeff0_7*dmats1[7][16] + coeff0_8*dmats1[8][16] + coeff0_9*dmats1[9][16] + coeff0_10*dmats1[10][16] + coeff0_11*dmats1[11][16] + coeff0_12*dmats1[12][16] + coeff0_13*dmats1[13][16] + coeff0_14*dmats1[14][16] + coeff0_15*dmats1[15][16] + coeff0_16*dmats1[16][16] + coeff0_17*dmats1[17][16] + coeff0_18*dmats1[18][16] + coeff0_19*dmats1[19][16] + coeff0_20*dmats1[20][16] + coeff0_21*dmats1[21][16] + coeff0_22*dmats1[22][16] + coeff0_23*dmats1[23][16] + coeff0_24*dmats1[24][16] + coeff0_25*dmats1[25][16] + coeff0_26*dmats1[26][16] + coeff0_27*dmats1[27][16] + coeff0_28*dmats1[28][16] + coeff0_29*dmats1[29][16] + coeff0_30*dmats1[30][16] + coeff0_31*dmats1[31][16] + coeff0_32*dmats1[32][16] + coeff0_33*dmats1[33][16] + coeff0_34*dmats1[34][16];
 
5281
          new_coeff0_17 = coeff0_0*dmats1[0][17] + coeff0_1*dmats1[1][17] + coeff0_2*dmats1[2][17] + coeff0_3*dmats1[3][17] + coeff0_4*dmats1[4][17] + coeff0_5*dmats1[5][17] + coeff0_6*dmats1[6][17] + coeff0_7*dmats1[7][17] + coeff0_8*dmats1[8][17] + coeff0_9*dmats1[9][17] + coeff0_10*dmats1[10][17] + coeff0_11*dmats1[11][17] + coeff0_12*dmats1[12][17] + coeff0_13*dmats1[13][17] + coeff0_14*dmats1[14][17] + coeff0_15*dmats1[15][17] + coeff0_16*dmats1[16][17] + coeff0_17*dmats1[17][17] + coeff0_18*dmats1[18][17] + coeff0_19*dmats1[19][17] + coeff0_20*dmats1[20][17] + coeff0_21*dmats1[21][17] + coeff0_22*dmats1[22][17] + coeff0_23*dmats1[23][17] + coeff0_24*dmats1[24][17] + coeff0_25*dmats1[25][17] + coeff0_26*dmats1[26][17] + coeff0_27*dmats1[27][17] + coeff0_28*dmats1[28][17] + coeff0_29*dmats1[29][17] + coeff0_30*dmats1[30][17] + coeff0_31*dmats1[31][17] + coeff0_32*dmats1[32][17] + coeff0_33*dmats1[33][17] + coeff0_34*dmats1[34][17];
 
5282
          new_coeff0_18 = coeff0_0*dmats1[0][18] + coeff0_1*dmats1[1][18] + coeff0_2*dmats1[2][18] + coeff0_3*dmats1[3][18] + coeff0_4*dmats1[4][18] + coeff0_5*dmats1[5][18] + coeff0_6*dmats1[6][18] + coeff0_7*dmats1[7][18] + coeff0_8*dmats1[8][18] + coeff0_9*dmats1[9][18] + coeff0_10*dmats1[10][18] + coeff0_11*dmats1[11][18] + coeff0_12*dmats1[12][18] + coeff0_13*dmats1[13][18] + coeff0_14*dmats1[14][18] + coeff0_15*dmats1[15][18] + coeff0_16*dmats1[16][18] + coeff0_17*dmats1[17][18] + coeff0_18*dmats1[18][18] + coeff0_19*dmats1[19][18] + coeff0_20*dmats1[20][18] + coeff0_21*dmats1[21][18] + coeff0_22*dmats1[22][18] + coeff0_23*dmats1[23][18] + coeff0_24*dmats1[24][18] + coeff0_25*dmats1[25][18] + coeff0_26*dmats1[26][18] + coeff0_27*dmats1[27][18] + coeff0_28*dmats1[28][18] + coeff0_29*dmats1[29][18] + coeff0_30*dmats1[30][18] + coeff0_31*dmats1[31][18] + coeff0_32*dmats1[32][18] + coeff0_33*dmats1[33][18] + coeff0_34*dmats1[34][18];
 
5283
          new_coeff0_19 = coeff0_0*dmats1[0][19] + coeff0_1*dmats1[1][19] + coeff0_2*dmats1[2][19] + coeff0_3*dmats1[3][19] + coeff0_4*dmats1[4][19] + coeff0_5*dmats1[5][19] + coeff0_6*dmats1[6][19] + coeff0_7*dmats1[7][19] + coeff0_8*dmats1[8][19] + coeff0_9*dmats1[9][19] + coeff0_10*dmats1[10][19] + coeff0_11*dmats1[11][19] + coeff0_12*dmats1[12][19] + coeff0_13*dmats1[13][19] + coeff0_14*dmats1[14][19] + coeff0_15*dmats1[15][19] + coeff0_16*dmats1[16][19] + coeff0_17*dmats1[17][19] + coeff0_18*dmats1[18][19] + coeff0_19*dmats1[19][19] + coeff0_20*dmats1[20][19] + coeff0_21*dmats1[21][19] + coeff0_22*dmats1[22][19] + coeff0_23*dmats1[23][19] + coeff0_24*dmats1[24][19] + coeff0_25*dmats1[25][19] + coeff0_26*dmats1[26][19] + coeff0_27*dmats1[27][19] + coeff0_28*dmats1[28][19] + coeff0_29*dmats1[29][19] + coeff0_30*dmats1[30][19] + coeff0_31*dmats1[31][19] + coeff0_32*dmats1[32][19] + coeff0_33*dmats1[33][19] + coeff0_34*dmats1[34][19];
 
5284
          new_coeff0_20 = coeff0_0*dmats1[0][20] + coeff0_1*dmats1[1][20] + coeff0_2*dmats1[2][20] + coeff0_3*dmats1[3][20] + coeff0_4*dmats1[4][20] + coeff0_5*dmats1[5][20] + coeff0_6*dmats1[6][20] + coeff0_7*dmats1[7][20] + coeff0_8*dmats1[8][20] + coeff0_9*dmats1[9][20] + coeff0_10*dmats1[10][20] + coeff0_11*dmats1[11][20] + coeff0_12*dmats1[12][20] + coeff0_13*dmats1[13][20] + coeff0_14*dmats1[14][20] + coeff0_15*dmats1[15][20] + coeff0_16*dmats1[16][20] + coeff0_17*dmats1[17][20] + coeff0_18*dmats1[18][20] + coeff0_19*dmats1[19][20] + coeff0_20*dmats1[20][20] + coeff0_21*dmats1[21][20] + coeff0_22*dmats1[22][20] + coeff0_23*dmats1[23][20] + coeff0_24*dmats1[24][20] + coeff0_25*dmats1[25][20] + coeff0_26*dmats1[26][20] + coeff0_27*dmats1[27][20] + coeff0_28*dmats1[28][20] + coeff0_29*dmats1[29][20] + coeff0_30*dmats1[30][20] + coeff0_31*dmats1[31][20] + coeff0_32*dmats1[32][20] + coeff0_33*dmats1[33][20] + coeff0_34*dmats1[34][20];
 
5285
          new_coeff0_21 = coeff0_0*dmats1[0][21] + coeff0_1*dmats1[1][21] + coeff0_2*dmats1[2][21] + coeff0_3*dmats1[3][21] + coeff0_4*dmats1[4][21] + coeff0_5*dmats1[5][21] + coeff0_6*dmats1[6][21] + coeff0_7*dmats1[7][21] + coeff0_8*dmats1[8][21] + coeff0_9*dmats1[9][21] + coeff0_10*dmats1[10][21] + coeff0_11*dmats1[11][21] + coeff0_12*dmats1[12][21] + coeff0_13*dmats1[13][21] + coeff0_14*dmats1[14][21] + coeff0_15*dmats1[15][21] + coeff0_16*dmats1[16][21] + coeff0_17*dmats1[17][21] + coeff0_18*dmats1[18][21] + coeff0_19*dmats1[19][21] + coeff0_20*dmats1[20][21] + coeff0_21*dmats1[21][21] + coeff0_22*dmats1[22][21] + coeff0_23*dmats1[23][21] + coeff0_24*dmats1[24][21] + coeff0_25*dmats1[25][21] + coeff0_26*dmats1[26][21] + coeff0_27*dmats1[27][21] + coeff0_28*dmats1[28][21] + coeff0_29*dmats1[29][21] + coeff0_30*dmats1[30][21] + coeff0_31*dmats1[31][21] + coeff0_32*dmats1[32][21] + coeff0_33*dmats1[33][21] + coeff0_34*dmats1[34][21];
 
5286
          new_coeff0_22 = coeff0_0*dmats1[0][22] + coeff0_1*dmats1[1][22] + coeff0_2*dmats1[2][22] + coeff0_3*dmats1[3][22] + coeff0_4*dmats1[4][22] + coeff0_5*dmats1[5][22] + coeff0_6*dmats1[6][22] + coeff0_7*dmats1[7][22] + coeff0_8*dmats1[8][22] + coeff0_9*dmats1[9][22] + coeff0_10*dmats1[10][22] + coeff0_11*dmats1[11][22] + coeff0_12*dmats1[12][22] + coeff0_13*dmats1[13][22] + coeff0_14*dmats1[14][22] + coeff0_15*dmats1[15][22] + coeff0_16*dmats1[16][22] + coeff0_17*dmats1[17][22] + coeff0_18*dmats1[18][22] + coeff0_19*dmats1[19][22] + coeff0_20*dmats1[20][22] + coeff0_21*dmats1[21][22] + coeff0_22*dmats1[22][22] + coeff0_23*dmats1[23][22] + coeff0_24*dmats1[24][22] + coeff0_25*dmats1[25][22] + coeff0_26*dmats1[26][22] + coeff0_27*dmats1[27][22] + coeff0_28*dmats1[28][22] + coeff0_29*dmats1[29][22] + coeff0_30*dmats1[30][22] + coeff0_31*dmats1[31][22] + coeff0_32*dmats1[32][22] + coeff0_33*dmats1[33][22] + coeff0_34*dmats1[34][22];
 
5287
          new_coeff0_23 = coeff0_0*dmats1[0][23] + coeff0_1*dmats1[1][23] + coeff0_2*dmats1[2][23] + coeff0_3*dmats1[3][23] + coeff0_4*dmats1[4][23] + coeff0_5*dmats1[5][23] + coeff0_6*dmats1[6][23] + coeff0_7*dmats1[7][23] + coeff0_8*dmats1[8][23] + coeff0_9*dmats1[9][23] + coeff0_10*dmats1[10][23] + coeff0_11*dmats1[11][23] + coeff0_12*dmats1[12][23] + coeff0_13*dmats1[13][23] + coeff0_14*dmats1[14][23] + coeff0_15*dmats1[15][23] + coeff0_16*dmats1[16][23] + coeff0_17*dmats1[17][23] + coeff0_18*dmats1[18][23] + coeff0_19*dmats1[19][23] + coeff0_20*dmats1[20][23] + coeff0_21*dmats1[21][23] + coeff0_22*dmats1[22][23] + coeff0_23*dmats1[23][23] + coeff0_24*dmats1[24][23] + coeff0_25*dmats1[25][23] + coeff0_26*dmats1[26][23] + coeff0_27*dmats1[27][23] + coeff0_28*dmats1[28][23] + coeff0_29*dmats1[29][23] + coeff0_30*dmats1[30][23] + coeff0_31*dmats1[31][23] + coeff0_32*dmats1[32][23] + coeff0_33*dmats1[33][23] + coeff0_34*dmats1[34][23];
 
5288
          new_coeff0_24 = coeff0_0*dmats1[0][24] + coeff0_1*dmats1[1][24] + coeff0_2*dmats1[2][24] + coeff0_3*dmats1[3][24] + coeff0_4*dmats1[4][24] + coeff0_5*dmats1[5][24] + coeff0_6*dmats1[6][24] + coeff0_7*dmats1[7][24] + coeff0_8*dmats1[8][24] + coeff0_9*dmats1[9][24] + coeff0_10*dmats1[10][24] + coeff0_11*dmats1[11][24] + coeff0_12*dmats1[12][24] + coeff0_13*dmats1[13][24] + coeff0_14*dmats1[14][24] + coeff0_15*dmats1[15][24] + coeff0_16*dmats1[16][24] + coeff0_17*dmats1[17][24] + coeff0_18*dmats1[18][24] + coeff0_19*dmats1[19][24] + coeff0_20*dmats1[20][24] + coeff0_21*dmats1[21][24] + coeff0_22*dmats1[22][24] + coeff0_23*dmats1[23][24] + coeff0_24*dmats1[24][24] + coeff0_25*dmats1[25][24] + coeff0_26*dmats1[26][24] + coeff0_27*dmats1[27][24] + coeff0_28*dmats1[28][24] + coeff0_29*dmats1[29][24] + coeff0_30*dmats1[30][24] + coeff0_31*dmats1[31][24] + coeff0_32*dmats1[32][24] + coeff0_33*dmats1[33][24] + coeff0_34*dmats1[34][24];
 
5289
          new_coeff0_25 = coeff0_0*dmats1[0][25] + coeff0_1*dmats1[1][25] + coeff0_2*dmats1[2][25] + coeff0_3*dmats1[3][25] + coeff0_4*dmats1[4][25] + coeff0_5*dmats1[5][25] + coeff0_6*dmats1[6][25] + coeff0_7*dmats1[7][25] + coeff0_8*dmats1[8][25] + coeff0_9*dmats1[9][25] + coeff0_10*dmats1[10][25] + coeff0_11*dmats1[11][25] + coeff0_12*dmats1[12][25] + coeff0_13*dmats1[13][25] + coeff0_14*dmats1[14][25] + coeff0_15*dmats1[15][25] + coeff0_16*dmats1[16][25] + coeff0_17*dmats1[17][25] + coeff0_18*dmats1[18][25] + coeff0_19*dmats1[19][25] + coeff0_20*dmats1[20][25] + coeff0_21*dmats1[21][25] + coeff0_22*dmats1[22][25] + coeff0_23*dmats1[23][25] + coeff0_24*dmats1[24][25] + coeff0_25*dmats1[25][25] + coeff0_26*dmats1[26][25] + coeff0_27*dmats1[27][25] + coeff0_28*dmats1[28][25] + coeff0_29*dmats1[29][25] + coeff0_30*dmats1[30][25] + coeff0_31*dmats1[31][25] + coeff0_32*dmats1[32][25] + coeff0_33*dmats1[33][25] + coeff0_34*dmats1[34][25];
 
5290
          new_coeff0_26 = coeff0_0*dmats1[0][26] + coeff0_1*dmats1[1][26] + coeff0_2*dmats1[2][26] + coeff0_3*dmats1[3][26] + coeff0_4*dmats1[4][26] + coeff0_5*dmats1[5][26] + coeff0_6*dmats1[6][26] + coeff0_7*dmats1[7][26] + coeff0_8*dmats1[8][26] + coeff0_9*dmats1[9][26] + coeff0_10*dmats1[10][26] + coeff0_11*dmats1[11][26] + coeff0_12*dmats1[12][26] + coeff0_13*dmats1[13][26] + coeff0_14*dmats1[14][26] + coeff0_15*dmats1[15][26] + coeff0_16*dmats1[16][26] + coeff0_17*dmats1[17][26] + coeff0_18*dmats1[18][26] + coeff0_19*dmats1[19][26] + coeff0_20*dmats1[20][26] + coeff0_21*dmats1[21][26] + coeff0_22*dmats1[22][26] + coeff0_23*dmats1[23][26] + coeff0_24*dmats1[24][26] + coeff0_25*dmats1[25][26] + coeff0_26*dmats1[26][26] + coeff0_27*dmats1[27][26] + coeff0_28*dmats1[28][26] + coeff0_29*dmats1[29][26] + coeff0_30*dmats1[30][26] + coeff0_31*dmats1[31][26] + coeff0_32*dmats1[32][26] + coeff0_33*dmats1[33][26] + coeff0_34*dmats1[34][26];
 
5291
          new_coeff0_27 = coeff0_0*dmats1[0][27] + coeff0_1*dmats1[1][27] + coeff0_2*dmats1[2][27] + coeff0_3*dmats1[3][27] + coeff0_4*dmats1[4][27] + coeff0_5*dmats1[5][27] + coeff0_6*dmats1[6][27] + coeff0_7*dmats1[7][27] + coeff0_8*dmats1[8][27] + coeff0_9*dmats1[9][27] + coeff0_10*dmats1[10][27] + coeff0_11*dmats1[11][27] + coeff0_12*dmats1[12][27] + coeff0_13*dmats1[13][27] + coeff0_14*dmats1[14][27] + coeff0_15*dmats1[15][27] + coeff0_16*dmats1[16][27] + coeff0_17*dmats1[17][27] + coeff0_18*dmats1[18][27] + coeff0_19*dmats1[19][27] + coeff0_20*dmats1[20][27] + coeff0_21*dmats1[21][27] + coeff0_22*dmats1[22][27] + coeff0_23*dmats1[23][27] + coeff0_24*dmats1[24][27] + coeff0_25*dmats1[25][27] + coeff0_26*dmats1[26][27] + coeff0_27*dmats1[27][27] + coeff0_28*dmats1[28][27] + coeff0_29*dmats1[29][27] + coeff0_30*dmats1[30][27] + coeff0_31*dmats1[31][27] + coeff0_32*dmats1[32][27] + coeff0_33*dmats1[33][27] + coeff0_34*dmats1[34][27];
 
5292
          new_coeff0_28 = coeff0_0*dmats1[0][28] + coeff0_1*dmats1[1][28] + coeff0_2*dmats1[2][28] + coeff0_3*dmats1[3][28] + coeff0_4*dmats1[4][28] + coeff0_5*dmats1[5][28] + coeff0_6*dmats1[6][28] + coeff0_7*dmats1[7][28] + coeff0_8*dmats1[8][28] + coeff0_9*dmats1[9][28] + coeff0_10*dmats1[10][28] + coeff0_11*dmats1[11][28] + coeff0_12*dmats1[12][28] + coeff0_13*dmats1[13][28] + coeff0_14*dmats1[14][28] + coeff0_15*dmats1[15][28] + coeff0_16*dmats1[16][28] + coeff0_17*dmats1[17][28] + coeff0_18*dmats1[18][28] + coeff0_19*dmats1[19][28] + coeff0_20*dmats1[20][28] + coeff0_21*dmats1[21][28] + coeff0_22*dmats1[22][28] + coeff0_23*dmats1[23][28] + coeff0_24*dmats1[24][28] + coeff0_25*dmats1[25][28] + coeff0_26*dmats1[26][28] + coeff0_27*dmats1[27][28] + coeff0_28*dmats1[28][28] + coeff0_29*dmats1[29][28] + coeff0_30*dmats1[30][28] + coeff0_31*dmats1[31][28] + coeff0_32*dmats1[32][28] + coeff0_33*dmats1[33][28] + coeff0_34*dmats1[34][28];
 
5293
          new_coeff0_29 = coeff0_0*dmats1[0][29] + coeff0_1*dmats1[1][29] + coeff0_2*dmats1[2][29] + coeff0_3*dmats1[3][29] + coeff0_4*dmats1[4][29] + coeff0_5*dmats1[5][29] + coeff0_6*dmats1[6][29] + coeff0_7*dmats1[7][29] + coeff0_8*dmats1[8][29] + coeff0_9*dmats1[9][29] + coeff0_10*dmats1[10][29] + coeff0_11*dmats1[11][29] + coeff0_12*dmats1[12][29] + coeff0_13*dmats1[13][29] + coeff0_14*dmats1[14][29] + coeff0_15*dmats1[15][29] + coeff0_16*dmats1[16][29] + coeff0_17*dmats1[17][29] + coeff0_18*dmats1[18][29] + coeff0_19*dmats1[19][29] + coeff0_20*dmats1[20][29] + coeff0_21*dmats1[21][29] + coeff0_22*dmats1[22][29] + coeff0_23*dmats1[23][29] + coeff0_24*dmats1[24][29] + coeff0_25*dmats1[25][29] + coeff0_26*dmats1[26][29] + coeff0_27*dmats1[27][29] + coeff0_28*dmats1[28][29] + coeff0_29*dmats1[29][29] + coeff0_30*dmats1[30][29] + coeff0_31*dmats1[31][29] + coeff0_32*dmats1[32][29] + coeff0_33*dmats1[33][29] + coeff0_34*dmats1[34][29];
 
5294
          new_coeff0_30 = coeff0_0*dmats1[0][30] + coeff0_1*dmats1[1][30] + coeff0_2*dmats1[2][30] + coeff0_3*dmats1[3][30] + coeff0_4*dmats1[4][30] + coeff0_5*dmats1[5][30] + coeff0_6*dmats1[6][30] + coeff0_7*dmats1[7][30] + coeff0_8*dmats1[8][30] + coeff0_9*dmats1[9][30] + coeff0_10*dmats1[10][30] + coeff0_11*dmats1[11][30] + coeff0_12*dmats1[12][30] + coeff0_13*dmats1[13][30] + coeff0_14*dmats1[14][30] + coeff0_15*dmats1[15][30] + coeff0_16*dmats1[16][30] + coeff0_17*dmats1[17][30] + coeff0_18*dmats1[18][30] + coeff0_19*dmats1[19][30] + coeff0_20*dmats1[20][30] + coeff0_21*dmats1[21][30] + coeff0_22*dmats1[22][30] + coeff0_23*dmats1[23][30] + coeff0_24*dmats1[24][30] + coeff0_25*dmats1[25][30] + coeff0_26*dmats1[26][30] + coeff0_27*dmats1[27][30] + coeff0_28*dmats1[28][30] + coeff0_29*dmats1[29][30] + coeff0_30*dmats1[30][30] + coeff0_31*dmats1[31][30] + coeff0_32*dmats1[32][30] + coeff0_33*dmats1[33][30] + coeff0_34*dmats1[34][30];
 
5295
          new_coeff0_31 = coeff0_0*dmats1[0][31] + coeff0_1*dmats1[1][31] + coeff0_2*dmats1[2][31] + coeff0_3*dmats1[3][31] + coeff0_4*dmats1[4][31] + coeff0_5*dmats1[5][31] + coeff0_6*dmats1[6][31] + coeff0_7*dmats1[7][31] + coeff0_8*dmats1[8][31] + coeff0_9*dmats1[9][31] + coeff0_10*dmats1[10][31] + coeff0_11*dmats1[11][31] + coeff0_12*dmats1[12][31] + coeff0_13*dmats1[13][31] + coeff0_14*dmats1[14][31] + coeff0_15*dmats1[15][31] + coeff0_16*dmats1[16][31] + coeff0_17*dmats1[17][31] + coeff0_18*dmats1[18][31] + coeff0_19*dmats1[19][31] + coeff0_20*dmats1[20][31] + coeff0_21*dmats1[21][31] + coeff0_22*dmats1[22][31] + coeff0_23*dmats1[23][31] + coeff0_24*dmats1[24][31] + coeff0_25*dmats1[25][31] + coeff0_26*dmats1[26][31] + coeff0_27*dmats1[27][31] + coeff0_28*dmats1[28][31] + coeff0_29*dmats1[29][31] + coeff0_30*dmats1[30][31] + coeff0_31*dmats1[31][31] + coeff0_32*dmats1[32][31] + coeff0_33*dmats1[33][31] + coeff0_34*dmats1[34][31];
 
5296
          new_coeff0_32 = coeff0_0*dmats1[0][32] + coeff0_1*dmats1[1][32] + coeff0_2*dmats1[2][32] + coeff0_3*dmats1[3][32] + coeff0_4*dmats1[4][32] + coeff0_5*dmats1[5][32] + coeff0_6*dmats1[6][32] + coeff0_7*dmats1[7][32] + coeff0_8*dmats1[8][32] + coeff0_9*dmats1[9][32] + coeff0_10*dmats1[10][32] + coeff0_11*dmats1[11][32] + coeff0_12*dmats1[12][32] + coeff0_13*dmats1[13][32] + coeff0_14*dmats1[14][32] + coeff0_15*dmats1[15][32] + coeff0_16*dmats1[16][32] + coeff0_17*dmats1[17][32] + coeff0_18*dmats1[18][32] + coeff0_19*dmats1[19][32] + coeff0_20*dmats1[20][32] + coeff0_21*dmats1[21][32] + coeff0_22*dmats1[22][32] + coeff0_23*dmats1[23][32] + coeff0_24*dmats1[24][32] + coeff0_25*dmats1[25][32] + coeff0_26*dmats1[26][32] + coeff0_27*dmats1[27][32] + coeff0_28*dmats1[28][32] + coeff0_29*dmats1[29][32] + coeff0_30*dmats1[30][32] + coeff0_31*dmats1[31][32] + coeff0_32*dmats1[32][32] + coeff0_33*dmats1[33][32] + coeff0_34*dmats1[34][32];
 
5297
          new_coeff0_33 = coeff0_0*dmats1[0][33] + coeff0_1*dmats1[1][33] + coeff0_2*dmats1[2][33] + coeff0_3*dmats1[3][33] + coeff0_4*dmats1[4][33] + coeff0_5*dmats1[5][33] + coeff0_6*dmats1[6][33] + coeff0_7*dmats1[7][33] + coeff0_8*dmats1[8][33] + coeff0_9*dmats1[9][33] + coeff0_10*dmats1[10][33] + coeff0_11*dmats1[11][33] + coeff0_12*dmats1[12][33] + coeff0_13*dmats1[13][33] + coeff0_14*dmats1[14][33] + coeff0_15*dmats1[15][33] + coeff0_16*dmats1[16][33] + coeff0_17*dmats1[17][33] + coeff0_18*dmats1[18][33] + coeff0_19*dmats1[19][33] + coeff0_20*dmats1[20][33] + coeff0_21*dmats1[21][33] + coeff0_22*dmats1[22][33] + coeff0_23*dmats1[23][33] + coeff0_24*dmats1[24][33] + coeff0_25*dmats1[25][33] + coeff0_26*dmats1[26][33] + coeff0_27*dmats1[27][33] + coeff0_28*dmats1[28][33] + coeff0_29*dmats1[29][33] + coeff0_30*dmats1[30][33] + coeff0_31*dmats1[31][33] + coeff0_32*dmats1[32][33] + coeff0_33*dmats1[33][33] + coeff0_34*dmats1[34][33];
 
5298
          new_coeff0_34 = coeff0_0*dmats1[0][34] + coeff0_1*dmats1[1][34] + coeff0_2*dmats1[2][34] + coeff0_3*dmats1[3][34] + coeff0_4*dmats1[4][34] + coeff0_5*dmats1[5][34] + coeff0_6*dmats1[6][34] + coeff0_7*dmats1[7][34] + coeff0_8*dmats1[8][34] + coeff0_9*dmats1[9][34] + coeff0_10*dmats1[10][34] + coeff0_11*dmats1[11][34] + coeff0_12*dmats1[12][34] + coeff0_13*dmats1[13][34] + coeff0_14*dmats1[14][34] + coeff0_15*dmats1[15][34] + coeff0_16*dmats1[16][34] + coeff0_17*dmats1[17][34] + coeff0_18*dmats1[18][34] + coeff0_19*dmats1[19][34] + coeff0_20*dmats1[20][34] + coeff0_21*dmats1[21][34] + coeff0_22*dmats1[22][34] + coeff0_23*dmats1[23][34] + coeff0_24*dmats1[24][34] + coeff0_25*dmats1[25][34] + coeff0_26*dmats1[26][34] + coeff0_27*dmats1[27][34] + coeff0_28*dmats1[28][34] + coeff0_29*dmats1[29][34] + coeff0_30*dmats1[30][34] + coeff0_31*dmats1[31][34] + coeff0_32*dmats1[32][34] + coeff0_33*dmats1[33][34] + coeff0_34*dmats1[34][34];
 
5299
        }
 
5300
        if(combinations[deriv_num][j] == 2)
 
5301
        {
 
5302
          new_coeff0_0 = coeff0_0*dmats2[0][0] + coeff0_1*dmats2[1][0] + coeff0_2*dmats2[2][0] + coeff0_3*dmats2[3][0] + coeff0_4*dmats2[4][0] + coeff0_5*dmats2[5][0] + coeff0_6*dmats2[6][0] + coeff0_7*dmats2[7][0] + coeff0_8*dmats2[8][0] + coeff0_9*dmats2[9][0] + coeff0_10*dmats2[10][0] + coeff0_11*dmats2[11][0] + coeff0_12*dmats2[12][0] + coeff0_13*dmats2[13][0] + coeff0_14*dmats2[14][0] + coeff0_15*dmats2[15][0] + coeff0_16*dmats2[16][0] + coeff0_17*dmats2[17][0] + coeff0_18*dmats2[18][0] + coeff0_19*dmats2[19][0] + coeff0_20*dmats2[20][0] + coeff0_21*dmats2[21][0] + coeff0_22*dmats2[22][0] + coeff0_23*dmats2[23][0] + coeff0_24*dmats2[24][0] + coeff0_25*dmats2[25][0] + coeff0_26*dmats2[26][0] + coeff0_27*dmats2[27][0] + coeff0_28*dmats2[28][0] + coeff0_29*dmats2[29][0] + coeff0_30*dmats2[30][0] + coeff0_31*dmats2[31][0] + coeff0_32*dmats2[32][0] + coeff0_33*dmats2[33][0] + coeff0_34*dmats2[34][0];
 
5303
          new_coeff0_1 = coeff0_0*dmats2[0][1] + coeff0_1*dmats2[1][1] + coeff0_2*dmats2[2][1] + coeff0_3*dmats2[3][1] + coeff0_4*dmats2[4][1] + coeff0_5*dmats2[5][1] + coeff0_6*dmats2[6][1] + coeff0_7*dmats2[7][1] + coeff0_8*dmats2[8][1] + coeff0_9*dmats2[9][1] + coeff0_10*dmats2[10][1] + coeff0_11*dmats2[11][1] + coeff0_12*dmats2[12][1] + coeff0_13*dmats2[13][1] + coeff0_14*dmats2[14][1] + coeff0_15*dmats2[15][1] + coeff0_16*dmats2[16][1] + coeff0_17*dmats2[17][1] + coeff0_18*dmats2[18][1] + coeff0_19*dmats2[19][1] + coeff0_20*dmats2[20][1] + coeff0_21*dmats2[21][1] + coeff0_22*dmats2[22][1] + coeff0_23*dmats2[23][1] + coeff0_24*dmats2[24][1] + coeff0_25*dmats2[25][1] + coeff0_26*dmats2[26][1] + coeff0_27*dmats2[27][1] + coeff0_28*dmats2[28][1] + coeff0_29*dmats2[29][1] + coeff0_30*dmats2[30][1] + coeff0_31*dmats2[31][1] + coeff0_32*dmats2[32][1] + coeff0_33*dmats2[33][1] + coeff0_34*dmats2[34][1];
 
5304
          new_coeff0_2 = coeff0_0*dmats2[0][2] + coeff0_1*dmats2[1][2] + coeff0_2*dmats2[2][2] + coeff0_3*dmats2[3][2] + coeff0_4*dmats2[4][2] + coeff0_5*dmats2[5][2] + coeff0_6*dmats2[6][2] + coeff0_7*dmats2[7][2] + coeff0_8*dmats2[8][2] + coeff0_9*dmats2[9][2] + coeff0_10*dmats2[10][2] + coeff0_11*dmats2[11][2] + coeff0_12*dmats2[12][2] + coeff0_13*dmats2[13][2] + coeff0_14*dmats2[14][2] + coeff0_15*dmats2[15][2] + coeff0_16*dmats2[16][2] + coeff0_17*dmats2[17][2] + coeff0_18*dmats2[18][2] + coeff0_19*dmats2[19][2] + coeff0_20*dmats2[20][2] + coeff0_21*dmats2[21][2] + coeff0_22*dmats2[22][2] + coeff0_23*dmats2[23][2] + coeff0_24*dmats2[24][2] + coeff0_25*dmats2[25][2] + coeff0_26*dmats2[26][2] + coeff0_27*dmats2[27][2] + coeff0_28*dmats2[28][2] + coeff0_29*dmats2[29][2] + coeff0_30*dmats2[30][2] + coeff0_31*dmats2[31][2] + coeff0_32*dmats2[32][2] + coeff0_33*dmats2[33][2] + coeff0_34*dmats2[34][2];
 
5305
          new_coeff0_3 = coeff0_0*dmats2[0][3] + coeff0_1*dmats2[1][3] + coeff0_2*dmats2[2][3] + coeff0_3*dmats2[3][3] + coeff0_4*dmats2[4][3] + coeff0_5*dmats2[5][3] + coeff0_6*dmats2[6][3] + coeff0_7*dmats2[7][3] + coeff0_8*dmats2[8][3] + coeff0_9*dmats2[9][3] + coeff0_10*dmats2[10][3] + coeff0_11*dmats2[11][3] + coeff0_12*dmats2[12][3] + coeff0_13*dmats2[13][3] + coeff0_14*dmats2[14][3] + coeff0_15*dmats2[15][3] + coeff0_16*dmats2[16][3] + coeff0_17*dmats2[17][3] + coeff0_18*dmats2[18][3] + coeff0_19*dmats2[19][3] + coeff0_20*dmats2[20][3] + coeff0_21*dmats2[21][3] + coeff0_22*dmats2[22][3] + coeff0_23*dmats2[23][3] + coeff0_24*dmats2[24][3] + coeff0_25*dmats2[25][3] + coeff0_26*dmats2[26][3] + coeff0_27*dmats2[27][3] + coeff0_28*dmats2[28][3] + coeff0_29*dmats2[29][3] + coeff0_30*dmats2[30][3] + coeff0_31*dmats2[31][3] + coeff0_32*dmats2[32][3] + coeff0_33*dmats2[33][3] + coeff0_34*dmats2[34][3];
 
5306
          new_coeff0_4 = coeff0_0*dmats2[0][4] + coeff0_1*dmats2[1][4] + coeff0_2*dmats2[2][4] + coeff0_3*dmats2[3][4] + coeff0_4*dmats2[4][4] + coeff0_5*dmats2[5][4] + coeff0_6*dmats2[6][4] + coeff0_7*dmats2[7][4] + coeff0_8*dmats2[8][4] + coeff0_9*dmats2[9][4] + coeff0_10*dmats2[10][4] + coeff0_11*dmats2[11][4] + coeff0_12*dmats2[12][4] + coeff0_13*dmats2[13][4] + coeff0_14*dmats2[14][4] + coeff0_15*dmats2[15][4] + coeff0_16*dmats2[16][4] + coeff0_17*dmats2[17][4] + coeff0_18*dmats2[18][4] + coeff0_19*dmats2[19][4] + coeff0_20*dmats2[20][4] + coeff0_21*dmats2[21][4] + coeff0_22*dmats2[22][4] + coeff0_23*dmats2[23][4] + coeff0_24*dmats2[24][4] + coeff0_25*dmats2[25][4] + coeff0_26*dmats2[26][4] + coeff0_27*dmats2[27][4] + coeff0_28*dmats2[28][4] + coeff0_29*dmats2[29][4] + coeff0_30*dmats2[30][4] + coeff0_31*dmats2[31][4] + coeff0_32*dmats2[32][4] + coeff0_33*dmats2[33][4] + coeff0_34*dmats2[34][4];
 
5307
          new_coeff0_5 = coeff0_0*dmats2[0][5] + coeff0_1*dmats2[1][5] + coeff0_2*dmats2[2][5] + coeff0_3*dmats2[3][5] + coeff0_4*dmats2[4][5] + coeff0_5*dmats2[5][5] + coeff0_6*dmats2[6][5] + coeff0_7*dmats2[7][5] + coeff0_8*dmats2[8][5] + coeff0_9*dmats2[9][5] + coeff0_10*dmats2[10][5] + coeff0_11*dmats2[11][5] + coeff0_12*dmats2[12][5] + coeff0_13*dmats2[13][5] + coeff0_14*dmats2[14][5] + coeff0_15*dmats2[15][5] + coeff0_16*dmats2[16][5] + coeff0_17*dmats2[17][5] + coeff0_18*dmats2[18][5] + coeff0_19*dmats2[19][5] + coeff0_20*dmats2[20][5] + coeff0_21*dmats2[21][5] + coeff0_22*dmats2[22][5] + coeff0_23*dmats2[23][5] + coeff0_24*dmats2[24][5] + coeff0_25*dmats2[25][5] + coeff0_26*dmats2[26][5] + coeff0_27*dmats2[27][5] + coeff0_28*dmats2[28][5] + coeff0_29*dmats2[29][5] + coeff0_30*dmats2[30][5] + coeff0_31*dmats2[31][5] + coeff0_32*dmats2[32][5] + coeff0_33*dmats2[33][5] + coeff0_34*dmats2[34][5];
 
5308
          new_coeff0_6 = coeff0_0*dmats2[0][6] + coeff0_1*dmats2[1][6] + coeff0_2*dmats2[2][6] + coeff0_3*dmats2[3][6] + coeff0_4*dmats2[4][6] + coeff0_5*dmats2[5][6] + coeff0_6*dmats2[6][6] + coeff0_7*dmats2[7][6] + coeff0_8*dmats2[8][6] + coeff0_9*dmats2[9][6] + coeff0_10*dmats2[10][6] + coeff0_11*dmats2[11][6] + coeff0_12*dmats2[12][6] + coeff0_13*dmats2[13][6] + coeff0_14*dmats2[14][6] + coeff0_15*dmats2[15][6] + coeff0_16*dmats2[16][6] + coeff0_17*dmats2[17][6] + coeff0_18*dmats2[18][6] + coeff0_19*dmats2[19][6] + coeff0_20*dmats2[20][6] + coeff0_21*dmats2[21][6] + coeff0_22*dmats2[22][6] + coeff0_23*dmats2[23][6] + coeff0_24*dmats2[24][6] + coeff0_25*dmats2[25][6] + coeff0_26*dmats2[26][6] + coeff0_27*dmats2[27][6] + coeff0_28*dmats2[28][6] + coeff0_29*dmats2[29][6] + coeff0_30*dmats2[30][6] + coeff0_31*dmats2[31][6] + coeff0_32*dmats2[32][6] + coeff0_33*dmats2[33][6] + coeff0_34*dmats2[34][6];
 
5309
          new_coeff0_7 = coeff0_0*dmats2[0][7] + coeff0_1*dmats2[1][7] + coeff0_2*dmats2[2][7] + coeff0_3*dmats2[3][7] + coeff0_4*dmats2[4][7] + coeff0_5*dmats2[5][7] + coeff0_6*dmats2[6][7] + coeff0_7*dmats2[7][7] + coeff0_8*dmats2[8][7] + coeff0_9*dmats2[9][7] + coeff0_10*dmats2[10][7] + coeff0_11*dmats2[11][7] + coeff0_12*dmats2[12][7] + coeff0_13*dmats2[13][7] + coeff0_14*dmats2[14][7] + coeff0_15*dmats2[15][7] + coeff0_16*dmats2[16][7] + coeff0_17*dmats2[17][7] + coeff0_18*dmats2[18][7] + coeff0_19*dmats2[19][7] + coeff0_20*dmats2[20][7] + coeff0_21*dmats2[21][7] + coeff0_22*dmats2[22][7] + coeff0_23*dmats2[23][7] + coeff0_24*dmats2[24][7] + coeff0_25*dmats2[25][7] + coeff0_26*dmats2[26][7] + coeff0_27*dmats2[27][7] + coeff0_28*dmats2[28][7] + coeff0_29*dmats2[29][7] + coeff0_30*dmats2[30][7] + coeff0_31*dmats2[31][7] + coeff0_32*dmats2[32][7] + coeff0_33*dmats2[33][7] + coeff0_34*dmats2[34][7];
 
5310
          new_coeff0_8 = coeff0_0*dmats2[0][8] + coeff0_1*dmats2[1][8] + coeff0_2*dmats2[2][8] + coeff0_3*dmats2[3][8] + coeff0_4*dmats2[4][8] + coeff0_5*dmats2[5][8] + coeff0_6*dmats2[6][8] + coeff0_7*dmats2[7][8] + coeff0_8*dmats2[8][8] + coeff0_9*dmats2[9][8] + coeff0_10*dmats2[10][8] + coeff0_11*dmats2[11][8] + coeff0_12*dmats2[12][8] + coeff0_13*dmats2[13][8] + coeff0_14*dmats2[14][8] + coeff0_15*dmats2[15][8] + coeff0_16*dmats2[16][8] + coeff0_17*dmats2[17][8] + coeff0_18*dmats2[18][8] + coeff0_19*dmats2[19][8] + coeff0_20*dmats2[20][8] + coeff0_21*dmats2[21][8] + coeff0_22*dmats2[22][8] + coeff0_23*dmats2[23][8] + coeff0_24*dmats2[24][8] + coeff0_25*dmats2[25][8] + coeff0_26*dmats2[26][8] + coeff0_27*dmats2[27][8] + coeff0_28*dmats2[28][8] + coeff0_29*dmats2[29][8] + coeff0_30*dmats2[30][8] + coeff0_31*dmats2[31][8] + coeff0_32*dmats2[32][8] + coeff0_33*dmats2[33][8] + coeff0_34*dmats2[34][8];
 
5311
          new_coeff0_9 = coeff0_0*dmats2[0][9] + coeff0_1*dmats2[1][9] + coeff0_2*dmats2[2][9] + coeff0_3*dmats2[3][9] + coeff0_4*dmats2[4][9] + coeff0_5*dmats2[5][9] + coeff0_6*dmats2[6][9] + coeff0_7*dmats2[7][9] + coeff0_8*dmats2[8][9] + coeff0_9*dmats2[9][9] + coeff0_10*dmats2[10][9] + coeff0_11*dmats2[11][9] + coeff0_12*dmats2[12][9] + coeff0_13*dmats2[13][9] + coeff0_14*dmats2[14][9] + coeff0_15*dmats2[15][9] + coeff0_16*dmats2[16][9] + coeff0_17*dmats2[17][9] + coeff0_18*dmats2[18][9] + coeff0_19*dmats2[19][9] + coeff0_20*dmats2[20][9] + coeff0_21*dmats2[21][9] + coeff0_22*dmats2[22][9] + coeff0_23*dmats2[23][9] + coeff0_24*dmats2[24][9] + coeff0_25*dmats2[25][9] + coeff0_26*dmats2[26][9] + coeff0_27*dmats2[27][9] + coeff0_28*dmats2[28][9] + coeff0_29*dmats2[29][9] + coeff0_30*dmats2[30][9] + coeff0_31*dmats2[31][9] + coeff0_32*dmats2[32][9] + coeff0_33*dmats2[33][9] + coeff0_34*dmats2[34][9];
 
5312
          new_coeff0_10 = coeff0_0*dmats2[0][10] + coeff0_1*dmats2[1][10] + coeff0_2*dmats2[2][10] + coeff0_3*dmats2[3][10] + coeff0_4*dmats2[4][10] + coeff0_5*dmats2[5][10] + coeff0_6*dmats2[6][10] + coeff0_7*dmats2[7][10] + coeff0_8*dmats2[8][10] + coeff0_9*dmats2[9][10] + coeff0_10*dmats2[10][10] + coeff0_11*dmats2[11][10] + coeff0_12*dmats2[12][10] + coeff0_13*dmats2[13][10] + coeff0_14*dmats2[14][10] + coeff0_15*dmats2[15][10] + coeff0_16*dmats2[16][10] + coeff0_17*dmats2[17][10] + coeff0_18*dmats2[18][10] + coeff0_19*dmats2[19][10] + coeff0_20*dmats2[20][10] + coeff0_21*dmats2[21][10] + coeff0_22*dmats2[22][10] + coeff0_23*dmats2[23][10] + coeff0_24*dmats2[24][10] + coeff0_25*dmats2[25][10] + coeff0_26*dmats2[26][10] + coeff0_27*dmats2[27][10] + coeff0_28*dmats2[28][10] + coeff0_29*dmats2[29][10] + coeff0_30*dmats2[30][10] + coeff0_31*dmats2[31][10] + coeff0_32*dmats2[32][10] + coeff0_33*dmats2[33][10] + coeff0_34*dmats2[34][10];
 
5313
          new_coeff0_11 = coeff0_0*dmats2[0][11] + coeff0_1*dmats2[1][11] + coeff0_2*dmats2[2][11] + coeff0_3*dmats2[3][11] + coeff0_4*dmats2[4][11] + coeff0_5*dmats2[5][11] + coeff0_6*dmats2[6][11] + coeff0_7*dmats2[7][11] + coeff0_8*dmats2[8][11] + coeff0_9*dmats2[9][11] + coeff0_10*dmats2[10][11] + coeff0_11*dmats2[11][11] + coeff0_12*dmats2[12][11] + coeff0_13*dmats2[13][11] + coeff0_14*dmats2[14][11] + coeff0_15*dmats2[15][11] + coeff0_16*dmats2[16][11] + coeff0_17*dmats2[17][11] + coeff0_18*dmats2[18][11] + coeff0_19*dmats2[19][11] + coeff0_20*dmats2[20][11] + coeff0_21*dmats2[21][11] + coeff0_22*dmats2[22][11] + coeff0_23*dmats2[23][11] + coeff0_24*dmats2[24][11] + coeff0_25*dmats2[25][11] + coeff0_26*dmats2[26][11] + coeff0_27*dmats2[27][11] + coeff0_28*dmats2[28][11] + coeff0_29*dmats2[29][11] + coeff0_30*dmats2[30][11] + coeff0_31*dmats2[31][11] + coeff0_32*dmats2[32][11] + coeff0_33*dmats2[33][11] + coeff0_34*dmats2[34][11];
 
5314
          new_coeff0_12 = coeff0_0*dmats2[0][12] + coeff0_1*dmats2[1][12] + coeff0_2*dmats2[2][12] + coeff0_3*dmats2[3][12] + coeff0_4*dmats2[4][12] + coeff0_5*dmats2[5][12] + coeff0_6*dmats2[6][12] + coeff0_7*dmats2[7][12] + coeff0_8*dmats2[8][12] + coeff0_9*dmats2[9][12] + coeff0_10*dmats2[10][12] + coeff0_11*dmats2[11][12] + coeff0_12*dmats2[12][12] + coeff0_13*dmats2[13][12] + coeff0_14*dmats2[14][12] + coeff0_15*dmats2[15][12] + coeff0_16*dmats2[16][12] + coeff0_17*dmats2[17][12] + coeff0_18*dmats2[18][12] + coeff0_19*dmats2[19][12] + coeff0_20*dmats2[20][12] + coeff0_21*dmats2[21][12] + coeff0_22*dmats2[22][12] + coeff0_23*dmats2[23][12] + coeff0_24*dmats2[24][12] + coeff0_25*dmats2[25][12] + coeff0_26*dmats2[26][12] + coeff0_27*dmats2[27][12] + coeff0_28*dmats2[28][12] + coeff0_29*dmats2[29][12] + coeff0_30*dmats2[30][12] + coeff0_31*dmats2[31][12] + coeff0_32*dmats2[32][12] + coeff0_33*dmats2[33][12] + coeff0_34*dmats2[34][12];
 
5315
          new_coeff0_13 = coeff0_0*dmats2[0][13] + coeff0_1*dmats2[1][13] + coeff0_2*dmats2[2][13] + coeff0_3*dmats2[3][13] + coeff0_4*dmats2[4][13] + coeff0_5*dmats2[5][13] + coeff0_6*dmats2[6][13] + coeff0_7*dmats2[7][13] + coeff0_8*dmats2[8][13] + coeff0_9*dmats2[9][13] + coeff0_10*dmats2[10][13] + coeff0_11*dmats2[11][13] + coeff0_12*dmats2[12][13] + coeff0_13*dmats2[13][13] + coeff0_14*dmats2[14][13] + coeff0_15*dmats2[15][13] + coeff0_16*dmats2[16][13] + coeff0_17*dmats2[17][13] + coeff0_18*dmats2[18][13] + coeff0_19*dmats2[19][13] + coeff0_20*dmats2[20][13] + coeff0_21*dmats2[21][13] + coeff0_22*dmats2[22][13] + coeff0_23*dmats2[23][13] + coeff0_24*dmats2[24][13] + coeff0_25*dmats2[25][13] + coeff0_26*dmats2[26][13] + coeff0_27*dmats2[27][13] + coeff0_28*dmats2[28][13] + coeff0_29*dmats2[29][13] + coeff0_30*dmats2[30][13] + coeff0_31*dmats2[31][13] + coeff0_32*dmats2[32][13] + coeff0_33*dmats2[33][13] + coeff0_34*dmats2[34][13];
 
5316
          new_coeff0_14 = coeff0_0*dmats2[0][14] + coeff0_1*dmats2[1][14] + coeff0_2*dmats2[2][14] + coeff0_3*dmats2[3][14] + coeff0_4*dmats2[4][14] + coeff0_5*dmats2[5][14] + coeff0_6*dmats2[6][14] + coeff0_7*dmats2[7][14] + coeff0_8*dmats2[8][14] + coeff0_9*dmats2[9][14] + coeff0_10*dmats2[10][14] + coeff0_11*dmats2[11][14] + coeff0_12*dmats2[12][14] + coeff0_13*dmats2[13][14] + coeff0_14*dmats2[14][14] + coeff0_15*dmats2[15][14] + coeff0_16*dmats2[16][14] + coeff0_17*dmats2[17][14] + coeff0_18*dmats2[18][14] + coeff0_19*dmats2[19][14] + coeff0_20*dmats2[20][14] + coeff0_21*dmats2[21][14] + coeff0_22*dmats2[22][14] + coeff0_23*dmats2[23][14] + coeff0_24*dmats2[24][14] + coeff0_25*dmats2[25][14] + coeff0_26*dmats2[26][14] + coeff0_27*dmats2[27][14] + coeff0_28*dmats2[28][14] + coeff0_29*dmats2[29][14] + coeff0_30*dmats2[30][14] + coeff0_31*dmats2[31][14] + coeff0_32*dmats2[32][14] + coeff0_33*dmats2[33][14] + coeff0_34*dmats2[34][14];
 
5317
          new_coeff0_15 = coeff0_0*dmats2[0][15] + coeff0_1*dmats2[1][15] + coeff0_2*dmats2[2][15] + coeff0_3*dmats2[3][15] + coeff0_4*dmats2[4][15] + coeff0_5*dmats2[5][15] + coeff0_6*dmats2[6][15] + coeff0_7*dmats2[7][15] + coeff0_8*dmats2[8][15] + coeff0_9*dmats2[9][15] + coeff0_10*dmats2[10][15] + coeff0_11*dmats2[11][15] + coeff0_12*dmats2[12][15] + coeff0_13*dmats2[13][15] + coeff0_14*dmats2[14][15] + coeff0_15*dmats2[15][15] + coeff0_16*dmats2[16][15] + coeff0_17*dmats2[17][15] + coeff0_18*dmats2[18][15] + coeff0_19*dmats2[19][15] + coeff0_20*dmats2[20][15] + coeff0_21*dmats2[21][15] + coeff0_22*dmats2[22][15] + coeff0_23*dmats2[23][15] + coeff0_24*dmats2[24][15] + coeff0_25*dmats2[25][15] + coeff0_26*dmats2[26][15] + coeff0_27*dmats2[27][15] + coeff0_28*dmats2[28][15] + coeff0_29*dmats2[29][15] + coeff0_30*dmats2[30][15] + coeff0_31*dmats2[31][15] + coeff0_32*dmats2[32][15] + coeff0_33*dmats2[33][15] + coeff0_34*dmats2[34][15];
 
5318
          new_coeff0_16 = coeff0_0*dmats2[0][16] + coeff0_1*dmats2[1][16] + coeff0_2*dmats2[2][16] + coeff0_3*dmats2[3][16] + coeff0_4*dmats2[4][16] + coeff0_5*dmats2[5][16] + coeff0_6*dmats2[6][16] + coeff0_7*dmats2[7][16] + coeff0_8*dmats2[8][16] + coeff0_9*dmats2[9][16] + coeff0_10*dmats2[10][16] + coeff0_11*dmats2[11][16] + coeff0_12*dmats2[12][16] + coeff0_13*dmats2[13][16] + coeff0_14*dmats2[14][16] + coeff0_15*dmats2[15][16] + coeff0_16*dmats2[16][16] + coeff0_17*dmats2[17][16] + coeff0_18*dmats2[18][16] + coeff0_19*dmats2[19][16] + coeff0_20*dmats2[20][16] + coeff0_21*dmats2[21][16] + coeff0_22*dmats2[22][16] + coeff0_23*dmats2[23][16] + coeff0_24*dmats2[24][16] + coeff0_25*dmats2[25][16] + coeff0_26*dmats2[26][16] + coeff0_27*dmats2[27][16] + coeff0_28*dmats2[28][16] + coeff0_29*dmats2[29][16] + coeff0_30*dmats2[30][16] + coeff0_31*dmats2[31][16] + coeff0_32*dmats2[32][16] + coeff0_33*dmats2[33][16] + coeff0_34*dmats2[34][16];
 
5319
          new_coeff0_17 = coeff0_0*dmats2[0][17] + coeff0_1*dmats2[1][17] + coeff0_2*dmats2[2][17] + coeff0_3*dmats2[3][17] + coeff0_4*dmats2[4][17] + coeff0_5*dmats2[5][17] + coeff0_6*dmats2[6][17] + coeff0_7*dmats2[7][17] + coeff0_8*dmats2[8][17] + coeff0_9*dmats2[9][17] + coeff0_10*dmats2[10][17] + coeff0_11*dmats2[11][17] + coeff0_12*dmats2[12][17] + coeff0_13*dmats2[13][17] + coeff0_14*dmats2[14][17] + coeff0_15*dmats2[15][17] + coeff0_16*dmats2[16][17] + coeff0_17*dmats2[17][17] + coeff0_18*dmats2[18][17] + coeff0_19*dmats2[19][17] + coeff0_20*dmats2[20][17] + coeff0_21*dmats2[21][17] + coeff0_22*dmats2[22][17] + coeff0_23*dmats2[23][17] + coeff0_24*dmats2[24][17] + coeff0_25*dmats2[25][17] + coeff0_26*dmats2[26][17] + coeff0_27*dmats2[27][17] + coeff0_28*dmats2[28][17] + coeff0_29*dmats2[29][17] + coeff0_30*dmats2[30][17] + coeff0_31*dmats2[31][17] + coeff0_32*dmats2[32][17] + coeff0_33*dmats2[33][17] + coeff0_34*dmats2[34][17];
 
5320
          new_coeff0_18 = coeff0_0*dmats2[0][18] + coeff0_1*dmats2[1][18] + coeff0_2*dmats2[2][18] + coeff0_3*dmats2[3][18] + coeff0_4*dmats2[4][18] + coeff0_5*dmats2[5][18] + coeff0_6*dmats2[6][18] + coeff0_7*dmats2[7][18] + coeff0_8*dmats2[8][18] + coeff0_9*dmats2[9][18] + coeff0_10*dmats2[10][18] + coeff0_11*dmats2[11][18] + coeff0_12*dmats2[12][18] + coeff0_13*dmats2[13][18] + coeff0_14*dmats2[14][18] + coeff0_15*dmats2[15][18] + coeff0_16*dmats2[16][18] + coeff0_17*dmats2[17][18] + coeff0_18*dmats2[18][18] + coeff0_19*dmats2[19][18] + coeff0_20*dmats2[20][18] + coeff0_21*dmats2[21][18] + coeff0_22*dmats2[22][18] + coeff0_23*dmats2[23][18] + coeff0_24*dmats2[24][18] + coeff0_25*dmats2[25][18] + coeff0_26*dmats2[26][18] + coeff0_27*dmats2[27][18] + coeff0_28*dmats2[28][18] + coeff0_29*dmats2[29][18] + coeff0_30*dmats2[30][18] + coeff0_31*dmats2[31][18] + coeff0_32*dmats2[32][18] + coeff0_33*dmats2[33][18] + coeff0_34*dmats2[34][18];
 
5321
          new_coeff0_19 = coeff0_0*dmats2[0][19] + coeff0_1*dmats2[1][19] + coeff0_2*dmats2[2][19] + coeff0_3*dmats2[3][19] + coeff0_4*dmats2[4][19] + coeff0_5*dmats2[5][19] + coeff0_6*dmats2[6][19] + coeff0_7*dmats2[7][19] + coeff0_8*dmats2[8][19] + coeff0_9*dmats2[9][19] + coeff0_10*dmats2[10][19] + coeff0_11*dmats2[11][19] + coeff0_12*dmats2[12][19] + coeff0_13*dmats2[13][19] + coeff0_14*dmats2[14][19] + coeff0_15*dmats2[15][19] + coeff0_16*dmats2[16][19] + coeff0_17*dmats2[17][19] + coeff0_18*dmats2[18][19] + coeff0_19*dmats2[19][19] + coeff0_20*dmats2[20][19] + coeff0_21*dmats2[21][19] + coeff0_22*dmats2[22][19] + coeff0_23*dmats2[23][19] + coeff0_24*dmats2[24][19] + coeff0_25*dmats2[25][19] + coeff0_26*dmats2[26][19] + coeff0_27*dmats2[27][19] + coeff0_28*dmats2[28][19] + coeff0_29*dmats2[29][19] + coeff0_30*dmats2[30][19] + coeff0_31*dmats2[31][19] + coeff0_32*dmats2[32][19] + coeff0_33*dmats2[33][19] + coeff0_34*dmats2[34][19];
 
5322
          new_coeff0_20 = coeff0_0*dmats2[0][20] + coeff0_1*dmats2[1][20] + coeff0_2*dmats2[2][20] + coeff0_3*dmats2[3][20] + coeff0_4*dmats2[4][20] + coeff0_5*dmats2[5][20] + coeff0_6*dmats2[6][20] + coeff0_7*dmats2[7][20] + coeff0_8*dmats2[8][20] + coeff0_9*dmats2[9][20] + coeff0_10*dmats2[10][20] + coeff0_11*dmats2[11][20] + coeff0_12*dmats2[12][20] + coeff0_13*dmats2[13][20] + coeff0_14*dmats2[14][20] + coeff0_15*dmats2[15][20] + coeff0_16*dmats2[16][20] + coeff0_17*dmats2[17][20] + coeff0_18*dmats2[18][20] + coeff0_19*dmats2[19][20] + coeff0_20*dmats2[20][20] + coeff0_21*dmats2[21][20] + coeff0_22*dmats2[22][20] + coeff0_23*dmats2[23][20] + coeff0_24*dmats2[24][20] + coeff0_25*dmats2[25][20] + coeff0_26*dmats2[26][20] + coeff0_27*dmats2[27][20] + coeff0_28*dmats2[28][20] + coeff0_29*dmats2[29][20] + coeff0_30*dmats2[30][20] + coeff0_31*dmats2[31][20] + coeff0_32*dmats2[32][20] + coeff0_33*dmats2[33][20] + coeff0_34*dmats2[34][20];
 
5323
          new_coeff0_21 = coeff0_0*dmats2[0][21] + coeff0_1*dmats2[1][21] + coeff0_2*dmats2[2][21] + coeff0_3*dmats2[3][21] + coeff0_4*dmats2[4][21] + coeff0_5*dmats2[5][21] + coeff0_6*dmats2[6][21] + coeff0_7*dmats2[7][21] + coeff0_8*dmats2[8][21] + coeff0_9*dmats2[9][21] + coeff0_10*dmats2[10][21] + coeff0_11*dmats2[11][21] + coeff0_12*dmats2[12][21] + coeff0_13*dmats2[13][21] + coeff0_14*dmats2[14][21] + coeff0_15*dmats2[15][21] + coeff0_16*dmats2[16][21] + coeff0_17*dmats2[17][21] + coeff0_18*dmats2[18][21] + coeff0_19*dmats2[19][21] + coeff0_20*dmats2[20][21] + coeff0_21*dmats2[21][21] + coeff0_22*dmats2[22][21] + coeff0_23*dmats2[23][21] + coeff0_24*dmats2[24][21] + coeff0_25*dmats2[25][21] + coeff0_26*dmats2[26][21] + coeff0_27*dmats2[27][21] + coeff0_28*dmats2[28][21] + coeff0_29*dmats2[29][21] + coeff0_30*dmats2[30][21] + coeff0_31*dmats2[31][21] + coeff0_32*dmats2[32][21] + coeff0_33*dmats2[33][21] + coeff0_34*dmats2[34][21];
 
5324
          new_coeff0_22 = coeff0_0*dmats2[0][22] + coeff0_1*dmats2[1][22] + coeff0_2*dmats2[2][22] + coeff0_3*dmats2[3][22] + coeff0_4*dmats2[4][22] + coeff0_5*dmats2[5][22] + coeff0_6*dmats2[6][22] + coeff0_7*dmats2[7][22] + coeff0_8*dmats2[8][22] + coeff0_9*dmats2[9][22] + coeff0_10*dmats2[10][22] + coeff0_11*dmats2[11][22] + coeff0_12*dmats2[12][22] + coeff0_13*dmats2[13][22] + coeff0_14*dmats2[14][22] + coeff0_15*dmats2[15][22] + coeff0_16*dmats2[16][22] + coeff0_17*dmats2[17][22] + coeff0_18*dmats2[18][22] + coeff0_19*dmats2[19][22] + coeff0_20*dmats2[20][22] + coeff0_21*dmats2[21][22] + coeff0_22*dmats2[22][22] + coeff0_23*dmats2[23][22] + coeff0_24*dmats2[24][22] + coeff0_25*dmats2[25][22] + coeff0_26*dmats2[26][22] + coeff0_27*dmats2[27][22] + coeff0_28*dmats2[28][22] + coeff0_29*dmats2[29][22] + coeff0_30*dmats2[30][22] + coeff0_31*dmats2[31][22] + coeff0_32*dmats2[32][22] + coeff0_33*dmats2[33][22] + coeff0_34*dmats2[34][22];
 
5325
          new_coeff0_23 = coeff0_0*dmats2[0][23] + coeff0_1*dmats2[1][23] + coeff0_2*dmats2[2][23] + coeff0_3*dmats2[3][23] + coeff0_4*dmats2[4][23] + coeff0_5*dmats2[5][23] + coeff0_6*dmats2[6][23] + coeff0_7*dmats2[7][23] + coeff0_8*dmats2[8][23] + coeff0_9*dmats2[9][23] + coeff0_10*dmats2[10][23] + coeff0_11*dmats2[11][23] + coeff0_12*dmats2[12][23] + coeff0_13*dmats2[13][23] + coeff0_14*dmats2[14][23] + coeff0_15*dmats2[15][23] + coeff0_16*dmats2[16][23] + coeff0_17*dmats2[17][23] + coeff0_18*dmats2[18][23] + coeff0_19*dmats2[19][23] + coeff0_20*dmats2[20][23] + coeff0_21*dmats2[21][23] + coeff0_22*dmats2[22][23] + coeff0_23*dmats2[23][23] + coeff0_24*dmats2[24][23] + coeff0_25*dmats2[25][23] + coeff0_26*dmats2[26][23] + coeff0_27*dmats2[27][23] + coeff0_28*dmats2[28][23] + coeff0_29*dmats2[29][23] + coeff0_30*dmats2[30][23] + coeff0_31*dmats2[31][23] + coeff0_32*dmats2[32][23] + coeff0_33*dmats2[33][23] + coeff0_34*dmats2[34][23];
 
5326
          new_coeff0_24 = coeff0_0*dmats2[0][24] + coeff0_1*dmats2[1][24] + coeff0_2*dmats2[2][24] + coeff0_3*dmats2[3][24] + coeff0_4*dmats2[4][24] + coeff0_5*dmats2[5][24] + coeff0_6*dmats2[6][24] + coeff0_7*dmats2[7][24] + coeff0_8*dmats2[8][24] + coeff0_9*dmats2[9][24] + coeff0_10*dmats2[10][24] + coeff0_11*dmats2[11][24] + coeff0_12*dmats2[12][24] + coeff0_13*dmats2[13][24] + coeff0_14*dmats2[14][24] + coeff0_15*dmats2[15][24] + coeff0_16*dmats2[16][24] + coeff0_17*dmats2[17][24] + coeff0_18*dmats2[18][24] + coeff0_19*dmats2[19][24] + coeff0_20*dmats2[20][24] + coeff0_21*dmats2[21][24] + coeff0_22*dmats2[22][24] + coeff0_23*dmats2[23][24] + coeff0_24*dmats2[24][24] + coeff0_25*dmats2[25][24] + coeff0_26*dmats2[26][24] + coeff0_27*dmats2[27][24] + coeff0_28*dmats2[28][24] + coeff0_29*dmats2[29][24] + coeff0_30*dmats2[30][24] + coeff0_31*dmats2[31][24] + coeff0_32*dmats2[32][24] + coeff0_33*dmats2[33][24] + coeff0_34*dmats2[34][24];
 
5327
          new_coeff0_25 = coeff0_0*dmats2[0][25] + coeff0_1*dmats2[1][25] + coeff0_2*dmats2[2][25] + coeff0_3*dmats2[3][25] + coeff0_4*dmats2[4][25] + coeff0_5*dmats2[5][25] + coeff0_6*dmats2[6][25] + coeff0_7*dmats2[7][25] + coeff0_8*dmats2[8][25] + coeff0_9*dmats2[9][25] + coeff0_10*dmats2[10][25] + coeff0_11*dmats2[11][25] + coeff0_12*dmats2[12][25] + coeff0_13*dmats2[13][25] + coeff0_14*dmats2[14][25] + coeff0_15*dmats2[15][25] + coeff0_16*dmats2[16][25] + coeff0_17*dmats2[17][25] + coeff0_18*dmats2[18][25] + coeff0_19*dmats2[19][25] + coeff0_20*dmats2[20][25] + coeff0_21*dmats2[21][25] + coeff0_22*dmats2[22][25] + coeff0_23*dmats2[23][25] + coeff0_24*dmats2[24][25] + coeff0_25*dmats2[25][25] + coeff0_26*dmats2[26][25] + coeff0_27*dmats2[27][25] + coeff0_28*dmats2[28][25] + coeff0_29*dmats2[29][25] + coeff0_30*dmats2[30][25] + coeff0_31*dmats2[31][25] + coeff0_32*dmats2[32][25] + coeff0_33*dmats2[33][25] + coeff0_34*dmats2[34][25];
 
5328
          new_coeff0_26 = coeff0_0*dmats2[0][26] + coeff0_1*dmats2[1][26] + coeff0_2*dmats2[2][26] + coeff0_3*dmats2[3][26] + coeff0_4*dmats2[4][26] + coeff0_5*dmats2[5][26] + coeff0_6*dmats2[6][26] + coeff0_7*dmats2[7][26] + coeff0_8*dmats2[8][26] + coeff0_9*dmats2[9][26] + coeff0_10*dmats2[10][26] + coeff0_11*dmats2[11][26] + coeff0_12*dmats2[12][26] + coeff0_13*dmats2[13][26] + coeff0_14*dmats2[14][26] + coeff0_15*dmats2[15][26] + coeff0_16*dmats2[16][26] + coeff0_17*dmats2[17][26] + coeff0_18*dmats2[18][26] + coeff0_19*dmats2[19][26] + coeff0_20*dmats2[20][26] + coeff0_21*dmats2[21][26] + coeff0_22*dmats2[22][26] + coeff0_23*dmats2[23][26] + coeff0_24*dmats2[24][26] + coeff0_25*dmats2[25][26] + coeff0_26*dmats2[26][26] + coeff0_27*dmats2[27][26] + coeff0_28*dmats2[28][26] + coeff0_29*dmats2[29][26] + coeff0_30*dmats2[30][26] + coeff0_31*dmats2[31][26] + coeff0_32*dmats2[32][26] + coeff0_33*dmats2[33][26] + coeff0_34*dmats2[34][26];
 
5329
          new_coeff0_27 = coeff0_0*dmats2[0][27] + coeff0_1*dmats2[1][27] + coeff0_2*dmats2[2][27] + coeff0_3*dmats2[3][27] + coeff0_4*dmats2[4][27] + coeff0_5*dmats2[5][27] + coeff0_6*dmats2[6][27] + coeff0_7*dmats2[7][27] + coeff0_8*dmats2[8][27] + coeff0_9*dmats2[9][27] + coeff0_10*dmats2[10][27] + coeff0_11*dmats2[11][27] + coeff0_12*dmats2[12][27] + coeff0_13*dmats2[13][27] + coeff0_14*dmats2[14][27] + coeff0_15*dmats2[15][27] + coeff0_16*dmats2[16][27] + coeff0_17*dmats2[17][27] + coeff0_18*dmats2[18][27] + coeff0_19*dmats2[19][27] + coeff0_20*dmats2[20][27] + coeff0_21*dmats2[21][27] + coeff0_22*dmats2[22][27] + coeff0_23*dmats2[23][27] + coeff0_24*dmats2[24][27] + coeff0_25*dmats2[25][27] + coeff0_26*dmats2[26][27] + coeff0_27*dmats2[27][27] + coeff0_28*dmats2[28][27] + coeff0_29*dmats2[29][27] + coeff0_30*dmats2[30][27] + coeff0_31*dmats2[31][27] + coeff0_32*dmats2[32][27] + coeff0_33*dmats2[33][27] + coeff0_34*dmats2[34][27];
 
5330
          new_coeff0_28 = coeff0_0*dmats2[0][28] + coeff0_1*dmats2[1][28] + coeff0_2*dmats2[2][28] + coeff0_3*dmats2[3][28] + coeff0_4*dmats2[4][28] + coeff0_5*dmats2[5][28] + coeff0_6*dmats2[6][28] + coeff0_7*dmats2[7][28] + coeff0_8*dmats2[8][28] + coeff0_9*dmats2[9][28] + coeff0_10*dmats2[10][28] + coeff0_11*dmats2[11][28] + coeff0_12*dmats2[12][28] + coeff0_13*dmats2[13][28] + coeff0_14*dmats2[14][28] + coeff0_15*dmats2[15][28] + coeff0_16*dmats2[16][28] + coeff0_17*dmats2[17][28] + coeff0_18*dmats2[18][28] + coeff0_19*dmats2[19][28] + coeff0_20*dmats2[20][28] + coeff0_21*dmats2[21][28] + coeff0_22*dmats2[22][28] + coeff0_23*dmats2[23][28] + coeff0_24*dmats2[24][28] + coeff0_25*dmats2[25][28] + coeff0_26*dmats2[26][28] + coeff0_27*dmats2[27][28] + coeff0_28*dmats2[28][28] + coeff0_29*dmats2[29][28] + coeff0_30*dmats2[30][28] + coeff0_31*dmats2[31][28] + coeff0_32*dmats2[32][28] + coeff0_33*dmats2[33][28] + coeff0_34*dmats2[34][28];
 
5331
          new_coeff0_29 = coeff0_0*dmats2[0][29] + coeff0_1*dmats2[1][29] + coeff0_2*dmats2[2][29] + coeff0_3*dmats2[3][29] + coeff0_4*dmats2[4][29] + coeff0_5*dmats2[5][29] + coeff0_6*dmats2[6][29] + coeff0_7*dmats2[7][29] + coeff0_8*dmats2[8][29] + coeff0_9*dmats2[9][29] + coeff0_10*dmats2[10][29] + coeff0_11*dmats2[11][29] + coeff0_12*dmats2[12][29] + coeff0_13*dmats2[13][29] + coeff0_14*dmats2[14][29] + coeff0_15*dmats2[15][29] + coeff0_16*dmats2[16][29] + coeff0_17*dmats2[17][29] + coeff0_18*dmats2[18][29] + coeff0_19*dmats2[19][29] + coeff0_20*dmats2[20][29] + coeff0_21*dmats2[21][29] + coeff0_22*dmats2[22][29] + coeff0_23*dmats2[23][29] + coeff0_24*dmats2[24][29] + coeff0_25*dmats2[25][29] + coeff0_26*dmats2[26][29] + coeff0_27*dmats2[27][29] + coeff0_28*dmats2[28][29] + coeff0_29*dmats2[29][29] + coeff0_30*dmats2[30][29] + coeff0_31*dmats2[31][29] + coeff0_32*dmats2[32][29] + coeff0_33*dmats2[33][29] + coeff0_34*dmats2[34][29];
 
5332
          new_coeff0_30 = coeff0_0*dmats2[0][30] + coeff0_1*dmats2[1][30] + coeff0_2*dmats2[2][30] + coeff0_3*dmats2[3][30] + coeff0_4*dmats2[4][30] + coeff0_5*dmats2[5][30] + coeff0_6*dmats2[6][30] + coeff0_7*dmats2[7][30] + coeff0_8*dmats2[8][30] + coeff0_9*dmats2[9][30] + coeff0_10*dmats2[10][30] + coeff0_11*dmats2[11][30] + coeff0_12*dmats2[12][30] + coeff0_13*dmats2[13][30] + coeff0_14*dmats2[14][30] + coeff0_15*dmats2[15][30] + coeff0_16*dmats2[16][30] + coeff0_17*dmats2[17][30] + coeff0_18*dmats2[18][30] + coeff0_19*dmats2[19][30] + coeff0_20*dmats2[20][30] + coeff0_21*dmats2[21][30] + coeff0_22*dmats2[22][30] + coeff0_23*dmats2[23][30] + coeff0_24*dmats2[24][30] + coeff0_25*dmats2[25][30] + coeff0_26*dmats2[26][30] + coeff0_27*dmats2[27][30] + coeff0_28*dmats2[28][30] + coeff0_29*dmats2[29][30] + coeff0_30*dmats2[30][30] + coeff0_31*dmats2[31][30] + coeff0_32*dmats2[32][30] + coeff0_33*dmats2[33][30] + coeff0_34*dmats2[34][30];
 
5333
          new_coeff0_31 = coeff0_0*dmats2[0][31] + coeff0_1*dmats2[1][31] + coeff0_2*dmats2[2][31] + coeff0_3*dmats2[3][31] + coeff0_4*dmats2[4][31] + coeff0_5*dmats2[5][31] + coeff0_6*dmats2[6][31] + coeff0_7*dmats2[7][31] + coeff0_8*dmats2[8][31] + coeff0_9*dmats2[9][31] + coeff0_10*dmats2[10][31] + coeff0_11*dmats2[11][31] + coeff0_12*dmats2[12][31] + coeff0_13*dmats2[13][31] + coeff0_14*dmats2[14][31] + coeff0_15*dmats2[15][31] + coeff0_16*dmats2[16][31] + coeff0_17*dmats2[17][31] + coeff0_18*dmats2[18][31] + coeff0_19*dmats2[19][31] + coeff0_20*dmats2[20][31] + coeff0_21*dmats2[21][31] + coeff0_22*dmats2[22][31] + coeff0_23*dmats2[23][31] + coeff0_24*dmats2[24][31] + coeff0_25*dmats2[25][31] + coeff0_26*dmats2[26][31] + coeff0_27*dmats2[27][31] + coeff0_28*dmats2[28][31] + coeff0_29*dmats2[29][31] + coeff0_30*dmats2[30][31] + coeff0_31*dmats2[31][31] + coeff0_32*dmats2[32][31] + coeff0_33*dmats2[33][31] + coeff0_34*dmats2[34][31];
 
5334
          new_coeff0_32 = coeff0_0*dmats2[0][32] + coeff0_1*dmats2[1][32] + coeff0_2*dmats2[2][32] + coeff0_3*dmats2[3][32] + coeff0_4*dmats2[4][32] + coeff0_5*dmats2[5][32] + coeff0_6*dmats2[6][32] + coeff0_7*dmats2[7][32] + coeff0_8*dmats2[8][32] + coeff0_9*dmats2[9][32] + coeff0_10*dmats2[10][32] + coeff0_11*dmats2[11][32] + coeff0_12*dmats2[12][32] + coeff0_13*dmats2[13][32] + coeff0_14*dmats2[14][32] + coeff0_15*dmats2[15][32] + coeff0_16*dmats2[16][32] + coeff0_17*dmats2[17][32] + coeff0_18*dmats2[18][32] + coeff0_19*dmats2[19][32] + coeff0_20*dmats2[20][32] + coeff0_21*dmats2[21][32] + coeff0_22*dmats2[22][32] + coeff0_23*dmats2[23][32] + coeff0_24*dmats2[24][32] + coeff0_25*dmats2[25][32] + coeff0_26*dmats2[26][32] + coeff0_27*dmats2[27][32] + coeff0_28*dmats2[28][32] + coeff0_29*dmats2[29][32] + coeff0_30*dmats2[30][32] + coeff0_31*dmats2[31][32] + coeff0_32*dmats2[32][32] + coeff0_33*dmats2[33][32] + coeff0_34*dmats2[34][32];
 
5335
          new_coeff0_33 = coeff0_0*dmats2[0][33] + coeff0_1*dmats2[1][33] + coeff0_2*dmats2[2][33] + coeff0_3*dmats2[3][33] + coeff0_4*dmats2[4][33] + coeff0_5*dmats2[5][33] + coeff0_6*dmats2[6][33] + coeff0_7*dmats2[7][33] + coeff0_8*dmats2[8][33] + coeff0_9*dmats2[9][33] + coeff0_10*dmats2[10][33] + coeff0_11*dmats2[11][33] + coeff0_12*dmats2[12][33] + coeff0_13*dmats2[13][33] + coeff0_14*dmats2[14][33] + coeff0_15*dmats2[15][33] + coeff0_16*dmats2[16][33] + coeff0_17*dmats2[17][33] + coeff0_18*dmats2[18][33] + coeff0_19*dmats2[19][33] + coeff0_20*dmats2[20][33] + coeff0_21*dmats2[21][33] + coeff0_22*dmats2[22][33] + coeff0_23*dmats2[23][33] + coeff0_24*dmats2[24][33] + coeff0_25*dmats2[25][33] + coeff0_26*dmats2[26][33] + coeff0_27*dmats2[27][33] + coeff0_28*dmats2[28][33] + coeff0_29*dmats2[29][33] + coeff0_30*dmats2[30][33] + coeff0_31*dmats2[31][33] + coeff0_32*dmats2[32][33] + coeff0_33*dmats2[33][33] + coeff0_34*dmats2[34][33];
 
5336
          new_coeff0_34 = coeff0_0*dmats2[0][34] + coeff0_1*dmats2[1][34] + coeff0_2*dmats2[2][34] + coeff0_3*dmats2[3][34] + coeff0_4*dmats2[4][34] + coeff0_5*dmats2[5][34] + coeff0_6*dmats2[6][34] + coeff0_7*dmats2[7][34] + coeff0_8*dmats2[8][34] + coeff0_9*dmats2[9][34] + coeff0_10*dmats2[10][34] + coeff0_11*dmats2[11][34] + coeff0_12*dmats2[12][34] + coeff0_13*dmats2[13][34] + coeff0_14*dmats2[14][34] + coeff0_15*dmats2[15][34] + coeff0_16*dmats2[16][34] + coeff0_17*dmats2[17][34] + coeff0_18*dmats2[18][34] + coeff0_19*dmats2[19][34] + coeff0_20*dmats2[20][34] + coeff0_21*dmats2[21][34] + coeff0_22*dmats2[22][34] + coeff0_23*dmats2[23][34] + coeff0_24*dmats2[24][34] + coeff0_25*dmats2[25][34] + coeff0_26*dmats2[26][34] + coeff0_27*dmats2[27][34] + coeff0_28*dmats2[28][34] + coeff0_29*dmats2[29][34] + coeff0_30*dmats2[30][34] + coeff0_31*dmats2[31][34] + coeff0_32*dmats2[32][34] + coeff0_33*dmats2[33][34] + coeff0_34*dmats2[34][34];
 
5337
        }
 
5338
    
 
5339
      }
 
5340
      // Compute derivatives on reference element as dot product of coefficients and basisvalues
 
5341
      derivatives[deriv_num] = new_coeff0_0*basisvalue0 + new_coeff0_1*basisvalue1 + new_coeff0_2*basisvalue2 + new_coeff0_3*basisvalue3 + new_coeff0_4*basisvalue4 + new_coeff0_5*basisvalue5 + new_coeff0_6*basisvalue6 + new_coeff0_7*basisvalue7 + new_coeff0_8*basisvalue8 + new_coeff0_9*basisvalue9 + new_coeff0_10*basisvalue10 + new_coeff0_11*basisvalue11 + new_coeff0_12*basisvalue12 + new_coeff0_13*basisvalue13 + new_coeff0_14*basisvalue14 + new_coeff0_15*basisvalue15 + new_coeff0_16*basisvalue16 + new_coeff0_17*basisvalue17 + new_coeff0_18*basisvalue18 + new_coeff0_19*basisvalue19 + new_coeff0_20*basisvalue20 + new_coeff0_21*basisvalue21 + new_coeff0_22*basisvalue22 + new_coeff0_23*basisvalue23 + new_coeff0_24*basisvalue24 + new_coeff0_25*basisvalue25 + new_coeff0_26*basisvalue26 + new_coeff0_27*basisvalue27 + new_coeff0_28*basisvalue28 + new_coeff0_29*basisvalue29 + new_coeff0_30*basisvalue30 + new_coeff0_31*basisvalue31 + new_coeff0_32*basisvalue32 + new_coeff0_33*basisvalue33 + new_coeff0_34*basisvalue34;
 
5342
    }
 
5343
    
 
5344
    // Transform derivatives back to physical element
 
5345
    for (unsigned int row = 0; row < num_derivatives; row++)
 
5346
    {
 
5347
      for (unsigned int col = 0; col < num_derivatives; col++)
 
5348
      {
 
5349
        values[row] += transform[row][col]*derivatives[col];
 
5350
      }
 
5351
    }
 
5352
    // Delete pointer to array of derivatives on FIAT element
 
5353
    delete [] derivatives;
 
5354
    
 
5355
    // Delete pointer to array of combinations of derivatives and transform
 
5356
    for (unsigned int row = 0; row < num_derivatives; row++)
 
5357
    {
 
5358
      delete [] combinations[row];
 
5359
      delete [] transform[row];
 
5360
    }
 
5361
    
 
5362
    delete [] combinations;
 
5363
    delete [] transform;
 
5364
  }
 
5365
 
 
5366
  /// Evaluate order n derivatives of all basis functions at given point in cell
 
5367
  virtual void evaluate_basis_derivatives_all(unsigned int n,
 
5368
                                              double* values,
 
5369
                                              const double* coordinates,
 
5370
                                              const ufc::cell& c) const
 
5371
  {
 
5372
    throw std::runtime_error("The vectorised version of evaluate_basis_derivatives() is not yet implemented.");
 
5373
  }
 
5374
 
 
5375
  /// Evaluate linear functional for dof i on the function f
 
5376
  virtual double evaluate_dof(unsigned int i,
 
5377
                              const ufc::function& f,
 
5378
                              const ufc::cell& c) const
 
5379
  {
 
5380
    // The reference points, direction and weights:
 
5381
    const static double X[35][1][3] = {{{0, 0, 0}}, {{1, 0, 0}}, {{0, 1, 0}}, {{0, 0, 1}}, {{0, 0.75, 0.25}}, {{0, 0.5, 0.5}}, {{0, 0.25, 0.75}}, {{0.75, 0, 0.25}}, {{0.5, 0, 0.5}}, {{0.25, 0, 0.75}}, {{0.75, 0.25, 0}}, {{0.5, 0.5, 0}}, {{0.25, 0.75, 0}}, {{0, 0, 0.25}}, {{0, 0, 0.5}}, {{0, 0, 0.75}}, {{0, 0.25, 0}}, {{0, 0.5, 0}}, {{0, 0.75, 0}}, {{0.25, 0, 0}}, {{0.5, 0, 0}}, {{0.75, 0, 0}}, {{0.5, 0.25, 0.25}}, {{0.25, 0.5, 0.25}}, {{0.25, 0.25, 0.5}}, {{0, 0.25, 0.25}}, {{0, 0.5, 0.25}}, {{0, 0.25, 0.5}}, {{0.25, 0, 0.25}}, {{0.5, 0, 0.25}}, {{0.25, 0, 0.5}}, {{0.25, 0.25, 0}}, {{0.5, 0.25, 0}}, {{0.25, 0.5, 0}}, {{0.25, 0.25, 0.25}}};
 
5382
    const static double W[35][1] = {{1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}};
 
5383
    const static double D[35][1][1] = {{{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}};
 
5384
    
 
5385
    const double * const * x = c.coordinates;
 
5386
    double result = 0.0;
 
5387
    // Iterate over the points:
 
5388
    // Evaluate basis functions for affine mapping
 
5389
    const double w0 = 1.0 - X[i][0][0] - X[i][0][1] - X[i][0][2];
 
5390
    const double w1 = X[i][0][0];
 
5391
    const double w2 = X[i][0][1];
 
5392
    const double w3 = X[i][0][2];
 
5393
    
 
5394
    // Compute affine mapping y = F(X)
 
5395
    double y[3];
 
5396
    y[0] = w0*x[0][0] + w1*x[1][0] + w2*x[2][0] + w3*x[3][0];
 
5397
    y[1] = w0*x[0][1] + w1*x[1][1] + w2*x[2][1] + w3*x[3][1];
 
5398
    y[2] = w0*x[0][2] + w1*x[1][2] + w2*x[2][2] + w3*x[3][2];
 
5399
    
 
5400
    // Evaluate function at physical points
 
5401
    double values[1];
 
5402
    f.evaluate(values, y, c);
 
5403
    
 
5404
    // Map function values using appropriate mapping
 
5405
    // Affine map: Do nothing
 
5406
    
 
5407
    // Note that we do not map the weights (yet).
 
5408
    
 
5409
    // Take directional components
 
5410
    for(int k = 0; k < 1; k++)
 
5411
      result += values[k]*D[i][0][k];
 
5412
    // Multiply by weights 
 
5413
    result *= W[i][0];
 
5414
    
 
5415
    return result;
 
5416
  }
 
5417
 
 
5418
  /// Evaluate linear functionals for all dofs on the function f
 
5419
  virtual void evaluate_dofs(double* values,
 
5420
                             const ufc::function& f,
 
5421
                             const ufc::cell& c) const
 
5422
  {
 
5423
    throw std::runtime_error("Not implemented (introduced in UFC v1.1).");
 
5424
  }
 
5425
 
 
5426
  /// Interpolate vertex values from dof values
 
5427
  virtual void interpolate_vertex_values(double* vertex_values,
 
5428
                                         const double* dof_values,
 
5429
                                         const ufc::cell& c) const
 
5430
  {
 
5431
    // Evaluate at vertices and use affine mapping
 
5432
    vertex_values[0] = dof_values[0];
 
5433
    vertex_values[1] = dof_values[1];
 
5434
    vertex_values[2] = dof_values[2];
 
5435
    vertex_values[3] = dof_values[3];
 
5436
  }
 
5437
 
 
5438
  /// Return the number of sub elements (for a mixed element)
 
5439
  virtual unsigned int num_sub_elements() const
 
5440
  {
 
5441
    return 1;
 
5442
  }
 
5443
 
 
5444
  /// Create a new finite element for sub element i (for a mixed element)
 
5445
  virtual ufc::finite_element* create_sub_element(unsigned int i) const
 
5446
  {
 
5447
    return new UFC_Poisson3D_4LinearForm_finite_element_0();
 
5448
  }
 
5449
 
 
5450
};
 
5451
 
 
5452
/// This class defines the interface for a finite element.
 
5453
 
 
5454
class UFC_Poisson3D_4LinearForm_finite_element_1: public ufc::finite_element
 
5455
{
 
5456
public:
 
5457
 
 
5458
  /// Constructor
 
5459
  UFC_Poisson3D_4LinearForm_finite_element_1() : ufc::finite_element()
 
5460
  {
 
5461
    // Do nothing
 
5462
  }
 
5463
 
 
5464
  /// Destructor
 
5465
  virtual ~UFC_Poisson3D_4LinearForm_finite_element_1()
 
5466
  {
 
5467
    // Do nothing
 
5468
  }
 
5469
 
 
5470
  /// Return a string identifying the finite element
 
5471
  virtual const char* signature() const
 
5472
  {
 
5473
    return "FiniteElement('Lagrange', 'tetrahedron', 4)";
 
5474
  }
 
5475
 
 
5476
  /// Return the cell shape
 
5477
  virtual ufc::shape cell_shape() const
 
5478
  {
 
5479
    return ufc::tetrahedron;
 
5480
  }
 
5481
 
 
5482
  /// Return the dimension of the finite element function space
 
5483
  virtual unsigned int space_dimension() const
 
5484
  {
 
5485
    return 35;
 
5486
  }
 
5487
 
 
5488
  /// Return the rank of the value space
 
5489
  virtual unsigned int value_rank() const
 
5490
  {
 
5491
    return 0;
 
5492
  }
 
5493
 
 
5494
  /// Return the dimension of the value space for axis i
 
5495
  virtual unsigned int value_dimension(unsigned int i) const
 
5496
  {
 
5497
    return 1;
 
5498
  }
 
5499
 
 
5500
  /// Evaluate basis function i at given point in cell
 
5501
  virtual void evaluate_basis(unsigned int i,
 
5502
                              double* values,
 
5503
                              const double* coordinates,
 
5504
                              const ufc::cell& c) const
 
5505
  {
 
5506
    // Extract vertex coordinates
 
5507
    const double * const * element_coordinates = c.coordinates;
 
5508
    
 
5509
    // Compute Jacobian of affine map from reference cell
 
5510
    const double J_00 = element_coordinates[1][0] - element_coordinates[0][0];
 
5511
    const double J_01 = element_coordinates[2][0] - element_coordinates[0][0];
 
5512
    const double J_02 = element_coordinates[3][0] - element_coordinates[0][0];
 
5513
    const double J_10 = element_coordinates[1][1] - element_coordinates[0][1];
 
5514
    const double J_11 = element_coordinates[2][1] - element_coordinates[0][1];
 
5515
    const double J_12 = element_coordinates[3][1] - element_coordinates[0][1];
 
5516
    const double J_20 = element_coordinates[1][2] - element_coordinates[0][2];
 
5517
    const double J_21 = element_coordinates[2][2] - element_coordinates[0][2];
 
5518
    const double J_22 = element_coordinates[3][2] - element_coordinates[0][2];
 
5519
      
 
5520
    // Compute sub determinants
 
5521
    const double d00 = J_11*J_22 - J_12*J_21;
 
5522
    const double d01 = J_12*J_20 - J_10*J_22;
 
5523
    const double d02 = J_10*J_21 - J_11*J_20;
 
5524
    
 
5525
    const double d10 = J_02*J_21 - J_01*J_22;
 
5526
    const double d11 = J_00*J_22 - J_02*J_20;
 
5527
    const double d12 = J_01*J_20 - J_00*J_21;
 
5528
    
 
5529
    const double d20 = J_01*J_12 - J_02*J_11;
 
5530
    const double d21 = J_02*J_10 - J_00*J_12;
 
5531
    const double d22 = J_00*J_11 - J_01*J_10;
 
5532
      
 
5533
    // Compute determinant of Jacobian
 
5534
    double detJ = J_00*d00 + J_10*d10 + J_20*d20;
 
5535
    
 
5536
    // Compute inverse of Jacobian
 
5537
    
 
5538
    // Compute constants
 
5539
    const double C0 = d00*(element_coordinates[0][0] - element_coordinates[2][0] - element_coordinates[3][0]) \
 
5540
                    + d10*(element_coordinates[0][1] - element_coordinates[2][1] - element_coordinates[3][1]) \
 
5541
                    + d20*(element_coordinates[0][2] - element_coordinates[2][2] - element_coordinates[3][2]);
 
5542
    
 
5543
    const double C1 = d01*(element_coordinates[0][0] - element_coordinates[1][0] - element_coordinates[3][0]) \
 
5544
                    + d11*(element_coordinates[0][1] - element_coordinates[1][1] - element_coordinates[3][1]) \
 
5545
                    + d21*(element_coordinates[0][2] - element_coordinates[1][2] - element_coordinates[3][2]);
 
5546
    
 
5547
    const double C2 = d02*(element_coordinates[0][0] - element_coordinates[1][0] - element_coordinates[2][0]) \
 
5548
                    + d12*(element_coordinates[0][1] - element_coordinates[1][1] - element_coordinates[2][1]) \
 
5549
                    + d22*(element_coordinates[0][2] - element_coordinates[1][2] - element_coordinates[2][2]);
 
5550
    
 
5551
    // Get coordinates and map to the UFC reference element
 
5552
    double x = (C0 + d00*coordinates[0] + d10*coordinates[1] + d20*coordinates[2]) / detJ;
 
5553
    double y = (C1 + d01*coordinates[0] + d11*coordinates[1] + d21*coordinates[2]) / detJ;
 
5554
    double z = (C2 + d02*coordinates[0] + d12*coordinates[1] + d22*coordinates[2]) / detJ;
 
5555
    
 
5556
    // Map coordinates to the reference cube
 
5557
    if (std::abs(y + z - 1.0) < 1e-14)
 
5558
      x = 1.0;
 
5559
    else
 
5560
      x = -2.0 * x/(y + z - 1.0) - 1.0;
 
5561
    if (std::abs(z - 1.0) < 1e-14)
 
5562
      y = -1.0;
 
5563
    else
 
5564
      y = 2.0 * y/(1.0 - z) - 1.0;
 
5565
    z = 2.0 * z - 1.0;
 
5566
    
 
5567
    // Reset values
 
5568
    *values = 0;
 
5569
    
 
5570
    // Map degree of freedom to element degree of freedom
 
5571
    const unsigned int dof = i;
 
5572
    
 
5573
    // Generate scalings
 
5574
    const double scalings_y_0 = 1;
 
5575
    const double scalings_y_1 = scalings_y_0*(0.5 - 0.5*y);
 
5576
    const double scalings_y_2 = scalings_y_1*(0.5 - 0.5*y);
 
5577
    const double scalings_y_3 = scalings_y_2*(0.5 - 0.5*y);
 
5578
    const double scalings_y_4 = scalings_y_3*(0.5 - 0.5*y);
 
5579
    const double scalings_z_0 = 1;
 
5580
    const double scalings_z_1 = scalings_z_0*(0.5 - 0.5*z);
 
5581
    const double scalings_z_2 = scalings_z_1*(0.5 - 0.5*z);
 
5582
    const double scalings_z_3 = scalings_z_2*(0.5 - 0.5*z);
 
5583
    const double scalings_z_4 = scalings_z_3*(0.5 - 0.5*z);
 
5584
    
 
5585
    // Compute psitilde_a
 
5586
    const double psitilde_a_0 = 1;
 
5587
    const double psitilde_a_1 = x;
 
5588
    const double psitilde_a_2 = 1.5*x*psitilde_a_1 - 0.5*psitilde_a_0;
 
5589
    const double psitilde_a_3 = 1.66666666666667*x*psitilde_a_2 - 0.666666666666667*psitilde_a_1;
 
5590
    const double psitilde_a_4 = 1.75*x*psitilde_a_3 - 0.75*psitilde_a_2;
 
5591
    
 
5592
    // Compute psitilde_bs
 
5593
    const double psitilde_bs_0_0 = 1;
 
5594
    const double psitilde_bs_0_1 = 1.5*y + 0.5;
 
5595
    const double psitilde_bs_0_2 = 0.111111111111111*psitilde_bs_0_1 + 1.66666666666667*y*psitilde_bs_0_1 - 0.555555555555556*psitilde_bs_0_0;
 
5596
    const double psitilde_bs_0_3 = 0.05*psitilde_bs_0_2 + 1.75*y*psitilde_bs_0_2 - 0.7*psitilde_bs_0_1;
 
5597
    const double psitilde_bs_0_4 = 0.0285714285714286*psitilde_bs_0_3 + 1.8*y*psitilde_bs_0_3 - 0.771428571428571*psitilde_bs_0_2;
 
5598
    const double psitilde_bs_1_0 = 1;
 
5599
    const double psitilde_bs_1_1 = 2.5*y + 1.5;
 
5600
    const double psitilde_bs_1_2 = 0.54*psitilde_bs_1_1 + 2.1*y*psitilde_bs_1_1 - 0.56*psitilde_bs_1_0;
 
5601
    const double psitilde_bs_1_3 = 0.285714285714286*psitilde_bs_1_2 + 2*y*psitilde_bs_1_2 - 0.714285714285714*psitilde_bs_1_1;
 
5602
    const double psitilde_bs_2_0 = 1;
 
5603
    const double psitilde_bs_2_1 = 3.5*y + 2.5;
 
5604
    const double psitilde_bs_2_2 = 1.02040816326531*psitilde_bs_2_1 + 2.57142857142857*y*psitilde_bs_2_1 - 0.551020408163265*psitilde_bs_2_0;
 
5605
    const double psitilde_bs_3_0 = 1;
 
5606
    const double psitilde_bs_3_1 = 4.5*y + 3.5;
 
5607
    const double psitilde_bs_4_0 = 1;
 
5608
    
 
5609
    // Compute psitilde_cs
 
5610
    const double psitilde_cs_00_0 = 1;
 
5611
    const double psitilde_cs_00_1 = 2*z + 1;
 
5612
    const double psitilde_cs_00_2 = 0.3125*psitilde_cs_00_1 + 1.875*z*psitilde_cs_00_1 - 0.5625*psitilde_cs_00_0;
 
5613
    const double psitilde_cs_00_3 = 0.155555555555556*psitilde_cs_00_2 + 1.86666666666667*z*psitilde_cs_00_2 - 0.711111111111111*psitilde_cs_00_1;
 
5614
    const double psitilde_cs_00_4 = 0.09375*psitilde_cs_00_3 + 1.875*z*psitilde_cs_00_3 - 0.78125*psitilde_cs_00_2;
 
5615
    const double psitilde_cs_01_0 = 1;
 
5616
    const double psitilde_cs_01_1 = 3*z + 2;
 
5617
    const double psitilde_cs_01_2 = 0.777777777777778*psitilde_cs_01_1 + 2.33333333333333*z*psitilde_cs_01_1 - 0.555555555555556*psitilde_cs_01_0;
 
5618
    const double psitilde_cs_01_3 = 0.428571428571429*psitilde_cs_01_2 + 2.14285714285714*z*psitilde_cs_01_2 - 0.714285714285714*psitilde_cs_01_1;
 
5619
    const double psitilde_cs_02_0 = 1;
 
5620
    const double psitilde_cs_02_1 = 4*z + 3;
 
5621
    const double psitilde_cs_02_2 = 1.265625*psitilde_cs_02_1 + 2.8125*z*psitilde_cs_02_1 - 0.546875*psitilde_cs_02_0;
 
5622
    const double psitilde_cs_03_0 = 1;
 
5623
    const double psitilde_cs_03_1 = 5*z + 4;
 
5624
    const double psitilde_cs_04_0 = 1;
 
5625
    const double psitilde_cs_10_0 = 1;
 
5626
    const double psitilde_cs_10_1 = 3*z + 2;
 
5627
    const double psitilde_cs_10_2 = 0.777777777777778*psitilde_cs_10_1 + 2.33333333333333*z*psitilde_cs_10_1 - 0.555555555555556*psitilde_cs_10_0;
 
5628
    const double psitilde_cs_10_3 = 0.428571428571429*psitilde_cs_10_2 + 2.14285714285714*z*psitilde_cs_10_2 - 0.714285714285714*psitilde_cs_10_1;
 
5629
    const double psitilde_cs_11_0 = 1;
 
5630
    const double psitilde_cs_11_1 = 4*z + 3;
 
5631
    const double psitilde_cs_11_2 = 1.265625*psitilde_cs_11_1 + 2.8125*z*psitilde_cs_11_1 - 0.546875*psitilde_cs_11_0;
 
5632
    const double psitilde_cs_12_0 = 1;
 
5633
    const double psitilde_cs_12_1 = 5*z + 4;
 
5634
    const double psitilde_cs_13_0 = 1;
 
5635
    const double psitilde_cs_20_0 = 1;
 
5636
    const double psitilde_cs_20_1 = 4*z + 3;
 
5637
    const double psitilde_cs_20_2 = 1.265625*psitilde_cs_20_1 + 2.8125*z*psitilde_cs_20_1 - 0.546875*psitilde_cs_20_0;
 
5638
    const double psitilde_cs_21_0 = 1;
 
5639
    const double psitilde_cs_21_1 = 5*z + 4;
 
5640
    const double psitilde_cs_22_0 = 1;
 
5641
    const double psitilde_cs_30_0 = 1;
 
5642
    const double psitilde_cs_30_1 = 5*z + 4;
 
5643
    const double psitilde_cs_31_0 = 1;
 
5644
    const double psitilde_cs_40_0 = 1;
 
5645
    
 
5646
    // Compute basisvalues
 
5647
    const double basisvalue0 = 0.866025403784439*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_0;
 
5648
    const double basisvalue1 = 2.73861278752583*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_0;
 
5649
    const double basisvalue2 = 1.58113883008419*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_0;
 
5650
    const double basisvalue3 = 1.11803398874989*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_1;
 
5651
    const double basisvalue4 = 5.1234753829798*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_0;
 
5652
    const double basisvalue5 = 3.96862696659689*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_0;
 
5653
    const double basisvalue6 = 2.29128784747792*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_0;
 
5654
    const double basisvalue7 = 3.24037034920393*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_1;
 
5655
    const double basisvalue8 = 1.87082869338697*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_1;
 
5656
    const double basisvalue9 = 1.3228756555323*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_2;
 
5657
    const double basisvalue10 = 7.93725393319377*psitilde_a_3*scalings_y_3*psitilde_bs_3_0*scalings_z_3*psitilde_cs_30_0;
 
5658
    const double basisvalue11 = 6.70820393249937*psitilde_a_2*scalings_y_2*psitilde_bs_2_1*scalings_z_3*psitilde_cs_21_0;
 
5659
    const double basisvalue12 = 5.19615242270663*psitilde_a_1*scalings_y_1*psitilde_bs_1_2*scalings_z_3*psitilde_cs_12_0;
 
5660
    const double basisvalue13 = 3*psitilde_a_0*scalings_y_0*psitilde_bs_0_3*scalings_z_3*psitilde_cs_03_0;
 
5661
    const double basisvalue14 = 5.80947501931113*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_1;
 
5662
    const double basisvalue15 = 4.5*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_1;
 
5663
    const double basisvalue16 = 2.59807621135332*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_1;
 
5664
    const double basisvalue17 = 3.67423461417477*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_2;
 
5665
    const double basisvalue18 = 2.12132034355964*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_2;
 
5666
    const double basisvalue19 = 1.5*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_3;
 
5667
    const double basisvalue20 = 11.1242977306435*psitilde_a_4*scalings_y_4*psitilde_bs_4_0*scalings_z_4*psitilde_cs_40_0;
 
5668
    const double basisvalue21 = 9.81070843517429*psitilde_a_3*scalings_y_3*psitilde_bs_3_1*scalings_z_4*psitilde_cs_31_0;
 
5669
    const double basisvalue22 = 8.2915619758885*psitilde_a_2*scalings_y_2*psitilde_bs_2_2*scalings_z_4*psitilde_cs_22_0;
 
5670
    const double basisvalue23 = 6.42261628933256*psitilde_a_1*scalings_y_1*psitilde_bs_1_3*scalings_z_4*psitilde_cs_13_0;
 
5671
    const double basisvalue24 = 3.70809924354783*psitilde_a_0*scalings_y_0*psitilde_bs_0_4*scalings_z_4*psitilde_cs_04_0;
 
5672
    const double basisvalue25 = 8.77496438739212*psitilde_a_3*scalings_y_3*psitilde_bs_3_0*scalings_z_3*psitilde_cs_30_1;
 
5673
    const double basisvalue26 = 7.41619848709566*psitilde_a_2*scalings_y_2*psitilde_bs_2_1*scalings_z_3*psitilde_cs_21_1;
 
5674
    const double basisvalue27 = 5.74456264653803*psitilde_a_1*scalings_y_1*psitilde_bs_1_2*scalings_z_3*psitilde_cs_12_1;
 
5675
    const double basisvalue28 = 3.3166247903554*psitilde_a_0*scalings_y_0*psitilde_bs_0_3*scalings_z_3*psitilde_cs_03_1;
 
5676
    const double basisvalue29 = 6.42261628933256*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_2;
 
5677
    const double basisvalue30 = 4.9749371855331*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_2;
 
5678
    const double basisvalue31 = 2.87228132326901*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_2;
 
5679
    const double basisvalue32 = 4.06201920231798*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_3;
 
5680
    const double basisvalue33 = 2.34520787991171*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_3;
 
5681
    const double basisvalue34 = 1.6583123951777*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_4;
 
5682
    
 
5683
    // Table(s) of coefficients
 
5684
    const static double coefficients0[35][35] = \
 
5685
    {{-0.0137464349807051, -0.0144900147488139, -0.00836581391578937, -0.00591552374999941, 0, 0, 0, 0, 0, 0, -0.00671936840905293, -0.00567890279999946, -0.00439885919382571, -0.00253968253968254, -0.00491807409042211, -0.00380952380952381, -0.00219942959691287, -0.00311046316543895, -0.0017958267458706, -0.00126984126984128, 0.0136980289516341, 0.0120805260192622, 0.010209907964538, 0.00790856070259325, 0.00456600965054471, 0.0108051509532101, 0.00913201930108942, 0.00707363173407281, 0.00408396318581522, 0.00790856070259324, 0.00612594477872282, 0.0035368158670364, 0.00500181296677924, 0.00288779806280616, 0.00204198159290761},
 
5686
    {-0.0137464349807054, 0.0144900147488139, -0.00836581391578934, -0.00591552374999945, 0, 0, 0, 0, 0, 0, 0.00671936840905293, -0.00567890279999946, 0.00439885919382572, -0.00253968253968254, -0.00491807409042213, 0.00380952380952382, -0.00219942959691286, 0.00311046316543897, -0.0017958267458706, -0.00126984126984127, 0.0136980289516341, -0.0120805260192622, 0.010209907964538, -0.00790856070259325, 0.00456600965054471, -0.0108051509532101, 0.00913201930108941, -0.0070736317340728, 0.00408396318581521, 0.00790856070259325, -0.00612594477872282, 0.0035368158670364, -0.00500181296677924, 0.00288779806280615, 0.00204198159290761},
 
5687
    {-0.0137464349807053, 0, 0.0167316278315787, -0.00591552374999946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0101587301587302, 0, 0, -0.00659828879073857, 0, 0.00359165349174119, -0.00126984126984127, 0, 0, 0, 0, 0.0228300482527235, 0, 0, 0, -0.0163358527432608, 0, 0, 0.0106104476011092, 0, -0.0057755961256123, 0.00204198159290761},
 
5688
    {-0.0137464349807054, 0, 0, 0.0177465712499983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0126984126984127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0306297238936141},
 
5689
    {0.0439885919382572, 0, 0.026770604530526, 0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, 0, 0.0406349206349206, 0, 0, 0.00439885919382572, 0, -0.0143666139669648, 0.00761904761904763, 0, 0, 0, 0, 0, 0, 0, 0, 0.0367556686723369, 0, 0, -0.0424417904044368, 0, 0.0303218796594646, -0.0122518895574456},
 
5690
    {-0.0329914439536931, 0, -0.0200779533978945, -0.0141972569999986, 0, 0, -0.00969857289937744, 0, 0.0712696645099798, -0.050395263067897, 0, 0, 0, 0, 0, 0, 0.0461880215351701, 0, 0.0107749604752236, -0.0190476190476191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0495154221385096, 0, -0.0606437593189292, 0.0306297238936141},
 
5691
    {0.0439885919382573, 0, 0.0267706045305259, 0.0189296759999982, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, 0, 0.0359165349174119, 0.0253968253968254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0505364660991076, -0.0408396318581522},
 
5692
    {0.0439885919382573, 0.0231840235981023, -0.0133853022652629, 0.0189296759999982, 0.0433733365754904, -0.0335968420452647, 0.0193971457987549, -0.0274317066599275, 0.01583770322444, 0.0111989473484215, 0.0268774736362117, -0.0227156111999979, 0.0175954367753029, -0.0101587301587302, 0.00327871606028141, -0.00253968253968255, 0.0014662863979419, -0.0124418526617558, 0.00718330698348238, 0.00761904761904763, 0, 0, 0, 0, 0, 0.0243115896447228, -0.0205470434274512, 0.0159156714016638, -0.00918891716808423, -0.031634242810373, 0.0245037791148913, -0.0141472634681456, 0.026259518075591, -0.0151609398297323, -0.0122518895574456},
 
5693
    {-0.0329914439536929, -0.0173880176985766, 0.0100389766989472, -0.0141972569999986, -0.00722888942924838, 0.00559947367421081, -0.00323285763312582, 0.0617213399848368, -0.03563483225499, -0.050395263067897, 0, 0, 0, 0, 0.0344265186329548, -0.0266666666666667, 0.01539600717839, 0.00933138949631686, -0.00538748023761177, -0.0190476190476191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0369066166121018, -0.0285877423007065, 0.0165051407128365, -0.052519036151182, 0.0303218796594646, 0.0306297238936141},
 
5694
    {0.0439885919382573, 0.0231840235981023, -0.013385302265263, 0.0189296759999982, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, 0.0311046316543895, -0.017958267458706, 0.0253968253968255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0437658634593183, -0.0252682330495538, -0.0408396318581521},
 
5695
    {0.0439885919382572, 0.0231840235981023, 0.013385302265263, -0.0189296759999982, 0.0433733365754903, -0.0335968420452647, 0.0193971457987549, -0.0274317066599275, 0.01583770322444, 0.0111989473484215, 0.0268774736362117, 0, -0.0117302911835353, 0.0101587301587302, -0.0229510124219699, 0.00761904761904761, -0.00146628639794191, 0.0165891368823411, -0.0071833069834824, -0.00761904761904763, 0, 0.0241610520385245, -0.0357346778758831, 0.0355885231616696, -0.0228300482527235, -0.00270128773830253, -0.0114150241263618, 0.0159156714016638, -0.0112308987609918, 0.00395428035129663, 0.00306297238936141, -0.0035368158670364, -0.00375135972508443, 0.00072194951570154, 0.00204198159290761},
 
5696
    {-0.0329914439536929, -0.0173880176985768, -0.0100389766989472, 0.0141972569999986, -0.00722888942924839, 0.0615942104163185, -0.0614242950293904, -0.00685792666498187, -0.00395942580611001, 0.00559947367421077, 0, 0.0340734167999968, 0, -0.0152380952380952, -0.00491807409042213, -0.0266666666666667, 0.0175954367753029, 0.00933138949631688, 0.00538748023761179, -0.00761904761904761, 0, 0, 0.0357346778758831, -0.0593142052694494, 0.0456600965054471, 0, -0.00913201930108943, 0, 0.00408396318581521, 0.00131809345043221, 0.00714693557517662, -0.00471575448938186, -0.00250090648338962, -0.00144389903140307, 0.00204198159290761},
 
5697
    {0.0439885919382572, 0.0231840235981022, 0.013385302265263, -0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, 0.0293257279588382, 0.0101587301587302, 0, -0.0101587301587302, -0.0219942959691286, 0.00207364211029264, 0.017958267458706, -0.00761904761904762, 0, 0, 0, 0.0395428035129662, -0.0456600965054471, 0, 0, -0.017684079335182, 0.0142938711503532, 0, 0.00612594477872282, 0, -0.00125045324169481, -0.00360974757850769, 0.0020419815929076},
 
5698
    {0.043988591938257, -0.0231840235981023, -0.0133853022652629, 0.0189296759999983, 0.0433733365754903, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484216, -0.0268774736362117, -0.0227156111999979, -0.0175954367753029, -0.0101587301587302, 0.00327871606028139, 0.00253968253968253, 0.0014662863979419, 0.0124418526617558, 0.00718330698348236, 0.00761904761904761, 0, 0, 0, 0, 0, -0.0243115896447228, -0.0205470434274512, -0.0159156714016638, -0.00918891716808424, -0.031634242810373, -0.0245037791148913, -0.0141472634681456, -0.026259518075591, -0.0151609398297323, -0.0122518895574456},
 
5699
    {-0.0329914439536929, 0.0173880176985768, 0.0100389766989471, -0.0141972569999987, -0.00722888942924838, -0.00559947367421082, -0.00323285763312581, -0.0617213399848367, -0.03563483225499, -0.050395263067897, 0, 0, 0, 0, 0.0344265186329548, 0.0266666666666667, 0.01539600717839, -0.00933138949631689, -0.00538748023761178, -0.019047619047619, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0369066166121018, 0.0285877423007065, 0.0165051407128365, 0.0525190361511819, 0.0303218796594646, 0.0306297238936141},
 
5700
    {0.0439885919382572, -0.0231840235981023, -0.0133853022652629, 0.0189296759999981, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, -0.0311046316543896, -0.017958267458706, 0.0253968253968255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0437658634593183, -0.0252682330495538, -0.0408396318581521},
 
5701
    {0.0439885919382572, -0.0231840235981023, 0.013385302265263, -0.0189296759999982, 0.0433733365754904, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484216, -0.0268774736362117, 0, 0.0117302911835352, 0.0101587301587302, -0.0229510124219699, -0.00761904761904762, -0.00146628639794191, -0.0165891368823411, -0.00718330698348239, -0.00761904761904763, 0, -0.0241610520385245, -0.0357346778758831, -0.0355885231616696, -0.0228300482527235, 0.00270128773830254, -0.0114150241263618, -0.0159156714016638, -0.0112308987609918, 0.00395428035129662, -0.00306297238936141, -0.0035368158670364, 0.00375135972508443, 0.000721949515701533, 0.00204198159290761},
 
5702
    {-0.0329914439536929, 0.0173880176985766, -0.0100389766989472, 0.0141972569999987, -0.00722888942924841, -0.0615942104163186, -0.0614242950293904, 0.00685792666498186, -0.00395942580610998, 0.00559947367421075, 0, 0.0340734167999968, 0, -0.0152380952380952, -0.00491807409042213, 0.0266666666666667, 0.0175954367753029, -0.00933138949631688, 0.00538748023761179, -0.00761904761904763, 0, 0, 0.0357346778758831, 0.0593142052694494, 0.0456600965054471, 0, -0.00913201930108943, 0, 0.0040839631858152, 0.00131809345043222, -0.00714693557517663, -0.00471575448938187, 0.00250090648338962, -0.00144389903140308, 0.00204198159290761},
 
5703
    {0.0439885919382573, -0.0231840235981022, 0.013385302265263, -0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, -0.0293257279588382, 0.0101587301587302, 0, 0.0101587301587301, -0.0219942959691286, -0.00207364211029265, 0.017958267458706, -0.00761904761904761, 0, 0, 0, -0.0395428035129663, -0.0456600965054471, 0, 0, 0.017684079335182, 0.0142938711503532, 0, -0.00612594477872281, 0, 0.00125045324169481, -0.00360974757850769, 0.0020419815929076},
 
5704
    {0.0439885919382571, 0, -0.026770604530526, -0.0189296759999982, 0.0433733365754904, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484215, 0.0134387368181058, -0.0113578055999989, -0.0205280095711867, -0.0152380952380952, -0.00983614818084424, -0.0177777777777778, -0.0131965775814772, -0.0145154947720485, -0.0107749604752236, -0.00761904761904761, -0.0547921158065365, -0.0241610520385245, -0.00510495398226901, 0.00395428035129663, 0.00456600965054471, -0.0216103019064202, -0.00456600965054471, 0.00353681586703639, 0.00408396318581521, -0.00395428035129661, 0.0030629723893614, 0.0035368158670364, 0.00250090648338961, 0.00288779806280615, 0.00204198159290761},
 
5705
    {-0.0329914439536931, 0, 0.0200779533978945, 0.0141972569999987, -0.0867466731509807, 0, 0.00969857289937743, 0, 0.00791885161221998, 0.00559947367421076, 0, 0.0340734167999968, 0, -0.0152380952380953, 0.0295084445425327, 0, -0.0131965775814772, 0, -0.0107749604752236, -0.00761904761904762, 0.0821881737098047, 0, -0.010209907964538, 0, 0.00456600965054471, 0, -0.00913201930108944, 0, 0.00408396318581521, -0.00790856070259326, 0, 0.0035368158670364, 0, 0.00288779806280615, 0.00204198159290761},
 
5706
    {0.0439885919382573, 0, -0.026770604530526, -0.0189296759999982, 0.0433733365754903, -0.0335968420452646, 0.0193971457987549, -0.0274317066599274, 0.01583770322444, 0.0111989473484215, -0.0134387368181058, -0.0113578055999989, 0.0205280095711867, -0.0152380952380952, -0.00983614818084423, 0.0177777777777778, -0.0131965775814772, 0.0145154947720485, -0.0107749604752236, -0.00761904761904761, -0.0547921158065365, 0.0241610520385245, -0.005104953982269, -0.00395428035129662, 0.00456600965054471, 0.0216103019064202, -0.0045660096505447, -0.0035368158670364, 0.00408396318581521, -0.00395428035129662, -0.00306297238936141, 0.00353681586703641, -0.00250090648338962, 0.00288779806280615, 0.00204198159290761},
 
5707
    {0.0439885919382573, 0.139104141588614, -0.080311813591578, -0.0567890279999947, 0.0578311154339872, 0.0335968420452646, -0.0420271492306356, 0.0274317066599275, -0.0475131096733199, -0.0167984210226323, 0, 0.0454312223999957, -0.0586514559176763, 0.0406349206349207, 0.039344592723377, 0.00253968253968254, -0.0109971479845643, -0.0601356211984865, 0.017958267458706, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0.0410940868549024, -0.053052238005546, 0.0367556686723369, -0.0105447476034577, -0.0245037791148913, 0.0235787724469093, 0.0175063453837273, 0, -0.0122518895574457},
 
5708
    {0.0439885919382572, 0, 0.160623627183156, -0.0567890279999947, 0, 0.0783926314389509, 0.0096985728993774, -0.0274317066599275, 0.0475131096733199, -0.0167984210226323, 0, 0, 0.0586514559176763, -0.0609523809523809, 0, 0.033015873015873, 0.0241937255660415, -0.0145154947720485, -0.0610581093596003, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0, 0.053052238005546, -0.0551335030085053, 0, -0.0326717054865217, 0.0141472634681456, 0.00875317269186366, 0.0151609398297323, -0.0122518895574456},
 
5709
    {0.0439885919382571, 0, 0, 0.170367083999984, 0, -0.0111989473484216, 0.00969857289937744, 0.0822951199797824, 0.0475131096733199, -0.0167984210226324, 0, 0, 0, 0, 0, 0.0533333333333333, -0.0461880215351701, 0.0435464843161454, 0.0251415744421883, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.057175484601413, -0.0495154221385096, -0.026259518075591, -0.0151609398297323, 0.0306297238936141},
 
5710
    {0.0439885919382571, -0.139104141588614, -0.0803118135915779, -0.0567890279999947, 0.0578311154339871, -0.0335968420452646, -0.0420271492306356, -0.0274317066599274, -0.0475131096733199, -0.0167984210226323, 0, 0.0454312223999957, 0.0586514559176763, 0.0406349206349206, 0.0393445927233769, -0.00253968253968253, -0.0109971479845643, 0.0601356211984865, 0.0179582674587059, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0.0410940868549024, 0.053052238005546, 0.0367556686723369, -0.0105447476034577, 0.0245037791148913, 0.0235787724469093, -0.0175063453837273, 0, -0.0122518895574457},
 
5711
    {0.0439885919382571, 0, 0.160623627183156, -0.0567890279999946, 0, -0.0783926314389509, 0.00969857289937745, 0.0274317066599275, 0.0475131096733199, -0.0167984210226323, 0, 0, -0.0586514559176763, -0.0609523809523809, 0, -0.033015873015873, 0.0241937255660415, 0.0145154947720485, -0.0610581093596003, 0.0393650793650793, 0, 0, 0, 0, 0, 0, 0, -0.053052238005546, -0.0551335030085053, 0, 0.0326717054865217, 0.0141472634681456, -0.00875317269186368, 0.0151609398297323, -0.0122518895574456},
 
5712
    {0.0439885919382572, 0, 0, 0.170367083999984, 0, 0.0111989473484215, 0.00969857289937745, -0.0822951199797824, 0.0475131096733199, -0.0167984210226323, 0, 0, 0, 0, 0, -0.0533333333333333, -0.0461880215351701, -0.0435464843161453, 0.0251415744421883, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0571754846014129, -0.0495154221385096, 0.026259518075591, -0.0151609398297323, 0.0306297238936141},
 
5713
    {0.0439885919382573, -0.139104141588614, -0.0803118135915779, -0.0567890279999946, -0.0433733365754903, 0.0447957893936862, 0.0484928644968872, -0.0548634133198549, 0, -0.0167984210226323, 0.0806324209086351, 0.0227156111999979, -0.0058651455917676, -0.0101587301587302, -0.00327871606028142, 0.0304761904761905, 0.0271262983619253, 0.045620126426438, 0.0430998419008943, 0.0393650793650794, 0, 0, 0, 0, 0, 0.0729347689341683, 0.0205470434274512, -0.00530522380055458, -0.00918891716808423, 0.031634242810373, -0.00816792637163039, -0.0141472634681456, -0.00875317269186365, -0.0151609398297323, -0.0122518895574456},
 
5714
    {0.0439885919382571, 0.139104141588614, -0.0803118135915779, -0.0567890279999947, -0.0433733365754904, -0.0447957893936862, 0.0484928644968873, 0.0548634133198549, 0, -0.0167984210226323, -0.0806324209086351, 0.0227156111999979, 0.0058651455917676, -0.0101587301587302, -0.00327871606028142, -0.0304761904761905, 0.0271262983619253, -0.045620126426438, 0.0430998419008943, 0.0393650793650794, 0, 0, 0, 0, 0, -0.0729347689341683, 0.0205470434274512, 0.00530522380055459, -0.00918891716808424, 0.031634242810373, 0.00816792637163042, -0.0141472634681456, 0.00875317269186367, -0.0151609398297323, -0.0122518895574456},
 
5715
    {0.0439885919382572, 0, 0, 0.170367083999984, 0.0144577788584968, 0, -0.00323285763312585, 0, -0.0950262193466398, -0.0167984210226323, 0, 0, 0, 0, -0.0688530372659096, 0, 0.01539600717839, 0, -0.0502831488843767, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0738132332242036, 0, 0.0165051407128365, 0, 0.0303218796594646, 0.0306297238936141},
 
5716
    {0.0439885919382573, -0.139104141588614, -0.0803118135915779, -0.0567890279999947, -0.0433733365754903, -0.0447957893936862, -0.00969857289937743, 0.0548634133198549, 0.03167540644888, 0.0391963157194754, 0.0806324209086351, 0, 0.0527863103259086, 0.0609523809523809, 0.0229510124219699, 0.0101587301587302, 0.0168622935763319, -0.0124418526617558, -0.00718330698348239, -0.013968253968254, 0, 0.0724831561155734, 0.0357346778758831, -0.0118628410538899, -0.0228300482527235, -0.00810386321490759, 0.0114150241263618, -0.00530522380055459, -0.0112308987609918, -0.00395428035129662, -0.00102099079645379, -0.0035368158670364, 0.00125045324169481, 0.000721949515701537, 0.00204198159290762},
 
5717
    {0.0439885919382571, 0.139104141588614, -0.080311813591578, -0.0567890279999947, -0.0433733365754904, 0.0447957893936862, -0.00969857289937742, -0.0548634133198549, 0.0316754064488799, 0.0391963157194754, -0.0806324209086351, 0, -0.0527863103259086, 0.060952380952381, 0.0229510124219699, -0.0101587301587302, 0.0168622935763319, 0.0124418526617558, -0.00718330698348236, -0.013968253968254, 0, -0.0724831561155734, 0.0357346778758831, 0.0118628410538899, -0.0228300482527236, 0.00810386321490761, 0.0114150241263618, 0.00530522380055459, -0.0112308987609918, -0.00395428035129662, 0.00102099079645379, -0.0035368158670364, -0.0012504532416948, 0.000721949515701528, 0.0020419815929076},
 
5718
    {0.0439885919382572, 0, 0.160623627183156, -0.0567890279999947, 0.0144577788584968, 0, -0.0614242950293905, 0, -0.0633508128977598, 0.0391963157194754, 0, -0.0681468335999936, 0, -0.0914285714285715, 0.00983614818084423, 0, 0.0285925847598672, 0, 0.0143666139669647, -0.0139682539682539, 0, 0, -0.0714693557517662, 0, 0.0456600965054471, 0, 0.0182640386021788, 0, 0.0040839631858152, -0.00263618690086443, 0, -0.00471575448938186, 0, -0.00144389903140306, 0.00204198159290759},
 
5719
    {0.351908735506058, 0, 0, 0, -0.115662230867974, 0, -0.129314305325032, 0, 0, -0.134387368181059, 0, -0.0908624447999914, 0, 0.0406349206349206, -0.0786891854467539, 0, -0.0879771838765144, 0, 0, 0.0711111111111111, 0, 0, 0, 0, 0, 0, -0.0821881737098047, 0, 0.0367556686723369, 0.0210894952069153, 0, 0.0235787724469093, 0, 0, -0.0122518895574456}};
 
5720
    
 
5721
    // Extract relevant coefficients
 
5722
    const double coeff0_0 = coefficients0[dof][0];
 
5723
    const double coeff0_1 = coefficients0[dof][1];
 
5724
    const double coeff0_2 = coefficients0[dof][2];
 
5725
    const double coeff0_3 = coefficients0[dof][3];
 
5726
    const double coeff0_4 = coefficients0[dof][4];
 
5727
    const double coeff0_5 = coefficients0[dof][5];
 
5728
    const double coeff0_6 = coefficients0[dof][6];
 
5729
    const double coeff0_7 = coefficients0[dof][7];
 
5730
    const double coeff0_8 = coefficients0[dof][8];
 
5731
    const double coeff0_9 = coefficients0[dof][9];
 
5732
    const double coeff0_10 = coefficients0[dof][10];
 
5733
    const double coeff0_11 = coefficients0[dof][11];
 
5734
    const double coeff0_12 = coefficients0[dof][12];
 
5735
    const double coeff0_13 = coefficients0[dof][13];
 
5736
    const double coeff0_14 = coefficients0[dof][14];
 
5737
    const double coeff0_15 = coefficients0[dof][15];
 
5738
    const double coeff0_16 = coefficients0[dof][16];
 
5739
    const double coeff0_17 = coefficients0[dof][17];
 
5740
    const double coeff0_18 = coefficients0[dof][18];
 
5741
    const double coeff0_19 = coefficients0[dof][19];
 
5742
    const double coeff0_20 = coefficients0[dof][20];
 
5743
    const double coeff0_21 = coefficients0[dof][21];
 
5744
    const double coeff0_22 = coefficients0[dof][22];
 
5745
    const double coeff0_23 = coefficients0[dof][23];
 
5746
    const double coeff0_24 = coefficients0[dof][24];
 
5747
    const double coeff0_25 = coefficients0[dof][25];
 
5748
    const double coeff0_26 = coefficients0[dof][26];
 
5749
    const double coeff0_27 = coefficients0[dof][27];
 
5750
    const double coeff0_28 = coefficients0[dof][28];
 
5751
    const double coeff0_29 = coefficients0[dof][29];
 
5752
    const double coeff0_30 = coefficients0[dof][30];
 
5753
    const double coeff0_31 = coefficients0[dof][31];
 
5754
    const double coeff0_32 = coefficients0[dof][32];
 
5755
    const double coeff0_33 = coefficients0[dof][33];
 
5756
    const double coeff0_34 = coefficients0[dof][34];
 
5757
    
 
5758
    // Compute value(s)
 
5759
    *values = coeff0_0*basisvalue0 + coeff0_1*basisvalue1 + coeff0_2*basisvalue2 + coeff0_3*basisvalue3 + coeff0_4*basisvalue4 + coeff0_5*basisvalue5 + coeff0_6*basisvalue6 + coeff0_7*basisvalue7 + coeff0_8*basisvalue8 + coeff0_9*basisvalue9 + coeff0_10*basisvalue10 + coeff0_11*basisvalue11 + coeff0_12*basisvalue12 + coeff0_13*basisvalue13 + coeff0_14*basisvalue14 + coeff0_15*basisvalue15 + coeff0_16*basisvalue16 + coeff0_17*basisvalue17 + coeff0_18*basisvalue18 + coeff0_19*basisvalue19 + coeff0_20*basisvalue20 + coeff0_21*basisvalue21 + coeff0_22*basisvalue22 + coeff0_23*basisvalue23 + coeff0_24*basisvalue24 + coeff0_25*basisvalue25 + coeff0_26*basisvalue26 + coeff0_27*basisvalue27 + coeff0_28*basisvalue28 + coeff0_29*basisvalue29 + coeff0_30*basisvalue30 + coeff0_31*basisvalue31 + coeff0_32*basisvalue32 + coeff0_33*basisvalue33 + coeff0_34*basisvalue34;
 
5760
  }
 
5761
 
 
5762
  /// Evaluate all basis functions at given point in cell
 
5763
  virtual void evaluate_basis_all(double* values,
 
5764
                                  const double* coordinates,
 
5765
                                  const ufc::cell& c) const
 
5766
  {
 
5767
    throw std::runtime_error("The vectorised version of evaluate_basis() is not yet implemented.");
 
5768
  }
 
5769
 
 
5770
  /// Evaluate order n derivatives of basis function i at given point in cell
 
5771
  virtual void evaluate_basis_derivatives(unsigned int i,
 
5772
                                          unsigned int n,
 
5773
                                          double* values,
 
5774
                                          const double* coordinates,
 
5775
                                          const ufc::cell& c) const
 
5776
  {
 
5777
    // Extract vertex coordinates
 
5778
    const double * const * element_coordinates = c.coordinates;
 
5779
    
 
5780
    // Compute Jacobian of affine map from reference cell
 
5781
    const double J_00 = element_coordinates[1][0] - element_coordinates[0][0];
 
5782
    const double J_01 = element_coordinates[2][0] - element_coordinates[0][0];
 
5783
    const double J_02 = element_coordinates[3][0] - element_coordinates[0][0];
 
5784
    const double J_10 = element_coordinates[1][1] - element_coordinates[0][1];
 
5785
    const double J_11 = element_coordinates[2][1] - element_coordinates[0][1];
 
5786
    const double J_12 = element_coordinates[3][1] - element_coordinates[0][1];
 
5787
    const double J_20 = element_coordinates[1][2] - element_coordinates[0][2];
 
5788
    const double J_21 = element_coordinates[2][2] - element_coordinates[0][2];
 
5789
    const double J_22 = element_coordinates[3][2] - element_coordinates[0][2];
 
5790
      
 
5791
    // Compute sub determinants
 
5792
    const double d00 = J_11*J_22 - J_12*J_21;
 
5793
    const double d01 = J_12*J_20 - J_10*J_22;
 
5794
    const double d02 = J_10*J_21 - J_11*J_20;
 
5795
    
 
5796
    const double d10 = J_02*J_21 - J_01*J_22;
 
5797
    const double d11 = J_00*J_22 - J_02*J_20;
 
5798
    const double d12 = J_01*J_20 - J_00*J_21;
 
5799
    
 
5800
    const double d20 = J_01*J_12 - J_02*J_11;
 
5801
    const double d21 = J_02*J_10 - J_00*J_12;
 
5802
    const double d22 = J_00*J_11 - J_01*J_10;
 
5803
      
 
5804
    // Compute determinant of Jacobian
 
5805
    double detJ = J_00*d00 + J_10*d10 + J_20*d20;
 
5806
    
 
5807
    // Compute inverse of Jacobian
 
5808
    
 
5809
    // Compute constants
 
5810
    const double C0 = d00*(element_coordinates[0][0] - element_coordinates[2][0] - element_coordinates[3][0]) \
 
5811
                    + d10*(element_coordinates[0][1] - element_coordinates[2][1] - element_coordinates[3][1]) \
 
5812
                    + d20*(element_coordinates[0][2] - element_coordinates[2][2] - element_coordinates[3][2]);
 
5813
    
 
5814
    const double C1 = d01*(element_coordinates[0][0] - element_coordinates[1][0] - element_coordinates[3][0]) \
 
5815
                    + d11*(element_coordinates[0][1] - element_coordinates[1][1] - element_coordinates[3][1]) \
 
5816
                    + d21*(element_coordinates[0][2] - element_coordinates[1][2] - element_coordinates[3][2]);
 
5817
    
 
5818
    const double C2 = d02*(element_coordinates[0][0] - element_coordinates[1][0] - element_coordinates[2][0]) \
 
5819
                    + d12*(element_coordinates[0][1] - element_coordinates[1][1] - element_coordinates[2][1]) \
 
5820
                    + d22*(element_coordinates[0][2] - element_coordinates[1][2] - element_coordinates[2][2]);
 
5821
    
 
5822
    // Get coordinates and map to the UFC reference element
 
5823
    double x = (C0 + d00*coordinates[0] + d10*coordinates[1] + d20*coordinates[2]) / detJ;
 
5824
    double y = (C1 + d01*coordinates[0] + d11*coordinates[1] + d21*coordinates[2]) / detJ;
 
5825
    double z = (C2 + d02*coordinates[0] + d12*coordinates[1] + d22*coordinates[2]) / detJ;
 
5826
    
 
5827
    // Map coordinates to the reference cube
 
5828
    if (std::abs(y + z - 1.0) < 1e-14)
 
5829
      x = 1.0;
 
5830
    else
 
5831
      x = -2.0 * x/(y + z - 1.0) - 1.0;
 
5832
    if (std::abs(z - 1.0) < 1e-14)
 
5833
      y = -1.0;
 
5834
    else
 
5835
      y = 2.0 * y/(1.0 - z) - 1.0;
 
5836
    z = 2.0 * z - 1.0;
 
5837
    
 
5838
    // Compute number of derivatives
 
5839
    unsigned int num_derivatives = 1;
 
5840
    
 
5841
    for (unsigned int j = 0; j < n; j++)
 
5842
      num_derivatives *= 3;
 
5843
    
 
5844
    
 
5845
    // Declare pointer to two dimensional array that holds combinations of derivatives and initialise
 
5846
    unsigned int **combinations = new unsigned int *[num_derivatives];
 
5847
        
 
5848
    for (unsigned int j = 0; j < num_derivatives; j++)
 
5849
    {
 
5850
      combinations[j] = new unsigned int [n];
 
5851
      for (unsigned int k = 0; k < n; k++)
 
5852
        combinations[j][k] = 0;
 
5853
    }
 
5854
        
 
5855
    // Generate combinations of derivatives
 
5856
    for (unsigned int row = 1; row < num_derivatives; row++)
 
5857
    {
 
5858
      for (unsigned int num = 0; num < row; num++)
 
5859
      {
 
5860
        for (unsigned int col = n-1; col+1 > 0; col--)
 
5861
        {
 
5862
          if (combinations[row][col] + 1 > 2)
 
5863
            combinations[row][col] = 0;
 
5864
          else
 
5865
          {
 
5866
            combinations[row][col] += 1;
 
5867
            break;
 
5868
          }
 
5869
        }
 
5870
      }
 
5871
    }
 
5872
    
 
5873
    // Compute inverse of Jacobian
 
5874
    const double Jinv[3][3] ={{d00 / detJ, d10 / detJ, d20 / detJ}, {d01 / detJ, d11 / detJ, d21 / detJ}, {d02 / detJ, d12 / detJ, d22 / detJ}};
 
5875
    
 
5876
    // Declare transformation matrix
 
5877
    // Declare pointer to two dimensional array and initialise
 
5878
    double **transform = new double *[num_derivatives];
 
5879
        
 
5880
    for (unsigned int j = 0; j < num_derivatives; j++)
 
5881
    {
 
5882
      transform[j] = new double [num_derivatives];
 
5883
      for (unsigned int k = 0; k < num_derivatives; k++)
 
5884
        transform[j][k] = 1;
 
5885
    }
 
5886
    
 
5887
    // Construct transformation matrix
 
5888
    for (unsigned int row = 0; row < num_derivatives; row++)
 
5889
    {
 
5890
      for (unsigned int col = 0; col < num_derivatives; col++)
 
5891
      {
 
5892
        for (unsigned int k = 0; k < n; k++)
 
5893
          transform[row][col] *= Jinv[combinations[col][k]][combinations[row][k]];
 
5894
      }
 
5895
    }
 
5896
    
 
5897
    // Reset values
 
5898
    for (unsigned int j = 0; j < 1*num_derivatives; j++)
 
5899
      values[j] = 0;
 
5900
    
 
5901
    // Map degree of freedom to element degree of freedom
 
5902
    const unsigned int dof = i;
 
5903
    
 
5904
    // Generate scalings
 
5905
    const double scalings_y_0 = 1;
 
5906
    const double scalings_y_1 = scalings_y_0*(0.5 - 0.5*y);
 
5907
    const double scalings_y_2 = scalings_y_1*(0.5 - 0.5*y);
 
5908
    const double scalings_y_3 = scalings_y_2*(0.5 - 0.5*y);
 
5909
    const double scalings_y_4 = scalings_y_3*(0.5 - 0.5*y);
 
5910
    const double scalings_z_0 = 1;
 
5911
    const double scalings_z_1 = scalings_z_0*(0.5 - 0.5*z);
 
5912
    const double scalings_z_2 = scalings_z_1*(0.5 - 0.5*z);
 
5913
    const double scalings_z_3 = scalings_z_2*(0.5 - 0.5*z);
 
5914
    const double scalings_z_4 = scalings_z_3*(0.5 - 0.5*z);
 
5915
    
 
5916
    // Compute psitilde_a
 
5917
    const double psitilde_a_0 = 1;
 
5918
    const double psitilde_a_1 = x;
 
5919
    const double psitilde_a_2 = 1.5*x*psitilde_a_1 - 0.5*psitilde_a_0;
 
5920
    const double psitilde_a_3 = 1.66666666666667*x*psitilde_a_2 - 0.666666666666667*psitilde_a_1;
 
5921
    const double psitilde_a_4 = 1.75*x*psitilde_a_3 - 0.75*psitilde_a_2;
 
5922
    
 
5923
    // Compute psitilde_bs
 
5924
    const double psitilde_bs_0_0 = 1;
 
5925
    const double psitilde_bs_0_1 = 1.5*y + 0.5;
 
5926
    const double psitilde_bs_0_2 = 0.111111111111111*psitilde_bs_0_1 + 1.66666666666667*y*psitilde_bs_0_1 - 0.555555555555556*psitilde_bs_0_0;
 
5927
    const double psitilde_bs_0_3 = 0.05*psitilde_bs_0_2 + 1.75*y*psitilde_bs_0_2 - 0.7*psitilde_bs_0_1;
 
5928
    const double psitilde_bs_0_4 = 0.0285714285714286*psitilde_bs_0_3 + 1.8*y*psitilde_bs_0_3 - 0.771428571428571*psitilde_bs_0_2;
 
5929
    const double psitilde_bs_1_0 = 1;
 
5930
    const double psitilde_bs_1_1 = 2.5*y + 1.5;
 
5931
    const double psitilde_bs_1_2 = 0.54*psitilde_bs_1_1 + 2.1*y*psitilde_bs_1_1 - 0.56*psitilde_bs_1_0;
 
5932
    const double psitilde_bs_1_3 = 0.285714285714286*psitilde_bs_1_2 + 2*y*psitilde_bs_1_2 - 0.714285714285714*psitilde_bs_1_1;
 
5933
    const double psitilde_bs_2_0 = 1;
 
5934
    const double psitilde_bs_2_1 = 3.5*y + 2.5;
 
5935
    const double psitilde_bs_2_2 = 1.02040816326531*psitilde_bs_2_1 + 2.57142857142857*y*psitilde_bs_2_1 - 0.551020408163265*psitilde_bs_2_0;
 
5936
    const double psitilde_bs_3_0 = 1;
 
5937
    const double psitilde_bs_3_1 = 4.5*y + 3.5;
 
5938
    const double psitilde_bs_4_0 = 1;
 
5939
    
 
5940
    // Compute psitilde_cs
 
5941
    const double psitilde_cs_00_0 = 1;
 
5942
    const double psitilde_cs_00_1 = 2*z + 1;
 
5943
    const double psitilde_cs_00_2 = 0.3125*psitilde_cs_00_1 + 1.875*z*psitilde_cs_00_1 - 0.5625*psitilde_cs_00_0;
 
5944
    const double psitilde_cs_00_3 = 0.155555555555556*psitilde_cs_00_2 + 1.86666666666667*z*psitilde_cs_00_2 - 0.711111111111111*psitilde_cs_00_1;
 
5945
    const double psitilde_cs_00_4 = 0.09375*psitilde_cs_00_3 + 1.875*z*psitilde_cs_00_3 - 0.78125*psitilde_cs_00_2;
 
5946
    const double psitilde_cs_01_0 = 1;
 
5947
    const double psitilde_cs_01_1 = 3*z + 2;
 
5948
    const double psitilde_cs_01_2 = 0.777777777777778*psitilde_cs_01_1 + 2.33333333333333*z*psitilde_cs_01_1 - 0.555555555555556*psitilde_cs_01_0;
 
5949
    const double psitilde_cs_01_3 = 0.428571428571429*psitilde_cs_01_2 + 2.14285714285714*z*psitilde_cs_01_2 - 0.714285714285714*psitilde_cs_01_1;
 
5950
    const double psitilde_cs_02_0 = 1;
 
5951
    const double psitilde_cs_02_1 = 4*z + 3;
 
5952
    const double psitilde_cs_02_2 = 1.265625*psitilde_cs_02_1 + 2.8125*z*psitilde_cs_02_1 - 0.546875*psitilde_cs_02_0;
 
5953
    const double psitilde_cs_03_0 = 1;
 
5954
    const double psitilde_cs_03_1 = 5*z + 4;
 
5955
    const double psitilde_cs_04_0 = 1;
 
5956
    const double psitilde_cs_10_0 = 1;
 
5957
    const double psitilde_cs_10_1 = 3*z + 2;
 
5958
    const double psitilde_cs_10_2 = 0.777777777777778*psitilde_cs_10_1 + 2.33333333333333*z*psitilde_cs_10_1 - 0.555555555555556*psitilde_cs_10_0;
 
5959
    const double psitilde_cs_10_3 = 0.428571428571429*psitilde_cs_10_2 + 2.14285714285714*z*psitilde_cs_10_2 - 0.714285714285714*psitilde_cs_10_1;
 
5960
    const double psitilde_cs_11_0 = 1;
 
5961
    const double psitilde_cs_11_1 = 4*z + 3;
 
5962
    const double psitilde_cs_11_2 = 1.265625*psitilde_cs_11_1 + 2.8125*z*psitilde_cs_11_1 - 0.546875*psitilde_cs_11_0;
 
5963
    const double psitilde_cs_12_0 = 1;
 
5964
    const double psitilde_cs_12_1 = 5*z + 4;
 
5965
    const double psitilde_cs_13_0 = 1;
 
5966
    const double psitilde_cs_20_0 = 1;
 
5967
    const double psitilde_cs_20_1 = 4*z + 3;
 
5968
    const double psitilde_cs_20_2 = 1.265625*psitilde_cs_20_1 + 2.8125*z*psitilde_cs_20_1 - 0.546875*psitilde_cs_20_0;
 
5969
    const double psitilde_cs_21_0 = 1;
 
5970
    const double psitilde_cs_21_1 = 5*z + 4;
 
5971
    const double psitilde_cs_22_0 = 1;
 
5972
    const double psitilde_cs_30_0 = 1;
 
5973
    const double psitilde_cs_30_1 = 5*z + 4;
 
5974
    const double psitilde_cs_31_0 = 1;
 
5975
    const double psitilde_cs_40_0 = 1;
 
5976
    
 
5977
    // Compute basisvalues
 
5978
    const double basisvalue0 = 0.866025403784439*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_0;
 
5979
    const double basisvalue1 = 2.73861278752583*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_0;
 
5980
    const double basisvalue2 = 1.58113883008419*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_0;
 
5981
    const double basisvalue3 = 1.11803398874989*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_1;
 
5982
    const double basisvalue4 = 5.1234753829798*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_0;
 
5983
    const double basisvalue5 = 3.96862696659689*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_0;
 
5984
    const double basisvalue6 = 2.29128784747792*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_0;
 
5985
    const double basisvalue7 = 3.24037034920393*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_1;
 
5986
    const double basisvalue8 = 1.87082869338697*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_1;
 
5987
    const double basisvalue9 = 1.3228756555323*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_2;
 
5988
    const double basisvalue10 = 7.93725393319377*psitilde_a_3*scalings_y_3*psitilde_bs_3_0*scalings_z_3*psitilde_cs_30_0;
 
5989
    const double basisvalue11 = 6.70820393249937*psitilde_a_2*scalings_y_2*psitilde_bs_2_1*scalings_z_3*psitilde_cs_21_0;
 
5990
    const double basisvalue12 = 5.19615242270663*psitilde_a_1*scalings_y_1*psitilde_bs_1_2*scalings_z_3*psitilde_cs_12_0;
 
5991
    const double basisvalue13 = 3*psitilde_a_0*scalings_y_0*psitilde_bs_0_3*scalings_z_3*psitilde_cs_03_0;
 
5992
    const double basisvalue14 = 5.80947501931113*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_1;
 
5993
    const double basisvalue15 = 4.5*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_1;
 
5994
    const double basisvalue16 = 2.59807621135332*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_1;
 
5995
    const double basisvalue17 = 3.67423461417477*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_2;
 
5996
    const double basisvalue18 = 2.12132034355964*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_2;
 
5997
    const double basisvalue19 = 1.5*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_3;
 
5998
    const double basisvalue20 = 11.1242977306435*psitilde_a_4*scalings_y_4*psitilde_bs_4_0*scalings_z_4*psitilde_cs_40_0;
 
5999
    const double basisvalue21 = 9.81070843517429*psitilde_a_3*scalings_y_3*psitilde_bs_3_1*scalings_z_4*psitilde_cs_31_0;
 
6000
    const double basisvalue22 = 8.2915619758885*psitilde_a_2*scalings_y_2*psitilde_bs_2_2*scalings_z_4*psitilde_cs_22_0;
 
6001
    const double basisvalue23 = 6.42261628933256*psitilde_a_1*scalings_y_1*psitilde_bs_1_3*scalings_z_4*psitilde_cs_13_0;
 
6002
    const double basisvalue24 = 3.70809924354783*psitilde_a_0*scalings_y_0*psitilde_bs_0_4*scalings_z_4*psitilde_cs_04_0;
 
6003
    const double basisvalue25 = 8.77496438739212*psitilde_a_3*scalings_y_3*psitilde_bs_3_0*scalings_z_3*psitilde_cs_30_1;
 
6004
    const double basisvalue26 = 7.41619848709566*psitilde_a_2*scalings_y_2*psitilde_bs_2_1*scalings_z_3*psitilde_cs_21_1;
 
6005
    const double basisvalue27 = 5.74456264653803*psitilde_a_1*scalings_y_1*psitilde_bs_1_2*scalings_z_3*psitilde_cs_12_1;
 
6006
    const double basisvalue28 = 3.3166247903554*psitilde_a_0*scalings_y_0*psitilde_bs_0_3*scalings_z_3*psitilde_cs_03_1;
 
6007
    const double basisvalue29 = 6.42261628933256*psitilde_a_2*scalings_y_2*psitilde_bs_2_0*scalings_z_2*psitilde_cs_20_2;
 
6008
    const double basisvalue30 = 4.9749371855331*psitilde_a_1*scalings_y_1*psitilde_bs_1_1*scalings_z_2*psitilde_cs_11_2;
 
6009
    const double basisvalue31 = 2.87228132326901*psitilde_a_0*scalings_y_0*psitilde_bs_0_2*scalings_z_2*psitilde_cs_02_2;
 
6010
    const double basisvalue32 = 4.06201920231798*psitilde_a_1*scalings_y_1*psitilde_bs_1_0*scalings_z_1*psitilde_cs_10_3;
 
6011
    const double basisvalue33 = 2.34520787991171*psitilde_a_0*scalings_y_0*psitilde_bs_0_1*scalings_z_1*psitilde_cs_01_3;
 
6012
    const double basisvalue34 = 1.6583123951777*psitilde_a_0*scalings_y_0*psitilde_bs_0_0*scalings_z_0*psitilde_cs_00_4;
 
6013
    
 
6014
    // Table(s) of coefficients
 
6015
    const static double coefficients0[35][35] = \
 
6016
    {{-0.0137464349807051, -0.0144900147488139, -0.00836581391578937, -0.00591552374999941, 0, 0, 0, 0, 0, 0, -0.00671936840905293, -0.00567890279999946, -0.00439885919382571, -0.00253968253968254, -0.00491807409042211, -0.00380952380952381, -0.00219942959691287, -0.00311046316543895, -0.0017958267458706, -0.00126984126984128, 0.0136980289516341, 0.0120805260192622, 0.010209907964538, 0.00790856070259325, 0.00456600965054471, 0.0108051509532101, 0.00913201930108942, 0.00707363173407281, 0.00408396318581522, 0.00790856070259324, 0.00612594477872282, 0.0035368158670364, 0.00500181296677924, 0.00288779806280616, 0.00204198159290761},
 
6017
    {-0.0137464349807054, 0.0144900147488139, -0.00836581391578934, -0.00591552374999945, 0, 0, 0, 0, 0, 0, 0.00671936840905293, -0.00567890279999946, 0.00439885919382572, -0.00253968253968254, -0.00491807409042213, 0.00380952380952382, -0.00219942959691286, 0.00311046316543897, -0.0017958267458706, -0.00126984126984127, 0.0136980289516341, -0.0120805260192622, 0.010209907964538, -0.00790856070259325, 0.00456600965054471, -0.0108051509532101, 0.00913201930108941, -0.0070736317340728, 0.00408396318581521, 0.00790856070259325, -0.00612594477872282, 0.0035368158670364, -0.00500181296677924, 0.00288779806280615, 0.00204198159290761},
 
6018
    {-0.0137464349807053, 0, 0.0167316278315787, -0.00591552374999946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0101587301587302, 0, 0, -0.00659828879073857, 0, 0.00359165349174119, -0.00126984126984127, 0, 0, 0, 0, 0.0228300482527235, 0, 0, 0, -0.0163358527432608, 0, 0, 0.0106104476011092, 0, -0.0057755961256123, 0.00204198159290761},
 
6019
    {-0.0137464349807054, 0, 0, 0.0177465712499983, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0126984126984127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0306297238936141},
 
6020
    {0.0439885919382572, 0, 0.026770604530526, 0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, 0, 0.0406349206349206, 0, 0, 0.00439885919382572, 0, -0.0143666139669648, 0.00761904761904763, 0, 0, 0, 0, 0, 0, 0, 0, 0.0367556686723369, 0, 0, -0.0424417904044368, 0, 0.0303218796594646, -0.0122518895574456},
 
6021
    {-0.0329914439536931, 0, -0.0200779533978945, -0.0141972569999986, 0, 0, -0.00969857289937744, 0, 0.0712696645099798, -0.050395263067897, 0, 0, 0, 0, 0, 0, 0.0461880215351701, 0, 0.0107749604752236, -0.0190476190476191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0495154221385096, 0, -0.0606437593189292, 0.0306297238936141},
 
6022
    {0.0439885919382573, 0, 0.0267706045305259, 0.0189296759999982, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, 0, 0.0359165349174119, 0.0253968253968254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0505364660991076, -0.0408396318581522},
 
6023
    {0.0439885919382573, 0.0231840235981023, -0.0133853022652629, 0.0189296759999982, 0.0433733365754904, -0.0335968420452647, 0.0193971457987549, -0.0274317066599275, 0.01583770322444, 0.0111989473484215, 0.0268774736362117, -0.0227156111999979, 0.0175954367753029, -0.0101587301587302, 0.00327871606028141, -0.00253968253968255, 0.0014662863979419, -0.0124418526617558, 0.00718330698348238, 0.00761904761904763, 0, 0, 0, 0, 0, 0.0243115896447228, -0.0205470434274512, 0.0159156714016638, -0.00918891716808423, -0.031634242810373, 0.0245037791148913, -0.0141472634681456, 0.026259518075591, -0.0151609398297323, -0.0122518895574456},
 
6024
    {-0.0329914439536929, -0.0173880176985766, 0.0100389766989472, -0.0141972569999986, -0.00722888942924838, 0.00559947367421081, -0.00323285763312582, 0.0617213399848368, -0.03563483225499, -0.050395263067897, 0, 0, 0, 0, 0.0344265186329548, -0.0266666666666667, 0.01539600717839, 0.00933138949631686, -0.00538748023761177, -0.0190476190476191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0369066166121018, -0.0285877423007065, 0.0165051407128365, -0.052519036151182, 0.0303218796594646, 0.0306297238936141},
 
6025
    {0.0439885919382573, 0.0231840235981023, -0.013385302265263, 0.0189296759999982, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, 0.0311046316543895, -0.017958267458706, 0.0253968253968255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0437658634593183, -0.0252682330495538, -0.0408396318581521},
 
6026
    {0.0439885919382572, 0.0231840235981023, 0.013385302265263, -0.0189296759999982, 0.0433733365754903, -0.0335968420452647, 0.0193971457987549, -0.0274317066599275, 0.01583770322444, 0.0111989473484215, 0.0268774736362117, 0, -0.0117302911835353, 0.0101587301587302, -0.0229510124219699, 0.00761904761904761, -0.00146628639794191, 0.0165891368823411, -0.0071833069834824, -0.00761904761904763, 0, 0.0241610520385245, -0.0357346778758831, 0.0355885231616696, -0.0228300482527235, -0.00270128773830253, -0.0114150241263618, 0.0159156714016638, -0.0112308987609918, 0.00395428035129663, 0.00306297238936141, -0.0035368158670364, -0.00375135972508443, 0.00072194951570154, 0.00204198159290761},
 
6027
    {-0.0329914439536929, -0.0173880176985768, -0.0100389766989472, 0.0141972569999986, -0.00722888942924839, 0.0615942104163185, -0.0614242950293904, -0.00685792666498187, -0.00395942580611001, 0.00559947367421077, 0, 0.0340734167999968, 0, -0.0152380952380952, -0.00491807409042213, -0.0266666666666667, 0.0175954367753029, 0.00933138949631688, 0.00538748023761179, -0.00761904761904761, 0, 0, 0.0357346778758831, -0.0593142052694494, 0.0456600965054471, 0, -0.00913201930108943, 0, 0.00408396318581521, 0.00131809345043221, 0.00714693557517662, -0.00471575448938186, -0.00250090648338962, -0.00144389903140307, 0.00204198159290761},
 
6028
    {0.0439885919382572, 0.0231840235981022, 0.013385302265263, -0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, 0.0293257279588382, 0.0101587301587302, 0, -0.0101587301587302, -0.0219942959691286, 0.00207364211029264, 0.017958267458706, -0.00761904761904762, 0, 0, 0, 0.0395428035129662, -0.0456600965054471, 0, 0, -0.017684079335182, 0.0142938711503532, 0, 0.00612594477872282, 0, -0.00125045324169481, -0.00360974757850769, 0.0020419815929076},
 
6029
    {0.043988591938257, -0.0231840235981023, -0.0133853022652629, 0.0189296759999983, 0.0433733365754903, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484216, -0.0268774736362117, -0.0227156111999979, -0.0175954367753029, -0.0101587301587302, 0.00327871606028139, 0.00253968253968253, 0.0014662863979419, 0.0124418526617558, 0.00718330698348236, 0.00761904761904761, 0, 0, 0, 0, 0, -0.0243115896447228, -0.0205470434274512, -0.0159156714016638, -0.00918891716808424, -0.031634242810373, -0.0245037791148913, -0.0141472634681456, -0.026259518075591, -0.0151609398297323, -0.0122518895574456},
 
6030
    {-0.0329914439536929, 0.0173880176985768, 0.0100389766989471, -0.0141972569999987, -0.00722888942924838, -0.00559947367421082, -0.00323285763312581, -0.0617213399848367, -0.03563483225499, -0.050395263067897, 0, 0, 0, 0, 0.0344265186329548, 0.0266666666666667, 0.01539600717839, -0.00933138949631689, -0.00538748023761178, -0.019047619047619, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0369066166121018, 0.0285877423007065, 0.0165051407128365, 0.0525190361511819, 0.0303218796594646, 0.0306297238936141},
 
6031
    {0.0439885919382572, -0.0231840235981023, -0.0133853022652629, 0.0189296759999981, 0, 0, 0, 0, 0, 0.0671936840905293, 0, 0, 0, 0, 0, 0, 0, -0.0311046316543896, -0.017958267458706, 0.0253968253968255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0437658634593183, -0.0252682330495538, -0.0408396318581521},
 
6032
    {0.0439885919382572, -0.0231840235981023, 0.013385302265263, -0.0189296759999982, 0.0433733365754904, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484216, -0.0268774736362117, 0, 0.0117302911835352, 0.0101587301587302, -0.0229510124219699, -0.00761904761904762, -0.00146628639794191, -0.0165891368823411, -0.00718330698348239, -0.00761904761904763, 0, -0.0241610520385245, -0.0357346778758831, -0.0355885231616696, -0.0228300482527235, 0.00270128773830254, -0.0114150241263618, -0.0159156714016638, -0.0112308987609918, 0.00395428035129662, -0.00306297238936141, -0.0035368158670364, 0.00375135972508443, 0.000721949515701533, 0.00204198159290761},
 
6033
    {-0.0329914439536929, 0.0173880176985766, -0.0100389766989472, 0.0141972569999987, -0.00722888942924841, -0.0615942104163186, -0.0614242950293904, 0.00685792666498186, -0.00395942580610998, 0.00559947367421075, 0, 0.0340734167999968, 0, -0.0152380952380952, -0.00491807409042213, 0.0266666666666667, 0.0175954367753029, -0.00933138949631688, 0.00538748023761179, -0.00761904761904763, 0, 0, 0.0357346778758831, 0.0593142052694494, 0.0456600965054471, 0, -0.00913201930108943, 0, 0.0040839631858152, 0.00131809345043222, -0.00714693557517663, -0.00471575448938187, 0.00250090648338962, -0.00144389903140308, 0.00204198159290761},
 
6034
    {0.0439885919382573, -0.0231840235981022, 0.013385302265263, -0.0189296759999982, 0, 0, 0.0581914373962646, 0, -0.0316754064488799, 0.0111989473484216, 0, 0, -0.0293257279588382, 0.0101587301587302, 0, 0.0101587301587301, -0.0219942959691286, -0.00207364211029265, 0.017958267458706, -0.00761904761904761, 0, 0, 0, -0.0395428035129663, -0.0456600965054471, 0, 0, 0.017684079335182, 0.0142938711503532, 0, -0.00612594477872281, 0, 0.00125045324169481, -0.00360974757850769, 0.0020419815929076},
 
6035
    {0.0439885919382571, 0, -0.026770604530526, -0.0189296759999982, 0.0433733365754904, 0.0335968420452646, 0.0193971457987549, 0.0274317066599274, 0.01583770322444, 0.0111989473484215, 0.0134387368181058, -0.0113578055999989, -0.0205280095711867, -0.0152380952380952, -0.00983614818084424, -0.0177777777777778, -0.0131965775814772, -0.0145154947720485, -0.0107749604752236, -0.00761904761904761, -0.0547921158065365, -0.0241610520385245, -0.00510495398226901, 0.00395428035129663, 0.00456600965054471, -0.0216103019064202, -0.00456600965054471, 0.00353681586703639, 0.00408396318581521, -0.00395428035129661, 0.0030629723893614, 0.0035368158670364, 0.00250090648338961, 0.00288779806280615, 0.00204198159290761},
 
6036
    {-0.0329914439536931, 0, 0.0200779533978945, 0.0141972569999987, -0.0867466731509807, 0, 0.00969857289937743, 0, 0.00791885161221998, 0.00559947367421076, 0, 0.0340734167999968, 0, -0.0152380952380953, 0.0295084445425327, 0, -0.0131965775814772, 0, -0.0107749604752236, -0.00761904761904762, 0.0821881737098047, 0, -0.010209907964538, 0, 0.00456600965054471, 0, -0.00913201930108944, 0, 0.00408396318581521, -0.00790856070259326, 0, 0.0035368158670364, 0, 0.00288779806280615, 0.00204198159290761},
 
6037
    {0.0439885919382573, 0, -0.026770604530526, -0.0189296759999982, 0.0433733365754903, -0.0335968420452646, 0.0193971457987549, -0.0274317066599274, 0.01583770322444, 0.0111989473484215, -0.0134387368181058, -0.0113578055999989, 0.0205280095711867, -0.0152380952380952, -0.00983614818084423, 0.0177777777777778, -0.0131965775814772, 0.0145154947720485, -0.0107749604752236, -0.00761904761904761, -0.0547921158065365, 0.0241610520385245, -0.005104953982269, -0.00395428035129662, 0.00456600965054471, 0.0216103019064202, -0.0045660096505447, -0.0035368158670364, 0.00408396318581521, -0.00395428035129662, -0.00306297238936141, 0.00353681586703641, -0.00250090648338962, 0.00288779806280615, 0.00204198159290761},
 
6038
    {0.0439885919382573, 0.139104141588614, -0.080311813591578, -0.0567890279999947, 0.0578311154339872, 0.0335968420452646, -0.0420271492306356, 0.0274317066599275, -0.0475131096733199, -0.0167984210226323, 0, 0.0454312223999957, -0.0586514559176763, 0.0406349206349207, 0.039344592723377, 0.00253968253968254, -0.0109971479845643, -0.0601356211984865, 0.017958267458706, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0.0410940868549024, -0.053052238005546, 0.0367556686723369, -0.0105447476034577, -0.0245037791148913, 0.0235787724469093, 0.0175063453837273, 0, -0.0122518895574457},
 
6039
    {0.0439885919382572, 0, 0.160623627183156, -0.0567890279999947, 0, 0.0783926314389509, 0.0096985728993774, -0.0274317066599275, 0.0475131096733199, -0.0167984210226323, 0, 0, 0.0586514559176763, -0.0609523809523809, 0, 0.033015873015873, 0.0241937255660415, -0.0145154947720485, -0.0610581093596003, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0, 0.053052238005546, -0.0551335030085053, 0, -0.0326717054865217, 0.0141472634681456, 0.00875317269186366, 0.0151609398297323, -0.0122518895574456},
 
6040
    {0.0439885919382571, 0, 0, 0.170367083999984, 0, -0.0111989473484216, 0.00969857289937744, 0.0822951199797824, 0.0475131096733199, -0.0167984210226324, 0, 0, 0, 0, 0, 0.0533333333333333, -0.0461880215351701, 0.0435464843161454, 0.0251415744421883, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.057175484601413, -0.0495154221385096, -0.026259518075591, -0.0151609398297323, 0.0306297238936141},
 
6041
    {0.0439885919382571, -0.139104141588614, -0.0803118135915779, -0.0567890279999947, 0.0578311154339871, -0.0335968420452646, -0.0420271492306356, -0.0274317066599274, -0.0475131096733199, -0.0167984210226323, 0, 0.0454312223999957, 0.0586514559176763, 0.0406349206349206, 0.0393445927233769, -0.00253968253968253, -0.0109971479845643, 0.0601356211984865, 0.0179582674587059, 0.0393650793650794, 0, 0, 0, 0, 0, 0, 0.0410940868549024, 0.053052238005546, 0.0367556686723369, -0.0105447476034577, 0.0245037791148913, 0.0235787724469093, -0.0175063453837273, 0, -0.0122518895574457},
 
6042
    {0.0439885919382571, 0, 0.160623627183156, -0.0567890279999946, 0, -0.0783926314389509, 0.00969857289937745, 0.0274317066599275, 0.0475131096733199, -0.0167984210226323, 0, 0, -0.0586514559176763, -0.0609523809523809, 0, -0.033015873015873, 0.0241937255660415, 0.0145154947720485, -0.0610581093596003, 0.0393650793650793, 0, 0, 0, 0, 0, 0, 0, -0.053052238005546, -0.0551335030085053, 0, 0.0326717054865217, 0.0141472634681456, -0.00875317269186368, 0.0151609398297323, -0.0122518895574456},
 
6043
    {0.0439885919382572, 0, 0, 0.170367083999984, 0, 0.0111989473484215, 0.00969857289937745, -0.0822951199797824, 0.0475131096733199, -0.0167984210226323, 0, 0, 0, 0, 0, -0.0533333333333333, -0.0461880215351701, -0.0435464843161453, 0.0251415744421883, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0571754846014129, -0.0495154221385096, 0.026259518075591, -0.0151609398297323, 0.0306297238936141},
 
6044
    {0.0439885919382573, -0.139104141588614, -0.0803118135915779, -0.0567890279999946, -0.0433733365754903, 0.0447957893936862, 0.0484928644968872, -0.0548634133198549, 0, -0.0167984210226323, 0.0806324209086351, 0.0227156111999979, -0.0058651455917676, -0.0101587301587302, -0.00327871606028142, 0.0304761904761905, 0.0271262983619253, 0.045620126426438, 0.0430998419008943, 0.0393650793650794, 0, 0, 0, 0, 0, 0.0729347689341683, 0.0205470434274512, -0.00530522380055458, -0.00918891716808423, 0.031634242810373, -0.00816792637163039, -0.0141472634681456, -0.00875317269186365, -0.0151609398297323, -0.0122518895574456},
 
6045
    {0.0439885919382571, 0.139104141588614, -0.0803118135915779, -0.0567890279999947, -0.0433733365754904, -0.0447957893936862, 0.0484928644968873, 0.0548634133198549, 0, -0.0167984210226323, -0.0806324209086351, 0.0227156111999979, 0.0058651455917676, -0.0101587301587302, -0.00327871606028142, -0.0304761904761905, 0.0271262983619253, -0.045620126426438, 0.0430998419008943, 0.0393650793650794, 0, 0, 0, 0, 0, -0.0729347689341683, 0.0205470434274512, 0.00530522380055459, -0.00918891716808424, 0.031634242810373, 0.00816792637163042, -0.0141472634681456, 0.00875317269186367, -0.0151609398297323, -0.0122518895574456},
 
6046
    {0.0439885919382572, 0, 0, 0.170367083999984, 0.0144577788584968, 0, -0.00323285763312585, 0, -0.0950262193466398, -0.0167984210226323, 0, 0, 0, 0, -0.0688530372659096, 0, 0.01539600717839, 0, -0.0502831488843767, -0.0825396825396826, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0738132332242036, 0, 0.0165051407128365, 0, 0.0303218796594646, 0.0306297238936141},
 
6047
    {0.0439885919382573, -0.139104141588614, -0.0803118135915779, -0.0567890279999947, -0.0433733365754903, -0.0447957893936862, -0.00969857289937743, 0.0548634133198549, 0.03167540644888, 0.0391963157194754, 0.0806324209086351, 0, 0.0527863103259086, 0.0609523809523809, 0.0229510124219699, 0.0101587301587302, 0.0168622935763319, -0.0124418526617558, -0.00718330698348239, -0.013968253968254, 0, 0.0724831561155734, 0.0357346778758831, -0.0118628410538899, -0.0228300482527235, -0.00810386321490759, 0.0114150241263618, -0.00530522380055459, -0.0112308987609918, -0.00395428035129662, -0.00102099079645379, -0.0035368158670364, 0.00125045324169481, 0.000721949515701537, 0.00204198159290762},
 
6048
    {0.0439885919382571, 0.139104141588614, -0.080311813591578, -0.0567890279999947, -0.0433733365754904, 0.0447957893936862, -0.00969857289937742, -0.0548634133198549, 0.0316754064488799, 0.0391963157194754, -0.0806324209086351, 0, -0.0527863103259086, 0.060952380952381, 0.0229510124219699, -0.0101587301587302, 0.0168622935763319, 0.0124418526617558, -0.00718330698348236, -0.013968253968254, 0, -0.0724831561155734, 0.0357346778758831, 0.0118628410538899, -0.0228300482527236, 0.00810386321490761, 0.0114150241263618, 0.00530522380055459, -0.0112308987609918, -0.00395428035129662, 0.00102099079645379, -0.0035368158670364, -0.0012504532416948, 0.000721949515701528, 0.0020419815929076},
 
6049
    {0.0439885919382572, 0, 0.160623627183156, -0.0567890279999947, 0.0144577788584968, 0, -0.0614242950293905, 0, -0.0633508128977598, 0.0391963157194754, 0, -0.0681468335999936, 0, -0.0914285714285715, 0.00983614818084423, 0, 0.0285925847598672, 0, 0.0143666139669647, -0.0139682539682539, 0, 0, -0.0714693557517662, 0, 0.0456600965054471, 0, 0.0182640386021788, 0, 0.0040839631858152, -0.00263618690086443, 0, -0.00471575448938186, 0, -0.00144389903140306, 0.00204198159290759},
 
6050
    {0.351908735506058, 0, 0, 0, -0.115662230867974, 0, -0.129314305325032, 0, 0, -0.134387368181059, 0, -0.0908624447999914, 0, 0.0406349206349206, -0.0786891854467539, 0, -0.0879771838765144, 0, 0, 0.0711111111111111, 0, 0, 0, 0, 0, 0, -0.0821881737098047, 0, 0.0367556686723369, 0.0210894952069153, 0, 0.0235787724469093, 0, 0, -0.0122518895574456}};
 
6051
    
 
6052
    // Interesting (new) part
 
6053
    // Tables of derivatives of the polynomial base (transpose)
 
6054
    const static double dmats0[35][35] = \
 
6055
    {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6056
    {6.32455532033677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6057
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6058
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6059
    {0, 11.2249721603218, 0, 0, 0, 1.70793006049707e-14, 0, 0, 1.16063842564573e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6060
    {4.58257569495585, 0, 8.36660026534076, -1.18321595661992, 0, 0, 1.04642314135461e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6061
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6062
    {3.74165738677394, 0, 0, 8.69482604771366, 0, 0, 0, -1.66625972279159e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6063
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6064
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6065
    {5.49909083394701, 0, -3.34664010613631, -2.36643191323985, 15.4919333848297, 0, 0.692820323027549, 0, 0.56568542494924, 0.400000000000009, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6066
    {0, 4.89897948556635, 0, 0, 0, 14.1985914794391, 0, -0.828078671210828, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6067
    {3.60000000000001, 0, 8.76356092008266, -1.54919333848296, 0, 0, 9.52470471983254, 0, -1.48131215963609, 0.261861468283193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6068
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6069
    {0, 4.24264068711929, 0, 0, 0, 0, 0, 14.3427433120127, 2.84156378982381e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6070
    {3.11769145362398, 0, 3.16227766016838, 4.91934955049954, 0, 0, 0, -1.2538531175753e-14, 10.690449676497, -2.41897262725905, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6071
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6072
    {2.54558441227157, 0, 0, 7.66811580507232, 0, 0, 0, 0, 0, 10.3691851174526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6073
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6074
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6075
    {0, 11.6057691494799, 0, 0, 0, -4.20458932936041, 0, -3.43303281162798, 0, 0, 19.6214168703486, 0, 0.611677741841197, 0, 0, 0.529728463363978, 0, 0.432521479156785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6076
    {4.53137212479103, 0, 3.54562104171167, -2.50713268211203, 4.78713553878169, 0, -5.56626745075493, 0, -1.04880884817015, 0.741619848709563, 0, 18.8034951158403, 0, 1.68183573174416, -0.603122387046455, 0, 0.701283781217662, 0, 0.132137494528683, -0.0934353184302337, 0, 0, 0, 0, -2.04851899834062e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6077
    {1.12802291379194e-14, 2.59512887494071, 0, 0, 0, 10.0285307284481, 1.48509074345102e-14, -0.767649473578742, 0, 0, 0, 0, 16.4130361329658, 0, 0, -1.26347611061158, 0, 0.0967147429123335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6078
    {2.96647939483827, 0, 8.12403840463597, -1.64130361329658, 0, 0, 11.7728501222091, 0, -2.40312296813959, 0.485504156227609, 0, 0, 0, 10.2761860629321, 0, 0, -1.48323969741914, 0, 0.30276503540975, -0.0611677741841184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6079
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6080
    {4.05298244095217, 0, -1.58564993434419, 4.4848952846511, 4.28174419288837, 0, 0.191485421551264, 0, -3.75233260785875, -4.31161222746203, 0, 0, 0, 0, 18.8807171866294, 0, 0.844371341865038, 0, 1.18187368057056, 1.04463861754668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6081
    {0, 2.32115382989598, 0, 0, 0, 3.92428337406973, 0, 5.49285249860476, 1.21484853427001e-14, 0, 0, 0, 0, 0, 0, 17.3044631365565, 0, -1.73008591662714, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6082
    {2.65329983228433, 0, 4.15220619990513, 2.93605316083776, 0, 0, 2.63248931621764, 0, 9.82591326180785, -2.8226127713774, 0, 0, 0, 0, 0, 0, 11.6081867662439, 0, -3.09487177319466, 0.683876505540249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6083
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6084
    {0, 2.01017818278148, 0, 0, 0, 0, 0, 8.91928088068602, 1.76356325376492e-14, 0, 0, 0, 0, 0, 0, 0, 0, 16.8558564884489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6085
    {2.29782505861521, 0, 1.49829835452879, 5.50917601898535, 0, 0, 0, 0, 6.64803945320938, 4.13676892548485, 0, 0, 0, 0, 0, 0, 0, 0, 12.5636136423842, -3.55352656109507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6086
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6087
    {1.87616630392938, 0, 0, 6.2283092998577, 0, 0, 0, 0, 0, 11.0541524195338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11.6057691494799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6088
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6089
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
 
6090
    
 
6091
    const static double dmats1[35][35] = \
 
6092
    {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6093
    {3.16227766016838, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6094
    {5.47722557505166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6095
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6096
    {2.95803989154981, 5.61248608016091, -1.08012344973464, -0.763762615825977, 0, 1.12766252988532e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6097
    {2.29128784747793, 7.24568837309472, 4.18330013267038, -0.591607978309962, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6098
    {-2.64575131106459, 0, 9.66091783079296, 0.683130051063976, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6099
    {1.87082869338697, 0, 0, 4.34741302385683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6100
    {3.24037034920392, 0, 0, 7.52994023880667, 0, 0, 0, -1.40420976242894e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6101
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6102
    {2.74954541697351, 5.79655069847578, -1.67332005306815, -1.18321595661993, 7.74596669241484, -1.2, 0.346410161513776, -0.979795897113278, 0.282842712474625, 0.200000000000005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6103
    {2.32379000772444, 2.44948974278317, 2.82842712474619, -0.999999999999997, 9.16515138991168, 7.09929573971955, -2.04939015319192, -0.414039335605417, -0.478091443733761, 0.169030850945703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6104
    {1.80000000000001, -5.69209978830309, 4.38178046004133, -0.77459666924148, 0, 10.998181667894, 4.76235235991628, 0.962140470884725, -0.740656079818049, 0.130930734141596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6105
    {5.19615242270664, 0, -3.16227766016837, -2.23606797749979, 0, 0, 13.7477270848675, 0, 0.534522483824846, 0.377964473009225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6106
    {2.01246117974981, 2.12132034355964, -0.408248290463859, 3.17542648054293, 0, 0, 0, 7.17137165600634, -1.3801311186847, -1.56144011671765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6107
    {1.55884572681199, 2.73861278752583, 1.5811388300842, 2.45967477524977, 0, 0, 0, 9.2582009977255, 5.3452248382485, -1.20948631362952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6108
    {-1.79999999999999, 0, 3.65148371670111, -2.84018778721876, 0, 0, 0, 0, 12.3442679969673, 1.39659449751036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6109
    {1.27279220613578, 0, 0, 3.83405790253616, 0, 0, 0, 0, 0, 5.18459255872629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6110
    {2.20454076850485, 0, 0, 6.64078308635359, 0, 0, 0, 0, 0, 8.97997772825746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6111
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6112
    {2.56904651573303, 5.80288457473998, -2.01017818278148, -1.42141062443803, 8.14215222512715, -2.10229466468021, 0.728256234341421, -1.71651640581399, 0.594618725379067, 0.420458932936047, 9.81070843517429, -1.18450885369836, 0.3058388709206, -0.105945692672795, -1.02581475831036, 0.264864231681991, -0.0917516612761804, 0.216260739578394, -0.0749149177264392, -0.0529728463363962, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6113
    {2.26568606239552, 3.07059789431495, 1.77281052085584, -1.25356634105601, 2.39356776939085, 6.30376871403133, -2.78313372537746, -0.908295106229249, -0.524404424085077, 0.370809924354783, 11.1242977306435, 9.40174755792013, -2.42752078113806, 0.840917865872083, -0.301561193523227, -0.794200206656967, 0.350641890608831, 0.114434427054266, 0.0660687472643429, -0.0467176592151151, 0, 0, 0, 1.18413955033316e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6114
    {1.91485421551268, 1.29756443747035, 3.74574588632197, -1.05945692672795, -8.09173593712687, 5.01426536422407, 1.80936716113936, -0.383824736789366, -1.1080065755349, 0.313391585264, 0, 12.7134831207354, 8.2065180664829, -2.84282124887606, 1.01946290306866, -0.631738055305791, -0.227958835180081, 0.0483573714561658, 0.139595707137601, -0.0394836284566112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6115
    {1.48323969741914, 7.03562363973515, 4.06201920231798, -0.820651806648292, 0, -6.79705818718658, 5.88642506110457, -2.08116553882674, -1.2015614840698, 0.242752078113806, 0, 0, 14.8323969741913, 5.13809303146605, 0, 0.856348838577678, -0.741619848709567, 0.262202212042541, 0.151382517704874, -0.0305838870920586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6116
    {-3.42539535431071, 0, 9.38083151964686, 1.89521416591737, 0, 1.48502651407619e-14, -3.39852909359332, 0, -2.77488738510233, -0.560611910581396, 0, 0, 0, 17.7988763690296, 0, 0, 0.42817441928884, 0, 0.349602949390053, 0.0706304617818605, 0, 0, 0, 0, -1.76908227133537e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6117
    {2.02649122047609, 2.74642624930238, -0.792824967172093, 2.24244764232555, 2.14087209644419, -0.331662479035538, 0.095742710775634, 6.49923072370876, -1.87616630392936, -2.15580611373101, 0, 0, 0, 0, 9.44035859331469, -1.46249406456536, 0.42218567093252, -2.04706526287664, 0.59093684028528, 0.522319308773337, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6118
    {1.71269767715535, 1.16057691494799, 1.34011878852098, 1.89521416591738, 2.53311402559511, 1.96214168703486, -0.566421515598881, 2.74642624930237, 3.17129986868837, -1.82198870938951, 0, 0, 0, 0, 11.1699829238239, 8.65223156827827, -2.49768411251822, -0.865042958313569, -0.998865569685858, 0.441440386136648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6119
    {1.32664991614216, -2.69693703815182, 2.07610309995257, 1.46802658041888, 0, 3.03973683071413, 1.31624465810882, -6.382117875081, 4.91295663090391, -1.4113063856887, 0, 0, 0, 0, 0, 13.4039795085887, 5.80409338312195, 2.01017818278147, -1.54743588659732, 0.341938252770131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6120
    {3.82970843102535, 0, -1.49829835452879, 4.23782770691181, 0, 0, 3.79967103839267, 0, -3.54562104171168, -4.07409060843206, 0, 0, 0, 0, 0, 0, 16.7549743857359, 0, 1.11676565710082, 0.987090711415304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6121
    {1.48323969741913, 1.00508909139074, -0.193429485824663, 3.55615782880925, 0, 0, 0, 4.459640440343, -0.858258202906983, 2.67027285925187, 0, 0, 0, 0, 0, 0, 0, 8.42792824422443, -1.62195554683794, -2.29379153190448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6122
    {1.14891252930761, 1.29756443747036, 0.749149177264399, 2.75458800949267, 0, 0, 0, 5.75737105184053, 3.3240197266047, 2.06838446274242, 0, 0, 0, 0, 0, 0, 0, 10.8804085776374, 6.2818068211921, -1.77676328054753, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.02006749648391e-14, 0, 0},
 
6123
    {-1.32664991614216, 0, 1.73008591662714, -3.18072425757422, 0, 0, 0, 1.15266449376351e-14, 7.67649473578738, -2.38836465270397, 0, 0, 0, 0, 0, 0, 0, 0, 14.5072114368499, 2.05162951662072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6124
    {0.938083151964688, 0, 0, 3.11415464992885, 0, 0, 0, 0, 0, 5.52707620976692, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.80288457473997, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6125
    {1.6248076809272, 0, 0, 5.39387407630363, 0, 0, 0, 0, 0, 9.57317681262152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10.0508909139073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6126
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
 
6127
    
 
6128
    const static double dmats2[35][35] = \
 
6129
    {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6130
    {3.16227766016838, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6131
    {1.82574185835056, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6132
    {5.16397779494323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6133
    {2.95803989154981, 5.61248608016091, -1.08012344973464, -0.763762615825976, 0, 1.39411605579536e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6134
    {2.29128784747792, 1.44913767461894, 4.18330013267038, -0.591607978309961, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6135
    {1.3228756555323, 0, 3.86436713231718, -0.341565025531985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6136
    {1.87082869338697, 7.09929573971954, 0, 4.34741302385683, 0, 1.2137796469483e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6137
    {1.08012344973464, 0, 7.09929573971954, 2.50998007960223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6138
    {-3.81881307912987, 0, 0, 8.87411967464942, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6139
    {2.74954541697351, 5.79655069847578, -1.67332005306815, -1.18321595661993, 7.74596669241484, -1.19999999999999, 0.346410161513777, -0.97979589711328, 0.282842712474624, 0.200000000000005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6140
    {2.32379000772445, 2.44948974278317, 2.82842712474619, -0.999999999999998, 1.30930734141596, 7.09929573971955, -2.04939015319192, -0.414039335605417, -0.478091443733761, 0.169030850945707, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6141
    {1.80000000000001, 0.632455532033672, 4.38178046004133, -0.774596669241482, 0, 3.14233761939829, 4.76235235991627, -0.106904496764972, -0.740656079818045, 0.130930734141597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6142
    {1.03923048454133, 0, 3.16227766016838, -0.447213595499956, 0, 0, 5.8918830363718, 0, -0.534522483824849, 0.0755928946018436, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6143
    {2.0124611797498, 2.12132034355964, -0.408248290463861, 3.17542648054293, 9.07114735222144, 0, 0, 7.17137165600635, -1.3801311186847, -1.56144011671765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6144
    {1.558845726812, 0.547722557505166, 1.5811388300842, 2.45967477524977, 0, 9.07114735222146, 0, 1.85164019954509, 5.34522483824849, -1.20948631362952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6145
    {0.900000000000005, 0, 1.46059348668045, 1.42009389360939, 0, 0, 9.07114735222146, 0, 4.93770719878694, -0.698297248755174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6146
    {1.27279220613578, -6.26099033699941, 0, 3.83405790253616, 0, -1.33471233241901e-14, 0, 10.5830052442584, 1.61529151756054e-14, 5.18459255872629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6147
    {0.734846922834955, 0, -6.26099033699941, 2.21359436211787, 0, 0, 0, 0, 10.5830052442584, 2.99332590941916, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6148
    {5.7157676649773, 0, 0, -4.69574275274955, 0, 0, 0, 0, 0, 12.69960629311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6149
    {2.56904651573303, 5.80288457473998, -2.01017818278148, -1.42141062443803, 8.14215222512715, -2.10229466468021, 0.72825623434142, -1.71651640581399, 0.594618725379067, 0.420458932936046, 9.81070843517429, -1.18450885369836, 0.305838870920599, -0.105945692672794, -1.02581475831036, 0.264864231681991, -0.0917516612761805, 0.216260739578394, -0.0749149177264392, -0.052972846336396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6150
    {2.26568606239552, 3.07059789431495, 1.77281052085584, -1.25356634105602, 2.39356776939084, 6.30376871403133, -2.78313372537746, -0.908295106229248, -0.524404424085073, 0.370809924354783, 1.23603308118261, 9.40174755792013, -2.42752078113806, 0.840917865872083, -0.301561193523226, -0.794200206656968, 0.350641890608831, 0.114434427054266, 0.0660687472643423, -0.0467176592151165, 0, 0, 0, 1.09746923696279e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6151
    {1.91485421551268, 1.29756443747035, 3.74574588632197, -1.05945692672795, 0.404586796856347, 5.01426536422407, 1.80936716113937, -0.383824736789372, -1.1080065755349, 0.313391585264004, 0, 2.82521847127454, 8.2065180664829, -2.84282124887606, -0.0509731451534344, -0.631738055305788, -0.227958835180082, 0.0483573714561684, 0.139595707137601, -0.039483628456609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6152
    {1.48323969741914, 0.335029697130247, 4.06201920231798, -0.820651806648289, 0, 1.69926454679664, 5.88642506110457, -0.099103120896514, -1.2015614840698, 0.242752078113805, 0, 0, 4.94413232473044, 5.13809303146605, 0, -0.214087209644418, -0.741619848709568, 0.0124858196210747, 0.151382517704876, -0.0305838870920584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6153
    {0.856348838577678, 0, 2.68023757704196, -0.473803541479345, 0, 0, 5.09779364038992, 0, -0.792824967172097, 0.140152977645345, 0, 0, 0, 7.91061171956871, 0, 0, -0.642261628933257, 0, 0.0998865569685871, -0.0176576154454654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6154
    {2.02649122047609, 2.74642624930238, -0.792824967172095, 2.24244764232555, 2.14087209644419, -0.331662479035546, 0.0957427107756332, 6.49923072370876, -1.87616630392937, -2.15580611373101, 11.0554159678513, 0, 0, 0, 9.44035859331468, -1.46249406456535, 0.42218567093252, -2.04706526287664, 0.59093684028528, 0.522319308773341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6155
    {1.71269767715534, 1.16057691494799, 1.34011878852098, 1.89521416591737, 0.36187343222787, 1.96214168703486, -0.566421515598891, 2.74642624930238, 3.17129986868838, -1.82198870938951, 0, 11.0554159678513, 0, 0, 1.59571184626056, 8.65223156827827, -2.49768411251822, -0.865042958313572, -0.998865569685858, 0.441440386136647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6156
    {1.32664991614217, 0.299659670905757, 2.07610309995256, 1.46802658041888, 0, 0.868496237346881, 1.31624465810882, 0.709124208342336, 4.91295663090392, -1.4113063856887, 0, 0, 11.0554159678513, 0, 0, 3.82970843102535, 5.80409338312195, -0.223353131420161, -1.54743588659733, 0.341938252770126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6157
    {0.765941686205071, 0, 1.49829835452879, 0.847565541382364, 0, 0, 1.62843044502542, 0, 3.54562104171167, -0.814818121686411, 0, 0, 0, 11.0554159678513, 0, 0, 7.18070330817254, 0, -1.11676565710082, 0.197418142283063, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6158
    {1.48323969741914, 1.00508909139074, -0.193429485824663, 3.55615782880926, -8.46157280212812, 0, 0, 4.45964044034301, -0.858258202906987, 2.67027285925186, 0, 0, 0, 0, 12.4373429638327, 0, 0, 8.42792824422443, -1.62195554683794, -2.29379153190448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6159
    {1.1489125293076, 0.259512887494073, 0.749149177264395, 2.75458800949267, 0, -8.46157280212812, 0, 1.15147421036811, 3.32401972660469, 2.06838446274243, 0, 0, 0, 0, 0, 12.4373429638327, 0, 2.17608171552749, 6.2818068211921, -1.77676328054754, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6160
    {0.663324958071074, 0, 0.692034366650849, 1.59036212878711, 0, 0, -8.46157280212813, 0, 3.07059789431495, 1.19418232635198, 0, 0, 0, 0, 0, 0, 12.4373429638327, 0, 5.80288457473997, -1.02581475831036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6161
    {0.938083151964688, 7.62808987244126, 0, 3.11415464992885, 0, 0, 0, -7.5213980463361, 0, 5.52707620976691, 0, 0, 0, 0, 0, 0, 0, 14.2141062443803, 0, 5.80288457473998, 0, 0, 0, 0, 0, 1.03455020940032e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6162
    {0.541602560309059, 0, 7.62808987244125, 1.79795802543454, 0, 0, 0, 0, -7.52139804633611, 3.1910589375405, 0, 0, 0, 0, 0, 0, 0, 0, 14.2141062443803, 3.35029697130244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
 
6163
    {-5.36159180343549, 0, 0, 8.8994381845148, 0, 0, 0, 0, -1.07784467308941e-14, -5.26497863243527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.583123951777, 0, 0, 0, 0, 0, 1.2461107758246e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
 
6164
    
 
6165
    // Compute reference derivatives
 
6166
    // Declare pointer to array of derivatives on FIAT element
 
6167
    double *derivatives = new double [num_derivatives];
 
6168
    
 
6169
    // Declare coefficients
 
6170
    double coeff0_0 = 0;
 
6171
    double coeff0_1 = 0;
 
6172
    double coeff0_2 = 0;
 
6173
    double coeff0_3 = 0;
 
6174
    double coeff0_4 = 0;
 
6175
    double coeff0_5 = 0;
 
6176
    double coeff0_6 = 0;
 
6177
    double coeff0_7 = 0;
 
6178
    double coeff0_8 = 0;
 
6179
    double coeff0_9 = 0;
 
6180
    double coeff0_10 = 0;
 
6181
    double coeff0_11 = 0;
 
6182
    double coeff0_12 = 0;
 
6183
    double coeff0_13 = 0;
 
6184
    double coeff0_14 = 0;
 
6185
    double coeff0_15 = 0;
 
6186
    double coeff0_16 = 0;
 
6187
    double coeff0_17 = 0;
 
6188
    double coeff0_18 = 0;
 
6189
    double coeff0_19 = 0;
 
6190
    double coeff0_20 = 0;
 
6191
    double coeff0_21 = 0;
 
6192
    double coeff0_22 = 0;
 
6193
    double coeff0_23 = 0;
 
6194
    double coeff0_24 = 0;
 
6195
    double coeff0_25 = 0;
 
6196
    double coeff0_26 = 0;
 
6197
    double coeff0_27 = 0;
 
6198
    double coeff0_28 = 0;
 
6199
    double coeff0_29 = 0;
 
6200
    double coeff0_30 = 0;
 
6201
    double coeff0_31 = 0;
 
6202
    double coeff0_32 = 0;
 
6203
    double coeff0_33 = 0;
 
6204
    double coeff0_34 = 0;
 
6205
    
 
6206
    // Declare new coefficients
 
6207
    double new_coeff0_0 = 0;
 
6208
    double new_coeff0_1 = 0;
 
6209
    double new_coeff0_2 = 0;
 
6210
    double new_coeff0_3 = 0;
 
6211
    double new_coeff0_4 = 0;
 
6212
    double new_coeff0_5 = 0;
 
6213
    double new_coeff0_6 = 0;
 
6214
    double new_coeff0_7 = 0;
 
6215
    double new_coeff0_8 = 0;
 
6216
    double new_coeff0_9 = 0;
 
6217
    double new_coeff0_10 = 0;
 
6218
    double new_coeff0_11 = 0;
 
6219
    double new_coeff0_12 = 0;
 
6220
    double new_coeff0_13 = 0;
 
6221
    double new_coeff0_14 = 0;
 
6222
    double new_coeff0_15 = 0;
 
6223
    double new_coeff0_16 = 0;
 
6224
    double new_coeff0_17 = 0;
 
6225
    double new_coeff0_18 = 0;
 
6226
    double new_coeff0_19 = 0;
 
6227
    double new_coeff0_20 = 0;
 
6228
    double new_coeff0_21 = 0;
 
6229
    double new_coeff0_22 = 0;
 
6230
    double new_coeff0_23 = 0;
 
6231
    double new_coeff0_24 = 0;
 
6232
    double new_coeff0_25 = 0;
 
6233
    double new_coeff0_26 = 0;
 
6234
    double new_coeff0_27 = 0;
 
6235
    double new_coeff0_28 = 0;
 
6236
    double new_coeff0_29 = 0;
 
6237
    double new_coeff0_30 = 0;
 
6238
    double new_coeff0_31 = 0;
 
6239
    double new_coeff0_32 = 0;
 
6240
    double new_coeff0_33 = 0;
 
6241
    double new_coeff0_34 = 0;
 
6242
    
 
6243
    // Loop possible derivatives
 
6244
    for (unsigned int deriv_num = 0; deriv_num < num_derivatives; deriv_num++)
 
6245
    {
 
6246
      // Get values from coefficients array
 
6247
      new_coeff0_0 = coefficients0[dof][0];
 
6248
      new_coeff0_1 = coefficients0[dof][1];
 
6249
      new_coeff0_2 = coefficients0[dof][2];
 
6250
      new_coeff0_3 = coefficients0[dof][3];
 
6251
      new_coeff0_4 = coefficients0[dof][4];
 
6252
      new_coeff0_5 = coefficients0[dof][5];
 
6253
      new_coeff0_6 = coefficients0[dof][6];
 
6254
      new_coeff0_7 = coefficients0[dof][7];
 
6255
      new_coeff0_8 = coefficients0[dof][8];
 
6256
      new_coeff0_9 = coefficients0[dof][9];
 
6257
      new_coeff0_10 = coefficients0[dof][10];
 
6258
      new_coeff0_11 = coefficients0[dof][11];
 
6259
      new_coeff0_12 = coefficients0[dof][12];
 
6260
      new_coeff0_13 = coefficients0[dof][13];
 
6261
      new_coeff0_14 = coefficients0[dof][14];
 
6262
      new_coeff0_15 = coefficients0[dof][15];
 
6263
      new_coeff0_16 = coefficients0[dof][16];
 
6264
      new_coeff0_17 = coefficients0[dof][17];
 
6265
      new_coeff0_18 = coefficients0[dof][18];
 
6266
      new_coeff0_19 = coefficients0[dof][19];
 
6267
      new_coeff0_20 = coefficients0[dof][20];
 
6268
      new_coeff0_21 = coefficients0[dof][21];
 
6269
      new_coeff0_22 = coefficients0[dof][22];
 
6270
      new_coeff0_23 = coefficients0[dof][23];
 
6271
      new_coeff0_24 = coefficients0[dof][24];
 
6272
      new_coeff0_25 = coefficients0[dof][25];
 
6273
      new_coeff0_26 = coefficients0[dof][26];
 
6274
      new_coeff0_27 = coefficients0[dof][27];
 
6275
      new_coeff0_28 = coefficients0[dof][28];
 
6276
      new_coeff0_29 = coefficients0[dof][29];
 
6277
      new_coeff0_30 = coefficients0[dof][30];
 
6278
      new_coeff0_31 = coefficients0[dof][31];
 
6279
      new_coeff0_32 = coefficients0[dof][32];
 
6280
      new_coeff0_33 = coefficients0[dof][33];
 
6281
      new_coeff0_34 = coefficients0[dof][34];
 
6282
    
 
6283
      // Loop derivative order
 
6284
      for (unsigned int j = 0; j < n; j++)
 
6285
      {
 
6286
        // Update old coefficients
 
6287
        coeff0_0 = new_coeff0_0;
 
6288
        coeff0_1 = new_coeff0_1;
 
6289
        coeff0_2 = new_coeff0_2;
 
6290
        coeff0_3 = new_coeff0_3;
 
6291
        coeff0_4 = new_coeff0_4;
 
6292
        coeff0_5 = new_coeff0_5;
 
6293
        coeff0_6 = new_coeff0_6;
 
6294
        coeff0_7 = new_coeff0_7;
 
6295
        coeff0_8 = new_coeff0_8;
 
6296
        coeff0_9 = new_coeff0_9;
 
6297
        coeff0_10 = new_coeff0_10;
 
6298
        coeff0_11 = new_coeff0_11;
 
6299
        coeff0_12 = new_coeff0_12;
 
6300
        coeff0_13 = new_coeff0_13;
 
6301
        coeff0_14 = new_coeff0_14;
 
6302
        coeff0_15 = new_coeff0_15;
 
6303
        coeff0_16 = new_coeff0_16;
 
6304
        coeff0_17 = new_coeff0_17;
 
6305
        coeff0_18 = new_coeff0_18;
 
6306
        coeff0_19 = new_coeff0_19;
 
6307
        coeff0_20 = new_coeff0_20;
 
6308
        coeff0_21 = new_coeff0_21;
 
6309
        coeff0_22 = new_coeff0_22;
 
6310
        coeff0_23 = new_coeff0_23;
 
6311
        coeff0_24 = new_coeff0_24;
 
6312
        coeff0_25 = new_coeff0_25;
 
6313
        coeff0_26 = new_coeff0_26;
 
6314
        coeff0_27 = new_coeff0_27;
 
6315
        coeff0_28 = new_coeff0_28;
 
6316
        coeff0_29 = new_coeff0_29;
 
6317
        coeff0_30 = new_coeff0_30;
 
6318
        coeff0_31 = new_coeff0_31;
 
6319
        coeff0_32 = new_coeff0_32;
 
6320
        coeff0_33 = new_coeff0_33;
 
6321
        coeff0_34 = new_coeff0_34;
 
6322
    
 
6323
        if(combinations[deriv_num][j] == 0)
 
6324
        {
 
6325
          new_coeff0_0 = coeff0_0*dmats0[0][0] + coeff0_1*dmats0[1][0] + coeff0_2*dmats0[2][0] + coeff0_3*dmats0[3][0] + coeff0_4*dmats0[4][0] + coeff0_5*dmats0[5][0] + coeff0_6*dmats0[6][0] + coeff0_7*dmats0[7][0] + coeff0_8*dmats0[8][0] + coeff0_9*dmats0[9][0] + coeff0_10*dmats0[10][0] + coeff0_11*dmats0[11][0] + coeff0_12*dmats0[12][0] + coeff0_13*dmats0[13][0] + coeff0_14*dmats0[14][0] + coeff0_15*dmats0[15][0] + coeff0_16*dmats0[16][0] + coeff0_17*dmats0[17][0] + coeff0_18*dmats0[18][0] + coeff0_19*dmats0[19][0] + coeff0_20*dmats0[20][0] + coeff0_21*dmats0[21][0] + coeff0_22*dmats0[22][0] + coeff0_23*dmats0[23][0] + coeff0_24*dmats0[24][0] + coeff0_25*dmats0[25][0] + coeff0_26*dmats0[26][0] + coeff0_27*dmats0[27][0] + coeff0_28*dmats0[28][0] + coeff0_29*dmats0[29][0] + coeff0_30*dmats0[30][0] + coeff0_31*dmats0[31][0] + coeff0_32*dmats0[32][0] + coeff0_33*dmats0[33][0] + coeff0_34*dmats0[34][0];
 
6326
          new_coeff0_1 = coeff0_0*dmats0[0][1] + coeff0_1*dmats0[1][1] + coeff0_2*dmats0[2][1] + coeff0_3*dmats0[3][1] + coeff0_4*dmats0[4][1] + coeff0_5*dmats0[5][1] + coeff0_6*dmats0[6][1] + coeff0_7*dmats0[7][1] + coeff0_8*dmats0[8][1] + coeff0_9*dmats0[9][1] + coeff0_10*dmats0[10][1] + coeff0_11*dmats0[11][1] + coeff0_12*dmats0[12][1] + coeff0_13*dmats0[13][1] + coeff0_14*dmats0[14][1] + coeff0_15*dmats0[15][1] + coeff0_16*dmats0[16][1] + coeff0_17*dmats0[17][1] + coeff0_18*dmats0[18][1] + coeff0_19*dmats0[19][1] + coeff0_20*dmats0[20][1] + coeff0_21*dmats0[21][1] + coeff0_22*dmats0[22][1] + coeff0_23*dmats0[23][1] + coeff0_24*dmats0[24][1] + coeff0_25*dmats0[25][1] + coeff0_26*dmats0[26][1] + coeff0_27*dmats0[27][1] + coeff0_28*dmats0[28][1] + coeff0_29*dmats0[29][1] + coeff0_30*dmats0[30][1] + coeff0_31*dmats0[31][1] + coeff0_32*dmats0[32][1] + coeff0_33*dmats0[33][1] + coeff0_34*dmats0[34][1];
 
6327
          new_coeff0_2 = coeff0_0*dmats0[0][2] + coeff0_1*dmats0[1][2] + coeff0_2*dmats0[2][2] + coeff0_3*dmats0[3][2] + coeff0_4*dmats0[4][2] + coeff0_5*dmats0[5][2] + coeff0_6*dmats0[6][2] + coeff0_7*dmats0[7][2] + coeff0_8*dmats0[8][2] + coeff0_9*dmats0[9][2] + coeff0_10*dmats0[10][2] + coeff0_11*dmats0[11][2] + coeff0_12*dmats0[12][2] + coeff0_13*dmats0[13][2] + coeff0_14*dmats0[14][2] + coeff0_15*dmats0[15][2] + coeff0_16*dmats0[16][2] + coeff0_17*dmats0[17][2] + coeff0_18*dmats0[18][2] + coeff0_19*dmats0[19][2] + coeff0_20*dmats0[20][2] + coeff0_21*dmats0[21][2] + coeff0_22*dmats0[22][2] + coeff0_23*dmats0[23][2] + coeff0_24*dmats0[24][2] + coeff0_25*dmats0[25][2] + coeff0_26*dmats0[26][2] + coeff0_27*dmats0[27][2] + coeff0_28*dmats0[28][2] + coeff0_29*dmats0[29][2] + coeff0_30*dmats0[30][2] + coeff0_31*dmats0[31][2] + coeff0_32*dmats0[32][2] + coeff0_33*dmats0[33][2] + coeff0_34*dmats0[34][2];
 
6328
          new_coeff0_3 = coeff0_0*dmats0[0][3] + coeff0_1*dmats0[1][3] + coeff0_2*dmats0[2][3] + coeff0_3*dmats0[3][3] + coeff0_4*dmats0[4][3] + coeff0_5*dmats0[5][3] + coeff0_6*dmats0[6][3] + coeff0_7*dmats0[7][3] + coeff0_8*dmats0[8][3] + coeff0_9*dmats0[9][3] + coeff0_10*dmats0[10][3] + coeff0_11*dmats0[11][3] + coeff0_12*dmats0[12][3] + coeff0_13*dmats0[13][3] + coeff0_14*dmats0[14][3] + coeff0_15*dmats0[15][3] + coeff0_16*dmats0[16][3] + coeff0_17*dmats0[17][3] + coeff0_18*dmats0[18][3] + coeff0_19*dmats0[19][3] + coeff0_20*dmats0[20][3] + coeff0_21*dmats0[21][3] + coeff0_22*dmats0[22][3] + coeff0_23*dmats0[23][3] + coeff0_24*dmats0[24][3] + coeff0_25*dmats0[25][3] + coeff0_26*dmats0[26][3] + coeff0_27*dmats0[27][3] + coeff0_28*dmats0[28][3] + coeff0_29*dmats0[29][3] + coeff0_30*dmats0[30][3] + coeff0_31*dmats0[31][3] + coeff0_32*dmats0[32][3] + coeff0_33*dmats0[33][3] + coeff0_34*dmats0[34][3];
 
6329
          new_coeff0_4 = coeff0_0*dmats0[0][4] + coeff0_1*dmats0[1][4] + coeff0_2*dmats0[2][4] + coeff0_3*dmats0[3][4] + coeff0_4*dmats0[4][4] + coeff0_5*dmats0[5][4] + coeff0_6*dmats0[6][4] + coeff0_7*dmats0[7][4] + coeff0_8*dmats0[8][4] + coeff0_9*dmats0[9][4] + coeff0_10*dmats0[10][4] + coeff0_11*dmats0[11][4] + coeff0_12*dmats0[12][4] + coeff0_13*dmats0[13][4] + coeff0_14*dmats0[14][4] + coeff0_15*dmats0[15][4] + coeff0_16*dmats0[16][4] + coeff0_17*dmats0[17][4] + coeff0_18*dmats0[18][4] + coeff0_19*dmats0[19][4] + coeff0_20*dmats0[20][4] + coeff0_21*dmats0[21][4] + coeff0_22*dmats0[22][4] + coeff0_23*dmats0[23][4] + coeff0_24*dmats0[24][4] + coeff0_25*dmats0[25][4] + coeff0_26*dmats0[26][4] + coeff0_27*dmats0[27][4] + coeff0_28*dmats0[28][4] + coeff0_29*dmats0[29][4] + coeff0_30*dmats0[30][4] + coeff0_31*dmats0[31][4] + coeff0_32*dmats0[32][4] + coeff0_33*dmats0[33][4] + coeff0_34*dmats0[34][4];
 
6330
          new_coeff0_5 = coeff0_0*dmats0[0][5] + coeff0_1*dmats0[1][5] + coeff0_2*dmats0[2][5] + coeff0_3*dmats0[3][5] + coeff0_4*dmats0[4][5] + coeff0_5*dmats0[5][5] + coeff0_6*dmats0[6][5] + coeff0_7*dmats0[7][5] + coeff0_8*dmats0[8][5] + coeff0_9*dmats0[9][5] + coeff0_10*dmats0[10][5] + coeff0_11*dmats0[11][5] + coeff0_12*dmats0[12][5] + coeff0_13*dmats0[13][5] + coeff0_14*dmats0[14][5] + coeff0_15*dmats0[15][5] + coeff0_16*dmats0[16][5] + coeff0_17*dmats0[17][5] + coeff0_18*dmats0[18][5] + coeff0_19*dmats0[19][5] + coeff0_20*dmats0[20][5] + coeff0_21*dmats0[21][5] + coeff0_22*dmats0[22][5] + coeff0_23*dmats0[23][5] + coeff0_24*dmats0[24][5] + coeff0_25*dmats0[25][5] + coeff0_26*dmats0[26][5] + coeff0_27*dmats0[27][5] + coeff0_28*dmats0[28][5] + coeff0_29*dmats0[29][5] + coeff0_30*dmats0[30][5] + coeff0_31*dmats0[31][5] + coeff0_32*dmats0[32][5] + coeff0_33*dmats0[33][5] + coeff0_34*dmats0[34][5];
 
6331
          new_coeff0_6 = coeff0_0*dmats0[0][6] + coeff0_1*dmats0[1][6] + coeff0_2*dmats0[2][6] + coeff0_3*dmats0[3][6] + coeff0_4*dmats0[4][6] + coeff0_5*dmats0[5][6] + coeff0_6*dmats0[6][6] + coeff0_7*dmats0[7][6] + coeff0_8*dmats0[8][6] + coeff0_9*dmats0[9][6] + coeff0_10*dmats0[10][6] + coeff0_11*dmats0[11][6] + coeff0_12*dmats0[12][6] + coeff0_13*dmats0[13][6] + coeff0_14*dmats0[14][6] + coeff0_15*dmats0[15][6] + coeff0_16*dmats0[16][6] + coeff0_17*dmats0[17][6] + coeff0_18*dmats0[18][6] + coeff0_19*dmats0[19][6] + coeff0_20*dmats0[20][6] + coeff0_21*dmats0[21][6] + coeff0_22*dmats0[22][6] + coeff0_23*dmats0[23][6] + coeff0_24*dmats0[24][6] + coeff0_25*dmats0[25][6] + coeff0_26*dmats0[26][6] + coeff0_27*dmats0[27][6] + coeff0_28*dmats0[28][6] + coeff0_29*dmats0[29][6] + coeff0_30*dmats0[30][6] + coeff0_31*dmats0[31][6] + coeff0_32*dmats0[32][6] + coeff0_33*dmats0[33][6] + coeff0_34*dmats0[34][6];
 
6332
          new_coeff0_7 = coeff0_0*dmats0[0][7] + coeff0_1*dmats0[1][7] + coeff0_2*dmats0[2][7] + coeff0_3*dmats0[3][7] + coeff0_4*dmats0[4][7] + coeff0_5*dmats0[5][7] + coeff0_6*dmats0[6][7] + coeff0_7*dmats0[7][7] + coeff0_8*dmats0[8][7] + coeff0_9*dmats0[9][7] + coeff0_10*dmats0[10][7] + coeff0_11*dmats0[11][7] + coeff0_12*dmats0[12][7] + coeff0_13*dmats0[13][7] + coeff0_14*dmats0[14][7] + coeff0_15*dmats0[15][7] + coeff0_16*dmats0[16][7] + coeff0_17*dmats0[17][7] + coeff0_18*dmats0[18][7] + coeff0_19*dmats0[19][7] + coeff0_20*dmats0[20][7] + coeff0_21*dmats0[21][7] + coeff0_22*dmats0[22][7] + coeff0_23*dmats0[23][7] + coeff0_24*dmats0[24][7] + coeff0_25*dmats0[25][7] + coeff0_26*dmats0[26][7] + coeff0_27*dmats0[27][7] + coeff0_28*dmats0[28][7] + coeff0_29*dmats0[29][7] + coeff0_30*dmats0[30][7] + coeff0_31*dmats0[31][7] + coeff0_32*dmats0[32][7] + coeff0_33*dmats0[33][7] + coeff0_34*dmats0[34][7];
 
6333
          new_coeff0_8 = coeff0_0*dmats0[0][8] + coeff0_1*dmats0[1][8] + coeff0_2*dmats0[2][8] + coeff0_3*dmats0[3][8] + coeff0_4*dmats0[4][8] + coeff0_5*dmats0[5][8] + coeff0_6*dmats0[6][8] + coeff0_7*dmats0[7][8] + coeff0_8*dmats0[8][8] + coeff0_9*dmats0[9][8] + coeff0_10*dmats0[10][8] + coeff0_11*dmats0[11][8] + coeff0_12*dmats0[12][8] + coeff0_13*dmats0[13][8] + coeff0_14*dmats0[14][8] + coeff0_15*dmats0[15][8] + coeff0_16*dmats0[16][8] + coeff0_17*dmats0[17][8] + coeff0_18*dmats0[18][8] + coeff0_19*dmats0[19][8] + coeff0_20*dmats0[20][8] + coeff0_21*dmats0[21][8] + coeff0_22*dmats0[22][8] + coeff0_23*dmats0[23][8] + coeff0_24*dmats0[24][8] + coeff0_25*dmats0[25][8] + coeff0_26*dmats0[26][8] + coeff0_27*dmats0[27][8] + coeff0_28*dmats0[28][8] + coeff0_29*dmats0[29][8] + coeff0_30*dmats0[30][8] + coeff0_31*dmats0[31][8] + coeff0_32*dmats0[32][8] + coeff0_33*dmats0[33][8] + coeff0_34*dmats0[34][8];
 
6334
          new_coeff0_9 = coeff0_0*dmats0[0][9] + coeff0_1*dmats0[1][9] + coeff0_2*dmats0[2][9] + coeff0_3*dmats0[3][9] + coeff0_4*dmats0[4][9] + coeff0_5*dmats0[5][9] + coeff0_6*dmats0[6][9] + coeff0_7*dmats0[7][9] + coeff0_8*dmats0[8][9] + coeff0_9*dmats0[9][9] + coeff0_10*dmats0[10][9] + coeff0_11*dmats0[11][9] + coeff0_12*dmats0[12][9] + coeff0_13*dmats0[13][9] + coeff0_14*dmats0[14][9] + coeff0_15*dmats0[15][9] + coeff0_16*dmats0[16][9] + coeff0_17*dmats0[17][9] + coeff0_18*dmats0[18][9] + coeff0_19*dmats0[19][9] + coeff0_20*dmats0[20][9] + coeff0_21*dmats0[21][9] + coeff0_22*dmats0[22][9] + coeff0_23*dmats0[23][9] + coeff0_24*dmats0[24][9] + coeff0_25*dmats0[25][9] + coeff0_26*dmats0[26][9] + coeff0_27*dmats0[27][9] + coeff0_28*dmats0[28][9] + coeff0_29*dmats0[29][9] + coeff0_30*dmats0[30][9] + coeff0_31*dmats0[31][9] + coeff0_32*dmats0[32][9] + coeff0_33*dmats0[33][9] + coeff0_34*dmats0[34][9];
 
6335
          new_coeff0_10 = coeff0_0*dmats0[0][10] + coeff0_1*dmats0[1][10] + coeff0_2*dmats0[2][10] + coeff0_3*dmats0[3][10] + coeff0_4*dmats0[4][10] + coeff0_5*dmats0[5][10] + coeff0_6*dmats0[6][10] + coeff0_7*dmats0[7][10] + coeff0_8*dmats0[8][10] + coeff0_9*dmats0[9][10] + coeff0_10*dmats0[10][10] + coeff0_11*dmats0[11][10] + coeff0_12*dmats0[12][10] + coeff0_13*dmats0[13][10] + coeff0_14*dmats0[14][10] + coeff0_15*dmats0[15][10] + coeff0_16*dmats0[16][10] + coeff0_17*dmats0[17][10] + coeff0_18*dmats0[18][10] + coeff0_19*dmats0[19][10] + coeff0_20*dmats0[20][10] + coeff0_21*dmats0[21][10] + coeff0_22*dmats0[22][10] + coeff0_23*dmats0[23][10] + coeff0_24*dmats0[24][10] + coeff0_25*dmats0[25][10] + coeff0_26*dmats0[26][10] + coeff0_27*dmats0[27][10] + coeff0_28*dmats0[28][10] + coeff0_29*dmats0[29][10] + coeff0_30*dmats0[30][10] + coeff0_31*dmats0[31][10] + coeff0_32*dmats0[32][10] + coeff0_33*dmats0[33][10] + coeff0_34*dmats0[34][10];
 
6336
          new_coeff0_11 = coeff0_0*dmats0[0][11] + coeff0_1*dmats0[1][11] + coeff0_2*dmats0[2][11] + coeff0_3*dmats0[3][11] + coeff0_4*dmats0[4][11] + coeff0_5*dmats0[5][11] + coeff0_6*dmats0[6][11] + coeff0_7*dmats0[7][11] + coeff0_8*dmats0[8][11] + coeff0_9*dmats0[9][11] + coeff0_10*dmats0[10][11] + coeff0_11*dmats0[11][11] + coeff0_12*dmats0[12][11] + coeff0_13*dmats0[13][11] + coeff0_14*dmats0[14][11] + coeff0_15*dmats0[15][11] + coeff0_16*dmats0[16][11] + coeff0_17*dmats0[17][11] + coeff0_18*dmats0[18][11] + coeff0_19*dmats0[19][11] + coeff0_20*dmats0[20][11] + coeff0_21*dmats0[21][11] + coeff0_22*dmats0[22][11] + coeff0_23*dmats0[23][11] + coeff0_24*dmats0[24][11] + coeff0_25*dmats0[25][11] + coeff0_26*dmats0[26][11] + coeff0_27*dmats0[27][11] + coeff0_28*dmats0[28][11] + coeff0_29*dmats0[29][11] + coeff0_30*dmats0[30][11] + coeff0_31*dmats0[31][11] + coeff0_32*dmats0[32][11] + coeff0_33*dmats0[33][11] + coeff0_34*dmats0[34][11];
 
6337
          new_coeff0_12 = coeff0_0*dmats0[0][12] + coeff0_1*dmats0[1][12] + coeff0_2*dmats0[2][12] + coeff0_3*dmats0[3][12] + coeff0_4*dmats0[4][12] + coeff0_5*dmats0[5][12] + coeff0_6*dmats0[6][12] + coeff0_7*dmats0[7][12] + coeff0_8*dmats0[8][12] + coeff0_9*dmats0[9][12] + coeff0_10*dmats0[10][12] + coeff0_11*dmats0[11][12] + coeff0_12*dmats0[12][12] + coeff0_13*dmats0[13][12] + coeff0_14*dmats0[14][12] + coeff0_15*dmats0[15][12] + coeff0_16*dmats0[16][12] + coeff0_17*dmats0[17][12] + coeff0_18*dmats0[18][12] + coeff0_19*dmats0[19][12] + coeff0_20*dmats0[20][12] + coeff0_21*dmats0[21][12] + coeff0_22*dmats0[22][12] + coeff0_23*dmats0[23][12] + coeff0_24*dmats0[24][12] + coeff0_25*dmats0[25][12] + coeff0_26*dmats0[26][12] + coeff0_27*dmats0[27][12] + coeff0_28*dmats0[28][12] + coeff0_29*dmats0[29][12] + coeff0_30*dmats0[30][12] + coeff0_31*dmats0[31][12] + coeff0_32*dmats0[32][12] + coeff0_33*dmats0[33][12] + coeff0_34*dmats0[34][12];
 
6338
          new_coeff0_13 = coeff0_0*dmats0[0][13] + coeff0_1*dmats0[1][13] + coeff0_2*dmats0[2][13] + coeff0_3*dmats0[3][13] + coeff0_4*dmats0[4][13] + coeff0_5*dmats0[5][13] + coeff0_6*dmats0[6][13] + coeff0_7*dmats0[7][13] + coeff0_8*dmats0[8][13] + coeff0_9*dmats0[9][13] + coeff0_10*dmats0[10][13] + coeff0_11*dmats0[11][13] + coeff0_12*dmats0[12][13] + coeff0_13*dmats0[13][13] + coeff0_14*dmats0[14][13] + coeff0_15*dmats0[15][13] + coeff0_16*dmats0[16][13] + coeff0_17*dmats0[17][13] + coeff0_18*dmats0[18][13] + coeff0_19*dmats0[19][13] + coeff0_20*dmats0[20][13] + coeff0_21*dmats0[21][13] + coeff0_22*dmats0[22][13] + coeff0_23*dmats0[23][13] + coeff0_24*dmats0[24][13] + coeff0_25*dmats0[25][13] + coeff0_26*dmats0[26][13] + coeff0_27*dmats0[27][13] + coeff0_28*dmats0[28][13] + coeff0_29*dmats0[29][13] + coeff0_30*dmats0[30][13] + coeff0_31*dmats0[31][13] + coeff0_32*dmats0[32][13] + coeff0_33*dmats0[33][13] + coeff0_34*dmats0[34][13];
 
6339
          new_coeff0_14 = coeff0_0*dmats0[0][14] + coeff0_1*dmats0[1][14] + coeff0_2*dmats0[2][14] + coeff0_3*dmats0[3][14] + coeff0_4*dmats0[4][14] + coeff0_5*dmats0[5][14] + coeff0_6*dmats0[6][14] + coeff0_7*dmats0[7][14] + coeff0_8*dmats0[8][14] + coeff0_9*dmats0[9][14] + coeff0_10*dmats0[10][14] + coeff0_11*dmats0[11][14] + coeff0_12*dmats0[12][14] + coeff0_13*dmats0[13][14] + coeff0_14*dmats0[14][14] + coeff0_15*dmats0[15][14] + coeff0_16*dmats0[16][14] + coeff0_17*dmats0[17][14] + coeff0_18*dmats0[18][14] + coeff0_19*dmats0[19][14] + coeff0_20*dmats0[20][14] + coeff0_21*dmats0[21][14] + coeff0_22*dmats0[22][14] + coeff0_23*dmats0[23][14] + coeff0_24*dmats0[24][14] + coeff0_25*dmats0[25][14] + coeff0_26*dmats0[26][14] + coeff0_27*dmats0[27][14] + coeff0_28*dmats0[28][14] + coeff0_29*dmats0[29][14] + coeff0_30*dmats0[30][14] + coeff0_31*dmats0[31][14] + coeff0_32*dmats0[32][14] + coeff0_33*dmats0[33][14] + coeff0_34*dmats0[34][14];
 
6340
          new_coeff0_15 = coeff0_0*dmats0[0][15] + coeff0_1*dmats0[1][15] + coeff0_2*dmats0[2][15] + coeff0_3*dmats0[3][15] + coeff0_4*dmats0[4][15] + coeff0_5*dmats0[5][15] + coeff0_6*dmats0[6][15] + coeff0_7*dmats0[7][15] + coeff0_8*dmats0[8][15] + coeff0_9*dmats0[9][15] + coeff0_10*dmats0[10][15] + coeff0_11*dmats0[11][15] + coeff0_12*dmats0[12][15] + coeff0_13*dmats0[13][15] + coeff0_14*dmats0[14][15] + coeff0_15*dmats0[15][15] + coeff0_16*dmats0[16][15] + coeff0_17*dmats0[17][15] + coeff0_18*dmats0[18][15] + coeff0_19*dmats0[19][15] + coeff0_20*dmats0[20][15] + coeff0_21*dmats0[21][15] + coeff0_22*dmats0[22][15] + coeff0_23*dmats0[23][15] + coeff0_24*dmats0[24][15] + coeff0_25*dmats0[25][15] + coeff0_26*dmats0[26][15] + coeff0_27*dmats0[27][15] + coeff0_28*dmats0[28][15] + coeff0_29*dmats0[29][15] + coeff0_30*dmats0[30][15] + coeff0_31*dmats0[31][15] + coeff0_32*dmats0[32][15] + coeff0_33*dmats0[33][15] + coeff0_34*dmats0[34][15];
 
6341
          new_coeff0_16 = coeff0_0*dmats0[0][16] + coeff0_1*dmats0[1][16] + coeff0_2*dmats0[2][16] + coeff0_3*dmats0[3][16] + coeff0_4*dmats0[4][16] + coeff0_5*dmats0[5][16] + coeff0_6*dmats0[6][16] + coeff0_7*dmats0[7][16] + coeff0_8*dmats0[8][16] + coeff0_9*dmats0[9][16] + coeff0_10*dmats0[10][16] + coeff0_11*dmats0[11][16] + coeff0_12*dmats0[12][16] + coeff0_13*dmats0[13][16] + coeff0_14*dmats0[14][16] + coeff0_15*dmats0[15][16] + coeff0_16*dmats0[16][16] + coeff0_17*dmats0[17][16] + coeff0_18*dmats0[18][16] + coeff0_19*dmats0[19][16] + coeff0_20*dmats0[20][16] + coeff0_21*dmats0[21][16] + coeff0_22*dmats0[22][16] + coeff0_23*dmats0[23][16] + coeff0_24*dmats0[24][16] + coeff0_25*dmats0[25][16] + coeff0_26*dmats0[26][16] + coeff0_27*dmats0[27][16] + coeff0_28*dmats0[28][16] + coeff0_29*dmats0[29][16] + coeff0_30*dmats0[30][16] + coeff0_31*dmats0[31][16] + coeff0_32*dmats0[32][16] + coeff0_33*dmats0[33][16] + coeff0_34*dmats0[34][16];
 
6342
          new_coeff0_17 = coeff0_0*dmats0[0][17] + coeff0_1*dmats0[1][17] + coeff0_2*dmats0[2][17] + coeff0_3*dmats0[3][17] + coeff0_4*dmats0[4][17] + coeff0_5*dmats0[5][17] + coeff0_6*dmats0[6][17] + coeff0_7*dmats0[7][17] + coeff0_8*dmats0[8][17] + coeff0_9*dmats0[9][17] + coeff0_10*dmats0[10][17] + coeff0_11*dmats0[11][17] + coeff0_12*dmats0[12][17] + coeff0_13*dmats0[13][17] + coeff0_14*dmats0[14][17] + coeff0_15*dmats0[15][17] + coeff0_16*dmats0[16][17] + coeff0_17*dmats0[17][17] + coeff0_18*dmats0[18][17] + coeff0_19*dmats0[19][17] + coeff0_20*dmats0[20][17] + coeff0_21*dmats0[21][17] + coeff0_22*dmats0[22][17] + coeff0_23*dmats0[23][17] + coeff0_24*dmats0[24][17] + coeff0_25*dmats0[25][17] + coeff0_26*dmats0[26][17] + coeff0_27*dmats0[27][17] + coeff0_28*dmats0[28][17] + coeff0_29*dmats0[29][17] + coeff0_30*dmats0[30][17] + coeff0_31*dmats0[31][17] + coeff0_32*dmats0[32][17] + coeff0_33*dmats0[33][17] + coeff0_34*dmats0[34][17];
 
6343
          new_coeff0_18 = coeff0_0*dmats0[0][18] + coeff0_1*dmats0[1][18] + coeff0_2*dmats0[2][18] + coeff0_3*dmats0[3][18] + coeff0_4*dmats0[4][18] + coeff0_5*dmats0[5][18] + coeff0_6*dmats0[6][18] + coeff0_7*dmats0[7][18] + coeff0_8*dmats0[8][18] + coeff0_9*dmats0[9][18] + coeff0_10*dmats0[10][18] + coeff0_11*dmats0[11][18] + coeff0_12*dmats0[12][18] + coeff0_13*dmats0[13][18] + coeff0_14*dmats0[14][18] + coeff0_15*dmats0[15][18] + coeff0_16*dmats0[16][18] + coeff0_17*dmats0[17][18] + coeff0_18*dmats0[18][18] + coeff0_19*dmats0[19][18] + coeff0_20*dmats0[20][18] + coeff0_21*dmats0[21][18] + coeff0_22*dmats0[22][18] + coeff0_23*dmats0[23][18] + coeff0_24*dmats0[24][18] + coeff0_25*dmats0[25][18] + coeff0_26*dmats0[26][18] + coeff0_27*dmats0[27][18] + coeff0_28*dmats0[28][18] + coeff0_29*dmats0[29][18] + coeff0_30*dmats0[30][18] + coeff0_31*dmats0[31][18] + coeff0_32*dmats0[32][18] + coeff0_33*dmats0[33][18] + coeff0_34*dmats0[34][18];
 
6344
          new_coeff0_19 = coeff0_0*dmats0[0][19] + coeff0_1*dmats0[1][19] + coeff0_2*dmats0[2][19] + coeff0_3*dmats0[3][19] + coeff0_4*dmats0[4][19] + coeff0_5*dmats0[5][19] + coeff0_6*dmats0[6][19] + coeff0_7*dmats0[7][19] + coeff0_8*dmats0[8][19] + coeff0_9*dmats0[9][19] + coeff0_10*dmats0[10][19] + coeff0_11*dmats0[11][19] + coeff0_12*dmats0[12][19] + coeff0_13*dmats0[13][19] + coeff0_14*dmats0[14][19] + coeff0_15*dmats0[15][19] + coeff0_16*dmats0[16][19] + coeff0_17*dmats0[17][19] + coeff0_18*dmats0[18][19] + coeff0_19*dmats0[19][19] + coeff0_20*dmats0[20][19] + coeff0_21*dmats0[21][19] + coeff0_22*dmats0[22][19] + coeff0_23*dmats0[23][19] + coeff0_24*dmats0[24][19] + coeff0_25*dmats0[25][19] + coeff0_26*dmats0[26][19] + coeff0_27*dmats0[27][19] + coeff0_28*dmats0[28][19] + coeff0_29*dmats0[29][19] + coeff0_30*dmats0[30][19] + coeff0_31*dmats0[31][19] + coeff0_32*dmats0[32][19] + coeff0_33*dmats0[33][19] + coeff0_34*dmats0[34][19];
 
6345
          new_coeff0_20 = coeff0_0*dmats0[0][20] + coeff0_1*dmats0[1][20] + coeff0_2*dmats0[2][20] + coeff0_3*dmats0[3][20] + coeff0_4*dmats0[4][20] + coeff0_5*dmats0[5][20] + coeff0_6*dmats0[6][20] + coeff0_7*dmats0[7][20] + coeff0_8*dmats0[8][20] + coeff0_9*dmats0[9][20] + coeff0_10*dmats0[10][20] + coeff0_11*dmats0[11][20] + coeff0_12*dmats0[12][20] + coeff0_13*dmats0[13][20] + coeff0_14*dmats0[14][20] + coeff0_15*dmats0[15][20] + coeff0_16*dmats0[16][20] + coeff0_17*dmats0[17][20] + coeff0_18*dmats0[18][20] + coeff0_19*dmats0[19][20] + coeff0_20*dmats0[20][20] + coeff0_21*dmats0[21][20] + coeff0_22*dmats0[22][20] + coeff0_23*dmats0[23][20] + coeff0_24*dmats0[24][20] + coeff0_25*dmats0[25][20] + coeff0_26*dmats0[26][20] + coeff0_27*dmats0[27][20] + coeff0_28*dmats0[28][20] + coeff0_29*dmats0[29][20] + coeff0_30*dmats0[30][20] + coeff0_31*dmats0[31][20] + coeff0_32*dmats0[32][20] + coeff0_33*dmats0[33][20] + coeff0_34*dmats0[34][20];
 
6346
          new_coeff0_21 = coeff0_0*dmats0[0][21] + coeff0_1*dmats0[1][21] + coeff0_2*dmats0[2][21] + coeff0_3*dmats0[3][21] + coeff0_4*dmats0[4][21] + coeff0_5*dmats0[5][21] + coeff0_6*dmats0[6][21] + coeff0_7*dmats0[7][21] + coeff0_8*dmats0[8][21] + coeff0_9*dmats0[9][21] + coeff0_10*dmats0[10][21] + coeff0_11*dmats0[11][21] + coeff0_12*dmats0[12][21] + coeff0_13*dmats0[13][21] + coeff0_14*dmats0[14][21] + coeff0_15*dmats0[15][21] + coeff0_16*dmats0[16][21] + coeff0_17*dmats0[17][21] + coeff0_18*dmats0[18][21] + coeff0_19*dmats0[19][21] + coeff0_20*dmats0[20][21] + coeff0_21*dmats0[21][21] + coeff0_22*dmats0[22][21] + coeff0_23*dmats0[23][21] + coeff0_24*dmats0[24][21] + coeff0_25*dmats0[25][21] + coeff0_26*dmats0[26][21] + coeff0_27*dmats0[27][21] + coeff0_28*dmats0[28][21] + coeff0_29*dmats0[29][21] + coeff0_30*dmats0[30][21] + coeff0_31*dmats0[31][21] + coeff0_32*dmats0[32][21] + coeff0_33*dmats0[33][21] + coeff0_34*dmats0[34][21];
 
6347
          new_coeff0_22 = coeff0_0*dmats0[0][22] + coeff0_1*dmats0[1][22] + coeff0_2*dmats0[2][22] + coeff0_3*dmats0[3][22] + coeff0_4*dmats0[4][22] + coeff0_5*dmats0[5][22] + coeff0_6*dmats0[6][22] + coeff0_7*dmats0[7][22] + coeff0_8*dmats0[8][22] + coeff0_9*dmats0[9][22] + coeff0_10*dmats0[10][22] + coeff0_11*dmats0[11][22] + coeff0_12*dmats0[12][22] + coeff0_13*dmats0[13][22] + coeff0_14*dmats0[14][22] + coeff0_15*dmats0[15][22] + coeff0_16*dmats0[16][22] + coeff0_17*dmats0[17][22] + coeff0_18*dmats0[18][22] + coeff0_19*dmats0[19][22] + coeff0_20*dmats0[20][22] + coeff0_21*dmats0[21][22] + coeff0_22*dmats0[22][22] + coeff0_23*dmats0[23][22] + coeff0_24*dmats0[24][22] + coeff0_25*dmats0[25][22] + coeff0_26*dmats0[26][22] + coeff0_27*dmats0[27][22] + coeff0_28*dmats0[28][22] + coeff0_29*dmats0[29][22] + coeff0_30*dmats0[30][22] + coeff0_31*dmats0[31][22] + coeff0_32*dmats0[32][22] + coeff0_33*dmats0[33][22] + coeff0_34*dmats0[34][22];
 
6348
          new_coeff0_23 = coeff0_0*dmats0[0][23] + coeff0_1*dmats0[1][23] + coeff0_2*dmats0[2][23] + coeff0_3*dmats0[3][23] + coeff0_4*dmats0[4][23] + coeff0_5*dmats0[5][23] + coeff0_6*dmats0[6][23] + coeff0_7*dmats0[7][23] + coeff0_8*dmats0[8][23] + coeff0_9*dmats0[9][23] + coeff0_10*dmats0[10][23] + coeff0_11*dmats0[11][23] + coeff0_12*dmats0[12][23] + coeff0_13*dmats0[13][23] + coeff0_14*dmats0[14][23] + coeff0_15*dmats0[15][23] + coeff0_16*dmats0[16][23] + coeff0_17*dmats0[17][23] + coeff0_18*dmats0[18][23] + coeff0_19*dmats0[19][23] + coeff0_20*dmats0[20][23] + coeff0_21*dmats0[21][23] + coeff0_22*dmats0[22][23] + coeff0_23*dmats0[23][23] + coeff0_24*dmats0[24][23] + coeff0_25*dmats0[25][23] + coeff0_26*dmats0[26][23] + coeff0_27*dmats0[27][23] + coeff0_28*dmats0[28][23] + coeff0_29*dmats0[29][23] + coeff0_30*dmats0[30][23] + coeff0_31*dmats0[31][23] + coeff0_32*dmats0[32][23] + coeff0_33*dmats0[33][23] + coeff0_34*dmats0[34][23];
 
6349
          new_coeff0_24 = coeff0_0*dmats0[0][24] + coeff0_1*dmats0[1][24] + coeff0_2*dmats0[2][24] + coeff0_3*dmats0[3][24] + coeff0_4*dmats0[4][24] + coeff0_5*dmats0[5][24] + coeff0_6*dmats0[6][24] + coeff0_7*dmats0[7][24] + coeff0_8*dmats0[8][24] + coeff0_9*dmats0[9][24] + coeff0_10*dmats0[10][24] + coeff0_11*dmats0[11][24] + coeff0_12*dmats0[12][24] + coeff0_13*dmats0[13][24] + coeff0_14*dmats0[14][24] + coeff0_15*dmats0[15][24] + coeff0_16*dmats0[16][24] + coeff0_17*dmats0[17][24] + coeff0_18*dmats0[18][24] + coeff0_19*dmats0[19][24] + coeff0_20*dmats0[20][24] + coeff0_21*dmats0[21][24] + coeff0_22*dmats0[22][24] + coeff0_23*dmats0[23][24] + coeff0_24*dmats0[24][24] + coeff0_25*dmats0[25][24] + coeff0_26*dmats0[26][24] + coeff0_27*dmats0[27][24] + coeff0_28*dmats0[28][24] + coeff0_29*dmats0[29][24] + coeff0_30*dmats0[30][24] + coeff0_31*dmats0[31][24] + coeff0_32*dmats0[32][24] + coeff0_33*dmats0[33][24] + coeff0_34*dmats0[34][24];
 
6350
          new_coeff0_25 = coeff0_0*dmats0[0][25] + coeff0_1*dmats0[1][25] + coeff0_2*dmats0[2][25] + coeff0_3*dmats0[3][25] + coeff0_4*dmats0[4][25] + coeff0_5*dmats0[5][25] + coeff0_6*dmats0[6][25] + coeff0_7*dmats0[7][25] + coeff0_8*dmats0[8][25] + coeff0_9*dmats0[9][25] + coeff0_10*dmats0[10][25] + coeff0_11*dmats0[11][25] + coeff0_12*dmats0[12][25] + coeff0_13*dmats0[13][25] + coeff0_14*dmats0[14][25] + coeff0_15*dmats0[15][25] + coeff0_16*dmats0[16][25] + coeff0_17*dmats0[17][25] + coeff0_18*dmats0[18][25] + coeff0_19*dmats0[19][25] + coeff0_20*dmats0[20][25] + coeff0_21*dmats0[21][25] + coeff0_22*dmats0[22][25] + coeff0_23*dmats0[23][25] + coeff0_24*dmats0[24][25] + coeff0_25*dmats0[25][25] + coeff0_26*dmats0[26][25] + coeff0_27*dmats0[27][25] + coeff0_28*dmats0[28][25] + coeff0_29*dmats0[29][25] + coeff0_30*dmats0[30][25] + coeff0_31*dmats0[31][25] + coeff0_32*dmats0[32][25] + coeff0_33*dmats0[33][25] + coeff0_34*dmats0[34][25];
 
6351
          new_coeff0_26 = coeff0_0*dmats0[0][26] + coeff0_1*dmats0[1][26] + coeff0_2*dmats0[2][26] + coeff0_3*dmats0[3][26] + coeff0_4*dmats0[4][26] + coeff0_5*dmats0[5][26] + coeff0_6*dmats0[6][26] + coeff0_7*dmats0[7][26] + coeff0_8*dmats0[8][26] + coeff0_9*dmats0[9][26] + coeff0_10*dmats0[10][26] + coeff0_11*dmats0[11][26] + coeff0_12*dmats0[12][26] + coeff0_13*dmats0[13][26] + coeff0_14*dmats0[14][26] + coeff0_15*dmats0[15][26] + coeff0_16*dmats0[16][26] + coeff0_17*dmats0[17][26] + coeff0_18*dmats0[18][26] + coeff0_19*dmats0[19][26] + coeff0_20*dmats0[20][26] + coeff0_21*dmats0[21][26] + coeff0_22*dmats0[22][26] + coeff0_23*dmats0[23][26] + coeff0_24*dmats0[24][26] + coeff0_25*dmats0[25][26] + coeff0_26*dmats0[26][26] + coeff0_27*dmats0[27][26] + coeff0_28*dmats0[28][26] + coeff0_29*dmats0[29][26] + coeff0_30*dmats0[30][26] + coeff0_31*dmats0[31][26] + coeff0_32*dmats0[32][26] + coeff0_33*dmats0[33][26] + coeff0_34*dmats0[34][26];
 
6352
          new_coeff0_27 = coeff0_0*dmats0[0][27] + coeff0_1*dmats0[1][27] + coeff0_2*dmats0[2][27] + coeff0_3*dmats0[3][27] + coeff0_4*dmats0[4][27] + coeff0_5*dmats0[5][27] + coeff0_6*dmats0[6][27] + coeff0_7*dmats0[7][27] + coeff0_8*dmats0[8][27] + coeff0_9*dmats0[9][27] + coeff0_10*dmats0[10][27] + coeff0_11*dmats0[11][27] + coeff0_12*dmats0[12][27] + coeff0_13*dmats0[13][27] + coeff0_14*dmats0[14][27] + coeff0_15*dmats0[15][27] + coeff0_16*dmats0[16][27] + coeff0_17*dmats0[17][27] + coeff0_18*dmats0[18][27] + coeff0_19*dmats0[19][27] + coeff0_20*dmats0[20][27] + coeff0_21*dmats0[21][27] + coeff0_22*dmats0[22][27] + coeff0_23*dmats0[23][27] + coeff0_24*dmats0[24][27] + coeff0_25*dmats0[25][27] + coeff0_26*dmats0[26][27] + coeff0_27*dmats0[27][27] + coeff0_28*dmats0[28][27] + coeff0_29*dmats0[29][27] + coeff0_30*dmats0[30][27] + coeff0_31*dmats0[31][27] + coeff0_32*dmats0[32][27] + coeff0_33*dmats0[33][27] + coeff0_34*dmats0[34][27];
 
6353
          new_coeff0_28 = coeff0_0*dmats0[0][28] + coeff0_1*dmats0[1][28] + coeff0_2*dmats0[2][28] + coeff0_3*dmats0[3][28] + coeff0_4*dmats0[4][28] + coeff0_5*dmats0[5][28] + coeff0_6*dmats0[6][28] + coeff0_7*dmats0[7][28] + coeff0_8*dmats0[8][28] + coeff0_9*dmats0[9][28] + coeff0_10*dmats0[10][28] + coeff0_11*dmats0[11][28] + coeff0_12*dmats0[12][28] + coeff0_13*dmats0[13][28] + coeff0_14*dmats0[14][28] + coeff0_15*dmats0[15][28] + coeff0_16*dmats0[16][28] + coeff0_17*dmats0[17][28] + coeff0_18*dmats0[18][28] + coeff0_19*dmats0[19][28] + coeff0_20*dmats0[20][28] + coeff0_21*dmats0[21][28] + coeff0_22*dmats0[22][28] + coeff0_23*dmats0[23][28] + coeff0_24*dmats0[24][28] + coeff0_25*dmats0[25][28] + coeff0_26*dmats0[26][28] + coeff0_27*dmats0[27][28] + coeff0_28*dmats0[28][28] + coeff0_29*dmats0[29][28] + coeff0_30*dmats0[30][28] + coeff0_31*dmats0[31][28] + coeff0_32*dmats0[32][28] + coeff0_33*dmats0[33][28] + coeff0_34*dmats0[34][28];
 
6354
          new_coeff0_29 = coeff0_0*dmats0[0][29] + coeff0_1*dmats0[1][29] + coeff0_2*dmats0[2][29] + coeff0_3*dmats0[3][29] + coeff0_4*dmats0[4][29] + coeff0_5*dmats0[5][29] + coeff0_6*dmats0[6][29] + coeff0_7*dmats0[7][29] + coeff0_8*dmats0[8][29] + coeff0_9*dmats0[9][29] + coeff0_10*dmats0[10][29] + coeff0_11*dmats0[11][29] + coeff0_12*dmats0[12][29] + coeff0_13*dmats0[13][29] + coeff0_14*dmats0[14][29] + coeff0_15*dmats0[15][29] + coeff0_16*dmats0[16][29] + coeff0_17*dmats0[17][29] + coeff0_18*dmats0[18][29] + coeff0_19*dmats0[19][29] + coeff0_20*dmats0[20][29] + coeff0_21*dmats0[21][29] + coeff0_22*dmats0[22][29] + coeff0_23*dmats0[23][29] + coeff0_24*dmats0[24][29] + coeff0_25*dmats0[25][29] + coeff0_26*dmats0[26][29] + coeff0_27*dmats0[27][29] + coeff0_28*dmats0[28][29] + coeff0_29*dmats0[29][29] + coeff0_30*dmats0[30][29] + coeff0_31*dmats0[31][29] + coeff0_32*dmats0[32][29] + coeff0_33*dmats0[33][29] + coeff0_34*dmats0[34][29];
 
6355
          new_coeff0_30 = coeff0_0*dmats0[0][30] + coeff0_1*dmats0[1][30] + coeff0_2*dmats0[2][30] + coeff0_3*dmats0[3][30] + coeff0_4*dmats0[4][30] + coeff0_5*dmats0[5][30] + coeff0_6*dmats0[6][30] + coeff0_7*dmats0[7][30] + coeff0_8*dmats0[8][30] + coeff0_9*dmats0[9][30] + coeff0_10*dmats0[10][30] + coeff0_11*dmats0[11][30] + coeff0_12*dmats0[12][30] + coeff0_13*dmats0[13][30] + coeff0_14*dmats0[14][30] + coeff0_15*dmats0[15][30] + coeff0_16*dmats0[16][30] + coeff0_17*dmats0[17][30] + coeff0_18*dmats0[18][30] + coeff0_19*dmats0[19][30] + coeff0_20*dmats0[20][30] + coeff0_21*dmats0[21][30] + coeff0_22*dmats0[22][30] + coeff0_23*dmats0[23][30] + coeff0_24*dmats0[24][30] + coeff0_25*dmats0[25][30] + coeff0_26*dmats0[26][30] + coeff0_27*dmats0[27][30] + coeff0_28*dmats0[28][30] + coeff0_29*dmats0[29][30] + coeff0_30*dmats0[30][30] + coeff0_31*dmats0[31][30] + coeff0_32*dmats0[32][30] + coeff0_33*dmats0[33][30] + coeff0_34*dmats0[34][30];
 
6356
          new_coeff0_31 = coeff0_0*dmats0[0][31] + coeff0_1*dmats0[1][31] + coeff0_2*dmats0[2][31] + coeff0_3*dmats0[3][31] + coeff0_4*dmats0[4][31] + coeff0_5*dmats0[5][31] + coeff0_6*dmats0[6][31] + coeff0_7*dmats0[7][31] + coeff0_8*dmats0[8][31] + coeff0_9*dmats0[9][31] + coeff0_10*dmats0[10][31] + coeff0_11*dmats0[11][31] + coeff0_12*dmats0[12][31] + coeff0_13*dmats0[13][31] + coeff0_14*dmats0[14][31] + coeff0_15*dmats0[15][31] + coeff0_16*dmats0[16][31] + coeff0_17*dmats0[17][31] + coeff0_18*dmats0[18][31] + coeff0_19*dmats0[19][31] + coeff0_20*dmats0[20][31] + coeff0_21*dmats0[21][31] + coeff0_22*dmats0[22][31] + coeff0_23*dmats0[23][31] + coeff0_24*dmats0[24][31] + coeff0_25*dmats0[25][31] + coeff0_26*dmats0[26][31] + coeff0_27*dmats0[27][31] + coeff0_28*dmats0[28][31] + coeff0_29*dmats0[29][31] + coeff0_30*dmats0[30][31] + coeff0_31*dmats0[31][31] + coeff0_32*dmats0[32][31] + coeff0_33*dmats0[33][31] + coeff0_34*dmats0[34][31];
 
6357
          new_coeff0_32 = coeff0_0*dmats0[0][32] + coeff0_1*dmats0[1][32] + coeff0_2*dmats0[2][32] + coeff0_3*dmats0[3][32] + coeff0_4*dmats0[4][32] + coeff0_5*dmats0[5][32] + coeff0_6*dmats0[6][32] + coeff0_7*dmats0[7][32] + coeff0_8*dmats0[8][32] + coeff0_9*dmats0[9][32] + coeff0_10*dmats0[10][32] + coeff0_11*dmats0[11][32] + coeff0_12*dmats0[12][32] + coeff0_13*dmats0[13][32] + coeff0_14*dmats0[14][32] + coeff0_15*dmats0[15][32] + coeff0_16*dmats0[16][32] + coeff0_17*dmats0[17][32] + coeff0_18*dmats0[18][32] + coeff0_19*dmats0[19][32] + coeff0_20*dmats0[20][32] + coeff0_21*dmats0[21][32] + coeff0_22*dmats0[22][32] + coeff0_23*dmats0[23][32] + coeff0_24*dmats0[24][32] + coeff0_25*dmats0[25][32] + coeff0_26*dmats0[26][32] + coeff0_27*dmats0[27][32] + coeff0_28*dmats0[28][32] + coeff0_29*dmats0[29][32] + coeff0_30*dmats0[30][32] + coeff0_31*dmats0[31][32] + coeff0_32*dmats0[32][32] + coeff0_33*dmats0[33][32] + coeff0_34*dmats0[34][32];
 
6358
          new_coeff0_33 = coeff0_0*dmats0[0][33] + coeff0_1*dmats0[1][33] + coeff0_2*dmats0[2][33] + coeff0_3*dmats0[3][33] + coeff0_4*dmats0[4][33] + coeff0_5*dmats0[5][33] + coeff0_6*dmats0[6][33] + coeff0_7*dmats0[7][33] + coeff0_8*dmats0[8][33] + coeff0_9*dmats0[9][33] + coeff0_10*dmats0[10][33] + coeff0_11*dmats0[11][33] + coeff0_12*dmats0[12][33] + coeff0_13*dmats0[13][33] + coeff0_14*dmats0[14][33] + coeff0_15*dmats0[15][33] + coeff0_16*dmats0[16][33] + coeff0_17*dmats0[17][33] + coeff0_18*dmats0[18][33] + coeff0_19*dmats0[19][33] + coeff0_20*dmats0[20][33] + coeff0_21*dmats0[21][33] + coeff0_22*dmats0[22][33] + coeff0_23*dmats0[23][33] + coeff0_24*dmats0[24][33] + coeff0_25*dmats0[25][33] + coeff0_26*dmats0[26][33] + coeff0_27*dmats0[27][33] + coeff0_28*dmats0[28][33] + coeff0_29*dmats0[29][33] + coeff0_30*dmats0[30][33] + coeff0_31*dmats0[31][33] + coeff0_32*dmats0[32][33] + coeff0_33*dmats0[33][33] + coeff0_34*dmats0[34][33];
 
6359
          new_coeff0_34 = coeff0_0*dmats0[0][34] + coeff0_1*dmats0[1][34] + coeff0_2*dmats0[2][34] + coeff0_3*dmats0[3][34] + coeff0_4*dmats0[4][34] + coeff0_5*dmats0[5][34] + coeff0_6*dmats0[6][34] + coeff0_7*dmats0[7][34] + coeff0_8*dmats0[8][34] + coeff0_9*dmats0[9][34] + coeff0_10*dmats0[10][34] + coeff0_11*dmats0[11][34] + coeff0_12*dmats0[12][34] + coeff0_13*dmats0[13][34] + coeff0_14*dmats0[14][34] + coeff0_15*dmats0[15][34] + coeff0_16*dmats0[16][34] + coeff0_17*dmats0[17][34] + coeff0_18*dmats0[18][34] + coeff0_19*dmats0[19][34] + coeff0_20*dmats0[20][34] + coeff0_21*dmats0[21][34] + coeff0_22*dmats0[22][34] + coeff0_23*dmats0[23][34] + coeff0_24*dmats0[24][34] + coeff0_25*dmats0[25][34] + coeff0_26*dmats0[26][34] + coeff0_27*dmats0[27][34] + coeff0_28*dmats0[28][34] + coeff0_29*dmats0[29][34] + coeff0_30*dmats0[30][34] + coeff0_31*dmats0[31][34] + coeff0_32*dmats0[32][34] + coeff0_33*dmats0[33][34] + coeff0_34*dmats0[34][34];
 
6360
        }
 
6361
        if(combinations[deriv_num][j] == 1)
 
6362
        {
 
6363
          new_coeff0_0 = coeff0_0*dmats1[0][0] + coeff0_1*dmats1[1][0] + coeff0_2*dmats1[2][0] + coeff0_3*dmats1[3][0] + coeff0_4*dmats1[4][0] + coeff0_5*dmats1[5][0] + coeff0_6*dmats1[6][0] + coeff0_7*dmats1[7][0] + coeff0_8*dmats1[8][0] + coeff0_9*dmats1[9][0] + coeff0_10*dmats1[10][0] + coeff0_11*dmats1[11][0] + coeff0_12*dmats1[12][0] + coeff0_13*dmats1[13][0] + coeff0_14*dmats1[14][0] + coeff0_15*dmats1[15][0] + coeff0_16*dmats1[16][0] + coeff0_17*dmats1[17][0] + coeff0_18*dmats1[18][0] + coeff0_19*dmats1[19][0] + coeff0_20*dmats1[20][0] + coeff0_21*dmats1[21][0] + coeff0_22*dmats1[22][0] + coeff0_23*dmats1[23][0] + coeff0_24*dmats1[24][0] + coeff0_25*dmats1[25][0] + coeff0_26*dmats1[26][0] + coeff0_27*dmats1[27][0] + coeff0_28*dmats1[28][0] + coeff0_29*dmats1[29][0] + coeff0_30*dmats1[30][0] + coeff0_31*dmats1[31][0] + coeff0_32*dmats1[32][0] + coeff0_33*dmats1[33][0] + coeff0_34*dmats1[34][0];
 
6364
          new_coeff0_1 = coeff0_0*dmats1[0][1] + coeff0_1*dmats1[1][1] + coeff0_2*dmats1[2][1] + coeff0_3*dmats1[3][1] + coeff0_4*dmats1[4][1] + coeff0_5*dmats1[5][1] + coeff0_6*dmats1[6][1] + coeff0_7*dmats1[7][1] + coeff0_8*dmats1[8][1] + coeff0_9*dmats1[9][1] + coeff0_10*dmats1[10][1] + coeff0_11*dmats1[11][1] + coeff0_12*dmats1[12][1] + coeff0_13*dmats1[13][1] + coeff0_14*dmats1[14][1] + coeff0_15*dmats1[15][1] + coeff0_16*dmats1[16][1] + coeff0_17*dmats1[17][1] + coeff0_18*dmats1[18][1] + coeff0_19*dmats1[19][1] + coeff0_20*dmats1[20][1] + coeff0_21*dmats1[21][1] + coeff0_22*dmats1[22][1] + coeff0_23*dmats1[23][1] + coeff0_24*dmats1[24][1] + coeff0_25*dmats1[25][1] + coeff0_26*dmats1[26][1] + coeff0_27*dmats1[27][1] + coeff0_28*dmats1[28][1] + coeff0_29*dmats1[29][1] + coeff0_30*dmats1[30][1] + coeff0_31*dmats1[31][1] + coeff0_32*dmats1[32][1] + coeff0_33*dmats1[33][1] + coeff0_34*dmats1[34][1];
 
6365
          new_coeff0_2 = coeff0_0*dmats1[0][2] + coeff0_1*dmats1[1][2] + coeff0_2*dmats1[2][2] + coeff0_3*dmats1[3][2] + coeff0_4*dmats1[4][2] + coeff0_5*dmats1[5][2] + coeff0_6*dmats1[6][2] + coeff0_7*dmats1[7][2] + coeff0_8*dmats1[8][2] + coeff0_9*dmats1[9][2] + coeff0_10*dmats1[10][2] + coeff0_11*dmats1[11][2] + coeff0_12*dmats1[12][2] + coeff0_13*dmats1[13][2] + coeff0_14*dmats1[14][2] + coeff0_15*dmats1[15][2] + coeff0_16*dmats1[16][2] + coeff0_17*dmats1[17][2] + coeff0_18*dmats1[18][2] + coeff0_19*dmats1[19][2] + coeff0_20*dmats1[20][2] + coeff0_21*dmats1[21][2] + coeff0_22*dmats1[22][2] + coeff0_23*dmats1[23][2] + coeff0_24*dmats1[24][2] + coeff0_25*dmats1[25][2] + coeff0_26*dmats1[26][2] + coeff0_27*dmats1[27][2] + coeff0_28*dmats1[28][2] + coeff0_29*dmats1[29][2] + coeff0_30*dmats1[30][2] + coeff0_31*dmats1[31][2] + coeff0_32*dmats1[32][2] + coeff0_33*dmats1[33][2] + coeff0_34*dmats1[34][2];
 
6366
          new_coeff0_3 = coeff0_0*dmats1[0][3] + coeff0_1*dmats1[1][3] + coeff0_2*dmats1[2][3] + coeff0_3*dmats1[3][3] + coeff0_4*dmats1[4][3] + coeff0_5*dmats1[5][3] + coeff0_6*dmats1[6][3] + coeff0_7*dmats1[7][3] + coeff0_8*dmats1[8][3] + coeff0_9*dmats1[9][3] + coeff0_10*dmats1[10][3] + coeff0_11*dmats1[11][3] + coeff0_12*dmats1[12][3] + coeff0_13*dmats1[13][3] + coeff0_14*dmats1[14][3] + coeff0_15*dmats1[15][3] + coeff0_16*dmats1[16][3] + coeff0_17*dmats1[17][3] + coeff0_18*dmats1[18][3] + coeff0_19*dmats1[19][3] + coeff0_20*dmats1[20][3] + coeff0_21*dmats1[21][3] + coeff0_22*dmats1[22][3] + coeff0_23*dmats1[23][3] + coeff0_24*dmats1[24][3] + coeff0_25*dmats1[25][3] + coeff0_26*dmats1[26][3] + coeff0_27*dmats1[27][3] + coeff0_28*dmats1[28][3] + coeff0_29*dmats1[29][3] + coeff0_30*dmats1[30][3] + coeff0_31*dmats1[31][3] + coeff0_32*dmats1[32][3] + coeff0_33*dmats1[33][3] + coeff0_34*dmats1[34][3];
 
6367
          new_coeff0_4 = coeff0_0*dmats1[0][4] + coeff0_1*dmats1[1][4] + coeff0_2*dmats1[2][4] + coeff0_3*dmats1[3][4] + coeff0_4*dmats1[4][4] + coeff0_5*dmats1[5][4] + coeff0_6*dmats1[6][4] + coeff0_7*dmats1[7][4] + coeff0_8*dmats1[8][4] + coeff0_9*dmats1[9][4] + coeff0_10*dmats1[10][4] + coeff0_11*dmats1[11][4] + coeff0_12*dmats1[12][4] + coeff0_13*dmats1[13][4] + coeff0_14*dmats1[14][4] + coeff0_15*dmats1[15][4] + coeff0_16*dmats1[16][4] + coeff0_17*dmats1[17][4] + coeff0_18*dmats1[18][4] + coeff0_19*dmats1[19][4] + coeff0_20*dmats1[20][4] + coeff0_21*dmats1[21][4] + coeff0_22*dmats1[22][4] + coeff0_23*dmats1[23][4] + coeff0_24*dmats1[24][4] + coeff0_25*dmats1[25][4] + coeff0_26*dmats1[26][4] + coeff0_27*dmats1[27][4] + coeff0_28*dmats1[28][4] + coeff0_29*dmats1[29][4] + coeff0_30*dmats1[30][4] + coeff0_31*dmats1[31][4] + coeff0_32*dmats1[32][4] + coeff0_33*dmats1[33][4] + coeff0_34*dmats1[34][4];
 
6368
          new_coeff0_5 = coeff0_0*dmats1[0][5] + coeff0_1*dmats1[1][5] + coeff0_2*dmats1[2][5] + coeff0_3*dmats1[3][5] + coeff0_4*dmats1[4][5] + coeff0_5*dmats1[5][5] + coeff0_6*dmats1[6][5] + coeff0_7*dmats1[7][5] + coeff0_8*dmats1[8][5] + coeff0_9*dmats1[9][5] + coeff0_10*dmats1[10][5] + coeff0_11*dmats1[11][5] + coeff0_12*dmats1[12][5] + coeff0_13*dmats1[13][5] + coeff0_14*dmats1[14][5] + coeff0_15*dmats1[15][5] + coeff0_16*dmats1[16][5] + coeff0_17*dmats1[17][5] + coeff0_18*dmats1[18][5] + coeff0_19*dmats1[19][5] + coeff0_20*dmats1[20][5] + coeff0_21*dmats1[21][5] + coeff0_22*dmats1[22][5] + coeff0_23*dmats1[23][5] + coeff0_24*dmats1[24][5] + coeff0_25*dmats1[25][5] + coeff0_26*dmats1[26][5] + coeff0_27*dmats1[27][5] + coeff0_28*dmats1[28][5] + coeff0_29*dmats1[29][5] + coeff0_30*dmats1[30][5] + coeff0_31*dmats1[31][5] + coeff0_32*dmats1[32][5] + coeff0_33*dmats1[33][5] + coeff0_34*dmats1[34][5];
 
6369
          new_coeff0_6 = coeff0_0*dmats1[0][6] + coeff0_1*dmats1[1][6] + coeff0_2*dmats1[2][6] + coeff0_3*dmats1[3][6] + coeff0_4*dmats1[4][6] + coeff0_5*dmats1[5][6] + coeff0_6*dmats1[6][6] + coeff0_7*dmats1[7][6] + coeff0_8*dmats1[8][6] + coeff0_9*dmats1[9][6] + coeff0_10*dmats1[10][6] + coeff0_11*dmats1[11][6] + coeff0_12*dmats1[12][6] + coeff0_13*dmats1[13][6] + coeff0_14*dmats1[14][6] + coeff0_15*dmats1[15][6] + coeff0_16*dmats1[16][6] + coeff0_17*dmats1[17][6] + coeff0_18*dmats1[18][6] + coeff0_19*dmats1[19][6] + coeff0_20*dmats1[20][6] + coeff0_21*dmats1[21][6] + coeff0_22*dmats1[22][6] + coeff0_23*dmats1[23][6] + coeff0_24*dmats1[24][6] + coeff0_25*dmats1[25][6] + coeff0_26*dmats1[26][6] + coeff0_27*dmats1[27][6] + coeff0_28*dmats1[28][6] + coeff0_29*dmats1[29][6] + coeff0_30*dmats1[30][6] + coeff0_31*dmats1[31][6] + coeff0_32*dmats1[32][6] + coeff0_33*dmats1[33][6] + coeff0_34*dmats1[34][6];
 
6370
          new_coeff0_7 = coeff0_0*dmats1[0][7] + coeff0_1*dmats1[1][7] + coeff0_2*dmats1[2][7] + coeff0_3*dmats1[3][7] + coeff0_4*dmats1[4][7] + coeff0_5*dmats1[5][7] + coeff0_6*dmats1[6][7] + coeff0_7*dmats1[7][7] + coeff0_8*dmats1[8][7] + coeff0_9*dmats1[9][7] + coeff0_10*dmats1[10][7] + coeff0_11*dmats1[11][7] + coeff0_12*dmats1[12][7] + coeff0_13*dmats1[13][7] + coeff0_14*dmats1[14][7] + coeff0_15*dmats1[15][7] + coeff0_16*dmats1[16][7] + coeff0_17*dmats1[17][7] + coeff0_18*dmats1[18][7] + coeff0_19*dmats1[19][7] + coeff0_20*dmats1[20][7] + coeff0_21*dmats1[21][7] + coeff0_22*dmats1[22][7] + coeff0_23*dmats1[23][7] + coeff0_24*dmats1[24][7] + coeff0_25*dmats1[25][7] + coeff0_26*dmats1[26][7] + coeff0_27*dmats1[27][7] + coeff0_28*dmats1[28][7] + coeff0_29*dmats1[29][7] + coeff0_30*dmats1[30][7] + coeff0_31*dmats1[31][7] + coeff0_32*dmats1[32][7] + coeff0_33*dmats1[33][7] + coeff0_34*dmats1[34][7];
 
6371
          new_coeff0_8 = coeff0_0*dmats1[0][8] + coeff0_1*dmats1[1][8] + coeff0_2*dmats1[2][8] + coeff0_3*dmats1[3][8] + coeff0_4*dmats1[4][8] + coeff0_5*dmats1[5][8] + coeff0_6*dmats1[6][8] + coeff0_7*dmats1[7][8] + coeff0_8*dmats1[8][8] + coeff0_9*dmats1[9][8] + coeff0_10*dmats1[10][8] + coeff0_11*dmats1[11][8] + coeff0_12*dmats1[12][8] + coeff0_13*dmats1[13][8] + coeff0_14*dmats1[14][8] + coeff0_15*dmats1[15][8] + coeff0_16*dmats1[16][8] + coeff0_17*dmats1[17][8] + coeff0_18*dmats1[18][8] + coeff0_19*dmats1[19][8] + coeff0_20*dmats1[20][8] + coeff0_21*dmats1[21][8] + coeff0_22*dmats1[22][8] + coeff0_23*dmats1[23][8] + coeff0_24*dmats1[24][8] + coeff0_25*dmats1[25][8] + coeff0_26*dmats1[26][8] + coeff0_27*dmats1[27][8] + coeff0_28*dmats1[28][8] + coeff0_29*dmats1[29][8] + coeff0_30*dmats1[30][8] + coeff0_31*dmats1[31][8] + coeff0_32*dmats1[32][8] + coeff0_33*dmats1[33][8] + coeff0_34*dmats1[34][8];
 
6372
          new_coeff0_9 = coeff0_0*dmats1[0][9] + coeff0_1*dmats1[1][9] + coeff0_2*dmats1[2][9] + coeff0_3*dmats1[3][9] + coeff0_4*dmats1[4][9] + coeff0_5*dmats1[5][9] + coeff0_6*dmats1[6][9] + coeff0_7*dmats1[7][9] + coeff0_8*dmats1[8][9] + coeff0_9*dmats1[9][9] + coeff0_10*dmats1[10][9] + coeff0_11*dmats1[11][9] + coeff0_12*dmats1[12][9] + coeff0_13*dmats1[13][9] + coeff0_14*dmats1[14][9] + coeff0_15*dmats1[15][9] + coeff0_16*dmats1[16][9] + coeff0_17*dmats1[17][9] + coeff0_18*dmats1[18][9] + coeff0_19*dmats1[19][9] + coeff0_20*dmats1[20][9] + coeff0_21*dmats1[21][9] + coeff0_22*dmats1[22][9] + coeff0_23*dmats1[23][9] + coeff0_24*dmats1[24][9] + coeff0_25*dmats1[25][9] + coeff0_26*dmats1[26][9] + coeff0_27*dmats1[27][9] + coeff0_28*dmats1[28][9] + coeff0_29*dmats1[29][9] + coeff0_30*dmats1[30][9] + coeff0_31*dmats1[31][9] + coeff0_32*dmats1[32][9] + coeff0_33*dmats1[33][9] + coeff0_34*dmats1[34][9];
 
6373
          new_coeff0_10 = coeff0_0*dmats1[0][10] + coeff0_1*dmats1[1][10] + coeff0_2*dmats1[2][10] + coeff0_3*dmats1[3][10] + coeff0_4*dmats1[4][10] + coeff0_5*dmats1[5][10] + coeff0_6*dmats1[6][10] + coeff0_7*dmats1[7][10] + coeff0_8*dmats1[8][10] + coeff0_9*dmats1[9][10] + coeff0_10*dmats1[10][10] + coeff0_11*dmats1[11][10] + coeff0_12*dmats1[12][10] + coeff0_13*dmats1[13][10] + coeff0_14*dmats1[14][10] + coeff0_15*dmats1[15][10] + coeff0_16*dmats1[16][10] + coeff0_17*dmats1[17][10] + coeff0_18*dmats1[18][10] + coeff0_19*dmats1[19][10] + coeff0_20*dmats1[20][10] + coeff0_21*dmats1[21][10] + coeff0_22*dmats1[22][10] + coeff0_23*dmats1[23][10] + coeff0_24*dmats1[24][10] + coeff0_25*dmats1[25][10] + coeff0_26*dmats1[26][10] + coeff0_27*dmats1[27][10] + coeff0_28*dmats1[28][10] + coeff0_29*dmats1[29][10] + coeff0_30*dmats1[30][10] + coeff0_31*dmats1[31][10] + coeff0_32*dmats1[32][10] + coeff0_33*dmats1[33][10] + coeff0_34*dmats1[34][10];
 
6374
          new_coeff0_11 = coeff0_0*dmats1[0][11] + coeff0_1*dmats1[1][11] + coeff0_2*dmats1[2][11] + coeff0_3*dmats1[3][11] + coeff0_4*dmats1[4][11] + coeff0_5*dmats1[5][11] + coeff0_6*dmats1[6][11] + coeff0_7*dmats1[7][11] + coeff0_8*dmats1[8][11] + coeff0_9*dmats1[9][11] + coeff0_10*dmats1[10][11] + coeff0_11*dmats1[11][11] + coeff0_12*dmats1[12][11] + coeff0_13*dmats1[13][11] + coeff0_14*dmats1[14][11] + coeff0_15*dmats1[15][11] + coeff0_16*dmats1[16][11] + coeff0_17*dmats1[17][11] + coeff0_18*dmats1[18][11] + coeff0_19*dmats1[19][11] + coeff0_20*dmats1[20][11] + coeff0_21*dmats1[21][11] + coeff0_22*dmats1[22][11] + coeff0_23*dmats1[23][11] + coeff0_24*dmats1[24][11] + coeff0_25*dmats1[25][11] + coeff0_26*dmats1[26][11] + coeff0_27*dmats1[27][11] + coeff0_28*dmats1[28][11] + coeff0_29*dmats1[29][11] + coeff0_30*dmats1[30][11] + coeff0_31*dmats1[31][11] + coeff0_32*dmats1[32][11] + coeff0_33*dmats1[33][11] + coeff0_34*dmats1[34][11];
 
6375
          new_coeff0_12 = coeff0_0*dmats1[0][12] + coeff0_1*dmats1[1][12] + coeff0_2*dmats1[2][12] + coeff0_3*dmats1[3][12] + coeff0_4*dmats1[4][12] + coeff0_5*dmats1[5][12] + coeff0_6*dmats1[6][12] + coeff0_7*dmats1[7][12] + coeff0_8*dmats1[8][12] + coeff0_9*dmats1[9][12] + coeff0_10*dmats1[10][12] + coeff0_11*dmats1[11][12] + coeff0_12*dmats1[12][12] + coeff0_13*dmats1[13][12] + coeff0_14*dmats1[14][12] + coeff0_15*dmats1[15][12] + coeff0_16*dmats1[16][12] + coeff0_17*dmats1[17][12] + coeff0_18*dmats1[18][12] + coeff0_19*dmats1[19][12] + coeff0_20*dmats1[20][12] + coeff0_21*dmats1[21][12] + coeff0_22*dmats1[22][12] + coeff0_23*dmats1[23][12] + coeff0_24*dmats1[24][12] + coeff0_25*dmats1[25][12] + coeff0_26*dmats1[26][12] + coeff0_27*dmats1[27][12] + coeff0_28*dmats1[28][12] + coeff0_29*dmats1[29][12] + coeff0_30*dmats1[30][12] + coeff0_31*dmats1[31][12] + coeff0_32*dmats1[32][12] + coeff0_33*dmats1[33][12] + coeff0_34*dmats1[34][12];
 
6376
          new_coeff0_13 = coeff0_0*dmats1[0][13] + coeff0_1*dmats1[1][13] + coeff0_2*dmats1[2][13] + coeff0_3*dmats1[3][13] + coeff0_4*dmats1[4][13] + coeff0_5*dmats1[5][13] + coeff0_6*dmats1[6][13] + coeff0_7*dmats1[7][13] + coeff0_8*dmats1[8][13] + coeff0_9*dmats1[9][13] + coeff0_10*dmats1[10][13] + coeff0_11*dmats1[11][13] + coeff0_12*dmats1[12][13] + coeff0_13*dmats1[13][13] + coeff0_14*dmats1[14][13] + coeff0_15*dmats1[15][13] + coeff0_16*dmats1[16][13] + coeff0_17*dmats1[17][13] + coeff0_18*dmats1[18][13] + coeff0_19*dmats1[19][13] + coeff0_20*dmats1[20][13] + coeff0_21*dmats1[21][13] + coeff0_22*dmats1[22][13] + coeff0_23*dmats1[23][13] + coeff0_24*dmats1[24][13] + coeff0_25*dmats1[25][13] + coeff0_26*dmats1[26][13] + coeff0_27*dmats1[27][13] + coeff0_28*dmats1[28][13] + coeff0_29*dmats1[29][13] + coeff0_30*dmats1[30][13] + coeff0_31*dmats1[31][13] + coeff0_32*dmats1[32][13] + coeff0_33*dmats1[33][13] + coeff0_34*dmats1[34][13];
 
6377
          new_coeff0_14 = coeff0_0*dmats1[0][14] + coeff0_1*dmats1[1][14] + coeff0_2*dmats1[2][14] + coeff0_3*dmats1[3][14] + coeff0_4*dmats1[4][14] + coeff0_5*dmats1[5][14] + coeff0_6*dmats1[6][14] + coeff0_7*dmats1[7][14] + coeff0_8*dmats1[8][14] + coeff0_9*dmats1[9][14] + coeff0_10*dmats1[10][14] + coeff0_11*dmats1[11][14] + coeff0_12*dmats1[12][14] + coeff0_13*dmats1[13][14] + coeff0_14*dmats1[14][14] + coeff0_15*dmats1[15][14] + coeff0_16*dmats1[16][14] + coeff0_17*dmats1[17][14] + coeff0_18*dmats1[18][14] + coeff0_19*dmats1[19][14] + coeff0_20*dmats1[20][14] + coeff0_21*dmats1[21][14] + coeff0_22*dmats1[22][14] + coeff0_23*dmats1[23][14] + coeff0_24*dmats1[24][14] + coeff0_25*dmats1[25][14] + coeff0_26*dmats1[26][14] + coeff0_27*dmats1[27][14] + coeff0_28*dmats1[28][14] + coeff0_29*dmats1[29][14] + coeff0_30*dmats1[30][14] + coeff0_31*dmats1[31][14] + coeff0_32*dmats1[32][14] + coeff0_33*dmats1[33][14] + coeff0_34*dmats1[34][14];
 
6378
          new_coeff0_15 = coeff0_0*dmats1[0][15] + coeff0_1*dmats1[1][15] + coeff0_2*dmats1[2][15] + coeff0_3*dmats1[3][15] + coeff0_4*dmats1[4][15] + coeff0_5*dmats1[5][15] + coeff0_6*dmats1[6][15] + coeff0_7*dmats1[7][15] + coeff0_8*dmats1[8][15] + coeff0_9*dmats1[9][15] + coeff0_10*dmats1[10][15] + coeff0_11*dmats1[11][15] + coeff0_12*dmats1[12][15] + coeff0_13*dmats1[13][15] + coeff0_14*dmats1[14][15] + coeff0_15*dmats1[15][15] + coeff0_16*dmats1[16][15] + coeff0_17*dmats1[17][15] + coeff0_18*dmats1[18][15] + coeff0_19*dmats1[19][15] + coeff0_20*dmats1[20][15] + coeff0_21*dmats1[21][15] + coeff0_22*dmats1[22][15] + coeff0_23*dmats1[23][15] + coeff0_24*dmats1[24][15] + coeff0_25*dmats1[25][15] + coeff0_26*dmats1[26][15] + coeff0_27*dmats1[27][15] + coeff0_28*dmats1[28][15] + coeff0_29*dmats1[29][15] + coeff0_30*dmats1[30][15] + coeff0_31*dmats1[31][15] + coeff0_32*dmats1[32][15] + coeff0_33*dmats1[33][15] + coeff0_34*dmats1[34][15];
 
6379
          new_coeff0_16 = coeff0_0*dmats1[0][16] + coeff0_1*dmats1[1][16] + coeff0_2*dmats1[2][16] + coeff0_3*dmats1[3][16] + coeff0_4*dmats1[4][16] + coeff0_5*dmats1[5][16] + coeff0_6*dmats1[6][16] + coeff0_7*dmats1[7][16] + coeff0_8*dmats1[8][16] + coeff0_9*dmats1[9][16] + coeff0_10*dmats1[10][16] + coeff0_11*dmats1[11][16] + coeff0_12*dmats1[12][16] + coeff0_13*dmats1[13][16] + coeff0_14*dmats1[14][16] + coeff0_15*dmats1[15][16] + coeff0_16*dmats1[16][16] + coeff0_17*dmats1[17][16] + coeff0_18*dmats1[18][16] + coeff0_19*dmats1[19][16] + coeff0_20*dmats1[20][16] + coeff0_21*dmats1[21][16] + coeff0_22*dmats1[22][16] + coeff0_23*dmats1[23][16] + coeff0_24*dmats1[24][16] + coeff0_25*dmats1[25][16] + coeff0_26*dmats1[26][16] + coeff0_27*dmats1[27][16] + coeff0_28*dmats1[28][16] + coeff0_29*dmats1[29][16] + coeff0_30*dmats1[30][16] + coeff0_31*dmats1[31][16] + coeff0_32*dmats1[32][16] + coeff0_33*dmats1[33][16] + coeff0_34*dmats1[34][16];
 
6380
          new_coeff0_17 = coeff0_0*dmats1[0][17] + coeff0_1*dmats1[1][17] + coeff0_2*dmats1[2][17] + coeff0_3*dmats1[3][17] + coeff0_4*dmats1[4][17] + coeff0_5*dmats1[5][17] + coeff0_6*dmats1[6][17] + coeff0_7*dmats1[7][17] + coeff0_8*dmats1[8][17] + coeff0_9*dmats1[9][17] + coeff0_10*dmats1[10][17] + coeff0_11*dmats1[11][17] + coeff0_12*dmats1[12][17] + coeff0_13*dmats1[13][17] + coeff0_14*dmats1[14][17] + coeff0_15*dmats1[15][17] + coeff0_16*dmats1[16][17] + coeff0_17*dmats1[17][17] + coeff0_18*dmats1[18][17] + coeff0_19*dmats1[19][17] + coeff0_20*dmats1[20][17] + coeff0_21*dmats1[21][17] + coeff0_22*dmats1[22][17] + coeff0_23*dmats1[23][17] + coeff0_24*dmats1[24][17] + coeff0_25*dmats1[25][17] + coeff0_26*dmats1[26][17] + coeff0_27*dmats1[27][17] + coeff0_28*dmats1[28][17] + coeff0_29*dmats1[29][17] + coeff0_30*dmats1[30][17] + coeff0_31*dmats1[31][17] + coeff0_32*dmats1[32][17] + coeff0_33*dmats1[33][17] + coeff0_34*dmats1[34][17];
 
6381
          new_coeff0_18 = coeff0_0*dmats1[0][18] + coeff0_1*dmats1[1][18] + coeff0_2*dmats1[2][18] + coeff0_3*dmats1[3][18] + coeff0_4*dmats1[4][18] + coeff0_5*dmats1[5][18] + coeff0_6*dmats1[6][18] + coeff0_7*dmats1[7][18] + coeff0_8*dmats1[8][18] + coeff0_9*dmats1[9][18] + coeff0_10*dmats1[10][18] + coeff0_11*dmats1[11][18] + coeff0_12*dmats1[12][18] + coeff0_13*dmats1[13][18] + coeff0_14*dmats1[14][18] + coeff0_15*dmats1[15][18] + coeff0_16*dmats1[16][18] + coeff0_17*dmats1[17][18] + coeff0_18*dmats1[18][18] + coeff0_19*dmats1[19][18] + coeff0_20*dmats1[20][18] + coeff0_21*dmats1[21][18] + coeff0_22*dmats1[22][18] + coeff0_23*dmats1[23][18] + coeff0_24*dmats1[24][18] + coeff0_25*dmats1[25][18] + coeff0_26*dmats1[26][18] + coeff0_27*dmats1[27][18] + coeff0_28*dmats1[28][18] + coeff0_29*dmats1[29][18] + coeff0_30*dmats1[30][18] + coeff0_31*dmats1[31][18] + coeff0_32*dmats1[32][18] + coeff0_33*dmats1[33][18] + coeff0_34*dmats1[34][18];
 
6382
          new_coeff0_19 = coeff0_0*dmats1[0][19] + coeff0_1*dmats1[1][19] + coeff0_2*dmats1[2][19] + coeff0_3*dmats1[3][19] + coeff0_4*dmats1[4][19] + coeff0_5*dmats1[5][19] + coeff0_6*dmats1[6][19] + coeff0_7*dmats1[7][19] + coeff0_8*dmats1[8][19] + coeff0_9*dmats1[9][19] + coeff0_10*dmats1[10][19] + coeff0_11*dmats1[11][19] + coeff0_12*dmats1[12][19] + coeff0_13*dmats1[13][19] + coeff0_14*dmats1[14][19] + coeff0_15*dmats1[15][19] + coeff0_16*dmats1[16][19] + coeff0_17*dmats1[17][19] + coeff0_18*dmats1[18][19] + coeff0_19*dmats1[19][19] + coeff0_20*dmats1[20][19] + coeff0_21*dmats1[21][19] + coeff0_22*dmats1[22][19] + coeff0_23*dmats1[23][19] + coeff0_24*dmats1[24][19] + coeff0_25*dmats1[25][19] + coeff0_26*dmats1[26][19] + coeff0_27*dmats1[27][19] + coeff0_28*dmats1[28][19] + coeff0_29*dmats1[29][19] + coeff0_30*dmats1[30][19] + coeff0_31*dmats1[31][19] + coeff0_32*dmats1[32][19] + coeff0_33*dmats1[33][19] + coeff0_34*dmats1[34][19];
 
6383
          new_coeff0_20 = coeff0_0*dmats1[0][20] + coeff0_1*dmats1[1][20] + coeff0_2*dmats1[2][20] + coeff0_3*dmats1[3][20] + coeff0_4*dmats1[4][20] + coeff0_5*dmats1[5][20] + coeff0_6*dmats1[6][20] + coeff0_7*dmats1[7][20] + coeff0_8*dmats1[8][20] + coeff0_9*dmats1[9][20] + coeff0_10*dmats1[10][20] + coeff0_11*dmats1[11][20] + coeff0_12*dmats1[12][20] + coeff0_13*dmats1[13][20] + coeff0_14*dmats1[14][20] + coeff0_15*dmats1[15][20] + coeff0_16*dmats1[16][20] + coeff0_17*dmats1[17][20] + coeff0_18*dmats1[18][20] + coeff0_19*dmats1[19][20] + coeff0_20*dmats1[20][20] + coeff0_21*dmats1[21][20] + coeff0_22*dmats1[22][20] + coeff0_23*dmats1[23][20] + coeff0_24*dmats1[24][20] + coeff0_25*dmats1[25][20] + coeff0_26*dmats1[26][20] + coeff0_27*dmats1[27][20] + coeff0_28*dmats1[28][20] + coeff0_29*dmats1[29][20] + coeff0_30*dmats1[30][20] + coeff0_31*dmats1[31][20] + coeff0_32*dmats1[32][20] + coeff0_33*dmats1[33][20] + coeff0_34*dmats1[34][20];
 
6384
          new_coeff0_21 = coeff0_0*dmats1[0][21] + coeff0_1*dmats1[1][21] + coeff0_2*dmats1[2][21] + coeff0_3*dmats1[3][21] + coeff0_4*dmats1[4][21] + coeff0_5*dmats1[5][21] + coeff0_6*dmats1[6][21] + coeff0_7*dmats1[7][21] + coeff0_8*dmats1[8][21] + coeff0_9*dmats1[9][21] + coeff0_10*dmats1[10][21] + coeff0_11*dmats1[11][21] + coeff0_12*dmats1[12][21] + coeff0_13*dmats1[13][21] + coeff0_14*dmats1[14][21] + coeff0_15*dmats1[15][21] + coeff0_16*dmats1[16][21] + coeff0_17*dmats1[17][21] + coeff0_18*dmats1[18][21] + coeff0_19*dmats1[19][21] + coeff0_20*dmats1[20][21] + coeff0_21*dmats1[21][21] + coeff0_22*dmats1[22][21] + coeff0_23*dmats1[23][21] + coeff0_24*dmats1[24][21] + coeff0_25*dmats1[25][21] + coeff0_26*dmats1[26][21] + coeff0_27*dmats1[27][21] + coeff0_28*dmats1[28][21] + coeff0_29*dmats1[29][21] + coeff0_30*dmats1[30][21] + coeff0_31*dmats1[31][21] + coeff0_32*dmats1[32][21] + coeff0_33*dmats1[33][21] + coeff0_34*dmats1[34][21];
 
6385
          new_coeff0_22 = coeff0_0*dmats1[0][22] + coeff0_1*dmats1[1][22] + coeff0_2*dmats1[2][22] + coeff0_3*dmats1[3][22] + coeff0_4*dmats1[4][22] + coeff0_5*dmats1[5][22] + coeff0_6*dmats1[6][22] + coeff0_7*dmats1[7][22] + coeff0_8*dmats1[8][22] + coeff0_9*dmats1[9][22] + coeff0_10*dmats1[10][22] + coeff0_11*dmats1[11][22] + coeff0_12*dmats1[12][22] + coeff0_13*dmats1[13][22] + coeff0_14*dmats1[14][22] + coeff0_15*dmats1[15][22] + coeff0_16*dmats1[16][22] + coeff0_17*dmats1[17][22] + coeff0_18*dmats1[18][22] + coeff0_19*dmats1[19][22] + coeff0_20*dmats1[20][22] + coeff0_21*dmats1[21][22] + coeff0_22*dmats1[22][22] + coeff0_23*dmats1[23][22] + coeff0_24*dmats1[24][22] + coeff0_25*dmats1[25][22] + coeff0_26*dmats1[26][22] + coeff0_27*dmats1[27][22] + coeff0_28*dmats1[28][22] + coeff0_29*dmats1[29][22] + coeff0_30*dmats1[30][22] + coeff0_31*dmats1[31][22] + coeff0_32*dmats1[32][22] + coeff0_33*dmats1[33][22] + coeff0_34*dmats1[34][22];
 
6386
          new_coeff0_23 = coeff0_0*dmats1[0][23] + coeff0_1*dmats1[1][23] + coeff0_2*dmats1[2][23] + coeff0_3*dmats1[3][23] + coeff0_4*dmats1[4][23] + coeff0_5*dmats1[5][23] + coeff0_6*dmats1[6][23] + coeff0_7*dmats1[7][23] + coeff0_8*dmats1[8][23] + coeff0_9*dmats1[9][23] + coeff0_10*dmats1[10][23] + coeff0_11*dmats1[11][23] + coeff0_12*dmats1[12][23] + coeff0_13*dmats1[13][23] + coeff0_14*dmats1[14][23] + coeff0_15*dmats1[15][23] + coeff0_16*dmats1[16][23] + coeff0_17*dmats1[17][23] + coeff0_18*dmats1[18][23] + coeff0_19*dmats1[19][23] + coeff0_20*dmats1[20][23] + coeff0_21*dmats1[21][23] + coeff0_22*dmats1[22][23] + coeff0_23*dmats1[23][23] + coeff0_24*dmats1[24][23] + coeff0_25*dmats1[25][23] + coeff0_26*dmats1[26][23] + coeff0_27*dmats1[27][23] + coeff0_28*dmats1[28][23] + coeff0_29*dmats1[29][23] + coeff0_30*dmats1[30][23] + coeff0_31*dmats1[31][23] + coeff0_32*dmats1[32][23] + coeff0_33*dmats1[33][23] + coeff0_34*dmats1[34][23];
 
6387
          new_coeff0_24 = coeff0_0*dmats1[0][24] + coeff0_1*dmats1[1][24] + coeff0_2*dmats1[2][24] + coeff0_3*dmats1[3][24] + coeff0_4*dmats1[4][24] + coeff0_5*dmats1[5][24] + coeff0_6*dmats1[6][24] + coeff0_7*dmats1[7][24] + coeff0_8*dmats1[8][24] + coeff0_9*dmats1[9][24] + coeff0_10*dmats1[10][24] + coeff0_11*dmats1[11][24] + coeff0_12*dmats1[12][24] + coeff0_13*dmats1[13][24] + coeff0_14*dmats1[14][24] + coeff0_15*dmats1[15][24] + coeff0_16*dmats1[16][24] + coeff0_17*dmats1[17][24] + coeff0_18*dmats1[18][24] + coeff0_19*dmats1[19][24] + coeff0_20*dmats1[20][24] + coeff0_21*dmats1[21][24] + coeff0_22*dmats1[22][24] + coeff0_23*dmats1[23][24] + coeff0_24*dmats1[24][24] + coeff0_25*dmats1[25][24] + coeff0_26*dmats1[26][24] + coeff0_27*dmats1[27][24] + coeff0_28*dmats1[28][24] + coeff0_29*dmats1[29][24] + coeff0_30*dmats1[30][24] + coeff0_31*dmats1[31][24] + coeff0_32*dmats1[32][24] + coeff0_33*dmats1[33][24] + coeff0_34*dmats1[34][24];
 
6388
          new_coeff0_25 = coeff0_0*dmats1[0][25] + coeff0_1*dmats1[1][25] + coeff0_2*dmats1[2][25] + coeff0_3*dmats1[3][25] + coeff0_4*dmats1[4][25] + coeff0_5*dmats1[5][25] + coeff0_6*dmats1[6][25] + coeff0_7*dmats1[7][25] + coeff0_8*dmats1[8][25] + coeff0_9*dmats1[9][25] + coeff0_10*dmats1[10][25] + coeff0_11*dmats1[11][25] + coeff0_12*dmats1[12][25] + coeff0_13*dmats1[13][25] + coeff0_14*dmats1[14][25] + coeff0_15*dmats1[15][25] + coeff0_16*dmats1[16][25] + coeff0_17*dmats1[17][25] + coeff0_18*dmats1[18][25] + coeff0_19*dmats1[19][25] + coeff0_20*dmats1[20][25] + coeff0_21*dmats1[21][25] + coeff0_22*dmats1[22][25] + coeff0_23*dmats1[23][25] + coeff0_24*dmats1[24][25] + coeff0_25*dmats1[25][25] + coeff0_26*dmats1[26][25] + coeff0_27*dmats1[27][25] + coeff0_28*dmats1[28][25] + coeff0_29*dmats1[29][25] + coeff0_30*dmats1[30][25] + coeff0_31*dmats1[31][25] + coeff0_32*dmats1[32][25] + coeff0_33*dmats1[33][25] + coeff0_34*dmats1[34][25];
 
6389
          new_coeff0_26 = coeff0_0*dmats1[0][26] + coeff0_1*dmats1[1][26] + coeff0_2*dmats1[2][26] + coeff0_3*dmats1[3][26] + coeff0_4*dmats1[4][26] + coeff0_5*dmats1[5][26] + coeff0_6*dmats1[6][26] + coeff0_7*dmats1[7][26] + coeff0_8*dmats1[8][26] + coeff0_9*dmats1[9][26] + coeff0_10*dmats1[10][26] + coeff0_11*dmats1[11][26] + coeff0_12*dmats1[12][26] + coeff0_13*dmats1[13][26] + coeff0_14*dmats1[14][26] + coeff0_15*dmats1[15][26] + coeff0_16*dmats1[16][26] + coeff0_17*dmats1[17][26] + coeff0_18*dmats1[18][26] + coeff0_19*dmats1[19][26] + coeff0_20*dmats1[20][26] + coeff0_21*dmats1[21][26] + coeff0_22*dmats1[22][26] + coeff0_23*dmats1[23][26] + coeff0_24*dmats1[24][26] + coeff0_25*dmats1[25][26] + coeff0_26*dmats1[26][26] + coeff0_27*dmats1[27][26] + coeff0_28*dmats1[28][26] + coeff0_29*dmats1[29][26] + coeff0_30*dmats1[30][26] + coeff0_31*dmats1[31][26] + coeff0_32*dmats1[32][26] + coeff0_33*dmats1[33][26] + coeff0_34*dmats1[34][26];
 
6390
          new_coeff0_27 = coeff0_0*dmats1[0][27] + coeff0_1*dmats1[1][27] + coeff0_2*dmats1[2][27] + coeff0_3*dmats1[3][27] + coeff0_4*dmats1[4][27] + coeff0_5*dmats1[5][27] + coeff0_6*dmats1[6][27] + coeff0_7*dmats1[7][27] + coeff0_8*dmats1[8][27] + coeff0_9*dmats1[9][27] + coeff0_10*dmats1[10][27] + coeff0_11*dmats1[11][27] + coeff0_12*dmats1[12][27] + coeff0_13*dmats1[13][27] + coeff0_14*dmats1[14][27] + coeff0_15*dmats1[15][27] + coeff0_16*dmats1[16][27] + coeff0_17*dmats1[17][27] + coeff0_18*dmats1[18][27] + coeff0_19*dmats1[19][27] + coeff0_20*dmats1[20][27] + coeff0_21*dmats1[21][27] + coeff0_22*dmats1[22][27] + coeff0_23*dmats1[23][27] + coeff0_24*dmats1[24][27] + coeff0_25*dmats1[25][27] + coeff0_26*dmats1[26][27] + coeff0_27*dmats1[27][27] + coeff0_28*dmats1[28][27] + coeff0_29*dmats1[29][27] + coeff0_30*dmats1[30][27] + coeff0_31*dmats1[31][27] + coeff0_32*dmats1[32][27] + coeff0_33*dmats1[33][27] + coeff0_34*dmats1[34][27];
 
6391
          new_coeff0_28 = coeff0_0*dmats1[0][28] + coeff0_1*dmats1[1][28] + coeff0_2*dmats1[2][28] + coeff0_3*dmats1[3][28] + coeff0_4*dmats1[4][28] + coeff0_5*dmats1[5][28] + coeff0_6*dmats1[6][28] + coeff0_7*dmats1[7][28] + coeff0_8*dmats1[8][28] + coeff0_9*dmats1[9][28] + coeff0_10*dmats1[10][28] + coeff0_11*dmats1[11][28] + coeff0_12*dmats1[12][28] + coeff0_13*dmats1[13][28] + coeff0_14*dmats1[14][28] + coeff0_15*dmats1[15][28] + coeff0_16*dmats1[16][28] + coeff0_17*dmats1[17][28] + coeff0_18*dmats1[18][28] + coeff0_19*dmats1[19][28] + coeff0_20*dmats1[20][28] + coeff0_21*dmats1[21][28] + coeff0_22*dmats1[22][28] + coeff0_23*dmats1[23][28] + coeff0_24*dmats1[24][28] + coeff0_25*dmats1[25][28] + coeff0_26*dmats1[26][28] + coeff0_27*dmats1[27][28] + coeff0_28*dmats1[28][28] + coeff0_29*dmats1[29][28] + coeff0_30*dmats1[30][28] + coeff0_31*dmats1[31][28] + coeff0_32*dmats1[32][28] + coeff0_33*dmats1[33][28] + coeff0_34*dmats1[34][28];
 
6392
          new_coeff0_29 = coeff0_0*dmats1[0][29] + coeff0_1*dmats1[1][29] + coeff0_2*dmats1[2][29] + coeff0_3*dmats1[3][29] + coeff0_4*dmats1[4][29] + coeff0_5*dmats1[5][29] + coeff0_6*dmats1[6][29] + coeff0_7*dmats1[7][29] + coeff0_8*dmats1[8][29] + coeff0_9*dmats1[9][29] + coeff0_10*dmats1[10][29] + coeff0_11*dmats1[11][29] + coeff0_12*dmats1[12][29] + coeff0_13*dmats1[13][29] + coeff0_14*dmats1[14][29] + coeff0_15*dmats1[15][29] + coeff0_16*dmats1[16][29] + coeff0_17*dmats1[17][29] + coeff0_18*dmats1[18][29] + coeff0_19*dmats1[19][29] + coeff0_20*dmats1[20][29] + coeff0_21*dmats1[21][29] + coeff0_22*dmats1[22][29] + coeff0_23*dmats1[23][29] + coeff0_24*dmats1[24][29] + coeff0_25*dmats1[25][29] + coeff0_26*dmats1[26][29] + coeff0_27*dmats1[27][29] + coeff0_28*dmats1[28][29] + coeff0_29*dmats1[29][29] + coeff0_30*dmats1[30][29] + coeff0_31*dmats1[31][29] + coeff0_32*dmats1[32][29] + coeff0_33*dmats1[33][29] + coeff0_34*dmats1[34][29];
 
6393
          new_coeff0_30 = coeff0_0*dmats1[0][30] + coeff0_1*dmats1[1][30] + coeff0_2*dmats1[2][30] + coeff0_3*dmats1[3][30] + coeff0_4*dmats1[4][30] + coeff0_5*dmats1[5][30] + coeff0_6*dmats1[6][30] + coeff0_7*dmats1[7][30] + coeff0_8*dmats1[8][30] + coeff0_9*dmats1[9][30] + coeff0_10*dmats1[10][30] + coeff0_11*dmats1[11][30] + coeff0_12*dmats1[12][30] + coeff0_13*dmats1[13][30] + coeff0_14*dmats1[14][30] + coeff0_15*dmats1[15][30] + coeff0_16*dmats1[16][30] + coeff0_17*dmats1[17][30] + coeff0_18*dmats1[18][30] + coeff0_19*dmats1[19][30] + coeff0_20*dmats1[20][30] + coeff0_21*dmats1[21][30] + coeff0_22*dmats1[22][30] + coeff0_23*dmats1[23][30] + coeff0_24*dmats1[24][30] + coeff0_25*dmats1[25][30] + coeff0_26*dmats1[26][30] + coeff0_27*dmats1[27][30] + coeff0_28*dmats1[28][30] + coeff0_29*dmats1[29][30] + coeff0_30*dmats1[30][30] + coeff0_31*dmats1[31][30] + coeff0_32*dmats1[32][30] + coeff0_33*dmats1[33][30] + coeff0_34*dmats1[34][30];
 
6394
          new_coeff0_31 = coeff0_0*dmats1[0][31] + coeff0_1*dmats1[1][31] + coeff0_2*dmats1[2][31] + coeff0_3*dmats1[3][31] + coeff0_4*dmats1[4][31] + coeff0_5*dmats1[5][31] + coeff0_6*dmats1[6][31] + coeff0_7*dmats1[7][31] + coeff0_8*dmats1[8][31] + coeff0_9*dmats1[9][31] + coeff0_10*dmats1[10][31] + coeff0_11*dmats1[11][31] + coeff0_12*dmats1[12][31] + coeff0_13*dmats1[13][31] + coeff0_14*dmats1[14][31] + coeff0_15*dmats1[15][31] + coeff0_16*dmats1[16][31] + coeff0_17*dmats1[17][31] + coeff0_18*dmats1[18][31] + coeff0_19*dmats1[19][31] + coeff0_20*dmats1[20][31] + coeff0_21*dmats1[21][31] + coeff0_22*dmats1[22][31] + coeff0_23*dmats1[23][31] + coeff0_24*dmats1[24][31] + coeff0_25*dmats1[25][31] + coeff0_26*dmats1[26][31] + coeff0_27*dmats1[27][31] + coeff0_28*dmats1[28][31] + coeff0_29*dmats1[29][31] + coeff0_30*dmats1[30][31] + coeff0_31*dmats1[31][31] + coeff0_32*dmats1[32][31] + coeff0_33*dmats1[33][31] + coeff0_34*dmats1[34][31];
 
6395
          new_coeff0_32 = coeff0_0*dmats1[0][32] + coeff0_1*dmats1[1][32] + coeff0_2*dmats1[2][32] + coeff0_3*dmats1[3][32] + coeff0_4*dmats1[4][32] + coeff0_5*dmats1[5][32] + coeff0_6*dmats1[6][32] + coeff0_7*dmats1[7][32] + coeff0_8*dmats1[8][32] + coeff0_9*dmats1[9][32] + coeff0_10*dmats1[10][32] + coeff0_11*dmats1[11][32] + coeff0_12*dmats1[12][32] + coeff0_13*dmats1[13][32] + coeff0_14*dmats1[14][32] + coeff0_15*dmats1[15][32] + coeff0_16*dmats1[16][32] + coeff0_17*dmats1[17][32] + coeff0_18*dmats1[18][32] + coeff0_19*dmats1[19][32] + coeff0_20*dmats1[20][32] + coeff0_21*dmats1[21][32] + coeff0_22*dmats1[22][32] + coeff0_23*dmats1[23][32] + coeff0_24*dmats1[24][32] + coeff0_25*dmats1[25][32] + coeff0_26*dmats1[26][32] + coeff0_27*dmats1[27][32] + coeff0_28*dmats1[28][32] + coeff0_29*dmats1[29][32] + coeff0_30*dmats1[30][32] + coeff0_31*dmats1[31][32] + coeff0_32*dmats1[32][32] + coeff0_33*dmats1[33][32] + coeff0_34*dmats1[34][32];
 
6396
          new_coeff0_33 = coeff0_0*dmats1[0][33] + coeff0_1*dmats1[1][33] + coeff0_2*dmats1[2][33] + coeff0_3*dmats1[3][33] + coeff0_4*dmats1[4][33] + coeff0_5*dmats1[5][33] + coeff0_6*dmats1[6][33] + coeff0_7*dmats1[7][33] + coeff0_8*dmats1[8][33] + coeff0_9*dmats1[9][33] + coeff0_10*dmats1[10][33] + coeff0_11*dmats1[11][33] + coeff0_12*dmats1[12][33] + coeff0_13*dmats1[13][33] + coeff0_14*dmats1[14][33] + coeff0_15*dmats1[15][33] + coeff0_16*dmats1[16][33] + coeff0_17*dmats1[17][33] + coeff0_18*dmats1[18][33] + coeff0_19*dmats1[19][33] + coeff0_20*dmats1[20][33] + coeff0_21*dmats1[21][33] + coeff0_22*dmats1[22][33] + coeff0_23*dmats1[23][33] + coeff0_24*dmats1[24][33] + coeff0_25*dmats1[25][33] + coeff0_26*dmats1[26][33] + coeff0_27*dmats1[27][33] + coeff0_28*dmats1[28][33] + coeff0_29*dmats1[29][33] + coeff0_30*dmats1[30][33] + coeff0_31*dmats1[31][33] + coeff0_32*dmats1[32][33] + coeff0_33*dmats1[33][33] + coeff0_34*dmats1[34][33];
 
6397
          new_coeff0_34 = coeff0_0*dmats1[0][34] + coeff0_1*dmats1[1][34] + coeff0_2*dmats1[2][34] + coeff0_3*dmats1[3][34] + coeff0_4*dmats1[4][34] + coeff0_5*dmats1[5][34] + coeff0_6*dmats1[6][34] + coeff0_7*dmats1[7][34] + coeff0_8*dmats1[8][34] + coeff0_9*dmats1[9][34] + coeff0_10*dmats1[10][34] + coeff0_11*dmats1[11][34] + coeff0_12*dmats1[12][34] + coeff0_13*dmats1[13][34] + coeff0_14*dmats1[14][34] + coeff0_15*dmats1[15][34] + coeff0_16*dmats1[16][34] + coeff0_17*dmats1[17][34] + coeff0_18*dmats1[18][34] + coeff0_19*dmats1[19][34] + coeff0_20*dmats1[20][34] + coeff0_21*dmats1[21][34] + coeff0_22*dmats1[22][34] + coeff0_23*dmats1[23][34] + coeff0_24*dmats1[24][34] + coeff0_25*dmats1[25][34] + coeff0_26*dmats1[26][34] + coeff0_27*dmats1[27][34] + coeff0_28*dmats1[28][34] + coeff0_29*dmats1[29][34] + coeff0_30*dmats1[30][34] + coeff0_31*dmats1[31][34] + coeff0_32*dmats1[32][34] + coeff0_33*dmats1[33][34] + coeff0_34*dmats1[34][34];
 
6398
        }
 
6399
        if(combinations[deriv_num][j] == 2)
 
6400
        {
 
6401
          new_coeff0_0 = coeff0_0*dmats2[0][0] + coeff0_1*dmats2[1][0] + coeff0_2*dmats2[2][0] + coeff0_3*dmats2[3][0] + coeff0_4*dmats2[4][0] + coeff0_5*dmats2[5][0] + coeff0_6*dmats2[6][0] + coeff0_7*dmats2[7][0] + coeff0_8*dmats2[8][0] + coeff0_9*dmats2[9][0] + coeff0_10*dmats2[10][0] + coeff0_11*dmats2[11][0] + coeff0_12*dmats2[12][0] + coeff0_13*dmats2[13][0] + coeff0_14*dmats2[14][0] + coeff0_15*dmats2[15][0] + coeff0_16*dmats2[16][0] + coeff0_17*dmats2[17][0] + coeff0_18*dmats2[18][0] + coeff0_19*dmats2[19][0] + coeff0_20*dmats2[20][0] + coeff0_21*dmats2[21][0] + coeff0_22*dmats2[22][0] + coeff0_23*dmats2[23][0] + coeff0_24*dmats2[24][0] + coeff0_25*dmats2[25][0] + coeff0_26*dmats2[26][0] + coeff0_27*dmats2[27][0] + coeff0_28*dmats2[28][0] + coeff0_29*dmats2[29][0] + coeff0_30*dmats2[30][0] + coeff0_31*dmats2[31][0] + coeff0_32*dmats2[32][0] + coeff0_33*dmats2[33][0] + coeff0_34*dmats2[34][0];
 
6402
          new_coeff0_1 = coeff0_0*dmats2[0][1] + coeff0_1*dmats2[1][1] + coeff0_2*dmats2[2][1] + coeff0_3*dmats2[3][1] + coeff0_4*dmats2[4][1] + coeff0_5*dmats2[5][1] + coeff0_6*dmats2[6][1] + coeff0_7*dmats2[7][1] + coeff0_8*dmats2[8][1] + coeff0_9*dmats2[9][1] + coeff0_10*dmats2[10][1] + coeff0_11*dmats2[11][1] + coeff0_12*dmats2[12][1] + coeff0_13*dmats2[13][1] + coeff0_14*dmats2[14][1] + coeff0_15*dmats2[15][1] + coeff0_16*dmats2[16][1] + coeff0_17*dmats2[17][1] + coeff0_18*dmats2[18][1] + coeff0_19*dmats2[19][1] + coeff0_20*dmats2[20][1] + coeff0_21*dmats2[21][1] + coeff0_22*dmats2[22][1] + coeff0_23*dmats2[23][1] + coeff0_24*dmats2[24][1] + coeff0_25*dmats2[25][1] + coeff0_26*dmats2[26][1] + coeff0_27*dmats2[27][1] + coeff0_28*dmats2[28][1] + coeff0_29*dmats2[29][1] + coeff0_30*dmats2[30][1] + coeff0_31*dmats2[31][1] + coeff0_32*dmats2[32][1] + coeff0_33*dmats2[33][1] + coeff0_34*dmats2[34][1];
 
6403
          new_coeff0_2 = coeff0_0*dmats2[0][2] + coeff0_1*dmats2[1][2] + coeff0_2*dmats2[2][2] + coeff0_3*dmats2[3][2] + coeff0_4*dmats2[4][2] + coeff0_5*dmats2[5][2] + coeff0_6*dmats2[6][2] + coeff0_7*dmats2[7][2] + coeff0_8*dmats2[8][2] + coeff0_9*dmats2[9][2] + coeff0_10*dmats2[10][2] + coeff0_11*dmats2[11][2] + coeff0_12*dmats2[12][2] + coeff0_13*dmats2[13][2] + coeff0_14*dmats2[14][2] + coeff0_15*dmats2[15][2] + coeff0_16*dmats2[16][2] + coeff0_17*dmats2[17][2] + coeff0_18*dmats2[18][2] + coeff0_19*dmats2[19][2] + coeff0_20*dmats2[20][2] + coeff0_21*dmats2[21][2] + coeff0_22*dmats2[22][2] + coeff0_23*dmats2[23][2] + coeff0_24*dmats2[24][2] + coeff0_25*dmats2[25][2] + coeff0_26*dmats2[26][2] + coeff0_27*dmats2[27][2] + coeff0_28*dmats2[28][2] + coeff0_29*dmats2[29][2] + coeff0_30*dmats2[30][2] + coeff0_31*dmats2[31][2] + coeff0_32*dmats2[32][2] + coeff0_33*dmats2[33][2] + coeff0_34*dmats2[34][2];
 
6404
          new_coeff0_3 = coeff0_0*dmats2[0][3] + coeff0_1*dmats2[1][3] + coeff0_2*dmats2[2][3] + coeff0_3*dmats2[3][3] + coeff0_4*dmats2[4][3] + coeff0_5*dmats2[5][3] + coeff0_6*dmats2[6][3] + coeff0_7*dmats2[7][3] + coeff0_8*dmats2[8][3] + coeff0_9*dmats2[9][3] + coeff0_10*dmats2[10][3] + coeff0_11*dmats2[11][3] + coeff0_12*dmats2[12][3] + coeff0_13*dmats2[13][3] + coeff0_14*dmats2[14][3] + coeff0_15*dmats2[15][3] + coeff0_16*dmats2[16][3] + coeff0_17*dmats2[17][3] + coeff0_18*dmats2[18][3] + coeff0_19*dmats2[19][3] + coeff0_20*dmats2[20][3] + coeff0_21*dmats2[21][3] + coeff0_22*dmats2[22][3] + coeff0_23*dmats2[23][3] + coeff0_24*dmats2[24][3] + coeff0_25*dmats2[25][3] + coeff0_26*dmats2[26][3] + coeff0_27*dmats2[27][3] + coeff0_28*dmats2[28][3] + coeff0_29*dmats2[29][3] + coeff0_30*dmats2[30][3] + coeff0_31*dmats2[31][3] + coeff0_32*dmats2[32][3] + coeff0_33*dmats2[33][3] + coeff0_34*dmats2[34][3];
 
6405
          new_coeff0_4 = coeff0_0*dmats2[0][4] + coeff0_1*dmats2[1][4] + coeff0_2*dmats2[2][4] + coeff0_3*dmats2[3][4] + coeff0_4*dmats2[4][4] + coeff0_5*dmats2[5][4] + coeff0_6*dmats2[6][4] + coeff0_7*dmats2[7][4] + coeff0_8*dmats2[8][4] + coeff0_9*dmats2[9][4] + coeff0_10*dmats2[10][4] + coeff0_11*dmats2[11][4] + coeff0_12*dmats2[12][4] + coeff0_13*dmats2[13][4] + coeff0_14*dmats2[14][4] + coeff0_15*dmats2[15][4] + coeff0_16*dmats2[16][4] + coeff0_17*dmats2[17][4] + coeff0_18*dmats2[18][4] + coeff0_19*dmats2[19][4] + coeff0_20*dmats2[20][4] + coeff0_21*dmats2[21][4] + coeff0_22*dmats2[22][4] + coeff0_23*dmats2[23][4] + coeff0_24*dmats2[24][4] + coeff0_25*dmats2[25][4] + coeff0_26*dmats2[26][4] + coeff0_27*dmats2[27][4] + coeff0_28*dmats2[28][4] + coeff0_29*dmats2[29][4] + coeff0_30*dmats2[30][4] + coeff0_31*dmats2[31][4] + coeff0_32*dmats2[32][4] + coeff0_33*dmats2[33][4] + coeff0_34*dmats2[34][4];
 
6406
          new_coeff0_5 = coeff0_0*dmats2[0][5] + coeff0_1*dmats2[1][5] + coeff0_2*dmats2[2][5] + coeff0_3*dmats2[3][5] + coeff0_4*dmats2[4][5] + coeff0_5*dmats2[5][5] + coeff0_6*dmats2[6][5] + coeff0_7*dmats2[7][5] + coeff0_8*dmats2[8][5] + coeff0_9*dmats2[9][5] + coeff0_10*dmats2[10][5] + coeff0_11*dmats2[11][5] + coeff0_12*dmats2[12][5] + coeff0_13*dmats2[13][5] + coeff0_14*dmats2[14][5] + coeff0_15*dmats2[15][5] + coeff0_16*dmats2[16][5] + coeff0_17*dmats2[17][5] + coeff0_18*dmats2[18][5] + coeff0_19*dmats2[19][5] + coeff0_20*dmats2[20][5] + coeff0_21*dmats2[21][5] + coeff0_22*dmats2[22][5] + coeff0_23*dmats2[23][5] + coeff0_24*dmats2[24][5] + coeff0_25*dmats2[25][5] + coeff0_26*dmats2[26][5] + coeff0_27*dmats2[27][5] + coeff0_28*dmats2[28][5] + coeff0_29*dmats2[29][5] + coeff0_30*dmats2[30][5] + coeff0_31*dmats2[31][5] + coeff0_32*dmats2[32][5] + coeff0_33*dmats2[33][5] + coeff0_34*dmats2[34][5];
 
6407
          new_coeff0_6 = coeff0_0*dmats2[0][6] + coeff0_1*dmats2[1][6] + coeff0_2*dmats2[2][6] + coeff0_3*dmats2[3][6] + coeff0_4*dmats2[4][6] + coeff0_5*dmats2[5][6] + coeff0_6*dmats2[6][6] + coeff0_7*dmats2[7][6] + coeff0_8*dmats2[8][6] + coeff0_9*dmats2[9][6] + coeff0_10*dmats2[10][6] + coeff0_11*dmats2[11][6] + coeff0_12*dmats2[12][6] + coeff0_13*dmats2[13][6] + coeff0_14*dmats2[14][6] + coeff0_15*dmats2[15][6] + coeff0_16*dmats2[16][6] + coeff0_17*dmats2[17][6] + coeff0_18*dmats2[18][6] + coeff0_19*dmats2[19][6] + coeff0_20*dmats2[20][6] + coeff0_21*dmats2[21][6] + coeff0_22*dmats2[22][6] + coeff0_23*dmats2[23][6] + coeff0_24*dmats2[24][6] + coeff0_25*dmats2[25][6] + coeff0_26*dmats2[26][6] + coeff0_27*dmats2[27][6] + coeff0_28*dmats2[28][6] + coeff0_29*dmats2[29][6] + coeff0_30*dmats2[30][6] + coeff0_31*dmats2[31][6] + coeff0_32*dmats2[32][6] + coeff0_33*dmats2[33][6] + coeff0_34*dmats2[34][6];
 
6408
          new_coeff0_7 = coeff0_0*dmats2[0][7] + coeff0_1*dmats2[1][7] + coeff0_2*dmats2[2][7] + coeff0_3*dmats2[3][7] + coeff0_4*dmats2[4][7] + coeff0_5*dmats2[5][7] + coeff0_6*dmats2[6][7] + coeff0_7*dmats2[7][7] + coeff0_8*dmats2[8][7] + coeff0_9*dmats2[9][7] + coeff0_10*dmats2[10][7] + coeff0_11*dmats2[11][7] + coeff0_12*dmats2[12][7] + coeff0_13*dmats2[13][7] + coeff0_14*dmats2[14][7] + coeff0_15*dmats2[15][7] + coeff0_16*dmats2[16][7] + coeff0_17*dmats2[17][7] + coeff0_18*dmats2[18][7] + coeff0_19*dmats2[19][7] + coeff0_20*dmats2[20][7] + coeff0_21*dmats2[21][7] + coeff0_22*dmats2[22][7] + coeff0_23*dmats2[23][7] + coeff0_24*dmats2[24][7] + coeff0_25*dmats2[25][7] + coeff0_26*dmats2[26][7] + coeff0_27*dmats2[27][7] + coeff0_28*dmats2[28][7] + coeff0_29*dmats2[29][7] + coeff0_30*dmats2[30][7] + coeff0_31*dmats2[31][7] + coeff0_32*dmats2[32][7] + coeff0_33*dmats2[33][7] + coeff0_34*dmats2[34][7];
 
6409
          new_coeff0_8 = coeff0_0*dmats2[0][8] + coeff0_1*dmats2[1][8] + coeff0_2*dmats2[2][8] + coeff0_3*dmats2[3][8] + coeff0_4*dmats2[4][8] + coeff0_5*dmats2[5][8] + coeff0_6*dmats2[6][8] + coeff0_7*dmats2[7][8] + coeff0_8*dmats2[8][8] + coeff0_9*dmats2[9][8] + coeff0_10*dmats2[10][8] + coeff0_11*dmats2[11][8] + coeff0_12*dmats2[12][8] + coeff0_13*dmats2[13][8] + coeff0_14*dmats2[14][8] + coeff0_15*dmats2[15][8] + coeff0_16*dmats2[16][8] + coeff0_17*dmats2[17][8] + coeff0_18*dmats2[18][8] + coeff0_19*dmats2[19][8] + coeff0_20*dmats2[20][8] + coeff0_21*dmats2[21][8] + coeff0_22*dmats2[22][8] + coeff0_23*dmats2[23][8] + coeff0_24*dmats2[24][8] + coeff0_25*dmats2[25][8] + coeff0_26*dmats2[26][8] + coeff0_27*dmats2[27][8] + coeff0_28*dmats2[28][8] + coeff0_29*dmats2[29][8] + coeff0_30*dmats2[30][8] + coeff0_31*dmats2[31][8] + coeff0_32*dmats2[32][8] + coeff0_33*dmats2[33][8] + coeff0_34*dmats2[34][8];
 
6410
          new_coeff0_9 = coeff0_0*dmats2[0][9] + coeff0_1*dmats2[1][9] + coeff0_2*dmats2[2][9] + coeff0_3*dmats2[3][9] + coeff0_4*dmats2[4][9] + coeff0_5*dmats2[5][9] + coeff0_6*dmats2[6][9] + coeff0_7*dmats2[7][9] + coeff0_8*dmats2[8][9] + coeff0_9*dmats2[9][9] + coeff0_10*dmats2[10][9] + coeff0_11*dmats2[11][9] + coeff0_12*dmats2[12][9] + coeff0_13*dmats2[13][9] + coeff0_14*dmats2[14][9] + coeff0_15*dmats2[15][9] + coeff0_16*dmats2[16][9] + coeff0_17*dmats2[17][9] + coeff0_18*dmats2[18][9] + coeff0_19*dmats2[19][9] + coeff0_20*dmats2[20][9] + coeff0_21*dmats2[21][9] + coeff0_22*dmats2[22][9] + coeff0_23*dmats2[23][9] + coeff0_24*dmats2[24][9] + coeff0_25*dmats2[25][9] + coeff0_26*dmats2[26][9] + coeff0_27*dmats2[27][9] + coeff0_28*dmats2[28][9] + coeff0_29*dmats2[29][9] + coeff0_30*dmats2[30][9] + coeff0_31*dmats2[31][9] + coeff0_32*dmats2[32][9] + coeff0_33*dmats2[33][9] + coeff0_34*dmats2[34][9];
 
6411
          new_coeff0_10 = coeff0_0*dmats2[0][10] + coeff0_1*dmats2[1][10] + coeff0_2*dmats2[2][10] + coeff0_3*dmats2[3][10] + coeff0_4*dmats2[4][10] + coeff0_5*dmats2[5][10] + coeff0_6*dmats2[6][10] + coeff0_7*dmats2[7][10] + coeff0_8*dmats2[8][10] + coeff0_9*dmats2[9][10] + coeff0_10*dmats2[10][10] + coeff0_11*dmats2[11][10] + coeff0_12*dmats2[12][10] + coeff0_13*dmats2[13][10] + coeff0_14*dmats2[14][10] + coeff0_15*dmats2[15][10] + coeff0_16*dmats2[16][10] + coeff0_17*dmats2[17][10] + coeff0_18*dmats2[18][10] + coeff0_19*dmats2[19][10] + coeff0_20*dmats2[20][10] + coeff0_21*dmats2[21][10] + coeff0_22*dmats2[22][10] + coeff0_23*dmats2[23][10] + coeff0_24*dmats2[24][10] + coeff0_25*dmats2[25][10] + coeff0_26*dmats2[26][10] + coeff0_27*dmats2[27][10] + coeff0_28*dmats2[28][10] + coeff0_29*dmats2[29][10] + coeff0_30*dmats2[30][10] + coeff0_31*dmats2[31][10] + coeff0_32*dmats2[32][10] + coeff0_33*dmats2[33][10] + coeff0_34*dmats2[34][10];
 
6412
          new_coeff0_11 = coeff0_0*dmats2[0][11] + coeff0_1*dmats2[1][11] + coeff0_2*dmats2[2][11] + coeff0_3*dmats2[3][11] + coeff0_4*dmats2[4][11] + coeff0_5*dmats2[5][11] + coeff0_6*dmats2[6][11] + coeff0_7*dmats2[7][11] + coeff0_8*dmats2[8][11] + coeff0_9*dmats2[9][11] + coeff0_10*dmats2[10][11] + coeff0_11*dmats2[11][11] + coeff0_12*dmats2[12][11] + coeff0_13*dmats2[13][11] + coeff0_14*dmats2[14][11] + coeff0_15*dmats2[15][11] + coeff0_16*dmats2[16][11] + coeff0_17*dmats2[17][11] + coeff0_18*dmats2[18][11] + coeff0_19*dmats2[19][11] + coeff0_20*dmats2[20][11] + coeff0_21*dmats2[21][11] + coeff0_22*dmats2[22][11] + coeff0_23*dmats2[23][11] + coeff0_24*dmats2[24][11] + coeff0_25*dmats2[25][11] + coeff0_26*dmats2[26][11] + coeff0_27*dmats2[27][11] + coeff0_28*dmats2[28][11] + coeff0_29*dmats2[29][11] + coeff0_30*dmats2[30][11] + coeff0_31*dmats2[31][11] + coeff0_32*dmats2[32][11] + coeff0_33*dmats2[33][11] + coeff0_34*dmats2[34][11];
 
6413
          new_coeff0_12 = coeff0_0*dmats2[0][12] + coeff0_1*dmats2[1][12] + coeff0_2*dmats2[2][12] + coeff0_3*dmats2[3][12] + coeff0_4*dmats2[4][12] + coeff0_5*dmats2[5][12] + coeff0_6*dmats2[6][12] + coeff0_7*dmats2[7][12] + coeff0_8*dmats2[8][12] + coeff0_9*dmats2[9][12] + coeff0_10*dmats2[10][12] + coeff0_11*dmats2[11][12] + coeff0_12*dmats2[12][12] + coeff0_13*dmats2[13][12] + coeff0_14*dmats2[14][12] + coeff0_15*dmats2[15][12] + coeff0_16*dmats2[16][12] + coeff0_17*dmats2[17][12] + coeff0_18*dmats2[18][12] + coeff0_19*dmats2[19][12] + coeff0_20*dmats2[20][12] + coeff0_21*dmats2[21][12] + coeff0_22*dmats2[22][12] + coeff0_23*dmats2[23][12] + coeff0_24*dmats2[24][12] + coeff0_25*dmats2[25][12] + coeff0_26*dmats2[26][12] + coeff0_27*dmats2[27][12] + coeff0_28*dmats2[28][12] + coeff0_29*dmats2[29][12] + coeff0_30*dmats2[30][12] + coeff0_31*dmats2[31][12] + coeff0_32*dmats2[32][12] + coeff0_33*dmats2[33][12] + coeff0_34*dmats2[34][12];
 
6414
          new_coeff0_13 = coeff0_0*dmats2[0][13] + coeff0_1*dmats2[1][13] + coeff0_2*dmats2[2][13] + coeff0_3*dmats2[3][13] + coeff0_4*dmats2[4][13] + coeff0_5*dmats2[5][13] + coeff0_6*dmats2[6][13] + coeff0_7*dmats2[7][13] + coeff0_8*dmats2[8][13] + coeff0_9*dmats2[9][13] + coeff0_10*dmats2[10][13] + coeff0_11*dmats2[11][13] + coeff0_12*dmats2[12][13] + coeff0_13*dmats2[13][13] + coeff0_14*dmats2[14][13] + coeff0_15*dmats2[15][13] + coeff0_16*dmats2[16][13] + coeff0_17*dmats2[17][13] + coeff0_18*dmats2[18][13] + coeff0_19*dmats2[19][13] + coeff0_20*dmats2[20][13] + coeff0_21*dmats2[21][13] + coeff0_22*dmats2[22][13] + coeff0_23*dmats2[23][13] + coeff0_24*dmats2[24][13] + coeff0_25*dmats2[25][13] + coeff0_26*dmats2[26][13] + coeff0_27*dmats2[27][13] + coeff0_28*dmats2[28][13] + coeff0_29*dmats2[29][13] + coeff0_30*dmats2[30][13] + coeff0_31*dmats2[31][13] + coeff0_32*dmats2[32][13] + coeff0_33*dmats2[33][13] + coeff0_34*dmats2[34][13];
 
6415
          new_coeff0_14 = coeff0_0*dmats2[0][14] + coeff0_1*dmats2[1][14] + coeff0_2*dmats2[2][14] + coeff0_3*dmats2[3][14] + coeff0_4*dmats2[4][14] + coeff0_5*dmats2[5][14] + coeff0_6*dmats2[6][14] + coeff0_7*dmats2[7][14] + coeff0_8*dmats2[8][14] + coeff0_9*dmats2[9][14] + coeff0_10*dmats2[10][14] + coeff0_11*dmats2[11][14] + coeff0_12*dmats2[12][14] + coeff0_13*dmats2[13][14] + coeff0_14*dmats2[14][14] + coeff0_15*dmats2[15][14] + coeff0_16*dmats2[16][14] + coeff0_17*dmats2[17][14] + coeff0_18*dmats2[18][14] + coeff0_19*dmats2[19][14] + coeff0_20*dmats2[20][14] + coeff0_21*dmats2[21][14] + coeff0_22*dmats2[22][14] + coeff0_23*dmats2[23][14] + coeff0_24*dmats2[24][14] + coeff0_25*dmats2[25][14] + coeff0_26*dmats2[26][14] + coeff0_27*dmats2[27][14] + coeff0_28*dmats2[28][14] + coeff0_29*dmats2[29][14] + coeff0_30*dmats2[30][14] + coeff0_31*dmats2[31][14] + coeff0_32*dmats2[32][14] + coeff0_33*dmats2[33][14] + coeff0_34*dmats2[34][14];
 
6416
          new_coeff0_15 = coeff0_0*dmats2[0][15] + coeff0_1*dmats2[1][15] + coeff0_2*dmats2[2][15] + coeff0_3*dmats2[3][15] + coeff0_4*dmats2[4][15] + coeff0_5*dmats2[5][15] + coeff0_6*dmats2[6][15] + coeff0_7*dmats2[7][15] + coeff0_8*dmats2[8][15] + coeff0_9*dmats2[9][15] + coeff0_10*dmats2[10][15] + coeff0_11*dmats2[11][15] + coeff0_12*dmats2[12][15] + coeff0_13*dmats2[13][15] + coeff0_14*dmats2[14][15] + coeff0_15*dmats2[15][15] + coeff0_16*dmats2[16][15] + coeff0_17*dmats2[17][15] + coeff0_18*dmats2[18][15] + coeff0_19*dmats2[19][15] + coeff0_20*dmats2[20][15] + coeff0_21*dmats2[21][15] + coeff0_22*dmats2[22][15] + coeff0_23*dmats2[23][15] + coeff0_24*dmats2[24][15] + coeff0_25*dmats2[25][15] + coeff0_26*dmats2[26][15] + coeff0_27*dmats2[27][15] + coeff0_28*dmats2[28][15] + coeff0_29*dmats2[29][15] + coeff0_30*dmats2[30][15] + coeff0_31*dmats2[31][15] + coeff0_32*dmats2[32][15] + coeff0_33*dmats2[33][15] + coeff0_34*dmats2[34][15];
 
6417
          new_coeff0_16 = coeff0_0*dmats2[0][16] + coeff0_1*dmats2[1][16] + coeff0_2*dmats2[2][16] + coeff0_3*dmats2[3][16] + coeff0_4*dmats2[4][16] + coeff0_5*dmats2[5][16] + coeff0_6*dmats2[6][16] + coeff0_7*dmats2[7][16] + coeff0_8*dmats2[8][16] + coeff0_9*dmats2[9][16] + coeff0_10*dmats2[10][16] + coeff0_11*dmats2[11][16] + coeff0_12*dmats2[12][16] + coeff0_13*dmats2[13][16] + coeff0_14*dmats2[14][16] + coeff0_15*dmats2[15][16] + coeff0_16*dmats2[16][16] + coeff0_17*dmats2[17][16] + coeff0_18*dmats2[18][16] + coeff0_19*dmats2[19][16] + coeff0_20*dmats2[20][16] + coeff0_21*dmats2[21][16] + coeff0_22*dmats2[22][16] + coeff0_23*dmats2[23][16] + coeff0_24*dmats2[24][16] + coeff0_25*dmats2[25][16] + coeff0_26*dmats2[26][16] + coeff0_27*dmats2[27][16] + coeff0_28*dmats2[28][16] + coeff0_29*dmats2[29][16] + coeff0_30*dmats2[30][16] + coeff0_31*dmats2[31][16] + coeff0_32*dmats2[32][16] + coeff0_33*dmats2[33][16] + coeff0_34*dmats2[34][16];
 
6418
          new_coeff0_17 = coeff0_0*dmats2[0][17] + coeff0_1*dmats2[1][17] + coeff0_2*dmats2[2][17] + coeff0_3*dmats2[3][17] + coeff0_4*dmats2[4][17] + coeff0_5*dmats2[5][17] + coeff0_6*dmats2[6][17] + coeff0_7*dmats2[7][17] + coeff0_8*dmats2[8][17] + coeff0_9*dmats2[9][17] + coeff0_10*dmats2[10][17] + coeff0_11*dmats2[11][17] + coeff0_12*dmats2[12][17] + coeff0_13*dmats2[13][17] + coeff0_14*dmats2[14][17] + coeff0_15*dmats2[15][17] + coeff0_16*dmats2[16][17] + coeff0_17*dmats2[17][17] + coeff0_18*dmats2[18][17] + coeff0_19*dmats2[19][17] + coeff0_20*dmats2[20][17] + coeff0_21*dmats2[21][17] + coeff0_22*dmats2[22][17] + coeff0_23*dmats2[23][17] + coeff0_24*dmats2[24][17] + coeff0_25*dmats2[25][17] + coeff0_26*dmats2[26][17] + coeff0_27*dmats2[27][17] + coeff0_28*dmats2[28][17] + coeff0_29*dmats2[29][17] + coeff0_30*dmats2[30][17] + coeff0_31*dmats2[31][17] + coeff0_32*dmats2[32][17] + coeff0_33*dmats2[33][17] + coeff0_34*dmats2[34][17];
 
6419
          new_coeff0_18 = coeff0_0*dmats2[0][18] + coeff0_1*dmats2[1][18] + coeff0_2*dmats2[2][18] + coeff0_3*dmats2[3][18] + coeff0_4*dmats2[4][18] + coeff0_5*dmats2[5][18] + coeff0_6*dmats2[6][18] + coeff0_7*dmats2[7][18] + coeff0_8*dmats2[8][18] + coeff0_9*dmats2[9][18] + coeff0_10*dmats2[10][18] + coeff0_11*dmats2[11][18] + coeff0_12*dmats2[12][18] + coeff0_13*dmats2[13][18] + coeff0_14*dmats2[14][18] + coeff0_15*dmats2[15][18] + coeff0_16*dmats2[16][18] + coeff0_17*dmats2[17][18] + coeff0_18*dmats2[18][18] + coeff0_19*dmats2[19][18] + coeff0_20*dmats2[20][18] + coeff0_21*dmats2[21][18] + coeff0_22*dmats2[22][18] + coeff0_23*dmats2[23][18] + coeff0_24*dmats2[24][18] + coeff0_25*dmats2[25][18] + coeff0_26*dmats2[26][18] + coeff0_27*dmats2[27][18] + coeff0_28*dmats2[28][18] + coeff0_29*dmats2[29][18] + coeff0_30*dmats2[30][18] + coeff0_31*dmats2[31][18] + coeff0_32*dmats2[32][18] + coeff0_33*dmats2[33][18] + coeff0_34*dmats2[34][18];
 
6420
          new_coeff0_19 = coeff0_0*dmats2[0][19] + coeff0_1*dmats2[1][19] + coeff0_2*dmats2[2][19] + coeff0_3*dmats2[3][19] + coeff0_4*dmats2[4][19] + coeff0_5*dmats2[5][19] + coeff0_6*dmats2[6][19] + coeff0_7*dmats2[7][19] + coeff0_8*dmats2[8][19] + coeff0_9*dmats2[9][19] + coeff0_10*dmats2[10][19] + coeff0_11*dmats2[11][19] + coeff0_12*dmats2[12][19] + coeff0_13*dmats2[13][19] + coeff0_14*dmats2[14][19] + coeff0_15*dmats2[15][19] + coeff0_16*dmats2[16][19] + coeff0_17*dmats2[17][19] + coeff0_18*dmats2[18][19] + coeff0_19*dmats2[19][19] + coeff0_20*dmats2[20][19] + coeff0_21*dmats2[21][19] + coeff0_22*dmats2[22][19] + coeff0_23*dmats2[23][19] + coeff0_24*dmats2[24][19] + coeff0_25*dmats2[25][19] + coeff0_26*dmats2[26][19] + coeff0_27*dmats2[27][19] + coeff0_28*dmats2[28][19] + coeff0_29*dmats2[29][19] + coeff0_30*dmats2[30][19] + coeff0_31*dmats2[31][19] + coeff0_32*dmats2[32][19] + coeff0_33*dmats2[33][19] + coeff0_34*dmats2[34][19];
 
6421
          new_coeff0_20 = coeff0_0*dmats2[0][20] + coeff0_1*dmats2[1][20] + coeff0_2*dmats2[2][20] + coeff0_3*dmats2[3][20] + coeff0_4*dmats2[4][20] + coeff0_5*dmats2[5][20] + coeff0_6*dmats2[6][20] + coeff0_7*dmats2[7][20] + coeff0_8*dmats2[8][20] + coeff0_9*dmats2[9][20] + coeff0_10*dmats2[10][20] + coeff0_11*dmats2[11][20] + coeff0_12*dmats2[12][20] + coeff0_13*dmats2[13][20] + coeff0_14*dmats2[14][20] + coeff0_15*dmats2[15][20] + coeff0_16*dmats2[16][20] + coeff0_17*dmats2[17][20] + coeff0_18*dmats2[18][20] + coeff0_19*dmats2[19][20] + coeff0_20*dmats2[20][20] + coeff0_21*dmats2[21][20] + coeff0_22*dmats2[22][20] + coeff0_23*dmats2[23][20] + coeff0_24*dmats2[24][20] + coeff0_25*dmats2[25][20] + coeff0_26*dmats2[26][20] + coeff0_27*dmats2[27][20] + coeff0_28*dmats2[28][20] + coeff0_29*dmats2[29][20] + coeff0_30*dmats2[30][20] + coeff0_31*dmats2[31][20] + coeff0_32*dmats2[32][20] + coeff0_33*dmats2[33][20] + coeff0_34*dmats2[34][20];
 
6422
          new_coeff0_21 = coeff0_0*dmats2[0][21] + coeff0_1*dmats2[1][21] + coeff0_2*dmats2[2][21] + coeff0_3*dmats2[3][21] + coeff0_4*dmats2[4][21] + coeff0_5*dmats2[5][21] + coeff0_6*dmats2[6][21] + coeff0_7*dmats2[7][21] + coeff0_8*dmats2[8][21] + coeff0_9*dmats2[9][21] + coeff0_10*dmats2[10][21] + coeff0_11*dmats2[11][21] + coeff0_12*dmats2[12][21] + coeff0_13*dmats2[13][21] + coeff0_14*dmats2[14][21] + coeff0_15*dmats2[15][21] + coeff0_16*dmats2[16][21] + coeff0_17*dmats2[17][21] + coeff0_18*dmats2[18][21] + coeff0_19*dmats2[19][21] + coeff0_20*dmats2[20][21] + coeff0_21*dmats2[21][21] + coeff0_22*dmats2[22][21] + coeff0_23*dmats2[23][21] + coeff0_24*dmats2[24][21] + coeff0_25*dmats2[25][21] + coeff0_26*dmats2[26][21] + coeff0_27*dmats2[27][21] + coeff0_28*dmats2[28][21] + coeff0_29*dmats2[29][21] + coeff0_30*dmats2[30][21] + coeff0_31*dmats2[31][21] + coeff0_32*dmats2[32][21] + coeff0_33*dmats2[33][21] + coeff0_34*dmats2[34][21];
 
6423
          new_coeff0_22 = coeff0_0*dmats2[0][22] + coeff0_1*dmats2[1][22] + coeff0_2*dmats2[2][22] + coeff0_3*dmats2[3][22] + coeff0_4*dmats2[4][22] + coeff0_5*dmats2[5][22] + coeff0_6*dmats2[6][22] + coeff0_7*dmats2[7][22] + coeff0_8*dmats2[8][22] + coeff0_9*dmats2[9][22] + coeff0_10*dmats2[10][22] + coeff0_11*dmats2[11][22] + coeff0_12*dmats2[12][22] + coeff0_13*dmats2[13][22] + coeff0_14*dmats2[14][22] + coeff0_15*dmats2[15][22] + coeff0_16*dmats2[16][22] + coeff0_17*dmats2[17][22] + coeff0_18*dmats2[18][22] + coeff0_19*dmats2[19][22] + coeff0_20*dmats2[20][22] + coeff0_21*dmats2[21][22] + coeff0_22*dmats2[22][22] + coeff0_23*dmats2[23][22] + coeff0_24*dmats2[24][22] + coeff0_25*dmats2[25][22] + coeff0_26*dmats2[26][22] + coeff0_27*dmats2[27][22] + coeff0_28*dmats2[28][22] + coeff0_29*dmats2[29][22] + coeff0_30*dmats2[30][22] + coeff0_31*dmats2[31][22] + coeff0_32*dmats2[32][22] + coeff0_33*dmats2[33][22] + coeff0_34*dmats2[34][22];
 
6424
          new_coeff0_23 = coeff0_0*dmats2[0][23] + coeff0_1*dmats2[1][23] + coeff0_2*dmats2[2][23] + coeff0_3*dmats2[3][23] + coeff0_4*dmats2[4][23] + coeff0_5*dmats2[5][23] + coeff0_6*dmats2[6][23] + coeff0_7*dmats2[7][23] + coeff0_8*dmats2[8][23] + coeff0_9*dmats2[9][23] + coeff0_10*dmats2[10][23] + coeff0_11*dmats2[11][23] + coeff0_12*dmats2[12][23] + coeff0_13*dmats2[13][23] + coeff0_14*dmats2[14][23] + coeff0_15*dmats2[15][23] + coeff0_16*dmats2[16][23] + coeff0_17*dmats2[17][23] + coeff0_18*dmats2[18][23] + coeff0_19*dmats2[19][23] + coeff0_20*dmats2[20][23] + coeff0_21*dmats2[21][23] + coeff0_22*dmats2[22][23] + coeff0_23*dmats2[23][23] + coeff0_24*dmats2[24][23] + coeff0_25*dmats2[25][23] + coeff0_26*dmats2[26][23] + coeff0_27*dmats2[27][23] + coeff0_28*dmats2[28][23] + coeff0_29*dmats2[29][23] + coeff0_30*dmats2[30][23] + coeff0_31*dmats2[31][23] + coeff0_32*dmats2[32][23] + coeff0_33*dmats2[33][23] + coeff0_34*dmats2[34][23];
 
6425
          new_coeff0_24 = coeff0_0*dmats2[0][24] + coeff0_1*dmats2[1][24] + coeff0_2*dmats2[2][24] + coeff0_3*dmats2[3][24] + coeff0_4*dmats2[4][24] + coeff0_5*dmats2[5][24] + coeff0_6*dmats2[6][24] + coeff0_7*dmats2[7][24] + coeff0_8*dmats2[8][24] + coeff0_9*dmats2[9][24] + coeff0_10*dmats2[10][24] + coeff0_11*dmats2[11][24] + coeff0_12*dmats2[12][24] + coeff0_13*dmats2[13][24] + coeff0_14*dmats2[14][24] + coeff0_15*dmats2[15][24] + coeff0_16*dmats2[16][24] + coeff0_17*dmats2[17][24] + coeff0_18*dmats2[18][24] + coeff0_19*dmats2[19][24] + coeff0_20*dmats2[20][24] + coeff0_21*dmats2[21][24] + coeff0_22*dmats2[22][24] + coeff0_23*dmats2[23][24] + coeff0_24*dmats2[24][24] + coeff0_25*dmats2[25][24] + coeff0_26*dmats2[26][24] + coeff0_27*dmats2[27][24] + coeff0_28*dmats2[28][24] + coeff0_29*dmats2[29][24] + coeff0_30*dmats2[30][24] + coeff0_31*dmats2[31][24] + coeff0_32*dmats2[32][24] + coeff0_33*dmats2[33][24] + coeff0_34*dmats2[34][24];
 
6426
          new_coeff0_25 = coeff0_0*dmats2[0][25] + coeff0_1*dmats2[1][25] + coeff0_2*dmats2[2][25] + coeff0_3*dmats2[3][25] + coeff0_4*dmats2[4][25] + coeff0_5*dmats2[5][25] + coeff0_6*dmats2[6][25] + coeff0_7*dmats2[7][25] + coeff0_8*dmats2[8][25] + coeff0_9*dmats2[9][25] + coeff0_10*dmats2[10][25] + coeff0_11*dmats2[11][25] + coeff0_12*dmats2[12][25] + coeff0_13*dmats2[13][25] + coeff0_14*dmats2[14][25] + coeff0_15*dmats2[15][25] + coeff0_16*dmats2[16][25] + coeff0_17*dmats2[17][25] + coeff0_18*dmats2[18][25] + coeff0_19*dmats2[19][25] + coeff0_20*dmats2[20][25] + coeff0_21*dmats2[21][25] + coeff0_22*dmats2[22][25] + coeff0_23*dmats2[23][25] + coeff0_24*dmats2[24][25] + coeff0_25*dmats2[25][25] + coeff0_26*dmats2[26][25] + coeff0_27*dmats2[27][25] + coeff0_28*dmats2[28][25] + coeff0_29*dmats2[29][25] + coeff0_30*dmats2[30][25] + coeff0_31*dmats2[31][25] + coeff0_32*dmats2[32][25] + coeff0_33*dmats2[33][25] + coeff0_34*dmats2[34][25];
 
6427
          new_coeff0_26 = coeff0_0*dmats2[0][26] + coeff0_1*dmats2[1][26] + coeff0_2*dmats2[2][26] + coeff0_3*dmats2[3][26] + coeff0_4*dmats2[4][26] + coeff0_5*dmats2[5][26] + coeff0_6*dmats2[6][26] + coeff0_7*dmats2[7][26] + coeff0_8*dmats2[8][26] + coeff0_9*dmats2[9][26] + coeff0_10*dmats2[10][26] + coeff0_11*dmats2[11][26] + coeff0_12*dmats2[12][26] + coeff0_13*dmats2[13][26] + coeff0_14*dmats2[14][26] + coeff0_15*dmats2[15][26] + coeff0_16*dmats2[16][26] + coeff0_17*dmats2[17][26] + coeff0_18*dmats2[18][26] + coeff0_19*dmats2[19][26] + coeff0_20*dmats2[20][26] + coeff0_21*dmats2[21][26] + coeff0_22*dmats2[22][26] + coeff0_23*dmats2[23][26] + coeff0_24*dmats2[24][26] + coeff0_25*dmats2[25][26] + coeff0_26*dmats2[26][26] + coeff0_27*dmats2[27][26] + coeff0_28*dmats2[28][26] + coeff0_29*dmats2[29][26] + coeff0_30*dmats2[30][26] + coeff0_31*dmats2[31][26] + coeff0_32*dmats2[32][26] + coeff0_33*dmats2[33][26] + coeff0_34*dmats2[34][26];
 
6428
          new_coeff0_27 = coeff0_0*dmats2[0][27] + coeff0_1*dmats2[1][27] + coeff0_2*dmats2[2][27] + coeff0_3*dmats2[3][27] + coeff0_4*dmats2[4][27] + coeff0_5*dmats2[5][27] + coeff0_6*dmats2[6][27] + coeff0_7*dmats2[7][27] + coeff0_8*dmats2[8][27] + coeff0_9*dmats2[9][27] + coeff0_10*dmats2[10][27] + coeff0_11*dmats2[11][27] + coeff0_12*dmats2[12][27] + coeff0_13*dmats2[13][27] + coeff0_14*dmats2[14][27] + coeff0_15*dmats2[15][27] + coeff0_16*dmats2[16][27] + coeff0_17*dmats2[17][27] + coeff0_18*dmats2[18][27] + coeff0_19*dmats2[19][27] + coeff0_20*dmats2[20][27] + coeff0_21*dmats2[21][27] + coeff0_22*dmats2[22][27] + coeff0_23*dmats2[23][27] + coeff0_24*dmats2[24][27] + coeff0_25*dmats2[25][27] + coeff0_26*dmats2[26][27] + coeff0_27*dmats2[27][27] + coeff0_28*dmats2[28][27] + coeff0_29*dmats2[29][27] + coeff0_30*dmats2[30][27] + coeff0_31*dmats2[31][27] + coeff0_32*dmats2[32][27] + coeff0_33*dmats2[33][27] + coeff0_34*dmats2[34][27];
 
6429
          new_coeff0_28 = coeff0_0*dmats2[0][28] + coeff0_1*dmats2[1][28] + coeff0_2*dmats2[2][28] + coeff0_3*dmats2[3][28] + coeff0_4*dmats2[4][28] + coeff0_5*dmats2[5][28] + coeff0_6*dmats2[6][28] + coeff0_7*dmats2[7][28] + coeff0_8*dmats2[8][28] + coeff0_9*dmats2[9][28] + coeff0_10*dmats2[10][28] + coeff0_11*dmats2[11][28] + coeff0_12*dmats2[12][28] + coeff0_13*dmats2[13][28] + coeff0_14*dmats2[14][28] + coeff0_15*dmats2[15][28] + coeff0_16*dmats2[16][28] + coeff0_17*dmats2[17][28] + coeff0_18*dmats2[18][28] + coeff0_19*dmats2[19][28] + coeff0_20*dmats2[20][28] + coeff0_21*dmats2[21][28] + coeff0_22*dmats2[22][28] + coeff0_23*dmats2[23][28] + coeff0_24*dmats2[24][28] + coeff0_25*dmats2[25][28] + coeff0_26*dmats2[26][28] + coeff0_27*dmats2[27][28] + coeff0_28*dmats2[28][28] + coeff0_29*dmats2[29][28] + coeff0_30*dmats2[30][28] + coeff0_31*dmats2[31][28] + coeff0_32*dmats2[32][28] + coeff0_33*dmats2[33][28] + coeff0_34*dmats2[34][28];
 
6430
          new_coeff0_29 = coeff0_0*dmats2[0][29] + coeff0_1*dmats2[1][29] + coeff0_2*dmats2[2][29] + coeff0_3*dmats2[3][29] + coeff0_4*dmats2[4][29] + coeff0_5*dmats2[5][29] + coeff0_6*dmats2[6][29] + coeff0_7*dmats2[7][29] + coeff0_8*dmats2[8][29] + coeff0_9*dmats2[9][29] + coeff0_10*dmats2[10][29] + coeff0_11*dmats2[11][29] + coeff0_12*dmats2[12][29] + coeff0_13*dmats2[13][29] + coeff0_14*dmats2[14][29] + coeff0_15*dmats2[15][29] + coeff0_16*dmats2[16][29] + coeff0_17*dmats2[17][29] + coeff0_18*dmats2[18][29] + coeff0_19*dmats2[19][29] + coeff0_20*dmats2[20][29] + coeff0_21*dmats2[21][29] + coeff0_22*dmats2[22][29] + coeff0_23*dmats2[23][29] + coeff0_24*dmats2[24][29] + coeff0_25*dmats2[25][29] + coeff0_26*dmats2[26][29] + coeff0_27*dmats2[27][29] + coeff0_28*dmats2[28][29] + coeff0_29*dmats2[29][29] + coeff0_30*dmats2[30][29] + coeff0_31*dmats2[31][29] + coeff0_32*dmats2[32][29] + coeff0_33*dmats2[33][29] + coeff0_34*dmats2[34][29];
 
6431
          new_coeff0_30 = coeff0_0*dmats2[0][30] + coeff0_1*dmats2[1][30] + coeff0_2*dmats2[2][30] + coeff0_3*dmats2[3][30] + coeff0_4*dmats2[4][30] + coeff0_5*dmats2[5][30] + coeff0_6*dmats2[6][30] + coeff0_7*dmats2[7][30] + coeff0_8*dmats2[8][30] + coeff0_9*dmats2[9][30] + coeff0_10*dmats2[10][30] + coeff0_11*dmats2[11][30] + coeff0_12*dmats2[12][30] + coeff0_13*dmats2[13][30] + coeff0_14*dmats2[14][30] + coeff0_15*dmats2[15][30] + coeff0_16*dmats2[16][30] + coeff0_17*dmats2[17][30] + coeff0_18*dmats2[18][30] + coeff0_19*dmats2[19][30] + coeff0_20*dmats2[20][30] + coeff0_21*dmats2[21][30] + coeff0_22*dmats2[22][30] + coeff0_23*dmats2[23][30] + coeff0_24*dmats2[24][30] + coeff0_25*dmats2[25][30] + coeff0_26*dmats2[26][30] + coeff0_27*dmats2[27][30] + coeff0_28*dmats2[28][30] + coeff0_29*dmats2[29][30] + coeff0_30*dmats2[30][30] + coeff0_31*dmats2[31][30] + coeff0_32*dmats2[32][30] + coeff0_33*dmats2[33][30] + coeff0_34*dmats2[34][30];
 
6432
          new_coeff0_31 = coeff0_0*dmats2[0][31] + coeff0_1*dmats2[1][31] + coeff0_2*dmats2[2][31] + coeff0_3*dmats2[3][31] + coeff0_4*dmats2[4][31] + coeff0_5*dmats2[5][31] + coeff0_6*dmats2[6][31] + coeff0_7*dmats2[7][31] + coeff0_8*dmats2[8][31] + coeff0_9*dmats2[9][31] + coeff0_10*dmats2[10][31] + coeff0_11*dmats2[11][31] + coeff0_12*dmats2[12][31] + coeff0_13*dmats2[13][31] + coeff0_14*dmats2[14][31] + coeff0_15*dmats2[15][31] + coeff0_16*dmats2[16][31] + coeff0_17*dmats2[17][31] + coeff0_18*dmats2[18][31] + coeff0_19*dmats2[19][31] + coeff0_20*dmats2[20][31] + coeff0_21*dmats2[21][31] + coeff0_22*dmats2[22][31] + coeff0_23*dmats2[23][31] + coeff0_24*dmats2[24][31] + coeff0_25*dmats2[25][31] + coeff0_26*dmats2[26][31] + coeff0_27*dmats2[27][31] + coeff0_28*dmats2[28][31] + coeff0_29*dmats2[29][31] + coeff0_30*dmats2[30][31] + coeff0_31*dmats2[31][31] + coeff0_32*dmats2[32][31] + coeff0_33*dmats2[33][31] + coeff0_34*dmats2[34][31];
 
6433
          new_coeff0_32 = coeff0_0*dmats2[0][32] + coeff0_1*dmats2[1][32] + coeff0_2*dmats2[2][32] + coeff0_3*dmats2[3][32] + coeff0_4*dmats2[4][32] + coeff0_5*dmats2[5][32] + coeff0_6*dmats2[6][32] + coeff0_7*dmats2[7][32] + coeff0_8*dmats2[8][32] + coeff0_9*dmats2[9][32] + coeff0_10*dmats2[10][32] + coeff0_11*dmats2[11][32] + coeff0_12*dmats2[12][32] + coeff0_13*dmats2[13][32] + coeff0_14*dmats2[14][32] + coeff0_15*dmats2[15][32] + coeff0_16*dmats2[16][32] + coeff0_17*dmats2[17][32] + coeff0_18*dmats2[18][32] + coeff0_19*dmats2[19][32] + coeff0_20*dmats2[20][32] + coeff0_21*dmats2[21][32] + coeff0_22*dmats2[22][32] + coeff0_23*dmats2[23][32] + coeff0_24*dmats2[24][32] + coeff0_25*dmats2[25][32] + coeff0_26*dmats2[26][32] + coeff0_27*dmats2[27][32] + coeff0_28*dmats2[28][32] + coeff0_29*dmats2[29][32] + coeff0_30*dmats2[30][32] + coeff0_31*dmats2[31][32] + coeff0_32*dmats2[32][32] + coeff0_33*dmats2[33][32] + coeff0_34*dmats2[34][32];
 
6434
          new_coeff0_33 = coeff0_0*dmats2[0][33] + coeff0_1*dmats2[1][33] + coeff0_2*dmats2[2][33] + coeff0_3*dmats2[3][33] + coeff0_4*dmats2[4][33] + coeff0_5*dmats2[5][33] + coeff0_6*dmats2[6][33] + coeff0_7*dmats2[7][33] + coeff0_8*dmats2[8][33] + coeff0_9*dmats2[9][33] + coeff0_10*dmats2[10][33] + coeff0_11*dmats2[11][33] + coeff0_12*dmats2[12][33] + coeff0_13*dmats2[13][33] + coeff0_14*dmats2[14][33] + coeff0_15*dmats2[15][33] + coeff0_16*dmats2[16][33] + coeff0_17*dmats2[17][33] + coeff0_18*dmats2[18][33] + coeff0_19*dmats2[19][33] + coeff0_20*dmats2[20][33] + coeff0_21*dmats2[21][33] + coeff0_22*dmats2[22][33] + coeff0_23*dmats2[23][33] + coeff0_24*dmats2[24][33] + coeff0_25*dmats2[25][33] + coeff0_26*dmats2[26][33] + coeff0_27*dmats2[27][33] + coeff0_28*dmats2[28][33] + coeff0_29*dmats2[29][33] + coeff0_30*dmats2[30][33] + coeff0_31*dmats2[31][33] + coeff0_32*dmats2[32][33] + coeff0_33*dmats2[33][33] + coeff0_34*dmats2[34][33];
 
6435
          new_coeff0_34 = coeff0_0*dmats2[0][34] + coeff0_1*dmats2[1][34] + coeff0_2*dmats2[2][34] + coeff0_3*dmats2[3][34] + coeff0_4*dmats2[4][34] + coeff0_5*dmats2[5][34] + coeff0_6*dmats2[6][34] + coeff0_7*dmats2[7][34] + coeff0_8*dmats2[8][34] + coeff0_9*dmats2[9][34] + coeff0_10*dmats2[10][34] + coeff0_11*dmats2[11][34] + coeff0_12*dmats2[12][34] + coeff0_13*dmats2[13][34] + coeff0_14*dmats2[14][34] + coeff0_15*dmats2[15][34] + coeff0_16*dmats2[16][34] + coeff0_17*dmats2[17][34] + coeff0_18*dmats2[18][34] + coeff0_19*dmats2[19][34] + coeff0_20*dmats2[20][34] + coeff0_21*dmats2[21][34] + coeff0_22*dmats2[22][34] + coeff0_23*dmats2[23][34] + coeff0_24*dmats2[24][34] + coeff0_25*dmats2[25][34] + coeff0_26*dmats2[26][34] + coeff0_27*dmats2[27][34] + coeff0_28*dmats2[28][34] + coeff0_29*dmats2[29][34] + coeff0_30*dmats2[30][34] + coeff0_31*dmats2[31][34] + coeff0_32*dmats2[32][34] + coeff0_33*dmats2[33][34] + coeff0_34*dmats2[34][34];
 
6436
        }
 
6437
    
 
6438
      }
 
6439
      // Compute derivatives on reference element as dot product of coefficients and basisvalues
 
6440
      derivatives[deriv_num] = new_coeff0_0*basisvalue0 + new_coeff0_1*basisvalue1 + new_coeff0_2*basisvalue2 + new_coeff0_3*basisvalue3 + new_coeff0_4*basisvalue4 + new_coeff0_5*basisvalue5 + new_coeff0_6*basisvalue6 + new_coeff0_7*basisvalue7 + new_coeff0_8*basisvalue8 + new_coeff0_9*basisvalue9 + new_coeff0_10*basisvalue10 + new_coeff0_11*basisvalue11 + new_coeff0_12*basisvalue12 + new_coeff0_13*basisvalue13 + new_coeff0_14*basisvalue14 + new_coeff0_15*basisvalue15 + new_coeff0_16*basisvalue16 + new_coeff0_17*basisvalue17 + new_coeff0_18*basisvalue18 + new_coeff0_19*basisvalue19 + new_coeff0_20*basisvalue20 + new_coeff0_21*basisvalue21 + new_coeff0_22*basisvalue22 + new_coeff0_23*basisvalue23 + new_coeff0_24*basisvalue24 + new_coeff0_25*basisvalue25 + new_coeff0_26*basisvalue26 + new_coeff0_27*basisvalue27 + new_coeff0_28*basisvalue28 + new_coeff0_29*basisvalue29 + new_coeff0_30*basisvalue30 + new_coeff0_31*basisvalue31 + new_coeff0_32*basisvalue32 + new_coeff0_33*basisvalue33 + new_coeff0_34*basisvalue34;
 
6441
    }
 
6442
    
 
6443
    // Transform derivatives back to physical element
 
6444
    for (unsigned int row = 0; row < num_derivatives; row++)
 
6445
    {
 
6446
      for (unsigned int col = 0; col < num_derivatives; col++)
 
6447
      {
 
6448
        values[row] += transform[row][col]*derivatives[col];
 
6449
      }
 
6450
    }
 
6451
    // Delete pointer to array of derivatives on FIAT element
 
6452
    delete [] derivatives;
 
6453
    
 
6454
    // Delete pointer to array of combinations of derivatives and transform
 
6455
    for (unsigned int row = 0; row < num_derivatives; row++)
 
6456
    {
 
6457
      delete [] combinations[row];
 
6458
      delete [] transform[row];
 
6459
    }
 
6460
    
 
6461
    delete [] combinations;
 
6462
    delete [] transform;
 
6463
  }
 
6464
 
 
6465
  /// Evaluate order n derivatives of all basis functions at given point in cell
 
6466
  virtual void evaluate_basis_derivatives_all(unsigned int n,
 
6467
                                              double* values,
 
6468
                                              const double* coordinates,
 
6469
                                              const ufc::cell& c) const
 
6470
  {
 
6471
    throw std::runtime_error("The vectorised version of evaluate_basis_derivatives() is not yet implemented.");
 
6472
  }
 
6473
 
 
6474
  /// Evaluate linear functional for dof i on the function f
 
6475
  virtual double evaluate_dof(unsigned int i,
 
6476
                              const ufc::function& f,
 
6477
                              const ufc::cell& c) const
 
6478
  {
 
6479
    // The reference points, direction and weights:
 
6480
    const static double X[35][1][3] = {{{0, 0, 0}}, {{1, 0, 0}}, {{0, 1, 0}}, {{0, 0, 1}}, {{0, 0.75, 0.25}}, {{0, 0.5, 0.5}}, {{0, 0.25, 0.75}}, {{0.75, 0, 0.25}}, {{0.5, 0, 0.5}}, {{0.25, 0, 0.75}}, {{0.75, 0.25, 0}}, {{0.5, 0.5, 0}}, {{0.25, 0.75, 0}}, {{0, 0, 0.25}}, {{0, 0, 0.5}}, {{0, 0, 0.75}}, {{0, 0.25, 0}}, {{0, 0.5, 0}}, {{0, 0.75, 0}}, {{0.25, 0, 0}}, {{0.5, 0, 0}}, {{0.75, 0, 0}}, {{0.5, 0.25, 0.25}}, {{0.25, 0.5, 0.25}}, {{0.25, 0.25, 0.5}}, {{0, 0.25, 0.25}}, {{0, 0.5, 0.25}}, {{0, 0.25, 0.5}}, {{0.25, 0, 0.25}}, {{0.5, 0, 0.25}}, {{0.25, 0, 0.5}}, {{0.25, 0.25, 0}}, {{0.5, 0.25, 0}}, {{0.25, 0.5, 0}}, {{0.25, 0.25, 0.25}}};
 
6481
    const static double W[35][1] = {{1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}};
 
6482
    const static double D[35][1][1] = {{{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}, {{1}}};
 
6483
    
 
6484
    const double * const * x = c.coordinates;
 
6485
    double result = 0.0;
 
6486
    // Iterate over the points:
 
6487
    // Evaluate basis functions for affine mapping
 
6488
    const double w0 = 1.0 - X[i][0][0] - X[i][0][1] - X[i][0][2];
 
6489
    const double w1 = X[i][0][0];
 
6490
    const double w2 = X[i][0][1];
 
6491
    const double w3 = X[i][0][2];
 
6492
    
 
6493
    // Compute affine mapping y = F(X)
 
6494
    double y[3];
 
6495
    y[0] = w0*x[0][0] + w1*x[1][0] + w2*x[2][0] + w3*x[3][0];
 
6496
    y[1] = w0*x[0][1] + w1*x[1][1] + w2*x[2][1] + w3*x[3][1];
 
6497
    y[2] = w0*x[0][2] + w1*x[1][2] + w2*x[2][2] + w3*x[3][2];
 
6498
    
 
6499
    // Evaluate function at physical points
 
6500
    double values[1];
 
6501
    f.evaluate(values, y, c);
 
6502
    
 
6503
    // Map function values using appropriate mapping
 
6504
    // Affine map: Do nothing
 
6505
    
 
6506
    // Note that we do not map the weights (yet).
 
6507
    
 
6508
    // Take directional components
 
6509
    for(int k = 0; k < 1; k++)
 
6510
      result += values[k]*D[i][0][k];
 
6511
    // Multiply by weights 
 
6512
    result *= W[i][0];
 
6513
    
 
6514
    return result;
 
6515
  }
 
6516
 
 
6517
  /// Evaluate linear functionals for all dofs on the function f
 
6518
  virtual void evaluate_dofs(double* values,
 
6519
                             const ufc::function& f,
 
6520
                             const ufc::cell& c) const
 
6521
  {
 
6522
    throw std::runtime_error("Not implemented (introduced in UFC v1.1).");
 
6523
  }
 
6524
 
 
6525
  /// Interpolate vertex values from dof values
 
6526
  virtual void interpolate_vertex_values(double* vertex_values,
 
6527
                                         const double* dof_values,
 
6528
                                         const ufc::cell& c) const
 
6529
  {
 
6530
    // Evaluate at vertices and use affine mapping
 
6531
    vertex_values[0] = dof_values[0];
 
6532
    vertex_values[1] = dof_values[1];
 
6533
    vertex_values[2] = dof_values[2];
 
6534
    vertex_values[3] = dof_values[3];
 
6535
  }
 
6536
 
 
6537
  /// Return the number of sub elements (for a mixed element)
 
6538
  virtual unsigned int num_sub_elements() const
 
6539
  {
 
6540
    return 1;
 
6541
  }
 
6542
 
 
6543
  /// Create a new finite element for sub element i (for a mixed element)
 
6544
  virtual ufc::finite_element* create_sub_element(unsigned int i) const
 
6545
  {
 
6546
    return new UFC_Poisson3D_4LinearForm_finite_element_1();
 
6547
  }
 
6548
 
 
6549
};
 
6550
 
 
6551
/// This class defines the interface for a local-to-global mapping of
 
6552
/// degrees of freedom (dofs).
 
6553
 
 
6554
class UFC_Poisson3D_4LinearForm_dof_map_0: public ufc::dof_map
 
6555
{
 
6556
private:
 
6557
 
 
6558
  unsigned int __global_dimension;
 
6559
 
 
6560
public:
 
6561
 
 
6562
  /// Constructor
 
6563
  UFC_Poisson3D_4LinearForm_dof_map_0() : ufc::dof_map()
 
6564
  {
 
6565
    __global_dimension = 0;
 
6566
  }
 
6567
 
 
6568
  /// Destructor
 
6569
  virtual ~UFC_Poisson3D_4LinearForm_dof_map_0()
 
6570
  {
 
6571
    // Do nothing
 
6572
  }
 
6573
 
 
6574
  /// Return a string identifying the dof map
 
6575
  virtual const char* signature() const
 
6576
  {
 
6577
    return "FFC dof map for FiniteElement('Lagrange', 'tetrahedron', 4)";
 
6578
  }
 
6579
 
 
6580
  /// Return true iff mesh entities of topological dimension d are needed
 
6581
  virtual bool needs_mesh_entities(unsigned int d) const
 
6582
  {
 
6583
    switch ( d )
 
6584
    {
 
6585
    case 0:
 
6586
      return true;
 
6587
      break;
 
6588
    case 1:
 
6589
      return true;
 
6590
      break;
 
6591
    case 2:
 
6592
      return true;
 
6593
      break;
 
6594
    case 3:
 
6595
      return true;
 
6596
      break;
 
6597
    }
 
6598
    return false;
 
6599
  }
 
6600
 
 
6601
  /// Initialize dof map for mesh (return true iff init_cell() is needed)
 
6602
  virtual bool init_mesh(const ufc::mesh& m)
 
6603
  {
 
6604
    __global_dimension = m.num_entities[0] + 3*m.num_entities[1] + 3*m.num_entities[2] + m.num_entities[3];
 
6605
    return false;
 
6606
  }
 
6607
 
 
6608
  /// Initialize dof map for given cell
 
6609
  virtual void init_cell(const ufc::mesh& m,
 
6610
                         const ufc::cell& c)
 
6611
  {
 
6612
    // Do nothing
 
6613
  }
 
6614
 
 
6615
  /// Finish initialization of dof map for cells
 
6616
  virtual void init_cell_finalize()
 
6617
  {
 
6618
    // Do nothing
 
6619
  }
 
6620
 
 
6621
  /// Return the dimension of the global finite element function space
 
6622
  virtual unsigned int global_dimension() const
 
6623
  {
 
6624
    return __global_dimension;
 
6625
  }
 
6626
 
 
6627
  /// Return the dimension of the local finite element function space
 
6628
  virtual unsigned int local_dimension() const
 
6629
  {
 
6630
    return 35;
 
6631
  }
 
6632
 
 
6633
  // Return the geometric dimension of the coordinates this dof map provides
 
6634
  virtual unsigned int geometric_dimension() const
 
6635
  {
 
6636
    return 3;
 
6637
  }
 
6638
 
 
6639
  /// Return the number of dofs on each cell facet
 
6640
  virtual unsigned int num_facet_dofs() const
 
6641
  {
 
6642
    return 15;
 
6643
  }
 
6644
 
 
6645
  /// Return the number of dofs associated with each cell entity of dimension d
 
6646
  virtual unsigned int num_entity_dofs(unsigned int d) const
 
6647
  {
 
6648
    throw std::runtime_error("Not implemented (introduced in UFC v1.1).");
 
6649
  }
 
6650
 
 
6651
  /// Tabulate the local-to-global mapping of dofs on a cell
 
6652
  virtual void tabulate_dofs(unsigned int* dofs,
 
6653
                             const ufc::mesh& m,
 
6654
                             const ufc::cell& c) const
 
6655
  {
 
6656
    dofs[0] = c.entity_indices[0][0];
 
6657
    dofs[1] = c.entity_indices[0][1];
 
6658
    dofs[2] = c.entity_indices[0][2];
 
6659
    dofs[3] = c.entity_indices[0][3];
 
6660
    unsigned int offset = m.num_entities[0];
 
6661
    dofs[4] = offset + 3*c.entity_indices[1][0];
 
6662
    dofs[5] = offset + 3*c.entity_indices[1][0] + 1;
 
6663
    dofs[6] = offset + 3*c.entity_indices[1][0] + 2;
 
6664
    dofs[7] = offset + 3*c.entity_indices[1][1];
 
6665
    dofs[8] = offset + 3*c.entity_indices[1][1] + 1;
 
6666
    dofs[9] = offset + 3*c.entity_indices[1][1] + 2;
 
6667
    dofs[10] = offset + 3*c.entity_indices[1][2];
 
6668
    dofs[11] = offset + 3*c.entity_indices[1][2] + 1;
 
6669
    dofs[12] = offset + 3*c.entity_indices[1][2] + 2;
 
6670
    dofs[13] = offset + 3*c.entity_indices[1][3];
 
6671
    dofs[14] = offset + 3*c.entity_indices[1][3] + 1;
 
6672
    dofs[15] = offset + 3*c.entity_indices[1][3] + 2;
 
6673
    dofs[16] = offset + 3*c.entity_indices[1][4];
 
6674
    dofs[17] = offset + 3*c.entity_indices[1][4] + 1;
 
6675
    dofs[18] = offset + 3*c.entity_indices[1][4] + 2;
 
6676
    dofs[19] = offset + 3*c.entity_indices[1][5];
 
6677
    dofs[20] = offset + 3*c.entity_indices[1][5] + 1;
 
6678
    dofs[21] = offset + 3*c.entity_indices[1][5] + 2;
 
6679
    offset = offset + 3*m.num_entities[1];
 
6680
    dofs[22] = offset + 3*c.entity_indices[2][0];
 
6681
    dofs[23] = offset + 3*c.entity_indices[2][0] + 1;
 
6682
    dofs[24] = offset + 3*c.entity_indices[2][0] + 2;
 
6683
    dofs[25] = offset + 3*c.entity_indices[2][1];
 
6684
    dofs[26] = offset + 3*c.entity_indices[2][1] + 1;
 
6685
    dofs[27] = offset + 3*c.entity_indices[2][1] + 2;
 
6686
    dofs[28] = offset + 3*c.entity_indices[2][2];
 
6687
    dofs[29] = offset + 3*c.entity_indices[2][2] + 1;
 
6688
    dofs[30] = offset + 3*c.entity_indices[2][2] + 2;
 
6689
    dofs[31] = offset + 3*c.entity_indices[2][3];
 
6690
    dofs[32] = offset + 3*c.entity_indices[2][3] + 1;
 
6691
    dofs[33] = offset + 3*c.entity_indices[2][3] + 2;
 
6692
    offset = offset + 3*m.num_entities[2];
 
6693
    dofs[34] = offset + c.entity_indices[3][0];
 
6694
  }
 
6695
 
 
6696
  /// Tabulate the local-to-local mapping from facet dofs to cell dofs
 
6697
  virtual void tabulate_facet_dofs(unsigned int* dofs,
 
6698
                                   unsigned int facet) const
 
6699
  {
 
6700
    switch ( facet )
 
6701
    {
 
6702
    case 0:
 
6703
      dofs[0] = 1;
 
6704
      dofs[1] = 2;
 
6705
      dofs[2] = 3;
 
6706
      dofs[3] = 4;
 
6707
      dofs[4] = 5;
 
6708
      dofs[5] = 6;
 
6709
      dofs[6] = 7;
 
6710
      dofs[7] = 8;
 
6711
      dofs[8] = 9;
 
6712
      dofs[9] = 10;
 
6713
      dofs[10] = 11;
 
6714
      dofs[11] = 12;
 
6715
      dofs[12] = 22;
 
6716
      dofs[13] = 23;
 
6717
      dofs[14] = 24;
 
6718
      break;
 
6719
    case 1:
 
6720
      dofs[0] = 0;
 
6721
      dofs[1] = 2;
 
6722
      dofs[2] = 3;
 
6723
      dofs[3] = 4;
 
6724
      dofs[4] = 5;
 
6725
      dofs[5] = 6;
 
6726
      dofs[6] = 13;
 
6727
      dofs[7] = 14;
 
6728
      dofs[8] = 15;
 
6729
      dofs[9] = 16;
 
6730
      dofs[10] = 17;
 
6731
      dofs[11] = 18;
 
6732
      dofs[12] = 25;
 
6733
      dofs[13] = 26;
 
6734
      dofs[14] = 27;
 
6735
      break;
 
6736
    case 2:
 
6737
      dofs[0] = 0;
 
6738
      dofs[1] = 1;
 
6739
      dofs[2] = 3;
 
6740
      dofs[3] = 7;
 
6741
      dofs[4] = 8;
 
6742
      dofs[5] = 9;
 
6743
      dofs[6] = 13;
 
6744
      dofs[7] = 14;
 
6745
      dofs[8] = 15;
 
6746
      dofs[9] = 19;
 
6747
      dofs[10] = 20;
 
6748
      dofs[11] = 21;
 
6749
      dofs[12] = 28;
 
6750
      dofs[13] = 29;
 
6751
      dofs[14] = 30;
 
6752
      break;
 
6753
    case 3:
 
6754
      dofs[0] = 0;
 
6755
      dofs[1] = 1;
 
6756
      dofs[2] = 2;
 
6757
      dofs[3] = 10;
 
6758
      dofs[4] = 11;
 
6759
      dofs[5] = 12;
 
6760
      dofs[6] = 16;
 
6761
      dofs[7] = 17;
 
6762
      dofs[8] = 18;
 
6763
      dofs[9] = 19;
 
6764
      dofs[10] = 20;
 
6765
      dofs[11] = 21;
 
6766
      dofs[12] = 31;
 
6767
      dofs[13] = 32;
 
6768
      dofs[14] = 33;
 
6769
      break;
 
6770
    }
 
6771
  }
 
6772
 
 
6773
  /// Tabulate the local-to-local mapping of dofs on entity (d, i)
 
6774
  virtual void tabulate_entity_dofs(unsigned int* dofs,
 
6775
                                    unsigned int d, unsigned int i) const
 
6776
  {
 
6777
    throw std::runtime_error("Not implemented (introduced in UFC v1.1).");
 
6778
  }
 
6779
 
 
6780
  /// Tabulate the coordinates of all dofs on a cell
 
6781
  virtual void tabulate_coordinates(double** coordinates,
 
6782
                                    const ufc::cell& c) const
 
6783
  {
 
6784
    const double * const * x = c.coordinates;
 
6785
    coordinates[0][0] = x[0][0];
 
6786
    coordinates[0][1] = x[0][1];
 
6787
    coordinates[0][2] = x[0][2];
 
6788
    coordinates[1][0] = x[1][0];
 
6789
    coordinates[1][1] = x[1][1];
 
6790
    coordinates[1][2] = x[1][2];
 
6791
    coordinates[2][0] = x[2][0];
 
6792
    coordinates[2][1] = x[2][1];
 
6793
    coordinates[2][2] = x[2][2];
 
6794
    coordinates[3][0] = x[3][0];
 
6795
    coordinates[3][1] = x[3][1];
 
6796
    coordinates[3][2] = x[3][2];
 
6797
    coordinates[4][0] = 0.75*x[2][0] + 0.25*x[3][0];
 
6798
    coordinates[4][1] = 0.75*x[2][1] + 0.25*x[3][1];
 
6799
    coordinates[4][2] = 0.75*x[2][2] + 0.25*x[3][2];
 
6800
    coordinates[5][0] = 0.5*x[2][0] + 0.5*x[3][0];
 
6801
    coordinates[5][1] = 0.5*x[2][1] + 0.5*x[3][1];
 
6802
    coordinates[5][2] = 0.5*x[2][2] + 0.5*x[3][2];
 
6803
    coordinates[6][0] = 0.25*x[2][0] + 0.75*x[3][0];
 
6804
    coordinates[6][1] = 0.25*x[2][1] + 0.75*x[3][1];
 
6805
    coordinates[6][2] = 0.25*x[2][2] + 0.75*x[3][2];
 
6806
    coordinates[7][0] = 0.75*x[1][0] + 0.25*x[3][0];
 
6807
    coordinates[7][1] = 0.75*x[1][1] + 0.25*x[3][1];
 
6808
    coordinates[7][2] = 0.75*x[1][2] + 0.25*x[3][2];
 
6809
    coordinates[8][0] = 0.5*x[1][0] + 0.5*x[3][0];
 
6810
    coordinates[8][1] = 0.5*x[1][1] + 0.5*x[3][1];
 
6811
    coordinates[8][2] = 0.5*x[1][2] + 0.5*x[3][2];
 
6812
    coordinates[9][0] = 0.25*x[1][0] + 0.75*x[3][0];
 
6813
    coordinates[9][1] = 0.25*x[1][1] + 0.75*x[3][1];
 
6814
    coordinates[9][2] = 0.25*x[1][2] + 0.75*x[3][2];
 
6815
    coordinates[10][0] = 0.75*x[1][0] + 0.25*x[2][0];
 
6816
    coordinates[10][1] = 0.75*x[1][1] + 0.25*x[2][1];
 
6817
    coordinates[10][2] = 0.75*x[1][2] + 0.25*x[2][2];
 
6818
    coordinates[11][0] = 0.5*x[1][0] + 0.5*x[2][0];
 
6819
    coordinates[11][1] = 0.5*x[1][1] + 0.5*x[2][1];
 
6820
    coordinates[11][2] = 0.5*x[1][2] + 0.5*x[2][2];
 
6821
    coordinates[12][0] = 0.25*x[1][0] + 0.75*x[2][0];
 
6822
    coordinates[12][1] = 0.25*x[1][1] + 0.75*x[2][1];
 
6823
    coordinates[12][2] = 0.25*x[1][2] + 0.75*x[2][2];
 
6824
    coordinates[13][0] = 0.75*x[0][0] + 0.25*x[3][0];
 
6825
    coordinates[13][1] = 0.75*x[0][1] + 0.25*x[3][1];
 
6826
    coordinates[13][2] = 0.75*x[0][2] + 0.25*x[3][2];
 
6827
    coordinates[14][0] = 0.5*x[0][0] + 0.5*x[3][0];
 
6828
    coordinates[14][1] = 0.5*x[0][1] + 0.5*x[3][1];
 
6829
    coordinates[14][2] = 0.5*x[0][2] + 0.5*x[3][2];
 
6830
    coordinates[15][0] = 0.25*x[0][0] + 0.75*x[3][0];
 
6831
    coordinates[15][1] = 0.25*x[0][1] + 0.75*x[3][1];
 
6832
    coordinates[15][2] = 0.25*x[0][2] + 0.75*x[3][2];
 
6833
    coordinates[16][0] = 0.75*x[0][0] + 0.25*x[2][0];
 
6834
    coordinates[16][1] = 0.75*x[0][1] + 0.25*x[2][1];
 
6835
    coordinates[16][2] = 0.75*x[0][2] + 0.25*x[2][2];
 
6836
    coordinates[17][0] = 0.5*x[0][0] + 0.5*x[2][0];
 
6837
    coordinates[17][1] = 0.5*x[0][1] + 0.5*x[2][1];
 
6838
    coordinates[17][2] = 0.5*x[0][2] + 0.5*x[2][2];
 
6839
    coordinates[18][0] = 0.25*x[0][0] + 0.75*x[2][0];
 
6840
    coordinates[18][1] = 0.25*x[0][1] + 0.75*x[2][1];
 
6841
    coordinates[18][2] = 0.25*x[0][2] + 0.75*x[2][2];
 
6842
    coordinates[19][0] = 0.75*x[0][0] + 0.25*x[1][0];
 
6843
    coordinates[19][1] = 0.75*x[0][1] + 0.25*x[1][1];
 
6844
    coordinates[19][2] = 0.75*x[0][2] + 0.25*x[1][2];
 
6845
    coordinates[20][0] = 0.5*x[0][0] + 0.5*x[1][0];
 
6846
    coordinates[20][1] = 0.5*x[0][1] + 0.5*x[1][1];
 
6847
    coordinates[20][2] = 0.5*x[0][2] + 0.5*x[1][2];
 
6848
    coordinates[21][0] = 0.25*x[0][0] + 0.75*x[1][0];
 
6849
    coordinates[21][1] = 0.25*x[0][1] + 0.75*x[1][1];
 
6850
    coordinates[21][2] = 0.25*x[0][2] + 0.75*x[1][2];
 
6851
    coordinates[22][0] = 0.5*x[1][0] + 0.25*x[2][0] + 0.25*x[3][0];
 
6852
    coordinates[22][1] = 0.5*x[1][1] + 0.25*x[2][1] + 0.25*x[3][1];
 
6853
    coordinates[22][2] = 0.5*x[1][2] + 0.25*x[2][2] + 0.25*x[3][2];
 
6854
    coordinates[23][0] = 0.25*x[1][0] + 0.5*x[2][0] + 0.25*x[3][0];
 
6855
    coordinates[23][1] = 0.25*x[1][1] + 0.5*x[2][1] + 0.25*x[3][1];
 
6856
    coordinates[23][2] = 0.25*x[1][2] + 0.5*x[2][2] + 0.25*x[3][2];
 
6857
    coordinates[24][0] = 0.25*x[1][0] + 0.25*x[2][0] + 0.5*x[3][0];
 
6858
    coordinates[24][1] = 0.25*x[1][1] + 0.25*x[2][1] + 0.5*x[3][1];
 
6859
    coordinates[24][2] = 0.25*x[1][2] + 0.25*x[2][2] + 0.5*x[3][2];
 
6860
    coordinates[25][0] = 0.5*x[0][0] + 0.25*x[2][0] + 0.25*x[3][0];
 
6861
    coordinates[25][1] = 0.5*x[0][1] + 0.25*x[2][1] + 0.25*x[3][1];
 
6862
    coordinates[25][2] = 0.5*x[0][2] + 0.25*x[2][2] + 0.25*x[3][2];
 
6863
    coordinates[26][0] = 0.25*x[0][0] + 0.5*x[2][0] + 0.25*x[3][0];
 
6864
    coordinates[26][1] = 0.25*x[0][1] + 0.5*x[2][1] + 0.25*x[3][1];
 
6865
    coordinates[26][2] = 0.25*x[0][2] + 0.5*x[2][2] + 0.25*x[3][2];
 
6866
    coordinates[27][0] = 0.25*x[0][0] + 0.25*x[2][0] + 0.5*x[3][0];
 
6867
    coordinates[27][1] = 0.25*x[0][1] + 0.25*x[2][1] + 0.5*x[3][1];
 
6868
    coordinates[27][2] = 0.25*x[0][2] + 0.25*x[2][2] + 0.5*x[3][2];
 
6869
    coordinates[28][0] = 0.5*x[0][0] + 0.25*x[1][0] + 0.25*x[3][0];
 
6870
    coordinates[28][1] = 0.5*x[0][1] + 0.25*x[1][1] + 0.25*x[3][1];
 
6871
    coordinates[28][2] = 0.5*x[0][2] + 0.25*x[1][2] + 0.25*x[3][2];
 
6872
    coordinates[29][0] = 0.25*x[0][0] + 0.5*x[1][0] + 0.25*x[3][0];
 
6873
    coordinates[29][1] = 0.25*x[0][1] + 0.5*x[1][1] + 0.25*x[3][1];
 
6874
    coordinates[29][2] = 0.25*x[0][2] + 0.5*x[1][2] + 0.25*x[3][2];
 
6875
    coordinates[30][0] = 0.25*x[0][0] + 0.25*x[1][0] + 0.5*x[3][0];
 
6876
    coordinates[30][1] = 0.25*x[0][1] + 0.25*x[1][1] + 0.5*x[3][1];
 
6877
    coordinates[30][2] = 0.25*x[0][2] + 0.25*x[1][2] + 0.5*x[3][2];
 
6878
    coordinates[31][0] = 0.5*x[0][0] + 0.25*x[1][0] + 0.25*x[2][0];
 
6879
    coordinates[31][1] = 0.5*x[0][1] + 0.25*x[1][1] + 0.25*x[2][1];
 
6880
    coordinates[31][2] = 0.5*x[0][2] + 0.25*x[1][2] + 0.25*x[2][2];
 
6881
    coordinates[32][0] = 0.25*x[0][0] + 0.5*x[1][0] + 0.25*x[2][0];
 
6882
    coordinates[32][1] = 0.25*x[0][1] + 0.5*x[1][1] + 0.25*x[2][1];
 
6883
    coordinates[32][2] = 0.25*x[0][2] + 0.5*x[1][2] + 0.25*x[2][2];
 
6884
    coordinates[33][0] = 0.25*x[0][0] + 0.25*x[1][0] + 0.5*x[2][0];
 
6885
    coordinates[33][1] = 0.25*x[0][1] + 0.25*x[1][1] + 0.5*x[2][1];
 
6886
    coordinates[33][2] = 0.25*x[0][2] + 0.25*x[1][2] + 0.5*x[2][2];
 
6887
    coordinates[34][0] = 0.25*x[0][0] + 0.25*x[1][0] + 0.25*x[2][0] + 0.25*x[3][0];
 
6888
    coordinates[34][1] = 0.25*x[0][1] + 0.25*x[1][1] + 0.25*x[2][1] + 0.25*x[3][1];
 
6889
    coordinates[34][2] = 0.25*x[0][2] + 0.25*x[1][2] + 0.25*x[2][2] + 0.25*x[3][2];
 
6890
  }
 
6891
 
 
6892
  /// Return the number of sub dof maps (for a mixed element)
 
6893
  virtual unsigned int num_sub_dof_maps() const
 
6894
  {
 
6895
    return 1;
 
6896
  }
 
6897
 
 
6898
  /// Create a new dof_map for sub dof map i (for a mixed element)
 
6899
  virtual ufc::dof_map* create_sub_dof_map(unsigned int i) const
 
6900
  {
 
6901
    return new UFC_Poisson3D_4LinearForm_dof_map_0();
 
6902
  }
 
6903
 
 
6904
};
 
6905
 
 
6906
/// This class defines the interface for a local-to-global mapping of
 
6907
/// degrees of freedom (dofs).
 
6908
 
 
6909
class UFC_Poisson3D_4LinearForm_dof_map_1: public ufc::dof_map
 
6910
{
 
6911
private:
 
6912
 
 
6913
  unsigned int __global_dimension;
 
6914
 
 
6915
public:
 
6916
 
 
6917
  /// Constructor
 
6918
  UFC_Poisson3D_4LinearForm_dof_map_1() : ufc::dof_map()
 
6919
  {
 
6920
    __global_dimension = 0;
 
6921
  }
 
6922
 
 
6923
  /// Destructor
 
6924
  virtual ~UFC_Poisson3D_4LinearForm_dof_map_1()
 
6925
  {
 
6926
    // Do nothing
 
6927
  }
 
6928
 
 
6929
  /// Return a string identifying the dof map
 
6930
  virtual const char* signature() const
 
6931
  {
 
6932
    return "FFC dof map for FiniteElement('Lagrange', 'tetrahedron', 4)";
 
6933
  }
 
6934
 
 
6935
  /// Return true iff mesh entities of topological dimension d are needed
 
6936
  virtual bool needs_mesh_entities(unsigned int d) const
 
6937
  {
 
6938
    switch ( d )
 
6939
    {
 
6940
    case 0:
 
6941
      return true;
 
6942
      break;
 
6943
    case 1:
 
6944
      return true;
 
6945
      break;
 
6946
    case 2:
 
6947
      return true;
 
6948
      break;
 
6949
    case 3:
 
6950
      return true;
 
6951
      break;
 
6952
    }
 
6953
    return false;
 
6954
  }
 
6955
 
 
6956
  /// Initialize dof map for mesh (return true iff init_cell() is needed)
 
6957
  virtual bool init_mesh(const ufc::mesh& m)
 
6958
  {
 
6959
    __global_dimension = m.num_entities[0] + 3*m.num_entities[1] + 3*m.num_entities[2] + m.num_entities[3];
 
6960
    return false;
 
6961
  }
 
6962
 
 
6963
  /// Initialize dof map for given cell
 
6964
  virtual void init_cell(const ufc::mesh& m,
 
6965
                         const ufc::cell& c)
 
6966
  {
 
6967
    // Do nothing
 
6968
  }
 
6969
 
 
6970
  /// Finish initialization of dof map for cells
 
6971
  virtual void init_cell_finalize()
 
6972
  {
 
6973
    // Do nothing
 
6974
  }
 
6975
 
 
6976
  /// Return the dimension of the global finite element function space
 
6977
  virtual unsigned int global_dimension() const
 
6978
  {
 
6979
    return __global_dimension;
 
6980
  }
 
6981
 
 
6982
  /// Return the dimension of the local finite element function space
 
6983
  virtual unsigned int local_dimension() const
 
6984
  {
 
6985
    return 35;
 
6986
  }
 
6987
 
 
6988
  // Return the geometric dimension of the coordinates this dof map provides
 
6989
  virtual unsigned int geometric_dimension() const
 
6990
  {
 
6991
    return 3;
 
6992
  }
 
6993
 
 
6994
  /// Return the number of dofs on each cell facet
 
6995
  virtual unsigned int num_facet_dofs() const
 
6996
  {
 
6997
    return 15;
 
6998
  }
 
6999
 
 
7000
  /// Return the number of dofs associated with each cell entity of dimension d
 
7001
  virtual unsigned int num_entity_dofs(unsigned int d) const
 
7002
  {
 
7003
    throw std::runtime_error("Not implemented (introduced in UFC v1.1).");
 
7004
  }
 
7005
 
 
7006
  /// Tabulate the local-to-global mapping of dofs on a cell
 
7007
  virtual void tabulate_dofs(unsigned int* dofs,
 
7008
                             const ufc::mesh& m,
 
7009
                             const ufc::cell& c) const
 
7010
  {
 
7011
    dofs[0] = c.entity_indices[0][0];
 
7012
    dofs[1] = c.entity_indices[0][1];
 
7013
    dofs[2] = c.entity_indices[0][2];
 
7014
    dofs[3] = c.entity_indices[0][3];
 
7015
    unsigned int offset = m.num_entities[0];
 
7016
    dofs[4] = offset + 3*c.entity_indices[1][0];
 
7017
    dofs[5] = offset + 3*c.entity_indices[1][0] + 1;
 
7018
    dofs[6] = offset + 3*c.entity_indices[1][0] + 2;
 
7019
    dofs[7] = offset + 3*c.entity_indices[1][1];
 
7020
    dofs[8] = offset + 3*c.entity_indices[1][1] + 1;
 
7021
    dofs[9] = offset + 3*c.entity_indices[1][1] + 2;
 
7022
    dofs[10] = offset + 3*c.entity_indices[1][2];
 
7023
    dofs[11] = offset + 3*c.entity_indices[1][2] + 1;
 
7024
    dofs[12] = offset + 3*c.entity_indices[1][2] + 2;
 
7025
    dofs[13] = offset + 3*c.entity_indices[1][3];
 
7026
    dofs[14] = offset + 3*c.entity_indices[1][3] + 1;
 
7027
    dofs[15] = offset + 3*c.entity_indices[1][3] + 2;
 
7028
    dofs[16] = offset + 3*c.entity_indices[1][4];
 
7029
    dofs[17] = offset + 3*c.entity_indices[1][4] + 1;
 
7030
    dofs[18] = offset + 3*c.entity_indices[1][4] + 2;
 
7031
    dofs[19] = offset + 3*c.entity_indices[1][5];
 
7032
    dofs[20] = offset + 3*c.entity_indices[1][5] + 1;
 
7033
    dofs[21] = offset + 3*c.entity_indices[1][5] + 2;
 
7034
    offset = offset + 3*m.num_entities[1];
 
7035
    dofs[22] = offset + 3*c.entity_indices[2][0];
 
7036
    dofs[23] = offset + 3*c.entity_indices[2][0] + 1;
 
7037
    dofs[24] = offset + 3*c.entity_indices[2][0] + 2;
 
7038
    dofs[25] = offset + 3*c.entity_indices[2][1];
 
7039
    dofs[26] = offset + 3*c.entity_indices[2][1] + 1;
 
7040
    dofs[27] = offset + 3*c.entity_indices[2][1] + 2;
 
7041
    dofs[28] = offset + 3*c.entity_indices[2][2];
 
7042
    dofs[29] = offset + 3*c.entity_indices[2][2] + 1;
 
7043
    dofs[30] = offset + 3*c.entity_indices[2][2] + 2;
 
7044
    dofs[31] = offset + 3*c.entity_indices[2][3];
 
7045
    dofs[32] = offset + 3*c.entity_indices[2][3] + 1;
 
7046
    dofs[33] = offset + 3*c.entity_indices[2][3] + 2;
 
7047
    offset = offset + 3*m.num_entities[2];
 
7048
    dofs[34] = offset + c.entity_indices[3][0];
 
7049
  }
 
7050
 
 
7051
  /// Tabulate the local-to-local mapping from facet dofs to cell dofs
 
7052
  virtual void tabulate_facet_dofs(unsigned int* dofs,
 
7053
                                   unsigned int facet) const
 
7054
  {
 
7055
    switch ( facet )
 
7056
    {
 
7057
    case 0:
 
7058
      dofs[0] = 1;
 
7059
      dofs[1] = 2;
 
7060
      dofs[2] = 3;
 
7061
      dofs[3] = 4;
 
7062
      dofs[4] = 5;
 
7063
      dofs[5] = 6;
 
7064
      dofs[6] = 7;
 
7065
      dofs[7] = 8;
 
7066
      dofs[8] = 9;
 
7067
      dofs[9] = 10;
 
7068
      dofs[10] = 11;
 
7069
      dofs[11] = 12;
 
7070
      dofs[12] = 22;
 
7071
      dofs[13] = 23;
 
7072
      dofs[14] = 24;
 
7073
      break;
 
7074
    case 1:
 
7075
      dofs[0] = 0;
 
7076
      dofs[1] = 2;
 
7077
      dofs[2] = 3;
 
7078
      dofs[3] = 4;
 
7079
      dofs[4] = 5;
 
7080
      dofs[5] = 6;
 
7081
      dofs[6] = 13;
 
7082
      dofs[7] = 14;
 
7083
      dofs[8] = 15;
 
7084
      dofs[9] = 16;
 
7085
      dofs[10] = 17;
 
7086
      dofs[11] = 18;
 
7087
      dofs[12] = 25;
 
7088
      dofs[13] = 26;
 
7089
      dofs[14] = 27;
 
7090
      break;
 
7091
    case 2:
 
7092
      dofs[0] = 0;
 
7093
      dofs[1] = 1;
 
7094
      dofs[2] = 3;
 
7095
      dofs[3] = 7;
 
7096
      dofs[4] = 8;
 
7097
      dofs[5] = 9;
 
7098
      dofs[6] = 13;
 
7099
      dofs[7] = 14;
 
7100
      dofs[8] = 15;
 
7101
      dofs[9] = 19;
 
7102
      dofs[10] = 20;
 
7103
      dofs[11] = 21;
 
7104
      dofs[12] = 28;
 
7105
      dofs[13] = 29;
 
7106
      dofs[14] = 30;
 
7107
      break;
 
7108
    case 3:
 
7109
      dofs[0] = 0;
 
7110
      dofs[1] = 1;
 
7111
      dofs[2] = 2;
 
7112
      dofs[3] = 10;
 
7113
      dofs[4] = 11;
 
7114
      dofs[5] = 12;
 
7115
      dofs[6] = 16;
 
7116
      dofs[7] = 17;
 
7117
      dofs[8] = 18;
 
7118
      dofs[9] = 19;
 
7119
      dofs[10] = 20;
 
7120
      dofs[11] = 21;
 
7121
      dofs[12] = 31;
 
7122
      dofs[13] = 32;
 
7123
      dofs[14] = 33;
 
7124
      break;
 
7125
    }
 
7126
  }
 
7127
 
 
7128
  /// Tabulate the local-to-local mapping of dofs on entity (d, i)
 
7129
  virtual void tabulate_entity_dofs(unsigned int* dofs,
 
7130
                                    unsigned int d, unsigned int i) const
 
7131
  {
 
7132
    throw std::runtime_error("Not implemented (introduced in UFC v1.1).");
 
7133
  }
 
7134
 
 
7135
  /// Tabulate the coordinates of all dofs on a cell
 
7136
  virtual void tabulate_coordinates(double** coordinates,
 
7137
                                    const ufc::cell& c) const
 
7138
  {
 
7139
    const double * const * x = c.coordinates;
 
7140
    coordinates[0][0] = x[0][0];
 
7141
    coordinates[0][1] = x[0][1];
 
7142
    coordinates[0][2] = x[0][2];
 
7143
    coordinates[1][0] = x[1][0];
 
7144
    coordinates[1][1] = x[1][1];
 
7145
    coordinates[1][2] = x[1][2];
 
7146
    coordinates[2][0] = x[2][0];
 
7147
    coordinates[2][1] = x[2][1];
 
7148
    coordinates[2][2] = x[2][2];
 
7149
    coordinates[3][0] = x[3][0];
 
7150
    coordinates[3][1] = x[3][1];
 
7151
    coordinates[3][2] = x[3][2];
 
7152
    coordinates[4][0] = 0.75*x[2][0] + 0.25*x[3][0];
 
7153
    coordinates[4][1] = 0.75*x[2][1] + 0.25*x[3][1];
 
7154
    coordinates[4][2] = 0.75*x[2][2] + 0.25*x[3][2];
 
7155
    coordinates[5][0] = 0.5*x[2][0] + 0.5*x[3][0];
 
7156
    coordinates[5][1] = 0.5*x[2][1] + 0.5*x[3][1];
 
7157
    coordinates[5][2] = 0.5*x[2][2] + 0.5*x[3][2];
 
7158
    coordinates[6][0] = 0.25*x[2][0] + 0.75*x[3][0];
 
7159
    coordinates[6][1] = 0.25*x[2][1] + 0.75*x[3][1];
 
7160
    coordinates[6][2] = 0.25*x[2][2] + 0.75*x[3][2];
 
7161
    coordinates[7][0] = 0.75*x[1][0] + 0.25*x[3][0];
 
7162
    coordinates[7][1] = 0.75*x[1][1] + 0.25*x[3][1];
 
7163
    coordinates[7][2] = 0.75*x[1][2] + 0.25*x[3][2];
 
7164
    coordinates[8][0] = 0.5*x[1][0] + 0.5*x[3][0];
 
7165
    coordinates[8][1] = 0.5*x[1][1] + 0.5*x[3][1];
 
7166
    coordinates[8][2] = 0.5*x[1][2] + 0.5*x[3][2];
 
7167
    coordinates[9][0] = 0.25*x[1][0] + 0.75*x[3][0];
 
7168
    coordinates[9][1] = 0.25*x[1][1] + 0.75*x[3][1];
 
7169
    coordinates[9][2] = 0.25*x[1][2] + 0.75*x[3][2];
 
7170
    coordinates[10][0] = 0.75*x[1][0] + 0.25*x[2][0];
 
7171
    coordinates[10][1] = 0.75*x[1][1] + 0.25*x[2][1];
 
7172
    coordinates[10][2] = 0.75*x[1][2] + 0.25*x[2][2];
 
7173
    coordinates[11][0] = 0.5*x[1][0] + 0.5*x[2][0];
 
7174
    coordinates[11][1] = 0.5*x[1][1] + 0.5*x[2][1];
 
7175
    coordinates[11][2] = 0.5*x[1][2] + 0.5*x[2][2];
 
7176
    coordinates[12][0] = 0.25*x[1][0] + 0.75*x[2][0];
 
7177
    coordinates[12][1] = 0.25*x[1][1] + 0.75*x[2][1];
 
7178
    coordinates[12][2] = 0.25*x[1][2] + 0.75*x[2][2];
 
7179
    coordinates[13][0] = 0.75*x[0][0] + 0.25*x[3][0];
 
7180
    coordinates[13][1] = 0.75*x[0][1] + 0.25*x[3][1];
 
7181
    coordinates[13][2] = 0.75*x[0][2] + 0.25*x[3][2];
 
7182
    coordinates[14][0] = 0.5*x[0][0] + 0.5*x[3][0];
 
7183
    coordinates[14][1] = 0.5*x[0][1] + 0.5*x[3][1];
 
7184
    coordinates[14][2] = 0.5*x[0][2] + 0.5*x[3][2];
 
7185
    coordinates[15][0] = 0.25*x[0][0] + 0.75*x[3][0];
 
7186
    coordinates[15][1] = 0.25*x[0][1] + 0.75*x[3][1];
 
7187
    coordinates[15][2] = 0.25*x[0][2] + 0.75*x[3][2];
 
7188
    coordinates[16][0] = 0.75*x[0][0] + 0.25*x[2][0];
 
7189
    coordinates[16][1] = 0.75*x[0][1] + 0.25*x[2][1];
 
7190
    coordinates[16][2] = 0.75*x[0][2] + 0.25*x[2][2];
 
7191
    coordinates[17][0] = 0.5*x[0][0] + 0.5*x[2][0];
 
7192
    coordinates[17][1] = 0.5*x[0][1] + 0.5*x[2][1];
 
7193
    coordinates[17][2] = 0.5*x[0][2] + 0.5*x[2][2];
 
7194
    coordinates[18][0] = 0.25*x[0][0] + 0.75*x[2][0];
 
7195
    coordinates[18][1] = 0.25*x[0][1] + 0.75*x[2][1];
 
7196
    coordinates[18][2] = 0.25*x[0][2] + 0.75*x[2][2];
 
7197
    coordinates[19][0] = 0.75*x[0][0] + 0.25*x[1][0];
 
7198
    coordinates[19][1] = 0.75*x[0][1] + 0.25*x[1][1];
 
7199
    coordinates[19][2] = 0.75*x[0][2] + 0.25*x[1][2];
 
7200
    coordinates[20][0] = 0.5*x[0][0] + 0.5*x[1][0];
 
7201
    coordinates[20][1] = 0.5*x[0][1] + 0.5*x[1][1];
 
7202
    coordinates[20][2] = 0.5*x[0][2] + 0.5*x[1][2];
 
7203
    coordinates[21][0] = 0.25*x[0][0] + 0.75*x[1][0];
 
7204
    coordinates[21][1] = 0.25*x[0][1] + 0.75*x[1][1];
 
7205
    coordinates[21][2] = 0.25*x[0][2] + 0.75*x[1][2];
 
7206
    coordinates[22][0] = 0.5*x[1][0] + 0.25*x[2][0] + 0.25*x[3][0];
 
7207
    coordinates[22][1] = 0.5*x[1][1] + 0.25*x[2][1] + 0.25*x[3][1];
 
7208
    coordinates[22][2] = 0.5*x[1][2] + 0.25*x[2][2] + 0.25*x[3][2];
 
7209
    coordinates[23][0] = 0.25*x[1][0] + 0.5*x[2][0] + 0.25*x[3][0];
 
7210
    coordinates[23][1] = 0.25*x[1][1] + 0.5*x[2][1] + 0.25*x[3][1];
 
7211
    coordinates[23][2] = 0.25*x[1][2] + 0.5*x[2][2] + 0.25*x[3][2];
 
7212
    coordinates[24][0] = 0.25*x[1][0] + 0.25*x[2][0] + 0.5*x[3][0];
 
7213
    coordinates[24][1] = 0.25*x[1][1] + 0.25*x[2][1] + 0.5*x[3][1];
 
7214
    coordinates[24][2] = 0.25*x[1][2] + 0.25*x[2][2] + 0.5*x[3][2];
 
7215
    coordinates[25][0] = 0.5*x[0][0] + 0.25*x[2][0] + 0.25*x[3][0];
 
7216
    coordinates[25][1] = 0.5*x[0][1] + 0.25*x[2][1] + 0.25*x[3][1];
 
7217
    coordinates[25][2] = 0.5*x[0][2] + 0.25*x[2][2] + 0.25*x[3][2];
 
7218
    coordinates[26][0] = 0.25*x[0][0] + 0.5*x[2][0] + 0.25*x[3][0];
 
7219
    coordinates[26][1] = 0.25*x[0][1] + 0.5*x[2][1] + 0.25*x[3][1];
 
7220
    coordinates[26][2] = 0.25*x[0][2] + 0.5*x[2][2] + 0.25*x[3][2];
 
7221
    coordinates[27][0] = 0.25*x[0][0] + 0.25*x[2][0] + 0.5*x[3][0];
 
7222
    coordinates[27][1] = 0.25*x[0][1] + 0.25*x[2][1] + 0.5*x[3][1];
 
7223
    coordinates[27][2] = 0.25*x[0][2] + 0.25*x[2][2] + 0.5*x[3][2];
 
7224
    coordinates[28][0] = 0.5*x[0][0] + 0.25*x[1][0] + 0.25*x[3][0];
 
7225
    coordinates[28][1] = 0.5*x[0][1] + 0.25*x[1][1] + 0.25*x[3][1];
 
7226
    coordinates[28][2] = 0.5*x[0][2] + 0.25*x[1][2] + 0.25*x[3][2];
 
7227
    coordinates[29][0] = 0.25*x[0][0] + 0.5*x[1][0] + 0.25*x[3][0];
 
7228
    coordinates[29][1] = 0.25*x[0][1] + 0.5*x[1][1] + 0.25*x[3][1];
 
7229
    coordinates[29][2] = 0.25*x[0][2] + 0.5*x[1][2] + 0.25*x[3][2];
 
7230
    coordinates[30][0] = 0.25*x[0][0] + 0.25*x[1][0] + 0.5*x[3][0];
 
7231
    coordinates[30][1] = 0.25*x[0][1] + 0.25*x[1][1] + 0.5*x[3][1];
 
7232
    coordinates[30][2] = 0.25*x[0][2] + 0.25*x[1][2] + 0.5*x[3][2];
 
7233
    coordinates[31][0] = 0.5*x[0][0] + 0.25*x[1][0] + 0.25*x[2][0];
 
7234
    coordinates[31][1] = 0.5*x[0][1] + 0.25*x[1][1] + 0.25*x[2][1];
 
7235
    coordinates[31][2] = 0.5*x[0][2] + 0.25*x[1][2] + 0.25*x[2][2];
 
7236
    coordinates[32][0] = 0.25*x[0][0] + 0.5*x[1][0] + 0.25*x[2][0];
 
7237
    coordinates[32][1] = 0.25*x[0][1] + 0.5*x[1][1] + 0.25*x[2][1];
 
7238
    coordinates[32][2] = 0.25*x[0][2] + 0.5*x[1][2] + 0.25*x[2][2];
 
7239
    coordinates[33][0] = 0.25*x[0][0] + 0.25*x[1][0] + 0.5*x[2][0];
 
7240
    coordinates[33][1] = 0.25*x[0][1] + 0.25*x[1][1] + 0.5*x[2][1];
 
7241
    coordinates[33][2] = 0.25*x[0][2] + 0.25*x[1][2] + 0.5*x[2][2];
 
7242
    coordinates[34][0] = 0.25*x[0][0] + 0.25*x[1][0] + 0.25*x[2][0] + 0.25*x[3][0];
 
7243
    coordinates[34][1] = 0.25*x[0][1] + 0.25*x[1][1] + 0.25*x[2][1] + 0.25*x[3][1];
 
7244
    coordinates[34][2] = 0.25*x[0][2] + 0.25*x[1][2] + 0.25*x[2][2] + 0.25*x[3][2];
 
7245
  }
 
7246
 
 
7247
  /// Return the number of sub dof maps (for a mixed element)
 
7248
  virtual unsigned int num_sub_dof_maps() const
 
7249
  {
 
7250
    return 1;
 
7251
  }
 
7252
 
 
7253
  /// Create a new dof_map for sub dof map i (for a mixed element)
 
7254
  virtual ufc::dof_map* create_sub_dof_map(unsigned int i) const
 
7255
  {
 
7256
    return new UFC_Poisson3D_4LinearForm_dof_map_1();
 
7257
  }
 
7258
 
 
7259
};
 
7260
 
 
7261
/// This class defines the interface for the tabulation of the cell
 
7262
/// tensor corresponding to the local contribution to a form from
 
7263
/// the integral over a cell.
 
7264
 
 
7265
class UFC_Poisson3D_4LinearForm_cell_integral_0: public ufc::cell_integral
 
7266
{
 
7267
public:
 
7268
 
 
7269
  /// Constructor
 
7270
  UFC_Poisson3D_4LinearForm_cell_integral_0() : ufc::cell_integral()
 
7271
  {
 
7272
    // Do nothing
 
7273
  }
 
7274
 
 
7275
  /// Destructor
 
7276
  virtual ~UFC_Poisson3D_4LinearForm_cell_integral_0()
 
7277
  {
 
7278
    // Do nothing
 
7279
  }
 
7280
 
 
7281
  /// Tabulate the tensor for the contribution from a local cell
 
7282
  virtual void tabulate_tensor(double* A,
 
7283
                               const double * const * w,
 
7284
                               const ufc::cell& c) const
 
7285
  {
 
7286
    // Extract vertex coordinates
 
7287
    const double * const * x = c.coordinates;
 
7288
    
 
7289
    // Compute Jacobian of affine map from reference cell
 
7290
    const double J_00 = x[1][0] - x[0][0];
 
7291
    const double J_01 = x[2][0] - x[0][0];
 
7292
    const double J_02 = x[3][0] - x[0][0];
 
7293
    const double J_10 = x[1][1] - x[0][1];
 
7294
    const double J_11 = x[2][1] - x[0][1];
 
7295
    const double J_12 = x[3][1] - x[0][1];
 
7296
    const double J_20 = x[1][2] - x[0][2];
 
7297
    const double J_21 = x[2][2] - x[0][2];
 
7298
    const double J_22 = x[3][2] - x[0][2];
 
7299
      
 
7300
    // Compute sub determinants
 
7301
    const double d_00 = J_11*J_22 - J_12*J_21;
 
7302
    
 
7303
    const double d_10 = J_02*J_21 - J_01*J_22;
 
7304
    
 
7305
    const double d_20 = J_01*J_12 - J_02*J_11;
 
7306
      
 
7307
    // Compute determinant of Jacobian
 
7308
    double detJ = J_00*d_00 + J_10*d_10 + J_20*d_20;
 
7309
      
 
7310
    // Compute inverse of Jacobian
 
7311
    
 
7312
    // Set scale factor
 
7313
    const double det = std::abs(detJ);
 
7314
    
 
7315
    // Number of operations to compute element tensor = 2450
 
7316
    // Compute coefficients
 
7317
    const double c0_0_0_0 = w[0][0];
 
7318
    const double c0_0_0_1 = w[0][1];
 
7319
    const double c0_0_0_2 = w[0][2];
 
7320
    const double c0_0_0_3 = w[0][3];
 
7321
    const double c0_0_0_4 = w[0][4];
 
7322
    const double c0_0_0_5 = w[0][5];
 
7323
    const double c0_0_0_6 = w[0][6];
 
7324
    const double c0_0_0_7 = w[0][7];
 
7325
    const double c0_0_0_8 = w[0][8];
 
7326
    const double c0_0_0_9 = w[0][9];
 
7327
    const double c0_0_0_10 = w[0][10];
 
7328
    const double c0_0_0_11 = w[0][11];
 
7329
    const double c0_0_0_12 = w[0][12];
 
7330
    const double c0_0_0_13 = w[0][13];
 
7331
    const double c0_0_0_14 = w[0][14];
 
7332
    const double c0_0_0_15 = w[0][15];
 
7333
    const double c0_0_0_16 = w[0][16];
 
7334
    const double c0_0_0_17 = w[0][17];
 
7335
    const double c0_0_0_18 = w[0][18];
 
7336
    const double c0_0_0_19 = w[0][19];
 
7337
    const double c0_0_0_20 = w[0][20];
 
7338
    const double c0_0_0_21 = w[0][21];
 
7339
    const double c0_0_0_22 = w[0][22];
 
7340
    const double c0_0_0_23 = w[0][23];
 
7341
    const double c0_0_0_24 = w[0][24];
 
7342
    const double c0_0_0_25 = w[0][25];
 
7343
    const double c0_0_0_26 = w[0][26];
 
7344
    const double c0_0_0_27 = w[0][27];
 
7345
    const double c0_0_0_28 = w[0][28];
 
7346
    const double c0_0_0_29 = w[0][29];
 
7347
    const double c0_0_0_30 = w[0][30];
 
7348
    const double c0_0_0_31 = w[0][31];
 
7349
    const double c0_0_0_32 = w[0][32];
 
7350
    const double c0_0_0_33 = w[0][33];
 
7351
    const double c0_0_0_34 = w[0][34];
 
7352
    
 
7353
    // Compute geometry tensors
 
7354
    // Number of operations to compute decalrations = 35
 
7355
    const double G0_0 = det*c0_0_0_0;
 
7356
    const double G0_1 = det*c0_0_0_1;
 
7357
    const double G0_2 = det*c0_0_0_2;
 
7358
    const double G0_3 = det*c0_0_0_3;
 
7359
    const double G0_4 = det*c0_0_0_4;
 
7360
    const double G0_5 = det*c0_0_0_5;
 
7361
    const double G0_6 = det*c0_0_0_6;
 
7362
    const double G0_7 = det*c0_0_0_7;
 
7363
    const double G0_8 = det*c0_0_0_8;
 
7364
    const double G0_9 = det*c0_0_0_9;
 
7365
    const double G0_10 = det*c0_0_0_10;
 
7366
    const double G0_11 = det*c0_0_0_11;
 
7367
    const double G0_12 = det*c0_0_0_12;
 
7368
    const double G0_13 = det*c0_0_0_13;
 
7369
    const double G0_14 = det*c0_0_0_14;
 
7370
    const double G0_15 = det*c0_0_0_15;
 
7371
    const double G0_16 = det*c0_0_0_16;
 
7372
    const double G0_17 = det*c0_0_0_17;
 
7373
    const double G0_18 = det*c0_0_0_18;
 
7374
    const double G0_19 = det*c0_0_0_19;
 
7375
    const double G0_20 = det*c0_0_0_20;
 
7376
    const double G0_21 = det*c0_0_0_21;
 
7377
    const double G0_22 = det*c0_0_0_22;
 
7378
    const double G0_23 = det*c0_0_0_23;
 
7379
    const double G0_24 = det*c0_0_0_24;
 
7380
    const double G0_25 = det*c0_0_0_25;
 
7381
    const double G0_26 = det*c0_0_0_26;
 
7382
    const double G0_27 = det*c0_0_0_27;
 
7383
    const double G0_28 = det*c0_0_0_28;
 
7384
    const double G0_29 = det*c0_0_0_29;
 
7385
    const double G0_30 = det*c0_0_0_30;
 
7386
    const double G0_31 = det*c0_0_0_31;
 
7387
    const double G0_32 = det*c0_0_0_32;
 
7388
    const double G0_33 = det*c0_0_0_33;
 
7389
    const double G0_34 = det*c0_0_0_34;
 
7390
    
 
7391
    // Compute element tensor
 
7392
    // Number of operations to compute tensor = 2415
 
7393
    A[0] = 0.000200416867083531*G0_0 + 1.63005718561268e-05*G0_1 + 1.63005718561267e-05*G0_2 + 1.63005718561269e-05*G0_3 - 0.000121853455186786*G0_4 + 8.39078616856378e-05*G0_5 - 0.000121853455186786*G0_6 - 0.000121853455186786*G0_7 + 8.39078616856373e-05*G0_8 - 0.000121853455186786*G0_9 - 0.000121853455186786*G0_10 + 8.39078616856376e-05*G0_11 - 0.000121853455186786*G0_12 - 0.000149644594089036*G0_13 + 0.000112233445566777*G0_14 - 6.84089572978442e-05*G0_15 - 0.000149644594089036*G0_16 + 0.000112233445566777*G0_17 - 6.84089572978441e-05*G0_18 - 0.000149644594089035*G0_19 + 0.000112233445566777*G0_20 - 6.84089572978439e-05*G0_21 - 0.000215915771471324*G0_22 - 0.000215915771471324*G0_23 - 0.000215915771471323*G0_24 + 0.000288600288600288*G0_25 - 0.000185986852653517*G0_26 - 0.000185986852653516*G0_27 + 0.000288600288600288*G0_28 - 0.000185986852653516*G0_29 - 0.000185986852653516*G0_30 + 0.000288600288600288*G0_31 - 0.000185986852653516*G0_32 - 0.000185986852653516*G0_33 - 0.000538720538720522*G0_34;
 
7394
    A[1] = 1.63005718561268e-05*G0_0 + 0.000200416867083532*G0_1 + 1.63005718561274e-05*G0_2 + 1.63005718561274e-05*G0_3 - 0.000121853455186788*G0_4 + 8.39078616856393e-05*G0_5 - 0.000121853455186788*G0_6 - 0.000149644594089039*G0_7 + 0.000112233445566779*G0_8 - 6.84089572978464e-05*G0_9 - 0.000149644594089038*G0_10 + 0.000112233445566778*G0_11 - 6.84089572978458e-05*G0_12 - 0.000121853455186788*G0_13 + 8.3907861685639e-05*G0_14 - 0.000121853455186788*G0_15 - 0.000121853455186787*G0_16 + 8.39078616856385e-05*G0_17 - 0.000121853455186788*G0_18 - 6.84089572978454e-05*G0_19 + 0.000112233445566778*G0_20 - 0.000149644594089038*G0_21 + 0.000288600288600286*G0_22 - 0.000185986852653518*G0_23 - 0.000185986852653518*G0_24 - 0.000215915771471325*G0_25 - 0.000215915771471325*G0_26 - 0.000215915771471326*G0_27 - 0.000185986852653518*G0_28 + 0.000288600288600286*G0_29 - 0.000185986852653518*G0_30 - 0.000185986852653517*G0_31 + 0.000288600288600286*G0_32 - 0.000185986852653517*G0_33 - 0.000538720538720536*G0_34;
 
7395
    A[2] = 1.63005718561267e-05*G0_0 + 1.63005718561274e-05*G0_1 + 0.000200416867083532*G0_2 + 1.63005718561273e-05*G0_3 - 0.000149644594089038*G0_4 + 0.000112233445566779*G0_5 - 6.84089572978462e-05*G0_6 - 0.000121853455186787*G0_7 + 8.39078616856385e-05*G0_8 - 0.000121853455186788*G0_9 - 6.84089572978452e-05*G0_10 + 0.000112233445566778*G0_11 - 0.000149644594089037*G0_12 - 0.000121853455186787*G0_13 + 8.39078616856383e-05*G0_14 - 0.000121853455186787*G0_15 - 6.84089572978453e-05*G0_16 + 0.000112233445566778*G0_17 - 0.000149644594089037*G0_18 - 0.000121853455186787*G0_19 + 8.39078616856391e-05*G0_20 - 0.000121853455186787*G0_21 - 0.000185986852653518*G0_22 + 0.000288600288600287*G0_23 - 0.000185986852653518*G0_24 - 0.000185986852653517*G0_25 + 0.000288600288600287*G0_26 - 0.000185986852653518*G0_27 - 0.000215915771471325*G0_28 - 0.000215915771471325*G0_29 - 0.000215915771471326*G0_30 - 0.000185986852653518*G0_31 - 0.000185986852653517*G0_32 + 0.000288600288600287*G0_33 - 0.000538720538720534*G0_34;
 
7396
    A[3] = 1.63005718561269e-05*G0_0 + 1.63005718561274e-05*G0_1 + 1.63005718561273e-05*G0_2 + 0.000200416867083533*G0_3 - 6.84089572978458e-05*G0_4 + 0.000112233445566778*G0_5 - 0.000149644594089038*G0_6 - 6.84089572978458e-05*G0_7 + 0.000112233445566778*G0_8 - 0.000149644594089038*G0_9 - 0.000121853455186787*G0_10 + 8.39078616856389e-05*G0_11 - 0.000121853455186787*G0_12 - 6.84089572978454e-05*G0_13 + 0.000112233445566778*G0_14 - 0.000149644594089038*G0_15 - 0.000121853455186787*G0_16 + 8.39078616856389e-05*G0_17 - 0.000121853455186788*G0_18 - 0.000121853455186787*G0_19 + 8.39078616856394e-05*G0_20 - 0.000121853455186788*G0_21 - 0.000185986852653518*G0_22 - 0.000185986852653518*G0_23 + 0.000288600288600286*G0_24 - 0.000185986852653518*G0_25 - 0.000185986852653518*G0_26 + 0.000288600288600286*G0_27 - 0.000185986852653518*G0_28 - 0.000185986852653518*G0_29 + 0.000288600288600286*G0_30 - 0.000215915771471325*G0_31 - 0.000215915771471325*G0_32 - 0.000215915771471325*G0_33 - 0.000538720538720538*G0_34;
 
7397
    A[4] = -0.000121853455186786*G0_0 - 0.000121853455186788*G0_1 - 0.000149644594089038*G0_2 - 6.84089572978458e-05*G0_3 + 0.00171022393244614*G0_4 - 0.00125701459034792*G0_5 + 0.000684089572978458*G0_6 + 0.000273635829191383*G0_7 - 0.000153920153920153*G0_8 + 0.000359147025813691*G0_9 + 0.000359147025813689*G0_10 - 0.000654160654160648*G0_11 + 0.000855111966223069*G0_12 + 0.000273635829191382*G0_13 - 0.000153920153920153*G0_14 + 0.000359147025813691*G0_15 + 0.000359147025813689*G0_16 - 0.000654160654160648*G0_17 + 0.00085511196622307*G0_18 + 0.000136817914595691*G0_19 - 9.83378761156541e-05*G0_20 + 0.000136817914595692*G0_21 - 3.42044786489224e-05*G0_22 + 0.000102613435946768*G0_23 + 0.000513067179733843*G0_24 - 3.42044786489238e-05*G0_25 + 0.000102613435946769*G0_26 + 0.000513067179733843*G0_27 + 8.55111966223069e-05*G0_28 + 8.5511196622306e-05*G0_29 + 0.000974827641494302*G0_30 - 1.71022393244613e-05*G0_31 - 1.71022393244626e-05*G0_32 + 5.13067179733842e-05*G0_33 + 0.00109454331676553*G0_34;
 
7398
    A[5] = 8.39078616856378e-05*G0_0 + 8.39078616856393e-05*G0_1 + 0.000112233445566779*G0_2 + 0.000112233445566778*G0_3 - 0.00125701459034792*G0_4 + 0.00238576238576237*G0_5 - 0.00125701459034792*G0_6 - 0.000153920153920155*G0_7 + 0.000256533589866924*G0_8 - 0.000654160654160653*G0_9 - 0.000153920153920153*G0_10 + 0.000256533589866922*G0_11 - 0.000654160654160649*G0_12 - 0.000153920153920154*G0_13 + 0.000256533589866923*G0_14 - 0.000654160654160652*G0_15 - 0.000153920153920153*G0_16 + 0.000256533589866921*G0_17 - 0.000654160654160649*G0_18 - 9.83378761156537e-05*G0_19 + 1.92400192400205e-05*G0_20 - 9.83378761156545e-05*G0_21 - 0.000179573512906847*G0_22 - 7.69600769600773e-05*G0_23 - 7.69600769600775e-05*G0_24 - 0.000179573512906846*G0_25 - 7.69600769600767e-05*G0_26 - 7.69600769600764e-05*G0_27 + 0.000269360269360266*G0_28 + 0.000269360269360267*G0_29 - 0.00101330767997434*G0_30 + 0.000269360269360266*G0_31 + 0.000269360269360267*G0_32 - 0.00101330767997434*G0_33 - 0.00102613435946769*G0_34;
 
7399
    A[6] = -0.000121853455186786*G0_0 - 0.000121853455186788*G0_1 - 6.84089572978462e-05*G0_2 - 0.000149644594089038*G0_3 + 0.000684089572978458*G0_4 - 0.00125701459034792*G0_5 + 0.00171022393244615*G0_6 + 0.000359147025813692*G0_7 - 0.000654160654160652*G0_8 + 0.000855111966223075*G0_9 + 0.000273635829191383*G0_10 - 0.000153920153920153*G0_11 + 0.000359147025813689*G0_12 + 0.000359147025813691*G0_13 - 0.000654160654160652*G0_14 + 0.000855111966223074*G0_15 + 0.000273635829191383*G0_16 - 0.000153920153920153*G0_17 + 0.00035914702581369*G0_18 + 0.000136817914595691*G0_19 - 9.83378761156546e-05*G0_20 + 0.000136817914595692*G0_21 - 3.42044786489217e-05*G0_22 + 0.000513067179733841*G0_23 + 0.000102613435946769*G0_24 - 3.42044786489222e-05*G0_25 + 0.000513067179733841*G0_26 + 0.000102613435946769*G0_27 - 1.71022393244599e-05*G0_28 - 1.71022393244613e-05*G0_29 + 5.13067179733844e-05*G0_30 + 8.55111966223083e-05*G0_31 + 8.5511196622307e-05*G0_32 + 0.000974827641494299*G0_33 + 0.00109454331676554*G0_34;
 
7400
    A[7] = -0.000121853455186786*G0_0 - 0.000149644594089039*G0_1 - 0.000121853455186787*G0_2 - 6.84089572978458e-05*G0_3 + 0.000273635829191383*G0_4 - 0.000153920153920155*G0_5 + 0.000359147025813692*G0_6 + 0.00171022393244614*G0_7 - 0.00125701459034791*G0_8 + 0.000684089572978457*G0_9 + 0.000855111966223069*G0_10 - 0.000654160654160648*G0_11 + 0.000359147025813689*G0_12 + 0.000273635829191382*G0_13 - 0.000153920153920153*G0_14 + 0.000359147025813691*G0_15 + 0.000136817914595692*G0_16 - 9.83378761156537e-05*G0_17 + 0.000136817914595692*G0_18 + 0.000359147025813688*G0_19 - 0.000654160654160648*G0_20 + 0.00085511196622307*G0_21 + 0.000102613435946765*G0_22 - 3.42044786489196e-05*G0_23 + 0.000513067179733844*G0_24 + 8.55111966223067e-05*G0_25 + 8.55111966223095e-05*G0_26 + 0.000974827641494303*G0_27 - 3.42044786489216e-05*G0_28 + 0.000102613435946766*G0_29 + 0.000513067179733844*G0_30 - 1.71022393244602e-05*G0_31 + 5.13067179733814e-05*G0_32 - 1.71022393244591e-05*G0_33 + 0.00109454331676554*G0_34;
 
7401
    A[8] = 8.39078616856373e-05*G0_0 + 0.000112233445566779*G0_1 + 8.39078616856385e-05*G0_2 + 0.000112233445566778*G0_3 - 0.000153920153920153*G0_4 + 0.000256533589866924*G0_5 - 0.000654160654160652*G0_6 - 0.00125701459034791*G0_7 + 0.00238576238576237*G0_8 - 0.00125701459034792*G0_9 - 0.000654160654160647*G0_10 + 0.00025653358986692*G0_11 - 0.000153920153920151*G0_12 - 0.000153920153920153*G0_13 + 0.000256533589866923*G0_14 - 0.000654160654160652*G0_15 - 9.83378761156536e-05*G0_16 + 1.92400192400197e-05*G0_17 - 9.83378761156538e-05*G0_18 - 0.000153920153920151*G0_19 + 0.00025653358986692*G0_20 - 0.000654160654160647*G0_21 - 7.69600769600706e-05*G0_22 - 0.000179573512906847*G0_23 - 7.69600769600768e-05*G0_24 + 0.000269360269360267*G0_25 + 0.000269360269360266*G0_26 - 0.00101330767997434*G0_27 - 0.000179573512906847*G0_28 - 7.69600769600718e-05*G0_29 - 7.69600769600759e-05*G0_30 + 0.000269360269360265*G0_31 - 0.00101330767997433*G0_32 + 0.000269360269360265*G0_33 - 0.00102613435946769*G0_34;
 
7402
    A[9] = -0.000121853455186786*G0_0 - 6.84089572978464e-05*G0_1 - 0.000121853455186788*G0_2 - 0.000149644594089038*G0_3 + 0.000359147025813691*G0_4 - 0.000654160654160653*G0_5 + 0.000855111966223075*G0_6 + 0.000684089572978457*G0_7 - 0.00125701459034791*G0_8 + 0.00171022393244614*G0_9 + 0.000359147025813689*G0_10 - 0.000153920153920153*G0_11 + 0.000273635829191383*G0_12 + 0.00035914702581369*G0_13 - 0.000654160654160651*G0_14 + 0.000855111966223073*G0_15 + 0.000136817914595692*G0_16 - 9.83378761156539e-05*G0_17 + 0.000136817914595692*G0_18 + 0.000273635829191382*G0_19 - 0.000153920153920154*G0_20 + 0.00035914702581369*G0_21 + 0.000513067179733844*G0_22 - 3.42044786489223e-05*G0_23 + 0.000102613435946769*G0_24 - 1.7102239324461e-05*G0_25 - 1.71022393244608e-05*G0_26 + 5.13067179733836e-05*G0_27 - 3.42044786489218e-05*G0_28 + 0.000513067179733843*G0_29 + 0.000102613435946768*G0_30 + 8.55111966223076e-05*G0_31 + 0.000974827641494299*G0_32 + 8.5511196622308e-05*G0_33 + 0.00109454331676554*G0_34;
 
7403
    A[10] = -0.000121853455186786*G0_0 - 0.000149644594089038*G0_1 - 6.84089572978452e-05*G0_2 - 0.000121853455186787*G0_3 + 0.000359147025813689*G0_4 - 0.000153920153920153*G0_5 + 0.000273635829191383*G0_6 + 0.000855111966223069*G0_7 - 0.000654160654160647*G0_8 + 0.000359147025813689*G0_9 + 0.00171022393244614*G0_10 - 0.00125701459034791*G0_11 + 0.000684089572978454*G0_12 + 0.00013681791459569*G0_13 - 9.83378761156531e-05*G0_14 + 0.000136817914595691*G0_15 + 0.000273635829191382*G0_16 - 0.000153920153920152*G0_17 + 0.000359147025813689*G0_18 + 0.000359147025813688*G0_19 - 0.000654160654160648*G0_20 + 0.000855111966223069*G0_21 + 0.000102613435946765*G0_22 + 0.000513067179733844*G0_23 - 3.42044786489211e-05*G0_24 + 8.55111966223058e-05*G0_25 + 0.000974827641494302*G0_26 + 8.55111966223087e-05*G0_27 - 1.71022393244608e-05*G0_28 + 5.13067179733822e-05*G0_29 - 1.71022393244607e-05*G0_30 - 3.42044786489231e-05*G0_31 + 0.000102613435946768*G0_32 + 0.000513067179733843*G0_33 + 0.00109454331676553*G0_34;
 
7404
    A[11] = 8.39078616856376e-05*G0_0 + 0.000112233445566778*G0_1 + 0.000112233445566778*G0_2 + 8.39078616856389e-05*G0_3 - 0.000654160654160648*G0_4 + 0.000256533589866921*G0_5 - 0.000153920153920153*G0_6 - 0.000654160654160648*G0_7 + 0.00025653358986692*G0_8 - 0.000153920153920153*G0_9 - 0.00125701459034791*G0_10 + 0.00238576238576236*G0_11 - 0.00125701459034791*G0_12 - 9.83378761156525e-05*G0_13 + 1.92400192400186e-05*G0_14 - 9.83378761156534e-05*G0_15 - 0.000153920153920152*G0_16 + 0.00025653358986692*G0_17 - 0.000654160654160648*G0_18 - 0.000153920153920152*G0_19 + 0.000256533589866921*G0_20 - 0.000654160654160648*G0_21 - 7.69600769600798e-05*G0_22 - 7.6960076960078e-05*G0_23 - 0.000179573512906845*G0_24 + 0.000269360269360269*G0_25 - 0.00101330767997434*G0_26 + 0.000269360269360266*G0_27 + 0.000269360269360268*G0_28 - 0.00101330767997434*G0_29 + 0.000269360269360267*G0_30 - 0.000179573512906844*G0_31 - 7.69600769600769e-05*G0_32 - 7.69600769600759e-05*G0_33 - 0.00102613435946769*G0_34;
 
7405
    A[12] = -0.000121853455186786*G0_0 - 6.84089572978458e-05*G0_1 - 0.000149644594089037*G0_2 - 0.000121853455186787*G0_3 + 0.000855111966223069*G0_4 - 0.000654160654160649*G0_5 + 0.000359147025813689*G0_6 + 0.000359147025813689*G0_7 - 0.000153920153920151*G0_8 + 0.000273635829191383*G0_9 + 0.000684089572978454*G0_10 - 0.00125701459034791*G0_11 + 0.00171022393244614*G0_12 + 0.00013681791459569*G0_13 - 9.83378761156528e-05*G0_14 + 0.000136817914595692*G0_15 + 0.000359147025813689*G0_16 - 0.000654160654160648*G0_17 + 0.00085511196622307*G0_18 + 0.000273635829191381*G0_19 - 0.000153920153920154*G0_20 + 0.000359147025813689*G0_21 + 0.000513067179733843*G0_22 + 0.000102613435946765*G0_23 - 3.42044786489214e-05*G0_24 - 1.71022393244608e-05*G0_25 + 5.1306717973383e-05*G0_26 - 1.71022393244606e-05*G0_27 + 8.55111966223078e-05*G0_28 + 0.000974827641494299*G0_29 + 8.55111966223084e-05*G0_30 - 3.42044786489221e-05*G0_31 + 0.000513067179733841*G0_32 + 0.000102613435946768*G0_33 + 0.00109454331676553*G0_34;
 
7406
    A[13] = -0.000149644594089036*G0_0 - 0.000121853455186788*G0_1 - 0.000121853455186787*G0_2 - 6.84089572978454e-05*G0_3 + 0.000273635829191382*G0_4 - 0.000153920153920154*G0_5 + 0.000359147025813691*G0_6 + 0.000273635829191382*G0_7 - 0.000153920153920153*G0_8 + 0.00035914702581369*G0_9 + 0.00013681791459569*G0_10 - 9.83378761156525e-05*G0_11 + 0.00013681791459569*G0_12 + 0.00171022393244614*G0_13 - 0.00125701459034791*G0_14 + 0.000684089572978456*G0_15 + 0.000855111966223069*G0_16 - 0.000654160654160647*G0_17 + 0.000359147025813688*G0_18 + 0.000855111966223067*G0_19 - 0.000654160654160647*G0_20 + 0.000359147025813688*G0_21 + 8.55111966223033e-05*G0_22 + 8.55111966223085e-05*G0_23 + 0.000974827641494302*G0_24 + 0.000102613435946764*G0_25 - 3.42044786489215e-05*G0_26 + 0.000513067179733844*G0_27 + 0.000102613435946765*G0_28 - 3.42044786489269e-05*G0_29 + 0.000513067179733843*G0_30 + 5.13067179733822e-05*G0_31 - 1.71022393244647e-05*G0_32 - 1.71022393244607e-05*G0_33 + 0.00109454331676553*G0_34;
 
7407
    A[14] = 0.000112233445566777*G0_0 + 8.3907861685639e-05*G0_1 + 8.39078616856383e-05*G0_2 + 0.000112233445566778*G0_3 - 0.000153920153920153*G0_4 + 0.000256533589866923*G0_5 - 0.000654160654160652*G0_6 - 0.000153920153920153*G0_7 + 0.000256533589866923*G0_8 - 0.000654160654160651*G0_9 - 9.83378761156531e-05*G0_10 + 1.92400192400186e-05*G0_11 - 9.83378761156528e-05*G0_12 - 0.00125701459034791*G0_13 + 0.00238576238576237*G0_14 - 0.00125701459034792*G0_15 - 0.000654160654160648*G0_16 + 0.00025653358986692*G0_17 - 0.000153920153920152*G0_18 - 0.000654160654160646*G0_19 + 0.00025653358986692*G0_20 - 0.000153920153920152*G0_21 + 0.00026936026936027*G0_22 + 0.000269360269360265*G0_23 - 0.00101330767997434*G0_24 - 7.69600769600724e-05*G0_25 - 0.000179573512906847*G0_26 - 7.69600769600781e-05*G0_27 - 7.69600769600746e-05*G0_28 - 0.000179573512906841*G0_29 - 7.69600769600772e-05*G0_30 - 0.00101330767997434*G0_31 + 0.000269360269360268*G0_32 + 0.000269360269360265*G0_33 - 0.00102613435946768*G0_34;
 
7408
    A[15] = -6.84089572978442e-05*G0_0 - 0.000121853455186788*G0_1 - 0.000121853455186787*G0_2 - 0.000149644594089038*G0_3 + 0.000359147025813691*G0_4 - 0.000654160654160652*G0_5 + 0.000855111966223074*G0_6 + 0.000359147025813691*G0_7 - 0.000654160654160652*G0_8 + 0.000855111966223073*G0_9 + 0.000136817914595691*G0_10 - 9.83378761156534e-05*G0_11 + 0.000136817914595692*G0_12 + 0.000684089572978456*G0_13 - 0.00125701459034792*G0_14 + 0.00171022393244614*G0_15 + 0.000359147025813689*G0_16 - 0.000153920153920153*G0_17 + 0.000273635829191383*G0_18 + 0.000359147025813688*G0_19 - 0.000153920153920154*G0_20 + 0.000273635829191383*G0_21 - 1.71022393244597e-05*G0_22 - 1.71022393244591e-05*G0_23 + 5.13067179733815e-05*G0_24 + 0.000513067179733842*G0_25 - 3.42044786489216e-05*G0_26 + 0.000102613435946767*G0_27 + 0.000513067179733842*G0_28 - 3.42044786489229e-05*G0_29 + 0.000102613435946767*G0_30 + 0.000974827641494299*G0_31 + 8.55111966223067e-05*G0_32 + 8.55111966223087e-05*G0_33 + 0.00109454331676553*G0_34;
 
7409
    A[16] = -0.000149644594089036*G0_0 - 0.000121853455186787*G0_1 - 6.84089572978454e-05*G0_2 - 0.000121853455186787*G0_3 + 0.000359147025813689*G0_4 - 0.000153920153920153*G0_5 + 0.000273635829191383*G0_6 + 0.000136817914595692*G0_7 - 9.83378761156536e-05*G0_8 + 0.000136817914595692*G0_9 + 0.000273635829191382*G0_10 - 0.000153920153920152*G0_11 + 0.000359147025813689*G0_12 + 0.000855111966223069*G0_13 - 0.000654160654160648*G0_14 + 0.000359147025813689*G0_15 + 0.00171022393244614*G0_16 - 0.00125701459034791*G0_17 + 0.000684089572978455*G0_18 + 0.000855111966223069*G0_19 - 0.000654160654160649*G0_20 + 0.000359147025813689*G0_21 + 8.55111966223067e-05*G0_22 + 0.000974827641494301*G0_23 + 8.55111966223081e-05*G0_24 + 0.000102613435946766*G0_25 + 0.000513067179733843*G0_26 - 3.42044786489208e-05*G0_27 + 5.13067179733837e-05*G0_28 - 1.71022393244634e-05*G0_29 - 1.71022393244603e-05*G0_30 + 0.000102613435946768*G0_31 - 3.42044786489249e-05*G0_32 + 0.000513067179733842*G0_33 + 0.00109454331676553*G0_34;
 
7410
    A[17] = 0.000112233445566777*G0_0 + 8.39078616856385e-05*G0_1 + 0.000112233445566778*G0_2 + 8.39078616856389e-05*G0_3 - 0.000654160654160648*G0_4 + 0.000256533589866921*G0_5 - 0.000153920153920153*G0_6 - 9.83378761156537e-05*G0_7 + 1.92400192400197e-05*G0_8 - 9.83378761156539e-05*G0_9 - 0.000153920153920152*G0_10 + 0.00025653358986692*G0_11 - 0.000654160654160648*G0_12 - 0.000654160654160647*G0_13 + 0.00025653358986692*G0_14 - 0.000153920153920153*G0_15 - 0.00125701459034791*G0_16 + 0.00238576238576236*G0_17 - 0.00125701459034791*G0_18 - 0.000654160654160647*G0_19 + 0.000256533589866922*G0_20 - 0.000153920153920153*G0_21 + 0.000269360269360264*G0_22 - 0.00101330767997434*G0_23 + 0.000269360269360268*G0_24 - 7.69600769600767e-05*G0_25 - 7.69600769600756e-05*G0_26 - 0.000179573512906844*G0_27 - 0.00101330767997434*G0_28 + 0.000269360269360266*G0_29 + 0.000269360269360267*G0_30 - 7.69600769600756e-05*G0_31 - 0.000179573512906847*G0_32 - 7.69600769600766e-05*G0_33 - 0.00102613435946769*G0_34;
 
7411
    A[18] = -6.84089572978441e-05*G0_0 - 0.000121853455186788*G0_1 - 0.000149644594089037*G0_2 - 0.000121853455186788*G0_3 + 0.00085511196622307*G0_4 - 0.000654160654160649*G0_5 + 0.00035914702581369*G0_6 + 0.000136817914595692*G0_7 - 9.83378761156538e-05*G0_8 + 0.000136817914595692*G0_9 + 0.000359147025813689*G0_10 - 0.000654160654160648*G0_11 + 0.00085511196622307*G0_12 + 0.000359147025813689*G0_13 - 0.000153920153920152*G0_14 + 0.000273635829191383*G0_15 + 0.000684089572978455*G0_16 - 0.00125701459034791*G0_17 + 0.00171022393244614*G0_18 + 0.000359147025813689*G0_19 - 0.000153920153920155*G0_20 + 0.000273635829191383*G0_21 - 1.71022393244585e-05*G0_22 + 5.13067179733843e-05*G0_23 - 1.71022393244613e-05*G0_24 + 0.000513067179733842*G0_25 + 0.000102613435946767*G0_26 - 3.42044786489213e-05*G0_27 + 0.000974827641494299*G0_28 + 8.55111966223075e-05*G0_29 + 8.55111966223083e-05*G0_30 + 0.000513067179733842*G0_31 - 3.42044786489218e-05*G0_32 + 0.00010261343594677*G0_33 + 0.00109454331676554*G0_34;
 
7412
    A[19] = -0.000149644594089035*G0_0 - 6.84089572978454e-05*G0_1 - 0.000121853455186787*G0_2 - 0.000121853455186787*G0_3 + 0.000136817914595691*G0_4 - 9.83378761156537e-05*G0_5 + 0.000136817914595691*G0_6 + 0.000359147025813688*G0_7 - 0.000153920153920151*G0_8 + 0.000273635829191382*G0_9 + 0.000359147025813688*G0_10 - 0.000153920153920152*G0_11 + 0.000273635829191381*G0_12 + 0.000855111966223067*G0_13 - 0.000654160654160646*G0_14 + 0.000359147025813688*G0_15 + 0.000855111966223069*G0_16 - 0.000654160654160647*G0_17 + 0.000359147025813689*G0_18 + 0.00171022393244614*G0_19 - 0.00125701459034791*G0_20 + 0.000684089572978454*G0_21 + 0.000974827641494302*G0_22 + 8.55111966223067e-05*G0_23 + 8.55111966223066e-05*G0_24 + 5.1306717973382e-05*G0_25 - 1.7102239324462e-05*G0_26 - 1.71022393244616e-05*G0_27 + 0.000102613435946765*G0_28 + 0.000513067179733842*G0_29 - 3.42044786489223e-05*G0_30 + 0.000102613435946767*G0_31 + 0.000513067179733842*G0_32 - 3.42044786489233e-05*G0_33 + 0.00109454331676553*G0_34;
 
7413
    A[20] = 0.000112233445566777*G0_0 + 0.000112233445566778*G0_1 + 8.39078616856391e-05*G0_2 + 8.39078616856394e-05*G0_3 - 9.83378761156541e-05*G0_4 + 1.92400192400205e-05*G0_5 - 9.83378761156546e-05*G0_6 - 0.000654160654160648*G0_7 + 0.00025653358986692*G0_8 - 0.000153920153920154*G0_9 - 0.000654160654160648*G0_10 + 0.000256533589866921*G0_11 - 0.000153920153920154*G0_12 - 0.000654160654160647*G0_13 + 0.00025653358986692*G0_14 - 0.000153920153920154*G0_15 - 0.000654160654160649*G0_16 + 0.000256533589866922*G0_17 - 0.000153920153920155*G0_18 - 0.00125701459034791*G0_19 + 0.00238576238576236*G0_20 - 0.00125701459034791*G0_21 - 0.00101330767997434*G0_22 + 0.000269360269360267*G0_23 + 0.000269360269360268*G0_24 - 0.00101330767997434*G0_25 + 0.000269360269360268*G0_26 + 0.000269360269360267*G0_27 - 7.69600769600811e-05*G0_28 - 7.69600769600793e-05*G0_29 - 0.000179573512906843*G0_30 - 7.69600769600807e-05*G0_31 - 7.69600769600793e-05*G0_32 - 0.000179573512906844*G0_33 - 0.0010261343594677*G0_34;
 
7414
    A[21] = -6.84089572978439e-05*G0_0 - 0.000149644594089038*G0_1 - 0.000121853455186787*G0_2 - 0.000121853455186788*G0_3 + 0.000136817914595692*G0_4 - 9.83378761156544e-05*G0_5 + 0.000136817914595692*G0_6 + 0.00085511196622307*G0_7 - 0.000654160654160647*G0_8 + 0.00035914702581369*G0_9 + 0.000855111966223069*G0_10 - 0.000654160654160648*G0_11 + 0.000359147025813689*G0_12 + 0.000359147025813688*G0_13 - 0.000153920153920152*G0_14 + 0.000273635829191383*G0_15 + 0.000359147025813689*G0_16 - 0.000153920153920153*G0_17 + 0.000273635829191383*G0_18 + 0.000684089572978454*G0_19 - 0.00125701459034791*G0_20 + 0.00171022393244614*G0_21 + 5.13067179733847e-05*G0_22 - 1.71022393244605e-05*G0_23 - 1.71022393244604e-05*G0_24 + 0.000974827641494301*G0_25 + 8.55111966223068e-05*G0_26 + 8.55111966223085e-05*G0_27 + 0.000513067179733846*G0_28 + 0.000102613435946766*G0_29 - 3.42044786489214e-05*G0_30 + 0.000513067179733844*G0_31 + 0.000102613435946768*G0_32 - 3.42044786489227e-05*G0_33 + 0.00109454331676554*G0_34;
 
7415
    A[22] = -0.000215915771471324*G0_0 + 0.000288600288600286*G0_1 - 0.000185986852653518*G0_2 - 0.000185986852653518*G0_3 - 3.42044786489224e-05*G0_4 - 0.000179573512906847*G0_5 - 3.42044786489217e-05*G0_6 + 0.000102613435946765*G0_7 - 7.69600769600705e-05*G0_8 + 0.000513067179733844*G0_9 + 0.000102613435946765*G0_10 - 7.696007696008e-05*G0_11 + 0.000513067179733843*G0_12 + 8.55111966223033e-05*G0_13 + 0.00026936026936027*G0_14 - 1.71022393244597e-05*G0_15 + 8.55111966223068e-05*G0_16 + 0.000269360269360264*G0_17 - 1.71022393244584e-05*G0_18 + 0.000974827641494302*G0_19 - 0.00101330767997434*G0_20 + 5.13067179733847e-05*G0_21 + 0.00779862113195441*G0_22 - 0.00205226871893537*G0_23 - 0.00205226871893537*G0_24 - 0.000205226871893535*G0_25 - 0.00143658810325476*G0_26 - 0.00143658810325476*G0_27 - 0.00143658810325476*G0_28 + 0.00389931056597721*G0_29 - 0.00102613435946769*G0_30 - 0.00143658810325476*G0_31 + 0.0038993105659772*G0_32 - 0.00102613435946769*G0_33 + 0.0016418149751483*G0_34;
 
7416
    A[23] = -0.000215915771471324*G0_0 - 0.000185986852653518*G0_1 + 0.000288600288600287*G0_2 - 0.000185986852653518*G0_3 + 0.000102613435946768*G0_4 - 7.69600769600773e-05*G0_5 + 0.000513067179733842*G0_6 - 3.42044786489196e-05*G0_7 - 0.000179573512906847*G0_8 - 3.42044786489223e-05*G0_9 + 0.000513067179733844*G0_10 - 7.69600769600779e-05*G0_11 + 0.000102613435946765*G0_12 + 8.55111966223085e-05*G0_13 + 0.000269360269360265*G0_14 - 1.71022393244591e-05*G0_15 + 0.000974827641494301*G0_16 - 0.00101330767997434*G0_17 + 5.13067179733843e-05*G0_18 + 8.55111966223067e-05*G0_19 + 0.000269360269360267*G0_20 - 1.71022393244605e-05*G0_21 - 0.00205226871893537*G0_22 + 0.0077986211319544*G0_23 - 0.00205226871893537*G0_24 - 0.00143658810325476*G0_25 + 0.00389931056597721*G0_26 - 0.00102613435946769*G0_27 - 0.000205226871893533*G0_28 - 0.00143658810325476*G0_29 - 0.00143658810325476*G0_30 - 0.00143658810325476*G0_31 - 0.00102613435946769*G0_32 + 0.0038993105659772*G0_33 + 0.0016418149751483*G0_34;
 
7417
    A[24] = -0.000215915771471323*G0_0 - 0.000185986852653518*G0_1 - 0.000185986852653518*G0_2 + 0.000288600288600286*G0_3 + 0.000513067179733843*G0_4 - 7.69600769600774e-05*G0_5 + 0.000102613435946769*G0_6 + 0.000513067179733844*G0_7 - 7.69600769600767e-05*G0_8 + 0.000102613435946769*G0_9 - 3.42044786489211e-05*G0_10 - 0.000179573512906845*G0_11 - 3.42044786489215e-05*G0_12 + 0.000974827641494302*G0_13 - 0.00101330767997434*G0_14 + 5.13067179733814e-05*G0_15 + 8.55111966223081e-05*G0_16 + 0.000269360269360268*G0_17 - 1.71022393244613e-05*G0_18 + 8.55111966223066e-05*G0_19 + 0.000269360269360268*G0_20 - 1.71022393244604e-05*G0_21 - 0.00205226871893537*G0_22 - 0.00205226871893537*G0_23 + 0.00779862113195442*G0_24 - 0.00143658810325476*G0_25 - 0.00102613435946769*G0_26 + 0.00389931056597721*G0_27 - 0.00143658810325476*G0_28 - 0.00102613435946769*G0_29 + 0.00389931056597721*G0_30 - 0.000205226871893539*G0_31 - 0.00143658810325476*G0_32 - 0.00143658810325476*G0_33 + 0.0016418149751483*G0_34;
 
7418
    A[25] = 0.000288600288600288*G0_0 - 0.000215915771471325*G0_1 - 0.000185986852653517*G0_2 - 0.000185986852653518*G0_3 - 3.42044786489237e-05*G0_4 - 0.000179573512906846*G0_5 - 3.42044786489223e-05*G0_6 + 8.55111966223068e-05*G0_7 + 0.000269360269360267*G0_8 - 1.7102239324461e-05*G0_9 + 8.55111966223059e-05*G0_10 + 0.000269360269360269*G0_11 - 1.71022393244608e-05*G0_12 + 0.000102613435946764*G0_13 - 7.69600769600725e-05*G0_14 + 0.000513067179733842*G0_15 + 0.000102613435946766*G0_16 - 7.69600769600769e-05*G0_17 + 0.000513067179733842*G0_18 + 5.1306717973382e-05*G0_19 - 0.00101330767997434*G0_20 + 0.000974827641494301*G0_21 - 0.000205226871893535*G0_22 - 0.00143658810325476*G0_23 - 0.00143658810325476*G0_24 + 0.00779862113195441*G0_25 - 0.00205226871893537*G0_26 - 0.00205226871893537*G0_27 + 0.00389931056597721*G0_28 - 0.00143658810325476*G0_29 - 0.00102613435946769*G0_30 + 0.0038993105659772*G0_31 - 0.00143658810325476*G0_32 - 0.00102613435946769*G0_33 + 0.00164181497514829*G0_34;
 
7419
    A[26] = -0.000185986852653517*G0_0 - 0.000215915771471325*G0_1 + 0.000288600288600287*G0_2 - 0.000185986852653518*G0_3 + 0.000102613435946769*G0_4 - 7.69600769600767e-05*G0_5 + 0.000513067179733841*G0_6 + 8.55111966223095e-05*G0_7 + 0.000269360269360265*G0_8 - 1.71022393244608e-05*G0_9 + 0.000974827641494302*G0_10 - 0.00101330767997434*G0_11 + 5.1306717973383e-05*G0_12 - 3.42044786489215e-05*G0_13 - 0.000179573512906847*G0_14 - 3.42044786489216e-05*G0_15 + 0.000513067179733842*G0_16 - 7.69600769600755e-05*G0_17 + 0.000102613435946767*G0_18 - 1.7102239324462e-05*G0_19 + 0.000269360269360268*G0_20 + 8.55111966223068e-05*G0_21 - 0.00143658810325476*G0_22 + 0.00389931056597721*G0_23 - 0.00102613435946769*G0_24 - 0.00205226871893537*G0_25 + 0.00779862113195441*G0_26 - 0.00205226871893537*G0_27 - 0.00143658810325476*G0_28 - 0.000205226871893539*G0_29 - 0.00143658810325476*G0_30 - 0.00102613435946769*G0_31 - 0.00143658810325476*G0_32 + 0.00389931056597721*G0_33 + 0.0016418149751483*G0_34;
 
7420
    A[27] = -0.000185986852653516*G0_0 - 0.000215915771471326*G0_1 - 0.000185986852653518*G0_2 + 0.000288600288600286*G0_3 + 0.000513067179733843*G0_4 - 7.69600769600763e-05*G0_5 + 0.000102613435946769*G0_6 + 0.000974827641494303*G0_7 - 0.00101330767997434*G0_8 + 5.13067179733836e-05*G0_9 + 8.55111966223087e-05*G0_10 + 0.000269360269360266*G0_11 - 1.71022393244606e-05*G0_12 + 0.000513067179733844*G0_13 - 7.69600769600781e-05*G0_14 + 0.000102613435946767*G0_15 - 3.42044786489207e-05*G0_16 - 0.000179573512906844*G0_17 - 3.42044786489213e-05*G0_18 - 1.71022393244616e-05*G0_19 + 0.000269360269360267*G0_20 + 8.55111966223086e-05*G0_21 - 0.00143658810325476*G0_22 - 0.00102613435946769*G0_23 + 0.00389931056597721*G0_24 - 0.00205226871893537*G0_25 - 0.00205226871893537*G0_26 + 0.00779862113195441*G0_27 - 0.00102613435946768*G0_28 - 0.00143658810325476*G0_29 + 0.00389931056597721*G0_30 - 0.00143658810325476*G0_31 - 0.00020522687189354*G0_32 - 0.00143658810325476*G0_33 + 0.0016418149751483*G0_34;
 
7421
    A[28] = 0.000288600288600288*G0_0 - 0.000185986852653518*G0_1 - 0.000215915771471325*G0_2 - 0.000185986852653518*G0_3 + 8.55111966223069e-05*G0_4 + 0.000269360269360266*G0_5 - 1.71022393244599e-05*G0_6 - 3.42044786489216e-05*G0_7 - 0.000179573512906847*G0_8 - 3.42044786489219e-05*G0_9 - 1.71022393244608e-05*G0_10 + 0.000269360269360268*G0_11 + 8.55111966223078e-05*G0_12 + 0.000102613435946765*G0_13 - 7.69600769600747e-05*G0_14 + 0.000513067179733842*G0_15 + 5.13067179733837e-05*G0_16 - 0.00101330767997434*G0_17 + 0.000974827641494299*G0_18 + 0.000102613435946765*G0_19 - 7.69600769600811e-05*G0_20 + 0.000513067179733846*G0_21 - 0.00143658810325476*G0_22 - 0.000205226871893533*G0_23 - 0.00143658810325476*G0_24 + 0.00389931056597721*G0_25 - 0.00143658810325476*G0_26 - 0.00102613435946768*G0_27 + 0.00779862113195441*G0_28 - 0.00205226871893537*G0_29 - 0.00205226871893537*G0_30 + 0.0038993105659772*G0_31 - 0.00102613435946768*G0_32 - 0.00143658810325476*G0_33 + 0.0016418149751483*G0_34;
 
7422
    A[29] = -0.000185986852653516*G0_0 + 0.000288600288600286*G0_1 - 0.000215915771471325*G0_2 - 0.000185986852653518*G0_3 + 8.5511196622306e-05*G0_4 + 0.000269360269360267*G0_5 - 1.71022393244613e-05*G0_6 + 0.000102613435946766*G0_7 - 7.69600769600719e-05*G0_8 + 0.000513067179733843*G0_9 + 5.13067179733822e-05*G0_10 - 0.00101330767997434*G0_11 + 0.000974827641494299*G0_12 - 3.42044786489269e-05*G0_13 - 0.000179573512906841*G0_14 - 3.42044786489229e-05*G0_15 - 1.71022393244635e-05*G0_16 + 0.000269360269360266*G0_17 + 8.55111966223075e-05*G0_18 + 0.000513067179733842*G0_19 - 7.69600769600794e-05*G0_20 + 0.000102613435946766*G0_21 + 0.00389931056597721*G0_22 - 0.00143658810325476*G0_23 - 0.00102613435946769*G0_24 - 0.00143658810325476*G0_25 - 0.000205226871893539*G0_26 - 0.00143658810325476*G0_27 - 0.00205226871893537*G0_28 + 0.00779862113195441*G0_29 - 0.00205226871893537*G0_30 - 0.00102613435946768*G0_31 + 0.0038993105659772*G0_32 - 0.00143658810325476*G0_33 + 0.00164181497514829*G0_34;
 
7423
    A[30] = -0.000185986852653516*G0_0 - 0.000185986852653518*G0_1 - 0.000215915771471326*G0_2 + 0.000288600288600286*G0_3 + 0.000974827641494302*G0_4 - 0.00101330767997434*G0_5 + 5.13067179733843e-05*G0_6 + 0.000513067179733844*G0_7 - 7.69600769600757e-05*G0_8 + 0.000102613435946768*G0_9 - 1.71022393244607e-05*G0_10 + 0.000269360269360267*G0_11 + 8.55111966223084e-05*G0_12 + 0.000513067179733843*G0_13 - 7.69600769600771e-05*G0_14 + 0.000102613435946767*G0_15 - 1.71022393244603e-05*G0_16 + 0.000269360269360267*G0_17 + 8.55111966223083e-05*G0_18 - 3.42044786489223e-05*G0_19 - 0.000179573512906843*G0_20 - 3.42044786489213e-05*G0_21 - 0.00102613435946769*G0_22 - 0.00143658810325476*G0_23 + 0.00389931056597721*G0_24 - 0.00102613435946769*G0_25 - 0.00143658810325476*G0_26 + 0.00389931056597721*G0_27 - 0.00205226871893537*G0_28 - 0.00205226871893537*G0_29 + 0.00779862113195441*G0_30 - 0.00143658810325476*G0_31 - 0.00143658810325476*G0_32 - 0.000205226871893541*G0_33 + 0.0016418149751483*G0_34;
 
7424
    A[31] = 0.000288600288600288*G0_0 - 0.000185986852653518*G0_1 - 0.000185986852653518*G0_2 - 0.000215915771471325*G0_3 - 1.71022393244613e-05*G0_4 + 0.000269360269360266*G0_5 + 8.55111966223082e-05*G0_6 - 1.71022393244602e-05*G0_7 + 0.000269360269360265*G0_8 + 8.55111966223077e-05*G0_9 - 3.42044786489231e-05*G0_10 - 0.000179573512906844*G0_11 - 3.42044786489222e-05*G0_12 + 5.1306717973382e-05*G0_13 - 0.00101330767997434*G0_14 + 0.000974827641494299*G0_15 + 0.000102613435946769*G0_16 - 7.69600769600756e-05*G0_17 + 0.000513067179733842*G0_18 + 0.000102613435946767*G0_19 - 7.69600769600807e-05*G0_20 + 0.000513067179733844*G0_21 - 0.00143658810325476*G0_22 - 0.00143658810325476*G0_23 - 0.000205226871893539*G0_24 + 0.0038993105659772*G0_25 - 0.00102613435946769*G0_26 - 0.00143658810325476*G0_27 + 0.0038993105659772*G0_28 - 0.00102613435946768*G0_29 - 0.00143658810325476*G0_30 + 0.0077986211319544*G0_31 - 0.00205226871893536*G0_32 - 0.00205226871893537*G0_33 + 0.0016418149751483*G0_34;
 
7425
    A[32] = -0.000185986852653516*G0_0 + 0.000288600288600286*G0_1 - 0.000185986852653517*G0_2 - 0.000215915771471325*G0_3 - 1.71022393244626e-05*G0_4 + 0.000269360269360267*G0_5 + 8.5511196622307e-05*G0_6 + 5.13067179733814e-05*G0_7 - 0.00101330767997433*G0_8 + 0.000974827641494299*G0_9 + 0.000102613435946767*G0_10 - 7.69600769600769e-05*G0_11 + 0.000513067179733841*G0_12 - 1.71022393244646e-05*G0_13 + 0.000269360269360268*G0_14 + 8.55111966223068e-05*G0_15 - 3.4204478648925e-05*G0_16 - 0.000179573512906847*G0_17 - 3.42044786489218e-05*G0_18 + 0.000513067179733841*G0_19 - 7.69600769600793e-05*G0_20 + 0.000102613435946768*G0_21 + 0.0038993105659772*G0_22 - 0.00102613435946769*G0_23 - 0.00143658810325476*G0_24 - 0.00143658810325476*G0_25 - 0.00143658810325476*G0_26 - 0.00020522687189354*G0_27 - 0.00102613435946768*G0_28 + 0.0038993105659772*G0_29 - 0.00143658810325476*G0_30 - 0.00205226871893536*G0_31 + 0.0077986211319544*G0_32 - 0.00205226871893537*G0_33 + 0.00164181497514829*G0_34;
 
7426
    A[33] = -0.000185986852653516*G0_0 - 0.000185986852653517*G0_1 + 0.000288600288600287*G0_2 - 0.000215915771471325*G0_3 + 5.13067179733842e-05*G0_4 - 0.00101330767997434*G0_5 + 0.000974827641494299*G0_6 - 1.71022393244591e-05*G0_7 + 0.000269360269360265*G0_8 + 8.5511196622308e-05*G0_9 + 0.000513067179733843*G0_10 - 7.69600769600759e-05*G0_11 + 0.000102613435946768*G0_12 - 1.71022393244607e-05*G0_13 + 0.000269360269360265*G0_14 + 8.55111966223087e-05*G0_15 + 0.000513067179733842*G0_16 - 7.69600769600766e-05*G0_17 + 0.00010261343594677*G0_18 - 3.42044786489233e-05*G0_19 - 0.000179573512906844*G0_20 - 3.42044786489227e-05*G0_21 - 0.00102613435946769*G0_22 + 0.0038993105659772*G0_23 - 0.00143658810325476*G0_24 - 0.00102613435946769*G0_25 + 0.00389931056597721*G0_26 - 0.00143658810325476*G0_27 - 0.00143658810325476*G0_28 - 0.00143658810325476*G0_29 - 0.000205226871893541*G0_30 - 0.00205226871893537*G0_31 - 0.00205226871893537*G0_32 + 0.0077986211319544*G0_33 + 0.00164181497514829*G0_34;
 
7427
    A[34] = -0.000538720538720522*G0_0 - 0.000538720538720536*G0_1 - 0.000538720538720534*G0_2 - 0.000538720538720538*G0_3 + 0.00109454331676553*G0_4 - 0.00102613435946769*G0_5 + 0.00109454331676554*G0_6 + 0.00109454331676554*G0_7 - 0.00102613435946769*G0_8 + 0.00109454331676554*G0_9 + 0.00109454331676553*G0_10 - 0.00102613435946769*G0_11 + 0.00109454331676553*G0_12 + 0.00109454331676553*G0_13 - 0.00102613435946768*G0_14 + 0.00109454331676553*G0_15 + 0.00109454331676553*G0_16 - 0.00102613435946769*G0_17 + 0.00109454331676554*G0_18 + 0.00109454331676553*G0_19 - 0.0010261343594677*G0_20 + 0.00109454331676554*G0_21 + 0.0016418149751483*G0_22 + 0.0016418149751483*G0_23 + 0.0016418149751483*G0_24 + 0.00164181497514829*G0_25 + 0.0016418149751483*G0_26 + 0.0016418149751483*G0_27 + 0.0016418149751483*G0_28 + 0.00164181497514829*G0_29 + 0.0016418149751483*G0_30 + 0.0016418149751483*G0_31 + 0.00164181497514829*G0_32 + 0.00164181497514829*G0_33 + 0.0262690396023728*G0_34;
 
7428
  }
 
7429
 
 
7430
};
 
7431
 
 
7432
/// This class defines the interface for the assembly of the global
 
7433
/// tensor corresponding to a form with r + n arguments, that is, a
 
7434
/// mapping
 
7435
///
 
7436
///     a : V1 x V2 x ... Vr x W1 x W2 x ... x Wn -> R
 
7437
///
 
7438
/// with arguments v1, v2, ..., vr, w1, w2, ..., wn. The rank r
 
7439
/// global tensor A is defined by
 
7440
///
 
7441
///     A = a(V1, V2, ..., Vr, w1, w2, ..., wn),
 
7442
///
 
7443
/// where each argument Vj represents the application to the
 
7444
/// sequence of basis functions of Vj and w1, w2, ..., wn are given
 
7445
/// fixed functions (coefficients).
 
7446
 
 
7447
class UFC_Poisson3D_4LinearForm: public ufc::form
 
7448
{
 
7449
public:
 
7450
 
 
7451
  /// Constructor
 
7452
  UFC_Poisson3D_4LinearForm() : ufc::form()
 
7453
  {
 
7454
    // Do nothing
 
7455
  }
 
7456
 
 
7457
  /// Destructor
 
7458
  virtual ~UFC_Poisson3D_4LinearForm()
 
7459
  {
 
7460
    // Do nothing
 
7461
  }
 
7462
 
 
7463
  /// Return a string identifying the form
 
7464
  virtual const char* signature() const
 
7465
  {
 
7466
    return "w0_a0[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34] | vi0[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34]*va0[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34]*dX(0)";
 
7467
  }
 
7468
 
 
7469
  /// Return the rank of the global tensor (r)
 
7470
  virtual unsigned int rank() const
 
7471
  {
 
7472
    return 1;
 
7473
  }
 
7474
 
 
7475
  /// Return the number of coefficients (n)
 
7476
  virtual unsigned int num_coefficients() const
 
7477
  {
 
7478
    return 1;
 
7479
  }
 
7480
 
 
7481
  /// Return the number of cell integrals
 
7482
  virtual unsigned int num_cell_integrals() const
 
7483
  {
 
7484
    return 1;
 
7485
  }
 
7486
  
 
7487
  /// Return the number of exterior facet integrals
 
7488
  virtual unsigned int num_exterior_facet_integrals() const
 
7489
  {
 
7490
    return 0;
 
7491
  }
 
7492
  
 
7493
  /// Return the number of interior facet integrals
 
7494
  virtual unsigned int num_interior_facet_integrals() const
 
7495
  {
 
7496
    return 0;
 
7497
  }
 
7498
    
 
7499
  /// Create a new finite element for argument function i
 
7500
  virtual ufc::finite_element* create_finite_element(unsigned int i) const
 
7501
  {
 
7502
    switch ( i )
 
7503
    {
 
7504
    case 0:
 
7505
      return new UFC_Poisson3D_4LinearForm_finite_element_0();
 
7506
      break;
 
7507
    case 1:
 
7508
      return new UFC_Poisson3D_4LinearForm_finite_element_1();
 
7509
      break;
 
7510
    }
 
7511
    return 0;
 
7512
  }
 
7513
  
 
7514
  /// Create a new dof map for argument function i
 
7515
  virtual ufc::dof_map* create_dof_map(unsigned int i) const
 
7516
  {
 
7517
    switch ( i )
 
7518
    {
 
7519
    case 0:
 
7520
      return new UFC_Poisson3D_4LinearForm_dof_map_0();
 
7521
      break;
 
7522
    case 1:
 
7523
      return new UFC_Poisson3D_4LinearForm_dof_map_1();
 
7524
      break;
 
7525
    }
 
7526
    return 0;
 
7527
  }
 
7528
 
 
7529
  /// Create a new cell integral on sub domain i
 
7530
  virtual ufc::cell_integral* create_cell_integral(unsigned int i) const
 
7531
  {
 
7532
    return new UFC_Poisson3D_4LinearForm_cell_integral_0();
 
7533
  }
 
7534
 
 
7535
  /// Create a new exterior facet integral on sub domain i
 
7536
  virtual ufc::exterior_facet_integral* create_exterior_facet_integral(unsigned int i) const
 
7537
  {
 
7538
    return 0;
 
7539
  }
 
7540
 
 
7541
  /// Create a new interior facet integral on sub domain i
 
7542
  virtual ufc::interior_facet_integral* create_interior_facet_integral(unsigned int i) const
 
7543
  {
 
7544
    return 0;
 
7545
  }
 
7546
 
 
7547
};
 
7548
 
 
7549
// DOLFIN wrappers
 
7550
 
 
7551
#include <dolfin/fem/Form.h>
 
7552
#include <dolfin/fem/FiniteElement.h>
 
7553
#include <dolfin/fem/DofMap.h>
 
7554
#include <dolfin/function/Coefficient.h>
 
7555
#include <dolfin/function/Function.h>
 
7556
#include <dolfin/function/FunctionSpace.h>
 
7557
 
 
7558
class Poisson3D_4BilinearFormFunctionSpace0 : public dolfin::FunctionSpace
 
7559
{
 
7560
public:
 
7561
 
 
7562
  Poisson3D_4BilinearFormFunctionSpace0(const dolfin::Mesh& mesh)
 
7563
    : dolfin::FunctionSpace(boost::shared_ptr<const dolfin::Mesh>(&mesh, dolfin::NoDeleter<const dolfin::Mesh>()),
 
7564
                            boost::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(boost::shared_ptr<ufc::finite_element>(new UFC_Poisson3D_4LinearForm_finite_element_1()))),
 
7565
                            boost::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(boost::shared_ptr<ufc::dof_map>(new UFC_Poisson3D_4LinearForm_dof_map_1()), mesh)))
 
7566
  {
 
7567
    // Do nothing
 
7568
  }
 
7569
 
 
7570
};
 
7571
 
 
7572
class Poisson3D_4BilinearFormFunctionSpace1 : public dolfin::FunctionSpace
 
7573
{
 
7574
public:
 
7575
 
 
7576
  Poisson3D_4BilinearFormFunctionSpace1(const dolfin::Mesh& mesh)
 
7577
    : dolfin::FunctionSpace(boost::shared_ptr<const dolfin::Mesh>(&mesh, dolfin::NoDeleter<const dolfin::Mesh>()),
 
7578
                            boost::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(boost::shared_ptr<ufc::finite_element>(new UFC_Poisson3D_4LinearForm_finite_element_1()))),
 
7579
                            boost::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(boost::shared_ptr<ufc::dof_map>(new UFC_Poisson3D_4LinearForm_dof_map_1()), mesh)))
 
7580
  {
 
7581
    // Do nothing
 
7582
  }
 
7583
 
 
7584
};
 
7585
 
 
7586
class Poisson3D_4LinearFormFunctionSpace0 : public dolfin::FunctionSpace
 
7587
{
 
7588
public:
 
7589
 
 
7590
  Poisson3D_4LinearFormFunctionSpace0(const dolfin::Mesh& mesh)
 
7591
    : dolfin::FunctionSpace(boost::shared_ptr<const dolfin::Mesh>(&mesh, dolfin::NoDeleter<const dolfin::Mesh>()),
 
7592
                            boost::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(boost::shared_ptr<ufc::finite_element>(new UFC_Poisson3D_4LinearForm_finite_element_1()))),
 
7593
                            boost::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(boost::shared_ptr<ufc::dof_map>(new UFC_Poisson3D_4LinearForm_dof_map_1()), mesh)))
 
7594
  {
 
7595
    // Do nothing
 
7596
  }
 
7597
 
 
7598
};
 
7599
 
 
7600
class Poisson3D_4LinearFormCoefficientSpace0 : public dolfin::FunctionSpace
 
7601
{
 
7602
public:
 
7603
 
 
7604
  Poisson3D_4LinearFormCoefficientSpace0(const dolfin::Mesh& mesh)
 
7605
    : dolfin::FunctionSpace(boost::shared_ptr<const dolfin::Mesh>(&mesh, dolfin::NoDeleter<const dolfin::Mesh>()),
 
7606
                            boost::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(boost::shared_ptr<ufc::finite_element>(new UFC_Poisson3D_4LinearForm_finite_element_1()))),
 
7607
                            boost::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(boost::shared_ptr<ufc::dof_map>(new UFC_Poisson3D_4LinearForm_dof_map_1()), mesh)))
 
7608
  {
 
7609
    // Do nothing
 
7610
  }
 
7611
 
 
7612
};
 
7613
 
 
7614
class Poisson3D_4TestSpace : public dolfin::FunctionSpace
 
7615
{
 
7616
public:
 
7617
 
 
7618
  Poisson3D_4TestSpace(const dolfin::Mesh& mesh)
 
7619
    : dolfin::FunctionSpace(boost::shared_ptr<const dolfin::Mesh>(&mesh, dolfin::NoDeleter<const dolfin::Mesh>()),
 
7620
                            boost::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(boost::shared_ptr<ufc::finite_element>(new UFC_Poisson3D_4LinearForm_finite_element_1()))),
 
7621
                            boost::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(boost::shared_ptr<ufc::dof_map>(new UFC_Poisson3D_4LinearForm_dof_map_1()), mesh)))
 
7622
  {
 
7623
    // Do nothing
 
7624
  }
 
7625
 
 
7626
};
 
7627
 
 
7628
class Poisson3D_4TrialSpace : public dolfin::FunctionSpace
 
7629
{
 
7630
public:
 
7631
 
 
7632
  Poisson3D_4TrialSpace(const dolfin::Mesh& mesh)
 
7633
    : dolfin::FunctionSpace(boost::shared_ptr<const dolfin::Mesh>(&mesh, dolfin::NoDeleter<const dolfin::Mesh>()),
 
7634
                            boost::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(boost::shared_ptr<ufc::finite_element>(new UFC_Poisson3D_4LinearForm_finite_element_1()))),
 
7635
                            boost::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(boost::shared_ptr<ufc::dof_map>(new UFC_Poisson3D_4LinearForm_dof_map_1()), mesh)))
 
7636
  {
 
7637
    // Do nothing
 
7638
  }
 
7639
 
 
7640
};
 
7641
 
 
7642
class Poisson3D_4CoefficientSpace : public dolfin::FunctionSpace
 
7643
{
 
7644
public:
 
7645
 
 
7646
  Poisson3D_4CoefficientSpace(const dolfin::Mesh& mesh)
 
7647
    : dolfin::FunctionSpace(boost::shared_ptr<const dolfin::Mesh>(&mesh, dolfin::NoDeleter<const dolfin::Mesh>()),
 
7648
                            boost::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(boost::shared_ptr<ufc::finite_element>(new UFC_Poisson3D_4LinearForm_finite_element_1()))),
 
7649
                            boost::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(boost::shared_ptr<ufc::dof_map>(new UFC_Poisson3D_4LinearForm_dof_map_1()), mesh)))
 
7650
  {
 
7651
    // Do nothing
 
7652
  }
 
7653
 
 
7654
};
 
7655
 
 
7656
class Poisson3D_4FunctionSpace : public dolfin::FunctionSpace
 
7657
{
 
7658
public:
 
7659
 
 
7660
  Poisson3D_4FunctionSpace(const dolfin::Mesh& mesh)
 
7661
    : dolfin::FunctionSpace(boost::shared_ptr<const dolfin::Mesh>(&mesh, dolfin::NoDeleter<const dolfin::Mesh>()),
 
7662
                            boost::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(boost::shared_ptr<ufc::finite_element>(new UFC_Poisson3D_4LinearForm_finite_element_1()))),
 
7663
                            boost::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(boost::shared_ptr<ufc::dof_map>(new UFC_Poisson3D_4LinearForm_dof_map_1()), mesh)))
 
7664
  {
 
7665
    // Do nothing
 
7666
  }
 
7667
 
 
7668
};
 
7669
 
 
7670
class Poisson3D_4BilinearForm : public dolfin::Form
 
7671
{
 
7672
public:
 
7673
 
 
7674
  // Create form on given function space(s)
 
7675
  Poisson3D_4BilinearForm(const dolfin::FunctionSpace& V0, const dolfin::FunctionSpace& V1) : dolfin::Form()
 
7676
  {
 
7677
    boost::shared_ptr<const dolfin::FunctionSpace> _V0(&V0, dolfin::NoDeleter<const dolfin::FunctionSpace>());
 
7678
    _function_spaces.push_back(_V0);
 
7679
    boost::shared_ptr<const dolfin::FunctionSpace> _V1(&V1, dolfin::NoDeleter<const dolfin::FunctionSpace>());
 
7680
    _function_spaces.push_back(_V1);
 
7681
 
 
7682
    _ufc_form = boost::shared_ptr<const ufc::form>(new UFC_Poisson3D_4BilinearForm());
 
7683
  }
 
7684
 
 
7685
  // Create form on given function space(s) (shared data)
 
7686
  Poisson3D_4BilinearForm(boost::shared_ptr<const dolfin::FunctionSpace> V0, boost::shared_ptr<const dolfin::FunctionSpace> V1) : dolfin::Form()
 
7687
  {
 
7688
    _function_spaces.push_back(V0);
 
7689
    _function_spaces.push_back(V1);
 
7690
 
 
7691
    _ufc_form = boost::shared_ptr<const ufc::form>(new UFC_Poisson3D_4BilinearForm());
 
7692
  }
 
7693
 
 
7694
  // Destructor
 
7695
  ~Poisson3D_4BilinearForm() {}
 
7696
 
 
7697
};
 
7698
 
 
7699
class Poisson3D_4LinearFormCoefficient0 : public dolfin::Coefficient
 
7700
{
 
7701
public:
 
7702
 
 
7703
  // Constructor
 
7704
  Poisson3D_4LinearFormCoefficient0(dolfin::Form& form) : dolfin::Coefficient(form) {}
 
7705
 
 
7706
  // Destructor  
 
7707
  ~Poisson3D_4LinearFormCoefficient0() {}
 
7708
 
 
7709
  // Attach function to coefficient
 
7710
  const Poisson3D_4LinearFormCoefficient0& operator= (dolfin::Function& v)
 
7711
  {
 
7712
    attach(v);
 
7713
    return *this;
 
7714
  }
 
7715
 
 
7716
  /// Create function space for coefficient
 
7717
  const dolfin::FunctionSpace* create_function_space() const
 
7718
  {
 
7719
    return new Poisson3D_4LinearFormCoefficientSpace0(form.mesh());
 
7720
  }
 
7721
  
 
7722
  /// Return coefficient number
 
7723
  dolfin::uint number() const
 
7724
  {
 
7725
    return 0;
 
7726
  }
 
7727
  
 
7728
  /// Return coefficient name
 
7729
  virtual std::string name() const
 
7730
  {
 
7731
    return "f";
 
7732
  }
 
7733
  
 
7734
};
 
7735
class Poisson3D_4LinearForm : public dolfin::Form
 
7736
{
 
7737
public:
 
7738
 
 
7739
  // Create form on given function space(s)
 
7740
  Poisson3D_4LinearForm(const dolfin::FunctionSpace& V0) : dolfin::Form(), f(*this)
 
7741
  {
 
7742
    boost::shared_ptr<const dolfin::FunctionSpace> _V0(&V0, dolfin::NoDeleter<const dolfin::FunctionSpace>());
 
7743
    _function_spaces.push_back(_V0);
 
7744
 
 
7745
    _coefficients.push_back(boost::shared_ptr<const dolfin::Function>(static_cast<const dolfin::Function*>(0)));
 
7746
 
 
7747
    _ufc_form = boost::shared_ptr<const ufc::form>(new UFC_Poisson3D_4LinearForm());
 
7748
  }
 
7749
 
 
7750
  // Create form on given function space(s) (shared data)
 
7751
  Poisson3D_4LinearForm(boost::shared_ptr<const dolfin::FunctionSpace> V0) : dolfin::Form(), f(*this)
 
7752
  {
 
7753
    _function_spaces.push_back(V0);
 
7754
 
 
7755
    _coefficients.push_back(boost::shared_ptr<const dolfin::Function>(static_cast<const dolfin::Function*>(0)));
 
7756
 
 
7757
    _ufc_form = boost::shared_ptr<const ufc::form>(new UFC_Poisson3D_4LinearForm());
 
7758
  }
 
7759
 
 
7760
  // Create form on given function space(s) with given coefficient(s)
 
7761
  Poisson3D_4LinearForm(const dolfin::FunctionSpace& V0, dolfin::Function& w0) : dolfin::Form(), f(*this)
 
7762
  {
 
7763
    boost::shared_ptr<const dolfin::FunctionSpace> _V0(&V0, dolfin::NoDeleter<const dolfin::FunctionSpace>());
 
7764
    _function_spaces.push_back(_V0);
 
7765
 
 
7766
    _coefficients.push_back(boost::shared_ptr<const dolfin::Function>(static_cast<const dolfin::Function*>(0)));
 
7767
 
 
7768
    this->f = w0;
 
7769
 
 
7770
    _ufc_form = boost::shared_ptr<const ufc::form>(new UFC_Poisson3D_4LinearForm());
 
7771
  }
 
7772
 
 
7773
  // Create form on given function space(s) with given coefficient(s) (shared data)
 
7774
  Poisson3D_4LinearForm(boost::shared_ptr<const dolfin::FunctionSpace> V0, dolfin::Function& w0) : dolfin::Form(), f(*this)
 
7775
  {
 
7776
    _function_spaces.push_back(V0);
 
7777
 
 
7778
    _coefficients.push_back(boost::shared_ptr<const dolfin::Function>(static_cast<const dolfin::Function*>(0)));
 
7779
 
 
7780
    this->f = w0;
 
7781
 
 
7782
    _ufc_form = boost::shared_ptr<const ufc::form>(new UFC_Poisson3D_4LinearForm());
 
7783
  }
 
7784
 
 
7785
  // Destructor
 
7786
  ~Poisson3D_4LinearForm() {}
 
7787
 
 
7788
  // Coefficients
 
7789
  Poisson3D_4LinearFormCoefficient0 f;
 
7790
 
 
7791
};
 
7792
 
 
7793
#endif