9#include <kernel/shape.hpp> 
   10#include <kernel/meshopt/base.hpp> 
   11#include <kernel/meshopt/rumpf_functional.hpp> 
   25    template<
typename DataType_>
 
   26    class RumpfFunctionalUnrolled<DataType_,
 
   27    Trafo::Standard::Mapping<Geometry::ConformalMesh<Shape::Simplex<3>, 3, DataType_>>> :
 
   28      public RumpfFunctionalBase<DataType_>
 
   32          typedef RumpfFunctionalBase<DataType_> BaseClass;
 
   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;
 
   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;
 
   53          typedef Tiny::Matrix<DataType_, shape_dim, world_dim> TgradR;
 
   56          typedef typename TrafoType::template Evaluator<ShapeType, DataType>::Type TrafoEvaluator;
 
   58          typedef typename TrafoSpace::template Evaluator<TrafoEvaluator>::Type SpaceEvaluator;
 
   62          const int _exponent_det;
 
   64          const bool _compute_frobenius;
 
   66          const bool _compute_cof;
 
   68          const bool _compute_det;
 
   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_,
 
   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_))),
 
   85            _exponent_det(exponent_det_),
 
   86            _compute_frobenius( (fac_frobenius_ > DataType(0)) ),
 
   87            _compute_cof( (fac_cof_ > 0) ),
 
   88            _compute_det( (fac_det_ > 0) )
 
   90              XASSERTM(exponent_det_ == 1 || exponent_det_ == 2,
"exponent_det must be 1 or 2!");
 
  100            return "RumpfFunctionalUnrolled<"+ShapeType::name()+
">";
 
  108            const Index pad_width(30);
 
  109            return name() + 
