FEAT 3
Finite Element Analysis Toolbox
Loading...
Searching...
No Matches
3d_p1_unrolled.hpp
1// FEAT3: Finite Element Analysis Toolbox, Version 3
2// Copyright (C) 2010 by Stefan Turek & the FEAT group
3// FEAT3 is released under the GNU General Public License version 3,
4// see the file 'copyright.txt' in the top level directory for details.
5
6#pragma once
7
9#include <kernel/shape.hpp>
10#include <kernel/meshopt/base.hpp>
11#include <kernel/meshopt/rumpf_functional.hpp>
12
13namespace FEAT
14{
15 namespace Meshopt
16 {
18
25 template<typename DataType_>
26 class RumpfFunctionalUnrolled<DataType_,
27 Trafo::Standard::Mapping<Geometry::ConformalMesh<Shape::Simplex<3>, 3, DataType_>>> :
28 public RumpfFunctionalBase<DataType_>
29 {
30 public:
32 typedef RumpfFunctionalBase<DataType_> BaseClass;
33
35 typedef DataType_ DataType;
37 typedef Shape::Simplex<3> ShapeType;
39 typedef Trafo::Standard::Mapping<Geometry::ConformalMesh<ShapeType, 3, DataType_>> TrafoType;
41 static constexpr int world_dim = TrafoType::world_dim;
43 static constexpr int shape_dim = ShapeType::dimension;
45 typedef typename Intern::TrafoFE<TrafoType>::Space TrafoSpace;
46
48 typedef Tiny::Matrix<DataType_, Shape::FaceTraits<ShapeType,0>::count, world_dim> Tx;
50 typedef Tiny::Vector<DataType_, Shape::FaceTraits<ShapeType,0>::count*world_dim> Tgradh;
51
53 typedef Tiny::Matrix<DataType_, shape_dim, world_dim> TgradR;
54
56 typedef typename TrafoType::template Evaluator<ShapeType, DataType>::Type TrafoEvaluator;
58 typedef typename TrafoSpace::template Evaluator<TrafoEvaluator>::Type SpaceEvaluator;
59
60 private:
62 const int _exponent_det;
64 const bool _compute_frobenius;
66 const bool _compute_cof;
68 const bool _compute_det;
69
70 public:
74 explicit RumpfFunctionalUnrolled(
75 const DataType fac_frobenius_,
76 const DataType fac_det_,
77 const DataType fac_cof_,
78 const DataType fac_reg_,
79 const int exponent_det_) :
80 BaseClass( fac_frobenius_,
81 fac_det_,
82 fac_det_*(Math::sqrt( Math::sqr(fac_reg_) + DataType(1) )*Math::pow( DataType(1) + Math::sqrt(Math::sqr(fac_reg_) + DataType(1)), DataType(exponent_det_))),
83 fac_cof_,
84 fac_reg_),
85 _exponent_det(exponent_det_),
86 _compute_frobenius( (fac_frobenius_ > DataType(0)) ),
87 _compute_cof( (fac_cof_ > 0) ),
88 _compute_det( (fac_det_ > 0) )
89 {
90 XASSERTM(exponent_det_ == 1 || exponent_det_ == 2,"exponent_det must be 1 or 2!");
91 }
92
98 static String name()
99 {
100 return "RumpfFunctionalUnrolled<"+ShapeType::name()+">";
101 }
102
106 String info() const
107 {
108 const Index pad_width(30);
109 return name() + ":" + BaseClass::info() + String("\nexponent_det").pad_back(pad_width, '.')
110 + String(": ") + stringify(_exponent_det);
111 }
112
116 void eval_fval_grad(DataType& fval, Tx& grad, const TgradR& DOXY(mat_tensor), const TrafoEvaluator& DOXY(trafo_eval), const SpaceEvaluator& DOXY(space_eval), const Tx& x, const DataType& h)
117 {
118 fval = DataType(0);
119 grad.format(DataType(0));
120
121 DataType fval_frobenius(0);
122 DataType fval_cof(0);
123 DataType fval_det(0);
124 DataType fval_rec_det(0);
125
126 if(_compute_frobenius)
127 {
128 fval_frobenius = this->_fac_frobenius*compute_frobenius_part(x,h);
129 add_grad_frobenius_part(grad, x, h);
130 }
131
132 if(_compute_cof)
133 {
134 fval_cof = this->_fac_cof*compute_cof_part(x,h);
135 add_grad_cof_part(grad, x, h);
136 }
137
138 if(_compute_det)
139 {
140 if(_exponent_det == 1)
141 {
142 fval_det = this->_fac_det*compute_det_1_part(x,h);
143 fval_rec_det = this->_fac_rec_det*compute_rec_det_1_part(x,h);
144 add_grad_det_1_part(grad, x, h);
145 add_grad_rec_det_1_part(grad, x, h);
146 }
147 else
148 {
149 fval_det = this->_fac_det*compute_det_2_part(x,h);
150 fval_rec_det = this->_fac_rec_det*compute_rec_det_2_part(x,h);
151 add_grad_det_2_part(grad, x, h);
152 add_grad_rec_det_2_part(grad, x, h);
153 }
154 }
155
156 fval = fval_frobenius + fval_cof + fval_det + fval_rec_det;
157
158 //std::cout << std::scientific;
159 //std::cout << std::setprecision(16);
160
161 //Tx grad_frobenius(DataType(0));
162 //Tx grad_cof(DataType(0));
163 //Tx grad_cof1(DataType(0));
164 //Tx grad_det(DataType(0));
165 //Tx grad_rec_det(DataType(0));
166
167 //add_grad_frobenius_part(grad_frobenius, x, h);
168 //add_grad_cof_part(grad_cof, x, h);
169 //add_grad_cof_part_1(grad_cof1, x, h);
170 //add_grad_det_1_part(grad_det, x, h);
171 //add_grad_rec_det_1_part(grad_rec_det, x, h);
172
173 //std::cout << "grad_frobenius\n" << grad_frobenius << "\n";
174 //std::cout << "grad_cof\n" << grad_cof << "\n";
175 //std::cout << "grad_cof1\n" << grad_cof1<< "\n";
176 //std::cout << "grad_cof2\n" << grad_cof-grad_cof1<< "\n";
177 //std::cout << "grad_det\n" << grad_det << "\n";
178 //std::cout << "grad_rec_det\n" << grad_rec_det << "\n";
179 //
180 //std::cout << "x = \n" << x << "\n";
181 //std::cout << "h = \n" << h << "\n";
182 //std::cout << "fval = " << stringify_fp_sci(fval) << ", "
183 //<< stringify_fp_sci(fval_frobenius)<< ", "
184 //<< stringify_fp_sci(fval_cof)<< ", "
185 //<< stringify_fp_sci(fval_det) << ", "
186 //<< stringify_fp_sci(fval_rec_det) << "\n";
187
188 //std::cout << "local grad \n" << grad << "\n";
189 }
190
191 void eval_fval_cellwise(DataType& fval, const TgradR& DOXY(mat_tensor), const TrafoEvaluator& DOXY(trafo_eval), const SpaceEvaluator& DOXY(space_eval), const Tx& x, const DataType& h, DataType& fval_frobenius, DataType& fval_cof, DataType& fval_det)
192 {
193 fval = DataType(0);
194 fval_frobenius = DataType(0);
195 fval_cof = DataType(0);
196 fval_det = DataType(0);
197
198 if(_compute_frobenius)
199 {
200 fval_frobenius = this->_fac_frobenius*compute_frobenius_part(x,h);
201 }
202
203 if(_compute_cof)
204 {
205 fval_cof = this->_fac_cof*compute_cof_part(x,h);
206 }
207
208 if(_compute_det)
209 {
210 if(_exponent_det == 1)
211 {
212 fval_det = this->_fac_det*compute_det_1_part(x,h);
213 fval_det += this->_fac_rec_det*compute_rec_det_1_part(x,h);
214 }
215 else
216 {
217 fval_det = this->_fac_det*compute_det_2_part(x,h);
218 fval_det += this->_fac_rec_det*compute_rec_det_2_part(x,h);
219 }
220 }
221
222 fval = fval_frobenius + fval_cof + fval_det;
223
224 //std::cout << "fval = " << stringify_fp_sci(fval) << ", " << stringify_fp_sci(fval_frobenius)<< ", " << stringify_fp_sci(fval_det) << ", " << stringify_fp_sci(fval_rec_det) << "\n";
225
226 }
227
231 void NOINLINE add_grad_h_part(Tx& grad, const TgradR& DOXY(mat_tensor), const TrafoEvaluator& DOXY(trafo_eval), const SpaceEvaluator& DOXY(space_eval), const Tx& x, const DataType& h, const Tgradh& grad_h)
232 {
233
234 DataType frobenius_der_h(0);
235 DataType cof_der_h(0);
236 DataType det_der_h(0);
237 DataType rec_det_der_h(0);
238
239 if(_compute_frobenius)
240 {
241 frobenius_der_h = this->_fac_frobenius*compute_frobenius_der_h_part(x,h);
242 }
243
244 if(_compute_cof)
245 {
246 cof_der_h = this->_fac_cof*compute_cof_der_h_part(x,h);
247 }
248
249 if(_compute_det)
250 {
251 if(_exponent_det == 1)
252 {
253 det_der_h = this->_fac_det * compute_det_1_der_h_part(x,h);
254 rec_det_der_h = this->_fac_rec_det * compute_rec_det_1_der_h_part(x,h);
255 }
256 else
257 {
258 det_der_h = this->_fac_det * compute_det_2_der_h_part(x,h);
259 rec_det_der_h = this->_fac_rec_det * compute_rec_det_2_der_h_part(x,h);
260 }
261
262 }
263
264 DataType der_h(frobenius_der_h + cof_der_h + det_der_h + rec_det_der_h);
265
266 //std::cout << "norm_der_h = " << stringify_fp_sci(this->_fac_frobenius*norm_der_h) << "\n" <<
267 // " det_der_h = " << stringify_fp_sci(this->_fac_det*det_der_h) << "\n" <<
268 // " rec_det_der_h = " << stringify_fp_sci(this->_fac_rec_det*rec_det_der_h) << "\n";
269 //std::cout << "full_der_h " << stringify_fp_sci(der_h) << "\n";
270
271 for(int i(0); i < Tx::m; ++i)
272 {
273 for(int d(0); d < Tx::n; ++d)
274 {
275 grad(i,d) += der_h*grad_h(i*Tx::n + d);
276 }
277 }
278 } // add_grad_h_part
279
280
284 DataType NOINLINE compute_frobenius_part(const Tx& x, const DataType& h)
285 {
286 DataType fval_frobenius_part(0);
287 fval_frobenius_part = Math::pow(DataType(6)*h*h-DataType(3)*Math::sqr(x(0,0))+DataType(2)*x(0,0)*x(1,0)+DataType(2)*x(0,0)*x(2,0)+DataType(2)*x(0,0)*x(3,0)-DataType(3)*Math::sqr(x(0,1))+DataType(2)*x(0,1)*x(1,1)+DataType(2)*x(0,1)*x(2,1)+DataType(2)*x(0,1)*x(3,1)-DataType(3)*Math::sqr(x(0,2))+DataType(2)*x(0,2)*x(1,2)+DataType(2)*x(0,2)*x(2,2)+DataType(2)*x(0,2)*x(3,2)-DataType(3)*Math::sqr(x(1,0))+DataType(2)*x(1,0)*x(2,0)+DataType(2)*x(1,0)*x(3,0)-DataType(3)*Math::sqr(x(1,1))+DataType(2)*x(1,1)*x(2,1)+DataType(2)*x(1,1)*x(3,1)-DataType(3)*Math::sqr(x(1,2))+DataType(2)*x(1,2)*x(2,2)+DataType(2)*x(1,2)*x(3,2)-DataType(3)*Math::sqr(x(2,0))+DataType(2)*x(2,0)*x(3,0)-DataType(3)*Math::sqr(x(2,1))+DataType(2)*x(2,1)*x(3,1)-DataType(3)*Math::sqr(x(2,2))+DataType(2)*x(2,2)*x(3,2)-DataType(3)*Math::sqr(x(3,0))-DataType(3)*Math::sqr(x(3,1))-DataType(3)*Math::sqr(x(3,2)),DataType(2))/(h*h*h*h)/DataType(4);
288 return fval_frobenius_part;
289 }
290
294 DataType NOINLINE compute_cof_part(const Tx& x, const DataType& h)
295 {
296 DataType fval_cof_part (0);
297 fval_cof_part = Math::pow(DataType(3)*Math::pow(h,DataType(4))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,2))+DataType(4)*x(0,0)*x(0,1)*x(1,0)*x(1,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(2,0)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(2,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(2,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(3,0)*x(3,1)+DataType(4)*x(0,0)*x(0,2)*x(1,0)*x(1,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(2,0)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(2,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(2,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(2,1)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(3,1)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(2,2)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(3,2)+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,2))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(3,0)-DataType(2)*x(0,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(1,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(3,0)-DataType(2)*x(0,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(0,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(0,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(0,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,2))+DataType(4)*x(0,1)*x(0,2)*x(1,1)*x(1,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(2,1)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(2,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(2,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(3,1)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(2,0)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(3,0)-DataType(2)*x(0,1)*x(1,0)*x(2,0)*x(2,1)-DataType(2)*x(0,1)*x(1,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(2,2)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(3,2)+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,2))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(3,1)-DataType(2)*x(0,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(0,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(0,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(0,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(3,2)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(2,0)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(3,0)-DataType(2)*x(0,2)*x(1,0)*x(2,0)*x(2,2)-DataType(2)*x(0,2)*x(1,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(3,2)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(2,1)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(3,1)-DataType(2)*x(0,2)*x(1,1)*x(2,1)*x(2,2)-DataType(2)*x(0,2)*x(1,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,1))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(0,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(0,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(0,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(0,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,2))+DataType(4)*x(1,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(1,0)*x(1,1)*x(2,0)*x(3,1)-DataType(2)*x(1,0)*x(1,1)*x(2,1)*x(3,0)+DataType(4)*x(1,0)*x(1,1)*x(3,0)*x(3,1)+DataType(4)*x(1,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(1,0)*x(1,2)*x(2,0)*x(3,2)-DataType(2)*x(1,0)*x(1,2)*x(2,2)*x(3,0)+DataType(4)*x(1,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(1,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(1,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(1,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(1,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(1,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(1,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,2))+DataType(4)*x(1,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(1,1)*x(1,2)*x(2,1)*x(3,2)-DataType(2)*x(1,1)*x(1,2)*x(2,2)*x(3,1)+DataType(4)*x(1,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(1,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(1,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(1,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(1,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(1,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(1,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,1))+DataType(2)*x(1,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(1,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(1,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(1,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(1,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(1,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,2))+DataType(4)*x(2,0)*x(2,1)*x(3,0)*x(3,1)+DataType(4)*x(2,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,2))+DataType(4)*x(2,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,1)),DataType(2))*Math::pow(h,-DataType(8));
298 return fval_cof_part ;
299 }
300
304 DataType NOINLINE compute_det_1_part( const Tx& x, const DataType& h)
305 {
306 DataType fval_det_1_part(0);
307 fval_det_1_part = -Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3);
308 return fval_det_1_part;
309 }
313 DataType NOINLINE compute_det_2_part( const Tx& x, const DataType& h)
314 {
315 DataType fval_det_2_part(0);
316 fval_det_2_part = DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h);
317 return fval_det_2_part;
318 }
319
323 DataType NOINLINE compute_rec_det_1_part( const Tx& x, const DataType& h)
324 {
325 DataType fval_rec_det_1_part(0);
326 fval_rec_det_1_part = DataType(1)/(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)));
327 return fval_rec_det_1_part;
328 }
329
333 DataType NOINLINE compute_rec_det_2_part( const Tx& x, const DataType& h)
334 {
335 DataType fval_rec_det_2_part(0);
336 fval_rec_det_2_part = Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(2));
337 return fval_rec_det_2_part;
338 }
342 DataType NOINLINE compute_frobenius_der_h_part(const Tx& x, const DataType& h)
343 {
344 DataType frobenius_der_h_part(0);
345 frobenius_der_h_part = DataType(6)*(DataType(6)*h*h-DataType(3)*Math::sqr(x(0,0))+DataType(2)*x(0,0)*x(1,0)+DataType(2)*x(0,0)*x(2,0)+DataType(2)*x(0,0)*x(3,0)-DataType(3)*Math::sqr(x(0,1))+DataType(2)*x(0,1)*x(1,1)+DataType(2)*x(0,1)*x(2,1)+DataType(2)*x(0,1)*x(3,1)-DataType(3)*Math::sqr(x(0,2))+DataType(2)*x(0,2)*x(1,2)+DataType(2)*x(0,2)*x(2,2)+DataType(2)*x(0,2)*x(3,2)-DataType(3)*Math::sqr(x(1,0))+DataType(2)*x(1,0)*x(2,0)+DataType(2)*x(1,0)*x(3,0)-DataType(3)*Math::sqr(x(1,1))+DataType(2)*x(1,1)*x(2,1)+DataType(2)*x(1,1)*x(3,1)-DataType(3)*Math::sqr(x(1,2))+DataType(2)*x(1,2)*x(2,2)+DataType(2)*x(1,2)*x(3,2)-DataType(3)*Math::sqr(x(2,0))+DataType(2)*x(2,0)*x(3,0)-DataType(3)*Math::sqr(x(2,1))+DataType(2)*x(2,1)*x(3,1)-DataType(3)*Math::sqr(x(2,2))+DataType(2)*x(2,2)*x(3,2)-DataType(3)*Math::sqr(x(3,0))-DataType(3)*Math::sqr(x(3,1))-DataType(3)*Math::sqr(x(3,2)))/(h*h*h)-Math::pow(DataType(6)*h*h-DataType(3)*Math::sqr(x(0,0))+DataType(2)*x(0,0)*x(1,0)+DataType(2)*x(0,0)*x(2,0)+DataType(2)*x(0,0)*x(3,0)-DataType(3)*Math::sqr(x(0,1))+DataType(2)*x(0,1)*x(1,1)+DataType(2)*x(0,1)*x(2,1)+DataType(2)*x(0,1)*x(3,1)-DataType(3)*Math::sqr(x(0,2))+DataType(2)*x(0,2)*x(1,2)+DataType(2)*x(0,2)*x(2,2)+DataType(2)*x(0,2)*x(3,2)-DataType(3)*Math::sqr(x(1,0))+DataType(2)*x(1,0)*x(2,0)+DataType(2)*x(1,0)*x(3,0)-DataType(3)*Math::sqr(x(1,1))+DataType(2)*x(1,1)*x(2,1)+DataType(2)*x(1,1)*x(3,1)-DataType(3)*Math::sqr(x(1,2))+DataType(2)*x(1,2)*x(2,2)+DataType(2)*x(1,2)*x(3,2)-DataType(3)*Math::sqr(x(2,0))+DataType(2)*x(2,0)*x(3,0)-DataType(3)*Math::sqr(x(2,1))+DataType(2)*x(2,1)*x(3,1)-DataType(3)*Math::sqr(x(2,2))+DataType(2)*x(2,2)*x(3,2)-DataType(3)*Math::sqr(x(3,0))-DataType(3)*Math::sqr(x(3,1))-DataType(3)*Math::sqr(x(3,2)),DataType(2))/(h*h*h*h*h);
346 return frobenius_der_h_part;
347 }
348
352 DataType NOINLINE compute_cof_der_h_part(const Tx& x, const DataType& h)
353 {
354 DataType cof_der_h_part (0);
355 cof_der_h_part = DataType(24)*(DataType(3)*Math::pow(h,DataType(4))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,2))+DataType(4)*x(0,0)*x(0,1)*x(1,0)*x(1,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(2,0)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(2,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(2,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(3,0)*x(3,1)+DataType(4)*x(0,0)*x(0,2)*x(1,0)*x(1,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(2,0)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(2,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(2,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(2,1)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(3,1)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(2,2)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(3,2)+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,2))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(3,0)-DataType(2)*x(0,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(1,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(3,0)-DataType(2)*x(0,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(0,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(0,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(0,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,2))+DataType(4)*x(0,1)*x(0,2)*x(1,1)*x(1,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(2,1)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(2,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(2,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(3,1)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(2,0)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(3,0)-DataType(2)*x(0,1)*x(1,0)*x(2,0)*x(2,1)-DataType(2)*x(0,1)*x(1,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(2,2)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(3,2)+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,2))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(3,1)-DataType(2)*x(0,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(0,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(0,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(0,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(3,2)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(2,0)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(3,0)-DataType(2)*x(0,2)*x(1,0)*x(2,0)*x(2,2)-DataType(2)*x(0,2)*x(1,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(3,2)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(2,1)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(3,1)-DataType(2)*x(0,2)*x(1,1)*x(2,1)*x(2,2)-DataType(2)*x(0,2)*x(1,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,1))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(0,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(0,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(0,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(0,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,2))+DataType(4)*x(1,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(1,0)*x(1,1)*x(2,0)*x(3,1)-DataType(2)*x(1,0)*x(1,1)*x(2,1)*x(3,0)+DataType(4)*x(1,0)*x(1,1)*x(3,0)*x(3,1)+DataType(4)*x(1,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(1,0)*x(1,2)*x(2,0)*x(3,2)-DataType(2)*x(1,0)*x(1,2)*x(2,2)*x(3,0)+DataType(4)*x(1,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(1,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(1,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(1,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(1,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(1,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(1,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,2))+DataType(4)*x(1,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(1,1)*x(1,2)*x(2,1)*x(3,2)-DataType(2)*x(1,1)*x(1,2)*x(2,2)*x(3,1)+DataType(4)*x(1,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(1,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(1,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(1,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(1,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(1,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(1,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,1))+DataType(2)*x(1,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(1,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(1,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(1,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(1,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(1,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,2))+DataType(4)*x(2,0)*x(2,1)*x(3,0)*x(3,1)+DataType(4)*x(2,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,2))+DataType(4)*x(2,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,1)))/(h*h*h*h*h)-DataType(8)*Math::pow(DataType(3)*Math::pow(h,DataType(4))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,2))+DataType(4)*x(0,0)*x(0,1)*x(1,0)*x(1,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(2,0)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(2,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(2,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(3,0)*x(3,1)+DataType(4)*x(0,0)*x(0,2)*x(1,0)*x(1,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(2,0)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(2,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(2,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(2,1)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(3,1)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(2,2)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(3,2)+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,2))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(3,0)-DataType(2)*x(0,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(1,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(3,0)-DataType(2)*x(0,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(0,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(0,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(0,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,2))+DataType(4)*x(0,1)*x(0,2)*x(1,1)*x(1,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(2,1)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(2,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(2,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(3,1)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(2,0)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(3,0)-DataType(2)*x(0,1)*x(1,0)*x(2,0)*x(2,1)-DataType(2)*x(0,1)*x(1,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(2,2)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(3,2)+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,2))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(3,1)-DataType(2)*x(0,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(0,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(0,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(0,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(3,2)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(2,0)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(3,0)-DataType(2)*x(0,2)*x(1,0)*x(2,0)*x(2,2)-DataType(2)*x(0,2)*x(1,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(3,2)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(2,1)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(3,1)-DataType(2)*x(0,2)*x(1,1)*x(2,1)*x(2,2)-DataType(2)*x(0,2)*x(1,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,1))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(0,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(0,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(0,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(0,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,2))+DataType(4)*x(1,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(1,0)*x(1,1)*x(2,0)*x(3,1)-DataType(2)*x(1,0)*x(1,1)*x(2,1)*x(3,0)+DataType(4)*x(1,0)*x(1,1)*x(3,0)*x(3,1)+DataType(4)*x(1,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(1,0)*x(1,2)*x(2,0)*x(3,2)-DataType(2)*x(1,0)*x(1,2)*x(2,2)*x(3,0)+DataType(4)*x(1,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(1,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(1,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(1,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(1,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(1,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(1,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,2))+DataType(4)*x(1,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(1,1)*x(1,2)*x(2,1)*x(3,2)-DataType(2)*x(1,1)*x(1,2)*x(2,2)*x(3,1)+DataType(4)*x(1,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(1,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(1,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(1,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(1,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(1,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(1,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,1))+DataType(2)*x(1,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(1,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(1,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(1,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(1,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(1,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,2))+DataType(4)*x(2,0)*x(2,1)*x(3,0)*x(3,1)+DataType(4)*x(2,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,2))+DataType(4)*x(2,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,1)),DataType(2))*Math::pow(h,-DataType(9));
356 return cof_der_h_part ;
357 }
358
362 DataType NOINLINE compute_det_1_der_h_part( const Tx& x, const DataType& h)
363 {
364 DataType det_1_der_h_part(0);
365 det_1_der_h_part = Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h);
366 return det_1_der_h_part;
367 }
371 DataType NOINLINE compute_det_2_der_h_part( const Tx& x, const DataType& h)
372 {
373 DataType det_2_der_h_part(0);
374 det_2_der_h_part = -DataType(12)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))*Math::pow(h,-DataType(7));
375 return det_2_der_h_part;
376 }
377
381 DataType NOINLINE compute_rec_det_1_der_h_part( const Tx& x, const DataType& h)
382 {
383 DataType rec_det_1_der_h_part(0);
384 rec_det_1_der_h_part = -Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(2))*(Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h)-DataType(6)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))*Math::pow(h,-DataType(7)));
385 return rec_det_1_der_h_part;
386 }
387
391 DataType NOINLINE compute_rec_det_2_der_h_part( const Tx& x, const DataType& h)
392 {
393 DataType rec_det_2_der_h_part(0);
394 rec_det_2_der_h_part = -DataType(2)*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(3))*(Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h)-DataType(6)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))*Math::pow(h,-DataType(7)));
395 return rec_det_2_der_h_part;
396 }
397
401 void NOINLINE add_grad_frobenius_part(Tx& grad_frobenius_part, const Tx& x, const DataType& h)
402 {
403 grad_frobenius_part(0,0) += this->_fac_frobenius*(DataType(6)*h*h-DataType(3)*Math::sqr(x(0,0))+DataType(2)*x(0,0)*x(1,0)+DataType(2)*x(0,0)*x(2,0)+DataType(2)*x(0,0)*x(3,0)-DataType(3)*Math::sqr(x(0,1))+DataType(2)*x(0,1)*x(1,1)+DataType(2)*x(0,1)*x(2,1)+DataType(2)*x(0,1)*x(3,1)-DataType(3)*Math::sqr(x(0,2))+DataType(2)*x(0,2)*x(1,2)+DataType(2)*x(0,2)*x(2,2)+DataType(2)*x(0,2)*x(3,2)-DataType(3)*Math::sqr(x(1,0))+DataType(2)*x(1,0)*x(2,0)+DataType(2)*x(1,0)*x(3,0)-DataType(3)*Math::sqr(x(1,1))+DataType(2)*x(1,1)*x(2,1)+DataType(2)*x(1,1)*x(3,1)-DataType(3)*Math::sqr(x(1,2))+DataType(2)*x(1,2)*x(2,2)+DataType(2)*x(1,2)*x(3,2)-DataType(3)*Math::sqr(x(2,0))+DataType(2)*x(2,0)*x(3,0)-DataType(3)*Math::sqr(x(2,1))+DataType(2)*x(2,1)*x(3,1)-DataType(3)*Math::sqr(x(2,2))+DataType(2)*x(2,2)*x(3,2)-DataType(3)*Math::sqr(x(3,0))-DataType(3)*Math::sqr(x(3,1))-DataType(3)*Math::sqr(x(3,2)))/(h*h*h*h)*(-DataType(6)*x(0,0)+DataType(2)*x(1,0)+DataType(2)*x(2,0)+DataType(2)*x(3,0))/DataType(2);
404
405 grad_frobenius_part(0,1) += this->_fac_frobenius*(DataType(6)*h*h-DataType(3)*Math::sqr(x(0,0))+DataType(2)*x(0,0)*x(1,0)+DataType(2)*x(0,0)*x(2,0)+DataType(2)*x(0,0)*x(3,0)-DataType(3)*Math::sqr(x(0,1))+DataType(2)*x(0,1)*x(1,1)+DataType(2)*x(0,1)*x(2,1)+DataType(2)*x(0,1)*x(3,1)-DataType(3)*Math::sqr(x(0,2))+DataType(2)*x(0,2)*x(1,2)+DataType(2)*x(0,2)*x(2,2)+DataType(2)*x(0,2)*x(3,2)-DataType(3)*Math::sqr(x(1,0))+DataType(2)*x(1,0)*x(2,0)+DataType(2)*x(1,0)*x(3,0)-DataType(3)*Math::sqr(x(1,1))+DataType(2)*x(1,1)*x(2,1)+DataType(2)*x(1,1)*x(3,1)-DataType(3)*Math::sqr(x(1,2))+DataType(2)*x(1,2)*x(2,2)+DataType(2)*x(1,2)*x(3,2)-DataType(3)*Math::sqr(x(2,0))+DataType(2)*x(2,0)*x(3,0)-DataType(3)*Math::sqr(x(2,1))+DataType(2)*x(2,1)*x(3,1)-DataType(3)*Math::sqr(x(2,2))+DataType(2)*x(2,2)*x(3,2)-DataType(3)*Math::sqr(x(3,0))-DataType(3)*Math::sqr(x(3,1))-DataType(3)*Math::sqr(x(3,2)))/(h*h*h*h)*(-DataType(6)*x(0,1)+DataType(2)*x(1,1)+DataType(2)*x(2,1)+DataType(2)*x(3,1))/DataType(2);
406
407 grad_frobenius_part(0,2) += this->_fac_frobenius*(DataType(6)*h*h-DataType(3)*Math::sqr(x(0,0))+DataType(2)*x(0,0)*x(1,0)+DataType(2)*x(0,0)*x(2,0)+DataType(2)*x(0,0)*x(3,0)-DataType(3)*Math::sqr(x(0,1))+DataType(2)*x(0,1)*x(1,1)+DataType(2)*x(0,1)*x(2,1)+DataType(2)*x(0,1)*x(3,1)-DataType(3)*Math::sqr(x(0,2))+DataType(2)*x(0,2)*x(1,2)+DataType(2)*x(0,2)*x(2,2)+DataType(2)*x(0,2)*x(3,2)-DataType(3)*Math::sqr(x(1,0))+DataType(2)*x(1,0)*x(2,0)+DataType(2)*x(1,0)*x(3,0)-DataType(3)*Math::sqr(x(1,1))+DataType(2)*x(1,1)*x(2,1)+DataType(2)*x(1,1)*x(3,1)-DataType(3)*Math::sqr(x(1,2))+DataType(2)*x(1,2)*x(2,2)+DataType(2)*x(1,2)*x(3,2)-DataType(3)*Math::sqr(x(2,0))+DataType(2)*x(2,0)*x(3,0)-DataType(3)*Math::sqr(x(2,1))+DataType(2)*x(2,1)*x(3,1)-DataType(3)*Math::sqr(x(2,2))+DataType(2)*x(2,2)*x(3,2)-DataType(3)*Math::sqr(x(3,0))-DataType(3)*Math::sqr(x(3,1))-DataType(3)*Math::sqr(x(3,2)))/(h*h*h*h)*(-DataType(6)*x(0,2)+DataType(2)*x(1,2)+DataType(2)*x(2,2)+DataType(2)*x(3,2))/DataType(2);
408
409 grad_frobenius_part(1,0) += this->_fac_frobenius*(DataType(6)*h*h-DataType(3)*Math::sqr(x(0,0))+DataType(2)*x(0,0)*x(1,0)+DataType(2)*x(0,0)*x(2,0)+DataType(2)*x(0,0)*x(3,0)-DataType(3)*Math::sqr(x(0,1))+DataType(2)*x(0,1)*x(1,1)+DataType(2)*x(0,1)*x(2,1)+DataType(2)*x(0,1)*x(3,1)-DataType(3)*Math::sqr(x(0,2))+DataType(2)*x(0,2)*x(1,2)+DataType(2)*x(0,2)*x(2,2)+DataType(2)*x(0,2)*x(3,2)-DataType(3)*Math::sqr(x(1,0))+DataType(2)*x(1,0)*x(2,0)+DataType(2)*x(1,0)*x(3,0)-DataType(3)*Math::sqr(x(1,1))+DataType(2)*x(1,1)*x(2,1)+DataType(2)*x(1,1)*x(3,1)-DataType(3)*Math::sqr(x(1,2))+DataType(2)*x(1,2)*x(2,2)+DataType(2)*x(1,2)*x(3,2)-DataType(3)*Math::sqr(x(2,0))+DataType(2)*x(2,0)*x(3,0)-DataType(3)*Math::sqr(x(2,1))+DataType(2)*x(2,1)*x(3,1)-DataType(3)*Math::sqr(x(2,2))+DataType(2)*x(2,2)*x(3,2)-DataType(3)*Math::sqr(x(3,0))-DataType(3)*Math::sqr(x(3,1))-DataType(3)*Math::sqr(x(3,2)))/(h*h*h*h)*(DataType(2)*x(0,0)-DataType(6)*x(1,0)+DataType(2)*x(2,0)+DataType(2)*x(3,0))/DataType(2);
410
411 grad_frobenius_part(1,1) += this->_fac_frobenius*(DataType(6)*h*h-DataType(3)*Math::sqr(x(0,0))+DataType(2)*x(0,0)*x(1,0)+DataType(2)*x(0,0)*x(2,0)+DataType(2)*x(0,0)*x(3,0)-DataType(3)*Math::sqr(x(0,1))+DataType(2)*x(0,1)*x(1,1)+DataType(2)*x(0,1)*x(2,1)+DataType(2)*x(0,1)*x(3,1)-DataType(3)*Math::sqr(x(0,2))+DataType(2)*x(0,2)*x(1,2)+DataType(2)*x(0,2)*x(2,2)+DataType(2)*x(0,2)*x(3,2)-DataType(3)*Math::sqr(x(1,0))+DataType(2)*x(1,0)*x(2,0)+DataType(2)*x(1,0)*x(3,0)-DataType(3)*Math::sqr(x(1,1))+DataType(2)*x(1,1)*x(2,1)+DataType(2)*x(1,1)*x(3,1)-DataType(3)*Math::sqr(x(1,2))+DataType(2)*x(1,2)*x(2,2)+DataType(2)*x(1,2)*x(3,2)-DataType(3)*Math::sqr(x(2,0))+DataType(2)*x(2,0)*x(3,0)-DataType(3)*Math::sqr(x(2,1))+DataType(2)*x(2,1)*x(3,1)-DataType(3)*Math::sqr(x(2,2))+DataType(2)*x(2,2)*x(3,2)-DataType(3)*Math::sqr(x(3,0))-DataType(3)*Math::sqr(x(3,1))-DataType(3)*Math::sqr(x(3,2)))/(h*h*h*h)*(DataType(2)*x(0,1)-DataType(6)*x(1,1)+DataType(2)*x(2,1)+DataType(2)*x(3,1))/DataType(2);
412
413 grad_frobenius_part(1,2) += this->_fac_frobenius*(DataType(6)*h*h-DataType(3)*Math::sqr(x(0,0))+DataType(2)*x(0,0)*x(1,0)+DataType(2)*x(0,0)*x(2,0)+DataType(2)*x(0,0)*x(3,0)-DataType(3)*Math::sqr(x(0,1))+DataType(2)*x(0,1)*x(1,1)+DataType(2)*x(0,1)*x(2,1)+DataType(2)*x(0,1)*x(3,1)-DataType(3)*Math::sqr(x(0,2))+DataType(2)*x(0,2)*x(1,2)+DataType(2)*x(0,2)*x(2,2)+DataType(2)*x(0,2)*x(3,2)-DataType(3)*Math::sqr(x(1,0))+DataType(2)*x(1,0)*x(2,0)+DataType(2)*x(1,0)*x(3,0)-DataType(3)*Math::sqr(x(1,1))+DataType(2)*x(1,1)*x(2,1)+DataType(2)*x(1,1)*x(3,1)-DataType(3)*Math::sqr(x(1,2))+DataType(2)*x(1,2)*x(2,2)+DataType(2)*x(1,2)*x(3,2)-DataType(3)*Math::sqr(x(2,0))+DataType(2)*x(2,0)*x(3,0)-DataType(3)*Math::sqr(x(2,1))+DataType(2)*x(2,1)*x(3,1)-DataType(3)*Math::sqr(x(2,2))+DataType(2)*x(2,2)*x(3,2)-DataType(3)*Math::sqr(x(3,0))-DataType(3)*Math::sqr(x(3,1))-DataType(3)*Math::sqr(x(3,2)))/(h*h*h*h)*(DataType(2)*x(0,2)-DataType(6)*x(1,2)+DataType(2)*x(2,2)+DataType(2)*x(3,2))/DataType(2);
414
415 grad_frobenius_part(2,0) += this->_fac_frobenius*(DataType(6)*h*h-DataType(3)*Math::sqr(x(0,0))+DataType(2)*x(0,0)*x(1,0)+DataType(2)*x(0,0)*x(2,0)+DataType(2)*x(0,0)*x(3,0)-DataType(3)*Math::sqr(x(0,1))+DataType(2)*x(0,1)*x(1,1)+DataType(2)*x(0,1)*x(2,1)+DataType(2)*x(0,1)*x(3,1)-DataType(3)*Math::sqr(x(0,2))+DataType(2)*x(0,2)*x(1,2)+DataType(2)*x(0,2)*x(2,2)+DataType(2)*x(0,2)*x(3,2)-DataType(3)*Math::sqr(x(1,0))+DataType(2)*x(1,0)*x(2,0)+DataType(2)*x(1,0)*x(3,0)-DataType(3)*Math::sqr(x(1,1))+DataType(2)*x(1,1)*x(2,1)+DataType(2)*x(1,1)*x(3,1)-DataType(3)*Math::sqr(x(1,2))+DataType(2)*x(1,2)*x(2,2)+DataType(2)*x(1,2)*x(3,2)-DataType(3)*Math::sqr(x(2,0))+DataType(2)*x(2,0)*x(3,0)-DataType(3)*Math::sqr(x(2,1))+DataType(2)*x(2,1)*x(3,1)-DataType(3)*Math::sqr(x(2,2))+DataType(2)*x(2,2)*x(3,2)-DataType(3)*Math::sqr(x(3,0))-DataType(3)*Math::sqr(x(3,1))-DataType(3)*Math::sqr(x(3,2)))/(h*h*h*h)*(DataType(2)*x(0,0)+DataType(2)*x(1,0)-DataType(6)*x(2,0)+DataType(2)*x(3,0))/DataType(2);
416
417 grad_frobenius_part(2,1) += this->_fac_frobenius*(DataType(6)*h*h-DataType(3)*Math::sqr(x(0,0))+DataType(2)*x(0,0)*x(1,0)+DataType(2)*x(0,0)*x(2,0)+DataType(2)*x(0,0)*x(3,0)-DataType(3)*Math::sqr(x(0,1))+DataType(2)*x(0,1)*x(1,1)+DataType(2)*x(0,1)*x(2,1)+DataType(2)*x(0,1)*x(3,1)-DataType(3)*Math::sqr(x(0,2))+DataType(2)*x(0,2)*x(1,2)+DataType(2)*x(0,2)*x(2,2)+DataType(2)*x(0,2)*x(3,2)-DataType(3)*Math::sqr(x(1,0))+DataType(2)*x(1,0)*x(2,0)+DataType(2)*x(1,0)*x(3,0)-DataType(3)*Math::sqr(x(1,1))+DataType(2)*x(1,1)*x(2,1)+DataType(2)*x(1,1)*x(3,1)-DataType(3)*Math::sqr(x(1,2))+DataType(2)*x(1,2)*x(2,2)+DataType(2)*x(1,2)*x(3,2)-DataType(3)*Math::sqr(x(2,0))+DataType(2)*x(2,0)*x(3,0)-DataType(3)*Math::sqr(x(2,1))+DataType(2)*x(2,1)*x(3,1)-DataType(3)*Math::sqr(x(2,2))+DataType(2)*x(2,2)*x(3,2)-DataType(3)*Math::sqr(x(3,0))-DataType(3)*Math::sqr(x(3,1))-DataType(3)*Math::sqr(x(3,2)))/(h*h*h*h)*(DataType(2)*x(0,1)+DataType(2)*x(1,1)-DataType(6)*x(2,1)+DataType(2)*x(3,1))/DataType(2);
418
419 grad_frobenius_part(2,2) += this->_fac_frobenius*(DataType(6)*h*h-DataType(3)*Math::sqr(x(0,0))+DataType(2)*x(0,0)*x(1,0)+DataType(2)*x(0,0)*x(2,0)+DataType(2)*x(0,0)*x(3,0)-DataType(3)*Math::sqr(x(0,1))+DataType(2)*x(0,1)*x(1,1)+DataType(2)*x(0,1)*x(2,1)+DataType(2)*x(0,1)*x(3,1)-DataType(3)*Math::sqr(x(0,2))+DataType(2)*x(0,2)*x(1,2)+DataType(2)*x(0,2)*x(2,2)+DataType(2)*x(0,2)*x(3,2)-DataType(3)*Math::sqr(x(1,0))+DataType(2)*x(1,0)*x(2,0)+DataType(2)*x(1,0)*x(3,0)-DataType(3)*Math::sqr(x(1,1))+DataType(2)*x(1,1)*x(2,1)+DataType(2)*x(1,1)*x(3,1)-DataType(3)*Math::sqr(x(1,2))+DataType(2)*x(1,2)*x(2,2)+DataType(2)*x(1,2)*x(3,2)-DataType(3)*Math::sqr(x(2,0))+DataType(2)*x(2,0)*x(3,0)-DataType(3)*Math::sqr(x(2,1))+DataType(2)*x(2,1)*x(3,1)-DataType(3)*Math::sqr(x(2,2))+DataType(2)*x(2,2)*x(3,2)-DataType(3)*Math::sqr(x(3,0))-DataType(3)*Math::sqr(x(3,1))-DataType(3)*Math::sqr(x(3,2)))/(h*h*h*h)*(DataType(2)*x(0,2)+DataType(2)*x(1,2)-DataType(6)*x(2,2)+DataType(2)*x(3,2))/DataType(2);
420
421 grad_frobenius_part(3,0) += this->_fac_frobenius*(DataType(6)*h*h-DataType(3)*Math::sqr(x(0,0))+DataType(2)*x(0,0)*x(1,0)+DataType(2)*x(0,0)*x(2,0)+DataType(2)*x(0,0)*x(3,0)-DataType(3)*Math::sqr(x(0,1))+DataType(2)*x(0,1)*x(1,1)+DataType(2)*x(0,1)*x(2,1)+DataType(2)*x(0,1)*x(3,1)-DataType(3)*Math::sqr(x(0,2))+DataType(2)*x(0,2)*x(1,2)+DataType(2)*x(0,2)*x(2,2)+DataType(2)*x(0,2)*x(3,2)-DataType(3)*Math::sqr(x(1,0))+DataType(2)*x(1,0)*x(2,0)+DataType(2)*x(1,0)*x(3,0)-DataType(3)*Math::sqr(x(1,1))+DataType(2)*x(1,1)*x(2,1)+DataType(2)*x(1,1)*x(3,1)-DataType(3)*Math::sqr(x(1,2))+DataType(2)*x(1,2)*x(2,2)+DataType(2)*x(1,2)*x(3,2)-DataType(3)*Math::sqr(x(2,0))+DataType(2)*x(2,0)*x(3,0)-DataType(3)*Math::sqr(x(2,1))+DataType(2)*x(2,1)*x(3,1)-DataType(3)*Math::sqr(x(2,2))+DataType(2)*x(2,2)*x(3,2)-DataType(3)*Math::sqr(x(3,0))-DataType(3)*Math::sqr(x(3,1))-DataType(3)*Math::sqr(x(3,2)))/(h*h*h*h)*(DataType(2)*x(0,0)+DataType(2)*x(1,0)+DataType(2)*x(2,0)-DataType(6)*x(3,0))/DataType(2);
422
423 grad_frobenius_part(3,1) += this->_fac_frobenius*(DataType(6)*h*h-DataType(3)*Math::sqr(x(0,0))+DataType(2)*x(0,0)*x(1,0)+DataType(2)*x(0,0)*x(2,0)+DataType(2)*x(0,0)*x(3,0)-DataType(3)*Math::sqr(x(0,1))+DataType(2)*x(0,1)*x(1,1)+DataType(2)*x(0,1)*x(2,1)+DataType(2)*x(0,1)*x(3,1)-DataType(3)*Math::sqr(x(0,2))+DataType(2)*x(0,2)*x(1,2)+DataType(2)*x(0,2)*x(2,2)+DataType(2)*x(0,2)*x(3,2)-DataType(3)*Math::sqr(x(1,0))+DataType(2)*x(1,0)*x(2,0)+DataType(2)*x(1,0)*x(3,0)-DataType(3)*Math::sqr(x(1,1))+DataType(2)*x(1,1)*x(2,1)+DataType(2)*x(1,1)*x(3,1)-DataType(3)*Math::sqr(x(1,2))+DataType(2)*x(1,2)*x(2,2)+DataType(2)*x(1,2)*x(3,2)-DataType(3)*Math::sqr(x(2,0))+DataType(2)*x(2,0)*x(3,0)-DataType(3)*Math::sqr(x(2,1))+DataType(2)*x(2,1)*x(3,1)-DataType(3)*Math::sqr(x(2,2))+DataType(2)*x(2,2)*x(3,2)-DataType(3)*Math::sqr(x(3,0))-DataType(3)*Math::sqr(x(3,1))-DataType(3)*Math::sqr(x(3,2)))/(h*h*h*h)*(DataType(2)*x(0,1)+DataType(2)*x(1,1)+DataType(2)*x(2,1)-DataType(6)*x(3,1))/DataType(2);
424
425 grad_frobenius_part(3,2) += this->_fac_frobenius*(DataType(6)*h*h-DataType(3)*Math::sqr(x(0,0))+DataType(2)*x(0,0)*x(1,0)+DataType(2)*x(0,0)*x(2,0)+DataType(2)*x(0,0)*x(3,0)-DataType(3)*Math::sqr(x(0,1))+DataType(2)*x(0,1)*x(1,1)+DataType(2)*x(0,1)*x(2,1)+DataType(2)*x(0,1)*x(3,1)-DataType(3)*Math::sqr(x(0,2))+DataType(2)*x(0,2)*x(1,2)+DataType(2)*x(0,2)*x(2,2)+DataType(2)*x(0,2)*x(3,2)-DataType(3)*Math::sqr(x(1,0))+DataType(2)*x(1,0)*x(2,0)+DataType(2)*x(1,0)*x(3,0)-DataType(3)*Math::sqr(x(1,1))+DataType(2)*x(1,1)*x(2,1)+DataType(2)*x(1,1)*x(3,1)-DataType(3)*Math::sqr(x(1,2))+DataType(2)*x(1,2)*x(2,2)+DataType(2)*x(1,2)*x(3,2)-DataType(3)*Math::sqr(x(2,0))+DataType(2)*x(2,0)*x(3,0)-DataType(3)*Math::sqr(x(2,1))+DataType(2)*x(2,1)*x(3,1)-DataType(3)*Math::sqr(x(2,2))+DataType(2)*x(2,2)*x(3,2)-DataType(3)*Math::sqr(x(3,0))-DataType(3)*Math::sqr(x(3,1))-DataType(3)*Math::sqr(x(3,2)))/(h*h*h*h)*(DataType(2)*x(0,2)+DataType(2)*x(1,2)+DataType(2)*x(2,2)-DataType(6)*x(3,2))/DataType(2);
426 }
427
431 void NOINLINE add_grad_cof_part(Tx& grad_cof_part, const Tx& x, const DataType& h)
432 {
433 grad_cof_part(0,0) += DataType(2)*this->_fac_cof*(DataType(3)*Math::pow(h,DataType(4))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,2))+DataType(4)*x(0,0)*x(0,1)*x(1,0)*x(1,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(2,0)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(2,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(2,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(3,0)*x(3,1)+DataType(4)*x(0,0)*x(0,2)*x(1,0)*x(1,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(2,0)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(2,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(2,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(2,1)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(3,1)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(2,2)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(3,2)+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,2))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(3,0)-DataType(2)*x(0,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(1,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(3,0)-DataType(2)*x(0,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(0,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(0,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(0,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,2))+DataType(4)*x(0,1)*x(0,2)*x(1,1)*x(1,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(2,1)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(2,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(2,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(3,1)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(2,0)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(3,0)-DataType(2)*x(0,1)*x(1,0)*x(2,0)*x(2,1)-DataType(2)*x(0,1)*x(1,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(2,2)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(3,2)+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,2))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(3,1)-DataType(2)*x(0,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(0,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(0,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(0,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(3,2)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(2,0)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(3,0)-DataType(2)*x(0,2)*x(1,0)*x(2,0)*x(2,2)-DataType(2)*x(0,2)*x(1,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(3,2)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(2,1)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(3,1)-DataType(2)*x(0,2)*x(1,1)*x(2,1)*x(2,2)-DataType(2)*x(0,2)*x(1,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,1))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(0,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(0,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(0,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(0,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,2))+DataType(4)*x(1,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(1,0)*x(1,1)*x(2,0)*x(3,1)-DataType(2)*x(1,0)*x(1,1)*x(2,1)*x(3,0)+DataType(4)*x(1,0)*x(1,1)*x(3,0)*x(3,1)+DataType(4)*x(1,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(1,0)*x(1,2)*x(2,0)*x(3,2)-DataType(2)*x(1,0)*x(1,2)*x(2,2)*x(3,0)+DataType(4)*x(1,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(1,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(1,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(1,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(1,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(1,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(1,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,2))+DataType(4)*x(1,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(1,1)*x(1,2)*x(2,1)*x(3,2)-DataType(2)*x(1,1)*x(1,2)*x(2,2)*x(3,1)+DataType(4)*x(1,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(1,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(1,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(1,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(1,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(1,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(1,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,1))+DataType(2)*x(1,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(1,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(1,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(1,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(1,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(1,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,2))+DataType(4)*x(2,0)*x(2,1)*x(3,0)*x(3,1)+DataType(4)*x(2,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,2))+DataType(4)*x(2,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,1)))*Math::pow(h,-DataType(8))*(-DataType(4)*x(0,0)*Math::sqr(x(1,1))+DataType(4)*x(0,0)*x(1,1)*x(2,1)+DataType(4)*x(0,0)*x(1,1)*x(3,1)-DataType(4)*x(0,0)*Math::sqr(x(1,2))+DataType(4)*x(0,0)*x(1,2)*x(2,2)+DataType(4)*x(0,0)*x(1,2)*x(3,2)-DataType(4)*x(0,0)*Math::sqr(x(2,1))+DataType(4)*x(0,0)*x(2,1)*x(3,1)-DataType(4)*x(0,0)*Math::sqr(x(2,2))+DataType(4)*x(0,0)*x(2,2)*x(3,2)-DataType(4)*x(0,0)*Math::sqr(x(3,1))-DataType(4)*x(0,0)*Math::sqr(x(3,2))+DataType(4)*x(0,1)*x(1,0)*x(1,1)-DataType(2)*x(0,1)*x(1,0)*x(2,1)-DataType(2)*x(0,1)*x(1,0)*x(3,1)-DataType(2)*x(0,1)*x(1,1)*x(2,0)-DataType(2)*x(0,1)*x(1,1)*x(3,0)+DataType(4)*x(0,1)*x(2,0)*x(2,1)-DataType(2)*x(0,1)*x(2,0)*x(3,1)-DataType(2)*x(0,1)*x(2,1)*x(3,0)+DataType(4)*x(0,1)*x(3,0)*x(3,1)+DataType(4)*x(0,2)*x(1,0)*x(1,2)-DataType(2)*x(0,2)*x(1,0)*x(2,2)-DataType(2)*x(0,2)*x(1,0)*x(3,2)-DataType(2)*x(0,2)*x(1,2)*x(2,0)-DataType(2)*x(0,2)*x(1,2)*x(3,0)+DataType(4)*x(0,2)*x(2,0)*x(2,2)-DataType(2)*x(0,2)*x(2,0)*x(3,2)-DataType(2)*x(0,2)*x(2,2)*x(3,0)+DataType(4)*x(0,2)*x(3,0)*x(3,2)-DataType(2)*x(1,0)*x(1,1)*x(2,1)-DataType(2)*x(1,0)*x(1,1)*x(3,1)-DataType(2)*x(1,0)*x(1,2)*x(2,2)-DataType(2)*x(1,0)*x(1,2)*x(3,2)+DataType(2)*x(1,0)*Math::sqr(x(2,1))+DataType(2)*x(1,0)*Math::sqr(x(2,2))+DataType(2)*x(1,0)*Math::sqr(x(3,1))+DataType(2)*x(1,0)*Math::sqr(x(3,2))+DataType(2)*Math::sqr(x(1,1))*x(2,0)+DataType(2)*Math::sqr(x(1,1))*x(3,0)-DataType(2)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(1,1)*x(3,0)*x(3,1)+DataType(2)*Math::sqr(x(1,2))*x(2,0)+DataType(2)*Math::sqr(x(1,2))*x(3,0)-DataType(2)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(2,2)*x(3,0)*x(3,2));
434
435 grad_cof_part(0,1) += DataType(2)*this->_fac_cof*(DataType(3)*Math::pow(h,DataType(4))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,2))+DataType(4)*x(0,0)*x(0,1)*x(1,0)*x(1,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(2,0)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(2,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(2,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(3,0)*x(3,1)+DataType(4)*x(0,0)*x(0,2)*x(1,0)*x(1,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(2,0)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(2,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(2,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(2,1)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(3,1)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(2,2)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(3,2)+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,2))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(3,0)-DataType(2)*x(0,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(1,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(3,0)-DataType(2)*x(0,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(0,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(0,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(0,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,2))+DataType(4)*x(0,1)*x(0,2)*x(1,1)*x(1,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(2,1)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(2,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(2,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(3,1)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(2,0)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(3,0)-DataType(2)*x(0,1)*x(1,0)*x(2,0)*x(2,1)-DataType(2)*x(0,1)*x(1,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(2,2)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(3,2)+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,2))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(3,1)-DataType(2)*x(0,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(0,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(0,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(0,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(3,2)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(2,0)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(3,0)-DataType(2)*x(0,2)*x(1,0)*x(2,0)*x(2,2)-DataType(2)*x(0,2)*x(1,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(3,2)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(2,1)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(3,1)-DataType(2)*x(0,2)*x(1,1)*x(2,1)*x(2,2)-DataType(2)*x(0,2)*x(1,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,1))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(0,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(0,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(0,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(0,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,2))+DataType(4)*x(1,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(1,0)*x(1,1)*x(2,0)*x(3,1)-DataType(2)*x(1,0)*x(1,1)*x(2,1)*x(3,0)+DataType(4)*x(1,0)*x(1,1)*x(3,0)*x(3,1)+DataType(4)*x(1,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(1,0)*x(1,2)*x(2,0)*x(3,2)-DataType(2)*x(1,0)*x(1,2)*x(2,2)*x(3,0)+DataType(4)*x(1,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(1,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(1,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(1,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(1,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(1,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(1,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,2))+DataType(4)*x(1,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(1,1)*x(1,2)*x(2,1)*x(3,2)-DataType(2)*x(1,1)*x(1,2)*x(2,2)*x(3,1)+DataType(4)*x(1,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(1,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(1,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(1,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(1,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(1,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(1,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,1))+DataType(2)*x(1,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(1,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(1,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(1,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(1,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(1,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,2))+DataType(4)*x(2,0)*x(2,1)*x(3,0)*x(3,1)+DataType(4)*x(2,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,2))+DataType(4)*x(2,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,1)))*Math::pow(h,-DataType(8))*(DataType(4)*x(0,0)*x(1,0)*x(1,1)-DataType(2)*x(0,0)*x(1,0)*x(2,1)-DataType(2)*x(0,0)*x(1,0)*x(3,1)-DataType(2)*x(0,0)*x(1,1)*x(2,0)-DataType(2)*x(0,0)*x(1,1)*x(3,0)+DataType(4)*x(0,0)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(2,0)*x(3,1)-DataType(2)*x(0,0)*x(2,1)*x(3,0)+DataType(4)*x(0,0)*x(3,0)*x(3,1)-DataType(4)*x(0,1)*Math::sqr(x(1,0))+DataType(4)*x(0,1)*x(1,0)*x(2,0)+DataType(4)*x(0,1)*x(1,0)*x(3,0)-DataType(4)*x(0,1)*Math::sqr(x(1,2))+DataType(4)*x(0,1)*x(1,2)*x(2,2)+DataType(4)*x(0,1)*x(1,2)*x(3,2)-DataType(4)*x(0,1)*Math::sqr(x(2,0))+DataType(4)*x(0,1)*x(2,0)*x(3,0)-DataType(4)*x(0,1)*Math::sqr(x(2,2))+DataType(4)*x(0,1)*x(2,2)*x(3,2)-DataType(4)*x(0,1)*Math::sqr(x(3,0))-DataType(4)*x(0,1)*Math::sqr(x(3,2))+DataType(4)*x(0,2)*x(1,1)*x(1,2)-DataType(2)*x(0,2)*x(1,1)*x(2,2)-DataType(2)*x(0,2)*x(1,1)*x(3,2)-DataType(2)*x(0,2)*x(1,2)*x(2,1)-DataType(2)*x(0,2)*x(1,2)*x(3,1)+DataType(4)*x(0,2)*x(2,1)*x(2,2)-DataType(2)*x(0,2)*x(2,1)*x(3,2)-DataType(2)*x(0,2)*x(2,2)*x(3,1)+DataType(4)*x(0,2)*x(3,1)*x(3,2)+DataType(2)*Math::sqr(x(1,0))*x(2,1)+DataType(2)*Math::sqr(x(1,0))*x(3,1)-DataType(2)*x(1,0)*x(1,1)*x(2,0)-DataType(2)*x(1,0)*x(1,1)*x(3,0)-DataType(2)*x(1,0)*x(2,0)*x(2,1)-DataType(2)*x(1,0)*x(3,0)*x(3,1)-DataType(2)*x(1,1)*x(1,2)*x(2,2)-DataType(2)*x(1,1)*x(1,2)*x(3,2)+DataType(2)*x(1,1)*Math::sqr(x(2,0))+DataType(2)*x(1,1)*Math::sqr(x(2,2))+DataType(2)*x(1,1)*Math::sqr(x(3,0))+DataType(2)*x(1,1)*Math::sqr(x(3,2))+DataType(2)*Math::sqr(x(1,2))*x(2,1)+DataType(2)*Math::sqr(x(1,2))*x(3,1)-DataType(2)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(2,2)*x(3,1)*x(3,2));
436
437 grad_cof_part(0,2) += DataType(2)*this->_fac_cof*(DataType(3)*Math::pow(h,DataType(4))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,2))+DataType(4)*x(0,0)*x(0,1)*x(1,0)*x(1,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(2,0)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(2,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(2,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(3,0)*x(3,1)+DataType(4)*x(0,0)*x(0,2)*x(1,0)*x(1,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(2,0)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(2,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(2,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(2,1)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(3,1)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(2,2)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(3,2)+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,2))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(3,0)-DataType(2)*x(0,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(1,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(3,0)-DataType(2)*x(0,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(0,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(0,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(0,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,2))+DataType(4)*x(0,1)*x(0,2)*x(1,1)*x(1,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(2,1)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(2,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(2,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(3,1)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(2,0)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(3,0)-DataType(2)*x(0,1)*x(1,0)*x(2,0)*x(2,1)-DataType(2)*x(0,1)*x(1,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(2,2)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(3,2)+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,2))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(3,1)-DataType(2)*x(0,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(0,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(0,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(0,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(3,2)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(2,0)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(3,0)-DataType(2)*x(0,2)*x(1,0)*x(2,0)*x(2,2)-DataType(2)*x(0,2)*x(1,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(3,2)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(2,1)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(3,1)-DataType(2)*x(0,2)*x(1,1)*x(2,1)*x(2,2)-DataType(2)*x(0,2)*x(1,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,1))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(0,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(0,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(0,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(0,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,2))+DataType(4)*x(1,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(1,0)*x(1,1)*x(2,0)*x(3,1)-DataType(2)*x(1,0)*x(1,1)*x(2,1)*x(3,0)+DataType(4)*x(1,0)*x(1,1)*x(3,0)*x(3,1)+DataType(4)*x(1,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(1,0)*x(1,2)*x(2,0)*x(3,2)-DataType(2)*x(1,0)*x(1,2)*x(2,2)*x(3,0)+DataType(4)*x(1,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(1,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(1,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(1,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(1,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(1,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(1,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,2))+DataType(4)*x(1,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(1,1)*x(1,2)*x(2,1)*x(3,2)-DataType(2)*x(1,1)*x(1,2)*x(2,2)*x(3,1)+DataType(4)*x(1,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(1,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(1,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(1,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(1,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(1,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(1,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,1))+DataType(2)*x(1,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(1,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(1,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(1,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(1,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(1,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,2))+DataType(4)*x(2,0)*x(2,1)*x(3,0)*x(3,1)+DataType(4)*x(2,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,2))+DataType(4)*x(2,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,1)))*Math::pow(h,-DataType(8))*(DataType(4)*x(0,0)*x(1,0)*x(1,2)-DataType(2)*x(0,0)*x(1,0)*x(2,2)-DataType(2)*x(0,0)*x(1,0)*x(3,2)-DataType(2)*x(0,0)*x(1,2)*x(2,0)-DataType(2)*x(0,0)*x(1,2)*x(3,0)+DataType(4)*x(0,0)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(2,0)*x(3,2)-DataType(2)*x(0,0)*x(2,2)*x(3,0)+DataType(4)*x(0,0)*x(3,0)*x(3,2)+DataType(4)*x(0,1)*x(1,1)*x(1,2)-DataType(2)*x(0,1)*x(1,1)*x(2,2)-DataType(2)*x(0,1)*x(1,1)*x(3,2)-DataType(2)*x(0,1)*x(1,2)*x(2,1)-DataType(2)*x(0,1)*x(1,2)*x(3,1)+DataType(4)*x(0,1)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(2,1)*x(3,2)-DataType(2)*x(0,1)*x(2,2)*x(3,1)+DataType(4)*x(0,1)*x(3,1)*x(3,2)-DataType(4)*x(0,2)*Math::sqr(x(1,0))+DataType(4)*x(0,2)*x(1,0)*x(2,0)+DataType(4)*x(0,2)*x(1,0)*x(3,0)-DataType(4)*x(0,2)*Math::sqr(x(1,1))+DataType(4)*x(0,2)*x(1,1)*x(2,1)+DataType(4)*x(0,2)*x(1,1)*x(3,1)-DataType(4)*x(0,2)*Math::sqr(x(2,0))+DataType(4)*x(0,2)*x(2,0)*x(3,0)-DataType(4)*x(0,2)*Math::sqr(x(2,1))+DataType(4)*x(0,2)*x(2,1)*x(3,1)-DataType(4)*x(0,2)*Math::sqr(x(3,0))-DataType(4)*x(0,2)*Math::sqr(x(3,1))+DataType(2)*Math::sqr(x(1,0))*x(2,2)+DataType(2)*Math::sqr(x(1,0))*x(3,2)-DataType(2)*x(1,0)*x(1,2)*x(2,0)-DataType(2)*x(1,0)*x(1,2)*x(3,0)-DataType(2)*x(1,0)*x(2,0)*x(2,2)-DataType(2)*x(1,0)*x(3,0)*x(3,2)+DataType(2)*Math::sqr(x(1,1))*x(2,2)+DataType(2)*Math::sqr(x(1,1))*x(3,2)-DataType(2)*x(1,1)*x(1,2)*x(2,1)-DataType(2)*x(1,1)*x(1,2)*x(3,1)-DataType(2)*x(1,1)*x(2,1)*x(2,2)-DataType(2)*x(1,1)*x(3,1)*x(3,2)+DataType(2)*x(1,2)*Math::sqr(x(2,0))+DataType(2)*x(1,2)*Math::sqr(x(2,1))+DataType(2)*x(1,2)*Math::sqr(x(3,0))+DataType(2)*x(1,2)*Math::sqr(x(3,1))+DataType(2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(2,2)*Math::sqr(x(3,1)));
438
439 grad_cof_part(1,0) += DataType(2)*this->_fac_cof*(DataType(3)*Math::pow(h,DataType(4))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,2))+DataType(4)*x(0,0)*x(0,1)*x(1,0)*x(1,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(2,0)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(2,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(2,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(3,0)*x(3,1)+DataType(4)*x(0,0)*x(0,2)*x(1,0)*x(1,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(2,0)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(2,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(2,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(2,1)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(3,1)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(2,2)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(3,2)+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,2))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(3,0)-DataType(2)*x(0,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(1,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(3,0)-DataType(2)*x(0,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(0,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(0,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(0,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,2))+DataType(4)*x(0,1)*x(0,2)*x(1,1)*x(1,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(2,1)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(2,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(2,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(3,1)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(2,0)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(3,0)-DataType(2)*x(0,1)*x(1,0)*x(2,0)*x(2,1)-DataType(2)*x(0,1)*x(1,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(2,2)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(3,2)+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,2))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(3,1)-DataType(2)*x(0,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(0,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(0,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(0,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(3,2)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(2,0)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(3,0)-DataType(2)*x(0,2)*x(1,0)*x(2,0)*x(2,2)-DataType(2)*x(0,2)*x(1,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(3,2)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(2,1)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(3,1)-DataType(2)*x(0,2)*x(1,1)*x(2,1)*x(2,2)-DataType(2)*x(0,2)*x(1,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,1))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(0,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(0,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(0,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(0,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,2))+DataType(4)*x(1,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(1,0)*x(1,1)*x(2,0)*x(3,1)-DataType(2)*x(1,0)*x(1,1)*x(2,1)*x(3,0)+DataType(4)*x(1,0)*x(1,1)*x(3,0)*x(3,1)+DataType(4)*x(1,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(1,0)*x(1,2)*x(2,0)*x(3,2)-DataType(2)*x(1,0)*x(1,2)*x(2,2)*x(3,0)+DataType(4)*x(1,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(1,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(1,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(1,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(1,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(1,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(1,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,2))+DataType(4)*x(1,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(1,1)*x(1,2)*x(2,1)*x(3,2)-DataType(2)*x(1,1)*x(1,2)*x(2,2)*x(3,1)+DataType(4)*x(1,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(1,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(1,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(1,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(1,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(1,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(1,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,1))+DataType(2)*x(1,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(1,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(1,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(1,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(1,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(1,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,2))+DataType(4)*x(2,0)*x(2,1)*x(3,0)*x(3,1)+DataType(4)*x(2,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,2))+DataType(4)*x(2,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,1)))*Math::pow(h,-DataType(8))*(DataType(4)*x(0,0)*x(0,1)*x(1,1)-DataType(2)*x(0,0)*x(0,1)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(3,1)+DataType(4)*x(0,0)*x(0,2)*x(1,2)-DataType(2)*x(0,0)*x(0,2)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(3,2)-DataType(2)*x(0,0)*x(1,1)*x(2,1)-DataType(2)*x(0,0)*x(1,1)*x(3,1)-DataType(2)*x(0,0)*x(1,2)*x(2,2)-DataType(2)*x(0,0)*x(1,2)*x(3,2)+DataType(2)*x(0,0)*Math::sqr(x(2,1))+DataType(2)*x(0,0)*Math::sqr(x(2,2))+DataType(2)*x(0,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*Math::sqr(x(3,2))-DataType(4)*Math::sqr(x(0,1))*x(1,0)+DataType(2)*Math::sqr(x(0,1))*x(2,0)+DataType(2)*Math::sqr(x(0,1))*x(3,0)+DataType(4)*x(0,1)*x(1,0)*x(2,1)+DataType(4)*x(0,1)*x(1,0)*x(3,1)-DataType(2)*x(0,1)*x(1,1)*x(2,0)-DataType(2)*x(0,1)*x(1,1)*x(3,0)-DataType(2)*x(0,1)*x(2,0)*x(2,1)-DataType(2)*x(0,1)*x(3,0)*x(3,1)-DataType(4)*Math::sqr(x(0,2))*x(1,0)+DataType(2)*Math::sqr(x(0,2))*x(2,0)+DataType(2)*Math::sqr(x(0,2))*x(3,0)+DataType(4)*x(0,2)*x(1,0)*x(2,2)+DataType(4)*x(0,2)*x(1,0)*x(3,2)-DataType(2)*x(0,2)*x(1,2)*x(2,0)-DataType(2)*x(0,2)*x(1,2)*x(3,0)-DataType(2)*x(0,2)*x(2,0)*x(2,2)-DataType(2)*x(0,2)*x(3,0)*x(3,2)-DataType(4)*x(1,0)*Math::sqr(x(2,1))+DataType(4)*x(1,0)*x(2,1)*x(3,1)-DataType(4)*x(1,0)*Math::sqr(x(2,2))+DataType(4)*x(1,0)*x(2,2)*x(3,2)-DataType(4)*x(1,0)*Math::sqr(x(3,1))-DataType(4)*x(1,0)*Math::sqr(x(3,2))+DataType(4)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(1,1)*x(2,0)*x(3,1)-DataType(2)*x(1,1)*x(2,1)*x(3,0)+DataType(4)*x(1,1)*x(3,0)*x(3,1)+DataType(4)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(1,2)*x(2,0)*x(3,2)-DataType(2)*x(1,2)*x(2,2)*x(3,0)+DataType(4)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(2,2)*x(3,0)*x(3,2));
440
441 grad_cof_part(1,1) += DataType(2)*this->_fac_cof*(DataType(3)*Math::pow(h,DataType(4))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,2))+DataType(4)*x(0,0)*x(0,1)*x(1,0)*x(1,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(2,0)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(2,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(2,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(3,0)*x(3,1)+DataType(4)*x(0,0)*x(0,2)*x(1,0)*x(1,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(2,0)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(2,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(2,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(2,1)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(3,1)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(2,2)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(3,2)+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,2))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(3,0)-DataType(2)*x(0,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(1,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(3,0)-DataType(2)*x(0,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(0,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(0,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(0,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,2))+DataType(4)*x(0,1)*x(0,2)*x(1,1)*x(1,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(2,1)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(2,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(2,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(3,1)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(2,0)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(3,0)-DataType(2)*x(0,1)*x(1,0)*x(2,0)*x(2,1)-DataType(2)*x(0,1)*x(1,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(2,2)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(3,2)+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,2))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(3,1)-DataType(2)*x(0,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(0,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(0,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(0,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(3,2)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(2,0)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(3,0)-DataType(2)*x(0,2)*x(1,0)*x(2,0)*x(2,2)-DataType(2)*x(0,2)*x(1,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(3,2)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(2,1)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(3,1)-DataType(2)*x(0,2)*x(1,1)*x(2,1)*x(2,2)-DataType(2)*x(0,2)*x(1,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,1))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(0,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(0,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(0,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(0,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,2))+DataType(4)*x(1,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(1,0)*x(1,1)*x(2,0)*x(3,1)-DataType(2)*x(1,0)*x(1,1)*x(2,1)*x(3,0)+DataType(4)*x(1,0)*x(1,1)*x(3,0)*x(3,1)+DataType(4)*x(1,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(1,0)*x(1,2)*x(2,0)*x(3,2)-DataType(2)*x(1,0)*x(1,2)*x(2,2)*x(3,0)+DataType(4)*x(1,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(1,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(1,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(1,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(1,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(1,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(1,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,2))+DataType(4)*x(1,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(1,1)*x(1,2)*x(2,1)*x(3,2)-DataType(2)*x(1,1)*x(1,2)*x(2,2)*x(3,1)+DataType(4)*x(1,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(1,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(1,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(1,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(1,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(1,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(1,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,1))+DataType(2)*x(1,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(1,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(1,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(1,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(1,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(1,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,2))+DataType(4)*x(2,0)*x(2,1)*x(3,0)*x(3,1)+DataType(4)*x(2,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,2))+DataType(4)*x(2,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,1)))*Math::pow(h,-DataType(8))*(-DataType(4)*Math::sqr(x(0,0))*x(1,1)+DataType(2)*Math::sqr(x(0,0))*x(2,1)+DataType(2)*Math::sqr(x(0,0))*x(3,1)+DataType(4)*x(0,0)*x(0,1)*x(1,0)-DataType(2)*x(0,0)*x(0,1)*x(2,0)-DataType(2)*x(0,0)*x(0,1)*x(3,0)-DataType(2)*x(0,0)*x(1,0)*x(2,1)-DataType(2)*x(0,0)*x(1,0)*x(3,1)+DataType(4)*x(0,0)*x(1,1)*x(2,0)+DataType(4)*x(0,0)*x(1,1)*x(3,0)-DataType(2)*x(0,0)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(3,0)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(1,2)-DataType(2)*x(0,1)*x(0,2)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(3,2)-DataType(2)*x(0,1)*x(1,0)*x(2,0)-DataType(2)*x(0,1)*x(1,0)*x(3,0)-DataType(2)*x(0,1)*x(1,2)*x(2,2)-DataType(2)*x(0,1)*x(1,2)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(2,0))+DataType(2)*x(0,1)*Math::sqr(x(2,2))+DataType(2)*x(0,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*Math::sqr(x(3,2))-DataType(4)*Math::sqr(x(0,2))*x(1,1)+DataType(2)*Math::sqr(x(0,2))*x(2,1)+DataType(2)*Math::sqr(x(0,2))*x(3,1)+DataType(4)*x(0,2)*x(1,1)*x(2,2)+DataType(4)*x(0,2)*x(1,1)*x(3,2)-DataType(2)*x(0,2)*x(1,2)*x(2,1)-DataType(2)*x(0,2)*x(1,2)*x(3,1)-DataType(2)*x(0,2)*x(2,1)*x(2,2)-DataType(2)*x(0,2)*x(3,1)*x(3,2)+DataType(4)*x(1,0)*x(2,0)*x(2,1)-DataType(2)*x(1,0)*x(2,0)*x(3,1)-DataType(2)*x(1,0)*x(2,1)*x(3,0)+DataType(4)*x(1,0)*x(3,0)*x(3,1)-DataType(4)*x(1,1)*Math::sqr(x(2,0))+DataType(4)*x(1,1)*x(2,0)*x(3,0)-DataType(4)*x(1,1)*Math::sqr(x(2,2))+DataType(4)*x(1,1)*x(2,2)*x(3,2)-DataType(4)*x(1,1)*Math::sqr(x(3,0))-DataType(4)*x(1,1)*Math::sqr(x(3,2))+DataType(4)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(1,2)*x(2,1)*x(3,2)-DataType(2)*x(1,2)*x(2,2)*x(3,1)+DataType(4)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(2,2)*x(3,1)*x(3,2));
442
443 grad_cof_part(1,2) += DataType(2)*this->_fac_cof*(DataType(3)*Math::pow(h,DataType(4))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,2))+DataType(4)*x(0,0)*x(0,1)*x(1,0)*x(1,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(2,0)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(2,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(2,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(3,0)*x(3,1)+DataType(4)*x(0,0)*x(0,2)*x(1,0)*x(1,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(2,0)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(2,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(2,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(2,1)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(3,1)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(2,2)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(3,2)+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,2))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(3,0)-DataType(2)*x(0,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(1,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(3,0)-DataType(2)*x(0,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(0,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(0,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(0,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,2))+DataType(4)*x(0,1)*x(0,2)*x(1,1)*x(1,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(2,1)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(2,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(2,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(3,1)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(2,0)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(3,0)-DataType(2)*x(0,1)*x(1,0)*x(2,0)*x(2,1)-DataType(2)*x(0,1)*x(1,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(2,2)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(3,2)+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,2))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(3,1)-DataType(2)*x(0,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(0,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(0,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(0,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(3,2)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(2,0)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(3,0)-DataType(2)*x(0,2)*x(1,0)*x(2,0)*x(2,2)-DataType(2)*x(0,2)*x(1,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(3,2)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(2,1)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(3,1)-DataType(2)*x(0,2)*x(1,1)*x(2,1)*x(2,2)-DataType(2)*x(0,2)*x(1,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,1))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(0,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(0,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(0,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(0,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,2))+DataType(4)*x(1,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(1,0)*x(1,1)*x(2,0)*x(3,1)-DataType(2)*x(1,0)*x(1,1)*x(2,1)*x(3,0)+DataType(4)*x(1,0)*x(1,1)*x(3,0)*x(3,1)+DataType(4)*x(1,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(1,0)*x(1,2)*x(2,0)*x(3,2)-DataType(2)*x(1,0)*x(1,2)*x(2,2)*x(3,0)+DataType(4)*x(1,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(1,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(1,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(1,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(1,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(1,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(1,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,2))+DataType(4)*x(1,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(1,1)*x(1,2)*x(2,1)*x(3,2)-DataType(2)*x(1,1)*x(1,2)*x(2,2)*x(3,1)+DataType(4)*x(1,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(1,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(1,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(1,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(1,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(1,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(1,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,1))+DataType(2)*x(1,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(1,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(1,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(1,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(1,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(1,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,2))+DataType(4)*x(2,0)*x(2,1)*x(3,0)*x(3,1)+DataType(4)*x(2,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,2))+DataType(4)*x(2,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,1)))*Math::pow(h,-DataType(8))*(-DataType(4)*Math::sqr(x(0,0))*x(1,2)+DataType(2)*Math::sqr(x(0,0))*x(2,2)+DataType(2)*Math::sqr(x(0,0))*x(3,2)+DataType(4)*x(0,0)*x(0,2)*x(1,0)-DataType(2)*x(0,0)*x(0,2)*x(2,0)-DataType(2)*x(0,0)*x(0,2)*x(3,0)-DataType(2)*x(0,0)*x(1,0)*x(2,2)-DataType(2)*x(0,0)*x(1,0)*x(3,2)+DataType(4)*x(0,0)*x(1,2)*x(2,0)+DataType(4)*x(0,0)*x(1,2)*x(3,0)-DataType(2)*x(0,0)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(3,0)*x(3,2)-DataType(4)*Math::sqr(x(0,1))*x(1,2)+DataType(2)*Math::sqr(x(0,1))*x(2,2)+DataType(2)*Math::sqr(x(0,1))*x(3,2)+DataType(4)*x(0,1)*x(0,2)*x(1,1)-DataType(2)*x(0,1)*x(0,2)*x(2,1)-DataType(2)*x(0,1)*x(0,2)*x(3,1)-DataType(2)*x(0,1)*x(1,1)*x(2,2)-DataType(2)*x(0,1)*x(1,1)*x(3,2)+DataType(4)*x(0,1)*x(1,2)*x(2,1)+DataType(4)*x(0,1)*x(1,2)*x(3,1)-DataType(2)*x(0,1)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(3,1)*x(3,2)-DataType(2)*x(0,2)*x(1,0)*x(2,0)-DataType(2)*x(0,2)*x(1,0)*x(3,0)-DataType(2)*x(0,2)*x(1,1)*x(2,1)-DataType(2)*x(0,2)*x(1,1)*x(3,1)+DataType(2)*x(0,2)*Math::sqr(x(2,0))+DataType(2)*x(0,2)*Math::sqr(x(2,1))+DataType(2)*x(0,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*Math::sqr(x(3,1))+DataType(4)*x(1,0)*x(2,0)*x(2,2)-DataType(2)*x(1,0)*x(2,0)*x(3,2)-DataType(2)*x(1,0)*x(2,2)*x(3,0)+DataType(4)*x(1,0)*x(3,0)*x(3,2)+DataType(4)*x(1,1)*x(2,1)*x(2,2)-DataType(2)*x(1,1)*x(2,1)*x(3,2)-DataType(2)*x(1,1)*x(2,2)*x(3,1)+DataType(4)*x(1,1)*x(3,1)*x(3,2)-DataType(4)*x(1,2)*Math::sqr(x(2,0))+DataType(4)*x(1,2)*x(2,0)*x(3,0)-DataType(4)*x(1,2)*Math::sqr(x(2,1))+DataType(4)*x(1,2)*x(2,1)*x(3,1)-DataType(4)*x(1,2)*Math::sqr(x(3,0))-DataType(4)*x(1,2)*Math::sqr(x(3,1))+DataType(2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(2,2)*Math::sqr(x(3,1)));
444
445 grad_cof_part(2,0) += DataType(2)*this->_fac_cof*(DataType(3)*Math::pow(h,DataType(4))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,2))+DataType(4)*x(0,0)*x(0,1)*x(1,0)*x(1,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(2,0)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(2,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(2,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(3,0)*x(3,1)+DataType(4)*x(0,0)*x(0,2)*x(1,0)*x(1,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(2,0)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(2,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(2,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(2,1)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(3,1)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(2,2)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(3,2)+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,2))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(3,0)-DataType(2)*x(0,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(1,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(3,0)-DataType(2)*x(0,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(0,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(0,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(0,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,2))+DataType(4)*x(0,1)*x(0,2)*x(1,1)*x(1,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(2,1)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(2,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(2,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(3,1)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(2,0)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(3,0)-DataType(2)*x(0,1)*x(1,0)*x(2,0)*x(2,1)-DataType(2)*x(0,1)*x(1,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(2,2)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(3,2)+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,2))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(3,1)-DataType(2)*x(0,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(0,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(0,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(0,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(3,2)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(2,0)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(3,0)-DataType(2)*x(0,2)*x(1,0)*x(2,0)*x(2,2)-DataType(2)*x(0,2)*x(1,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(3,2)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(2,1)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(3,1)-DataType(2)*x(0,2)*x(1,1)*x(2,1)*x(2,2)-DataType(2)*x(0,2)*x(1,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,1))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(0,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(0,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(0,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(0,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,2))+DataType(4)*x(1,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(1,0)*x(1,1)*x(2,0)*x(3,1)-DataType(2)*x(1,0)*x(1,1)*x(2,1)*x(3,0)+DataType(4)*x(1,0)*x(1,1)*x(3,0)*x(3,1)+DataType(4)*x(1,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(1,0)*x(1,2)*x(2,0)*x(3,2)-DataType(2)*x(1,0)*x(1,2)*x(2,2)*x(3,0)+DataType(4)*x(1,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(1,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(1,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(1,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(1,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(1,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(1,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,2))+DataType(4)*x(1,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(1,1)*x(1,2)*x(2,1)*x(3,2)-DataType(2)*x(1,1)*x(1,2)*x(2,2)*x(3,1)+DataType(4)*x(1,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(1,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(1,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(1,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(1,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(1,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(1,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,1))+DataType(2)*x(1,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(1,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(1,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(1,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(1,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(1,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,2))+DataType(4)*x(2,0)*x(2,1)*x(3,0)*x(3,1)+DataType(4)*x(2,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,2))+DataType(4)*x(2,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,1)))*Math::pow(h,-DataType(8))*(-DataType(2)*x(0,0)*x(0,1)*x(1,1)+DataType(4)*x(0,0)*x(0,1)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(3,1)-DataType(2)*x(0,0)*x(0,2)*x(1,2)+DataType(4)*x(0,0)*x(0,2)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(3,2)+DataType(2)*x(0,0)*Math::sqr(x(1,1))-DataType(2)*x(0,0)*x(1,1)*x(2,1)+DataType(2)*x(0,0)*Math::sqr(x(1,2))-DataType(2)*x(0,0)*x(1,2)*x(2,2)-DataType(2)*x(0,0)*x(2,1)*x(3,1)-DataType(2)*x(0,0)*x(2,2)*x(3,2)+DataType(2)*x(0,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*Math::sqr(x(3,2))+DataType(2)*Math::sqr(x(0,1))*x(1,0)-DataType(4)*Math::sqr(x(0,1))*x(2,0)+DataType(2)*Math::sqr(x(0,1))*x(3,0)-DataType(2)*x(0,1)*x(1,0)*x(1,1)-DataType(2)*x(0,1)*x(1,0)*x(2,1)+DataType(4)*x(0,1)*x(1,1)*x(2,0)+DataType(4)*x(0,1)*x(2,0)*x(3,1)-DataType(2)*x(0,1)*x(2,1)*x(3,0)-DataType(2)*x(0,1)*x(3,0)*x(3,1)+DataType(2)*Math::sqr(x(0,2))*x(1,0)-DataType(4)*Math::sqr(x(0,2))*x(2,0)+DataType(2)*Math::sqr(x(0,2))*x(3,0)-DataType(2)*x(0,2)*x(1,0)*x(1,2)-DataType(2)*x(0,2)*x(1,0)*x(2,2)+DataType(4)*x(0,2)*x(1,2)*x(2,0)+DataType(4)*x(0,2)*x(2,0)*x(3,2)-DataType(2)*x(0,2)*x(2,2)*x(3,0)-DataType(2)*x(0,2)*x(3,0)*x(3,2)+DataType(4)*x(1,0)*x(1,1)*x(2,1)-DataType(2)*x(1,0)*x(1,1)*x(3,1)+DataType(4)*x(1,0)*x(1,2)*x(2,2)-DataType(2)*x(1,0)*x(1,2)*x(3,2)-DataType(2)*x(1,0)*x(2,1)*x(3,1)-DataType(2)*x(1,0)*x(2,2)*x(3,2)+DataType(2)*x(1,0)*Math::sqr(x(3,1))+DataType(2)*x(1,0)*Math::sqr(x(3,2))-DataType(4)*Math::sqr(x(1,1))*x(2,0)+DataType(2)*Math::sqr(x(1,1))*x(3,0)+DataType(4)*x(1,1)*x(2,0)*x(3,1)-DataType(2)*x(1,1)*x(2,1)*x(3,0)-DataType(2)*x(1,1)*x(3,0)*x(3,1)-DataType(4)*Math::sqr(x(1,2))*x(2,0)+DataType(2)*Math::sqr(x(1,2))*x(3,0)+DataType(4)*x(1,2)*x(2,0)*x(3,2)-DataType(2)*x(1,2)*x(2,2)*x(3,0)-DataType(2)*x(1,2)*x(3,0)*x(3,2)-DataType(4)*x(2,0)*Math::sqr(x(3,1))-DataType(4)*x(2,0)*Math::sqr(x(3,2))+DataType(4)*x(2,1)*x(3,0)*x(3,1)+DataType(4)*x(2,2)*x(3,0)*x(3,2));
446
447 grad_cof_part(2,1) += DataType(2)*this->_fac_cof*(DataType(3)*Math::pow(h,DataType(4))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,2))+DataType(4)*x(0,0)*x(0,1)*x(1,0)*x(1,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(2,0)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(2,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(2,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(3,0)*x(3,1)+DataType(4)*x(0,0)*x(0,2)*x(1,0)*x(1,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(2,0)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(2,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(2,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(2,1)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(3,1)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(2,2)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(3,2)+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,2))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(3,0)-DataType(2)*x(0,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(1,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(3,0)-DataType(2)*x(0,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(0,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(0,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(0,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,2))+DataType(4)*x(0,1)*x(0,2)*x(1,1)*x(1,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(2,1)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(2,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(2,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(3,1)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(2,0)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(3,0)-DataType(2)*x(0,1)*x(1,0)*x(2,0)*x(2,1)-DataType(2)*x(0,1)*x(1,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(2,2)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(3,2)+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,2))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(3,1)-DataType(2)*x(0,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(0,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(0,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(0,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(3,2)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(2,0)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(3,0)-DataType(2)*x(0,2)*x(1,0)*x(2,0)*x(2,2)-DataType(2)*x(0,2)*x(1,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(3,2)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(2,1)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(3,1)-DataType(2)*x(0,2)*x(1,1)*x(2,1)*x(2,2)-DataType(2)*x(0,2)*x(1,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,1))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(0,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(0,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(0,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(0,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,2))+DataType(4)*x(1,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(1,0)*x(1,1)*x(2,0)*x(3,1)-DataType(2)*x(1,0)*x(1,1)*x(2,1)*x(3,0)+DataType(4)*x(1,0)*x(1,1)*x(3,0)*x(3,1)+DataType(4)*x(1,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(1,0)*x(1,2)*x(2,0)*x(3,2)-DataType(2)*x(1,0)*x(1,2)*x(2,2)*x(3,0)+DataType(4)*x(1,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(1,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(1,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(1,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(1,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(1,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(1,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,2))+DataType(4)*x(1,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(1,1)*x(1,2)*x(2,1)*x(3,2)-DataType(2)*x(1,1)*x(1,2)*x(2,2)*x(3,1)+DataType(4)*x(1,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(1,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(1,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(1,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(1,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(1,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(1,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,1))+DataType(2)*x(1,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(1,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(1,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(1,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(1,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(1,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,2))+DataType(4)*x(2,0)*x(2,1)*x(3,0)*x(3,1)+DataType(4)*x(2,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,2))+DataType(4)*x(2,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,1)))*Math::pow(h,-DataType(8))*(DataType(2)*Math::sqr(x(0,0))*x(1,1)-DataType(4)*Math::sqr(x(0,0))*x(2,1)+DataType(2)*Math::sqr(x(0,0))*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)+DataType(4)*x(0,0)*x(0,1)*x(2,0)-DataType(2)*x(0,0)*x(0,1)*x(3,0)-DataType(2)*x(0,0)*x(1,0)*x(1,1)+DataType(4)*x(0,0)*x(1,0)*x(2,1)-DataType(2)*x(0,0)*x(1,1)*x(2,0)-DataType(2)*x(0,0)*x(2,0)*x(3,1)+DataType(4)*x(0,0)*x(2,1)*x(3,0)-DataType(2)*x(0,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(0,2)*x(1,2)+DataType(4)*x(0,1)*x(0,2)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(1,0))-DataType(2)*x(0,1)*x(1,0)*x(2,0)+DataType(2)*x(0,1)*Math::sqr(x(1,2))-DataType(2)*x(0,1)*x(1,2)*x(2,2)-DataType(2)*x(0,1)*x(2,0)*x(3,0)-DataType(2)*x(0,1)*x(2,2)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*Math::sqr(x(3,2))+DataType(2)*Math::sqr(x(0,2))*x(1,1)-DataType(4)*Math::sqr(x(0,2))*x(2,1)+DataType(2)*Math::sqr(x(0,2))*x(3,1)-DataType(2)*x(0,2)*x(1,1)*x(1,2)-DataType(2)*x(0,2)*x(1,1)*x(2,2)+DataType(4)*x(0,2)*x(1,2)*x(2,1)+DataType(4)*x(0,2)*x(2,1)*x(3,2)-DataType(2)*x(0,2)*x(2,2)*x(3,1)-DataType(2)*x(0,2)*x(3,1)*x(3,2)-DataType(4)*Math::sqr(x(1,0))*x(2,1)+DataType(2)*Math::sqr(x(1,0))*x(3,1)+DataType(4)*x(1,0)*x(1,1)*x(2,0)-DataType(2)*x(1,0)*x(1,1)*x(3,0)-DataType(2)*x(1,0)*x(2,0)*x(3,1)+DataType(4)*x(1,0)*x(2,1)*x(3,0)-DataType(2)*x(1,0)*x(3,0)*x(3,1)+DataType(4)*x(1,1)*x(1,2)*x(2,2)-DataType(2)*x(1,1)*x(1,2)*x(3,2)-DataType(2)*x(1,1)*x(2,0)*x(3,0)-DataType(2)*x(1,1)*x(2,2)*x(3,2)+DataType(2)*x(1,1)*Math::sqr(x(3,0))+DataType(2)*x(1,1)*Math::sqr(x(3,2))-DataType(4)*Math::sqr(x(1,2))*x(2,1)+DataType(2)*Math::sqr(x(1,2))*x(3,1)+DataType(4)*x(1,2)*x(2,1)*x(3,2)-DataType(2)*x(1,2)*x(2,2)*x(3,1)-DataType(2)*x(1,2)*x(3,1)*x(3,2)+DataType(4)*x(2,0)*x(3,0)*x(3,1)-DataType(4)*x(2,1)*Math::sqr(x(3,0))-DataType(4)*x(2,1)*Math::sqr(x(3,2))+DataType(4)*x(2,2)*x(3,1)*x(3,2));
448
449 grad_cof_part(2,2) += DataType(2)*this->_fac_cof*(DataType(3)*Math::pow(h,DataType(4))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,2))+DataType(4)*x(0,0)*x(0,1)*x(1,0)*x(1,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(2,0)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(2,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(2,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(3,0)*x(3,1)+DataType(4)*x(0,0)*x(0,2)*x(1,0)*x(1,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(2,0)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(2,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(2,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(2,1)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(3,1)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(2,2)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(3,2)+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,2))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(3,0)-DataType(2)*x(0,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(1,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(3,0)-DataType(2)*x(0,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(0,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(0,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(0,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,2))+DataType(4)*x(0,1)*x(0,2)*x(1,1)*x(1,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(2,1)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(2,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(2,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(3,1)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(2,0)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(3,0)-DataType(2)*x(0,1)*x(1,0)*x(2,0)*x(2,1)-DataType(2)*x(0,1)*x(1,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(2,2)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(3,2)+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,2))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(3,1)-DataType(2)*x(0,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(0,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(0,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(0,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(3,2)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(2,0)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(3,0)-DataType(2)*x(0,2)*x(1,0)*x(2,0)*x(2,2)-DataType(2)*x(0,2)*x(1,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(3,2)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(2,1)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(3,1)-DataType(2)*x(0,2)*x(1,1)*x(2,1)*x(2,2)-DataType(2)*x(0,2)*x(1,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,1))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(0,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(0,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(0,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(0,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,2))+DataType(4)*x(1,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(1,0)*x(1,1)*x(2,0)*x(3,1)-DataType(2)*x(1,0)*x(1,1)*x(2,1)*x(3,0)+DataType(4)*x(1,0)*x(1,1)*x(3,0)*x(3,1)+DataType(4)*x(1,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(1,0)*x(1,2)*x(2,0)*x(3,2)-DataType(2)*x(1,0)*x(1,2)*x(2,2)*x(3,0)+DataType(4)*x(1,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(1,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(1,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(1,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(1,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(1,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(1,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,2))+DataType(4)*x(1,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(1,1)*x(1,2)*x(2,1)*x(3,2)-DataType(2)*x(1,1)*x(1,2)*x(2,2)*x(3,1)+DataType(4)*x(1,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(1,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(1,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(1,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(1,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(1,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(1,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,1))+DataType(2)*x(1,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(1,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(1,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(1,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(1,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(1,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,2))+DataType(4)*x(2,0)*x(2,1)*x(3,0)*x(3,1)+DataType(4)*x(2,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,2))+DataType(4)*x(2,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,1)))*Math::pow(h,-DataType(8))*(DataType(2)*Math::sqr(x(0,0))*x(1,2)-DataType(4)*Math::sqr(x(0,0))*x(2,2)+DataType(2)*Math::sqr(x(0,0))*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)+DataType(4)*x(0,0)*x(0,2)*x(2,0)-DataType(2)*x(0,0)*x(0,2)*x(3,0)-DataType(2)*x(0,0)*x(1,0)*x(1,2)+DataType(4)*x(0,0)*x(1,0)*x(2,2)-DataType(2)*x(0,0)*x(1,2)*x(2,0)-DataType(2)*x(0,0)*x(2,0)*x(3,2)+DataType(4)*x(0,0)*x(2,2)*x(3,0)-DataType(2)*x(0,0)*x(3,0)*x(3,2)+DataType(2)*Math::sqr(x(0,1))*x(1,2)-DataType(4)*Math::sqr(x(0,1))*x(2,2)+DataType(2)*Math::sqr(x(0,1))*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)+DataType(4)*x(0,1)*x(0,2)*x(2,1)-DataType(2)*x(0,1)*x(0,2)*x(3,1)-DataType(2)*x(0,1)*x(1,1)*x(1,2)+DataType(4)*x(0,1)*x(1,1)*x(2,2)-DataType(2)*x(0,1)*x(1,2)*x(2,1)-DataType(2)*x(0,1)*x(2,1)*x(3,2)+DataType(4)*x(0,1)*x(2,2)*x(3,1)-DataType(2)*x(0,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(1,0))-DataType(2)*x(0,2)*x(1,0)*x(2,0)+DataType(2)*x(0,2)*Math::sqr(x(1,1))-DataType(2)*x(0,2)*x(1,1)*x(2,1)-DataType(2)*x(0,2)*x(2,0)*x(3,0)-DataType(2)*x(0,2)*x(2,1)*x(3,1)+DataType(2)*x(0,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*Math::sqr(x(3,1))-DataType(4)*Math::sqr(x(1,0))*x(2,2)+DataType(2)*Math::sqr(x(1,0))*x(3,2)+DataType(4)*x(1,0)*x(1,2)*x(2,0)-DataType(2)*x(1,0)*x(1,2)*x(3,0)-DataType(2)*x(1,0)*x(2,0)*x(3,2)+DataType(4)*x(1,0)*x(2,2)*x(3,0)-DataType(2)*x(1,0)*x(3,0)*x(3,2)-DataType(4)*Math::sqr(x(1,1))*x(2,2)+DataType(2)*Math::sqr(x(1,1))*x(3,2)+DataType(4)*x(1,1)*x(1,2)*x(2,1)-DataType(2)*x(1,1)*x(1,2)*x(3,1)-DataType(2)*x(1,1)*x(2,1)*x(3,2)+DataType(4)*x(1,1)*x(2,2)*x(3,1)-DataType(2)*x(1,1)*x(3,1)*x(3,2)-DataType(2)*x(1,2)*x(2,0)*x(3,0)-DataType(2)*x(1,2)*x(2,1)*x(3,1)+DataType(2)*x(1,2)*Math::sqr(x(3,0))+DataType(2)*x(1,2)*Math::sqr(x(3,1))+DataType(4)*x(2,0)*x(3,0)*x(3,2)+DataType(4)*x(2,1)*x(3,1)*x(3,2)-DataType(4)*x(2,2)*Math::sqr(x(3,0))-DataType(4)*x(2,2)*Math::sqr(x(3,1)));
450
451 grad_cof_part(3,0) += DataType(2)*this->_fac_cof*(DataType(3)*Math::pow(h,DataType(4))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,2))+DataType(4)*x(0,0)*x(0,1)*x(1,0)*x(1,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(2,0)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(2,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(2,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(3,0)*x(3,1)+DataType(4)*x(0,0)*x(0,2)*x(1,0)*x(1,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(2,0)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(2,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(2,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(2,1)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(3,1)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(2,2)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(3,2)+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,2))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(3,0)-DataType(2)*x(0,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(1,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(3,0)-DataType(2)*x(0,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(0,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(0,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(0,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,2))+DataType(4)*x(0,1)*x(0,2)*x(1,1)*x(1,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(2,1)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(2,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(2,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(3,1)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(2,0)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(3,0)-DataType(2)*x(0,1)*x(1,0)*x(2,0)*x(2,1)-DataType(2)*x(0,1)*x(1,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(2,2)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(3,2)+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,2))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(3,1)-DataType(2)*x(0,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(0,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(0,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(0,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(3,2)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(2,0)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(3,0)-DataType(2)*x(0,2)*x(1,0)*x(2,0)*x(2,2)-DataType(2)*x(0,2)*x(1,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(3,2)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(2,1)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(3,1)-DataType(2)*x(0,2)*x(1,1)*x(2,1)*x(2,2)-DataType(2)*x(0,2)*x(1,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,1))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(0,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(0,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(0,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(0,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,2))+DataType(4)*x(1,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(1,0)*x(1,1)*x(2,0)*x(3,1)-DataType(2)*x(1,0)*x(1,1)*x(2,1)*x(3,0)+DataType(4)*x(1,0)*x(1,1)*x(3,0)*x(3,1)+DataType(4)*x(1,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(1,0)*x(1,2)*x(2,0)*x(3,2)-DataType(2)*x(1,0)*x(1,2)*x(2,2)*x(3,0)+DataType(4)*x(1,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(1,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(1,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(1,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(1,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(1,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(1,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,2))+DataType(4)*x(1,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(1,1)*x(1,2)*x(2,1)*x(3,2)-DataType(2)*x(1,1)*x(1,2)*x(2,2)*x(3,1)+DataType(4)*x(1,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(1,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(1,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(1,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(1,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(1,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(1,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,1))+DataType(2)*x(1,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(1,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(1,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(1,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(1,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(1,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,2))+DataType(4)*x(2,0)*x(2,1)*x(3,0)*x(3,1)+DataType(4)*x(2,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,2))+DataType(4)*x(2,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,1)))*Math::pow(h,-DataType(8))*(-DataType(2)*x(0,0)*x(0,1)*x(1,1)-DataType(2)*x(0,0)*x(0,1)*x(2,1)+DataType(4)*x(0,0)*x(0,1)*x(3,1)-DataType(2)*x(0,0)*x(0,2)*x(1,2)-DataType(2)*x(0,0)*x(0,2)*x(2,2)+DataType(4)*x(0,0)*x(0,2)*x(3,2)+DataType(2)*x(0,0)*Math::sqr(x(1,1))-DataType(2)*x(0,0)*x(1,1)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(1,2))-DataType(2)*x(0,0)*x(1,2)*x(3,2)+DataType(2)*x(0,0)*Math::sqr(x(2,1))-DataType(2)*x(0,0)*x(2,1)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(2,2))-DataType(2)*x(0,0)*x(2,2)*x(3,2)+DataType(2)*Math::sqr(x(0,1))*x(1,0)+DataType(2)*Math::sqr(x(0,1))*x(2,0)-DataType(4)*Math::sqr(x(0,1))*x(3,0)-DataType(2)*x(0,1)*x(1,0)*x(1,1)-DataType(2)*x(0,1)*x(1,0)*x(3,1)+DataType(4)*x(0,1)*x(1,1)*x(3,0)-DataType(2)*x(0,1)*x(2,0)*x(2,1)-DataType(2)*x(0,1)*x(2,0)*x(3,1)+DataType(4)*x(0,1)*x(2,1)*x(3,0)+DataType(2)*Math::sqr(x(0,2))*x(1,0)+DataType(2)*Math::sqr(x(0,2))*x(2,0)-DataType(4)*Math::sqr(x(0,2))*x(3,0)-DataType(2)*x(0,2)*x(1,0)*x(1,2)-DataType(2)*x(0,2)*x(1,0)*x(3,2)+DataType(4)*x(0,2)*x(1,2)*x(3,0)-DataType(2)*x(0,2)*x(2,0)*x(2,2)-DataType(2)*x(0,2)*x(2,0)*x(3,2)+DataType(4)*x(0,2)*x(2,2)*x(3,0)-DataType(2)*x(1,0)*x(1,1)*x(2,1)+DataType(4)*x(1,0)*x(1,1)*x(3,1)-DataType(2)*x(1,0)*x(1,2)*x(2,2)+DataType(4)*x(1,0)*x(1,2)*x(3,2)+DataType(2)*x(1,0)*Math::sqr(x(2,1))-DataType(2)*x(1,0)*x(2,1)*x(3,1)+DataType(2)*x(1,0)*Math::sqr(x(2,2))-DataType(2)*x(1,0)*x(2,2)*x(3,2)+DataType(2)*Math::sqr(x(1,1))*x(2,0)-DataType(4)*Math::sqr(x(1,1))*x(3,0)-DataType(2)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(1,1)*x(2,0)*x(3,1)+DataType(4)*x(1,1)*x(2,1)*x(3,0)+DataType(2)*Math::sqr(x(1,2))*x(2,0)-DataType(4)*Math::sqr(x(1,2))*x(3,0)-DataType(2)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(1,2)*x(2,0)*x(3,2)+DataType(4)*x(1,2)*x(2,2)*x(3,0)+DataType(4)*x(2,0)*x(2,1)*x(3,1)+DataType(4)*x(2,0)*x(2,2)*x(3,2)-DataType(4)*Math::sqr(x(2,1))*x(3,0)-DataType(4)*Math::sqr(x(2,2))*x(3,0));
452
453 grad_cof_part(3,1) += DataType(2)*this->_fac_cof*(DataType(3)*Math::pow(h,DataType(4))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,2))+DataType(4)*x(0,0)*x(0,1)*x(1,0)*x(1,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(2,0)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(2,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(2,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(3,0)*x(3,1)+DataType(4)*x(0,0)*x(0,2)*x(1,0)*x(1,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(2,0)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(2,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(2,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(2,1)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(3,1)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(2,2)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(3,2)+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,2))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(3,0)-DataType(2)*x(0,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(1,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(3,0)-DataType(2)*x(0,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(0,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(0,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(0,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,2))+DataType(4)*x(0,1)*x(0,2)*x(1,1)*x(1,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(2,1)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(2,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(2,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(3,1)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(2,0)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(3,0)-DataType(2)*x(0,1)*x(1,0)*x(2,0)*x(2,1)-DataType(2)*x(0,1)*x(1,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(2,2)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(3,2)+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,2))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(3,1)-DataType(2)*x(0,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(0,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(0,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(0,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(3,2)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(2,0)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(3,0)-DataType(2)*x(0,2)*x(1,0)*x(2,0)*x(2,2)-DataType(2)*x(0,2)*x(1,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(3,2)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(2,1)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(3,1)-DataType(2)*x(0,2)*x(1,1)*x(2,1)*x(2,2)-DataType(2)*x(0,2)*x(1,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,1))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(0,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(0,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(0,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(0,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,2))+DataType(4)*x(1,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(1,0)*x(1,1)*x(2,0)*x(3,1)-DataType(2)*x(1,0)*x(1,1)*x(2,1)*x(3,0)+DataType(4)*x(1,0)*x(1,1)*x(3,0)*x(3,1)+DataType(4)*x(1,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(1,0)*x(1,2)*x(2,0)*x(3,2)-DataType(2)*x(1,0)*x(1,2)*x(2,2)*x(3,0)+DataType(4)*x(1,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(1,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(1,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(1,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(1,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(1,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(1,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,2))+DataType(4)*x(1,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(1,1)*x(1,2)*x(2,1)*x(3,2)-DataType(2)*x(1,1)*x(1,2)*x(2,2)*x(3,1)+DataType(4)*x(1,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(1,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(1,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(1,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(1,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(1,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(1,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,1))+DataType(2)*x(1,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(1,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(1,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(1,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(1,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(1,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,2))+DataType(4)*x(2,0)*x(2,1)*x(3,0)*x(3,1)+DataType(4)*x(2,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,2))+DataType(4)*x(2,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,1)))*Math::pow(h,-DataType(8))*(DataType(2)*Math::sqr(x(0,0))*x(1,1)+DataType(2)*Math::sqr(x(0,0))*x(2,1)-DataType(4)*Math::sqr(x(0,0))*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)-DataType(2)*x(0,0)*x(0,1)*x(2,0)+DataType(4)*x(0,0)*x(0,1)*x(3,0)-DataType(2)*x(0,0)*x(1,0)*x(1,1)+DataType(4)*x(0,0)*x(1,0)*x(3,1)-DataType(2)*x(0,0)*x(1,1)*x(3,0)-DataType(2)*x(0,0)*x(2,0)*x(2,1)+DataType(4)*x(0,0)*x(2,0)*x(3,1)-DataType(2)*x(0,0)*x(2,1)*x(3,0)-DataType(2)*x(0,1)*x(0,2)*x(1,2)-DataType(2)*x(0,1)*x(0,2)*x(2,2)+DataType(4)*x(0,1)*x(0,2)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(1,0))-DataType(2)*x(0,1)*x(1,0)*x(3,0)+DataType(2)*x(0,1)*Math::sqr(x(1,2))-DataType(2)*x(0,1)*x(1,2)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(2,0))-DataType(2)*x(0,1)*x(2,0)*x(3,0)+DataType(2)*x(0,1)*Math::sqr(x(2,2))-DataType(2)*x(0,1)*x(2,2)*x(3,2)+DataType(2)*Math::sqr(x(0,2))*x(1,1)+DataType(2)*Math::sqr(x(0,2))*x(2,1)-DataType(4)*Math::sqr(x(0,2))*x(3,1)-DataType(2)*x(0,2)*x(1,1)*x(1,2)-DataType(2)*x(0,2)*x(1,1)*x(3,2)+DataType(4)*x(0,2)*x(1,2)*x(3,1)-DataType(2)*x(0,2)*x(2,1)*x(2,2)-DataType(2)*x(0,2)*x(2,1)*x(3,2)+DataType(4)*x(0,2)*x(2,2)*x(3,1)+DataType(2)*Math::sqr(x(1,0))*x(2,1)-DataType(4)*Math::sqr(x(1,0))*x(3,1)-DataType(2)*x(1,0)*x(1,1)*x(2,0)+DataType(4)*x(1,0)*x(1,1)*x(3,0)-DataType(2)*x(1,0)*x(2,0)*x(2,1)+DataType(4)*x(1,0)*x(2,0)*x(3,1)-DataType(2)*x(1,0)*x(2,1)*x(3,0)-DataType(2)*x(1,1)*x(1,2)*x(2,2)+DataType(4)*x(1,1)*x(1,2)*x(3,2)+DataType(2)*x(1,1)*Math::sqr(x(2,0))-DataType(2)*x(1,1)*x(2,0)*x(3,0)+DataType(2)*x(1,1)*Math::sqr(x(2,2))-DataType(2)*x(1,1)*x(2,2)*x(3,2)+DataType(2)*Math::sqr(x(1,2))*x(2,1)-DataType(4)*Math::sqr(x(1,2))*x(3,1)-DataType(2)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(1,2)*x(2,1)*x(3,2)+DataType(4)*x(1,2)*x(2,2)*x(3,1)-DataType(4)*Math::sqr(x(2,0))*x(3,1)+DataType(4)*x(2,0)*x(2,1)*x(3,0)+DataType(4)*x(2,1)*x(2,2)*x(3,2)-DataType(4)*Math::sqr(x(2,2))*x(3,1));
454
455 grad_cof_part(3,2) += DataType(2)*this->_fac_cof*(DataType(3)*Math::pow(h,DataType(4))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,0))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,0))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(0,0))*Math::sqr(x(3,2))+DataType(4)*x(0,0)*x(0,1)*x(1,0)*x(1,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(1,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(2,0)-DataType(2)*x(0,0)*x(0,1)*x(1,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(0,1)*x(2,0)*x(3,1)-DataType(2)*x(0,0)*x(0,1)*x(2,1)*x(3,0)+DataType(4)*x(0,0)*x(0,1)*x(3,0)*x(3,1)+DataType(4)*x(0,0)*x(0,2)*x(1,0)*x(1,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(2,0)-DataType(2)*x(0,0)*x(0,2)*x(1,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(0,2)*x(2,0)*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(2,2)*x(3,0)+DataType(4)*x(0,0)*x(0,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(2,1)-DataType(2)*x(0,0)*x(1,0)*x(1,1)*x(3,1)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(2,2)-DataType(2)*x(0,0)*x(1,0)*x(1,2)*x(3,2)+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(2,2))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(1,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,1))*x(3,0)-DataType(2)*x(0,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(0,0)*x(1,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(2,0)+DataType(2)*x(0,0)*Math::sqr(x(1,2))*x(3,0)-DataType(2)*x(0,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(0,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(0,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(0,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(0,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(0,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(0,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(0,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(0,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,1))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(1,2))+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(2,2)+DataType(2)*Math::sqr(x(0,1))*x(1,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(0,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,1))*Math::sqr(x(3,2))+DataType(4)*x(0,1)*x(0,2)*x(1,1)*x(1,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(2,1)-DataType(2)*x(0,1)*x(0,2)*x(1,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(0,2)*x(2,1)*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(2,2)*x(3,1)+DataType(4)*x(0,1)*x(0,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,0))*x(3,1)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(2,0)-DataType(2)*x(0,1)*x(1,0)*x(1,1)*x(3,0)-DataType(2)*x(0,1)*x(1,0)*x(2,0)*x(2,1)-DataType(2)*x(0,1)*x(1,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(2,2)-DataType(2)*x(0,1)*x(1,1)*x(1,2)*x(3,2)+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(2,2))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(1,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(2,1)+DataType(2)*x(0,1)*Math::sqr(x(1,2))*x(3,1)-DataType(2)*x(0,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(0,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(0,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(0,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(0,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(0,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(0,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(0,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(0,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,0))+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(2,0)+DataType(2)*Math::sqr(x(0,2))*x(1,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(1,1))+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(2,1)+DataType(2)*Math::sqr(x(0,2))*x(1,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(0,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(0,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(0,2))*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,0))*x(3,2)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(2,0)-DataType(2)*x(0,2)*x(1,0)*x(1,2)*x(3,0)-DataType(2)*x(0,2)*x(1,0)*x(2,0)*x(2,2)-DataType(2)*x(0,2)*x(1,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(2,2)+DataType(2)*x(0,2)*Math::sqr(x(1,1))*x(3,2)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(2,1)-DataType(2)*x(0,2)*x(1,1)*x(1,2)*x(3,1)-DataType(2)*x(0,2)*x(1,1)*x(2,1)*x(2,2)-DataType(2)*x(0,2)*x(1,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(2,1))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(1,2)*Math::sqr(x(3,1))+DataType(2)*x(0,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(0,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(0,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(0,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(0,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(0,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(0,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,0))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,0))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(1,0))*Math::sqr(x(3,2))+DataType(4)*x(1,0)*x(1,1)*x(2,0)*x(2,1)-DataType(2)*x(1,0)*x(1,1)*x(2,0)*x(3,1)-DataType(2)*x(1,0)*x(1,1)*x(2,1)*x(3,0)+DataType(4)*x(1,0)*x(1,1)*x(3,0)*x(3,1)+DataType(4)*x(1,0)*x(1,2)*x(2,0)*x(2,2)-DataType(2)*x(1,0)*x(1,2)*x(2,0)*x(3,2)-DataType(2)*x(1,0)*x(1,2)*x(2,2)*x(3,0)+DataType(4)*x(1,0)*x(1,2)*x(3,0)*x(3,2)-DataType(2)*x(1,0)*x(2,0)*x(2,1)*x(3,1)-DataType(2)*x(1,0)*x(2,0)*x(2,2)*x(3,2)+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,1))+DataType(2)*x(1,0)*x(2,0)*Math::sqr(x(3,2))+DataType(2)*x(1,0)*Math::sqr(x(2,1))*x(3,0)-DataType(2)*x(1,0)*x(2,1)*x(3,0)*x(3,1)+DataType(2)*x(1,0)*Math::sqr(x(2,2))*x(3,0)-DataType(2)*x(1,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,1))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(2,2))+DataType(2)*Math::sqr(x(1,1))*x(2,2)*x(3,2)-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,1))*Math::sqr(x(3,2))+DataType(4)*x(1,1)*x(1,2)*x(2,1)*x(2,2)-DataType(2)*x(1,1)*x(1,2)*x(2,1)*x(3,2)-DataType(2)*x(1,1)*x(1,2)*x(2,2)*x(3,1)+DataType(4)*x(1,1)*x(1,2)*x(3,1)*x(3,2)+DataType(2)*x(1,1)*Math::sqr(x(2,0))*x(3,1)-DataType(2)*x(1,1)*x(2,0)*x(2,1)*x(3,0)-DataType(2)*x(1,1)*x(2,0)*x(3,0)*x(3,1)-DataType(2)*x(1,1)*x(2,1)*x(2,2)*x(3,2)+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,0))+DataType(2)*x(1,1)*x(2,1)*Math::sqr(x(3,2))+DataType(2)*x(1,1)*Math::sqr(x(2,2))*x(3,1)-DataType(2)*x(1,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,0))+DataType(2)*Math::sqr(x(1,2))*x(2,0)*x(3,0)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(2,1))+DataType(2)*Math::sqr(x(1,2))*x(2,1)*x(3,1)-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(1,2))*Math::sqr(x(3,1))+DataType(2)*x(1,2)*Math::sqr(x(2,0))*x(3,2)-DataType(2)*x(1,2)*x(2,0)*x(2,2)*x(3,0)-DataType(2)*x(1,2)*x(2,0)*x(3,0)*x(3,2)+DataType(2)*x(1,2)*Math::sqr(x(2,1))*x(3,2)-DataType(2)*x(1,2)*x(2,1)*x(2,2)*x(3,1)-DataType(2)*x(1,2)*x(2,1)*x(3,1)*x(3,2)+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,0))+DataType(2)*x(1,2)*x(2,2)*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,1))-DataType(2)*Math::sqr(x(2,0))*Math::sqr(x(3,2))+DataType(4)*x(2,0)*x(2,1)*x(3,0)*x(3,1)+DataType(4)*x(2,0)*x(2,2)*x(3,0)*x(3,2)-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,1))*Math::sqr(x(3,2))+DataType(4)*x(2,1)*x(2,2)*x(3,1)*x(3,2)-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,0))-DataType(2)*Math::sqr(x(2,2))*Math::sqr(x(3,1)))*Math::pow(h,-DataType(8))*(DataType(2)*Math::sqr(x(0,0))*x(1,2)+DataType(2)*Math::sqr(x(0,0))*x(2,2)-DataType(4)*Math::sqr(x(0,0))*x(3,2)-DataType(2)*x(0,0)*x(0,2)*x(1,0)-DataType(2)*x(0,0)*x(0,2)*x(2,0)+DataType(4)*x(0,0)*x(0,2)*x(3,0)-DataType(2)*x(0,0)*x(1,0)*x(1,2)+DataType(4)*x(0,0)*x(1,0)*x(3,2)-DataType(2)*x(0,0)*x(1,2)*x(3,0)-DataType(2)*x(0,0)*x(2,0)*x(2,2)+DataType(4)*x(0,0)*x(2,0)*x(3,2)-DataType(2)*x(0,0)*x(2,2)*x(3,0)+DataType(2)*Math::sqr(x(0,1))*x(1,2)+DataType(2)*Math::sqr(x(0,1))*x(2,2)-DataType(4)*Math::sqr(x(0,1))*x(3,2)-DataType(2)*x(0,1)*x(0,2)*x(1,1)-DataType(2)*x(0,1)*x(0,2)*x(2,1)+DataType(4)*x(0,1)*x(0,2)*x(3,1)-DataType(2)*x(0,1)*x(1,1)*x(1,2)+DataType(4)*x(0,1)*x(1,1)*x(3,2)-DataType(2)*x(0,1)*x(1,2)*x(3,1)-DataType(2)*x(0,1)*x(2,1)*x(2,2)+DataType(4)*x(0,1)*x(2,1)*x(3,2)-DataType(2)*x(0,1)*x(2,2)*x(3,1)+DataType(2)*x(0,2)*Math::sqr(x(1,0))-DataType(2)*x(0,2)*x(1,0)*x(3,0)+DataType(2)*x(0,2)*Math::sqr(x(1,1))-DataType(2)*x(0,2)*x(1,1)*x(3,1)+DataType(2)*x(0,2)*Math::sqr(x(2,0))-DataType(2)*x(0,2)*x(2,0)*x(3,0)+DataType(2)*x(0,2)*Math::sqr(x(2,1))-DataType(2)*x(0,2)*x(2,1)*x(3,1)+DataType(2)*Math::sqr(x(1,0))*x(2,2)-DataType(4)*Math::sqr(x(1,0))*x(3,2)-DataType(2)*x(1,0)*x(1,2)*x(2,0)+DataType(4)*x(1,0)*x(1,2)*x(3,0)-DataType(2)*x(1,0)*x(2,0)*x(2,2)+DataType(4)*x(1,0)*x(2,0)*x(3,2)-DataType(2)*x(1,0)*x(2,2)*x(3,0)+DataType(2)*Math::sqr(x(1,1))*x(2,2)-DataType(4)*Math::sqr(x(1,1))*x(3,2)-DataType(2)*x(1,1)*x(1,2)*x(2,1)+DataType(4)*x(1,1)*x(1,2)*x(3,1)-DataType(2)*x(1,1)*x(2,1)*x(2,2)+DataType(4)*x(1,1)*x(2,1)*x(3,2)-DataType(2)*x(1,1)*x(2,2)*x(3,1)+DataType(2)*x(1,2)*Math::sqr(x(2,0))-DataType(2)*x(1,2)*x(2,0)*x(3,0)+DataType(2)*x(1,2)*Math::sqr(x(2,1))-DataType(2)*x(1,2)*x(2,1)*x(3,1)-DataType(4)*Math::sqr(x(2,0))*x(3,2)+DataType(4)*x(2,0)*x(2,2)*x(3,0)-DataType(4)*Math::sqr(x(2,1))*x(3,2)+DataType(4)*x(2,1)*x(2,2)*x(3,1));
456
457 }
458
462 void NOINLINE add_grad_det_1_part(Tx& grad_det_1_part, const Tx& x, const DataType& h)
463 {
464 grad_det_1_part(0,0) += -this->_fac_det*Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(1,1)*x(2,2)-x(1,1)*x(3,2)-x(1,2)*x(2,1)+x(1,2)*x(3,1)+x(2,1)*x(3,2)-x(2,2)*x(3,1))/(h*h*h)/DataType(3);
465
466 grad_det_1_part(0,1) += -this->_fac_det*Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(-x(1,0)*x(2,2)+x(1,0)*x(3,2)+x(1,2)*x(2,0)-x(1,2)*x(3,0)-x(2,0)*x(3,2)+x(2,2)*x(3,0))/(h*h*h)/DataType(3);
467
468 grad_det_1_part(0,2) += -this->_fac_det*Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(1,0)*x(2,1)-x(1,0)*x(3,1)-x(1,1)*x(2,0)+x(1,1)*x(3,0)+x(2,0)*x(3,1)-x(2,1)*x(3,0))/(h*h*h)/DataType(3);
469
470 grad_det_1_part(1,0) += -this->_fac_det*Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(-x(0,1)*x(2,2)+x(0,1)*x(3,2)+x(0,2)*x(2,1)-x(0,2)*x(3,1)-x(2,1)*x(3,2)+x(2,2)*x(3,1))/(h*h*h)/DataType(3);
471
472 grad_det_1_part(1,1) += -this->_fac_det*Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(2,2)-x(0,0)*x(3,2)-x(0,2)*x(2,0)+x(0,2)*x(3,0)+x(2,0)*x(3,2)-x(2,2)*x(3,0))/(h*h*h)/DataType(3);
473
474 grad_det_1_part(1,2) += -this->_fac_det*Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(-x(0,0)*x(2,1)+x(0,0)*x(3,1)+x(0,1)*x(2,0)-x(0,1)*x(3,0)-x(2,0)*x(3,1)+x(2,1)*x(3,0))/(h*h*h)/DataType(3);
475
476 grad_det_1_part(2,0) += -this->_fac_det*Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,1)*x(1,2)-x(0,1)*x(3,2)-x(0,2)*x(1,1)+x(0,2)*x(3,1)+x(1,1)*x(3,2)-x(1,2)*x(3,1))/(h*h*h)/DataType(3);
477
478 grad_det_1_part(2,1) += -this->_fac_det*Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(-x(0,0)*x(1,2)+x(0,0)*x(3,2)+x(0,2)*x(1,0)-x(0,2)*x(3,0)-x(1,0)*x(3,2)+x(1,2)*x(3,0))/(h*h*h)/DataType(3);
479
480 grad_det_1_part(2,2) += -this->_fac_det*Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)-x(0,0)*x(3,1)-x(0,1)*x(1,0)+x(0,1)*x(3,0)+x(1,0)*x(3,1)-x(1,1)*x(3,0))/(h*h*h)/DataType(3);
481
482 grad_det_1_part(3,0) += -this->_fac_det*Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(-x(0,1)*x(1,2)+x(0,1)*x(2,2)+x(0,2)*x(1,1)-x(0,2)*x(2,1)-x(1,1)*x(2,2)+x(1,2)*x(2,1))/(h*h*h)/DataType(3);
483
484 grad_det_1_part(3,1) += -this->_fac_det*Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,2)-x(0,0)*x(2,2)-x(0,2)*x(1,0)+x(0,2)*x(2,0)+x(1,0)*x(2,2)-x(1,2)*x(2,0))/(h*h*h)/DataType(3);
485
486 grad_det_1_part(3,2) += -this->_fac_det*Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(-x(0,0)*x(1,1)+x(0,0)*x(2,1)+x(0,1)*x(1,0)-x(0,1)*x(2,0)-x(1,0)*x(2,1)+x(1,1)*x(2,0))/(h*h*h)/DataType(3);
487 }
488
492 void NOINLINE add_grad_det_2_part(Tx& grad_det_2_part, const Tx& x, const DataType& h)
493 {
494 grad_det_2_part(0,0) += DataType(4)*this->_fac_det*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(x(1,1)*x(2,2)-x(1,1)*x(3,2)-x(1,2)*x(2,1)+x(1,2)*x(3,1)+x(2,1)*x(3,2)-x(2,2)*x(3,1));
495
496 grad_det_2_part(0,1) += DataType(4)*this->_fac_det*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(-x(1,0)*x(2,2)+x(1,0)*x(3,2)+x(1,2)*x(2,0)-x(1,2)*x(3,0)-x(2,0)*x(3,2)+x(2,2)*x(3,0));
497
498 grad_det_2_part(0,2) += DataType(4)*this->_fac_det*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(x(1,0)*x(2,1)-x(1,0)*x(3,1)-x(1,1)*x(2,0)+x(1,1)*x(3,0)+x(2,0)*x(3,1)-x(2,1)*x(3,0));
499
500 grad_det_2_part(1,0) += DataType(4)*this->_fac_det*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(-x(0,1)*x(2,2)+x(0,1)*x(3,2)+x(0,2)*x(2,1)-x(0,2)*x(3,1)-x(2,1)*x(3,2)+x(2,2)*x(3,1));
501
502 grad_det_2_part(1,1) += DataType(4)*this->_fac_det*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(x(0,0)*x(2,2)-x(0,0)*x(3,2)-x(0,2)*x(2,0)+x(0,2)*x(3,0)+x(2,0)*x(3,2)-x(2,2)*x(3,0));
503
504 grad_det_2_part(1,2) += DataType(4)*this->_fac_det*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(-x(0,0)*x(2,1)+x(0,0)*x(3,1)+x(0,1)*x(2,0)-x(0,1)*x(3,0)-x(2,0)*x(3,1)+x(2,1)*x(3,0));
505
506 grad_det_2_part(2,0) += DataType(4)*this->_fac_det*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(x(0,1)*x(1,2)-x(0,1)*x(3,2)-x(0,2)*x(1,1)+x(0,2)*x(3,1)+x(1,1)*x(3,2)-x(1,2)*x(3,1));
507
508 grad_det_2_part(2,1) += DataType(4)*this->_fac_det*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(-x(0,0)*x(1,2)+x(0,0)*x(3,2)+x(0,2)*x(1,0)-x(0,2)*x(3,0)-x(1,0)*x(3,2)+x(1,2)*x(3,0));
509
510 grad_det_2_part(2,2) += DataType(4)*this->_fac_det*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(x(0,0)*x(1,1)-x(0,0)*x(3,1)-x(0,1)*x(1,0)+x(0,1)*x(3,0)+x(1,0)*x(3,1)-x(1,1)*x(3,0));
511
512 grad_det_2_part(3,0) += DataType(4)*this->_fac_det*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(-x(0,1)*x(1,2)+x(0,1)*x(2,2)+x(0,2)*x(1,1)-x(0,2)*x(2,1)-x(1,1)*x(2,2)+x(1,2)*x(2,1));
513
514 grad_det_2_part(3,1) += DataType(4)*this->_fac_det*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(x(0,0)*x(1,2)-x(0,0)*x(2,2)-x(0,2)*x(1,0)+x(0,2)*x(2,0)+x(1,0)*x(2,2)-x(1,2)*x(2,0));
515
516 grad_det_2_part(3,2) += DataType(4)*this->_fac_det*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(-x(0,0)*x(1,1)+x(0,0)*x(2,1)+x(0,1)*x(1,0)-x(0,1)*x(2,0)-x(1,0)*x(2,1)+x(1,1)*x(2,0));
517 }
518
522 void NOINLINE add_grad_rec_det_1_part(Tx& grad_rec_det_1_part, const Tx& x, const DataType& h)
523 {
524 grad_rec_det_1_part(0,0) += -this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(2))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(1,1)*x(2,2)-x(1,1)*x(3,2)-x(1,2)*x(2,1)+x(1,2)*x(3,1)+x(2,1)*x(3,2)-x(2,2)*x(3,1))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(x(1,1)*x(2,2)-x(1,1)*x(3,2)-x(1,2)*x(2,1)+x(1,2)*x(3,1)+x(2,1)*x(3,2)-x(2,2)*x(3,1)));
525
526 grad_rec_det_1_part(0,1) += -this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(2))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(-x(1,0)*x(2,2)+x(1,0)*x(3,2)+x(1,2)*x(2,0)-x(1,2)*x(3,0)-x(2,0)*x(3,2)+x(2,2)*x(3,0))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(-x(1,0)*x(2,2)+x(1,0)*x(3,2)+x(1,2)*x(2,0)-x(1,2)*x(3,0)-x(2,0)*x(3,2)+x(2,2)*x(3,0)));
527
528 grad_rec_det_1_part(0,2) += -this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(2))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(1,0)*x(2,1)-x(1,0)*x(3,1)-x(1,1)*x(2,0)+x(1,1)*x(3,0)+x(2,0)*x(3,1)-x(2,1)*x(3,0))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(x(1,0)*x(2,1)-x(1,0)*x(3,1)-x(1,1)*x(2,0)+x(1,1)*x(3,0)+x(2,0)*x(3,1)-x(2,1)*x(3,0)));
529
530 grad_rec_det_1_part(1,0) += -this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(2))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(-x(0,1)*x(2,2)+x(0,1)*x(3,2)+x(0,2)*x(2,1)-x(0,2)*x(3,1)-x(2,1)*x(3,2)+x(2,2)*x(3,1))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(-x(0,1)*x(2,2)+x(0,1)*x(3,2)+x(0,2)*x(2,1)-x(0,2)*x(3,1)-x(2,1)*x(3,2)+x(2,2)*x(3,1)));
531
532 grad_rec_det_1_part(1,1) += -this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(2))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(2,2)-x(0,0)*x(3,2)-x(0,2)*x(2,0)+x(0,2)*x(3,0)+x(2,0)*x(3,2)-x(2,2)*x(3,0))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(x(0,0)*x(2,2)-x(0,0)*x(3,2)-x(0,2)*x(2,0)+x(0,2)*x(3,0)+x(2,0)*x(3,2)-x(2,2)*x(3,0)));
533
534 grad_rec_det_1_part(1,2) += -this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(2))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(-x(0,0)*x(2,1)+x(0,0)*x(3,1)+x(0,1)*x(2,0)-x(0,1)*x(3,0)-x(2,0)*x(3,1)+x(2,1)*x(3,0))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(-x(0,0)*x(2,1)+x(0,0)*x(3,1)+x(0,1)*x(2,0)-x(0,1)*x(3,0)-x(2,0)*x(3,1)+x(2,1)*x(3,0)));
535
536 grad_rec_det_1_part(2,0) += -this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(2))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,1)*x(1,2)-x(0,1)*x(3,2)-x(0,2)*x(1,1)+x(0,2)*x(3,1)+x(1,1)*x(3,2)-x(1,2)*x(3,1))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(x(0,1)*x(1,2)-x(0,1)*x(3,2)-x(0,2)*x(1,1)+x(0,2)*x(3,1)+x(1,1)*x(3,2)-x(1,2)*x(3,1)));
537
538 grad_rec_det_1_part(2,1) += -this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(2))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(-x(0,0)*x(1,2)+x(0,0)*x(3,2)+x(0,2)*x(1,0)-x(0,2)*x(3,0)-x(1,0)*x(3,2)+x(1,2)*x(3,0))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(-x(0,0)*x(1,2)+x(0,0)*x(3,2)+x(0,2)*x(1,0)-x(0,2)*x(3,0)-x(1,0)*x(3,2)+x(1,2)*x(3,0)));
539
540 grad_rec_det_1_part(2,2) += -this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(2))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)-x(0,0)*x(3,1)-x(0,1)*x(1,0)+x(0,1)*x(3,0)+x(1,0)*x(3,1)-x(1,1)*x(3,0))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(x(0,0)*x(1,1)-x(0,0)*x(3,1)-x(0,1)*x(1,0)+x(0,1)*x(3,0)+x(1,0)*x(3,1)-x(1,1)*x(3,0)));
541
542 grad_rec_det_1_part(3,0) += -this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(2))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(-x(0,1)*x(1,2)+x(0,1)*x(2,2)+x(0,2)*x(1,1)-x(0,2)*x(2,1)-x(1,1)*x(2,2)+x(1,2)*x(2,1))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(-x(0,1)*x(1,2)+x(0,1)*x(2,2)+x(0,2)*x(1,1)-x(0,2)*x(2,1)-x(1,1)*x(2,2)+x(1,2)*x(2,1)));
543
544 grad_rec_det_1_part(3,1) += -this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(2))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,2)-x(0,0)*x(2,2)-x(0,2)*x(1,0)+x(0,2)*x(2,0)+x(1,0)*x(2,2)-x(1,2)*x(2,0))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(x(0,0)*x(1,2)-x(0,0)*x(2,2)-x(0,2)*x(1,0)+x(0,2)*x(2,0)+x(1,0)*x(2,2)-x(1,2)*x(2,0)));
545
546 grad_rec_det_1_part(3,2) += -this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(2))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(-x(0,0)*x(1,1)+x(0,0)*x(2,1)+x(0,1)*x(1,0)-x(0,1)*x(2,0)-x(1,0)*x(2,1)+x(1,1)*x(2,0))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(-x(0,0)*x(1,1)+x(0,0)*x(2,1)+x(0,1)*x(1,0)-x(0,1)*x(2,0)-x(1,0)*x(2,1)+x(1,1)*x(2,0)));
547 }
548
552 void NOINLINE add_grad_rec_det_2_part(Tx& grad_rec_det_2_part, const Tx& x, const DataType& h)
553 {
554 grad_rec_det_2_part(0,0) += -DataType(2)*this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(3))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(1,1)*x(2,2)-x(1,1)*x(3,2)-x(1,2)*x(2,1)+x(1,2)*x(3,1)+x(2,1)*x(3,2)-x(2,2)*x(3,1))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(x(1,1)*x(2,2)-x(1,1)*x(3,2)-x(1,2)*x(2,1)+x(1,2)*x(3,1)+x(2,1)*x(3,2)-x(2,2)*x(3,1)));
555
556 grad_rec_det_2_part(0,1) += -DataType(2)*this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(3))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(-x(1,0)*x(2,2)+x(1,0)*x(3,2)+x(1,2)*x(2,0)-x(1,2)*x(3,0)-x(2,0)*x(3,2)+x(2,2)*x(3,0))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(-x(1,0)*x(2,2)+x(1,0)*x(3,2)+x(1,2)*x(2,0)-x(1,2)*x(3,0)-x(2,0)*x(3,2)+x(2,2)*x(3,0)));
557
558 grad_rec_det_2_part(0,2) += -DataType(2)*this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(3))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(1,0)*x(2,1)-x(1,0)*x(3,1)-x(1,1)*x(2,0)+x(1,1)*x(3,0)+x(2,0)*x(3,1)-x(2,1)*x(3,0))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(x(1,0)*x(2,1)-x(1,0)*x(3,1)-x(1,1)*x(2,0)+x(1,1)*x(3,0)+x(2,0)*x(3,1)-x(2,1)*x(3,0)));
559
560 grad_rec_det_2_part(1,0) += -DataType(2)*this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(3))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(-x(0,1)*x(2,2)+x(0,1)*x(3,2)+x(0,2)*x(2,1)-x(0,2)*x(3,1)-x(2,1)*x(3,2)+x(2,2)*x(3,1))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(-x(0,1)*x(2,2)+x(0,1)*x(3,2)+x(0,2)*x(2,1)-x(0,2)*x(3,1)-x(2,1)*x(3,2)+x(2,2)*x(3,1)));
561
562 grad_rec_det_2_part(1,1) += -DataType(2)*this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(3))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(2,2)-x(0,0)*x(3,2)-x(0,2)*x(2,0)+x(0,2)*x(3,0)+x(2,0)*x(3,2)-x(2,2)*x(3,0))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(x(0,0)*x(2,2)-x(0,0)*x(3,2)-x(0,2)*x(2,0)+x(0,2)*x(3,0)+x(2,0)*x(3,2)-x(2,2)*x(3,0)));
563
564 grad_rec_det_2_part(1,2) += -DataType(2)*this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(3))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(-x(0,0)*x(2,1)+x(0,0)*x(3,1)+x(0,1)*x(2,0)-x(0,1)*x(3,0)-x(2,0)*x(3,1)+x(2,1)*x(3,0))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(-x(0,0)*x(2,1)+x(0,0)*x(3,1)+x(0,1)*x(2,0)-x(0,1)*x(3,0)-x(2,0)*x(3,1)+x(2,1)*x(3,0)));
565
566 grad_rec_det_2_part(2,0) += -DataType(2)*this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(3))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,1)*x(1,2)-x(0,1)*x(3,2)-x(0,2)*x(1,1)+x(0,2)*x(3,1)+x(1,1)*x(3,2)-x(1,2)*x(3,1))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(x(0,1)*x(1,2)-x(0,1)*x(3,2)-x(0,2)*x(1,1)+x(0,2)*x(3,1)+x(1,1)*x(3,2)-x(1,2)*x(3,1)));
567
568 grad_rec_det_2_part(2,1) += -DataType(2)*this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(3))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(-x(0,0)*x(1,2)+x(0,0)*x(3,2)+x(0,2)*x(1,0)-x(0,2)*x(3,0)-x(1,0)*x(3,2)+x(1,2)*x(3,0))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(-x(0,0)*x(1,2)+x(0,0)*x(3,2)+x(0,2)*x(1,0)-x(0,2)*x(3,0)-x(1,0)*x(3,2)+x(1,2)*x(3,0)));
569
570 grad_rec_det_2_part(2,2) += -DataType(2)*this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(3))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)-x(0,0)*x(3,1)-x(0,1)*x(1,0)+x(0,1)*x(3,0)+x(1,0)*x(3,1)-x(1,1)*x(3,0))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(x(0,0)*x(1,1)-x(0,0)*x(3,1)-x(0,1)*x(1,0)+x(0,1)*x(3,0)+x(1,0)*x(3,1)-x(1,1)*x(3,0)));
571
572 grad_rec_det_2_part(3,0) += -DataType(2)*this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(3))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(-x(0,1)*x(1,2)+x(0,1)*x(2,2)+x(0,2)*x(1,1)-x(0,2)*x(2,1)-x(1,1)*x(2,2)+x(1,2)*x(2,1))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(-x(0,1)*x(1,2)+x(0,1)*x(2,2)+x(0,2)*x(1,1)-x(0,2)*x(2,1)-x(1,1)*x(2,2)+x(1,2)*x(2,1)));
573
574 grad_rec_det_2_part(3,1) += -DataType(2)*this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(3))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,2)-x(0,0)*x(2,2)-x(0,2)*x(1,0)+x(0,2)*x(2,0)+x(1,0)*x(2,2)-x(1,2)*x(2,0))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(x(0,0)*x(1,2)-x(0,0)*x(2,2)-x(0,2)*x(1,0)+x(0,2)*x(2,0)+x(1,0)*x(2,2)-x(1,2)*x(2,0)));
575
576 grad_rec_det_2_part(3,2) += -DataType(2)*this->_fac_rec_det*Math::pow(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h)/DataType(3)+Math::sqrt(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h)),-DataType(3))*(-Math::sqrt(DataType(3))*Math::sqrt(DataType(6))*(-x(0,0)*x(1,1)+x(0,0)*x(2,1)+x(0,1)*x(1,0)-x(0,1)*x(2,0)-x(1,0)*x(2,1)+x(1,1)*x(2,0))/(h*h*h)/DataType(3)+DataType(2)*Math::pow(this->_fac_reg*this->_fac_reg+DataType(2)*Math::pow(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0),DataType(2))/(h*h*h*h*h*h),-DataType(1)/DataType(2))*(x(0,0)*x(1,1)*x(2,2)-x(0,0)*x(1,1)*x(3,2)-x(0,0)*x(1,2)*x(2,1)+x(0,0)*x(1,2)*x(3,1)+x(0,0)*x(2,1)*x(3,2)-x(0,0)*x(2,2)*x(3,1)-x(0,1)*x(1,0)*x(2,2)+x(0,1)*x(1,0)*x(3,2)+x(0,1)*x(1,2)*x(2,0)-x(0,1)*x(1,2)*x(3,0)-x(0,1)*x(2,0)*x(3,2)+x(0,1)*x(2,2)*x(3,0)+x(0,2)*x(1,0)*x(2,1)-x(0,2)*x(1,0)*x(3,1)-x(0,2)*x(1,1)*x(2,0)+x(0,2)*x(1,1)*x(3,0)+x(0,2)*x(2,0)*x(3,1)-x(0,2)*x(2,1)*x(3,0)-x(1,0)*x(2,1)*x(3,2)+x(1,0)*x(2,2)*x(3,1)+x(1,1)*x(2,0)*x(3,2)-x(1,1)*x(2,2)*x(3,0)-x(1,2)*x(2,0)*x(3,1)+x(1,2)*x(2,1)*x(3,0))/(h*h*h*h*h*h)*(-x(0,0)*x(1,1)+x(0,0)*x(2,1)+x(0,1)*x(1,0)-x(0,1)*x(2,0)-x(1,0)*x(2,1)+x(1,1)*x(2,0)));
577 }
578
579#if defined(FEAT_COMPILER_INTEL) && (FEAT_COMPILER_INTEL < 1600)
580 void add_grad_cof_part_1(Tx& grad_cof_part1, const Tx& x, const DataType& h)
581#else
582 void NOINLINE add_grad_cof_part_1(Tx& grad_cof_part1, const Tx& x, const DataType& h)
583#endif
584 {
585 grad_cof_part1[0][0] += DataType(8) * this->_fac_cof * (Math::pow(Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18), DataType(2)) + Math::pow(-Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) + Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(-(x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6) + (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow((x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3) - (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) - DataType(3)) * (x(1,1) * x(2,2) - x(1,1) * x(3,2) - x(2,1) * x(1,2) + x(1,2) * x(3,1) + x(2,1) * x(3,2) - x(2,2) * x(3,1)) * (Math::sqr(x(0,0)) * Math::sqr(x(1,1)) - Math::sqr(x(0,0)) * x(1,1) * x(2,1) - Math::sqr(x(0,0)) * x(1,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(1,2)) - Math::sqr(x(0,0)) * x(1,2) * x(2,2) - Math::sqr(x(0,0)) * x(1,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(2,1)) - Math::sqr(x(0,0)) * x(2,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(2,2)) - Math::sqr(x(0,0)) * x(2,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(3,1)) + Math::sqr(x(0,0)) * Math::sqr(x(3,2)) - DataType(2) * x(0,0) * x(0,1) * x(1,0) * x(1,1) + x(0,0) * x(0,1) * x(1,0) * x(2,1) + x(0,0) * x(0,1) * x(1,0) * x(3,1) + x(0,0) * x(0,1) * x(1,1) * x(2,0) + x(0,0) * x(0,1) * x(1,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(2,0) * x(2,1) + x(0,0) * x(0,1) * x(2,0) * x(3,1) + x(0,0) * x(0,1) * x(2,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(3,0) * x(3,1) - DataType(2) * x(0,0) * x(0,2) * x(1,0) * x(1,2) + x(0,0) * x(0,2) * x(1,0) * x(2,2) + x(0,0) * x(0,2) * x(1,0) * x(3,2) + x(0,0) * x(0,2) * x(1,2) * x(2,0) + x(0,0) * x(0,2) * x(1,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(2,0) * x(2,2) + x(0,0) * x(0,2) * x(2,0) * x(3,2) + x(0,0) * x(0,2) * x(2,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(3,0) * x(3,2) + x(0,0) * x(1,0) * x(1,1) * x(2,1) + x(0,0) * x(1,0) * x(1,1) * x(3,1) + x(0,0) * x(1,0) * x(1,2) * x(2,2) + x(0,0) * x(1,0) * x(1,2) * x(3,2) - x(0,0) * x(1,0) * Math::sqr(x(2,1)) - x(0,0) * x(1,0) * Math::sqr(x(2,2)) - x(0,0) * x(1,0) * Math::sqr(x(3,1)) - x(0,0) * x(1,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(1,1)) * x(2,0) - x(0,0) * Math::sqr(x(1,1)) * x(3,0) + x(0,0) * x(1,1) * x(2,0) * x(2,1) + x(0,0) * x(1,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(1,2)) * x(2,0) - x(0,0) * Math::sqr(x(1,2)) * x(3,0) + x(0,0) * x(1,2) * x(2,0) * x(2,2) + x(0,0) * x(1,2) * x(3,0) * x(3,2) + x(0,0) * x(2,0) * x(2,1) * x(3,1) + x(0,0) * x(2,0) * x(2,2) * x(3,2) - x(0,0) * x(2,0) * Math::sqr(x(3,1)) - x(0,0) * x(2,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(2,1)) * x(3,0) + x(0,0) * x(2,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(2,2)) * x(3,0) + x(0,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(1,0)) - Math::sqr(x(0,1)) * x(1,0) * x(2,0) - Math::sqr(x(0,1)) * x(1,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(1,2)) - Math::sqr(x(0,1)) * x(1,2) * x(2,2) - Math::sqr(x(0,1)) * x(1,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(2,0)) - Math::sqr(x(0,1)) * x(2,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(2,2)) - Math::sqr(x(0,1)) * x(2,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(3,0)) + Math::sqr(x(0,1)) * Math::sqr(x(3,2)) - DataType(2) * x(0,1) * x(0,2) * x(1,1) * x(1,2) + x(0,1) * x(0,2) * x(1,1) * x(2,2) + x(0,1) * x(0,2) * x(1,1) * x(3,2) + x(0,1) * x(0,2) * x(1,2) * x(2,1) + x(0,1) * x(0,2) * x(1,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(2,1) * x(2,2) + x(0,1) * x(0,2) * x(2,1) * x(3,2) + x(0,1) * x(0,2) * x(2,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(1,0)) * x(2,1) - x(0,1) * Math::sqr(x(1,0)) * x(3,1) + x(0,1) * x(1,0) * x(1,1) * x(2,0) + x(0,1) * x(1,0) * x(1,1) * x(3,0) + x(0,1) * x(1,0) * x(2,0) * x(2,1) + x(0,1) * x(1,0) * x(3,0) * x(3,1) + x(0,1) * x(1,1) * x(1,2) * x(2,2) + x(0,1) * x(1,1) * x(1,2) * x(3,2) - x(0,1) * x(1,1) * Math::sqr(x(2,0)) - x(0,1) * x(1,1) * Math::sqr(x(2,2)) - x(0,1) * x(1,1) * Math::sqr(x(3,0)) - x(0,1) * x(1,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(1,2)) * x(2,1) - x(0,1) * Math::sqr(x(1,2)) * x(3,1) + x(0,1) * x(1,2) * x(2,1) * x(2,2) + x(0,1) * x(1,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(2,0)) * x(3,1) + x(0,1) * x(2,0) * x(2,1) * x(3,0) + x(0,1) * x(2,0) * x(3,0) * x(3,1) + x(0,1) * x(2,1) * x(2,2) * x(3,2) - x(0,1) * x(2,1) * Math::sqr(x(3,0)) - x(0,1) * x(2,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(2,2)) * x(3,1) + x(0,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(0,2)) * Math::sqr(x(1,0)) - Math::sqr(x(0,2)) * x(1,0) * x(2,0) - Math::sqr(x(0,2)) * x(1,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(1,1)) - Math::sqr(x(0,2)) * x(1,1) * x(2,1) - Math::sqr(x(0,2)) * x(1,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(2,0)) - Math::sqr(x(0,2)) * x(2,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(2,1)) - Math::sqr(x(0,2)) * x(2,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(3,0)) + Math::sqr(x(0,2)) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(1,0)) * x(2,2) - x(0,2) * Math::sqr(x(1,0)) * x(3,2) + x(0,2) * x(1,0) * x(1,2) * x(2,0) + x(0,2) * x(1,0) * x(1,2) * x(3,0) + x(0,2) * x(1,0) * x(2,0) * x(2,2) + x(0,2) * x(1,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(1,1)) * x(2,2) - x(0,2) * Math::sqr(x(1,1)) * x(3,2) + x(0,2) * x(1,1) * x(1,2) * x(2,1) + x(0,2) * x(1,1) * x(1,2) * x(3,1) + x(0,2) * x(1,1) * x(2,1) * x(2,2) + x(0,2) * x(1,1) * x(3,1) * x(3,2) - x(0,2) * x(1,2) * Math::sqr(x(2,0)) - x(0,2) * x(1,2) * Math::sqr(x(2,1)) - x(0,2) * x(1,2) * Math::sqr(x(3,0)) - x(0,2) * x(1,2) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(2,0)) * x(3,2) + x(0,2) * x(2,0) * x(2,2) * x(3,0) + x(0,2) * x(2,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(2,1)) * x(3,2) + x(0,2) * x(2,1) * x(2,2) * x(3,1) + x(0,2) * x(2,1) * x(3,1) * x(3,2) - x(0,2) * x(2,2) * Math::sqr(x(3,0)) - x(0,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(2,1)) - Math::sqr(x(1,0)) * x(2,1) * x(3,1) + Math::sqr(x(1,0)) * Math::sqr(x(2,2)) - Math::sqr(x(1,0)) * x(2,2) * x(3,2) + Math::sqr(x(1,0)) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(3,2)) - DataType(2) * x(1,0) * x(1,1) * x(2,0) * x(2,1) + x(1,0) * x(1,1) * x(2,0) * x(3,1) + x(1,0) * x(1,1) * x(2,1) * x(3,0) - DataType(2) * x(1,0) * x(1,1) * x(3,0) * x(3,1) - DataType(2) * x(1,0) * x(1,2) * x(2,0) * x(2,2) + x(1,0) * x(1,2) * x(2,0) * x(3,2) + x(1,0) * x(1,2) * x(2,2) * x(3,0) - DataType(2) * x(1,0) * x(1,2) * x(3,0) * x(3,2) + x(1,0) * x(2,0) * x(2,1) * x(3,1) + x(1,0) * x(2,0) * x(2,2) * x(3,2) - x(1,0) * x(2,0) * Math::sqr(x(3,1)) - x(1,0) * x(2,0) * Math::sqr(x(3,2)) - x(1,0) * Math::sqr(x(2,1)) * x(3,0) + x(1,0) * x(2,1) * x(3,0) * x(3,1) - x(1,0) * Math::sqr(x(2,2)) * x(3,0) + x(1,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(2,0)) - Math::sqr(x(1,1)) * x(2,0) * x(3,0) + Math::sqr(x(1,1)) * Math::sqr(x(2,2)) - Math::sqr(x(1,1)) * x(2,2) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(3,0)) + Math::sqr(x(1,1)) * Math::sqr(x(3,2)) - DataType(2) * x(1,1) * x(1,2) * x(2,1) * x(2,2) + x(1,1) * x(1,2) * x(2,1) * x(3,2) + x(1,1) * x(1,2) * x(2,2) * x(3,1) - DataType(2) * x(1,1) * x(1,2) * x(3,1) * x(3,2) - x(1,1) * Math::sqr(x(2,0)) * x(3,1) + x(1,1) * x(2,0) * x(2,1) * x(3,0) + x(1,1) * x(2,0) * x(3,0) * x(3,1) + x(1,1) * x(2,1) * x(2,2) * x(3,2) - x(1,1) * x(2,1) * Math::sqr(x(3,0)) - x(1,1) * x(2,1) * Math::sqr(x(3,2)) - x(1,1) * Math::sqr(x(2,2)) * x(3,1) + x(1,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(1,2)) * Math::sqr(x(2,0)) - Math::sqr(x(1,2)) * x(2,0) * x(3,0) + Math::sqr(x(1,2)) * Math::sqr(x(2,1)) - Math::sqr(x(1,2)) * x(2,1) * x(3,1) + Math::sqr(x(1,2)) * Math::sqr(x(3,0)) + Math::sqr(x(1,2)) * Math::sqr(x(3,1)) - x(1,2) * Math::sqr(x(2,0)) * x(3,2) + x(1,2) * x(2,0) * x(2,2) * x(3,0) + x(1,2) * x(2,0) * x(3,0) * x(3,2) - x(1,2) * Math::sqr(x(2,1)) * x(3,2) + x(1,2) * x(2,1) * x(2,2) * x(3,1) + x(1,2) * x(2,1) * x(3,1) * x(3,2) - x(1,2) * x(2,2) * Math::sqr(x(3,0)) - x(1,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,2)) - DataType(2) * x(2,0) * x(2,1) * x(3,0) * x(3,1) - DataType(2) * x(2,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(2,1)) * Math::sqr(x(3,0)) + Math::sqr(x(2,1)) * Math::sqr(x(3,2)) - DataType(2) * x(2,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(2,2)) * Math::sqr(x(3,0)) + Math::sqr(x(2,2)) * Math::sqr(x(3,1))) / (h*h*h*h) / (x(0,0) * x(1,1) * x(2,2) - x(0,0) * x(1,1) * x(3,2) - x(0,0) * x(1,2) * x(2,1) + x(0,0) * x(1,2) * x(3,1) + x(0,0) * x(2,1) * x(3,2) - x(0,0) * x(2,2) * x(3,1) - x(0,1) * x(1,0) * x(2,2) + x(0,1) * x(1,0) * x(3,2) + x(0,1) * x(1,2) * x(2,0) - x(0,1) * x(1,2) * x(3,0) - x(0,1) * x(2,0) * x(3,2) + x(0,1) * x(2,2) * x(3,0) + x(0,2) * x(1,0) * x(2,1) - x(0,2) * x(1,0) * x(3,1) - x(0,2) * x(1,1) * x(2,0) + x(0,2) * x(1,1) * x(3,0) + x(0,2) * x(2,0) * x(3,1) - x(0,2) * x(2,1) * x(3,0) - x(1,0) * x(2,1) * x(3,2) + x(1,0) * x(2,2) * x(3,1) + x(1,1) * x(2,0) * x(3,2) - x(1,1) * x(2,2) * x(3,0) - x(1,2) * x(2,0) * x(3,1) + x(1,2) * x(2,1) * x(3,0));
586 grad_cof_part1[0][1] += -DataType(8) * this->_fac_cof * (Math::pow(Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18), DataType(2)) + Math::pow(-Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) + Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(-(x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6) + (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow((x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3) - (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) - DataType(3)) * (x(1,0) * x(2,2) - x(1,0) * x(3,2) - x(2,0) * x(1,2) + x(1,2) * x(3,0) + x(2,0) * x(3,2) - x(2,2) * x(3,0)) * (Math::sqr(x(0,0)) * Math::sqr(x(1,1)) - Math::sqr(x(0,0)) * x(1,1) * x(2,1) - Math::sqr(x(0,0)) * x(1,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(1,2)) - Math::sqr(x(0,0)) * x(1,2) * x(2,2) - Math::sqr(x(0,0)) * x(1,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(2,1)) - Math::sqr(x(0,0)) * x(2,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(2,2)) - Math::sqr(x(0,0)) * x(2,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(3,1)) + Math::sqr(x(0,0)) * Math::sqr(x(3,2)) - DataType(2) * x(0,0) * x(0,1) * x(1,0) * x(1,1) + x(0,0) * x(0,1) * x(1,0) * x(2,1) + x(0,0) * x(0,1) * x(1,0) * x(3,1) + x(0,0) * x(0,1) * x(1,1) * x(2,0) + x(0,0) * x(0,1) * x(1,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(2,0) * x(2,1) + x(0,0) * x(0,1) * x(2,0) * x(3,1) + x(0,0) * x(0,1) * x(2,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(3,0) * x(3,1) - DataType(2) * x(0,0) * x(0,2) * x(1,0) * x(1,2) + x(0,0) * x(0,2) * x(1,0) * x(2,2) + x(0,0) * x(0,2) * x(1,0) * x(3,2) + x(0,0) * x(0,2) * x(1,2) * x(2,0) + x(0,0) * x(0,2) * x(1,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(2,0) * x(2,2) + x(0,0) * x(0,2) * x(2,0) * x(3,2) + x(0,0) * x(0,2) * x(2,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(3,0) * x(3,2) + x(0,0) * x(1,0) * x(1,1) * x(2,1) + x(0,0) * x(1,0) * x(1,1) * x(3,1) + x(0,0) * x(1,0) * x(1,2) * x(2,2) + x(0,0) * x(1,0) * x(1,2) * x(3,2) - x(0,0) * x(1,0) * Math::sqr(x(2,1)) - x(0,0) * x(1,0) * Math::sqr(x(2,2)) - x(0,0) * x(1,0) * Math::sqr(x(3,1)) - x(0,0) * x(1,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(1,1)) * x(2,0) - x(0,0) * Math::sqr(x(1,1)) * x(3,0) + x(0,0) * x(1,1) * x(2,0) * x(2,1) + x(0,0) * x(1,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(1,2)) * x(2,0) - x(0,0) * Math::sqr(x(1,2)) * x(3,0) + x(0,0) * x(1,2) * x(2,0) * x(2,2) + x(0,0) * x(1,2) * x(3,0) * x(3,2) + x(0,0) * x(2,0) * x(2,1) * x(3,1) + x(0,0) * x(2,0) * x(2,2) * x(3,2) - x(0,0) * x(2,0) * Math::sqr(x(3,1)) - x(0,0) * x(2,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(2,1)) * x(3,0) + x(0,0) * x(2,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(2,2)) * x(3,0) + x(0,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(1,0)) - Math::sqr(x(0,1)) * x(1,0) * x(2,0) - Math::sqr(x(0,1)) * x(1,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(1,2)) - Math::sqr(x(0,1)) * x(1,2) * x(2,2) - Math::sqr(x(0,1)) * x(1,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(2,0)) - Math::sqr(x(0,1)) * x(2,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(2,2)) - Math::sqr(x(0,1)) * x(2,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(3,0)) + Math::sqr(x(0,1)) * Math::sqr(x(3,2)) - DataType(2) * x(0,1) * x(0,2) * x(1,1) * x(1,2) + x(0,1) * x(0,2) * x(1,1) * x(2,2) + x(0,1) * x(0,2) * x(1,1) * x(3,2) + x(0,1) * x(0,2) * x(1,2) * x(2,1) + x(0,1) * x(0,2) * x(1,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(2,1) * x(2,2) + x(0,1) * x(0,2) * x(2,1) * x(3,2) + x(0,1) * x(0,2) * x(2,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(1,0)) * x(2,1) - x(0,1) * Math::sqr(x(1,0)) * x(3,1) + x(0,1) * x(1,0) * x(1,1) * x(2,0) + x(0,1) * x(1,0) * x(1,1) * x(3,0) + x(0,1) * x(1,0) * x(2,0) * x(2,1) + x(0,1) * x(1,0) * x(3,0) * x(3,1) + x(0,1) * x(1,1) * x(1,2) * x(2,2) + x(0,1) * x(1,1) * x(1,2) * x(3,2) - x(0,1) * x(1,1) * Math::sqr(x(2,0)) - x(0,1) * x(1,1) * Math::sqr(x(2,2)) - x(0,1) * x(1,1) * Math::sqr(x(3,0)) - x(0,1) * x(1,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(1,2)) * x(2,1) - x(0,1) * Math::sqr(x(1,2)) * x(3,1) + x(0,1) * x(1,2) * x(2,1) * x(2,2) + x(0,1) * x(1,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(2,0)) * x(3,1) + x(0,1) * x(2,0) * x(2,1) * x(3,0) + x(0,1) * x(2,0) * x(3,0) * x(3,1) + x(0,1) * x(2,1) * x(2,2) * x(3,2) - x(0,1) * x(2,1) * Math::sqr(x(3,0)) - x(0,1) * x(2,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(2,2)) * x(3,1) + x(0,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(0,2)) * Math::sqr(x(1,0)) - Math::sqr(x(0,2)) * x(1,0) * x(2,0) - Math::sqr(x(0,2)) * x(1,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(1,1)) - Math::sqr(x(0,2)) * x(1,1) * x(2,1) - Math::sqr(x(0,2)) * x(1,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(2,0)) - Math::sqr(x(0,2)) * x(2,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(2,1)) - Math::sqr(x(0,2)) * x(2,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(3,0)) + Math::sqr(x(0,2)) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(1,0)) * x(2,2) - x(0,2) * Math::sqr(x(1,0)) * x(3,2) + x(0,2) * x(1,0) * x(1,2) * x(2,0) + x(0,2) * x(1,0) * x(1,2) * x(3,0) + x(0,2) * x(1,0) * x(2,0) * x(2,2) + x(0,2) * x(1,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(1,1)) * x(2,2) - x(0,2) * Math::sqr(x(1,1)) * x(3,2) + x(0,2) * x(1,1) * x(1,2) * x(2,1) + x(0,2) * x(1,1) * x(1,2) * x(3,1) + x(0,2) * x(1,1) * x(2,1) * x(2,2) + x(0,2) * x(1,1) * x(3,1) * x(3,2) - x(0,2) * x(1,2) * Math::sqr(x(2,0)) - x(0,2) * x(1,2) * Math::sqr(x(2,1)) - x(0,2) * x(1,2) * Math::sqr(x(3,0)) - x(0,2) * x(1,2) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(2,0)) * x(3,2) + x(0,2) * x(2,0) * x(2,2) * x(3,0) + x(0,2) * x(2,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(2,1)) * x(3,2) + x(0,2) * x(2,1) * x(2,2) * x(3,1) + x(0,2) * x(2,1) * x(3,1) * x(3,2) - x(0,2) * x(2,2) * Math::sqr(x(3,0)) - x(0,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(2,1)) - Math::sqr(x(1,0)) * x(2,1) * x(3,1) + Math::sqr(x(1,0)) * Math::sqr(x(2,2)) - Math::sqr(x(1,0)) * x(2,2) * x(3,2) + Math::sqr(x(1,0)) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(3,2)) - DataType(2) * x(1,0) * x(1,1) * x(2,0) * x(2,1) + x(1,0) * x(1,1) * x(2,0) * x(3,1) + x(1,0) * x(1,1) * x(2,1) * x(3,0) - DataType(2) * x(1,0) * x(1,1) * x(3,0) * x(3,1) - DataType(2) * x(1,0) * x(1,2) * x(2,0) * x(2,2) + x(1,0) * x(1,2) * x(2,0) * x(3,2) + x(1,0) * x(1,2) * x(2,2) * x(3,0) - DataType(2) * x(1,0) * x(1,2) * x(3,0) * x(3,2) + x(1,0) * x(2,0) * x(2,1) * x(3,1) + x(1,0) * x(2,0) * x(2,2) * x(3,2) - x(1,0) * x(2,0) * Math::sqr(x(3,1)) - x(1,0) * x(2,0) * Math::sqr(x(3,2)) - x(1,0) * Math::sqr(x(2,1)) * x(3,0) + x(1,0) * x(2,1) * x(3,0) * x(3,1) - x(1,0) * Math::sqr(x(2,2)) * x(3,0) + x(1,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(2,0)) - Math::sqr(x(1,1)) * x(2,0) * x(3,0) + Math::sqr(x(1,1)) * Math::sqr(x(2,2)) - Math::sqr(x(1,1)) * x(2,2) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(3,0)) + Math::sqr(x(1,1)) * Math::sqr(x(3,2)) - DataType(2) * x(1,1) * x(1,2) * x(2,1) * x(2,2) + x(1,1) * x(1,2) * x(2,1) * x(3,2) + x(1,1) * x(1,2) * x(2,2) * x(3,1) - DataType(2) * x(1,1) * x(1,2) * x(3,1) * x(3,2) - x(1,1) * Math::sqr(x(2,0)) * x(3,1) + x(1,1) * x(2,0) * x(2,1) * x(3,0) + x(1,1) * x(2,0) * x(3,0) * x(3,1) + x(1,1) * x(2,1) * x(2,2) * x(3,2) - x(1,1) * x(2,1) * Math::sqr(x(3,0)) - x(1,1) * x(2,1) * Math::sqr(x(3,2)) - x(1,1) * Math::sqr(x(2,2)) * x(3,1) + x(1,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(1,2)) * Math::sqr(x(2,0)) - Math::sqr(x(1,2)) * x(2,0) * x(3,0) + Math::sqr(x(1,2)) * Math::sqr(x(2,1)) - Math::sqr(x(1,2)) * x(2,1) * x(3,1) + Math::sqr(x(1,2)) * Math::sqr(x(3,0)) + Math::sqr(x(1,2)) * Math::sqr(x(3,1)) - x(1,2) * Math::sqr(x(2,0)) * x(3,2) + x(1,2) * x(2,0) * x(2,2) * x(3,0) + x(1,2) * x(2,0) * x(3,0) * x(3,2) - x(1,2) * Math::sqr(x(2,1)) * x(3,2) + x(1,2) * x(2,1) * x(2,2) * x(3,1) + x(1,2) * x(2,1) * x(3,1) * x(3,2) - x(1,2) * x(2,2) * Math::sqr(x(3,0)) - x(1,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,2)) - DataType(2) * x(2,0) * x(2,1) * x(3,0) * x(3,1) - DataType(2) * x(2,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(2,1)) * Math::sqr(x(3,0)) + Math::sqr(x(2,1)) * Math::sqr(x(3,2)) - DataType(2) * x(2,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(2,2)) * Math::sqr(x(3,0)) + Math::sqr(x(2,2)) * Math::sqr(x(3,1))) / (h*h*h*h) / (x(0,0) * x(1,1) * x(2,2) - x(0,0) * x(1,1) * x(3,2) - x(0,0) * x(1,2) * x(2,1) + x(0,0) * x(1,2) * x(3,1) + x(0,0) * x(2,1) * x(3,2) - x(0,0) * x(2,2) * x(3,1) - x(0,1) * x(1,0) * x(2,2) + x(0,1) * x(1,0) * x(3,2) + x(0,1) * x(1,2) * x(2,0) - x(0,1) * x(1,2) * x(3,0) - x(0,1) * x(2,0) * x(3,2) + x(0,1) * x(2,2) * x(3,0) + x(0,2) * x(1,0) * x(2,1) - x(0,2) * x(1,0) * x(3,1) - x(0,2) * x(1,1) * x(2,0) + x(0,2) * x(1,1) * x(3,0) + x(0,2) * x(2,0) * x(3,1) - x(0,2) * x(2,1) * x(3,0) - x(1,0) * x(2,1) * x(3,2) + x(1,0) * x(2,2) * x(3,1) + x(1,1) * x(2,0) * x(3,2) - x(1,1) * x(2,2) * x(3,0) - x(1,2) * x(2,0) * x(3,1) + x(1,2) * x(2,1) * x(3,0));
587 grad_cof_part1[0][2] += DataType(8) * this->_fac_cof * (Math::pow(Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18), DataType(2)) + Math::pow(-Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) + Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(-(x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6) + (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow((x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3) - (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) - DataType(3)) * (x(1,0) * x(2,1) - x(1,0) * x(3,1) - x(1,1) * x(2,0) + x(1,1) * x(3,0) + x(2,0) * x(3,1) - x(2,1) * x(3,0)) * (Math::sqr(x(0,0)) * Math::sqr(x(1,1)) - Math::sqr(x(0,0)) * x(1,1) * x(2,1) - Math::sqr(x(0,0)) * x(1,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(1,2)) - Math::sqr(x(0,0)) * x(1,2) * x(2,2) - Math::sqr(x(0,0)) * x(1,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(2,1)) - Math::sqr(x(0,0)) * x(2,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(2,2)) - Math::sqr(x(0,0)) * x(2,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(3,1)) + Math::sqr(x(0,0)) * Math::sqr(x(3,2)) - DataType(2) * x(0,0) * x(0,1) * x(1,0) * x(1,1) + x(0,0) * x(0,1) * x(1,0) * x(2,1) + x(0,0) * x(0,1) * x(1,0) * x(3,1) + x(0,0) * x(0,1) * x(1,1) * x(2,0) + x(0,0) * x(0,1) * x(1,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(2,0) * x(2,1) + x(0,0) * x(0,1) * x(2,0) * x(3,1) + x(0,0) * x(0,1) * x(2,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(3,0) * x(3,1) - DataType(2) * x(0,0) * x(0,2) * x(1,0) * x(1,2) + x(0,0) * x(0,2) * x(1,0) * x(2,2) + x(0,0) * x(0,2) * x(1,0) * x(3,2) + x(0,0) * x(0,2) * x(1,2) * x(2,0) + x(0,0) * x(0,2) * x(1,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(2,0) * x(2,2) + x(0,0) * x(0,2) * x(2,0) * x(3,2) + x(0,0) * x(0,2) * x(2,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(3,0) * x(3,2) + x(0,0) * x(1,0) * x(1,1) * x(2,1) + x(0,0) * x(1,0) * x(1,1) * x(3,1) + x(0,0) * x(1,0) * x(1,2) * x(2,2) + x(0,0) * x(1,0) * x(1,2) * x(3,2) - x(0,0) * x(1,0) * Math::sqr(x(2,1)) - x(0,0) * x(1,0) * Math::sqr(x(2,2)) - x(0,0) * x(1,0) * Math::sqr(x(3,1)) - x(0,0) * x(1,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(1,1)) * x(2,0) - x(0,0) * Math::sqr(x(1,1)) * x(3,0) + x(0,0) * x(1,1) * x(2,0) * x(2,1) + x(0,0) * x(1,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(1,2)) * x(2,0) - x(0,0) * Math::sqr(x(1,2)) * x(3,0) + x(0,0) * x(1,2) * x(2,0) * x(2,2) + x(0,0) * x(1,2) * x(3,0) * x(3,2) + x(0,0) * x(2,0) * x(2,1) * x(3,1) + x(0,0) * x(2,0) * x(2,2) * x(3,2) - x(0,0) * x(2,0) * Math::sqr(x(3,1)) - x(0,0) * x(2,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(2,1)) * x(3,0) + x(0,0) * x(2,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(2,2)) * x(3,0) + x(0,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(1,0)) - Math::sqr(x(0,1)) * x(1,0) * x(2,0) - Math::sqr(x(0,1)) * x(1,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(1,2)) - Math::sqr(x(0,1)) * x(1,2) * x(2,2) - Math::sqr(x(0,1)) * x(1,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(2,0)) - Math::sqr(x(0,1)) * x(2,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(2,2)) - Math::sqr(x(0,1)) * x(2,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(3,0)) + Math::sqr(x(0,1)) * Math::sqr(x(3,2)) - DataType(2) * x(0,1) * x(0,2) * x(1,1) * x(1,2) + x(0,1) * x(0,2) * x(1,1) * x(2,2) + x(0,1) * x(0,2) * x(1,1) * x(3,2) + x(0,1) * x(0,2) * x(1,2) * x(2,1) + x(0,1) * x(0,2) * x(1,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(2,1) * x(2,2) + x(0,1) * x(0,2) * x(2,1) * x(3,2) + x(0,1) * x(0,2) * x(2,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(1,0)) * x(2,1) - x(0,1) * Math::sqr(x(1,0)) * x(3,1) + x(0,1) * x(1,0) * x(1,1) * x(2,0) + x(0,1) * x(1,0) * x(1,1) * x(3,0) + x(0,1) * x(1,0) * x(2,0) * x(2,1) + x(0,1) * x(1,0) * x(3,0) * x(3,1) + x(0,1) * x(1,1) * x(1,2) * x(2,2) + x(0,1) * x(1,1) * x(1,2) * x(3,2) - x(0,1) * x(1,1) * Math::sqr(x(2,0)) - x(0,1) * x(1,1) * Math::sqr(x(2,2)) - x(0,1) * x(1,1) * Math::sqr(x(3,0)) - x(0,1) * x(1,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(1,2)) * x(2,1) - x(0,1) * Math::sqr(x(1,2)) * x(3,1) + x(0,1) * x(1,2) * x(2,1) * x(2,2) + x(0,1) * x(1,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(2,0)) * x(3,1) + x(0,1) * x(2,0) * x(2,1) * x(3,0) + x(0,1) * x(2,0) * x(3,0) * x(3,1) + x(0,1) * x(2,1) * x(2,2) * x(3,2) - x(0,1) * x(2,1) * Math::sqr(x(3,0)) - x(0,1) * x(2,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(2,2)) * x(3,1) + x(0,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(0,2)) * Math::sqr(x(1,0)) - Math::sqr(x(0,2)) * x(1,0) * x(2,0) - Math::sqr(x(0,2)) * x(1,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(1,1)) - Math::sqr(x(0,2)) * x(1,1) * x(2,1) - Math::sqr(x(0,2)) * x(1,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(2,0)) - Math::sqr(x(0,2)) * x(2,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(2,1)) - Math::sqr(x(0,2)) * x(2,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(3,0)) + Math::sqr(x(0,2)) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(1,0)) * x(2,2) - x(0,2) * Math::sqr(x(1,0)) * x(3,2) + x(0,2) * x(1,0) * x(1,2) * x(2,0) + x(0,2) * x(1,0) * x(1,2) * x(3,0) + x(0,2) * x(1,0) * x(2,0) * x(2,2) + x(0,2) * x(1,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(1,1)) * x(2,2) - x(0,2) * Math::sqr(x(1,1)) * x(3,2) + x(0,2) * x(1,1) * x(1,2) * x(2,1) + x(0,2) * x(1,1) * x(1,2) * x(3,1) + x(0,2) * x(1,1) * x(2,1) * x(2,2) + x(0,2) * x(1,1) * x(3,1) * x(3,2) - x(0,2) * x(1,2) * Math::sqr(x(2,0)) - x(0,2) * x(1,2) * Math::sqr(x(2,1)) - x(0,2) * x(1,2) * Math::sqr(x(3,0)) - x(0,2) * x(1,2) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(2,0)) * x(3,2) + x(0,2) * x(2,0) * x(2,2) * x(3,0) + x(0,2) * x(2,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(2,1)) * x(3,2) + x(0,2) * x(2,1) * x(2,2) * x(3,1) + x(0,2) * x(2,1) * x(3,1) * x(3,2) - x(0,2) * x(2,2) * Math::sqr(x(3,0)) - x(0,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(2,1)) - Math::sqr(x(1,0)) * x(2,1) * x(3,1) + Math::sqr(x(1,0)) * Math::sqr(x(2,2)) - Math::sqr(x(1,0)) * x(2,2) * x(3,2) + Math::sqr(x(1,0)) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(3,2)) - DataType(2) * x(1,0) * x(1,1) * x(2,0) * x(2,1) + x(1,0) * x(1,1) * x(2,0) * x(3,1) + x(1,0) * x(1,1) * x(2,1) * x(3,0) - DataType(2) * x(1,0) * x(1,1) * x(3,0) * x(3,1) - DataType(2) * x(1,0) * x(1,2) * x(2,0) * x(2,2) + x(1,0) * x(1,2) * x(2,0) * x(3,2) + x(1,0) * x(1,2) * x(2,2) * x(3,0) - DataType(2) * x(1,0) * x(1,2) * x(3,0) * x(3,2) + x(1,0) * x(2,0) * x(2,1) * x(3,1) + x(1,0) * x(2,0) * x(2,2) * x(3,2) - x(1,0) * x(2,0) * Math::sqr(x(3,1)) - x(1,0) * x(2,0) * Math::sqr(x(3,2)) - x(1,0) * Math::sqr(x(2,1)) * x(3,0) + x(1,0) * x(2,1) * x(3,0) * x(3,1) - x(1,0) * Math::sqr(x(2,2)) * x(3,0) + x(1,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(2,0)) - Math::sqr(x(1,1)) * x(2,0) * x(3,0) + Math::sqr(x(1,1)) * Math::sqr(x(2,2)) - Math::sqr(x(1,1)) * x(2,2) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(3,0)) + Math::sqr(x(1,1)) * Math::sqr(x(3,2)) - DataType(2) * x(1,1) * x(1,2) * x(2,1) * x(2,2) + x(1,1) * x(1,2) * x(2,1) * x(3,2) + x(1,1) * x(1,2) * x(2,2) * x(3,1) - DataType(2) * x(1,1) * x(1,2) * x(3,1) * x(3,2) - x(1,1) * Math::sqr(x(2,0)) * x(3,1) + x(1,1) * x(2,0) * x(2,1) * x(3,0) + x(1,1) * x(2,0) * x(3,0) * x(3,1) + x(1,1) * x(2,1) * x(2,2) * x(3,2) - x(1,1) * x(2,1) * Math::sqr(x(3,0)) - x(1,1) * x(2,1) * Math::sqr(x(3,2)) - x(1,1) * Math::sqr(x(2,2)) * x(3,1) + x(1,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(1,2)) * Math::sqr(x(2,0)) - Math::sqr(x(1,2)) * x(2,0) * x(3,0) + Math::sqr(x(1,2)) * Math::sqr(x(2,1)) - Math::sqr(x(1,2)) * x(2,1) * x(3,1) + Math::sqr(x(1,2)) * Math::sqr(x(3,0)) + Math::sqr(x(1,2)) * Math::sqr(x(3,1)) - x(1,2) * Math::sqr(x(2,0)) * x(3,2) + x(1,2) * x(2,0) * x(2,2) * x(3,0) + x(1,2) * x(2,0) * x(3,0) * x(3,2) - x(1,2) * Math::sqr(x(2,1)) * x(3,2) + x(1,2) * x(2,1) * x(2,2) * x(3,1) + x(1,2) * x(2,1) * x(3,1) * x(3,2) - x(1,2) * x(2,2) * Math::sqr(x(3,0)) - x(1,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,2)) - DataType(2) * x(2,0) * x(2,1) * x(3,0) * x(3,1) - DataType(2) * x(2,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(2,1)) * Math::sqr(x(3,0)) + Math::sqr(x(2,1)) * Math::sqr(x(3,2)) - DataType(2) * x(2,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(2,2)) * Math::sqr(x(3,0)) + Math::sqr(x(2,2)) * Math::sqr(x(3,1))) / (h*h*h*h) / (x(0,0) * x(1,1) * x(2,2) - x(0,0) * x(1,1) * x(3,2) - x(0,0) * x(1,2) * x(2,1) + x(0,0) * x(1,2) * x(3,1) + x(0,0) * x(2,1) * x(3,2) - x(0,0) * x(2,2) * x(3,1) - x(0,1) * x(1,0) * x(2,2) + x(0,1) * x(1,0) * x(3,2) + x(0,1) * x(1,2) * x(2,0) - x(0,1) * x(1,2) * x(3,0) - x(0,1) * x(2,0) * x(3,2) + x(0,1) * x(2,2) * x(3,0) + x(0,2) * x(1,0) * x(2,1) - x(0,2) * x(1,0) * x(3,1) - x(0,2) * x(1,1) * x(2,0) + x(0,2) * x(1,1) * x(3,0) + x(0,2) * x(2,0) * x(3,1) - x(0,2) * x(2,1) * x(3,0) - x(1,0) * x(2,1) * x(3,2) + x(1,0) * x(2,2) * x(3,1) + x(1,1) * x(2,0) * x(3,2) - x(1,1) * x(2,2) * x(3,0) - x(1,2) * x(2,0) * x(3,1) + x(1,2) * x(2,1) * x(3,0));
588 grad_cof_part1[1][0] += -DataType(8) * this->_fac_cof * (Math::pow(Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18), DataType(2)) + Math::pow(-Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) + Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(-(x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6) + (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow((x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3) - (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) - DataType(3)) * (x(0,1) * x(2,2) - x(0,1) * x(3,2) - x(2,1) * x(0,2) + x(0,2) * x(3,1) + x(2,1) * x(3,2) - x(2,2) * x(3,1)) * (Math::sqr(x(0,0)) * Math::sqr(x(1,1)) - Math::sqr(x(0,0)) * x(1,1) * x(2,1) - Math::sqr(x(0,0)) * x(1,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(1,2)) - Math::sqr(x(0,0)) * x(1,2) * x(2,2) - Math::sqr(x(0,0)) * x(1,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(2,1)) - Math::sqr(x(0,0)) * x(2,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(2,2)) - Math::sqr(x(0,0)) * x(2,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(3,1)) + Math::sqr(x(0,0)) * Math::sqr(x(3,2)) - DataType(2) * x(0,0) * x(0,1) * x(1,0) * x(1,1) + x(0,0) * x(0,1) * x(1,0) * x(2,1) + x(0,0) * x(0,1) * x(1,0) * x(3,1) + x(0,0) * x(0,1) * x(1,1) * x(2,0) + x(0,0) * x(0,1) * x(1,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(2,0) * x(2,1) + x(0,0) * x(0,1) * x(2,0) * x(3,1) + x(0,0) * x(0,1) * x(2,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(3,0) * x(3,1) - DataType(2) * x(0,0) * x(0,2) * x(1,0) * x(1,2) + x(0,0) * x(0,2) * x(1,0) * x(2,2) + x(0,0) * x(0,2) * x(1,0) * x(3,2) + x(0,0) * x(0,2) * x(1,2) * x(2,0) + x(0,0) * x(0,2) * x(1,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(2,0) * x(2,2) + x(0,0) * x(0,2) * x(2,0) * x(3,2) + x(0,0) * x(0,2) * x(2,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(3,0) * x(3,2) + x(0,0) * x(1,0) * x(1,1) * x(2,1) + x(0,0) * x(1,0) * x(1,1) * x(3,1) + x(0,0) * x(1,0) * x(1,2) * x(2,2) + x(0,0) * x(1,0) * x(1,2) * x(3,2) - x(0,0) * x(1,0) * Math::sqr(x(2,1)) - x(0,0) * x(1,0) * Math::sqr(x(2,2)) - x(0,0) * x(1,0) * Math::sqr(x(3,1)) - x(0,0) * x(1,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(1,1)) * x(2,0) - x(0,0) * Math::sqr(x(1,1)) * x(3,0) + x(0,0) * x(1,1) * x(2,0) * x(2,1) + x(0,0) * x(1,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(1,2)) * x(2,0) - x(0,0) * Math::sqr(x(1,2)) * x(3,0) + x(0,0) * x(1,2) * x(2,0) * x(2,2) + x(0,0) * x(1,2) * x(3,0) * x(3,2) + x(0,0) * x(2,0) * x(2,1) * x(3,1) + x(0,0) * x(2,0) * x(2,2) * x(3,2) - x(0,0) * x(2,0) * Math::sqr(x(3,1)) - x(0,0) * x(2,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(2,1)) * x(3,0) + x(0,0) * x(2,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(2,2)) * x(3,0) + x(0,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(1,0)) - Math::sqr(x(0,1)) * x(1,0) * x(2,0) - Math::sqr(x(0,1)) * x(1,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(1,2)) - Math::sqr(x(0,1)) * x(1,2) * x(2,2) - Math::sqr(x(0,1)) * x(1,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(2,0)) - Math::sqr(x(0,1)) * x(2,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(2,2)) - Math::sqr(x(0,1)) * x(2,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(3,0)) + Math::sqr(x(0,1)) * Math::sqr(x(3,2)) - DataType(2) * x(0,1) * x(0,2) * x(1,1) * x(1,2) + x(0,1) * x(0,2) * x(1,1) * x(2,2) + x(0,1) * x(0,2) * x(1,1) * x(3,2) + x(0,1) * x(0,2) * x(1,2) * x(2,1) + x(0,1) * x(0,2) * x(1,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(2,1) * x(2,2) + x(0,1) * x(0,2) * x(2,1) * x(3,2) + x(0,1) * x(0,2) * x(2,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(1,0)) * x(2,1) - x(0,1) * Math::sqr(x(1,0)) * x(3,1) + x(0,1) * x(1,0) * x(1,1) * x(2,0) + x(0,1) * x(1,0) * x(1,1) * x(3,0) + x(0,1) * x(1,0) * x(2,0) * x(2,1) + x(0,1) * x(1,0) * x(3,0) * x(3,1) + x(0,1) * x(1,1) * x(1,2) * x(2,2) + x(0,1) * x(1,1) * x(1,2) * x(3,2) - x(0,1) * x(1,1) * Math::sqr(x(2,0)) - x(0,1) * x(1,1) * Math::sqr(x(2,2)) - x(0,1) * x(1,1) * Math::sqr(x(3,0)) - x(0,1) * x(1,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(1,2)) * x(2,1) - x(0,1) * Math::sqr(x(1,2)) * x(3,1) + x(0,1) * x(1,2) * x(2,1) * x(2,2) + x(0,1) * x(1,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(2,0)) * x(3,1) + x(0,1) * x(2,0) * x(2,1) * x(3,0) + x(0,1) * x(2,0) * x(3,0) * x(3,1) + x(0,1) * x(2,1) * x(2,2) * x(3,2) - x(0,1) * x(2,1) * Math::sqr(x(3,0)) - x(0,1) * x(2,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(2,2)) * x(3,1) + x(0,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(0,2)) * Math::sqr(x(1,0)) - Math::sqr(x(0,2)) * x(1,0) * x(2,0) - Math::sqr(x(0,2)) * x(1,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(1,1)) - Math::sqr(x(0,2)) * x(1,1) * x(2,1) - Math::sqr(x(0,2)) * x(1,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(2,0)) - Math::sqr(x(0,2)) * x(2,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(2,1)) - Math::sqr(x(0,2)) * x(2,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(3,0)) + Math::sqr(x(0,2)) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(1,0)) * x(2,2) - x(0,2) * Math::sqr(x(1,0)) * x(3,2) + x(0,2) * x(1,0) * x(1,2) * x(2,0) + x(0,2) * x(1,0) * x(1,2) * x(3,0) + x(0,2) * x(1,0) * x(2,0) * x(2,2) + x(0,2) * x(1,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(1,1)) * x(2,2) - x(0,2) * Math::sqr(x(1,1)) * x(3,2) + x(0,2) * x(1,1) * x(1,2) * x(2,1) + x(0,2) * x(1,1) * x(1,2) * x(3,1) + x(0,2) * x(1,1) * x(2,1) * x(2,2) + x(0,2) * x(1,1) * x(3,1) * x(3,2) - x(0,2) * x(1,2) * Math::sqr(x(2,0)) - x(0,2) * x(1,2) * Math::sqr(x(2,1)) - x(0,2) * x(1,2) * Math::sqr(x(3,0)) - x(0,2) * x(1,2) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(2,0)) * x(3,2) + x(0,2) * x(2,0) * x(2,2) * x(3,0) + x(0,2) * x(2,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(2,1)) * x(3,2) + x(0,2) * x(2,1) * x(2,2) * x(3,1) + x(0,2) * x(2,1) * x(3,1) * x(3,2) - x(0,2) * x(2,2) * Math::sqr(x(3,0)) - x(0,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(2,1)) - Math::sqr(x(1,0)) * x(2,1) * x(3,1) + Math::sqr(x(1,0)) * Math::sqr(x(2,2)) - Math::sqr(x(1,0)) * x(2,2) * x(3,2) + Math::sqr(x(1,0)) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(3,2)) - DataType(2) * x(1,0) * x(1,1) * x(2,0) * x(2,1) + x(1,0) * x(1,1) * x(2,0) * x(3,1) + x(1,0) * x(1,1) * x(2,1) * x(3,0) - DataType(2) * x(1,0) * x(1,1) * x(3,0) * x(3,1) - DataType(2) * x(1,0) * x(1,2) * x(2,0) * x(2,2) + x(1,0) * x(1,2) * x(2,0) * x(3,2) + x(1,0) * x(1,2) * x(2,2) * x(3,0) - DataType(2) * x(1,0) * x(1,2) * x(3,0) * x(3,2) + x(1,0) * x(2,0) * x(2,1) * x(3,1) + x(1,0) * x(2,0) * x(2,2) * x(3,2) - x(1,0) * x(2,0) * Math::sqr(x(3,1)) - x(1,0) * x(2,0) * Math::sqr(x(3,2)) - x(1,0) * Math::sqr(x(2,1)) * x(3,0) + x(1,0) * x(2,1) * x(3,0) * x(3,1) - x(1,0) * Math::sqr(x(2,2)) * x(3,0) + x(1,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(2,0)) - Math::sqr(x(1,1)) * x(2,0) * x(3,0) + Math::sqr(x(1,1)) * Math::sqr(x(2,2)) - Math::sqr(x(1,1)) * x(2,2) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(3,0)) + Math::sqr(x(1,1)) * Math::sqr(x(3,2)) - DataType(2) * x(1,1) * x(1,2) * x(2,1) * x(2,2) + x(1,1) * x(1,2) * x(2,1) * x(3,2) + x(1,1) * x(1,2) * x(2,2) * x(3,1) - DataType(2) * x(1,1) * x(1,2) * x(3,1) * x(3,2) - x(1,1) * Math::sqr(x(2,0)) * x(3,1) + x(1,1) * x(2,0) * x(2,1) * x(3,0) + x(1,1) * x(2,0) * x(3,0) * x(3,1) + x(1,1) * x(2,1) * x(2,2) * x(3,2) - x(1,1) * x(2,1) * Math::sqr(x(3,0)) - x(1,1) * x(2,1) * Math::sqr(x(3,2)) - x(1,1) * Math::sqr(x(2,2)) * x(3,1) + x(1,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(1,2)) * Math::sqr(x(2,0)) - Math::sqr(x(1,2)) * x(2,0) * x(3,0) + Math::sqr(x(1,2)) * Math::sqr(x(2,1)) - Math::sqr(x(1,2)) * x(2,1) * x(3,1) + Math::sqr(x(1,2)) * Math::sqr(x(3,0)) + Math::sqr(x(1,2)) * Math::sqr(x(3,1)) - x(1,2) * Math::sqr(x(2,0)) * x(3,2) + x(1,2) * x(2,0) * x(2,2) * x(3,0) + x(1,2) * x(2,0) * x(3,0) * x(3,2) - x(1,2) * Math::sqr(x(2,1)) * x(3,2) + x(1,2) * x(2,1) * x(2,2) * x(3,1) + x(1,2) * x(2,1) * x(3,1) * x(3,2) - x(1,2) * x(2,2) * Math::sqr(x(3,0)) - x(1,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,2)) - DataType(2) * x(2,0) * x(2,1) * x(3,0) * x(3,1) - DataType(2) * x(2,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(2,1)) * Math::sqr(x(3,0)) + Math::sqr(x(2,1)) * Math::sqr(x(3,2)) - DataType(2) * x(2,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(2,2)) * Math::sqr(x(3,0)) + Math::sqr(x(2,2)) * Math::sqr(x(3,1))) / (h*h*h*h) / (x(0,0) * x(1,1) * x(2,2) - x(0,0) * x(1,1) * x(3,2) - x(0,0) * x(1,2) * x(2,1) + x(0,0) * x(1,2) * x(3,1) + x(0,0) * x(2,1) * x(3,2) - x(0,0) * x(2,2) * x(3,1) - x(0,1) * x(1,0) * x(2,2) + x(0,1) * x(1,0) * x(3,2) + x(0,1) * x(1,2) * x(2,0) - x(0,1) * x(1,2) * x(3,0) - x(0,1) * x(2,0) * x(3,2) + x(0,1) * x(2,2) * x(3,0) + x(0,2) * x(1,0) * x(2,1) - x(0,2) * x(1,0) * x(3,1) - x(0,2) * x(1,1) * x(2,0) + x(0,2) * x(1,1) * x(3,0) + x(0,2) * x(2,0) * x(3,1) - x(0,2) * x(2,1) * x(3,0) - x(1,0) * x(2,1) * x(3,2) + x(1,0) * x(2,2) * x(3,1) + x(1,1) * x(2,0) * x(3,2) - x(1,1) * x(2,2) * x(3,0) - x(1,2) * x(2,0) * x(3,1) + x(1,2) * x(2,1) * x(3,0));
589 grad_cof_part1[1][1] += DataType(8) * this->_fac_cof * (Math::pow(Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18), DataType(2)) + Math::pow(-Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) + Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(-(x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6) + (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow((x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3) - (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) - DataType(3)) * (x(0,0) * x(2,2) - x(0,0) * x(3,2) - x(2,0) * x(0,2) + x(0,2) * x(3,0) + x(2,0) * x(3,2) - x(2,2) * x(3,0)) * (Math::sqr(x(0,0)) * Math::sqr(x(1,1)) - Math::sqr(x(0,0)) * x(1,1) * x(2,1) - Math::sqr(x(0,0)) * x(1,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(1,2)) - Math::sqr(x(0,0)) * x(1,2) * x(2,2) - Math::sqr(x(0,0)) * x(1,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(2,1)) - Math::sqr(x(0,0)) * x(2,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(2,2)) - Math::sqr(x(0,0)) * x(2,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(3,1)) + Math::sqr(x(0,0)) * Math::sqr(x(3,2)) - DataType(2) * x(0,0) * x(0,1) * x(1,0) * x(1,1) + x(0,0) * x(0,1) * x(1,0) * x(2,1) + x(0,0) * x(0,1) * x(1,0) * x(3,1) + x(0,0) * x(0,1) * x(1,1) * x(2,0) + x(0,0) * x(0,1) * x(1,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(2,0) * x(2,1) + x(0,0) * x(0,1) * x(2,0) * x(3,1) + x(0,0) * x(0,1) * x(2,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(3,0) * x(3,1) - DataType(2) * x(0,0) * x(0,2) * x(1,0) * x(1,2) + x(0,0) * x(0,2) * x(1,0) * x(2,2) + x(0,0) * x(0,2) * x(1,0) * x(3,2) + x(0,0) * x(0,2) * x(1,2) * x(2,0) + x(0,0) * x(0,2) * x(1,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(2,0) * x(2,2) + x(0,0) * x(0,2) * x(2,0) * x(3,2) + x(0,0) * x(0,2) * x(2,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(3,0) * x(3,2) + x(0,0) * x(1,0) * x(1,1) * x(2,1) + x(0,0) * x(1,0) * x(1,1) * x(3,1) + x(0,0) * x(1,0) * x(1,2) * x(2,2) + x(0,0) * x(1,0) * x(1,2) * x(3,2) - x(0,0) * x(1,0) * Math::sqr(x(2,1)) - x(0,0) * x(1,0) * Math::sqr(x(2,2)) - x(0,0) * x(1,0) * Math::sqr(x(3,1)) - x(0,0) * x(1,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(1,1)) * x(2,0) - x(0,0) * Math::sqr(x(1,1)) * x(3,0) + x(0,0) * x(1,1) * x(2,0) * x(2,1) + x(0,0) * x(1,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(1,2)) * x(2,0) - x(0,0) * Math::sqr(x(1,2)) * x(3,0) + x(0,0) * x(1,2) * x(2,0) * x(2,2) + x(0,0) * x(1,2) * x(3,0) * x(3,2) + x(0,0) * x(2,0) * x(2,1) * x(3,1) + x(0,0) * x(2,0) * x(2,2) * x(3,2) - x(0,0) * x(2,0) * Math::sqr(x(3,1)) - x(0,0) * x(2,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(2,1)) * x(3,0) + x(0,0) * x(2,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(2,2)) * x(3,0) + x(0,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(1,0)) - Math::sqr(x(0,1)) * x(1,0) * x(2,0) - Math::sqr(x(0,1)) * x(1,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(1,2)) - Math::sqr(x(0,1)) * x(1,2) * x(2,2) - Math::sqr(x(0,1)) * x(1,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(2,0)) - Math::sqr(x(0,1)) * x(2,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(2,2)) - Math::sqr(x(0,1)) * x(2,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(3,0)) + Math::sqr(x(0,1)) * Math::sqr(x(3,2)) - DataType(2) * x(0,1) * x(0,2) * x(1,1) * x(1,2) + x(0,1) * x(0,2) * x(1,1) * x(2,2) + x(0,1) * x(0,2) * x(1,1) * x(3,2) + x(0,1) * x(0,2) * x(1,2) * x(2,1) + x(0,1) * x(0,2) * x(1,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(2,1) * x(2,2) + x(0,1) * x(0,2) * x(2,1) * x(3,2) + x(0,1) * x(0,2) * x(2,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(1,0)) * x(2,1) - x(0,1) * Math::sqr(x(1,0)) * x(3,1) + x(0,1) * x(1,0) * x(1,1) * x(2,0) + x(0,1) * x(1,0) * x(1,1) * x(3,0) + x(0,1) * x(1,0) * x(2,0) * x(2,1) + x(0,1) * x(1,0) * x(3,0) * x(3,1) + x(0,1) * x(1,1) * x(1,2) * x(2,2) + x(0,1) * x(1,1) * x(1,2) * x(3,2) - x(0,1) * x(1,1) * Math::sqr(x(2,0)) - x(0,1) * x(1,1) * Math::sqr(x(2,2)) - x(0,1) * x(1,1) * Math::sqr(x(3,0)) - x(0,1) * x(1,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(1,2)) * x(2,1) - x(0,1) * Math::sqr(x(1,2)) * x(3,1) + x(0,1) * x(1,2) * x(2,1) * x(2,2) + x(0,1) * x(1,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(2,0)) * x(3,1) + x(0,1) * x(2,0) * x(2,1) * x(3,0) + x(0,1) * x(2,0) * x(3,0) * x(3,1) + x(0,1) * x(2,1) * x(2,2) * x(3,2) - x(0,1) * x(2,1) * Math::sqr(x(3,0)) - x(0,1) * x(2,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(2,2)) * x(3,1) + x(0,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(0,2)) * Math::sqr(x(1,0)) - Math::sqr(x(0,2)) * x(1,0) * x(2,0) - Math::sqr(x(0,2)) * x(1,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(1,1)) - Math::sqr(x(0,2)) * x(1,1) * x(2,1) - Math::sqr(x(0,2)) * x(1,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(2,0)) - Math::sqr(x(0,2)) * x(2,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(2,1)) - Math::sqr(x(0,2)) * x(2,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(3,0)) + Math::sqr(x(0,2)) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(1,0)) * x(2,2) - x(0,2) * Math::sqr(x(1,0)) * x(3,2) + x(0,2) * x(1,0) * x(1,2) * x(2,0) + x(0,2) * x(1,0) * x(1,2) * x(3,0) + x(0,2) * x(1,0) * x(2,0) * x(2,2) + x(0,2) * x(1,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(1,1)) * x(2,2) - x(0,2) * Math::sqr(x(1,1)) * x(3,2) + x(0,2) * x(1,1) * x(1,2) * x(2,1) + x(0,2) * x(1,1) * x(1,2) * x(3,1) + x(0,2) * x(1,1) * x(2,1) * x(2,2) + x(0,2) * x(1,1) * x(3,1) * x(3,2) - x(0,2) * x(1,2) * Math::sqr(x(2,0)) - x(0,2) * x(1,2) * Math::sqr(x(2,1)) - x(0,2) * x(1,2) * Math::sqr(x(3,0)) - x(0,2) * x(1,2) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(2,0)) * x(3,2) + x(0,2) * x(2,0) * x(2,2) * x(3,0) + x(0,2) * x(2,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(2,1)) * x(3,2) + x(0,2) * x(2,1) * x(2,2) * x(3,1) + x(0,2) * x(2,1) * x(3,1) * x(3,2) - x(0,2) * x(2,2) * Math::sqr(x(3,0)) - x(0,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(2,1)) - Math::sqr(x(1,0)) * x(2,1) * x(3,1) + Math::sqr(x(1,0)) * Math::sqr(x(2,2)) - Math::sqr(x(1,0)) * x(2,2) * x(3,2) + Math::sqr(x(1,0)) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(3,2)) - DataType(2) * x(1,0) * x(1,1) * x(2,0) * x(2,1) + x(1,0) * x(1,1) * x(2,0) * x(3,1) + x(1,0) * x(1,1) * x(2,1) * x(3,0) - DataType(2) * x(1,0) * x(1,1) * x(3,0) * x(3,1) - DataType(2) * x(1,0) * x(1,2) * x(2,0) * x(2,2) + x(1,0) * x(1,2) * x(2,0) * x(3,2) + x(1,0) * x(1,2) * x(2,2) * x(3,0) - DataType(2) * x(1,0) * x(1,2) * x(3,0) * x(3,2) + x(1,0) * x(2,0) * x(2,1) * x(3,1) + x(1,0) * x(2,0) * x(2,2) * x(3,2) - x(1,0) * x(2,0) * Math::sqr(x(3,1)) - x(1,0) * x(2,0) * Math::sqr(x(3,2)) - x(1,0) * Math::sqr(x(2,1)) * x(3,0) + x(1,0) * x(2,1) * x(3,0) * x(3,1) - x(1,0) * Math::sqr(x(2,2)) * x(3,0) + x(1,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(2,0)) - Math::sqr(x(1,1)) * x(2,0) * x(3,0) + Math::sqr(x(1,1)) * Math::sqr(x(2,2)) - Math::sqr(x(1,1)) * x(2,2) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(3,0)) + Math::sqr(x(1,1)) * Math::sqr(x(3,2)) - DataType(2) * x(1,1) * x(1,2) * x(2,1) * x(2,2) + x(1,1) * x(1,2) * x(2,1) * x(3,2) + x(1,1) * x(1,2) * x(2,2) * x(3,1) - DataType(2) * x(1,1) * x(1,2) * x(3,1) * x(3,2) - x(1,1) * Math::sqr(x(2,0)) * x(3,1) + x(1,1) * x(2,0) * x(2,1) * x(3,0) + x(1,1) * x(2,0) * x(3,0) * x(3,1) + x(1,1) * x(2,1) * x(2,2) * x(3,2) - x(1,1) * x(2,1) * Math::sqr(x(3,0)) - x(1,1) * x(2,1) * Math::sqr(x(3,2)) - x(1,1) * Math::sqr(x(2,2)) * x(3,1) + x(1,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(1,2)) * Math::sqr(x(2,0)) - Math::sqr(x(1,2)) * x(2,0) * x(3,0) + Math::sqr(x(1,2)) * Math::sqr(x(2,1)) - Math::sqr(x(1,2)) * x(2,1) * x(3,1) + Math::sqr(x(1,2)) * Math::sqr(x(3,0)) + Math::sqr(x(1,2)) * Math::sqr(x(3,1)) - x(1,2) * Math::sqr(x(2,0)) * x(3,2) + x(1,2) * x(2,0) * x(2,2) * x(3,0) + x(1,2) * x(2,0) * x(3,0) * x(3,2) - x(1,2) * Math::sqr(x(2,1)) * x(3,2) + x(1,2) * x(2,1) * x(2,2) * x(3,1) + x(1,2) * x(2,1) * x(3,1) * x(3,2) - x(1,2) * x(2,2) * Math::sqr(x(3,0)) - x(1,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,2)) - DataType(2) * x(2,0) * x(2,1) * x(3,0) * x(3,1) - DataType(2) * x(2,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(2,1)) * Math::sqr(x(3,0)) + Math::sqr(x(2,1)) * Math::sqr(x(3,2)) - DataType(2) * x(2,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(2,2)) * Math::sqr(x(3,0)) + Math::sqr(x(2,2)) * Math::sqr(x(3,1))) / (h*h*h*h) / (x(0,0) * x(1,1) * x(2,2) - x(0,0) * x(1,1) * x(3,2) - x(0,0) * x(1,2) * x(2,1) + x(0,0) * x(1,2) * x(3,1) + x(0,0) * x(2,1) * x(3,2) - x(0,0) * x(2,2) * x(3,1) - x(0,1) * x(1,0) * x(2,2) + x(0,1) * x(1,0) * x(3,2) + x(0,1) * x(1,2) * x(2,0) - x(0,1) * x(1,2) * x(3,0) - x(0,1) * x(2,0) * x(3,2) + x(0,1) * x(2,2) * x(3,0) + x(0,2) * x(1,0) * x(2,1) - x(0,2) * x(1,0) * x(3,1) - x(0,2) * x(1,1) * x(2,0) + x(0,2) * x(1,1) * x(3,0) + x(0,2) * x(2,0) * x(3,1) - x(0,2) * x(2,1) * x(3,0) - x(1,0) * x(2,1) * x(3,2) + x(1,0) * x(2,2) * x(3,1) + x(1,1) * x(2,0) * x(3,2) - x(1,1) * x(2,2) * x(3,0) - x(1,2) * x(2,0) * x(3,1) + x(1,2) * x(2,1) * x(3,0));
590 grad_cof_part1[1][2] += -DataType(8) * this->_fac_cof * (Math::pow(Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18), DataType(2)) + Math::pow(-Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) + Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(-(x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6) + (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow((x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3) - (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) - DataType(3)) * (x(0,0) * x(2,1) - x(0,0) * x(3,1) - x(2,0) * x(0,1) + x(0,1) * x(3,0) + x(2,0) * x(3,1) - x(2,1) * x(3,0)) * (Math::sqr(x(0,0)) * Math::sqr(x(1,1)) - Math::sqr(x(0,0)) * x(1,1) * x(2,1) - Math::sqr(x(0,0)) * x(1,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(1,2)) - Math::sqr(x(0,0)) * x(1,2) * x(2,2) - Math::sqr(x(0,0)) * x(1,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(2,1)) - Math::sqr(x(0,0)) * x(2,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(2,2)) - Math::sqr(x(0,0)) * x(2,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(3,1)) + Math::sqr(x(0,0)) * Math::sqr(x(3,2)) - DataType(2) * x(0,0) * x(0,1) * x(1,0) * x(1,1) + x(0,0) * x(0,1) * x(1,0) * x(2,1) + x(0,0) * x(0,1) * x(1,0) * x(3,1) + x(0,0) * x(0,1) * x(1,1) * x(2,0) + x(0,0) * x(0,1) * x(1,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(2,0) * x(2,1) + x(0,0) * x(0,1) * x(2,0) * x(3,1) + x(0,0) * x(0,1) * x(2,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(3,0) * x(3,1) - DataType(2) * x(0,0) * x(0,2) * x(1,0) * x(1,2) + x(0,0) * x(0,2) * x(1,0) * x(2,2) + x(0,0) * x(0,2) * x(1,0) * x(3,2) + x(0,0) * x(0,2) * x(1,2) * x(2,0) + x(0,0) * x(0,2) * x(1,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(2,0) * x(2,2) + x(0,0) * x(0,2) * x(2,0) * x(3,2) + x(0,0) * x(0,2) * x(2,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(3,0) * x(3,2) + x(0,0) * x(1,0) * x(1,1) * x(2,1) + x(0,0) * x(1,0) * x(1,1) * x(3,1) + x(0,0) * x(1,0) * x(1,2) * x(2,2) + x(0,0) * x(1,0) * x(1,2) * x(3,2) - x(0,0) * x(1,0) * Math::sqr(x(2,1)) - x(0,0) * x(1,0) * Math::sqr(x(2,2)) - x(0,0) * x(1,0) * Math::sqr(x(3,1)) - x(0,0) * x(1,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(1,1)) * x(2,0) - x(0,0) * Math::sqr(x(1,1)) * x(3,0) + x(0,0) * x(1,1) * x(2,0) * x(2,1) + x(0,0) * x(1,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(1,2)) * x(2,0) - x(0,0) * Math::sqr(x(1,2)) * x(3,0) + x(0,0) * x(1,2) * x(2,0) * x(2,2) + x(0,0) * x(1,2) * x(3,0) * x(3,2) + x(0,0) * x(2,0) * x(2,1) * x(3,1) + x(0,0) * x(2,0) * x(2,2) * x(3,2) - x(0,0) * x(2,0) * Math::sqr(x(3,1)) - x(0,0) * x(2,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(2,1)) * x(3,0) + x(0,0) * x(2,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(2,2)) * x(3,0) + x(0,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(1,0)) - Math::sqr(x(0,1)) * x(1,0) * x(2,0) - Math::sqr(x(0,1)) * x(1,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(1,2)) - Math::sqr(x(0,1)) * x(1,2) * x(2,2) - Math::sqr(x(0,1)) * x(1,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(2,0)) - Math::sqr(x(0,1)) * x(2,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(2,2)) - Math::sqr(x(0,1)) * x(2,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(3,0)) + Math::sqr(x(0,1)) * Math::sqr(x(3,2)) - DataType(2) * x(0,1) * x(0,2) * x(1,1) * x(1,2) + x(0,1) * x(0,2) * x(1,1) * x(2,2) + x(0,1) * x(0,2) * x(1,1) * x(3,2) + x(0,1) * x(0,2) * x(1,2) * x(2,1) + x(0,1) * x(0,2) * x(1,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(2,1) * x(2,2) + x(0,1) * x(0,2) * x(2,1) * x(3,2) + x(0,1) * x(0,2) * x(2,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(1,0)) * x(2,1) - x(0,1) * Math::sqr(x(1,0)) * x(3,1) + x(0,1) * x(1,0) * x(1,1) * x(2,0) + x(0,1) * x(1,0) * x(1,1) * x(3,0) + x(0,1) * x(1,0) * x(2,0) * x(2,1) + x(0,1) * x(1,0) * x(3,0) * x(3,1) + x(0,1) * x(1,1) * x(1,2) * x(2,2) + x(0,1) * x(1,1) * x(1,2) * x(3,2) - x(0,1) * x(1,1) * Math::sqr(x(2,0)) - x(0,1) * x(1,1) * Math::sqr(x(2,2)) - x(0,1) * x(1,1) * Math::sqr(x(3,0)) - x(0,1) * x(1,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(1,2)) * x(2,1) - x(0,1) * Math::sqr(x(1,2)) * x(3,1) + x(0,1) * x(1,2) * x(2,1) * x(2,2) + x(0,1) * x(1,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(2,0)) * x(3,1) + x(0,1) * x(2,0) * x(2,1) * x(3,0) + x(0,1) * x(2,0) * x(3,0) * x(3,1) + x(0,1) * x(2,1) * x(2,2) * x(3,2) - x(0,1) * x(2,1) * Math::sqr(x(3,0)) - x(0,1) * x(2,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(2,2)) * x(3,1) + x(0,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(0,2)) * Math::sqr(x(1,0)) - Math::sqr(x(0,2)) * x(1,0) * x(2,0) - Math::sqr(x(0,2)) * x(1,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(1,1)) - Math::sqr(x(0,2)) * x(1,1) * x(2,1) - Math::sqr(x(0,2)) * x(1,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(2,0)) - Math::sqr(x(0,2)) * x(2,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(2,1)) - Math::sqr(x(0,2)) * x(2,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(3,0)) + Math::sqr(x(0,2)) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(1,0)) * x(2,2) - x(0,2) * Math::sqr(x(1,0)) * x(3,2) + x(0,2) * x(1,0) * x(1,2) * x(2,0) + x(0,2) * x(1,0) * x(1,2) * x(3,0) + x(0,2) * x(1,0) * x(2,0) * x(2,2) + x(0,2) * x(1,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(1,1)) * x(2,2) - x(0,2) * Math::sqr(x(1,1)) * x(3,2) + x(0,2) * x(1,1) * x(1,2) * x(2,1) + x(0,2) * x(1,1) * x(1,2) * x(3,1) + x(0,2) * x(1,1) * x(2,1) * x(2,2) + x(0,2) * x(1,1) * x(3,1) * x(3,2) - x(0,2) * x(1,2) * Math::sqr(x(2,0)) - x(0,2) * x(1,2) * Math::sqr(x(2,1)) - x(0,2) * x(1,2) * Math::sqr(x(3,0)) - x(0,2) * x(1,2) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(2,0)) * x(3,2) + x(0,2) * x(2,0) * x(2,2) * x(3,0) + x(0,2) * x(2,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(2,1)) * x(3,2) + x(0,2) * x(2,1) * x(2,2) * x(3,1) + x(0,2) * x(2,1) * x(3,1) * x(3,2) - x(0,2) * x(2,2) * Math::sqr(x(3,0)) - x(0,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(2,1)) - Math::sqr(x(1,0)) * x(2,1) * x(3,1) + Math::sqr(x(1,0)) * Math::sqr(x(2,2)) - Math::sqr(x(1,0)) * x(2,2) * x(3,2) + Math::sqr(x(1,0)) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(3,2)) - DataType(2) * x(1,0) * x(1,1) * x(2,0) * x(2,1) + x(1,0) * x(1,1) * x(2,0) * x(3,1) + x(1,0) * x(1,1) * x(2,1) * x(3,0) - DataType(2) * x(1,0) * x(1,1) * x(3,0) * x(3,1) - DataType(2) * x(1,0) * x(1,2) * x(2,0) * x(2,2) + x(1,0) * x(1,2) * x(2,0) * x(3,2) + x(1,0) * x(1,2) * x(2,2) * x(3,0) - DataType(2) * x(1,0) * x(1,2) * x(3,0) * x(3,2) + x(1,0) * x(2,0) * x(2,1) * x(3,1) + x(1,0) * x(2,0) * x(2,2) * x(3,2) - x(1,0) * x(2,0) * Math::sqr(x(3,1)) - x(1,0) * x(2,0) * Math::sqr(x(3,2)) - x(1,0) * Math::sqr(x(2,1)) * x(3,0) + x(1,0) * x(2,1) * x(3,0) * x(3,1) - x(1,0) * Math::sqr(x(2,2)) * x(3,0) + x(1,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(2,0)) - Math::sqr(x(1,1)) * x(2,0) * x(3,0) + Math::sqr(x(1,1)) * Math::sqr(x(2,2)) - Math::sqr(x(1,1)) * x(2,2) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(3,0)) + Math::sqr(x(1,1)) * Math::sqr(x(3,2)) - DataType(2) * x(1,1) * x(1,2) * x(2,1) * x(2,2) + x(1,1) * x(1,2) * x(2,1) * x(3,2) + x(1,1) * x(1,2) * x(2,2) * x(3,1) - DataType(2) * x(1,1) * x(1,2) * x(3,1) * x(3,2) - x(1,1) * Math::sqr(x(2,0)) * x(3,1) + x(1,1) * x(2,0) * x(2,1) * x(3,0) + x(1,1) * x(2,0) * x(3,0) * x(3,1) + x(1,1) * x(2,1) * x(2,2) * x(3,2) - x(1,1) * x(2,1) * Math::sqr(x(3,0)) - x(1,1) * x(2,1) * Math::sqr(x(3,2)) - x(1,1) * Math::sqr(x(2,2)) * x(3,1) + x(1,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(1,2)) * Math::sqr(x(2,0)) - Math::sqr(x(1,2)) * x(2,0) * x(3,0) + Math::sqr(x(1,2)) * Math::sqr(x(2,1)) - Math::sqr(x(1,2)) * x(2,1) * x(3,1) + Math::sqr(x(1,2)) * Math::sqr(x(3,0)) + Math::sqr(x(1,2)) * Math::sqr(x(3,1)) - x(1,2) * Math::sqr(x(2,0)) * x(3,2) + x(1,2) * x(2,0) * x(2,2) * x(3,0) + x(1,2) * x(2,0) * x(3,0) * x(3,2) - x(1,2) * Math::sqr(x(2,1)) * x(3,2) + x(1,2) * x(2,1) * x(2,2) * x(3,1) + x(1,2) * x(2,1) * x(3,1) * x(3,2) - x(1,2) * x(2,2) * Math::sqr(x(3,0)) - x(1,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,2)) - DataType(2) * x(2,0) * x(2,1) * x(3,0) * x(3,1) - DataType(2) * x(2,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(2,1)) * Math::sqr(x(3,0)) + Math::sqr(x(2,1)) * Math::sqr(x(3,2)) - DataType(2) * x(2,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(2,2)) * Math::sqr(x(3,0)) + Math::sqr(x(2,2)) * Math::sqr(x(3,1))) / (h*h*h*h) / (x(0,0) * x(1,1) * x(2,2) - x(0,0) * x(1,1) * x(3,2) - x(0,0) * x(1,2) * x(2,1) + x(0,0) * x(1,2) * x(3,1) + x(0,0) * x(2,1) * x(3,2) - x(0,0) * x(2,2) * x(3,1) - x(0,1) * x(1,0) * x(2,2) + x(0,1) * x(1,0) * x(3,2) + x(0,1) * x(1,2) * x(2,0) - x(0,1) * x(1,2) * x(3,0) - x(0,1) * x(2,0) * x(3,2) + x(0,1) * x(2,2) * x(3,0) + x(0,2) * x(1,0) * x(2,1) - x(0,2) * x(1,0) * x(3,1) - x(0,2) * x(1,1) * x(2,0) + x(0,2) * x(1,1) * x(3,0) + x(0,2) * x(2,0) * x(3,1) - x(0,2) * x(2,1) * x(3,0) - x(1,0) * x(2,1) * x(3,2) + x(1,0) * x(2,2) * x(3,1) + x(1,1) * x(2,0) * x(3,2) - x(1,1) * x(2,2) * x(3,0) - x(1,2) * x(2,0) * x(3,1) + x(1,2) * x(2,1) * x(3,0));
591 grad_cof_part1[2][0] += DataType(8) * this->_fac_cof * (Math::pow(Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18), DataType(2)) + Math::pow(-Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) + Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(-(x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6) + (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow((x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3) - (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) - DataType(3)) * (x(0,1) * x(1,2) - x(0,1) * x(3,2) - x(1,1) * x(0,2) + x(0,2) * x(3,1) + x(1,1) * x(3,2) - x(1,2) * x(3,1)) * (Math::sqr(x(0,0)) * Math::sqr(x(1,1)) - Math::sqr(x(0,0)) * x(1,1) * x(2,1) - Math::sqr(x(0,0)) * x(1,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(1,2)) - Math::sqr(x(0,0)) * x(1,2) * x(2,2) - Math::sqr(x(0,0)) * x(1,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(2,1)) - Math::sqr(x(0,0)) * x(2,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(2,2)) - Math::sqr(x(0,0)) * x(2,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(3,1)) + Math::sqr(x(0,0)) * Math::sqr(x(3,2)) - DataType(2) * x(0,0) * x(0,1) * x(1,0) * x(1,1) + x(0,0) * x(0,1) * x(1,0) * x(2,1) + x(0,0) * x(0,1) * x(1,0) * x(3,1) + x(0,0) * x(0,1) * x(1,1) * x(2,0) + x(0,0) * x(0,1) * x(1,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(2,0) * x(2,1) + x(0,0) * x(0,1) * x(2,0) * x(3,1) + x(0,0) * x(0,1) * x(2,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(3,0) * x(3,1) - DataType(2) * x(0,0) * x(0,2) * x(1,0) * x(1,2) + x(0,0) * x(0,2) * x(1,0) * x(2,2) + x(0,0) * x(0,2) * x(1,0) * x(3,2) + x(0,0) * x(0,2) * x(1,2) * x(2,0) + x(0,0) * x(0,2) * x(1,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(2,0) * x(2,2) + x(0,0) * x(0,2) * x(2,0) * x(3,2) + x(0,0) * x(0,2) * x(2,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(3,0) * x(3,2) + x(0,0) * x(1,0) * x(1,1) * x(2,1) + x(0,0) * x(1,0) * x(1,1) * x(3,1) + x(0,0) * x(1,0) * x(1,2) * x(2,2) + x(0,0) * x(1,0) * x(1,2) * x(3,2) - x(0,0) * x(1,0) * Math::sqr(x(2,1)) - x(0,0) * x(1,0) * Math::sqr(x(2,2)) - x(0,0) * x(1,0) * Math::sqr(x(3,1)) - x(0,0) * x(1,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(1,1)) * x(2,0) - x(0,0) * Math::sqr(x(1,1)) * x(3,0) + x(0,0) * x(1,1) * x(2,0) * x(2,1) + x(0,0) * x(1,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(1,2)) * x(2,0) - x(0,0) * Math::sqr(x(1,2)) * x(3,0) + x(0,0) * x(1,2) * x(2,0) * x(2,2) + x(0,0) * x(1,2) * x(3,0) * x(3,2) + x(0,0) * x(2,0) * x(2,1) * x(3,1) + x(0,0) * x(2,0) * x(2,2) * x(3,2) - x(0,0) * x(2,0) * Math::sqr(x(3,1)) - x(0,0) * x(2,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(2,1)) * x(3,0) + x(0,0) * x(2,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(2,2)) * x(3,0) + x(0,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(1,0)) - Math::sqr(x(0,1)) * x(1,0) * x(2,0) - Math::sqr(x(0,1)) * x(1,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(1,2)) - Math::sqr(x(0,1)) * x(1,2) * x(2,2) - Math::sqr(x(0,1)) * x(1,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(2,0)) - Math::sqr(x(0,1)) * x(2,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(2,2)) - Math::sqr(x(0,1)) * x(2,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(3,0)) + Math::sqr(x(0,1)) * Math::sqr(x(3,2)) - DataType(2) * x(0,1) * x(0,2) * x(1,1) * x(1,2) + x(0,1) * x(0,2) * x(1,1) * x(2,2) + x(0,1) * x(0,2) * x(1,1) * x(3,2) + x(0,1) * x(0,2) * x(1,2) * x(2,1) + x(0,1) * x(0,2) * x(1,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(2,1) * x(2,2) + x(0,1) * x(0,2) * x(2,1) * x(3,2) + x(0,1) * x(0,2) * x(2,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(1,0)) * x(2,1) - x(0,1) * Math::sqr(x(1,0)) * x(3,1) + x(0,1) * x(1,0) * x(1,1) * x(2,0) + x(0,1) * x(1,0) * x(1,1) * x(3,0) + x(0,1) * x(1,0) * x(2,0) * x(2,1) + x(0,1) * x(1,0) * x(3,0) * x(3,1) + x(0,1) * x(1,1) * x(1,2) * x(2,2) + x(0,1) * x(1,1) * x(1,2) * x(3,2) - x(0,1) * x(1,1) * Math::sqr(x(2,0)) - x(0,1) * x(1,1) * Math::sqr(x(2,2)) - x(0,1) * x(1,1) * Math::sqr(x(3,0)) - x(0,1) * x(1,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(1,2)) * x(2,1) - x(0,1) * Math::sqr(x(1,2)) * x(3,1) + x(0,1) * x(1,2) * x(2,1) * x(2,2) + x(0,1) * x(1,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(2,0)) * x(3,1) + x(0,1) * x(2,0) * x(2,1) * x(3,0) + x(0,1) * x(2,0) * x(3,0) * x(3,1) + x(0,1) * x(2,1) * x(2,2) * x(3,2) - x(0,1) * x(2,1) * Math::sqr(x(3,0)) - x(0,1) * x(2,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(2,2)) * x(3,1) + x(0,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(0,2)) * Math::sqr(x(1,0)) - Math::sqr(x(0,2)) * x(1,0) * x(2,0) - Math::sqr(x(0,2)) * x(1,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(1,1)) - Math::sqr(x(0,2)) * x(1,1) * x(2,1) - Math::sqr(x(0,2)) * x(1,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(2,0)) - Math::sqr(x(0,2)) * x(2,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(2,1)) - Math::sqr(x(0,2)) * x(2,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(3,0)) + Math::sqr(x(0,2)) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(1,0)) * x(2,2) - x(0,2) * Math::sqr(x(1,0)) * x(3,2) + x(0,2) * x(1,0) * x(1,2) * x(2,0) + x(0,2) * x(1,0) * x(1,2) * x(3,0) + x(0,2) * x(1,0) * x(2,0) * x(2,2) + x(0,2) * x(1,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(1,1)) * x(2,2) - x(0,2) * Math::sqr(x(1,1)) * x(3,2) + x(0,2) * x(1,1) * x(1,2) * x(2,1) + x(0,2) * x(1,1) * x(1,2) * x(3,1) + x(0,2) * x(1,1) * x(2,1) * x(2,2) + x(0,2) * x(1,1) * x(3,1) * x(3,2) - x(0,2) * x(1,2) * Math::sqr(x(2,0)) - x(0,2) * x(1,2) * Math::sqr(x(2,1)) - x(0,2) * x(1,2) * Math::sqr(x(3,0)) - x(0,2) * x(1,2) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(2,0)) * x(3,2) + x(0,2) * x(2,0) * x(2,2) * x(3,0) + x(0,2) * x(2,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(2,1)) * x(3,2) + x(0,2) * x(2,1) * x(2,2) * x(3,1) + x(0,2) * x(2,1) * x(3,1) * x(3,2) - x(0,2) * x(2,2) * Math::sqr(x(3,0)) - x(0,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(2,1)) - Math::sqr(x(1,0)) * x(2,1) * x(3,1) + Math::sqr(x(1,0)) * Math::sqr(x(2,2)) - Math::sqr(x(1,0)) * x(2,2) * x(3,2) + Math::sqr(x(1,0)) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(3,2)) - DataType(2) * x(1,0) * x(1,1) * x(2,0) * x(2,1) + x(1,0) * x(1,1) * x(2,0) * x(3,1) + x(1,0) * x(1,1) * x(2,1) * x(3,0) - DataType(2) * x(1,0) * x(1,1) * x(3,0) * x(3,1) - DataType(2) * x(1,0) * x(1,2) * x(2,0) * x(2,2) + x(1,0) * x(1,2) * x(2,0) * x(3,2) + x(1,0) * x(1,2) * x(2,2) * x(3,0) - DataType(2) * x(1,0) * x(1,2) * x(3,0) * x(3,2) + x(1,0) * x(2,0) * x(2,1) * x(3,1) + x(1,0) * x(2,0) * x(2,2) * x(3,2) - x(1,0) * x(2,0) * Math::sqr(x(3,1)) - x(1,0) * x(2,0) * Math::sqr(x(3,2)) - x(1,0) * Math::sqr(x(2,1)) * x(3,0) + x(1,0) * x(2,1) * x(3,0) * x(3,1) - x(1,0) * Math::sqr(x(2,2)) * x(3,0) + x(1,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(2,0)) - Math::sqr(x(1,1)) * x(2,0) * x(3,0) + Math::sqr(x(1,1)) * Math::sqr(x(2,2)) - Math::sqr(x(1,1)) * x(2,2) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(3,0)) + Math::sqr(x(1,1)) * Math::sqr(x(3,2)) - DataType(2) * x(1,1) * x(1,2) * x(2,1) * x(2,2) + x(1,1) * x(1,2) * x(2,1) * x(3,2) + x(1,1) * x(1,2) * x(2,2) * x(3,1) - DataType(2) * x(1,1) * x(1,2) * x(3,1) * x(3,2) - x(1,1) * Math::sqr(x(2,0)) * x(3,1) + x(1,1) * x(2,0) * x(2,1) * x(3,0) + x(1,1) * x(2,0) * x(3,0) * x(3,1) + x(1,1) * x(2,1) * x(2,2) * x(3,2) - x(1,1) * x(2,1) * Math::sqr(x(3,0)) - x(1,1) * x(2,1) * Math::sqr(x(3,2)) - x(1,1) * Math::sqr(x(2,2)) * x(3,1) + x(1,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(1,2)) * Math::sqr(x(2,0)) - Math::sqr(x(1,2)) * x(2,0) * x(3,0) + Math::sqr(x(1,2)) * Math::sqr(x(2,1)) - Math::sqr(x(1,2)) * x(2,1) * x(3,1) + Math::sqr(x(1,2)) * Math::sqr(x(3,0)) + Math::sqr(x(1,2)) * Math::sqr(x(3,1)) - x(1,2) * Math::sqr(x(2,0)) * x(3,2) + x(1,2) * x(2,0) * x(2,2) * x(3,0) + x(1,2) * x(2,0) * x(3,0) * x(3,2) - x(1,2) * Math::sqr(x(2,1)) * x(3,2) + x(1,2) * x(2,1) * x(2,2) * x(3,1) + x(1,2) * x(2,1) * x(3,1) * x(3,2) - x(1,2) * x(2,2) * Math::sqr(x(3,0)) - x(1,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,2)) - DataType(2) * x(2,0) * x(2,1) * x(3,0) * x(3,1) - DataType(2) * x(2,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(2,1)) * Math::sqr(x(3,0)) + Math::sqr(x(2,1)) * Math::sqr(x(3,2)) - DataType(2) * x(2,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(2,2)) * Math::sqr(x(3,0)) + Math::sqr(x(2,2)) * Math::sqr(x(3,1))) / (h*h*h*h) / (x(0,0) * x(1,1) * x(2,2) - x(0,0) * x(1,1) * x(3,2) - x(0,0) * x(1,2) * x(2,1) + x(0,0) * x(1,2) * x(3,1) + x(0,0) * x(2,1) * x(3,2) - x(0,0) * x(2,2) * x(3,1) - x(0,1) * x(1,0) * x(2,2) + x(0,1) * x(1,0) * x(3,2) + x(0,1) * x(1,2) * x(2,0) - x(0,1) * x(1,2) * x(3,0) - x(0,1) * x(2,0) * x(3,2) + x(0,1) * x(2,2) * x(3,0) + x(0,2) * x(1,0) * x(2,1) - x(0,2) * x(1,0) * x(3,1) - x(0,2) * x(1,1) * x(2,0) + x(0,2) * x(1,1) * x(3,0) + x(0,2) * x(2,0) * x(3,1) - x(0,2) * x(2,1) * x(3,0) - x(1,0) * x(2,1) * x(3,2) + x(1,0) * x(2,2) * x(3,1) + x(1,1) * x(2,0) * x(3,2) - x(1,1) * x(2,2) * x(3,0) - x(1,2) * x(2,0) * x(3,1) + x(1,2) * x(2,1) * x(3,0));
592 grad_cof_part1[2][1] += -DataType(8) * this->_fac_cof * (Math::pow(Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18), DataType(2)) + Math::pow(-Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) + Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(-(x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6) + (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow((x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3) - (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) - DataType(3)) * (x(0,0) * x(1,2) - x(0,0) * x(3,2) - x(1,0) * x(0,2) + x(0,2) * x(3,0) + x(1,0) * x(3,2) - x(1,2) * x(3,0)) * (Math::sqr(x(0,0)) * Math::sqr(x(1,1)) - Math::sqr(x(0,0)) * x(1,1) * x(2,1) - Math::sqr(x(0,0)) * x(1,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(1,2)) - Math::sqr(x(0,0)) * x(1,2) * x(2,2) - Math::sqr(x(0,0)) * x(1,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(2,1)) - Math::sqr(x(0,0)) * x(2,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(2,2)) - Math::sqr(x(0,0)) * x(2,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(3,1)) + Math::sqr(x(0,0)) * Math::sqr(x(3,2)) - DataType(2) * x(0,0) * x(0,1) * x(1,0) * x(1,1) + x(0,0) * x(0,1) * x(1,0) * x(2,1) + x(0,0) * x(0,1) * x(1,0) * x(3,1) + x(0,0) * x(0,1) * x(1,1) * x(2,0) + x(0,0) * x(0,1) * x(1,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(2,0) * x(2,1) + x(0,0) * x(0,1) * x(2,0) * x(3,1) + x(0,0) * x(0,1) * x(2,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(3,0) * x(3,1) - DataType(2) * x(0,0) * x(0,2) * x(1,0) * x(1,2) + x(0,0) * x(0,2) * x(1,0) * x(2,2) + x(0,0) * x(0,2) * x(1,0) * x(3,2) + x(0,0) * x(0,2) * x(1,2) * x(2,0) + x(0,0) * x(0,2) * x(1,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(2,0) * x(2,2) + x(0,0) * x(0,2) * x(2,0) * x(3,2) + x(0,0) * x(0,2) * x(2,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(3,0) * x(3,2) + x(0,0) * x(1,0) * x(1,1) * x(2,1) + x(0,0) * x(1,0) * x(1,1) * x(3,1) + x(0,0) * x(1,0) * x(1,2) * x(2,2) + x(0,0) * x(1,0) * x(1,2) * x(3,2) - x(0,0) * x(1,0) * Math::sqr(x(2,1)) - x(0,0) * x(1,0) * Math::sqr(x(2,2)) - x(0,0) * x(1,0) * Math::sqr(x(3,1)) - x(0,0) * x(1,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(1,1)) * x(2,0) - x(0,0) * Math::sqr(x(1,1)) * x(3,0) + x(0,0) * x(1,1) * x(2,0) * x(2,1) + x(0,0) * x(1,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(1,2)) * x(2,0) - x(0,0) * Math::sqr(x(1,2)) * x(3,0) + x(0,0) * x(1,2) * x(2,0) * x(2,2) + x(0,0) * x(1,2) * x(3,0) * x(3,2) + x(0,0) * x(2,0) * x(2,1) * x(3,1) + x(0,0) * x(2,0) * x(2,2) * x(3,2) - x(0,0) * x(2,0) * Math::sqr(x(3,1)) - x(0,0) * x(2,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(2,1)) * x(3,0) + x(0,0) * x(2,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(2,2)) * x(3,0) + x(0,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(1,0)) - Math::sqr(x(0,1)) * x(1,0) * x(2,0) - Math::sqr(x(0,1)) * x(1,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(1,2)) - Math::sqr(x(0,1)) * x(1,2) * x(2,2) - Math::sqr(x(0,1)) * x(1,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(2,0)) - Math::sqr(x(0,1)) * x(2,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(2,2)) - Math::sqr(x(0,1)) * x(2,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(3,0)) + Math::sqr(x(0,1)) * Math::sqr(x(3,2)) - DataType(2) * x(0,1) * x(0,2) * x(1,1) * x(1,2) + x(0,1) * x(0,2) * x(1,1) * x(2,2) + x(0,1) * x(0,2) * x(1,1) * x(3,2) + x(0,1) * x(0,2) * x(1,2) * x(2,1) + x(0,1) * x(0,2) * x(1,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(2,1) * x(2,2) + x(0,1) * x(0,2) * x(2,1) * x(3,2) + x(0,1) * x(0,2) * x(2,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(1,0)) * x(2,1) - x(0,1) * Math::sqr(x(1,0)) * x(3,1) + x(0,1) * x(1,0) * x(1,1) * x(2,0) + x(0,1) * x(1,0) * x(1,1) * x(3,0) + x(0,1) * x(1,0) * x(2,0) * x(2,1) + x(0,1) * x(1,0) * x(3,0) * x(3,1) + x(0,1) * x(1,1) * x(1,2) * x(2,2) + x(0,1) * x(1,1) * x(1,2) * x(3,2) - x(0,1) * x(1,1) * Math::sqr(x(2,0)) - x(0,1) * x(1,1) * Math::sqr(x(2,2)) - x(0,1) * x(1,1) * Math::sqr(x(3,0)) - x(0,1) * x(1,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(1,2)) * x(2,1) - x(0,1) * Math::sqr(x(1,2)) * x(3,1) + x(0,1) * x(1,2) * x(2,1) * x(2,2) + x(0,1) * x(1,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(2,0)) * x(3,1) + x(0,1) * x(2,0) * x(2,1) * x(3,0) + x(0,1) * x(2,0) * x(3,0) * x(3,1) + x(0,1) * x(2,1) * x(2,2) * x(3,2) - x(0,1) * x(2,1) * Math::sqr(x(3,0)) - x(0,1) * x(2,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(2,2)) * x(3,1) + x(0,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(0,2)) * Math::sqr(x(1,0)) - Math::sqr(x(0,2)) * x(1,0) * x(2,0) - Math::sqr(x(0,2)) * x(1,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(1,1)) - Math::sqr(x(0,2)) * x(1,1) * x(2,1) - Math::sqr(x(0,2)) * x(1,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(2,0)) - Math::sqr(x(0,2)) * x(2,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(2,1)) - Math::sqr(x(0,2)) * x(2,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(3,0)) + Math::sqr(x(0,2)) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(1,0)) * x(2,2) - x(0,2) * Math::sqr(x(1,0)) * x(3,2) + x(0,2) * x(1,0) * x(1,2) * x(2,0) + x(0,2) * x(1,0) * x(1,2) * x(3,0) + x(0,2) * x(1,0) * x(2,0) * x(2,2) + x(0,2) * x(1,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(1,1)) * x(2,2) - x(0,2) * Math::sqr(x(1,1)) * x(3,2) + x(0,2) * x(1,1) * x(1,2) * x(2,1) + x(0,2) * x(1,1) * x(1,2) * x(3,1) + x(0,2) * x(1,1) * x(2,1) * x(2,2) + x(0,2) * x(1,1) * x(3,1) * x(3,2) - x(0,2) * x(1,2) * Math::sqr(x(2,0)) - x(0,2) * x(1,2) * Math::sqr(x(2,1)) - x(0,2) * x(1,2) * Math::sqr(x(3,0)) - x(0,2) * x(1,2) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(2,0)) * x(3,2) + x(0,2) * x(2,0) * x(2,2) * x(3,0) + x(0,2) * x(2,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(2,1)) * x(3,2) + x(0,2) * x(2,1) * x(2,2) * x(3,1) + x(0,2) * x(2,1) * x(3,1) * x(3,2) - x(0,2) * x(2,2) * Math::sqr(x(3,0)) - x(0,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(2,1)) - Math::sqr(x(1,0)) * x(2,1) * x(3,1) + Math::sqr(x(1,0)) * Math::sqr(x(2,2)) - Math::sqr(x(1,0)) * x(2,2) * x(3,2) + Math::sqr(x(1,0)) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(3,2)) - DataType(2) * x(1,0) * x(1,1) * x(2,0) * x(2,1) + x(1,0) * x(1,1) * x(2,0) * x(3,1) + x(1,0) * x(1,1) * x(2,1) * x(3,0) - DataType(2) * x(1,0) * x(1,1) * x(3,0) * x(3,1) - DataType(2) * x(1,0) * x(1,2) * x(2,0) * x(2,2) + x(1,0) * x(1,2) * x(2,0) * x(3,2) + x(1,0) * x(1,2) * x(2,2) * x(3,0) - DataType(2) * x(1,0) * x(1,2) * x(3,0) * x(3,2) + x(1,0) * x(2,0) * x(2,1) * x(3,1) + x(1,0) * x(2,0) * x(2,2) * x(3,2) - x(1,0) * x(2,0) * Math::sqr(x(3,1)) - x(1,0) * x(2,0) * Math::sqr(x(3,2)) - x(1,0) * Math::sqr(x(2,1)) * x(3,0) + x(1,0) * x(2,1) * x(3,0) * x(3,1) - x(1,0) * Math::sqr(x(2,2)) * x(3,0) + x(1,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(2,0)) - Math::sqr(x(1,1)) * x(2,0) * x(3,0) + Math::sqr(x(1,1)) * Math::sqr(x(2,2)) - Math::sqr(x(1,1)) * x(2,2) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(3,0)) + Math::sqr(x(1,1)) * Math::sqr(x(3,2)) - DataType(2) * x(1,1) * x(1,2) * x(2,1) * x(2,2) + x(1,1) * x(1,2) * x(2,1) * x(3,2) + x(1,1) * x(1,2) * x(2,2) * x(3,1) - DataType(2) * x(1,1) * x(1,2) * x(3,1) * x(3,2) - x(1,1) * Math::sqr(x(2,0)) * x(3,1) + x(1,1) * x(2,0) * x(2,1) * x(3,0) + x(1,1) * x(2,0) * x(3,0) * x(3,1) + x(1,1) * x(2,1) * x(2,2) * x(3,2) - x(1,1) * x(2,1) * Math::sqr(x(3,0)) - x(1,1) * x(2,1) * Math::sqr(x(3,2)) - x(1,1) * Math::sqr(x(2,2)) * x(3,1) + x(1,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(1,2)) * Math::sqr(x(2,0)) - Math::sqr(x(1,2)) * x(2,0) * x(3,0) + Math::sqr(x(1,2)) * Math::sqr(x(2,1)) - Math::sqr(x(1,2)) * x(2,1) * x(3,1) + Math::sqr(x(1,2)) * Math::sqr(x(3,0)) + Math::sqr(x(1,2)) * Math::sqr(x(3,1)) - x(1,2) * Math::sqr(x(2,0)) * x(3,2) + x(1,2) * x(2,0) * x(2,2) * x(3,0) + x(1,2) * x(2,0) * x(3,0) * x(3,2) - x(1,2) * Math::sqr(x(2,1)) * x(3,2) + x(1,2) * x(2,1) * x(2,2) * x(3,1) + x(1,2) * x(2,1) * x(3,1) * x(3,2) - x(1,2) * x(2,2) * Math::sqr(x(3,0)) - x(1,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,2)) - DataType(2) * x(2,0) * x(2,1) * x(3,0) * x(3,1) - DataType(2) * x(2,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(2,1)) * Math::sqr(x(3,0)) + Math::sqr(x(2,1)) * Math::sqr(x(3,2)) - DataType(2) * x(2,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(2,2)) * Math::sqr(x(3,0)) + Math::sqr(x(2,2)) * Math::sqr(x(3,1))) / (h*h*h*h) / (x(0,0) * x(1,1) * x(2,2) - x(0,0) * x(1,1) * x(3,2) - x(0,0) * x(1,2) * x(2,1) + x(0,0) * x(1,2) * x(3,1) + x(0,0) * x(2,1) * x(3,2) - x(0,0) * x(2,2) * x(3,1) - x(0,1) * x(1,0) * x(2,2) + x(0,1) * x(1,0) * x(3,2) + x(0,1) * x(1,2) * x(2,0) - x(0,1) * x(1,2) * x(3,0) - x(0,1) * x(2,0) * x(3,2) + x(0,1) * x(2,2) * x(3,0) + x(0,2) * x(1,0) * x(2,1) - x(0,2) * x(1,0) * x(3,1) - x(0,2) * x(1,1) * x(2,0) + x(0,2) * x(1,1) * x(3,0) + x(0,2) * x(2,0) * x(3,1) - x(0,2) * x(2,1) * x(3,0) - x(1,0) * x(2,1) * x(3,2) + x(1,0) * x(2,2) * x(3,1) + x(1,1) * x(2,0) * x(3,2) - x(1,1) * x(2,2) * x(3,0) - x(1,2) * x(2,0) * x(3,1) + x(1,2) * x(2,1) * x(3,0));
593 grad_cof_part1[2][2] += DataType(8) * this->_fac_cof * (Math::pow(Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18), DataType(2)) + Math::pow(-Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) + Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(-(x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6) + (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow((x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3) - (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) - DataType(3)) * (x(0,0) * x(1,1) - x(0,0) * x(3,1) - x(1,0) * x(0,1) + x(0,1) * x(3,0) + x(1,0) * x(3,1) - x(1,1) * x(3,0)) * (Math::sqr(x(0,0)) * Math::sqr(x(1,1)) - Math::sqr(x(0,0)) * x(1,1) * x(2,1) - Math::sqr(x(0,0)) * x(1,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(1,2)) - Math::sqr(x(0,0)) * x(1,2) * x(2,2) - Math::sqr(x(0,0)) * x(1,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(2,1)) - Math::sqr(x(0,0)) * x(2,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(2,2)) - Math::sqr(x(0,0)) * x(2,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(3,1)) + Math::sqr(x(0,0)) * Math::sqr(x(3,2)) - DataType(2) * x(0,0) * x(0,1) * x(1,0) * x(1,1) + x(0,0) * x(0,1) * x(1,0) * x(2,1) + x(0,0) * x(0,1) * x(1,0) * x(3,1) + x(0,0) * x(0,1) * x(1,1) * x(2,0) + x(0,0) * x(0,1) * x(1,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(2,0) * x(2,1) + x(0,0) * x(0,1) * x(2,0) * x(3,1) + x(0,0) * x(0,1) * x(2,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(3,0) * x(3,1) - DataType(2) * x(0,0) * x(0,2) * x(1,0) * x(1,2) + x(0,0) * x(0,2) * x(1,0) * x(2,2) + x(0,0) * x(0,2) * x(1,0) * x(3,2) + x(0,0) * x(0,2) * x(1,2) * x(2,0) + x(0,0) * x(0,2) * x(1,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(2,0) * x(2,2) + x(0,0) * x(0,2) * x(2,0) * x(3,2) + x(0,0) * x(0,2) * x(2,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(3,0) * x(3,2) + x(0,0) * x(1,0) * x(1,1) * x(2,1) + x(0,0) * x(1,0) * x(1,1) * x(3,1) + x(0,0) * x(1,0) * x(1,2) * x(2,2) + x(0,0) * x(1,0) * x(1,2) * x(3,2) - x(0,0) * x(1,0) * Math::sqr(x(2,1)) - x(0,0) * x(1,0) * Math::sqr(x(2,2)) - x(0,0) * x(1,0) * Math::sqr(x(3,1)) - x(0,0) * x(1,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(1,1)) * x(2,0) - x(0,0) * Math::sqr(x(1,1)) * x(3,0) + x(0,0) * x(1,1) * x(2,0) * x(2,1) + x(0,0) * x(1,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(1,2)) * x(2,0) - x(0,0) * Math::sqr(x(1,2)) * x(3,0) + x(0,0) * x(1,2) * x(2,0) * x(2,2) + x(0,0) * x(1,2) * x(3,0) * x(3,2) + x(0,0) * x(2,0) * x(2,1) * x(3,1) + x(0,0) * x(2,0) * x(2,2) * x(3,2) - x(0,0) * x(2,0) * Math::sqr(x(3,1)) - x(0,0) * x(2,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(2,1)) * x(3,0) + x(0,0) * x(2,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(2,2)) * x(3,0) + x(0,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(1,0)) - Math::sqr(x(0,1)) * x(1,0) * x(2,0) - Math::sqr(x(0,1)) * x(1,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(1,2)) - Math::sqr(x(0,1)) * x(1,2) * x(2,2) - Math::sqr(x(0,1)) * x(1,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(2,0)) - Math::sqr(x(0,1)) * x(2,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(2,2)) - Math::sqr(x(0,1)) * x(2,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(3,0)) + Math::sqr(x(0,1)) * Math::sqr(x(3,2)) - DataType(2) * x(0,1) * x(0,2) * x(1,1) * x(1,2) + x(0,1) * x(0,2) * x(1,1) * x(2,2) + x(0,1) * x(0,2) * x(1,1) * x(3,2) + x(0,1) * x(0,2) * x(1,2) * x(2,1) + x(0,1) * x(0,2) * x(1,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(2,1) * x(2,2) + x(0,1) * x(0,2) * x(2,1) * x(3,2) + x(0,1) * x(0,2) * x(2,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(1,0)) * x(2,1) - x(0,1) * Math::sqr(x(1,0)) * x(3,1) + x(0,1) * x(1,0) * x(1,1) * x(2,0) + x(0,1) * x(1,0) * x(1,1) * x(3,0) + x(0,1) * x(1,0) * x(2,0) * x(2,1) + x(0,1) * x(1,0) * x(3,0) * x(3,1) + x(0,1) * x(1,1) * x(1,2) * x(2,2) + x(0,1) * x(1,1) * x(1,2) * x(3,2) - x(0,1) * x(1,1) * Math::sqr(x(2,0)) - x(0,1) * x(1,1) * Math::sqr(x(2,2)) - x(0,1) * x(1,1) * Math::sqr(x(3,0)) - x(0,1) * x(1,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(1,2)) * x(2,1) - x(0,1) * Math::sqr(x(1,2)) * x(3,1) + x(0,1) * x(1,2) * x(2,1) * x(2,2) + x(0,1) * x(1,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(2,0)) * x(3,1) + x(0,1) * x(2,0) * x(2,1) * x(3,0) + x(0,1) * x(2,0) * x(3,0) * x(3,1) + x(0,1) * x(2,1) * x(2,2) * x(3,2) - x(0,1) * x(2,1) * Math::sqr(x(3,0)) - x(0,1) * x(2,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(2,2)) * x(3,1) + x(0,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(0,2)) * Math::sqr(x(1,0)) - Math::sqr(x(0,2)) * x(1,0) * x(2,0) - Math::sqr(x(0,2)) * x(1,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(1,1)) - Math::sqr(x(0,2)) * x(1,1) * x(2,1) - Math::sqr(x(0,2)) * x(1,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(2,0)) - Math::sqr(x(0,2)) * x(2,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(2,1)) - Math::sqr(x(0,2)) * x(2,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(3,0)) + Math::sqr(x(0,2)) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(1,0)) * x(2,2) - x(0,2) * Math::sqr(x(1,0)) * x(3,2) + x(0,2) * x(1,0) * x(1,2) * x(2,0) + x(0,2) * x(1,0) * x(1,2) * x(3,0) + x(0,2) * x(1,0) * x(2,0) * x(2,2) + x(0,2) * x(1,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(1,1)) * x(2,2) - x(0,2) * Math::sqr(x(1,1)) * x(3,2) + x(0,2) * x(1,1) * x(1,2) * x(2,1) + x(0,2) * x(1,1) * x(1,2) * x(3,1) + x(0,2) * x(1,1) * x(2,1) * x(2,2) + x(0,2) * x(1,1) * x(3,1) * x(3,2) - x(0,2) * x(1,2) * Math::sqr(x(2,0)) - x(0,2) * x(1,2) * Math::sqr(x(2,1)) - x(0,2) * x(1,2) * Math::sqr(x(3,0)) - x(0,2) * x(1,2) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(2,0)) * x(3,2) + x(0,2) * x(2,0) * x(2,2) * x(3,0) + x(0,2) * x(2,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(2,1)) * x(3,2) + x(0,2) * x(2,1) * x(2,2) * x(3,1) + x(0,2) * x(2,1) * x(3,1) * x(3,2) - x(0,2) * x(2,2) * Math::sqr(x(3,0)) - x(0,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(2,1)) - Math::sqr(x(1,0)) * x(2,1) * x(3,1) + Math::sqr(x(1,0)) * Math::sqr(x(2,2)) - Math::sqr(x(1,0)) * x(2,2) * x(3,2) + Math::sqr(x(1,0)) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(3,2)) - DataType(2) * x(1,0) * x(1,1) * x(2,0) * x(2,1) + x(1,0) * x(1,1) * x(2,0) * x(3,1) + x(1,0) * x(1,1) * x(2,1) * x(3,0) - DataType(2) * x(1,0) * x(1,1) * x(3,0) * x(3,1) - DataType(2) * x(1,0) * x(1,2) * x(2,0) * x(2,2) + x(1,0) * x(1,2) * x(2,0) * x(3,2) + x(1,0) * x(1,2) * x(2,2) * x(3,0) - DataType(2) * x(1,0) * x(1,2) * x(3,0) * x(3,2) + x(1,0) * x(2,0) * x(2,1) * x(3,1) + x(1,0) * x(2,0) * x(2,2) * x(3,2) - x(1,0) * x(2,0) * Math::sqr(x(3,1)) - x(1,0) * x(2,0) * Math::sqr(x(3,2)) - x(1,0) * Math::sqr(x(2,1)) * x(3,0) + x(1,0) * x(2,1) * x(3,0) * x(3,1) - x(1,0) * Math::sqr(x(2,2)) * x(3,0) + x(1,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(2,0)) - Math::sqr(x(1,1)) * x(2,0) * x(3,0) + Math::sqr(x(1,1)) * Math::sqr(x(2,2)) - Math::sqr(x(1,1)) * x(2,2) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(3,0)) + Math::sqr(x(1,1)) * Math::sqr(x(3,2)) - DataType(2) * x(1,1) * x(1,2) * x(2,1) * x(2,2) + x(1,1) * x(1,2) * x(2,1) * x(3,2) + x(1,1) * x(1,2) * x(2,2) * x(3,1) - DataType(2) * x(1,1) * x(1,2) * x(3,1) * x(3,2) - x(1,1) * Math::sqr(x(2,0)) * x(3,1) + x(1,1) * x(2,0) * x(2,1) * x(3,0) + x(1,1) * x(2,0) * x(3,0) * x(3,1) + x(1,1) * x(2,1) * x(2,2) * x(3,2) - x(1,1) * x(2,1) * Math::sqr(x(3,0)) - x(1,1) * x(2,1) * Math::sqr(x(3,2)) - x(1,1) * Math::sqr(x(2,2)) * x(3,1) + x(1,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(1,2)) * Math::sqr(x(2,0)) - Math::sqr(x(1,2)) * x(2,0) * x(3,0) + Math::sqr(x(1,2)) * Math::sqr(x(2,1)) - Math::sqr(x(1,2)) * x(2,1) * x(3,1) + Math::sqr(x(1,2)) * Math::sqr(x(3,0)) + Math::sqr(x(1,2)) * Math::sqr(x(3,1)) - x(1,2) * Math::sqr(x(2,0)) * x(3,2) + x(1,2) * x(2,0) * x(2,2) * x(3,0) + x(1,2) * x(2,0) * x(3,0) * x(3,2) - x(1,2) * Math::sqr(x(2,1)) * x(3,2) + x(1,2) * x(2,1) * x(2,2) * x(3,1) + x(1,2) * x(2,1) * x(3,1) * x(3,2) - x(1,2) * x(2,2) * Math::sqr(x(3,0)) - x(1,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,2)) - DataType(2) * x(2,0) * x(2,1) * x(3,0) * x(3,1) - DataType(2) * x(2,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(2,1)) * Math::sqr(x(3,0)) + Math::sqr(x(2,1)) * Math::sqr(x(3,2)) - DataType(2) * x(2,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(2,2)) * Math::sqr(x(3,0)) + Math::sqr(x(2,2)) * Math::sqr(x(3,1))) / (h*h*h*h) / (x(0,0) * x(1,1) * x(2,2) - x(0,0) * x(1,1) * x(3,2) - x(0,0) * x(1,2) * x(2,1) + x(0,0) * x(1,2) * x(3,1) + x(0,0) * x(2,1) * x(3,2) - x(0,0) * x(2,2) * x(3,1) - x(0,1) * x(1,0) * x(2,2) + x(0,1) * x(1,0) * x(3,2) + x(0,1) * x(1,2) * x(2,0) - x(0,1) * x(1,2) * x(3,0) - x(0,1) * x(2,0) * x(3,2) + x(0,1) * x(2,2) * x(3,0) + x(0,2) * x(1,0) * x(2,1) - x(0,2) * x(1,0) * x(3,1) - x(0,2) * x(1,1) * x(2,0) + x(0,2) * x(1,1) * x(3,0) + x(0,2) * x(2,0) * x(3,1) - x(0,2) * x(2,1) * x(3,0) - x(1,0) * x(2,1) * x(3,2) + x(1,0) * x(2,2) * x(3,1) + x(1,1) * x(2,0) * x(3,2) - x(1,1) * x(2,2) * x(3,0) - x(1,2) * x(2,0) * x(3,1) + x(1,2) * x(2,1) * x(3,0));
594 grad_cof_part1[3][0] += -DataType(8) * this->_fac_cof * (Math::pow(Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18), DataType(2)) + Math::pow(-Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) + Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(-(x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6) + (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow((x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3) - (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) - DataType(3)) * (x(0,1) * x(1,2) - x(0,1) * x(2,2) - x(1,1) * x(0,2) + x(2,1) * x(0,2) + x(1,1) * x(2,2) - x(2,1) * x(1,2)) * (Math::sqr(x(0,0)) * Math::sqr(x(1,1)) - Math::sqr(x(0,0)) * x(1,1) * x(2,1) - Math::sqr(x(0,0)) * x(1,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(1,2)) - Math::sqr(x(0,0)) * x(1,2) * x(2,2) - Math::sqr(x(0,0)) * x(1,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(2,1)) - Math::sqr(x(0,0)) * x(2,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(2,2)) - Math::sqr(x(0,0)) * x(2,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(3,1)) + Math::sqr(x(0,0)) * Math::sqr(x(3,2)) - DataType(2) * x(0,0) * x(0,1) * x(1,0) * x(1,1) + x(0,0) * x(0,1) * x(1,0) * x(2,1) + x(0,0) * x(0,1) * x(1,0) * x(3,1) + x(0,0) * x(0,1) * x(1,1) * x(2,0) + x(0,0) * x(0,1) * x(1,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(2,0) * x(2,1) + x(0,0) * x(0,1) * x(2,0) * x(3,1) + x(0,0) * x(0,1) * x(2,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(3,0) * x(3,1) - DataType(2) * x(0,0) * x(0,2) * x(1,0) * x(1,2) + x(0,0) * x(0,2) * x(1,0) * x(2,2) + x(0,0) * x(0,2) * x(1,0) * x(3,2) + x(0,0) * x(0,2) * x(1,2) * x(2,0) + x(0,0) * x(0,2) * x(1,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(2,0) * x(2,2) + x(0,0) * x(0,2) * x(2,0) * x(3,2) + x(0,0) * x(0,2) * x(2,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(3,0) * x(3,2) + x(0,0) * x(1,0) * x(1,1) * x(2,1) + x(0,0) * x(1,0) * x(1,1) * x(3,1) + x(0,0) * x(1,0) * x(1,2) * x(2,2) + x(0,0) * x(1,0) * x(1,2) * x(3,2) - x(0,0) * x(1,0) * Math::sqr(x(2,1)) - x(0,0) * x(1,0) * Math::sqr(x(2,2)) - x(0,0) * x(1,0) * Math::sqr(x(3,1)) - x(0,0) * x(1,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(1,1)) * x(2,0) - x(0,0) * Math::sqr(x(1,1)) * x(3,0) + x(0,0) * x(1,1) * x(2,0) * x(2,1) + x(0,0) * x(1,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(1,2)) * x(2,0) - x(0,0) * Math::sqr(x(1,2)) * x(3,0) + x(0,0) * x(1,2) * x(2,0) * x(2,2) + x(0,0) * x(1,2) * x(3,0) * x(3,2) + x(0,0) * x(2,0) * x(2,1) * x(3,1) + x(0,0) * x(2,0) * x(2,2) * x(3,2) - x(0,0) * x(2,0) * Math::sqr(x(3,1)) - x(0,0) * x(2,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(2,1)) * x(3,0) + x(0,0) * x(2,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(2,2)) * x(3,0) + x(0,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(1,0)) - Math::sqr(x(0,1)) * x(1,0) * x(2,0) - Math::sqr(x(0,1)) * x(1,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(1,2)) - Math::sqr(x(0,1)) * x(1,2) * x(2,2) - Math::sqr(x(0,1)) * x(1,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(2,0)) - Math::sqr(x(0,1)) * x(2,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(2,2)) - Math::sqr(x(0,1)) * x(2,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(3,0)) + Math::sqr(x(0,1)) * Math::sqr(x(3,2)) - DataType(2) * x(0,1) * x(0,2) * x(1,1) * x(1,2) + x(0,1) * x(0,2) * x(1,1) * x(2,2) + x(0,1) * x(0,2) * x(1,1) * x(3,2) + x(0,1) * x(0,2) * x(1,2) * x(2,1) + x(0,1) * x(0,2) * x(1,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(2,1) * x(2,2) + x(0,1) * x(0,2) * x(2,1) * x(3,2) + x(0,1) * x(0,2) * x(2,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(1,0)) * x(2,1) - x(0,1) * Math::sqr(x(1,0)) * x(3,1) + x(0,1) * x(1,0) * x(1,1) * x(2,0) + x(0,1) * x(1,0) * x(1,1) * x(3,0) + x(0,1) * x(1,0) * x(2,0) * x(2,1) + x(0,1) * x(1,0) * x(3,0) * x(3,1) + x(0,1) * x(1,1) * x(1,2) * x(2,2) + x(0,1) * x(1,1) * x(1,2) * x(3,2) - x(0,1) * x(1,1) * Math::sqr(x(2,0)) - x(0,1) * x(1,1) * Math::sqr(x(2,2)) - x(0,1) * x(1,1) * Math::sqr(x(3,0)) - x(0,1) * x(1,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(1,2)) * x(2,1) - x(0,1) * Math::sqr(x(1,2)) * x(3,1) + x(0,1) * x(1,2) * x(2,1) * x(2,2) + x(0,1) * x(1,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(2,0)) * x(3,1) + x(0,1) * x(2,0) * x(2,1) * x(3,0) + x(0,1) * x(2,0) * x(3,0) * x(3,1) + x(0,1) * x(2,1) * x(2,2) * x(3,2) - x(0,1) * x(2,1) * Math::sqr(x(3,0)) - x(0,1) * x(2,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(2,2)) * x(3,1) + x(0,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(0,2)) * Math::sqr(x(1,0)) - Math::sqr(x(0,2)) * x(1,0) * x(2,0) - Math::sqr(x(0,2)) * x(1,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(1,1)) - Math::sqr(x(0,2)) * x(1,1) * x(2,1) - Math::sqr(x(0,2)) * x(1,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(2,0)) - Math::sqr(x(0,2)) * x(2,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(2,1)) - Math::sqr(x(0,2)) * x(2,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(3,0)) + Math::sqr(x(0,2)) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(1,0)) * x(2,2) - x(0,2) * Math::sqr(x(1,0)) * x(3,2) + x(0,2) * x(1,0) * x(1,2) * x(2,0) + x(0,2) * x(1,0) * x(1,2) * x(3,0) + x(0,2) * x(1,0) * x(2,0) * x(2,2) + x(0,2) * x(1,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(1,1)) * x(2,2) - x(0,2) * Math::sqr(x(1,1)) * x(3,2) + x(0,2) * x(1,1) * x(1,2) * x(2,1) + x(0,2) * x(1,1) * x(1,2) * x(3,1) + x(0,2) * x(1,1) * x(2,1) * x(2,2) + x(0,2) * x(1,1) * x(3,1) * x(3,2) - x(0,2) * x(1,2) * Math::sqr(x(2,0)) - x(0,2) * x(1,2) * Math::sqr(x(2,1)) - x(0,2) * x(1,2) * Math::sqr(x(3,0)) - x(0,2) * x(1,2) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(2,0)) * x(3,2) + x(0,2) * x(2,0) * x(2,2) * x(3,0) + x(0,2) * x(2,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(2,1)) * x(3,2) + x(0,2) * x(2,1) * x(2,2) * x(3,1) + x(0,2) * x(2,1) * x(3,1) * x(3,2) - x(0,2) * x(2,2) * Math::sqr(x(3,0)) - x(0,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(2,1)) - Math::sqr(x(1,0)) * x(2,1) * x(3,1) + Math::sqr(x(1,0)) * Math::sqr(x(2,2)) - Math::sqr(x(1,0)) * x(2,2) * x(3,2) + Math::sqr(x(1,0)) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(3,2)) - DataType(2) * x(1,0) * x(1,1) * x(2,0) * x(2,1) + x(1,0) * x(1,1) * x(2,0) * x(3,1) + x(1,0) * x(1,1) * x(2,1) * x(3,0) - DataType(2) * x(1,0) * x(1,1) * x(3,0) * x(3,1) - DataType(2) * x(1,0) * x(1,2) * x(2,0) * x(2,2) + x(1,0) * x(1,2) * x(2,0) * x(3,2) + x(1,0) * x(1,2) * x(2,2) * x(3,0) - DataType(2) * x(1,0) * x(1,2) * x(3,0) * x(3,2) + x(1,0) * x(2,0) * x(2,1) * x(3,1) + x(1,0) * x(2,0) * x(2,2) * x(3,2) - x(1,0) * x(2,0) * Math::sqr(x(3,1)) - x(1,0) * x(2,0) * Math::sqr(x(3,2)) - x(1,0) * Math::sqr(x(2,1)) * x(3,0) + x(1,0) * x(2,1) * x(3,0) * x(3,1) - x(1,0) * Math::sqr(x(2,2)) * x(3,0) + x(1,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(2,0)) - Math::sqr(x(1,1)) * x(2,0) * x(3,0) + Math::sqr(x(1,1)) * Math::sqr(x(2,2)) - Math::sqr(x(1,1)) * x(2,2) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(3,0)) + Math::sqr(x(1,1)) * Math::sqr(x(3,2)) - DataType(2) * x(1,1) * x(1,2) * x(2,1) * x(2,2) + x(1,1) * x(1,2) * x(2,1) * x(3,2) + x(1,1) * x(1,2) * x(2,2) * x(3,1) - DataType(2) * x(1,1) * x(1,2) * x(3,1) * x(3,2) - x(1,1) * Math::sqr(x(2,0)) * x(3,1) + x(1,1) * x(2,0) * x(2,1) * x(3,0) + x(1,1) * x(2,0) * x(3,0) * x(3,1) + x(1,1) * x(2,1) * x(2,2) * x(3,2) - x(1,1) * x(2,1) * Math::sqr(x(3,0)) - x(1,1) * x(2,1) * Math::sqr(x(3,2)) - x(1,1) * Math::sqr(x(2,2)) * x(3,1) + x(1,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(1,2)) * Math::sqr(x(2,0)) - Math::sqr(x(1,2)) * x(2,0) * x(3,0) + Math::sqr(x(1,2)) * Math::sqr(x(2,1)) - Math::sqr(x(1,2)) * x(2,1) * x(3,1) + Math::sqr(x(1,2)) * Math::sqr(x(3,0)) + Math::sqr(x(1,2)) * Math::sqr(x(3,1)) - x(1,2) * Math::sqr(x(2,0)) * x(3,2) + x(1,2) * x(2,0) * x(2,2) * x(3,0) + x(1,2) * x(2,0) * x(3,0) * x(3,2) - x(1,2) * Math::sqr(x(2,1)) * x(3,2) + x(1,2) * x(2,1) * x(2,2) * x(3,1) + x(1,2) * x(2,1) * x(3,1) * x(3,2) - x(1,2) * x(2,2) * Math::sqr(x(3,0)) - x(1,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,2)) - DataType(2) * x(2,0) * x(2,1) * x(3,0) * x(3,1) - DataType(2) * x(2,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(2,1)) * Math::sqr(x(3,0)) + Math::sqr(x(2,1)) * Math::sqr(x(3,2)) - DataType(2) * x(2,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(2,2)) * Math::sqr(x(3,0)) + Math::sqr(x(2,2)) * Math::sqr(x(3,1))) / (h*h*h*h) / (x(0,0) * x(1,1) * x(2,2) - x(0,0) * x(1,1) * x(3,2) - x(0,0) * x(1,2) * x(2,1) + x(0,0) * x(1,2) * x(3,1) + x(0,0) * x(2,1) * x(3,2) - x(0,0) * x(2,2) * x(3,1) - x(0,1) * x(1,0) * x(2,2) + x(0,1) * x(1,0) * x(3,2) + x(0,1) * x(1,2) * x(2,0) - x(0,1) * x(1,2) * x(3,0) - x(0,1) * x(2,0) * x(3,2) + x(0,1) * x(2,2) * x(3,0) + x(0,2) * x(1,0) * x(2,1) - x(0,2) * x(1,0) * x(3,1) - x(0,2) * x(1,1) * x(2,0) + x(0,2) * x(1,1) * x(3,0) + x(0,2) * x(2,0) * x(3,1) - x(0,2) * x(2,1) * x(3,0) - x(1,0) * x(2,1) * x(3,2) + x(1,0) * x(2,2) * x(3,1) + x(1,1) * x(2,0) * x(3,2) - x(1,1) * x(2,2) * x(3,0) - x(1,2) * x(2,0) * x(3,1) + x(1,2) * x(2,1) * x(3,0));
595 grad_cof_part1[3][1] += DataType(8) * this->_fac_cof * (Math::pow(Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18), DataType(2)) + Math::pow(-Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) + Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(-(x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6) + (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow((x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3) - (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) - DataType(3)) * (x(0,0) * x(1,2) - x(0,0) * x(2,2) - x(1,0) * x(0,2) + x(2,0) * x(0,2) + x(1,0) * x(2,2) - x(2,0) * x(1,2)) * (Math::sqr(x(0,0)) * Math::sqr(x(1,1)) - Math::sqr(x(0,0)) * x(1,1) * x(2,1) - Math::sqr(x(0,0)) * x(1,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(1,2)) - Math::sqr(x(0,0)) * x(1,2) * x(2,2) - Math::sqr(x(0,0)) * x(1,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(2,1)) - Math::sqr(x(0,0)) * x(2,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(2,2)) - Math::sqr(x(0,0)) * x(2,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(3,1)) + Math::sqr(x(0,0)) * Math::sqr(x(3,2)) - DataType(2) * x(0,0) * x(0,1) * x(1,0) * x(1,1) + x(0,0) * x(0,1) * x(1,0) * x(2,1) + x(0,0) * x(0,1) * x(1,0) * x(3,1) + x(0,0) * x(0,1) * x(1,1) * x(2,0) + x(0,0) * x(0,1) * x(1,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(2,0) * x(2,1) + x(0,0) * x(0,1) * x(2,0) * x(3,1) + x(0,0) * x(0,1) * x(2,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(3,0) * x(3,1) - DataType(2) * x(0,0) * x(0,2) * x(1,0) * x(1,2) + x(0,0) * x(0,2) * x(1,0) * x(2,2) + x(0,0) * x(0,2) * x(1,0) * x(3,2) + x(0,0) * x(0,2) * x(1,2) * x(2,0) + x(0,0) * x(0,2) * x(1,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(2,0) * x(2,2) + x(0,0) * x(0,2) * x(2,0) * x(3,2) + x(0,0) * x(0,2) * x(2,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(3,0) * x(3,2) + x(0,0) * x(1,0) * x(1,1) * x(2,1) + x(0,0) * x(1,0) * x(1,1) * x(3,1) + x(0,0) * x(1,0) * x(1,2) * x(2,2) + x(0,0) * x(1,0) * x(1,2) * x(3,2) - x(0,0) * x(1,0) * Math::sqr(x(2,1)) - x(0,0) * x(1,0) * Math::sqr(x(2,2)) - x(0,0) * x(1,0) * Math::sqr(x(3,1)) - x(0,0) * x(1,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(1,1)) * x(2,0) - x(0,0) * Math::sqr(x(1,1)) * x(3,0) + x(0,0) * x(1,1) * x(2,0) * x(2,1) + x(0,0) * x(1,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(1,2)) * x(2,0) - x(0,0) * Math::sqr(x(1,2)) * x(3,0) + x(0,0) * x(1,2) * x(2,0) * x(2,2) + x(0,0) * x(1,2) * x(3,0) * x(3,2) + x(0,0) * x(2,0) * x(2,1) * x(3,1) + x(0,0) * x(2,0) * x(2,2) * x(3,2) - x(0,0) * x(2,0) * Math::sqr(x(3,1)) - x(0,0) * x(2,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(2,1)) * x(3,0) + x(0,0) * x(2,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(2,2)) * x(3,0) + x(0,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(1,0)) - Math::sqr(x(0,1)) * x(1,0) * x(2,0) - Math::sqr(x(0,1)) * x(1,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(1,2)) - Math::sqr(x(0,1)) * x(1,2) * x(2,2) - Math::sqr(x(0,1)) * x(1,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(2,0)) - Math::sqr(x(0,1)) * x(2,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(2,2)) - Math::sqr(x(0,1)) * x(2,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(3,0)) + Math::sqr(x(0,1)) * Math::sqr(x(3,2)) - DataType(2) * x(0,1) * x(0,2) * x(1,1) * x(1,2) + x(0,1) * x(0,2) * x(1,1) * x(2,2) + x(0,1) * x(0,2) * x(1,1) * x(3,2) + x(0,1) * x(0,2) * x(1,2) * x(2,1) + x(0,1) * x(0,2) * x(1,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(2,1) * x(2,2) + x(0,1) * x(0,2) * x(2,1) * x(3,2) + x(0,1) * x(0,2) * x(2,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(1,0)) * x(2,1) - x(0,1) * Math::sqr(x(1,0)) * x(3,1) + x(0,1) * x(1,0) * x(1,1) * x(2,0) + x(0,1) * x(1,0) * x(1,1) * x(3,0) + x(0,1) * x(1,0) * x(2,0) * x(2,1) + x(0,1) * x(1,0) * x(3,0) * x(3,1) + x(0,1) * x(1,1) * x(1,2) * x(2,2) + x(0,1) * x(1,1) * x(1,2) * x(3,2) - x(0,1) * x(1,1) * Math::sqr(x(2,0)) - x(0,1) * x(1,1) * Math::sqr(x(2,2)) - x(0,1) * x(1,1) * Math::sqr(x(3,0)) - x(0,1) * x(1,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(1,2)) * x(2,1) - x(0,1) * Math::sqr(x(1,2)) * x(3,1) + x(0,1) * x(1,2) * x(2,1) * x(2,2) + x(0,1) * x(1,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(2,0)) * x(3,1) + x(0,1) * x(2,0) * x(2,1) * x(3,0) + x(0,1) * x(2,0) * x(3,0) * x(3,1) + x(0,1) * x(2,1) * x(2,2) * x(3,2) - x(0,1) * x(2,1) * Math::sqr(x(3,0)) - x(0,1) * x(2,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(2,2)) * x(3,1) + x(0,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(0,2)) * Math::sqr(x(1,0)) - Math::sqr(x(0,2)) * x(1,0) * x(2,0) - Math::sqr(x(0,2)) * x(1,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(1,1)) - Math::sqr(x(0,2)) * x(1,1) * x(2,1) - Math::sqr(x(0,2)) * x(1,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(2,0)) - Math::sqr(x(0,2)) * x(2,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(2,1)) - Math::sqr(x(0,2)) * x(2,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(3,0)) + Math::sqr(x(0,2)) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(1,0)) * x(2,2) - x(0,2) * Math::sqr(x(1,0)) * x(3,2) + x(0,2) * x(1,0) * x(1,2) * x(2,0) + x(0,2) * x(1,0) * x(1,2) * x(3,0) + x(0,2) * x(1,0) * x(2,0) * x(2,2) + x(0,2) * x(1,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(1,1)) * x(2,2) - x(0,2) * Math::sqr(x(1,1)) * x(3,2) + x(0,2) * x(1,1) * x(1,2) * x(2,1) + x(0,2) * x(1,1) * x(1,2) * x(3,1) + x(0,2) * x(1,1) * x(2,1) * x(2,2) + x(0,2) * x(1,1) * x(3,1) * x(3,2) - x(0,2) * x(1,2) * Math::sqr(x(2,0)) - x(0,2) * x(1,2) * Math::sqr(x(2,1)) - x(0,2) * x(1,2) * Math::sqr(x(3,0)) - x(0,2) * x(1,2) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(2,0)) * x(3,2) + x(0,2) * x(2,0) * x(2,2) * x(3,0) + x(0,2) * x(2,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(2,1)) * x(3,2) + x(0,2) * x(2,1) * x(2,2) * x(3,1) + x(0,2) * x(2,1) * x(3,1) * x(3,2) - x(0,2) * x(2,2) * Math::sqr(x(3,0)) - x(0,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(2,1)) - Math::sqr(x(1,0)) * x(2,1) * x(3,1) + Math::sqr(x(1,0)) * Math::sqr(x(2,2)) - Math::sqr(x(1,0)) * x(2,2) * x(3,2) + Math::sqr(x(1,0)) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(3,2)) - DataType(2) * x(1,0) * x(1,1) * x(2,0) * x(2,1) + x(1,0) * x(1,1) * x(2,0) * x(3,1) + x(1,0) * x(1,1) * x(2,1) * x(3,0) - DataType(2) * x(1,0) * x(1,1) * x(3,0) * x(3,1) - DataType(2) * x(1,0) * x(1,2) * x(2,0) * x(2,2) + x(1,0) * x(1,2) * x(2,0) * x(3,2) + x(1,0) * x(1,2) * x(2,2) * x(3,0) - DataType(2) * x(1,0) * x(1,2) * x(3,0) * x(3,2) + x(1,0) * x(2,0) * x(2,1) * x(3,1) + x(1,0) * x(2,0) * x(2,2) * x(3,2) - x(1,0) * x(2,0) * Math::sqr(x(3,1)) - x(1,0) * x(2,0) * Math::sqr(x(3,2)) - x(1,0) * Math::sqr(x(2,1)) * x(3,0) + x(1,0) * x(2,1) * x(3,0) * x(3,1) - x(1,0) * Math::sqr(x(2,2)) * x(3,0) + x(1,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(2,0)) - Math::sqr(x(1,1)) * x(2,0) * x(3,0) + Math::sqr(x(1,1)) * Math::sqr(x(2,2)) - Math::sqr(x(1,1)) * x(2,2) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(3,0)) + Math::sqr(x(1,1)) * Math::sqr(x(3,2)) - DataType(2) * x(1,1) * x(1,2) * x(2,1) * x(2,2) + x(1,1) * x(1,2) * x(2,1) * x(3,2) + x(1,1) * x(1,2) * x(2,2) * x(3,1) - DataType(2) * x(1,1) * x(1,2) * x(3,1) * x(3,2) - x(1,1) * Math::sqr(x(2,0)) * x(3,1) + x(1,1) * x(2,0) * x(2,1) * x(3,0) + x(1,1) * x(2,0) * x(3,0) * x(3,1) + x(1,1) * x(2,1) * x(2,2) * x(3,2) - x(1,1) * x(2,1) * Math::sqr(x(3,0)) - x(1,1) * x(2,1) * Math::sqr(x(3,2)) - x(1,1) * Math::sqr(x(2,2)) * x(3,1) + x(1,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(1,2)) * Math::sqr(x(2,0)) - Math::sqr(x(1,2)) * x(2,0) * x(3,0) + Math::sqr(x(1,2)) * Math::sqr(x(2,1)) - Math::sqr(x(1,2)) * x(2,1) * x(3,1) + Math::sqr(x(1,2)) * Math::sqr(x(3,0)) + Math::sqr(x(1,2)) * Math::sqr(x(3,1)) - x(1,2) * Math::sqr(x(2,0)) * x(3,2) + x(1,2) * x(2,0) * x(2,2) * x(3,0) + x(1,2) * x(2,0) * x(3,0) * x(3,2) - x(1,2) * Math::sqr(x(2,1)) * x(3,2) + x(1,2) * x(2,1) * x(2,2) * x(3,1) + x(1,2) * x(2,1) * x(3,1) * x(3,2) - x(1,2) * x(2,2) * Math::sqr(x(3,0)) - x(1,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,2)) - DataType(2) * x(2,0) * x(2,1) * x(3,0) * x(3,1) - DataType(2) * x(2,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(2,1)) * Math::sqr(x(3,0)) + Math::sqr(x(2,1)) * Math::sqr(x(3,2)) - DataType(2) * x(2,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(2,2)) * Math::sqr(x(3,0)) + Math::sqr(x(2,2)) * Math::sqr(x(3,1))) / (h*h*h*h) / (x(0,0) * x(1,1) * x(2,2) - x(0,0) * x(1,1) * x(3,2) - x(0,0) * x(1,2) * x(2,1) + x(0,0) * x(1,2) * x(3,1) + x(0,0) * x(2,1) * x(3,2) - x(0,0) * x(2,2) * x(3,1) - x(0,1) * x(1,0) * x(2,2) + x(0,1) * x(1,0) * x(3,2) + x(0,1) * x(1,2) * x(2,0) - x(0,1) * x(1,2) * x(3,0) - x(0,1) * x(2,0) * x(3,2) + x(0,1) * x(2,2) * x(3,0) + x(0,2) * x(1,0) * x(2,1) - x(0,2) * x(1,0) * x(3,1) - x(0,2) * x(1,1) * x(2,0) + x(0,2) * x(1,1) * x(3,0) + x(0,2) * x(2,0) * x(3,1) - x(0,2) * x(2,1) * x(3,0) - x(1,0) * x(2,1) * x(3,2) + x(1,0) * x(2,2) * x(3,1) + x(1,1) * x(2,0) * x(3,2) - x(1,1) * x(2,2) * x(3,0) - x(1,2) * x(2,0) * x(3,1) + x(1,2) * x(2,1) * x(3,0));
596 grad_cof_part1[3][2] += -DataType(8) * this->_fac_cof * (Math::pow(Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18), DataType(2)) + Math::pow(-Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(18) + Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(18) - Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(18), DataType(2)) + Math::pow(-(x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,2) + x(1,2) + x(2,2) - DataType(3) * x(3,2)) / DataType(6) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,1) + x(1,1) + x(2,1) - DataType(3) * x(3,1)) / DataType(6) + (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(6)) * (x(0,0) + x(1,0) + x(2,0) - DataType(3) * x(3,0)) / DataType(6), DataType(2)) + Math::pow((x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) - (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3), DataType(2)) + Math::pow(-(x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,2) + x(1,2) - DataType(2) * x(2,2)) / DataType(3) + (x(0,2) - x(1,2)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) + Math::pow((x(0,0) - x(1,0)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,1) + x(1,1) - DataType(2) * x(2,1)) / DataType(3) - (x(0,1) - x(1,1)) / Math::sqr(h) * Math::sqrt(DataType(3)) * (x(0,0) + x(1,0) - DataType(2) * x(2,0)) / DataType(3), DataType(2)) - DataType(3)) * (x(0,0) * x(1,1) - x(0,0) * x(2,1) - x(1,0) * x(0,1) + x(2,0) * x(0,1) + x(1,0) * x(2,1) - x(1,1) * x(2,0)) * (Math::sqr(x(0,0)) * Math::sqr(x(1,1)) - Math::sqr(x(0,0)) * x(1,1) * x(2,1) - Math::sqr(x(0,0)) * x(1,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(1,2)) - Math::sqr(x(0,0)) * x(1,2) * x(2,2) - Math::sqr(x(0,0)) * x(1,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(2,1)) - Math::sqr(x(0,0)) * x(2,1) * x(3,1) + Math::sqr(x(0,0)) * Math::sqr(x(2,2)) - Math::sqr(x(0,0)) * x(2,2) * x(3,2) + Math::sqr(x(0,0)) * Math::sqr(x(3,1)) + Math::sqr(x(0,0)) * Math::sqr(x(3,2)) - DataType(2) * x(0,0) * x(0,1) * x(1,0) * x(1,1) + x(0,0) * x(0,1) * x(1,0) * x(2,1) + x(0,0) * x(0,1) * x(1,0) * x(3,1) + x(0,0) * x(0,1) * x(1,1) * x(2,0) + x(0,0) * x(0,1) * x(1,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(2,0) * x(2,1) + x(0,0) * x(0,1) * x(2,0) * x(3,1) + x(0,0) * x(0,1) * x(2,1) * x(3,0) - DataType(2) * x(0,0) * x(0,1) * x(3,0) * x(3,1) - DataType(2) * x(0,0) * x(0,2) * x(1,0) * x(1,2) + x(0,0) * x(0,2) * x(1,0) * x(2,2) + x(0,0) * x(0,2) * x(1,0) * x(3,2) + x(0,0) * x(0,2) * x(1,2) * x(2,0) + x(0,0) * x(0,2) * x(1,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(2,0) * x(2,2) + x(0,0) * x(0,2) * x(2,0) * x(3,2) + x(0,0) * x(0,2) * x(2,2) * x(3,0) - DataType(2) * x(0,0) * x(0,2) * x(3,0) * x(3,2) + x(0,0) * x(1,0) * x(1,1) * x(2,1) + x(0,0) * x(1,0) * x(1,1) * x(3,1) + x(0,0) * x(1,0) * x(1,2) * x(2,2) + x(0,0) * x(1,0) * x(1,2) * x(3,2) - x(0,0) * x(1,0) * Math::sqr(x(2,1)) - x(0,0) * x(1,0) * Math::sqr(x(2,2)) - x(0,0) * x(1,0) * Math::sqr(x(3,1)) - x(0,0) * x(1,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(1,1)) * x(2,0) - x(0,0) * Math::sqr(x(1,1)) * x(3,0) + x(0,0) * x(1,1) * x(2,0) * x(2,1) + x(0,0) * x(1,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(1,2)) * x(2,0) - x(0,0) * Math::sqr(x(1,2)) * x(3,0) + x(0,0) * x(1,2) * x(2,0) * x(2,2) + x(0,0) * x(1,2) * x(3,0) * x(3,2) + x(0,0) * x(2,0) * x(2,1) * x(3,1) + x(0,0) * x(2,0) * x(2,2) * x(3,2) - x(0,0) * x(2,0) * Math::sqr(x(3,1)) - x(0,0) * x(2,0) * Math::sqr(x(3,2)) - x(0,0) * Math::sqr(x(2,1)) * x(3,0) + x(0,0) * x(2,1) * x(3,0) * x(3,1) - x(0,0) * Math::sqr(x(2,2)) * x(3,0) + x(0,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(1,0)) - Math::sqr(x(0,1)) * x(1,0) * x(2,0) - Math::sqr(x(0,1)) * x(1,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(1,2)) - Math::sqr(x(0,1)) * x(1,2) * x(2,2) - Math::sqr(x(0,1)) * x(1,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(2,0)) - Math::sqr(x(0,1)) * x(2,0) * x(3,0) + Math::sqr(x(0,1)) * Math::sqr(x(2,2)) - Math::sqr(x(0,1)) * x(2,2) * x(3,2) + Math::sqr(x(0,1)) * Math::sqr(x(3,0)) + Math::sqr(x(0,1)) * Math::sqr(x(3,2)) - DataType(2) * x(0,1) * x(0,2) * x(1,1) * x(1,2) + x(0,1) * x(0,2) * x(1,1) * x(2,2) + x(0,1) * x(0,2) * x(1,1) * x(3,2) + x(0,1) * x(0,2) * x(1,2) * x(2,1) + x(0,1) * x(0,2) * x(1,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(2,1) * x(2,2) + x(0,1) * x(0,2) * x(2,1) * x(3,2) + x(0,1) * x(0,2) * x(2,2) * x(3,1) - DataType(2) * x(0,1) * x(0,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(1,0)) * x(2,1) - x(0,1) * Math::sqr(x(1,0)) * x(3,1) + x(0,1) * x(1,0) * x(1,1) * x(2,0) + x(0,1) * x(1,0) * x(1,1) * x(3,0) + x(0,1) * x(1,0) * x(2,0) * x(2,1) + x(0,1) * x(1,0) * x(3,0) * x(3,1) + x(0,1) * x(1,1) * x(1,2) * x(2,2) + x(0,1) * x(1,1) * x(1,2) * x(3,2) - x(0,1) * x(1,1) * Math::sqr(x(2,0)) - x(0,1) * x(1,1) * Math::sqr(x(2,2)) - x(0,1) * x(1,1) * Math::sqr(x(3,0)) - x(0,1) * x(1,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(1,2)) * x(2,1) - x(0,1) * Math::sqr(x(1,2)) * x(3,1) + x(0,1) * x(1,2) * x(2,1) * x(2,2) + x(0,1) * x(1,2) * x(3,1) * x(3,2) - x(0,1) * Math::sqr(x(2,0)) * x(3,1) + x(0,1) * x(2,0) * x(2,1) * x(3,0) + x(0,1) * x(2,0) * x(3,0) * x(3,1) + x(0,1) * x(2,1) * x(2,2) * x(3,2) - x(0,1) * x(2,1) * Math::sqr(x(3,0)) - x(0,1) * x(2,1) * Math::sqr(x(3,2)) - x(0,1) * Math::sqr(x(2,2)) * x(3,1) + x(0,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(0,2)) * Math::sqr(x(1,0)) - Math::sqr(x(0,2)) * x(1,0) * x(2,0) - Math::sqr(x(0,2)) * x(1,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(1,1)) - Math::sqr(x(0,2)) * x(1,1) * x(2,1) - Math::sqr(x(0,2)) * x(1,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(2,0)) - Math::sqr(x(0,2)) * x(2,0) * x(3,0) + Math::sqr(x(0,2)) * Math::sqr(x(2,1)) - Math::sqr(x(0,2)) * x(2,1) * x(3,1) + Math::sqr(x(0,2)) * Math::sqr(x(3,0)) + Math::sqr(x(0,2)) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(1,0)) * x(2,2) - x(0,2) * Math::sqr(x(1,0)) * x(3,2) + x(0,2) * x(1,0) * x(1,2) * x(2,0) + x(0,2) * x(1,0) * x(1,2) * x(3,0) + x(0,2) * x(1,0) * x(2,0) * x(2,2) + x(0,2) * x(1,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(1,1)) * x(2,2) - x(0,2) * Math::sqr(x(1,1)) * x(3,2) + x(0,2) * x(1,1) * x(1,2) * x(2,1) + x(0,2) * x(1,1) * x(1,2) * x(3,1) + x(0,2) * x(1,1) * x(2,1) * x(2,2) + x(0,2) * x(1,1) * x(3,1) * x(3,2) - x(0,2) * x(1,2) * Math::sqr(x(2,0)) - x(0,2) * x(1,2) * Math::sqr(x(2,1)) - x(0,2) * x(1,2) * Math::sqr(x(3,0)) - x(0,2) * x(1,2) * Math::sqr(x(3,1)) - x(0,2) * Math::sqr(x(2,0)) * x(3,2) + x(0,2) * x(2,0) * x(2,2) * x(3,0) + x(0,2) * x(2,0) * x(3,0) * x(3,2) - x(0,2) * Math::sqr(x(2,1)) * x(3,2) + x(0,2) * x(2,1) * x(2,2) * x(3,1) + x(0,2) * x(2,1) * x(3,1) * x(3,2) - x(0,2) * x(2,2) * Math::sqr(x(3,0)) - x(0,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(2,1)) - Math::sqr(x(1,0)) * x(2,1) * x(3,1) + Math::sqr(x(1,0)) * Math::sqr(x(2,2)) - Math::sqr(x(1,0)) * x(2,2) * x(3,2) + Math::sqr(x(1,0)) * Math::sqr(x(3,1)) + Math::sqr(x(1,0)) * Math::sqr(x(3,2)) - DataType(2) * x(1,0) * x(1,1) * x(2,0) * x(2,1) + x(1,0) * x(1,1) * x(2,0) * x(3,1) + x(1,0) * x(1,1) * x(2,1) * x(3,0) - DataType(2) * x(1,0) * x(1,1) * x(3,0) * x(3,1) - DataType(2) * x(1,0) * x(1,2) * x(2,0) * x(2,2) + x(1,0) * x(1,2) * x(2,0) * x(3,2) + x(1,0) * x(1,2) * x(2,2) * x(3,0) - DataType(2) * x(1,0) * x(1,2) * x(3,0) * x(3,2) + x(1,0) * x(2,0) * x(2,1) * x(3,1) + x(1,0) * x(2,0) * x(2,2) * x(3,2) - x(1,0) * x(2,0) * Math::sqr(x(3,1)) - x(1,0) * x(2,0) * Math::sqr(x(3,2)) - x(1,0) * Math::sqr(x(2,1)) * x(3,0) + x(1,0) * x(2,1) * x(3,0) * x(3,1) - x(1,0) * Math::sqr(x(2,2)) * x(3,0) + x(1,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(2,0)) - Math::sqr(x(1,1)) * x(2,0) * x(3,0) + Math::sqr(x(1,1)) * Math::sqr(x(2,2)) - Math::sqr(x(1,1)) * x(2,2) * x(3,2) + Math::sqr(x(1,1)) * Math::sqr(x(3,0)) + Math::sqr(x(1,1)) * Math::sqr(x(3,2)) - DataType(2) * x(1,1) * x(1,2) * x(2,1) * x(2,2) + x(1,1) * x(1,2) * x(2,1) * x(3,2) + x(1,1) * x(1,2) * x(2,2) * x(3,1) - DataType(2) * x(1,1) * x(1,2) * x(3,1) * x(3,2) - x(1,1) * Math::sqr(x(2,0)) * x(3,1) + x(1,1) * x(2,0) * x(2,1) * x(3,0) + x(1,1) * x(2,0) * x(3,0) * x(3,1) + x(1,1) * x(2,1) * x(2,2) * x(3,2) - x(1,1) * x(2,1) * Math::sqr(x(3,0)) - x(1,1) * x(2,1) * Math::sqr(x(3,2)) - x(1,1) * Math::sqr(x(2,2)) * x(3,1) + x(1,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(1,2)) * Math::sqr(x(2,0)) - Math::sqr(x(1,2)) * x(2,0) * x(3,0) + Math::sqr(x(1,2)) * Math::sqr(x(2,1)) - Math::sqr(x(1,2)) * x(2,1) * x(3,1) + Math::sqr(x(1,2)) * Math::sqr(x(3,0)) + Math::sqr(x(1,2)) * Math::sqr(x(3,1)) - x(1,2) * Math::sqr(x(2,0)) * x(3,2) + x(1,2) * x(2,0) * x(2,2) * x(3,0) + x(1,2) * x(2,0) * x(3,0) * x(3,2) - x(1,2) * Math::sqr(x(2,1)) * x(3,2) + x(1,2) * x(2,1) * x(2,2) * x(3,1) + x(1,2) * x(2,1) * x(3,1) * x(3,2) - x(1,2) * x(2,2) * Math::sqr(x(3,0)) - x(1,2) * x(2,2) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,1)) + Math::sqr(x(2,0)) * Math::sqr(x(3,2)) - DataType(2) * x(2,0) * x(2,1) * x(3,0) * x(3,1) - DataType(2) * x(2,0) * x(2,2) * x(3,0) * x(3,2) + Math::sqr(x(2,1)) * Math::sqr(x(3,0)) + Math::sqr(x(2,1)) * Math::sqr(x(3,2)) - DataType(2) * x(2,1) * x(2,2) * x(3,1) * x(3,2) + Math::sqr(x(2,2)) * Math::sqr(x(3,0)) + Math::sqr(x(2,2)) * Math::sqr(x(3,1))) / (h*h*h*h) / (x(0,0) * x(1,1) * x(2,2) - x(0,0) * x(1,1) * x(3,2) - x(0,0) * x(1,2) * x(2,1) + x(0,0) * x(1,2) * x(3,1) + x(0,0) * x(2,1) * x(3,2) - x(0,0) * x(2,2) * x(3,1) - x(0,1) * x(1,0) * x(2,2) + x(0,1) * x(1,0) * x(3,2) + x(0,1) * x(1,2) * x(2,0) - x(0,1) * x(1,2) * x(3,0) - x(0,1) * x(2,0) * x(3,2) + x(0,1) * x(2,2) * x(3,0) + x(0,2) * x(1,0) * x(2,1) - x(0,2) * x(1,0) * x(3,1) - x(0,2) * x(1,1) * x(2,0) + x(0,2) * x(1,1) * x(3,0) + x(0,2) * x(2,0) * x(3,1) - x(0,2) * x(2,1) * x(3,0) - x(1,0) * x(2,1) * x(3,2) + x(1,0) * x(2,2) * x(3,1) + x(1,1) * x(2,0) * x(3,2) - x(1,1) * x(2,2) * x(3,0) - x(1,2) * x(2,0) * x(3,1) + x(1,2) * x(2,1) * x(3,0));
597
598 }
599
600 }; // class RumpfFunctionalUnrolled
601
602
603 //#ifdef FEAT_EICKT
604 // extern template class RumpfFunctionalUnrolled<double,
605 // Trafo::Standard::Mapping<Geometry::ConformalMesh<Shape::Simplex<3>, 3, double>>>;
606 //#endif
608 } // namespace Meshopt
609} // namespace FEAT
#define XASSERTM(expr, msg)
Assertion macro definition with custom message.
Definition: assertion.hpp:263
FEAT Kernel base header.
T_ sqrt(T_ x)
Returns the square-root of a value.
Definition: math.hpp:300
T_ pow(T_ x, T_ y)
Returns x raised to the power of y.
Definition: math.hpp:643
T_ sqr(T_ x)
Returns the square of a value.
Definition: math.hpp:95
FEAT namespace.
Definition: adjactor.hpp:12
String stringify(const T_ &item)
Converts an item into a String.
Definition: string.hpp:944
@ grad
specifies whether the space should supply basis function gradients
std::uint64_t Index
Index data type.