":" + BaseClass::info() + String(
"\nexponent_det").pad_back(pad_width, 
'.')
 
  110              + String(
": ") + 
stringify(_exponent_det);
 
  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)
 
  119            grad.format(DataType(0));
 
  121            DataType fval_frobenius(0);
 
  122            DataType fval_cof(0);
 
  123            DataType fval_det(0);
 
  124            DataType fval_rec_det(0);
 
  126            if(_compute_frobenius)
 
  128              fval_frobenius = this->_fac_frobenius*compute_frobenius_part(x,h);
 
  129              add_grad_frobenius_part(grad, x, h);
 
  134              fval_cof = this->_fac_cof*compute_cof_part(x,h);
 
  135              add_grad_cof_part(grad, x, h);
 
  140              if(_exponent_det == 1)
 
  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);
 
  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);
 
  156            fval = fval_frobenius + fval_cof + fval_det + fval_rec_det;
 
  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)
 
  194            fval_frobenius = DataType(0);
 
  195            fval_cof = DataType(0);
 
  196            fval_det = DataType(0);
 
  198            if(_compute_frobenius)
 
  200              fval_frobenius = this->_fac_frobenius*compute_frobenius_part(x,h);
 
  205              fval_cof = this->_fac_cof*compute_cof_part(x,h);
 
  210              if(_exponent_det == 1)
 
  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);
 
  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);
 
  222            fval = fval_frobenius + fval_cof + fval_det;
 
  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)
 
  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);
 
  239            if(_compute_frobenius)
 
  241              frobenius_der_h = this->_fac_frobenius*compute_frobenius_der_h_part(x,h);
 
  246              cof_der_h = this->_fac_cof*compute_cof_der_h_part(x,h);
 
  251              if(_exponent_det == 1)
 
  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);
 
  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);
 
  264            DataType der_h(frobenius_der_h + cof_der_h + det_der_h + rec_det_der_h);
 
  271            for(
int i(0); i < Tx::m; ++i)
 
  273              for(
int d(0); d < Tx::n; ++d)
 
  275                grad(i,d) += der_h*grad_h(i*Tx::n + d);
 
  284          DataType NOINLINE compute_frobenius_part(
const Tx& x, 
const DataType& h)
 
  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;
 
  294          DataType NOINLINE compute_cof_part(
const Tx& x, 
const DataType& h)
 
  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 ;
 
  304          DataType NOINLINE compute_det_1_part( 
const Tx& x, 
const DataType& h)
 
  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;
 
  313          DataType NOINLINE compute_det_2_part( 
const Tx& x, 
const DataType& h)
 
  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;
 
  323          DataType NOINLINE compute_rec_det_1_part( 
const Tx& x, 
const DataType& h)
 
  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;
 
  333          DataType NOINLINE compute_rec_det_2_part( 
const Tx& x, 
const DataType& h)
 
  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;
 
  342          DataType NOINLINE compute_frobenius_der_h_part(
const Tx& x, 
const DataType& h)
 
  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;
 
  352          DataType NOINLINE compute_cof_der_h_part(
const Tx& x, 
const DataType& h)
 
  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 ;
 
  362          DataType NOINLINE compute_det_1_der_h_part( 
const Tx& x, 
const DataType& h)
 
  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;
 
  371          DataType NOINLINE compute_det_2_der_h_part( 
const Tx& x, 
const DataType& h)
 
  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;
 
  381          DataType NOINLINE compute_rec_det_1_der_h_part( 
const Tx& x, 
const DataType& h)
 
  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;
 
  391          DataType NOINLINE compute_rec_det_2_der_h_part( 
const Tx& x, 
const DataType& h)
 
  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;
 
  401          void NOINLINE add_grad_frobenius_part(Tx& grad_frobenius_part, 
const Tx& x, 
const DataType& h)
 
  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);
 
  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);
 
  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);
 
  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);
 
  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);
 
  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);
 
  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);
 
  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);
 
  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);
 
  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);
 
  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);
 
  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);
 
  431          void NOINLINE add_grad_cof_part(Tx& grad_cof_part, 
const Tx& x, 
const DataType& h)
 
  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));
 
  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));
 
  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)));
 
  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));
 
  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));
 
  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)));
 
  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));
 
  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));
 
  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)));
 
  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));
 
  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));
 
  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));
 
  462          void NOINLINE add_grad_det_1_part(Tx& grad_det_1_part, 
const Tx& x, 
const DataType& h)
 
  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);
 
  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);
 
  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);
 
  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);
 
  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);
 
  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);
 
  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);
 
  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);
 
  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);
 
  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);
 
  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);
 
  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);
 
  492          void NOINLINE add_grad_det_2_part(Tx& grad_det_2_part, 
const Tx& x, 
const DataType& h)
 
  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));
 
  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));
 
  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));
 
  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));
 
  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));
 
  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));
 
  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));
 
  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));
 
  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));
 
  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));
 
  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));
 
  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));
 
  522          void NOINLINE add_grad_rec_det_1_part(Tx& grad_rec_det_1_part, 
const Tx& x, 
const DataType& h)
 
  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)));
 
  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)));
 
  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)));
 
  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)));
 
  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)));
 
  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)));
 
  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)));
 
  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)));
 
  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)));
 
  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)));
 
  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)));
 
  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)));
 
  552          void NOINLINE add_grad_rec_det_2_part(Tx& grad_rec_det_2_part, 
const Tx& x, 
const DataType& h)
 
  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)));
 
  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)));
 
  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)));
 
  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)));
 
  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)));
 
  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)));
 
  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)));
 
  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)));
 
  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)));
 
  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)));
 
  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)));
 
  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)));
 
  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)
 
  582            void NOINLINE add_grad_cof_part_1(Tx& grad_cof_part1, 
const Tx& x, 
const DataType& h)
 
  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));
 
#define XASSERTM(expr, msg)
Assertion macro definition with custom message.
T_ sqrt(T_ x)
Returns the square-root of a value.
T_ pow(T_ x, T_ y)
Returns x raised to the power of y.
T_ sqr(T_ x)
Returns the square of a value.
String stringify(const T_ &item)
Converts an item into a String.
@ grad
specifies whether the space should supply basis function gradients
std::uint64_t Index
Index data type.